ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlbHAudHh0IGIvcnVudGltZS9kb2MvaGVscC50eHQKaW5kZXggMGU3NzE3OS4uNjNmMWVmMyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGVscC50eHQKKysrIGIvcnVudGltZS9kb2MvaGVscC50eHQKQEAgLTEsNCArMSw0IEBACi0qaGVscC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEp1bCAwNQorKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMzAKIAogCQkJVklNIC0gbWFpbiBoZWxwIGZpbGUKIAkJCQkJCQkJCSBrCkBAIC0xODksMTIgKzE4OSw2IEBACiB8cGlfZXhwbC50eHR8CUZpbGUgZXhwbG9yZXIKIAogTE9DQUwgQURESVRJT05TOgkJCQkqbG9jYWwtYWRkaXRpb25zKgotfGVuZ3NwY2hrLnR4dHwJRW5nbGlzaCBTcGVsbGluZyBDaGVja2VyICAgKHY1NykJTWF5IDI1LCAyMDA0Ci18ZXhhbXBsZS50eHR8CUV4YW1wbGUgZm9yIGEgbG9jYWxseSBhZGRlZCBoZWxwIGZpbGUKLXxtYXRjaGl0LnR4dHwgICBFeHRlbmRlZCAiJSIgbWF0Y2hpbmcKLXx0ZXN0LnR4dHwJVGVzdGluZyB0aGUgaOlscCBj9m1t5W5kIG70dwotfHR5cGVjb3JyLnR4dHwJUGx1Z2luIGZvciBjb3JyZWN0aW5nIHR5cGluZyBtaXN0YWtlcwotfGhlbHBwLnR4dHwJRHVtbXkgbGluZSB0byBhdm9pZCBhbiBlcnJvciBtZXNzYWdlCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKmJhcnMqCQlCYXJzIGV4YW1wbGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGFuZy9tZW51X3BsX3BsLnV0Zi04LnZpbSBiL3J1bnRpbWUvbGFuZy9tZW51X3BsX3BsLnV0Zi04LnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2UxZDIyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9sYW5nL21lbnVfcGxfcGwudXRmLTgudmltCkBAIC0wLDAgKzEsMjYxIEBACisiIE1lbnUgVHJhbnNsYXRpb25zOglQb2xpc2gKKyIgTWFpbnRhaW5lcjoJCVJhZmFsIE0uIFN1bGVqbWFuIDxybXNAcG9jenRhLm9uZXQucGw+CisiIEluaXRpYWwgVHJhbnNsYXRpb246CU1hcmNpbiBEYWxlY2tpIDxkYWxlY2tpQGNzLm5ldC5wbD4KKyIgTGFzdCBDaGFuZ2U6CTA2IFNlcCAyMDAxCisKKyIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCitpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKKyAgZmluaXNoCitlbmRpZgorbGV0IGRpZF9tZW51X3RyYW5zID0gMQorCitzY3JpcHRlbmNvZGluZyBpc28tODg1OS0yCisKKyIgSGVscCBtZW51CittZW51dHJhbnMgJkhlbHAJCQlQbyZtb2MKK21lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JJlNwaXNcIFRyZbZjaTxUYWI+PEYxPgorbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzCSZPZG5vtm5pa2lcIEpUWgorbWVudXRyYW5zICZDcmVkaXRzCQlQbyZkemnqa293YW5pYQorbWVudXRyYW5zICZVc2VyXCBNYW51YWwgICAgUG9kcupjem5pa1wgJnW/eXRrb3duaWthCittZW51dHJhbnMgQ28mcHlpbmcJCSZLb3Bpb3dhbmllCittZW51dHJhbnMgJlZlcnNpb24JCSZXZXJzamEKK21lbnV0cmFucyAmQWJvdXQJCW9cICZBcGxpa2FjamkKKworIiBGaWxlIG1lbnUKK21lbnV0cmFucyAmRmlsZQkJCQkmUGxpaworbWVudXRyYW5zICZPcGVuXC5cLlwuPFRhYj46ZQkJJk90d/NyelwuXC5cLjxUYWI+OmUKK21lbnV0cmFucyBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCU90d/NyelwgelwgJnBvZHppYbNlbVwuXC5cLjxUYWI+OnNwCittZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcgICAgICAgJk5vd3k8VGFiPjplbmV3CittZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJCSZaYW1rbmlqPFRhYj46Y2xvc2UKK21lbnV0cmFucyAmU2F2ZTxUYWI+OncJCQlaYSZwaXN6PFRhYj46dworbWVudXRyYW5zIFNhdmVcICZBc1wuXC5cLjxUYWI+OnNhdglaYXBpc3pcICZqYWtvXC5cLlwuPFRhYj46c2F2CittZW51dHJhbnMgU3BsaXRcICZEaWZmXCB3aXRoXC5cLlwuCVBvZHppZWxcIG5hXCBkaWZmLWFcIG1p6mR6eVwuXC5cLgorbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JUG9kemllbFwgs2F0YW5lXCBwcnplelwuXC5cLgorbWVudXRyYW5zICZQcmludAkJCSZEcnVrdWoKK21lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCQlaYXBpc3pcIGlcIHcmeWpkvDxUYWI+OndxYQorbWVudXRyYW5zIEUmeGl0PFRhYj46cWEJCQkmV3lqtmNpZTxUYWI+OnFhCisKKyIgRWRpdCBtZW51CittZW51dHJhbnMgJkVkaXQJCQkJJkVkeWNqYQorbWVudXRyYW5zICZVbmRvPFRhYj51CQkJJkNvZm5pajxUYWI+dQorbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZQb27zdzxUYWI+XlIKK21lbnV0cmFucyBSZXAmZWF0PFRhYj5cLgkJUCZvd3Tzcno8VGFiPlwuCittZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkJVyZ5dG5pajxUYWI+Iit4CittZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJCSZLb3BpdWo8VGFiPiIreQorbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJJldrbGVqPFRhYj4iK2dQCittZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkJV3N0YXdcIHAmcnplZDxUYWI+W3AKK21lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJCVdzdGF3XCBwJm88VGFiPl1wCittZW51dHJhbnMgJlNlbGVjdFwgYWxsPFRhYj5nZ1ZHCQlaJmF6bmFjelwgY2Gzb7bmPFRhYj5nZ1ZHCittZW51dHJhbnMgJkZpbmRcLlwuXC4JCQkmU3p1a2FqXC5cLlwuCittZW51dHJhbnMgJkZpbmQ8VGFiPi8JCQkmU3p1a2FqPFRhYj4vCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLgkmWmFtaWXxXC5cLlwuCittZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZTxUYWI+OiVzCSZaYW1pZfE8VGFiPjolcworbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2UJCSZaYW1pZfEKK21lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46cwkmWmFtaWXxPFRhYj46cworbWVudXRyYW5zIE9wdGlvbnNcLlwuXC4JCQlPcGNqZVwuXC5cLgorbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CQlVc3Rhd2llbmlhCittZW51dHJhbnMgJkdsb2JhbFwgU2V0dGluZ3MJCVVzdGF3aWVuaWFcICZnbG9iYWxuZQorbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJVXN0YXdpZW5pYVwgZGxhXCBwbGlrdQorbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhCQkJJk51bWVyb3dhbmllXCB3aWVyc3p5PFRhYj46c2V0XCBudSEKK21lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJCQkJVHJ5YlwgJmxpc3Rvd2FuaWE8VGFiPjpzZXRcIGxpc3QhCittZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmV3JhcDxUYWI+OnNldFwgd3JhcCEJCQlaYSZ3aWphbmllXCB3aWVyc3p5PFRhYj46c2V0XCB3cmFwIQorbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCQkJo2FtYW5pZVwgd2llJnJzemE8VGFiPjpzZXRcIGxiciEKK21lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJCQlSb3p3aWphbmkmZVwgdGFidWxhdG9y83c8VGFiPjpzZXRcIGV0IQorbWVudXRyYW5zIFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJCQkmQXV0b21hdHljem5lXCB3Y2nqY2lhPFRhYj46c2V0XCBhaSEKK21lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkJCVdjaepjaWFcICZDPFRhYj46c2V0XCBjaW4hCittZW51dHJhbnMgJlNoaWZ0d2lkdGgJCQkJJlN6ZXJva2+25lwgd2Np6mNpYQorbWVudXRyYW5zIFRlJnh0XCBXaWR0aFwuXC5cLgkJCUSzdWdvtuZcIGxpbmlpXC5cLlwuCittZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkJCSZGb3JtYXRcIHBsaWt1XC5cLlwuCittZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJCQkJUm96bWlhclwgJnRhYnVsYWNqaQorbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCQlaZXN0YXd5XCBrb2xvcvN3CittZW51dHJhbnMgJktleW1hcAkJCVVrs2FkeVwga2xhd2lhdHVyeQorbWVudXRyYW5zIE5vbmUJCQkJv2FkZW4KK21lbnV0cmFucyBhY2NlbnRzCQkJYWtjZW50eQorbWVudXRyYW5zIGhlYnJldwkJCWhlYnJhanNraQorbWVudXRyYW5zIGhlYnJld3AJCQloZWJyYWpza2lcIHAKK21lbnV0cmFucyBydXNzaWFuLWpjdWtlbgkJcm9zeWpza2ktamN1a2VuCittZW51dHJhbnMgcnVzc2lhbi1qY3VrZW53aW4JCXJvc3lqc2tpLWpjdWtlbndpbgorbWVudXRyYW5zIHJ1c3NpYW4teWF3ZXJ0eSAgCQlyb3N5anNraS15YXdlcnR5CisKK21lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJUG9ka3JltmxhbmllXCAmd3pvcmPzdzxUYWI+OnNldFwgaGxzIQorCittZW51dHJhbnMgVG9nZ2xlXCAmSWdub3JlLWNhc2U8VGFiPjpzZXRcIGljIQkmSWdub3Jvd2FuaWVcIHdpZWxrb7ZjaTxUYWI+OnNldFwgaWMhCittZW51dHJhbnMgVG9nZ2xlXCAmU2hvd21hdGNoPFRhYj46c2V0XCBzbSEJCSZQb2thenl3YW5pZVwgcGFzdWqxY3ljaDxUYWI+OnNldFwgc20hCisKK21lbnV0cmFucyAmQ29udGV4dFwgbGluZXMJV2llcnN6ZVwgJmtvbnRla3N0b3dlCittZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJT2Jy82JrYVwgJndpcnR1YWxuYQorCittZW51dHJhbnMgTmV2ZXIJCQlOaWdkeQorbWVudXRyYW5zIEJsb2NrXCBTZWxlY3Rpb24JWmF6bmFjemFuaWVcIHpha3Jlc3UKK21lbnV0cmFucyBJbnNlcnRcIG1vZGUJCVRyeWJcIHdwcm93YWR6YW5pYQorbWVudXRyYW5zIEJsb2NrXCBhbmRcIEluc2VydAlaYWtyZXNcIGlcIHdwcm93YWR6YW5pZQorbWVudXRyYW5zIEFsd2F5cwkJWmF3c3plCisKK21lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQlUcnliXCB3cHJvd2FkemFuaWE8VGFiPjpzZXRcIGltIQorbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JU2NpZb9rYVwgcG9zenVraXdhbmlhXC5cLlwuCittZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4JUGxpa2lcIHRhZ/N3XC5cLlwuCisKKworIgorIiBHVUkgb3B0aW9ucworbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIJCVBhc2VrXCBuYXJ66mR6aQorbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCURvbG55XCBwcnpld2lqYWN6CittZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCSZMZXd5XCBwcnpld2lqYWN6CittZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhcglQJnJhd3lcIHByemV3aWphY3oKKworIiBQcm9ncmFtbWluZyBtZW51CittZW51dHJhbnMgJlRvb2xzCQkJJk5hcnrqZHppYQorbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JJlNrb2N6XCBkb1wgdGFnYTxUYWI+Z15dCittZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCQlTa29rXCB3XCAmdHmzPFRhYj5eVAorbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJJlR383J6XCBwbGlrXCB0YWfzdworIiBGb2xkaW5nCittZW51dHJhbnMgJkZvbGRpbmcJCQkJJlp3aWphbmllCittZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkJCSZad2nxL3Jvendp8TxUYWI+emkKK21lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJCSZMaW5pYVwga3Vyc29yYTxUYWI+enYKK21lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4CQkJJlR5bGtvXCBsaW5pYVwga3Vyc29yYTxUYWI+ek16eAorbWVudXRyYW5zIEMmbG9zZVwgbW9yZVwgZm9sZHM8VGFiPnptCQkJCVp3afFcIHdp6mNlajxUYWI+em0KK21lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNCQkJCVomd2nxXCB3c3p5c3RraWU8VGFiPnpNCittZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCQkJCVJvendp8Vwgd3N6eXN0a2llPFRhYj56UgorbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIJCQkJUiZvendp8Vwgd2nqY2VqPFRhYj56cgorCittZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJCQkJVCZ383J6XCB6YXdpbmnqY2llPFRhYj56ZgorbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkJCVUmc3XxXCB6YXdpbmnqY2llPFRhYj56ZAorbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQkJCSZVc3XxXCB3c3p5c3RraWVcIHphd2luaepjaWE8VGFiPnpECittZW51dHJhbnMgRm9sZFwgY29sdW1uXCAmd2lkdGgJCQkJU3plcm9rb7bmXCBrb2x1bW55XCB6YSZ3aW5p6uYKK21lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQlNZSZ0b2RhXCB6YXdpamFuaWEKK21lbnV0cmFucyBNJmFudWFsCQkJJlLqY3puaWUKK21lbnV0cmFucyBJJm5kZW50CQkJVyZjaepjaWUKK21lbnV0cmFucyBFJnhwcmVzc2lvbiBXJnlyYXplbmllCittZW51dHJhbnMgUyZ5bnRheAkJCVMma7NhZG5pYQorbWVudXRyYW5zIE1hJnJrZXIJCQlabiZhY3puaWsKKworIiBEaWZmCittZW51dHJhbnMgJlVwZGF0ZQkJCQkJJk9ktndpZb8KK21lbnV0cmFucyAmR2V0XCBCbG9jawkJCSZQb2JpZXJ6XCBibG9rCittZW51dHJhbnMgJlB1dFwgQmxvY2sJCQkmV3N0YXdcIGJsb2sKKworIiBNYWtlIGFuZCBzdHVmZi4uLgorbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZQkJTSZha2U8VGFiPjptYWtlCittZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQkmUG9rYb9cIGKz6mR5PFRhYj46Y2wKK21lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJVyZ5bGljelwgcG93aWFkb21pZW5pYTxUYWI+OmNsIQorbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQkmTmFzdOpwbnlcIGKzsWQ8VGFiPjpjbgorbWVudXRyYW5zICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcAkmUG9wcnplZG5pXCBis7FkPFRhYj46Y3AKK21lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCSZTdGFyc3phXCBsaXN0YTxUYWI+OmNvbGQKK21lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CU4mb3dzemFcIGxpc3RhPFRhYj46Y25ldworbWVudXRyYW5zIEVycm9yXCAmV2luZG93ICBPa25vXCBrb211Jm5pa2F083cKK21lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkJCUFrdCZ1YWxpenVqPFRhYj46Y3dpbgorbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkJCSZaYW1rbmlqPFRhYj46Y2Nsb3NlCittZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbgkJCSZPdHfzcno8VGFiPjpjb3BlbgorCittZW51dHJhbnMgJlNldFwgQ29tcGlsZXIJCQkJVSZzdGF3XCBrb21waWxhdG9yCittZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZCAgICAgS29keVwgc3plc25hc3Rrb3dlPFRhYj46JSF4eGQKK21lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtciAgICAgWnd5a7N5XCB0ZWtzdDxUYWI+OiUheHhkXCAtcgorCisiIE5hbWVzIGZvciBidWZmZXIgbWVudS4KK21lbnV0cmFucyAmQnVmZmVycwkmQnVmb3J5CittZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJT2S2d2llvworbWVudXRyYW5zIERlbGV0ZQlTa2FzdWoKK21lbnV0cmFucyAmQWx0ZXJuYXRlCSZabWll8QorbWVudXRyYW5zICZOZXh0CQkmTmFzdOpwbnkKK21lbnV0cmFucyAmUHJldmlvdXMJJlBvcHJ6ZWRuaQorbWVudXRyYW5zIFtOb1wgRmlsZV0JW0JyYWtcIFBsaWt1XQorCisiIFdpbmRvdyBtZW51CittZW51dHJhbnMgJldpbmRvdwkJCSZXaWRva2kKK21lbnV0cmFucyAmTmV3PFRhYj5eV24JCQkmTm93eTxUYWI+XlduCittZW51dHJhbnMgUyZwbGl0PFRhYj5eV3MJCVBvJmR6aWVsPFRhYj5eV3MKK21lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eCVAmb2R6aWVsXCBuYVwgIzxUYWI+XldeXgorbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2CVBvZHppZWxcIHBpb25vd288VGFiPl5XdgorbWVudXRyYW5zIFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIJCU90d/NyelwgbWVuZWS/ZXJcIHBsaWvzdworCittZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZaYW1rbmlqPFRhYj5eV2MKK21lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JWmFta25palwgJmlubmU8VGFiPl5XbworbWVudXRyYW5zIE5lJnh0PFRhYj5eV3cJCQkmTmFzdOpwbnk8VGFiPl5XdworbWVudXRyYW5zIFAmcmV2aW91czxUYWI+XldXCQkmUG9wcnplZG5pPFRhYj5eV1cKK21lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJld5cvN3bmFqXCB3eXNva2+2Y2k8VGFiPl5XPQorbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCQlaJm1ha3N5bWFsaXp1alwgd3lzb2tvtuY8VGFiPl5XXworbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJWm1pbmltJmFsaXp1alwgd3lzb2tvtuY8VGFiPl5XMV8KK21lbnV0cmFucyBNYXhcIFdpZHRoPFRhYj5eV1x8CQlNYWtzeW1hbG5hXCBzemVyb2tvtuY8VGFiPl5XXHwKK21lbnV0cmFucyBNaW5cIFdpZHRoPFRhYj5eVzFcfAkJTWluaW1hbG5hXCBzemVyb2tvtuY8VGFiPl5XMVx8CittZW51dHJhbnMgTWF4XCAmV2lkdGg8VGFiPl5XXHwJCVptYWtzeW1hbGl6dWpcIHN6ZXJva2+25jxUYWI+XldcfAorbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJWm1pbmltYWxpenVqXCBzemVyb2tvtuY8VGFiPl5XMVx8CittZW51dHJhbnMgTW92ZVwgJlRvCQkJJklkvFwgZG8KK21lbnV0cmFucyAmVG9wPFRhYj5eV0sJCQkmR/NyYTxUYWI+XldLCittZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCQkmRPOzPFRhYj5eV0oKK21lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICQkmTGV3YVwgc3Ryb25hPFRhYj5eV0gKK21lbnV0cmFucyAmUmlnaHRcIHNpZGU8VGFiPl5XTAkJJlByYXdhXCBzdHJvbmE8VGFiPl5XTAorbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCU9icvPmXCB3XCAmZ/Ny6jxUYWI+XldSCittZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyCQlPYnLz5lwgd1wgJmTzszxUYWI+XldyCittZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJJlBvZHppZWxcIHdcIHBvemlvbWllPFRhYj5eV3YKK21lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCQlXeWJpZXJ6XCAmY3pjaW9ua+pcLlwuXC4KKworIiBUaGUgcG9wdXAgbWVudQorbWVudXRyYW5zICZVbmRvCQkJJkNvZm5pagorbWVudXRyYW5zIEN1JnQJCQlXJnl0bmlqCittZW51dHJhbnMgJkNvcHkJCQkmS29waXVqCittZW51dHJhbnMgJlBhc3RlCQkmV2tsZWoKK21lbnV0cmFucyAmRGVsZXRlCQkmU2thc3VqCittZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UJWmF6bmFjelwgJmJsb2sKK21lbnV0cmFucyBTZWxlY3RcICZXb3JkCQlaYXpuYWN6XCAmc7Nvd28KK21lbnV0cmFucyBTZWxlY3RcICZMaW5lCQlaYXpuYWN6XCB3JmllcnN6CittZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJWmF6bmFjelwgJmJsb2sKK21lbnV0cmFucyBTZWxlY3RcICZBbGwJCVphem5hY3pcIGMmYbNvtuYKKworIiBUaGUgR1VJIHRvb2xiYXIKK2lmIGhhcygidG9vbGJhciIpCisgIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQorICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CisgIGVuZGlmCisgIGZ1biBEb190b29sYmFyX3RtZW51KCkKKyAgICB0bWVudSBUb29sQmFyLk9wZW4JCU90d/NyeiBwbGlrCisgICAgdG1lbnUgVG9vbEJhci5TYXZlCQlaYXBpc3ogYmllv7FjeSBwbGlrCisgICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsCQlaYXBpc3ogd3N6eXN0a2llIHBsaWtpCisgICAgdG1lbnUgVG9vbEJhci5QcmludAkJRHJ1a3VqCisgICAgdG1lbnUgVG9vbEJhci5VbmRvCQlDb2ZuaWoKKyAgICB0bWVudSBUb29sQmFyLlJlZG8JCVBvbvN3CisgICAgdG1lbnUgVG9vbEJhci5DdXQJCVd5dG5pagorICAgIHRtZW51IFRvb2xCYXIuQ29weQkJU2tvcGl1agorICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCVdrbGVqCisgICAgdG1lbnUgVG9vbEJhci5GaW5kCQlTenVrYWouLi4KKyAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CVN6dWthaiBuYXN06nBuZWdvCisgICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglTenVrYWogcG9wcnplZG5pZWdvCisgICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlCQlTenVrYWogaSB6YW1pZW5pYWouLi4KKyAgICBpZiAwCSIgZGlzYWJsZWQ7IFRoZXNlIGFyZSBpbiB0aGUgV2luZG93cyBtZW51CisgICAgICB0bWVudSBUb29sQmFyLk5ldwkJTm93eSB3aWRvaworICAgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdAlQb2R6aWVsIHdpZG9rCisgICAgICB0bWVudSBUb29sQmFyLldpbk1heAkJWm1ha3N5bWFsaXp1aiB3aWRvaworICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JCVptaW5pbWFsaXp1aiB3aWRvaworICAgICAgdG1lbnUgVG9vbEJhci5XaW5DbG9zZQlaYW1rbmlqIHdpZG9rCisgICAgZW5kaWYKKyAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCVphs2FkdWogc2VzauoKKyAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuCVphY2hvd2FqIGJpZb+xY7Egc2VzauoKKyAgICB0bWVudSBUb29sQmFyLlJ1blNjcmlwdAlVcnVjaG9tIHNrcnlwdCBWaW1hCisgICAgdG1lbnUgVG9vbEJhci5NYWtlCQlXeWtvbmFqIGJpZb+xY3kgcHJvamVrdAorICAgIHRtZW51IFRvb2xCYXIuU2hlbGwJCU90d/NyeiBwb3ezb2vqCisgICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlUd/NyeiB0YWdpIHcgYmllv7FjeW0ga2F0YWxvZ3UKKyAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJCVNrb2sgZG8gdGFnYSBwb2Qga3Vyc29yZW0KKyAgICB0bWVudSBUb29sQmFyLkhlbHAJCVBvbW9jIFZpbWEKKyAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwCVByemVzenVrdWogcG9tb2MgVmltLWEKKyAgZW5kZnVuCitlbmRpZgorCisiIFN5bnRheCBtZW51CittZW51dHJhbnMgJlNob3dcIGZpbGV0eXBlc1wgaW5cIG1lbnUJJlBva2F6dWpcIHJvZHphalwgcGxpa3VcIHdcIG1lbnVlCittZW51dHJhbnMgJlN5bnRheAkJJlNrs2FkbmlhCittZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJVXN0YXdcIHR5bGtvXCAnJnN5bnRheCcKK21lbnV0cmFucyBTZXRcICcmZmlsZXR5cGUnXCB0b28JVXN0YXdcIHLzd25pZb9cICcmZmlsZXR5cGUnCittZW51dHJhbnMgJk9mZgkJCSZXebOxY3oKK21lbnV0cmFucyAmTWFudWFsCQkmUupjem5pZQorbWVudXRyYW5zIEEmdXRvbWF0aWMJCUEmdXRvbWF0eWN6bmUKK21lbnV0cmFucyBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUJCQl3s7Fjei93JnmzsWN6XCBkbGFcIHBsaWt1CittZW51dHJhbnMgQ28mbG9yXCB0ZXN0CQlUZXN0XCAma29sb3LzdworbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3QJJlRlc3RcIHBvZLZ3aWV0bGFuaWEKK21lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwJUHJ6ZXR383J6XCBuYVwgJkhUTUwKKworIiBkaWFsb2cgdGV4dHMKK2xldCBtZW51dHJhbnNfbm9fZmlsZSA9ICJbQnJhayBwbGlrdV0iCitsZXQgbWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIldwcm93YWS8IGtvbWVuZOogbHViIHOzb3dvLCBhYnkgb3RyenltYeYgcG9tb2MgbzpcblxuUHJ6ZWRyb3N0ZWsgaV8gb3puYWN6YSBrb21lbmTqIHRyeWJ1IFdwcm93YWR6YW5pYSAobnAuIGlfQ1RSTC1YKVxuUHJ6ZWRyb3N0ZWsgY18gb3puYWN6YSBrb21lbmTqIGVkeWNqaSB3aWVyc3phIGtvbWVuZCAobnAuIGNfPERlbD4pXG5QcnplZHJvc3RlayAnIG96bmFjemEgbmF6d+ogb3BjamkgKG5wLiAnc2hpZnR3aWR0aCcpIgorbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIldwcm93YWS8ILZjaWW/a+ogcG9zenVraXdhbmlhIHBsaWvzdy5cblByb3N66iByb3pkemllbGHmIG5hend5IGthdGFsb2fzdyBwcnplY2lua2llbS4iCitsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiUG9kYWogbmF6d3kgcGxpa/N3IHRhZ/N3LlxuUHJvc3rqIHJvemR6aWVsYeYgbmF6d3kgcHJ6ZWNpbmtpZW0uIgorbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiV3Byb3dhZLwgbm93sSBzemVyb2tvtuYgdGVrc3R1ICgwIHd5s7FjemEgcHJ6ZXdpamFuaWUpOiAiCitsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiV3liaWVyeiBmb3JtYXQgdyBrdPNyeW0gdGVuIHBsaWsgbWEgYnnmIHphcGlzYW55IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9tZW51LnZpbSBiL3J1bnRpbWUvbWVudS52aW0KaW5kZXggMGYwMzE3ZC4uZGY5YzY1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9tZW51LnZpbQorKysgYi9ydW50aW1lL21lbnUudmltCkBAIC0zODIsNyArMzgyLDcgQEAKICAgZW5kaWYKICAgdW5sZXQgczpuCiBlbmRpZgotaWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luMTYiKSB8fCBoYXMoImd1aV9ndGsiKSB8fCBoYXMoImd1aV9rZGUiKSB8fCBoYXMoImd1aV9waG90b24iKSB8fCBoYXMoImd1aV9tYWMiKQoraWYgaGFzKCJ3aW4zMiIpIHx8IGhhcygid2luMTYiKSB8fCBoYXMoImd1aV9tb3RpZiIpIHx8IGhhcygiZ3VpX2d0ayIpIHx8IGhhcygiZ3VpX2tkZSIpIHx8IGhhcygiZ3VpX3Bob3RvbiIpIHx8IGhhcygiZ3VpX21hYyIpCiAgIGFuIDIwLjQ3MCAmRWRpdC5TZWxlY3RcIEZvJm50XC5cLlwuCTpzZXQgZ3VpZm9udD0qPENSPgogZW5kaWYKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9wbHVnaW4vdGFyLnZpbSBiL3J1bnRpbWUvcGx1Z2luL3Rhci52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmYWRlNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvcGx1Z2luL3Rhci52aW0KQEAgLTAsMCArMSwxODUgQEAKKyIgdmltOnNldCB0cz00IHN3PTQgYWkgbm9iYWNrdXA6CisKKyIgdGFyLnZpbSAtLSBhIHZpbSBwbHVnaW4gZm9yIGJyb3dzaW5nIHRhcmZpbGVzCisiIENvcHlyaWdodCAoYykgMjAwMiwgTWljaGFlbCBDLiBUb3JlbiA8bWN0QHRvcmVuLm5ldD4KKyIKKyIgVXBkYXRlcyBhcmUgYXZhaWxhYmxlIGZyb20gPGh0dHA6Ly9taWNoYWVsLnRvcmVuLm5ldC9jb2RlLz4uICBJZiB5b3UKKyIgZmluZCB0aGlzIHNjcmlwdCB1c2VmdWwsIG9yIGhhdmUgc3VnZ2VzdGlvbnMgZm9yIGltcHJvdmVtZW50cywgcGxlYXNlCisiIGxldCBtZSBrbm93LgorIgorIiBVc2FnZToKKyIgT25jZSB0aGlzIHNjcmlwdCBpcyBpbnN0YWxsZWQsIGF0dGVtcHRpbmcgdG8gZWRpdCBhIHRhcmZpbGUgd2lsbCBwcmVzZW50CisiIHRoZSB1c2VyIHdpdGggYSBsaXN0IG9mIGZpbGVzIGNvbnRhaW5lZCBpbiB0aGUgdGFyIGFyY2hpdmUuICBCeSBtb3ZpbmcgdGhlCisiIGN1cnNvciBvdmVyIGEgZmlsZW5hbWUgYW5kIHByZXNzaW5nIEVOVEVSLCB0aGUgY29udGVudHMgb2YgYSBmaWxlIGNhbiBiZQorIiB2aWV3ZWQgaW4gcmVhZC1vbmx5IG1vZGUsIGluIGEgbmV3IHdpbmRvdy4gIFVuZm9ydHVuYXRlbHksIHdyaXRlIHN1cHBvcnQKKyIgZm9yIHRhcmZpbGUgY29tcG9uZW50cyBpcyBub3QgY3VycmVudGx5IHBvc3NpYmxlLgorIiAKKyIgUmVxdWlyZW1lbnRzOgorIiBHTlUgdGFyLCBvciBhIHRhciBpbXBsZW1lbnRhdGlvbiB0aGF0IHN1cHBvcnRzIHRoZSAiUCIgKGRvbid0IHN0cmlwCisiIG91dCBsZWFkaW5nIC8ncyBmcm9tIGZpbGVuYW1lcyksIGFuZCAiTyIgKGV4dHJhY3QgZmlsZXMgdG8gc3RhbmRhcmQKKyIgb3V0cHV0KSBvcHRpb25zLiAgQWRkaXRpb25hbGx5LCBnemlwIGlzIHJlcXVpcmVkIGZvciBoYW5kbGluZyAqLnRhci5aLAorIiAqLnRhci5neiwgYW5kICoudGd6IGNvbXByZXNzZWQgdGFyZmlsZXMsIGFuZCBiemlwMiBpcyByZXF1aXJlZCBmb3IKKyIgaGFuZGxpbmcgKi50YXIuYnoyIGNvbXByZXNzZWQgdGFyZmlsZXMuICBBIHVuaXgtbGlrZSBvcGVyYXRpbmcgc3lzdGVtCisiIGlzIHByb2JhYmx5IGFsc28gcmVxdWlyZWQuCisiIAorIiBJbnN0YWxsYXRpb246CisiIFBsYWNlIHRoaXMgZmlsZSwgdGFyLnZpbSwgaW4geW91ciAkSE9NRS8udmltL3BsdWdpbiBkaXJlY3RvcnksIGFuZAorIiBlaXRoZXIgcmVzdGFydCB2aW0sIG9yIGV4ZWN1dGUgIjpzb3VyY2UgJEhPTUUvLnZpbS9wbHVnaW4vdGFyLnZpbSIKKyIKKyIgVG9kbzoKKyIgLSBIYW5kbGUgemlwZmlsZXM/CisiIC0gSW1wbGVtZW50IHdyaXRlIHN1cHBvcnQsIHNvbWVob3cuCisiCisiIExpY2Vuc2U6CisiIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisiIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkCisiIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisiCisiIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyIgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKKyIgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisiIGZvciBtb3JlIGRldGFpbHMuCisiCisiIEEgY29weSBvZiB0aGUgR05VIEdQTCBpcyBhdmFpbGFibGUgYXMgL3Vzci9kb2MvY29weXJpZ2h0L0dQTCBvbiBEZWJpYW4KKyIgc3lzdGVtcywgb3Igb24gdGhlIFdvcmxkIFdpZGUgV2ViIGF0IGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAorIiBZb3UgY2FuIGFsc28gb2J0YWluIGl0IGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyIgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQQorIgorIiBDaGFuZ2Vsb2c6CisiIFR1ZSBEZWMgMzEgMTM6Mzg6MDggRVNUIDIwMDIJRmlyc3QgcmVsZWFzZSB0byBiZXRhIHRlc3RlcnMKKyIgU2F0IEphbiAgNCAxNDowNjoxOSBFU1QgMjAwMwlWZXJzaW9uIDEuMDAgcmVsZWFzZWQKKworbGV0IHM6dmVyc2lvbiA9ICIxLjAwIgorCitpZiBoYXMoImF1dG9jbWQiKQorYXVncm91cCB0YXIKKwlhdSEKKwlhdSBCdWZSZWFkQ21kCXRhcmZpbGU6KgljYWxsIHM6VGFyUmVhZChleHBhbmQoIjxhZmlsZT4iKSwgMSkKKwlhdSBCdWZSZWFkQ21kCXRhcmZpbGU6Ki8qCWNhbGwgczpUYXJSZWFkKGV4cGFuZCgiPGFmaWxlPiIpLCAxKQorCWF1IEZpbGVSZWFkQ21kCXRhcmZpbGU6KgljYWxsIHM6VGFyUmVhZChleHBhbmQoIjxhZmlsZT4iKSwgMCkKKwlhdSBGaWxlUmVhZENtZAl0YXJmaWxlOiovKgljYWxsIHM6VGFyUmVhZChleHBhbmQoIjxhZmlsZT4iKSwgMCkKKworCWF1IEJ1ZldyaXRlQ21kCXRhcmZpbGU6KgljYWxsIHM6VGFyV3JpdGUoZXhwYW5kKCI8YWZpbGU+IikpCisJYXUgQnVmV3JpdGVDbWQJdGFyZmlsZToqLyoJY2FsbCBzOlRhcldyaXRlKGV4cGFuZCgiPGFmaWxlPiIpKQorCWF1IEZpbGVXcml0ZUNtZAl0YXJmaWxlOioJY2FsbCBzOlRhcldyaXRlKGV4cGFuZCgiPGFmaWxlPiIpKQorCWF1IEZpbGVXcml0ZUNtZAl0YXJmaWxlOiovKgljYWxsIHM6VGFyV3JpdGUoZXhwYW5kKCI8YWZpbGU+IikpCisKKwlhdSBCdWZSZWFkQ21kCSoudGFyCQljYWxsIHM6VGFyQnJvd3NlKGV4cGFuZCgiPGFmaWxlPiIpKQorCWF1IEJ1ZlJlYWRDbWQJKi50YXIuZ3oJY2FsbCBzOlRhckJyb3dzZShleHBhbmQoIjxhZmlsZT4iKSkKKwlhdSBCdWZSZWFkQ21kCSoudGFyLmJ6MgljYWxsIHM6VGFyQnJvd3NlKGV4cGFuZCgiPGFmaWxlPiIpKQorCWF1IEJ1ZlJlYWRDbWQJKi50YXIuWgkJY2FsbCBzOlRhckJyb3dzZShleHBhbmQoIjxhZmlsZT4iKSkKKwlhdSBCdWZSZWFkQ21kCSoudGd6CQljYWxsIHM6VGFyQnJvd3NlKGV4cGFuZCgiPGFmaWxlPiIpKQorYXVncm91cCBFTkQKK2VuZGlmCisKK2Z1bmN0aW9uISBzOlRhcldyaXRlKGFyZ3VtZW50KQorCWVjaG8gIkVSUk9SOiBTb3JyeSwgbm8gd3JpdGUgc3VwcG9ydCBmb3IgdGFyZmlsZXMgeWV0IgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6VGFyUmVhZChhcmd1bWVudCwgY2xlYW51cCkKKwlsZXQgbDphcmd1bWVudCA9IGE6YXJndW1lbnQKKwlsZXQgbDphcmd1bWVudCA9IHN1YnN0aXR1dGUobDphcmd1bWVudCwgJ150YXJmaWxlOicsICcnLCAnJykKKwlsZXQgbDphcmd1bWVudCA9IHN1YnN0aXR1dGUobDphcmd1bWVudCwgJ15cficsICRIT01FLCAnJykKKworCWxldCBsOnRhcmZpbGUgPSBsOmFyZ3VtZW50CisJd2hpbGUgMQorCQlpZiAobDp0YXJmaWxlID09ICIiIHx8IGw6dGFyZmlsZSA9PSAiLyIpCisJCQllY2hvICJFUlJPUjogQ291bGQgbm90IGZpbmQgYSByZWFkYWJsZSB0YXJmaWxlIGluIHBhdGg6IiBsOmFyZ3VtZW50CisJCQlyZXR1cm4KKwkJZW5kaWYKKworCQlpZiBmaWxlcmVhZGFibGUobDp0YXJmaWxlKSAiIGZvdW5kIGl0IQorCQkJYnJlYWsKKwkJZW5kaWYKKworCQlsZXQgbDp0YXJmaWxlID0gZm5hbWVtb2RpZnkobDp0YXJmaWxlLCAiOmgiKQorCWVuZHdoaWxlCisKKwlsZXQgbDp0b2V4dHJhY3QgPSBzdHJwYXJ0KGw6YXJndW1lbnQsIHN0cmxlbihsOnRhcmZpbGUpICsgMSkKKworCWlmIChsOnRvZXh0cmFjdCA9PSAiIikKKwkJcmV0dXJuCisJZW5kaWYKKworCWxldCBsOmNhdCA9IHM6VGFyQ2F0Q29tbWFuZChsOnRhcmZpbGUpCisJZXhlY3V0ZSAiciAhIiAuIGw6Y2F0IC4gIiA8ICciIC4gbDp0YXJmaWxlIC4gIiciCisJCVwgIiB8IHRhciBPUHhmIC0gJyIgLiBsOnRvZXh0cmFjdCAuICInIgorCisJaWYgKGE6Y2xlYW51cCkKKwkJMGQgImJsYW5rIGxpbmUKKwkJZXhlY3V0ZSAiZG9hdXRvY21kIEJ1ZlJlYWRQb3N0ICIgLiBleHBhbmQoIiUiKQorCQlzZXRsb2NhbCByZWFkb25seQorCQlzaWxlbnQgcHJlc2VydmUKKwllbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6VGFyQnJvd3NlKHRhcmZpbGUpCisJc2V0bG9jYWwgbm9zd2FwZmlsZQorCXNldGxvY2FsIGJ1ZnR5cGU9bm9maWxlCisJc2V0bG9jYWwgYnVmaGlkZGVuPWhpZGUKKwlzZXRsb2NhbCBmaWxldHlwZT0KKwlzZXRsb2NhbCBub2J1Zmxpc3RlZAorCXNldGxvY2FsIGJ1ZnR5cGU9bm9maWxlCisJc2V0bG9jYWwgd3JhcAorCisJbGV0IGw6dGFyZmlsZSA9IGE6dGFyZmlsZQorCWxldCBiOnRhcmZpbGUgPSBsOnRhcmZpbGUKKwlsZXQgbDpjYXQgPSBzOlRhckNhdENvbW1hbmQobDp0YXJmaWxlKQorCisJaWYgISBmaWxlcmVhZGFibGUobDp0YXJmaWxlKQorCQlsZXQgbDp0YXJmaWxlID0gc3Vic3RpdHV0ZShsOnRhcmZpbGUsICdedGFyZmlsZTonLCAnJywgJycpCisJZW5kaWYKKworCWlmICEgZmlsZXJlYWRhYmxlKGw6dGFyZmlsZSkKKwkJZWNobyAiRVJST1I6IEZpbGUgbm90IHJlYWRhYmxlOiIgbDp0YXJmaWxlCisJCXJldHVybgorCWVuZGlmCisKKwljYWxsIHM6U2F5KCJcIiB0YXIudmltIHZlcnNpb24gIiAuIHM6dmVyc2lvbikKKwljYWxsIHM6U2F5KCJcIiBCcm93c2luZyB0YXJmaWxlICIgLiBsOnRhcmZpbGUpCisJY2FsbCBzOlNheSgiXCIgSGl0IEVOVEVSIHRvIHZpZXcgY29udGVudHMgaW4gbmV3IHdpbmRvdyIpCisJY2FsbCBzOlNheSgiIikKKworCXNpbGVudCBleGVjdXRlICJyISIgLiBsOmNhdCAuICI8JyIgLiBsOnRhcmZpbGUgLiAiJ3wgdGFyIFB0ZiAtICIKKwkwZCAiYmxhbmsgbGluZQorCS9eJC8xCisKKwlzZXRsb2NhbCByZWFkb25seQorCXNldGxvY2FsIG5vbW9kaWZpYWJsZQorCW5vcmVtYXAgPHNpbGVudD4gPGJ1ZmZlcj4gPGNyPiA6Y2FsbCA8U0lEPlRhckJyb3dzZVNlbGVjdCgpPGNyPgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6VGFyQnJvd3NlU2VsZWN0KCkKKwlsZXQgbDpsaW5lID0gZ2V0bGluZSgiLiIpCisKKwlpZiAobDpsaW5lID1+ICdeIiAnKQorCQlyZXR1cm4KKwllbmRpZgorCisJaWYgKGw6bGluZSA9fiAnLyQnKQorCQllY2hvICJQbGVhc2Ugc3BlY2lmeSBhIGZpbGUsIG5vdCBhIGRpcmVjdG9yeSIKKwkJcmV0dXJuCisJZW5kaWYKKworCWxldCBsOnNlbGVjdGlvbiA9ICJ0YXJmaWxlOiIgLiAgYjp0YXJmaWxlIC4gIi8iIC4gbDpsaW5lCisJbmV3CisJd2luY21kIF8KKwlleGVjdXRlICJlICIgLiBsOnNlbGVjdGlvbgorZW5kZnVuY3Rpb24KKworIiBrbHVkZ2UgdG8gZGVhbCB3aXRoIGNvbXByZXNzZWQgYXJjaGl2ZXMKK2Z1bmN0aW9uISBzOlRhckNhdENvbW1hbmQodGFyZmlsZSkKKwlpZiBhOnRhcmZpbGUgPX4jICdcLlwoZ3pcfHRnelx8WlwpJCcKKwkJbGV0IGw6Y2F0ID0gImd6aXAgLWQgLWMiCisJZWxzZWlmIGE6dGFyZmlsZSA9fiMgJ1wuYnoyJCcKKwkJbGV0IGw6Y2F0ID0gImJ6aXAyIC1kIC1jIgorCWVsc2UKKwkJbGV0IGw6Y2F0ID0gImNhdCIKKwllbmRpZgorCXJldHVybiBsOmNhdAorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHM6U2F5KHN0cmluZykKKwlsZXQgQCIgPSBhOnN0cmluZworCSQgcHV0CitlbmRmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbmFtZWQudmltIGIvcnVudGltZS9zeW50YXgvbmFtZWQudmltCmluZGV4IDA5MTgzNTIuLmRmMjU4NzAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L25hbWVkLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9uYW1lZC52aW0KQEAgLTIsOCArMiw5IEBACiAiIExhbmd1YWdlOglCSU5EIDgueCBjb25maWd1cmF0aW9uIGZpbGUKICIgTWFpbnRhaW5lcjoJZ2xvcnkgaHVtcCA8cm5kQHdlYi1kcml2ZS5ydT4KICIgTGFzdCBjaGFuZ2U6CU1vbiBNYXkgMjEgMDQ6NTE6MDEgU0FNU1QgMjAwMQorIiBVcGRhdGVkOglieSBNYXJ0aW4gRGFsZWNraSAyMDA0LTEyLTMxCiAiIEZpbGVuYW1lczoJbmFtZWQuY29uZgotIiBVUkw6CWh0dHA6Ly9ybmQud2ViLWRyaXZlLnJ1L3ZpbS9zeW50YXgvbmFtZWQudmltCisiIFVSTDoJaHR0cDovL3JuZC53ZWItZHJpdmUucnUvdmltL3N5bnRheC9uYW1lZC52aW0gW0RFRlVOQ1RdCiAiICRJZCQKICIKICIgTk9URQpAQCAtMzMsMTAgKzM0LDExIEBACiAiIEJJTkQgY29uZmlndXJhdGlvbiBmaWxlCiAKIHN5biBtYXRjaAluYW1lZENvbW1lbnQJIi8vLioiCitzeW4gbWF0Y2gJbmFtZWRDb21tZW50CSIjLioiCiBzeW4gcmVnaW9uCW5hbWVkQ29tbWVudAlzdGFydD0iL1wqIiBlbmQ9IlwqLyIKIHN5biByZWdpb24JbmFtZWRTdHJpbmcJc3RhcnQ9LyIvIGVuZD0vIi8gY29udGFpbmVkCi0iIC0tLSBvbWl0dGVkIHRyYWlsaW5nIHNlbWljb2xvbiBGSVhNRQotc3luIG1hdGNoCW5hbWVkRXJyb3IJL1teO3tdJC8KKyIgLS0tIG9taXR0ZWQgdHJhaWxpbmcgc2VtaWNvbG9uCitzeW4gbWF0Y2gJbmFtZWRFcnJvcgkvW147eyNdJC8KIAogIiAtLS0gdG9wLWxldmVsIGtleXdvcmRzCiAK