Fred
4.0.3
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
- Updated copyright.
Tidied code.
Removed Framework 5.0.x from sopm. Reorganized Fred files in Kernel/Output/HTML.
Many improvements.
Several improvements and bugfixes.
Fixed Fred to show bind variables again in SQL-Log for OTRS 4.
Updated framework version to 4.0.
Simplified Fred SQLLog to no longer need a DBListener.
Instead, we just override the Prepare() and Do() methods in the DBObject on the fly.
Added several smaller improvements.
The master branch only supports OTRS 3.4+ because it uses tt templates.
Updated the sopm accordingly.
Fixed a bug that caused a ring reference in ConfigLog.
Refactored. Fred no longer patches framework files. New GUI.
A tool to support the developer by his development.
Ein Entwicklertool welches dem Entwickler zur Laufzeit bei der Entwicklung unterstützen soll.
4.0.x
<br/>
Welcome! <br/>
<br/>
What can Fred do?<br/>
<br/>
To date, Fred has the following features: <br/>
<ul>
<li> HTMLCheck: <br/>
performs different HTML quality checks in JavaScript </li>
<li> JSLint: <br/>
performs different JavaScript quality checks in JavaScript </li>
<li> STDERRLog: <br/>
every entry contained in STDERR is displayed </li>
<li> TranslationDebug: <br/>
displays all translation attempts of the current request which failed. </li>
<li> SQLLog: <br/>
lists all SQL statements of the current request </li>
<li> ConfigLog: <br/>
lists all ConfigGet requests, indicating their frequency </li>
<li> SessionDump: <br/>
show the current content of the serverside session </li>
<li> EnvDump: <br/>
show info about the environment of the layout object </li>
</ul>
<br/>
*Caution* : Please have a look at the possible config settings, which are easily accessible by clicking on "setting". <br/>
<br/>
<br/>
What is Fred's current status?<br/>
<br/>
<ul>
<li> modular design: <br/>
anybody can add a new module at any time </li>
<li> the modules' output is not yet sophisticated <br/>
ideas for improving the output or sensible configurations will be very welcome </li>
<li> please extend Fred, if you have good ideas <br/>
<li> if you have no time to implement your ideas yourselves, please enter them in dev mailinglist </li>
</ul>
<br/>
2018-07-24 10:58:39
opms.otrs.com
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPCFET0NUWVBFIGJvb2sgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjQvL0VOIgogICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC40L2RvY2Jvb2t4LmR0ZCI+Cgo8Ym9vayBsYW5nPSdlbic+Cgo8Ym9va2luZm8+Cjx0aXRsZT5GcmVkPC90aXRsZT4KPGVkaXRpb24+QSB0b29sIHRvICBzdXBwb3J0IHRoZSBkZXZlbG9wZXIgYnkgaGlzIGRldmVsb3BtZW50LiBWZXJzaW9uIDQuMC4zPC9lZGl0aW9uPgoKPGNvcHlyaWdodD4KPHllYXI+MjAxODwveWVhcj4KPGhvbGRlcj5PVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvPC9ob2xkZXI+CjwvY29weXJpZ2h0PgoKPGRhdGU+MjAxOC0wNy0yNCA8L2RhdGU+Cgo8bGVnYWxub3RpY2U+CiAgICA8cGFyYT5HTlUgQUZGRVJPIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UgVmVyc2lvbiAzLCBOb3ZlbWJlciAyMDA3PC9wYXJhPgogICAgPHBhcmE+VGhpcyB3b3JrIGlzIGNvcHlyaWdodGVkIGJ5IE9UUlMgQUcsIFppbW1lcnNtw7xobGVud2VnIDExLCA2MTQ0MCBPYmVydXJzZWwsIEdlcm1hbnkuPC9wYXJhPgogICAgPHBhcmE+QnVpbGQgRGF0ZTogMjAxOC0wNy0yNCA8L3BhcmE+CjwvbGVnYWxub3RpY2U+Cgo8L2Jvb2tpbmZvPgoKPHByZWZhY2UgaWQ9InByZWZhY2UiID4KICAgIDx0aXRsZT5QcmVmYWNlPC90aXRsZT4KICAgIDxwYXJhPkEgbW9kdWxlIGZvciBoZWxwaW5nIHdpdGggZGV2ZWxvcGluZyB3ZWIgYXBwbGljdGlvbnMuPC9wYXJhPgo8L3ByZWZhY2U+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5GZWF0dXJlIExpc3Q8L3RpdGxlPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5IVE1MQ2hlY2s8L3RpdGxlPgogICAgICAgIDxwYXJhPlBlcmZvcm1zIGRpZmZlcmVudCBiYWQvYmVzdCBwcmFjdGljZSBjaGVja3Mgb24gdGhlIGdlbmVyYXRlZCBwYWdlcyB2aWEgSmF2YVNjcmlwdC48L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5KU0xpbnQ8L3RpdGxlPgogICAgICAgIDxwYXJhPgogICAgICAgICAgICBFeGFtaW5lcyB0aGUgY29kZSBxdWFsaXR5IG9mIGFsbCBKYXZhU2NyaXB0IGNvZGUgdGhhdCBpcyB1c2VkCiAgICAgICAgICAgIG9uIHRoZSBwYWdlIG9uIHRoZSBmbHkgKGFsc28gdmlhIEphdmFTY3JpcHQpLCB1c2luZyB0aGUgZ3JlYXQgdG9vbCBKU0xpbnQuCiAgICAgICAgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+U1RERVJSTG9nPC90aXRsZT4KICAgICAgICA8cGFyYT5ldmVyeSBlbnRyeSBjb250YWluZWQgaW4gU1RERVJSIGlzIGRpc3BsYXllZCA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5UcmFuc2xhdGlvbkRlYnVnPC90aXRsZT4KICAgICAgICA8cGFyYT5kaXNwbGF5cyBhbGwgdHJhbnNsYXRpb24gYXR0ZW1wdHMgb2YgdGhlIGN1cnJlbnQgcmVxdWVzdCB3aGljaCBmYWlsZWQuIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPlNRTExvZzwvdGl0bGU+CiAgICAgICAgPHBhcmE+bGlzdHMgYWxsIFNRTCBzdGF0ZW1lbnRzIG9mIHRoZSBjdXJyZW50IHJlcXVlc3QgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+Q29uZmlnTG9nPC90aXRsZT4KICAgICAgICA8cGFyYT5saXN0cyBhbGwgQ29uZmlnR2V0IHJlcXVlc3RzLCBpbmRpY2F0aW5nIHRoZWlyIGZyZXF1ZW5jeSA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5TZXNzaW9uRHVtcDwvdGl0bGU+CiAgICAgICAgPHBhcmE+c2hvdyB0aGUgY3VycmVudCBjb250ZW50IG9mIHRoZSBzZXJ2ZXJzaWRlIHNlc3Npb24gPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RW52RHVtcDwvdGl0bGU+CiAgICAgICAgPHBhcmE+c2hvdyBpbmZvIGFib3V0IHRoZSBlbnZpcm9ubWVudCBvZiB0aGUgbGF5b3V0IG9iamVjdCA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5JbnN0YWxsYXRpb248L3RpdGxlPgogICAgPHBhcmE+VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgZXhwbGFpbiBob3cgdG8gaW5zdGFsbCB0aGUgcGFja2FnZS48L3BhcmE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkFkbWluIEludGVyZmFjZTwvdGl0bGU+CiAgICAgICAgPHBhcmE+ClBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBVUkwgdG8gaW5zdGFsbCB0aGUgcGFja2FnZSB1dGlsaXppbmcgdGhlIGFkbWluCmludGVyZmFjZSAocGxlYXNlIG5vdGUgdGhhdCB5b3UgbmVlZCB0byBiZSBpbiB0aGUgYWRtaW4gZ3JvdXApLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KPHVsaW5rIHVybD0iaHR0cDovL2xvY2FsaG9zdC9vdHJzL2luZGV4LnBsP0FjdGlvbj1BZG1pblBhY2thZ2VNYW5hZ2VyIj5odHRwOi8vbG9jYWxob3N0L290cnMvaW5kZXgucGw/QWN0aW9uPUFkbWluUGFja2FnZU1hbmFnZXI8L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkNvbW1hbmQgTGluZTwvdGl0bGU+CiAgICAgICAgPHBhcmE+CklmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgQWRtaW4gSW50ZXJmYWNlLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nCk9QTSBjb21tYW5kIHRvIGluc3RhbGwgdGhlIHBhY2thZ2Ugd2l0aCAiYmluL29wbS5wbCIuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgIDxzY3JlZW4+CnNoZWxsPiBiaW4vb3BtLnBsIC1hIGluc3RhbGwgLXAgL3BhdGgvdG8vRnJlZC00LjAuMy5vcG0KICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5Db25maWd1cmF0aW9uPC90aXRsZT4KICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgY29uZmlnIG9wdGlvbnMgY2FuIG9yIG5lZWQgdG8gYmUgY2hhbmdlZCB2aWEgU3lzQ29uZmlnLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RnJlZDo6Q29uZmlnTG9nIyMjT3JkZXJCeTwvdGl0bGU+CiAgICAgICAgPHBhcmE+V2hpY2ggb3JkZXIgc2hvdWxkIHRoZSBjb25maWcgbG9nIGRhdGEgaGF2ZT88L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5NYW5pZmVzdDwvdGl0bGU+CiAgICA8cGFyYT5UaGUgbWFuaWZlc3QgbGlzdHMgYWxsIGluY2x1ZGVkIGZpbGVzIGFuZCB0aGUgcmVmZXJyaW5nIHBlcm1pc3Npb25zLjwvcGFyYT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+RmlsZWxpc3Q8L3RpdGxlPgogICAgICAgIDxwYXJhPgogICAgICAgIDxpdGVtaXplZGxpc3Q+PGxpc3RpdGVtPjxwYXJhPig2NDQpIGRvYy9lbi9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvQ29uZmlnL0ZpbGVzL0FBQUZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL0NvbmZpZy9GaWxlcy9GcmVkLnhtbDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvTW9kdWxlcy9EZXZlbEZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZpbHRlckNvbnRlbnQvRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9Db25maWdMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvQ29uZmlnU3dpdGNoLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL0NvbnNvbGUucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvRW52RHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9IVE1MQ2hlY2sucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvSlNMaW50LnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL1Nlc3Npb25EdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkL1NUREVSUkxvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZC9TUUxMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWQvVHJhbnNsYXRpb25EZWJ1Zy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkQ29uZmlnTG9nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRDb25maWdTd2l0Y2gudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZENvbnNvbGUudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZENvbnRhaW5lci50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkRW52RHVtcC50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkSFRNTENoZWNrLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRKU0xpbnQudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZFNlc3Npb25EdW1wLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRTZXR0aW5nLnR0PC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRTUUxMb2cudHQ8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZFNUREVSUkxvZy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1Zy50dDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvQ29uZmlnTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25maWdTd2l0Y2gucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL0NvbnNvbGUucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL0VudkR1bXAucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL0hUTUxDaGVjay5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvSlNMaW50LnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9TZXNzaW9uRHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvU1FMTG9nLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9TVERFUlJMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL1RyYW5zbGF0aW9uRGVidWcucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy9Db3JlLkZyZWQuanM8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy9Db3JlLkZyZWQuSFRNTENoZWNrLmpzPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIHZhci9odHRwZC9odGRvY3MvanMvQ29yZS5GcmVkLkpTTGludC5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSB2YXIvaHR0cGQvaHRkb2NzL2pzL3RoaXJkcGFydHkvanNsaW50L2pzbGludC5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSB2YXIvaHR0cGQvaHRkb2NzL3NraW5zL0FnZW50L2RlZmF1bHQvY3NzL0NvcmUuRnJlZC5jc3M8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9za2lucy9DdXN0b21lci9kZWZhdWx0L2Nzcy9Db3JlLkZyZWQuY3NzPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CjwvY2hhcHRlcj4KCjxjaGFwdGVyPgogICAgPHRpdGxlPkNoYW5nZUxvZzwvdGl0bGU+CiAgICA8cGFyYT4KICAgIDxpdGVtaXplZGxpc3Q+PHRpdGxlPjQuMC4zIC8gMjAxOC0wNy0yNCAxMDo1ODozNzwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPi0gVXBkYXRlZCBjb3B5cmlnaHQuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjQuMC4yIC8gMjAxNy0xMC0wOSAyMDo0NTo0MzwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPlRpZGllZCBjb2RlLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT40LjAuMSAvIDIwMTUtMDYtMTIgMTE6Mjg6MTY8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5SZW1vdmVkIEZyYW1ld29yayA1LjAueCBmcm9tIHNvcG0uIFJlb3JnYW5pemVkIEZyZWQgZmlsZXMgaW4gS2VybmVsL091dHB1dC9IVE1MLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjIuNyAvIDIwMTUtMDYtMDEgMDk6MDA6Mzc8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5NYW55IGltcHJvdmVtZW50cy48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4yLjYgLyAyMDE0LTExLTE0IDEyOjQyOjEzPC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+U2V2ZXJhbCBpbXByb3ZlbWVudHMgYW5kIGJ1Z2ZpeGVzLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjIuNSAvIDIwMTQtMDktMTYgMTg6MDA6MjA8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5GaXhlZCBGcmVkIHRvIHNob3cgYmluZCB2YXJpYWJsZXMgYWdhaW4gaW4gU1FMLUxvZyBmb3IgT1RSUyA0LjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjIuNCAvIDIwMTQtMDktMDQgMTA6MDE6MTI8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5VcGRhdGVkIGZyYW1ld29yayB2ZXJzaW9uIHRvIDQuMC4KU2ltcGxpZmllZCBGcmVkIFNRTExvZyB0byBubyBsb25nZXIgbmVlZCBhIERCTGlzdGVuZXIuCkluc3RlYWQsIHdlIGp1c3Qgb3ZlcnJpZGUgdGhlIFByZXBhcmUoKSBhbmQgRG8oKSBtZXRob2RzIGluIHRoZSBEQk9iamVjdCBvbiB0aGUgZmx5LgpBZGRlZCBzZXZlcmFsIHNtYWxsZXIgaW1wcm92ZW1lbnRzLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjIuMyAvIDIwMTQtMDMtMTggMTY6NDA6MjQ8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5UaGUgbWFzdGVyIGJyYW5jaCBvbmx5IHN1cHBvcnRzIE9UUlMgMy40KyBiZWNhdXNlIGl0IHVzZXMgdHQgdGVtcGxhdGVzLgpVcGRhdGVkIHRoZSBzb3BtIGFjY29yZGluZ2x5LjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjIuMiAvIDIwMTQtMDMtMDQgMTI6NDc6NTg8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5GaXhlZCBhIGJ1ZyB0aGF0IGNhdXNlZCBhIHJpbmcgcmVmZXJlbmNlIGluIENvbmZpZ0xvZy48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4yLjEgLyAyMDE0LTAzLTA0IDA5OjQ0OjA2PC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+UmVmYWN0b3JlZC4gRnJlZCBubyBsb25nZXIgcGF0Y2hlcyBmcmFtZXdvcmsgZmlsZXMuIE5ldyBHVUkuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CgogICAgPC9wYXJhPgo8L2NoYXB0ZXI+Cgo8L2Jvb2s+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM7CnVzZSBLZXJuZWw6Okxhbmd1YWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2c7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1ZzsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCmlmICggJEVOVntIVFRQX1VTRVJfQUdFTlR9ICkgewoKICAgICMgY2hlY2sgaWYgdGhlIG5lZWRlZCBwYXRoIGlzIGF2YWlsYWJsZQogICAgbXkgJFBhdGggPSAkU2VsZi0+e0hvbWV9IC4gJy92YXIvZnJlZCc7CiAgICBpZiAoICEtZSAkUGF0aCApIHsKICAgICAgICBta2RpciAkUGF0aDsKICAgIH0KCiAgICBteSAkRmlsZSA9ICRTZWxmLT57SG9tZX0gLiAnL3Zhci9mcmVkL1NUREVSUi5sb2cnOwoKICAgICMgY2hlY2sgbG9nIGZpbGUgc2l6ZQogICAgaWYgKCAtcyAkRmlsZSA+IDIwICogMTAyNCAqIDEwMjQgKSB7CiAgICAgICAgdW5saW5rICRGaWxlOwogICAgfQoKICAgICMgbW92ZSBTVERPVVQgdG8gdG1wIGZpbGUKICAgIGlmICggIW9wZW4gU1RERVJSLCAnPj4nLCAkRmlsZSApIHsgICAgIyMgbm8gY3JpdGljCiAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogQ2FuJ3Qgd3JpdGUgJEZpbGUhIjsKICAgIH0KfQoKIyBkaXNhYmxlIHJlZGVmaW5lIHdhcm5pbmdzIGluIHRoaXMgc2NvcGUKewogICAgbm8gd2FybmluZ3MgJ3JlZGVmaW5lJzsKCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6TGFuZ3VhZ2U6OkdldCgpIG1ldGhvZCB0byBpbnRlcmNlcHQgbWlzc2luZyB0cmFuc2xhdGlvbnMKICAgIGlmICggS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdHZXQnKSAmJiAhS2VybmVsOjpMYW5ndWFnZS0+Y2FuKCdHZXRPcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpHZXRPcmlnaW5hbCA9IFwmS2VybmVsOjpMYW5ndWFnZTo6R2V0OwogICAgICAgICpLZXJuZWw6Okxhbmd1YWdlOjpHZXQgICAgICAgICA9IHN1YiB7CiAgICAgICAgICAgIG15ICggJFNlbGYsICRXaGF0ICkgPSBAXzsKCiAgICAgICAgICAgIHJldHVybiBpZiAhZGVmaW5lZCAkV2hhdDsKICAgICAgICAgICAgcmV0dXJuICcnIGlmICRXaGF0IGVxICcnOwoKICAgICAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5HZXRPcmlnaW5hbCgkV2hhdCk7CgogICAgICAgICAgICBpZiAoICRXaGF0ICYmICRXaGF0ID1+IC9eKC4rPykiLFxzezAsMX0iKC4qPykkLyApIHsKICAgICAgICAgICAgICAgICRXaGF0ID0gJDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggISRTZWxmLT57VHJhbnNsYXRpb259LT57JFdoYXR9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWctPm5ldygpOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZCggV2hhdCA9PiAkV2hhdCApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICB9OwogICAgfQoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpMYW5ndWFnZTo6VHJhbnNsYXRlKCkgbWV0aG9kIHRvIGludGVyY2VwdCBtaXNzaW5nIHRyYW5zbGF0aW9ucwogICAgaWYgKCBLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ1RyYW5zbGF0ZScpICYmICFLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ1RyYW5zbGF0ZU9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OlRyYW5zbGF0ZU9yaWdpbmFsID0gXCZLZXJuZWw6Okxhbmd1YWdlOjpUcmFuc2xhdGU7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OlRyYW5zbGF0ZSAgICAgICAgID0gc3ViIHsKICAgICAgICAgICAgbXkgKCAkU2VsZiwgJFRleHQsIEBQYXJhbWV0ZXJzICkgPSBAXzsKCiAgICAgICAgICAgIGlmICggJFRleHQgJiYgISRTZWxmLT57VHJhbnNsYXRpb259LT57JFRleHR9ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWctPm5ldygpOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZCggV2hhdCA9PiAkVGV4dCApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlRyYW5zbGF0ZU9yaWdpbmFsKCAkVGV4dCwgQFBhcmFtZXRlcnMgKTsKICAgICAgICB9OwogICAgfQoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpTeXN0ZW06OkRCOjpQcmVwYXJlKCkgbWV0aG9kIHRvIGludGVyY2VwdCBkYXRhYmFzZSBjYWxscwogICAgaWYgKCBLZXJuZWw6OlN5c3RlbTo6REItPmNhbignUHJlcGFyZScpICYmICFLZXJuZWw6OlN5c3RlbTo6REItPmNhbignUHJlcGFyZU9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6U3lzdGVtOjpEQjo6UHJlcGFyZU9yaWdpbmFsID0gXCZLZXJuZWw6OlN5c3RlbTo6REI6OlByZXBhcmU7CiAgICAgICAgKktlcm5lbDo6U3lzdGVtOjpEQjo6UHJlcGFyZSAgICAgICAgID0gc3ViIHsKICAgICAgICAgICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNRTExvZy0+bmV3KCk7CiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fS0+UHJlU3RhdGVtZW50KCVQYXJhbSk7CiAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+UHJlcGFyZU9yaWdpbmFsKCVQYXJhbSk7CiAgICAgICAgICAgICRTZWxmLT57U1FMTG9nT2JqZWN0fS0+UG9zdFN0YXRlbWVudCglUGFyYW0pOwoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgfTsKICAgIH0KCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6U3lzdGVtOjpEQjo6RG8oKSBtZXRob2QgdG8gaW50ZXJjZXB0IGRhdGFiYXNlIGNhbGxzCiAgICBpZiAoIEtlcm5lbDo6U3lzdGVtOjpEQi0+Y2FuKCdEbycpICYmICFLZXJuZWw6OlN5c3RlbTo6REItPmNhbignRG9PcmlnaW5hbCcpICkgewogICAgICAgICpLZXJuZWw6OlN5c3RlbTo6REI6OkRvT3JpZ2luYWwgPSBcJktlcm5lbDo6U3lzdGVtOjpEQjo6RG87CiAgICAgICAgKktlcm5lbDo6U3lzdGVtOjpEQjo6RG8gICAgICAgICA9IHN1YiB7CiAgICAgICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgICAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0gfHw9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2ctPm5ldygpOwogICAgICAgICAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0tPlByZVN0YXRlbWVudCglUGFyYW0pOwogICAgICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPkRvT3JpZ2luYWwoJVBhcmFtKTsKICAgICAgICAgICAgJFNlbGYtPntTUUxMb2dPYmplY3R9LT5Qb3N0U3RhdGVtZW50KCVQYXJhbSk7CgogICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICB9OwogICAgfQoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpDb25maWc6OkdldCgpIG1ldGhvZCB0byBpbnRlcmNlcHQgY29uZmlnIHN0cmluZ3MKICAgIGlmICggS2VybmVsOjpDb25maWc6OkRlZmF1bHRzLT5jYW4oJ0dldCcpICYmICFLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHMtPmNhbignR2V0T3JpZ2luYWwnKSApIHsKICAgICAgICAqS2VybmVsOjpDb25maWc6OkRlZmF1bHRzOjpHZXRPcmlnaW5hbCA9IFwmS2VybmVsOjpDb25maWc6OkRlZmF1bHRzOjpHZXQ7CiAgICAgICAgKktlcm5lbDo6Q29uZmlnOjpEZWZhdWx0czo6R2V0ICAgICAgICAgPSBzdWIgewogICAgICAgICAgICBteSAoICRTZWxmLCAkV2hhdCApID0gQF87CgogICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ0xvZ09iamVjdH0gfHw9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2ctPm5ldygpOwogICAgICAgICAgICBteSAkQ2FsbGVyID0gY2FsbGVyKCk7CiAgICAgICAgICAgIGlmICggJFNlbGYtPnskV2hhdH0gKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ0xvZ09iamVjdH0tPkluc2VydFdvcmQoCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAiJFdoYXQ7VHJ1ZTskQ2FsbGVyOyIsCiAgICAgICAgICAgICAgICAgICAgSG9tZSA9PiAkU2VsZi0+e0hvbWV9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gIiRXaGF0O0ZhbHNlOyRDYWxsZXI7IiwKICAgICAgICAgICAgICAgICAgICBIb21lID0+ICRTZWxmLT57SG9tZX0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+R2V0T3JpZ2luYWwoJFdoYXQpOwogICAgICAgIH07CiAgICB9Cgp9CgoxOwo=
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckNvbnRlbnQjIyNGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1YnNjcmliZSB0aGUgb3V0cHV0IGZpbHRlciBhdCB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckNvbnRlbnQ6OkZyZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlYnVnIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFMTCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkFnZW50OjpDb21tb25KUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgSlMgZmlsZXMgdG8gYWx3YXlzIGJlIGxvYWRlZCBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+dGhpcmRwYXJ0eS9qc2xpbnQvanNsaW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLkpTTGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5IVE1MQ2hlY2suanM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTG9hZGVyOjpDdXN0b21lcjo6Q29tbW9uSlMjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIEpTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnRoaXJkcGFydHkvanNsaW50L2pzbGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5KU0xpbnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkZyZWQuSFRNTENoZWNrLmpzPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkNTUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgQ1NTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJhbWV3b3JrPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmNzczwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkN1c3RvbWVyOjpDb21tb25DU1MjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIENTUyBmaWxlcyB0byBhbHdheXMgYmUgbG9hZGVkIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyYW1ld29yazwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5jc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZVdpZHRoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBGcmVkIGNvbnNvbGUgaW4gcGVyY2VudC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+NTAlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZUhlaWdodCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoZWlnaHQgb2YgdGhlIEZyZWQgY29uc29sZSBpbiBwaXhlbC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MjAwcHg8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpDb25zb2xlT3BhY2l0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBvcGFjaXR5IG9mIHRoZSBGcmVkIGNvbnNvbGUsIGUuZy4gMC45IGZvciAxMCUgdHJhbnNwYXJlbmN5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4wLjk8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNDb25zb2xlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBmcmVkIGNvbnNvbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjU1FMTG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgYW4gcmVhbHRpbWUgU1FMIHN0YXRlbWVudCBsb2cgZnVuY3Rpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+U2hvd3MgYSBsaXN0IG9mIGFsbCBTUUwgc3RhdGVtZW50cyBleGVjdXRlZCBpbiB0aGlzIGNhbGwuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjSFRNTENoZWNrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgYW4gcmVhbHRpbWUgSFRNTC1jaGVja2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlZhbGlkYXRlcyB0aGUgSFRNTCBpbiB0aGlzIGNhbGwuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjSlNMaW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgYSBKYXZhU2NyaXB0IGNvZGUgcXVhbGl0eSBjaGVja2VyLiBPbmx5IHdvcmtzIGluIENWUyBIZWFkIC8gT1RSUyAzIHdpdGggalF1ZXJ5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlZhbGlkYXRlcyB0aGUgSlMgaW4gdGhpcyBjYWxsIGFuZCBzaG93cyBlcnJvcnMgYW5kIG5vdGljZXMuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjVHJhbnNsYXRpb25EZWJ1ZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRoZSB0cmFuc2xhdGlvbiBkZWJ1Z2dlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5TaG93cyBhIGxpc3Qgb2YgdW50cmFuc2xhdGVkIHN0cmluZ3MuIFBsZWFzZSBub3RlIHRoYXQgc3RyaW5ncyBmcm9tIGZyYW1ld29yayBBTkQgY3VzdG9tIG1vZHVsZXMgd2lsbCBiZSBzaG93bi48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNDb25maWdMb2ciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbmZpZyBsb2cgbWVjaGFuaXNtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkxpc3RzIGFsbCBjb25maWd1cmF0aW9uIGl0ZW1zIHdoaWNoIHdlcmUgdXNlZCBpbiB0aGlzIGNhbGwgKGFuZCBob3cgb2Z0ZW4gdGhleSB3ZXJlIGNhbGxlZCkuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjQ29uZmlnU3dpdGNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBjb25maWcgc3dpdGNoIG1lY2hhbmlzbS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5Td2l0Y2ggb24gb3Igb2ZmIHNvbWUgb2Z0ZW4gbmVlZGVkIGNvbmZpZyBpdGVtcyBkaXJlY3RseSBpbiBGcmVkLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1NUREVSUkxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgU1RERVJSTG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkxpc3RzIGVudHJpZXMgZnJvbSB0aGUgU1RERVJSIGxvZy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpTVERFUlJMb2dGaWx0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byBmaWx0ZXIgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSTG9nLiBZb3UgY2FuIGFkZCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBmaWx0ZXIgdGhlIG91dHB1dC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+OiBbIF0gU3Vicm91dGluZSBbIF0gW19hLXpBLVowLTldKyBbIF0gcmVkZWZpbmVkIFsgXSBhdCBbIF0gLisgWyBdIGxpbmUgWyBdIFxkKyBcLjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1Nlc3Npb25EdW1wIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gc2VlIHRoZSBkYXRhIGluIHRoZSBzZXJ2ZXJzaWRlIHNlc3Npb24gb2JqZWN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkR1bXBzIG91dCBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjRW52RHVtcCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgZGF0YSBpbiB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIGxheW91dCBvYmplY3QuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+RHVtcHMgb3V0IGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0RldmVsRnJlZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgZGV2ZWwgZnJlZCBvYmplY3QgaW4gdGhlIGFkbWluIGFyZWEuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uPkFkbWluPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZT5GcmVkLURldmVsb3BlcnRvb2xzPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPkFkbWluPC9OYXZCYXJOYW1lPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkN1c3RvbWVyRnJvbnRlbmQ6Ok1vZHVsZSMjI0RldmVsRnJlZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5BZG1pbjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8VGl0bGU+RnJlZC1EZXZlbG9wZXJ0b29sczwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5BZG1pbjwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJQdWJsaWNGcm9udGVuZDo6TW9kdWxlIyMjRGV2ZWxGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6UHVibGljOjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+QWRtaW48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPFRpdGxlPkZyZWQtRGV2ZWxvcGVydG9vbHM8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+QWRtaW48L05hdkJhck5hbWU+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uZmlnTG9nIyMjT3JkZXJCeSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5XaGljaCBvcmRlciBzaG91bGQgdGhlIGNvbmZpZyBsb2cgZGF0YSBoYXZlPzwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db25maWdMb2c8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjMiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzIj5DYWxsczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Q29uZmlnPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyIj5QYWNrYWdlPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpDb25maWdTd2l0Y2gjIyNTZXR0aW5ncyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIGNvbmZpZyBzZXR0aW5ncyB3aGljaCBzaG91bGQgYmUgYXZhaWxhYmxlIGZvciBxdWljayBzd2l0Y2guIFBsZWFzZSBhZGQgb25seSBzZXR0aW5ncyB3aXRoIHBvc3NpYmxlIHZhbHVlcyAwIG9yIDEgKE5vL1llcykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvbmZpZ1N3aXRjaDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPkZyb250ZW5kOjpSaWNoVGV4dDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkZyb250ZW5kOjpEZWJ1Z01vZGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Gcm9udGVuZDo6VGVtcGxhdGVDYWNoZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkZyb250ZW5kOjpNZW51RHJhZ0Ryb3BFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0QUNMOjpEZWJ1Zzo6RW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDo6RnJvbnRlbmQ6Ok5lZWRTcGVsbENoZWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+VGlja2V0OjpSZXNwb25zaWJsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDo6VHlwZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDo6U2VydmljZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDo6V2F0Y2hlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDo6VXNlQXJ0aWNsZUNvbG9yczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNoZWNrTVhSZWNvcmQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5DaGVja0VtYWlsQWRkcmVzc2VzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+U2Vzc2lvblVzZUNvb2tpZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkxvYWRlcjo6RW5hYmxlZDo6Q1NTPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+TG9hZGVyOjpFbmFibGVkOjpKUzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPk9wZW5NYWluTWVudU9uSG92ZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5TZWN1cmVNb2RlPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OlN5c3RlbU5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q3VzdG9taXphYmxlIHN5c3RlbSBuYW1lLiBJZiBlbXB0eSwgY29uZmlnIGl0ZW0gJ0hvbWUnIGlzIGJlaW5nIHVzZWQgZm9yIGRpc3BsYXkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OkJhY2tncm91bmRDb2xvciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG9wdGlvbiBkZWZpbmVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3l0ZW0gbmFtZSBib3guPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPiNENjM1MzU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+Cgo8L290cnNfY29uZmlnPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpEZXZlbEZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IHRoZSBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICBpZiAoICEkU2VsZi0+e1N1YmFjdGlvbn0gKSB7CiAgICAgICAgbXkgJFZlcnNpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ZlcnNpb24nKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAnU29ycnksIHRoaXMgcGFnZSBpcyBjdXJyZW50bHkgdW5kZXIgZGV2ZWxvcG1lbnQhJywKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGZhc3QgaGFuZGxlIGZvciBmcmVkIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NldHRpbmcnICkgewoKICAgICAgICAjIGdldCBoYXNocmVmIHdpdGggYWxsIEZyZWQtcGx1Z2lucwogICAgICAgIG15ICRNb2R1bGVGb3JSZWYgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwoKICAgICAgICAjIFRoZSBDb25zb2xlIGNhbid0IGJlIGRlYWN0aXZhdGVkCiAgICAgICAgZGVsZXRlICRNb2R1bGVGb3JSZWYtPntDb25zb2xlfTsKCiAgICAgICAgIyBsb29wIG92ZXIgTW9kdWxlcyB3aGljaCBjYW4gYmUgYWN0aXZhdGVkIGFuZCBkZWFjdGl2YXRlZAogICAgICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZUZvclJlZn0gKSB7CiAgICAgICAgICAgIG15ICRDaGVja2VkID0gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdGcmVkTW9kdWxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEZyZWRNb2R1bGUgID0+ICRNb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgQ2hlY2tlZCAgICAgPT4gJENoZWNrZWQsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57RGVzY3JpcHRpb259IHx8ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgUHJvdmlkZSBhIGxpbmsgdG8gdGhlIFN5c0NvbmZpZyBvbmx5IGZvciBwbHVnaW5zIHRoYXQgaGF2ZSBjb25maWcgb3B0aW9ucwogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiRnJlZDo6JE1vZHVsZSIpICkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29uZmlnJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlTmFtZSA9PiAkTW9kdWxlLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIG91dHB1dAogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdGcmVkLVNldHRpbmcnLAogICAgICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRTZXR0aW5nJywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgICAgICBUeXBlID0+ICdTbWFsbCcsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZmFzdCBoYW5kbGUgZm9yIGZyZWQgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2V0dGluZ0FjdGlvbicgKSB7CiAgICAgICAgbXkgJE1vZHVsZUZvclJlZiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwogICAgICAgIG15IEBTZWxlY3RlZEZyZWRNb2R1bGVzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0ZyZWRNb2R1bGUnICk7CiAgICAgICAgbXkgJVNlbGVjdGVkTW9kdWxlcyAgICAgPSBtYXAgeyAkXyA9PiAxOyB9IEBTZWxlY3RlZEZyZWRNb2R1bGVzOwogICAgICAgIG15ICRVcGRhdGVGbGFnOwogICAgICAgIGRlbGV0ZSAkTW9kdWxlRm9yUmVmLT57Q29uc29sZX07CgogICAgICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZUZvclJlZn0gKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSB0aGUgc3lzY29uZmlnIHNldHRpbmdzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gJiYgISRTZWxlY3RlZE1vZHVsZXN7JE1vZHVsZX0KICAgICAgICAgICAgICAgIHx8CiAgICAgICAgICAgICAgICAhJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSAmJiAkU2VsZWN0ZWRNb2R1bGVzeyRNb2R1bGV9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICMgdXBkYXRlIGNlcnRhaW4gdmFsdWVzCiAgICAgICAgICAgICAgICAkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0tPntBY3RpdmV9ID0gJFNlbGVjdGVkTW9kdWxlc3skTW9kdWxlfSB8fCAwOwoKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKS0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICJGcmVkOjpNb2R1bGUjIyMkTW9kdWxlIiwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFVwZGF0ZUZsYWcgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UG9wdXBDbG9zZSgKICAgICAgICAgICAgUmVsb2FkID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBoYW5kbGUgZm9yIGNvbmZpZyBzd2l0Y2gKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ29uZmlnU3dpdGNoQUpBWCcgKSB7CgogICAgICAgIG15ICRJdGVtS2V5ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnS2V5JyApOwogICAgICAgIG15ICRJdGVtVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmFsdWUnICk7CgogICAgICAgIG15ICRTdWNjZXNzID0gMDsKCiAgICAgICAgaWYgKCRJdGVtS2V5KSB7CgogICAgICAgICAgICAjIHRoZSB2YWx1ZSB3aGljaCBpcyBwYXNzZWQgaXMgdGhlIGN1cnJlbnQgdmFsdWUsIHNvIHdlCiAgICAgICAgICAgICMgbmVlZCB0byBzd2l0Y2ggaXQuCiAgICAgICAgICAgIGlmICggJEl0ZW1WYWx1ZSA9PSAxICkgewogICAgICAgICAgICAgICAgJEl0ZW1WYWx1ZSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkSXRlbVZhbHVlID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRJdGVtS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJEl0ZW1WYWx1ZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAxOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRTdWNjZXNzLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckNvbnRlbnQ6OkZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBVUkk6OkVzY2FwZTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6RnJlZCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlckZyZWQKCj1oZWFkMSBTWU5PUFNJUwoKYSBvdXRwdXQgZmlsdGVyIG1vZHVsZSBzcGVjaWFsbHkgZm9yIGRldmVsb3BlcgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJoYXBzIG5vIG91dHB1dCBpcyBnZW5lcmF0ZWQKICAgIGRpZSAnRnJlZDogQXQgdGhlIG1vbWVudCwgeW91ciBjb2RlIGdlbmVyYXRlcyBubyBvdXRwdXQhJyBpZiAhJFBhcmFte0RhdGF9OwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBkbyBub3Qgc2hvdyB0aGUgZGVidWcgYmFyIGluIEZyZWQncyBzZXR0aW5nIHdpbmRvdwogICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSAmJiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSBlcSAnRGV2ZWxGcmVkJyApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgb3V0cHV0IGlzIGFuIGF0dGFjaG1lbnQgZG93bmxvYWQgb3IgQUpBWCByZXF1ZXN0CiAgICBpZiAoCiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gL15Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Oy9taQogICAgICAgIHx8ICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOy9taQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgaXMgYSByZWRpcmVjdAogICAgaWYgKAogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eU3RhdHVzOiAzMDIgTW92ZWQvbWkKICAgICAgICAmJiAkeyAkUGFyYW17RGF0YX0gfSA9fiAvXmxvY2F0aW9uOi9taQogICAgICAgICYmIGxlbmd0aCggJHsgJFBhcmFte0RhdGF9IH0gKSA8IDgwMAogICAgICAgICkKICAgIHsKICAgICAgICBwcmludCBTVERFUlIgIlJFRElSRUNUXG4iOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBpdCBpcyBmcmVkIGl0IHNlbGYKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gPX4gbXtGcmVkLVNldHRpbmc8XC90aXRsZT59bXN4ICkgewogICAgICAgIHByaW50IFNUREVSUiAiQ0hBTkdFIEZSRUQgU0VUVElOR1xuIjsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgPGh0bWw+IGVsZW1lbnQsIG1pZ2h0IGJlCiAgICAjIGFuIGVtYmVkZGVkIGxheW91dCByZW5kZXJpbmcKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gIX4gbXs8aHRtbFtePl0qPn1tc3ggKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBnZXQgZGF0YSBvZiB0aGUgYWN0aXZhdGVkIG1vZHVsZXMKICAgIG15ICRNb2R1bGVGb3JSZWYgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRnJlZDo6TW9kdWxlJyk7CiAgICBteSAkTW9kdWxlc0RhdGFSZWYgPSB7fTsKICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZUZvclJlZn0gKSB7CiAgICAgICAgaWYgKCAkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0tPntBY3RpdmV9ICkgewogICAgICAgICAgICAkTW9kdWxlc0RhdGFSZWYtPnskTW9kdWxlfSA9IHt9OwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgbXkgJE1vZHVsZU5hbWUgKCBzb3J0IGtleXMgJXskTW9kdWxlc0RhdGFSZWZ9ICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCAnS2VybmVsOjpTeXN0ZW06OkZyZWQ6OicgLiAkTW9kdWxlTmFtZSApLT5EYXRhR2V0KAogICAgICAgICAgICBNb2R1bGVSZWYgICAgICA9PiAkTW9kdWxlc0RhdGFSZWYtPnskTW9kdWxlTmFtZX0sCiAgICAgICAgICAgIEhUTUxEYXRhUmVmICAgID0+ICRQYXJhbXtEYXRhfSwKICAgICAgICAgICAgRnJlZE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNEYXRhUmVmLAogICAgICAgICk7CgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZDo6JyAuICRNb2R1bGVOYW1lICktPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlc0RhdGFSZWYtPnskTW9kdWxlTmFtZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIHRoZSBjb250ZW50IHN0cmluZwogICAgbXkgJE91dHB1dCA9ICcnOwogICAgaWYgKCAkTW9kdWxlc0RhdGFSZWYtPntDb25zb2xlfS0+e091dHB1dH0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTW9kdWxlc0RhdGFSZWYtPntDb25zb2xlfS0+e091dHB1dH07CiAgICAgICAgZGVsZXRlICRNb2R1bGVzRGF0YVJlZi0+e0NvbnNvbGV9OwogICAgfQogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlc0RhdGFSZWZ9ICkgewogICAgICAgICRPdXRwdXQgLj0gJE1vZHVsZXNEYXRhUmVmLT57JE1vZHVsZX0tPntPdXRwdXR9IHx8ICcnOwogICAgfQoKICAgIG15ICRKU091dHB1dCA9ICcnOwogICAgJE91dHB1dCA9fiBzeyg8c2NyaXB0Lis/L3NjcmlwdD4pfXsKICAgICAgICAkSlNPdXRwdXQgLj0gJDE7CiAgICAgICAgIiI7CiAgICB9c214ZWc7CgogICAgIyBQdXQgb3V0cHV0IGluIHRoZSBGcmVkIENvbnRhaW5lcgogICAgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZENvbnRhaW5lcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgRGF0YSA9PiAkT3V0cHV0CiAgICAgICAgfSwKICAgICk7CgogICAgIyBpbmNsdWRlIHRoZSBmcmVkIG91dHB1dCBpbiB0aGUgb3JpZ2luYWwgb3V0cHV0CiAgICBpZiAoICR7ICRQYXJhbXtEYXRhfSB9ICF+IHMvKFw8Ym9keSh8Lis/KVw+KS8kMVxuJE91dHB1dFxuXG5cblxuL214ICkgewogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHMvXiguKS9cbiRPdXRwdXRcblxuXG5cbiQxL214OwogICAgfQoKICAgICMgSW5qZWN0IEpTIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHN7PC9ib2R5Pn17JEpTT3V0cHV0XG5cdDwvYm9keT59c214OwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbmZpZ0xvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgbG9nIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwogICAgZm9yIG15ICRMaW5lICggQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkgewoKICAgICAgICBmb3IgbXkgJFREICggQHskTGluZX0gKSB7CiAgICAgICAgICAgICRURCA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoIFRleHQgPT4gJFREICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRMaW5lLT5bMV0gZXEgJ1RydWUnICkgewogICAgICAgICAgICAkTGluZS0+WzFdID0gJyc7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJENvdW50ICggMCAuLiAzICkgewogICAgICAgICAgICAkTGluZS0+WyRDb3VudF0gfHw9ICcnOwogICAgICAgIH0KCiAgICAgICAgJEhUTUxMaW5lcyAuPSAiICAgICAgICA8dHI+XG4iCiAgICAgICAgICAgIC4gIiAgICAgICAgICA8dGQgYWxpZ249XCJyaWdodFwiPiRMaW5lLT5bM108L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMF08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMV08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkPiRMaW5lLT5bMl08L3RkPlxuIgogICAgICAgICAgICAuICIgICAgICAgIDwvdHI+IjsKICAgIH0KCiAgICByZXR1cm4gaWYgISRIVE1MTGluZXM7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbmZpZ1N3aXRjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnU3dpdGNoIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgc3dpdGNoIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnU3dpdGNoLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWcgc3dpdGNoIG1vZHVsZQoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9OwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnU3dpdGNoJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBDb25maWdJdGVtcyA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkNvbnNvbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgp1c2UgQ3dkOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uc29sZSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBjb25zb2xlIG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uc29sZS0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGNvbnNvbGUgdGFibGUKICAgIG15ICRDb25zb2xlID0gJ0FjdGl2YXRlZCBtb2R1bGVzOiA8c3Ryb25nPicKICAgICAgICAuICggam9pbiAnIC0gJywgQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkKICAgICAgICAuICc8L3N0cm9uZz4nOwoKICAgIHJldHVybiAxIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e1N0YXR1c307CgogICAgaWYgKCAkUGFyYW17TW9kdWxlUmVmfS0+e1NldHRpbmd9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFN5c3RlbU5hbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6OlN5c3RlbU5hbWUnKQogICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnSG9tZScpOwogICAgbXkgJEJhY2tncm91bmRDb2xvciA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6QmFja2dyb3VuZENvbG9yJykKICAgICAgICB8fCAncmVkJzsKICAgIG15ICRCcmFuY2hOYW1lID0gJ2NvdWxkIG5vdCBiZSBkZXRlY3RlZCc7CgogICAgIyBBZGQgY3VycmVudCBnaXQgYnJhbmNoIHRvIG91dHB1dAogICAgbXkgJEhvbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0hvbWUnKTsKICAgIGlmICggLWQgIiRIb21lLy5naXQiICkgewogICAgICAgIG15ICRPbGRXb3JraW5nRGlyID0gZ2V0Y3dkKCk7CiAgICAgICAgY2hkaXIoJEhvbWUpOwogICAgICAgIG15ICRHaXRSZXN1bHQgPSBgZ2l0IGJyYW5jaGA7CiAgICAgICAgY2hkaXIoJE9sZFdvcmtpbmdEaXIpOwoKICAgICAgICBpZiAoJEdpdFJlc3VsdCkgewogICAgICAgICAgICAoJEJyYW5jaE5hbWUpID0gJEdpdFJlc3VsdCA9fiBtL15bKl0gXHMrIChcUyspL3htczsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEJyYW5jaENsYXNzOwogICAgbXkgJEJ1Z051bWJlcjsKCiAgICBpZiAoICRCcmFuY2hOYW1lIGVxICdtYXN0ZXInICkgewogICAgICAgICRCcmFuY2hDbGFzcyA9ICdXYXJuaW5nJzsKICAgIH0KICAgIGVsc2lmICggJEJyYW5jaE5hbWUgPX4gbXtidWctKChcZCl7MSw2fSkuKn0gKSB7CiAgICAgICAgJEJ1Z051bWJlciA9ICQxOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uc29sZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgVGV4dCAgICAgICAgICAgID0+ICRDb25zb2xlLAogICAgICAgICAgICBNb2RQZXJsICAgICAgICAgPT4gX01vZFBlcmwoKSwKICAgICAgICAgICAgUGVybCAgICAgICAgICAgID0+IHNwcmludGYoICIldmQiLCAkXlYgKSwKICAgICAgICAgICAgU3lzdGVtTmFtZSAgICAgID0+ICRTeXN0ZW1OYW1lLAogICAgICAgICAgICBCcmFuY2hOYW1lICAgICAgPT4gJEJyYW5jaE5hbWUsCiAgICAgICAgICAgIEJyYW5jaENsYXNzICAgICA9PiAkQnJhbmNoQ2xhc3MsCiAgICAgICAgICAgIEJhY2tncm91bmRDb2xvciA9PiAkQmFja2dyb3VuZENvbG9yLAogICAgICAgICAgICBCdWdOdW1iZXIgICAgICAgPT4gJEJ1Z051bWJlciwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9Nb2RQZXJsIHsKCiAgICAjIGZpbmQgb3V0LCBpZiBtb2RwZXJsIGlzIHVzZWQKICAgIG15ICRNb2RQZXJsID0gJ25vdCBhY3RpdmUnOwoKICAgICMjIG5vIGNyaXRpYwogICAgaWYgKCBleGlzdHMgJEVOVntNT0RfUEVSTH0gJiYgZGVmaW5lZCAkbW9kX3Blcmw6OlZFUlNJT04gKSB7CiAgICAgICAgJE1vZFBlcmwgPSAkbW9kX3Blcmw6OlZFUlNJT047CiAgICB9CiAgICAjIyB1c2UgY3JpdGljCgogICAgcmV0dXJuICRNb2RQZXJsOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkVudkR1bXA7CiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RSUzo6UGVybDo6RHVtcGVyKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGE6OkR1bXBlcjsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkRW52RHVtcCAtIHNob3cgZHVtcCBvZiB0aGUgZW52aXJvbm1lbnQgcmVmLCBkYXRhIGZvciAkRW52IGluIGR0bAoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiB0aGUgbGF5b3V0IGVudiBkdW1wIG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkRW52RHVtcC0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpHZXQgdGhlIHNlc3Npb24gZGF0YSBhbmQgY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHNlc3Npb24gZHVtcAoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpFbnZEdW1wOjpEYXRhR2V0KCkgaXMgbm90IHVzZWQsCiAgICAjIGFzIHRoZSBkYXRhIG9mIGludGVyZXN0IGlzIG5vdCBlYXNpbHkgYXZhaWxhYmxlIHRoZXJlLgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJExheW91dE9iamVjdC0+e0VudlJlZn0gfSApIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VudkRhdGFSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57RW52UmVmfS0+eyRLZXl9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgdGhlIGh0bWwKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEVudkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSFRNTENoZWNrIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIEhUTUwgY2hlY2sgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTVERFUlJMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIFNUREVSUiBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSFRNTExpbmVzID0gJyc7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEhUTUxDaGVjaycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OkpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50IC0gRnJlZCBtb2R1bGUgZm9yIEpTTGludCBjaGVja3MKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgSlNMaW50IG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50LT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBKU0xpbnQgbW9kdWxlCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEpTTGludCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNlc3Npb25EdW1wOwojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46Ok9UUlM6OlBlcmw6OkR1bXBlcikKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKdXNlIERhdGE6OkR1bXBlcjsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNlc3Npb25EdW1wIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBzZXNzaW9uIGR1bXAgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTZXNzaW9uRHVtcC0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpHZXQgdGhlIHNlc3Npb24gZGF0YSBhbmQgY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHNlc3Npb24gZHVtcAoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIERhdGEgaXMgZ2VuZXJhdGVkIGhlcmUsIGFzIGl0IGlzIG5vdCBhdmFpbGFibGUgaW4gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wCiAgICBteSAkU2Vzc2lvbklEID0gJExheW91dE9iamVjdC0+e0VudlJlZn0tPntTZXNzaW9uSUR9OwogICAgbXkgJVNlc3Npb25EYXRhOwogICAgaWYgKCRTZXNzaW9uSUQpIHsKICAgICAgICAlU2Vzc2lvbkRhdGEgPSAkTGF5b3V0T2JqZWN0LT57U2Vzc2lvbk9iamVjdH0tPkdldFNlc3Npb25JRERhdGEoIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklEICk7CiAgICB9CgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVNlc3Npb25EYXRhICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2Vzc2lvbkRhdGFSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkU2Vzc2lvbkRhdGF7JEtleX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCB0aGUgaHRtbAogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkU2Vzc2lvbkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNUREVSUkxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZyAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBTVERFUlIgbG9nIG9iamVjdHMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9OwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IG5lICdBUlJBWSc7CgogICAgIyBjcmVhdGUgaHRtbCBzdHJpbmcKICAgIG15ICRIVE1MTGluZXM7CiAgICBteSAkSFRNTExpbmVzRmlsdGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcmVkOjpTVERFUlJMb2dGaWx0ZXInKTsKCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgICMgZmlsdGVyIGNvbnRlbnQgaWYgbmVlZGVkCiAgICAgICAgaWYgKCRIVE1MTGluZXNGaWx0ZXIpIHsKICAgICAgICAgICAgbmV4dCBMSU5FIGlmICRMaW5lID1+IC8kSFRNTExpbmVzRmlsdGVyL3NteDsKICAgICAgICB9CgogICAgICAgICRIVE1MTGluZXMgLj0gJExpbmU7CiAgICB9CgogICAgcmV0dXJuIGlmICEkSFRNTExpbmVzOwoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNUREVSUkxvZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlNRTExvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU1FMTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIFNRTCBsb2cgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTUUxMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHRyYW5zbGF0aW9uZGVidWdnaW5nIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBmb3IgbXkgJExpbmUgKCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFRpbWUgICAgICAgICAgICA9PiAkTGluZS0+WzRdICogMTAwMCwKICAgICAgICAgICAgICAgIEVxdWFsU3RhdGVtZW50cyA9PiAkTGluZS0+WzVdIHx8ICcnLAogICAgICAgICAgICAgICAgU3RhdGVtZW50ICAgICAgID0+ICRMaW5lLT5bMV0sCiAgICAgICAgICAgICAgICBQYWNrYWdlICAgICAgICAgPT4gJExpbmUtPlszXSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJExpbmUgKCBzcGxpdCggLzsvLCAkTGluZS0+WzNdICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhY2tUcmFjZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTdGFja1RyYWNlID0+ICRMaW5lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJExpbmUtPlsyXSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3dCaW5kUGFyYW1ldGVycycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBCaW5kUGFyYW1ldGVycyA9PiAkTGluZS0+WzJdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNRTExvZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgQWxsU3RhdGVtZW50cyAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9LAogICAgICAgICAgICBEb1N0YXRlbWVudHMgICAgID0+ICRQYXJhbXtNb2R1bGVSZWZ9LT57RG9TdGF0ZW1lbnRzfSwKICAgICAgICAgICAgU2VsZWN0U3RhdGVtZW50cyA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e1NlbGVjdFN0YXRlbWVudHN9LAogICAgICAgICAgICBUaW1lICAgICAgICAgICAgID0+ICRQYXJhbXtNb2R1bGVSZWZ9LT57VGltZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFRyYW5zbGF0aW9uRGVidWcgLSBsYXlvdXQgYmFja2VuZCBtb2R1bGUKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgdHJhbnNsYXRpb24gZGVidWcgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRIVE1MTGluZXMgPSAnJzsKICAgIGZvciBteSAkTGluZSAoIEB7ICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gfSApIHsKICAgICAgICAkSFRNTExpbmVzIC49ICI8c3Bhbj4kTGluZTwvc3Bhbj4iOwogICAgfQoKICAgIHJldHVybiAxIGlmICEkSFRNTExpbmVzOwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1ZycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgSFRNTExpbmVzID0+ICRIVE1MTGluZXMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgQ29uZmlndXJhdGlvbiBMb2cKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJUb2dnbGUgU2VhcmNoIEJhciI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRDb25maWdMb2ciPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5DYWxsczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPkNvbmZpZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlBhY2thZ2U8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KWyUgRGF0YS5IVE1MTGluZXMgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgQ29uZmlndXJhdGlvbiBTd2l0Y2gKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJUb2dnbGUgU2VhcmNoIEJhciI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRDb25maWdTd2l0Y2giPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0IEZyZWRTd2l0Y2hUYWJsZSI+CiAgICAgICAgWyUgRk9SRUFDSCBJdGVtIElOIERhdGEuQ29uZmlnSXRlbXMgJV0KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGcmVkU3dpdGNoIFslIElGIEl0ZW0uVmFsdWUgPT0gMSAlXU9uWyUgRU5EICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBkYXRhLWtleT0iWyUgSXRlbS5LZXkgfCBodG1sICVdIiBkYXRhLXZhbHVlPSJbJSBJdGVtLlZhbHVlIHwgaHRtbCAlXSIgdGl0bGU9IlN3aXRjaCB0aGlzIHNldHRpbmciPjxzcGFuPjwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgPHRkPlslIEl0ZW0uS2V5IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDx0ciBjbGFzcz0iSGlkZGVuIEZpbHRlck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPk5vIEl0ZW1zIGZvdW5kLjwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0ganNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQ+Cid1c2Ugc3RyaWN0JzsKJCgnLkZyZWRTd2l0Y2ggYScpLnVuYmluZCgnY2xpY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKEV2ZW50KSB7CgogICAgdmFyIEtleSA9ICQodGhpcykuZGF0YSgna2V5JyksCiAgICAgICAgVmFsdWUgPSBwYXJzZUludCgkKHRoaXMpLmRhdGEoJ3ZhbHVlJyksIDEwKSwKICAgICAgICBEYXRhID0ge307CgogICAgaWYgKCFLZXkpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgJCh0aGlzKQogICAgICAgIC5wYXJlbnQoKQogICAgICAgIC50b2dnbGVDbGFzcygnT24nKTsKCiAgICAkKHRoaXMpCiAgICAgICAgLnBhcmVudCgpCiAgICAgICAgLm5leHQoJ3RkJykKICAgICAgICAucHJlcGVuZCgnPGkgY2xhc3M9ImZhIGZhLWNpcmNsZS1vLW5vdGNoIGZhLXNwaW4iPjwvaT4mbmJzcDsnKTsKCiAgICBEYXRhID0gewogICAgICAgIEFjdGlvbjogJ0RldmVsRnJlZCcsCiAgICAgICAgU3ViYWN0aW9uOiAnQ29uZmlnU3dpdGNoQUpBWCcsCiAgICAgICAgJ0tleSc6IEtleSwKICAgICAgICAnVmFsdWUnOiBWYWx1ZQogICAgfTsKCiAgICBDb3JlLkFKQVguRnVuY3Rpb25DYWxsKAogICAgICAgIENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSwKICAgICAgICBEYXRhLAogICAgICAgIGZ1bmN0aW9uKFJlc3BvbnNlKSB7CiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCh0cnVlKTsKICAgICAgICB9LAogICAgICAgICdqc29uJwogICAgKTsKCiAgICByZXR1cm4gZmFsc2U7Cgp9KTsKPC9zY3JpcHQ+CjwhLS0ganNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc2NvcGVkPSIiPgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHdpZHRoOiBbJSBDb25maWcoIkZyZWQ6OkNvbnNvbGVXaWR0aCIpICVdOwogICAgLW1vei1vcGFjaXR5OiBbJSBDb25maWcoIkZyZWQ6OkNvbnNvbGVPcGFjaXR5IikgJV07CiAgICAtd2Via2l0LW9wYWNpdHk6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZU9wYWNpdHkiKSAlXTsKICAgIG9wYWNpdHk6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZU9wYWNpdHkiKSAlXTsKfQoKLkRldmVsRnJlZEJveCBoMSwgLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBbJSBEYXRhLkJhY2tncm91bmRDb2xvciB8IGh0bWwgJV07Cn0KClslIElGIENvbmZpZygiRnJlZDo6Q29uc29sZUhlaWdodCIpICVdCi5EZXZlbEZyZWRCb3hDb250ZW50IHsKICAgIG1heC1oZWlnaHQ6IFslIENvbmZpZygiRnJlZDo6Q29uc29sZUhlaWdodCIpICVdOwp9ClslIEVORCAlXQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBGcmVkIENvbnNvbGUKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXR0aW5nIikgJV0KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNvZyBGcmVkU2V0dGluZ3MiIGRhdGEtdXJsPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249RGV2ZWxGcmVkO1N1YmFjdGlvbj1TZXR0aW5nIj48L2k+ClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2VBbGwiIHRpdGxlPSJDbG9zZSBhbGwiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCBGcmVkRWxlbWVudExpc3QiIGlkPSJEZXZlbEZyZWRDb25zb2xlIj4KICAgICAgICA8c3Bhbj5TeXN0ZW0gPHN0cm9uZz5bJSBEYXRhLlN5c3RlbU5hbWUgfCBodG1sICVdPC9zdHJvbmc+PC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJbJSBEYXRhLkJyYW5jaENsYXNzIHwgaHRtbCAlXSI+QnJhbmNoIDxzdHJvbmc+WyUgRGF0YS5CcmFuY2hOYW1lIHwgaHRtbCAlXTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICA8c3Bhbj5tb2RfcGVybCA8c3Ryb25nPlslIERhdGEuTW9kUGVybCB8IGh0bWwgJV08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgPHNwYW4+UGVybCA8c3Ryb25nPlslIERhdGEuUGVybCB8IGh0bWwgJV08L3N0cm9uZz48L3NwYW4+CiAgICBbJSBJRiBEYXRhLkJ1Z051bWJlciAlXQogICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1leHRlcm5hbC1saW5rIj48L2k+IE9wZW4gPGEgaHJlZj0iaHR0cDovL2J1Z3Mub3Rycy5vcmcvc2hvd19idWcuY2dpP2lkPVslIERhdGEuQnVnTnVtYmVyIHwgdXJpICVdIiB0YXJnZXQ9Il9ibGFuayI+QnVnI1slIERhdGEuQnVnTnVtYmVyIHwgaHRtbCAlXTwvYT4gaW4gQnVnWmlsbGE8L3NwYW4+CiAgICBbJSBFTkQgJV0KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQ29udGFpbmVyIiBpZD0iRGV2ZWxGcmVkQ29udGFpbmVyIj4KICAgIFslIERhdGEuRGF0YSAlXQo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBFbnZpcm9ubWVudCBWYXJpYWJsZXMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJTZWFyY2giPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRGV2ZWxGcmVkRW52RHVtcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVudkRhdGFSb3ciKSAlXQogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5LZXkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlZhbHVlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJFbnZEYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSFRNTENoZWNrCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgInVzZSBzdHJpY3QiOwogICAgICAgIENvcmUuQXBwLlJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIENvcmUuRnJlZC5IVE1MQ2hlY2suQ2hlY2tGb3JTdGFydCgpOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjVweDsiIGlkPSJGcmVkSFRNTENoZWNrUmVzdWx0cyIgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxkaXYgaWQ9IkZyZWRIVE1MQ2hlY2tSdW5uaW5nIj48aSBjbGFzcz0iZmEgZmEtc3Bpbm5lciBmYSBmYS1zcGluIj48L2k+Jm5ic3A7IENoZWNrcyBhcmUgcnVubmluZy4uLjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSlNMaW50CiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgInVzZSBzdHJpY3QiOwogICAgICAgIENvcmUuQXBwLlJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIENvcmUuRnJlZC5KU0xpbnQuSW5pdCgpOwogICAgICAgIH0pOwogICAgPC9zY3JpcHQ+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRnJlZEpTTGludFNjcmlwdHMiPgogICAgICAgIDxkaXYgaWQ9IkZyZWRKU0xpbnRSdW5uaW5nIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNwaW5uZXIgZmEgZmEtc3BpbiI+PC9pPiZuYnNwOyBDaGVja3MgYXJlIHJ1bm5pbmcuLi4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBTZXNzaW9uRHVtcAogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlNlYXJjaCI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRTZXNzaW9uRHVtcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iRnJlZFF1aWNrU2VhcmNoIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJTZWFyY2ggZm9yLi4uIiAvPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGFibGUgY2xhc3M9IkZyZWRUYWJsZURlZmF1bHQiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlZhbHVlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNlc3Npb25EYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPlslIERhdGEuS2V5IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPHByZT5bJSBEYXRhLlZhbHVlIHwgaHRtbCAlXTwvcHJlPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNlc3Npb25EYXRhUm93IikgJV0KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZFNldHRpbmdzIj4KICAgIDxoMT5GcmVkIFNldHRpbmdzPC9oMT4KICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEZXZlbEZyZWRTZXR0aW5nIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJEZXZlbEZyZWQiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2V0dGluZ0FjdGlvbiIgLz4KICAgICAgICA8dWwgY2xhc3M9IkZyZWRTZXR0aW5ncyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZyZWRNb2R1bGUiKSAlXQogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkZyZWRNb2R1bGUiIGlkPSJbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5GcmVkTW9kdWxlIHwgaHRtbCAlXSIgWyUgRGF0YS5DaGVja2VkICVdLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZyZWRNb2R1bGUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRGVzY3JpcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb25maWciKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ1N1Ykdyb3VwPVslIERhdGEuTW9kdWxlTmFtZSAlXTtTeXNDb25maWdHcm91cD1GcmVkIiB0aXRsZT0iU2V0dGluZ3MiIGNsYXNzPSJGcmVkU2V0dGluZ3NMaW5rIiB0YXJnZXQ9Il9ibGFuayI+PGkgY2xhc3M9ImZhIGZhLWNvZyI+PC9pPjwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbmZpZyIpICVdCiAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJGcmVkTW9kdWxlIikgJV0KICAgICAgICA8L3VsPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgPC9mb3JtPgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCIgaWQ9IkRldmVsRnJlZEJveFNRTExvZyI+CiAgICA8aDE+CiAgICAgICAgU1FMIExvZwogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zZWFyY2ggRnJlZFNlYXJjaCIgdGl0bGU9IlNlYXJjaCI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJEZXZlbEZyZWRTUUxMb2ciPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRFbGVtZW50TGlzdCI+CiAgICAgICAgICAgIDxzcGFuPkV4ZWN1dGVkIDxzdHJvbmc+WyUgRGF0YS5BbGxTdGF0ZW1lbnRzICVdPC9zdHJvbmc+IFN0YXRlbWVudHM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPjxzdHJvbmc+WyUgRGF0YS5TZWxlY3RTdGF0ZW1lbnRzIHwgaHRtbCAlXTwvc3Ryb25nPiBTRUxFQ1RzICsgPHN0cm9uZz5bJSBEYXRhLkRvU3RhdGVtZW50cyB8IGh0bWwgJV08L3N0cm9uZz4gRE9zPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EdXJhdGlvbjogPHN0cm9uZz5bJSBEYXRhLlRpbWUgfCBodG1sICVdPC9zdHJvbmc+IHMuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aCB0aXRsZT0iVGltZSAobXMpIj5tczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJFcXVhbCBTdGF0ZW1lbnRzIj5FcXVhbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXRlbWVudDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJCaW5kIHBhcmFtZXRlcnMiPkJpbmQ8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5QYWNrYWdlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlRpbWUiIHRpdGxlPSJbJSBEYXRhLlRpbWUgfCBodG1sICVdIG1zIj5bJSBEYXRhLlRpbWUgfCB0cnVuY2F0ZSg2KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRXF1YWxTdGF0ZW1lbnRzIj5bJSBEYXRhLkVxdWFsU3RhdGVtZW50cyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iU1FMU3RhdGVtZW50Ij5bJSBEYXRhLlN0YXRlbWVudCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQmluZFBhcmFtZXRlcnMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3dCaW5kUGFyYW1ldGVycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJTaG93QmluZFBhcmFtZXRlcnMiIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLkJpbmRQYXJhbWV0ZXJzIHwgaHRtbCAlXSI+U2hvdzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIj5bJSBEYXRhLkJpbmRQYXJhbWV0ZXJzIHwgaHRtbCAlXTwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93QmluZFBhcmFtZXRlcnMiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJTdGFja1RyYWNlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhY2tUcmFjZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhY2tUcmFjZSB8IGh0bWwgJV08YnIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhY2tUcmFjZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGJvZHk+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICA8dHIgY2xhc3M9IkhpZGRlbiBGaWx0ZXJNZXNzYWdlIj4KICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5ObyBJdGVtcyBmb3VuZC48L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8IS0tIGpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0PgondXNlIHN0cmljdCc7CiQoJ2EuU2hvd0JpbmRQYXJhbWV0ZXJzJykudW5iaW5kKCdjbGljaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oRXZlbnQpIHsKICAgICQodGhpcykuaGlkZSgpLnBhcmVudCgpLmZpbmQoJ2RpdicpLnNob3coKTsKfSk7Cjwvc2NyaXB0Pgo8IS0tIGpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgU1RERVJSTG9nCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aW1lcyBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IiBpZD0iRGV2ZWxGcmVkU1RERVJSTG9nIj4KICAgICAgICA8cHJlIGNsYXNzPSJGcmVkTW9ub1NwYWNlIj5bJSBEYXRhLkhUTUxMaW5lcyB8IGh0bWwgJV08L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgTWlzc2luZyBUcmFuc2xhdGlvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iRnJlZFRvb2xCYXIiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQgRnJlZEVsZW1lbnRMaXN0IiBpZD0iRGV2ZWxGcmVkVHJhbnNsYXRpb25EZWJ1ZyI+ClslIERhdGEuSFRNTExpbmVzICVdCiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZwoKPWhlYWQxIFNZTk9QU0lTCgpoYW5kbGUgdGhlIGNvbmZpZyBsb2cgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQExvZ01lc3NhZ2VzOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgb3BlbiB0aGUgVHJhbnNsYXRpb25EZWJ1Zy5sb2cgZmlsZSB0byBnZXQgdGhlIHVudHJhbnNsYXRlZCB3b3JkcwogICAgbXkgJEZpbGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvQ29uZmlnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8JywgJEZpbGUgKSB7CiAgICAgICAgcHJpbnQgU1RERVJSICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkL1xuIiAuCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9Db25maWcubG9nIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIHdob2xlIGluZm9ybWF0aW9uCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiAvRlJFRC87CiAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsICRMaW5lOwogICAgfQoKICAgIGNsb3NlICRGaWxlaGFuZGxlOwogICAgcG9wIEBMb2dNZXNzYWdlczsKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgbXkgJUluZGl2aWR1YWxDb25maWcgPSAoKTsKCiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgICRMaW5lID1+IHMvXG4vLzsKICAgICAgICAkSW5kaXZpZHVhbENvbmZpZ3skTGluZX0rKzsKICAgIH0KCiAgICBATG9nTWVzc2FnZXMgPSAoKTsKICAgIGZvciBteSAkTGluZSAoIHNvcnQga2V5cyAlSW5kaXZpZHVhbENvbmZpZyApIHsKICAgICAgICBteSBAU3BsaXRlZExpbmUgPSBzcGxpdCAvOy8sICRMaW5lOwogICAgICAgIHB1c2ggQFNwbGl0ZWRMaW5lLCAkSW5kaXZpZHVhbENvbmZpZ3skTGluZX07CiAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsIFxAU3BsaXRlZExpbmU7CiAgICB9CgogICAgIyBzb3J0IHRoZSBkYXRhCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpDb25maWdMb2cnKTsKICAgIG15ICRPcmRlckJ5ID0gZGVmaW5lZCggJENvbmZpZy0+e09yZGVyQnl9ICkgPyAkQ29uZmlnLT57T3JkZXJCeX0gOiAzOwogICAgaWYgKCAkT3JkZXJCeSA9PSAzICkgewogICAgICAgIEBMb2dNZXNzYWdlcyA9IHNvcnQgeyAkYi0+WyRPcmRlckJ5XSA8PT4gJGEtPlskT3JkZXJCeV0gfSBATG9nTWVzc2FnZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBATG9nTWVzc2FnZXMgPSBzb3J0IHsgJGEtPlskT3JkZXJCeV0gY21wICRiLT5bJE9yZGVyQnldIH0gQExvZ01lc3NhZ2VzOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ01lc3NhZ2VzOwogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkRnJlZFNldHRpbmdzID0gJENvbmZpZ09iamVjdC0+R2V0T3JpZ2luYWwoJ0ZyZWQ6Ok1vZHVsZScpOwoKICAgIGlmICggISRGcmVkU2V0dGluZ3MgfHwgISRGcmVkU2V0dGluZ3MtPntDb25maWdMb2d9IHx8ICEkRnJlZFNldHRpbmdzLT57Q29uZmlnTG9nfS0+e0FjdGl2ZX0gKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICggISRQYXJhbXtIb21lfSApIHsKICAgICAgICAkUGFyYW17SG9tZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXRPcmlnaW5hbCgnSG9tZScpOwogICAgfQoKICAgICMgc2F2ZSB0aGUgd29yZCBpbiBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkUGFyYW17SG9tZX0gLiAnL3Zhci9mcmVkL0NvbmZpZy5sb2cnOwogICAgb3BlbiBteSAkRmlsZWhhbmRsZSwgJz4+JywgJEZpbGUgfHwgZGllICJDYW4ndCB3cml0ZSAkRmlsZSAhXG4iOwogICAgcHJpbnQgJEZpbGVoYW5kbGUgJFBhcmFte1doYXR9IC4gIlxuIjsKICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ1N3aXRjaDsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ1N3aXRjaAoKPWhlYWQxIFNZTk9QU0lTCgpoYW5kbGUgdGhlIGNvbmZpZyBsb2cgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6Q29uZmlnU3dpdGNoJyk7CgogICAgcmV0dXJuIGlmICEkQ29uZmlnLT57U2V0dGluZ3N9OwoKICAgIG15IEBDb25maWdJdGVtczsKICAgIGZvciBteSAkSXRlbSAoIHNvcnQgQHsgJENvbmZpZy0+e1NldHRpbmdzfSB9ICkgewogICAgICAgIHB1c2ggQENvbmZpZ0l0ZW1zLCB7CiAgICAgICAgICAgIEtleSAgID0+ICRJdGVtLAogICAgICAgICAgICBWYWx1ZSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJEl0ZW0pLAogICAgICAgIH07CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxAQ29uZmlnSXRlbXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbnNvbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZQoKPWhlYWQxIFNZTk9QU0lTCgpnaXZlcyB5b3UgYWxsIGZ1bmN0aW9ucyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgRlJFRC1jb25zb2xlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGRzIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkUmVmIChxdyhNb2R1bGVSZWYgSFRNTERhdGFSZWYgRnJlZE1vZHVsZXNSZWYpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRSZWZ9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUmVmISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgQE1vZHVsZXM7CiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAleyAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9IH0gKSB7CiAgICAgICAgaWYgKCAkTW9kdWxlIG5lICdDb25zb2xlJyApIHsKICAgICAgICAgICAgcHVzaCBATW9kdWxlcywgJE1vZHVsZTsKICAgICAgICB9CiAgICB9CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gXEBNb2R1bGVzOwoKICAgIGlmICggJHsgJFBhcmFte0hUTUxEYXRhUmVmfSB9ICF+IG0vRnJlZC1TZXR0aW5nLyAmJiAkeyAkUGFyYW17SFRNTERhdGFSZWZ9IH0gPX4gL1w8Ym9keS4qP1w+LyApCiAgICB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntTdGF0dXN9ID0gMTsKICAgIH0KCiAgICBpZiAoICR7ICRQYXJhbXtIVE1MRGF0YVJlZn0gfSAhfiBtL25hbWU9IkFjdGlvbiIgdmFsdWU9IkxvZ2luIi8gKSB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntTZXR0aW5nfSA9IDE7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkVudkR1bXA7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpUaGlzIG1ldGhvZCBpcyBqdXN0IGZvciBjb21wYXRiaWxpdHkuIE5vIGRhdGEgaXMgc2V0IGhlcmUsCmFzIHRoZSBuZWVkZWQgc2Vzc2lvbiBvYmplY3QgaXMgbm90IGVhc2lseSBhdmFpbGFibGUgaGVyZS4KCiAgICBteSAkRGF0YUdldE9rID0gJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNb2R1bGVSZWYgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2sKCj1oZWFkMSBTWU5PUFNJUwoKUGVyZm9ybSBIVE1MIFFBLgoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgRGF0YUdldCB7CiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludAoKPWhlYWQxIFNZTk9QU0lTCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wCgo9aGVhZDEgU1lOT1BTSVMKCmRvZXMgZXNzZW50aWFsbHkgbm90aGluZwoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKClRoaXMgbWV0aG9kIGlzIGp1c3QgZm9yIGNvbXBhdGJpbGl0eS4gTm8gZGF0YSBpcyBzZXQgaGVyZSwKYXMgdGhlIG5lZWRlZCBzZXNzaW9uIG9iamVjdCBpcyBub3QgZWFzaWx5IGF2YWlsYWJsZSBoZXJlLgoKICAgIG15ICREYXRhR2V0T2sgPSAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoIE1vZHVsZVJlZiApKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNRTExvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgVGltZTo6SGlSZXMgcXcoZ2V0dGltZW9mZGF5IHR2X2ludGVydmFsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nCgo9aGVhZDEgU1lOT1BTSVMKClNob3cgYSBsb2cgb2YgdGhlIFNRTCBzdGF0ZW1lbnRzIGV4ZWN1dGVkIHNpbmNlIHRoZSBsYXN0IHZpZXcgb2YgdGhlIGxvZy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBpZiAoCiAgICAgICAgcmVmICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6TW9kdWxlJykKICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57U1FMTG9nfQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0FjdGl2ZX0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57U1FMTG9nfS0+e0FjdGl2ZX07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBmaWxlIFNRTC5sb2cKICAgIG15ICRGaWxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL1NRTC5sb2cnOwoKICAgIG15ICRGaWxlaGFuZGxlOwogICAgaWYgKCAhb3BlbiAkRmlsZWhhbmRsZSwgJzwnLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1FMLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgQExvZ01lc3NhZ2VzOwogICAgbXkgJERvU3RhdGVtZW50cyAgICAgPSAwOwogICAgbXkgJFNlbGVjdFN0YXRlbWVudHMgPSAwOwoKICAgICMgc2x1cnAgaW4gdGhlIHdob2xlIGxvZ2ZpbGUsIGluIG9yZGVyIHRvIGFjY2VzcyB0aGUgbGluZXMgYXQgdGhlIGVuZAogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKCiAgICAgICAgIyBkbyBub3Qgc2hvdyB0aGUgbG9nIGZyb20gdGhlIHByZXZpb3VzIHJlcXVlc3QKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwoKICAgICAjIGEgdHlwaWNhbCBsaW5lIGZyb20gU1FMLmxvZyBsb29rcyBsaWtlOgogICAgICMgU1FMLVNFTEVDVCMjISMjU0VMRUNUIDEgKyAxIEZST00gZHVhbCBXSEVSRSBpZCA9ID8gQU5EIHVzZXJfaWQgPSA/IyMhIyMxLCAyIyMhIyNLZXJuZWw6OlN5c3RlbTo6VXNlciMjISMjMC4wMDQzOTcKICAgICAgICBteSBAU3BsaXRMb2dMaW5lID0gc3BsaXQgLyMjISMjLywgJExpbmU7CiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzBdIGVxICdTUUwtRE8nICYmICRTcGxpdExvZ0xpbmVbMV0gPX4gbXsgXEEgU0VMRUNUIH14bXMgKSB7CiAgICAgICAgICAgICRTcGxpdExvZ0xpbmVbMF0gLj0gJyAtIFBlcmhhcHMgeW91IGhhdmUgYW4gZXJyb3IgeW91IHVzZSBETyBmb3IgYSBTRUxFQ1QtU3RhdGVtZW50Oic7CiAgICAgICAgfQogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCBcQFNwbGl0TG9nTGluZTsKCiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzBdIGVxICdTUUwtRE8nICkgewogICAgICAgICAgICAkRG9TdGF0ZW1lbnRzKys7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRTcGxpdExvZ0xpbmVbNF0gKSB7CiAgICAgICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57VGltZX0gKz0gJFNwbGl0TG9nTGluZVs0XTsKICAgICAgICB9CiAgICB9CgogICAgcG9wIEBMb2dNZXNzYWdlczsKICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgICMgZmluZCBTUUwtc3RhdGVtZW50cyB1c2VkIG11bHRpcGxlIHRpbWVzCiAgICBteSAlTXVsdGlVc2VkOwogICAgZm9yIG15ICRTdGF0ZW1lbnRSZWYgKEBMb2dNZXNzYWdlcykgewogICAgICAgICRNdWx0aVVzZWR7ICRTdGF0ZW1lbnRSZWYtPlsxXSB9Kys7CiAgICB9CiAgICBmb3IgbXkgJFN0YXRlbWVudFJlZiAoQExvZ01lc3NhZ2VzKSB7CiAgICAgICAgcHVzaCBAeyRTdGF0ZW1lbnRSZWZ9LCAoICRNdWx0aVVzZWR7ICRTdGF0ZW1lbnRSZWYtPlsxXSB9IC0gMSApOwogICAgfQoKICAgICMgQWRkIG1hcmtlciBmb3IgdGhlIG5leHQgdmlldwogICAgJFNlbGYtPkluc2VydFdvcmQoIFdoYXQgPT4gIkZSRURcbiIgKTsKCiAgICAjIHNldCB0aGUgZGF0YSBmb3IgdGhlIG91dHB1dCB0ZW1wbGF0ZQogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSAgICAgICAgICAgICA9IFxATG9nTWVzc2FnZXM7CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9ICAgID0gc2NhbGFyIEBMb2dNZXNzYWdlczsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RG9TdGF0ZW1lbnRzfSAgICAgPSAkRG9TdGF0ZW1lbnRzOwogICAgJFBhcmFte01vZHVsZVJlZn0tPntTZWxlY3RTdGF0ZW1lbnRzfSA9ICRQYXJhbXtNb2R1bGVSZWZ9LT57QWxsU3RhdGVtZW50c30gLSAkRG9TdGF0ZW1lbnRzOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBJbnNlcnRXb3JkKCkKCkFwcGVuZCBhIHNlbWljb2xvbiBzZXBlcmF0ZWQgcmVjb3JkIGxpbmUgdG8gdGhlIHRoZSBTUUwgbG9nLgoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ1NRTC1TRUxFQ1Q7U0VMRUNUIDEgKyAxIEZST00gZHVhbDtLZXJuZWw6OlN5c3RlbTo6VXNlcjswLjAwNDM5NycsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1doYXR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXaGF0IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBGaXh1cCBtdWx0aWxpbmUgU1FMIHN0YXRlbWVudHMKICAgIGlmICggJFBhcmFte1doYXR9ID1+IG0vXlNRTC9zbXggKSB7CiAgICAgICAgbXkgQFdoYXQgPSBzcGxpdCAnIyMhIyMnLCAkUGFyYW17V2hhdH07CgogICAgICAgICMgaGlkZSB3aGl0ZSBzcGFjZQogICAgICAgICRXaGF0WzFdID1+IHMvXHI/XG4vIC9zbXhnOwogICAgICAgICRXaGF0WzFdID1+IHMvXHMrLyAvc214ZzsKICAgICAgICAkUGFyYW17V2hhdH0gPSBqb2luICcjIyEjIycsIEBXaGF0OwogICAgfQoKICAgICMgYXBwcGVuZCB0aGUgbGluZSB0byBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CiAgICBvcGVuIG15ICRGaWxlaGFuZGxlLCAnPj4nLCAkRmlsZSB8fCBkaWUgIkNhbid0IHdyaXRlICRGaWxlICFcbiI7CiAgICBwcmludCAkRmlsZWhhbmRsZSAkUGFyYW17V2hhdH0sICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIFByZVN0YXRlbWVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAoICEkU2VsZi0+e0FjdGl2ZX0gKTsKCiAgICAkU2VsZi0+e1ByZXBhcmVTdGFydH0gPSBbZ2V0dGltZW9mZGF5XTsKfQoKc3ViIFBvc3RTdGF0ZW1lbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgbXkgJERpZmZUaW1lID0gdHZfaW50ZXJ2YWwoICRTZWxmLT57UHJlcGFyZVN0YXJ0fSApOwoKICAgIG15IEBTdGFja1RyYWNlOwoKICAgIENPVU5UOgogICAgZm9yICggbXkgJENvdW50ID0gMTsgJENvdW50IDwgMzA7ICRDb3VudCsrICkgewogICAgICAgIG15ICggJFBhY2thZ2UxLCAkRmlsZW5hbWUxLCAkTGluZTEsICRTdWJyb3V0aW5lMSApID0gY2FsbGVyKCRDb3VudCk7CiAgICAgICAgbGFzdCBDT1VOVCBpZiAhJExpbmUxOwogICAgICAgIG15ICggJFBhY2thZ2UyLCAkRmlsZW5hbWUyLCAkTGluZTIsICRTdWJyb3V0aW5lMiApID0gY2FsbGVyKCAxICsgJENvdW50ICk7CiAgICAgICAgJFN1YnJvdXRpbmUyIHx8PSAkMDsgICAgIyBpZiB0aGVyZSBpcyBubyBjYWxsZXIgbW9kdWxlIHVzZSB0aGUgZmlsZSBuYW1lCiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpTeXN0ZW0vSzo6Uy87CiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpNb2R1bGVzL0s6Ok0vOwogICAgICAgICRTdWJyb3V0aW5lMiA9fiBzL0tlcm5lbDo6T3V0cHV0L0s6Ok8vOwogICAgICAgIHB1c2ggQFN0YWNrVHJhY2UsICIkU3Vicm91dGluZTI6JExpbmUxIjsKICAgIH0KCiAgICBteSBAQXJyYXkgPSBtYXAgeyBkZWZpbmVkICRfID8gJHskX30gOiAndW5kZWYnIH0gQHsgJFBhcmFte0JpbmR9IHx8IFtdIH07CgogICAgIyBSZXBsYWNlIG5ld2xpbmVzCiAgICBAQXJyYXkgPSBtYXAgeyAkXyA9fiBze1xyP1xufXtbXFxuXX1zbXhnOyAkXzsgfSBAQXJyYXk7ICAgICMjIG5vIGNyaXRpYwoKICAgICMgTGltaXQgYmluZCBwYXJhbSBsZW5ndGgKICAgIEBBcnJheSA9IG1hcCB7IGxlbmd0aCgkXykgPiAxMDAgPyAoIHN1YnN0ciggJF8sIDAsIDEwMCApIC4gJ1suLi5dJyApIDogJF8gfSBAQXJyYXk7CiAgICBteSAkQmluZFN0cmluZyA9IEBBcnJheSA/IGpvaW4gJywgJywgQEFycmF5IDogJyc7CgogICAgbXkgJFByZWZpeCA9ICRQYXJhbXtTUUx9ID1+IG17XlNFTEVDVH1peG1zID8gJ1NFTEVDVCcgOiAnRE8nOwoKICAgICRTZWxmLT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gIlNRTC0kUHJlZml4IyMhIyMkUGFyYW17U1FMfSMjISMjJEJpbmRTdHJpbmcjIyEjIyIKICAgICAgICAgICAgLiBqb2luKCAnOycsIEBTdGFja1RyYWNlICkKICAgICAgICAgICAgLiAiIyMhIyMkRGlmZlRpbWUiLAogICAgKTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNUREVSUkxvZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgSU86OkhhbmRsZTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nCgo9aGVhZDEgU1lOT1BTSVMKCmhhbmRsZSB0aGUgU1RERVJSIGxvZyBkYXRhCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KE1vZHVsZVJlZikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIGdldCBldmVyeXRoaW5nIHRvIGRpc2sgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0IChvdGhlcndpc2UgY29udGVudCBjb3VsZCBiZSBsb3N0KS4KICAgIFNUREVSUi0+Zmx1c2goKTsKCiAgICAjIG9wZW4gdGhlIFNUREVSUi5sb2cgZmlsZSB0byBnZXQgdGhlIFNUREVSUiBtZXNzYWdlcwogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKCiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPDplbmNvZGluZyhVVEYtOCknLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8gb3IgL0tlcm5lbC9Db25maWcvRmlsZXMvQUFBRnJlZC5wbS4iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1RERVJSLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBSZWFkIGxvZyB1bnRpbCBsYXN0ICJGUkVEIiBtYXJrZXIuCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiBteyBcQSBccyogRlJFRCBccyogXHp9eG1zOwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHByaW50IFNUREVSUiAiXG5GUkVEXG4iOwoKICAgICMgdHJpbSB0aGUgbG9nIG1lc3NhZ2UgYXJyYXkKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgIyB0cmltIHRoZSBsb2cgbWVzc2FnZSBhcnJheQogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgQExvZ01lc3NhZ2VzICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnCgo9aGVhZDEgU1lOT1BTSVMKCmhhbmRsZSB0aGUgdHJhbnNsYXRpb24gZGVidWcgZGF0YQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgaWYgKAogICAgICAgIHJlZiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpCiAgICAgICAgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdGcmVkOjpNb2R1bGUnKS0+e1RyYW5zbGF0aW9uRGVidWd9CiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57QWN0aXZlfSA9ICRDb25maWdPYmplY3QtPkdldCgnRnJlZDo6TW9kdWxlJyktPntUcmFuc2xhdGlvbkRlYnVnfS0+e0FjdGl2ZX07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBUcmFuc2xhdGlvbkRlYnVnLmxvZyBmaWxlIHRvIGdldCB0aGUgdW50cmFuc2xhdGVkIHdvcmRzCiAgICBteSAkRmlsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpIC4gJy92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8OmVuY29kaW5nKFVURi04KScsICRGaWxlICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBbCiAgICAgICAgICAgICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkLyIsCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyIKICAgICAgICBdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkaXN0aW5jdCBlbnRyaWVzIGZyb20gVHJhbnNsYXRpb25EZWJ1Zy5sb2cKICAgICMgdGlsbCB0aGUgbGFzdCAnRlJFRCcgZW50cnkKICAgIG15ICVMb2dMaW5lczsKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKCByZXZlcnNlIDwkRmlsZWhhbmRsZT4gKSB7CiAgICAgICAgbGFzdCBMSU5FIGlmICRMaW5lID1+IC9GUkVELzsKCiAgICAgICAgY2hvbXAgJExpbmU7CiAgICAgICAgbmV4dCBMSU5FIGlmICRMaW5lIGVxICcnOwoKICAgICAgICAjIHNraXAgZHVwbGljYXRlIGVudHJpZXMKICAgICAgICBuZXh0IExJTkUgaWYgJExvZ0xpbmVzeyRMaW5lfTsKCiAgICAgICAgJExvZ0xpbmVzeyRMaW5lfSA9IDE7CiAgICB9CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICAkU2VsZi0+SW5zZXJ0V29yZCggV2hhdCA9PiAiRlJFRFxuIiApOwoKICAgIG15IEBMb2dMaW5lcyA9IHNvcnQgeyAkYSBjbXAgJGIgfSBrZXlzICVMb2dMaW5lczsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ0xpbmVzOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBJbnNlcnRXb3JkKCkKClNhdmUgYSB3b3JkIGluIHRoZSB0cmFuc2xhdGlvbiBkZWJ1ZyBsb2cKCiAgICAkQmFja2VuZE9iamVjdC0+SW5zZXJ0V29yZCgKICAgICAgICBXaGF0ID0+ICdhIHdvcmQnLAogICAgKTsKCj1jdXQKCnN1YiBJbnNlcnRXb3JkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17V2hhdH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV2hhdCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2F2ZSB0aGUgd29yZCBpbiBsb2cgZmlsZQogICAgbXkgJEZpbGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvVHJhbnNsYXRpb25EZWJ1Zy5sb2cnOwogICAgb3BlbiBteSAkRmlsZWhhbmRsZSwgJz4+OmVuY29kaW5nKFVURi04KScsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIGFsbCBsb2dpYyBmb3IgRnJlZAogKi8KQ29yZS5GcmVkID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0cyBnZW5lcmljIGZyZWQgZnVuY3Rpb25zCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgIHZhciBXaWRnZXRTdGF0dXMgPSB7fSwKICAgICAgICAgICAgS2V5OwoKICAgICAgICAvLyBnZXQgc3RhdHVzIG9mIEZyZWQgd2lkZ2V0cwogICAgICAgIGlmICh3aW5kb3cgJiYgd2luZG93LmxvY2FsU3RvcmFnZSkgewogICAgICAgICAgICBXaWRnZXRTdGF0dXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0ZSRURfd2lkZ2V0X3N0YXR1cycpOwoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIFdpZGdldFN0YXR1cyA9IEpTT04ucGFyc2UoV2lkZ2V0U3RhdHVzKTsKICAgICAgICAgICAgICAgIGlmIChXaWRnZXRTdGF0dXMgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBXaWRnZXRTdGF0dXMgPSB7fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICBXaWRnZXRTdGF0dXMgPSB7fTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChLZXkgaW4gV2lkZ2V0U3RhdHVzKSB7CiAgICAgICAgICAgICAgICBpZiAoV2lkZ2V0U3RhdHVzLmhhc093blByb3BlcnR5KEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAkKCcuRGV2ZWxGcmVkQm94Q29udGVudCMnICsgS2V5KS5yZW1vdmVDbGFzcygnRXhwYW5kZWQgQ29sbGFwc2VkJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKFdpZGdldFN0YXR1c1tLZXldID09PSAnQ29sbGFwc2VkJyB8fCBXaWRnZXRTdGF0dXNbS2V5XSA9PT0gJ0V4cGFuZGVkJykgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjJyArIEtleSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcyhXaWRnZXRTdGF0dXNbS2V5XSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcyhXaWRnZXRTdGF0dXNbS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBhbGwgRnJlZCB3aWRnZXRzIHdpdGhvdXQgYSBzYXZlZCB3aWRnZXQgc3RhdHVzIGFyZSBub3cgZXhwYW5kZWQKICAgICAgICAkKCcuRGV2ZWxGcmVkQm94Q29udGVudCcpLmZpbHRlcignOm5vdCguQ29sbGFwc2VkLCAuRXhwYW5kZWQpJykuYWRkQ2xhc3MoJ0V4cGFuZGVkJyk7CgogICAgICAgIC8vIFRvb2xiYXIgaXRlbXMKICAgICAgICAkKCcuRnJlZFNlYXJjaCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLkRldmVsRnJlZEJveCcpLmZpbmQoJy5GcmVkUXVpY2tTZWFyY2gnKS50b2dnbGUoKTsKICAgICAgICB9KTsKICAgICAgICAkKCcuRnJlZE1pbmltaXplJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyICRXaWRnZXRFbGVtZW50ID0gJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkRldmVsRnJlZEJveENvbnRlbnQnKTsKCiAgICAgICAgICAgICRXaWRnZXRFbGVtZW50CiAgICAgICAgICAgICAgICAuc2xpZGVUb2dnbGUoJ2Zhc3QnKQogICAgICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCdDb2xsYXBzZWQnKQogICAgICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCdFeHBhbmRlZCcpOwoKICAgICAgICAgICAgJFdpZGdldEVsZW1lbnQKICAgICAgICAgICAgICAgIC5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnRXhwYW5kZWQgQ29sbGFwc2VkJykKICAgICAgICAgICAgICAgIC5hZGRDbGFzcygkV2lkZ2V0RWxlbWVudC5oYXNDbGFzcygnRXhwYW5kZWQnKSA/ICdFeHBhbmRlZCcgOiAnQ29sbGFwc2VkJyk7CgogICAgICAgICAgICBXaWRnZXRTdGF0dXNbJFdpZGdldEVsZW1lbnQuYXR0cignaWQnKV0gPSAkV2lkZ2V0RWxlbWVudC5oYXNDbGFzcygnQ29sbGFwc2VkJykgPyAnQ29sbGFwc2VkJyA6ICdFeHBhbmRlZCc7CiAgICAgICAgICAgIGlmICh3aW5kb3cgJiYgd2luZG93LmxvY2FsU3RvcmFnZSkgewogICAgICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCdGUkVEX3dpZGdldF9zdGF0dXMnLCBKU09OLnN0cmluZ2lmeShXaWRnZXRTdGF0dXMpKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgICQoJy5GcmVkQ2xvc2UnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKS5yZW1vdmUoKTsKICAgICAgICB9KTsKICAgICAgICAkKCcuRnJlZENsb3NlQWxsJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCgnLkRldmVsRnJlZEJveCcpLnJlbW92ZSgpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBlbXB0eSB0aGUgc2VhcmNoIGZpZWxkCiAgICAgICAgJCgnLkZyZWRRdWlja1NlYXJjaCBpJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCdpbnB1dCcpLnZhbCgnJykudHJpZ2dlcigna2V5ZG93bicpOwogICAgICAgIH0pOwoKICAgICAgICAvLyByZWdpc3RlciB0aGUgdGFibGUgZmlsdGVyIG9uIHRoZSBxdWlja3NlYXJjaCBmaWVsZHMgKG9ubHkgaWYgQ29yZS5VSS5UYWJsZSBpcyBhdmFpbGFibGUpCiAgICAgICAgaWYgKENvcmUuRGVidWcuQ2hlY2tEZXBlbmRlbmN5KCdGcmVkJywgJ0NvcmUuVUkuVGFibGUnLCAnQ29yZS5VSS5UYWJsZScsIHRydWUpKSB7CiAgICAgICAgICAgICQoJy5GcmVkUXVpY2tTZWFyY2ggaW5wdXQnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCh0aGlzKSwgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRUYWJsZURlZmF1bHQnKSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJCgnLkZyZWRRdWlja1NlYXJjaCwgLkZyZWRTZWFyY2gnKS5yZW1vdmUoKTsKICAgICAgICB9CgogICAgICAgIC8vIHJlZ2lzdGVyIG5ldyBwb3B1cCBwcm9maWxlIGFzIG5lZWRlZCBieSBmcmVkCiAgICAgICAgQ29yZS5VSS5Qb3B1cC5Qcm9maWxlQWRkKCdGcmVkU2V0dGluZ3MnLCB7CiAgICAgICAgICAgIFdpbmRvd1VSTFBhcmFtczogImRlcGVuZGVudD15ZXMsbG9jYXRpb249bm8sbWVudWJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz1ubyx0b29sYmFyPW5vIiwKICAgICAgICAgICAgTGVmdDogICAgICAgICAgICAxMDAsCiAgICAgICAgICAgIFRvcDogICAgICAgICAgICAgMTAwLAogICAgICAgICAgICBXaWR0aDogICAgICAgICAgIDQwMCwKICAgICAgICAgICAgSGVpZ2h0OiAgICAgICAgICA1MDAKICAgICAgICB9KTsKCiAgICAgICAgLy8gb3BlbiB0aGUgc2V0dGluZ3MgcG9wdXAKICAgICAgICAkKCcuRnJlZFNldHRpbmdzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgQ29yZS5VSS5Qb3B1cC5PcGVuUG9wdXAoJCh0aGlzKS5kYXRhKCd1cmwnKSwgJ0ZyZWRTZXR0aW5ncycsICdGcmVkU2V0dGluZ3MnKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU1FMIGxvZzogU2hvdyBiaW5kIHBhcmFtZXRlcnMgb24gY2xpY2sgb2YgJ3Nob3cnIGxpbmsKICAgICAgICAkKCcuU2hvd0JpbmRQYXJhbWV0ZXJzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCcuSGlkZGVuJykudG9nZ2xlKCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnLkZyZWRTZXR0aW5nc0xpbmsnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gbWFrZSB0aGUgZnJlZCBib3ggZHJhZ2dhYmxlCiAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmRyYWdnYWJsZSh7CiAgICAgICAgICAgIGhhbmRsZTogJ2gxJywKICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CiAgICAgICAgICAgICAgICB2YXIgVG9wID0gdWkub2Zmc2V0LnRvcCwKICAgICAgICAgICAgICAgICAgICBMZWZ0ID0gdWkub2Zmc2V0LmxlZnQ7CgogICAgICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ID0gTGVmdDsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV90b3AgID0gVG9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNhdmUgZnJlZCdzIHdpbmRvdyBwb3NpdGlvbgogICAgICAgIChmdW5jdGlvbigpewogICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IHVuZGVmaW5lZCAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX3RvcCkgewoKICAgICAgICAgICAgICAgIHZhciBTYXZlZExlZnQgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfbGVmdCwKICAgICAgICAgICAgICAgICAgICBTYXZlZFRvcCAgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfdG9wLAogICAgICAgICAgICAgICAgICAgIEZyZWRXaWR0aCAgPSAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykud2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICBGcmVkSGVpZ2h0ID0gJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmhlaWdodCgpOwoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgPiAkKCdib2R5Jykud2lkdGgoKSkgewogICAgICAgICAgICAgICAgICAgIFNhdmVkTGVmdCA9ICQoJ2JvZHknKS53aWR0aCgpIC0gRnJlZFdpZHRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKFNhdmVkVG9wID4gJCgnYm9keScpLmhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAgICAgU2F2ZWRUb3AgPSAkKCdib2R5JykuaGVpZ2h0KCkgLSBGcmVkSGVpZ2h0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgJiYgU2F2ZWRUb3ApIHsKICAgICAgICAgICAgICAgICAgICAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykuY3NzKCdsZWZ0JywgU2F2ZWRMZWZ0ICsgJ3B4Jyk7CiAgICAgICAgICAgICAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmNzcygndG9wJywgU2F2ZWRUb3AgKyAncHgnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0oKSk7CiAgICB9OwoKICAgIFRhcmdldE5TLkluaXQoKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5GcmVkLkpTTGludCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdldE5TIGFzIENvcmUuRnJlZC5IVE1MQ2hlY2sKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciB0aGUgRnJlZCBtb2R1bGUgSFRNTENIZWNrCiAqLwpDb3JlLkZyZWQuSFRNTENoZWNrID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBDaGVja0Z1bmN0aW9ucyA9IFtdLAogICAgICAgIEVycm9yc0ZvdW5kID0gZmFsc2U7CgogICAgZnVuY3Rpb24gaHRtbEVuY29kZShUZXh0KXsKICAgICAgICByZXR1cm4gVGV4dC5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gZXNjYXBlU2VsZWN0b3IgKFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnJlcGxhY2UoLygjfDp8XC58XFt8XF0pL2csJ1xcJDEnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvdXRwdXRFcnJvcigkRWxlbWVudCwgRXJyb3JUeXBlLCBFcnJvckRlc2NyaXB0aW9uLCBIaW50KXsKICAgICAgICB2YXIgJENvbnRhaW5lciwKICAgICAgICAgICAgQ29kZSwKICAgICAgICAgICAgTWVzc2FnZTsKCiAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgRXJyb3JzRm91bmQgPSB0cnVlOwoKICAgICAgICAvLyBHZXQgZWxlbWVudCBIVE1MIGJ5IHdyYXBwaW5nIGl0IGluIGEgZGl2IGFuZCBjYWxsaW5nIC5odG1sKCkgb24gdGhhdAogICAgICAgICRDb250YWluZXIgPSAkKCc8ZGl2PjwvZGl2PicpOwogICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkRWxlbWVudC5jbG9uZSgpICk7CgogICAgICAgIENvZGUgPSAkQ29udGFpbmVyLmh0bWwoKTsKICAgICAgICBpZiAoQ29kZS5sZW5ndGggPiAxNjApIHsKICAgICAgICAgICAgQ29kZSA9IENvZGUuc3Vic3RyaW5nKDAsIDE2MCkgKyAnLi4uJzsKICAgICAgICB9CgogICAgICAgIE1lc3NhZ2UgPSAkKCc8cCBjbGFzcz0iU21hbGwiPjwvcD4nKTsKICAgICAgICBNZXNzYWdlLmFwcGVuZCgnPHNwYW4gY2xhc3M9IkVycm9yIj5FcnJvcjo8L3NwYW4+IDxzdHJvbmc+JyArIEVycm9yRGVzY3JpcHRpb24gKyAnPC9zdHJvbmc+PGRpdj4nICsgSGludCArICc8L2Rpdj48ZGl2Pjxjb2RlPicgKyBodG1sRW5jb2RlKENvZGUpICsgJzwvY29kZT48L2Rpdj4nKTsKICAgICAgICAkKCcjRnJlZEhUTUxDaGVja1Jlc3VsdHMnKS5hcHBlbmQoTWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBQZXJmb3JtcyB2YXJpb3VzIGFjY2Vzc2liaWxpdHkgY2hlY2tzIHRvIHNlZSBpZiB0aGUgSFRNTCBjb2RlCiAgICAgKiAgICAgIHZpb2xhdGVzIHNvbWUgb2Ygb3VyIGd1aWRlbGluZXMuCiAgICAgKiAgICAgIFJldHVybnMgbm90aGluZywgYnV0IGNhbGxzIE91dHB1dEVycm9yIGlmIGFuIGVycm9yIHdhcyBmb3VuZC4KICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQWNjZXNzaWJpbGl0eSgpIHsKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGlucHV0IGVsZW1lbnRzIGVpdGhlciBoYXZlIGEgbGFiZWwgb3IgYW4gYXNzaWduZWQgdGl0bGUgdGV4dAogICAgICAgICAqLwogICAgICAgICQoJ2lucHV0OnRleHQ6dmlzaWJsZSwgaW5wdXQ6cGFzc3dvcmQ6dmlzaWJsZSwgaW5wdXQ6Y2hlY2tib3g6dmlzaWJsZSwgaW5wdXQ6cmFkaW86dmlzaWJsZSwgc2VsZWN0OnZpc2libGUsIHRleHRhcmVhOnZpc2libGUnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksCiAgICAgICAgICAgICAgICAkTGFiZWwgPSAkKFtdKSwKICAgICAgICAgICAgICAgIFRpdGxlOwoKICAgICAgICAgICAgLy8gSWdub3JlIGVsZW1lbnRzIHdoaWNoIGhhdmUgYSBwbGFjZWhvbGRlciB0ZXh0CiAgICAgICAgICAgIGlmICgkdGhpcy5hdHRyKCdwbGFjZWhvbGRlcicpICYmICR0aGlzLmF0dHIoJ3BsYWNlaG9sZGVyJykubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGZpcnN0IGxvb2sgZm9yIGxhYmVscyB3aGljaCByZWZlciB0byB0aGlzIGVsZW1lbnQgYnkgaWQKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ2lkJykgJiYgJHRoaXMuYXR0cignaWQnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICRMYWJlbCA9ICQoJ2xhYmVsW2Zvcj0nICsgZXNjYXBlU2VsZWN0b3IoJHRoaXMuYXR0cignaWQnKSkgICsgJ10nKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyB0aGVuIGxvb2sgZm9yIGxhYmVscyB3aGljaCBzdXJyb3VuZCB0aGUgY3VycmVudCBlbGVtZW50CiAgICAgICAgICAgIGlmICghJExhYmVsLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJExhYmVsID0gJHRoaXMucGFyZW50cygnbGFiZWwnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRMYWJlbC5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAnQWNjZXNzaWJpbGl0eU11bHRpcGxlTGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdJbnB1dCBlbGVtZW50IHdpdGggbW9yZSB0aGFuIG9uZSBhc3NpZ25lZCBsYWJlbHMnLAogICAgICAgICAgICAgICAgICAgICdQbGVhc2UgbWFrZSBzdXJlIHRoYXQgb25seSBvbmUgbGFiZWwgaXMgcHJlc2VudCBmb3IgdGhpcyBpbnB1dCBlbGVtZW50LicKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGZpcnN0IGNoZWNrIGlmIGEgdGl0bGUgYXR0cmlidXRlIGlzIHByZXNlbnQsIHRoYXQgaXMgYWxzbyBvayBmb3IgYWNjZXNzaWJpbGl0eQogICAgICAgICAgICBUaXRsZSA9ICR0aGlzLmF0dHIoJ3RpdGxlJyk7CiAgICAgICAgICAgIGlmIChUaXRsZSAmJiBUaXRsZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gb2ssIG5vIHRpdGxlIGF2YWlsYWJsZSwgbm93IGxvb2sgZm9yIGFuIGFzc2lnbmVkIGxhYmVsIGVsZW1lbnQKICAgICAgICAgICAgaWYgKCEkTGFiZWwgfHwgISRMYWJlbC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5TWlzc2luZ0xhYmVsJywKICAgICAgICAgICAgICAgICAgICAnSW5wdXQgZWxlbWVudCB3aXRob3V0IGEgZGVzY3JpYmluZyBsYWJlbCwgcGxhY2Vob2xkZXIgb3IgdGl0bGUgYXR0cmlidXRlJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIGFkZCBhIHBsYWNlaG9sZGVyIG9yIHRpdGxlIGF0dHJpYnV0ZSBvciBhIGxhYmVsIGVsZW1lbnQgd2l0aCBhICJzcGVha2luZyIgZGVzY3JpcHRpb24gZm9yIHRoaXMgZWxlbWVudC4nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8qCiAgICAgICAgICogY2hlY2sgaWYgbGlua3MgaGF2ZSBlaXRoZXIgYSB0ZXh0IG9yIGEgdGl0bGUKICAgICAgICAgKi8KICAgICAgICAkKCdhJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwoKICAgICAgICAgICAgLy8gaWdub3JlIGlmIGl0J3MgYSAiYSBuYW1lIiBhbmQgbm8gImEgaHJlZiIKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ25hbWUnKSAmJiAhJHRoaXMuYXR0cignaHJlZicpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGxvZyBpZiBhbiBhdHRyaWJ1dGUgdGl0bGUgZXh0aXN0cyBidXQgbm90aGluZyBpcyBpbiB0aGVyZSwgc29tZXRoaW5nIG1pc3NlZCBzb21lYm9keSAoZS4gZy4gdGl0bGU9IiIpCiAgICAgICAgICAgICQuZWFjaCgkdGhpc1swXS5hdHRyaWJ1dGVzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5uYW1lID09PSAndGl0bGUnICYmICF0aGlzLnZhbHVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc2liaWxpdHlJbmFjY2Vzc2libGVMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsgd2l0aCB0aXRsZSBidXQgd2l0aG91dCB2YWx1ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgbWFrZSBzdXJlIHRoYXQgZXZlcnkgbGluayBoYXMgYSB0aXRsZSBhdHRyaWJ1dGUgbm90IGVtcHR5LicKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgaXMgb2ssIGlmIHRleHQgaW4gYSBocmVmIGV4aXN0cwogICAgICAgICAgICBpZiAoJHRoaXMudGV4dCgpICYmICR0aGlzLnRleHQoKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBpcyBvaywgaWYgdGl0bGUgaW4gYSBocmVmIGV4aXN0cwogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cigndGl0bGUnKSAmJiAkdGhpcy5hdHRyKCd0aXRsZScpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgJ0FjY2Vzc2liaWxpdHlJbmFjY2Vzc2libGVMaW5rJywKICAgICAgICAgICAgICAgICdMaW5rIHdpdGhvdXQgdGV4dCBvciB0aXRsZScsCiAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IGxpbmsgaGFzIGVpdGhlciBhIHRleHQgY29udGVudCBvciBhIHRpdGxlIGF0dHJpYnV0ZSB0aGF0IGNhbiBiZSB1c2VkIGJ5IGEgc2NyZWVucmVhZGVyIHRvIGlkZW50aWZ5IHRoZSBsaW5rLicKICAgICAgICAgICAgKTsKCiAgICAgICAgfSk7CiAgICB9CiAgICBDaGVja0Z1bmN0aW9ucy5wdXNoKENoZWNrQWNjZXNzaWJpbGl0eSk7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBQZXJmb3JtcyB2YXJpb3VzIGNoZWNrcyBmb3IgYmFkIEhUTUwgcHJhY3RpY2UuCiAgICAgKiAgICAgIFJldHVybnMgbm90aGluZywgYnV0IGNhbGxzIE91dHB1dEVycm9yIGlmIGFuIGVycm9yIHdhcyBmb3VuZC4KICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQmFkUHJhY3RpY2UoKSB7CiAgICAgICAgdmFyIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudCwKICAgICAgICAgICAgVXNlZElEcyA9IFtdOwoKICAgICAgICAvLyBjaGVjayBmb3IgaW5wdXRzIHdoaWNoIHNob3VsZCBiZSBidXR0b25zCiAgICAgICAgJCgnaW5wdXQ6YnV0dG9uLCBpbnB1dDpzdWJtaXQsIGlucHV0OnJlc2V0JykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlSW5wdXRCdXR0b24nLAogICAgICAgICAgICAgICAgJ09sZCBpbnB1dCB3aXRoIHR5cGUgYnV0dG9uLCBzdWJtaXQgb3IgcmVzZXQgZGV0ZWN0ZWQnLAogICAgICAgICAgICAgICAgJ1BsZWFzZSByZXBsYWNlIHRoaXMgZWxlbWVudCB3aXRoIGEgPGNvZGU+Jmx0O2J1dHRvbiZndDs8L2NvZGU+IHdpdGggdGhlIHNhbWUgdHlwZS4gSW5wdXQgZmllbGRzIG11c3Qgbm90IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBhbnkgbW9yZS4nCiAgICAgICAgICAgICk7CiAgICAgICAgfSk7CgogICAgICAgIC8qCiAgICAgICAgVE9ETzogbG9vayBmb3IgYSBmaXggZm9yIGNocm9tZS4gSW4gQ2hyb21lLCB0aGUgc2l6ZSBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgb2YgMjAgaWYKICAgICAgICAgICAgaXQgd2FzIG5vdCBzcGVjaWZpZWQuCiAgICAgICAgLy8gY2hlY2sgZm9yIGlucHV0cyB3aXRoIHNpemUgYXR0cmlidXRlcwogICAgICAgICQoJ2lucHV0Om5vdCg6ZmlsZSknKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7CiAgICAgICAgICAgIGlmICgkdGhpcy5hdHRyKCdzaXplJykgJiYgJHRoaXMuYXR0cignc2l6ZScpID4gMCkgewogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlSW5wdXRTaXplJywKICAgICAgICAgICAgICAgICAgICAnSW5wdXQgZWxlbWVudCB3aXRoIHNpemUgYXR0cmlidXRlJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgKHRoaXMgaXMgb25seSBhbGxvd2VkIGZvciBmaWxlIHVwbG9hZCBmaWVsZHMpLiBNYXliZSBhIGNsYXNzIGxpa2UgVzI1cGMsIFczM3BjIG9yIFc1MHBjIHdvdWxkIGFjaGlldmUgYSBzaW1pbGFyIGVmZmVjdC4nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgKi8KCiAgICAgICAgLy8gY2hlY2sgZm9yIG9ic29sZXRlIGVsZW1lbnRzCiAgICAgICAgT2Jzb2xldGVFbGVtZW50MlJlcGxhY2VtZW50ID0gewogICAgICAgICAgICBiOiAnPGNvZGU+Jmx0O3N0cm9uZyZndDs8L2NvZGU+JywKICAgICAgICAgICAgaTogJzxjb2RlPiZsdDtlbSZndDs8L2NvZGU+JywKICAgICAgICAgICAgZm9udDogJzxjb2RlPiZsdDtzcGFuJmd0OzwvY29kZT4gd2l0aCBhIENTUyBjbGFzcycsCiAgICAgICAgICAgIG5vYnI6ICdhIHByb3BlciBzdWJzdGl0dXRlIChkZXBlbmRzIG9uIGNvbnRleHQpJwogICAgICAgIH07CgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCdmb250LCBub2JyJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VPYnNvbGV0ZUVsZW1lbnQnLAogICAgICAgICAgICAgICAgICAgICdPYnNvbGV0ZSBlbGVtZW50IDxjb2RlPiZsdDsnICsgdGhpcy50YWdOYW1lICsgJyZndDs8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICdQbGVhc2UgcmVwbGFjZSBpdCB3aXRoOiAnICsgT2Jzb2xldGVFbGVtZW50MlJlcGxhY2VtZW50W3RoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpXSArICcuJwogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvLyBjaGVjayBmb3IgbXVsdGlwbGUgdXNhZ2Ugb2Ygb25lIElECiAgICAgICAgJCgnZGl2LCBzcGFuLCB1bCwgb2wsIGxpLCBhLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGlucHV0LCBzZWxlY3QnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpLAogICAgICAgICAgICAgICAgSUQgPSAkdGhpcy5hdHRyKCdpZCcpIHx8ICcnOwoKICAgICAgICAgICAgaWYgKElEKSB7CiAgICAgICAgICAgICAgICBpZiAoJC5pbkFycmF5KElELCBVc2VkSURzKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlTXVsdGlwbGVJRFVzYWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJRCB1c2VkIG11bHRpcGxlIHRpbWVzOiAnICsgSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0byB1c2UgYW4gSUQgb25seSBvbmNlIScKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgVXNlZElEcy5wdXNoKCQodGhpcykuYXR0cignaWQnKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgZnVuY3Rpb24gb2Jzb2xldGVDbGFzc0Vycm9yKENsYXNzTmFtZSkgewogICAgICAgICAgICAvLyBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgY2FsbGJhY2sgYnkgZWFjaCgpLgogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VPYnNvbGV0ZUNsYXNzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ09ic29sZXRlIGNsYXNzIDxjb2RlPiInICsgQ2xhc3NOYW1lICsgJyI8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcHJvcGVyIHN1YnN0aXR1dGUuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCcubWFpbmJvZHknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignbWFpbmJvZHknKSk7CiAgICAgICAgJCgnLmNvbnRlbnRrZXknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignY29udGVudGtleScpKTsKICAgICAgICAkKCcuY29udGVudHZhbHVlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ2NvbnRlbnR2YWx1ZScpKTsKICAgICAgICAkKCcuc2VhcmNoYWN0aXZlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ3NlYXJjaGFjdGl2ZScpKTsKICAgICAgICAkKCcuc2VhcmNocGFzc2l2ZScpLmVhY2gob2Jzb2xldGVDbGFzc0Vycm9yKCdzZWFyY2hwYXNzaXZlJykpOwoKICAgICAgICAvLyBjaGVjayBmb3IgZXZlbnRzCiAgICAgICAgJCgiZGl2IikuZWFjaChmdW5jdGlvbigpewoKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgICRDb250YWluZXIsCiAgICAgICAgICAgICAgICBDb2RlLAogICAgICAgICAgICAgICAgRXZlbnRzLAogICAgICAgICAgICAgICAgRXZlbnQ7CgogICAgICAgICAgICAvLyBEb24ndCBvdXRwdXQgdGhpcyBlcnJvciBmb3IgZnJlZCBpdHNlbGYuCiAgICAgICAgICAgIC8vIFdlIGFsc28gY3VycmVudGx5IG5lZWQgb25jbGljayBldmVudHMgaW4gdGhlIG1haW4gbWVudS4KICAgICAgICAgICAgaWYgKCAkdGhpcy5jbG9zZXN0KCcuRGV2ZWxGcmVkQ29udGFpbmVyLCAjTmF2aWdhdGlvbkNvbnRhaW5lcicpLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgSFRNTCBieSB3cmFwcGluZyBpdCBpbiBhIGRpdiBhbmQgY2FsbGluZyAuaHRtbCgpIG9uIHRoYXQKICAgICAgICAgICAgJENvbnRhaW5lciA9ICQoJzxkaXY+PC9kaXY+Jyk7CiAgICAgICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkdGhpcy5jbG9uZSgpICk7CgogICAgICAgICAgICAvLyBvbmxvYWQgYXR0cmlidXRlIGlzIHNvbWV0aW1lcyBuZWVkZWQgZm9yIGlmcmFtZXMsIHNvIHdlIGp1c3QgcmVtb3ZlIGl0IGZvciB0aGUgY2hlY2sKICAgICAgICAgICAgJENvbnRhaW5lci5maW5kKCdpZnJhbWUnKS5yZW1vdmVBdHRyKCdvbmxvYWQnKTsKCiAgICAgICAgICAgIENvZGUgPSAkQ29udGFpbmVyLmh0bWwoKTsKCiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgZXZlbnRzIGluIGh0bWwgZWxlbWVudCBjb2RlCiAgICAgICAgICAgIEV2ZW50cyA9IENvZGUubWF0Y2goL1xzK29uXHcrPS9pZyk7CgogICAgICAgICAgICAvLyBzZW5kIGVycm9yIHRvIG91dHB1dAogICAgICAgICAgICBpZiAoRXZlbnRzICE9PSBudWxsKXsKICAgICAgICAgICAgICAgIC8vIGNsZWFuIGxlYWRpbmcgc3BhY2UgYW5kIGVxdWFscyBzaWduIGZyb20gdGhlIFJlZ0V4IG1hdGNoaW5nCiAgICAgICAgICAgICAgICBmb3IgKEV2ZW50IGluIEV2ZW50cyl7CiAgICAgICAgICAgICAgICAgICAgaWYgKEV2ZW50cy5oYXNPd25Qcm9wZXJ0eShFdmVudCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzW0V2ZW50XSA9IEV2ZW50c1tFdmVudF0udG9TdHJpbmcoKS5tYXRjaCgvb25cdysvKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VFdmVudCcsCiAgICAgICAgICAgICAgICAgICAgJ0V2ZW50IDxjb2RlPiInICsgRXZlbnRzICsgJyI8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICdQbGVhc2UgcmVtb3ZlIGl0IGFuZCByZXBsYWNlIGl0IHdpdGggYSBwcm9wZXIgc3Vic3RpdHV0ZS4nCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgfQogICAgQ2hlY2tGdW5jdGlvbnMucHVzaChDaGVja0JhZFByYWN0aWNlKTsKCiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIEhUTUxDaGVjayBjYW4gYmUgc3RhcnRlZCAoalF1ZXJ5IGlzIGxvYWRlZCkuCiAgICAgKi8KICAgIFRhcmdldE5TLkNoZWNrRm9yU3RhcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGpRdWVyeSkgewogICAgICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkhUTUxDaGVjay5SdW4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSFRNTENoZWNrLkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgUnVucyBhbGwgYXZhaWxhYmxlIGNoZWNrIGZ1bmN0aW9ucwogICAgICovCiAgICBUYXJnZXROUy5SdW4gPSBmdW5jdGlvbigpewogICAgICAgICQuZWFjaChDaGVja0Z1bmN0aW9ucywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgdGhpcygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUnVubmluZycpLnJlbW92ZSgpOwogICAgICAgIGlmICghRXJyb3JzRm91bmQpIHsKICAgICAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSZXN1bHRzJykuaHRtbCgnPHAgY2xhc3M9IkZyZWRKU0xpbnRTdWNjZXNzZnVsIj5BbGwgY2hlY2tzIG9rLjwvcD4nKTsKICAgICAgICB9CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShDb3JlLkZyZWQuSFRNTENoZWNrIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIGFsbCBsb2dpYyBmb3IgdGhlIEZyZWQgbW9kdWxlIEpTTGludAogKi8KQ29yZS5GcmVkLkpTTGludCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBmdW5jdGlvbiBodG1sRXNjYXBlKHN0cikgewogICAgICAgIHJldHVybiBTdHJpbmcoc3RyKQogICAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKQogICAgICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7JykKICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpOwogICAgfQoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcHJpdmF0ZQogICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0IEpTTGludCBjaGVjay4KICAgICAqLwogICAgZnVuY3Rpb24gc3RhcnRKU0xpbnQoKSB7CiAgICAgICAgdmFyIFJlc3VsdCwKICAgICAgICAgICAgRXJyb3JzRm91bmQgPSBmYWxzZTsKCiAgICAgICAgLy8gVGhpcyBmdW5jIHNob3VsZCBub3QgYmUgc3RhcnRlZCBtb3JlIHRoYW4gb25lIHRpbWUuLi4KICAgICAgICBpZiAoVGFyZ2V0TlMuU3RhcnRlZCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIFRhcmdldE5TLlN0YXJ0ZWQrKzsKCiAgICAgICAgLy8gU3RhcnQgSlNMaW50IGZvciBldmVyeSBzY3JpcHQgd2UgZm91bmQgYW5kIG91dHB1dCB0aGUgcmVzdWx0CiAgICAgICAgJC5lYWNoKFRhcmdldE5TLkFsbFNjcmlwdHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIEVycm9yT2JqZWN0LCBPdXRwdXQsIGk7CgogICAgICAgICAgICAvLyBJZ25vcmUgaW52YWxpZCBjb2RlIHRoYXQgaXMgaW5qZWN0ZWQgYnkgdGhlIGdvb2dsZSBhbmFseXRpY3Mgb3B0LW91dCBwbHVnaW4gZm9yIGJyb3dzZXJzLgogICAgICAgICAgICBpZiAoIHRoaXMuU3JjID09PSAnaW5saW5lJyAmJiB0aGlzLlNjcmlwdC5tYXRjaCgvX2dhVXNlclByZWZzLykgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlc3VsdCA9IEpTTElOVCh0aGlzLlNjcmlwdCwgKHRoaXMuU3JjID09PSAnaW5saW5lJykgPyBUYXJnZXROUy5JbmxpbmVPcHRpb25zIDogVGFyZ2V0TlMuUmVtb3RlT3B0aW9ucyk7CiAgICAgICAgICAgIGlmICghUmVzdWx0KSB7CiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSlNMSU5ULmVycm9ycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgIEVycm9yT2JqZWN0ID0gSlNMSU5ULmVycm9yc1tpXTsKICAgICAgICAgICAgICAgICAgICBpZiAoRXJyb3JPYmplY3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCA9ICc8ZGl2IGNsYXNzPSJGcmVkSlNMaW50RXJyb3IiPic7CiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCArPSAnPHA+PHNwYW4gY2xhc3M9IkVycm9yIj5FcnJvcjogPC9zcGFuPjxzdHJvbmc+JyArIEVycm9yT2JqZWN0LnJlYXNvbiArICc8L3N0cm9uZz4gU291cmNlOiAgICAgJyArIHRoaXMuU3JjICsgJzonICsgRXJyb3JPYmplY3QubGluZSArICc6JyArIEVycm9yT2JqZWN0LmNoYXJhY3RlciArICc8L3A+JzsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ICs9ICc8Y29kZT4nICsgaHRtbEVzY2FwZShFcnJvck9iamVjdC5ldmlkZW5jZSkgKyAnPC9jb2RlPic7CiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCArPSAnPC9kaXY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRTY3JpcHRzJykuYXBwZW5kKE91dHB1dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yc0ZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gYWN0aXZhdGUgZWxzZSBicmFuY2ggdG8gc2VlIHBvc2l0aXZlIGNoZWNrIHJlc3VsdHMgcGVyIGZpbGUgZm9yIGZyZWQgZGVidWdnaW5nCiAgICAgICAgICAgIC8vZWxzZSB7CiAgICAgICAgICAgIC8vICAgICQoJyNGcmVkSlNMaW50UnVubmluZycpLnJlbW92ZSgpOwogICAgICAgICAgICAvLyAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoJzxwIGNsYXNzPSJGcmVkSlNMaW50U3VjY2Vzc2Z1bCI+JyArIHRoaXMuU3JjICsgJyBvazwvcD4nKTsKICAgICAgICAgICAgLy99CiAgICAgICAgfSk7CiAgICAgICAgaWYgKCFFcnJvcnNGb3VuZCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRTY3JpcHRzJykuYXBwZW5kKCc8cCBjbGFzcz0iRnJlZEpTTGludFN1Y2Nlc3NmdWwiPkFsbCBjaGVja3Mgb2suPC9wPicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKFRhcmdldE5TLkFsbFNjcmlwdHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgICQoJyNGcmVkSlNMaW50U2NyaXB0cycpLmFwcGVuZCgnPHA+Tm8gc2NyaXB0cyBmb3VuZCE8L3A+JykuY3NzKCdoZWlnaHQnLCAnMTVweCcpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBmaWVsZAogICAgICogQGRlc2NyaXB0aW9uIEFsbCBvcHRpb25zIGZvciBKU0xpbnQuCiAgICAgKi8KICAgIFRhcmdldE5TLkNvbW1vbk9wdGlvbnMgPSB7CiAgICAgICAgYnJvd3NlcjogdHJ1ZSwKICAgICAgICB3aGl0ZTogdHJ1ZSwKICAgICAgICBpbmRlbnQ6IDQsCiAgICAgICAgZGV2ZWw6IHRydWUsCiAgICAgICAgb25ldmFyOiB0cnVlLAogICAgICAgIHVuZGVmOiB0cnVlLAogICAgICAgIG5vbWVuOiB0cnVlLAogICAgICAgIGVxZXFlcTogdHJ1ZSwKICAgICAgICBwbHVzcGx1czogZmFsc2UsCiAgICAgICAgYml0d2lzZTogdHJ1ZSwKICAgICAgICBzdHJpY3Q6IHRydWUsCiAgICAgICAgaW1tZWQ6IHRydWUsCiAgICAgICAgcHJlZGVmOiBbJ0NvcmUnLCAnaXNKUXVlcnlPYmplY3QnLCAnJCcsICdqUXVlcnknLCAnQ0tFRElUT1InLCAnd2luZG93JywgJ2RvY3VtZW50JywgJ3ByaW50U3RhY2tUcmFjZSddCiAgICB9OwogICAgVGFyZ2V0TlMuUmVtb3RlT3B0aW9ucyA9ICQuZXh0ZW5kKFRhcmdldE5TLkNvbW1vbk9wdGlvbnMsIHt9KTsKICAgIFRhcmdldE5TLklubGluZU9wdGlvbnMgPSAkLmV4dGVuZChUYXJnZXROUy5Db21tb25PcHRpb25zLCB7CiAgICAgICAgd2hpdGU6IGZhbHNlCiAgICB9KTsKCiAgICBUYXJnZXROUy5BbGxTY3JpcHRzID0gVGFyZ2V0TlMuQWxsU2NyaXB0cyB8fCBbXTsKICAgIFRhcmdldE5TLldhaXRpbmcgPSAwOwogICAgVGFyZ2V0TlMuU3RhcnRlZCA9IDA7CiAgICBUYXJnZXROUy5Tb3VyY2VzID0ge307CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGlzIHRoZSBpbml0IGZ1bmN0aW9uIGZvciBKU0xpbnQuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgLy8gdGhpcyBtb2R1bGUgbmVlZHMgalF1ZXJ5IQogICAgICAgIGlmICh0eXBlb2YgalF1ZXJ5ID09PSAndW5kZWZpbmVkJyB8fCAhalF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5hbGVydCgnRnJlZCBKU0xpbnQgbW9kdWxlIG5lZWRzIGpRdWVyeSBsb2FkZWQnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0ZyZWRKU0xpbnRTY3JpcHRzJykuc3R5bGUuaGVpZ2h0ID0gJzE1cHgnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkpTTGludC5HZXRTY3JpcHRzKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYWxsIHNjcmlwdHMgdG8gY2hlY2suCiAgICAgKi8KICAgIFRhcmdldE5TLkdldFNjcmlwdHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU2NyaXB0cywgU291cmNlOwoKICAgICAgICAgICAgJCgnc2NyaXB0JykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAvLyBFeGNsdWRlIHRoZSBGcmVkIEphdmFTY3JpcHQgOy0pCiAgICAgICAgICAgICAgICBTY3JpcHRzID0gJCh0aGlzKS50ZXh0KCk7CgogICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaXMoJ1tzcmNdJykpIHsKICAgICAgICAgICAgICAgICAgICBTb3VyY2UgPSAkKHRoaXMpLmF0dHIoJ3NyYycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU291cmNlID0gJ2lubGluZSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKFNvdXJjZSA9PT0gJ2lubGluZScpIHsKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BbGxTY3JpcHRzLnB1c2goe1NyYzogU291cmNlLCBTY3JpcHQ6IFNjcmlwdHN9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIElmIGV4dGVybmFsIHNvdXJjZSBpcyBub3QgYSB0aGlyZHBhcnR5IHNjcmlwdCwgbG9hZCBpdCEKICAgICAgICAgICAgICAgICAgICBpZiAoIVNvdXJjZS5tYXRjaCgvdGhpcmRwYXJ0eS8pICYmICFTb3VyY2UubWF0Y2goL2Nocm9tZTpcL1wvLykgJiYgIVRhcmdldE5TLlNvdXJjZXNbU291cmNlXSkgewogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5XYWl0aW5nKys7CiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLlNvdXJjZXNbU291cmNlXSA9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICAkLmdldChTb3VyY2UsIHt9LCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuQWxsU2NyaXB0cy5wdXNoKHtTcmM6IHRoaXMudXJsLCBTY3JpcHQ6IGRhdGF9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLldhaXRpbmctLTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ3RleHQnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gc3RhcnQganNsaW50LCBpZiBhbGwgYWpheCByZXF1ZXN0cyBhcmUgcmVhZHkKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9KTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcywgaWYgSlNMaW50IGNhbiBiZSBzdGFydGVkIChhbGwgc2NyaXB0cyBhcmUgbG9hZGVkKS4KICAgICAqLwogICAgVGFyZ2V0TlMuQ2hlY2tGb3JTdGFydCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoVGFyZ2V0TlMuV2FpdGluZyA8PSAwICYmIFRhcmdldE5TLlN0YXJ0ZWQgPT09IDApIHsKICAgICAgICAgICAgc3RhcnRKU0xpbnQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChUYXJnZXROUy5TdGFydGVkID09PSAwKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuIFRhcmdldE5TOwp9KENvcmUuRnJlZC5KU0xpbnQgfHwge30pKTsK
Ly8gKEMpMjAwMiBEb3VnbGFzIENyb2NrZm9yZAovLyB3d3cuSlNMaW50LmNvbQoidXNlIHN0cmljdCI7dmFyIEpTTElOVD0oZnVuY3Rpb24oKXt2YXIgYWRzYWZlX2lkLGFkc2FmZV9tYXksYWRzYWZlX3dlbnQsYW5vbm5hbWUsYXBwcm92ZWQsYXRydWxlPXttZWRpYTp0cnVlLCdmb250LWZhY2UnOnRydWUscGFnZTp0cnVlfSxiYW5nPXsnPCc6dHJ1ZSwnPD0nOnRydWUsJz09Jzp0cnVlLCc9PT0nOnRydWUsJyE9PSc6dHJ1ZSwnIT0nOnRydWUsJz4nOnRydWUsJz49Jzp0cnVlLCcrJzp0cnVlLCctJzp0cnVlLCcqJzp0cnVlLCcvJzp0cnVlLCclJzp0cnVlfSxiYW5uZWQ9eydhcmd1bWVudHMnOnRydWUsY2FsbGVlOnRydWUsY2FsbGVyOnRydWUsY29uc3RydWN0b3I6dHJ1ZSwnZXZhbCc6dHJ1ZSxwcm90b3R5cGU6dHJ1ZSx1bndhdGNoOnRydWUsdmFsdWVPZjp0cnVlLHdhdGNoOnRydWV9LGJvb2xPcHRpb25zPXthZHNhZmU6dHJ1ZSxiaXR3aXNlOnRydWUsYnJvd3Nlcjp0cnVlLGNhcDp0cnVlLGNzczp0cnVlLGRlYnVnOnRydWUsZGV2ZWw6dHJ1ZSxlcWVxZXE6dHJ1ZSxldmlsOnRydWUsZm9yaW46dHJ1ZSxmcmFnbWVudDp0cnVlLGltbWVkOnRydWUsbGF4YnJlYWs6dHJ1ZSxuZXdjYXA6dHJ1ZSxub21lbjp0cnVlLG9uOnRydWUsb25ldmFyOnRydWUscGFzc2ZhaWw6dHJ1ZSxwbHVzcGx1czp0cnVlLHJlZ2V4cDp0cnVlLHJoaW5vOnRydWUsdW5kZWY6dHJ1ZSxzYWZlOnRydWUsc2lkZWJhcjp0cnVlLHN0cmljdDp0cnVlLHN1Yjp0cnVlLHdoaXRlOnRydWUsd2lkZ2V0OnRydWV9LGJyb3dzZXI9e2FkZEV2ZW50TGlzdGVuZXI6ZmFsc2UsYmx1cjpmYWxzZSxjbGVhckludGVydmFsOmZhbHNlLGNsZWFyVGltZW91dDpmYWxzZSxjbG9zZTpmYWxzZSxjbG9zZWQ6ZmFsc2UsZGVmYXVsdFN0YXR1czpmYWxzZSxkb2N1bWVudDpmYWxzZSxldmVudDpmYWxzZSxmb2N1czpmYWxzZSxmcmFtZXM6ZmFsc2UsZ2V0Q29tcHV0ZWRTdHlsZTpmYWxzZSxoaXN0b3J5OmZhbHNlLEltYWdlOmZhbHNlLGxlbmd0aDpmYWxzZSxsb2NhdGlvbjpmYWxzZSxtb3ZlQnk6ZmFsc2UsbW92ZVRvOmZhbHNlLG5hbWU6ZmFsc2UsbmF2aWdhdG9yOmZhbHNlLG9uYmVmb3JldW5sb2FkOnRydWUsb25ibHVyOnRydWUsb25lcnJvcjp0cnVlLG9uZm9jdXM6dHJ1ZSxvbmxvYWQ6dHJ1ZSxvbnJlc2l6ZTp0cnVlLG9udW5sb2FkOnRydWUsb3BlbjpmYWxzZSxvcGVuZXI6ZmFsc2UsT3B0aW9uOmZhbHNlLHBhcmVudDpmYWxzZSxwcmludDpmYWxzZSxyZW1vdmVFdmVudExpc3RlbmVyOmZhbHNlLHJlc2l6ZUJ5OmZhbHNlLHJlc2l6ZVRvOmZhbHNlLHNjcmVlbjpmYWxzZSxzY3JvbGw6ZmFsc2Usc2Nyb2xsQnk6ZmFsc2Usc2Nyb2xsVG86ZmFsc2Usc2V0SW50ZXJ2YWw6ZmFsc2Usc2V0VGltZW91dDpmYWxzZSxzdGF0dXM6ZmFsc2UsdG9wOmZhbHNlLFhNTEh0dHBSZXF1ZXN0OmZhbHNlfSxjc3NBdHRyaWJ1dGVEYXRhLGNzc0FueSxjc3NDb2xvckRhdGE9eyJhbGljZWJsdWUiOnRydWUsImFudGlxdWV3aGl0ZSI6dHJ1ZSwiYXF1YSI6dHJ1ZSwiYXF1YW1hcmluZSI6dHJ1ZSwiYXp1cmUiOnRydWUsImJlaWdlIjp0cnVlLCJiaXNxdWUiOnRydWUsImJsYWNrIjp0cnVlLCJibGFuY2hlZGFsbW9uZCI6dHJ1ZSwiYmx1ZSI6dHJ1ZSwiYmx1ZXZpb2xldCI6dHJ1ZSwiYnJvd24iOnRydWUsImJ1cmx5d29vZCI6dHJ1ZSwiY2FkZXRibHVlIjp0cnVlLCJjaGFydHJldXNlIjp0cnVlLCJjaG9jb2xhdGUiOnRydWUsImNvcmFsIjp0cnVlLCJjb3JuZmxvd2VyYmx1ZSI6dHJ1ZSwiY29ybnNpbGsiOnRydWUsImNyaW1zb24iOnRydWUsImN5YW4iOnRydWUsImRhcmtibHVlIjp0cnVlLCJkYXJrY3lhbiI6dHJ1ZSwiZGFya2dvbGRlbnJvZCI6dHJ1ZSwiZGFya2dyYXkiOnRydWUsImRhcmtncmVlbiI6dHJ1ZSwiZGFya2toYWtpIjp0cnVlLCJkYXJrbWFnZW50YSI6dHJ1ZSwiZGFya29saXZlZ3JlZW4iOnRydWUsImRhcmtvcmFuZ2UiOnRydWUsImRhcmtvcmNoaWQiOnRydWUsImRhcmtyZWQiOnRydWUsImRhcmtzYWxtb24iOnRydWUsImRhcmtzZWFncmVlbiI6dHJ1ZSwiZGFya3NsYXRlYmx1ZSI6dHJ1ZSwiZGFya3NsYXRlZ3JheSI6dHJ1ZSwiZGFya3R1cnF1b2lzZSI6dHJ1ZSwiZGFya3Zpb2xldCI6dHJ1ZSwiZGVlcHBpbmsiOnRydWUsImRlZXBza3libHVlIjp0cnVlLCJkaW1ncmF5Ijp0cnVlLCJkb2RnZXJibHVlIjp0cnVlLCJmaXJlYnJpY2siOnRydWUsImZsb3JhbHdoaXRlIjp0cnVlLCJmb3Jlc3RncmVlbiI6dHJ1ZSwiZnVjaHNpYSI6dHJ1ZSwiZ2FpbnNib3JvIjp0cnVlLCJnaG9zdHdoaXRlIjp0cnVlLCJnb2xkIjp0cnVlLCJnb2xkZW5yb2QiOnRydWUsImdyYXkiOnRydWUsImdyZWVuIjp0cnVlLCJncmVlbnllbGxvdyI6dHJ1ZSwiaG9uZXlkZXciOnRydWUsImhvdHBpbmsiOnRydWUsImluZGlhbnJlZCI6dHJ1ZSwiaW5kaWdvIjp0cnVlLCJpdm9yeSI6dHJ1ZSwia2hha2kiOnRydWUsImxhdmVuZGVyIjp0cnVlLCJsYXZlbmRlcmJsdXNoIjp0cnVlLCJsYXduZ3JlZW4iOnRydWUsImxlbW9uY2hpZmZvbiI6dHJ1ZSwibGlnaHRibHVlIjp0cnVlLCJsaWdodGNvcmFsIjp0cnVlLCJsaWdodGN5YW4iOnRydWUsImxpZ2h0Z29sZGVucm9keWVsbG93Ijp0cnVlLCJsaWdodGdyZWVuIjp0cnVlLCJsaWdodHBpbmsiOnRydWUsImxpZ2h0c2FsbW9uIjp0cnVlLCJsaWdodHNlYWdyZWVuIjp0cnVlLCJsaWdodHNreWJsdWUiOnRydWUsImxpZ2h0c2xhdGVncmF5Ijp0cnVlLCJsaWdodHN0ZWVsYmx1ZSI6dHJ1ZSwibGlnaHR5ZWxsb3ciOnRydWUsImxpbWUiOnRydWUsImxpbWVncmVlbiI6dHJ1ZSwibGluZW4iOnRydWUsIm1hZ2VudGEiOnRydWUsIm1hcm9vbiI6dHJ1ZSwibWVkaXVtYXF1YW1hcmluZSI6dHJ1ZSwibWVkaXVtYmx1ZSI6dHJ1ZSwibWVkaXVtb3JjaGlkIjp0cnVlLCJtZWRpdW1wdXJwbGUiOnRydWUsIm1lZGl1bXNlYWdyZWVuIjp0cnVlLCJtZWRpdW1zbGF0ZWJsdWUiOnRydWUsIm1lZGl1bXNwcmluZ2dyZWVuIjp0cnVlLCJtZWRpdW10dXJxdW9pc2UiOnRydWUsIm1lZGl1bXZpb2xldHJlZCI6dHJ1ZSwibWlkbmlnaHRibHVlIjp0cnVlLCJtaW50Y3JlYW0iOnRydWUsIm1pc3R5cm9zZSI6dHJ1ZSwibW9jY2FzaW4iOnRydWUsIm5hdmFqb3doaXRlIjp0cnVlLCJuYXZ5Ijp0cnVlLCJvbGRsYWNlIjp0cnVlLCJvbGl2ZSI6dHJ1ZSwib2xpdmVkcmFiIjp0cnVlLCJvcmFuZ2UiOnRydWUsIm9yYW5nZXJlZCI6dHJ1ZSwib3JjaGlkIjp0cnVlLCJwYWxlZ29sZGVucm9kIjp0cnVlLCJwYWxlZ3JlZW4iOnRydWUsInBhbGV0dXJxdW9pc2UiOnRydWUsInBhbGV2aW9sZXRyZWQiOnRydWUsInBhcGF5YXdoaXAiOnRydWUsInBlYWNocHVmZiI6dHJ1ZSwicGVydSI6dHJ1ZSwicGluayI6dHJ1ZSwicGx1bSI6dHJ1ZSwicG93ZGVyYmx1ZSI6dHJ1ZSwicHVycGxlIjp0cnVlLCJyZWQiOnRydWUsInJvc3licm93biI6dHJ1ZSwicm95YWxibHVlIjp0cnVlLCJzYWRkbGVicm93biI6dHJ1ZSwic2FsbW9uIjp0cnVlLCJzYW5keWJyb3duIjp0cnVlLCJzZWFncmVlbiI6dHJ1ZSwic2Vhc2hlbGwiOnRydWUsInNpZW5uYSI6dHJ1ZSwic2lsdmVyIjp0cnVlLCJza3libHVlIjp0cnVlLCJzbGF0ZWJsdWUiOnRydWUsInNsYXRlZ3JheSI6dHJ1ZSwic25vdyI6dHJ1ZSwic3ByaW5nZ3JlZW4iOnRydWUsInN0ZWVsYmx1ZSI6dHJ1ZSwidGFuIjp0cnVlLCJ0ZWFsIjp0cnVlLCJ0aGlzdGxlIjp0cnVlLCJ0b21hdG8iOnRydWUsInR1cnF1b2lzZSI6dHJ1ZSwidmlvbGV0Ijp0cnVlLCJ3aGVhdCI6dHJ1ZSwid2hpdGUiOnRydWUsIndoaXRlc21va2UiOnRydWUsInllbGxvdyI6dHJ1ZSwieWVsbG93Z3JlZW4iOnRydWV9LGNzc0JvcmRlclN0eWxlLGNzc0JyZWFrLGNzc0xlbmd0aERhdGE9eyclJzp0cnVlLCdjbSc6dHJ1ZSwnZW0nOnRydWUsJ2V4Jzp0cnVlLCdpbic6dHJ1ZSwnbW0nOnRydWUsJ3BjJzp0cnVlLCdwdCc6dHJ1ZSwncHgnOnRydWV9LGNzc092ZXJmbG93LGRldmVsPXthbGVydDpmYWxzZSxjb25maXJtOmZhbHNlLGNvbnNvbGU6ZmFsc2UsRGVidWc6ZmFsc2Usb3BlcmE6ZmFsc2UscHJvbXB0OmZhbHNlfSxlc2NhcGVzPXsnXGInOidcXGInLCdcdCc6J1xcdCcsJ1xuJzonXFxuJywnXGYnOidcXGYnLCdccic6J1xccicsJyInOidcXCInLCcvJzonXFwvJywnXFwnOidcXFxcJ30sZnVuY3QsZnVuY3Rpb25pY2l0eT1bJ2Nsb3N1cmUnLCdleGNlcHRpb24nLCdnbG9iYWwnLCdsYWJlbCcsJ291dGVyJywndW51c2VkJywndmFyJ10sZnVuY3Rpb25zLGdsb2JhbCxodG1sdGFnPXthOnt9LGFiYnI6e30sYWNyb255bTp7fSxhZGRyZXNzOnt9LGFwcGxldDp7fSxhcmVhOntlbXB0eTp0cnVlLHBhcmVudDonIG1hcCAnfSxiOnt9LGJhc2U6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCAnfSxiZG86e30sYmlnOnt9LGJsb2NrcXVvdGU6e30sYm9keTp7cGFyZW50OicgaHRtbCBub2ZyYW1lcyAnfSxicjp7ZW1wdHk6dHJ1ZX0sYnV0dG9uOnt9LGNhbnZhczp7cGFyZW50OicgYm9keSBwIGRpdiB0aCB0ZCAnfSxjYXB0aW9uOntwYXJlbnQ6JyB0YWJsZSAnfSxjZW50ZXI6e30sY2l0ZTp7fSxjb2RlOnt9LGNvbDp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyB0YWJsZSBjb2xncm91cCAnfSxjb2xncm91cDp7cGFyZW50OicgdGFibGUgJ30sZGQ6e3BhcmVudDonIGRsICd9LGRlbDp7fSxkZm46e30sZGlyOnt9LGRpdjp7fSxkbDp7fSxkdDp7cGFyZW50OicgZGwgJ30sZW06e30sZW1iZWQ6e30sZmllbGRzZXQ6e30sZm9udDp7fSxmb3JtOnt9LGZyYW1lOntlbXB0eTp0cnVlLHBhcmVudDonIGZyYW1lc2V0ICd9LGZyYW1lc2V0OntwYXJlbnQ6JyBodG1sIGZyYW1lc2V0ICd9LGgxOnt9LGgyOnt9LGgzOnt9LGg0Ont9LGg1Ont9LGg2Ont9LGhlYWQ6e3BhcmVudDonIGh0bWwgJ30saHRtbDp7cGFyZW50OicqJ30saHI6e2VtcHR5OnRydWV9LGk6e30saWZyYW1lOnt9LGltZzp7ZW1wdHk6dHJ1ZX0saW5wdXQ6e2VtcHR5OnRydWV9LGluczp7fSxrYmQ6e30sbGFiZWw6e30sbGVnZW5kOntwYXJlbnQ6JyBmaWVsZHNldCAnfSxsaTp7cGFyZW50OicgZGlyIG1lbnUgb2wgdWwgJ30sbGluazp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBoZWFkICd9LG1hcDp7fSxtZW51Ont9LG1ldGE6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCBub2ZyYW1lcyBub3NjcmlwdCAnfSxub2ZyYW1lczp7cGFyZW50OicgaHRtbCBib2R5ICd9LG5vc2NyaXB0OntwYXJlbnQ6JyBib2R5IGhlYWQgbm9mcmFtZXMgJ30sb2JqZWN0Ont9LG9sOnt9LG9wdGdyb3VwOntwYXJlbnQ6JyBzZWxlY3QgJ30sb3B0aW9uOntwYXJlbnQ6JyBvcHRncm91cCBzZWxlY3QgJ30scDp7fSxwYXJhbTp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBhcHBsZXQgb2JqZWN0ICd9LHByZTp7fSxxOnt9LHNhbXA6e30sc2NyaXB0OntlbXB0eTp0cnVlLHBhcmVudDonIGJvZHkgZGl2IGZyYW1lIGhlYWQgaWZyYW1lIHAgcHJlIHNwYW4gJ30sc2VsZWN0Ont9LHNtYWxsOnt9LHNwYW46e30sc3Ryb25nOnt9LHN0eWxlOntwYXJlbnQ6JyBoZWFkICcsZW1wdHk6dHJ1ZX0sc3ViOnt9LHN1cDp7fSx0YWJsZTp7fSx0Ym9keTp7cGFyZW50OicgdGFibGUgJ30sdGQ6e3BhcmVudDonIHRyICd9LHRleHRhcmVhOnt9LHRmb290OntwYXJlbnQ6JyB0YWJsZSAnfSx0aDp7cGFyZW50OicgdHIgJ30sdGhlYWQ6e3BhcmVudDonIHRhYmxlICd9LHRpdGxlOntwYXJlbnQ6JyBoZWFkICd9LHRyOntwYXJlbnQ6JyB0YWJsZSB0Ym9keSB0aGVhZCB0Zm9vdCAnfSx0dDp7fSx1Ont9LHVsOnt9LCd2YXInOnt9fSxpZHMsaW1wbGllZCxpbmJsb2NrLGluZGVudCxqc29ubW9kZSxsaW5lcyxsb29rYWhlYWQsbWVtYmVyLG1lbWJlcnNPbmx5LG5leHR0b2tlbixub3JlYWNoLG9wdGlvbixwcmVkZWZpbmVkLHByZXJlZyxwcmV2dG9rZW4scmhpbm89e2RlZmluZUNsYXNzOmZhbHNlLGRlc2VyaWFsaXplOmZhbHNlLGdjOmZhbHNlLGhlbHA6ZmFsc2UsbG9hZDpmYWxzZSxsb2FkQ2xhc3M6ZmFsc2UscHJpbnQ6ZmFsc2UscXVpdDpmYWxzZSxyZWFkRmlsZTpmYWxzZSxyZWFkVXJsOmZhbHNlLHJ1bkNvbW1hbmQ6ZmFsc2Usc2VhbDpmYWxzZSxzZXJpYWxpemU6ZmFsc2Usc3Bhd246ZmFsc2Usc3luYzpmYWxzZSx0b2ludDMyOmZhbHNlLHZlcnNpb246ZmFsc2V9LHNjb3BlLHNpZGViYXI9e1N5c3RlbTpmYWxzZX0sc3JjLHN0YWNrLHN0YW5kYXJkPXtBcnJheTpmYWxzZSxCb29sZWFuOmZhbHNlLERhdGU6ZmFsc2UsZGVjb2RlVVJJOmZhbHNlLGRlY29kZVVSSUNvbXBvbmVudDpmYWxzZSxlbmNvZGVVUkk6ZmFsc2UsZW5jb2RlVVJJQ29tcG9uZW50OmZhbHNlLEVycm9yOmZhbHNlLCdldmFsJzpmYWxzZSxFdmFsRXJyb3I6ZmFsc2UsRnVuY3Rpb246ZmFsc2UsaGFzT3duUHJvcGVydHk6ZmFsc2UsaXNGaW5pdGU6ZmFsc2UsaXNOYU46ZmFsc2UsSlNPTjpmYWxzZSxNYXRoOmZhbHNlLE51bWJlcjpmYWxzZSxPYmplY3Q6ZmFsc2UscGFyc2VJbnQ6ZmFsc2UscGFyc2VGbG9hdDpmYWxzZSxSYW5nZUVycm9yOmZhbHNlLFJlZmVyZW5jZUVycm9yOmZhbHNlLFJlZ0V4cDpmYWxzZSxTdHJpbmc6ZmFsc2UsU3ludGF4RXJyb3I6ZmFsc2UsVHlwZUVycm9yOmZhbHNlLFVSSUVycm9yOmZhbHNlfSxzdGFuZGFyZF9tZW1iZXI9e0U6dHJ1ZSxMTjI6dHJ1ZSxMTjEwOnRydWUsTE9HMkU6dHJ1ZSxMT0cxMEU6dHJ1ZSxQSTp0cnVlLFNRUlQxXzI6dHJ1ZSxTUVJUMjp0cnVlLE1BWF9WQUxVRTp0cnVlLE1JTl9WQUxVRTp0cnVlLE5FR0FUSVZFX0lORklOSVRZOnRydWUsUE9TSVRJVkVfSU5GSU5JVFk6dHJ1ZX0sc3RyaWN0X21vZGUsc3ludGF4PXt9LHRhYix0b2tlbix1cmxzLHdhcm5pbmdzLHdpZGdldD17YWxlcnQ6dHJ1ZSxhbmltYXRvcjp0cnVlLGFwcGxlU2NyaXB0OnRydWUsYmVlcDp0cnVlLGJ5dGVzVG9VSVN0cmluZzp0cnVlLENhbnZhczp0cnVlLGNob29zZUNvbG9yOnRydWUsY2hvb3NlRmlsZTp0cnVlLGNob29zZUZvbGRlcjp0cnVlLGNsb3NlV2lkZ2V0OnRydWUsQ09NOnRydWUsY29udmVydFBhdGhUb0hGUzp0cnVlLGNvbnZlcnRQYXRoVG9QbGF0Zm9ybTp0cnVlLEN1c3RvbUFuaW1hdGlvbjp0cnVlLGVzY2FwZTp0cnVlLEZhZGVBbmltYXRpb246dHJ1ZSxmaWxlc3lzdGVtOnRydWUsRmxhc2g6dHJ1ZSxmb2N1c1dpZGdldDp0cnVlLGZvcm06dHJ1ZSxGb3JtRmllbGQ6dHJ1ZSxGcmFtZTp0cnVlLEhvdEtleTp0cnVlLEltYWdlOnRydWUsaW5jbHVkZTp0cnVlLGlzQXBwbGljYXRpb25SdW5uaW5nOnRydWUsaVR1bmVzOnRydWUsa29uZmFidWxhdG9yVmVyc2lvbjp0cnVlLGxvZzp0cnVlLG1kNTp0cnVlLE1lbnVJdGVtOnRydWUsTW92ZUFuaW1hdGlvbjp0cnVlLG9wZW5VUkw6dHJ1ZSxwbGF5OnRydWUsUG9pbnQ6dHJ1ZSxwb3B1cE1lbnU6dHJ1ZSxwcmVmZXJlbmNlR3JvdXBzOnRydWUscHJlZmVyZW5jZXM6dHJ1ZSxwcmludDp0cnVlLHByb21wdDp0cnVlLHJhbmRvbTp0cnVlLFJlY3RhbmdsZTp0cnVlLHJlbG9hZFdpZGdldDp0cnVlLFJlc2l6ZUFuaW1hdGlvbjp0cnVlLHJlc29sdmVQYXRoOnRydWUscmVzdW1lVXBkYXRlczp0cnVlLFJvdGF0ZUFuaW1hdGlvbjp0cnVlLHJ1bkNvbW1hbmQ6dHJ1ZSxydW5Db21tYW5kSW5CZzp0cnVlLHNhdmVBczp0cnVlLHNhdmVQcmVmZXJlbmNlczp0cnVlLHNjcmVlbjp0cnVlLFNjcm9sbEJhcjp0cnVlLHNob3dXaWRnZXRQcmVmZXJlbmNlczp0cnVlLHNsZWVwOnRydWUsc3BlYWs6dHJ1ZSxTdHlsZTp0cnVlLHN1cHByZXNzVXBkYXRlczp0cnVlLHN5c3RlbTp0cnVlLHRlbGxXaWRnZXQ6dHJ1ZSxUZXh0OnRydWUsVGV4dEFyZWE6dHJ1ZSxUaW1lcjp0cnVlLHVuZXNjYXBlOnRydWUsdXBkYXRlTm93OnRydWUsVVJMOnRydWUsV2ViOnRydWUsd2lkZ2V0OnRydWUsV2luZG93OnRydWUsWE1MRE9NOnRydWUsWE1MSHR0cFJlcXVlc3Q6dHJ1ZSx5YWhvb0NoZWNrTG9naW46dHJ1ZSx5YWhvb0xvZ2luOnRydWUseWFob29Mb2dvdXQ6dHJ1ZX0seG1vZGUseHF1b3RlLGF4PS9AY2N8PFwvP3xzY3JpcHR8XF0qc1xdfDxccyohfCZsdC9pLGN4PS9bXHUwMDAwLVx1MDAxZlx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vLHR4PS9eXHMqKFsoKXt9XFsuLDo7JyJ+XD9cXSNAXXw9PT89P3xcLyhcKihqc2xpbnR8bWVtYmVycz98Z2xvYmFsKT98PXxcLyk/fFwqW1wvPV0/fFwrWys9XT98LVtcLT1dP3wlPT98JlsmPV0/fFx8W3w9XT98Pj4/Pj89P3w8KFtcLz0hXXxcIShcW3wtLSk/fDw9Pyk/fFxePT98XCE9Pz0/fFthLXpBLVpfJF1bYS16QS1aMC05XyRdKnxbMC05XSsoW3hYXVswLTlhLWZBLUZdK3xcLlswLTldKik/KFtlRV1bK1wtXT9bMC05XSspPykvLGh4PS9eXHMqKFsnIj0+XC8mI118PCg/OlwvfFwhKD86LS0pPyk/fFthLXpBLVpdW2EtekEtWjAtOV9cLV0qfFswLTldK3wtLSkvLG54PS9bXHUwMDAwLVx1MDAxZiY8IlwvXFxcdTAwN2YtXHUwMDlmXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdiNFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1ZmVmZlx1ZmZmMC1cdWZmZmZdLyxueGc9L1tcdTAwMDAtXHUwMDFmJjwiXC9cXFx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZyxveD0vWz4mXXw8W1wvIV0/fC0tLyxseD0vXCpcL3xcL1wqLyxpeD0vXihbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopJC8sang9L14oPzpqYXZhc2NyaXB0fGpzY3JpcHR8ZWNtYXNjcmlwdHx2YnNjcmlwdHxtb2NoYXxsaXZlc2NyaXB0KVxzKjovaSx1eD0vJnxcK3xcdTAwQUR8XC5cLnxcL1wqfCVbXjtdfGJhc2U2NHx1cmx8ZXhwcmVzc2lvbnxkYXRhfG1haWx0by9pLHN4PS9eXHMqKFt7OiMlLj0sPitcW1xdQCgpIic7XXxcKj0/fFwkPXxcfD18XF49fH49fFthLXpBLVpfXVthLXpBLVowLTlfXC1dKnxbMC05XSt8PFwvfFwvXCopLyxzc3g9L15ccyooW0AjISInfTs6XC0lLj0sK1xbXF0oKSpfXXxbYS16QS1aXVthLXpBLVowLTkuX1wtXSp8XC9cKj98XGQrKD86XC5cZCspP3w8XC8pLyxxeD0vW15hLXpBLVowLTktX1wvIF0vLGR4PS9bXFtcXVwvXFwiJyo8Pi4mOigpe30rPSNdLyxyeD17b3V0ZXI6aHgsaHRtbDpoeCxzdHlsZTpzeCxzdHlsZXByb3BlcnR5OnNzeH07ZnVuY3Rpb24gRigpe30KaWYodHlwZW9mIE9iamVjdC5jcmVhdGUhPT0nZnVuY3Rpb24nKXtPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKG8pe0YucHJvdG90eXBlPW87cmV0dXJuIG5ldyBGKCk7fTt9CmZ1bmN0aW9uIGlzX293bihvYmplY3QsbmFtZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsbmFtZSk7fQpmdW5jdGlvbiBjb21iaW5lKHQsbyl7dmFyIG47Zm9yKG4gaW4gbyl7aWYoaXNfb3duKG8sbikpe3Rbbl09b1tuXTt9fX0KU3RyaW5nLnByb3RvdHlwZS5lbnRpdHlpZnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8mL2csJyZhbXA7JykucmVwbGFjZSgvPC9nLCcmbHQ7JykucmVwbGFjZSgvPi9nLCcmZ3Q7Jyk7fTtTdHJpbmcucHJvdG90eXBlLmlzQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcz49J2EnJiZ0aGlzPD0nelx1ZmZmZicpfHwodGhpcz49J0EnJiZ0aGlzPD0nWlx1ZmZmZicpO307U3RyaW5nLnByb3RvdHlwZS5pc0RpZ2l0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXM+PScwJyYmdGhpczw9JzknKTt9O1N0cmluZy5wcm90b3R5cGUuc3VwcGxhbnQ9ZnVuY3Rpb24obyl7cmV0dXJuIHRoaXMucmVwbGFjZSgvXHsoW157fV0qKVx9L2csZnVuY3Rpb24oYSxiKXt2YXIgcj1vW2JdO3JldHVybiB0eXBlb2Ygcj09PSdzdHJpbmcnfHx0eXBlb2Ygcj09PSdudW1iZXInP3I6YTt9KTt9O1N0cmluZy5wcm90b3R5cGUubmFtZT1mdW5jdGlvbigpe2lmKGl4LnRlc3QodGhpcykpe3JldHVybiB0aGlzO30KaWYobngudGVzdCh0aGlzKSl7cmV0dXJuJyInK3RoaXMucmVwbGFjZShueGcsZnVuY3Rpb24oYSl7dmFyIGM9ZXNjYXBlc1thXTtpZihjKXtyZXR1cm4gYzt9CnJldHVybidcXHUnKygnMDAwMCcrYS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7fSkrJyInO30KcmV0dXJuJyInK3RoaXMrJyInO307ZnVuY3Rpb24gYXNzdW1lKCl7aWYoIW9wdGlvbi5zYWZlKXtpZihvcHRpb24ucmhpbm8pe2NvbWJpbmUocHJlZGVmaW5lZCxyaGlubyk7fQppZihvcHRpb24uZGV2ZWwpe2NvbWJpbmUocHJlZGVmaW5lZCxkZXZlbCk7fQppZihvcHRpb24uYnJvd3Nlcnx8b3B0aW9uLnNpZGViYXIpe2NvbWJpbmUocHJlZGVmaW5lZCxicm93c2VyKTt9CmlmKG9wdGlvbi5zaWRlYmFyKXtjb21iaW5lKHByZWRlZmluZWQsc2lkZWJhcik7fQppZihvcHRpb24ud2lkZ2V0KXtjb21iaW5lKHByZWRlZmluZWQsd2lkZ2V0KTt9fX0KZnVuY3Rpb24gcXVpdChtLGwsY2gpe3Rocm93e25hbWU6J0pTTGludEVycm9yJyxsaW5lOmwsY2hhcmFjdGVyOmNoLG1lc3NhZ2U6bSsiICgiK01hdGguZmxvb3IoKGwvbGluZXMubGVuZ3RoKSoxMDApKyIlIHNjYW5uZWQpLiJ9O30KZnVuY3Rpb24gd2FybmluZyhtLHQsYSxiLGMsZCl7dmFyIGNoLGwsdzt0PXR8fG5leHR0b2tlbjtpZih0LmlkPT09JyhlbmQpJyl7dD10b2tlbjt9Cmw9dC5saW5lfHwwO2NoPXQuZnJvbXx8MDt3PXtpZDonKGVycm9yKScscmF3Om0sZXZpZGVuY2U6bGluZXNbbC0xXXx8JycsbGluZTpsLGNoYXJhY3RlcjpjaCxhOmEsYjpiLGM6YyxkOmR9O3cucmVhc29uPW0uc3VwcGxhbnQodyk7SlNMSU5ULmVycm9ycy5wdXNoKHcpO2lmKG9wdGlvbi5wYXNzZmFpbCl7cXVpdCgnU3RvcHBpbmcuICcsbCxjaCk7fQp3YXJuaW5ncys9MTtpZih3YXJuaW5ncz49b3B0aW9uLm1heGVycil7cXVpdCgiVG9vIG1hbnkgZXJyb3JzLiIsbCxjaCk7fQpyZXR1cm4gdzt9CmZ1bmN0aW9uIHdhcm5pbmdBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIHdhcm5pbmcobSx7bGluZTpsLGZyb206Y2h9LGEsYixjLGQpO30KZnVuY3Rpb24gZXJyb3IobSx0LGEsYixjLGQpe3ZhciB3PXdhcm5pbmcobSx0LGEsYixjLGQpO3F1aXQoIlN0b3BwaW5nLCB1bmFibGUgdG8gY29udGludWUuIix3LmxpbmUsdy5jaGFyYWN0ZXIpO30KZnVuY3Rpb24gZXJyb3JBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIGVycm9yKG0se2xpbmU6bCxmcm9tOmNofSxhLGIsYyxkKTt9CnZhciBsZXg9KGZ1bmN0aW9uIGxleCgpe3ZhciBjaGFyYWN0ZXIsZnJvbSxsaW5lLHM7ZnVuY3Rpb24gbmV4dExpbmUoKXt2YXIgYXQ7aWYobGluZT49bGluZXMubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQpjaGFyYWN0ZXI9MTtzPWxpbmVzW2xpbmVdO2xpbmUrPTE7YXQ9cy5zZWFyY2goLyBcdC8pO2lmKGF0Pj0wKXt3YXJuaW5nQXQoIk1peGVkIHNwYWNlcyBhbmQgdGFicy4iLGxpbmUsYXQrMSk7fQpzPXMucmVwbGFjZSgvXHQvZyx0YWIpO2F0PXMuc2VhcmNoKGN4KTtpZihhdD49MCl7d2FybmluZ0F0KCJVbnNhZmUgY2hhcmFjdGVyLiIsbGluZSxhdCk7fQppZihvcHRpb24ubWF4bGVuJiZvcHRpb24ubWF4bGVuPHMubGVuZ3RoKXt3YXJuaW5nQXQoIkxpbmUgdG9vIGxvbmcuIixsaW5lLHMubGVuZ3RoKTt9CnJldHVybiB0cnVlO30KZnVuY3Rpb24gaXQodHlwZSx2YWx1ZSl7dmFyIGksdDtpZih0eXBlPT09Jyhjb2xvciknKXt0PXt0eXBlOnR5cGV9O31lbHNlIGlmKHR5cGU9PT0nKHB1bmN0dWF0b3IpJ3x8KHR5cGU9PT0nKGlkZW50aWZpZXIpJyYmaXNfb3duKHN5bnRheCx2YWx1ZSkpKXt0PXN5bnRheFt2YWx1ZV18fHN5bnRheFsnKGVycm9yKSddO31lbHNle3Q9c3ludGF4W3R5cGVdO30KdD1PYmplY3QuY3JlYXRlKHQpO2lmKHR5cGU9PT0nKHN0cmluZyknfHx0eXBlPT09JyhyYW5nZSknKXtpZihqeC50ZXN0KHZhbHVlKSl7d2FybmluZ0F0KCJTY3JpcHQgVVJMLiIsbGluZSxmcm9tKTt9fQppZih0eXBlPT09JyhpZGVudGlmaWVyKScpe3QuaWRlbnRpZmllcj10cnVlO2lmKHZhbHVlPT09J19faXRlcmF0b3JfXyd8fHZhbHVlPT09J19fcHJvdG9fXycpe2Vycm9yQXQoIlJlc2VydmVkIG5hbWUgJ3thfScuIixsaW5lLGZyb20sdmFsdWUpO31lbHNlIGlmKG9wdGlvbi5ub21lbiYmKHZhbHVlLmNoYXJBdCgwKT09PSdfJ3x8dmFsdWUuY2hhckF0KHZhbHVlLmxlbmd0aC0xKT09PSdfJykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCB7YX0gaW4gJ3tifScuIixsaW5lLGZyb20sImRhbmdsaW5nICdfJyIsdmFsdWUpO319CnQudmFsdWU9dmFsdWU7dC5saW5lPWxpbmU7dC5jaGFyYWN0ZXI9Y2hhcmFjdGVyO3QuZnJvbT1mcm9tO2k9dC5pZDtpZihpIT09JyhlbmRsaW5lKScpe3ByZXJlZz1pJiYoKCcoLD06WyEmfD97fTsnLmluZGV4T2YoaS5jaGFyQXQoaS5sZW5ndGgtMSkpPj0wKXx8aT09PSdyZXR1cm4nKTt9CnJldHVybiB0O30KcmV0dXJue2luaXQ6ZnVuY3Rpb24oc291cmNlKXtpZih0eXBlb2Ygc291cmNlPT09J3N0cmluZycpe2xpbmVzPXNvdXJjZS5yZXBsYWNlKC9cclxuL2csJ1xuJykucmVwbGFjZSgvXHIvZywnXG4nKS5zcGxpdCgnXG4nKTt9ZWxzZXtsaW5lcz1zb3VyY2U7fQpsaW5lPTA7bmV4dExpbmUoKTtmcm9tPTE7fSxyYW5nZTpmdW5jdGlvbihiZWdpbixlbmQpe3ZhciBjLHZhbHVlPScnO2Zyb209Y2hhcmFjdGVyO2lmKHMuY2hhckF0KDApIT09YmVnaW4pe2Vycm9yQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsY2hhcmFjdGVyLGJlZ2luLHMuY2hhckF0KDApKTt9CmZvcig7Oyl7cz1zLnNsaWNlKDEpO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KDApO3N3aXRjaChjKXtjYXNlJyc6ZXJyb3JBdCgiTWlzc2luZyAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLGMpO2JyZWFrO2Nhc2UgZW5kOnM9cy5zbGljZSgxKTtjaGFyYWN0ZXIrPTE7cmV0dXJuIGl0KCcocmFuZ2UpJyx2YWx1ZSk7Y2FzZSB4cXVvdGU6Y2FzZSdcXCc6d2FybmluZ0F0KCJVbmV4cGVjdGVkICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsYyk7fQp2YWx1ZSs9Yzt9fSx0b2tlbjpmdW5jdGlvbigpe3ZhciBiLGMsY2FwdHVyZXMsZCxkZXB0aCxoaWdoLGksbCxsb3cscSx0O2Z1bmN0aW9uIG1hdGNoKHgpe3ZhciByPXguZXhlYyhzKSxyMTtpZihyKXtsPXJbMF0ubGVuZ3RoO3IxPXJbMV07Yz1yMS5jaGFyQXQoMCk7cz1zLnN1YnN0cihsKTtmcm9tPWNoYXJhY3RlcitsLXIxLmxlbmd0aDtjaGFyYWN0ZXIrPWw7cmV0dXJuIHIxO319CmZ1bmN0aW9uIHN0cmluZyh4KXt2YXIgYyxqLHI9Jyc7aWYoanNvbm1vZGUmJnghPT0nIicpe3dhcm5pbmdBdCgiU3RyaW5ncyBtdXN0IHVzZSBkb3VibGVxdW90ZS4iLGxpbmUsY2hhcmFjdGVyKTt9CmlmKHhxdW90ZT09PXh8fCh4bW9kZT09PSdzY3JpcHRzdHJpbmcnJiYheHF1b3RlKSl7cmV0dXJuIGl0KCcocHVuY3R1YXRvciknLHgpO30KZnVuY3Rpb24gZXNjKG4pe3ZhciBpPXBhcnNlSW50KHMuc3Vic3RyKGorMSxuKSwxNik7ais9bjtpZihpPj0zMiYmaTw9MTI2JiZpIT09MzQmJmkhPT05MiYmaSE9PTM5KXt3YXJuaW5nQXQoIlVubmVjZXNzYXJ5IGVzY2FwZW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpjaGFyYWN0ZXIrPW47Yz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpO30Kaj0wO2Zvcig7Oyl7d2hpbGUoaj49cy5sZW5ndGgpe2o9MDtpZih4bW9kZSE9PSdodG1sJ3x8IW5leHRMaW5lKCkpe2Vycm9yQXQoIlVuY2xvc2VkIHN0cmluZy4iLGxpbmUsZnJvbSk7fX0KYz1zLmNoYXJBdChqKTtpZihjPT09eCl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoaisxKTtyZXR1cm4gaXQoJyhzdHJpbmcpJyxyLHgpO30KaWYoYzwnICcpe2lmKGM9PT0nXG4nfHxjPT09J1xyJyl7YnJlYWs7fQp3YXJuaW5nQXQoIkNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZzoge2F9LiIsbGluZSxjaGFyYWN0ZXIraixzLnNsaWNlKDAsaikpO31lbHNlIGlmKGM9PT14cXVvdGUpe3dhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihjPT09JzwnKXtpZihvcHRpb24uc2FmZSYmeG1vZGU9PT0naHRtbCcpe3dhcm5pbmdBdCgiQURzYWZlIHN0cmluZyB2aW9sYXRpb24uIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihzLmNoYXJBdChqKzEpPT09Jy8nJiYoeG1vZGV8fG9wdGlvbi5zYWZlKSl7d2FybmluZ0F0KCJFeHBlY3RlZCAnPFxcLycgYW5kIGluc3RlYWQgc2F3ICc8LycuIixsaW5lLGNoYXJhY3Rlcik7fWVsc2UgaWYocy5jaGFyQXQoaisxKT09PSchJyYmKHhtb2RlfHxvcHRpb24uc2FmZSkpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCAnPCEnIGluIGEgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIpO319ZWxzZSBpZihjPT09J1xcJyl7aWYoeG1vZGU9PT0naHRtbCcpe2lmKG9wdGlvbi5zYWZlKXt3YXJuaW5nQXQoIkFEc2FmZSBzdHJpbmcgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNlIGlmKHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtqKz0xO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KGopO2lmKGMhPT14KXt3YXJuaW5nQXQoIkVzY2FwZW1lbnQgaW4gc3R5bGUgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNle2orPTE7Y2hhcmFjdGVyKz0xO2M9cy5jaGFyQXQoaik7c3dpdGNoKGMpe2Nhc2UgeHF1b3RlOndhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTticmVhaztjYXNlJ1xcJzpjYXNlJ1wnJzpjYXNlJyInOmNhc2UnLyc6YnJlYWs7Y2FzZSdiJzpjPSdcYic7YnJlYWs7Y2FzZSdmJzpjPSdcZic7YnJlYWs7Y2FzZSduJzpjPSdcbic7YnJlYWs7Y2FzZSdyJzpjPSdccic7YnJlYWs7Y2FzZSd0JzpjPSdcdCc7YnJlYWs7Y2FzZSd1Jzplc2MoNCk7YnJlYWs7Y2FzZSd2JzpjPSdcdic7YnJlYWs7Y2FzZSd4JzppZihqc29ubW9kZSl7d2FybmluZ0F0KCJBdm9pZCBcXHgtLiIsbGluZSxjaGFyYWN0ZXIpO30KZXNjKDIpO2JyZWFrO2RlZmF1bHQ6d2FybmluZ0F0KCJCYWQgZXNjYXBlbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9fX0Kcis9YztjaGFyYWN0ZXIrPTE7ais9MTt9fQpmb3IoOzspe2lmKCFzKXtyZXR1cm4gaXQobmV4dExpbmUoKT8nKGVuZGxpbmUpJzonKGVuZCknLCcnKTt9CndoaWxlKHhtb2RlPT09J291dGVyJyl7aT1zLnNlYXJjaChveCk7aWYoaT09PTApe2JyZWFrO31lbHNlIGlmKGk+MCl7Y2hhcmFjdGVyKz0xO3M9cy5zbGljZShpKTticmVhazt9ZWxzZXtpZighbmV4dExpbmUoKSl7cmV0dXJuIGl0KCcoZW5kKScsJycpO319fQp0PW1hdGNoKHJ4W3htb2RlXXx8dHgpO2lmKCF0KXt0PScnO2M9Jyc7d2hpbGUocyYmczwnIScpe3M9cy5zdWJzdHIoMSk7fQppZihzKXtpZih4bW9kZT09PSdodG1sJyl7cmV0dXJuIGl0KCcoZXJyb3IpJyxzLmNoYXJBdCgwKSk7fWVsc2V7ZXJyb3JBdCgiVW5leHBlY3RlZCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHMuc3Vic3RyKDAsMSkpO319fWVsc2V7aWYoYy5pc0FscGhhKCl8fGM9PT0nXyd8fGM9PT0nJCcpe3JldHVybiBpdCgnKGlkZW50aWZpZXIpJyx0KTt9CmlmKGMuaXNEaWdpdCgpKXtpZih4bW9kZSE9PSdzdHlsZScmJiFpc0Zpbml0ZShOdW1iZXIodCkpKXt3YXJuaW5nQXQoIkJhZCBudW1iZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKHhtb2RlIT09J3N0eWxlJyYmeG1vZGUhPT0nc3R5bGVwcm9wZXJ0eScmJnMuc3Vic3RyKDAsMSkuaXNBbHBoYSgpKXt3YXJuaW5nQXQoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKGM9PT0nMCcpe2Q9dC5zdWJzdHIoMSwxKTtpZihkLmlzRGlnaXQoKSl7aWYodG9rZW4uaWQhPT0nLicmJnhtb2RlIT09J3N0eWxlcHJvcGVydHknKXt3YXJuaW5nQXQoIkRvbid0IHVzZSBleHRyYSBsZWFkaW5nIHplcm9zICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsdCk7fX1lbHNlIGlmKGpzb25tb2RlJiYoZD09PSd4J3x8ZD09PSdYJykpe3dhcm5pbmdBdCgiQXZvaWQgMHgtLiAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO319CmlmKHQuc3Vic3RyKHQubGVuZ3RoLTEpPT09Jy4nKXt3YXJuaW5nQXQoIkEgdHJhaWxpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO30KcmV0dXJuIGl0KCcobnVtYmVyKScsdCk7fQpzd2l0Y2godCl7Y2FzZSciJzpjYXNlIiciOnJldHVybiBzdHJpbmcodCk7Y2FzZScvLyc6aWYoc3JjfHwoeG1vZGUmJnhtb2RlIT09J3NjcmlwdCcpKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9ZWxzZSBpZih4bW9kZT09PSdzY3JpcHQnJiYvPFxzKlwvL2kudGVzdChzKSl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIDxcLyBpbiBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNlIGlmKChvcHRpb24uc2FmZXx8eG1vZGU9PT0nc2NyaXB0JykmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiRGFuZ2Vyb3VzIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPScnO3Rva2VuLmNvbW1lbnQ9dHJ1ZTticmVhaztjYXNlJy8qJzppZihzcmN8fCh4bW9kZSYmeG1vZGUhPT0nc2NyaXB0JyYmeG1vZGUhPT0nc3R5bGUnJiZ4bW9kZSE9PSdzdHlsZXByb3BlcnR5Jykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO30KaWYob3B0aW9uLnNhZmUmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiQURzYWZlIGNvbW1lbnQgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIpO30KZm9yKDs7KXtpPXMuc2VhcmNoKGx4KTtpZihpPj0wKXticmVhazt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNle2lmKG9wdGlvbi5zYWZlJiZheC50ZXN0KHMpKXt3YXJuaW5nQXQoIkFEc2FmZSBjb21tZW50IHZpb2xhdGlvbi4iLGxpbmUsY2hhcmFjdGVyKTt9fX0KY2hhcmFjdGVyKz1pKzI7aWYocy5zdWJzdHIoaSwxKT09PScvJyl7ZXJyb3JBdCgiTmVzdGVkIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPXMuc3Vic3RyKGkrMik7dG9rZW4uY29tbWVudD10cnVlO2JyZWFrO2Nhc2UnLyptZW1iZXJzJzpjYXNlJy8qbWVtYmVyJzpjYXNlJy8qanNsaW50JzpjYXNlJy8qZ2xvYmFsJzpjYXNlJyovJzpyZXR1cm57dmFsdWU6dCx0eXBlOidzcGVjaWFsJyxsaW5lOmxpbmUsY2hhcmFjdGVyOmNoYXJhY3Rlcixmcm9tOmZyb219O2Nhc2UnJzpicmVhaztjYXNlJy8nOmlmKHRva2VuLmlkPT09Jy89Jyl7ZXJyb3JBdCgiQSByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBjYW4gYmUgY29uZnVzZWQgd2l0aCAnLz0nLiIsbGluZSxmcm9tKTt9CmlmKHByZXJlZyl7ZGVwdGg9MDtjYXB0dXJlcz0wO2w9MDtmb3IoOzspe2I9dHJ1ZTtjPXMuY2hhckF0KGwpO2wrPTE7c3dpdGNoKGMpe2Nhc2UnJzplcnJvckF0KCJVbmNsb3NlZCByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO3JldHVybjtjYXNlJy8nOmlmKGRlcHRoPjApe3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy8nKTt9CmM9cy5zdWJzdHIoMCxsLTEpO3E9e2c6dHJ1ZSxpOnRydWUsbTp0cnVlfTt3aGlsZShxW3MuY2hhckF0KGwpXT09PXRydWUpe3Fbcy5jaGFyQXQobCldPWZhbHNlO2wrPTE7fQpjaGFyYWN0ZXIrPWw7cz1zLnN1YnN0cihsKTtxPXMuY2hhckF0KDApO2lmKHE9PT0nLyd8fHE9PT0nKicpe2Vycm9yQXQoIkNvbmZ1c2luZyByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO30KcmV0dXJuIGl0KCcocmVnZXhwKScsYyk7Y2FzZSdcXCc6Yz1zLmNoYXJBdChsKTtpZihjPCcgJyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsKTt9ZWxzZSBpZihjPT09JzwnKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgZXNjYXBlZCBjaGFyYWN0ZXIgJ3thfScgaW4gcmVndWxhciBleHByZXNzaW9uLiIsbGluZSxmcm9tK2wsYyk7fQpsKz0xO2JyZWFrO2Nhc2UnKCc6ZGVwdGgrPTE7Yj1mYWxzZTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTtzd2l0Y2gocy5jaGFyQXQobCkpe2Nhc2UnOic6Y2FzZSc9JzpjYXNlJyEnOmwrPTE7YnJlYWs7ZGVmYXVsdDp3YXJuaW5nQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsZnJvbStsLCc6JyxzLmNoYXJBdChsKSk7fX1lbHNle2NhcHR1cmVzKz0xO30KYnJlYWs7Y2FzZSd8JzpiPWZhbHNlO2JyZWFrO2Nhc2UnKSc6aWYoZGVwdGg9PT0wKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLCcpJyk7fWVsc2V7ZGVwdGgtPTE7fQpicmVhaztjYXNlJyAnOnE9MTt3aGlsZShzLmNoYXJBdChsKT09PScgJyl7bCs9MTtxKz0xO30KaWYocT4xKXt3YXJuaW5nQXQoIlNwYWNlcyBhcmUgaGFyZCB0byBjb3VudC4gVXNlIHt7YX19LiIsbGluZSxmcm9tK2wscSk7fQpicmVhaztjYXNlJ1snOmM9cy5jaGFyQXQobCk7aWYoYz09PSdeJyl7bCs9MTtpZihvcHRpb24ucmVnZXhwKXt3YXJuaW5nQXQoIkluc2VjdXJlICd7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX0KcT1mYWxzZTtpZihjPT09J10nKXt3YXJuaW5nQXQoIkVtcHR5IGNsYXNzLiIsbGluZSxmcm9tK2wtMSk7cT10cnVlO30Ka2xhc3M6ZG97Yz1zLmNoYXJBdChsKTtsKz0xO3N3aXRjaChjKXtjYXNlJ1snOmNhc2UnXic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTtxPXRydWU7YnJlYWs7Y2FzZSctJzppZihxKXtxPWZhbHNlO31lbHNle3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy0nKTtxPXRydWU7fQpicmVhaztjYXNlJ10nOmlmKCFxKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy0nKTt9CmJyZWFrIGtsYXNzO2Nhc2UnXFwnOmM9cy5jaGFyQXQobCk7aWYoYzwnICcpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciBpbiByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20rbCk7fWVsc2UgaWYoYz09PSc8Jyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGVzY2FwZWQgY2hhcmFjdGVyICd7YX0nIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsLGMpO30KbCs9MTtxPXRydWU7YnJlYWs7Y2FzZScvJzp3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy8nKTtxPXRydWU7YnJlYWs7Y2FzZSc8JzppZih4bW9kZT09PSdzY3JpcHQnKXtjPXMuY2hhckF0KGwpO2lmKGM9PT0nISd8fGM9PT0nLycpe3dhcm5pbmdBdCgiSFRNTCBjb25mdXNpb24gaW4gcmVndWxhciBleHByZXNzaW9uICc8e2F9Jy4iLGxpbmUsZnJvbStsLGMpO319CnE9dHJ1ZTticmVhaztkZWZhdWx0OnE9dHJ1ZTt9fXdoaWxlKGMpO2JyZWFrO2Nhc2UnLic6aWYob3B0aW9uLnJlZ2V4cCl7d2FybmluZ0F0KCJJbnNlY3VyZSAne2F9Jy4iLGxpbmUsZnJvbStsLGMpO30KYnJlYWs7Y2FzZSddJzpjYXNlJz8nOmNhc2Uneyc6Y2FzZSd9JzpjYXNlJysnOmNhc2UnKic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTticmVhaztjYXNlJzwnOmlmKHhtb2RlPT09J3NjcmlwdCcpe2M9cy5jaGFyQXQobCk7aWYoYz09PSchJ3x8Yz09PScvJyl7d2FybmluZ0F0KCJIVE1MIGNvbmZ1c2lvbiBpbiByZWd1bGFyIGV4cHJlc3Npb24gJzx7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX19CmlmKGIpe3N3aXRjaChzLmNoYXJBdChsKSl7Y2FzZSc/JzpjYXNlJysnOmNhc2UnKic6bCs9MTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmJyZWFrO2Nhc2Uneyc6bCs9MTtjPXMuY2hhckF0KGwpO2lmKGM8JzAnfHxjPic5Jyl7d2FybmluZ0F0KCJFeHBlY3RlZCBhIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixsaW5lLGZyb20rbCxjKTt9CmwrPTE7bG93PStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtsb3c9K2MrKGxvdyoxMCk7fQpoaWdoPWxvdztpZihjPT09JywnKXtsKz0xO2hpZ2g9SW5maW5pdHk7Yz1zLmNoYXJBdChsKTtpZihjPj0nMCcmJmM8PSc5Jyl7bCs9MTtoaWdoPStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtoaWdoPStjKyhoaWdoKjEwKTt9fX0KaWYocy5jaGFyQXQobCkhPT0nfScpe3dhcm5pbmdBdCgiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbGluZSxmcm9tK2wsJ30nLGMpO31lbHNle2wrPTE7fQppZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmlmKGxvdz5oaWdoKXt3YXJuaW5nQXQoIid7YX0nIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuICd7Yn0nLiIsbGluZSxmcm9tK2wsbG93LGhpZ2gpO319fX0KYz1zLnN1YnN0cigwLGwtMSk7Y2hhcmFjdGVyKz1sO3M9cy5zdWJzdHIobCk7cmV0dXJuIGl0KCcocmVnZXhwKScsYyk7fQpyZXR1cm4gaXQoJyhwdW5jdHVhdG9yKScsdCk7Y2FzZSc8IS0tJzpsPWxpbmU7Yz1jaGFyYWN0ZXI7Zm9yKDs7KXtpPXMuaW5kZXhPZignLS0nKTtpZihpPj0wKXticmVhazt9Cmk9cy5pbmRleE9mKCc8IScpO2lmKGk+PTApe2Vycm9yQXQoIk5lc3RlZCBIVE1MIGNvbW1lbnQuIixsaW5lLGNoYXJhY3RlcitpKTt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBIVE1MIGNvbW1lbnQuIixsLGMpO319Cmw9cy5pbmRleE9mKCc8IScpO2lmKGw+PTAmJmw8aSl7ZXJyb3JBdCgiTmVzdGVkIEhUTUwgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyK2wpO30KY2hhcmFjdGVyKz1pO2lmKHNbaSsyXSE9PSc+Jyl7ZXJyb3JBdCgiRXhwZWN0ZWQgLS0+LiIsbGluZSxjaGFyYWN0ZXIpO30KY2hhcmFjdGVyKz0zO3M9cy5zbGljZShpKzMpO2JyZWFrO2Nhc2UnIyc6aWYoeG1vZGU9PT0naHRtbCd8fHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtmb3IoOzspe2M9cy5jaGFyQXQoMCk7aWYoKGM8JzAnfHxjPic5JykmJihjPCdhJ3x8Yz4nZicpJiYoYzwnQSd8fGM+J0YnKSl7YnJlYWs7fQpjaGFyYWN0ZXIrPTE7cz1zLnN1YnN0cigxKTt0Kz1jO30KaWYodC5sZW5ndGghPT00JiZ0Lmxlbmd0aCE9PTcpe3dhcm5pbmdBdCgiQmFkIGhleCBjb2xvciAne2F9Jy4iLGxpbmUsZnJvbStsLHQpO30KcmV0dXJuIGl0KCcoY29sb3IpJyx0KTt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTtkZWZhdWx0OmlmKHhtb2RlPT09J291dGVyJyYmYz09PScmJyl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoMSk7Zm9yKDs7KXtjPXMuY2hhckF0KDApO2NoYXJhY3Rlcis9MTtzPXMuc3Vic3RyKDEpO2lmKGM9PT0nOycpe2JyZWFrO30KaWYoISgoYz49JzAnJiZjPD0nOScpfHwoYz49J2EnJiZjPD0neicpfHxjPT09JyMnKSl7ZXJyb3JBdCgiQmFkIGVudGl0eSIsbGluZSxmcm9tK2wsY2hhcmFjdGVyKTt9fQpicmVhazt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTt9fX19fTt9KCkpO2Z1bmN0aW9uIGFkZGxhYmVsKHQsdHlwZSl7aWYob3B0aW9uLnNhZmUmJmZ1bmN0WycoZ2xvYmFsKSddJiZ0eXBlb2YgcHJlZGVmaW5lZFt0XSE9PSdib29sZWFuJyl7d2FybmluZygnQURzYWZlIGdsb2JhbDogJyt0KycuJyx0b2tlbik7fWVsc2UgaWYodD09PSdoYXNPd25Qcm9wZXJ0eScpe3dhcm5pbmcoIidoYXNPd25Qcm9wZXJ0eScgaXMgYSByZWFsbHkgYmFkIG5hbWUuIik7fQppZihpc19vd24oZnVuY3QsdCkmJiFmdW5jdFsnKGdsb2JhbCknXSl7d2FybmluZyhmdW5jdFt0XT09PXRydWU/Iid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iOiIne2F9JyBpcyBhbHJlYWR5IGRlZmluZWQuIixuZXh0dG9rZW4sdCk7fQpmdW5jdFt0XT10eXBlO2lmKGZ1bmN0WycoZ2xvYmFsKSddKXtnbG9iYWxbdF09ZnVuY3Q7aWYoaXNfb3duKGltcGxpZWQsdCkpe3dhcm5pbmcoIid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iLG5leHR0b2tlbix0KTtkZWxldGUgaW1wbGllZFt0XTt9fWVsc2V7c2NvcGVbdF09ZnVuY3Q7fX0KZnVuY3Rpb24gZG9PcHRpb24oKXt2YXIgYixvYmosZmlsdGVyLG89bmV4dHRva2VuLnZhbHVlLHQsdjtzd2l0Y2gobyl7Y2FzZScqLyc6ZXJyb3IoIlVuYmVndW4gY29tbWVudC4iKTticmVhaztjYXNlJy8qbWVtYmVycyc6Y2FzZScvKm1lbWJlcic6bz0nLyptZW1iZXJzJztpZighbWVtYmVyc09ubHkpe21lbWJlcnNPbmx5PXt9O30Kb2JqPW1lbWJlcnNPbmx5O2JyZWFrO2Nhc2UnLypqc2xpbnQnOmlmKG9wdGlvbi5zYWZlKXt3YXJuaW5nKCJBRHNhZmUgcmVzdHJpY3Rpb24uIik7fQpvYmo9b3B0aW9uO2ZpbHRlcj1ib29sT3B0aW9uczticmVhaztjYXNlJy8qZ2xvYmFsJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIHJlc3RyaWN0aW9uLiIpO30Kb2JqPXByZWRlZmluZWQ7YnJlYWs7ZGVmYXVsdDp9CnQ9bGV4LnRva2VuKCk7bG9vcDpmb3IoOzspe2Zvcig7Oyl7aWYodC50eXBlPT09J3NwZWNpYWwnJiZ0LnZhbHVlPT09JyovJyl7YnJlYWsgbG9vcDt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyYmdC5pZCE9PScsJyl7YnJlYWs7fQp0PWxleC50b2tlbigpO30KaWYodC50eXBlIT09JyhzdHJpbmcpJyYmdC50eXBlIT09JyhpZGVudGlmaWVyKScmJm8hPT0nLyptZW1iZXJzJyl7ZXJyb3IoIkJhZCBvcHRpb24uIix0KTt9CnY9bGV4LnRva2VuKCk7aWYodi5pZD09PSc6Jyl7dj1sZXgudG9rZW4oKTtpZihvYmo9PT1tZW1iZXJzT25seSl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHQsJyovJywnOicpO30KaWYodC52YWx1ZT09PSdpbmRlbnQnJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoud2hpdGU9dHJ1ZTtvYmouaW5kZW50PWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhlcnInJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4ZXJyPWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhsZW4nJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4bGVuPWI7fWVsc2UgaWYodi52YWx1ZT09PSd0cnVlJyl7b2JqW3QudmFsdWVdPXRydWU7fWVsc2UgaWYodi52YWx1ZT09PSdmYWxzZScpe29ialt0LnZhbHVlXT1mYWxzZTt9ZWxzZXtlcnJvcigiQmFkIG9wdGlvbiB2YWx1ZS4iLHYpO30KdD1sZXgudG9rZW4oKTt9ZWxzZXtpZihvPT09Jy8qanNsaW50Jyl7ZXJyb3IoIk1pc3Npbmcgb3B0aW9uIHZhbHVlLiIsdCk7fQpvYmpbdC52YWx1ZV09ZmFsc2U7dD12O319CmlmKGZpbHRlcil7YXNzdW1lKCk7fX0KZnVuY3Rpb24gcGVlayhwKXt2YXIgaT1wfHwwLGo9MCx0O3doaWxlKGo8PWkpe3Q9bG9va2FoZWFkW2pdO2lmKCF0KXt0PWxvb2thaGVhZFtqXT1sZXgudG9rZW4oKTt9CmorPTE7fQpyZXR1cm4gdDt9CmZ1bmN0aW9uIGFkdmFuY2UoaWQsdCl7c3dpdGNoKHRva2VuLmlkKXtjYXNlJyhudW1iZXIpJzppZihuZXh0dG9rZW4uaWQ9PT0nLicpe3dhcm5pbmcoIkEgZG90IGZvbGxvd2luZyBhIG51bWJlciBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRlY2ltYWwgcG9pbnQuIix0b2tlbik7fQpicmVhaztjYXNlJy0nOmlmKG5leHR0b2tlbi5pZD09PSctJ3x8bmV4dHRva2VuLmlkPT09Jy0tJyl7d2FybmluZygiQ29uZnVzaW5nIG1pbnVzc2VzLiIpO30KYnJlYWs7Y2FzZScrJzppZihuZXh0dG9rZW4uaWQ9PT0nKyd8fG5leHR0b2tlbi5pZD09PScrKycpe3dhcm5pbmcoIkNvbmZ1c2luZyBwbHVzc2VzLiIpO30KYnJlYWs7fQppZih0b2tlbi50eXBlPT09JyhzdHJpbmcpJ3x8dG9rZW4uaWRlbnRpZmllcil7YW5vbm5hbWU9dG9rZW4udmFsdWU7fQppZihpZCYmbmV4dHRva2VuLmlkIT09aWQpe2lmKHQpe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe3dhcm5pbmcoIlVubWF0Y2hlZCAne2F9Jy4iLHQsdC5pZCk7fWVsc2V7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gbWF0Y2ggJ3tifScgZnJvbSBsaW5lIHtjfSBhbmQgaW5zdGVhZCBzYXcgJ3tkfScuIixuZXh0dG9rZW4saWQsdC5pZCx0LmxpbmUsbmV4dHRva2VuLnZhbHVlKTt9fWVsc2UgaWYobmV4dHRva2VuLnR5cGUhPT0nKGlkZW50aWZpZXIpJ3x8bmV4dHRva2VuLnZhbHVlIT09aWQpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbixpZCxuZXh0dG9rZW4udmFsdWUpO319CnByZXZ0b2tlbj10b2tlbjt0b2tlbj1uZXh0dG9rZW47Zm9yKDs7KXtuZXh0dG9rZW49bG9va2FoZWFkLnNoaWZ0KCl8fGxleC50b2tlbigpO2lmKG5leHR0b2tlbi5pZD09PScoZW5kKSd8fG5leHR0b2tlbi5pZD09PScoZXJyb3IpJyl7cmV0dXJuO30KaWYobmV4dHRva2VuLnR5cGU9PT0nc3BlY2lhbCcpe2RvT3B0aW9uKCk7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JyhlbmRsaW5lKScpe2JyZWFrO319fX0KZnVuY3Rpb24gcGFyc2UocmJwLGluaXRpYWwpe3ZhciBsZWZ0O2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJVbmV4cGVjdGVkIGVhcmx5IGVuZCBvZiBwcm9ncmFtLiIsdG9rZW4pO30KYWR2YW5jZSgpO2lmKG9wdGlvbi5zYWZlJiZ0eXBlb2YgcHJlZGVmaW5lZFt0b2tlbi52YWx1ZV09PT0nYm9vbGVhbicmJihuZXh0dG9rZW4uaWQhPT0nKCcmJm5leHR0b2tlbi5pZCE9PScuJykpe3dhcm5pbmcoJ0FEc2FmZSB2aW9sYXRpb24uJyx0b2tlbik7fQppZihpbml0aWFsKXthbm9ubmFtZT0nYW5vbnltb3VzJztmdW5jdFsnKHZlcmIpJ109dG9rZW4udmFsdWU7fQppZihpbml0aWFsPT09dHJ1ZSYmdG9rZW4uZnVkKXtsZWZ0PXRva2VuLmZ1ZCgpO31lbHNle2lmKHRva2VuLm51ZCl7bGVmdD10b2tlbi5udWQoKTt9ZWxzZXtpZihuZXh0dG9rZW4udHlwZT09PScobnVtYmVyKScmJnRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBIGxlYWRpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdDogJy57YX0nLiIsdG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7cmV0dXJuIHRva2VuO31lbHNle2Vycm9yKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fQp3aGlsZShyYnA8bmV4dHRva2VuLmxicCl7YWR2YW5jZSgpO2lmKHRva2VuLmxlZCl7bGVmdD10b2tlbi5sZWQobGVmdCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIG9wZXJhdG9yIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fX0KcmV0dXJuIGxlZnQ7fQpmdW5jdGlvbiBhZGphY2VudChsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlfHx4bW9kZT09PSdzdHlsZXByb3BlcnR5J3x8eG1vZGU9PT0nc3R5bGUnKXtpZihsZWZ0LmNoYXJhY3RlciE9PXJpZ2h0LmZyb20mJmxlZnQubGluZT09PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgJ3thfScuIixyaWdodCxsZWZ0LnZhbHVlKTt9fX0KZnVuY3Rpb24gbm9zcGFjZShsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlJiYhbGVmdC5jb21tZW50KXtpZihsZWZ0LmxpbmU9PT1yaWdodC5saW5lKXthZGphY2VudChsZWZ0LHJpZ2h0KTt9fX0KZnVuY3Rpb24gbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7aWYob3B0aW9uLndoaXRlKXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYobGVmdC5saW5lPT09cmlnaHQubGluZSYmbGVmdC5jaGFyYWN0ZXI9PT1yaWdodC5mcm9tKXt3YXJuaW5nKCJNaXNzaW5nIHNwYWNlIGFmdGVyICd7YX0nLiIsbmV4dHRva2VuLGxlZnQudmFsdWUpO319fQpmdW5jdGlvbiBub2JyZWFrbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7bGVmdD1sZWZ0fHx0b2tlbjtyaWdodD1yaWdodHx8bmV4dHRva2VuO2lmKCFvcHRpb24ubGF4YnJlYWsmJmxlZnQubGluZSE9PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIkJhZCBsaW5lIGJyZWFraW5nIGJlZm9yZSAne2F9Jy4iLHJpZ2h0LHJpZ2h0LmlkKTt9ZWxzZSBpZihvcHRpb24ud2hpdGUpe2xlZnQ9bGVmdHx8dG9rZW47cmlnaHQ9cmlnaHR8fG5leHR0b2tlbjtpZihsZWZ0LmNoYXJhY3Rlcj09PXJpZ2h0LmZyb20pe3dhcm5pbmcoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixuZXh0dG9rZW4sbGVmdC52YWx1ZSk7fX19CmZ1bmN0aW9uIGluZGVudGF0aW9uKGJpYXMpe3ZhciBpO2lmKG9wdGlvbi53aGl0ZSYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7aT1pbmRlbnQrKGJpYXN8fDApO2lmKG5leHR0b2tlbi5mcm9tIT09aSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gaGF2ZSBhbiBpbmRlbnRhdGlvbiBhdCB7Yn0gaW5zdGVhZCBhdCB7Y30uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlLGksbmV4dHRva2VuLmZyb20pO319fQpmdW5jdGlvbiBub2xpbmVicmVhayh0KXt0PXR8fHRva2VuO2lmKHQubGluZSE9PW5leHR0b2tlbi5saW5lKXt3YXJuaW5nKCJMaW5lIGJyZWFraW5nIGVycm9yICd7YX0nLiIsdCx0LnZhbHVlKTt9fQpmdW5jdGlvbiBjb21tYSgpe2lmKHRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aWYoIW9wdGlvbi5sYXhicmVhayl7d2FybmluZygiQmFkIGxpbmUgYnJlYWtpbmcgYmVmb3JlICd7YX0nLiIsdG9rZW4sbmV4dHRva2VuLmlkKTt9fWVsc2UgaWYodG9rZW4uY2hhcmFjdGVyIT09bmV4dHRva2VuLmZyb20mJm9wdGlvbi53aGl0ZSl7d2FybmluZygiVW5leHBlY3RlZCBzcGFjZSBhZnRlciAne2F9Jy4iLG5leHR0b2tlbix0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcsJyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9CmZ1bmN0aW9uIHN5bWJvbChzLHApe3ZhciB4PXN5bnRheFtzXTtpZigheHx8dHlwZW9mIHghPT0nb2JqZWN0Jyl7c3ludGF4W3NdPXg9e2lkOnMsbGJwOnAsdmFsdWU6c307fQpyZXR1cm4geDt9CmZ1bmN0aW9uIGRlbGltKHMpe3JldHVybiBzeW1ib2wocywwKTt9CmZ1bmN0aW9uIHN0bXQocyxmKXt2YXIgeD1kZWxpbShzKTt4LmlkZW50aWZpZXI9eC5yZXNlcnZlZD10cnVlO3guZnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiBibG9ja3N0bXQocyxmKXt2YXIgeD1zdG10KHMsZik7eC5ibG9jaz10cnVlO3JldHVybiB4O30KZnVuY3Rpb24gcmVzZXJ2ZU5hbWUoeCl7dmFyIGM9eC5pZC5jaGFyQXQoMCk7aWYoKGM+PSdhJyYmYzw9J3onKXx8KGM+PSdBJyYmYzw9J1onKSl7eC5pZGVudGlmaWVyPXgucmVzZXJ2ZWQ9dHJ1ZTt9CnJldHVybiB4O30KZnVuY3Rpb24gcHJlZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTtyZXNlcnZlTmFtZSh4KTt4Lm51ZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKCl7dGhpcy5yaWdodD1wYXJzZSgxNTApO3RoaXMuYXJpdHk9J3VuYXJ5JztpZih0aGlzLmlkPT09JysrJ3x8dGhpcy5pZD09PSctLScpe2lmKG9wdGlvbi5wbHVzcGx1cyl7d2FybmluZygiVW5leHBlY3RlZCB1c2Ugb2YgJ3thfScuIix0aGlzLHRoaXMuaWQpO31lbHNlIGlmKCghdGhpcy5yaWdodC5pZGVudGlmaWVyfHx0aGlzLnJpZ2h0LnJlc2VydmVkKSYmdGhpcy5yaWdodC5pZCE9PScuJyYmdGhpcy5yaWdodC5pZCE9PSdbJyl7d2FybmluZygiQmFkIG9wZXJhbmQuIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gdHlwZShzLGYpe3ZhciB4PWRlbGltKHMpO3gudHlwZT1zO3gubnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZlKHMsZil7dmFyIHg9dHlwZShzLGYpO3guaWRlbnRpZmllcj14LnJlc2VydmVkPXRydWU7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZldmFyKHMsdil7cmV0dXJuIHJlc2VydmUocyxmdW5jdGlvbigpe2lmKHRoaXMuaWQ9PT0ndGhpcyd8fHRoaXMuaWQ9PT0nYXJndW1lbnRzJyl7aWYoc3RyaWN0X21vZGUmJmZ1bmN0WycoZ2xvYmFsKSddKXt3YXJuaW5nKCJTdHJpY3QgdmlvbGF0aW9uLiIsdGhpcyk7fWVsc2UgaWYob3B0aW9uLnNhZmUpe3dhcm5pbmcoIkFEc2FmZSB2aW9sYXRpb24uIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9KTt9CmZ1bmN0aW9uIGluZml4KHMsZixwLHcpe3ZhciB4PXN5bWJvbChzLHApO3Jlc2VydmVOYW1lKHgpO3gubGVkPWZ1bmN0aW9uKGxlZnQpe2lmKCF3KXtub2JyZWFrbm9uYWRqYWNlbnQocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KaWYodHlwZW9mIGY9PT0nZnVuY3Rpb24nKXtyZXR1cm4gZihsZWZ0LHRoaXMpO31lbHNle3RoaXMubGVmdD1sZWZ0O3RoaXMucmlnaHQ9cGFyc2UocCk7cmV0dXJuIHRoaXM7fX07cmV0dXJuIHg7fQpmdW5jdGlvbiByZWxhdGlvbihzLGYpe3ZhciB4PXN5bWJvbChzLDEwMCk7eC5sZWQ9ZnVuY3Rpb24obGVmdCl7bm9icmVha25vbmFkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt2YXIgcmlnaHQ9cGFyc2UoMTAwKTtpZigobGVmdCYmbGVmdC5pZD09PSdOYU4nKXx8KHJpZ2h0JiZyaWdodC5pZD09PSdOYU4nKSl7d2FybmluZygiVXNlIHRoZSBpc05hTiBmdW5jdGlvbiB0byBjb21wYXJlIHdpdGggTmFOLiIsdGhpcyk7fWVsc2UgaWYoZil7Zi5hcHBseSh0aGlzLFtsZWZ0LHJpZ2h0XSk7fQppZihsZWZ0LmlkPT09JyEnKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsbGVmdCwnIScpO30KaWYocmlnaHQuaWQ9PT0nIScpe3dhcm5pbmcoIkNvbmZ1c2luZyB1c2Ugb2YgJ3thfScuIixsZWZ0LCchJyk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXJpZ2h0O3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBpc1Bvb3JSZWxhdGlvbihub2RlKXtyZXR1cm4gbm9kZSYmKChub2RlLnR5cGU9PT0nKG51bWJlciknJiYrbm9kZS52YWx1ZT09PTApfHwobm9kZS50eXBlPT09JyhzdHJpbmcpJyYmbm9kZS52YWx1ZT09PScgJyl8fG5vZGUudHlwZT09PSd0cnVlJ3x8bm9kZS50eXBlPT09J2ZhbHNlJ3x8bm9kZS50eXBlPT09J3VuZGVmaW5lZCd8fG5vZGUudHlwZT09PSdudWxsJyk7fQpmdW5jdGlvbiBhc3NpZ25vcChzLGYpe3N5bWJvbChzLDIwKS5leHBzPXRydWU7cmV0dXJuIGluZml4KHMsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgbDt0aGF0LmxlZnQ9bGVmdDtpZihwcmVkZWZpbmVkW2xlZnQudmFsdWVdPT09ZmFsc2UmJnNjb3BlW2xlZnQudmFsdWVdWycoZ2xvYmFsKSddPT09dHJ1ZSl7d2FybmluZygnUmVhZCBvbmx5LicsbGVmdCk7fQppZihvcHRpb24uc2FmZSl7bD1sZWZ0O2Rve2lmKHR5cGVvZiBwcmVkZWZpbmVkW2wudmFsdWVdPT09J2Jvb2xlYW4nKXt3YXJuaW5nKCdBRHNhZmUgdmlvbGF0aW9uLicsbCk7fQpsPWwubGVmdDt9d2hpbGUobCk7fQppZihsZWZ0KXtpZihsZWZ0LmlkPT09Jy4nfHxsZWZ0LmlkPT09J1snKXtpZighbGVmdC5sZWZ0fHxsZWZ0LmxlZnQudmFsdWU9PT0nYXJndW1lbnRzJyl7d2FybmluZygnQmFkIGFzc2lnbm1lbnQuJyx0aGF0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O31lbHNlIGlmKGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpe2lmKGZ1bmN0W2xlZnQudmFsdWVdPT09J2V4Y2VwdGlvbicpe3dhcm5pbmcoIkRvIG5vdCBhc3NpZ24gdG8gdGhlIGV4Y2VwdGlvbiBwYXJhbWV0ZXIuIixsZWZ0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O30KaWYobGVmdD09PXN5bnRheFsnZnVuY3Rpb24nXSl7d2FybmluZygiRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBpbiBhbiBhc3NpZ25tZW50IGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fX0KZXJyb3IoIkJhZCBhc3NpZ25tZW50LiIsdGhhdCk7fSwyMCk7fQpmdW5jdGlvbiBiaXR3aXNlKHMsZixwKXt2YXIgeD1zeW1ib2wocyxwKTtyZXNlcnZlTmFtZSh4KTt4LmxlZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKGxlZnQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoaXMsdGhpcy5pZCk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXBhcnNlKHApO3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBiaXR3aXNlYXNzaWdub3Aocyl7c3ltYm9sKHMsMjApLmV4cHM9dHJ1ZTtyZXR1cm4gaW5maXgocyxmdW5jdGlvbihsZWZ0LHRoYXQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoYXQsdGhhdC5pZCk7fQpub25hZGphY2VudChwcmV2dG9rZW4sdG9rZW4pO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7aWYobGVmdCl7aWYobGVmdC5pZD09PScuJ3x8bGVmdC5pZD09PSdbJ3x8KGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpKXtwYXJzZSgxOSk7cmV0dXJuIHRoYXQ7fQppZihsZWZ0PT09c3ludGF4WydmdW5jdGlvbiddKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGluIGFuIGFzc2lnbm1lbnQsIGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fQpyZXR1cm4gdGhhdDt9CmVycm9yKCJCYWQgYXNzaWdubWVudC4iLHRoYXQpO30sMjApO30KZnVuY3Rpb24gc3VmZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTt4LmxlZD1mdW5jdGlvbihsZWZ0KXtpZihvcHRpb24ucGx1c3BsdXMpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdXNlIG9mICd7YX0nLiIsdGhpcyx0aGlzLmlkKTt9ZWxzZSBpZigoIWxlZnQuaWRlbnRpZmllcnx8bGVmdC5yZXNlcnZlZCkmJmxlZnQuaWQhPT0nLicmJmxlZnQuaWQhPT0nWycpe3dhcm5pbmcoIkJhZCBvcGVyYW5kLiIsdGhpcyk7fQp0aGlzLmxlZnQ9bGVmdDtyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gb3B0aW9uYWxpZGVudGlmaWVyKCl7aWYobmV4dHRva2VuLnJlc2VydmVkKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyAoYSByZXNlcnZlZCB3b3JkKS4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm4gdG9rZW4udmFsdWU7fX0KZnVuY3Rpb24gaWRlbnRpZmllcigpe3ZhciBpPW9wdGlvbmFsaWRlbnRpZmllcigpO2lmKGkpe3JldHVybiBpO30KaWYodG9rZW4uaWQ9PT0nZnVuY3Rpb24nJiZuZXh0dG9rZW4uaWQ9PT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgbmFtZSBpbiBmdW5jdGlvbiBzdGF0ZW1lbnQuIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX0KZnVuY3Rpb24gcmVhY2hhYmxlKHMpe3ZhciBpPTAsdDtpZihuZXh0dG9rZW4uaWQhPT0nOyd8fG5vcmVhY2gpe3JldHVybjt9CmZvcig7Oyl7dD1wZWVrKGkpO2lmKHQucmVhY2gpe3JldHVybjt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyl7aWYodC5pZD09PSdmdW5jdGlvbicpe3dhcm5pbmcoIklubmVyIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGF0IHRoZSB0b3Agb2YgdGhlIG91dGVyIGZ1bmN0aW9uLiIsdCk7YnJlYWs7fQp3YXJuaW5nKCJVbnJlYWNoYWJsZSAne2F9JyBhZnRlciAne2J9Jy4iLHQsdC52YWx1ZSxzKTticmVhazt9CmkrPTE7fX0KZnVuY3Rpb24gc3RhdGVtZW50KG5vaW5kZW50KXt2YXIgaT1pbmRlbnQscixzPXNjb3BlLHQ9bmV4dHRva2VuO2lmKHQuaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iLHQpO2FkdmFuY2UoJzsnKTtyZXR1cm47fQppZih0LmlkZW50aWZpZXImJiF0LnJlc2VydmVkJiZwZWVrKCkuaWQ9PT0nOicpe2FkdmFuY2UoKTthZHZhbmNlKCc6Jyk7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTthZGRsYWJlbCh0LnZhbHVlLCdsYWJlbCcpO2lmKCFuZXh0dG9rZW4ubGFiZWxsZWQpe3dhcm5pbmcoIkxhYmVsICd7YX0nIG9uIHtifSBzdGF0ZW1lbnQuIixuZXh0dG9rZW4sdC52YWx1ZSxuZXh0dG9rZW4udmFsdWUpO30KaWYoangudGVzdCh0LnZhbHVlKyc6Jykpe3dhcm5pbmcoIkxhYmVsICd7YX0nIGxvb2tzIGxpa2UgYSBqYXZhc2NyaXB0IHVybC4iLHQsdC52YWx1ZSk7fQpuZXh0dG9rZW4ubGFiZWw9dC52YWx1ZTt0PW5leHR0b2tlbjt9CmlmKCFub2luZGVudCl7aW5kZW50YXRpb24oKTt9CmlmKG5leHR0b2tlbi5pZD09PSduZXcnKXt3YXJuaW5nKCInbmV3JyBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBzdGF0ZW1lbnQuIik7fQpyPXBhcnNlKDAsdHJ1ZSk7aWYoIXQuYmxvY2spe2lmKCFyfHwhci5leHBzKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBhc3NpZ25tZW50IG9yIGZ1bmN0aW9uIGNhbGwgYW5kIGluc3RlYWQgc2F3IGFuIGV4cHJlc3Npb24uIix0b2tlbik7fQppZihuZXh0dG9rZW4uaWQhPT0nOycpe3dhcm5pbmdBdCgiTWlzc2luZyBzZW1pY29sb24uIix0b2tlbi5saW5lLHRva2VuLmZyb20rdG9rZW4udmFsdWUubGVuZ3RoKTt9ZWxzZXthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkdmFuY2UoJzsnKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO319CmluZGVudD1pO3Njb3BlPXM7cmV0dXJuIHI7fQpmdW5jdGlvbiB1c2Vfc3RyaWN0KCl7aWYobmV4dHRva2VuLnZhbHVlPT09J3VzZSBzdHJpY3QnKXthZHZhbmNlKCk7YWR2YW5jZSgnOycpO3N0cmljdF9tb2RlPXRydWU7cmV0dXJuIHRydWU7fWVsc2V7cmV0dXJuIGZhbHNlO319CmZ1bmN0aW9uIHN0YXRlbWVudHMoYmVnaW4pe3ZhciBhPVtdLGYscDtpZihiZWdpbiYmIXVzZV9zdHJpY3QoKSYmb3B0aW9uLnN0cmljdCl7d2FybmluZygnTWlzc2luZyAidXNlIHN0cmljdCIgc3RhdGVtZW50LicsbmV4dHRva2VuKTt9CmlmKG9wdGlvbi5hZHNhZmUpe3N3aXRjaChiZWdpbil7Y2FzZSdzY3JpcHQnOmlmKCFhZHNhZmVfbWF5KXtpZihuZXh0dG9rZW4udmFsdWUhPT0nQURTQUZFJ3x8cGVlaygwKS5pZCE9PScuJ3x8KHBlZWsoMSkudmFsdWUhPT0naWQnJiZwZWVrKDEpLnZhbHVlIT09J2dvJykpe2Vycm9yKCdBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5pZCBvciBBRFNBRkUuZ28uJyxuZXh0dG9rZW4pO319CmlmKG5leHR0b2tlbi52YWx1ZT09PSdBRFNBRkUnJiZwZWVrKDApLmlkPT09Jy4nJiZwZWVrKDEpLnZhbHVlPT09J2lkJyl7aWYoYWRzYWZlX21heSl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb24uJyxuZXh0dG9rZW4pO30KYWR2YW5jZSgnQURTQUZFJyk7YWR2YW5jZSgnLicpO2FkdmFuY2UoJ2lkJyk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi52YWx1ZSE9PWFkc2FmZV9pZCl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb246IGlkIGRvZXMgbm90IG1hdGNoLicsbmV4dHRva2VuKTt9CmFkdmFuY2UoJyhzdHJpbmcpJyk7YWR2YW5jZSgnKScpO2FkdmFuY2UoJzsnKTthZHNhZmVfbWF5PXRydWU7fQpicmVhaztjYXNlJ2xpYic6aWYobmV4dHRva2VuLnZhbHVlPT09J0FEU0FGRScpe2FkdmFuY2UoJ0FEU0FGRScpO2FkdmFuY2UoJy4nKTthZHZhbmNlKCdsaWInKTthZHZhbmNlKCcoJyk7YWR2YW5jZSgnKHN0cmluZyknKTtjb21tYSgpO2Y9cGFyc2UoMCk7aWYoZi5pZCE9PSdmdW5jdGlvbicpe2Vycm9yKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGxpYiBtdXN0IGJlIGEgZnVuY3Rpb24uJyxmKTt9CnA9Zi5mdW5jdFsnKHBhcmFtcyknXTtwPXAmJnAuam9pbignLCAnKTtpZihwJiZwIT09J2xpYicpe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixmLCcobGliKScsJygnK3ArJyknKTt9CmFkdmFuY2UoJyknKTthZHZhbmNlKCc7Jyk7cmV0dXJuIGE7fWVsc2V7ZXJyb3IoIkFEc2FmZSBsaWIgdmlvbGF0aW9uLiIpO319fQp3aGlsZSghbmV4dHRva2VuLnJlYWNoJiZuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtpZihuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iKTthZHZhbmNlKCc7Jyk7fWVsc2V7YS5wdXNoKHN0YXRlbWVudCgpKTt9fQpyZXR1cm4gYTt9CmZ1bmN0aW9uIGJsb2NrKGYpe3ZhciBhLGI9aW5ibG9jayxvbGRfaW5kZW50PWluZGVudCxzPXNjb3BlLHQ7aW5ibG9jaz1mO3Njb3BlPU9iamVjdC5jcmVhdGUoc2NvcGUpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7dD1uZXh0dG9rZW47aWYobmV4dHRva2VuLmlkPT09J3snKXthZHZhbmNlKCd7Jyk7aWYobmV4dHRva2VuLmlkIT09J30nfHx0b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmUpe2luZGVudCs9b3B0aW9uLmluZGVudDt3aGlsZSghZiYmbmV4dHRva2VuLmZyb20+aW5kZW50KXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7fQppZighZil7dXNlX3N0cmljdCgpO30KYT1zdGF0ZW1lbnRzKCk7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0KTtpbmRlbnQ9b2xkX2luZGVudDt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3snLG5leHR0b2tlbi52YWx1ZSk7bm9yZWFjaD10cnVlO2E9W3N0YXRlbWVudCgpXTtub3JlYWNoPWZhbHNlO30KZnVuY3RbJyh2ZXJiKSddPW51bGw7c2NvcGU9cztpbmJsb2NrPWI7cmV0dXJuIGE7fQpmdW5jdGlvbiBpZFZhbHVlKCl7cmV0dXJuIHRoaXM7fQpmdW5jdGlvbiBjb3VudE1lbWJlcihtKXtpZihtZW1iZXJzT25seSYmdHlwZW9mIG1lbWJlcnNPbmx5W21dIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIC8qbWVtYmVyICd7YX0nLiIsdG9rZW4sbSk7fQppZih0eXBlb2YgbWVtYmVyW21dPT09J251bWJlcicpe21lbWJlclttXSs9MTt9ZWxzZXttZW1iZXJbbV09MTt9fQpmdW5jdGlvbiBub3RlX2ltcGxpZWQodG9rZW4pe3ZhciBuYW1lPXRva2VuLnZhbHVlLGxpbmU9dG9rZW4ubGluZSxhPWltcGxpZWRbbmFtZV07aWYodHlwZW9mIGE9PT0nZnVuY3Rpb24nKXthPWZhbHNlO30KaWYoIWEpe2E9W2xpbmVdO2ltcGxpZWRbbmFtZV09YTt9ZWxzZSBpZihhW2EubGVuZ3RoLTFdIT09bGluZSl7YS5wdXNoKGxpbmUpO319CmZ1bmN0aW9uIGNzc05hbWUoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7YWR2YW5jZSgpO3JldHVybiB0cnVlO319CmZ1bmN0aW9uIGNzc051bWJlcigpe2lmKG5leHR0b2tlbi5pZD09PSctJyl7YWR2YW5jZSgnLScpO2FkamFjZW50KCk7bm9saW5lYnJlYWsoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgnKG51bWJlciknKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NTdHJpbmcoKXtpZihuZXh0dG9rZW4udHlwZT09PScoc3RyaW5nKScpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NDb2xvcigpe3ZhciBpLG51bWJlcjtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLnZhbHVlPT09J3JnYicpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7Zm9yKGk9MDtpPDM7aSs9MSl7aWYoaSl7YWR2YW5jZSgnLCcpO30KbnVtYmVyPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScobnVtYmVyKSd8fG51bWJlcjwwKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHBvc2l0aXZlIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfSciLG5leHR0b2tlbixudW1iZXIpO2FkdmFuY2UoKTt9ZWxzZXthZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JyUnKXthZHZhbmNlKCclJyk7aWYobnVtYmVyPjEwMCl7d2FybmluZygiRXhwZWN0ZWQgYSBwZXJjZW50YWdlIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyIsdG9rZW4sbnVtYmVyKTt9fWVsc2V7aWYobnVtYmVyPjI1NSl7d2FybmluZygiRXhwZWN0ZWQgYSBzbWFsbCBudW1iZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nIix0b2tlbixudW1iZXIpO319fX0KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO31lbHNlIGlmKGNzc0NvbG9yRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWR2YW5jZSgpO3JldHVybiB0cnVlO319ZWxzZSBpZihuZXh0dG9rZW4udHlwZT09PScoY29sb3IpJyl7YWR2YW5jZSgpO3JldHVybiB0cnVlO30KcmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gY3NzTGVuZ3RoKCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTtub2xpbmVicmVhaygpO30KaWYobmV4dHRva2VuLnR5cGU9PT0nKG51bWJlciknKXthZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZjc3NMZW5ndGhEYXRhW25leHR0b2tlbi52YWx1ZV09PT10cnVlKXthZGphY2VudCgpO2FkdmFuY2UoKTt9ZWxzZSBpZigrdG9rZW4udmFsdWUhPT0wKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGxpbmVhciB1bml0IGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KcmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmdW5jdGlvbiBjc3NMaW5lSGVpZ2h0KCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmY3NzTGVuZ3RoRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWRqYWNlbnQoKTthZHZhbmNlKCk7fQpyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1dpZHRoKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UndGhpbic6Y2FzZSdtZWRpdW0nOmNhc2UndGhpY2snOmFkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc01hcmdpbigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZihuZXh0dG9rZW4udmFsdWU9PT0nYXV0bycpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc0F0dHIoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2F0dHInKXthZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBuYW1lIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2FkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc0NvbW1hTGlzdCgpe3doaWxlKG5leHR0b2tlbi5pZCE9PSc7Jyl7aWYoIWNzc05hbWUoKSYmIWNzc1N0cmluZygpKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe3JldHVybiB0cnVlO30KY29tbWEoKTt9fQpmdW5jdGlvbiBjc3NDb3VudGVyKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVyJyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe30KYWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVycycpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyl7d2FybmluZygiRXhwZWN0ZWQgYSBzdHJpbmcgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0cmluZyBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTt9CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1NoYXBlKCl7dmFyIGk7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdyZWN0Jyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtmb3IoaT0wO2k8NDtpKz0xKXtpZighY3NzTGVuZ3RoKCkpe3dhcm5pbmcoIkV4cGVjdGVkIGEgbnVtYmVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO2JyZWFrO319CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1VybCgpe3ZhciBjLHVybDtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J3VybCcpe25leHR0b2tlbj1sZXgucmFuZ2UoJygnLCcpJyk7dXJsPW5leHR0b2tlbi52YWx1ZTtjPXVybC5jaGFyQXQoMCk7aWYoYz09PSciJ3x8Yz09PSdcJycpe2lmKHVybC5zbGljZSgtMSkhPT1jKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9ZWxzZXt1cmw9dXJsLnNsaWNlKDEsLTEpO2lmKHVybC5pbmRleE9mKGMpPj0wKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9fX0KaWYoIXVybCl7d2FybmluZygiTWlzc2luZyB1cmwuIik7fQphZHZhbmNlKCk7aWYob3B0aW9uLnNhZmUmJnV4LnRlc3QodXJsKSl7ZXJyb3IoIkFEc2FmZSBVUkwgdmlvbGF0aW9uLiIpO30KdXJscy5wdXNoKHVybCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpjc3NBbnk9W2Nzc1VybCxmdW5jdGlvbigpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUudG9Mb3dlckNhc2UoKSl7Y2FzZSd1cmwnOmNzc1VybCgpO2JyZWFrO2Nhc2UnZXhwcmVzc2lvbic6d2FybmluZygiVW5leHBlY3RlZCBleHByZXNzaW9uICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7YWR2YW5jZSgpO2JyZWFrO2RlZmF1bHQ6YWR2YW5jZSgpO319ZWxzZXtpZihuZXh0dG9rZW4uaWQ9PT0nOyd8fG5leHR0b2tlbi5pZD09PSchJ3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09J30nKXtyZXR1cm4gdHJ1ZTt9CmFkdmFuY2UoKTt9fX1dO2Nzc0JvcmRlclN0eWxlPVsnbm9uZScsJ2hpZGRlbicsJ2RvdHRlZCcsJ2Rhc2hlZCcsJ3NvbGlkJywnZG91YmxlJywncmlkZ2UnLCdpbnNldCcsJ291dHNldCddO2Nzc0JyZWFrPVsnYXV0bycsJ2Fsd2F5cycsJ2F2b2lkJywnbGVmdCcsJ3JpZ2h0J107Y3NzT3ZlcmZsb3c9WydhdXRvJywnaGlkZGVuJywnc2Nyb2xsJywndmlzaWJsZSddO2Nzc0F0dHJpYnV0ZURhdGE9e2JhY2tncm91bmQ6W3RydWUsJ2JhY2tncm91bmQtYXR0YWNobWVudCcsJ2JhY2tncm91bmQtY29sb3InLCdiYWNrZ3JvdW5kLWltYWdlJywnYmFja2dyb3VuZC1wb3NpdGlvbicsJ2JhY2tncm91bmQtcmVwZWF0J10sJ2JhY2tncm91bmQtYXR0YWNobWVudCc6WydzY3JvbGwnLCdmaXhlZCddLCdiYWNrZ3JvdW5kLWNvbG9yJzpbJ3RyYW5zcGFyZW50Jyxjc3NDb2xvcl0sJ2JhY2tncm91bmQtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnYmFja2dyb3VuZC1wb3NpdGlvbic6WzIsW2Nzc0xlbmd0aCwndG9wJywnYm90dG9tJywnbGVmdCcsJ3JpZ2h0JywnY2VudGVyJ11dLCdiYWNrZ3JvdW5kLXJlcGVhdCc6WydyZXBlYXQnLCdyZXBlYXQteCcsJ3JlcGVhdC15Jywnbm8tcmVwZWF0J10sJ2JvcmRlcic6W3RydWUsJ2JvcmRlci1jb2xvcicsJ2JvcmRlci1zdHlsZScsJ2JvcmRlci13aWR0aCddLCdib3JkZXItYm90dG9tJzpbdHJ1ZSwnYm9yZGVyLWJvdHRvbS1jb2xvcicsJ2JvcmRlci1ib3R0b20tc3R5bGUnLCdib3JkZXItYm90dG9tLXdpZHRoJ10sJ2JvcmRlci1ib3R0b20tY29sb3InOmNzc0NvbG9yLCdib3JkZXItYm90dG9tLXN0eWxlJzpjc3NCb3JkZXJTdHlsZSwnYm9yZGVyLWJvdHRvbS13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1jb2xsYXBzZSc6Wydjb2xsYXBzZScsJ3NlcGFyYXRlJ10sJ2JvcmRlci1jb2xvcic6Wyd0cmFuc3BhcmVudCcsNCxjc3NDb2xvcl0sJ2JvcmRlci1sZWZ0JzpbdHJ1ZSwnYm9yZGVyLWxlZnQtY29sb3InLCdib3JkZXItbGVmdC1zdHlsZScsJ2JvcmRlci1sZWZ0LXdpZHRoJ10sJ2JvcmRlci1sZWZ0LWNvbG9yJzpjc3NDb2xvciwnYm9yZGVyLWxlZnQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItbGVmdC13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1yaWdodCc6W3RydWUsJ2JvcmRlci1yaWdodC1jb2xvcicsJ2JvcmRlci1yaWdodC1zdHlsZScsJ2JvcmRlci1yaWdodC13aWR0aCddLCdib3JkZXItcmlnaHQtY29sb3InOmNzc0NvbG9yLCdib3JkZXItcmlnaHQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItcmlnaHQtd2lkdGgnOmNzc1dpZHRoLCdib3JkZXItc3BhY2luZyc6WzIsY3NzTGVuZ3RoXSwnYm9yZGVyLXN0eWxlJzpbNCxjc3NCb3JkZXJTdHlsZV0sJ2JvcmRlci10b3AnOlt0cnVlLCdib3JkZXItdG9wLWNvbG9yJywnYm9yZGVyLXRvcC1zdHlsZScsJ2JvcmRlci10b3Atd2lkdGgnXSwnYm9yZGVyLXRvcC1jb2xvcic6Y3NzQ29sb3IsJ2JvcmRlci10b3Atc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItdG9wLXdpZHRoJzpjc3NXaWR0aCwnYm9yZGVyLXdpZHRoJzpbNCxjc3NXaWR0aF0sYm90dG9tOltjc3NMZW5ndGgsJ2F1dG8nXSwnY2FwdGlvbi1zaWRlJzpbJ2JvdHRvbScsJ2xlZnQnLCdyaWdodCcsJ3RvcCddLGNsZWFyOlsnYm90aCcsJ2xlZnQnLCdub25lJywncmlnaHQnXSxjbGlwOltjc3NTaGFwZSwnYXV0byddLGNvbG9yOmNzc0NvbG9yLGNvbnRlbnQ6WydvcGVuLXF1b3RlJywnY2xvc2UtcXVvdGUnLCduby1vcGVuLXF1b3RlJywnbm8tY2xvc2UtcXVvdGUnLGNzc1N0cmluZyxjc3NVcmwsY3NzQ291bnRlcixjc3NBdHRyXSwnY291bnRlci1pbmNyZW1lbnQnOltjc3NOYW1lLCdub25lJ10sJ2NvdW50ZXItcmVzZXQnOltjc3NOYW1lLCdub25lJ10sY3Vyc29yOltjc3NVcmwsJ2F1dG8nLCdjcm9zc2hhaXInLCdkZWZhdWx0JywnZS1yZXNpemUnLCdoZWxwJywnbW92ZScsJ24tcmVzaXplJywnbmUtcmVzaXplJywnbnctcmVzaXplJywncG9pbnRlcicsJ3MtcmVzaXplJywnc2UtcmVzaXplJywnc3ctcmVzaXplJywndy1yZXNpemUnLCd0ZXh0Jywnd2FpdCddLGRpcmVjdGlvbjpbJ2x0cicsJ3J0bCddLGRpc3BsYXk6WydibG9jaycsJ2NvbXBhY3QnLCdpbmxpbmUnLCdpbmxpbmUtYmxvY2snLCdpbmxpbmUtdGFibGUnLCdsaXN0LWl0ZW0nLCdtYXJrZXInLCdub25lJywncnVuLWluJywndGFibGUnLCd0YWJsZS1jYXB0aW9uJywndGFibGUtY2VsbCcsJ3RhYmxlLWNvbHVtbicsJ3RhYmxlLWNvbHVtbi1ncm91cCcsJ3RhYmxlLWZvb3Rlci1ncm91cCcsJ3RhYmxlLWhlYWRlci1ncm91cCcsJ3RhYmxlLXJvdycsJ3RhYmxlLXJvdy1ncm91cCddLCdlbXB0eS1jZWxscyc6WydzaG93JywnaGlkZSddLCdmbG9hdCc6WydsZWZ0Jywnbm9uZScsJ3JpZ2h0J10sZm9udDpbJ2NhcHRpb24nLCdpY29uJywnbWVudScsJ21lc3NhZ2UtYm94Jywnc21hbGwtY2FwdGlvbicsJ3N0YXR1cy1iYXInLHRydWUsJ2ZvbnQtc2l6ZScsJ2ZvbnQtc3R5bGUnLCdmb250LXdlaWdodCcsJ2ZvbnQtZmFtaWx5J10sJ2ZvbnQtZmFtaWx5Jzpjc3NDb21tYUxpc3QsJ2ZvbnQtc2l6ZSc6Wyd4eC1zbWFsbCcsJ3gtc21hbGwnLCdzbWFsbCcsJ21lZGl1bScsJ2xhcmdlJywneC1sYXJnZScsJ3h4LWxhcmdlJywnbGFyZ2VyJywnc21hbGxlcicsY3NzTGVuZ3RoXSwnZm9udC1zaXplLWFkanVzdCc6Wydub25lJyxjc3NOdW1iZXJdLCdmb250LXN0cmV0Y2gnOlsnbm9ybWFsJywnd2lkZXInLCduYXJyb3dlcicsJ3VsdHJhLWNvbmRlbnNlZCcsJ2V4dHJhLWNvbmRlbnNlZCcsJ2NvbmRlbnNlZCcsJ3NlbWktY29uZGVuc2VkJywnc2VtaS1leHBhbmRlZCcsJ2V4cGFuZGVkJywnZXh0cmEtZXhwYW5kZWQnXSwnZm9udC1zdHlsZSc6Wydub3JtYWwnLCdpdGFsaWMnLCdvYmxpcXVlJ10sJ2ZvbnQtdmFyaWFudCc6Wydub3JtYWwnLCdzbWFsbC1jYXBzJ10sJ2ZvbnQtd2VpZ2h0JzpbJ25vcm1hbCcsJ2JvbGQnLCdib2xkZXInLCdsaWdodGVyJyxjc3NOdW1iZXJdLGhlaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sbGVmdDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ2xldHRlci1zcGFjaW5nJzpbJ25vcm1hbCcsY3NzTGVuZ3RoXSwnbGluZS1oZWlnaHQnOlsnbm9ybWFsJyxjc3NMaW5lSGVpZ2h0XSwnbGlzdC1zdHlsZSc6W3RydWUsJ2xpc3Qtc3R5bGUtaW1hZ2UnLCdsaXN0LXN0eWxlLXBvc2l0aW9uJywnbGlzdC1zdHlsZS10eXBlJ10sJ2xpc3Qtc3R5bGUtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnbGlzdC1zdHlsZS1wb3NpdGlvbic6WydpbnNpZGUnLCdvdXRzaWRlJ10sJ2xpc3Qtc3R5bGUtdHlwZSc6WydjaXJjbGUnLCdkaXNjJywnc3F1YXJlJywnZGVjaW1hbCcsJ2RlY2ltYWwtbGVhZGluZy16ZXJvJywnbG93ZXItcm9tYW4nLCd1cHBlci1yb21hbicsJ2xvd2VyLWdyZWVrJywnbG93ZXItYWxwaGEnLCdsb3dlci1sYXRpbicsJ3VwcGVyLWFscGhhJywndXBwZXItbGF0aW4nLCdoZWJyZXcnLCdrYXRha2FuYScsJ2hpcmFnYW5hLWlyb2hhJywna2F0YWthbmEtb3JvaGEnLCdub25lJ10sbWFyZ2luOls0LGNzc01hcmdpbl0sJ21hcmdpbi1ib3R0b20nOmNzc01hcmdpbiwnbWFyZ2luLWxlZnQnOmNzc01hcmdpbiwnbWFyZ2luLXJpZ2h0Jzpjc3NNYXJnaW4sJ21hcmdpbi10b3AnOmNzc01hcmdpbiwnbWFya2VyLW9mZnNldCc6W2Nzc0xlbmd0aCwnYXV0byddLCdtYXgtaGVpZ2h0JzpbY3NzTGVuZ3RoLCdub25lJ10sJ21heC13aWR0aCc6W2Nzc0xlbmd0aCwnbm9uZSddLCdtaW4taGVpZ2h0Jzpjc3NMZW5ndGgsJ21pbi13aWR0aCc6Y3NzTGVuZ3RoLG9wYWNpdHk6Y3NzTnVtYmVyLG91dGxpbmU6W3RydWUsJ291dGxpbmUtY29sb3InLCdvdXRsaW5lLXN0eWxlJywnb3V0bGluZS13aWR0aCddLCdvdXRsaW5lLWNvbG9yJzpbJ2ludmVydCcsY3NzQ29sb3JdLCdvdXRsaW5lLXN0eWxlJzpbJ2Rhc2hlZCcsJ2RvdHRlZCcsJ2RvdWJsZScsJ2dyb292ZScsJ2luc2V0Jywnbm9uZScsJ291dHNldCcsJ3JpZGdlJywnc29saWQnXSwnb3V0bGluZS13aWR0aCc6Y3NzV2lkdGgsb3ZlcmZsb3c6Y3NzT3ZlcmZsb3csJ292ZXJmbG93LXgnOmNzc092ZXJmbG93LCdvdmVyZmxvdy15Jzpjc3NPdmVyZmxvdyxwYWRkaW5nOls0LGNzc0xlbmd0aF0sJ3BhZGRpbmctYm90dG9tJzpjc3NMZW5ndGgsJ3BhZGRpbmctbGVmdCc6Y3NzTGVuZ3RoLCdwYWRkaW5nLXJpZ2h0Jzpjc3NMZW5ndGgsJ3BhZGRpbmctdG9wJzpjc3NMZW5ndGgsJ3BhZ2UtYnJlYWstYWZ0ZXInOmNzc0JyZWFrLCdwYWdlLWJyZWFrLWJlZm9yZSc6Y3NzQnJlYWsscG9zaXRpb246WydhYnNvbHV0ZScsJ2ZpeGVkJywncmVsYXRpdmUnLCdzdGF0aWMnXSxxdW90ZXM6WzgsY3NzU3RyaW5nXSxyaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3RhYmxlLWxheW91dCc6WydhdXRvJywnZml4ZWQnXSwndGV4dC1hbGlnbic6WydjZW50ZXInLCdqdXN0aWZ5JywnbGVmdCcsJ3JpZ2h0J10sJ3RleHQtZGVjb3JhdGlvbic6Wydub25lJywndW5kZXJsaW5lJywnb3ZlcmxpbmUnLCdsaW5lLXRocm91Z2gnLCdibGluayddLCd0ZXh0LWluZGVudCc6Y3NzTGVuZ3RoLCd0ZXh0LXNoYWRvdyc6Wydub25lJyw0LFtjc3NDb2xvcixjc3NMZW5ndGhdXSwndGV4dC10cmFuc2Zvcm0nOlsnY2FwaXRhbGl6ZScsJ3VwcGVyY2FzZScsJ2xvd2VyY2FzZScsJ25vbmUnXSx0b3A6W2Nzc0xlbmd0aCwnYXV0byddLCd1bmljb2RlLWJpZGknOlsnbm9ybWFsJywnZW1iZWQnLCdiaWRpLW92ZXJyaWRlJ10sJ3ZlcnRpY2FsLWFsaWduJzpbJ2Jhc2VsaW5lJywnYm90dG9tJywnc3ViJywnc3VwZXInLCd0b3AnLCd0ZXh0LXRvcCcsJ21pZGRsZScsJ3RleHQtYm90dG9tJyxjc3NMZW5ndGhdLHZpc2liaWxpdHk6Wyd2aXNpYmxlJywnaGlkZGVuJywnY29sbGFwc2UnXSwnd2hpdGUtc3BhY2UnOlsnbm9ybWFsJywnbm93cmFwJywncHJlJywncHJlLWxpbmUnLCdwcmUtd3JhcCcsJ2luaGVyaXQnXSx3aWR0aDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3dvcmQtc3BhY2luZyc6Wydub3JtYWwnLGNzc0xlbmd0aF0sJ3dvcmQtd3JhcCc6WydicmVhay13b3JkJywnbm9ybWFsJ10sJ3otaW5kZXgnOlsnYXV0bycsY3NzTnVtYmVyXX07ZnVuY3Rpb24gc3R5bGVBdHRyaWJ1dGUoKXt2YXIgdjt3aGlsZShuZXh0dG9rZW4uaWQ9PT0nKid8fG5leHR0b2tlbi5pZD09PScjJ3x8bmV4dHRva2VuLnZhbHVlPT09J18nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KaWYobmV4dHRva2VuLmlkPT09Jy0nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgnLScpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBub24tc3RhbmRhcmQgc3R5bGUgYXR0cmlidXRlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3JldHVybiBjc3NBbnk7fWVsc2V7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeGNlcHRlZCBhIHN0eWxlIGF0dHJpYnV0ZSwgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fWVsc2V7aWYoaXNfb3duKGNzc0F0dHJpYnV0ZURhdGEsbmV4dHRva2VuLnZhbHVlKSl7dj1jc3NBdHRyaWJ1dGVEYXRhW25leHR0b2tlbi52YWx1ZV07fWVsc2V7dj1jc3NBbnk7aWYoIW9wdGlvbi5jc3Mpe3dhcm5pbmcoIlVucmVjb2duaXplZCBzdHlsZSBhdHRyaWJ1dGUgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KYWR2YW5jZSgpO3JldHVybiB2O319CmZ1bmN0aW9uIHN0eWxlVmFsdWUodil7dmFyIGk9MCxuLG9uY2UsbWF0Y2gscm91bmQsc3RhcnQ9MCx2aTtzd2l0Y2godHlwZW9mIHYpe2Nhc2UnZnVuY3Rpb24nOnJldHVybiB2KCk7Y2FzZSdzdHJpbmcnOmlmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWU9PT12KXthZHZhbmNlKCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmb3IoOzspe2lmKGk+PXYubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQp2aT12W2ldO2krPTE7aWYodmk9PT10cnVlKXticmVhazt9ZWxzZSBpZih0eXBlb2Ygdmk9PT0nbnVtYmVyJyl7bj12aTt2aT12W2ldO2krPTE7fWVsc2V7bj0xO30KbWF0Y2g9ZmFsc2U7d2hpbGUobj4wKXtpZihzdHlsZVZhbHVlKHZpKSl7bWF0Y2g9dHJ1ZTtuLT0xO31lbHNle2JyZWFrO319CmlmKG1hdGNoKXtyZXR1cm4gdHJ1ZTt9fQpzdGFydD1pO29uY2U9W107Zm9yKDs7KXtyb3VuZD1mYWxzZTtmb3IoaT1zdGFydDtpPHYubGVuZ3RoO2krPTEpe2lmKCFvbmNlW2ldKXtpZihzdHlsZVZhbHVlKGNzc0F0dHJpYnV0ZURhdGFbdltpXV0pKXttYXRjaD10cnVlO3JvdW5kPXRydWU7b25jZVtpXT10cnVlO2JyZWFrO319fQppZighcm91bmQpe3JldHVybiBtYXRjaDt9fX0KZnVuY3Rpb24gc3R5bGVDaGlsZCgpe2lmKG5leHR0b2tlbi5pZD09PScobnVtYmVyKScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWU9PT0nbicmJm5leHR0b2tlbi5pZGVudGlmaWVyKXthZGphY2VudCgpO2FkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKycpe2FkamFjZW50KCk7YWR2YW5jZSgnKycpO2FkamFjZW50KCk7YWR2YW5jZSgnKG51bWJlciknKTt9fQpyZXR1cm47fWVsc2V7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdvZGQnOmNhc2UnZXZlbic6aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm47fX19Cndhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmZ1bmN0aW9uIHN1YnN0eWxlKCl7dmFyIHY7Zm9yKDs7KXtpZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PScoZW5kKSd8fHhxdW90ZSYmbmV4dHRva2VuLmlkPT09eHF1b3RlKXtyZXR1cm47fQp3aGlsZShuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIk1pc3BsYWNlZCAnOycuIik7YWR2YW5jZSgnOycpO30Kdj1zdHlsZUF0dHJpYnV0ZSgpO2FkdmFuY2UoJzonKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2luaGVyaXQnKXthZHZhbmNlKCk7fWVsc2V7aWYoIXN0eWxlVmFsdWUodikpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fX0KaWYobmV4dHRva2VuLmlkPT09JyEnKXthZHZhbmNlKCchJyk7YWRqYWNlbnQoKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2ltcG9ydGFudCcpe2FkdmFuY2UoKTt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2ltcG9ydGFudCcsbmV4dHRva2VuLnZhbHVlKTt9fQppZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PXhxdW90ZSl7d2FybmluZygiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnOycpO31lbHNle2FkdmFuY2UoJzsnKTt9fX0KZnVuY3Rpb24gc3R5bGVTZWxlY3Rvcigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZighaXNfb3duKGh0bWx0YWcsbmV4dHRva2VuLnZhbHVlKSl7d2FybmluZygiRXhwZWN0ZWQgYSB0YWdOYW1lLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fWVsc2V7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSc+JzpjYXNlJysnOmFkdmFuY2UoKTtzdHlsZVNlbGVjdG9yKCk7YnJlYWs7Y2FzZSc6JzphZHZhbmNlKCc6Jyk7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdhY3RpdmUnOmNhc2UnYWZ0ZXInOmNhc2UnYmVmb3JlJzpjYXNlJ2NoZWNrZWQnOmNhc2UnZGlzYWJsZWQnOmNhc2UnZW1wdHknOmNhc2UnZW5hYmxlZCc6Y2FzZSdmaXJzdC1jaGlsZCc6Y2FzZSdmaXJzdC1sZXR0ZXInOmNhc2UnZmlyc3QtbGluZSc6Y2FzZSdmaXJzdC1vZi10eXBlJzpjYXNlJ2ZvY3VzJzpjYXNlJ2hvdmVyJzpjYXNlJ2xhc3Qtb2YtdHlwZSc6Y2FzZSdsaW5rJzpjYXNlJ29ubHktb2YtdHlwZSc6Y2FzZSdyb290JzpjYXNlJ3RhcmdldCc6Y2FzZSd2aXNpdGVkJzphZHZhbmNlKCk7YnJlYWs7Y2FzZSdsYW5nJzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBsYW5nIGNvZGUsIGFuZCBpbnN0ZWFkIHNhdyA6e2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcpJyk7YnJlYWs7Y2FzZSdudGgtY2hpbGQnOmNhc2UnbnRoLWxhc3QtY2hpbGQnOmNhc2UnbnRoLWxhc3Qtb2YtdHlwZSc6Y2FzZSdudGgtb2YtdHlwZSc6YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtzdHlsZUNoaWxkKCk7YWR2YW5jZSgnKScpO2JyZWFrO2Nhc2Unbm90JzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PSc6JyYmcGVlaygwKS52YWx1ZT09PSdub3QnKXt3YXJuaW5nKCJOZXN0ZWQgbm90LiIpO30Kc3R5bGVTZWxlY3RvcigpO2FkdmFuY2UoJyknKTticmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgcHNldWRvLCBhbmQgaW5zdGVhZCBzYXcgOnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYnJlYWs7Y2FzZScjJzphZHZhbmNlKCcjJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZCwgYW5kIGluc3RlYWQgc2F3ICN7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTticmVhaztjYXNlJyonOmFkdmFuY2UoJyonKTticmVhaztjYXNlJy4nOmFkdmFuY2UoJy4nKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY2xhc3MsIGFuZCBpbnN0ZWFkIHNhdyAjLnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2JyZWFrO2Nhc2UnWyc6YWR2YW5jZSgnWycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlLCBhbmQgaW5zdGVhZCBzYXcgW3thfV0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nPSd8fG5leHR0b2tlbi52YWx1ZT09PSd+PSd8fG5leHR0b2tlbi52YWx1ZT09PSckPSd8fG5leHR0b2tlbi52YWx1ZT09PSd8PSd8fG5leHR0b2tlbi5pZD09PScqPSd8fG5leHR0b2tlbi5pZD09PSdePScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQphZHZhbmNlKCddJyk7YnJlYWs7ZGVmYXVsdDplcnJvcigiRXhwZWN0ZWQgYSBDU1Mgc2VsZWN0b3IsIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KZnVuY3Rpb24gc3R5bGVQYXR0ZXJuKCl7dmFyIG5hbWU7aWYobmV4dHRva2VuLmlkPT09J3snKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0eWxlIHBhdHRlcm4sIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSdAJyl7YWR2YW5jZSgnQCcpO25hbWU9bmV4dHRva2VuLnZhbHVlO2lmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZhdHJ1bGVbbmFtZV09PT10cnVlKXthZHZhbmNlKCk7cmV0dXJuIG5hbWU7fQp3YXJuaW5nKCJFeHBlY3RlZCBhbiBhdC1ydWxlLCBhbmQgaW5zdGVhZCBzYXcgQHthfS4iLG5leHR0b2tlbixuYW1lKTt9CmZvcig7Oyl7c3R5bGVTZWxlY3RvcigpO2lmKG5leHR0b2tlbi5pZD09PSc8Lyd8fG5leHR0b2tlbi5pZD09PSd7J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7cmV0dXJuJyc7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7fX19CmZ1bmN0aW9uIHN0eWxlcygpe3ZhciBpO3doaWxlKG5leHR0b2tlbi5pZD09PSdAJyl7aT1wZWVrKCk7aWYoaS5pZGVudGlmaWVyJiZpLnZhbHVlPT09J2ltcG9ydCcpe2FkdmFuY2UoJ0AnKTthZHZhbmNlKCk7aWYoIWNzc1VybCgpKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3VybCcsbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fQphZHZhbmNlKCc7Jyk7fWVsc2V7YnJlYWs7fX0Kd2hpbGUobmV4dHRva2VuLmlkIT09JzwvJyYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7c3R5bGVQYXR0ZXJuKCk7eG1vZGU9J3N0eWxlcHJvcGVydHknO2lmKG5leHR0b2tlbi5pZD09PSc7Jyl7YWR2YW5jZSgnOycpO31lbHNle2FkdmFuY2UoJ3snKTtzdWJzdHlsZSgpO3htb2RlPSdzdHlsZSc7YWR2YW5jZSgnfScpO319fQpmdW5jdGlvbiBkb0JlZ2luKG4pe2lmKG4hPT0naHRtbCcmJiFvcHRpb24uZnJhZ21lbnQpe2lmKG49PT0nZGl2JyYmb3B0aW9uLmFkc2FmZSl7ZXJyb3IoIkFEU0FGRTogVXNlIHRoZSBmcmFnbWVudCBvcHRpb24uIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRva2VuLCdodG1sJyxuKTt9fQppZihvcHRpb24uYWRzYWZlKXtpZihuPT09J2h0bWwnKXtlcnJvcigiQ3VycmVudGx5LCBBRHNhZmUgZG9lcyBub3Qgb3BlcmF0ZSBvbiB3aG9sZSBIVE1MIGRvY3VtZW50cy4gSXQgb3BlcmF0ZXMgb24gPGRpdj4gZnJhZ21lbnRzIGFuZCAuanMgZmlsZXMuIix0b2tlbik7fQppZihvcHRpb24uZnJhZ21lbnQpe2lmKG4hPT0nZGl2Jyl7ZXJyb3IoIkFEc2FmZSB2aW9sYXRpb246IFdyYXAgdGhlIHdpZGdldCBpbiBhIGRpdi4iLHRva2VuKTt9fWVsc2V7ZXJyb3IoIlVzZSB0aGUgZnJhZ21lbnQgb3B0aW9uLiIsdG9rZW4pO319Cm9wdGlvbi5icm93c2VyPXRydWU7YXNzdW1lKCk7fQpmdW5jdGlvbiBkb0F0dHJpYnV0ZShuLGEsdil7dmFyIHUseDtpZihhPT09J2lkJyl7dT10eXBlb2Ygdj09PSdzdHJpbmcnP3YudG9VcHBlckNhc2UoKTonJztpZihpZHNbdV09PT10cnVlKXt3YXJuaW5nKCJEdXBsaWNhdGUgaWQ9J3thfScuIixuZXh0dG9rZW4sdik7fQppZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXthZHNhZmVfaWQ9djtpZighL15bQS1aXStfJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319fQp4PXYuc2VhcmNoKGR4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0nY2xhc3MnfHxhPT09J3R5cGUnfHxhPT09J25hbWUnKXt4PXYuc2VhcmNoKHF4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0naHJlZid8fGE9PT0nYmFja2dyb3VuZCd8fGE9PT0nY29udGVudCd8fGE9PT0nZGF0YSd8fGEuaW5kZXhPZignc3JjJyk+PTB8fGEuaW5kZXhPZigndXJsJyk+PTApe2lmKG9wdGlvbi5zYWZlJiZ1eC50ZXN0KHYpKXtlcnJvcigiQURzYWZlIFVSTCB2aW9sYXRpb24uIik7fQp1cmxzLnB1c2godik7fWVsc2UgaWYoYT09PSdmb3InKXtpZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBiYWQgaWQuIik7fX19ZWxzZSBpZihhPT09J25hbWUnKXtpZihvcHRpb24uYWRzYWZlJiZ2LmluZGV4T2YoJ18nKT49MCl7d2FybmluZygiQURzYWZlIG5hbWUgdmlvbGF0aW9uLiIpO319fQpmdW5jdGlvbiBkb1RhZyhuLGEpe3ZhciBpLHQ9aHRtbHRhZ1tuXSx4O3NyYz1mYWxzZTtpZighdCl7ZXJyb3IoIlVucmVjb2duaXplZCB0YWcgJzx7YX0+Jy4iLG5leHR0b2tlbixuPT09bi50b0xvd2VyQ2FzZSgpP246bisnIChjYXBpdGFsaXphdGlvbiBlcnJvciknKTt9CmlmKHN0YWNrLmxlbmd0aD4wKXtpZihuPT09J2h0bWwnKXtlcnJvcigiVG9vIG1hbnkgPGh0bWw+IHRhZ3MuIix0b2tlbik7fQp4PXQucGFyZW50O2lmKHgpe2lmKHguaW5kZXhPZignICcrc3RhY2tbc3RhY2subGVuZ3RoLTFdLm5hbWUrJyAnKTwwKXtlcnJvcigiQSAnPHthfT4nIG11c3QgYmUgd2l0aGluICc8e2J9PicuIix0b2tlbixuLHgpO319ZWxzZSBpZighb3B0aW9uLmFkc2FmZSYmIW9wdGlvbi5mcmFnbWVudCl7aT1zdGFjay5sZW5ndGg7ZG97aWYoaTw9MCl7ZXJyb3IoIkEgJzx7YX0+JyBtdXN0IGJlIHdpdGhpbiAnPHtifT4nLiIsdG9rZW4sbiwnYm9keScpO30KaS09MTt9d2hpbGUoc3RhY2tbaV0ubmFtZSE9PSdib2R5Jyk7fX0Kc3dpdGNoKG4pe2Nhc2UnZGl2JzppZihvcHRpb24uYWRzYWZlJiZzdGFjay5sZW5ndGg9PT0xJiYhYWRzYWZlX2lkKXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBtaXNzaW5nIElEXy4iKTt9CmJyZWFrO2Nhc2Unc2NyaXB0Jzp4bW9kZT0nc2NyaXB0JzthZHZhbmNlKCc+Jyk7aW5kZW50PW5leHR0b2tlbi5mcm9tO2lmKGEubGFuZyl7d2FybmluZygibGFuZyBpcyBkZXByZWNhdGVkLiIsdG9rZW4pO30KaWYob3B0aW9uLmFkc2FmZSYmc3RhY2subGVuZ3RoIT09MSl7d2FybmluZygiQURzYWZlIHNjcmlwdCBwbGFjZW1lbnQgdmlvbGF0aW9uLiIsdG9rZW4pO30KaWYoYS5zcmMpe2lmKG9wdGlvbi5hZHNhZmUmJighYWRzYWZlX21heXx8IWFwcHJvdmVkW2Euc3JjXSkpe3dhcm5pbmcoIkFEc2FmZSB1bmFwcHJvdmVkIHNjcmlwdCBzb3VyY2UuIix0b2tlbik7fQppZihhLnR5cGUpe3dhcm5pbmcoInR5cGUgaXMgdW5uZWNlc3NhcnkuIix0b2tlbik7fX1lbHNle2lmKGFkc2FmZV93ZW50KXtlcnJvcigiQURzYWZlIHNjcmlwdCB2aW9sYXRpb24uIix0b2tlbik7fQpzdGF0ZW1lbnRzKCdzY3JpcHQnKTt9Cnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlIT09J3NjcmlwdCcpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnc2NyaXB0JyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdzdHlsZSc6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCc+Jyk7c3R5bGVzKCk7eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwvJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWUhPT0nc3R5bGUnKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3N0eWxlJyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdpbnB1dCc6c3dpdGNoKGEudHlwZSl7Y2FzZSdyYWRpbyc6Y2FzZSdjaGVja2JveCc6Y2FzZSdidXR0b24nOmNhc2UncmVzZXQnOmNhc2Unc3VibWl0JzpicmVhaztjYXNlJ3RleHQnOmNhc2UnZmlsZSc6Y2FzZSdwYXNzd29yZCc6Y2FzZSdmaWxlJzpjYXNlJ2hpZGRlbic6Y2FzZSdpbWFnZSc6aWYob3B0aW9uLmFkc2FmZSYmYS5hdXRvY29tcGxldGUhPT0nb2ZmJyl7d2FybmluZygiQURzYWZlIGF1dG9jb21wbGV0ZSB2aW9sYXRpb24uIik7fQpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkJhZCBpbnB1dCB0eXBlLiIpO30KYnJlYWs7Y2FzZSdhcHBsZXQnOmNhc2UnYm9keSc6Y2FzZSdlbWJlZCc6Y2FzZSdmcmFtZSc6Y2FzZSdmcmFtZXNldCc6Y2FzZSdoZWFkJzpjYXNlJ2lmcmFtZSc6Y2FzZSdub2VtYmVkJzpjYXNlJ25vZnJhbWVzJzpjYXNlJ29iamVjdCc6Y2FzZSdwYXJhbSc6aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogRGlzYWxsb3dlZCB0YWc6ICIrbik7fQpicmVhazt9fQpmdW5jdGlvbiBjbG9zZXRhZyhuKXtyZXR1cm4nPC8nK24rJz4nO30KZnVuY3Rpb24gaHRtbCgpe3ZhciBhLGF0dHJpYnV0ZXMsZSxuLHEsdCx2LHc9b3B0aW9uLndoaXRlLHdtb2RlO3htb2RlPSdodG1sJzt4cXVvdGU9Jyc7c3RhY2s9bnVsbDtmb3IoOzspe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UnPCc6eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwnKTthdHRyaWJ1dGVzPXt9O3Q9bmV4dHRva2VuO2lmKCF0LmlkZW50aWZpZXIpe3dhcm5pbmcoIkJhZCBpZGVudGlmaWVyIHthfS4iLHQsdC52YWx1ZSk7fQpuPXQudmFsdWU7aWYob3B0aW9uLmNhcCl7bj1uLnRvTG93ZXJDYXNlKCk7fQp0Lm5hbWU9bjthZHZhbmNlKCk7aWYoIXN0YWNrKXtzdGFjaz1bXTtkb0JlZ2luKG4pO30Kdj1odG1sdGFnW25dO2lmKHR5cGVvZiB2IT09J29iamVjdCcpe2Vycm9yKCJVbnJlY29nbml6ZWQgdGFnICc8e2F9PicuIix0LG4pO30KZT12LmVtcHR5O3QudHlwZT1uO2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09Jy8nKXthZHZhbmNlKCcvJyk7aWYobmV4dHRva2VuLmlkIT09Jz4nKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJz4nLG5leHR0b2tlbi52YWx1ZSk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCYmbmV4dHRva2VuLmlkLnN1YnN0cigwLDEpPT09Jz4nKXticmVhazt9CmlmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09JyhlcnJvciknKXtlcnJvcigiTWlzc2luZyAnPicuIixuZXh0dG9rZW4pO30Kd2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpvcHRpb24ud2hpdGU9dHJ1ZTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2E9bmV4dHRva2VuLnZhbHVlO29wdGlvbi53aGl0ZT13O2FkdmFuY2UoKTtpZighb3B0aW9uLmNhcCYmYSE9PWEudG9Mb3dlckNhc2UoKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIG5vdCBhbGwgbG93ZXIgY2FzZS4iLG5leHR0b2tlbixhKTt9CmE9YS50b0xvd2VyQ2FzZSgpO3hxdW90ZT0nJztpZihpc19vd24oYXR0cmlidXRlcyxhKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIHJlcGVhdGVkLiIsbmV4dHRva2VuLGEpO30KaWYoYS5zbGljZSgwLDIpPT09J29uJyl7aWYoIW9wdGlvbi5vbil7d2FybmluZygiQXZvaWQgSFRNTCBldmVudCBoYW5kbGVycy4iKTt9Cnhtb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9CnhxdW90ZT1xO3dtb2RlPW9wdGlvbi53aGl0ZTtvcHRpb24ud2hpdGU9ZmFsc2U7YWR2YW5jZShxKTtzdGF0ZW1lbnRzKCdvbicpO29wdGlvbi53aGl0ZT13bW9kZTtpZihuZXh0dG9rZW4uaWQhPT1xKXtlcnJvcigiTWlzc2luZyBjbG9zZSBxdW90ZSBvbiBzY3JpcHQgYXR0cmlidXRlLiIpO30KeG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2UgaWYoYT09PSdzdHlsZScpe3htb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9Cnhtb2RlPSdzdHlsZXByb3BlcnR5Jzt4cXVvdGU9cTthZHZhbmNlKHEpO3N1YnN0eWxlKCk7eG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2V7aWYobmV4dHRva2VuLmlkPT09Jz0nKXthZHZhbmNlKCc9Jyk7dj1uZXh0dG9rZW4udmFsdWU7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4uaWQhPT0nIicmJm5leHR0b2tlbi5pZCE9PSdcJycmJm5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmbmV4dHRva2VuLnR5cGUhPT0nKG51bWJlciknJiZuZXh0dG9rZW4udHlwZSE9PScoY29sb3IpJyl7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlIHZhbHVlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLGEpO30KYWR2YW5jZSgpO31lbHNle3Y9dHJ1ZTt9fQphdHRyaWJ1dGVzW2FdPXY7ZG9BdHRyaWJ1dGUobixhLHYpO30KZG9UYWcobixhdHRyaWJ1dGVzKTtpZighZSl7c3RhY2sucHVzaCh0KTt9Cnhtb2RlPSdvdXRlcic7YWR2YW5jZSgnPicpO2JyZWFrO2Nhc2UnPC8nOnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpuPW5leHR0b2tlbi52YWx1ZTtpZihvcHRpb24uY2FwKXtuPW4udG9Mb3dlckNhc2UoKTt9CmFkdmFuY2UoKTtpZighc3RhY2spe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CnQ9c3RhY2sucG9wKCk7aWYoIXQpe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CmlmKHQubmFtZSE9PW4pe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sY2xvc2V0YWcodC5uYW1lKSxjbG9zZXRhZyhuKSk7fQppZihuZXh0dG9rZW4uaWQhPT0nPicpe2Vycm9yKCJNaXNzaW5nICd7YX0nLiIsbmV4dHRva2VuLCc+Jyk7fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJzwhJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIEhUTUwgdmlvbGF0aW9uLiIpO30KeG1vZGU9J2h0bWwnO2Zvcig7Oyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PSc+J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7YnJlYWs7fQppZihuZXh0dG9rZW4udmFsdWUuaW5kZXhPZignLS0nKT49MCl7d2FybmluZygiVW5leHBlY3RlZCAtLS4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc8Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPC4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc+Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPi4iKTt9fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJyhlbmQpJzpyZXR1cm47ZGVmYXVsdDppZihuZXh0dG9rZW4uaWQ9PT0nKGVuZCknKXtlcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnPC8nK3N0YWNrW3N0YWNrLmxlbmd0aC0xXS52YWx1ZSsnPicpO31lbHNle2FkdmFuY2UoKTt9fQppZihzdGFjayYmc3RhY2subGVuZ3RoPT09MCYmKG9wdGlvbi5hZHNhZmV8fCFvcHRpb24uZnJhZ21lbnR8fG5leHR0b2tlbi5pZD09PScoZW5kKScpKXticmVhazt9fQppZihuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtlcnJvcigiVW5leHBlY3RlZCBtYXRlcmlhbCBhZnRlciB0aGUgZW5kLiIpO319CnR5cGUoJyhudW1iZXIpJyxpZFZhbHVlKTt0eXBlKCcoc3RyaW5nKScsaWRWYWx1ZSk7c3ludGF4WycoaWRlbnRpZmllciknXT17dHlwZTonKGlkZW50aWZpZXIpJyxsYnA6MCxpZGVudGlmaWVyOnRydWUsbnVkOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy52YWx1ZSxzPXNjb3BlW3ZdLGY7aWYodHlwZW9mIHM9PT0nZnVuY3Rpb24nKXtzPXVuZGVmaW5lZDt9ZWxzZSBpZih0eXBlb2Ygcz09PSdib29sZWFuJyl7Zj1mdW5jdDtmdW5jdD1mdW5jdGlvbnNbMF07YWRkbGFiZWwodiwndmFyJyk7cz1mdW5jdDtmdW5jdD1mO30KaWYoZnVuY3Q9PT1zKXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UndW51c2VkJzpmdW5jdFt2XT0ndmFyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO2JyZWFrO319ZWxzZSBpZihmdW5jdFsnKGdsb2JhbCknXSl7aWYob3B0aW9uLnVuZGVmJiZwcmVkZWZpbmVkW3ZdIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgZGVmaW5lZC4iLHRva2VuLHYpO30Kbm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UnY2xvc3VyZSc6Y2FzZSdmdW5jdGlvbic6Y2FzZSd2YXInOmNhc2UndW51c2VkJzp3YXJuaW5nKCIne2F9JyB1c2VkIG91dCBvZiBzY29wZS4iLHRva2VuLHYpO2JyZWFrO2Nhc2UnbGFiZWwnOndhcm5pbmcoIid7YX0nIGlzIGEgc3RhdGVtZW50IGxhYmVsLiIsdG9rZW4sdik7YnJlYWs7Y2FzZSdvdXRlcic6Y2FzZSdnbG9iYWwnOmJyZWFrO2RlZmF1bHQ6aWYocz09PXRydWUpe2Z1bmN0W3ZdPXRydWU7fWVsc2UgaWYocz09PW51bGwpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBhbGxvd2VkLiIsdG9rZW4sdik7bm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZSBpZih0eXBlb2YgcyE9PSdvYmplY3QnKXtpZihvcHRpb24udW5kZWYpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBkZWZpbmVkLiIsdG9rZW4sdik7fWVsc2V7ZnVuY3Rbdl09dHJ1ZTt9Cm5vdGVfaW1wbGllZCh0b2tlbik7fWVsc2V7c3dpdGNoKHNbdl0pe2Nhc2UnZnVuY3Rpb24nOmNhc2UndmFyJzpjYXNlJ3VudXNlZCc6c1t2XT0nY2xvc3VyZSc7ZnVuY3Rbdl09c1snKGdsb2JhbCknXT8nZ2xvYmFsJzonb3V0ZXInO2JyZWFrO2Nhc2UnY2xvc3VyZSc6Y2FzZSdwYXJhbWV0ZXInOmZ1bmN0W3ZdPXNbJyhnbG9iYWwpJ10/J2dsb2JhbCc6J291dGVyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO319fX0KcmV0dXJuIHRoaXM7fSxsZWQ6ZnVuY3Rpb24oKXtlcnJvcigiRXhwZWN0ZWQgYW4gb3BlcmF0b3IgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX07dHlwZSgnKHJlZ2V4cCknLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fSk7ZGVsaW0oJyhlbmRsaW5lKScpO2RlbGltKCcoYmVnaW4pJyk7ZGVsaW0oJyhlbmQpJykucmVhY2g9dHJ1ZTtkZWxpbSgnPC8nKS5yZWFjaD10cnVlO2RlbGltKCc8IScpO2RlbGltKCc8IS0tJyk7ZGVsaW0oJy0tPicpO2RlbGltKCcoZXJyb3IpJykucmVhY2g9dHJ1ZTtkZWxpbSgnfScpLnJlYWNoPXRydWU7ZGVsaW0oJyknKTtkZWxpbSgnXScpO2RlbGltKCciJykucmVhY2g9dHJ1ZTtkZWxpbSgiJyIpLnJlYWNoPXRydWU7ZGVsaW0oJzsnKTtkZWxpbSgnOicpLnJlYWNoPXRydWU7ZGVsaW0oJywnKTtkZWxpbSgnIycpO2RlbGltKCdAJyk7cmVzZXJ2ZSgnZWxzZScpO3Jlc2VydmUoJ2Nhc2UnKS5yZWFjaD10cnVlO3Jlc2VydmUoJ2NhdGNoJyk7cmVzZXJ2ZSgnZGVmYXVsdCcpLnJlYWNoPXRydWU7cmVzZXJ2ZSgnZmluYWxseScpO3Jlc2VydmV2YXIoJ2FyZ3VtZW50cycpO3Jlc2VydmV2YXIoJ2V2YWwnKTtyZXNlcnZldmFyKCdmYWxzZScpO3Jlc2VydmV2YXIoJ0luZmluaXR5Jyk7cmVzZXJ2ZXZhcignTmFOJyk7cmVzZXJ2ZXZhcignbnVsbCcpO3Jlc2VydmV2YXIoJ3RoaXMnKTtyZXNlcnZldmFyKCd0cnVlJyk7cmVzZXJ2ZXZhcigndW5kZWZpbmVkJyk7YXNzaWdub3AoJz0nLCdhc3NpZ24nLDIwKTthc3NpZ25vcCgnKz0nLCdhc3NpZ25hZGQnLDIwKTthc3NpZ25vcCgnLT0nLCdhc3NpZ25zdWInLDIwKTthc3NpZ25vcCgnKj0nLCdhc3NpZ25tdWx0JywyMCk7YXNzaWdub3AoJy89JywnYXNzaWduZGl2JywyMCkubnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkEgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWwgY2FuIGJlIGNvbmZ1c2VkIHdpdGggJy89Jy4iKTt9O2Fzc2lnbm9wKCclPScsJ2Fzc2lnbm1vZCcsMjApO2JpdHdpc2Vhc3NpZ25vcCgnJj0nLCdhc3NpZ25iaXRhbmQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJ3w9JywnYXNzaWduYml0b3InLDIwKTtiaXR3aXNlYXNzaWdub3AoJ149JywnYXNzaWduYml0eG9yJywyMCk7Yml0d2lzZWFzc2lnbm9wKCc8PD0nLCdhc3NpZ25zaGlmdGxlZnQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+PScsJ2Fzc2lnbnNoaWZ0cmlnaHQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+Pj0nLCdhc3NpZ25zaGlmdHJpZ2h0dW5zaWduZWQnLDIwKTtpbmZpeCgnPycsZnVuY3Rpb24obGVmdCx0aGF0KXt0aGF0LmxlZnQ9bGVmdDt0aGF0LnJpZ2h0PXBhcnNlKDEwKTthZHZhbmNlKCc6Jyk7dGhhdFsnZWxzZSddPXBhcnNlKDEwKTtyZXR1cm4gdGhhdDt9LDMwKTtpbmZpeCgnfHwnLCdvcicsNDApO2luZml4KCcmJicsJ2FuZCcsNTApO2JpdHdpc2UoJ3wnLCdiaXRvcicsNzApO2JpdHdpc2UoJ14nLCdiaXR4b3InLDgwKTtiaXR3aXNlKCcmJywnYml0YW5kJyw5MCk7cmVsYXRpb24oJz09JyxmdW5jdGlvbihsZWZ0LHJpZ2h0KXtpZihvcHRpb24uZXFlcWVxKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIix0aGlzLCc9PT0nLCc9PScpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKGxlZnQpKXt3YXJuaW5nKCJVc2UgJ3thfScgdG8gY29tcGFyZSB3aXRoICd7Yn0nLiIsdGhpcywnPT09JyxsZWZ0LnZhbHVlKTt9ZWxzZSBpZihpc1Bvb3JSZWxhdGlvbihyaWdodCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCc9PT0nLHJpZ2h0LnZhbHVlKTt9CnJldHVybiB0aGlzO30pO3JlbGF0aW9uKCc9PT0nKTtyZWxhdGlvbignIT0nLGZ1bmN0aW9uKGxlZnQscmlnaHQpe2lmKG9wdGlvbi5lcWVxZXEpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRoaXMsJyE9PScsJyE9Jyk7fWVsc2UgaWYoaXNQb29yUmVsYXRpb24obGVmdCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCchPT0nLGxlZnQudmFsdWUpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKHJpZ2h0KSl7d2FybmluZygiVXNlICd7YX0nIHRvIGNvbXBhcmUgd2l0aCAne2J9Jy4iLHRoaXMsJyE9PScscmlnaHQudmFsdWUpO30KcmV0dXJuIHRoaXM7fSk7cmVsYXRpb24oJyE9PScpO3JlbGF0aW9uKCc8Jyk7cmVsYXRpb24oJz4nKTtyZWxhdGlvbignPD0nKTtyZWxhdGlvbignPj0nKTtiaXR3aXNlKCc8PCcsJ3NoaWZ0bGVmdCcsMTIwKTtiaXR3aXNlKCc+PicsJ3NoaWZ0cmlnaHQnLDEyMCk7Yml0d2lzZSgnPj4+Jywnc2hpZnRyaWdodHVuc2lnbmVkJywxMjApO2luZml4KCdpbicsJ2luJywxMjApO2luZml4KCdpbnN0YW5jZW9mJywnaW5zdGFuY2VvZicsMTIwKTtpbmZpeCgnKycsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgcmlnaHQ9cGFyc2UoMTMwKTtpZihsZWZ0JiZyaWdodCYmbGVmdC5pZD09PScoc3RyaW5nKScmJnJpZ2h0LmlkPT09JyhzdHJpbmcpJyl7bGVmdC52YWx1ZSs9cmlnaHQudmFsdWU7bGVmdC5jaGFyYWN0ZXI9cmlnaHQuY2hhcmFjdGVyO2lmKGp4LnRlc3QobGVmdC52YWx1ZSkpe3dhcm5pbmcoIkphdmFTY3JpcHQgVVJMLiIsbGVmdCk7fQpyZXR1cm4gbGVmdDt9CnRoYXQubGVmdD1sZWZ0O3RoYXQucmlnaHQ9cmlnaHQ7cmV0dXJuIHRoYXQ7fSwxMzApO3ByZWZpeCgnKycsJ251bScpO2luZml4KCctJywnc3ViJywxMzApO3ByZWZpeCgnLScsJ25lZycpO2luZml4KCcqJywnbXVsdCcsMTQwKTtpbmZpeCgnLycsJ2RpdicsMTQwKTtpbmZpeCgnJScsJ21vZCcsMTQwKTtzdWZmaXgoJysrJywncG9zdGluYycpO3ByZWZpeCgnKysnLCdwcmVpbmMnKTtzeW50YXhbJysrJ10uZXhwcz10cnVlO3N1ZmZpeCgnLS0nLCdwb3N0ZGVjJyk7cHJlZml4KCctLScsJ3ByZWRlYycpO3N5bnRheFsnLS0nXS5leHBzPXRydWU7cHJlZml4KCdkZWxldGUnLGZ1bmN0aW9uKCl7dmFyIHA9cGFyc2UoMCk7aWYoIXB8fChwLmlkIT09Jy4nJiZwLmlkIT09J1snKSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcuJyxuZXh0dG9rZW4udmFsdWUpO30KdGhpcy5maXJzdD1wO3JldHVybiB0aGlzO30pLmV4cHM9dHJ1ZTtwcmVmaXgoJ34nLGZ1bmN0aW9uKCl7aWYob3B0aW9uLmJpdHdpc2Upe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIix0aGlzLCd+Jyk7fQpwYXJzZSgxNTApO3JldHVybiB0aGlzO30pO3ByZWZpeCgnIScsZnVuY3Rpb24oKXt0aGlzLnJpZ2h0PXBhcnNlKDE1MCk7dGhpcy5hcml0eT0ndW5hcnknO2lmKGJhbmdbdGhpcy5yaWdodC5pZF09PT10cnVlKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsdGhpcywnIScpO30KcmV0dXJuIHRoaXM7fSk7cHJlZml4KCd0eXBlb2YnLCd0eXBlb2YnKTtwcmVmaXgoJ25ldycsZnVuY3Rpb24oKXt2YXIgYz1wYXJzZSgxNTUpLGk7aWYoYyYmYy5pZCE9PSdmdW5jdGlvbicpe2lmKGMuaWRlbnRpZmllcil7Y1snbmV3J109dHJ1ZTtzd2l0Y2goYy52YWx1ZSl7Y2FzZSdPYmplY3QnOndhcm5pbmcoIlVzZSB0aGUgb2JqZWN0IGxpdGVyYWwgbm90YXRpb24ge30uIix0b2tlbik7YnJlYWs7Y2FzZSdBcnJheSc6aWYobmV4dHRva2VuLmlkIT09JygnKXt3YXJuaW5nKCJVc2UgdGhlIGFycmF5IGxpdGVyYWwgbm90YXRpb24gW10uIix0b2tlbik7fWVsc2V7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PScpJyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO31lbHNle2k9cGFyc2UoMCk7Yy5kaW1lbnNpb249aTtpZigoaS5pZD09PScobnVtYmVyKScmJi9bLitcLUVlXS8udGVzdChpLnZhbHVlKSl8fChpLmlkPT09Jy0nJiYhaS5yaWdodCl8fGkuaWQ9PT0nKHN0cmluZyknfHxpLmlkPT09J1snfHxpLmlkPT09J3snfHxpLmlkPT09J3RydWUnfHxpLmlkPT09J2ZhbHNlJ3x8aS5pZD09PSdudWxsJ3x8aS5pZD09PSd1bmRlZmluZWQnfHxpLmlkPT09J0luZmluaXR5Jyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtlcnJvcigiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO319CmFkdmFuY2UoJyknKTt9CnRoaXMuZmlyc3Q9YztyZXR1cm4gdGhpcztjYXNlJ051bWJlcic6Y2FzZSdTdHJpbmcnOmNhc2UnQm9vbGVhbic6Y2FzZSdNYXRoJzpjYXNlJ0pTT04nOndhcm5pbmcoIkRvIG5vdCB1c2Uge2F9IGFzIGEgY29uc3RydWN0b3IuIix0b2tlbixjLnZhbHVlKTticmVhaztjYXNlJ0Z1bmN0aW9uJzppZighb3B0aW9uLmV2aWwpe3dhcm5pbmcoIlRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBldmFsLiIpO30KYnJlYWs7Y2FzZSdEYXRlJzpjYXNlJ1JlZ0V4cCc6YnJlYWs7ZGVmYXVsdDppZihjLmlkIT09J2Z1bmN0aW9uJyl7aT1jLnZhbHVlLnN1YnN0cigwLDEpO2lmKG9wdGlvbi5uZXdjYXAmJihpPCdBJ3x8aT4nWicpKXt3YXJuaW5nKCJBIGNvbnN0cnVjdG9yIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci4iLHRva2VuKTt9fX19ZWxzZXtpZihjLmlkIT09Jy4nJiZjLmlkIT09J1snJiZjLmlkIT09JygnKXt3YXJuaW5nKCJCYWQgY29uc3RydWN0b3IuIix0b2tlbik7fX19ZWxzZXt3YXJuaW5nKCJXZWlyZCBjb25zdHJ1Y3Rpb24uIERlbGV0ZSAnbmV3Jy4iLHRoaXMpO30KYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQhPT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgJygpJyBpbnZva2luZyBhIGNvbnN0cnVjdG9yLiIpO30KdGhpcy5maXJzdD1jO3JldHVybiB0aGlzO30pO3N5bnRheFsnbmV3J10uZXhwcz10cnVlO2luZml4KCcuJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7dmFyIG09aWRlbnRpZmllcigpO2lmKHR5cGVvZiBtPT09J3N0cmluZycpe2NvdW50TWVtYmVyKG0pO30KdGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1tO2lmKCFvcHRpb24uZXZpbCYmbGVmdCYmbGVmdC52YWx1ZT09PSdkb2N1bWVudCcmJihtPT09J3dyaXRlJ3x8bT09PSd3cml0ZWxuJykpe3dhcm5pbmcoImRvY3VtZW50LndyaXRlIGNhbiBiZSBhIGZvcm0gb2YgZXZhbC4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5hZHNhZmUpe2lmKGxlZnQmJmxlZnQudmFsdWU9PT0nQURTQUZFJyl7aWYobT09PSdpZCd8fG09PT0nbGliJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO31lbHNlIGlmKG09PT0nZ28nKXtpZih4bW9kZSE9PSdzY3JpcHQnKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fWVsc2UgaWYoYWRzYWZlX3dlbnR8fG5leHR0b2tlbi5pZCE9PScoJ3x8cGVlaygwKS5pZCE9PScoc3RyaW5nKSd8fHBlZWsoMCkudmFsdWUhPT1hZHNhZmVfaWR8fHBlZWsoMSkuaWQhPT0nLCcpe2Vycm9yKCJBRHNhZmUgdmlvbGF0aW9uOiBnby4iLHRoYXQpO30KYWRzYWZlX3dlbnQ9dHJ1ZTthZHNhZmVfbWF5PWZhbHNlO319fQppZighb3B0aW9uLmV2aWwmJihtPT09J2V2YWwnfHxtPT09J2V4ZWNTY3JpcHQnKSl7d2FybmluZygnZXZhbCBpcyBldmlsLicpO31lbHNlIGlmKG9wdGlvbi5zYWZlKXtmb3IoOzspe2lmKGJhbm5lZFttXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0b2tlbixtKTt9CmlmKHR5cGVvZiBwcmVkZWZpbmVkW2xlZnQudmFsdWVdIT09J2Jvb2xlYW4nfHxuZXh0dG9rZW4uaWQ9PT0nKCcpe2JyZWFrO30KaWYoc3RhbmRhcmRfbWVtYmVyW21dPT09dHJ1ZSl7aWYobmV4dHRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCE9PScuJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO2JyZWFrO30KYWR2YW5jZSgnLicpO3Rva2VuLmxlZnQ9dGhhdDt0b2tlbi5yaWdodD1tO3RoYXQ9dG9rZW47bT1pZGVudGlmaWVyKCk7aWYodHlwZW9mIG09PT0nc3RyaW5nJyl7Y291bnRNZW1iZXIobSk7fX19CnJldHVybiB0aGF0O30sMTYwLHRydWUpO2luZml4KCcoJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9zcGFjZSgpO3ZhciBuPTAscD1bXTtpZihsZWZ0KXtpZihsZWZ0LnR5cGU9PT0nKGlkZW50aWZpZXIpJyl7aWYobGVmdC52YWx1ZS5tYXRjaCgvXltBLVpdKFtBLVowLTlfJF0qW2Etel1bQS1aYS16MC05XyRdKik/JC8pKXtpZihsZWZ0LnZhbHVlIT09J051bWJlcicmJmxlZnQudmFsdWUhPT0nU3RyaW5nJyYmbGVmdC52YWx1ZSE9PSdCb29sZWFuJyYmbGVmdC52YWx1ZSE9PSdEYXRlJyl7aWYobGVmdC52YWx1ZT09PSdNYXRoJyl7d2FybmluZygiTWF0aCBpcyBub3QgYSBmdW5jdGlvbi4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5uZXdjYXApe3dhcm5pbmcoIk1pc3NpbmcgJ25ldycgcHJlZml4IHdoZW4gaW52b2tpbmcgYSBjb25zdHJ1Y3Rvci4iLGxlZnQpO319fX1lbHNlIGlmKGxlZnQuaWQ9PT0nLicpe2lmKG9wdGlvbi5zYWZlJiZsZWZ0LmxlZnQudmFsdWU9PT0nTWF0aCcmJmxlZnQucmlnaHQ9PT0ncmFuZG9tJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLGxlZnQpO319fQppZihuZXh0dG9rZW4uaWQhPT0nKScpe2Zvcig7Oyl7cFtwLmxlbmd0aF09cGFyc2UoMTApO24rPTE7aWYobmV4dHRva2VuLmlkIT09JywnKXticmVhazt9CmNvbW1hKCk7fX0KYWR2YW5jZSgnKScpO2lmKG9wdGlvbi5pbW1lZCYmbGVmdC5pZD09PSdmdW5jdGlvbicmJm5leHR0b2tlbi5pZCE9PScpJyl7d2FybmluZygiV3JhcCB0aGUgZW50aXJlIGltbWVkaWF0ZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iLHRoYXQpO30Kbm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKHR5cGVvZiBsZWZ0PT09J29iamVjdCcpe2lmKGxlZnQudmFsdWU9PT0ncGFyc2VJbnQnJiZuPT09MSl7d2FybmluZygiTWlzc2luZyByYWRpeCBwYXJhbWV0ZXIuIixsZWZ0KTt9CmlmKCFvcHRpb24uZXZpbCl7aWYobGVmdC52YWx1ZT09PSdldmFsJ3x8bGVmdC52YWx1ZT09PSdGdW5jdGlvbid8fGxlZnQudmFsdWU9PT0nZXhlY1NjcmlwdCcpe3dhcm5pbmcoImV2YWwgaXMgZXZpbC4iLGxlZnQpO31lbHNlIGlmKHBbMF0mJnBbMF0uaWQ9PT0nKHN0cmluZyknJiYobGVmdC52YWx1ZT09PSdzZXRUaW1lb3V0J3x8bGVmdC52YWx1ZT09PSdzZXRJbnRlcnZhbCcpKXt3YXJuaW5nKCJJbXBsaWVkIGV2YWwgaXMgZXZpbC4gUGFzcyBhIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBzdHJpbmcuIixsZWZ0KTt9fQppZighbGVmdC5pZGVudGlmaWVyJiZsZWZ0LmlkIT09Jy4nJiZsZWZ0LmlkIT09J1snJiZsZWZ0LmlkIT09JygnJiZsZWZ0LmlkIT09JyYmJyYmbGVmdC5pZCE9PSd8fCcmJmxlZnQuaWQhPT0nPycpe3dhcm5pbmcoIkJhZCBpbnZvY2F0aW9uLiIsbGVmdCk7fX0KdGhhdC5sZWZ0PWxlZnQ7cmV0dXJuIHRoYXQ7fSwxNTUsdHJ1ZSkuZXhwcz10cnVlO3ByZWZpeCgnKCcsZnVuY3Rpb24oKXtub3NwYWNlKCk7dmFyIHY9cGFyc2UoMCk7YWR2YW5jZSgnKScsdGhpcyk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKG9wdGlvbi5pbW1lZCYmdi5pZD09PSdmdW5jdGlvbicpe2lmKG5leHR0b2tlbi5pZD09PScoJyl7d2FybmluZygiTW92ZSB0aGUgaW52b2NhdGlvbiBpbnRvIHRoZSBwYXJlbnMgdGhhdCBjb250YWluIHRoZSBmdW5jdGlvbi4iLG5leHR0b2tlbik7fWVsc2V7d2FybmluZygiRG8gbm90IHdyYXAgZnVuY3Rpb24gbGl0ZXJhbHMgaW4gcGFyZW5zIHVubGVzcyB0aGV5IGFyZSB0byBiZSBpbW1lZGlhdGVseSBpbnZva2VkLiIsdGhpcyk7fX0KcmV0dXJuIHY7fSk7aW5maXgoJ1snLGZ1bmN0aW9uKGxlZnQsdGhhdCl7bm9zcGFjZSgpO3ZhciBlPXBhcnNlKDApLHM7aWYoZSYmZS50eXBlPT09JyhzdHJpbmcpJyl7aWYob3B0aW9uLnNhZmUmJmJhbm5lZFtlLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0aGF0LGUudmFsdWUpO31lbHNlIGlmKCFvcHRpb24uZXZpbCYmKGUudmFsdWU9PT0nZXZhbCd8fGUudmFsdWU9PT0nZXhlY1NjcmlwdCcpKXt3YXJuaW5nKCJldmFsIGlzIGV2aWwuIix0aGF0KTt9ZWxzZSBpZihvcHRpb24uc2FmZSYmKGUudmFsdWUuY2hhckF0KDApPT09J18nfHxlLnZhbHVlLmNoYXJBdCgwKT09PSctJykpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHN1YnNjcmlwdCAne2F9Jy4iLHRoYXQsZS52YWx1ZSk7fQpjb3VudE1lbWJlcihlLnZhbHVlKTtpZighb3B0aW9uLnN1YiYmaXgudGVzdChlLnZhbHVlKSl7cz1zeW50YXhbZS52YWx1ZV07aWYoIXN8fCFzLnJlc2VydmVkKXt3YXJuaW5nKCJbJ3thfSddIGlzIGJldHRlciB3cml0dGVuIGluIGRvdCBub3RhdGlvbi4iLGUsZS52YWx1ZSk7fX19ZWxzZSBpZighZXx8ZS50eXBlIT09JyhudW1iZXIpJ3x8ZS52YWx1ZTwwKXtpZihvcHRpb24uc2FmZSl7d2FybmluZygnQURzYWZlIHN1YnNjcmlwdGluZy4nKTt9fQphZHZhbmNlKCddJyx0aGF0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7dGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1lO3JldHVybiB0aGF0O30sMTYwLHRydWUpO3ByZWZpeCgnWycsZnVuY3Rpb24oKXt2YXIgYj10b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmU7dGhpcy5maXJzdD1bXTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CndoaWxlKG5leHR0b2tlbi5pZCE9PScoZW5kKScpe3doaWxlKG5leHR0b2tlbi5pZD09PScsJyl7d2FybmluZygiRXh0cmEgY29tbWEuIik7YWR2YW5jZSgnLCcpO30KaWYobmV4dHRva2VuLmlkPT09J10nKXticmVhazt9CmlmKGImJnRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aW5kZW50YXRpb24oKTt9CnRoaXMuZmlyc3QucHVzaChwYXJzZSgxMCkpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4uaWQ9PT0nXScpe3dhcm5pbmcoIkV4dHJhIGNvbW1hLiIsdG9rZW4pO2JyZWFrO319ZWxzZXticmVhazt9fQppZihiKXtpbmRlbnQtPW9wdGlvbi5pbmRlbnQ7aW5kZW50YXRpb24oKTt9CmFkdmFuY2UoJ10nLHRoaXMpO3JldHVybiB0aGlzO30sMTYwKTsoZnVuY3Rpb24oeCl7eC5udWQ9ZnVuY3Rpb24oKXt2YXIgYixpLHMsc2Vlbj17fTtiPXRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CmZvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09J30nKXticmVhazt9CmlmKGIpe2luZGVudGF0aW9uKCk7fQppPW9wdGlvbmFsaWRlbnRpZmllcih0cnVlKTtpZighaSl7aWYobmV4dHRva2VuLmlkPT09JyhzdHJpbmcpJyl7aT1uZXh0dG9rZW4udmFsdWU7aWYoaXgudGVzdChpKSl7cz1zeW50YXhbaV07fQphZHZhbmNlKCk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09JyhudW1iZXIpJyl7aT1uZXh0dG9rZW4udmFsdWUudG9TdHJpbmcoKTthZHZhbmNlKCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnfScsbmV4dHRva2VuLnZhbHVlKTt9fQppZihzZWVuW2ldPT09dHJ1ZSl7d2FybmluZygiRHVwbGljYXRlIG1lbWJlciAne2F9Jy4iLG5leHR0b2tlbixpKTt9CnNlZW5baV09dHJ1ZTtjb3VudE1lbWJlcihpKTthZHZhbmNlKCc6Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtwYXJzZSgxMCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi5pZD09PScsJ3x8bmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJFeHRyYSBjb21tYS4iLHRva2VuKTt9fWVsc2V7YnJlYWs7fX0KaWYoYil7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0aGlzKTtyZXR1cm4gdGhpczt9O3guZnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkV4cGVjdGVkIHRvIHNlZSBhIHN0YXRlbWVudCBhbmQgaW5zdGVhZCBzYXcgYSBibG9jay4iLHRva2VuKTt9O30oZGVsaW0oJ3snKSkpO2Z1bmN0aW9uIHZhcnN0YXRlbWVudChwcmVmaXgpe3ZhciBpZCxuYW1lLHZhbHVlO2lmKGZ1bmN0Wycob25ldmFyKSddJiZvcHRpb24ub25ldmFyKXt3YXJuaW5nKCJUb28gbWFueSB2YXIgc3RhdGVtZW50cy4iKTt9ZWxzZSBpZighZnVuY3RbJyhnbG9iYWwpJ10pe2Z1bmN0Wycob25ldmFyKSddPXRydWU7fQp0aGlzLmZpcnN0PVtdO2Zvcig7Oyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZD1pZGVudGlmaWVyKCk7aWYoZnVuY3RbJyhnbG9iYWwpJ10mJnByZWRlZmluZWRbaWRdPT09ZmFsc2Upe3dhcm5pbmcoIlJlZGVmaW5pdGlvbiBvZiAne2F9Jy4iLHRva2VuLGlkKTt9CmFkZGxhYmVsKGlkLCd1bnVzZWQnKTtpZihwcmVmaXgpe2JyZWFrO30KbmFtZT10b2tlbjt0aGlzLmZpcnN0LnB1c2godG9rZW4pO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCc9Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQ9PT0ndW5kZWZpbmVkJyl7d2FybmluZygiSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBpbml0aWFsaXplICd7YX0nIHRvICd1bmRlZmluZWQnLiIsdG9rZW4saWQpO30KaWYocGVlaygwKS5pZD09PSc9JyYmbmV4dHRva2VuLmlkZW50aWZpZXIpe2Vycm9yKCJWYXJpYWJsZSB7YX0gd2FzIG5vdCBkZWNsYXJlZCBjb3JyZWN0bHkuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CnZhbHVlPXBhcnNlKDApO25hbWUuZmlyc3Q9dmFsdWU7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9CnJldHVybiB0aGlzO30Kc3RtdCgndmFyJyx2YXJzdGF0ZW1lbnQpLmV4cHM9dHJ1ZTtmdW5jdGlvbiBmdW5jdGlvbnBhcmFtcygpe3ZhciBpLHQ9bmV4dHRva2VuLHA9W107YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKScpe2FkdmFuY2UoJyknKTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7cmV0dXJuO30KZm9yKDs7KXtpPWlkZW50aWZpZXIoKTtwLnB1c2goaSk7YWRkbGFiZWwoaSwncGFyYW1ldGVyJyk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO31lbHNle2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtyZXR1cm4gcDt9fX0KZnVuY3Rpb24gZG9GdW5jdGlvbihpKXt2YXIgcz1zY29wZTtzY29wZT1PYmplY3QuY3JlYXRlKHMpO2Z1bmN0PXsnKG5hbWUpJzppfHwnIicrYW5vbm5hbWUrJyInLCcobGluZSknOm5leHR0b2tlbi5saW5lLCcoY29udGV4dCknOmZ1bmN0LCcoYnJlYWthZ2UpJzowLCcobG9vcGFnZSknOjAsJyhzY29wZSknOnNjb3BlfTt0b2tlbi5mdW5jdD1mdW5jdDtmdW5jdGlvbnMucHVzaChmdW5jdCk7aWYoaSl7YWRkbGFiZWwoaSwnZnVuY3Rpb24nKTt9CmZ1bmN0WycocGFyYW1zKSddPWZ1bmN0aW9ucGFyYW1zKCk7YmxvY2soZmFsc2UpO3Njb3BlPXM7ZnVuY3RbJyhsYXN0KSddPXRva2VuLmxpbmU7ZnVuY3Q9ZnVuY3RbJyhjb250ZXh0KSddO30KYmxvY2tzdG10KCdmdW5jdGlvbicsZnVuY3Rpb24oKXtpZihpbmJsb2NrKXt3YXJuaW5nKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGNhbm5vdCBiZSBwbGFjZWQgaW4gYmxvY2tzLiBVc2UgYSBmdW5jdGlvbiBleHByZXNzaW9uIG9yIG1vdmUgdGhlIHN0YXRlbWVudCB0byB0aGUgdG9wIG9mIHRoZSBvdXRlciBmdW5jdGlvbi4iLHRva2VuKTt9CnZhciBpPWlkZW50aWZpZXIoKTthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkZGxhYmVsKGksJ3VudXNlZCcpO2RvRnVuY3Rpb24oaSk7aWYobmV4dHRva2VuLmlkPT09JygnJiZuZXh0dG9rZW4ubGluZT09PXRva2VuLmxpbmUpe2Vycm9yKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGFyZSBub3QgaW52b2NhYmxlLiBXcmFwIHRoZSB3aG9sZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iKTt9CnJldHVybiB0aGlzO30pO3ByZWZpeCgnZnVuY3Rpb24nLGZ1bmN0aW9uKCl7dmFyIGk9b3B0aW9uYWxpZGVudGlmaWVyKCk7aWYoaSl7YWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9ZWxzZXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KZG9GdW5jdGlvbihpKTtpZihmdW5jdFsnKGxvb3BhZ2UpJ10mJm5leHR0b2tlbi5pZCE9PScoJyl7d2FybmluZygiQmUgY2FyZWZ1bCB3aGVuIG1ha2luZyBmdW5jdGlvbnMgd2l0aGluIGEgbG9vcC4gQ29uc2lkZXIgcHV0dGluZyB0aGUgZnVuY3Rpb24gaW4gYSBjbG9zdXJlLiIpO30KcmV0dXJuIHRoaXM7fSk7YmxvY2tzdG10KCdpZicsZnVuY3Rpb24oKXt2YXIgdD1uZXh0dG9rZW47YWR2YW5jZSgnKCcpO25vbmFkamFjZW50KHRoaXMsdCk7bm9zcGFjZSgpO3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO30KYWR2YW5jZSgnKScsdCk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2Jsb2NrKHRydWUpO2lmKG5leHR0b2tlbi5pZD09PSdlbHNlJyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCdlbHNlJyk7aWYobmV4dHRva2VuLmlkPT09J2lmJ3x8bmV4dHRva2VuLmlkPT09J3N3aXRjaCcpe3N0YXRlbWVudCh0cnVlKTt9ZWxzZXtibG9jayh0cnVlKTt9fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3RyeScsZnVuY3Rpb24oKXt2YXIgYixlLHM7aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHRyeSB2aW9sYXRpb24uIix0aGlzKTt9CmJsb2NrKGZhbHNlKTtpZihuZXh0dG9rZW4uaWQ9PT0nY2F0Y2gnKXthZHZhbmNlKCdjYXRjaCcpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKCcpO3M9c2NvcGU7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTtlPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScoaWRlbnRpZmllciknKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixlKTt9ZWxzZXthZGRsYWJlbChlLCdleGNlcHRpb24nKTt9CmFkdmFuY2UoKTthZHZhbmNlKCcpJyk7YmxvY2soZmFsc2UpO2I9dHJ1ZTtzY29wZT1zO30KaWYobmV4dHRva2VuLmlkPT09J2ZpbmFsbHknKXthZHZhbmNlKCdmaW5hbGx5Jyk7YmxvY2soZmFsc2UpO3JldHVybjt9ZWxzZSBpZighYil7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnY2F0Y2gnLG5leHR0b2tlbi52YWx1ZSk7fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3doaWxlJyxmdW5jdGlvbigpe3ZhciB0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7cGFyc2UoMjApO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7d2FybmluZygiRXhwZWN0ZWQgYSBjb25kaXRpb25hbCBleHByZXNzaW9uIGFuZCBpbnN0ZWFkIHNhdyBhbiBhc3NpZ25tZW50LiIpO2FkdmFuY2UoJz0nKTtwYXJzZSgyMCk7fQphZHZhbmNlKCcpJyx0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7YmxvY2sodHJ1ZSk7ZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fSkubGFiZWxsZWQ9dHJ1ZTtyZXNlcnZlKCd3aXRoJyk7YmxvY2tzdG10KCdzd2l0Y2gnLGZ1bmN0aW9uKCl7dmFyIHQ9bmV4dHRva2VuLGc9ZmFsc2U7ZnVuY3RbJyhicmVha2FnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7dGhpcy5jb25kaXRpb249cGFyc2UoMjApO2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3Q9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2luZGVudCs9b3B0aW9uLmluZGVudDt0aGlzLmNhc2VzPVtdO2Zvcig7Oyl7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSdjYXNlJzpzd2l0Y2goZnVuY3RbJyh2ZXJiKSddKXtjYXNlJ2JyZWFrJzpjYXNlJ2Nhc2UnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3N3aXRjaCc6Y2FzZSd0aHJvdyc6YnJlYWs7ZGVmYXVsdDp3YXJuaW5nKCJFeHBlY3RlZCBhICdicmVhaycgc3RhdGVtZW50IGJlZm9yZSAnY2FzZScuIix0b2tlbik7fQppbmRlbnRhdGlvbigtb3B0aW9uLmluZGVudCk7YWR2YW5jZSgnY2FzZScpO3RoaXMuY2FzZXMucHVzaChwYXJzZSgyMCkpO2c9dHJ1ZTthZHZhbmNlKCc6Jyk7ZnVuY3RbJyh2ZXJiKSddPSdjYXNlJzticmVhaztjYXNlJ2RlZmF1bHQnOnN3aXRjaChmdW5jdFsnKHZlcmIpJ10pe2Nhc2UnYnJlYWsnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3Rocm93JzpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgJ2JyZWFrJyBzdGF0ZW1lbnQgYmVmb3JlICdkZWZhdWx0Jy4iLHRva2VuKTt9CmluZGVudGF0aW9uKC1vcHRpb24uaW5kZW50KTthZHZhbmNlKCdkZWZhdWx0Jyk7Zz10cnVlO2FkdmFuY2UoJzonKTticmVhaztjYXNlJ30nOmluZGVudC09b3B0aW9uLmluZGVudDtpbmRlbnRhdGlvbigpO2FkdmFuY2UoJ30nLHQpO2lmKHRoaXMuY2FzZXMubGVuZ3RoPT09MXx8dGhpcy5jb25kaXRpb24uaWQ9PT0ndHJ1ZSd8fHRoaXMuY29uZGl0aW9uLmlkPT09J2ZhbHNlJyl7d2FybmluZygiVGhpcyAnc3dpdGNoJyBzaG91bGQgYmUgYW4gJ2lmJy4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKHZlcmIpJ109dW5kZWZpbmVkO3JldHVybjtjYXNlJyhlbmQpJzplcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnfScpO3JldHVybjtkZWZhdWx0OmlmKGcpe3N3aXRjaCh0b2tlbi5pZCl7Y2FzZScsJzplcnJvcigiRWFjaCB2YWx1ZSBzaG91bGQgaGF2ZSBpdHMgb3duIGNhc2UgbGFiZWwuIik7cmV0dXJuO2Nhc2UnOic6c3RhdGVtZW50cygpO2JyZWFrO2RlZmF1bHQ6ZXJyb3IoIk1pc3NpbmcgJzonIG9uIGEgY2FzZSBjbGF1c2UuIix0b2tlbik7fX1lbHNle2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2Nhc2UnLG5leHR0b2tlbi52YWx1ZSk7fX19fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdkZWJ1Z2dlcicsZnVuY3Rpb24oKXtpZighb3B0aW9uLmRlYnVnKXt3YXJuaW5nKCJBbGwgJ2RlYnVnZ2VyJyBzdGF0ZW1lbnRzIHNob3VsZCBiZSByZW1vdmVkLiIpO30KcmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlOyhmdW5jdGlvbigpe3ZhciB4PXN0bXQoJ2RvJyxmdW5jdGlvbigpe2Z1bmN0WycoYnJlYWthZ2UpJ10rPTE7ZnVuY3RbJyhsb29wYWdlKSddKz0xO3RoaXMuZmlyc3Q9YmxvY2sodHJ1ZSk7YWR2YW5jZSgnd2hpbGUnKTt2YXIgdD1uZXh0dG9rZW47bm9uYWRqYWNlbnQodG9rZW4sdCk7YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtwYXJzZSgyMCk7aWYobmV4dHRva2VuLmlkPT09Jz0nKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gYW5kIGluc3RlYWQgc2F3IGFuIGFzc2lnbm1lbnQuIik7YWR2YW5jZSgnPScpO3BhcnNlKDIwKTt9CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9KTt4LmxhYmVsbGVkPXRydWU7eC5leHBzPXRydWU7fSgpKTtibG9ja3N0bXQoJ2ZvcicsZnVuY3Rpb24oKXt2YXIgZj1vcHRpb24uZm9yaW4scyx0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7aWYocGVlayhuZXh0dG9rZW4uaWQ9PT0ndmFyJz8xOjApLmlkPT09J2luJyl7aWYobmV4dHRva2VuLmlkPT09J3Zhcicpe2FkdmFuY2UoJ3ZhcicpO3ZhcnN0YXRlbWVudCh0cnVlKTt9ZWxzZXtzd2l0Y2goZnVuY3RbbmV4dHRva2VuLnZhbHVlXSl7Y2FzZSd1bnVzZWQnOmZ1bmN0W25leHR0b2tlbi52YWx1ZV09J3Zhcic7YnJlYWs7Y2FzZSd2YXInOmJyZWFrO2RlZmF1bHQ6d2FybmluZygiQmFkIGZvciBpbiB2YXJpYWJsZSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnaW4nKTtwYXJzZSgyMCk7YWR2YW5jZSgnKScsdCk7cz1ibG9jayh0cnVlKTtpZighZiYmKHMubGVuZ3RoPjF8fHR5cGVvZiBzWzBdIT09J29iamVjdCd8fHNbMF0udmFsdWUhPT0naWYnKSl7d2FybmluZygiVGhlIGJvZHkgb2YgYSBmb3IgaW4gc2hvdWxkIGJlIHdyYXBwZWQgaW4gYW4gaWYgc3RhdGVtZW50IHRvIGZpbHRlciB1bndhbnRlZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHByb3RvdHlwZS4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZihuZXh0dG9rZW4uaWQ9PT0ndmFyJyl7YWR2YW5jZSgndmFyJyk7dmFyc3RhdGVtZW50KCk7fWVsc2V7Zm9yKDs7KXtwYXJzZSgwLCdmb3InKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9fX0Kbm9saW5lYnJlYWsodG9rZW4pO2FkdmFuY2UoJzsnKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO319Cm5vbGluZWJyZWFrKHRva2VuKTthZHZhbmNlKCc7Jyk7aWYobmV4dHRva2VuLmlkPT09JzsnKXtlcnJvcigiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcpJywnOycpO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtmb3IoOzspe3BhcnNlKDAsJ2ZvcicpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQpjb21tYSgpO319CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtibG9jayh0cnVlKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdicmVhaycsZnVuY3Rpb24oKXt2YXIgdj1uZXh0dG9rZW4udmFsdWU7aWYoZnVuY3RbJyhicmVha2FnZSknXT09PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIixuZXh0dG9rZW4sdGhpcy52YWx1ZSk7fQpub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe2lmKHRva2VuLmxpbmU9PT1uZXh0dG9rZW4ubGluZSl7aWYoZnVuY3Rbdl0hPT0nbGFiZWwnKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgYSBzdGF0ZW1lbnQgbGFiZWwuIixuZXh0dG9rZW4sdik7fWVsc2UgaWYoc2NvcGVbdl0hPT1mdW5jdCl7d2FybmluZygiJ3thfScgaXMgb3V0IG9mIHNjb3BlLiIsbmV4dHRva2VuLHYpO30KdGhpcy5maXJzdD1uZXh0dG9rZW47YWR2YW5jZSgpO319CnJlYWNoYWJsZSgnYnJlYWsnKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgnY29udGludWUnLGZ1bmN0aW9uKCl7dmFyIHY9bmV4dHRva2VuLnZhbHVlO2lmKGZ1bmN0WycoYnJlYWthZ2UpJ109PT0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLHRoaXMudmFsdWUpO30Kbm9saW5lYnJlYWsodGhpcyk7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZih0b2tlbi5saW5lPT09bmV4dHRva2VuLmxpbmUpe2lmKGZ1bmN0W3ZdIT09J2xhYmVsJyl7d2FybmluZygiJ3thfScgaXMgbm90IGEgc3RhdGVtZW50IGxhYmVsLiIsbmV4dHRva2VuLHYpO31lbHNlIGlmKHNjb3BlW3ZdIT09ZnVuY3Qpe3dhcm5pbmcoIid7YX0nIGlzIG91dCBvZiBzY29wZS4iLG5leHR0b2tlbix2KTt9CnRoaXMuZmlyc3Q9bmV4dHRva2VuO2FkdmFuY2UoKTt9fQpyZWFjaGFibGUoJ2NvbnRpbnVlJyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3N0bXQoJ3JldHVybicsZnVuY3Rpb24oKXtub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQ9PT0nKHJlZ2V4cCknKXt3YXJuaW5nKCJXcmFwIHRoZSAvcmVnZXhwLyBsaXRlcmFsIGluIHBhcmVucyB0byBkaXNhbWJpZ3VhdGUgdGhlIHNsYXNoIG9wZXJhdG9yLiIpO30KaWYobmV4dHRva2VuLmlkIT09JzsnJiYhbmV4dHRva2VuLnJlYWNoKXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3RoaXMuZmlyc3Q9cGFyc2UoMjApO30KcmVhY2hhYmxlKCdyZXR1cm4nKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgndGhyb3cnLGZ1bmN0aW9uKCl7bm9saW5lYnJlYWsodGhpcyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt0aGlzLmZpcnN0PXBhcnNlKDIwKTtyZWFjaGFibGUoJ3Rocm93Jyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3Jlc2VydmUoJ3ZvaWQnKTtyZXNlcnZlKCdjbGFzcycpO3Jlc2VydmUoJ2NvbnN0Jyk7cmVzZXJ2ZSgnZW51bScpO3Jlc2VydmUoJ2V4cG9ydCcpO3Jlc2VydmUoJ2V4dGVuZHMnKTtyZXNlcnZlKCdpbXBvcnQnKTtyZXNlcnZlKCdzdXBlcicpO3Jlc2VydmUoJ2xldCcpO3Jlc2VydmUoJ3lpZWxkJyk7cmVzZXJ2ZSgnaW1wbGVtZW50cycpO3Jlc2VydmUoJ2ludGVyZmFjZScpO3Jlc2VydmUoJ3BhY2thZ2UnKTtyZXNlcnZlKCdwcml2YXRlJyk7cmVzZXJ2ZSgncHJvdGVjdGVkJyk7cmVzZXJ2ZSgncHVibGljJyk7cmVzZXJ2ZSgnc3RhdGljJyk7ZnVuY3Rpb24ganNvblZhbHVlKCl7ZnVuY3Rpb24ganNvbk9iamVjdCgpe3ZhciBvPXt9LHQ9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtpZihuZXh0dG9rZW4uaWQhPT0nfScpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJyl7ZXJyb3IoIk1pc3NpbmcgJ30nIHRvIG1hdGNoICd7JyBmcm9tIGxpbmUge2F9LiIsbmV4dHRva2VuLHQubGluZSk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNvbW1hLiIsdG9rZW4pO2JyZWFrO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PScsJyl7ZXJyb3IoIlVuZXhwZWN0ZWQgY29tbWEuIixuZXh0dG9rZW4pO31lbHNlIGlmKG5leHR0b2tlbi5pZCE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmlmKG9bbmV4dHRva2VuLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkR1cGxpY2F0ZSBrZXkgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9ZWxzZSBpZihuZXh0dG9rZW4udmFsdWU9PT0nX19wcm90b19fJyl7d2FybmluZygiU3R1cGlkIGtleSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO31lbHNle29bbmV4dHRva2VuLnZhbHVlXT10cnVlO30KYWR2YW5jZSgpO2FkdmFuY2UoJzonKTtqc29uVmFsdWUoKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KYWR2YW5jZSgnLCcpO319CmFkdmFuY2UoJ30nKTt9CmZ1bmN0aW9uIGpzb25BcnJheSgpe3ZhciB0PW5leHR0b2tlbjthZHZhbmNlKCdbJyk7aWYobmV4dHRva2VuLmlkIT09J10nKXtmb3IoOzspe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJNaXNzaW5nICddJyB0byBtYXRjaCAnWycgZnJvbSBsaW5lIHthfS4iLG5leHR0b2tlbix0LmxpbmUpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSddJyl7d2FybmluZygiVW5leHBlY3RlZCBjb21tYS4iLHRva2VuKTticmVhazt9ZWxzZSBpZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2Vycm9yKCJVbmV4cGVjdGVkIGNvbW1hLiIsbmV4dHRva2VuKTt9Cmpzb25WYWx1ZSgpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQphZHZhbmNlKCcsJyk7fX0KYWR2YW5jZSgnXScpO30Kc3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSd7Jzpqc29uT2JqZWN0KCk7YnJlYWs7Y2FzZSdbJzpqc29uQXJyYXkoKTticmVhaztjYXNlJ3RydWUnOmNhc2UnZmFsc2UnOmNhc2UnbnVsbCc6Y2FzZScobnVtYmVyKSc6Y2FzZScoc3RyaW5nKSc6YWR2YW5jZSgpO2JyZWFrO2Nhc2UnLSc6YWR2YW5jZSgnLScpO2lmKHRva2VuLmNoYXJhY3RlciE9PW5leHR0b2tlbi5mcm9tKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHNwYWNlIGFmdGVyICctJy4iLHRva2VuKTt9CmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKG51bWJlciknKTticmVhaztkZWZhdWx0OmVycm9yKCJFeHBlY3RlZCBhIEpTT04gdmFsdWUuIixuZXh0dG9rZW4pO319CnZhciBpdHNlbGY9ZnVuY3Rpb24ocyxvKXt2YXIgYSxpO0pTTElOVC5lcnJvcnM9W107cHJlZGVmaW5lZD1PYmplY3QuY3JlYXRlKHN0YW5kYXJkKTtpZihvKXthPW8ucHJlZGVmO2lmKGEgaW5zdGFuY2VvZiBBcnJheSl7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe3ByZWRlZmluZWRbYVtpXV09dHJ1ZTt9fQppZihvLmFkc2FmZSl7by5zYWZlPXRydWU7fQppZihvLnNhZmUpe28uYnJvd3Nlcj1mYWxzZTtvLmNzcz1mYWxzZTtvLmRlYnVnPWZhbHNlO28uZGV2ZWw9ZmFsc2U7by5lcWVxZXE9dHJ1ZTtvLmV2aWw9ZmFsc2U7by5mb3Jpbj1mYWxzZTtvLm5vbWVuPXRydWU7by5vbj1mYWxzZTtvLnJoaW5vPWZhbHNlO28uc2FmZT10cnVlO28uc2lkZWJhcj1mYWxzZTtvLnN0cmljdD10cnVlO28uc3ViPWZhbHNlO28udW5kZWY9dHJ1ZTtvLndpZGdldD1mYWxzZTtwcmVkZWZpbmVkLkRhdGU9bnVsbDtwcmVkZWZpbmVkWydldmFsJ109bnVsbDtwcmVkZWZpbmVkLkZ1bmN0aW9uPW51bGw7cHJlZGVmaW5lZC5PYmplY3Q9bnVsbDtwcmVkZWZpbmVkLkFEU0FGRT1mYWxzZTtwcmVkZWZpbmVkLmxpYj1mYWxzZTt9Cm9wdGlvbj1vO31lbHNle29wdGlvbj17fTt9Cm9wdGlvbi5pbmRlbnQ9b3B0aW9uLmluZGVudHx8NDtvcHRpb24ubWF4ZXJyPW9wdGlvbi5tYXhlcnJ8fDUwO2Fkc2FmZV9pZD0nJzthZHNhZmVfbWF5PWZhbHNlO2Fkc2FmZV93ZW50PWZhbHNlO2FwcHJvdmVkPXt9O2lmKG9wdGlvbi5hcHByb3ZlZCl7Zm9yKGk9MDtpPG9wdGlvbi5hcHByb3ZlZC5sZW5ndGg7aSs9MSl7YXBwcm92ZWRbb3B0aW9uLmFwcHJvdmVkW2ldXT1vcHRpb24uYXBwcm92ZWRbaV07fX1lbHNle2FwcHJvdmVkLnRlc3Q9J3Rlc3QnO30KdGFiPScnO2ZvcihpPTA7aTxvcHRpb24uaW5kZW50O2krPTEpe3RhYis9JyAnO30KaW5kZW50PTE7Z2xvYmFsPU9iamVjdC5jcmVhdGUocHJlZGVmaW5lZCk7c2NvcGU9Z2xvYmFsO2Z1bmN0PXsnKGdsb2JhbCknOnRydWUsJyhuYW1lKSc6JyhnbG9iYWwpJywnKHNjb3BlKSc6c2NvcGUsJyhicmVha2FnZSknOjAsJyhsb29wYWdlKSc6MH07ZnVuY3Rpb25zPVtmdW5jdF07aWRzPXt9O3VybHM9W107c3JjPWZhbHNlO3htb2RlPWZhbHNlO3N0YWNrPW51bGw7bWVtYmVyPXt9O21lbWJlcnNPbmx5PW51bGw7aW1wbGllZD17fTtpbmJsb2NrPWZhbHNlO2xvb2thaGVhZD1bXTtqc29ubW9kZT1mYWxzZTt3YXJuaW5ncz0wO2xleC5pbml0KHMpO3ByZXJlZz10cnVlO3N0cmljdF9tb2RlPWZhbHNlO3ByZXZ0b2tlbj10b2tlbj1uZXh0dG9rZW49c3ludGF4WycoYmVnaW4pJ107YXNzdW1lKCk7dHJ5e2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWUuY2hhckF0KDApPT09JzwnKXtodG1sKCk7aWYob3B0aW9uLmFkc2FmZSYmIWFkc2FmZV93ZW50KXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5nby4iLHRoaXMpO319ZWxzZXtzd2l0Y2gobmV4dHRva2VuLmlkKXtjYXNlJ3snOmNhc2UnWyc6b3B0aW9uLmxheGJyZWFrPXRydWU7anNvbm1vZGU9dHJ1ZTtqc29uVmFsdWUoKTticmVhaztjYXNlJ0AnOmNhc2UnKic6Y2FzZScjJzpjYXNlJy4nOmNhc2UnOic6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCk7aWYodG9rZW4uaWQhPT0nQCd8fCFuZXh0dG9rZW4uaWRlbnRpZmllcnx8bmV4dHRva2VuLnZhbHVlIT09J2NoYXJzZXQnfHx0b2tlbi5saW5lIT09MXx8dG9rZW4uZnJvbSE9PTEpe2Vycm9yKCdBIGNzcyBmaWxlIHNob3VsZCBiZWdpbiB3aXRoIEBjaGFyc2V0ICJVVEYtOCI7Jyk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZuZXh0dG9rZW4udmFsdWUhPT0nVVRGLTgnKXtlcnJvcignQSBjc3MgZmlsZSBzaG91bGQgYmVnaW4gd2l0aCBAY2hhcnNldCAiVVRGLTgiOycpO30KYWR2YW5jZSgpO2FkdmFuY2UoJzsnKTtzdHlsZXMoKTticmVhaztkZWZhdWx0OmlmKG9wdGlvbi5hZHNhZmUmJm9wdGlvbi5mcmFnbWVudCl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnPGRpdj4nLG5leHR0b2tlbi52YWx1ZSk7fQpzdGF0ZW1lbnRzKCdsaWInKTt9fQphZHZhbmNlKCcoZW5kKScpO31jYXRjaChlKXtpZihlKXtKU0xJTlQuZXJyb3JzLnB1c2goe3JlYXNvbjplLm1lc3NhZ2UsbGluZTplLmxpbmV8fG5leHR0b2tlbi5saW5lLGNoYXJhY3RlcjplLmNoYXJhY3Rlcnx8bmV4dHRva2VuLmZyb219LG51bGwpO319CnJldHVybiBKU0xJTlQuZXJyb3JzLmxlbmd0aD09PTA7fTtmdW5jdGlvbiBpc19hcnJheShvKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShvKT09PSdbb2JqZWN0IEFycmF5XSc7fQpmdW5jdGlvbiB0b19hcnJheShvKXt2YXIgYT1bXSxrO2ZvcihrIGluIG8pe2lmKGlzX293bihvLGspKXthLnB1c2goayk7fX0KcmV0dXJuIGE7fQppdHNlbGYuZGF0YT1mdW5jdGlvbigpe3ZhciBkYXRhPXtmdW5jdGlvbnM6W119LGZ1LGdsb2JhbHMsaW1wbGllZHM9W10sZixpLGosbWVtYmVycz1bXSxuLHVudXNlZD1bXSx2O2lmKGl0c2VsZi5lcnJvcnMubGVuZ3RoKXtkYXRhLmVycm9ycz1pdHNlbGYuZXJyb3JzO30KaWYoanNvbm1vZGUpe2RhdGEuanNvbj10cnVlO30KZm9yKG4gaW4gaW1wbGllZCl7aWYoaXNfb3duKGltcGxpZWQsbikpe2ltcGxpZWRzLnB1c2goe25hbWU6bixsaW5lOmltcGxpZWRbbl19KTt9fQppZihpbXBsaWVkcy5sZW5ndGg+MCl7ZGF0YS5pbXBsaWVkcz1pbXBsaWVkczt9CmlmKHVybHMubGVuZ3RoPjApe2RhdGEudXJscz11cmxzO30KZ2xvYmFscz10b19hcnJheShzY29wZSk7aWYoZ2xvYmFscy5sZW5ndGg+MCl7ZGF0YS5nbG9iYWxzPWdsb2JhbHM7fQpmb3IoaT0xO2k8ZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWZ1bmN0aW9uc1tpXTtmdT17fTtmb3Ioaj0wO2o8ZnVuY3Rpb25pY2l0eS5sZW5ndGg7ais9MSl7ZnVbZnVuY3Rpb25pY2l0eVtqXV09W107fQpmb3IobiBpbiBmKXtpZihpc19vd24oZixuKSYmbi5jaGFyQXQoMCkhPT0nKCcpe3Y9ZltuXTtpZihpc19hcnJheShmdVt2XSkpe2Z1W3ZdLnB1c2gobik7aWYodj09PSd1bnVzZWQnKXt1bnVzZWQucHVzaCh7bmFtZTpuLGxpbmU6ZlsnKGxpbmUpJ10sJ2Z1bmN0aW9uJzpmWycobmFtZSknXX0pO319fX0KZm9yKGo9MDtqPGZ1bmN0aW9uaWNpdHkubGVuZ3RoO2orPTEpe2lmKGZ1W2Z1bmN0aW9uaWNpdHlbal1dLmxlbmd0aD09PTApe2RlbGV0ZSBmdVtmdW5jdGlvbmljaXR5W2pdXTt9fQpmdS5uYW1lPWZbJyhuYW1lKSddO2Z1LnBhcmFtPWZbJyhwYXJhbXMpJ107ZnUubGluZT1mWycobGluZSknXTtmdS5sYXN0PWZbJyhsYXN0KSddO2RhdGEuZnVuY3Rpb25zLnB1c2goZnUpO30KaWYodW51c2VkLmxlbmd0aD4wKXtkYXRhLnVudXNlZD11bnVzZWQ7fQptZW1iZXJzPVtdO2ZvcihuIGluIG1lbWJlcil7aWYodHlwZW9mIG1lbWJlcltuXT09PSdudW1iZXInKXtkYXRhLm1lbWJlcj1tZW1iZXI7YnJlYWs7fX0KcmV0dXJuIGRhdGE7fTtpdHNlbGYucmVwb3J0PWZ1bmN0aW9uKG9wdGlvbil7dmFyIGRhdGE9aXRzZWxmLmRhdGEoKTt2YXIgYT1bXSxjLGUsZXJyLGYsaSxrLGwsbT0nJyxuLG89W10scztmdW5jdGlvbiBkZXRhaWwoaCxhcnJheSl7dmFyIGIsaSxzaW5ndWxhcml0eTtpZihhcnJheSl7by5wdXNoKCc8ZGl2PjxpPicraCsnPC9pPiAnKTthcnJheT1hcnJheS5zb3J0KCk7Zm9yKGk9MDtpPGFycmF5Lmxlbmd0aDtpKz0xKXtpZihhcnJheVtpXSE9PXNpbmd1bGFyaXR5KXtzaW5ndWxhcml0eT1hcnJheVtpXTtvLnB1c2goKGI/JywgJzonJykrc2luZ3VsYXJpdHkpO2I9dHJ1ZTt9fQpvLnB1c2goJzwvZGl2PicpO319CmlmKGRhdGEuZXJyb3JzfHxkYXRhLmltcGxpZWRzfHxkYXRhLnVudXNlZCl7ZXJyPXRydWU7by5wdXNoKCc8ZGl2IGlkPWVycm9ycz48aT5FcnJvcjo8L2k+Jyk7aWYoZGF0YS5lcnJvcnMpe2ZvcihpPTA7aTxkYXRhLmVycm9ycy5sZW5ndGg7aSs9MSl7Yz1kYXRhLmVycm9yc1tpXTtpZihjKXtlPWMuZXZpZGVuY2V8fCcnO28ucHVzaCgnPHA+UHJvYmxlbScrKGlzRmluaXRlKGMubGluZSk/JyBhdCBsaW5lICcrCmMubGluZSsnIGNoYXJhY3RlciAnK2MuY2hhcmFjdGVyOicnKSsnOiAnK2MucmVhc29uLmVudGl0eWlmeSgpKyc8L3A+PHAgY2xhc3M9ZXZpZGVuY2U+JysKKGUmJihlLmxlbmd0aD44MD9lLnNsaWNlKDAsNzcpKycuLi4nOmUpLmVudGl0eWlmeSgpKSsnPC9wPicpO319fQppZihkYXRhLmltcGxpZWRzKXtzPVtdO2ZvcihpPTA7aTxkYXRhLmltcGxpZWRzLmxlbmd0aDtpKz0xKXtzW2ldPSc8Y29kZT4nK2RhdGEuaW1wbGllZHNbaV0ubmFtZSsnPC9jb2RlPiZuYnNwOzxpPicrCmRhdGEuaW1wbGllZHNbaV0ubGluZSsnPC9pPic7fQpvLnB1c2goJzxwPjxpPkltcGxpZWQgZ2xvYmFsOjwvaT4gJytzLmpvaW4oJywgJykrJzwvcD4nKTt9CmlmKGRhdGEudW51c2VkKXtzPVtdO2ZvcihpPTA7aTxkYXRhLnVudXNlZC5sZW5ndGg7aSs9MSl7c1tpXT0nPGNvZGU+PHU+JytkYXRhLnVudXNlZFtpXS5uYW1lKyc8L3U+PC9jb2RlPiZuYnNwOzxpPicrCmRhdGEudW51c2VkW2ldLmxpbmUrJzwvaT4gPGNvZGU+JysKZGF0YS51bnVzZWRbaV1bJ2Z1bmN0aW9uJ10rJzwvY29kZT4nO30Kby5wdXNoKCc8cD48aT5VbnVzZWQgdmFyaWFibGU6PC9pPiAnK3Muam9pbignLCAnKSsnPC9wPicpO30KaWYoZGF0YS5qc29uKXtvLnB1c2goJzxwPkpTT046IGJhZC48L3A+Jyk7fQpvLnB1c2goJzwvZGl2PicpO30KaWYoIW9wdGlvbil7by5wdXNoKCc8YnI+PGRpdiBpZD1mdW5jdGlvbnM+Jyk7aWYoZGF0YS51cmxzKXtkZXRhaWwoIlVSTHM8YnI+IixkYXRhLnVybHMsJzxicj4nKTt9CmlmKHhtb2RlPT09J3N0eWxlJyl7by5wdXNoKCc8cD5DU1MuPC9wPicpO31lbHNlIGlmKGRhdGEuanNvbiYmIWVycil7by5wdXNoKCc8cD5KU09OOiBnb29kLjwvcD4nKTt9ZWxzZSBpZihkYXRhLmdsb2JhbHMpe28ucHVzaCgnPGRpdj48aT5HbG9iYWw8L2k+ICcrCmRhdGEuZ2xvYmFscy5zb3J0KCkuam9pbignLCAnKSsnPC9kaXY+Jyk7fWVsc2V7by5wdXNoKCc8ZGl2PjxpPk5vIG5ldyBnbG9iYWwgdmFyaWFibGVzIGludHJvZHVjZWQuPC9pPjwvZGl2PicpO30KZm9yKGk9MDtpPGRhdGEuZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWRhdGEuZnVuY3Rpb25zW2ldO28ucHVzaCgnPGJyPjxkaXYgY2xhc3M9ZnVuY3Rpb24+PGk+JytmLmxpbmUrJy0nKwpmLmxhc3QrJzwvaT4gJysoZi5uYW1lfHwnJykrJygnKwooZi5wYXJhbT9mLnBhcmFtLmpvaW4oJywgJyk6JycpKycpPC9kaXY+Jyk7ZGV0YWlsKCc8YmlnPjxiPlVudXNlZDwvYj48L2JpZz4nLGYudW51c2VkKTtkZXRhaWwoJ0Nsb3N1cmUnLGYuY2xvc3VyZSk7ZGV0YWlsKCdWYXJpYWJsZScsZlsndmFyJ10pO2RldGFpbCgnRXhjZXB0aW9uJyxmLmV4Y2VwdGlvbik7ZGV0YWlsKCdPdXRlcicsZi5vdXRlcik7ZGV0YWlsKCdHbG9iYWwnLGYuZ2xvYmFsKTtkZXRhaWwoJ0xhYmVsJyxmLmxhYmVsKTt9CmlmKGRhdGEubWVtYmVyKXthPXRvX2FycmF5KGRhdGEubWVtYmVyKTtpZihhLmxlbmd0aCl7YT1hLnNvcnQoKTttPSc8YnI+PHByZSBpZD1tZW1iZXJzPi8qbWVtYmVycyAnO2w9MTA7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe2s9YVtpXTtuPWsubmFtZSgpO2lmKGwrbi5sZW5ndGg+NzIpe28ucHVzaChtKyc8YnI+Jyk7bT0nICAgICc7bD0xO30KbCs9bi5sZW5ndGgrMjtpZihkYXRhLm1lbWJlcltrXT09PTEpe249JzxpPicrbisnPC9pPic7fQppZihpPGEubGVuZ3RoLTEpe24rPScsICc7fQptKz1uO30Kby5wdXNoKG0rJzxicj4qLzwvcHJlPicpO30Kby5wdXNoKCc8L2Rpdj4nKTt9fQpyZXR1cm4gby5qb2luKCcnKTt9O2l0c2VsZi5qc2xpbnQ9aXRzZWxmO2l0c2VsZi5lZGl0aW9uPScyMDEwLTAxLTEyJztyZXR1cm4gaXRzZWxmO30oKSk7
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLkRldmVsRnJlZENvbnRhaW5lcjpob3ZlciB7CiAgICAtd2Via2l0LW9wYWNpdHk6IDEuMCAhaW1wb3J0YW50OwogICAgLW1vei1vcGFjaXR5OiAxLjAgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDEuMCAhaW1wb3J0YW50Owp9CgouRGV2ZWxGcmVkQm94IHsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCB7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgYm9yZGVyLXRvcDogMHB4OwogICAgZGlzcGxheTogbm9uZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQuRXhwYW5kZWQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggewogICAgZGlzcGxheTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CiAgICBwYWRkaW5nOiA1cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW1zLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1vLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCBpbnB1dCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiA5OCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgZm9udC1zaXplOiAxMXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIGkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDIuNSU7CiAgICB0b3A6IDlweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiAjY2NjOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoOmhvdmVyIGkgewogICAgY29sb3I6ICMzMzM7Cn0KCi5EZXZlbEZyZWRCb3ggLnN0cm9uZywKLkRldmVsRnJlZEJveCAuc3Ryb25nICogewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzI1NTU2NTsKICAgIGNvbG9yOiAjZmZmOwogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nOiA2cHggN3B4OwogICAgY3Vyc29yOiBtb3ZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kOiAjMjU1NTY1Owp9CgouRGV2ZWxGcmVkQm94LkNvbGxhcHNlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4Owp9CgouRGV2ZWxGcmVkQm94IGgxIC5GcmVkVG9vbEJhciB7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cn0KCiNGcmVkSlNMaW50U2NyaXB0cyB7CiAgICBwYWRkaW5nOiA1cHg7Cn0KCi5GcmVkSlNMaW50U3VjY2Vzc2Z1bCB7CiAgICBjb2xvcjogZ3JlZW47Cn0KCi5GcmVkSlNMaW50RXJyb3IgewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Cgpib2R5ICNGcmVkSFRNTENoZWNrUmVzdWx0cyBwICwKYm9keSAjRnJlZEhUTUxDaGVja1Jlc3VsdHMgcHJlLApib2R5ICNGcmVkSlNMaW50U2NyaXB0cyBwICwKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcHJlIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgewogICAgcGFkZGluZzogMTVweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGgxIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjogMHB4IDBweCAxMHB4IDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHVsIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyAuQ2FsbEZvckFjdGlvbiB7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBzcGFuIHsKICAgIGNvbG9yOiAjNzc3Nzc3OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIzcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGxhYmVsIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaTpob3ZlciBsYWJlbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgYSB7CiAgICBjb2xvcjogIzAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA2cHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGQsCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0aCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYWFhOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOm50aC1jaGlsZChvZGQpIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiAwcHg7Cn0KCi5EZXZlbEZyZWRCb3ggLkZyZWRFbGVtZW50TGlzdCB7CiAgICBwYWRkaW5nOiA1cHggM3B4IDBweCA1cHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBtYXJnaW46IDBweCAzcHggNXB4IDBweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW8tYm9yZGVyLXJhZGl1czogM3B4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuIGkgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdG9wOiAxcHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgY29sb3I6ICMwMDA7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuLldhcm5pbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItY29sb3I6ICNDRTAwMDA7Cn0KCi5GcmVkTW9ub1NwYWNlIHsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZCB7CiAgICBwYWRkaW5nOiAzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Cgp0YWJsZS5GcmVkU3dpdGNoVGFibGUgdGQ6Zmlyc3QtY2hpbGQgewogICAgd2lkdGg6IDQwcHg7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZDpsYXN0LWNoaWxkIHsKICAgIHBhZGRpbmctbGVmdDogMTBweDsKfQoKLkZyZWRTd2l0Y2ggYSB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAzMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKICAgIGhlaWdodDogMTZweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZQp9CgouRnJlZFN3aXRjaCBhIHNwYW4gewogICAgd2lkdGg6IDE1cHg7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiAxM3B4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTFweDsKICAgIHRvcDogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47CiAgICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKfQoKLkZyZWRTd2l0Y2guT24gYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OwogICAgYm9yZGVyLWNvbG9yOiAjMzMzOwp9CgouRnJlZFN3aXRjaC5PbiBzcGFuIHsKICAgIHJpZ2h0OiAtMXB4OwogICAgbGVmdDogYXV0bzsKfQ==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLkRldmVsRnJlZENvbnRhaW5lcjpob3ZlciB7CiAgICAtd2Via2l0LW9wYWNpdHk6IDEuMCAhaW1wb3J0YW50OwogICAgLW1vei1vcGFjaXR5OiAxLjAgIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDEuMCAhaW1wb3J0YW50Owp9CgouRGV2ZWxGcmVkQm94IHsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCB7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgYm9yZGVyLXRvcDogMHB4OwogICAgZGlzcGxheTogbm9uZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQuRXhwYW5kZWQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggewogICAgZGlzcGxheTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7CiAgICBwYWRkaW5nOiA1cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggIzc3NywgaW5zZXQgLTFweCAtMXB4IDNweCAjNzc3OwogICAgLW1zLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1vLWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCBpbnB1dCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiA5OCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgZm9udC1zaXplOiAxMXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIGkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDIuNSU7CiAgICB0b3A6IDlweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiAjY2NjOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoOmhvdmVyIGkgewogICAgY29sb3I6ICMzMzM7Cn0KCi5EZXZlbEZyZWRCb3ggLnN0cm9uZywKLkRldmVsRnJlZEJveCAuc3Ryb25nICogewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzI1NTU2NTsKICAgIGNvbG9yOiAjZmZmOwogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nOiA2cHggN3B4OwogICAgY3Vyc29yOiBtb3ZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLkRldmVsRnJlZEJveC5FeHBhbmRlZCBoMSB7CiAgICBiYWNrZ3JvdW5kOiAjMjU1NTY1Owp9CgouRGV2ZWxGcmVkQm94LkNvbGxhcHNlZCBoMSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4Owp9CgouRGV2ZWxGcmVkQm94IGgxIC5GcmVkVG9vbEJhciB7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIGkgewogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cn0KCiNGcmVkSlNMaW50U2NyaXB0cyB7CiAgICBwYWRkaW5nOiA1cHg7Cn0KCi5GcmVkSlNMaW50U3VjY2Vzc2Z1bCB7CiAgICBjb2xvcjogZ3JlZW47Cn0KCi5GcmVkSlNMaW50RXJyb3IgewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Cgpib2R5ICNGcmVkSFRNTENoZWNrUmVzdWx0cyBwICwKYm9keSAjRnJlZEhUTUxDaGVja1Jlc3VsdHMgcHJlLApib2R5ICNGcmVkSlNMaW50U2NyaXB0cyBwICwKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcHJlIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgewogICAgcGFkZGluZzogMTVweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGgxIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjogMHB4IDBweCAxMHB4IDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHVsIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyAuQ2FsbEZvckFjdGlvbiB7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBzcGFuIHsKICAgIGNvbG9yOiAjNzc3Nzc3OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIzcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGxhYmVsIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaTpob3ZlciBsYWJlbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgYSB7CiAgICBjb2xvcjogIzAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA2cHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGQsCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0aCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYWFhOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOm50aC1jaGlsZChvZGQpIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiAwcHg7Cn0KCi5EZXZlbEZyZWRCb3ggLkZyZWRFbGVtZW50TGlzdCB7CiAgICBwYWRkaW5nOiA1cHggM3B4IDBweCA1cHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBtYXJnaW46IDBweCAzcHggNXB4IDBweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW8tYm9yZGVyLXJhZGl1czogM3B4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuIGkgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdG9wOiAxcHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgY29sb3I6ICMwMDA7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiBhOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkZyZWRFbGVtZW50TGlzdCBzcGFuLldhcm5pbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItY29sb3I6ICNDRTAwMDA7Cn0KCi5GcmVkTW9ub1NwYWNlIHsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZCB7CiAgICBwYWRkaW5nOiAzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Cgp0YWJsZS5GcmVkU3dpdGNoVGFibGUgdGQ6Zmlyc3QtY2hpbGQgewogICAgd2lkdGg6IDQwcHg7Cn0KCnRhYmxlLkZyZWRTd2l0Y2hUYWJsZSB0ZDpsYXN0LWNoaWxkIHsKICAgIHBhZGRpbmctbGVmdDogMTBweDsKfQoKLkZyZWRTd2l0Y2ggYSB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHdpZHRoOiAzMHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKICAgIGhlaWdodDogMTZweDsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZQp9CgouRnJlZFN3aXRjaCBhIHNwYW4gewogICAgd2lkdGg6IDE1cHg7CiAgICBoZWlnaHQ6IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiAxM3B4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogLTFweDsKICAgIHRvcDogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47CiAgICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluOwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKfQoKLkZyZWRTd2l0Y2guT24gYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OwogICAgYm9yZGVyLWNvbG9yOiAjMzMzOwp9CgouRnJlZFN3aXRjaC5PbiBzcGFuIHsKICAgIHJpZ2h0OiAtMXB4OwogICAgbGVmdDogYXV0bzsKfQ==
JVBERi0xLjQKJaqrrK0KMSAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDIuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMi4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTgwNzI0MTA1ODM4KzAyJzAwJykKPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAzIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO2ZZ1BUWRaA73uvc6Chu2kyNDlJlNCA5JwkSBYV6G4yLTQ5mJDBERhBRCQpgogCDjg6BBlFRRQDoqCAeRoZBJRxcBRRUVnAH7NVu7VbW7W1f7bPj/e+OufWO+e+ulXvq3oAyJDi2QnJsD4ACbwUvq+zHTMoOISJvQ9wgAxIgAow4ezkRFtvbw+wHCtrwT/E+1EArdzv6fzz+r8MEieBxwEAoi9zLIebzF7mncsczUngrOSnVzg9JTEFANh7men85QGXmbPCEd84Y4WjvnHR6ho/X/tlPgoAjhS1yoRTKxyxytSuFWZH8xMAkO5bXq/CTuQvP196pZfitxlWQ3RlP8woLo/LD0/hcpj/4db+ffxdL3Ty8sv/rzf4H/dZOTvf6K3l6pmAGBV/5baWAcB6DQBS8ldO5TAAlN0AdPT8lYs4DkBnCQCSz9ip/LRvOdTq7IAAKIAOpIA8UAYaQAcYAlNgAWyAI3ADXsAPBIPNgA2iQQLgg3SQA3aBfFAISsBBUAVqQQNoAq3gDOgE58FlcA3cAnfBCHgMBGASvAJz4D1YhCAIC5EhGiQFKUCqkDZkCLEgK8gR8oB8oWAoDIqCeFAqlAPthgqhUqgKqoOaoJ+gc9Bl6AY0BD2ExqEZ6E/oE4zAJJgOy8FqsB7Mgm1hd9gP3gRHwUlwFpwH74Mr4Hr4FNwBX4ZvwSOwAH4FzyMAISIMRBHRQViIPeKFhCCRCB/ZjhQg5Ug90op0I/3IPUSAzCIfURgUDcVE6aAsUC4ofxQblYTajipCVaFOojpQfah7qHHUHOormoyWRWujzdGu6CB0FDodnY8uRzei29FX0SPoSfR7DAbDwKhjTDEumGBMLCYbU4Q5jGnDXMIMYSYw81gsVgqrjbXEemHDsSnYfGwl9hT2InYYO4n9gCPi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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE4LTA3LTI0VDEwOjU4OjM4KzAyOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMDctMjRUMTA6NTg6MzgrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTA3LTI0VDEwOjU4OjM4KzAyOjAwPC94bXA6Q3JlYXRlRGF0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MiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDQxIDAgUgo+PgplbmRvYmoKNDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NzkuNjI5IDExNy4xOSA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMS42ODkgNjc5LjYyOSA1MzkuOTk5IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NjcuNjI5IDE1My44NTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NyAwIFIKL0ggL0kKCj4+CmVuZG9iago0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY2Ny42MjkgNTM5Ljk5OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY1NS42MjkgMTc2LjYwNiA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjU1LjYyOSA1MzkuOTk3IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA2NTguNCBudWxsXQo+PgplbmRvYmoKNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAxNDYuMDU3IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NDMuNjI5IDUzOS45OTggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDYwNC4wIG51bGxdCj4+CmVuZG9iago1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzEuNjI5IDE3Ni4yNDcgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYzMS42MjkgNTM5Ljk5OCA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNTYxLjYgbnVsbF0KPj4KZW5kb2JqCjYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxOS42MjkgMjA1LjIzMiA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjE5LjYyOSA1MzkuOTk4IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjUgMCBSIC9YWVogNzIuMCA1MTkuMiBudWxsXQo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAxNTUuNzc4IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MDcuNjI5IDUzOS45OTggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MiAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDQ3Ni44IG51bGxdCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1OTUuNjI5IDE2OC4wIDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1OTUuNjI5IDUzOS45OTcgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDQzNC40IG51bGxdCj4+CmVuZG9iago2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDE4Ni4yMzggNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU4My42MjkgNTM5Ljk5NyA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgMzkyLjAgbnVsbF0KPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3MS42MjkgMTY2Ljc2NSA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTcxLjYyOSA1MzkuOTk3IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NTkuNjI5IDE0OS4zOSA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTU5LjYyOSA1MzkuOTk4IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQ3LjYyOSAxOTkuMDA2IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NDcuNjI5IDUzOS45OTggNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MzUuNjI5IDE5NC42NDEgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDUzNS42MjkgNTM5Ljk5OCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTIzLjYyOSAxNjEuNzg0IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MjMuNjI5IDUzOS45OTggNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTEuNjI5IDI2Mi4yMjcgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA4IDUxMS42MjkgNTQwLjE2OCA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDk5LjYyOSAxMzYuNzY4IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0OTkuNjI5IDUzOS45OTggNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDY3OS4wNjUgbnVsbF0KPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ4Ny42MjkgMTQ5LjU1MyA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0NzUuNjI5IDE1MC4zNTcgNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVy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MTYgMCBSCiAgL0ltNCAxOCAwIFIKPj4KICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA0IDAgUiA+Pgo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9OdW1zIFswIDw8IC9TIC9EID4+IDEgPDwgL1MgL3IgL1N0IDIgPj4gMiA8PCAvUyAvciAvU3QgMyA+PiAzIDw8IC9TIC9EID4+XSA+PgplbmRvYmoKeHJlZgowIDEzMQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDE0NSAwMDAwMCBuIAowMDAwMDAyNjgzIDAwMDAwIG4gCjAwMDAwMDI3MDMgMDAwMDAgbiAKMDAwMDAwMjczNiAwMDAwMCBuIAowMDAwMDAzNjgzIDAwMDAwIG4gCjAwMDAwMDM3MDIgMDAwMDAgbiAKMDAwMDA1MjIyNyAwMDAwMCBuIAowMDAwMDUyMjQ4IDAwMDAwIG4gCjAwMDAxMDU1MDggMDAwMDAgbiAKMDAwMDEwNTUzMCAwMDAwMCBuIAowMDAwMTA2MDc5IDAwMDAwIG4gCjAwMDAxMDYwOTkgMDAwMDAgbiAKMDAwMDE5MTU0MiAwMDAwMCBuIAowMDAwMTkxMzE2IDAwMDAwIG4gCjAwMDAxMDYyOTMgMDAwMDAgbiAKMDAwMDExMjQ2NCAwMDAwMCBuIAowMDAwMTEyNDg1IDAwMDAwIG4gCjAwMDAxMTk2NjUgMDAwMDAgbiAKMDAwMDExOTY4NiAwMDAwMCBuIAowMDAwMTIwMTc3IDAwMDAwIG4gCjAwMDAxMjAxOTcgMDAwMDAgbiAKMDAwMDEyMDM5MSAwMDAwMCBuIAowMDAwMTIxNjIzIDAwMDAwIG4gCjAwMDAxMjE2NDQgMDAwMDAgbiAKMDAwMDEyMTgzOCAwMDAwMCBuIAowMDAwMTIxOTMzIDAwMDAwIG4gCjAwMDAxMjIwNjkgMDAwMDAgbiAKMDAwMDEyMzI1NCAwMDAwMCBuIAowMDAwMTIzMjc1IDAwMDAwIG4gCjAwMDAxMjMzMDIgMDAwMDAgbiAKMDAwMDEyMzUxMyAwMDAwMCBuIAowMDAwMTI0MTU1IDAwMDAwIG4gCjAwMDAxMjQxNzUgMDAwMDAgbiAKMDAwMDEyNDM2OSAwMDAwMCBuIAowMDAwMTI1NjU2IDAwMDAwIG4gCjAwMDAxMjU2NzcgMDAwMDAgbiAKMDAwMDEyNTg3MSAwMDAwMCBuIAowMDAwMTI2NzMwIDAwMDAwIG4gCjAwMDAxMjY3NTAgMDAwMDAgbiAKMDAwMDEyNjk0NCAwMDAwMCBuIAowMDAwMTI4NTYzIDAwMDAwIG4gCjAwMDAxMjg1ODQgMDAwMDAgbiAKMDAwMDEyODc3OCAwMDAwMCBuIAowMDAwMTI4ODU2IDAwMDAwIG4gCjAwMDAxMjg5OTIgMDAwMDAgbiAKMDAwMDEyOTEzMiAwMDAwMCBuIAowMDAwMTI5MjEwIDAwMDAwIG4gCjAwMDAxMjkzNDcgMDAwMDAgbiAKMDAwMDEyOTQ4NyAwMDAwMCBuIAowMDAwMTI5NTY1IDAwMDAwIG4gCjAwMDAxMjk3MDMgMDAwMDAgbiAKMDAwMDEyOTg0MyAwMDAwMCBuIAowMDAwMTI5OTIxIDAwMDAwIG4gCjAwMDAxMzAwNTkgMDAwMDAgbiAKMDAwMDEzMDE5OSAwMDAwMCBuIAowMDAwMTMwMjc3IDAwMDAwIG4gCjAwMDAxMzA0MTUgMDAwMDAgbiAKMDAwMDEzMDU1NSAwMDAwMCBuIAowMDAwMTMwNjMzIDAwMDAwIG4gCjAwMDAxMzA3NzEgMDAwMDAgbiAKMDAwMDEzMDkxMSAwMDAwMCBuIAowMDAwMTMwOTg5IDAwMDAwIG4gCjAwMDAxMzExMjcgMDAwMDAgbiAKMDAwMDEzMTI2NyAwMDAwMCBuIAowMDAwMTMxMzQ1IDAwMDAwIG4gCjAwMDAxMzE0ODEgMDAwMDAgbiAKMDAwMDEzMTYyMSAwMDAwMCBuIAowMDAwMTMxNjk5IDAwMDAwIG4gCjAwMDAxMzE4MzcgMDAwMDAgbiAKMDAwMDEzMTk3NyAwMDAwMCBuIAowMDAwMTMyMDU1IDAwMDAwIG4gCjAwMDAxMzIxOTMgMDAwMDAgbiAKMDAwMDEzMjMzMyAwMDAwMCBuIAowMDAwMTMyNDExIDAwMDAwIG4gCjAwMDAxMzI1NDcgMDAwMDAgbiAKMDAwMDEzMjY4NyAwMDAwMCBuIAowMDAwMTMyNzY1IDAwMDAwIG4gCjAwMDAxMzI5MDMgMDAwMDAgbiAKMDAwMDEzMzA0MyAwMDAwMCBuIAowMDAwMTMzMTIxIDAwMDAwIG4gCjAwMDAxMzMyNTkgMDAwMDAgbiAKMDAwMDEzMzM5OSAwMDAwMCBuIAowMDAwMTMzNDc3IDAwMDAwIG4gCjAwMDAxMzM2MTQgMDAwMDAgbiAKMDAwMDEzMzc1NCAwMDAwMCBuIAowMDAwMTMzODMyIDAwMDAwIG4gCjAwMDAxMzM5NzAgMDAwMDAgbiAKMDAwMDEzNDExMCAwMDAwMCBuIAowMDAwMTM0MTg4IDAwMDAwIG4gCjAwMDAxMzQzMjUgMDAwMDAgbiAKMDAwMDEzNDQ2NSAwMDAwMCBuIAowMDAwMTM0NTQ1IDAwMDAwIG4gCjAwMDAxMzQ2ODMgMDAwMDAgbiAKMDAwMDEzNDgyMyAwMDAwMCBuIAowMDAwMTM0OTAxIDAwMDAwIG4gCjAwMDAxMzUwMzggMDAwMDAgbiAKMDAwMDEzNTE3OCAwMDAwMCBuIAowMDAwMTQ5MTkzIDAwMDAwIG4gCjAwMDAxNDkyMTUgMDAwMDAgbiAKMDAwMDE0OTQ4OCAwMDAwMCBuIAowMDAwMTQ5NzAxIDAwMDAwIG4gCjAwMDAxNDk5NjYgMDAwMDAgbiAKMDAwMDE2MzI4MSAwMDAwMCBuIAowMDAwMTYzMjU4IDAwMDAwIG4gCjAwMDAxNjMzODEgMDAwMDAgbiAKMDAwMDE2MzQwMSAwMDAwMCBuIAowMDAwMTY0MDIzIDAwMDAwIG4gCjAwMDAxNjM1NjYgMDAwMDAgbiAKMDAwMDE2NDU3NCAwMDAwMCBuIAowMDAwMTY0NTk1IDAwMDAwIG4gCjAwMDAxNjQ4NTUgMDAwMDAgbiAKMDAwMDE4MDM2MyAwMDAwMCBuIAowMDAwMTgwMzQwIDAwMDAwIG4gCjAwMDAxODA0NjggMDAwMDAgbiAKMDAwMDE4MDQ4OCAwMDAwMCBuIAowMDAwMTgxMTYzIDAwMDAwIG4gCjAwMDAxODA2NDggMDAwMDAgbiAKMDAwMDE4MTc4NiAwMDAwMCBuIAowMDAwMTgxODA3IDAwMDAwIG4gCjAwMDAxODIwNjkgMDAwMDAgbiAKMDAwMDE5MDI2MyAwMDAwMCBuIAowMDAwMTkwMjQxIDAwMDAwIG4gCjAwMDAxOTAzNjEgMDAwMDAgbiAKMDAwMDE5MDM4MSAwMDAwMCBuIAowMDAwMTkwODcyIDAwMDAwIG4gCjAwMDAxOTA1NDUgMDAwMDAgbiAKMDAwMDE5MTI5NSAwMDAwMCBuIAowMDAwMTkxNDMzIDAwMDAwIG4gCjAwMDAxOTE3NzIgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDEyOSAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPDFGRjlCMENEMjBDQTI2M0I2RTA1QUI2OTY1M0MxQ0FCPiA8MUZGOUIwQ0QyMENBMjYzQjZFMDVBQjY5NjUzQzFDQUI+XQogIC9TaXplIDEzMQo+PgpzdGFydHhyZWYKMTkxODcxCiUlRU9GCg==