[mono/monodevelop] [2 commits] 5da91003: Flush csproj fixes
| Newsgroups | gmane.comp.gnome.mono.patches |
|---|---|
| Message-ID | <000001427e2a140f-c25c1265-04a4-4eab-ab03-e96fb83b77a3-000000@email.amazonses.com> |
DQogICBCcmFuY2g6IHJlZnMvaGVhZHMvbWFzdGVyDQogICAgIEhvbWU6IGh0dHBzOi8vZ2l0aHVi LmNvbS9tb25vL21vbm9kZXZlbG9wDQogIENvbXBhcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb25v L21vbm9kZXZlbG9wL2NvbXBhcmUvZWU2Y2YwOGFjNTIxLi4uMWY3MDVkNDUzYzg5DQoNCiAgIENv bW1pdDogNWRhOTEwMDNjNzFlMzgzYThmMzk5OWRkZjI2YTBlY2I4MTMzMzc5Mw0KICAgQXV0aG9y OiBNaWNoYWVsIEh1dGNoaW5zb24gPG0uai5odXRjaGluc29uQGdtYWlsLmNvbT4gKG1odXRjaCkN CiAgICAgRGF0ZTogMjAxMy0xMS0yMiAwNDo0Njo0NiBHTVQNCiAgICAgIFVSTDogaHR0cHM6Ly9n aXRodWIuY29tL21vbm8vbW9ub2RldmVsb3AvY29tbWl0LzVkYTkxMDAzYzcxZTM4M2E4ZjM5OTlk ZGYyNmEwZWNiODEzMzM3OTMNCg0KRmx1c2ggY3Nwcm9qIGZpeGVzDQoNCkNoYW5nZWQgcGF0aHM6 CiAgTSBtYWluL3NyYy9hZGRpbnMvQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5NdmMvTW9ub0Rl dmVsb3AuQXNwTmV0Lk12Yy5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Bc3BOZXQvTW9ub0Rl dmVsb3AuQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlu cy9DQmluZGluZy9DQmluZGluZy5BdXRvdG9vbHMvQ0JpbmRpbmcuQXV0b3Rvb2xzLmNzcHJvagog IE0gbWFpbi9zcmMvYWRkaW5zL0NCaW5kaW5nL0NCaW5kaW5nLmNzcHJvagogIE0gbWFpbi9zcmMv YWRkaW5zL0NTaGFycEJpbmRpbmcvQXNwTmV0L0NTaGFycEJpbmRpbmcuQXNwTmV0LmNzcHJvagog IE0gbWFpbi9zcmMvYWRkaW5zL0NTaGFycEJpbmRpbmcvQXV0b3Rvb2xzL0F1dG90b29scy5jc3By b2oKICBNIG1haW4vc3JjL2FkZGlucy9DaGFuZ2VMb2dBZGRJbi9DaGFuZ2VMb2dBZGRJbi5jc3By b2oKICBNIG1haW4vc3JjL2FkZGlucy9EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQu TGludXgvTW9ub0RldmVsb3AuRGVwbG95bWVudC5MaW51eC5jc3Byb2oKICBNIG1haW4vc3JjL2Fk ZGlucy9EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95 bWVudC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Hbm9tZVBsYXRmb3JtL0dub21lUGxhdGZv cm0uY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRpbnMvSUxBc21CaW5kaW5nL0lMQXNtQmluZGluZy5j c3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9NYWNQbGF0Zm9ybS9NYWNQbGF0Zm9ybS5jc3Byb2oK ICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2ZWxvcC5Bc3NlbWJseUJyb3dzZXIvTW9ub0RldmVs b3AuQXNzZW1ibHlCcm93c2VyLmNzcHJvagogIE0gbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9w LkF1dG90b29scy9Nb25vRGV2ZWxvcC5BdXRvdG9vbHMuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRp bnMvTW9ub0RldmVsb3AuRGVidWdnZXIuU29mdC9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0LkFz cE5ldC9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0LkFzcE5ldC5jc3Byb2oKICBNIG1haW4vc3Jj L2FkZGlucy9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0L01vbm9EZXZlbG9wLkRlYnVnZ2VyLlNv ZnQvTW9ub0RldmVsb3AuRGVidWdnZXIuU29mdC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9N b25vRGV2ZWxvcC5EZWJ1Z2dlci5XaW4zMi9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5XaW4zMi9Nb25v RGV2ZWxvcC5EZWJ1Z2dlci5XaW4zMi5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2 ZWxvcC5EZXNpZ25lclN1cHBvcnQvTW9ub0RldmVsb3AuRGVzaWduZXJTdXBwb3J0LmNzcHJvagog IE0gbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLkRvY0Zvb2QvTW9ub0RldmVsb3AuRG9jRm9v ZC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2ZWxvcC5HZXR0ZXh0L01vbm9EZXZl bG9wLkdldHRleHQuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuR3RrQ29y ZS9Nb25vRGV2ZWxvcC5HdGtDb3JlLmNzcHJvagogIE0gbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZl bG9wLkd0a0NvcmUvbGlic3RldGljL2xpYnN0ZXRpYy5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlu cy9Nb25vRGV2ZWxvcC5HdGtDb3JlL2xpYnN0ZXRpY3VpL2xpYnN0ZXRpY3VpLmNzcHJvagogIE0g bWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLkhleEVkaXRvci9Nb25vRGV2ZWxvcC5IZXhFZGl0 b3IuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuUmVnZXhUb29sa2l0L01v bm9EZXZlbG9wLlJlZ2V4VG9vbGtpdC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2 ZWxvcC5XZWJSZWZlcmVuY2VzL01vbm9EZXZlbG9wLldlYlJlZmVyZW5jZXMuY3Nwcm9qCiAgTSBt YWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuWG1sRWRpdG9yL01vbm9EZXZlbG9wLlhtbEVkaXRv ci5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2ZWxvcGVyRXh0ZW5zaW9ucy9Nb25v RGV2ZWxvcGVyRXh0ZW5zaW9ucy5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9Nb25vRGV2ZWxv cGVyRXh0ZW5zaW9ucy9OVW5pdC9OVW5pdC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9OVW5p dC9Nb25vRGV2ZWxvcC5OVW5pdC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9OVW5pdC9OVW5p dFJ1bm5lci9OVW5pdFJ1bm5lci5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9UZXh0VGVtcGxh dGluZy9Nb25vLlRleHRUZW1wbGF0aW5nL01vbm8uVGV4dFRlbXBsYXRpbmcuY3Nwcm9qCiAgTSBt YWluL3NyYy9hZGRpbnMvVGV4dFRlbXBsYXRpbmcvTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmcv TW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmcuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRpbnMvVGV4 dFRlbXBsYXRpbmcvVGV4dFRyYW5zZm9ybS9UZXh0VHJhbnNmb3JtLmNzcHJvagogIE0gbWFpbi9z cmMvYWRkaW5zL1ZCTmV0QmluZGluZy9WQk5ldEJpbmRpbmcuY3Nwcm9qCiAgTSBtYWluL3NyYy9h ZGRpbnMvVmVyc2lvbkNvbnRyb2wvTW9ub0RldmVsb3AuVmVyc2lvbkNvbnRyb2wuR2l0L01vbm9E ZXZlbG9wLlZlcnNpb25Db250cm9sLkdpdC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9WZXJz aW9uQ29udHJvbC9Nb25vRGV2ZWxvcC5WZXJzaW9uQ29udHJvbC5TdWJ2ZXJzaW9uLlVuaXgvTW9u b0RldmVsb3AuVmVyc2lvbkNvbnRyb2wuU3VidmVyc2lvbi5Vbml4LmNzcHJvagogIE0gbWFpbi9z cmMvYWRkaW5zL1ZlcnNpb25Db250cm9sL01vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sLlN1YnZl cnNpb24vTW9ub0RldmVsb3AuVmVyc2lvbkNvbnRyb2wuU3VidmVyc2lvbi5jc3Byb2oKICBNIG1h aW4vc3JjL2FkZGlucy9XaW5kb3dzUGxhdGZvcm0vV2luZG93c1BsYXRmb3JtLmNzcHJvagogIE0g bWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9wcmoybWFrZS1zaGFycC1saWIuY3Nw cm9qCiAgTSBtYWluL3NyYy9jb3JlL01vbm8uVGV4dGVkaXRvci9Nb25vLlRleHRFZGl0b3IuY3Nw cm9qCiAgTSBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVsb3AuQ29yZS5j c3Byb2oKICBNIG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1 aWxkL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC5jc3Byb2oKICBNIG1haW4v c3JjL2NvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1aWxkL01vbm9EZXZlbG9w LlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC5kb3RuZXQudjQuMC5jc3Byb2oKICBNIG1haW4vc3Jj L2NvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1aWxkL01vbm9EZXZlbG9wLlBy b2plY3RzLkZvcm1hdHMuTVNCdWlsZC52Mi4wLmNzcHJvagogIE0gbWFpbi9zcmMvY29yZS9Nb25v RGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1TQnVpbGQvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9y bWF0cy5NU0J1aWxkLnYzLjUuY3Nwcm9qCiAgTSBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLlBy b2plY3RzLkZvcm1hdHMuTVNCdWlsZC9Nb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1TQnVp bGQudjQuMC5jc3Byb2oKICBNIG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuU3RhcnR1cC9Nb25v RGV2ZWxvcC5TdGFydHVwLmNzcHJvagogIE0gbWFpbi9zcmMvdG9vbHMvbWRob3N0L21kaG9zdC5j c3Byb2oKICBNIG1haW4vc3JjL3Rvb2xzL21kbW9uaXRvci9tZG1vbml0b3IuY3Nwcm9qCiAgTSBt YWluL3NyYy90b29scy9tZHRvb2wvbWR0b29sLmNzcHJvagoNCk1vZGlmaWVkOiBtYWluL3NyYy9h ZGRpbnMvQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5NdmMvTW9ub0RldmVsb3AuQXNwTmV0Lk12 Yy5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xOSw4ICsxOSw4IEBACiAgICAgPEVycm9yUmVwb3J0 PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+ CiAgICAgPENvbnNvbGVQYXVzZT5GYWxzZTwvQ29uc29sZVBhdXNlPgotICAgIDxHZW5lcmF0ZURv Y3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5 MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxk XEFkZEluc1xNb25vRGV2ZWxvcC5Bc3BOZXQuTXZjXE1vbm9EZXZlbG9wLkFzcE5ldC5NdmMueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzAsOCAr MzAsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxDb25zb2xl UGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVzZT4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVn U3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1l bnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0 aW9uRmlsZT4uLlxidWlsZFxNb25vRGV2ZWxvcC5Bc3BOZXQuTXZjLnhtbDwvRG9jdW1lbnRhdGlv bkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8Q29tcGlsZSBJ bmNsdWRlPSJBc3NlbWJseUluZm8uY3MiIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMv QXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC9Nb25vRGV2ZWxvcC5Bc3BOZXQuY3Nwcm9qDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpAQCAtMjAsOSArMjAsOSBAQAogICAgIDxFeGVjdXRpb24+CiAgICAgICA8RXhlY3V0 aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9uPgotICAgIDxHZW5l cmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxEZWZp bmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KICAgICA8Tm9XYXJuPjE1OTE7MTU3 MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJ bnNcTW9ub0RldmVsb3AuQXNwTmV0XE1vbm9EZXZlbG9wLkFzcE5ldC54bWw8L0RvY3VtZW50YXRp b25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i ICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CiAg ICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNCw4ICszNCw4IEBACiAgICAg ICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9uPgog ICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3Vt ZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsx NTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFk ZEluc1xNb25vRGV2ZWxvcC5Bc3BOZXRcTW9ub0RldmVsb3AuQXNwTmV0LnhtbDwvRG9jdW1lbnRh dGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UHJvamVj dFJlZmVyZW5jZSBJbmNsdWRlPSIuLlwuLlwuLlxjb3JlXE1vbm9EZXZlbG9wLklkZVxNb25vRGV2 ZWxvcC5JZGUuY3Nwcm9qIj4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9DQmluZGluZy9D QmluZGluZy5BdXRvdG9vbHMvQ0JpbmRpbmcuQXV0b3Rvb2xzLmNzcHJvag0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K QEAgLTIxLDkgKzIxLDkgQEAKICAgICA8RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHIt dmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1 bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3Rh bnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fy bj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXEJhY2tl bmRCaW5kaW5nc1xNb25vRGV2ZWxvcC5DQmluZGluZy5BdXRvdG9vbHMueG1sPC9Eb2N1bWVudGF0 aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249 IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgog ICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzYsOCArMzYsOCBAQAogICAg ICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4K ICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1 bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7 MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxB ZGRJbnNcQmFja2VuZEJpbmRpbmdzXE1vbm9EZXZlbG9wLkNCaW5kaW5nLkF1dG90b29scy54bWw8 L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAg ICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cLi5cTW9ub0RldmVsb3AuQXV0b3Rvb2xz XE1vbm9EZXZlbG9wLkF1dG90b29scy5jc3Byb2oiPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRk aW5zL0NCaW5kaW5nL0NCaW5kaW5nLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIyLDkgKzIyLDkg QEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVj dXRpb24+CiAgICAgPEFzc2VtYmx5T3JpZ2luYXRvcktleUZpbGU+LjwvQXNzZW1ibHlPcmlnaW5h dG9yS2V5RmlsZT4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9j dW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+ CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+ Li5cLi5cLi5cYnVpbGRcQWRkSW5zXEJhY2tlbmRCaW5kaW5nc1xNb25vRGV2ZWxvcC5DQmluZGlu Zy54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0 eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVs ZWFzZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0z Nyw4ICszNyw4IEBACiAgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgog ICAgIDwvRXhlY3V0aW9uPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgot ICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgog ICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4u XC4uXC4uXGJ1aWxkXEFkZEluc1xCYWNrZW5kQmluZGluZ3NcTW9ub0RldmVsb3AuQ0JpbmRpbmcu eG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3Vw PgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2RpZmllZDogbWFpbi9z cmMvYWRkaW5zL0NTaGFycEJpbmRpbmcvQXNwTmV0L0NTaGFycEJpbmRpbmcuQXNwTmV0LmNzcHJv ag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KQEAgLTE5LDggKzE5LDggQEAKICAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0 PC9FcnJvclJlcG9ydD4KICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8 Q29uc29sZVBhdXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRh dGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8 L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5z XEJhY2tlbmRCaW5kaW5nc1xNb25vRGV2ZWxvcC5DU2hhcnBCaW5kaW5nLkFzcE5ldC54bWw8L0Rv Y3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENv bmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlD UFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zMCw4ICszMCw4 IEBACiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPENvbnNvbGVQYXVz ZT5GYWxzZTwvQ29uc29sZVBhdXNlPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1i b2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0 aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25G aWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xCYWNrZW5kQmluZGluZ3NcTW9ub0RldmVsb3Au Q1NoYXJwQmluZGluZy5Bc3BOZXQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0 eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAv Pg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL0NTaGFycEJpbmRpbmcvQXV0b3Rvb2xzL0F1 dG90b29scy5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMSw5ICsyMSw5IEBACiAgICAgPEV4ZWN1 dGlvbj4KICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9F eGVjdXRpb24+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3Vt ZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgog ICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4u XC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xCYWNrZW5kQmluZGluZ3NcTW9ub0RldmVsb3AuQ1NoYXJw QmluZGluZy5BdXRvdG9vbHMueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdy b3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBs YXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwv RGVidWdUeXBlPgpAQCAtMzYsOCArMzYsOCBAQAogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lv bj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8 L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRl RG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPjE1OTE8L0RlZmluZUNvbnN0YW50 cz4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXEJhY2tl bmRCaW5kaW5nc1xNb25vRGV2ZWxvcC5DU2hhcnBCaW5kaW5nLkF1dG90b29scy54bWw8L0RvY3Vt ZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFBy b2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cLi5cTW9ub0RldmVsb3AuQXV0b3Rvb2xzXE1vbm9E ZXZlbG9wLkF1dG90b29scy5jc3Byb2oiPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL0No YW5nZUxvZ0FkZEluL0NoYW5nZUxvZ0FkZEluLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIwLDkg KzIwLDkgQEAKICAgICA8RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0i TmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9u PnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVH PC9EZWZpbmVDb25zdGFudHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8 RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXENoYW5nZUxvZ0FkZEluXENo YW5nZUxvZ0FkZEluLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4K ICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y bSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVn VHlwZT4KQEAgLTM0LDggKzM0LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5l dF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1 Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3Vt ZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRh dGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXENoYW5nZUxvZ0FkZEluXENoYW5nZUxvZ0Fk ZEluLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1H cm91cD4KICAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlwuLlxjb3JlXE1vbm9EZXZl bG9wLkNvcmVcTW9ub0RldmVsb3AuQ29yZS5jc3Byb2oiPg0KDQpNb2RpZmllZDogbWFpbi9zcmMv YWRkaW5zL0RlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC5MaW51eC9Nb25vRGV2ZWxv cC5EZXBsb3ltZW50LkxpbnV4LmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIxLDkgKzIxLDkgQEAK ICAgICA8RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIg Lz4KICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dl bmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVD b25zdGFudHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRh dGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLkRlcGxveW1lbnRc TW9ub0RldmVsb3AuRGVwbG95bWVudC5MaW51eC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8 L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3Vy YXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlw ZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNiw4ICszNiw4IEBACiAgICAgICA8RXhlY3V0aW9u IGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9uPgogICAgIDxEZWJ1Z1N5 bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1 ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+ CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNb25vRGV2 ZWxvcC5EZXBsb3ltZW50XE1vbm9EZXZlbG9wLkRlcGxveW1lbnQuTGludXgueG1sPC9Eb2N1bWVu dGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxQcm9q ZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXC4uXC4uXGNvcmVcTW9ub0RldmVsb3AuQ29yZVxNb25v RGV2ZWxvcC5Db3JlLmNzcHJvaiI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvRGVwbG95 bWVudC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQuY3Nwcm9q DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpAQCAtMjAsOSArMjAsOSBAQAogICAgIDxFeGVjdXRpb24+CiAgICAgICA8 RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9uPgotICAg IDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAg IDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KICAgICA8Tm9XYXJuPjE1 OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWls ZFxBZGRJbnNcTW9ub0RldmVsb3AuRGVwbG95bWVudFxNb25vRGV2ZWxvcC5EZXBsb3ltZW50Lnht bDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3Jv dXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNl fEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTM1LDgg KzM1LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAg PC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAg PEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAg PE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5c Li5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLkRlcGxveW1lbnRcTW9ub0RldmVsb3AuRGVw bG95bWVudC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJ dGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVk OiBtYWluL3NyYy9hZGRpbnMvR25vbWVQbGF0Zm9ybS9Hbm9tZVBsYXRmb3JtLmNzcHJvag0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KQEAgLTE4LDkgKzE4LDkgQEAKICAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJv clJlcG9ydD4KICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8Q29uc29s ZVBhdXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50 cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwv RGVmaW5lQ29uc3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERv Y3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xHbm9tZVBsYXRmb3JtLnhtbDwv RG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAg Q29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFu eUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTMwLDggKzMw LDggQEAKICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8Q29uc29sZVBh dXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5 bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50 YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlv bkZpbGU+YmluXFJlbGVhc2VcR25vbWVQbGF0Zm9ybS54bWw8L0RvY3VtZW50YXRpb25GaWxlPgog ICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRl PSJnZGstc2hhcnAsIFZlcnNpb249Mi4xMi4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5 VG9rZW49MzVlMTAxOTVkYWIzYzk5ZiI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvSUxB c21CaW5kaW5nL0lMQXNtQmluZGluZy5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMCw5ICsyMCw5 IEBACiAgICAgPEV4ZWN1dGlvbj4KICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8y XzAiIC8+CiAgICAgPC9FeGVjdXRpb24+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVl PC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVm aW5lQ29uc3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3Vt ZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xCYWNrZW5kQmluZGluZ3NcSUxBc21C aW5kaW5nLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFBy b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09 ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4K QEAgLTM0LDggKzM0LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAi IC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJv bHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRp b24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXEJhY2tlbmRCaW5kaW5nc1xJTEFzbUJpbmRpbmcueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgog ICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2RpZmllZDogbWFpbi9zcmMv YWRkaW5zL01hY1BsYXRmb3JtL01hY1BsYXRmb3JtLmNzcHJvag0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIw LDggKzIwLDggQEAKICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8Q29u c29sZVBhdXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+CiAgICAgPEFsbG93VW5zYWZlQmxvY2tzPlRy dWU8L0FsbG93VW5zYWZlQmxvY2tzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwv R2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+Cisg ICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNYWNQbGF0Zm9ybS54 bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdy b3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFz ZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zMiw4 ICszMiw4IEBACiAgICAgPENvbnNvbGVQYXVzZT5GYWxzZTwvQ29uc29sZVBhdXNlPgogICAgIDxB bGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9BbGxvd1Vuc2FmZUJsb2Nrcz4KICAgICA8RGVidWdTeW1i b2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8 L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgor ICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcTWFjUGxhdGZvcm0u eG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3Vw PgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2RpZmllZDogbWFpbi9z cmMvYWRkaW5zL01vbm9EZXZlbG9wLkFzc2VtYmx5QnJvd3Nlci9Nb25vRGV2ZWxvcC5Bc3NlbWJs eUJyb3dzZXIuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjQsOCArMjQsOCBAQAogICAgIDwvRXhl Y3V0aW9uPgogICAgIDxBc3NlbWJseU9yaWdpbmF0b3JLZXlGaWxlPi48L0Fzc2VtYmx5T3JpZ2lu YXRvcktleUZpbGU+CiAgICAgPEFsbG93VW5zYWZlQmxvY2tzPlRydWU8L0FsbG93VW5zYWZlQmxv Y2tzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0 aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25G aWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xEaXNwbGF5QmluZGluZ3NcQXNzZW1ibHlCcm93c2Vy XE1vbm9EZXZlbG9wLkFzc2VtYmx5QnJvd3Nlci54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8 L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3Vy YXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlw ZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zOSw4ICszOSw4IEBACiAgICAgPC9FeGVjdXRpb24+ CiAgICAgPEFsbG93VW5zYWZlQmxvY2tzPlRydWU8L0FsbG93VW5zYWZlQmxvY2tzPgogICAgIDxE ZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRp b24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9O b1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xEaXNw bGF5QmluZGluZ3NcQXNzZW1ibHlCcm93c2VyXE1vbm9EZXZlbG9wLkFzc2VtYmx5QnJvd3Nlci54 bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+ CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJNb25vLlBvc2l4IiAvPg0KDQpNb2RpZmllZDogbWFp bi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLkF1dG90b29scy9Nb25vRGV2ZWxvcC5BdXRvdG9vbHMu Y3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpAQCAtMjEsOSArMjEsOSBAQAogICAgIDxFeGVjdXRpb24+CiAg ICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9u PgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9u PgogICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KICAgICA8Tm9X YXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxi dWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuQXV0b3Rvb2xzXE1vbm9EZXZlbG9wLkF1dG90b29scy54 bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdy b3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFz ZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNiw4 ICszNiw4IEBACiAgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAg IDwvRXhlY3V0aW9uPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAg IDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAg IDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4u XC4uXGJ1aWxkXEFkZEluc1xNb25vRGV2ZWxvcC5BdXRvdG9vbHNcTW9ub0RldmVsb3AuQXV0b3Rv b2xzLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1H cm91cD4KICAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlwuLlxjb3JlXE1vbm9EZXZl bG9wLklkZVxNb25vRGV2ZWxvcC5JZGUuY3Nwcm9qIj4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2Fk ZGlucy9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0L01vbm9EZXZlbG9wLkRlYnVnZ2VyLlNvZnQu QXNwTmV0L01vbm9EZXZlbG9wLkRlYnVnZ2VyLlNvZnQuQXNwTmV0LmNzcHJvag0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTE4LDggKzE4LDggQEAKICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVD b25zdGFudHM+CiAgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdh cm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50 cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fy bj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9E ZXZlbG9wLkRlYnVnZ2VyLlNvZnRcTW9ub0RldmVsb3AuRGVidWdnZXIuU29mdC5Bc3BOZXQueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMjgsOCAr MjgsOCBAQAogICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJu aW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdT eW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVu dGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRp b25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0 XE1vbm9EZXZlbG9wLkRlYnVnZ2VyLlNvZnQuQXNwTmV0LnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+ CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1 ZGU9IlN5c3RlbSIgLz4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9Nb25vRGV2ZWxvcC5E ZWJ1Z2dlci5Tb2Z0L01vbm9EZXZlbG9wLkRlYnVnZ2VyLlNvZnQvTW9ub0RldmVsb3AuRGVidWdn ZXIuU29mdC5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xOSw4ICsxOSw4IEBACiAgICAgPEVycm9y UmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5n TGV2ZWw+CiAgICAgPENvbnNvbGVQYXVzZT5GYWxzZTwvQ29uc29sZVBhdXNlPgotICAgIDxHZW5l cmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dh cm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXC4u XGJ1aWxkXEFkZEluc1xNb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0XE1vbm9EZXZlbG9wLkRlYnVn Z2VyLlNvZnQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8 UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScg PT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBl PgpAQCAtMzAsOCArMzAsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgog ICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVzZT4KICAgICA8RGVidWdTeW1ib2xz PnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dl bmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAg IDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3Au RGVidWdnZXIuU29mdFxNb25vRGV2ZWxvcC5EZWJ1Z2dlci5Tb2Z0LnhtbDwvRG9jdW1lbnRhdGlv bkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNl IEluY2x1ZGU9IlN5c3RlbSIgLz4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9Nb25vRGV2 ZWxvcC5EZWJ1Z2dlci5XaW4zMi9Nb25vRGV2ZWxvcC5EZWJ1Z2dlci5XaW4zMi9Nb25vRGV2ZWxv cC5EZWJ1Z2dlci5XaW4zMi5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC01NSwxMyArNTUsMTMgQEAK ICAgPEl0ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4KICAgICA8 UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbS5Db3JlIj4KLSAgICAgIDxSZXF1aXJlZFRhcmdldEZy YW1ld29yaz4zLjU8L1JlcXVpcmVkVGFyZ2V0RnJhbWV3b3JrPgorICAgICAgPFJlcXVpcmVkVGFy Z2V0RnJhbWV3b3JrPjQuMDwvUmVxdWlyZWRUYXJnZXRGcmFtZXdvcms+CiAgICAgPC9SZWZlcmVu Y2U+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0uWG1sLkxpbnEiPgotICAgICAgPFJl cXVpcmVkVGFyZ2V0RnJhbWV3b3JrPjMuNTwvUmVxdWlyZWRUYXJnZXRGcmFtZXdvcms+CisgICAg ICA8UmVxdWlyZWRUYXJnZXRGcmFtZXdvcms+NC4wPC9SZXF1aXJlZFRhcmdldEZyYW1ld29yaz4K ICAgICA8L1JlZmVyZW5jZT4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbS5EYXRhLkRh dGFTZXRFeHRlbnNpb25zIj4KLSAgICAgIDxSZXF1aXJlZFRhcmdldEZyYW1ld29yaz4zLjU8L1Jl cXVpcmVkVGFyZ2V0RnJhbWV3b3JrPgorICAgICAgPFJlcXVpcmVkVGFyZ2V0RnJhbWV3b3JrPjQu MDwvUmVxdWlyZWRUYXJnZXRGcmFtZXdvcms+CiAgICAgPC9SZWZlcmVuY2U+CiAgICAgPFJlZmVy ZW5jZSBJbmNsdWRlPSJTeXN0ZW0uRGF0YSIgLz4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5 c3RlbS5YbWwiIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuRGVz aWduZXJTdXBwb3J0L01vbm9EZXZlbG9wLkRlc2lnbmVyU3VwcG9ydC5jc3Byb2oNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCkBAIC0yMCw5ICsyMCw5IEBACiAgICAgPEV4ZWN1dGlvbj4KICAgICAgIDxFeGVjdXRpb24g Y2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+Ci0gICAgPEdlbmVyYXRl RG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNv bnN0YW50cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9O b1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNb25v RGV2ZWxvcC5EZXNpZ25lclN1cHBvcnRcTW9ub0RldmVsb3AuRGVzaWduZXJTdXBwb3J0LnhtbDwv RG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAg Q29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFu eUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTM0LDggKzM0 LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9F eGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdl bmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5v V2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5c YnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLkRlc2lnbmVyU3VwcG9ydFxNb25vRGV2ZWxvcC5EZXNp Z25lclN1cHBvcnQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgog ICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2Rp ZmllZDogbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLkRvY0Zvb2QvTW9ub0RldmVsb3AuRG9j Rm9vZC5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yNCw4ICsyNCw4IEBACiAgICAgICAgIDxDb21t YW5kIHR5cGU9IkV4ZWN1dGUiIGNvbW1hbmQ9Ii4uLy4uLy4uL21haW4vYnVpbGQvYmluL01vbm9E ZXZlbG9wLmV4ZSIgLz4KICAgICAgIDwvQ3VzdG9tQ29tbWFuZHM+CiAgICAgPC9DdXN0b21Db21t YW5kcz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRh dGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9u RmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcQmFja2VuZEJpbmRpbmdzXE1vbm9EZXZlbG9wLkRv Y0Zvb2QueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJv cGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0g J1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpA QCAtMzUsOCArMzUsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAg IDxFeHRlcm5hbGNvbnNvbGU+VHJ1ZTwvRXh0ZXJuYWxjb25zb2xlPgogICAgIDxEZWJ1Z1N5bWJv bHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwv R2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+Cisg ICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xCYWNrZW5kQmluZGlu Z3NcTW9ub0RldmVsb3AuRG9jRm9vZC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3Bl cnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0i IC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuR2V0dGV4dC9Nb25v RGV2ZWxvcC5HZXR0ZXh0LmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIxLDkgKzIxLDkgQEAKICAg ICA8RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4K ICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVy YXRlRG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25z dGFudHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlv bkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXERpc3BsYXlCaW5kaW5nc1xHZXR0ZXh0XE1vbm9E ZXZlbG9wLkdldHRleHQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3Vw PgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRm b3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVi dWdUeXBlPgpAQCAtMzUsOCArMzUsOCBAQAogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0i TmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0Rl YnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9j dW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVu dGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcRGlzcGxheUJpbmRpbmdzXEdldHRleHRc TW9ub0RldmVsb3AuR2V0dGV4dC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5 R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+ DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuR3RrQ29yZS9Nb25vRGV2 ZWxvcC5HdGtDb3JlLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIwLDkgKzIwLDkgQEAKICAgICA8 RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAg ICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRl RG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFu dHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLkd0a0NvcmVcTW9ub0RldmVsb3Au R3RrQ29yZS54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQ cm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9 PSAnUmVsZWFzZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+ CkBAIC0zNCw4ICszNCw4IEBACiAgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8w IiAvPgogICAgIDwvRXhlY3V0aW9uPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1i b2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0 aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25G aWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNb25vRGV2ZWxvcC5HdGtDb3JlXE1vbm9EZXZlbG9w Lkd0a0NvcmUueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8 SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2RpZmll ZDogbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLkd0a0NvcmUvbGlic3RldGljL2xpYnN0ZXRp Yy5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMSw4ICsyMSw4IEBACiAgICAgPEV4ZWN1dGlvbj4K ICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRp b24+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRp b24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLkd0a0NvcmVcbGlic3RldGlj LnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5 R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxl YXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTM0 LDggKzM0LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAg ICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0g ICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAg ICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Ymlu XFJlbGVhc2VcbGlic3RldGljLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlH cm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Ik1vbm8uUG9zaXgi IC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuR3RrQ29yZS9saWJz dGV0aWN1aS9saWJzdGV0aWN1aS5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMyw4ICsyMyw4IEBA CiAgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0 aW9uPgogICAgIDxBbGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9BbGxvd1Vuc2FmZUJsb2Nrcz4KLSAg ICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAg ICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwu LlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuR3RrQ29yZVxsaWJzdGV0aWN1aS54bWw8 L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3Vw IENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxB bnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNyw4ICsz Nyw4IEBACiAgICAgPC9FeGVjdXRpb24+CiAgICAgPEFsbG93VW5zYWZlQmxvY2tzPlRydWU8L0Fs bG93VW5zYWZlQmxvY2tzPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgot ICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgog ICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPmJp blxSZWxlYXNlXGxpYnN0ZXRpY3VpLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVy dHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Ik1vbm8uUG9z aXgiIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuSGV4RWRpdG9y L01vbm9EZXZlbG9wLkhleEVkaXRvci5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xOCw4ICsxOCw4 IEBACiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgogICAgIDxF cnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2Fy bmluZ0xldmVsPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1 bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50 YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xEaXNwbGF5QmluZGluZ3NcSGV4RWRpdG9y XE1vbm9EZXZlbG9wLkhleEVkaXRvci54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3Bl cnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24p fCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJv bmx5PC9EZWJ1Z1R5cGU+CkBAIC0yOCw4ICsyOCw4IEBACiAgICAgPEVycm9yUmVwb3J0PnByb21w dDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAg PERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRh dGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8 L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXERp c3BsYXlCaW5kaW5nc1xIZXhFZGl0b3JcTW9ub0RldmVsb3AuSGV4RWRpdG9yLnhtbDwvRG9jdW1l bnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UmVm ZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9N b25vRGV2ZWxvcC5SZWdleFRvb2xraXQvTW9ub0RldmVsb3AuUmVnZXhUb29sa2l0LmNzcHJvag0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KQEAgLTIxLDkgKzIxLDkgQEAKICAgICA8RXhlY3V0aW9uPgogICAgICAgPEV4 ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8 R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8 RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+CiAgICAgPE5vV2Fybj4xNTkx OzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRk SW5zXE1vbm9EZXZlbG9wLlJlZ2V4VG9vbGtpdFxNb25vRGV2ZWxvcC5SZWdleFRvb2xraXQueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzYsOCAr MzYsOCBAQAogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8 L0V4ZWN1dGlvbj4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8 R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8 Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwu LlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuUmVnZXhUb29sa2l0XE1vbm9EZXZlbG9wLlJlZ2V4 VG9vbGtpdC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJ dGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJNb25vLlBvc2l4IiAvPg0KDQpNb2Rp ZmllZDogbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wLldlYlJlZmVyZW5jZXMvTW9ub0RldmVs b3AuV2ViUmVmZXJlbmNlcy5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMiw4ICsyMiw4IEBACiAg ICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9u PgogICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KLSAgICA8R2Vu ZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9X YXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxi dWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuV2ViUmVmZXJlbmNlc1xNb25vRGV2ZWxvcC5XZWJSZWZl cmVuY2VzLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFBy b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09 ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4K QEAgLTM2LDggKzM2LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAi IC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJv bHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRp b24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLldlYlJlZmVyZW5jZXNcTW9ub0Rl dmVsb3AuV2ViUmVmZXJlbmNlcy54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5 R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+ DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTW9ub0RldmVsb3AuWG1sRWRpdG9yL01vbm9E ZXZlbG9wLlhtbEVkaXRvci5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMiw5ICsyMiw5IEBACiAg ICAgPEV4ZWN1dGlvbj4KICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+ CiAgICAgPC9FeGVjdXRpb24+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5l cmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVmaW5lQ29u c3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRp b25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xNb25vRGV2ZWxvcC5YbWxFZGl0b3JcTW9ub0Rl dmVsb3AuWG1sRWRpdG9yLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91 cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0 Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0Rl YnVnVHlwZT4KQEAgLTM4LDggKzM4LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249 Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9E ZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURv Y3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1l bnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLlhtbEVkaXRvclxN b25vRGV2ZWxvcC5YbWxFZGl0b3IueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0 eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAv Pg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wZXJFeHRlbnNpb25zL01v bm9EZXZlbG9wZXJFeHRlbnNpb25zLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIwLDkgKzIwLDkg QEAKICAgICA8RXhlY3V0aW9uPgogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJf MCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8 L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZp bmVDb25zdGFudHM+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1l bnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wZXJFeHRlbnNpb25z XE1vbm9EZXZlbG9wZXJFeHRlbnNpb25zLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJv cGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlv bil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBk Ym9ubHk8L0RlYnVnVHlwZT4KQEAgLTM0LDggKzM0LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xy LXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9s cz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9H ZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAg ICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wZXJF eHRlbnNpb25zXE1vbm9EZXZlbG9wZXJFeHRlbnNpb25zLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+ CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UHJvamVjdFJlZmVyZW5j ZSBJbmNsdWRlPSIuLlwuLlxjb3JlXE1vbm9EZXZlbG9wLkNvcmVcTW9ub0RldmVsb3AuQ29yZS5j c3Byb2oiPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL01vbm9EZXZlbG9wZXJFeHRlbnNp b25zL05Vbml0L05Vbml0LmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIxLDkgKzIxLDkgQEAKICAg ICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+ CiAgICAgPEFzc2VtYmx5TmFtZT5Nb25vRGV2ZWxvcGVyRXh0ZW5zaW9uc19udW5pdDwvQXNzZW1i bHlOYW1lPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVu dGF0aW9uPgogICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KICAg ICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwu LlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3BlckV4dGVuc2lvbnNcTW9ub0RldmVsb3Bl ckV4dGVuc2lvbnNfbnVuaXQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdy b3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBs YXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwv RGVidWdUeXBlPgpAQCAtMzcsOCArMzcsOCBAQAogICAgIDwvRXhlY3V0aW9uPgogICAgIDxBc3Nl bWJseU5hbWU+TlVuaXQ8L0Fzc2VtYmx5TmFtZT4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0Rl YnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9j dW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVu dGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3BlckV4dGVuc2lv bnNcTlVuaXQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8 SXRlbUdyb3VwPgogICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXE1vbm9EZXZlbG9w ZXJFeHRlbnNpb25zLmNzcHJvaiI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTlVuaXQv TW9ub0RldmVsb3AuTlVuaXQuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjAsOSArMjAsOSBAQAog ICAgIDxFeGVjdXRpb24+CiAgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAv PgogICAgIDwvRXhlY3V0aW9uPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2Vu ZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNv bnN0YW50cz4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0 aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcTlVuaXRcTW9ub0RldmVsb3AuTlVuaXQueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzQsOCAr MzQsOCBAQAogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8 L0V4ZWN1dGlvbj4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8 R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8 Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwu LlxidWlsZFxBZGRJbnNcTlVuaXRcTW9ub0RldmVsb3AuTlVuaXQueG1sPC9Eb2N1bWVudGF0aW9u RmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2Ug SW5jbHVkZT0ibnVuaXQuY29yZSI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTlVuaXQv TlVuaXRSdW5uZXIvTlVuaXRSdW5uZXIuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTksOCArMTks OCBAQAogICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5n TGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQ YXVzZT4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRh dGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9u RmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJbnNcTlVuaXRcTlVuaXRSdW5uZXIueG1sPC9Eb2N1 bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25k aXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BV JyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzAsOCArMzAsOCBA QAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+ RmFsc2U8L0NvbnNvbGVQYXVzZT4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9s cz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlv bj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmls ZT5iaW5cUmVsZWFzZVxOVW5pdFJ1bm5lci54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1By b3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0 ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvVGV4dFRlbXBsYXRpbmcvTW9uby5U ZXh0VGVtcGxhdGluZy9Nb25vLlRleHRUZW1wbGF0aW5nLmNzcHJvag0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAg LTE5LDggKzE5LDggQEAKICAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KICAg ICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8Q29uc29sZVBhdXNlPkZhbHNl PC9Db25zb2xlUGF1c2U+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0 ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9j dW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLlRleHRU ZW1wbGF0aW5nXE1vbm8uVGV4dFRlbXBsYXRpbmcueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAg PC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1 cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5 cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzAsOCArMzAsOCBAQAogICAgIDxXYXJuaW5nTGV2 ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVz ZT4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVE b2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1 OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWls ZFxBZGRJbnNcTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmdcTW9uby5UZXh0VGVtcGxhdGluZy54 bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+ CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3Ny Yy9hZGRpbnMvVGV4dFRlbXBsYXRpbmcvTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmcvTW9ub0Rl dmVsb3AuVGV4dFRlbXBsYXRpbmcuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTksOCArMTksOCBA QAogICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5nTGV2 ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVz ZT4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlv bj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmls ZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmdcTW9u b0RldmVsb3AuVGV4dFRlbXBsYXRpbmcueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9w ZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9u KXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRi b25seTwvRGVidWdUeXBlPgpAQCAtMzAsOCArMzAsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwv V2FybmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVzZT4KICAg ICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVu dGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3 MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJ bnNcTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmdcTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmcu eG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3Vw PgogICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLlRleHRUZW1wbGF0 aW5nLmFkZGluLnhtbCI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvVGV4dFRlbXBsYXRp bmcvVGV4dFRyYW5zZm9ybS9UZXh0VHJhbnNmb3JtLmNzcHJvag0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTE5 LDggKzE5LDggQEAKICAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KICAgICA8 V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8Q29tbWFuZGxpbmVwYXJhbWV0ZXJz Pi1vOm91dC50eHQgaW4udHQ8L0NvbW1hbmRsaW5lcGFyYW1ldGVycz4KLSAgICA8R2VuZXJhdGVE b2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1 OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWls ZFxBZGRJbnNcTW9ub0RldmVsb3AuVGV4dFRlbXBsYXRpbmdcVGV4dFRyYW5zZm9ybS54bWw8L0Rv Y3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENv bmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlD UFUnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0yOSw4ICsyOSw4 IEBACiAgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdM ZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJv bHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRp b24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLlRleHRUZW1wbGF0aW5nXFRl eHRUcmFuc2Zvcm0ueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgog ICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2Rp ZmllZDogbWFpbi9zcmMvYWRkaW5zL1ZCTmV0QmluZGluZy9WQk5ldEJpbmRpbmcuY3Nwcm9qDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQpAQCAtMjAsOSArMjAsOSBAQAogICAgIDxFeGVjdXRpb24+CiAgICAgICA8RXhl Y3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9uPgotICAgIDxH ZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxE ZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KICAgICA8Tm9XYXJuPjE1OTE7 MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJ bnNcQmFja2VuZEJpbmRpbmdzXE1vbm9EZXZlbG9wLlZCTmV0QmluZGluZy54bWw8L0RvY3VtZW50 YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlv bj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+ CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNCw4ICszNCw4IEBACiAg ICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgogICAgIDwvRXhlY3V0aW9u PgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURv Y3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5 MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFk ZEluc1xCYWNrZW5kQmluZGluZ3NcTW9ub0RldmVsb3AuVkJOZXRCaW5kaW5nLnhtbDwvRG9jdW1l bnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1Hcm91cD4KICAgICA8UHJv amVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlwuLlxjb3JlXE1vbm9EZXZlbG9wLkNvcmVcTW9ub0Rl dmVsb3AuQ29yZS5jc3Byb2oiPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL1ZlcnNpb25D b250cm9sL01vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sLkdpdC9Nb25vRGV2ZWxvcC5WZXJzaW9u Q29udHJvbC5HaXQuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTksOCArMTksOCBAQAogICAgIDxF cnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2Fy bmluZ0xldmVsPgogICAgIDxDb25zb2xlUGF1c2U+RmFsc2U8L0NvbnNvbGVQYXVzZT4KLSAgICA8 R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8 Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwu LlwuLlxidWlsZFxBZGRJbnNcVmVyc2lvbkNvbnRyb2xcTW9ub0RldmVsb3AuVmVyc2lvbkNvbnRy b2wuR2l0LnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFBy b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09 ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4K QEAgLTMwLDggKzMwLDggQEAKICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAg ICA8Q29uc29sZVBhdXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+CiAgICAgPERlYnVnU3ltYm9scz50 cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5l cmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8 RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5zXFZlcnNpb25Db250cm9s XE1vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sLkdpdC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgog ICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRl PSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvVmVyc2lvbkNvbnRyb2wv TW9ub0RldmVsb3AuVmVyc2lvbkNvbnRyb2wuU3VidmVyc2lvbi5Vbml4L01vbm9EZXZlbG9wLlZl cnNpb25Db250cm9sLlN1YnZlcnNpb24uVW5peC5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMCw4 ICsyMCw4IEBACiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPENvbnNv bGVQYXVzZT5GYWxzZTwvQ29uc29sZVBhdXNlPgogICAgIDxBbGxvd1Vuc2FmZUJsb2Nrcz5UcnVl PC9BbGxvd1Vuc2FmZUJsb2Nrcz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dl bmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAg IDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlwuLlxidWlsZFxBZGRJbnNcVmVyc2lvbkNvbnRy b2xcTW9ub0RldmVsb3AuVmVyc2lvbkNvbnRyb2wuU3VidmVyc2lvbi5Vbml4LnhtbDwvRG9jdW1l bnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0 aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScg Ij4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTMyLDggKzMyLDggQEAK ICAgICA8Q29uc29sZVBhdXNlPkZhbHNlPC9Db25zb2xlUGF1c2U+CiAgICAgPEFsbG93VW5zYWZl QmxvY2tzPlRydWU8L0FsbG93VW5zYWZlQmxvY2tzPgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwv RGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVE b2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3Vt ZW50YXRpb25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xWZXJzaW9uQ29udHJvbFxNb25v RGV2ZWxvcC5WZXJzaW9uQ29udHJvbC5TdWJ2ZXJzaW9uLlVuaXgueG1sPC9Eb2N1bWVudGF0aW9u RmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2Ug SW5jbHVkZT0iU3lzdGVtIiAvPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL1ZlcnNpb25D b250cm9sL01vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sLlN1YnZlcnNpb24vTW9ub0RldmVsb3Au VmVyc2lvbkNvbnRyb2wuU3VidmVyc2lvbi5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMSw5ICsy MSw5IEBACiAgICAgPEV4ZWN1dGlvbj4KICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5l dF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50 cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwv RGVmaW5lQ29uc3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERv Y3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXC4uXGJ1aWxkXEFkZEluc1xWZXJzaW9uQ29udHJvbFxN b25vRGV2ZWxvcC5WZXJzaW9uQ29udHJvbC5TdWJ2ZXJzaW9uLnhtbDwvRG9jdW1lbnRhdGlvbkZp bGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQo Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8 RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTM2LDggKzM2LDggQEAKICAgICAgIDxF eGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAg PERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRh dGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8 L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cLi5cYnVpbGRcQWRkSW5z XFZlcnNpb25Db250cm9sXE1vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sLlN1YnZlcnNpb24ueG1s PC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgog ICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXC4uXC4uXGNvcmVcTW9ub0RldmVsb3Au Q29yZVxNb25vRGV2ZWxvcC5Db3JlLmNzcHJvaiI+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRp bnMvV2luZG93c1BsYXRmb3JtL1dpbmRvd3NQbGF0Zm9ybS5jc3Byb2oNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBA IC0xOSw4ICsxOSw4IEBACiAgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAg ICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPEFsbG93VW5zYWZlQmxvY2tz PlRydWU8L0FsbG93VW5zYWZlQmxvY2tzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1 ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+ CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXEFkZEluc1xXaW5kb3dzUGxh dGZvcm0ueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJv cGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0g J1JlbGVhc2V8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpA QCAtMzAsOCArMzAsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAg IDxBbGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9BbGxvd1Vuc2FmZUJsb2Nrcz4KICAgICA8RGVidWdT eW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRy dWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJu PgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcV2luZG93c1Bs YXRmb3JtLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0 ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Imdkay1zaGFycCwgVmVyc2lvbj0yLjEy LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zNWUxMDE5NWRhYjNjOTlmIiAv Pg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9wcmoybWFr ZS1zaGFycC1saWIuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjEsOCArMjEsOCBAQAogICAgICAg PEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KICAg ICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+Ci0gICAgPEdlbmVyYXRl RG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4x NTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRc QWRkSW5zXE1vbm9EZXZlbG9wLk1zVmlzdWFsU3R1ZGlvXE1vbm9EZXZlbG9wLk1zVmlzdWFsU3R1 ZGlvLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3Bl cnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdS ZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAg LTM1LDggKzM1LDggQEAKICAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+ CiAgICAgPC9FeGVjdXRpb24+CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+ Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+ CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+ Li5cLi5cLi5cYnVpbGRcQWRkSW5zXE1vbm9EZXZlbG9wLk1zVmlzdWFsU3R1ZGlvXHByajJtYWtl LXNoYXJwLWxpYi54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAg IDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlm aWVkOiBtYWluL3NyYy9jb3JlL01vbm8uVGV4dGVkaXRvci9Nb25vLlRleHRFZGl0b3IuY3Nwcm9q DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpAQCAtMjEsOSArMjEsOSBAQAogICAgICAgPEV4ZWN1dGlvbiBjbHItdmVy c2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4KICAgICA8QWxsb3dVbnNhZmVCbG9j a3M+VHJ1ZTwvQWxsb3dVbnNhZmVCbG9ja3M+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50 cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRzwv RGVmaW5lQ29uc3RhbnRzPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERv Y3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXGJpblxNb25vLlRleHRFZGl0b3IueG1sPC9E b2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBD b25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55 Q1BVJyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzYsOCArMzYs OCBAQAogICAgIDwvRXhlY3V0aW9uPgogICAgIDxBbGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9BbGxv d1Vuc2FmZUJsb2Nrcz4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAg ICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAg ICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwu LlwuLlxidWlsZFxiaW5cTW9uby5UZXh0RWRpdG9yLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAg IDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmln dXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdTdGFuZGFsb25lfEFueUNQVScgIj4KICAgICA8RGVi dWdUeXBlPm5vbmU8L0RlYnVnVHlwZT4KQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICA8Q2hlY2tGb3JP dmVyZmxvd1VuZGVyZmxvdz5UcnVlPC9DaGVja0Zvck92ZXJmbG93VW5kZXJmbG93PgogICAgIDxB bGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9BbGxvd1Vuc2FmZUJsb2Nrcz4KICAgICA8Tm9XYXJuPjE1 OTE7MTU3MzwvTm9XYXJuPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJh dGVEb2N1bWVudGF0aW9uPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT5iaW5cU3RhbmRhbG9uZVxN b25vLlRleHRFZGl0b3IueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3Vw PgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iTW9uby5Qb3NpeCIgLz4N Cg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuQ29yZS9Nb25vRGV2ZWxvcC5D b3JlLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTUxLDggKzUxLDggQEAKICAgICA8L0V4ZWN1dGlv bj4KICAgICA8QWxsb3dVbnNhZmVCbG9ja3M+VHJ1ZTwvQWxsb3dVbnNhZmVCbG9ja3M+CiAgICAg PERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgotICAgIDxHZW5lcmF0ZURv Y3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5 MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXGJp blxNb25vRGV2ZWxvcC5Db3JlLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlH cm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQ bGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8 L0RlYnVnVHlwZT4KQEAgLTY1LDggKzY1LDggQEAKICAgICA8L0V4ZWN1dGlvbj4KICAgICA8QWxs b3dVbnNhZmVCbG9ja3M+VHJ1ZTwvQWxsb3dVbnNhZmVCbG9ja3M+CiAgICAgPERlYnVnU3ltYm9s cz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9H ZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAg ICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXE1vbm9EZXZlbG9wLkNvcmUu eG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlH cm91cCBDb25kaXRpb249IickKEJVSUxEX1JFVklTSU9OKScgIT0gJyciPgogICAgIDxEZWZpbmVD b25zdGFudHM+JChEZWZpbmVDb25zdGFudHMpO0VOQUJMRV9SQVlHVU48L0RlZmluZUNvbnN0YW50 cz4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0 cy5NU0J1aWxkL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC5jc3Byb2oNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCkBAIC0xOSw4ICsxOSw4IEBACiAgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJy b3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPFBsYXRm b3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlv bj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05v V2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXE1vbm9EZXZl bG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8 L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3Vy YXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+CiAgICAgPERlYnVnVHlwZT5w ZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zMCw4ICszMCw4IEBACiAgICAgPFdhcm5pbmdMZXZlbD40 PC9XYXJuaW5nTGV2ZWw+CiAgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+ CiAgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9j dW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkx OzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmlu XE1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC54bWw8L0RvY3VtZW50YXRpb25G aWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJ bmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9w LlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC9Nb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1T QnVpbGQuZG90bmV0LnY0LjAuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjAsOCArMjAsOCBAQAog ICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5nTGV2ZWw+ NDwvV2FybmluZ0xldmVsPgogICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0 PgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9u PgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxl Pi4uXC4uXC4uXGJ1aWxkXGJpblxNU0J1aWxkXGRvdG5ldC40LjBcTW9ub0RldmVsb3AuUHJvamVj dHMuRm9ybWF0cy5NU0J1aWxkLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlH cm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQ bGF0Zm9ybSknID09ICdSZWxlYXNlfHg4NicgIj4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0Rl YnVnVHlwZT4KQEAgLTMxLDggKzMxLDggQEAKICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdM ZXZlbD4KICAgICA8UGxhdGZvcm1UYXJnZXQ+eDg2PC9QbGF0Zm9ybVRhcmdldD4KICAgICA8RGVi dWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9u PnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9X YXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxiaW5cTVNCdWlsZFxk b3RuZXQuNC4wXE1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC54bWw8L0RvY3Vt ZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJl ZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9jb3JlL01v bm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC9Nb25vRGV2ZWxvcC5Qcm9qZWN0cy5G b3JtYXRzLk1TQnVpbGQudjIuMC5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yMSw4ICsyMSw4IEBA CiAgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CiAgICAgPFdhcm5pbmdMZXZl bD40PC9XYXJuaW5nTGV2ZWw+CiAgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJn ZXQ+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRp b24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZp bGU+Li5cLi5cLi5cYnVpbGRcYmluXE1TQnVpbGRcMi4wXE1vbm9EZXZlbG9wLlByb2plY3RzLkZv cm1hdHMuTVNCdWlsZC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+ CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv cm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+CiAgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5 cGU+CkBAIC0zMiw4ICszMiw4IEBACiAgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+ CiAgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+CiAgICAgPERlYnVnU3lt Ym9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVl PC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4K KyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXE1TQnVpbGRcMi4wXE1v bm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC54bWw8L0RvY3VtZW50YXRpb25GaWxl PgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVyZW5jZSBJbmNs dWRlPSJTeXN0ZW0iPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Qcm9q ZWN0cy5Gb3JtYXRzLk1TQnVpbGQvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1aWxk LnYzLjUuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjEsOCArMjEsOCBAQAogICAgIDxFcnJvclJl cG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xl dmVsPgogICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0PgotICAgIDxHZW5l cmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dh cm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1 aWxkXGJpblxNU0J1aWxkXDMuNVxNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1TQnVpbGQu eG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlH cm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVh c2V8eDg2JyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzIsOCAr MzIsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxQbGF0Zm9y bVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0PgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVi dWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1 bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50 YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXGJpblxNU0J1aWxkXDMuNVxNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5Gb3JtYXRzLk1TQnVpbGQueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0 eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIj4N Cg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5N U0J1aWxkL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTVNCdWlsZC52NC4wLmNzcHJvag0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KQEAgLTE5LDggKzE5LDggQEAKICAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9F cnJvclJlcG9ydD4KICAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8UGxh dGZvcm1UYXJnZXQ+eDg2PC9QbGF0Zm9ybVRhcmdldD4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0 aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3Mzwv Tm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxiaW5cTVNCdWls ZFw0LjBcTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1aWxkLnhtbDwvRG9jdW1lbnRh dGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9u PSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfHg4NicgIj4KICAg ICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTMwLDggKzMwLDggQEAKICAgICA8 V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KICAgICA8UGxhdGZvcm1UYXJnZXQ+eDg2PC9Q bGF0Zm9ybVRhcmdldD4KICAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAg ICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4KICAg ICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwu LlwuLlxidWlsZFxiaW5cTVNCdWlsZFw0LjBcTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5N U0J1aWxkLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0 ZW1Hcm91cD4KICAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4NCg0KTW9kaWZpZWQ6 IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuU3RhcnR1cC9Nb25vRGV2ZWxvcC5TdGFydHVwLmNz cHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KQEAgLTI4LDggKzI4LDggQEAKICAgICA8RXhlY3V0aW9uPgogICAg ICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KICAgICA8L0V4ZWN1dGlvbj4K LSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVyYXRlRG9jdW1lbnRhdGlvbj4K ICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4u LlwuLlwuLlxidWlsZFxiaW5cTW9ub0RldmVsb3AueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAg PC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1 cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8eDg2JyAiPgogICAgIDxEZWJ1Z1R5cGU+ cGRib25seTwvRGVidWdUeXBlPgpAQCAtMzgsOCArMzgsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+ NDwvV2FybmluZ0xldmVsPgogICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0 PgogICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURv Y3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5 MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPmJpblxSZWxlYXNlXE1vbm9E ZXZlbG9wLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFBy b3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09 ICdEZWJ1Z3xBbnlDUFUnICI+CiAgICAgPERlYnVnU3ltYm9scz5UcnVlPC9EZWJ1Z1N5bWJvbHM+ DQoNCk1vZGlmaWVkOiBtYWluL3NyYy90b29scy9tZGhvc3QvbWRob3N0LmNzcHJvag0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KQEAgLTIyLDggKzIyLDggQEAKICAgICA8L0V4ZWN1dGlvbj4KICAgICA8UGxhdGZvcm1U YXJnZXQ+eDg2PC9QbGF0Zm9ybVRhcmdldD4KICAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9E ZWZpbmVDb25zdGFudHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0 ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9j dW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXG1kaG9zdC54bWw8L0RvY3VtZW50YXRp b25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0i ICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+CiAgICAg PERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CkBAIC0zNSw4ICszNSw4IEBACiAgICAgPC9F eGVjdXRpb24+CiAgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+CiAgICAg PERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRh dGlvbj50cnVlPC9HZW5lcmF0ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8 L05vV2Fybj4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXG1kaG9z dC54bWw8L0RvY3VtZW50YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3Jv dXA+CiAgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cLi5cY29yZVxNb25vRGV2ZWxv cC5Db3JlXE1vbm9EZXZlbG9wLkNvcmUuY3Nwcm9qIj4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL3Rv b2xzL21kbW9uaXRvci9tZG1vbml0b3IuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjAsOCArMjAs OCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAgIDxQbGF0Zm9ybVRh cmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0PgogICAgIDxBbGxvd1Vuc2FmZUJsb2Nrcz5UcnVlPC9B bGxvd1Vuc2FmZUJsb2Nrcz4KLSAgICA8R2VuZXJhdGVEb2N1bWVudGF0aW9uPnRydWU8L0dlbmVy YXRlRG9jdW1lbnRhdGlvbj4KICAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgorICAgIDxE b2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxiaW5cbWRtb25pdG9yLnhtbDwvRG9jdW1l bnRhdGlvbkZpbGU+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0 aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScg Ij4KICAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KQEAgLTMyLDggKzMyLDggQEAK ICAgICA8QWxsb3dVbnNhZmVCbG9ja3M+VHJ1ZTwvQWxsb3dVbnNhZmVCbG9ja3M+CiAgICAgPFBs YXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+CiAgICAgPERlYnVnU3ltYm9scz50cnVl PC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPEdlbmVyYXRlRG9jdW1lbnRhdGlvbj50cnVlPC9HZW5lcmF0 ZURvY3VtZW50YXRpb24+CiAgICAgPE5vV2Fybj4xNTkxOzE1NzM8L05vV2Fybj4KKyAgICA8RG9j dW1lbnRhdGlvbkZpbGU+Li5cLi5cLi5cYnVpbGRcYmluXG1kbW9uaXRvci54bWw8L0RvY3VtZW50 YXRpb25GaWxlPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAgPFJlZmVy ZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy90b29scy9tZHRv b2wvbWR0b29sLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIyLDggKzIyLDggQEAKICAgICAgIDxF eGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+CiAgICAgPC9FeGVjdXRpb24+CiAgICAg PERlZmluZUNvbnN0YW50cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgotICAgIDxHZW5lcmF0ZURv Y3VtZW50YXRpb24+dHJ1ZTwvR2VuZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5 MTsxNTczPC9Ob1dhcm4+CisgICAgPERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXGJp blxtZHRvb2wueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8 UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScg PT0gJ1JlbGVhc2V8eDg2JyAiPgogICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgpA QCAtMzEsOCArMzEsOCBAQAogICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgogICAg IDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0PgogICAgIDxEZWJ1Z1N5bWJvbHM+ dHJ1ZTwvRGVidWdTeW1ib2xzPgotICAgIDxHZW5lcmF0ZURvY3VtZW50YXRpb24+dHJ1ZTwvR2Vu ZXJhdGVEb2N1bWVudGF0aW9uPgogICAgIDxOb1dhcm4+MTU5MTsxNTczPC9Ob1dhcm4+CisgICAg PERvY3VtZW50YXRpb25GaWxlPi4uXC4uXC4uXGJ1aWxkXGJpblxtZHRvb2wueG1sPC9Eb2N1bWVu dGF0aW9uRmlsZT4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxQcm9q ZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXC4uXGNvcmVcTW9ub0RldmVsb3AuQ29yZVxNb25vRGV2 ZWxvcC5Db3JlLmNzcHJvaiI+DQoNCiAgIENvbW1pdDogMWY3MDVkNDUzYzg5ZGQwZDc5ZjdjMzAx Y2ZiYzJhMWZlY2ZhMTc2MQ0KICAgQXV0aG9yOiBNaWNoYWVsIEh1dGNoaW5zb24gPG0uai5odXRj aGluc29uQGdtYWlsLmNvbT4gKG1odXRjaCkNCiAgICAgRGF0ZTogMjAxMy0xMS0yMiAwNDo0Njo0 NiBHTVQNCiAgICAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL21vbm8vbW9ub2RldmVsb3AvY29t bWl0LzFmNzA1ZDQ1M2M4OWRkMGQ3OWY3YzMwMWNmYmMyYTFmZWNmYTE3NjENCg0KUmVtb3ZlIE1E MSBwcm9qZWN0IGZvcm1hdA0KDQpDaGFuZ2VkIHBhdGhzOgogIE0gbWFpbi9NYWluLnNsbgogIE0g bWFpbi9jb25maWd1cmUuaW4KICBNIG1haW4vc3JjL2FkZGlucy9Bc3BOZXQvTW9ub0RldmVsb3Au QXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5hZGRpbi54bWwKICBNIG1haW4vc3JjL2FkZGlucy9B c3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5jc3Byb2oKICBNIG1h aW4vc3JjL2FkZGlucy9Bc3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5l dC9Bc3BOZXRBcHBQcm9qZWN0LmNzCiAgTSBtYWluL3NyYy9hZGRpbnMvQXNwTmV0L01vbm9EZXZl bG9wLkFzcE5ldC9Nb25vRGV2ZWxvcC5Bc3BOZXQvQXNwTmV0QXBwUHJvamVjdENvbmZpZ3VyYXRp b24uY3MKICBNIG1haW4vc3JjL2FkZGlucy9DQmluZGluZy9DQmluZGluZy5hZGRpbi54bWwKICBN IG1haW4vc3JjL2FkZGlucy9DQmluZGluZy9DQmluZGluZy5jc3Byb2oKICBNIG1haW4vc3JjL2Fk ZGlucy9DU2hhcnBCaW5kaW5nL0NTaGFycEJpbmRpbmcuYWRkaW4ueG1sCiAgTSBtYWluL3NyYy9h ZGRpbnMvQ1NoYXJwQmluZGluZy9DU2hhcnBCaW5kaW5nLmNzcHJvagogIE0gbWFpbi9zcmMvYWRk aW5zL0NoYW5nZUxvZ0FkZEluL0NoYW5nZUxvZ0FkZEluLmFkZGluLnhtbAogIE0gbWFpbi9zcmMv YWRkaW5zL0NoYW5nZUxvZ0FkZEluL0NoYW5nZUxvZ0FkZEluLmNzcHJvagogIE0gbWFpbi9zcmMv YWRkaW5zL0NoYW5nZUxvZ0FkZEluL0NoYW5nZUxvZ1NlcnZpY2UuY3MKICBNIG1haW4vc3JjL2Fk ZGlucy9DaGFuZ2VMb2dBZGRJbi9Qb2xpY2llcy54bWwKICBNIG1haW4vc3JjL2FkZGlucy9DaGFu Z2VMb2dBZGRJbi9Qcm9qZWN0T3B0aW9uUGFuZWwuY3MKICBNIG1haW4vc3JjL2FkZGlucy9EZXBs b3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC5hZGRp bi54bWwKICBNIG1haW4vc3JjL2FkZGlucy9EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1l bnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC5jc3Byb2oKICBNIG1haW4vc3JjL2FkZGlucy9EZXBs b3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC9QYWNr YWdlQnVpbGRlci5jcwogIE0gbWFpbi9zcmMvYWRkaW5zL01ha2VmaWxlLmFtCiAgTSBtYWluL3Ny Yy9hZGRpbnMvTlVuaXQvTW9ub0RldmVsb3AuTlVuaXQuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRp bnMvTlVuaXQvTW9ub0RldmVsb3BOVW5pdC5hZGRpbi54bWwKICBNIG1haW4vc3JjL2FkZGlucy9W Qk5ldEJpbmRpbmcvVkJOZXRCaW5kaW5nLmFkZGluLnhtbAogIE0gbWFpbi9zcmMvYWRkaW5zL1ZC TmV0QmluZGluZy9WQk5ldEJpbmRpbmcuY3Nwcm9qCiAgTSBtYWluL3NyYy9hZGRpbnMvVmVyc2lv bkNvbnRyb2wvTW9ub0RldmVsb3AuVmVyc2lvbkNvbnRyb2wvTW9ub0RldmVsb3AuVmVyc2lvbkNv bnRyb2wvQ2hlY2tvdXRDb21tYW5kLmNzCiAgTSBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNv cmUvTW9ub0RldmVsb3AuQ29yZS5hZGRpbi54bWwKICBNIG1haW4vc3JjL2NvcmUvTW9ub0RldmVs b3AuQ29yZS9Nb25vRGV2ZWxvcC5Db3JlLmNzcHJvagogIE0gbWFpbi9zcmMvY29yZS9Nb25vRGV2 ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxL01EMURvdE5ldFByb2pl Y3RIYW5kbGVyLmNzCiAgTSBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVs b3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvTUQxRmlsZUZvcm1hdC5jcwogIE0gbWFpbi9zcmMvY29y ZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxL01EMVBy b2plY3RTZXJ2aWNlLmNzCiAgTSBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0Rl dmVsb3AuUHJvamVjdHMvUHJvamVjdFNlcnZpY2UuY3MKICBNIG1haW4vc3JjL2NvcmUvTW9ub0Rl dmVsb3AuSWRlL0V4dGVuc2lvbk1vZGVsL01vbm9EZXZlbG9wLklkZS5hZGRpbi54bWwKICBNIG1h aW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuSWRlL01vbm9EZXZlbG9wLklkZS9Qcm9qZWN0T3BlcmF0 aW9ucy5jcwogIE0gbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9ub0RldmVsb3AuUHJvamVjdHMvTVNC dWlsZFRlc3RzLmNzCiAgTSBtYWluL3Rlc3RzL1VuaXRUZXN0cy9Nb25vRGV2ZWxvcC5Qcm9qZWN0 cy9NZHNUZXN0cy5jcwogIE0gbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9ub0RldmVsb3AuUHJvamVj dHMvU29sdXRpb25UZXN0cy5jcwogIE0gbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9ub0RldmVsb3Au UHJvamVjdHMvVGVzdFByb2plY3RzQ2hlY2tzLmNzCiAgTSBtYWluL3Rlc3RzL1VuaXRUZXN0cy9V bml0VGVzdHMuY3Nwcm9qCiAgTSBtYWluL3Rlc3RzL1VuaXRUZXN0cy9VdGlsLmNzCiAgTSBtYWlu L3Rlc3RzL3Rlc3QtcHJvamVjdHMvZ2VuZXJhdGVkLWNvbnNvbGUtcHJvamVjdC9UZXN0UHJvamVj dC5jc3Byb2oKICBNIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9nZW5lcmF0ZWQtY29uc29sZS1w cm9qZWN0L1Rlc3RTb2x1dGlvbi5zbG4KQWRkZWQgcGF0aHM6CiAgQSBtYWluL3Rlc3RzL3Rlc3Qt cHJvamVjdHMvQ29udGFjdEJvb2svQ29udGFjdEJvb2suc2xuCiAgQSBtYWluL3Rlc3RzL3Rlc3Qt cHJvamVjdHMvQ29udGFjdEJvb2svQ29udGFjdEJvb2svQ29udGFjdEJvb2suY3Nwcm9qCiAgQSBt YWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29udGFjdEJvb2svQ3VzdG9tV2lkZ2V0cy9DdXN0b21X aWRnZXRzLmNzcHJvagogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1s aWJzL2NvbnNvbGUtd2l0aC1saWJzLnNsbgogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2Nv bnNvbGUtd2l0aC1saWJzL2NvbnNvbGUtd2l0aC1saWJzL1Byb2dyYW0uY3MKICBBIG1haW4vdGVz dHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy9jb25zb2xlLXdpdGgtbGlicy9Qcm9w ZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNv bGUtd2l0aC1saWJzL2NvbnNvbGUtd2l0aC1saWJzL2NvbnNvbGUtd2l0aC1saWJzLmNzcHJvagog IEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzL2xpYnJhcnkxL015 Q2xhc3MuY3MKICBBIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy9s aWJyYXJ5MS9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEEgbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL2NvbnNvbGUtd2l0aC1saWJzL2xpYnJhcnkxL2xpYnJhcnkxLmNzcHJvagogIEEgbWFp bi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzL2xpYnJhcnkyL015Q2xhc3Mu Y3MKICBBIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy9saWJyYXJ5 Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3Rz L2NvbnNvbGUtd2l0aC1saWJzL2xpYnJhcnkyL2xpYnJhcnkyLmNzcHJvagogIEEgbWFpbi90ZXN0 cy90ZXN0LXByb2plY3RzL2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlLnNsbgogIEEgbWFp bi90ZXN0cy90ZXN0LXByb2plY3RzL2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlL1Byb2dy YW0uY3MKICBBIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jc2hhcnAtY29uc29sZS9jc2hhcnAt Y29uc29sZS9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEEgbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlLmNzcHJv agogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL3Rlc3QtYnVpbGQtY29uZmlncy9MaWIxL0xp YjEuY3Nwcm9qCiAgQSBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdz L0xpYjIvTGliMi5jc3Byb2oKICBBIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy90ZXN0LWJ1aWxk LWNvbmZpZ3MvTGliMy9MaWIzLmNzcHJvagogIEEgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL3Rl c3QtYnVpbGQtY29uZmlncy9MaWI0L0xpYjQuY3Nwcm9qCiAgQSBtYWluL3Rlc3RzL3Rlc3QtcHJv amVjdHMvdGVzdC1idWlsZC1jb25maWdzL3Rlc3QtYnVpbGQtY29uZmlncy5zbG4KUmVtb3ZlZCBw YXRoczoKICBEIG1haW4vc3JjL2FkZGlucy9Bc3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0L01vbm9E ZXZlbG9wLkFzcE5ldC5NRDFTZXJpYWxpemF0aW9uL01EMUFzcE5ldEN1c3RvbURhdGFJdGVtLmNz CiAgRCBtYWluL3NyYy9hZGRpbnMvQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC9Nb25vRGV2ZWxv cC5Bc3BOZXQuTUQxU2VyaWFsaXphdGlvbi9tZDFmb3JtYXQueG1sCiAgRCBtYWluL3NyYy9hZGRp bnMvQ0JpbmRpbmcvbWQxZm9ybWF0LnhtbAogIEQgbWFpbi9zcmMvYWRkaW5zL0NTaGFycEJpbmRp bmcvbWQxZm9ybWF0LnhtbAogIEQgbWFpbi9zcmMvYWRkaW5zL0NoYW5nZUxvZ0FkZEluL09sZENo YW5nZUxvZ0RhdGEuY3MKICBEIG1haW4vc3JjL2FkZGlucy9EZXBsb3ltZW50L01vbm9EZXZlbG9w LkRlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC9NRDFTZXJpYWxpemVyLmNzCiAgRCBt YWluL3NyYy9hZGRpbnMvRGVwbG95bWVudC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50L21kMWZvcm1h dC54bWwKICBEIG1haW4vc3JjL2FkZGlucy9OVW5pdC9Qcm9qZWN0L05Vbml0QXNzZW1ibHlHcm91 cEZpbGVGb3JtYXQuY3MKICBEIG1haW4vc3JjL2FkZGlucy9OVW5pdC9tZDFmb3JtYXQueG1sCiAg RCBtYWluL3NyYy9hZGRpbnMvVkJOZXRCaW5kaW5nL21kMWZvcm1hdC54bWwKICBEIG1haW4vc3Jj L2FkZGlucy9wcmoybWFrZS1zaGFycC1saWIvQWRkaW5JbmZvLmNzCiAgRCBtYWluL3NyYy9hZGRp bnMvcHJqMm1ha2Utc2hhcnAtbGliL0Fzc2VtYmx5SW5mby5jcwogIEQgbWFpbi9zcmMvYWRkaW5z L3ByajJtYWtlLXNoYXJwLWxpYi9DaGFuZ2VMb2cKICBEIG1haW4vc3JjL2FkZGlucy9wcmoybWFr ZS1zaGFycC1saWIvQ3Nwcm9qSW5mby5jcwogIEQgbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNo YXJwLWxpYi9NYWtlZmlsZS5hbQogIEQgbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxp Yi9Nc1ByakhlbHBlci5jcwogIEQgbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9W UzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jcwogIEQgbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNo YXJwLWxpYi9jc3Byb2pfdmVyMjAwMy5jcwogIEQgbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNo YXJwLWxpYi9wa2djb25maWdpbnZva2VyLmNzCiAgRCBtYWluL3NyYy9hZGRpbnMvcHJqMm1ha2Ut c2hhcnAtbGliL3ByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWwKICBEIG1haW4vc3JjL2FkZGlu cy9wcmoybWFrZS1zaGFycC1saWIvcHJqMm1ha2Utc2hhcnAtbGliLmNzcHJvagogIEQgbWFpbi9z cmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQx L0J1aWxkQWN0aW9uRGF0YVR5cGUuY3MKICBEIG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuQ29y ZS9Nb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS9DbWJ4RmlsZUZvcm1hdC5jcwogIEQg bWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1h dHMuTUQxL0NvbWJpbmVDb25maWd1cmF0aW9uLmNzCiAgRCBtYWluL3NyYy9jb3JlL01vbm9EZXZl bG9wLkNvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvQ29tYmluZUNvbmZpZ3Vy YXRpb25FbnRyeS5jcwogIEQgbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZl bG9wLlByb2plY3RzLkZvcm1hdHMuTUQxL0NvbWJpbmVDb25maWd1cmF0aW9uU2V0LmNzCiAgRCBt YWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0 cy5NRDEvQ29tYmluZVN0YXJ0dXBNb2RlLmNzCiAgRCBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9w LkNvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvTUQxQ3VzdG9tRGF0YUl0ZW0u Y3MKICBEIG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuQ29yZS9Nb25vRGV2ZWxvcC5Qcm9qZWN0 cy5Gb3JtYXRzLk1EMS9Qcmp4RmlsZUZvcm1hdC5jcwogIEQgbWFpbi9zcmMvY29yZS9Nb25vRGV2 ZWxvcC5Db3JlL21kMWZvcm1hdC54bWwKICBEIG1haW4vdGVzdHMvVW5pdFRlc3RzL01vbm9EZXZl bG9wLlByb2plY3RzL1BhY2thZ2luZ1Rlc3RzLmNzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVj dHMvQ2hhbmdlTG9nCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29udGFjdEJvb2svQ29u dGFjdEJvb2subWRzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29udGFjdEJvb2svQ29u dGFjdEJvb2svQ29udGFjdEJvb2subWRwCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29u dGFjdEJvb2svQ3VzdG9tV2lkZ2V0cy9DdXN0b21XaWRnZXRzLm1kcAogIEQgbWFpbi90ZXN0cy90 ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9jb25zb2xlLXdpdGgtbGlicy1tZHAu bWRzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxpYnMtbWRwL2Nv bnNvbGUtd2l0aC1saWJzLW1kcC9Qcm9ncmFtLmNzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVj dHMvY29uc29sZS13aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9Qcm9wZXJ0aWVz L0Fzc2VtYmx5SW5mby5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0 aC1saWJzLW1kcC9jb25zb2xlLXdpdGgtbGlicy1tZHAvY29uc29sZS13aXRoLWxpYnMtbWRwLm1k cAogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJy YXJ5MS9saWJyYXJ5MS5tZHAKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdp dGgtbGlicy1tZHAvbGlicmFyeTIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MKICBEIG1haW4v dGVzdHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy1tZHAvbGlicmFyeTIvbGlicmFy eTIubWRwCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0aW9ucy1tZHAv Y29uc29sZS1wcm9qZWN0L1Byb2dyYW0uY3MKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9u ZXN0ZWQtc29sdXRpb25zLW1kcC9jb25zb2xlLXByb2plY3QvUHJvcGVydGllcy9Bc3NlbWJseUlu Zm8uY3MKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy1tZHAv bGlicmFyeTEvTXlDbGFzcy5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUt d2l0aC1saWJzLW1kcC9saWJyYXJ5MS9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEQgbWFp bi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJyYXJ5Mi9NeUNs YXNzLmNzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0aW9ucy1tZHAv bmVzdGVkLXNvbHV0aW9uMS9saWJyYXJ5Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEQg bWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NzaGFycC1jb25zb2xlLW1kcC9jc2hhcnAtY29uc29s ZS1tZHAubWRzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY3NoYXJwLWNvbnNvbGUtbWRw L2NzaGFycC1jb25zb2xlLW1kcC9Qcm9ncmFtLmNzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVj dHMvY3NoYXJwLWNvbnNvbGUtbWRwL2NzaGFycC1jb25zb2xlLW1kcC9Qcm9wZXJ0aWVzL0Fzc2Vt Ymx5SW5mby5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NzaGFycC1jb25zb2xlLW1k cC9jc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwLm1kcAogIEQgbWFpbi90ZXN0 cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvY29u c29sZS1wcm9qZWN0Mi9Qcm9ncmFtLmNzCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVz dGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMS9saWJyYXJ5MS9Qcm9wZXJ0aWVzL0Fz c2VtYmx5SW5mby5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2dlbmVyYXRlZC1jb25z b2xlLXByb2plY3QvVGVzdFByb2plY3QubWRwCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMv Z2VuZXJhdGVkLWNvbnNvbGUtcHJvamVjdC9UZXN0U29sdXRpb24ubWRzCiAgRCBtYWluL3Rlc3Rz L3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0aW9ucy1tZHAvY29uc29sZS1wcm9qZWN0L2NvbnNv bGUtcHJvamVjdC5tZHAKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRp b25zLW1kcC9uZXN0ZWQtc29sdXRpb24xL2xpYnJhcnkxL015Q2xhc3MuY3MKICBEIG1haW4vdGVz dHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24xL2xp YnJhcnkxL2xpYnJhcnkxLm1kcAogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1z b2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjEvbGlicmFyeTIvTXlDbGFzcy5jcwogIEQgbWFp bi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlv bjEvbGlicmFyeTIvbGlicmFyeTIubWRwCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVz dGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMS9uZXN0ZWQtc29sdXRpb24xLm1kcwog IEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1z b2x1dGlvbjIvY29uc29sZS1wcm9qZWN0Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwogIEQg bWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1 dGlvbjIvY29uc29sZS1wcm9qZWN0Mi9jb25zb2xlLXByb2plY3QyLm1kcAogIEQgbWFpbi90ZXN0 cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvbmVz dGVkLXNvbHV0aW9uMi5tZHMKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29s dXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFyeTMvTXlD bGFzcy5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRw L25lc3RlZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5My9Qcm9wZXJ0aWVzL0Fz c2VtYmx5SW5mby5jcwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlv bnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5My9saWJyYXJ5 My5tZHAKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9u ZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFyeTQvTXlDbGFzcy5jcwogIEQg bWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1 dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5NC9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5j cwogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3Rl ZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5NC9saWJyYXJ5NC5tZHAKICBEIG1h aW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRp b24yL25lc3RlZC1zb2x1dGlvbjMvbmVzdGVkLXNvbHV0aW9uMy5tZHMKICBEIG1haW4vdGVzdHMv dGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb25zLW1kcC5t ZHMKICBEIG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9udW5pdC1hc3NlbWJseS1ncm91cC9udW5p dC1hc3NlbWJseS1ncm91cC5tZC1udW5pdAogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL251 bml0LWFzc2VtYmx5LWdyb3VwL251bml0LWFzc2VtYmx5LWdyb3VwLm1kcwogIEQgbWFpbi90ZXN0 cy90ZXN0LXByb2plY3RzL3Rlc3QtYnVpbGQtY29uZmlncy9MaWIxL0xpYjEubWRwCiAgRCBtYWlu L3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdzL0xpYjIvTGliMi5tZHAKICBE IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy90ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliMy9MaWIzLm1k cAogIEQgbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL3Rlc3QtYnVpbGQtY29uZmlncy9MaWI0L0xp YjQubWRwCiAgRCBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdzL3Rl c3QtYnVpbGQtY29uZmlncy5tZHMKDQpNb2RpZmllZDogbWFpbi9NYWluLnNsbg0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTU1LDggKzU1LDYgQEAgUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAw QzA0Rjc5RUZCQ30iKSA9ICJsaWJzdGV0aWMiLCAic3JjXGFkZGluc1xNb24KIEVuZFByb2plY3QN CiBQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gImxp YnN0ZXRpY3VpIiwgInNyY1xhZGRpbnNcTW9ub0RldmVsb3AuR3RrQ29yZVxsaWJzdGV0aWN1aVxs aWJzdGV0aWN1aS5jc3Byb2oiLCAiezc5MjZEQjVCLTk2QTctNDdBNy05ODcwLURCNDJGQTVDMzU0 OH0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMw NEY3OUVGQkN9IikgPSAicHJqMm1ha2Utc2hhcnAtbGliIiwgInNyY1xhZGRpbnNccHJqMm1ha2Ut c2hhcnAtbGliXHByajJtYWtlLXNoYXJwLWxpYi5jc3Byb2oiLCAiezBGNTdFNTcyLTIzNTktNEJB Ri1CMzAyLTY0NzhDMkU0MkZBMn0iDQotRW5kUHJvamVjdA0KIFByb2plY3QoInsyMTUwRTMzMy04 RkRDLTQyQTMtOTQ3NC0xQTM5NTZENDZERTh9IikgPSAiVkJOZXRCaW5kaW5nIiwgIlZCTmV0Qmlu ZGluZyIsICJ7NDgxRTE0ODctRTBGMS00QzZELUJENzEtRTU3MkQ5QTE5NjgzfSINCiBFbmRQcm9q ZWN0DQogUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9 ICJWQk5ldEJpbmRpbmciLCAic3JjXGFkZGluc1xWQk5ldEJpbmRpbmdcVkJOZXRCaW5kaW5nLmNz cHJvaiIsICJ7RUY5MUQwQjgtNTNGNi00NjIyLTlGMjYtM0VEMjc4MTU4NzhBfSINCkBAIC0zMjAs MTMgKzMxOCw2IEBAIEdsb2JhbAogCQl7MEVBM0FEMTQtNDA0QS00RDNGLTk3OUItRjA4N0UyRTcw QzgyfS5EZWJ1Z1dpbjMyfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KIAkJezBF QTNBRDE0LTQwNEEtNEQzRi05NzlCLUYwODdFMkU3MEM4Mn0uRGVidWdXaW4zMnxBbnkgQ1BVLkJ1 aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVDQogCQl7MEVBM0FEMTQtNDA0QS00RDNGLTk3OUItRjA4N0Uy RTcwQzgyfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVDQotCQl7 MEY1N0U1NzItMjM1OS00QkFGLUIzMDItNjQ3OEMyRTQyRkEyfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2 ZUNmZyA9IERlYnVnfEFueSBDUFUNCi0JCXswRjU3RTU3Mi0yMzU5LTRCQUYtQjMwMi02NDc4QzJF NDJGQTJ9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUNCi0JCXswRjU3RTU3 Mi0yMzU5LTRCQUYtQjMwMi02NDc4QzJFNDJGQTJ9LkRlYnVnTWFjfEFueSBDUFUuQWN0aXZlQ2Zn ID0gRGVidWd8QW55IENQVQ0KLQkJezBGNTdFNTcyLTIzNTktNEJBRi1CMzAyLTY0NzhDMkU0MkZB Mn0uRGVidWdNYWN8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0KLQkJezBGNTdFNTcy LTIzNTktNEJBRi1CMzAyLTY0NzhDMkU0MkZBMn0uRGVidWdXaW4zMnxBbnkgQ1BVLkFjdGl2ZUNm ZyA9IERlYnVnfEFueSBDUFUNCi0JCXswRjU3RTU3Mi0yMzU5LTRCQUYtQjMwMi02NDc4QzJFNDJG QTJ9LkRlYnVnV2luMzJ8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0KLQkJezBGNTdF NTcyLTIzNTktNEJBRi1CMzAyLTY0NzhDMkU0MkZBMn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNm ZyA9IFJlbGVhc2V8QW55IENQVQ0KIAkJezEwMDU2OEZDLUY0RTgtNDM5Qi05NEFELTQxRDExNzI0 RTQ1Qn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQogCQl7MTAwNTY4 RkMtRjRFOC00MzlCLTk0QUQtNDFEMTE3MjRFNDVCfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBE ZWJ1Z3xBbnkgQ1BVDQogCQl7MTAwNTY4RkMtRjRFOC00MzlCLTk0QUQtNDFEMTE3MjRFNDVCfS5E ZWJ1Z01hY3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCkBAIC05OTQsNyArOTg1 LDYgQEAgR2xvYmFsCiAJCXs5NjFCOTI2Ni1DNDRBLTQyQjYtQkEzRC0zRkIyMjlDOUM0MTd9ID0g e0Q0MTdFOTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYzQTc5MH0NCiAJCXtERUVCOTE2My0zOTY2 LTRFNUUtOUFCNS1GQkIzRTAxQUM4MkF9ID0ge0Q0MTdFOTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FE QjYzQTc5MH0NCiAJCXswMjI4MEU2NS1DNTA3LTQ5MzEtQUU2OC1BQTJFODlFMTVFRUZ9ID0ge0Q0 MTdFOTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYzQTc5MH0NCi0JCXswRjU3RTU3Mi0yMzU5LTRC QUYtQjMwMi02NDc4QzJFNDJGQTJ9ID0ge0Q0MTdFOTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYz QTc5MH0NCiAJCXs0ODFFMTQ4Ny1FMEYxLTRDNkQtQkQ3MS1FNTcyRDlBMTk2ODN9ID0ge0Q0MTdF OTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYzQTc5MH0NCiAJCXs3NUI5RjJERi00REVBLTQwMDct OTY1RC0zMzk1NjM3MzVFQkV9ID0ge0Q0MTdFOTI5LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYzQTc5 MH0NCiAJCXs3RTlGQURFNi1DQjRFLTQzNjYtODQ4OS1BRUExREQ5RjQ1RjJ9ID0ge0Q0MTdFOTI5 LTJCM0EtNDZBQy1CQkU4LTAyN0FEQjYzQTc5MH0NDQoNCk1vZGlmaWVkOiBtYWluL2NvbmZpZ3Vy ZS5pbg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KQEAgLTMwMiw3ICszMDIsNiBAQCBzcmMvYWRkaW5zL0NTaGFycEJp bmRpbmcvQXV0b3Rvb2xzL01ha2VmaWxlCiBzcmMvYWRkaW5zL0NTaGFycEJpbmRpbmcvQXNwTmV0 L01ha2VmaWxlCiBzcmMvYWRkaW5zL0lMQXNtQmluZGluZy9NYWtlZmlsZQogc3JjL2FkZGlucy9W Qk5ldEJpbmRpbmcvTWFrZWZpbGUKLXNyYy9hZGRpbnMvcHJqMm1ha2Utc2hhcnAtbGliL01ha2Vm aWxlCiBzcmMvYWRkaW5zL0NoYW5nZUxvZ0FkZEluL01ha2VmaWxlCiBzcmMvYWRkaW5zL01vbm9E ZXZlbG9wLkd0a0NvcmUvTWFrZWZpbGUKIHNyYy9hZGRpbnMvTW9ub0RldmVsb3AuR3RrQ29yZS9s aWJzdGV0aWMvTWFrZWZpbGUNCg0KUmVtb3ZlZDogbWFpbi9zcmMvYWRkaW5zL0FzcE5ldC9Nb25v RGV2ZWxvcC5Bc3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0Lk1EMVNlcmlhbGl6YXRpb24vTUQxQXNw TmV0Q3VzdG9tRGF0YUl0ZW0uY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDEwNCArMCwwIEBACi0vLyAK LS8vIE1EMUFzcE5ldEN1c3RvbURhdGFJdGVtLmNzCi0vLyAKLS8vIEF1dGhvcjoKLS8vICAgTWlj aGFlbCBIdXRjaGluc29uIDxtaHV0Y2hpbnNvbkBub3ZlbGwuY29tPgotLy8gCi0vLyBDb3B5cmln aHQgKEMpIDIwMDggTm92ZWxsLCBJbmMgKGh0dHA6Ly93d3cubm92ZWxsLmNvbSkKLS8vIAotLy8g UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nCi0vLyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLS8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLS8vIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLS8v IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0bwotLy8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0vLyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Ci0vLyAKLS8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlCi0vLyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLS8vIAotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0vLyBFWFBSRVNTIE9S IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK LS8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E Ci0vLyBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFCi0vLyBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi0vLyBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KLS8v IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNP RlRXQVJFLgotLy8KLQotdXNpbmcgU3lzdGVtOwotdXNpbmcgU3lzdGVtLklPOwotdXNpbmcgTW9u b0RldmVsb3AuQ29yZTsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlvbjsKLQot bmFtZXNwYWNlIE1vbm9EZXZlbG9wLkFzcE5ldC5NRDFTZXJpYWxpemF0aW9uCi17Ci0JCi0JY2xh c3MgTUQxQXNwTmV0Q3VzdG9tRGF0YUl0ZW0gOiBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRz Lk1EMS5NRDFDdXN0b21EYXRhSXRlbQotCXsKLQkJcHVibGljIG92ZXJyaWRlIERhdGFDb2xsZWN0 aW9uIFNlcmlhbGl6ZSAob2JqZWN0IG9iaiwgSVR5cGVTZXJpYWxpemVyIGhhbmRsZXIpCi0JCXsK LQkJCS8vc2VyaWFsaXNlIGFzIG5vcm1hbAotCQkJRGF0YUNvbGxlY3Rpb24gZGF0YSA9IGJhc2Uu U2VyaWFsaXplIChvYmosIGhhbmRsZXIpOwotCQkJCi0JCQlBc3BOZXRBcHBQcm9qZWN0IHByb2og PSBvYmogYXMgQXNwTmV0QXBwUHJvamVjdDsKLQkJCWlmIChwcm9qID09IG51bGwpCi0JCQkJcmV0 dXJuIGRhdGE7Ci0JCQkKLQkJCS8vZm9yIHRoZSBvbGQgZm9ybWF0IHdlIG5lZWQgdG8gbWFrZSBz dXJlIGVhY2ggQ29udGVudCBmaWxlIHRoYXQncyBhIHdlYiB0eXBlIGFuZCBpcyBOT1Qgc2V0Ci0J CQkvL3RvIGNvcHkgYWN0dWFsbHkgZ2V0cyBjaGFuZ2VkIHRvIHRoZSBGaWxlQ29weSBidWlsZCB0 YXJnZXQKLQkJCURhdGFJdGVtIGZpbGVzID0gZGF0YSBbIkNvbnRlbnRzIl0gYXMgRGF0YUl0ZW07 Ci0JCQlpZiAoZmlsZXMgPT0gbnVsbCB8fCAhZmlsZXMuSGFzSXRlbURhdGEpCi0JCQkJcmV0dXJu IGRhdGE7Ci0JCQkKLQkJCWZvcmVhY2ggKG9iamVjdCBmIGluIGZpbGVzLkl0ZW1EYXRhKSB7Ci0J CQkJRGF0YUl0ZW0gZmlsZSA9IGYgYXMgRGF0YUl0ZW07Ci0JCQkJaWYgKGZpbGUgPT0gbnVsbCB8 fCAhZmlsZS5IYXNJdGVtRGF0YSkvLyB8fCBmaWxlLk5hbWUgIT0gIkZpbGUiKQotCQkJCQljb250 aW51ZTsKLQkJCQkKLQkJCQlEYXRhVmFsdWUgY3RvZCA9IGZpbGUgWyJjb3B5VG9PdXRwdXREaXJl Y3RvcnkiXSBhcyBEYXRhVmFsdWU7Ci0JCQkJaWYgKGN0b2QgIT0gbnVsbCAmJiBjdG9kLlZhbHVl ID09ICJOZXZlciIpCi0JCQkJewotCQkJCQlEYXRhVmFsdWUgYWN0aW9uID0gZmlsZSBbImJ1aWxk YWN0aW9uIl0gYXMgRGF0YVZhbHVlOwotCQkJCQlEYXRhVmFsdWUgbmFtZSA9IGZpbGUgWyJuYW1l Il0gYXMgRGF0YVZhbHVlOwotCQkJCQlpZiAoYWN0aW9uICE9IG51bGwgJiYgbmFtZSAhPSBudWxs ICYmIGFjdGlvbi5WYWx1ZSA9PSAiQ29udGVudCIpCi0JCQkJCXsKLQkJCQkJCVdlYlN1YnR5cGUg dHlwZSA9IEFzcE5ldEFwcFByb2plY3QuRGV0ZXJtaW5lV2ViU3VidHlwZSAobmFtZS5WYWx1ZSk7 Ci0JCQkJCQlpZiAodHlwZSAhPSBXZWJTdWJ0eXBlLk5vbmUgJiYgdHlwZSAhPSBXZWJTdWJ0eXBl LkNvZGUpIHsKLQkJCQkJCQlmaWxlLkV4dHJhY3QgKCJjb3B5VG9PdXRwdXREaXJlY3RvcnkiKTsK LQkJCQkJCQlpbnQgaW5kZXggPSBmaWxlLkl0ZW1EYXRhLkluZGV4T2YgKGFjdGlvbik7Ci0JCQkJ CQkJZmlsZS5JdGVtRGF0YS5SZW1vdmUgKGFjdGlvbik7Ci0JCQkJCQkJZmlsZS5JdGVtRGF0YS5J bnNlcnQgKGluZGV4LCBuZXcgRGF0YVZhbHVlICgiYnVpbGRhY3Rpb24iLCAiRmlsZUNvcHkiKSk7 Ci0JCQkJCQl9Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9Ci0JCQkKLQkJCXJldHVybiBkYXRhOwotCQl9 Ci0JCQotCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBEZXNlcmlhbGl6ZSAob2JqZWN0IG9iaiwgSVR5 cGVTZXJpYWxpemVyIGhhbmRsZXIsIERhdGFDb2xsZWN0aW9uIGRhdGEpCi0JCXsKLQkJCS8vZGVz ZXJpYWxpc2UgYXMgbm9ybWFsCi0JCQliYXNlLkRlc2VyaWFsaXplIChvYmosIGhhbmRsZXIsIGRh dGEpOwotCQkJCi0JCQlBc3BOZXRBcHBQcm9qZWN0IHByb2ogPSBvYmogYXMgQXNwTmV0QXBwUHJv amVjdDsKLQkJCWlmIChwcm9qID09IG51bGwpCi0JCQkJcmV0dXJuOwotCQkJCi0JCQkvL2ZpbmQg ZmlsZXMgdGhhdCBhcmUgd2ViIGNvbnRlbnQgYW5kIGhhdmUgYmVlbiBkZXNlcmlhbGlzZWQgZnJv bSB0aGUgb2Jzb2xldGUgIkZpbGVDb3B5IiBCdWlsZEFjdGlvbgotCQkJZm9yZWFjaCAoTW9ub0Rl dmVsb3AuUHJvamVjdHMuUHJvamVjdEZpbGUgcGYgaW4gcHJvai5GaWxlcykgewotCQkJCWlmIChw Zi5CdWlsZEFjdGlvbiAhPSBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5CdWlsZEFjdGlvbi5Db250ZW50 Ci0JCQkJICAgIHx8IHBmLkNvcHlUb091dHB1dERpcmVjdG9yeSAhPSBNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5GaWxlQ29weU1vZGUuQWx3YXlzKQotCQkJCQljb250aW51ZTsKLQkJCQkKLQkJCQlXZWJT dWJ0eXBlIHR5cGUgPSBwcm9qLkRldGVybWluZVdlYlN1YnR5cGUgKHBmKTsKLQkJCQlpZiAodHlw ZSAhPSBXZWJTdWJ0eXBlLk5vbmUgJiYgdHlwZSAhPSBXZWJTdWJ0eXBlLkNvZGUpIHsKLQkJCQkJ Ly9hbmQgbWFyayB0aGVtIHRvIG5vdCBjb3B5LCBzaW5jZSB3ZSBkb24ndCBhY3R1YWxseSB3YW50 IHRoaXM7IAotCQkJCQkvLyB0aGUgb2Jzb2xldGUgYmVoYXZpb3VyIHdhcyBhIGhhY2sKLQkJCQkJ cGYuQ29weVRvT3V0cHV0RGlyZWN0b3J5ID0gTW9ub0RldmVsb3AuUHJvamVjdHMuRmlsZUNvcHlN b2RlLk5vbmU7Ci0JCQkJfQotCQkJfQotCQl9Ci0JfQotfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9h ZGRpbnMvQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC9Nb25vRGV2ZWxvcC5Bc3BOZXQuTUQxU2Vy aWFsaXphdGlvbi9tZDFmb3JtYXQueG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwxMyArMCwwIEBACi08 U2VyaWFsaXphdGlvbk1hcD4KLQk8RGF0YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuQXNwTmV0 LkFzcE5ldEFwcFByb2plY3QiIGN1c3RvbURhdGFJdGVtPSJNb25vRGV2ZWxvcC5Bc3BOZXQuTUQx U2VyaWFsaXphdGlvbi5NRDFBc3BOZXRDdXN0b21EYXRhSXRlbSIgPgotCQk8SXRlbVByb3BlcnR5 IG1lbWJlcj0ieHNwUGFyYW1ldGVycyIgbmFtZSA9ICJYc3BQYXJhbWV0ZXJzIiAvPgotCQk8SXRl bVByb3BlcnR5IG1lbWJlcj0idmVyaWZ5Q29kZUJlaGluZEZpZWxkcyIgbmFtZSA9ICJWZXJpZnlD b2RlQmVoaW5kRmllbGRzIiAvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0idmVyaWZ5Q29kZUJl aGluZEV2ZW50cyIgbmFtZSA9ICJWZXJpZnlDb2RlQmVoaW5kRXZlbnRzIiAvPgotCQk8SXRlbVBy b3BlcnR5IG1lbWJlcj0id2ViRGVwbG95VGFyZ2V0cyIgbmFtZSA9ICJXZWJEZXBsb3lUYXJnZXRz IiAvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0id2ViRGVwbG95VGFyZ2V0cyIgc2NvcGU9Iioi IG5hbWU9IlRhcmdldCIgdmFsdWVUeXBlPSJNb25vRGV2ZWxvcC5Bc3BOZXQuRGVwbG95bWVudC5X ZWJEZXBsb3lUYXJnZXQiIC8+Ci0JPC9EYXRhSXRlbT4KLQk8RGF0YUl0ZW0gY2xhc3MgPSAiTW9u b0RldmVsb3AuQXNwTmV0LkFzcE5ldEFwcFByb2plY3RDb25maWd1cmF0aW9uIiA+Ci0JCTxJdGVt UHJvcGVydHkgbWVtYmVyPSJkaXNhYmxlQ29kZUJlaGluZEdlbmVyYXRpb24iIG5hbWU9IkFzcE5l dC9EaXNhYmxlQ29kZUJlaGluZEdlbmVyYXRpb24iIGRlZmF1bHRWYWx1ZT0iZmFsc2UiLz4KLQkJ PEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Im5vblN0YW5kYXJkT3V0cHV0RGlyZWN0b3J5IiBuYW1lPSJB c3BOZXQvbm9uU3RhbmRhcmRPdXRwdXREaXJlY3RvcnkiIGRlZmF1bHRWYWx1ZT0iZmFsc2UiLz4K LQk8L0RhdGFJdGVtPgotPC9TZXJpYWxpemF0aW9uTWFwPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUNCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9Bc3BOZXQvTW9ub0RldmVsb3AuQXNw TmV0L01vbm9EZXZlbG9wLkFzcE5ldC5hZGRpbi54bWwNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yNDksMTAg KzI0OSw2IEBACiAJCSAgICAgICAgIHhzZEZpbGUgPSAieGh0bWwxLWZyYW1lc2V0LnhzZCIgLz4N CiAJPC9FeHRlbnNpb24+DQogDQotCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvUHJv amVjdE1vZGVsL01EMVNlcmlhbGl6YXRpb25NYXBzIj4NCi0JCTxTZXJpYWxpemF0aW9uTWFwIHJl c291cmNlPSJtZDFmb3JtYXQueG1sIiAvPg0KLQk8L0V4dGVuc2lvbj4NCi0NCiAJPEV4dGVuc2lv biBwYXRoID0gIi9Nb25vRGV2ZWxvcC9EZXBsb3ltZW50L0RlcGxveVNlcnZpY2VFeHRlbnNpb25z Ij4NCiAJCTxDbGFzcyBpZD0iQXNwTmV0RGVwbG95IiBpbnNlcnRiZWZvcmU9IlByZXBhcmVEZXBs b3kiIGNsYXNzID0gIk1vbm9EZXZlbG9wLkFzcE5ldC5EZXBsb3ltZW50LkFzcE5ldERlcGxveVNl cnZpY2VFeHRlbnNpb24iIC8+DQogCTwvRXh0ZW5zaW9uPg0NCg0KTW9kaWZpZWQ6IG1haW4vc3Jj L2FkZGlucy9Bc3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC5jc3By b2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCkBAIC0yMDUsOSArMjA1LDYgQEAKICAgICA8RW1iZWRkZWRSZXNvdXJj ZSBJbmNsdWRlPSJUZW1wbGF0ZXNcV2ViQ29uZmlnLVN1YkRpci54ZnQueG1sIj4KICAgICAgIDxM b2dpY2FsTmFtZT5XZWJDb25maWctU3ViRGlyLnhmdC54bWw8L0xvZ2ljYWxOYW1lPgogICAgIDwv RW1iZWRkZWRSZXNvdXJjZT4KLSAgICA8RW1iZWRkZWRSZXNvdXJjZSBJbmNsdWRlPSJNb25vRGV2 ZWxvcC5Bc3BOZXQuTUQxU2VyaWFsaXphdGlvblxtZDFmb3JtYXQueG1sIj4KLSAgICAgIDxMb2dp Y2FsTmFtZT5tZDFmb3JtYXQueG1sPC9Mb2dpY2FsTmFtZT4KLSAgICA8L0VtYmVkZGVkUmVzb3Vy Y2U+CiAgICAgPEVtYmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0iVGVtcGxhdGVzXFdlYkNvbnRlbnRG b3JtLUNvZGVCZWhpbmQueGZ0LnhtbCI+CiAgICAgICA8TG9naWNhbE5hbWU+V2ViQ29udGVudEZv cm0tQ29kZUJlaGluZC54ZnQueG1sPC9Mb2dpY2FsTmFtZT4KICAgICA8L0VtYmVkZGVkUmVzb3Vy Y2U+CkBAIC0yNzYsNyArMjczLDYgQEAKICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxv cC5Bc3BOZXQuU3RhdGVFbmdpbmVcQXNwTmV0RG9tLmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1 ZGU9Ik1vbm9EZXZlbG9wLkFzcE5ldC5TdGF0ZUVuZ2luZVxBc3BOZXREaXJlY3RpdmVTdGF0ZS5j cyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Bc3BOZXQuU3RhdGVFbmdp bmVcQXNwTmV0U2VydmVyQ29tbWVudFN0YXRlLmNzIiAvPgotICAgIDxDb21waWxlIEluY2x1ZGU9 Ik1vbm9EZXZlbG9wLkFzcE5ldC5NRDFTZXJpYWxpemF0aW9uXE1EMUFzcE5ldEN1c3RvbURhdGFJ dGVtLmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLkFzcE5ldC5EZXBs b3ltZW50XEFzcE5ldERlcGxveVNlcnZpY2VFeHRlbnNpb24uY3MiIC8+CiAgICAgPENvbXBpbGUg SW5jbHVkZT0iTW9ub0RldmVsb3AuQXNwTmV0LlBhcnNlclxEaXJlY3RpdmUuY3MiIC8+CiAgICAg PENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuQXNwTmV0LkNvbXBsZXRpb25cU2ltcGxlTGlz dHMuY3MiIC8+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvQXNwTmV0L01vbm9EZXZlbG9w LkFzcE5ldC9Nb25vRGV2ZWxvcC5Bc3BOZXQvQXNwTmV0QXBwUHJvamVjdC5jcw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTgzLDE3ICs4Myw2IEBAIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIE9uRW5kTG9hZCAo KQogCQl7CiAJCQliYXNlLk9uRW5kTG9hZCAoKTsKIAkJCQotCQkJaWYgKEZpbGVGb3JtYXQuSWQg PT0gIk1EMSIpIHsKLQkJCQlmb3JlYWNoIChBc3BOZXRBcHBQcm9qZWN0Q29uZmlndXJhdGlvbiBj b25mIGluIENvbmZpZ3VyYXRpb25zKSB7Ci0JCQkJCS8vbWlncmF0ZSBzZXR0aW5ncyBvbmNlCi0J CQkJCWlmICghY29uZi5ub25TdGFuZGFyZE91dHB1dERpcmVjdG9yeSkgewotCQkJCQkJY29uZi5u b25TdGFuZGFyZE91dHB1dERpcmVjdG9yeSA9IHRydWU7Ci0JCQkJCQljb25mLk91dHB1dERpcmVj dG9yeSA9IFN0cmluZy5Jc051bGxPckVtcHR5IChCYXNlRGlyZWN0b3J5KT8gImJpbiIgOiBQYXRo LkNvbWJpbmUgKEJhc2VEaXJlY3RvcnksICJiaW4iKTsKLQkJCQkJfQotCQkJCX0KLQkJCX0KLQkJ CWJhc2UuT25FbmRMb2FkICgpOwotCQkJCiAJCQkvL0ZJWDogb2xkIHZlcnNpb24gb2YgTUQgZGlk bid0IHNldCBDb21waWxlVGFyZ2V0IHRvIExpYnJhcnkgZm9yIEFTUC5ORVQgcHJvamVjdHMsIAog CQkJLy8gYnV0IGltcGxpY2l0bHkgYXNzdW1lZCB0aGV5IHdlcmUgYWx3YXlzIGxpYnJhcmllcy4g VGhpcyBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFZTL01TQnVpbGQsCiAJCQkvLyBzbyB3ZSBhdXRv bWF0aWNhbGx5ICJ1cGdyYWRlIiB0aGlzIHZhbHVlLiANCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2Fk ZGlucy9Bc3BOZXQvTW9ub0RldmVsb3AuQXNwTmV0L01vbm9EZXZlbG9wLkFzcE5ldC9Bc3BOZXRB cHBQcm9qZWN0Q29uZmlndXJhdGlvbi5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTUxLDkgKzUxLDYgQEAg cHVibGljIEFzcE5ldEFwcFByb2plY3RDb25maWd1cmF0aW9uICgpIDogYmFzZSAoKQogCQlbSXRl bVByb3BlcnR5ICgiQXNwTmV0L0Rpc2FibGVDb2RlQmVoaW5kR2VuZXJhdGlvbiIsIERlZmF1bHRW YWx1ZSA9IGZhbHNlKV0KIAkJYm9vbCBkaXNhYmxlQ29kZUJlaGluZEdlbmVyYXRpb24gPSBmYWxz ZTsKIAkJCi0JCS8vTUQxIGNvbXBhdGliaWxpdHkKLQkJaW50ZXJuYWwgYm9vbCBub25TdGFuZGFy ZE91dHB1dERpcmVjdG9yeSA9IGZhbHNlOwotCQkKIAkJcHVibGljIGJvb2wgRGlzYWJsZUNvZGVC ZWhpbmRHZW5lcmF0aW9uIHsKIAkJCWdldCB7IHJldHVybiBkaXNhYmxlQ29kZUJlaGluZEdlbmVy YXRpb247IH0KIAkJCXNldCB7IGRpc2FibGVDb2RlQmVoaW5kR2VuZXJhdGlvbiA9IHZhbHVlOyB9 DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvQ0JpbmRpbmcvQ0JpbmRpbmcuYWRkaW4ueG1s DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpAQCAtMjMwLDEwICsyMzAsNiBAQAogCQk8U29sdXRpb25JdGVtIHR5cGU9 IkNCaW5kaW5nLkNQcm9qZWN0IiBleHRlbnNpb249ImNwcm9qIiBndWlkPSJ7Mjg1N0I3M0UtRjg0 Ny00QjAyLTkyMzgtMDY0OTc5MDE3RTkzfSIvPgogCTwvRXh0ZW5zaW9uPgogCQotCTxFeHRlbnNp b24gcGF0aCA9ICIvTW9ub0RldmVsb3AvUHJvamVjdE1vZGVsL01EMVNlcmlhbGl6YXRpb25NYXBz Ij4KLQkJPFNlcmlhbGl6YXRpb25NYXAgcmVzb3VyY2U9Im1kMWZvcm1hdC54bWwiIC8+Ci0JPC9F eHRlbnNpb24+Ci0JCiA8IS0tIEN1cnJlbnQgQXV0b3Rvb2xzIEFkZEluIGlzIHZlcnkgLk5FVCBz cGVjaWZpYwogCTxNb2R1bGU+CiAJICAgIDxSdW50aW1lPg0KDQpNb2RpZmllZDogbWFpbi9zcmMv YWRkaW5zL0NCaW5kaW5nL0NCaW5kaW5nLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIzOSw5ICsy MzksNiBAQAogICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Imljb25zXGNwcC1pY29uLTMy LnBuZyI+CiAgICAgICA8TG9naWNhbE5hbWU+Y3BwLWljb24tMzIucG5nPC9Mb2dpY2FsTmFtZT4K ICAgICA8L0VtYmVkZGVkUmVzb3VyY2U+Ci0gICAgPEVtYmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0i bWQxZm9ybWF0LnhtbCI+Ci0gICAgICA8TG9naWNhbE5hbWU+bWQxZm9ybWF0LnhtbDwvTG9naWNh bE5hbWU+Ci0gICAgPC9FbWJlZGRlZFJlc291cmNlPgogICAgIDxFbWJlZGRlZFJlc291cmNlIElu Y2x1ZGU9InRlbXBsYXRlc1xDb25zb2xlT2JqQ1Byb2plY3QueHB0LnhtbCI+CiAgICAgICA8TG9n aWNhbE5hbWU+Q29uc29sZU9iakNQcm9qZWN0LnhwdC54bWw8L0xvZ2ljYWxOYW1lPgogICAgIDwv RW1iZWRkZWRSZXNvdXJjZT4NCg0KUmVtb3ZlZDogbWFpbi9zcmMvYWRkaW5zL0NCaW5kaW5nL21k MWZvcm1hdC54bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDI3ICswLDAgQEAKLTxTZXJpYWxpemF0aW9u TWFwPgotCTxEYXRhSXRlbSBjbGFzcyA9ICJDQmluZGluZy5DUHJvamVjdCI+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJjb21waWxlcl9tYW5hZ2VyIiBuYW1lPSJjb21waWxlciIgdmFsdWVUeXBl PSJDQmluZGluZy5DQ29tcGlsZXIiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Imxhbmd1YWdl IiAvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0idGFyZ2V0IiBuYW1lPSJUYXJnZXQiLz4KLQkJ PEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9IlBhY2thZ2VzIiAvPgotCTwvRGF0YUl0ZW0+Ci0JPERhdGFJ dGVtIGNsYXNzID0gIkNCaW5kaW5nLkNQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJvdXRwdXQiIG5hbWU9Ik91dHB1dC9vdXRwdXQiLz4KLQkJPEl0ZW1Qcm9w ZXJ0eSBtZW1iZXI9InRhcmdldCIgbmFtZT0iQnVpbGQvdGFyZ2V0Ii8+Ci0JCTxJdGVtUHJvcGVy dHkgbWVtYmVyPSJpbmNsdWRlcyIgbmFtZT0iSW5jbHVkZXMiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBt ZW1iZXI9ImluY2x1ZGVzIiBzY29wZT0iKiIgbmFtZT0iSW5jbHVkZSIgdmFsdWVUeXBlPSJTeXN0 ZW0uU3RyaW5nIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJsaWJwYXRocyIgbmFtZT0iTGli UGF0aHMiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImxpYnBhdGhzIiBzY29wZT0iKiIgbmFt ZT0iTGliUGF0aCIgdmFsdWVUeXBlPSJTeXN0ZW0uU3RyaW5nIi8+Ci0JCTxJdGVtUHJvcGVydHkg bWVtYmVyPSJsaWJzIiBuYW1lPSJMaWJzIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJsaWJz IiBzY29wZT0iKiIgbmFtZT0iTGliIiB2YWx1ZVR5cGU9IlN5c3RlbS5TdHJpbmciLz4KLQkJPEl0 ZW1Qcm9wZXJ0eSBtZW1iZXI9Indhcm5pbmdfbGV2ZWwiIG5hbWU9IkNvZGVHZW5lcmF0aW9uL1dh cm5pbmdMZXZlbCIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0id2FybmluZ3NfYXNfZXJyb3Jz IiBuYW1lPSJDb2RlR2VuZXJhdGlvbi9XYXJuaW5nc0FzRXJyb3JzIi8+Ci0JCTxJdGVtUHJvcGVy dHkgbWVtYmVyPSJvcHRpbWl6YXRpb24iIG5hbWU9IkNvZGVHZW5lcmF0aW9uL09wdGltaXphdGlv bkxldmVsIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJleHRyYV9jb21waWxlcl9hcmdzIiBu YW1lPSJDb2RlR2VuZXJhdGlvbi9FeHRyYUNvbXBpbGVyQXJndW1lbnRzIi8+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJleHRyYV9saW5rZXJfYXJncyIgbmFtZT0iQ29kZUdlbmVyYXRpb24vRXh0 cmFMaW5rZXJBcmd1bWVudHMiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImRlZmluZV9zeW1i b2xzIiBuYW1lPSJDb2RlR2VuZXJhdGlvbi9EZWZpbmVTeW1ib2xzIi8+Ci0JCTxJdGVtUHJvcGVy dHkgbWVtYmVyPSJzb3VyY2VfZGlyZWN0b3J5X3BhdGgiIG5hbWU9IlNvdXJjZURpcmVjdG9yeSIg c2VyaWFsaXphdGlvbkRhdGFUeXBlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5QYXRoRGF0YVR5cGUi Lz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9InVzZV9jY2FjaGUiIG5hbWU9IlVzZUNjYWNoZSIg ZGVmYXVsdFZhbHVlPSJmYWxzZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0icHJlY29tcGls ZUhlYWRlcnMiIG5hbWU9IlByZWNvbXBpbGVIZWFkZXJzIiBkZWZhdWx0VmFsdWU9InRydWUiLz4K LQk8L0RhdGFJdGVtPgotPC9TZXJpYWxpemF0aW9uTWFwPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUNCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9DU2hhcnBCaW5kaW5nL0NTaGFycEJp bmRpbmcuYWRkaW4ueG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTAzLDEwICsxMDMsNiBAQAogCQk8Q2xh c3MgZmlsZUV4dGVuc2lvbnMgPSAiLmNzIiBjbGFzcyA9ICJNb25vRGV2ZWxvcC5DU2hhcnAuVW5p dFRlc3RUZXh0RWRpdG9yRXh0ZW5zaW9uIiAvPgogCTwvRXh0ZW5zaW9uPgogCi0JPEV4dGVuc2lv biBwYXRoID0gIi9Nb25vRGV2ZWxvcC9Qcm9qZWN0TW9kZWwvTUQxU2VyaWFsaXphdGlvbk1hcHMi PgotCQk8U2VyaWFsaXphdGlvbk1hcCByZXNvdXJjZT0ibWQxZm9ybWF0LnhtbCIgLz4KLQk8L0V4 dGVuc2lvbj4KLQogCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvQ29yZS9TdG9ja0lj b25zIj4KIAkJPFN0b2NrSWNvbiBzdG9ja2lkID0gIm1kLWNzaGFycC1maWxlIiByZXNvdXJjZSA9 ICJDIy5GaWxlSWNvbiIgc2l6ZT0iTWVudSIgLz4KIAkJPFN0b2NrSWNvbiBzdG9ja2lkID0gIm1k LWNzaGFycC1wcm9qZWN0IiByZXNvdXJjZSA9ICJjc2hhcnAtcHJvamVjdC0xNi5wbmciIHNpemU9 Ik1lbnUiLz4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9DU2hhcnBCaW5kaW5nL0NTaGFy cEJpbmRpbmcuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTg5LDkgKzE4OSw2IEBACiAgICAgPEVt YmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0idGVtcGxhdGVzXEFzc2VtYmx5SW5mby54ZnQueG1sIj4K ICAgICAgIDxMb2dpY2FsTmFtZT5Bc3NlbWJseUluZm8ueGZ0LnhtbDwvTG9naWNhbE5hbWU+CiAg ICAgPC9FbWJlZGRlZFJlc291cmNlPgotICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Im1k MWZvcm1hdC54bWwiPgotICAgICAgPExvZ2ljYWxOYW1lPm1kMWZvcm1hdC54bWw8L0xvZ2ljYWxO YW1lPgotICAgIDwvRW1iZWRkZWRSZXNvdXJjZT4KICAgICA8RW1iZWRkZWRSZXNvdXJjZSBJbmNs dWRlPSJpY29uc1xjc2hhcnAtcHJvamVjdC0xNi5wbmciPgogICAgICAgPExvZ2ljYWxOYW1lPmNz aGFycC1wcm9qZWN0LTE2LnBuZzwvTG9naWNhbE5hbWU+CiAgICAgPC9FbWJlZGRlZFJlc291cmNl Pg0KDQpSZW1vdmVkOiBtYWluL3NyYy9hZGRpbnMvQ1NoYXJwQmluZGluZy9tZDFmb3JtYXQueG1s DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpAQCAtMSwxOSArMCwwIEBACi08U2VyaWFsaXphdGlvbk1hcD4KLQk8RGF0 YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuQ1NoYXJwLlByb2plY3QuQ1NoYXJwQ29tcGlsZXJQ YXJhbWV0ZXJzIj4KLQkJPExpdGVyYWxQcm9wZXJ0eSBuYW1lPSJjb21waWxlciIgdmFsdWU9Ik1j cyIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Indhcm5pbmdsZXZlbCIgbmFtZSA9ICJ3YXJu aW5nbGV2ZWwiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Im5vV2FybmluZ3MiIG5hbWU9Im5v d2FybiIgZGVmYXVsdFZhbHVlPSIiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Im9wdGltaXpl IiBuYW1lPSJvcHRpbWl6ZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0idW5zYWZlY29kZSIg bmFtZT0idW5zYWZlY29kZWFsbG93ZWQiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImdlbmVy YXRlT3ZlcmZsb3dDaGVja3MiIG5hbWU9ImdlbmVyYXRlb3ZlcmZsb3djaGVja3MiLz4KLQkJPEl0 ZW1Qcm9wZXJ0eSBtZW1iZXI9Im1haW5jbGFzcyIgbmFtZT0ibWFpbmNsYXNzIiBkZWZhdWx0VmFs dWU9IiIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iZGVmaW5lc3ltYm9scyIgbmFtZT0iZGVm aW5lc3ltYm9scyIgZGVmYXVsdFZhbHVlPSIiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJ3 aW4zMkljb24iIG5hbWU9IndpbjMySWNvbiIgZGVmYXVsdFZhbHVlPSIiIHNlcmlhbGl6YXRpb25E YXRhVHlwZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuUGF0aERhdGFUeXBlIi8+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJ3aW4zMlJlc291cmNlIiBuYW1lPSJ3aW4zMlJlc291cmNlIiBkZWZhdWx0 VmFsdWU9IiIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImNvZGVQYWdlIiBuYW1lPSJjb2Rl cGFnZSIgZGVmYXVsdFZhbHVlPSIwIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJhZGRpdGlv bmFsQXJncyIgbmFtZT0iYWRkaXRpb25hbGFyZ3MiIGRlZmF1bHRWYWx1ZT0iIiAvPgotCQk8SXRl bVByb3BlcnR5IG1lbWJlcj0iTGFuZ1ZlcnNpb24iIG5hbWU9Imxhbmd2ZXJzaW9uIiBkZWZhdWx0 VmFsdWU9IkRlZmF1bHQiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9InRyZWF0V2FybmluZ3NB c0Vycm9ycyIgbmFtZT0id2FybmluZ3NBc0Vycm9ycyIgZGVmYXVsdFZhbHVlPSJGYWxzZSIvPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0id2FybmluZ3NOb3RBc0Vycm9ycyIgbmFtZT0id2Fybmlu Z3NOb3RBc0Vycm9ycyIgZGVmYXVsdFZhbHVlPSIiLz4KLQk8L0RhdGFJdGVtPgotPC9TZXJpYWxp emF0aW9uTWFwPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCg0KTW9kaWZpZWQ6IG1haW4v c3JjL2FkZGlucy9DaGFuZ2VMb2dBZGRJbi9DaGFuZ2VMb2dBZGRJbi5hZGRpbi54bWwNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCkBAIC0zNSwxMyArMzUsNCBAQAogCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVs b3AvUHJvamVjdE1vZGVsL1BvbGljeVNldHMvTW9ubyIgPg0KIAkJPFBvbGljaWVzIHJlc291cmNl PSJQb2xpY2llcy54bWwiLz4NCiAJPC9FeHRlbnNpb24+DQotDQotCTwhLS0gZm9yIE1EMSBtaWdy YXRpb24gLS0+DQotCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvUHJvamVjdE1vZGVs L0V4dGVuZGVkUHJvcGVydGllcyI+DQotCQk8SXRlbVByb3BlcnR5IGNsYXNzID0gIk1vbm9EZXZl bG9wLlByb2plY3RzLlNvbHV0aW9uSXRlbSINCi0JCQluYW1lID0gIk1vbm9EZXZlbG9wLkNoYW5n ZUxvZ0FkZEluLkNoYW5nZUxvZ0luZm8iIHR5cGUgPSAiTW9ub0RldmVsb3AuQ2hhbmdlTG9nQWRk SW4uT2xkQ2hhbmdlTG9nRGF0YSIgLz4NCi0JCTxJdGVtUHJvcGVydHkgY2xhc3MgPSAiTW9ub0Rl dmVsb3AuUHJvamVjdHMuU29sdXRpb24iDQotCQkJbmFtZSA9ICJNb25vRGV2ZWxvcC5DaGFuZ2VM b2dBZGRJbi5DaGFuZ2VMb2dJbmZvIiB0eXBlID0gIk1vbm9EZXZlbG9wLkNoYW5nZUxvZ0FkZElu Lk9sZENoYW5nZUxvZ0RhdGEiIC8+DQotCTwvRXh0ZW5zaW9uPg0KLQ0KIDwvRXh0ZW5zaW9uTW9k ZWw+DQ0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL0NoYW5nZUxvZ0FkZEluL0NoYW5nZUxv Z0FkZEluLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTExOSw3ICsxMTksNiBAQAogICAgIDxDb21w aWxlIEluY2x1ZGU9Imd0ay1ndWlcTW9ub0RldmVsb3AuQ2hhbmdlTG9nQWRkSW4uUHJvamVjdE9w dGlvblBhbmVsV2lkZ2V0LmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1ZGU9IkNoYW5nZUxvZ1Nl cnZpY2UuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0iQ2hhbmdlTG9nUG9saWN5LmNzIiAv PgotICAgIDxDb21waWxlIEluY2x1ZGU9Ik9sZENoYW5nZUxvZ0RhdGEuY3MiIC8+CiAgICAgPENv bXBpbGUgSW5jbHVkZT0iQWRkaW5JbmZvLmNzIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1H cm91cD4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9DaGFuZ2VMb2dBZGRJbi9DaGFuZ2VM b2dTZXJ2aWNlLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTIxLDcgKzEyMSw2IEBAIHB1YmxpYyBzdGF0 aWMgQ29tbWl0TWVzc2FnZVN0eWxlIEdldE1lc3NhZ2VTdHlsZSAoU29sdXRpb25JdGVtIGl0ZW0p CiAJCQogCQlzdGF0aWMgQ2hhbmdlTG9nUG9saWN5IEdldFBvbGljeSAoU29sdXRpb25JdGVtIGl0 ZW0pCiAJCXsKLQkJCU9sZENoYW5nZUxvZ0RhdGEuTWlncmF0ZSAoaXRlbSk7CiAJCQlyZXR1cm4g aXRlbS5Qb2xpY2llcy5HZXQ8Q2hhbmdlTG9nUG9saWN5PiAoKTsKIAkJfQogCX0NCg0KUmVtb3Zl ZDogbWFpbi9zcmMvYWRkaW5zL0NoYW5nZUxvZ0FkZEluL09sZENoYW5nZUxvZ0RhdGEuY3MNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCkBAIC0xLDEwMCArMCwwIEBACi0vLyAKLS8vIE9sZENoYW5nZUxvZ0RhdGEuY3MK LS8vICAKLS8vIEF1dGhvcjoKLS8vICAgICAgIE1pY2hhZWwgSHV0Y2hpbnNvbiA8bWh1dGNoaW5z b25Abm92ZWxsLmNvbT4KLS8vIAotLy8gQ29weXJpZ2h0IChjKSAyMDA5IE5vdmVsbCwgSW5jLiAo aHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8gCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Ci0vLyBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwgdG8gZGVhbAotLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwotLy8gdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv b3Igc2VsbAotLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi0vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotLy8gCi0vLyBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgot Ly8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0v LyAKLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8v IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLQotdXNpbmcgU3lzdGVtOwotdXNp bmcgTW9ub0RldmVsb3AuUHJvamVjdHM7Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6 YXRpb247Ci0KLW5hbWVzcGFjZSBNb25vRGV2ZWxvcC5DaGFuZ2VMb2dBZGRJbgotewotCQotCVtE YXRhSXRlbSAoIkNoYW5nZUxvZ0luZm8iKV0KLQljbGFzcyBPbGRDaGFuZ2VMb2dEYXRhCi0Jewot CQlbSXRlbVByb3BlcnR5XQotCQlyZWFkb25seSBDaGFuZ2VMb2dQb2xpY3lFbnVtIHBvbGljeSA9 IENoYW5nZUxvZ1BvbGljeUVudW0uVXNlUGFyZW50UG9saWN5OwotCQkKLQkJT2xkQ2hhbmdlTG9n RGF0YSAoKQotCQl7Ci0JCX0KLQkJCi0JCWVudW0gQ2hhbmdlTG9nUG9saWN5RW51bQotCQl7Ci0J CQlOb0NoYW5nZUxvZywKLQkJCVVzZVBhcmVudFBvbGljeSwKLQkJCVVwZGF0ZU5lYXJlc3RDaGFu Z2VMb2csCi0JCQlPbmVDaGFuZ2VMb2dJblByb2plY3RSb290RGlyZWN0b3J5LAotCQkJT25lQ2hh bmdlTG9nSW5FYWNoRGlyZWN0b3J5CQkKLQkJfQotCQkKLQkJcHVibGljIHN0YXRpYyB2b2lkIE1p Z3JhdGUgKFNvbHV0aW9uSXRlbSBlbnRyeSkKLQkJewotCQkJaWYgKGVudHJ5LlBhcmVudEZvbGRl ciAhPSBudWxsKQotCQkJCU1pZ3JhdGUgKGVudHJ5LlBhcmVudEZvbGRlcik7Ci0JCQkKLQkJCXZh ciBkYXRhID0gZW50cnkuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiTW9ub0RldmVsb3AuQ2hhbmdlTG9n QWRkSW4uQ2hhbmdlTG9nSW5mbyJdIGFzIE9sZENoYW5nZUxvZ0RhdGE7Ci0JCQlpZiAoZGF0YSA9 PSBudWxsKQotCQkJCXJldHVybjsKLQkJCQotCQkJZW50cnkuRXh0ZW5kZWRQcm9wZXJ0aWVzLlJl bW92ZSAoIk1vbm9EZXZlbG9wLkNoYW5nZUxvZ0FkZEluLkNoYW5nZUxvZ0luZm8iKTsKLQkJCQot CQkJaWYgKGVudHJ5LlBvbGljaWVzLkRpcmVjdEdldDxDaGFuZ2VMb2dQb2xpY3k+ICgpICE9IG51 bGwpCi0JCQkJcmV0dXJuOwotCQkJCi0JCQlDaGFuZ2VMb2dQb2xpY3lFbnVtIHBvbGljeSA9IGRh dGEucG9saWN5OwotCQkJCi0JCQlpZiAoKGVudHJ5IGlzIFNvbHV0aW9uRm9sZGVyKSAmJiAoKFNv bHV0aW9uRm9sZGVyKWVudHJ5KS5Jc1Jvb3QpIHsKLQkJCQlpZiAocG9saWN5ID09IENoYW5nZUxv Z1BvbGljeUVudW0uVXNlUGFyZW50UG9saWN5KQotCQkJCQlwb2xpY3kgPSBDaGFuZ2VMb2dQb2xp Y3lFbnVtLlVwZGF0ZU5lYXJlc3RDaGFuZ2VMb2c7Ci0JCQl9Ci0JCQkKLQkJCUNoYW5nZUxvZ1Vw ZGF0ZU1vZGUgbW9kZTsKLQkJCVZjc0ludGVncmF0aW9uIGludEVuYWJsZWQgPSBWY3NJbnRlZ3Jh dGlvbi5FbmFibGVkOwotCQkJCi0JCQlzd2l0Y2ggKHBvbGljeSkgewotCQkJY2FzZSBDaGFuZ2VM b2dQb2xpY3lFbnVtLlVzZVBhcmVudFBvbGljeToKLQkJCQlyZXR1cm47Ci0JCQljYXNlIENoYW5n ZUxvZ1BvbGljeUVudW0uTm9DaGFuZ2VMb2c6Ci0JCQkJbW9kZSA9IENoYW5nZUxvZ1VwZGF0ZU1v ZGUuTm9uZTsKLQkJCQlpbnRFbmFibGVkID0gVmNzSW50ZWdyYXRpb24uTm9uZTsKLQkJCQlicmVh azsKLQkJCWNhc2UgQ2hhbmdlTG9nUG9saWN5RW51bS5PbmVDaGFuZ2VMb2dJbkVhY2hEaXJlY3Rv cnk6Ci0JCQkJbW9kZSA9IENoYW5nZUxvZ1VwZGF0ZU1vZGUuRGlyZWN0b3J5OwotCQkJCWJyZWFr OwotCQkJY2FzZSBDaGFuZ2VMb2dQb2xpY3lFbnVtLk9uZUNoYW5nZUxvZ0luUHJvamVjdFJvb3RE aXJlY3Rvcnk6Ci0JCQkJbW9kZSA9IENoYW5nZUxvZ1VwZGF0ZU1vZGUuUHJvamVjdFJvb3Q7Ci0J CQkJYnJlYWs7Ci0JCQljYXNlIENoYW5nZUxvZ1BvbGljeUVudW0uVXBkYXRlTmVhcmVzdENoYW5n ZUxvZzoKLQkJCQltb2RlID0gQ2hhbmdlTG9nVXBkYXRlTW9kZS5OZWFyZXN0OwotCQkJCWJyZWFr OwotCQkJZGVmYXVsdDoKLQkJCQl0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiAo IlVua25vd24gdmFsdWUgJyIgKyBwb2xpY3kgKyAiJyIpOwotCQkJfQotCQkJCi0JCQllbnRyeS5Q b2xpY2llcy5TZXQgKG5ldyBDaGFuZ2VMb2dQb2xpY3kgKG1vZGUsIGludEVuYWJsZWQsIG51bGwp KTsKLQkJfQotCX0KLX0NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9DaGFuZ2VMb2dBZGRJ bi9Qb2xpY2llcy54bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDMgKzEsMyBAQAogPENoYW5nZUxvZ1Bv bGljeSBpZD0iTW9ubyIgVXBkYXRlTW9kZT0iRGlyZWN0b3J5IiBWY3NJbnRlZ3JhdGlvbj0iRW5h YmxlZCIgYWxsb3dEaWZmU2VyaWFsaXplPSJUcnVlIj4KIAk8TWVzc2FnZVN0eWxlIEhlYWRlcj0i JHtEYXRlOnl5eXktTU0tZGR9ICAke0F1dGhvck5hbWV9ICAmbHQ7JHtBdXRob3JFbWFpbH0mZ3Q7 JiN4QTsmI3hBOyIgSW5kZW50PSImI3g5OyIgRmlyc3RGaWxlUHJlZml4PSIqICIgRmlsZVNlcGFy YXRvcj0iOiYjeEE7KiAiIExhc3RGaWxlUG9zdGZpeD0iOiAiIExpbmVBbGlnbj0iMiIgSW50ZXJN ZXNzYWdlTGluZXM9IjEiIEluY2x1ZGVEaXJlY3RvcnlQYXRocz0iRmFsc2UiLz4KLTwvQ2hhbmdl TG9nUG9saWN5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvQ2hhbmdlTG9nUG9saWN5 Pg0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL0NoYW5nZUxvZ0FkZEluL1Byb2plY3RPcHRp b25QYW5lbC5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTQxLDE5ICs0MSw2IEBAIHB1YmxpYyBvdmVycmlk ZSBXaWRnZXQgQ3JlYXRlUGFuZWxXaWRnZXQgKCkKIAkJCXJldHVybiB3aWRnZXQgPSBuZXcgUHJv amVjdE9wdGlvblBhbmVsV2lkZ2V0ICh0aGlzKTsKIAkJfQogCQkKLQkJcHVibGljIG92ZXJyaWRl IHZvaWQgSW5pdGlhbGl6ZSAoT3B0aW9uc0RpYWxvZyBkaWFsb2csIG9iamVjdCBkYXRhT2JqZWN0 KQotCQl7Ci0JCQl2YXIgc29sdXRpb25JdGVtID0gZGF0YU9iamVjdCBhcyBTb2x1dGlvbkl0ZW07 Ci0JCQlpZiAoc29sdXRpb25JdGVtICE9IG51bGwpCi0JCQkJT2xkQ2hhbmdlTG9nRGF0YS5NaWdy YXRlIChzb2x1dGlvbkl0ZW0pOwotCQkJZWxzZSB7Ci0JCQkJdmFyIHNvbHV0aW9uID0gZGF0YU9i amVjdCBhcyBTb2x1dGlvbjsKLQkJCQlpZiAoc29sdXRpb24gIT0gbnVsbCkKLQkJCQkJT2xkQ2hh bmdlTG9nRGF0YS5NaWdyYXRlIChzb2x1dGlvbi5Sb290Rm9sZGVyKTsKLQkJCX0KLQkJCWJhc2Uu SW5pdGlhbGl6ZSAoZGlhbG9nLCBkYXRhT2JqZWN0KTsKLQkJfQotCQkKIAkJcHJvdGVjdGVkIG92 ZXJyaWRlIHN0cmluZyBQb2xpY3lUaXRsZVdpdGhNbmVtb25pYyB7CiAJCQlnZXQgewogCQkJCXJl dHVybiBHZXR0ZXh0Q2F0YWxvZy5HZXRTdHJpbmcgKCJDaGFuZ2VMb2cgX1BvbGljeSIpOw0KDQpN b2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL0RlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVu dC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50LmFkZGluLnhtbA0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTE5Niw4 ICsxOTYsNCBAQAogCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvSWRlL1Byb2plY3RG ZWF0dXJlcyI+CiA8IS0tCQk8Q2xhc3MgY2xhc3MgPSAiTW9ub0RldmVsb3AuRGVwbG95bWVudC5H dWkuUGFja2FnaW5nRmVhdHVyZSIgLz4gLS0+CiAJPC9FeHRlbnNpb24+Ci0JCi0JPEV4dGVuc2lv biBwYXRoID0gIi9Nb25vRGV2ZWxvcC9Qcm9qZWN0TW9kZWwvTUQxU2VyaWFsaXphdGlvbk1hcHMi PgotCQk8U2VyaWFsaXphdGlvbk1hcCByZXNvdXJjZT0ibWQxZm9ybWF0LnhtbCIgLz4KLQk8L0V4 dGVuc2lvbj4KIDwvQWRkaW4+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvRGVwbG95bWVu dC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQuY3Nwcm9qDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQpAQCAtMTU4LDcgKzE1OCw2IEBACiAgICAgPENvbXBpbGUgSW5jbHVkZT0iTW9u b0RldmVsb3AuRGVwbG95bWVudC5HdWlcU3NoRnVzZUZpbGVDb3B5Q29uZmlndXJhdGlvbkVkaXRv cldpZGdldC5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJndGstZ3VpXE1vbm9EZXZlbG9w LkRlcGxveW1lbnQuR3VpLlNzaEZ1c2VGaWxlQ29weUNvbmZpZ3VyYXRpb25FZGl0b3JXaWRnZXQu Y3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuRGVwbG95bWVudC5HdWlc U3NoRnVzZUZpbGVDb3B5Q29uZmlndXJhdGlvbkVkaXRvci5jcyIgLz4KLSAgICA8Q29tcGlsZSBJ bmNsdWRlPSJNb25vRGV2ZWxvcC5EZXBsb3ltZW50XE1EMVNlcmlhbGl6ZXIuY3MiIC8+CiAgIDwv SXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9 Imd0ay1ndWlcZ3VpLnN0ZXRpYyI+CkBAIC0xNzksOSArMTc4LDYgQEAKICAgICA8RW1iZWRkZWRS ZXNvdXJjZSBJbmNsdWRlPSJpY29uc1xwYWNrYWdpbmctMTYucG5nIj4KICAgICAgIDxMb2dpY2Fs TmFtZT5wYWNrYWdpbmctMTYucG5nPC9Mb2dpY2FsTmFtZT4KICAgICA8L0VtYmVkZGVkUmVzb3Vy Y2U+Ci0gICAgPEVtYmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0ibWQxZm9ybWF0LnhtbCI+Ci0gICAg ICA8TG9naWNhbE5hbWU+bWQxZm9ybWF0LnhtbDwvTG9naWNhbE5hbWU+Ci0gICAgPC9FbWJlZGRl ZFJlc291cmNlPgogICA8L0l0ZW1Hcm91cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRC aW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+CiA8L1Byb2plY3Q+DQoNClJlbW92 ZWQ6IG1haW4vc3JjL2FkZGlucy9EZXBsb3ltZW50L01vbm9EZXZlbG9wLkRlcGxveW1lbnQvTW9u b0RldmVsb3AuRGVwbG95bWVudC9NRDFTZXJpYWxpemVyLmNzDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwx MjUgKzAsMCBAQAotLy8gTUQxU2VyaWFsaXplci5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKLXVz aW5nIE1vbm9EZXZlbG9wLlByb2plY3RzOwotdXNpbmcgTW9ub0RldmVsb3AuQ29yZS5TZXJpYWxp emF0aW9uOwotdXNpbmcgTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDE7Ci0KLW5hbWVz cGFjZSBNb25vRGV2ZWxvcC5EZXBsb3ltZW50Ci17Ci0JcHVibGljIGNsYXNzIE1EMVNlcmlhbGl6 ZXI6IElDdXN0b21EYXRhSXRlbUhhbmRsZXIKLQl7Ci0JCXB1YmxpYyBEYXRhQ29sbGVjdGlvbiBT ZXJpYWxpemUgKG9iamVjdCBvYmosIElUeXBlU2VyaWFsaXplciBoYW5kbGVyKQotCQl7Ci0JCQlQ YWNrYWdlQnVpbGRlciBwYiA9IChQYWNrYWdlQnVpbGRlcikgb2JqOwotCQkJTGlzdDxzdHJpbmc+ IGl0ZW1zID0gbmV3IExpc3Q8c3RyaW5nPiAoKTsKLQkJCWZvcmVhY2ggKFNvbHV0aW9uSXRlbSBz aXRlbSBpbiBwYi5HZXRDaGlsZEVudHJpZXMgKCkpIHsKLQkJCQlzdHJpbmcgZmlsZSA9IE1EMVBy b2plY3RTZXJ2aWNlLkdldEl0ZW1GaWxlTmFtZSAoc2l0ZW0pOwotCQkJCWlmIChmaWxlICE9IG51 bGwpCi0JCQkJCWl0ZW1zLkFkZCAoZmlsZSk7Ci0JCQkJZWxzZSBpZiAoaGFuZGxlci5TZXJpYWxp emF0aW9uQ29udGV4dC5Qcm9ncmVzc01vbml0b3IgIT0gbnVsbCkKLQkJCQkJaGFuZGxlci5TZXJp YWxpemF0aW9uQ29udGV4dC5Qcm9ncmVzc01vbml0b3IuUmVwb3J0V2FybmluZyAoIkNhbid0IHNh dmUgcmVmZXJlbmNlIHRvIGl0ZW0gJyIgKyBzaXRlbS5OYW1lICsgIiciKTsKLQkJCX0KLQkJCXN0 cmluZyByb290RmlsZSA9IE1EMVByb2plY3RTZXJ2aWNlLkdldEl0ZW1GaWxlTmFtZSAocGIuUm9v dFNvbHV0aW9uSXRlbSk7Ci0JCQlpZiAocm9vdEZpbGUgPT0gbnVsbCAmJiBoYW5kbGVyLlNlcmlh bGl6YXRpb25Db250ZXh0LlByb2dyZXNzTW9uaXRvciAhPSBudWxsKQotCQkJCWhhbmRsZXIuU2Vy aWFsaXphdGlvbkNvbnRleHQuUHJvZ3Jlc3NNb25pdG9yLlJlcG9ydFdhcm5pbmcgKCJDYW4ndCBz YXZlIHJlZmVyZW5jZSB0byBpdGVtICciICsgcGIuUm9vdFNvbHV0aW9uSXRlbS5OYW1lICsgIici KTsKLQkJCQotCQkJcGIuU2V0U29sdXRpb25JdGVtTWQxIChyb290RmlsZSwgaXRlbXMuVG9BcnJh eSAoKSk7Ci0JCQlyZXR1cm4gaGFuZGxlci5TZXJpYWxpemUgKG9iaik7Ci0JCX0KLQotCQlwdWJs aWMgdm9pZCBEZXNlcmlhbGl6ZSAob2JqZWN0IG9iaiwgSVR5cGVTZXJpYWxpemVyIGhhbmRsZXIs IERhdGFDb2xsZWN0aW9uIGRhdGEpCi0JCXsKLQkJCWhhbmRsZXIuRGVzZXJpYWxpemUgKG9iaiwg ZGF0YSk7Ci0JCX0KLQotCX0KLQkKLQlwdWJsaWMgY2xhc3MgTUQxUHJvamVjdEZpbGVTZXJpYWxp emVyIDogSUN1c3RvbURhdGFJdGVtSGFuZGxlcgotCXsKLQkJc3RhdGljIHN0cmluZ1tdIGtleXMg PSBuZXcgc3RyaW5nW10gewotCQkJIkRlcGxveVNlcnZpY2UuRGVwbG95IiwKLQkJCSJEZXBsb3lT ZXJ2aWNlLlRhcmdldERpcmVjdG9yeUlkIiwKLQkJCSJEZXBsb3lTZXJ2aWNlLlJlbGF0aXZlRGVw bG95UGF0aCIsCi0JCQkiRGVwbG95U2VydmljZS5Vc2VQcm9qZWN0UmVsYXRpdmVQYXRoIiwKLQkJ CSJEZXBsb3lTZXJ2aWNlLkhhc1BhdGhSZWZlcmVuY2VzIiwKLQkJCSJEZXBsb3lTZXJ2aWNlLkZp bGVBdHRyaWJ1dGVzIgotCQl9OwotCQkKLQkJcHVibGljIERhdGFDb2xsZWN0aW9uIFNlcmlhbGl6 ZSAob2JqZWN0IG9iaiwgSVR5cGVTZXJpYWxpemVyIGhhbmRsZXIpCi0JCXsKLQkJCURhdGFDb2xs ZWN0aW9uIGRhdGEgPSBoYW5kbGVyLlNlcmlhbGl6ZSAob2JqKTsKLQkJCVByb2plY3RGaWxlIGZp bGUgPSAoUHJvamVjdEZpbGUpIG9iajsKLQkJCQotCQkJLy9pZiB0aGUgZmlsZSBpcyBtYXJrZWQg dG8gY29weSB0byBvdXRwdXQsIHRoZSBkZXBsb3kgc2V0dGluZ3MgYXJlIHVzZWxlc3MsIHNvIHN0 cmlwIHRoZW0gb3V0IGFuZCByZXR1cm4KLQkJCWlmIChmaWxlLkNvcHlUb091dHB1dERpcmVjdG9y eSAhPSBGaWxlQ29weU1vZGUuTm9uZSkgewotCQkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5 cykgewotCQkJCQlkYXRhLkV4dHJhY3QgKGtleSk7Ci0JCQkJfQotCQkJCXJldHVybiBkYXRhOwot CQkJfQotCQkJCi0JCQkvL2lmIHRoZSBmaWxlIHdhcyBGaWxlQ29weU1vZGUuTm9uZSBhbmQgaXMg QnVpbGRBY3Rpb24uQ29udGVudCBhbmQgaXMgbWFya2VkIHRvIGRlcGxveSwgdGhlbiB3ZSBjYW4g Ci0JCQkvL21hcCBpdCBiYWNrIHRvIGEgRmlsZUNvcHkgYnVpbGQgYWN0aW9uCi0JCQlpZiAoZmls ZS5CdWlsZEFjdGlvbiA9PSBCdWlsZEFjdGlvbi5Db250ZW50KSB7Ci0JCQkJb2JqZWN0IHZhbCA9 IGZpbGUuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiRGVwbG95U2VydmljZS5EZXBsb3kiXTsKLQkJCQlp ZiAodmFsICE9IG51bGwgJiYgKGJvb2wpIHZhbCkgewotCQkJCQlkYXRhLkV4dHJhY3QgKCJidWls ZGFjdGlvbiIpOwotCQkJCQlkYXRhLkFkZCAobmV3IERhdGFWYWx1ZSAoImJ1aWxkYWN0aW9uIiwg IkZpbGVDb3B5IikpOwotCQkJCX0KLQkJCX0KLQkJCQotCQkJcmV0dXJuIGRhdGE7Ci0JCX0KLQot CQlwdWJsaWMgdm9pZCBEZXNlcmlhbGl6ZSAob2JqZWN0IG9iaiwgSVR5cGVTZXJpYWxpemVyIGhh bmRsZXIsIERhdGFDb2xsZWN0aW9uIGRhdGEpCi0JCXsKLQkJCS8vZmluZCB3aGV0aGVyIGlzIHdh cyBtYXJrZWQgYXMgRmlsZUNvcHkKLQkJCURhdGFWYWx1ZSB2YWx1ZSA9IGRhdGEgWyJidWlsZGFj dGlvbiJdIGFzIERhdGFWYWx1ZTsKLQkJCWJvb2wgaXNGaWxlQ29weSA9IHZhbHVlICE9IG51bGwg JiYgdmFsdWUuVmFsdWUgPT0gIkZpbGVDb3B5IjsKLQkJCQotCQkJaGFuZGxlci5EZXNlcmlhbGl6 ZSAob2JqLCBkYXRhKTsKLQkJCVByb2plY3RGaWxlIGZpbGUgPSAoUHJvamVjdEZpbGUpIG9iajsK LQkJCQotCQkJLy9pZiBpdCB3YXNuJ3QsIG5vIGZhbmN5IG1pZ3JhdGlvbnMgdG8gZG8KLQkJCWlm ICghaXNGaWxlQ29weSkKLQkJCQlyZXR1cm47Ci0JCQkKLQkJCS8vaWYgdGhlcmUgd2VyZSBhbnkg ZGVwbG95IHNldHRpbmdzIHJlbWFpbmluZyBpbiB0aGUgcHJvamVjdCBmaWxlLCB0aGVuIHRoZSBm aWxlIGlzbid0ICJjb3B5IHRvIG91dHB1dCIKLQkJCS8vYnV0IGluc3RlYWQgc2hvdWxkIGJlIG1h cmtlZCB0byBkZXBsb3kKLQkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykgewotCQkJCWlm IChmaWxlLkV4dGVuZGVkUHJvcGVydGllcy5Db250YWlucyAoa2V5KSkgewotCQkJCQlmaWxlLkNv cHlUb091dHB1dERpcmVjdG9yeSA9IEZpbGVDb3B5TW9kZS5Ob25lOwotCQkJCQlmaWxlLkV4dGVu ZGVkUHJvcGVydGllcyBbIkRlcGxveVNlcnZpY2UuRGVwbG95Il0gPSB0cnVlOwotCQkJCQlyZXR1 cm47Ci0JCQkJfQotCQkJfQotCQl9Ci0JfQotfQ0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5z L0RlcGxveW1lbnQvTW9ub0RldmVsb3AuRGVwbG95bWVudC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50 L1BhY2thZ2VCdWlsZGVyLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNTIsMTEgKzUyLDYgQEAgcHVibGlj IGNsYXNzIFBhY2thZ2VCdWlsZGVyOiBJRGlyZWN0b3J5UmVzb2x2ZXIKIAkJCiAJCUxpc3Q8U29s dXRpb25JdGVtPiBjaGlsZENvbWJpbmVFbnRyaWVzOwogCQlTb2x1dGlvbkl0ZW0gcm9vdFNvbHV0 aW9uSXRlbTsKLQotI3JlZ2lvbiBNRCAxLjAgY29tcGF0aWJpbGl0eSBmaWVsZHMKLQkJc3RyaW5n W10gbWQxQ2hpbGRFbnRyaWVzOwotCQlzdHJpbmcgbWQxUm9vdEVudHJ5OwotI2VuZHJlZ2lvbgog CQkKIAkJcHVibGljIFBhY2thZ2VCdWlsZGVyICgpCiAJCXsKQEAgLTEyNiw5ICsxMjEsNyBAQCBw dWJsaWMgdmlydHVhbCB2b2lkIENvcHlGcm9tIChQYWNrYWdlQnVpbGRlciBvdGhlcikKIAkJewog CQkJY2hpbGRFbnRyaWVzID0gbmV3IExpc3Q8U29sdXRpb25JdGVtUmVmZXJlbmNlPiAob3RoZXIu Y2hpbGRFbnRyaWVzKTsKIAkJCXJvb3RFbnRyeSA9IG90aGVyLnJvb3RFbnRyeTsKLQkJCW1kMUNo aWxkRW50cmllcyA9IG90aGVyLm1kMUNoaWxkRW50cmllczsKLQkJCW1kMVJvb3RFbnRyeSA9IG90 aGVyLm1kMVJvb3RFbnRyeTsKLQkJCQorCiAJCQlpZiAob3RoZXIuY2hpbGRDb21iaW5lRW50cmll cyAhPSBudWxsKQogCQkJCWNoaWxkQ29tYmluZUVudHJpZXMgPSBuZXcgTGlzdDxTb2x1dGlvbkl0 ZW0+IChvdGhlci5jaGlsZENvbWJpbmVFbnRyaWVzKTsKIAkJCWVsc2UKQEAgLTE5MCwxMiArMTgz LDYgQEAgaW50ZXJuYWwgdm9pZCBTZXRTb2x1dGlvbkl0ZW0gKFNvbHV0aW9uSXRlbVJlZmVyZW5j ZSBzaVJvb3QsIFNvbHV0aW9uSXRlbVJlZmVyZW4KIAkJCQljaGlsZEVudHJpZXMuQWRkIChlKTsK IAkJfQogCQkKLQkJaW50ZXJuYWwgdm9pZCBTZXRTb2x1dGlvbkl0ZW1NZDEgKHN0cmluZyBzaVJv b3QsIHN0cmluZ1tdIGNoaWxkcmVuKQotCQl7Ci0JCQltZDFSb290RW50cnkgPSBzaVJvb3Q7Ci0J CQltZDFDaGlsZEVudHJpZXMgPSBjaGlsZHJlbjsKLQkJfQotCQkKIAkJdm9pZCBVcGRhdGVFbnRy eU5hbWVzICgpCiAJCXsKIAkJCXRoaXMucm9vdEVudHJ5ID0gbmV3IFNvbHV0aW9uSXRlbVJlZmVy ZW5jZSAocm9vdFNvbHV0aW9uSXRlbSk7CkBAIC0yMDYsMTMgKzE5Myw4IEBAIHZvaWQgVXBkYXRl RW50cnlOYW1lcyAoKQogCQkKIAkJcHVibGljIFNvbHV0aW9uSXRlbSBSb290U29sdXRpb25JdGVt IHsKIAkJCWdldCB7Ci0JCQkJaWYgKHJvb3RTb2x1dGlvbkl0ZW0gPT0gbnVsbCAmJiAocm9vdEVu dHJ5ICE9IG51bGwgfHwgbWQxUm9vdEVudHJ5ICE9IG51bGwpKSB7Ci0JCQkJCWlmIChtZDFSb290 RW50cnkgIT0gbnVsbCkgewotCQkJCQkJcm9vdFNvbHV0aW9uSXRlbSA9IEdldEVudHJ5TUQxICht ZDFSb290RW50cnkpOwotCQkJCQkJbWQxUm9vdEVudHJ5ID0gbnVsbDsKLQkJCQkJfSBlbHNlCi0J CQkJCQlyb290U29sdXRpb25JdGVtID0gR2V0RW50cnkgKHJvb3RFbnRyeSk7Ci0JCQkJfQorCQkJ CWlmIChyb290U29sdXRpb25JdGVtID09IG51bGwgJiYgcm9vdEVudHJ5ICE9IG51bGwpCisJCQkJ CXJvb3RTb2x1dGlvbkl0ZW0gPSBHZXRFbnRyeSAocm9vdEVudHJ5KTsKIAkJCQlyZXR1cm4gcm9v dFNvbHV0aW9uSXRlbTsgCiAJCQl9CiAJCX0KQEAgLTI2MSwxNiArMjQzLDYgQEAgcHVibGljIFNv bHV0aW9uSXRlbVtdIEdldENoaWxkRW50cmllcyAoKQogCQkJCiAJCQljaGlsZENvbWJpbmVFbnRy aWVzID0gbmV3IExpc3Q8U29sdXRpb25JdGVtPiAoKTsKIAkJCQotCQkJaWYgKG1kMUNoaWxkRW50 cmllcyAhPSBudWxsKSB7Ci0JCQkJZm9yZWFjaCAoc3RyaW5nIGl0IGluIG1kMUNoaWxkRW50cmll cykgewotCQkJCQlTb2x1dGlvbkl0ZW0gcmUgPSBHZXRFbnRyeU1EMSAoaXQpOwotCQkJCQlpZiAo cmUgIT0gbnVsbCAmJiAhKHJlIGlzIFVua25vd25Tb2x1dGlvbkl0ZW0pKQotCQkJCQkJY2hpbGRD b21iaW5lRW50cmllcy5BZGQgKHJlKTsKLQkJCQl9Ci0JCQkJbWQxQ2hpbGRFbnRyaWVzID0gbnVs bDsKLQkJCQlyZXR1cm4gY2hpbGRDb21iaW5lRW50cmllcy5Ub0FycmF5ICgpOwotCQkJfQotCQkJ CiAJCQlmb3JlYWNoIChTb2x1dGlvbkl0ZW1SZWZlcmVuY2UgZW4gaW4gY2hpbGRFbnRyaWVzKSB7 CiAJCQkJU29sdXRpb25JdGVtIHJlID0gR2V0RW50cnkgKGVuKTsKIAkJCQlpZiAocmUgIT0gbnVs bCAmJiAhKHJlIGlzIFVua25vd25Tb2x1dGlvbkl0ZW0pKQpAQCAtMzQ2LDQxICszMTgsNSBAQCBp bnRlcm5hbCBzdGF0aWMgU29sdXRpb25JdGVtIEdldENvbW1vblNvbHV0aW9uSXRlbSAoSUVudW1l cmFibGU8U29sdXRpb25JdGVtPiBlbgogCQkJfQogCQkJcmV0dXJuIGNvbW1vbjsKIAkJfQotCQkK LQkJU29sdXRpb25JdGVtIEdldEVudHJ5TUQxIChzdHJpbmcgZmlsZU5hbWUpCi0JCXsKLQkJCWZv cmVhY2ggKFdvcmtzcGFjZUl0ZW0gaXQgaW4gSWRlQXBwLldvcmtzcGFjZS5JdGVtcykgewotCQkJ CVNvbHV0aW9uSXRlbSBmaSA9IEZpbmRFbnRyeU1EMSAoaXQsIEZpbGVTZXJ2aWNlLkdldEZ1bGxQ YXRoIChmaWxlTmFtZSkpOwotCQkJCWlmIChmaSAhPSBudWxsKQotCQkJCQlyZXR1cm4gZmk7Ci0J CQl9Ci0JCQlyZXR1cm4gU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFNvbHV0aW9uSXRlbSAo bmV3IE51bGxQcm9ncmVzc01vbml0b3IgKCksIGZpbGVOYW1lKTsKLQkJfQotCQkKLQkJU29sdXRp b25JdGVtIEZpbmRFbnRyeU1EMSAob2JqZWN0IGl0ZW0sIHN0cmluZyBmaWxlTmFtZSkKLQkJewot CQkJaWYgKGl0ZW0gaXMgU29sdXRpb25JdGVtKSB7Ci0JCQkJc3RyaW5nIGZpbGUgPSBNb25vRGV2 ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5NRDFQcm9qZWN0U2VydmljZS5HZXRJdGVtRmlsZU5h bWUgKChTb2x1dGlvbkl0ZW0paXRlbSk7Ci0JCQkJaWYgKGZpbGUgIT0gbnVsbCAmJiBGaWxlU2Vy dmljZS5HZXRGdWxsUGF0aCAoZmlsZSkgPT0gZmlsZU5hbWUpCi0JCQkJCXJldHVybiAoU29sdXRp b25JdGVtKSBpdGVtOwotCQkJfQotCQkJCi0JCQlpZiAoaXRlbSBpcyBTb2x1dGlvbikgewotCQkJ CXJldHVybiBGaW5kRW50cnlNRDEgKCgoU29sdXRpb24paXRlbSkuUm9vdEZvbGRlciwgZmlsZU5h bWUpOwotCQkJfQotCQkJZWxzZSBpZiAoaXRlbSBpcyBTb2x1dGlvbkZvbGRlcikgewotCQkJCWZv cmVhY2ggKFNvbHV0aW9uSXRlbSBjZSBpbiAoKFNvbHV0aW9uRm9sZGVyKWl0ZW0pLkl0ZW1zKSB7 Ci0JCQkJCVNvbHV0aW9uSXRlbSBmaSA9IEZpbmRFbnRyeU1EMSAoY2UsIGZpbGVOYW1lKTsKLQkJ CQkJaWYgKGZpICE9IG51bGwpIHJldHVybiBmaTsKLQkJCQl9Ci0JCQl9Ci0JCQllbHNlIGlmIChp dGVtIGlzIFdvcmtzcGFjZSkgewotCQkJCWZvcmVhY2ggKFdvcmtzcGFjZUl0ZW0gd2kgaW4gKChX b3Jrc3BhY2UpaXRlbSkuSXRlbXMpIHsKLQkJCQkJU29sdXRpb25JdGVtIGZpID0gRmluZEVudHJ5 TUQxICh3aSwgZmlsZU5hbWUpOwotCQkJCQlpZiAoZmkgIT0gbnVsbCkgcmV0dXJuIGZpOwotCQkJ CX0KLQkJCX0KLQkJCXJldHVybiBudWxsOwotCQl9CiAJfQogfQ0KDQpSZW1vdmVkOiBtYWluL3Ny Yy9hZGRpbnMvRGVwbG95bWVudC9Nb25vRGV2ZWxvcC5EZXBsb3ltZW50L21kMWZvcm1hdC54bWwN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCkBAIC0xLDExICswLDAgQEAKLTxTZXJpYWxpemF0aW9uTWFwPgotCTxEYXRh SXRlbSBjbGFzcyA9ICJNb25vRGV2ZWxvcC5EZXBsb3ltZW50LlBhY2thZ2VCdWlsZGVyIiBjdXN0 b21EYXRhSXRlbT0iTW9ub0RldmVsb3AuRGVwbG95bWVudC5NRDFTZXJpYWxpemVyIj4KLQkJPEl0 ZW1Qcm9wZXJ0eSBtZW1iZXI9ImV4Y2x1ZGVkRmlsZXMiIG5hbWU9IkV4Y2x1ZGVkRmlsZXMiLz4K LQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImV4Y2x1ZGVkRmlsZXMiIHNjb3BlPSIqIiBuYW1lPSJG aWxlIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJtZDFDaGlsZEVudHJpZXMiIG5hbWU9IkNo aWxkRW50cmllcyIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibWQxQ2hpbGRFbnRyaWVzIiBz Y29wZT0iKiIgbmFtZT0iRW50cnkiICBzZXJpYWxpemF0aW9uRGF0YVR5cGU9Ik1vbm9EZXZlbG9w LlByb2plY3RzLlBhdGhEYXRhVHlwZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibWQxUm9v dEVudHJ5IiBuYW1lPSJyb290RW50cnkiICBzZXJpYWxpemF0aW9uRGF0YVR5cGU9Ik1vbm9EZXZl bG9wLlByb2plY3RzLlBhdGhEYXRhVHlwZSIvPgotCTwvRGF0YUl0ZW0+Ci0JPERhdGFJdGVtIGNs YXNzID0gIk1vbm9EZXZlbG9wLlByb2plY3RzLlByb2plY3RGaWxlIiBjdXN0b21EYXRhSXRlbSA9 ICJNb25vRGV2ZWxvcC5EZXBsb3ltZW50Lk1EMVByb2plY3RGaWxlU2VyaWFsaXplciIgPgotCTwv RGF0YUl0ZW0+Ci08L1NlcmlhbGl6YXRpb25NYXA+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQ0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL01ha2VmaWxlLmFtDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpA QCAtMTksNyArMTksNiBAQCBTVUJESVJTID0gXAogCU5Vbml0IFwNCiAJTW9ub0RldmVsb3BlckV4 dGVuc2lvbnMgXA0KIAlWQk5ldEJpbmRpbmcgXA0KLQlwcmoybWFrZS1zaGFycC1saWIgXA0KIAlN b25vRGV2ZWxvcC5HdGtDb3JlIFwNCiAJQ2hhbmdlTG9nQWRkSW4gXA0KIAlNb25vRGV2ZWxvcC5X ZWJSZWZlcmVuY2VzIFwNDQoNCk1vZGlmaWVkOiBtYWluL3NyYy9hZGRpbnMvTlVuaXQvTW9ub0Rl dmVsb3AuTlVuaXQuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTQ3LDkgKzE0Nyw2IEBACiAgICAg PEVtYmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0iR3VpXG51bml0LW92ZXJsYXktMzIucG5nIj4KICAg ICAgIDxMb2dpY2FsTmFtZT5udW5pdC1vdmVybGF5LTMyLnBuZzwvTG9naWNhbE5hbWU+CiAgICAg PC9FbWJlZGRlZFJlc291cmNlPgotICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Im1kMWZv cm1hdC54bWwiPgotICAgICAgPExvZ2ljYWxOYW1lPm1kMWZvcm1hdC54bWw8L0xvZ2ljYWxOYW1l PgotICAgIDwvRW1iZWRkZWRSZXNvdXJjZT4KICAgICA8RW1iZWRkZWRSZXNvdXJjZSBJbmNsdWRl PSJndGstZ3VpXGd1aS5zdGV0aWMiPgogICAgICAgPExvZ2ljYWxOYW1lPmd1aS5zdGV0aWM8L0xv Z2ljYWxOYW1lPgogICAgIDwvRW1iZWRkZWRSZXNvdXJjZT4KQEAgLTE3NSw3ICsxNzIsNiBAQAog ICAgIDxDb21waWxlIEluY2x1ZGU9Ikd1aVxOVW5pdEFzc2VtYmx5R3JvdXBOb2RlQnVpbGRlci5j cyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJHdWlcTlVuaXRBc3NlbWJseUdyb3VwQ29uZmln dXJhdGlvbk5vZGVCdWlsZGVyLmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1ZGU9Ikd1aVxUZXN0 QXNzZW1ibHlOb2RlQnVpbGRlci5jcyIgLz4KLSAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9qZWN0 XE5Vbml0QXNzZW1ibHlHcm91cEZpbGVGb3JtYXQuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVk ZT0iUHJvamVjdFxOVW5pdEFzc2VtYmx5R3JvdXBQcm9qZWN0LmNzIiAvPgogICAgIDxDb21waWxl IEluY2x1ZGU9IlByb2plY3RcVGVzdEFzc2VtYmx5LmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1 ZGU9IlByb2plY3RcVGVzdEFzc2VtYmx5Q29sbGVjdGlvbi5jcyIgLz4NCg0KTW9kaWZpZWQ6IG1h aW4vc3JjL2FkZGlucy9OVW5pdC9Nb25vRGV2ZWxvcE5Vbml0LmFkZGluLnhtbA0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTE5MiwxMSArMTkyLDYgQEAKICAgCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVs b3AvSWRlL0ZpbGVUZW1wbGF0ZXMiPgogCQk8RmlsZVRlbXBsYXRlIGlkID0gIk5Vbml0VGVzdENs YXNzIiByZXNvdXJjZSA9ICJOVW5pdFRlc3RDbGFzcy54ZnQueG1sIi8+CiAJPC9FeHRlbnNpb24+ Ci0gIAotCTxFeHRlbnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvUHJvamVjdE1vZGVsL0ZpbGVG b3JtYXRzIj4KLQkJPEZpbGVGb3JtYXQgaWQ9Ik5Vbml0QXNzZW1ibHlHcm91cEZpbGVGb3JtYXQi Ci0JCSAgICAgICAgICAgIGNsYXNzPSJNb25vRGV2ZWxvcC5OVW5pdC5OVW5pdEFzc2VtYmx5R3Jv dXBGaWxlRm9ybWF0Ii8+Ci0JPC9FeHRlbnNpb24+CiAKIAk8RXh0ZW5zaW9uIHBhdGggPSAiL01v bm9EZXZlbG9wL05Vbml0L1Rlc3RQcm92aWRlcnMiPgogCQk8Q2xhc3MgaWQ9IlN5c3RlbVRlc3RQ cm92aWRlciIgY2xhc3M9Ik1vbm9EZXZlbG9wLk5Vbml0LlN5c3RlbVRlc3RQcm92aWRlciIgLz4N Cg0KUmVtb3ZlZDogbWFpbi9zcmMvYWRkaW5zL05Vbml0L1Byb2plY3QvTlVuaXRBc3NlbWJseUdy b3VwRmlsZUZvcm1hdC5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMTI2ICswLDAgQEAKLS8vCi0vLyBO VW5pdEFzc2VtYmx5R3JvdXBGaWxlRm9ybWF0LmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVp cyBTYW5jaGV6IEd1YWwKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMDUgTm92ZWxsLCBJbmMgKGh0 dHA6Ly93d3cubm92ZWxsLmNvbSkKLS8vCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKLS8vIGEgY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotLy8g IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZwotLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0vLyBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K LS8vIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vIAotLy8gVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLS8vIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgot Ly8gCi0vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLS8vIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUKLS8vIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04KLS8vIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgotLy8gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0vLwotCi0KLXVzaW5nIFN5c3Rl bTsKLXVzaW5nIFN5c3RlbS5JTzsKLXVzaW5nIFN5c3RlbS5YbWw7Ci11c2luZyBTeXN0ZW0uQ29s bGVjdGlvbnMuR2VuZXJpYzsKLXVzaW5nIE1vbm9EZXZlbG9wLlByb2plY3RzOwotdXNpbmcgTW9u b0RldmVsb3AuQ29yZS5TZXJpYWxpemF0aW9uOwotdXNpbmcgTW9ub0RldmVsb3AuQ29yZTsKLXVz aW5nIE1vbm9EZXZlbG9wLlByb2plY3RzLkV4dGVuc2lvbnM7Ci11c2luZyBNb25vRGV2ZWxvcC5Q cm9qZWN0cy5Gb3JtYXRzLk1EMTsKLQotbmFtZXNwYWNlIE1vbm9EZXZlbG9wLk5Vbml0Ci17Ci0J cHVibGljIGNsYXNzIE5Vbml0QXNzZW1ibHlHcm91cEZpbGVGb3JtYXQ6IElGaWxlRm9ybWF0Ci0J ewotCQlwdWJsaWMgc3RyaW5nIE5hbWUgewotCQkJZ2V0IHsgcmV0dXJuICJOVW5pdCBhc3NlbWJs eSBncm91cCI7IH0KLQkJfQ0KLQ0KLQkJcHVibGljIEZpbGVQYXRoIEdldFZhbGlkRm9ybWF0TmFt ZSAob2JqZWN0IG9iaiwgRmlsZVBhdGggZmlsZU5hbWUpCi0JCXsKLQkJCXJldHVybiBmaWxlTmFt ZS5DaGFuZ2VFeHRlbnNpb24gKCIubWQtbnVuaXQiKTsKLQkJfQ0KLQ0KLQkJcHVibGljIGJvb2wg Q2FuUmVhZEZpbGUgKEZpbGVQYXRoIGZpbGUsIFR5cGUgZXhwZWN0ZWRUeXBlKQotCQl7Ci0JCQly ZXR1cm4gZXhwZWN0ZWRUeXBlLklzQXNzaWduYWJsZUZyb20gKHR5cGVvZihOVW5pdEFzc2VtYmx5 R3JvdXBQcm9qZWN0KSkgJiYgUGF0aC5HZXRFeHRlbnNpb24gKGZpbGUpID09ICIubWQtbnVuaXQi OwotCQl9Ci0JCQotCQlwdWJsaWMgYm9vbCBDYW5Xcml0ZUZpbGUgKG9iamVjdCBvYmopCi0JCXsK LQkJCXJldHVybiBmYWxzZTsKLQkJfQ0KLQ0KLQkJcHVibGljIHZvaWQgV3JpdGVGaWxlIChGaWxl UGF0aCBmaWxlLCBvYmplY3Qgb2JqLCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCi0JCXsKLQkJ CVdyaXRlRmlsZSAoZmlsZSwgZmlsZSwgb2JqLCBtb25pdG9yKTsKLQkJfQ0KLQ0KLQkJcHVibGlj IHZvaWQgRXhwb3J0RmlsZSAoRmlsZVBhdGggZmlsZSwgb2JqZWN0IG9iaiwgSVByb2dyZXNzTW9u aXRvciBtb25pdG9yKQotCQl7Ci0JCQlXcml0ZUZpbGUgKCgoTlVuaXRBc3NlbWJseUdyb3VwUHJv amVjdClvYmopLkZpbGVOYW1lLCBmaWxlLCBvYmosIG1vbml0b3IpOwotCQl9DQotDQotCQlwdWJs aWMgTGlzdDxGaWxlUGF0aD4gR2V0SXRlbUZpbGVzIChvYmplY3Qgb2JqKQotCQl7DQotCQkJcmV0 dXJuIG5ldyBMaXN0PEZpbGVQYXRoPiAoKTsKLQkJfQ0KLQ0KLQkJdm9pZCBXcml0ZUZpbGUgKEZp bGVQYXRoIGZpbGUsIEZpbGVQYXRoIG91dEZpbGUsIG9iamVjdCBvYmosIElQcm9ncmVzc01vbml0 b3IgbW9uaXRvcikKLQkJewotCQl9DQotDQotCQlwdWJsaWMgb2JqZWN0IFJlYWRGaWxlIChGaWxl UGF0aCBmaWxlLCBUeXBlIGV4cGVjdGVkVHlwZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQot CQl7Ci0JCQlYbWxUZXh0UmVhZGVyIHJlYWRlciA9IG5ldyBYbWxUZXh0UmVhZGVyIChuZXcgU3Ry ZWFtUmVhZGVyIChmaWxlKSk7Ci0JCQl0cnkgewotCQkJCW1vbml0b3IuQmVnaW5UYXNrIChzdHJp bmcuRm9ybWF0IChHZXR0ZXh0Q2F0YWxvZy5HZXRTdHJpbmcgKCJMb2FkaW5nIHByb2plY3Q6IHsw fSIpLCBmaWxlKSwgMSk7Ci0JCQkJCi0JCQkJcmVhZGVyLk1vdmVUb0NvbnRlbnQgKCk7Ci0JCQkJ Ci0JCQkJWG1sRGF0YVNlcmlhbGl6ZXIgc2VyID0gbmV3IFhtbERhdGFTZXJpYWxpemVyIChNRDFQ cm9qZWN0U2VydmljZS5EYXRhQ29udGV4dCk7Ci0JCQkJc2VyLlNlcmlhbGl6YXRpb25Db250ZXh0 LkJhc2VGaWxlID0gZmlsZTsKLQkJCQkKLQkJCQlTb2x1dGlvbkVudGl0eUl0ZW0gZW50cnkgPSAo U29sdXRpb25FbnRpdHlJdGVtKSBzZXIuRGVzZXJpYWxpemUgKHJlYWRlciwgdHlwZW9mKE5Vbml0 QXNzZW1ibHlHcm91cFByb2plY3QpKTsKLQkJCQllbnRyeS5GaWxlTmFtZSA9IGZpbGU7Ci0JCQkJ cmV0dXJuIGVudHJ5OwotCQkJfQotCQkJY2F0Y2ggKEV4Y2VwdGlvbiBleCkgewotCQkJCW1vbml0 b3IuUmVwb3J0RXJyb3IgKHN0cmluZy5Gb3JtYXQgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAo IkNvdWxkIG5vdCBsb2FkIHByb2plY3Q6IHswfSIpLCBmaWxlKSwgZXgpOwotCQkJCXRocm93Owot CQkJfQotCQkJZmluYWxseSB7Ci0JCQkJbW9uaXRvci5FbmRUYXNrICgpOwotCQkJCXJlYWRlci5D bG9zZSAoKTsKLQkJCX0KLQkJfQotCi0JCXB1YmxpYyB2b2lkIENvbnZlcnRUb0Zvcm1hdCAob2Jq ZWN0IG9iaikKLQkJewotCQl9Ci0JCQotCQlwdWJsaWMgYm9vbCBTdXBwb3J0c01peGVkRm9ybWF0 cyB7Ci0JCQlnZXQgeyByZXR1cm4gZmFsc2U7IH0KLQkJfQotCi0JCXB1YmxpYyBJRW51bWVyYWJs ZTxzdHJpbmc+IEdldENvbXBhdGliaWxpdHlXYXJuaW5ncyAob2JqZWN0IG9iaikKLQkJewotCQkJ eWllbGQgYnJlYWs7Ci0JCX0KLQkJCi0JCXB1YmxpYyBib29sIFN1cHBvcnRzRnJhbWV3b3JrIChN b25vRGV2ZWxvcC5Db3JlLkFzc2VtYmxpZXMuVGFyZ2V0RnJhbWV3b3JrIGZyYW1ld29yaykKLQkJ ewotCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQl9Ci19Ci0NCg0KUmVtb3ZlZDogbWFpbi9zcmMvYWRk aW5zL05Vbml0L21kMWZvcm1hdC54bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDE4ICswLDAgQEAKLTxT ZXJpYWxpemF0aW9uTWFwPgotCTxEYXRhSXRlbSBjbGFzcyA9ICJNb25vRGV2ZWxvcC5DU2hhcnAu UHJvamVjdC5DU2hhcnBDb21waWxlclBhcmFtZXRlcnMiPgotCQk8SXRlbVByb3BlcnR5IG1lbWJl cj0id2FybmluZ2xldmVsIiBuYW1lID0gIndhcm5pbmdsZXZlbCIvPgotCQk8SXRlbVByb3BlcnR5 IG1lbWJlcj0ibm9XYXJuaW5ncyIgbmFtZT0ibm93YXJuIiBkZWZhdWx0VmFsdWU9IiIvPgotCQk8 SXRlbVByb3BlcnR5IG1lbWJlcj0ib3B0aW1pemUiIG5hbWU9Im9wdGltaXplIi8+Ci0JCTxJdGVt UHJvcGVydHkgbWVtYmVyPSJ1bnNhZmVjb2RlIiBuYW1lPSJ1bnNhZmVjb2RlYWxsb3dlZCIvPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iZ2VuZXJhdGVPdmVyZmxvd0NoZWNrcyIgbmFtZT0iZ2Vu ZXJhdGVvdmVyZmxvd2NoZWNrcyIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibWFpbmNsYXNz IiBuYW1lPSJtYWluY2xhc3MiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImRlZmluZXN5bWJv bHMiIG5hbWU9ImRlZmluZXN5bWJvbHMiIGRlZmF1bHRWYWx1ZT0iIiAvPgotCQk8SXRlbVByb3Bl cnR5IG1lbWJlcj0iZ2VuZXJhdGVYbWxEb2N1bWVudGF0aW9uIiBuYW1lPSJnZW5lcmF0ZXhtbGRv Y3VtZW50YXRpb24iLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9IndpbjMySWNvbiIgbmFtZT0i d2luMzJJY29uIiBkZWZhdWx0VmFsdWU9IiIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Indp bjMyUmVzb3VyY2UiIG5hbWU9IndpbjMyUmVzb3VyY2UiIGRlZmF1bHRWYWx1ZT0iIiAvPgotCQk8 SXRlbVByb3BlcnR5IG1lbWJlcj0iY29kZVBhZ2UiIG5hbWU9ImNvZGVwYWdlIiBkZWZhdWx0VmFs dWU9IjAiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImFkZGl0aW9uYWxBcmdzIiBuYW1lPSJh ZGRpdGlvbmFsYXJncyIgZGVmYXVsdFZhbHVlPSIiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVy PSJsYW5nVmVyc2lvbiIgbmFtZT0ibGFuZ3ZlcnNpb24iIGRlZmF1bHRWYWx1ZT0iRGVmYXVsdCIv PgotCQk8TGl0ZXJhbFByb3BlcnR5IG5hbWU9ImNvbXBpbGVyIiB2YWx1ZT0iTWNzIiAvPgotCTwv RGF0YUl0ZW0+Ci08L1NlcmlhbGl6YXRpb25NYXA+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQ0KDQpNb2RpZmllZDogbWFpbi9zcmMvYWRkaW5zL1ZCTmV0QmluZGluZy9WQk5ldEJpbmRpbmcu YWRkaW4ueG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjEsMTAgKzIxLDYgQEAKIAkJCWltcG9ydD0iJChN U0J1aWxkQmluUGF0aClcTWljcm9zb2Z0LlZpc3VhbEJhc2ljLnRhcmdldHMiCiAJCQlyZXNvdXJj ZUhhbmRsZXI9Ik1vbm9EZXZlbG9wLlZCTmV0QmluZGluZy5WQk5ldFJlc291cmNlSWRCdWlsZGVy Ii8+CiAJPC9FeHRlbnNpb24+Ci0JCi0JPEV4dGVuc2lvbiBwYXRoID0gIi9Nb25vRGV2ZWxvcC9Q cm9qZWN0TW9kZWwvTUQxU2VyaWFsaXphdGlvbk1hcHMiPgotCQk8U2VyaWFsaXphdGlvbk1hcCBy ZXNvdXJjZT0ibWQxZm9ybWF0LnhtbCIgLz4KLQk8L0V4dGVuc2lvbj4KIAogICAJPEV4dGVuc2lv biBwYXRoID0gIi9Nb25vRGV2ZWxvcC9JZGUvRmlsZUZpbHRlcnMiPgogCQk8RmlsZUZpbHRlciBp ZCA9ICJWQk5ldCINCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2FkZGlucy9WQk5ldEJpbmRpbmcvVkJO ZXRCaW5kaW5nLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEyNCw5ICsxMjQsNiBAQAogICAgIDxF bWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Imd0ay1ndWlcZ3VpLnN0ZXRpYyI+CiAgICAgICA8TG9n aWNhbE5hbWU+Z3VpLnN0ZXRpYzwvTG9naWNhbE5hbWU+CiAgICAgPC9FbWJlZGRlZFJlc291cmNl PgotICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9Im1kMWZvcm1hdC54bWwiPgotICAgICAg PExvZ2ljYWxOYW1lPm1kMWZvcm1hdC54bWw8L0xvZ2ljYWxOYW1lPgotICAgIDwvRW1iZWRkZWRS ZXNvdXJjZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkQmlu UGF0aClcTWljcm9zb2Z0LkNTaGFycC50YXJnZXRzIiAvPgogPC9Qcm9qZWN0Pg0KDQpSZW1vdmVk OiBtYWluL3NyYy9hZGRpbnMvVkJOZXRCaW5kaW5nL21kMWZvcm1hdC54bWwNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CkBAIC0xLDE2ICswLDAgQEAKLTxTZXJpYWxpemF0aW9uTWFwPgotCTxEYXRhSXRlbSBjbGFzcyA9 ICJNb25vRGV2ZWxvcC5WQk5ldEJpbmRpbmcuVkJDb21waWxlclBhcmFtZXRlcnMiPgotCQk8SXRl bVByb3BlcnR5IG1lbWJlcj0ibm9XYXJuaW5ncyIgbmFtZT0ibm93YXJuIi8+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJvcHRpbWl6ZSIgbmFtZT0ib3B0aW1pemUiLz4KLQkJPEl0ZW1Qcm9wZXJ0 eSBtZW1iZXI9ImdlbmVyYXRlT3ZlcmZsb3dDaGVja3MiIG5hbWU9ImdlbmVyYXRlb3ZlcmZsb3dj aGVja3MiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImRlZmluZXN5bWJvbHMiIG5hbWU9ImRl ZmluZXN5bWJvbHMiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJhZGRpdGlvbmFsUGFyYW1l dGVycyIgbmFtZT0iYWRkaXRpb25hbFBhcmFtZXRlcnMiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVt YmVyPSJkZWZpbmVEZWJ1ZyIgbmFtZT0iZGVmaW5lRGVidWciIC8+Ci0JCTxJdGVtUHJvcGVydHkg bWVtYmVyPSJkZWZpbmVUcmFjZSIgbmFtZT0iZGVmaW5lVHJhY2UiIC8+Ci0JCTxJdGVtUHJvcGVy dHkgbWVtYmVyPSJkZWJ1Z1R5cGUiIG5hbWU9ImRlYnVnVHlwZSIgLz4KLQkJPEl0ZW1Qcm9wZXJ0 eSBtZW1iZXI9ImRvY3VtZW50YXRpb25GaWxlIiBuYW1lPSJkb2N1bWVudGF0aW9uRmlsZSIgLz4K LQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Indhcm5pbmdzQXNFcnJvcnMiIG5hbWU9Indhcm5pbmdz QXNFcnJvcnMiIC8+Ci0JCTxJdGVtUHJvcGVyeXQgbWVtYmVyPSJ0cmVhdFdhcm5pbmdzQXNFcnJv cnMiIG5hbWU9InRyZWF0V2FybmluZ3NBc0Vycm9ycyIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1i ZXI9Indhcm5pbmdMZXZlbCIgbmFtZT0id2FybmluZ0xldmVsIiAvPgotCTwvRGF0YUl0ZW0+Ci08 L1NlcmlhbGl6YXRpb25NYXA+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpNb2RpZmll ZDogbWFpbi9zcmMvYWRkaW5zL1ZlcnNpb25Db250cm9sL01vbm9EZXZlbG9wLlZlcnNpb25Db250 cm9sL01vbm9EZXZlbG9wLlZlcnNpb25Db250cm9sL0NoZWNrb3V0Q29tbWFuZC5jcw0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KQEAgLTY3LDIzICs2Nyw5IEBAIHByb3RlY3RlZCBvdmVycmlkZSB2b2lkIFJ1biAoKQog CiAJCQlzdHJpbmcgcHJvamVjdEZuID0gbnVsbDsKIAkJCQotCQkJc3RyaW5nW10gbGlzdCA9IFN5 c3RlbS5JTy5EaXJlY3RvcnkuR2V0RmlsZXMocGF0aCk7Ci0JCQlmb3JlYWNoIChzdHJpbmcgc3Ry IGluIGxpc3QgKSB7Ci0JCQkJaWYgKHN0ci5FbmRzV2l0aCAoIi5tZHMiLCBTeXN0ZW0uU3RyaW5n Q29tcGFyaXNvbi5PcmRpbmFsKSkgewotCQkJCQlwcm9qZWN0Rm4gPSBzdHI7Ci0JCQkJCWJyZWFr OwotCQkJCX0KLQkJCX0KLQkJCWlmICggcHJvamVjdEZuID09IG51bGwgKSB7Ci0JCQkJZm9yZWFj aCAoIHN0cmluZyBzdHIgaW4gbGlzdCApIHsKLQkJCQkJaWYgKHN0ci5FbmRzV2l0aCAoIi5tZHAi LCBTeXN0ZW0uU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkgewotCQkJCQkJcHJvamVjdEZuID0g c3RyOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQl9CQotCQkJfQotCQkJaWYgKCBwcm9qZWN0 Rm4gPT0gbnVsbCApIHsKLQkJCQlmb3JlYWNoIChzdHJpbmcgc3RyIGluIGxpc3QgKSB7CisJCQlz dHJpbmdbXSBsaXN0ID0gU3lzdGVtLklPLkRpcmVjdG9yeS5HZXRGaWxlcyAocGF0aCk7CisJCQlp ZiAocHJvamVjdEZuID09IG51bGwpIHsKKwkJCQlmb3JlYWNoIChzdHJpbmcgc3RyIGluIGxpc3Qp IHsKIAkJCQkJaWYgKE1vbm9EZXZlbG9wLlByb2plY3RzLlNlcnZpY2VzLlByb2plY3RTZXJ2aWNl LklzV29ya3NwYWNlSXRlbUZpbGUgKHN0cikpIHsKIAkJCQkJCXByb2plY3RGbiA9IHN0cjsKIAkJ CQkJCWJyZWFrOw0KDQpSZW1vdmVkOiBtYWluL3NyYy9hZGRpbnMvcHJqMm1ha2Utc2hhcnAtbGli L0FkZGluSW5mby5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMTcgKzAsMCBAQAotCi11c2luZyBTeXN0 ZW07Ci11c2luZyBNb25vLkFkZGluczsKLXVzaW5nIE1vbm8uQWRkaW5zLkRlc2NyaXB0aW9uOwot Ci1bYXNzZW1ibHk6QWRkaW4gKCJQcmoyTWFrZSIsIAotICAgICAgICBOYW1lc3BhY2UgPSAiTW9u b0RldmVsb3AiLAotICAgICAgICBWZXJzaW9uID0gTW9ub0RldmVsb3AuQnVpbGRJbmZvLlZlcnNp b24sCi0gICAgICAgIENhdGVnb3J5ID0gIlByb2plY3QgSW1wb3J0IGFuZCBFeHBvcnQiKV0KLQot W2Fzc2VtYmx5OkFkZGluTmFtZSAoIlZpc3VhbCBTdHVkaW8gLk5FVCBQcm9qZWN0IFN1cHBvcnQi KV0KLVthc3NlbWJseTpBZGRpbkRlc2NyaXB0aW9uICgiSW1wb3J0ZXIgZm9yIFZTMjAwMyBwcm9q ZWN0cyIpXQotCi1bYXNzZW1ibHk6QWRkaW5EZXBlbmRlbmN5ICgiQ29yZSIsIE1vbm9EZXZlbG9w LkJ1aWxkSW5mby5WZXJzaW9uKV0KLVthc3NlbWJseTpBZGRpbkRlcGVuZGVuY3kgKCJJZGUiLCBN b25vRGV2ZWxvcC5CdWlsZEluZm8uVmVyc2lvbildCi1bYXNzZW1ibHk6QWRkaW5EZXBlbmRlbmN5 ICgiQ1NoYXJwQmluZGluZyIsIE1vbm9EZXZlbG9wLkJ1aWxkSW5mby5WZXJzaW9uKV0KLVthc3Nl bWJseTpBZGRpbkRlcGVuZGVuY3kgKCJWQkJpbmRpbmciLCBNb25vRGV2ZWxvcC5CdWlsZEluZm8u VmVyc2lvbildDQoNClJlbW92ZWQ6IG1haW4vc3JjL2FkZGlucy9wcmoybWFrZS1zaGFycC1saWIv QXNzZW1ibHlJbmZvLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSw5ICswLDAgQEAKLS8vIEF1dG9nZW5l cmF0ZWQgZnJvbSBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sCi0KLXVzaW5nIFN5c3RlbS5S ZWZsZWN0aW9uOwotCi1bYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCAoIk1vbm9EZXZlbG9wIild Ci1bYXNzZW1ibHk6IEFzc2VtYmx5VGl0bGUgKCJWaXN1YWwgU3R1ZGlvIC5ORVQgUHJvamVjdCBT dXBwb3J0IildCi1bYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24gKCJJbXBvcnRlciBmb3Ig VlMyMDAzIHByb2plY3RzIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbiAoIjIuNiIpXQot W2Fzc2VtYmx5OiBBc3NlbWJseUNvcHlyaWdodCAoIkxHUEwiKV0NCg0KUmVtb3ZlZDogbWFpbi9z cmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0x LDEzNjQgKzAsMCBAQAotMjAxMC0wNS0xMSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92 ZWxsLmNvbT4KLQotCSogVlMyMDAzUHJvamVjdEZpbGVGb3JtYXQuY3M6IFJlbW92ZSBvcHRpb24g b2YgY29udmVydGluZyB0bwotCSAgTUQgMS4wIGZvcm1hdC4KLQotMjAxMC0wMy0yMiAgTGx1aXMg U2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogQXNzZW1ibHlJbmZvLmNzOgot CSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogQnVtcGVkIE1EIHZlcnNpb24uCi0KLTIw MTAtMDMtMTcgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIE1h a2VmaWxlLmFtOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmNzcHJvajoKLQkqIFZTMjAwM1Byb2pl Y3RGaWxlRm9ybWF0LmNzOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogTWVyZ2Vk IE1ELlByb2plY3RzIGludG8KLQkgIE1ELkNvcmUsIGFuZCBNRC5Qcm9qZWN0cy5HdWksIE1ELkNv cmUuR3VpIGFuZCBNRC5Db21wb25lbnRzCi0JICBpbnRvIE1ELklkZS4KLQotMjAxMC0wMi0xOCAg TGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogTWFrZWZpbGUuYW06 IFJlbW92ZSBhc3AubmV0IGRlcGVuZGVuY3kuCi0KLTIwMDktMTAtMzAgIExsdWlzIFNhbmNoZXog R3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIEFzc2VtYmx5SW5mby5jczoKLQkqIHByajJt YWtlLXNoYXJwLWxpYi5hZGRpbi54bWw6IEJ1bXAgTUQgdmVyc2lvbi4KLQotMjAwOS0xMC0yOSAg TGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogcHJqMm1ha2Utc2hh cnAtbGliLmNzcHJvajogRmx1c2guCi0KLTIwMDktMTAtMDkgIE1pa2UgS3LDvGdlciAgPG1rcnVl Z2VyQG5vdmVsbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVyLmNzOiBUcmFjayBuYW1lc3BhY2UgcmVu YW1pbmdzLgotCi0yMDA5LTEwLTA4ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0K LQkqIHByajJtYWtlLXNoYXJwLWxpYi5jc3Byb2o6IFVzZSBcIGluc3RlYWQgb2YgJy8nIGluIHRo ZSBJbXBvcnQuCi0KLTIwMDktMTAtMDggIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4K LQotCSogcHJqMm1ha2Utc2hhcnAtbGliLmNzcHJvajogQWRkIG1kLnRhcmdldHMgLgotCi0yMDA5 LTEwLTA3ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPgotCi0JKiBBc3Nl bWJseUluZm8uY3M6Ci0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBVcGRhdGUgbGlj ZW5zZS4KLQotMjAwOS0xMC0wNyAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNv bT4KLQotCSogQXNzZW1ibHlJbmZvLmNzOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnht bDogQnVtcCBNRCB2ZXJzaW9uLgotCi0yMDA5LTA5LTI4ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxs bHVpc0Bub3ZlbGwuY29tPgotCi0JKiBNc1ByakhlbHBlci5jczogVXNlIHRoZSBuZXcgRG90TmV0 QXNzZW1ibHlQcm9qZWN0IGNsYXNzCi0JICBpbnN0ZWFkIG9mIERvdE5ldFByb2plY3QsIHdoaWNo IGlzIG5vdyBhYnN0cmFjdC4KLQotMjAwOS0wOS0wMiAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1 aXNAbm92ZWxsLmNvbT4KLQotCSogTXNQcmpIZWxwZXIuY3M6IENyZWF0ZSBkZWZhdWx0IGNvbmZp Z3VyYXRpb25zIGZvciB0aGUKLQkgIGltcG9ydGVkIHNvbHV0aW9uLiBGaXhlcyBidWcgIzUwNDYw MCAtIFJlYnVpbGQgc29sdXRpb24KLQkgIGRvZXNuJ3QgdHJpZ2dlciBhIHJlYWwgYnVpbGQuCi0K LTIwMDktMDgtMjYgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkq IHByajJtYWtlLXNoYXJwLWxpYi5jc3Byb2o6IFVwZGF0ZWQgZGVwZW5kZW5jaWVzLiBXZSBub3cK LQkgIGRlcGVuZCBvbiBndGsjIDIuMTIuOCwgTW9ubyAyLjQsIGFuZCBNb25vLkFkZGlucyAwLjQu Ci0KLTIwMDktMDgtMjAgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0K LQkqIENzcHJvakluZm8uY3M6Ci0JKiBNc1ByakhlbHBlci5jczoKLQkqIFZTMjAwM1Byb2plY3RG aWxlRm9ybWF0LmNzOiBNYWtlIHN1cmUgdGhlIHByb2plY3QgaGFzIHRoZQotCSAgMjAwMyBmb3Jt YXQgYmVmb3JlIHRyeWluZyB0byBpbXBvcnQgaXQuIFByb3Blcmx5IGltcG9ydAotCSAgYXNzZW1i bHkgcmVmZXJlbmNlcy4KLQotMjAwOS0wOC0xMyAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNA bm92ZWxsLmNvbT4KLQotCSogTXNQcmpIZWxwZXIuY3M6IFVzZSB0aGUgbmV3IEFzc2VtYmx5Q29u dGV4dCBjbGFzcyB0byBxdWVyeQotCSAgYW5kIHJlc29sdmUgYXNzZW1ibGllcy4KLQotMjAwOS0w OC0xMSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogVlMyMDAz UHJvamVjdEZpbGVGb3JtYXQuY3M6IEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIHZzMjAwMwotCSAg cHJvamVjdHMgYW5kIHNvbHV0aW9ucyB3aGVuIG5vdCBydW5uaW5nIGluIHRoZSBJREUuCi0KLTIw MDktMDgtMTAgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIHBy ajJtYWtlLXNoYXJwLWxpYi5jc3Byb2o6IERvbid0IG1ha2UgbG9jYWwgY29waWVzIG9mCi0JICBw cm9qZWN0IHJlZmVyZW5jZXMuCi0KLTIwMDktMDctMDMgIE1pa2UgS3LDvGdlciAgPG1rcnVlZ2Vy QG5vdmVsbC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmNz cHJvajogQWRkZWQgTW9ub0RldmVsb3AuUmVmYWN0b3JpbmcKLQkgIHJlZmVyZW5jZS4gKG90aGVy d2lzZSBidWlsZCB3b3VsZCBicmVhaykKLQotMjAwOS0wNi0xNSAgTWljaGFlbCBIdXRjaGluc29u ICA8bWh1dGNoaW5zb25Abm92ZWxsLmNvbT4KLQotCSogTXNQcmpIZWxwZXIuY3M6IFRyYWNrIGFz c2VtYmx5IGxvb2t1cCBBUElzLgotCi0yMDA5LTA1LTE5ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxs bHVpc0Bub3ZlbGwuY29tPgotCi0JKiBWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jczogVXNlIHRo ZSBuZXcgRmlsZVBhdGggY2xhc3MgZm9yCi0JICBoYW5kbGluZyBmaWxlIGFuZCBkaXJlY3Rvcnkg cGF0aHMuCi0KLTIwMDktMDUtMDEgIE1pY2hhZWwgSHV0Y2hpbnNvbiAgPG1odXRjaGluc29uQG5v dmVsbC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmNzcHJv ajoKLQkqIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWw6Ci0JKiBNU0J1aWxkUHJvamVjdFNl cnZpY2VFeHRlbnNpb24uY3M6Ci0JKiBTaWx2ZXJsaWdodE1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9u LmNzOiBSZW1vdmUgdW51c2VkIGNvZGUKLQkgIGFuZCBleHRlbnNpb25zLgotCi0yMDA5LTA0LTE3 ICBNaWtlIEtlc3RuZXIgIDxta2VzdG5lckBub3ZlbGwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFy cC1saWIuY3Nwcm9qOiBkb24ndCByZXF1aXJlIHNwZWNpZmljCi0JZ3RrLXNoYXJwIHZlcnNpb24u Ci0KLTIwMDktMDQtMTUgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0K LQkqIEFzc2VtYmx5SW5mby5jczoKLQkqIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWw6IEJ1 bXAgTUQgdmVyc2lvbi4KLQotMjAwOS0wNC0xNSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNA bm92ZWxsLmNvbT4KLQotCSogTXNQcmpIZWxwZXIuY3M6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBs ZSB0YXJnZXQgcnVudGltZXMuCi0KLTIwMDktMDMtMTMgIE1pY2hhZWwgSHV0Y2hpbnNvbiAgPG1o dXRjaGluc29uQG5vdmVsbC5jb20+Ci0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5jc3Byb2o6IERv bid0IGxvY2FsLWNvcHkgcHJvamVjdCByZWZzLgotCi0yMDA5LTAzLTEzICBNaWtlIEtyw7xnZXIg IDxta3J1ZWdlckBub3ZlbGwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuY3Nwcm9qOiBN b3ZlZCB0ZXh0IGVkaXRvciB0byBjb3JlCi0KLTIwMDktMDMtMTAgIE1pa2UgS3LDvGdlciAgPG1r cnVlZ2VyQG5vdmVsbC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogcHJqMm1ha2Utc2hhcnAt bGliLmNzcHJvajogTW9ub2RldmVsb3AgY2hhbmdlZCB0aGUgcmVmZXJlbmNlCi0JICBhIGJpdC4K LQotMjAwOS0wMy0xMCAgTWlrZSBLcsO8Z2VyICA8bWtydWVnZXJAbm92ZWxsLmNvbT4KLQotCSog TWFrZWZpbGUuYW06Ci0JKiBwcmoybWFrZS1zaGFycC1saWIuY3Nwcm9qOiBVcGRhdGVkIG5yZWZh Y3RvcnkgcmVmZXJlbmNlcy4KLQotMjAwOS0wMi0yNSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1 aXNAbm92ZWxsLmNvbT4KLQotCSogTXNQcmpIZWxwZXIuY3M6IFRyYWNrIGFwaSBjaGFuZ2VzLgot Ci0yMDA5LTAyLTA4ICBNaWNoYWVsIEh1dGNoaW5zb24gIDxtaHV0Y2hpbnNvbkBub3ZlbGwuY29t PgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuY3Nwcm9qOiBFeG9yY2lzZSBtb3JlIHVud2FudGVk IGxvY2FsCi0JICBjb3B5LgotCi0yMDA5LTAyLTA2ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVp c0Bub3ZlbGwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIubWRwOgotCSogcHJqMm1ha2Ut c2hhcnAtbGliLmNzcHJvajogTWlncmF0ZWQgdG8gTVNCdWlsZCBmaWxlIGZvcm1hdC4KLQotMjAw OS0wMi0wMyAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogQXNz ZW1ibHlJbmZvLmNzOgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogQnVtcCBNRCB2 ZXJzaW9uLgotCi0yMDA5LTAyLTAzICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwu Y29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIubWRwOiBGaXggdGFyZ2V0IGd0ayMgdmVyc2lv bi4KLQotMjAwOS0wMi0wMyAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4K LQotCSogcHJqMm1ha2Utc2hhcnAtbGliLm1kcDogRmx1c2guCi0KLTIwMDktMDEtMzAgIE1pa2Ug S3LDvGdlciAgPG1rcnVlZ2VyQG5vdmVsbC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOgotCSogcHJq Mm1ha2Utc2hhcnAtbGliLm1kcDogRml4ZWQgcHJvamVjdCAoZGlkbid0IGNvbXBpbGUgd2l0aG91 dAotCW1vbm8udGV4dGVkaXRvciByZWZlcmVuY2Ugb24gbXkgc3lzdGVtKS4KLQotMjAwOS0wMS0y NiAgTWljaGFlbCBIdXRjaGluc29uICA8bWh1dGNoaW5zb25Abm92ZWxsLmNvbT4KLQotCSogcHJq Mm1ha2Utc2hhcnAtbGliLm1kcDogRmx1c2ggcHJvamVjdCBmb3JtYXQgY2hhbmdlcy4KLQotMjAw OC0xMi0xMiAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogcHJq Mm1ha2Utc2hhcnAtbGliLm1kcDogQWxsIHByb2plY3RzIG5vdyByZXF1aXJlIGZ4IDMuNS4KLQot MjAwOC0xMi0xMSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQotCSog VlMyMDAzUHJvamVjdEZpbGVGb3JtYXQuY3M6IFRyYWNrIEFQSSBjaGFuZ2VzLgotCi0yMDA4LTEy LTA5ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPgotCi0JKiBwcmoybWFr ZS1zaGFycC1saWIubWRwOiBEb24ndCByZXF1aXJlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZgotCU1v bm8uQWRkaW5zLgotCi0yMDA4LTEyLTA0ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3Zl bGwuY29tPgotCi0JKiBQcmp4SW5mby5jczoKLQkqIE1ha2VmaWxlLmFtOgotCSogUHJqSGVscGVy LmNzOgotCSogTXNQcmpIZWxwZXIuY3M6Ci0JKiBNZFByakhlbHBlci5jczoKLQkqIHNoYXJwX2Rf cHJqeC5jczoKLQkqIHNoYXJwX2RfY21ieC5jczoKLQkqIHByajJtYWtlLXNoYXJwLWxpYi5tZHA6 Ci0JKiBWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jczogUmVtb3ZlZCBhIGJ1bmNoIG9mIHVudXNl ZCBjb2RlIGFuZCBmaXhlZAotCXNvbWUgaXNzdWVzIHdpdGggdGhlIGltcG9ydGVyLiBGaXhlcyBi dWcgIzQ1MDIwOSAtIFVuYWJsZSB0byBsb2FkCi0JU2hhcnBTU0ggVlMgMjAwMyBwcm9qZWN0OiAi T2JqZWN0IHJlZmVyZW5jZSBub3Qgc2V0IHRvIGFuIGluc3RhbmNlIG9mCi0JYW4gb2JqZWN0Ii4K LQotMjAwOC0xMi0wNCAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4KLQot CSogTWFrZWZpbGUuYW06IE1ha2UgaXQgd29yayBmb3IgcGFyYWxsZWwgYnVpbGQuCi0KLTIwMDgt MTItMDIgIE1pY2hhZWwgSHV0Y2hpbnNvbiAgPG1odXRjaGluc29uQG5vdmVsbC5jb20+Ci0KLQkq IE1ha2VmaWxlLmFtOgotCSogQXNzZW1ibHlJbmZvLmNzOgotCSogQXNzZW1ibHlJbmZvLmNzLmlu OgotCSogcHJqMm1ha2Utc2hhcnAtbGliLm1kcDogQWRkIEFzc2VtYmx5SW5mby5jcyBmaWxlcyB0 aGF0IGFyZQotCWF1dG9nZW5lcmF0ZWQgZnJvbSB0aGUgYWRkaW4gbWFuaWZlc3RzLgotCi0yMDA4 LTExLTA1ICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPgotCi0JKiBwcmoy bWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBCdW1wIE1EIHZlcnNpb24uCi0KLTIwMDgtMTAtMjAg IExsdWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIE1ha2VmaWxlLmFt LCBwcmoybWFrZS1zaGFycC1saWIubWRwOiBGaXggYnVpbGQgYWdhaW4uCi0KLTIwMDgtMTAtMjAg IExsdWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIE1ha2VmaWxlLmFt LCBwcmoybWFrZS1zaGFycC1saWIubWRwOiBGaXggYnVpbGQuCi0KLTIwMDgtMTAtMDEgIE1pY2hh ZWwgSHV0Y2hpbnNvbiA8bWh1dGNoaW5zb25Abm92ZWxsLmNvbT4gCi0KLQkqIE1zUHJqSGVscGVy LmNzLCBTaWx2ZXJsaWdodE1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9uLmNzLAotCSAgTVNCdWlsZFBy b2plY3RTZXJ2aWNlRXh0ZW5zaW9uLmNzOiBUcmFjayBBUEkuCi0KLTIwMDgtMDktMTIgIExsdWlz IFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIHByajJtYWtlLXNoYXJwLWxp Yi5tZHA6IFVwZGF0ZWQgZ2VuZXJhdGVkIGNvZGUuCi0KLTIwMDgtMDctMjkgIE1pa2UgS3LDvGdl ciA8bWtydWVnZXJAbm92ZWxsLmNvbT4gCi0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5tZHA6IFJl bW92ZWQgc29tZSBwYXJ0cyBvZiB0aGUgZG9jdW1lbnRhdGlvbgotCSAgc2VydmljZS4KLQotMjAw OC0wNi0xNiAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogTXNQ cmpIZWxwZXIuY3M6IFRyYWNrIGFwaSBjaGFuZ2VzLgotCi0yMDA4LTA2LTA0ICBMbHVpcyBTYW5j aGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRk aW4ueG1sOiBGaXggZXh0ZW5zaW9uIHBhdGhzLgotCi0yMDA4LTA2LTA0ICBMbHVpcyBTYW5jaGV6 IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4u eG1sOiBCdW1wIE1EIHZlcnNpb24uCi0KLTIwMDgtMDUtMjMgIExsdWlzIFNhbmNoZXogR3VhbCA8 bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIFZTMjAwM1Byb2plY3RGaWxlRm9ybWF0LmNzOiBUcmFj ayBhcGkgY2hhbmdlcy4KLQotMjAwOC0wNS0yMiAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bu b3ZlbGwuY29tPiAKLQotCSogTVNCdWlsZFByb2plY3RTZXJ2aWNlRXh0ZW5zaW9uLmNzOiBSZXBs YWNlZAotCSAgSUNvbXBpbGVyUmVzdWx0L0RlZmF1bHRDb21waWxlclJlc3VsdC9Db21waWxlclJl c3VsdHMgYnkgYSBuZXcKLQkgIEJ1aWxkUmVzdWx0IGNsYXNzLCB3aGljaCBoYXMgb3duZXIgaW5m b3JtYXRpb24gYXQgZXJyb3IgbGV2ZWwsIHNvCi0JICBpdCBpcyBwb3NzaWJsZSB0byBrbm93IHdo aWNoIHByb2plY3QgZ2VuZXJhdGVkIGFuIGVycm9yIHdoZW4KLQkgIGJ1aWxkaW5nIGEgc29sdXRp b24uIFVwZGF0ZWQgVGFzayBhbmQgVGFza1NlcnZpY2UgdG8gdXNlIHRoZSBuZXcKLQkgIG93bmVy IGluZm9ybWF0aW9uLgotCi0yMDA4LTA1LTIxICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5v dmVsbC5jb20+IAotCi0JKiBQcmpIZWxwZXIuY3MsIE1zUHJqSGVscGVyLmNzLCBWUzIwMDNQcm9q ZWN0RmlsZUZvcm1hdC5jcywKLQkgIE1TQnVpbGRQcm9qZWN0U2VydmljZUV4dGVuc2lvbi5jcywg TWFrZWZpbGUuYW0sCi0JICBwcmoybWFrZS1zaGFycC1saWIubWRwOiBOZXcgcHJvamVjdCBtb2Rl bCBjaGFuZ2VzLgotCi0yMDA4LTAzLTA0ICBNaWtlIEtyw7xnZXIgPG1rcnVlZ2VyQG5vdmVsbC5j b20+IAotCi0JKiBWUzIwMDNTbG5GaWxlRm9ybWF0LmNzLCBWUzIwMDNQcm9qZWN0RmlsZUZvcm1h dC5jcywgU2xuRmlsZUZvcm1hdC5jczoKLQkgIFdvcmtlZCBvbiBnbm9tZSBoaWcgY29tcGxpYW50 IGFsZXJ0cy4KLQotMjAwOC0wMS0yNSAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwu Y29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogVXBkYXRlIE1EIHZlcnNp b24uCi0KLTIwMDgtMDEtMjQgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSog TVNCdWlsZEZpbGVGb3JtYXQuY3M6IFNpbXBsaWZpY2F0aW9uLCBBZGRFeHRlbnNpb25Ob2RlSGFu ZGxlciBjYWxscwotCXRoZSBoYW5kbGVyIGZvciBhbGwgZXhpc3RpbmcgZXh0ZW5zaW9ucy4gVGhh bmtzIHRvIGxsdWlzLgotCi0yMDA4LTAxLTI0ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5j b20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzOiBSZWFkIHRoZSBmdWxsIGxpc3Qgb2YgZXh0 ZW5zaW9ucyBvbmx5IGF0IGluaXQKLQl0aW1lIGFuZCBoYW5kbGUgRXh0ZW5zaW9uQ2hhbmdlLkFk ZCBjb3JyZWN0bHkuCi0KLTIwMDgtMDEtMjMgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNv bT4KLQotCUZpeCBidWcjMzUzMDQyLgotCSogU2xuRGF0YS5jcyAoSGVhZGVyQ29tbWVudCk6IE5l dy4KLQkoVmVyc2lvblN0cmluZyk6IE5ldy4KLQkqIFNsbkZpbGVGb3JtYXQuY3M6IFJldGFpbiB0 aGUgaGVhZGVyIGNvbW1lbnQgc3RyaW5nIGFuZCB2ZXJzaW9uIGFuZCB1c2UKLQl0aGF0IHdoZW4g d3JpdGluZyAuc2xuIC4KLQotMjAwOC0wMS0yMiAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bu b3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogVXBkYXRlZCBh ZGQtaW4gY2F0ZWdvcnkgYW5kIGRlc2NyaXB0aW9uLgotCi0yMDA4LTAxLTIyICBBbmtpdCBKYWlu ICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVyLmNzOiBNYXAgIkNvbnRlbnQi IHRvIEJ1aWxkQWN0aW9uLk5vdGhpbmcsIGJldHRlciB0aGFuCi0JRXhjbHVkZS4KLQotMjAwOC0w MS0yMiAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZv cm1hdC5jczogQWRkIHRyeS9jYXRjaCBmb3IgZXZlbnQgaGFuZGxlcnMuCi0KLTIwMDgtMDEtMjAg IEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogQ2hhbmdlIENvbnNvbGUuV3Jp dGVMaW5lcyB0byBMb2dnaW5nU2VydmljZSBjYWxscy4KLQotMjAwOC0wMS0xOSAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkUHJvamVjdEV4dGVuc2lvbi5jcyAo SXNMYW5ndWFnZSk6IE5ldy4KLQkoTGFuZ3VhZ2VJZCk6IE5ldy4KLQkqIERlZmF1bHRNU0J1aWxk UHJvamVjdEV4dGVuc2lvbi5jczogT3ZlcnJpZGUgdGhlIGxhbmd1YWdlIHByb3BlcnRpZXMuCi0J KiBDU2hhcnBNU0J1aWxkUHJvamVjdEV4dGVuc2lvbi5jczogTGlrZXdpc2UuCi0JKiBWQk5ldE1T QnVpbGRQcm9qZWN0RXh0ZW5zaW9uLmNzOiBMaWtld2lzZS4KLQkqIE1TQnVpbGRGaWxlRm9ybWF0 LmNzIChQcm9qZWN0VHlwZUd1aWRzKTogUmVuYW1lIHRvIC4uCi0JKExhbmd1YWdlVHlwZUd1aWRz KTogLi4gdGhpcy4gRmlsbCB0aGlzIGZyb20gdGhlIGV4dGVuc2lvbnMuCi0JKiBTbG5GaWxlRm9y bWF0LmNzOiBSZW1vdmUgaGFyZGNvZGVkIC5jc3Byb2ovLnZicHJvai4KLQkqIFV0aWxzLmNzIChH ZXRMYW5ndWFnZSk6IFVzZSB0aGUgZXh0ZW5zaW9ucyBmb3IgdGhpcy4KLQotMjAwOC0wMS0xNCAg QW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBWUzIwMDNTbG5GaWxlRm9ybWF0 LmNzOiBIYW5kbGUgYmVpbmcgY2FsbGVkIGluIGEgbm9uLWd1aSBtb2RlLgotCi0yMDA3LTEyLTIx ICBNaWd1ZWwgZGUgSWNhemEgIDxtaWd1ZWxAbm92ZWxsLmNvbT4KLQotCSogVXRpbHMuY3MgKE1h cEFuZFJlc29sdmVQYXRoKTogdGhpcyByb3V0aW5lIG9ubHkgdmFsdWUgYWRkIHdhcyB0bwotCWNh bGwgUGF0aC5HZXRGdWxsUGF0aCwgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgaW50ZXJuYWxzIG9m Ci0JU2xuTWFrZXIuTWFwUGF0aCBjb3VsZCBiZSBpbnRlcm5hbGx5IGJyb2tlbiBpZiBub3QgZnVs bHkgZm9ybWVkCi0JaW50ZXJuYWxseSAoaW4gcGFydGljdWxhciB3aGVuIGNvcGluZyB3aXRoIG5v bi1leGlzdGluZwotCWRpcmVjdG9yaWVzIGFuZCBmaWxlcykuIAotCi0JKiBNc1ByakhlbHBlci5j cyAoU2xuTWFrZXIuTWFwUGF0aCk6IGEgaGFuZGZ1bCBvZiBjaGFuZ2VzIHRvIGhlbHAKLQljb25z dW1lcnMgb2YgdGhpcyBjbGFzcy4gICBJdCBub3cgYWx3YXlzIHJldHVybnMgcGF0aHMgdGhhdCBh cmUKLQlQYXRoLkdldEZ1bGxQYXRoIHByb2Nlc3NlZCBmaXJzdC4gICBUaGlzIGp1c3QgbWFrZXMg dGhlIGNvZGUKLQlob21vZ2Vub3VzLgotCi0JVXNlcyBEaXJlY3RvcnkuR2V0RmlsZVN5c3RlbUVu dHJpZXMgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYmUgc21hcnQKLQlhYm91dCBEaXJlY3RvcmllcyBh bmQgRmlsZXMgYW5kIGhhbmRsaW5nIHRoZW0gc2VwYXJhdGVkbHksIGFzIGluCi0JVW5peCBzeW1s aW5rcyBhcmUgbm90IGFjY291bnRlZCBmb3IgKHdoaWNoIGJyZWFrcyBpZiB0aGUgZnVsbCBwYXRo Ci0JbmFtZSBjb250YWlucyBzeW1saW5rcykuCi0KLQlJdCBub3cgYWxzbyBoYW5kbGVzICIuLiIs IHdoaWNoIGF2b2lkcyB0aGUgYnVnIG9mIE91dHB1dFBhdGgKLQllbnRyaWVzIGVuZGluZyB1cCB3 aXRoICIuLi9ESVIvLi4vRElSLy4uL0RJUiIgYXMgSSByZXBvcnRlZAotCXByaXZhdGVseSB0byBB bmtpdCBhIGZldyBkYXlzIGFnby4gCi0KLQlUaGlzIHNob3VsZCBmaXggdGhlIFBhaW50Lk5FVCAz IHByb2JsZW1zLgotCi0yMDA3LTEyLTE4ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+ Ci0KLQlGaXggYnVnICMzNDkzNjIKLQkqIENTaGFycFJlc291cmNlSWRCdWlsZGVyLmNzOgotCSog VkJOZXRSZXNvdXJjZUlkQnVpbGRlci5jczogSWYgdGhlIHNvdXJjZSBmaWxlIGhhcyBubyBjbGFz cyBkZWZpbmVkLAotCXRoZW4gdHJlYXQgaXQgYXMgaWYgdGhlIHJlc291cmNlIGhhZCBubyBkZXBl bmRlbnQgc291cmNlIGZpbGUuCi0JVGhpcyBhbHNvIGZpeGVzIG15IHByZXZpb3VzIGluY29ycmVj dCBwYXRjaCBmb3IgYnVnICMzNDkwOTkuCi0KLTIwMDctMTItMTggIEFua2l0IEphaW4gIDxqYW5r aXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAoTG9hZE5lc3RlZFByb2plY3Rz KTogSGFuZGxlIGVtcHR5IHNlY3Rpb24uCi0KLTIwMDctMTItMTcgIEFua2l0IEphaW4gIDxqYW5r aXRAbm92ZWxsLmNvbT4KLQotCUZpeCBidWcgIzM0OTA5OS4KLQkqIENTaGFycFJlc291cmNlSWRC dWlsZGVyLmNzOgotCSogVkJOZXRSZXNvdXJjZUlkQnVpbGRlci5jczogQWxsb3cgYm90aCBjbGFz cyBhbmQgc3RydWN0LgotCi0yMDA3LTEyLTE3ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5j b20+Ci0KLQkqIE1pbm9yIGZpeGVzIGxpa2UgdXNlIFN0cmluZy5FbXB0eSBpbnN0ZWFkIG9mICIi IGV0Yy4KLQotMjAwNy0xMi0xNCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0J KiBNU0J1aWxkRmlsZUZvcm1hdC5jczogVXNlIG1vbml0b3IncyBCZWdpbi9FbmRUYXNrLgotCSog U2xuRmlsZUZvcm1hdC5jczogTGlrZXdpc2UuCi0KLTIwMDctMTItMTMgIExsdWlzIFNhbmNoZXog R3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIE1kUHJqSGVscGVyLmNzLCBEZWZhdWx0TVNC dWlsZFByb2plY3RFeHRlbnNpb24uY3MsIE1TQnVpbGRGaWxlRm9ybWF0LmNzOgotCSAgRml4IHdh cm5pbmdzLgotCi0yMDA3LTEyLTEyICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5j b20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBCdW1wIGFkZC1pbiB2ZXJz aW9ucy4KLQotMjAwNy0xMi0xMSAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0J KiBEZWZhdWx0TVNCdWlsZFByb2plY3RFeHRlbnNpb24uY3M6IEltcHJvdmUgZXJyb3IgbWVzc2Fn ZS4KLQotMjAwNy0xMi0xMSAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JRml4 IGJ1ZyAjMzI0MzMzLgotCSogU2xuRmlsZUZvcm1hdC5jcyAoU29sdXRpb25Gb2xkZXIpOiBOZXcu Ci0JKExvYWRTb2x1dGlvbik6IFVzZSB0aGUgbmV3IFNvbHV0aW9uRm9sZGVyIGNsYXNzIGZvciBz b2x1dGlvbiBmb2xkZXJzLgotCi0yMDA3LTEyLTA3ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVs bC5jb20+Ci0KLQlGaXggYnVnICMzNDE2NDMuCi0JKiBEZWZhdWx0TVNCdWlsZFByb2plY3RFeHRl bnNpb24uY3M6IFNldCBEZXBsb3lQcm9wZXJ0aWVzLlVzZVByb2plY3RSZWxhdGl2ZVBhdGgKLQlm b3IgYWxsIGRlcGxveSBmaWxlcy4KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChIYW5kbGVGaWxl UHJvcGVydHlDaGFuZ2VkKTogU2V0ICJDb3B5VG9PdXRwdXREaXJlY3RvcnkiCi0JaWYgYnVpbGQg YWN0aW9uIGNoYW5nZWQgdG8gRmlsZUNvcHkuCi0JKiBNYWtlZmlsZS5hbToKLQkqIHByajJtYWtl LXNoYXJwLWxpYi5tZHA6IEFkZCByZWZlcmVuY2UgdG8gTW9ub0RldmVsb3AuRGVwbG95bWVudCBw cm9qZWN0LgotCi0yMDA3LTEyLTA0ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5j b20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sLCBNYWtlZmlsZS5hbSwgcHJq Mm1ha2Utc2hhcnAtbGliLm1kcDoKLQkgIERpcmVjdG9yeSByZW9yZ2FuaXphdGlvbi4KLQotMjAw Ny0xMS0yNCAgRGF2aWQgTWFrb3Zza8O9IChZYWtlZW4pIDx5YWtlZW5Ac2FueWFzLW9uLm5ldD4g Ci0KLQkqIE1TQnVpbGRQcm9qZWN0U2VydmljZUV4dGVuc2lvbi5jczogY29yZWN0ZWQgdHJhbnNs YXRhYmxlIHN0cmluZyB0bwotCSAgc3VwcG9ydCBwbHVyYWwgZm9ybXMuCQotCi0yMDA3LTExLTIx ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBNc1ByakhlbHBl ci5jczogRml4IGJ1aWxkLiBFbmFibGVWaWV3U3RhdGUgaXMgbm90IHVzZWQgYW55bW9yZS4KLQot MjAwNy0xMS0wOSAgTWljaGFlbCBIdXRjaGluc29uIDxtaHV0Y2hpbnNvbkBub3ZlbGwuY29tPiAK LQotCSogRGVmYXVsdE1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9uLmNzLCBTbG5GaWxlRm9ybWF0LmNz LCBwa2djb25maWdpbnZva2VyLmNzLAotCSAgTVNCdWlsZEZpbGVGb3JtYXQuY3M6IFRyYWNrIExv Z2dpbmdTZXJ2aWNlIEFQSSBjaGFuZ2VzLiBSZW1vdmUgc29tZQotCSAgQ29uc29sZS5Xcml0ZUxp bmVzIHRoYXQgd2VyZSBkdXBsaWNhdGluZyB0aGUgbG9nZ2luZy4KLQotMjAwNy0xMS0wMiAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogU2xuRmlsZUZvcm1hdC5j czogVXNlIFJvb3RDb21iaW5lIGluc3RlYWQgb2YgQ3VycmVudE9wZW5Db21iaW5lIHdoZW4KLQkg IHBvc3NpYmxlLgotCi0yMDA3LTEwLTI5ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVs bC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBCdW1wIE1EIHZlcnNp b24uCi0KLTIwMDctMTAtMjMgIExsdWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4g Ci0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5tZHA6IFByb2plY3QgZmlsZSBuYW1lcyB1cGRhdGVk IGJ5IGNoYW5nZSBpbiBNRCBwYXRoCi0JICBmdW5jdGlvbnMuCi0KLTIwMDctMTAtMjMgIEFua2l0 IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRGF0YS5jcyAoR3VpZCk6IFNob3Vs ZCBoYXZlIGVuY2xvc2luZyB7fS4KLQotMjAwNy0xMC0xMiAgTWlrZSBLcsO8Z2VyIDxta3J1ZWdl ckBub3ZlbGwuY29tPiAKLQotCSogQ1NoYXJwUmVzb3VyY2VJZEJ1aWxkZXIuY3MsIFZCTmV0TVNC dWlsZFByb2plY3RFeHRlbnNpb24uY3MsCi0JICBDU2hhcnBNU0J1aWxkUHJvamVjdEV4dGVuc2lv bi5jcywgRGVmYXVsdE1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9uLmNzLAotCSAgVXRpbHMuY3MsIFNs bkZpbGVGb3JtYXQuY3MsIE1TQnVpbGRGaWxlRm9ybWF0LmNzOiBBcHBsaWVkIGNoYW5nZXMgdGhh dAotCSAgd2VyZSBuZWNjYXNzYXJ5IGZvciB0byB0aGUgbmV3IEZpbGVTZXJ2aWNlLgotCi0yMDA3 LTEwLTA5ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIENTaGFycFJlc291 cmNlSWRCdWlsZGVyLmNzOiBIYW5kbGUgbG9jYWxpemVkIHJlc291cmNlcy4KLQkqIFZCTmV0UmVz b3VyY2VJZEJ1aWxkZXIuY3M6IEhhbmRsZSBsb2NhbGl6ZWQgcmVzb3VyY2VzLgotCSogVXRpbHMu Y3MgKFRyeVNwbGl0UmVzb3VyY2VOYW1lKTogTmV3LgotCi0yMDA3LTA5LTI4ICBBbmtpdCBKYWlu ICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVyLmNzIChHZXRDb250ZW50cyk6 IFNldCBEZXBlbmRzT24gdG8gaXRzIGFic29sdXRlIHBhdGguCi0KLTIwMDctMDktMjggIEFua2l0 IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogRGVmYXVsdE1TQnVpbGRQcm9qZWN0RXh0 ZW5zaW9uLmNzIChGaWxlVG9YbWxFbGVtZW50KTogSGFuZGxlIGV4aXN0aW5nCi0JWG1sRWxlbWVu dHMuIFVwZGF0ZSBMb2dpY2FsTmFtZSBhbmQgRGVwZW5kZW50VXBvbiBjb3JyZWN0bHkuCi0JKiBN U0J1aWxkRmlsZUZvcm1hdC5jcyAoV3JpdGVGaWxlSW50ZXJuYWwpOiBBbHdheXMgdXBkYXRlIFht bEVsZW1lbnRzIGZvcgotCXByb2plY3QgZmlsZXMuCi0JKEhhbmRsZUZpbGVSZW5hbWVkKTogVXNl IEZpbGVUb1htbEVsZW1lbnQgdG8gY29ycmVjdGx5IHVwZGF0ZSB0aGUgeG1sCi0JZWxlbWVudC4K LQkqIFV0aWxzLmNzIChSZW1vdmVDaGlsZCk6IE5ldy4KLQotMjAwNy0wOS0yNyAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkUHJvamVjdEV4dGVuc2lvbi5jczog TmV3LgotCSogRGVmYXVsdE1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9uLmNzOiBOZXcuCi0KLQlNb3Zl IGxhbmd1YWdlIHNwZWNpZmljIHN0dWZmIGZyb20gTVNCdWlsZEZpbGVGb3JtYXQgaW50byB0aGUg cmVzcGVjdGl2ZSBleHRlbnNpb25zLgotCSogQ1NoYXJwTVNCdWlsZFByb2plY3RFeHRlbnNpb24u Y3M6IE5ldy4KLQkqIFZCTmV0TVNCdWlsZFByb2plY3RFeHRlbnNpb24uY3M6IE5ldy4KLQkqIFNp bHZlcmxpZ2h0TVNCdWlsZFByb2plY3RFeHRlbnNpb24uY3M6IE5ldy4KLQotCSogVXRpbHMuY3M6 IE5ldy4gTW92ZSB1dGlsaXR5IG1ldGhvZHMgZnJvbSBNU0J1aWxkRmlsZUZvcm1hdCB0byBoZXJl LgotCSogTVNCdWlsZERhdGEuY3MgKEV4dGVuc2lvbkNoYWluKTogTmV3LgotCShGbGF2b3JQcm9w ZXJ0aWVzUGFyZW50KTogTmV3LgotCShUeXBlR3VpZHMpOiBOZXcuCi0KLQkqIFNsbkZpbGVGb3Jt YXQuY3M6IFRyYWNrIGFwaSBjaGFuZ2VzLgotCi0JKiBNYWtlZmlsZS5hbTogVXBkYXRlLgotCSog cHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogVXBkYXRlLiBBZGQgbmV3IEV4dGVuc2lvblBv aW50IGZvcgotCU1TQnVpbGRQcm9qZWN0RXh0ZW5zaW9uLgotCi0yMDA3LTA5LTIxICBMbHVpcyBT YW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIu YWRkaW4ueG1sOiBCdW1wIE1EIHZlcnNpb24uCi0KLTIwMDctMDktMTcgIEFua2l0IEphaW4gIDxq YW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWlsZFByb2plY3RTZXJ2aWNlRXh0ZW5zaW9uLmNz IChHZXREZWZhdWx0UmVzb3VyY2VJZCk6IFNwbGl0IGludG8KLQl0aGlzIGFuZCAuLi4KLQkoR2V0 RGVmYXVsdFJlc291cmNlSWRJbnRlcm5hbCk6IHRoaXMuIHN0YXRpYyBtZXRob2QuCi0JKiBNc1By akhlbHBlci5jcyAoU2xuTWFrZXIuR2V0Q29udGVudHMpOiBTZXQgcmVzb3VyY2UgaWQgdXNpbmcg dnMubmV0Ci0JcnVsZXMuCi0KLTIwMDctMDktMTcgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxs LmNvbT4KLQotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3MgKFdyaXRlRmlsZUludGVybmFsKTogRW1p dCBSb290TmFtZXNwYWNlIGZvcgotCWdsb2JhbCBjb25maWcgZWxlbWVudC4KLQotMjAwNy0wOS0x NyAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1h dC5jcyAoV3JpdGVGaWxlSW50ZXJuYWwpOiBFbWl0IFJvb3ROYW1lc3BhY2UgZm9yIEMjCi0JYWxz by4gRGVyaXZlZCBmcm9tIHBhdGNoIGJ5IEVyaWMgQnV0bGVyIDxlcmljQGV4dHJlbWVib3JlZG9t Lm5ldD4KLQotMjAwNy0wOS0xNSAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0J KiBNU0J1aWxkUHJvamVjdC5jczogUmVtb3ZlLgotCSogTVNCdWlsZFNvbHV0aW9uLmNzOiBSZW1v dmUuCi0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChHZXRNU0J1aWxkRGF0YSk6IE5ldy4KLQlV cGRhdGUgdG8gdHJhY2sgY2hhbmdlcy4KLQkqIFNsbkZpbGVGb3JtYXQuY3MgKC5jY3Rvcik6IEFk ZCBoYW5kbGVyIGZvciBIYW5kbGVBZGRFbnRyeS4KLQkoR2V0U2xuRGF0YSk6IE5ldy4KLQkoSGFu ZGxlQWRkRW50cnkpOgotCShTZXRIYW5kbGVycyk6Ci0JKEhhbmRsZUNvbWJpbmVFbnRyeUFkZGVk KToKLQkoQ29udmVydFRvTVNCdWlsZCk6IE1vdmUgaGVyZSBmcm9tIE1TQnVpbGRTb2x1dGlvbi4K LQlVcGRhdGUgdG8gdHJhY2sgY2hhbmdlcy4KLQkqIFNsbkRhdGEuY3MgKFByb2plY3RzQnlHdWlk KTogTW92ZSBoZXJlIGZyb20gTVNCdWlsZFNvbHV0aW9uLgotCSogTVNCdWlsZFByb2plY3RTZXJ2 aWNlRXh0ZW5zaW9uLmNzIChHZXREZWZhdWx0UmVzb3VyY2VJZCk6IE92ZXJyaWRlLgotCU1vdmVk IGZyb20gTVNCdWlsZFByb2plY3QgdG8gaGVyZS4KLQotCSogTXNQcmpIZWxwZXIuY3M6IFVwZGF0 ZSB0byB1c2UgUHJvamVjdFNlcnZpY2UuR2V0RGVmYXVsdFJlc291cmNlSWQgLgotCSogVlMyMDAz UHJvamVjdEZpbGVGb3JtYXQuY3M6IFVwZGF0ZS4KLQkqIFZTMjAwM1NsbkZpbGVGb3JtYXQuY3M6 IFVwZGF0ZS4KLQotCSogTWFrZWZpbGUuYW06IFVwZGF0ZS4KLQkqIHByajJtYWtlLXNoYXJwLWxp Yi5tZHA6IFVwZGF0ZS4KLQotMjAwNy0wOS0xMyAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwu Y29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoUmVmZXJlbmNlVG9YbWxFbGVtZW50KTog SGFuZGxlIGludmFsaWQgYXNzZW1ibHkKLQlyZWZlcmVuY2UuCi0KLTIwMDctMDktMTIgIEFua2l0 IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCUZpeCBidWcjODI2ODguCi0JKiBNU0J1aWxk RmlsZUZvcm1hdC5jcyAoUmVmZXJlbmNlVG9YbWxFbGVtZW50KTogU2V0IE5hbWUgZm9yIHByb2pl Y3QKLQlyZWZlcmVuY2Ugb25seSB3aGVuIGNyZWF0aW5nIGEgbmV3IGVsZW1lbnQuCi0JKiBTbG5G aWxlRm9ybWF0LmNzIChMb2FkU29sdXRpb24pOiBSZXNvbHZlIGFueSB1bnJlc29sdmVkIHByb2pl Y3QKLQlyZWZlcmVuY2VzIHVzaW5nIHRoZSBwcm9qZWN0IGd1aWRzLgotCi0yMDA3LTA5LTExICBB bmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQlGaXggYnVnIzgyNzM2LgotCSogTVNC dWlsZEZpbGVGb3JtYXQuY3MgKFJlYWRDb25maWcpOiBVbmVzY2FwZSBPdXRwdXRQYXRoLgotCi0y MDA3LTA4LTIzICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRQ cm9qZWN0U2VydmljZUV4dGVuc2lvbi5jcyAoR2VuZXJhdGVYYW1sUGFydGlhbENsYXNzKTogR2Vu ZXJhdGUKLQlwYXJ0aWFsIGNsYXNzZXMgd2l0aCB4YW1sZyBvbmx5IGlmIHJlcXVpcmVkLgotCi0y MDA3LTA4LTIyICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQlGaXggYnVnICM4 MjUxNy4KLQkqIENzcHJvakluZm8uY3MgKExvYWRQcmpGcm9tRmlsZSk6IFVzZSB0aGUgJ3VzaW5n JyBwYXR0ZXJuIGZvciBGaWxlU3RyZWFtLgotCSguY3Rvcik6IFJldGhyb3cgZXhjZXB0aW9uLgot CSogTXNQcmpIZWxwZXIuY3MgKFBhcnNlU29sdXRpb24pOiBBZGQgJ21vbml0b3InIHBhcmFtLiBV c2UgbW9uaXRvciBmb3IKLQlyZXBvcnRpbmcgZXJyb3JzLiBXZSBzdG9wIHRyeWluZyB0byBsb2Fk IHRoZSBzb2x1dGlvbiBpZiBhbnkgb2YgdGhlIHByb2plY3RzCi0JZmFpbCB0byBsb2FkLgotCShN c1NsbkhlbHBlcik6IEFkZCAnbW9uaXRvcicgcGFyYW0uCi0JKiBQcmpIZWxwZXIuY3MgKE1ha2Vy TWFpbik6IFRyYWNrIGNoYW5nZXMgaW4gYXBpLgotCi0yMDA3LTA4LTIxICBBbmRyw4PCqXMgRy4g QXJhZ29uZXNlcyAgPGtub2N0ZUBnbWFpbC5jb20+Ci0KLQlJbXByb3ZlIGZpeCBmb3IgYnVnICM4 MjM5OC4KLQkqIE1TQnVpbGRQcm9qZWN0U2VydmljZUV4dGVuc2lvbi5jcyAoR2VuZXJhdGVYYW1s UGFydGlhbENsYXNzKTogVXNlIE1PTk9fSU9NQVA9ZHJpdmUsCi0JYW5kIG9ubHkgb24gVW5peC4K LQotMjAwNy0wOC0xNCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JRml4IGJ1 ZyAjODIzOTguCi0JKiBNU0J1aWxkUHJvamVjdFNlcnZpY2VFeHRlbnNpb24uY3MgKEdlbmVyYXRl WGFtbFBhcnRpYWxDbGFzcyk6IFJ1biB3aXRoCi0JeGFtbGcgd2l0aCBNT05PX0lPTUFQPWFsbC4K LQotMjAwNy0wOC0xNCAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQot CSogU2xuRmlsZUZvcm1hdC5jczogU21hbGwgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4gQ2Fu UmVhZEZpbGUuIEFkZGVkCi0JICBtaXNzaW5nIG51bGwgY2hlY2tzIGluIEdldFNsbkZpbGVWZXJz aW9uLgotCi0yMDA3LTA4LTEzICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQlG aXggYnVnICM4MjM4OQotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3MgKFJlYWRJdGVtR3JvdXBzKTog SGFuZGxlICJDb3B5VG9PdXRwdXREaXJlY3RvcnkiCi0JdGFnLiBXZSBzdXBwb3J0IHRoaXMgb25s eSBmb3Igbm9uLWJ1aWxkIGZpbGVzIGN1cnJlbnRseS4KLQkoRmlsZVRvWG1sRWxlbWVudCk6IEVt aXQgQ29weVRvT3V0cHV0RGlyZWN0b3J5IGZvciBGaWxlQ29weSBmaWxlcy4KLQotMjAwNy0wOC0x MyAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JRml4IGJ1ZyAjODIzNDMuCi0J KiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoV3JpdGVGaWxlSW50ZXJuYWwpOiBVc2UgIlxyXG4iIGFz IG5ldyBsaW5lIGNoYXJzCi0JdG8gc3RheSBjb21wYXRpYmxlIHdpdGggdnMyMDA1IHByb2plY3Qg ZmlsZXMuCi0JKiBTbG5GaWxlRm9ybWF0LmNzIChXcml0ZUZpbGVJbnRlcm5hbCk6IFNtYWxsIGNv bXBhdGliaWxpdHkgZml4ZXMuCi0KLTIwMDctMDgtMTMgIEFua2l0IEphaW4gIDxqYW5raXRAbm92 ZWxsLmNvbT4KLQotCSogTVNCdWlsZFByb2plY3RTZXJ2aWNlRXh0ZW5zaW9uLmNzOiBBZGQgbWlz c2luZyBjb3B5cmlnaHQvbGljZW5zZS4KLQotMjAwNy0wOC0xMyAgQW5raXQgSmFpbiAgPGphbmtp dEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jczogU21hbGwgY29tcGF0aWJp bGl0eSBmaXhlcy4KLQotMjAwNy0wOC0xMCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29t PgotCi0JRml4IGJ1ZyAjODIzOTQuCi0JKiBNU0J1aWxkUHJvamVjdFNlcnZpY2VFeHRlbnNpb24u Y3MgKEJ1aWxkKTogQWJvcnQgYnVpbGQgaWYgZXJyb3IgaW4KLQlnZW5lcmF0aW5nIHBhcnRpYWwg Y2xhc3NlcyB3aXRoIHhhbWxnLgotCShHZW5lcmF0ZVhhbWxQYXJ0aWFsQ2xhc3MpOiBSZXBvcnQg YW55IGVycm9ycyB3aXRoIENvbXBpbGVyRXJyb3IuIFBhcnNlCi0JbGluZS9jb2wgbnVtYmVycyBh bHNvLgotCShSZWdleEVycm9yTGluZVBvcyk6IE5ldy4KLQotMjAwNy0wOC0xMCAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9ybWF0LmNzOiBBbGxvdyB2ZXJz aW9uIDEwLjAwIGFsc28uCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoUmVhZEl0ZW1Hcm91cCk6 IEhhbmRsZSBTaWx2ZXJsaWdodFBhZ2UKLQlJdGVtR3JvdXAuCi0JKiBNU0J1aWxkUHJvamVjdFNl cnZpY2VFeHRlbnNpb24uY3M6IE5ldy4gSGFuZGxlIGdlbmVyYXRpb24gb2YgcGFydGlhbAotCWNs YXNzZXMgZm9yIFNpbHZlcmxpZ2h0UGFnZXMuCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4u eG1sOiBBZGQgdGhlIFByb2plY3RTZXJ2aWNlRXh0ZW5zaW9uLgotCSogTWFrZWZpbGUuYW06IFVw ZGF0ZS4KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5tZHA6IFVwZGF0ZS4KLQotMjAwNy0wOC0wOSAg TGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hh cnAtbGliLmFkZGluLnhtbCwgTWFrZWZpbGUuYW0sIHByajJtYWtlLXNoYXJwLWxpYi5tZHA6Ci0J ICBSZW9yZ2FuaXplZCB0aGUgZXh0ZW5zaW9uIHBvaW50IGhpZXJhcmNoeS4gRW1iZWRkZWQgYWxs IGFkZC1pbiBtYW5pZmVzdHMKLQkgIGFzIHJlc291cmNlcy4KLQotMjAwNy0wNy0zMCAgTGx1aXMg U2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAtbGli LUNvbW1hbmRzLmNzOiBSZW1vdmVkIHVudXNlZCBmaWxlLgotCi0yMDA3LTA3LTExICBBbmtpdCBK YWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54 bWw6IFVwZGF0ZSBOYW1lLCBEZXNjcmlwdGlvbiBhbmQgQXV0aG9ycy4KLQotMjAwNy0wNy0xMCAg QW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNc1ByakhlbHBlci5jcyAoR2V0 U2xuRmlsZVZlcnNpb24pOiBVc2Ugc3RhdGljIFJlZ2V4IG9iamVjdHMgLQotCVNsbkZpbGVGb3Jt YXQuU2xuVmVyc2lvblJlZ2V4IGFuZCBTbG5GaWxlRm9ybWF0LlByb2plY3RSZWdleCAuCi0JKiBW UzIwMDNTbG5GaWxlRm9ybWF0IChHZXRTbG5GaWxlVmVyc2lvbik6IExpa2V3aXNlLgotCSogU2xu RmlsZUZvcm1hdC5jcyAoU2xuVmVyc2lvblJlZ2V4KToKLQkoUHJvamVjdFJlZ2V4KTogTWFrZSBp bnRlcm5hbC4KLQotMjAwNy0wNy0xMCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgot Ci0JKiBNc1ByakhlbHBlci5jcyAocHJvak5hbWVJbmZvKToKLQkocHJvakd1aWRJbmZvKTogU2hv dWxkIG5vdCBiZSBzdGF0aWMuCi0JKFBhcnNlU29sdXRpb24pOiBVc2UgJ3VzaW5nJyBwYXR0ZXJu IHdpdGggdGhlIFN0cmVhbVJlYWRlci4KLQkoQ3JlYXRlUHJqeEZyb21Dc3Byb2opOiBVc2UgJ3Vz aW5nJyBwYXR0ZXJuIHdpdGggdGhlIFRleHRGaWxlUmVhZGVyLgotCVNldCB0aGUgZmlsZU5hbWUg b24gdGhlIHByb2plY3Qgb2JqZWN0IGFmdGVyIGl0IGhhcyBiZWVuIHJlYWQuIFRoaXMKLQllbnN1 cmVzIHRoYXQgaW4gY2FzZSBvZiB1bnJlYWRhYmxlL25vbi1leGlzdGFudCBmaWxlLCB1c2VyIGdl dHMgYSB1c2VmdWwKLQllcnJvci4KLQotMjAwNy0wNi0xOCAgQW5raXQgSmFpbiAgPGphbmtpdEBu b3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoQ2Fub25pY2FsaXplUGF0aCk6 IE5ldy4gRXNjYXBlcywgbm9ybWFsaXplcyBhbmQKLQljb252ZXJ0cyAnLycgdG8gJ1xcJyBmb3Ig YSBwYXRoLgotCVVwZGF0ZSBjb2RlIHRvIHVzZSB0aGlzIHdoZW4gZW1pdHRpbmcgcGF0aHMgdG8g dGhlICpwcm9qIGZpbGUuCi0JKiBTbG5GaWxlRm9ybWF0LmNzIChXcml0ZVByb2plY3RzKTogRW1p dCBwYXRoIHVzaW5nIHdpbmRvd3MgcGF0aAotCXNlcGVyYXRvci4KLQkoTG9hZFNvbHV0aW9uKTog VXNlIFNsbk1ha2VyLk1hcFBhdGggaW5zdGVhZCBvZiB0aGUgbG9jYWwgY29weS4KLQkoTWFwUGF0 aCk6IFJlbW92ZSwgdW51c2VkIG5vdy4KLQotMjAwNy0wNi0xOCAgQW5raXQgSmFpbiAgPGphbmtp dEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkU29sdXRpb24uY3MgKE5lZWRzUmVsb2FkKTogT3Zl cnJpZGUuIFJldHVybiBmYWxzZSBmb3Igc29sdXRpb24KLQlmb2xkZXJzLgotCi0yMDA3LTA2LTE4 ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0 LmNzIChGaWxlVG9YbWxFbGVtZW50KTogRW1pdCBhICJMaW5rIiBlbGVtZW50IGZvcgotCWZpbGVz IGV4dGVybmFsIHRvIHRoZSBwcm9qZWN0LgotCi0yMDA3LTA2LTA3ICBBbmtpdCBKYWluICA8amFu a2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChOb3JtYWxpemVSZWxh dGl2ZVBhdGgpOiBNb3ZlZCB0bwotCVJ1bnRpbWUuRmlsZVNlcnZpY2UgLgotCSogU2xuRmlsZUZv cm1hdC5jczogVHJhY2sgYXBpIGNoYW5nZS4KLQkqIENTaGFycFJlc291cmNlSWRCdWlsZGVyLmNz OiBUcmFjayBhcGkgY2hhbmdlLgotCi0yMDA3LTA2LTA1ICBBbmtpdCBKYWluICA8amFua2l0QG5v dmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChSZWZlcmVuY2VUb1htbEVsZW1l bnQpOiBIYW5kbGUgaW52YWxpZCBwcm9qZWN0Ci0JcmVmZXJlbmNlLgotCShXcml0ZUZpbGVJbnRl cm5hbCk6IE9wdGlvbkV4cGxpY2l0IGFuZCBPcHRpb25TdHJpY3QgdmFsdWVzIG5lZWQgdG8gYmUK LQl3cml0dGVuIGFzIE9uL09mZi4KLQotMjAwNy0wNi0wMSAgQW5raXQgSmFpbiAgPGphbmtpdEBu b3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoUmVhZEl0ZW1Hcm91cHMpOiBE b24ndCBpZ25vcmUgcmVzb3VyY2VzIGV4dGVybmFsCi0JdG8gdGhlIHByb2plY3QgZGlyZWN0b3J5 LiBUaGVzZSBub3cgZ2V0IGhhbmRsZWQgYnkgdGhlICpSZXNvdXJjZUlkQnVpbGRlci4KLQkqIENT aGFycFJlc291cmNlSWRCdWlsZGVyLmNzOiBJZiB0aGUgZmlsZSBpcyBleHRlcm5hbCB0byB0aGUg cHJvamVjdCwKLQl0aGVuIHVzZSBvbmx5IHRoZSBmaWxlbmFtZS4KLQotMjAwNy0wNi0wMSAgQW5r aXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAo UmVhZEl0ZW1Hcm91cHMpOiBJZiByZWZlcmVuY2UgbmFtZSBjYW5ub3QgYmUKLQlyZXNvbHZlZCwg dGhlbiB0cnkgdG8gZmluZCB0aGUgY29ycmVjdCBjYXNlIGZvciB0aGUgYXNzZW1ibHkgbmFtZS4K LQkoQXNzZW1ibHlOYW1lc1RhYmxlKTogTmV3LgotCi0yMDA3LTA1LTMxICBBbmtpdCBKYWluICA8 amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzOiBEb24ndCByZW1v dmUgJy4vJyBmcm9tIHRoZSBwYXRocy4gVlMyMDA1IGlzIG5vdAotCWFibGUgdG8gaGFuZGxlIHBh dGhzIHdpdGggJy8nIGJ1dCBubyAnLi8nIHByZWZpeC4KLQotMjAwNy0wNS0zMSAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JRml4ICM4MTc3Ni4KLQkqIE1TQnVpbGRGaWxlRm9y bWF0LmNzIChFc2NhcGUpOiBOZXcuCi0JKFVuZXNjYXBlKTogTmV3LgotCU1TQnVpbGQgbGl0ZXJh bHMgbmVlZCB0byBiZSBlc2NhcGVkL3VuZXNjYXBlZC4KLQlVcGRhdGUgY29kZSB0byBlc2NhcGUv dW5lc2NhcGUgcmVsZXZhbnQgdmFsdWVzLgotCi0yMDA3LTA1LTI5ICBBbmtpdCBKYWluICA8amFu a2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVyLmNzIChNYXBQYXRoKTogU21hbGwgb3B0 aW1pemF0aW9uLiBSZXR1cm4gcGF0aCBpZiBpdAotCWV4aXN0cy4gCi0KLTIwMDctMDUtMjQgIEFu a2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jczogUmVt b3ZlICIuLyIgcHJlZml4ZXMgZnJvbSBwYXRocyBiZWZvcmUgZW1pdHRpbmcuCi0JKiBNU0J1aWxk RmlsZUZvcm1hdC5jczogTGlrZXdpc2UuCi0JKE5vcm1hbGl6ZVJlbGF0aXZlUGF0aCk6IE5ldy4g VGFrZW4gZnJvbSBBdXRvdG9vbHNDb250ZXh0LmNzIC4KLQotMjAwNy0wNS0yMiAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNc1ByakhlbHBlci5jcyAoQ3JlYXRlUHJqeEZy b21Dc3Byb2opOiBSZXRocm93IHRoZSBleGNlcHRpb24uCi0JKE1zU2xuVG9DbWJ4SGVscGVyKTog TGlrZXdpc2UuCi0KLTIwMDctMDUtMTggIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4K LQotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3MgKEZpbGVUb1htbEVsZW1lbnQpOiBJZ25vcmUgZGly ZWN0b3JpZXMgZm9yCi0JQnVpbGRBY3Rpb24uQ29tcGlsZSwgcmV0dXJuIG51bGwuCi0JVXBkYXRl IGNvZGUgdG8gYXZvaWQgYWRkaW5nIG51bGxzIHRvIFByb2plY3RGaWxlRWxlbWVudHMuCi0KLTIw MDctMDUtMTEgIExsdWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIE1h a2VmaWxlLmFtLCBwcmoybWFrZS1zaGFycC1saWIubWRwOiBVcGRhdGVkLgotCi0yMDA3LTA1LTA5 ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1z aGFycC1saWIuYWRkaW4ueG1sLCBNYWtlZmlsZS5hbTogRmx1c2gKLQotMjAwNy0wNS0wNCAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAt bGliLmFkZGluLnhtbCwgTWFrZWZpbGUuYW06IE1pZ3JhdGlvbiB0byBNb25vLkFkZGlucy4KLQot MjAwNy0wNS0wMyAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSog TW9ub0RldmVsb3AuUHJvamVjdHMvQ29tYmluZS5jcywKLQkgIE1vbm9EZXZlbG9wLlByb2plY3Rz L0NvbWJpbmVFbnRyeUV2ZW50QXJncy5jcywKLQkgIE1vbm9EZXZlbG9wLlByb2plY3RzLlBhcnNl ci9EZWZhdWx0UGFyc2VyU2VydmljZS5jczogQWRkZWQgYQotCSAgUmVsb2FkaW5nIHByb3BlcnR5 IHRvIHRoZSBhcmd1bWVudCBvZiB0aGUgZW50cnkgYWRkL3JlbW92ZSBldmVudHMKLQkgIG9mIENv bWJpbmUsIHdoaWNoIGlzIHNldCB0byB0cnVlIGlmIHRoZSBlbnRyeSBpcyBiZWluZyBvbmx5Ci0J ICByZWxvYWRlZCwgbm90IGFjdHVhbGx5IHJlbW92ZWQvYWRkZWQgdG8gdGhlIGNvbWJpbmUuCi0K LTIwMDctMDQtMjcgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWls ZFNvbHV0aW9uLmNzIChVcGRhdGVQcm9qZWN0UmVmZXJlbmNlcyk6IFJlbW92ZS4KLQotMjAwNy0w NC0yNyAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9ybWF0 LmNzIChXcml0ZU5lc3RlZFByb2plY3RzKTogQWRkIEByb290IHBhcmFtLiBOZXN0ZWQKLQlwcm9q ZWN0IGluZm8gc2hvdWxkIGJlIGVtaXR0ZWQgd3J0IEByb290LgotCi0yMDA3LTA0LTI2ICBBbmtp dCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChH ZXRFeHBvcnRGaWxlcyk6IEltcGxlbWVudC4KLQkqIFNsbkZpbGVGb3JtYXQuY3MgKEdldEV4cG9y dEZpbGVzKTogSW1wbGVtZW50LgotCi0yMDA3LTA0LTI2ICBBbmtpdCBKYWluICA8amFua2l0QG5v dmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChIYW5kbGVGaWxlUHJvcGVydHlD aGFuZ2VkKTogUHJvamVjdEZpbGUuRGVwZW5kc09uIGNhbgotCWJlIG51bGwuCi0KLTIwMDctMDQt MjYgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5j cyAoV3JpdGVGaWxlKTogQWxsb3cgd3JpdGluZyBmb3Igbm9uLXJvb3QgY29tYmluZXMKLQl3aGlj aCBkb24ndCBoYXZlIGEgbXNidWlsZCBjb21iaW5lIGFzIHBhcmVudC4gQ29udmVydCBhbnkgbm9u LW1zYnVpbGQKLQljaGlsZCBwcm9qZWN0cyB0byBtc2J1aWxkIGZvcm1hdCwgYW5kIFNhdmUgYWxs IGNoaWxkIGVudHJpZXMuCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoLmN0b3IpOiBSZW1vdmUg LmN0b3Igd2l0aCBAbGFuZ3VhZ2UgcGFyYW1ldGVyLgotCShXcml0ZUZpbGVJbnRlcm5hbCk6IEFs d2F5cyBzYXZlIHVwZGF0ZWQgUmVmZXJlbmNlcy4KLQkoUmVmZXJlbmNlVG9YbWxFbGVtZW50KTog VXBkYXRlIGlmIGVsZW1lbnQgYWxyZWFkeSBleGlzdHMuCi0JKiBNU0J1aWxkU29sdXRpb24uY3Mg KC5jY3Rvcik6IElkZUFwcC5Qcm9qZWN0T3BlcmF0aW9ucyBjb3VsZCBiZSBudWxsCi0Jd2hlbiBp bnZva2VkIGZyb20gY29tbWFuZCBsaW5lLgotCShIYW5kbGVBZGRFbnRyeSk6IFJlbW92ZSBjYWxs IHRvIFVwZGF0ZVByb2plY3RSZWZlcmVuY2VzLgotCShDb252ZXJ0VG9NU0J1aWxkKTogU2ltcGxp ZnkuIENoYW5nZSB0aGUgZmlsZWZvcm1hdCwgaWYgcmVxdWlyZWQsIGFuZAotCVNhdmUuCi0JKiBT bG5EYXRhLmNzICguY3Rvcik6IE5ldyBjb25zdHJ1Y3RvcnMgZm9yIHNldHRpbmcgdGhlIGd1aWQu Ci0JKiBWUzIwMDNTbG5GaWxlRm9ybWF0LmNzLCBWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jczog VHJhY2sgYXBpIGNoYW5nZXMuCi0KLTIwMDctMDQtMTkgIExsdWlzIFNhbmNoZXogR3VhbCA8bGx1 aXNAbm92ZWxsLmNvbT4gCi0KLQkqIFZTMjAwM1NsbkZpbGVGb3JtYXQuY3MsIFZTMjAwM1Byb2pl Y3RGaWxlRm9ybWF0LmNzOiBUcmFjayBhcGkKLQkgIGNoYW5nZXMuCi0JKiBNU0J1aWxkU29sdXRp b24uY3MsIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWwsIFNsbkZpbGVGb3JtYXQuY3MsCi0J ICBNU0J1aWxkRmlsZUZvcm1hdC5jczogTWVyZ2UgdGhlIHByb2ogYW5kIHNsbiBmaWxlIGZvcm1h dHMgaW4gYQotCSAgc2luZ2xlIG1zYnVpbGQgZmlsZSBmb3JtYXQgd2hpY2ggY2FuIGhhbmRsZSBi b3RoIHR5cGVzIG9mIGZpbGVzLgotCSogTWFrZWZpbGUuYW0sIHByajJtYWtlLXNoYXJwLWxpYi5t ZHA6IFVwZGF0ZWQuCi0KLTIwMDctMDMtMjkgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNv bT4KLQotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3M6IFdyaXRlIG91dCBsaXN0IG9mIGZpbGVzIGFu ZCByZWZlcmVuY2VzIGluCi0JV3JpdGVGaWxlIGluc3RlYWQgb2YgaW4gU2F2ZVByb2plY3QuCi0J KiBNU0J1aWxkU29sdXRpb24uY3M6IENhbm5vdCBjb252ZXJ0IGEgbm9uLWRvdG5ldCBwcm9qZWN0 LgotCi0yMDA3LTAzLTI5ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAot Ci0JKiBWUzIwMDNTbG5GaWxlRm9ybWF0LmNzLCBWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jczog VlMyMDAzIGZpbGUKLQkgIGZvcm1hdCBjYW4ndCB3cml0ZSBmaWxlcy4KLQkqIHByajJtYWtlLXNo YXJwLWxpYi5tZHA6IERpc2FibGUgbG9jYWwtY29weSByZWZlcmVuY2VzLgotCi0yMDA3LTAyLTIx ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0 LmNzOiBEb24ndCBzd2FsbG93IGV4Y2VwdGlvbnMuIENhdGNoIHNwZWNpZmljCi0JZXhjZXB0aW9u cy4KLQotMjAwNy0wMi0yMCAgQW5raXQgSmFpbiA8amFua2l0QG5vdmVsbC5jb20+IAotCi0JKiBT bG5GaWxlRm9ybWF0LmNzOiBBdm9pZCBpc3N1aW5nIGR1cGxpY2F0ZSB3YXJuaW5ncy4KLQotMjAw Ny0wMi0yMCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9y bWF0LmNzOiBBdm9pZCBjcmVhdGluZyB1bm5lY2Vzc2FyeSBndWlkcy4KLQotMjAwNy0wMi0yMCBB bmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIFNsbkZpbGVGb3JtYXQuY3M6IERv bid0IHVzZSB0aGUgZmlsZSBzZXJ2aWNlIGZvciBmaWxlIG1vdmVzLCBpdCBtaWdodAotCWhhdmUg c2lkZSBlZmZlY3RzLgotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3M6IExpa3dpc2UuCi0JKiBWUzIw MDNQcm9qZWN0RmlsZUZvcm1hdC5jczogQWRkIGNvcHlyaWdodCBub3RpY2UuCi0JKiBWUzIwMDNT bG5GaWxlRm9ybWF0LmNzOiBMaWt3aXNlLgotCi0yMDA3LTAyLTIwICBBbmtpdCBKYWluICA8amFu a2l0QG5vdmVsbC5jb20+Ci0KLQkqIFNsbkZpbGVGb3JtYXQuY3M6IFByb2plY3QgdHlwZSBndWlk cyBhcmUgcGVyLXByb2plY3QgdHlwZSwgc3VwcG9ydAotCXRoYXQuCi0JKFdyaXRlUHJvamVjdHMp OiBBZGQgYSAnbW9uaXRvcicgcGFyYW0uCi0KLTIwMDctMDItMTkgIEFua2l0IEphaW4gIDxqYW5r aXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAoV3JpdGVGaWxlKTogVXNlIEZp bGUuRGVsZXRlIGZvciBkZWxldGluZyB0ZW1wb3JhcnkKLQlmaWxlcy4KLQkqIE1TQnVpbGRGaWxl Rm9ybWF0LmNzIChXcml0ZUZpbGUpOiBMaWtld2lzZS4KLQkoQ2FuUmVhZEZpbGUpOiBVc2UgWG1s UmVhZGVyLk1vdmVUb0NvbnRlbnQgdG8gZ2V0IHRvIHRoZSBjb250ZW50IG5vZGVzLgotCShMb2Fk UHJvamVjdCk6IFNraXAgbm9uLWVsZW1lbnQgKGVnLiBjb21tZW50KSBub2RlcyB3aGVuIGxvb2tp bmcgZm9yCi0Jcm9vdC4KLQkqIFZTMjAwM1Byb2plY3RGaWxlRm9ybWF0LmNzIChDYW5SZWFkRmls ZSk6IFVzZSBYbWxSZWFkZXIuTW92ZVRvQ29udGVudCB0byAKLQlnZXQgdG8gdGhlIGNvbnRlbnQg bm9kZXMuCi0KLTIwMDctMDItMTYgIExsdWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNv bT4gCi0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWw6IENoYW5nZSBhZGQtaW4gdmVy c2lvbnMgdG8gMC4xMy4KLQotMjAwNy0wMi0xNSAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bu b3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAtbGliLm1kcDogVXBkYXRlZC4KLQotMjAw Ny0wMi0xMyBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIFZTMjAwM1NsbkZp bGVGb3JtYXQuY3M6IE5ldy4KLQkqIFZTMjAwM1Byb2plY3RGaWxlRm9ybWF0LmNzOiBOZXcuCi0J KiBNU0J1aWxkUHJvamVjdC5jcyAoR2V0RGVmYXVsdFJlc291cmNlSWRJbnRlcm5hbCk6IE1ha2Ug c3RhdGljLgotCSogTXNQcmpIZWxwZXIuY3MgKENyZWF0ZVByanhGcm9tQ3Nwcm9qKTogQWRkIG5l dyBvdmVybG9hZC4KLQkoTXNTbG5Ub0NtYnhIZWxwZXIpOiBMaWtld2lzZS4KLQlTZXQgRGVmYXVs dE5hbWVzcGFjZS4gU2V0IHJlc291cmNlIGlkLgotCSogTVNCdWlsZFNvbHV0aW9uLmNzIChIYW5k bGVBZGRFbnRyeSk6IEhhbmRsZSBhZGRpbmcgdnMyMDAzIHNsbi9wcm9qZWN0LgkKLQkoQ29udmVy dFRvTVNCdWlsZCk6IE1ha2UgaW50ZXJuYWwuCi0JKFVwZGF0ZVByb2plY3RSZWZlcmVuY2VzKTog TGlrZXdpc2UuCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBSZW1vdmUgcmVmZXJl bmNlcyB0byBpbXBvcnRpbmcgVlMyMDAzIHByb2plY3QuCi0JQWRkIG5ldyBmaWxlIGZvcm1hdHMu Ci0JKiBTbG5GaWxlRm9ybWF0LmNzOiBBZGQgbnVsbCBjaGVjay4KLQkqIE1TQnVpbGRGaWxlRm9y bWF0LmNzIChDYW5SZWFkRmlsZSk6IENoZWNrIHJvb3QgZWxlbWVudCBvZiB0aGUgKnByb2ogZmls ZS4KLQlNYWtlIGNvbmRpdGlvbiByZWdleCBzdGF0aWMuCi0JKiBwcmoybWFrZS1zaGFycC1saWIu bWRwLCBNYWtlZmlsZS5hbTogU3luYyBtZHAgcHJvamVjdCB3aXRoIG1ha2VmaWxlLgotCi0yMDA3 LTAyLTEyIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1h dC5jczogTWFrZSByZWdleCBvYmplY3RzIHN0YXRpYy4KLQotMjAwNy0wMi0xMiAgQW5raXQgSmFp biAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9ybWF0LmNzIChDYW5SZWFkRmls ZSk6IENoZWNrIHNsbiB2ZXJzaW9uLgotCShMb2FkU29sdXRpb24pOiBMaWtld2lzZS4gSGFuZGxl IGludmFsaWQgcHJvamVjdCBwYXRocy4KLQkoR2V0U2xuRmlsZVZlcnNpb24pOiBGaXguCi0JKiBN U0J1aWxkRmlsZUZvcm1hdC5jcyAoV3JpdGVGaWxlKTogVGhyb3cgaWYgQG5vZGUgaXMgbm90IGEK LQlEb3ROZXRQcm9qZWN0LgotCShGaWxlVG9YbWxFbGVtZW50KTogU2V0IERlcGVuZGVudFVwb24g b25seSBpZiByZXF1aXJlZC4KLQotMjAwNy0wMi0wNyAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVp c0Bub3ZlbGwuY29tPiAKLQotCSogTXNQcmpIZWxwZXIuY3M6IFVzZSBhIFRleHRGaWxlUmVhZGVy IHRvIG9wZW4gdGhlIFZTIGZpbGUsIHNpbmNlIGl0Ci0JICBjYW4gYXV0by1kZXRlY3QgdGhlIGZp bGUgZW5jb2RpbmcuCi0JKiBwcmoybWFrZS1zaGFycC1saWIubWRwOiBNaW5vciB1cGRhdGUuCi0K LTIwMDctMDItMDEgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWls ZEZpbGVGb3JtYXQuY3MgKFJlYWRJdGVtR3JvdXBzKTogQ2hlY2sgZm9yIGludmFsaWQgcGF0aHMu Ci0JKEdldFZhbGlkUGF0aCk6IE5ldy4KLQotMjAwNy0wMS0yNyAgQW5raXQgSmFpbiAgPGphbmtp dEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoUmVmZXJlbmNlVG9YbWxF bGVtZW50KTogVXNlIFN5c3RlbS5SZWZsZWN0aW9uIHRvCi0JZ2V0IGFzc2VtYmx5IG5hbWUgaW5z dGVhZCBvZiBjZWNpbC4KLQkqIE1ha2VmaWxlLmFtOiBSZW1vdmUgcmVmZXJlbmNlIHRvIE1vbm8u Q2VjaWwgLgotCi0yMDA3LTAxLTI0ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0K LQkqIFNsbkZpbGVGb3JtYXQuY3M6IFJlbW92ZSB1c2Ugb2YgU3RyZWFtUmVhZGVyLkVuZE9mU3Ry ZWFtIHRvIGJlCi0JY29tcGlsYWJsZSB3aXRoIG1vbm8gMS4xLjEzLjggCi0KLTIwMDctMDEtMjAg IEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAo SGFuZGxlQ29tYmluZUVudHJ5QWRkZWQpOgotCShTZXRIYW5kbGVycyk6Ci0JKENvbnZlcnRUb01T QnVpbGQpOgotCShVcGRhdGVQcm9qZWN0UmVmZXJlbmNlcyk6IE1vdmUgdG8gLi4KLQkqIE1TQnVp bGRTb2x1dGlvbi5jczogLi4gaGVyZS4KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChSZWFkQ29u ZmlnKTogRml4IGEgd2FybmluZy4KLQotMjAwNy0wMS0xOSAgQW5raXQgSmFpbiAgPGphbmtpdEBu b3ZlbGwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBBZGQgZGVwZW5k ZW5jeSBvbiBWQkJpbmRpbmcuCi0JRml4IGJ1ZyAjODA1NTUuCi0KLTIwMDctMDEtMTggIE1hcmVr IFNpZXJhZHpraSAgPG1hcmVrLnNpZXJhZHpraUBnbWFpbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVy LmNzOiBSZW1vdmUgd2FybmluZy4KLQotMjAwNy0wMS0wOSAgTGx1aXMgU2FuY2hleiBHdWFsIDxs bHVpc0Bub3ZlbGwuY29tPiAKLQotCSogTVNCdWlsZFNvbHV0aW9uLmNzLCBTbG5GaWxlRm9ybWF0 LmNzOiBUcmFjayBhcGkgY2hhbmdlcy4KLQotMjAwNi0xMi0yOCAgQW5raXQgSmFpbiAgPGphbmtp dEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9ybWF0LmNzIChMb2FkU29sdXRpb24pOiBTZXQg VmVyc2lvbiB0byAiMC4xIi4gVGVtcG9yYXJ5IGhhY2suCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5j cyAoTG9hZFByb2plY3QpOiBMaWtld2lzZS4KLQotMjAwNi0xMi0yNyAgQW5raXQgSmFpbiAgPGph bmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5EYXRhLmNzIChTZWN0aW9uRXh0cmFzKTogTmV3Lgot CSogU2xuRmlsZUZvcm1hdC5jcyAoTG9hZFByb2plY3RDb25maWd1cmF0aW9uTWFwcGluZ3MpOiBQ cmVzZXJ2ZSBsaW5lcwotCXRoYXQgd2UgY2Fubm90IHBhcnNlIG9yIGNvcnJlc3BvbmQgdG8gcHJv amVjdHMgdGhhdCBjb3VsZCBub3QgbG9hZC4KLQkoV3JpdGVGaWxlSW50ZXJuYWwpOiBXcml0ZSBs aW5lcyB0aGF0IHdlIGNvdWxkIG5vdCBwYXJzZSB3aGVuIHJlYWRpbmcuCi0KLTIwMDYtMTItMjYg IEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWlsZFNvbHV0aW9uLmNz IChIYW5kbGVBZGRFbnRyeSk6IEZpeCBvcmRlciBvZiBhcmd1bWVudHMgdG8gQXNrUXVlc3Rpb24u Ci0KLTIwMDYtMTItMjYgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xu RmlsZUZvcm1hdC5jcyAoTG9hZFByb2plY3RDb25maWd1cmF0aW9uTWFwcGluZ3MpOiBVcGRhdGUg dG8KLQljaGFuZ2VzLgotCShGaW5kQ29tYmluZUNvbmZpZ3VyYXRpb25FbnRyeSk6IFJlcGxhY2Ug d2l0aCAuLi4KLQkoR2V0Q29uZmlnRW50cnlGb3JQcm9qZWN0KTogLi4uIHRoaXMuIENyZWF0ZSB0 aGUgZW50cmllcyBpZiBub3QgZm91bmQuCi0JKEdldENvbmZpZ0VudHJ5KTogTmV3LgotCi0yMDA2 LTEyLTIyICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRTb2x1 dGlvbi5jczoKLQkqIFNsbkZpbGVGb3JtYXQuY3M6Ci0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jczoK LQlVc2UgR2V0dGV4dENhdGFsb2cuR2V0U3RyaW5nIGZvciBhbGwgdXNlciB2aXNpYmlsZSBzdHJp bmdzLCBleGNlcHQgZGVidWcKLQlvdXRwdXQuCi0KLTIwMDYtMTItMjIgIEFua2l0IEphaW4gIDxq YW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAoTG9hZFNvbHV0aW9uKTog UHJlc2VydmUgdGhlIHByb2plY3QncyBzbG4gbGluZXMKLQlpZiB0aGUgcHJvamVjdCBsb2FkaW5n IGZhaWxzLgotCi0yMDA2LTEyLTIxICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0K LQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChTZXRGb3JOdWxsQ29uZGl0aW9uKTogTmV3LgotCShD aGVja051bGxDb25kaXRpb24pOiBOZXcuCi0JTmV3IG1ldGhvZHMgdG8gZ2V0IGRlZmF1bHQgdmFs dWVzIGZvciBjb25maWcgYW5kIHBsYXRmb3JtLgotCShSZWFkQ29uZmlnKTogQWRkICdkZWZhdWx0 X3BsYXRmb3JtJyBwYXJhbS4KLQkoUGFyc2VDb25kaXRpb24pOiBMZWZ0IHNpZGUgb2YgdGhlIGNv bmRpdGlvbiBkZWNpZGVzIHRoZSBudW1iZXIgb2YKLQllbGVtZW50cyByZXR1cm5lZC4KLQkoU2F2 ZVByb2plY3QpOiBFbWl0IGVsZW1lbnRzIGZvciBkZWZhdWx0IENvbmZpZ3VyYXRpb24gYW5kIFBs YXRmb3JtLCAKLQlzZXQgdG8gIkRlYnVnIiBhbmQgIkFueUNQVSIuCi0KLTIwMDYtMTItMTkgIEFu a2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWlsZEZpbGVGb3JtYXQuY3Mg KFdyaXRlRmlsZUludGVybmFsKTogRml4IHR5cG8gaW4gd3JpdGluZyBkZWZhdWx0Ci0JUGxhdGZv cm0uCi0KLTIwMDYtMTItMTggIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSog U2xuRmlsZUZvcm1hdC5jcyAoTG9hZFNvbHV0aW9uKTogRG9uJ3Qgb3ZlcndyaXRlIHRoZSBwcm9q ZWN0IG5hbWUuCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoU2V0dXBIYW5kbGVycyk6IFJlLWVu YWJsZSBOYW1lQ2hhbmdlZCBldmVudAotCWhhbmRsZXIuCi0JKEhhbmRsZVJlbmFtZSk6IElnbm9y ZSBpZiB0aGUgcHJvamVjdCBpcyBub3QgcGFydCBvZiBhIGNvbWJpbmUuCi0KLTIwMDYtMTItMTgg IEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAo TG9hZFByb2plY3RDb25maWd1cmF0aW9uTWFwcGluZ3MpOiBDb25maWcgbmFtZSBjYW4KLQloYXZl IGEgJy4nIGluIGl0LCBoYW5kbGUgdGhhdC4KLQotMjAwNi0xMi0xOCAgQW5raXQgSmFpbiAgPGph bmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxlRm9ybWF0LmNzIChXcml0ZVByb2plY3RDb25m aWd1cmF0aW9ucyk6IFRlbXBvcmFyeSB3b3JrYXJvdW5kCi0JdG8gYWxsb3cgaW1wb3J0aW5nIG9m IHByb2plY3RzL3NvbHV0aW9ucyBpbnRvIGEgbXNidWlsZCBzb2x1dGlvbiB0byB3b3JrLgotCU1p bm9yIHJlZmFjdG9yaW5nLgotCUxpbmUgbnVtYmVycyBhcmUgMS1iYXNlZC4KLQotMjAwNi0xMi0x OCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBNU0J1aWxkU29sdXRpb24u Y3MgKFByb2plY3RzQnlHdWlkKTogTmV3LgotCSogU2xuRmlsZUZvcm1hdC5jczogVHJlYXQgY29u ZmlnIG5hbWVzIGxpa2UgJ0RlYnVnfEFueSBDUFUnIGFzIHRoZQotCWNvbmZpZyBuYW1lIGZvciBt ZCwgaS5lLiwgZG9uJ3Qgc3BsaXQuIEdlbmVyYXRlIFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZv cm1zCi0JaW4gdGhlIC5zbG4gZmlsZS4KLQkoV3JpdGVGaWxlSW50ZXJuYWwpOiBHZW5lcmF0ZSBT b2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMgYW5kCi0JUHJvamVjdENvbmZpZ3VyYXRpb25Q bGF0Zm9ybXMuCi0JKFdyaXRlUHJvamVjdENvbmZpZ3VyYXRpb25zKTogTmV3LgotCShIYW5kbGVD b21iaW5lRW50cnlBZGRlZCk6IEFkZCBwcm9qZWN0cyBmcm9tIHRoZSBuZXcgY29tYmluZSB0byB0 aGUgcm9vdAotCWNvbWJpbmUncyBQcm9qZWN0c0J5R3VpZCB0YWJsZS4KLQkoTG9hZFNvbHV0aW9u KTogQWRkIHByb2plY3QgdG8gdGhlIGd1aWQgdGFibGUuIEVtaXQgZXhjZXB0aW9uIG1lc3NhZ2Us Ci0JYW5kIFJlcG9ydFdhcm5pbmcuIExvYWQgUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMu Ci0JKExvYWRQcm9qZWN0Q29uZmlndXJhdGlvbk1hcHBpbmdzKTogTmV3LgotCShGaW5kQ29tYmlu ZUNvbmZpZ3VyYXRpb25FbnRyeSk6IE5ldy4KLQkoTG9hZENvbmZpZ3VyYXRpb25zKTogUmVuYW1l IHRvIC4uCi0JKExvYWRTb2x1dGlvbkNvbmZpZ3VyYXRpb25zKTogLi4gdGhpcy4KLQotCSogTVNC dWlsZEZpbGVGb3JtYXQuY3M6IFRyZWF0ICdEZWJ1Z3xBbnkgQ1BVJyBhcyBjb25maWcgbmFtZSwg YnV0IHdyaXRlCi0JYmFjayBjb3JyZWN0bHkgdG8gdGhlICpwcm9qIGZpbGUuCi0JKEdldENvbmZp Z05hbWUpOiBOZXcuCi0JKEdldENvbmZpZ1BsYXRmb3JtKTogTmV3LgotCi0yMDA2LTEyLTE3ICBM bHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFy cC1saWIubWRwOiBBZGRlZCBtaXNzaW5nIGZpbGVzLgotCSogU2xuRmlsZUZvcm1hdC5jcywgTVNC dWlsZEZpbGVGb3JtYXQuY3M6IFRyYWNrIGNoYW5nZXMgaW4gdGhlCi0JICBGaWxlU2VydmljZSBj bGFzcy4KLQotMjAwNi0xMi0xNSAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0J KiBJUmVzb3VyY2VJZEJ1aWxkZXIuY3M6IE5ldy4KLQkqIENTaGFycFJlc291cmNlSWRCdWlsZGVy LmNzOiBOZXcuCi0JKiBWQk5ldFJlc291cmNlSWRCdWlsZGVyLmNzOiBOZXcuCi0KLQkqIE1TQnVp bGRGaWxlRm9ybWF0LmNzOiBNb3ZlIE1TQnVpbGREYXRhIGFuZCBNU0J1aWxkUHJvamVjdCBjbGFz c2VzIHRvIC4uCi0JKiBNU0J1aWxkRGF0YS5jczogLi4gdGhpcyBhbmQgLi4KLQkqIE1TQnVpbGRQ cm9qZWN0LmNzOiAuLiB0aGlzLgotCi0JKiBTbG5GaWxlRm9ybWF0LmNzOiBNb3ZlIFNsbkRhdGEg YW5kIE1TQnVpbGRTb2x1dGlvbiBjbGFzc2VzIHRvIC4uIAotCSogU2xuRGF0YS5jczogLi4gdGhp cyBhbmQgLi4KLQkqIE1TQnVpbGRTb2x1dGlvbi5jcyA6IC4uIHRoaXMuCi0KLQkqIE1ha2VmaWxl LmFtOiBBZGQgbmV3IGZpbGVzLgotCi0yMDA2LTEyLTE1ICBBbmtpdCBKYWluICA8amFua2l0QG5v dmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChHZXREZWZhdWx0UmVzb3VyY2VJ ZEludGVybmFsKTogUmV0dXJuIG51bGwgaWYKLQlubyBjbGFzcyBuYW1lIGlzIGZvdW5kLgotCi0y MDA2LTEyLTE1ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRG aWxlRm9ybWF0LmNzIChSZWFkSXRlbUdyb3Vwcyk6IEFkZCBhICdtb25pdG9yJyBwYXJhbS4KLQlS ZXNvdXJjZSBmaWxlIGNhbm5vdCBiZSBvdXRzaWRlIHRoZSBwcm9qZWN0IGRpcmVjdG9yeS4JCQot CURlcGVuZGVudFVwb24gaXMgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgZW1iZWRk ZWQgcmVzb3VyY2UuCi0JKEZpbGVUb1htbEVsZW1lbnQpOiBXcml0ZSBEZXBlbmRlbnRVcG9uIGlu Zm8uCi0JKEhhbmRsZUZpbGVQcm9wZXJ0eUNoYW5nZWQpOiBMaWtld2lzZS4KLQotCShNU0J1aWxk UHJvamVjdC5HZXREZWZhdWx0UmVzb3VyY2VJZEludGVybmFsKTogQnVpbGQgZW1iZWRkZWQgcmVz b3VyY2UKLQlpZCB3aGVuIHRoZSBmaWxlIGRlcGVuZHMgb24gYSBjcyBmaWxlLgotCShHZXROZXh0 Q1NUb2tlbik6IFZlcnkgU2ltcGxlIHRva2VuaXplciBmb3IgYyMgZmlsZXMuCi0KLTIwMDYtMTIt MTMgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogTVNCdWlsZEZpbGVGb3Jt YXQuY3MgKFJlYWRDb25maWcpOiBSZWFkIFdpbjMyUmVzb3VyY2UuCi0JKFdyaXRlRmlsZUludGVy bmFsKTogV3JpdGUgV2luMzJSZXNvdXJjZS4KLQkoUmVhZEl0ZW1Hcm91cHMpOiBFbWl0IGEgd2Fy bmluZyBpZiBJbmNsdWRlIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuCi0KLTIwMDYtMTItMTIgIEFu a2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jcyAoU2xu RmlsZUZvcm1hdC5Xcml0ZUZpbGUpOiBXcml0ZSB0byBhIHRlbXBvcmFyeSBmaWxlCi0JYW5kIGlm IHN1Y2Nlc3NmdWwsIHRoZW4gcmVuYW1lIHRvIHRoZSBpbnRlbmRlZCBmaWxlLgotCVNwbGl0IGlu dG8gdGhpcyBhbmQgLi4gCi0JKFNsbkZpbGVGb3JtYXQuV3JpdGVGaWxlSW50ZXJuYWwpOiAuLiB0 aGlzLiBQcmVzZXJ2ZSB0ZXh0IGNvcnJlc3BvbmRpbmcKLQl0byBwcm9qZWN0cyB0aGF0IHdlIGNv dWxkIG5vdCBsb2FkLgotCShTbG5GaWxlRm9ybWF0LkxvYWRTb2x1dGlvbik6IFVzZSBNU0J1aWxk U29sdXRpb24gaW5zdGVhZCBvZiBDb21iaW5lLgotCShTbG5GaWxlRm9ybWF0LkhhbmRsZUNvbWJp bmVFbnRyeUFkZGVkKTogTW92ZSBjb2RlIGZvciB1cGRhdGluZyBwcm9qZWN0Ci0JcmVmZXJlbmNl cyB0byAuLiAKLQkoU2xuRmlsZUZvcm1hdC5VcGRhdGVQcm9qZWN0UmVmZXJlbmNlcyk6IC4uIGhl cmUuCi0JKFNsbkZpbGVGb3JtYXQuQ29udmVydFRvTVNCdWlsZCk6IFJldHVybiBDb21iaW5lRW50 cnkuIFNldCBmaWxlIG5hbWUgZm9yIHNvbHV0aW9uIGZvbGRlci4KLQkKLQkoU2xuRmlsZUZvcm1h dC5TZWN0aW9uKTogTWFrZSBpdCB0b3AgbGV2ZWwgY2xhc3MuCi0JKFNsbkRhdGEpOiBOZXcgY2xh c3MuCi0JKE1TQnVpbGRTb2x1dGlvbik6IE5ldyBjbGFzcy4KLQotCSogTVNCdWlsZEZpbGVGb3Jt YXQuY3MgKE1TQnVpbGRGaWxlRm9ybWF0LldyaXRlRmlsZSk6IFdyaXRlIHRvIGEgdGVtcG9yYXJ5 IGZpbGUKLQlhbmQgaWYgc3VjY2Vzc2Z1bCwgdGhlbiByZW5hbWUgdG8gdGhlIGludGVuZGVkIGZp bGUuCi0JKE1TQnVpbGRGaWxlRm9ybWF0LlJlYWRDb25maWcpOiBSZWFkIEFwcGxpY2F0aW9uSWNv biBhbHNvLgotCShNU0J1aWxkRmlsZUZvcm1hdC5TYXZlUHJvamVjdCk6IFJlbW92ZSBAZmlsZSBw YXJhbS4KLQkoTVNCdWlsZEZpbGVGb3JtYXQuTG9hZFByb2plY3QpOiBTZXQgcHJvamVjdCdzIERl ZmF1bHROYW1lc3BhY2UuIFVzZQotCU1TQnVpbGRQcm9qZWN0IGluc3RlYWQgb2YgRG90TmV0UHJv amVjdC4KLQkoTVNCdWlsZEZpbGVGb3JtYXQuUmVmZXJlbmNlVG9YbWxFbGVtZW50KTogU2V0IHRo ZSBjb3JyZWN0IGd1aWQgZm9yIGEKLQlwcm9qZWN0IHJlZmVyZW5jZS4KLQkoTVNCdWlsZEZpbGVG b3JtYXQuRmlsZVRvWG1sRWxlbWVudCk6IEZvciBFbWJlZEFzUmVzb3VyY2UsIHNldCB0aGUKLQlM b2dpY2FsTmFtZSBpZiByZXF1aXJlZCAoc2VlIHRoZSBjb21tZW50IGluIHRoZSBjb2RlKS4KLQko TVNCdWlsZEZpbGVGb3JtYXQuUmVhZEl0ZW1Hcm91cHMpOiBBZGQgIkNvbnRlbnQiLgotCUZvciBF bWJlZGRlZFJlc291cmNlLCB1c2UgTG9naWNhbE5hbWUgaWYgYXZhaWxhYmxlLgotCi0JKE1TQnVp bGRGaWxlRm9ybWF0Lk1TQnVpbGRQcm9qZWN0KTogTmV3LgotCi0yMDA2LTEyLTA4ICBBbmtpdCBK YWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChXcml0 ZUZpbGVJbnRlcm5hbCk6IFRyaW1taW5nICd7JywgJ30nIG5vdAotCXJlcXVpcmVkIGZvciBuZXcg Z3VpZHMuCi0JVXNlIE1TQnVpbGREYXRhLkd1aWQgZm9yIHByb2plY3QgcmVmZXJlbmNlcy4KLQot MjAwNi0xMi0wOCAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxl Rm9ybWF0LmNzOiBNb3ZlIGV4dHJhIC5zbG4gc3BlY2lmaWMgaW5mbyBmcm9tCi0JRXh0ZW5kZWRQ cm9wZXJ0aWVzIHRvIFNsbkRhdGEgYW5kIHN0b3JlIHRoYXQgaW4gdGhlIEV4dGVuZGVkUHJvcGVy dGllcy4KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzOiBMaWtld2lzZSwgbW92ZSB0byBNU0J1aWxk RGF0YS4KLQotMjAwNi0xMi0wMyAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0J KiBTbG5GaWxlRm9ybWF0LmNzIChXcml0ZVByb2plY3RzKTogQWRkICdiYXNlRGlyZWN0b3J5JyBw YXJhbS4KLQlQYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byBzb2x1dGlvbiBmaWxlJ3MgZGlyZWN0 b3J5LgotCShIYW5kbGVDb21iaW5lRW50cnlBZGRlZCk6IEVtaXQgJ2d1aWQnIHdpdGggdGhlIHBy b2plY3QgcmVmZXJlbmNlLgotCVBhdGggc2hvdWxkIGJlIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0 J3MgYmFzZSBkaXJlY3RvcnkuCi0JKiBNU0J1aWxkRmlsZUZvcm1hdC5jcyAoQXBwZW5kQ2hpbGQp OiBNYWtlIGludGVybmFsLgotCi0yMDA2LTEyLTAzICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVs bC5jb20+Ci0KLQkqIFNsbkZpbGVGb3JtYXQuY3MgKEhhbmRsZUNvbWJpbmVFbnRyeUFkZGVkKTog VXBkYXRlIHByb2plY3QgcmVmZXJlbmNlcwotCWFmdGVyIGNvbnZlcnNpb24uCi0KLTIwMDYtMTIt MDIgIEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5j cyAoU2V0SGFuZGxlcnMpOiBBZGQgYSAnc2V0RW50cmllcycgcGFyYW0uIFNldHRpbmcKLQloYW5k bGVycyBvbiBlbnRyaWVzIGlzIHJlcXVpcmVkIHdoZW4gbG9hZGluZyBmcm9tIGEgZmlsZS4KLQot MjAwNi0xMi0wMiAgQW5raXQgSmFpbiAgPGphbmtpdEBub3ZlbGwuY29tPgotCi0JKiBTbG5GaWxl Rm9ybWF0LmNzIChTZXRIYW5kbGVycyk6IERvbid0IHNldCBoYW5kbGVycyBvbiBjb250YWluZWQK LQljb21iaW5lcy4gU2V0ICpBZGRlZCBoYW5kbGVyIGluc3RlYWQgb2YgKk1vZGlmaWVkLgotCShI YW5kbGVDb21iaW5lRW50cnlNb2RpZmllZCk6IFJlbW92ZS4KLQkoSGFuZGxlQ29tYmluZUVudHJ5 QWRkZWQpOiBOZXcuCi0JKENvbnZlcnRUb01TQnVpbGQpOiBOZXcuIENvbnZlcnQgYSBNZHMvTWRw IGJhc2VkIHByb2plY3QgdG8gbXNidWlsZAotCWZvcm1hdCAoaWYgcmVxdWlyZWQpLgotCSogTVNC dWlsZEZpbGVGb3JtYXQuY3MgKFdyaXRlRmlsZSk6IFNwbGl0IGludG8gdGhpcyBhbmQgLi4KLQko V3JpdGVGaWxlSW50ZXJuYWwpOiAuLiB0aGlzLiBDcmVhdGUgYSBuZXcgWG1sRG9jdW1lbnQgaWYg cmVxdWlyZWQuCi0JKFNhdmVQcm9qZWN0KTogU2F2ZSBhIERvdE5ldFByb2plY3QgdG8gdGhlIGNv cnJlc3BvbmRpbmcgLipwcm9qIC4KLQkoTG9hZFByb2plY3QpOiBTZXQgaGFuZGxlcnMuCi0JKFNl dHVwSGFuZGxlcnMpOiBOZXcuCi0JKFJlZmVyZW5jZVRvWG1sTm9kZSk6IE5ldy4KLQkoRmlsZVRv WG1sTm9kZSk6IE5ldy4KLQkoSGFuZGxlRmlsZVJlbmFtZWQpOiBOZXcuCi0KLTIwMDYtMTEtMjkg IEFua2l0IEphaW4gIDxqYW5raXRAbm92ZWxsLmNvbT4KLQotCSogU2xuRmlsZUZvcm1hdC5jczog QWRkIGJhc2ljIHdyaXRlL3NhdmUgc3VwcG9ydC4KLQkqIE1TQnVpbGRGaWxlRm9ybWF0LmNzIChX cml0ZUZpbGUpOiBPdXRwdXRQYXRoIHNob3VsZCBiZSByZWxhdGl2ZS4KLQkoUGFyc2VQcm9qZWN0 KTogUmVuYW1lIHRvIC4uCi0JKExvYWRQcm9qZWN0KTogLi4gdGhpcy4gU2V0IGRlZmF1bHQgbmFt ZSBvZiB0aGUgcHJvamVjdC4KLQlDcmVhdGUgbmV3IGNvbmZpZyBvbmx5IGlmIGl0IGRvZXNuJ3Qg YWxyZWFkeSBleGlzdC4JCi0JKEhhbmRsZVJlbmFtZSk6IENoYW5nZSB0aGUgbmFtZSBvZiB0aGUg cHJvamVjdCBmaWxlIHdoZW4gdGhlIHByb2plY3QgaXMKLQlyZW5hbWVkLgotCi0yMDA2LTExLTIw ICBBbmtpdCBKYWluICA8amFua2l0QG5vdmVsbC5jb20+Ci0KLQkqIE1zUHJqSGVscGVyLmNzIChN YXBQYXRoKTogTWFrZSAiaW50ZXJuYWwgc3RhdGljIi4gQ2hhbmdlICJcIiB0byAiLyIgb25seQot CWlmIHJlcXVpcmVkLgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZC5pbi54bWw6IEFkZCBleHRl bnNpb25zIGZvciBQcm9qZWN0RmlsZUZvcm1hdHMKLQlhbmQgRmlsZUZpbHRlci4KLQkqIE1ha2Vm aWxlLmFtOiBBZGQgcmVmZXJlbmNlcyB0byBNb25vRGV2ZWxvcC5Db21wb25lbnRzIGFuZCBNb25v LkNlY2lsIC4KLQlBZGQgTVNCdWlsZEZpbGVGb3JtYXQuY3MgYW5kIFNsbkZpbGVGb3JtYXQuY3MK LQotCSogU2xuRmlsZUZvcm1hdC5jczogVlMyMDA1IHNvbHV0aW9uIGZpbGUgc3VwcG9ydC4KLQkq IE1TQnVpbGRGaWxlRm9ybWF0LmNzOiBNU0J1aWxkIHByb2plY3QgZmlsZSBzdXBwb3J0LgotCUlu aXRpYWwgY29tbWl0IGZvciBzdXBwb3J0IG9mIHZzMjAwNSBzb2x1dGlvbnMvcHJvamVjdHMuCi0K LTIwMDYtMTEtMTEgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkq IHByajJtYWtlLXNoYXJwLWxpYi5tZHA6IEJ1aWxkIHRoZSBwcm9qZWN0IHVzaW5nIHRoZSAyLjAg cHJvZmlsZS4KLQotMjAwNi0wOS0xOSBKYWNvYiBJbHPDuCBDaHJpc3RlbnNlbiAgPGphY29iaWxz b2VAZ21haWwuY29tPgotCi0JKiAuOiBBZGRlZCBzdm46aWdub3JlIGZvciBwcmoybWFrZS1zaGFy cC1saWIucGlkYgotCi0yMDA2LTA5LTA3IEFuZHLDqXMgRy4gQXJhZ29uZXNlcyAgPGtub2N0ZUBn bWFpbC5jb20+Ci0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi5hZGRpbi54bWw6IEFkZGVkICcyMDAz JyB2ZXJzaW9uIHRvIGxhYmVsIHNvIGFzIG5vdCB0byAKLQljb25mdXNlIG5ld2NvbWVycyB3aG8g bWF5IHRoaW5rIFZTMjAwNSBpcyBzdXBwb3J0ZWQuIE9mIGNvdXJzZSwgdGhpcyBzaG91bGQgYmUg Ci0JcmVtb3ZlZAl3aGVuIDIwMDUgc3VwcG9ydCBpcyBhZGRlZC4KLQotMjAwNi0wNy0wMyBMbHVp cyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAt bGliLmFkZGluLnhtbDogVXBkYXRlZCB2ZXJzaW9ucy4KLQotMjAwNi0wNS0wNCBMbHVpcyBTYW5j aGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRk aW4ueG1sOiBVcGRhdGVkIHZlcnNpb25zLgotCSogcHJqMm1ha2Utc2hhcnAtbGliLm1kcDogVXBk YXRlZC4KLQotMjAwNi0wMy0zMCBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+ IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sOiBVcGRhdGVkIHJlZmVyZW5jZXMu Ci0JCi0yMDA2LTAzLTI0IExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+ICAg Ci0KLQkqIE1ha2VmaWxlLmFtOiBVc2UgYW4gdW5pZmllZCBmb3JtYXQuIFBhdGNoIGJ5IE1hdHpl IEJyYXVuLgotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogVXBkYXRlZCBhZGQtaW4g dmVyc2lvbnMuCi0KLTIwMDYtMDMtMjMgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxs LmNvbT4gCi0KLQkqIHByajJtYWtlLXNoYXJwLWxpYi9Nc1ByakhlbHBlci5jczogVHJhY2sgYXBp IGNoYW5nZXMuCi0KLTIwMDYtMDItMTkgIEFuZHLDqXMgRy4gQXJhZ29uZXNlcyA8a25vY3RlQGdt YWlsLmNvbT4KLQotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDogSW1wcm92ZWQgYSBs YWJlbCBzdHJpbmcuCi0KLTIwMDYtMDEtMDQgIEFsZXhhbmRyZSBNaWd1ZWwgUGVkcm8gR29tZXMg PGFsZXhtaXBlZ29AZ21haWwuY29tPgotCi0JKiBwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1s OiBBZGRlZCBpY29uIHRvICJJbXBvcnQgVlMgU29sdXRpb24iCi0Jb3B0aW9uLgotCi0yMDA1LTEx LTIxICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogTXNQcmpI ZWxwZXIuY3M6IEZhY3Rvcml6ZWQgY29kZSBmcm9tIGdldHRpbmcgdGhlIGxvY2F0aW9uIG9mIGEg cGFja2FnZQotCWluIGEgbWV0aG9kLiBUYWtlIGludG8gYWNjb3VudCB0aGF0IHRoZSBwYWNrYWdl IG1heSBub3QgYmUgaW5zdGFsbGVkLgotCSogcGtnY29uZmlnaW52b2tlci5jczogRG9uJ3QgY3Jh c2ggaWYgcGtnLWNvbmZpZyByZXR1cm5zIGFuIGVycm9yLgotCi0yMDA1LTExLTE4ICBMbHVpcyBT YW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogcHJqMm1ha2Utc2hhcnAtbGli LmFkZGluLnhtbDogRml4ZWQgY29tbWFuZCBwbGFjZW1lbnQgaW4gbWVudS4KLQotMjAwNS0xMS0x MCAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIGNzcHJval92 ZXIyMDAzLmNzOiBGaXhlZCBzb21lIGZpZWxkcyAocGF0Y2ggYnkgSmltIEFsYmVydCkuCi0JKiBQ cmpIZWxwZXIuY3M6CQotCSogcHJqMm1ha2Utc2hhcnAtbGliLUNvbW1hbmRzLmNzOiBTaG93IGEg cHJvZ3Jlc3MgbW9uaXRvciB3aGlsZSBpbXBvcnRpbmcuCi0JT3RoZXIgbWlub3IgZml4ZXMuCi0J KiBNc1ByakhlbHBlci5jczogVXNlIHRoZSBNb25vRGV2ZWxvcC5Qcm9qZWN0cyBhcGkgdG8gZ2Vu ZXJhdGUgdGhlIHByb2plY3RzLgotCU1hbnkgb3RoZXIgYnVnIGZpeGVzLgotCSogcHJqMm1ha2Ut c2hhcnAtbGliLmFkZGluLnhtbDogQWRkZWQgbmV3IGRlcGVuZGVuY3kuCi0JKiBNYWtlZmlsZS5h bTogQWRkZWQgbmV3IGFzc2VtYmx5IHJlZmVyZW5jZXMuCi0KLTIwMDUtMTAtMTAgIExsdWlzIFNh bmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+IAotCi0JKiBwcmoybWFrZS1zaGFycC1saWIu YWRkaW4ueG1sOiBGaXhlZCBhZGRpbiBoZWFkZXIgaW5mb3JtYXRpb24uCi0JVXNlICJpZCIgYXR0 cmlidWV0IGluc3RlYWQgb2YgIm5hbWUiIHRvIGlkZW50aWZ5IGFkZGlucy4KLQotMjAwNS0xMC0w NCAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIHByajJtYWtl LXNoYXJwLWxpYi5hZGRpbi54bWw6IEFkZGVkIGFkZGluIGRlcGVuZGVuY2llcy4KLQotMjAwNS0w Ni0yOCAgUmFqYSBSIEhhcmluYXRoICA8cmhhcmluYXRoQG5vdmVsbC5jb20+Ci0KLQkqIE1ha2Vm aWxlLmFtIChGSUxFUyk6IE1vdmUgQXNzZW1ibHlJbmZvLmNzIC4uLgotCShHRU5FUkFURURfRklM RVMpOiAuLi4gaGVyZS4KLQotMjAwNS0wNC0yNSAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNA bm92ZWxsLmNvbT4KLQotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbDoKLQkqIHByajJt YWtlLXNoYXJwLWxpYi1Db21tYW5kcy5jczogVXNlIHRoZSBuZXcgc3ludGF4IGZvciBkZWZpbmlu ZwotCWNvbW1hbmRzIGFuZCBpbXBsZW1lbnRpbmcgY29tbWFuZHMuCi0KLTIwMDUtMDQtMTcgIEpv aG4gTHVrZSAgPGpvaG4ubHVrZUBnbWFpbC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtOiBmaXggZGlz dGNoZWNrCi0KLTIwMDUtMDMtMTggIEZyYW5jaXNjbyAiUGFjbyIgTWFydGluZXogPHBhY29AbWZj b24uY29tPgotCSogTXNQcmpIZWxwZS5jczogCi0JTW9ubyAyLjAgaGFzIGJlZW4gY29tbWVudGVk IG91dCB1bnRpbCBmdXJ0aGVyIG5vdGljZS4KLQlHdGsjIDIuMCBpcyBzZWFyY2hlZCBmaXJzdCBm b3IgYSBtYXRjaCBvdGhlcndpc2UgaXQgZ29lcyB0byBHdGsjIDEuMAotCUFkZGVkIEdlY2tvIyAy LjAgKDAuNykgaXMgc2VhcmNoZWQgZmlyc3QgZm9yIGEgbWF0Y2ggb3RoZXJ3aXNlIGl0IGdvZXMg dG8gR2Vja28jIDEuMCAoMC42KQotCQotCSogTXNQcmpIZWxwZXIuY3MgYW5kIE1kUHJqSGVscGVy LmNzOgotCUkgYWxzbyBpbmNsdWRlZCB0aGUgY2hhbmdlcyBpbnNpZGUgdGhlIHBhdGNoIGluIGh0 dHA6Ly9idWd6aWxsYS54aW1pYW4uY29tL3Nob3dfYnVnLmNnaT9pZD03MzcwNS4KLQotMjAwNC0w OC0wNyAgVG9kZCBCZXJtYW4gIDx0YmVybWFuQG9mZi5uZXQ+Ci0KLQkqIEFzc2VtYmx5SW5mby5j cy5pbjogVXNlIG5ldyBBU1NFTUJMWV9WRVJTSU9OIHZhcmlhYmxlLgotCi0yMDA0LTA2LTE3ICBK b2huIEx1a2UgIDxqbHVrZUBjZmwucnIuY29tPgotCi0JKiBNYWtlZmlsZS5hbTogYWRkIHJlZmVy ZW5jZSB0byBNb25vRGV2ZWxvcC5HdWkuV2lkZ2V0cwotCSogKi5NYWtlZmlsZTogcmVtb3ZlIGdl bmVyYXRlZCBtYWtlZmlsZSBmcm9tIHN2bgotCSogcHJqMm1ha2Utc2hhcnAtQ29tbWFuZHMuY3Mg OiB1c2UgTW9ub0RldmVsb3AuR3VpLldpZGdldHMuRmlsZVNlbGVjdG9yCi0JaW5zdGVhZCBvZiBH dGsuRmlsZVNlbGVjdGlvbgotCi0yMDA0LTA2LTE0ICBGcmFuY2lzY28gIlBhY28iIE1hcnRpbmV6 IDxwYWNvQG1mY29uLmNvbT4KLQkKLQlDaGFuZ2VzIHRvIGNvcnJlY3RseSBzcGVjaWZ5IEdBQyB0 eXBlIHJlZmVyZW5jZXMgb24gaW1wb3J0ZWQgcHJvamVjdHMgZnJvbSBWUyAuTkVUIGNzcHJvaiBm aWxlcwotCi0JRmlsZXMgY2hhbmdlZAotCSogTWRQcmpIZWxwZXIuY3MgCi0JKiBNc1ByakhlbHBl ci5jcwotCSogUHJqMk1ha2VTaGFycC5wcmp4IC0tIG1vZGVybml6ZWQgdGhlIEdBQyByZWZlcmVu Y2VzCi0JKiBQcmp4SW5mby5jcwotCSogTWFrZWZpbGUuYW0gLS0gaW5jbHVkZSB0aGUgYWRkZWQg cGtnY29uZmlnaW52b2tlci5jcyBmaWxlIHRvIHRoZSBjb21waWxhdGlvbiAKLQotCUZpbGVzIGFk ZGVkCi0JKiBwa2djb25maWdpbnZva2VyLmNzIC0tIFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb3Ig ZGVwcmFjYXRlZCBpbiBmdXR1cmUgcmVsZWFzZXMgdG8gYXZvaWQgZHVwbGljaXR5IG9mCi0JZnVu Y3Rpb25hbGl0eQotCi0yMDA0LTA1LTMxICBGcmFuY2lzY28gIlBhY28iIE1hcnRpbmV6IDxwYWNv QG1mY29uLmNvbT4KLQotCSogc3JjL0FkZGluL3ByajJtYWtlLXNoYXJwLWxpYi9Nc1ByakhlbHBl ci5jczogY29ycmVjdHMgcHJvYmxlbXMgd2l0aAotCXRoZSBpbXBvcnQgb2YgaXRlbXMgZmxhZyBh cyBjb250ZW50IHNvIGl0IHdpbGwgbm90IHRyeSB0byBidWlsZCB0aG9zZQotCi0yMDA0LTA1LTE3 ICBUb2RkIEJlcm1hbiAgPHRiZXJtYW5Ac2V2ZW5sLm5ldD4KLQotCSogcHJqMm1ha2Utc2hhcnAt bGliLUNvbW1hbmRzLmNzOiB1c2UgSE9NRSBpbnN0ZWFkIG9mIFBlcnNvbmFsCi0KLTIwMDQtMDQt MjUgIEZyYW5jaXNjbyAiUGFjbyIgTWFydGluZXogPHBhY29AbWZjb24uY29tPgotCUZpbGVzIHJl bW92ZWQKLQkqIEFzc2VtYmx5SW5mby5jcyAtLSBUaGlzIGZpbGUgaXMgbm93IGdlbmVyYXRlZCBp biB0aGUgYnVpbGQgYnkKLQkJQXNzZW1ibHlJbmZvLmNzLmluCi0KLTIwMDQtMDQtMjUgIEZyYW5j aXNjbyAiUGFjbyIgTWFydGluZXogPHBhY29AbWZjb24uY29tPgotCQotCUZpbGVzIGNoYW5nZWQK LQkqIENoYW5nZUxvZyAgLS0gRWRpdGVkIHRvIGJldHRlciByZWZsZWN0IHRoZSBmaWxlcyBpbmNs dWRlZCBpbiB0aGUgb3JpZ2luYWwgaW1wb3J0IGludG8gdGhlIHJlcG9zaXRvcnkuCi0JCi0JRmls ZXMgYWRkZWQKLQkqIEFzc2VtYmx5SW5mby5jcwotCSogQXNzZW1ibHlJbmZvLmNzLmluCi0JKiBD c3Byb2pJbmZvLmNzCi0JKiBjc3Byb2pfdmVyMjAwMy5jcwotCSogTWFrZWZpbGUuYW0KLQkqIE1k UHJqSGVscGVyLmNzCi0JKiBNc1ByakhlbHBlci5jcwotCSogcHJqMm1ha2Utc2hhcnAtbGliLmFk ZGluLnhtbAotCSogcHJqMm1ha2Utc2hhcnAtbGliLmNtYngKLQkqIHByajJtYWtlLXNoYXJwLWxp Yi1Db21tYW5kcy5jcwotCSogcHJqMm1ha2Utc2hhcnAtbGliLnByangKLQkqIFByakhlbHBlci5j cwotCSogUHJqeEluZm8uY3MKLQkqIHNoYXJwX2RfY21ieC5jcwotCSogc2hhcnBfZF9wcmp4LmNz DQoNClJlbW92ZWQ6IG1haW4vc3JjL2FkZGlucy9wcmoybWFrZS1zaGFycC1saWIvQ3Nwcm9qSW5m by5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KQEAgLTEsMTc1ICswLDAgQEAKLXVzaW5nIFN5c3RlbTsKLXVzaW5n IFN5c3RlbS5Db2xsZWN0aW9uczsKLXVzaW5nIFN5c3RlbS5JTzsKLXVzaW5nIFN5c3RlbS5UZXh0 OwotdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwotdXNpbmcgU3lzdGVtLlht bDsKLXVzaW5nIFN5c3RlbS5YbWwuU2VyaWFsaXphdGlvbjsKLXVzaW5nIE1vbm9EZXZlbG9wLlBy b2plY3RzOwotCi1uYW1lc3BhY2UgTW9ub0RldmVsb3AuUHJqMk1ha2UKLXsKLQljbGFzcyBDc3By b2pJbmZvCi0JewotCQlwdWJsaWMgcmVhZG9ubHkgc3RyaW5nIG5hbWU7Ci0JCXB1YmxpYyByZWFk b25seSBzdHJpbmcgZ3VpZDsKLQkJcHVibGljIHJlYWRvbmx5IHN0cmluZyBjc3Byb2pwYXRoOwot CQlwdWJsaWMgc3RyaW5nIG1ha2VuYW1lOwotCQlwdWJsaWMgc3RyaW5nIG1ha2VuYW1lX2V4dDsK LQkJcHVibGljIHN0cmluZyBhc3NlbWJseV9uYW1lOwotCQlwdWJsaWMgc3RyaW5nIHJlczsKLQkJ cHVibGljIHN0cmluZyBzcmM7Ci0JCXByaXZhdGUgYm9vbCBtX2JBbGxvd1Vuc2FmZUNvZGU7Ci0J CXByaXZhdGUgTW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5WaXN1YWxTdHVkaW9Q cm9qZWN0IG1fcHJvak9iamVjdDsKLQkJcHVibGljIGJvb2wgTmVlZHNDb252ZXJzaW9uID0gdHJ1 ZTsKLSAgICAKLQkJcHVibGljIHN0cmluZyBleHRfcmVmcyA9ICIiOwotCQlwdWJsaWMgc3RyaW5n IHN3aXRjaGVzID0gIiI7Ci0KLQkJcHVibGljIGJvb2wgQWxsb3dVbnNhZmVDb2RlCi0JCXsKLQkJ CWdldCB7IHJldHVybiBtX2JBbGxvd1Vuc2FmZUNvZGU7IH0KLQkJfQotICAgIAotCQlwdWJsaWMg TW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5WaXN1YWxTdHVkaW9Qcm9qZWN0IFBy b3llY3RvIAotCQl7Ci0JCQlnZXQgeyByZXR1cm4gbV9wcm9qT2JqZWN0OyB9Ci0JCX0KLSAgICAK LQkJLy8gUHJvamVjdCBkZXNpcmlhbGl6YXRpb24KLQkJcHJvdGVjdGVkIE1vbm9EZXZlbG9wLlBy ajJNYWtlLlNjaGVtYS5Dc3Byb2ouVmlzdWFsU3R1ZGlvUHJvamVjdCBMb2FkUHJqRnJvbUZpbGUg KHN0cmluZyBzdHJJbikKLQkJewotCQkJdXNpbmcgKEZpbGVTdHJlYW0gZnMgPSBuZXcgRmlsZVN0 cmVhbSAoc3RySW4sIEZpbGVNb2RlLk9wZW4pKSB7Ci0JICAgIAotCQkJCVhtbFNlcmlhbGl6ZXIg eG1sU2VyID0gbmV3IFhtbFNlcmlhbGl6ZXIgKHR5cGVvZihNb25vRGV2ZWxvcC5QcmoyTWFrZS5T Y2hlbWEuQ3Nwcm9qLlZpc3VhbFN0dWRpb1Byb2plY3QpKTsKLQkJCQlNb25vRGV2ZWxvcC5Qcmoy TWFrZS5TY2hlbWEuQ3Nwcm9qLlZpc3VhbFN0dWRpb1Byb2plY3QgcHJqT2JqID0gKE1vbm9EZXZl bG9wLlByajJNYWtlLlNjaGVtYS5Dc3Byb2ouVmlzdWFsU3R1ZGlvUHJvamVjdCkgeG1sU2VyLkRl c2VyaWFsaXplIChmcyk7Ci0JCQkJZnMuQ2xvc2UoKTsKLQkJCQlyZXR1cm4gKHByak9iaik7Ci0J CQl9Ci0JCX0KLQotCQlwdWJsaWMgQ3Nwcm9qSW5mbyhib29sIGlzVW5peE1vZGUsIGJvb2wgaXNN Y3NNb2RlLCBzdHJpbmcgbmFtZSwgc3RyaW5nIGd1aWQsIHN0cmluZyBjc3Byb2pwYXRoKQotCQl7 Ci0JCQl0aGlzLm5hbWUgPSBuYW1lOwotCQkJdGhpcy5ndWlkID0gZ3VpZDsKLQkJCXRoaXMuY3Nw cm9qcGF0aCA9IGNzcHJvanBhdGg7Ci0gICAgCi0JCQltYWtlbmFtZSA9IG5hbWUuUmVwbGFjZSgn LicsJ18nKS5Ub1VwcGVyKCk7Ci0JCQltYWtlbmFtZV9leHQgPSBtYWtlbmFtZSArICJfRVhUIjsK LQkJCW1fYkFsbG93VW5zYWZlQ29kZSA9IGZhbHNlOwotICAgIAotCQkJLy8gY29udmVydCBiYWNr c2xhc2hlcyB0byBzbGFzaGVzICAgIAkJCi0JCQljc3Byb2pwYXRoID0gY3Nwcm9qcGF0aC5SZXBs YWNlKCJcXCIsICIvIik7Ci0KLQkJCS8vIGxvYWRzIHRoZSBmaWxlIGluIG9yZGVyIHRvIGRlc2Vy aWFsaXplIGFuZAotCQkJLy8gYnVpbGQgdGhlIG9iamVjdCBncmFwaAotCQkJdHJ5Ci0JCQl7Ci0J CQkJRmlsZUZvcm1hdCBmb3JtYXQgPSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5GaWxlRm9ybWF0 cy5HZXRGaWxlRm9ybWF0Rm9yRmlsZSAoY3Nwcm9qcGF0aCwgdHlwZW9mKFNvbHV0aW9uRW50aXR5 SXRlbSkpOwotCQkJCWlmIChmb3JtYXQgIT0gbnVsbCAmJiBmb3JtYXQuSWQgIT0gIlZTMjAwM1By b2plY3RGaWxlRm9ybWF0IikgewotCQkJCQlOZWVkc0NvbnZlcnNpb24gPSBmYWxzZTsKLQkJCQkJ cmV0dXJuOwotCQkJCX0KLQkJCQkKLQkJCQltX3Byb2pPYmplY3QgPSBMb2FkUHJqRnJvbUZpbGUg KGNzcHJvanBhdGgpOwotCQkJfSAKLQkJCWNhdGNoIChFeGNlcHRpb24gZXhjKSAKLQkJCXsKLQkJ CQlDb25zb2xlLldyaXRlTGluZSAoCi0JCQkJCVN0cmluZy5Gb3JtYXQgKCJDb3VsZCBub3QgbG9h ZCB0aGUgZmlsZSB7MH1cbkV4Y2VwdGlvbjogezF9IiwKLQkJCQkJY3Nwcm9qcGF0aCwKLQkJCQkJ ZXhjLlRvU3RyaW5nICgpKQotCQkJCQkpOwotCQkJCXRocm93OwotCQkJfQotCi0JCQkvLyBFc3Rh Ymxpc2ggaWYgdGhlIGFsbG93IHVuc2FmZSBjb2RlIGZsYWcgaXMgdHJ1ZQotCQkJZm9yZWFjaCAo TW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5Db25maWcgY2YgaW4gbV9wcm9qT2Jq ZWN0LkNTSEFSUC5CdWlsZC5TZXR0aW5ncy5Db25maWcpCi0JCQl7Ci0JCQkJaWYoY2YuQWxsb3dV bnNhZmVCbG9ja3MgPT0gdHJ1ZSkKLQkJCQkJbV9iQWxsb3dVbnNhZmVDb2RlID0gdHJ1ZTsKLQkJ CX0KLSAgICAJCQotCQkJc3dpdGNoIChtX3Byb2pPYmplY3QuQ1NIQVJQLkJ1aWxkLlNldHRpbmdz Lk91dHB1dFR5cGUpCi0JCQl7Ci0JCQkJY2FzZSAiTGlicmFyeSI6Ci0JCQkJCW1ha2VuYW1lX2V4 dCA9IG1ha2VuYW1lICsgIl9ETEwiOwotCQkJCQlhc3NlbWJseV9uYW1lID0gbV9wcm9qT2JqZWN0 LkNTSEFSUC5CdWlsZC5TZXR0aW5ncy5Bc3NlbWJseU5hbWUgKyAiLmRsbCI7Ci0JCQkJCXN3aXRj aGVzICs9ICIgLXRhcmdldDpsaWJyYXJ5IjsKLQkJCQkJYnJlYWs7Ci0gICAgCi0JCQkJY2FzZSAi RXhlIjoKLQkJCQkJbWFrZW5hbWVfZXh0ID0gbWFrZW5hbWUgKyAiX0VYRSI7Ci0JCQkJCWFzc2Vt Ymx5X25hbWUgPSBtX3Byb2pPYmplY3QuQ1NIQVJQLkJ1aWxkLlNldHRpbmdzLkFzc2VtYmx5TmFt ZSArICIuZXhlIjsKLQkJCQkJc3dpdGNoZXMgKz0gIiAtdGFyZ2V0OmV4ZSI7Ci0JCQkJCWJyZWFr OwotICAgIAotCQkJCWNhc2UgIldpbkV4ZSI6Ci0JCQkJCW1ha2VuYW1lX2V4dCA9IG1ha2VuYW1l ICsgIl9FWEUiOwotCQkJCQlhc3NlbWJseV9uYW1lID0gbV9wcm9qT2JqZWN0LkNTSEFSUC5CdWls ZC5TZXR0aW5ncy5Bc3NlbWJseU5hbWUgKyAiLmV4ZSI7Ci0JCQkJCXN3aXRjaGVzICs9ICIgLXRh cmdldDp3aW5leGUiOwotCQkJCQlicmVhazsKLSAgICAKLQkJCQlkZWZhdWx0OgotCQkJCQl0aHJv dyBuZXcgTm90U3VwcG9ydGVkRXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBPdXRwdXRUeXBlOiAiICsg bV9wcm9qT2JqZWN0LkNTSEFSUC5CdWlsZC5TZXR0aW5ncy5PdXRwdXRUeXBlKTsKLSAgICAJCQkK LQkJCX0KLSAgICAKLQkJCXNyYyA9ICIiOyAgICAKLQkJCXN0cmluZyBiYXNlUGF0aCA9IFBhdGgu R2V0RGlyZWN0b3J5TmFtZShjc3Byb2pwYXRoKTsKLQkJCXN0cmluZyBzOwotICAgIAotCQkJZm9y ZWFjaCAoTW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5GaWxlIGZsIGluIG1fcHJv ak9iamVjdC5DU0hBUlAuRmlsZXMuSW5jbHVkZSkKLQkJCXsKLQkJCQlpZihmbC5CdWlsZEFjdGlv biA9PSBNb25vRGV2ZWxvcC5QcmoyTWFrZS5TY2hlbWEuQ3Nwcm9qLkZpbGVCdWlsZEFjdGlvbi5D b21waWxlKQotCQkJCXsKLQkJCQkJaWYgKHNyYyAhPSAiIikKLQkJCQkJewotCQkJCQkJc3JjICs9 ICIgXFxcblx0IjsKLQkJCQkJfQotCSAgICAJCQkKLQkJCQkJcyA9IFN5c3RlbS5JTy5QYXRoLkNv bWJpbmUoYmFzZVBhdGgsIGZsLlJlbFBhdGgpOwotCQkJCQlzID0gcy5SZXBsYWNlKCJcXCIsICIv Iik7Ci0JCQkJCWlmIChTbG5NYWtlci5zbGFzaCAhPSAiLyIpCi0JCQkJCQlzID0gcy5SZXBsYWNl KCIvIiwgU2xuTWFrZXIuc2xhc2gpOwotCQotCQkJCQkvLyBUZXN0IGZvciBzcGFjZXMKLQkJCQkJ aWYgKGlzVW5peE1vZGUgPT0gZmFsc2UpIHsKLQkJCQkJCS8vIFdlIGFyZSBpbiB3aW4zMiB1c2lu ZyBhIGNtZC5leGUgb3Igb3RoZXIKLQkJCQkJCS8vIERPUyBzaGVsbAotCQkJCQkJaWYocy5JbmRl eE9mKCcgJykgPiAtMSkgewotCQkJCQkJCXNyYyArPSBTdHJpbmcuRm9ybWF0KCJcInswfVwiIiwg cyk7Ci0JCQkJCQl9IGVsc2UgewotCQkJCQkJCXNyYyArPSBzOwotCQkJCQkJfQotCQkJCQl9IGVs c2UgewotCQkJCQkJLy8gV2UgYXJlIGluICpOSVggb3Igc29tZSBvdGhlcgotCQkJCQkJLy8gR05V IGxpa2Ugc2hlbGwKLQkJCQkJCXNyYyArPSBzLlJlcGxhY2UoIiAiLCAiXFwgIik7Ci0JCQkJCX0K LQkJCQl9ICAgIAkJCQotCQkJfQotICAgIAkJCi0JCQlyZXMgPSAiIjsKLQkJCXN0cmluZyByb290 TlMgPSBtX3Byb2pPYmplY3QuQ1NIQVJQLkJ1aWxkLlNldHRpbmdzLlJvb3ROYW1lc3BhY2U7Ci0J CQlzdHJpbmcgcmVsUGF0aDsKLQkJCWZvcmVhY2ggKE1vbm9EZXZlbG9wLlByajJNYWtlLlNjaGVt YS5Dc3Byb2ouRmlsZSBmbCBpbiBtX3Byb2pPYmplY3QuQ1NIQVJQLkZpbGVzLkluY2x1ZGUpCi0J CQl7Ci0JCQkJaWYoZmwuQnVpbGRBY3Rpb24gPT0gTW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1h LkNzcHJvai5GaWxlQnVpbGRBY3Rpb24uRW1iZWRkZWRSZXNvdXJjZSkKLQkJCQl7Ci0JCQkJCWlm IChyZXMgIT0gIiIpIHsKLQkJCQkJCXJlcyArPSAiIFxcXG5cdCI7Ci0JCQkJCX0KLSAgICAJCQkK LQkJCQkJcmVsUGF0aCA9IGZsLlJlbFBhdGguUmVwbGFjZSgiXFwiLCAiLyIpOwotCQkJCQlzID0g U3lzdGVtLklPLlBhdGguQ29tYmluZShiYXNlUGF0aCwgcmVsUGF0aCk7Ci0JCQkJCXMgPSBTdHJp bmcuRm9ybWF0KCItcmVzb3VyY2U6ezB9LHsxfSIsIHMsIHJvb3ROUyArICIuIiArIHJlbFBhdGgu UmVwbGFjZSgiLyIsICIuIikpOwotCQkJCQlzID0gcy5SZXBsYWNlKCJcXCIsICIvIik7Ci0JCQkJ CWlmIChTbG5NYWtlci5zbGFzaCAhPSAiLyIpCi0JCQkJCQlzID0gcy5SZXBsYWNlKCIvIiwgU2xu TWFrZXIuc2xhc2gpOwotCQkJCQlyZXMgKz0gczsKLQkJCQl9Ci0JCQl9IAkJCi0JCX0KLQl9ICAg IAotfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9hZGRpbnMvcHJqMm1ha2Utc2hhcnAtbGliL01ha2Vm aWxlLmFtDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpAQCAtMSArMCwwIEBACi1pbmNsdWRlICQodG9wX3NyY2Rpcikv eGJ1aWxkLmluY2x1ZGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoNClJlbW92ZWQ6IG1h aW4vc3JjL2FkZGlucy9wcmoybWFrZS1zaGFycC1saWIvTXNQcmpIZWxwZXIuY3MNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCkBAIC0xLDU3OCArMCwwIEBACi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVj dGlvbnM7Ci11c2luZyBTeXN0ZW0uSU87Ci11c2luZyBTeXN0ZW0uVGV4dDsKLXVzaW5nIFN5c3Rl bS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKLXVzaW5nIFN5c3RlbS5YbWw7Ci11c2luZyBTeXN0 ZW0uWG1sLlNlcmlhbGl6YXRpb247Ci0KLXVzaW5nIE1vbm9EZXZlbG9wLlByajJNYWtlLlNjaGVt YS5Dc3Byb2o7Ci11c2luZyBNb25vRGV2ZWxvcC5Qcm9qZWN0czsKLXVzaW5nIE1vbm9EZXZlbG9w LlByb2plY3RzLlRleHQ7Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlOwotdXNpbmcgTW9ub0RldmVs b3AuSWRlLkd1aTsKLQotdXNpbmcgTW9ub0RldmVsb3AuQ29yZS5Bc3NlbWJsaWVzOwotdXNpbmcg TW9ub0RldmVsb3AuQ1NoYXJwLlByb2plY3Q7Ci0KLQotbmFtZXNwYWNlIE1vbm9EZXZlbG9wLlBy ajJNYWtlCi17Ci0JcHVibGljIGNsYXNzIFNsbk1ha2VyCi0JeyAKLQkJcHVibGljIHN0YXRpYyBz dHJpbmcgc2xhc2g7Ci0JCUhhc2h0YWJsZSBwcm9qTmFtZUluZm8gPSBuZXcgSGFzaHRhYmxlKCk7 Ci0JCUhhc2h0YWJsZSBwcm9qR3VpZEluZm8gPSBuZXcgSGFzaHRhYmxlKCk7Ci0JCXByaXZhdGUg c3RyaW5nIHByanhGaWxlTmFtZTsKLQkJcHJpdmF0ZSBzdHJpbmcgbV9zdHJTbG5WZXI7Ci0JCXBy aXZhdGUgc3RyaW5nIG1fc3RyQ3Nwcm9qVmVyOwotCQlwcml2YXRlIGJvb2wgbV9iSXNVbml4Owot CQlwcml2YXRlIGJvb2wgbV9iSXNNY3M7Ci0JCXByaXZhdGUgYm9vbCBtX2JJc1VzaW5nTGliOwot CQkKLQkJVGFyZ2V0RnJhbWV3b3JrIGZ4ID0gUnVudGltZS5TeXN0ZW1Bc3NlbWJseVNlcnZpY2Uu R2V0VGFyZ2V0RnJhbWV3b3JrIChUYXJnZXRGcmFtZXdvcmtNb25pa2VyLk5FVF8xXzEpOwotIAot CQkvLyBGbGFnIHVzZSB0byBkZXRlcm1pbmUgaWYgdGhlIExJQiB2YXJpYWJsZSB3aWxsIGJlIHVz ZWQgaW4KLQkJLy8gdGhlIE1ha2VmaWxlIHRoYXQgcHJqMm1ha2UgZ2VuZXJhdGVzCi0JCXB1Ymxp YyBib29sIElzVXNpbmdMaWIKLQkJewotCQkJZ2V0eyByZXR1cm4gbV9iSXNVc2luZ0xpYjsgfQot CQkJc2V0eyBtX2JJc1VzaW5nTGliID0gdmFsdWU7IH0KLQkJfQotCi0KLQkJLy8gRGV0ZXJtaW5l cyBpZiB0aGUgbWFrZWZpbGUgaXMgaW50ZW5kZWQgZm9yIG5tYWtlIG9yIGdtYWtlIGZvciB1cnBv c2VzIG9mIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcgotCQlwdWJsaWMgYm9vbCBJc1VuaXgKLQkJ ewotCQkJZ2V0eyByZXR1cm4gbV9iSXNVbml4OyB9Ci0JCQlzZXR7IG1fYklzVW5peCA9IHZhbHVl OyB9Ci0JCX0KLQotCQkvLyBEZXRlcm1pbmVzIGlmIHVzaW5nIE1DUyBvciBDU0MKLQkJcHVibGlj IGJvb2wgSXNNY3MKLQkJewotCQkJZ2V0eyByZXR1cm4gbV9iSXNNY3M7IH0KLQkJCXNldHsgbV9i SXNNY3MgPSB2YWx1ZTsgfQotCQl9Ci0KLQkJcHVibGljIHN0cmluZyBTbG5WZXJzaW9uCi0JCXsK LQkJCWdldCB7IHJldHVybiBtX3N0clNsblZlcjsgfQotCQkJc2V0IHsgbV9zdHJTbG5WZXIgPSB2 YWx1ZTsgfQotCQl9Ci0KLQkJcHVibGljIHN0cmluZyBDc3Byb2pWZXJzaW9uCi0JCXsKLQkJCWdl dCB7IHJldHVybiBtX3N0ckNzcHJvalZlcjsgfQotCQkJc2V0IHsgbV9zdHJDc3Byb2pWZXIgPSB2 YWx1ZTsgfQotCQl9Ci0KLQkJLy8gU2h1bGQgY29udGFpbiB0aGUgZmlsZSBuYW1lIAotCQkvLyBv ZiB0aGUgbW9zdCByZXNlbnQgcHJqeCBnZW5lcmF0aW9uCi0JCXB1YmxpYyBzdHJpbmcgUHJqeEZp bGVOYW1lIHsKLQkJCWdldCB7IHJldHVybiBwcmp4RmlsZU5hbWU7IH0KLQkJfQotCi0JCS8vIERl ZmF1bHQgY29uc3RydWN0b3IKLQkJcHVibGljIFNsbk1ha2VyKCkKLQkJewotCQkJbV9iSXNVbml4 ID0gZmFsc2U7Ci0JCQltX2JJc01jcyA9IGZhbHNlOwotCQkJbV9iSXNVc2luZ0xpYiA9IGZhbHNl OwotCQl9Ci0JCQotCQkvLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIGRldGVybWluZSB0aGUgc2xuIGZp bGUgdmVyc2lvbgotCQlwcm90ZWN0ZWQgc3RyaW5nIEdldFNsbkZpbGVWZXJzaW9uKHN0cmluZyBz dHJJblNsbkZpbGUpCi0JCXsKLQkJCXN0cmluZyBzdHJWZXJzaW9uID0gbnVsbDsKLQkJCXN0cmlu ZyBzdHJJbnB1dCA9IG51bGw7Ci0JCQlNYXRjaCBtYXRjaDsKLQkJCUZpbGVTdHJlYW0gZmlzID0g bmV3IEZpbGVTdHJlYW0oc3RySW5TbG5GaWxlLCBGaWxlTW9kZS5PcGVuLCBGaWxlQWNjZXNzLlJl YWQsIEZpbGVTaGFyZS5SZWFkKTsKLQkJCVN0cmVhbVJlYWRlciByZWFkZXIgPSBuZXcgU3RyZWFt UmVhZGVyKGZpcyk7Ci0JCQlzdHJJbnB1dCA9IHJlYWRlci5SZWFkTGluZSgpOwotCi0JCQltYXRj aCA9IFNsblZlcnNpb25SZWdleC5NYXRjaChzdHJJbnB1dCk7Ci0JCQlpZiAobWF0Y2guU3VjY2Vz cykKLQkJCXsKLQkJCQlzdHJWZXJzaW9uID0gbWF0Y2guR3JvdXBzWzFdLlZhbHVlOwotCQkJfQot CQkJCi0JCQkvLyBDbG9zZSB0aGUgc3RyZWFtCi0JCQlyZWFkZXIuQ2xvc2UoKTsKLQotCQkJLy8g Q2xvc2UgdGhlIEZpbGUgU3RyZWFtCi0JCQlmaXMuQ2xvc2UoKTsKLSAgICAKLQkJCXJldHVybiBz dHJWZXJzaW9uOwotCQl9Ci0gICAgCQotCQkvLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIGRldGVybWlu ZSB0aGUgY3Nwcm9qIGZpbGUgdmVyc2lvbgotCQlwcm90ZWN0ZWQgc3RyaW5nIEdldENzcHJvakZp bGVWZXJzaW9uKHN0cmluZyBzdHJJbkNzcHJvakZpbGUpCi0JCXsKLQkJCXN0cmluZyBzdHJSZXRW YWwgPSBudWxsOwotCQkJWG1sRG9jdW1lbnQgeG1sRG9jID0gbmV3IFhtbERvY3VtZW50KCk7Ci0K LQkJCXhtbERvYy5Mb2FkKHN0ckluQ3Nwcm9qRmlsZSk7Ci0JCQlzdHJSZXRWYWwgPSB4bWxEb2Mu U2VsZWN0U2luZ2xlTm9kZSgiL1Zpc3VhbFN0dWRpb1Byb2plY3QvQ1NIQVJQL0BQcm9kdWN0VmVy c2lvbiIpLlZhbHVlOwotCi0JCQlyZXR1cm4gc3RyUmV0VmFsOwotCQl9Ci0KLQkJcHJvdGVjdGVk IHZvaWQgUGFyc2VNc0NzUHJvaihzdHJpbmcgZm5hbWUpCi0JCXsKLQkJCXN0cmluZyBwcm9qZWN0 TmFtZSA9IFN5c3RlbS5JTy5QYXRoLkdldEZpbGVOYW1lV2l0aG91dEV4dGVuc2lvbiAoZm5hbWUp OwotCQkJc3RyaW5nIGNzcHJvalBhdGggPSBTeXN0ZW0uSU8uUGF0aC5HZXRGaWxlTmFtZSAoZm5h bWUpOwotCQkJc3RyaW5nIHByb2plY3RHdWlkID0gIiI7Ci0gICAgICAgICAgICAKLQkJCUNzcHJv akluZm8gcGkgPSBuZXcgQ3Nwcm9qSW5mbyAobV9iSXNVbml4LCBtX2JJc01jcywgcHJvamVjdE5h bWUsIHByb2plY3RHdWlkLCBjc3Byb2pQYXRoKTsKLSAgICAgICAgICAgIAotCQkJcHJvak5hbWVJ bmZvW3Byb2plY3ROYW1lXSA9IHBpOwotCQkJcHJvakd1aWRJbmZvW3Byb2plY3RHdWlkXSA9IHBp OwotCQl9Ci0gICAgCQotCQlwcm90ZWN0ZWQgdm9pZCBQYXJzZVNvbHV0aW9uKHN0cmluZyBmbmFt ZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQotCQl7Ci0JCQlGaWxlU3RyZWFtIGZpcyA9IG5l dyBGaWxlU3RyZWFtKGZuYW1lLEZpbGVNb2RlLk9wZW4sIEZpbGVBY2Nlc3MuUmVhZCwgRmlsZVNo YXJlLlJlYWQpOwotCQkJdXNpbmcgKFN0cmVhbVJlYWRlciByZWFkZXIgPSBuZXcgU3RyZWFtUmVh ZGVyKGZpcykpIHsKLQkJCQl3aGlsZSAodHJ1ZSkKLQkJCQl7Ci0JCQkJCXN0cmluZyBzID0gcmVh ZGVyLlJlYWRMaW5lKCk7Ci0JCQkJCU1hdGNoIG1hdGNoOwotCi0JCQkJCW1hdGNoID0gUHJvamVj dFJlZ2V4Lk1hdGNoKHMpOwotCQkJCQlpZiAobWF0Y2guU3VjY2VzcykKLQkJCQkJewotCQkJCQkJ c3RyaW5nIHByb2plY3ROYW1lID0gbWF0Y2guR3JvdXBzWzJdLlZhbHVlOwotCQkJCQkJc3RyaW5n IGNzcHJvalBhdGggPSBtYXRjaC5Hcm91cHNbM10uVmFsdWU7Ci0JCQkJCQlzdHJpbmcgcHJvamVj dEd1aWQgPSBtYXRjaC5Hcm91cHNbNF0uVmFsdWU7Ci0KLQkJCQkJCXRyeSB7Ci0JCQkJCQkJaWYg KGNzcHJvalBhdGguRW5kc1dpdGggKCIuY3Nwcm9qIikgJiYgIWNzcHJvalBhdGguU3RhcnRzV2l0 aCgiaHR0cDovLyIpKQotCQkJCQkJCXsKLQkJCQkJCQkJY3Nwcm9qUGF0aCA9IE1hcFBhdGggKFBh dGguR2V0RGlyZWN0b3J5TmFtZSAoZm5hbWUpLCBjc3Byb2pQYXRoKTsKLQkJCQkJCQkJQ3Nwcm9q SW5mbyBwaSA9IG5ldyBDc3Byb2pJbmZvIChtX2JJc1VuaXgsIG1fYklzTWNzLCBwcm9qZWN0TmFt ZSwgcHJvamVjdEd1aWQsIGNzcHJvalBhdGgpOwotCQkJCQkJCQlwcm9qTmFtZUluZm9bcHJvamVj dE5hbWVdID0gcGk7Ci0JCQkJCQkJCXByb2pHdWlkSW5mb1twcm9qZWN0R3VpZF0gPSBwaTsKLQkJ CQkJCQl9Ci0JCQkJCQl9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKLQkJCQkJCQlDb25zb2xlLldy aXRlTGluZSAoR2V0dGV4dENhdGFsb2cuR2V0U3RyaW5nICgiQ291bGQgbm90IGltcG9ydCBwcm9q ZWN0OiIpICsgY3Nwcm9qUGF0aCk7Ci0JCQkJCQkJQ29uc29sZS5Xcml0ZUxpbmUgKGV4LlRvU3Ry aW5nICgpKTsKLQkJCQkJCQltb25pdG9yLlJlcG9ydEVycm9yIChHZXR0ZXh0Q2F0YWxvZy5HZXRT dHJpbmcgKCJDb3VsZCBub3QgaW1wb3J0IHByb2plY3Q6IikgKyBjc3Byb2pQYXRoLCBleCk7Ci0J CQkJCQkJdGhyb3c7Ci0JCQkJCQl9Ci0JCQkJCX0KLQotCQkJCQlpZiAocy5TdGFydHNXaXRoKCJH bG9iYWwiKSkKLQkJCQkJewotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9Ci0JCX0K LSAgICAKLQkJcHVibGljIFNvbHV0aW9uRW50aXR5SXRlbSBDcmVhdGVQcmp4RnJvbUNzcHJvaiAo c3RyaW5nIGNzcHJvakZpbGVOYW1lLCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCi0JCXsKLQkJ CXRyeSB7Ci0JCQkJRmlsZUZvcm1hdCBmb3JtYXQgPSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5G aWxlRm9ybWF0cy5HZXRGaWxlRm9ybWF0Rm9yRmlsZSAoY3Nwcm9qRmlsZU5hbWUsIHR5cGVvZihT b2x1dGlvbkVudGl0eUl0ZW0pKTsKLQkJCQlpZiAoZm9ybWF0ICE9IG51bGwgJiYgZm9ybWF0Lklk ICE9ICJWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdCIpCi0JCQkJCXJldHVybiAoU29sdXRpb25FbnRp dHlJdGVtKSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5SZWFkU29sdXRpb25JdGVtIChtb25pdG9y LCBjc3Byb2pGaWxlTmFtZSk7Ci0JCQkJCi0JCQkJTW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1h LkNzcHJvai5WaXN1YWxTdHVkaW9Qcm9qZWN0IGNzcHJvak9iaiA9IG51bGw7Ci0JCQkJCi0JCQkJ bW9uaXRvci5CZWdpblRhc2sgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIkltcG9ydGluZyBw cm9qZWN0OiAiKSArIGNzcHJvakZpbGVOYW1lLCA0KTsKLQkJCQkKLQkJCQlEb3ROZXRBc3NlbWJs eVByb2plY3QgcHJqeE9iaiA9IG5ldyBEb3ROZXRBc3NlbWJseVByb2plY3QgKCJDIyIsIG51bGws IG51bGwpOwotCQkJCQotCQkJCXByanhGaWxlTmFtZSA9IFN0cmluZy5Gb3JtYXQgKCJ7MH0ubWRw IiwKLQkJCQkJUGF0aC5Db21iaW5lIChQYXRoLkdldERpcmVjdG9yeU5hbWUgKGNzcHJvakZpbGVO YW1lKSwKLQkJCQkJUGF0aC5HZXRGaWxlTmFtZVdpdGhvdXRFeHRlbnNpb24gKGNzcHJvakZpbGVO YW1lKSkKLQkJCQkJKTsKLQotCQkJCS8vIExvYWQgdGhlIGNzcHJvagotCQkJCXVzaW5nIChUZXh0 RmlsZVJlYWRlciBmc0luID0gbmV3IFRleHRGaWxlUmVhZGVyIChjc3Byb2pGaWxlTmFtZSkpIHsK LQkJCQkJWG1sU2VyaWFsaXplciB4bWxEZVNlciA9IG5ldyBYbWxTZXJpYWxpemVyICh0eXBlb2Yo VmlzdWFsU3R1ZGlvUHJvamVjdCkpOwotCQkJCQljc3Byb2pPYmogPSAoVmlzdWFsU3R1ZGlvUHJv amVjdCkgeG1sRGVTZXIuRGVzZXJpYWxpemUgKGZzSW4pOwotCQkJCX0KLQkJCQkKLQkJCQltb25p dG9yLlN0ZXAgKDEpOwotCi0JCQkJLy8gQmVnaW4gcHJqeE9iaiBwb3B1bGF0aW9uCi0JCQkJcHJq eE9iai5GaWxlTmFtZSA9IHByanhGaWxlTmFtZTsKLQkJCQlwcmp4T2JqLk5hbWUgPSBQYXRoLkdl dEZpbGVOYW1lV2l0aG91dEV4dGVuc2lvbihjc3Byb2pGaWxlTmFtZSk7Ci0JCQkJcHJqeE9iai5E ZXNjcmlwdGlvbiA9ICIiOwotCQkJCXByanhPYmouTmV3RmlsZVNlYXJjaCA9IE5ld0ZpbGVTZWFy Y2guTm9uZTsKLQkJCQlwcmp4T2JqLkRlZmF1bHROYW1lc3BhY2UgPSBjc3Byb2pPYmouQ1NIQVJQ LkJ1aWxkLlNldHRpbmdzLlJvb3ROYW1lc3BhY2U7Ci0KLQkJCQlHZXRDb250ZW50cyAocHJqeE9i aiwgY3Nwcm9qT2JqLkNTSEFSUC5GaWxlcy5JbmNsdWRlLCBwcmp4T2JqLkZpbGVzLCBtb25pdG9y KTsKLQkJCQltb25pdG9yLlN0ZXAgKDEpOwotCQkJCQotCQkJCUdldFJlZmVyZW5jZXMgKHByanhP YmosIGNzcHJvak9iai5DU0hBUlAuQnVpbGQuUmVmZXJlbmNlcywgcHJqeE9iai5SZWZlcmVuY2Vz LCBtb25pdG9yKTsKLQkJCQltb25pdG9yLlN0ZXAgKDEpOwotCQkJCQotCQkJCXByanhPYmouQ29u ZmlndXJhdGlvbnMuQ2xlYXIgKCk7Ci0JCQkJZm9yZWFjaCAoQ29uZmlnIGNibG9jayBpbiBjc3By b2pPYmouQ1NIQVJQLkJ1aWxkLlNldHRpbmdzLkNvbmZpZykKLQkJCQl7Ci0JCQkJCXByanhPYmou Q29uZmlndXJhdGlvbnMuQWRkIChDcmVhdGVDb25maWd1cmF0aW9uQmxvY2sgKAotCQkJCQkJcHJq eE9iaiwKLQkJCQkJCWNibG9jaywKLQkJCQkJCWNzcHJvak9iai5DU0hBUlAuQnVpbGQuU2V0dGlu Z3MuQXNzZW1ibHlOYW1lLAotCQkJCQkJY3Nwcm9qT2JqLkNTSEFSUC5CdWlsZC5TZXR0aW5ncy5P dXRwdXRUeXBlLAotCQkJCQkJbW9uaXRvcgotCQkJCQkJKSk7Ci0JCQkJfQotCQkJCW1vbml0b3Iu U3RlcCAoMSk7Ci0JCQkJcmV0dXJuIHByanhPYmo7Ci0KLQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBl eCkgewotCQkJCW1vbml0b3IuUmVwb3J0RXJyb3IgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAo IkNvdWxkIG5vdCBpbXBvcnQgcHJvamVjdDoiKSArIGNzcHJvakZpbGVOYW1lLCBleCk7Ci0JCQkJ dGhyb3c7Ci0JCQl9IGZpbmFsbHkgewotCQkJCW1vbml0b3IuRW5kVGFzayAoKTsKLQkJCX0KLQkJ fQotCi0JCXB1YmxpYyBTb2x1dGlvbiBNc1NsblRvQ21ieEhlbHBlciAoc3RyaW5nIHNsbkZpbGVO YW1lLCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCi0JCXsKLQkJCVNvbHV0aW9uIHNvbHV0aW9u ID0gbmV3IFNvbHV0aW9uKCk7Ci0JCQkKLQkJCW1vbml0b3IuQmVnaW5UYXNrIChHZXR0ZXh0Q2F0 YWxvZy5HZXRTdHJpbmcgKCJJbXBvcnRpbmcgc29sdXRpb24iKSwgMik7Ci0JCQl0cnkKLQkJCXsK LQkJCQkvLyBXZSBpbnZva2UgdGhlIFBhcnNlU29sdXRpb24gCi0JCQkJLy8gYnkgcGFzc2luZyB0 aGUgZmlsZSBvYnRhaW5lZAotCQkJCVBhcnNlU29sdXRpb24gKHNsbkZpbGVOYW1lLCBtb25pdG9y KTsKLQotCQkJCS8vIENyZWF0ZSBhbGwgb2YgdGhlIHByanggZmlsZXMgZm9ybSB0aGUgY3Nwcm9q IGZpbGVzCi0JCQkJbW9uaXRvci5CZWdpblRhc2sgKG51bGwsIHByb2pOYW1lSW5mby5WYWx1ZXMu Q291bnQgKiAyKTsKLQkJCQkKLQkJCQlmb3JlYWNoIChDc3Byb2pJbmZvIHBpIGluIHByb2pOYW1l SW5mby5WYWx1ZXMpIHsKLQkJCQkJc3RyaW5nIG1hcHBlZFBhdGggPSBNYXBQYXRoIChQYXRoLkdl dERpcmVjdG9yeU5hbWUgKHNsbkZpbGVOYW1lKSwgcGkuY3Nwcm9qcGF0aCk7Ci0JCQkJCWlmICht YXBwZWRQYXRoID09IG51bGwpIHsKLQkJCQkJCW1vbml0b3IuU3RlcCAoMik7Ci0JCQkJCQltb25p dG9yLlJlcG9ydFdhcm5pbmcgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIlByb2plY3QgZmls ZSBub3QgZm91bmQ6ICIpICsgcGkuY3Nwcm9qcGF0aCk7Ci0JCQkJCQljb250aW51ZTsKLQkJCQkJ fQotCQkJCQlTb2x1dGlvbkVudGl0eUl0ZW0gcHJqOwotCQkJCQlpZiAocGkuTmVlZHNDb252ZXJz aW9uKQotCQkJCQkJcHJqID0gQ3JlYXRlUHJqeEZyb21Dc3Byb2ogKG1hcHBlZFBhdGgsIG1vbml0 b3IpOwotCQkJCQllbHNlCi0JCQkJCQlwcmogPSAoRG90TmV0UHJvamVjdCkgU2VydmljZXMuUHJv amVjdFNlcnZpY2UuUmVhZFNvbHV0aW9uSXRlbSAobW9uaXRvciwgbWFwcGVkUGF0aCk7Ci0JCQkJ CQotCQkJCQlpZiAocHJqID09IG51bGwpCi0JCQkJCQlyZXR1cm4gbnVsbDsKLQotCQkJCQltb25p dG9yLlN0ZXAgKDEpOwotCQkJCQlzb2x1dGlvbi5Sb290Rm9sZGVyLkl0ZW1zLkFkZCAocHJqKTsK LQkJCQkJZm9yZWFjaCAoSXRlbUNvbmZpZ3VyYXRpb24gY29uZiBpbiBwcmouQ29uZmlndXJhdGlv bnMpIHsKLQkJCQkJCWlmICghc29sdXRpb24uR2V0Q29uZmlndXJhdGlvbnMgKCkuQ29udGFpbnMg KGNvbmYuSWQpKQotCQkJCQkJCXNvbHV0aW9uLkFkZENvbmZpZ3VyYXRpb24gKGNvbmYuSWQsIGZh bHNlKTsKLQkJCQkJfQotCQkJCQltb25pdG9yLlN0ZXAgKDEpOwotCQkJCX0KLQkJCQkKLQkJCQlt b25pdG9yLkVuZFRhc2sgKCk7Ci0JCQkJbW9uaXRvci5TdGVwICgxKTsKLQotCQkJCXNvbHV0aW9u LlNldExvY2F0aW9uIChQYXRoLkdldERpcmVjdG9yeU5hbWUgKHNsbkZpbGVOYW1lKSwgUGF0aC5H ZXRGaWxlTmFtZVdpdGhvdXRFeHRlbnNpb24oc2xuRmlsZU5hbWUpKTsKLQkJCQkKLQkJCQltb25p dG9yLlN0ZXAgKDEpOwotCQkJCXJldHVybiBzb2x1dGlvbjsKLQkJCX0KLQkJCWNhdGNoIChFeGNl cHRpb24gZSkKLQkJCXsKLQkJCQltb25pdG9yLlJlcG9ydEVycm9yIChHZXR0ZXh0Q2F0YWxvZy5H ZXRTdHJpbmcgKCJUaGUgc29sdXRpb24gY291bGQgbm90IGJlIGltcG9ydGVkLiIpLCBlKTsKLQkJ CQl0aHJvdzsKLQkJCX0KLQkJCWZpbmFsbHkKLQkJCXsKLQkJCQltb25pdG9yLkVuZFRhc2sgKCk7 Ci0JCQl9Ci0JCX0KLQkJCi0JCXByb3RlY3RlZCB2b2lkIEdldFJlZmVyZW5jZXMgKFByb2plY3Qg cHJvamVjdCwgTW9ub0RldmVsb3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5SZWZlcmVuY2VbXSBS ZWZlcmVuY2VzLCBQcm9qZWN0UmVmZXJlbmNlQ29sbGVjdGlvbiByZWZlcmVuY2VzLCBJUHJvZ3Jl c3NNb25pdG9yIG1vbml0b3IpCi0JCXsKLQkJCWlmIChSZWZlcmVuY2VzID09IG51bGwgfHwgUmVm ZXJlbmNlcy5MZW5ndGggPT0gMCkKLQkJCQlyZXR1cm47Ci0JCQkKLQkJCW1vbml0b3IuQmVnaW5U YXNrIChudWxsLCA1ICsgUmVmZXJlbmNlcy5MZW5ndGgpOwotCQkJICAgICAgICAgICAgICAgICAg ICAgIAotCQkJdHJ5IHsKLQkJCQkvLyBHZXQgdGhlIEdBQyBwYXRoCi0JCQkJc3RyaW5nIHN0ckJh c2VQYXRoTW9ubzFfMCA9IEdldFBhY2thZ2VEaXJlY3RvcnkgKCJtb25vIiwgIm1vbm8vMS4wIik7 Ci0JCQkJCi0JCQkJbW9uaXRvci5TdGVwICgxKTsKLQotCQkJCXN0cmluZyBzdHJCYXNlUGF0aEd0 a1NoYXJwID0gR2V0UGFja2FnZURpcmVjdG9yeSAoImd0ay1zaGFycCIsICJtb25vL2d0ay1zaGFy cCIpOwotCQkJCQotCQkJCW1vbml0b3IuU3RlcCAoMSk7Ci0KLQkJCQlzdHJpbmcgc3RyQmFzZVBh dGhHdGtTaGFycDJfMCA9IEdldFBhY2thZ2VEaXJlY3RvcnkgKCJndGstc2hhcnAtMi4wIiwgIm1v bm8vZ3RrLXNoYXJwLTIuMCIpOwotCQkJCQotCQkJCW1vbml0b3IuU3RlcCAoMSk7Ci0KLQkJCQlz dHJpbmcgc3RyQmFzZVBhdGhHZWNrb1NoYXJwID0gR2V0UGFja2FnZURpcmVjdG9yeSAoImdlY2tv LXNoYXJwIiwgIm1vbm8vZ2Vja28tc2hhcnAiKTsKLQkJCQkKLQkJCQltb25pdG9yLlN0ZXAgKDEp OwotCi0JCQkJc3RyaW5nIHN0ckJhc2VQYXRoR2Vja29TaGFycDJfMCA9IEdldFBhY2thZ2VEaXJl Y3RvcnkgKCJnZWNrby1zaGFycC0yLjAiLCAibW9uby9nZWNrby1zaGFycC0yLjAiKTsKLQkJCQkK LQkJCQlzdHJpbmdbXSBtb25vTGlicyA9IG5ldyBzdHJpbmcgW10gewotCQkJCQlzdHJCYXNlUGF0 aE1vbm8xXzAsCi0JCQkJCXN0ckJhc2VQYXRoR3RrU2hhcnAyXzAsCi0JCQkJCXN0ckJhc2VQYXRo R3RrU2hhcnAsCi0JCQkJCXN0ckJhc2VQYXRoR2Vja29TaGFycDJfMCwKLQkJCQkJc3RyQmFzZVBh dGhHZWNrb1NoYXJwCi0JCQkJfTsKLQotCQkJCS8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgcmVmZXJl bmNlIGNvbGxlY3Rpb24gb2YgdGhlIGNzcHJvaiBmaWxlCi0JCQkJZm9yZWFjaCAoTW9ub0RldmVs b3AuUHJqMk1ha2UuU2NoZW1hLkNzcHJvai5SZWZlcmVuY2UgcmYgaW4gUmVmZXJlbmNlcykKLQkJ CQl7Ci0JCQkJCW1vbml0b3IuU3RlcCAoMSk7Ci0JCQkJCQotCQkJCQlQcm9qZWN0UmVmZXJlbmNl IHJmT3V0ID0gbnVsbDsKLQkJCQkJCi0JCQkJCWlmIChyZi5QYWNrYWdlICE9IG51bGwgJiYgcmYu UGFja2FnZS5MZW5ndGggIT0gMCkKLQkJCQkJewotCQkJCQkJcmZPdXQgPSBuZXcgUHJvamVjdFJl ZmVyZW5jZSAoTW9ub0RldmVsb3AuUHJvamVjdHMuUmVmZXJlbmNlVHlwZS5Qcm9qZWN0LCBQYXRo LkdldEZpbGVOYW1lIChyZi5OYW1lKSk7Ci0JCQkJCQlyZk91dC5Mb2NhbENvcHkgPSB0cnVlOwot CQkJCQkJcmVmZXJlbmNlcy5BZGQgKHJmT3V0KTsKLQkJCQkJfQotCQkJCQllbHNlIGlmIChyZi5B c3NlbWJseU5hbWUgIT0gbnVsbCkKLQkJCQkJewotCQkJCQkJc3RyaW5nIHJuYW1lID0gcmYuQXNz ZW1ibHlOYW1lOwotCQkJCQkJaWYgKHJuYW1lID09ICJTeXN0ZW0uWE1MIikKLQkJCQkJCQlybmFt ZSA9ICJTeXN0ZW0uWG1sIjsKLQkJCQkJCQotCQkJCQkJc3RyaW5nIG9yZWYgPSBSdW50aW1lLlN5 c3RlbUFzc2VtYmx5U2VydmljZS5EZWZhdWx0QXNzZW1ibHlDb250ZXh0LkdldEFzc2VtYmx5RnVs bE5hbWUgKHJuYW1lLCBmeCk7Ci0JCQkJCQlpZiAob3JlZiA9PSBudWxsKSB7Ci0JCQkJCQkJaWYg KHJmLkhpbnRQYXRoICE9IG51bGwpIHsKLQkJCQkJCQkJc3RyaW5nIGFzbSA9IE1hcFBhdGggKHBy b2plY3QuSXRlbURpcmVjdG9yeSwgcmYuSGludFBhdGgpOwotCQkJCQkJCQlpZiAoIVN5c3RlbS5J Ty5GaWxlLkV4aXN0cyAoYXNtKSkKLQkJCQkJCQkJCW1vbml0b3IuUmVwb3J0V2FybmluZyAoR2V0 dGV4dENhdGFsb2cuR2V0U3RyaW5nICgiUmVmZXJlbmNlZCBhc3NlbWJseSBub3QgZm91bmQ6ICIp ICsgYXNtKTsKLQkJCQkJCQkJUHJvamVjdFJlZmVyZW5jZSBhcmVmID0gbmV3IFByb2plY3RSZWZl cmVuY2UgKE1vbm9EZXZlbG9wLlByb2plY3RzLlJlZmVyZW5jZVR5cGUuQXNzZW1ibHksIGFzbSk7 Ci0JCQkJCQkJCXJlZmVyZW5jZXMuQWRkIChhcmVmKTsKLQkJCQkJCQkJY29udGludWU7Ci0JCQkJ CQkJfQotCQkJCQkJCW1vbml0b3IuUmVwb3J0V2FybmluZyAoR2V0dGV4dENhdGFsb2cuR2V0U3Ry aW5nICgiQXNzZW1ibHkgcmVmZXJlbmNlIGNvdWxkIG5vdCBiZSBpbXBvcnRlZDogIikgKyByZi5B c3NlbWJseU5hbWUpOwotCQkJCQkJCWNvbnRpbnVlOwotCQkJCQkJfQotCQkJCQkJcmZPdXQgPSBu ZXcgUHJvamVjdFJlZmVyZW5jZSAoTW9ub0RldmVsb3AuUHJvamVjdHMuUmVmZXJlbmNlVHlwZS5Q YWNrYWdlLCBvcmVmKTsKLQkJCQkJCXJmT3V0LkxvY2FsQ29weSA9IHRydWU7Ci0JCQkJCQlyZWZl cmVuY2VzLkFkZCAocmZPdXQpOwotCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKHJmLkhpbnRQYXRoICE9 IG51bGwpCi0JCQkJCXsKLQkJCQkJCS8vIEhBQ0sgLSB1bmRlciBVbml4IGZpbGVuYW1lcyBhcmUg Y2FzZSBzZW5zaXRpdmUKLQkJCQkJCS8vIFVuZGVyIFdpbmRvd3MgdGhlcmUncyBubyBhZ3JlZW1l bnQgb24gWG1sIHZzIFhNTCA7LSkgICAgCQkJCQkKLQkJCQkJCWlmIChQYXRoLkdldEZpbGVOYW1l IChyZi5IaW50UGF0aCkgPT0gIlN5c3RlbS5YTUwuZGxsIikKLQkJCQkJCXsKLQkJCQkJCQlQcm9q ZWN0UmVmZXJlbmNlIHByZWYgPSBHZXRNb25vUmVmZXJlY2UgKHN0ckJhc2VQYXRoTW9ubzFfMCwg IlN5c3RlbS5YbWwuZGxsIik7Ci0JCQkJCQkJaWYgKHByZWYgIT0gbnVsbCkgewotCQkJCQkJCQly ZWZlcmVuY2VzLkFkZCAocHJlZik7Ci0JCQkJCQkJCWNvbnRpbnVlOwotCQkJCQkJCX0KLQkJCQkJ CX0gZWxzZSB7Ci0JCQkJCQkJZm9yZWFjaCAoc3RyaW5nIGxpYkRpciBpbiBtb25vTGlicykgewot CQkJCQkJCQlpZiAobGliRGlyID09IG51bGwpIGNvbnRpbnVlOwotCQkJCQkJCQlpZiAocmYuSGlu dFBhdGggPT0gbnVsbCkKLQkJCQkJCQkJCWNvbnRpbnVlOwotCQkJCQkJCQlyZk91dCA9IEdldE1v bm9SZWZlcmVjZSAobGliRGlyLCByZi5IaW50UGF0aCk7Ci0JCQkJCQkJCWlmIChyZk91dCAhPSBu dWxsKQotCQkJCQkJCQkJYnJlYWs7Ci0JCQkJCQkJfQotCQkJCQkJCQotCQkJCQkJCWlmIChyZk91 dCA9PSBudWxsKSB7Ci0JCQkJCQkJCXJmT3V0ID0gbmV3IFByb2plY3RSZWZlcmVuY2UgKE1vbm9E ZXZlbG9wLlByb2plY3RzLlJlZmVyZW5jZVR5cGUuUGFja2FnZSwgUGF0aC5HZXRGaWxlTmFtZSAo cmYuSGludFBhdGgpKTsKLQkJCQkJCQkJcmZPdXQuTG9jYWxDb3B5ID0gdHJ1ZTsKLQkJCQkJCQl9 Ci0JCQkJCQkJcmVmZXJlbmNlcy5BZGQgKHJmT3V0KTsKLQkJCQkJCX0KLQkJCQkJfQotCQkJCQll bHNlIHsKLQkJCQkJCW1vbml0b3IuUmVwb3J0V2FybmluZyAoR2V0dGV4dENhdGFsb2cuR2V0U3Ry aW5nICgiQXNzZW1ibHkgcmVmZXJlbmNlIGNvdWxkIG5vdCBiZSBpbXBvcnRlZDogIikgKyByZi5O YW1lKTsKLQkJCQkJfQotCQkJCX0KLQkJCX0gZmluYWxseSB7Ci0JCQkJbW9uaXRvci5FbmRUYXNr ICgpOwotCQkJfQotCQl9Ci0JCQotCQlzdHJpbmcgR2V0UGFja2FnZURpcmVjdG9yeSAoc3RyaW5n IHBhY2thZ2UsIHN0cmluZyBzdWJkaXIpCi0JCXsKLQkJCXN0cmluZyBkaXIgPSBNb25vRGV2ZWxv cC5QcmoyTWFrZS5Qa2dDb25maWdJbnZva2VyLkdldFBrZ1ZhcmlhYmxlVmFsdWUgKHBhY2thZ2Us ICJsaWJkaXIiKTsKLQkJCXJldHVybiBkaXIgIT0gbnVsbCA/IFBhdGguQ29tYmluZSAoZGlyLlRy aW1FbmQoKSwgc3ViZGlyKSA6IG51bGw7Ci0JCX0KLQotCQlQcm9qZWN0UmVmZXJlbmNlIEdldE1v bm9SZWZlcmVjZSAoc3RyaW5nIGxpYlBhdGgsIHN0cmluZyByZWZlcmVuY2UpCi0JCXsKLQkJCXN0 cmluZyBzdHJSZWZGaWxlTmFtZSA9IFBhdGguQ29tYmluZSAobGliUGF0aCwgUGF0aC5HZXRGaWxl TmFtZSAocmVmZXJlbmNlKSk7Ci0KLQkJCS8vIFRlc3QgdG8gc2VlIGlmIGZpbGUgZXhpc3QgaW4g R0FDIGxvY2F0aW9uCi0JCQlpZiAoU3lzdGVtLklPLkZpbGUuRXhpc3RzIChzdHJSZWZGaWxlTmFt ZSkpIHsKLQkJCQlQcm9qZWN0UmVmZXJlbmNlIHJmT3V0ID0gbmV3IFByb2plY3RSZWZlcmVuY2Ug KE1vbm9EZXZlbG9wLlByb2plY3RzLlJlZmVyZW5jZVR5cGUuUGFja2FnZSwgUnVudGltZS5TeXN0 ZW1Bc3NlbWJseVNlcnZpY2UuRGVmYXVsdEFzc2VtYmx5Q29udGV4dC5HZXRBc3NlbWJseUZ1bGxO YW1lIChzdHJSZWZGaWxlTmFtZSwgZngpKTsKLQkJCQlyZk91dC5Mb2NhbENvcHkgPSB0cnVlOwot CQkJCXJldHVybiByZk91dDsKLQkJCX0KLQkJCXJldHVybiBudWxsOwotCQl9Ci0JCQotCQlwcm90 ZWN0ZWQgdm9pZCBHZXRDb250ZW50cyAoTW9ub0RldmVsb3AuUHJvamVjdHMuUHJvamVjdCBwcm9q ZWN0LCBNb25vRGV2ZWxvcC5QcmoyTWFrZS5TY2hlbWEuQ3Nwcm9qLkZpbGVbXSBJbmNsdWRlLCBQ cm9qZWN0RmlsZUNvbGxlY3Rpb24gZmlsZXMsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikKLQkJ ewotCQkJaWYgKEluY2x1ZGUgPT0gbnVsbCB8fCBJbmNsdWRlLkxlbmd0aCA9PSAwKQotCQkJCXJl dHVybjsKLQotCQkJLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBmaWxlIGNvbGxlY3Rpb24gb2YgdGhl IGNzcHJvaiBmaWxlCi0JCQlmb3JlYWNoKE1vbm9EZXZlbG9wLlByajJNYWtlLlNjaGVtYS5Dc3By b2ouRmlsZSBmbCBpbiBJbmNsdWRlKQotCQkJewotCQkJCVByb2plY3RGaWxlIGZsT3V0ID0gbmV3 IFByb2plY3RGaWxlICgpOwotCQkJCQotCQkJCXN0cmluZyBuYW1lOwotCQkJCWlmICgoZmwuTGlu ayA9PSBudWxsKSB8fCAoZmwuTGluay5MZW5ndGggPT0gMCkpIHsKLQkJCQkJbmFtZSA9IE1hcFBh dGggKHByb2plY3QuQmFzZURpcmVjdG9yeSwgZmwuUmVsUGF0aCk7Ci0JCQkJfSBlbHNlIHsKLQkJ CQkJbmFtZSA9IE1hcFBhdGggKG51bGwsIGZsLkxpbmspOwotCQkJCX0KLQkJCQkKLQkJCQlpZiAo bmFtZSA9PSBudWxsKSB7Ci0JCQkJCW1vbml0b3IuUmVwb3J0V2FybmluZyAoR2V0dGV4dENhdGFs b2cuR2V0U3RyaW5nICgiQ2FuJ3QgaW1wb3J0IGZpbGU6ICIpICsgZmwuUmVsUGF0aCk7Ci0JCQkJ CWNvbnRpbnVlOwotCQkJCX0KLQkJCQlmbE91dC5OYW1lID0gbmFtZTsKLQkJCQkvLyBBZGRpbmcg aGVyZSBhcyBHZXREZWZhdWx0UmVzb3VyY2VJZEludGVybmFsIG5lZWRzIGZsT3V0LlByb2plY3QK LQkJCQlmaWxlcy5BZGQgKGZsT3V0KTsKLQkJCQkKLQkJCQlzd2l0Y2ggKGZsLlN1YlR5cGUpCi0J CQkJewotCQkJCQljYXNlICJDb2RlIjoKLQkJCQkJCWZsT3V0LlN1YnR5cGUgPSBTdWJ0eXBlLkNv ZGU7Ci0JCQkJCQlicmVhazsKLQkJCQl9Ci0KLQkJCQlzd2l0Y2ggKGZsLkJ1aWxkQWN0aW9uKQot CQkJCXsKLQkJCQkJY2FzZSBNb25vRGV2ZWxvcC5QcmoyTWFrZS5TY2hlbWEuQ3Nwcm9qLkZpbGVC dWlsZEFjdGlvbi5Db21waWxlOgotCQkJCQkJZmxPdXQuQnVpbGRBY3Rpb24gPSBCdWlsZEFjdGlv bi5Db21waWxlOwotCQkJCQkJYnJlYWs7Ci0JCQkJCWNhc2UgTW9ub0RldmVsb3AuUHJqMk1ha2Uu U2NoZW1hLkNzcHJvai5GaWxlQnVpbGRBY3Rpb24uQ29udGVudDoKLQkJCQkJCWZsT3V0LkJ1aWxk QWN0aW9uID0gQnVpbGRBY3Rpb24uQ29udGVudDsKLQkJCQkJCWJyZWFrOwotCQkJCQljYXNlIE1v bm9EZXZlbG9wLlByajJNYWtlLlNjaGVtYS5Dc3Byb2ouRmlsZUJ1aWxkQWN0aW9uLkVtYmVkZGVk UmVzb3VyY2U6Ci0JCQkJCQlmbE91dC5CdWlsZEFjdGlvbiA9IEJ1aWxkQWN0aW9uLkVtYmVkZGVk UmVzb3VyY2U7Ci0JCQkJCQlicmVhazsKLQkJCQkJY2FzZSBNb25vRGV2ZWxvcC5QcmoyTWFrZS5T Y2hlbWEuQ3Nwcm9qLkZpbGVCdWlsZEFjdGlvbi5Ob25lOgotCQkJCQkJZmxPdXQuQnVpbGRBY3Rp b24gPSBCdWlsZEFjdGlvbi5Ob25lOwotCQkJCQkJYnJlYWs7CQkJCQotCQkJCX0KLQkJCQkvLyBE ZXBlbmRlbnRVcG9uIGlzIHJlbGF0aXZlIHRvIGZsT3V0Ci0JCQkJZmxPdXQuRGVwZW5kc09uID0g TWFwUGF0aCAoUGF0aC5HZXREaXJlY3RvcnlOYW1lIChmbE91dC5OYW1lKSwgZmwuRGVwZW5kZW50 VXBvbik7Ci0JCQkJZmxPdXQuRGF0YSA9ICIiOwotCQkJfQotCQl9Ci0KLQkJcHJvdGVjdGVkIFNv bHV0aW9uSXRlbUNvbmZpZ3VyYXRpb24gQ3JlYXRlQ29uZmlndXJhdGlvbkJsb2NrIChNb25vRGV2 ZWxvcC5Qcm9qZWN0cy5Eb3ROZXRQcm9qZWN0IHByb2plY3QsIENvbmZpZyBDb25maWdCbG9jaywg c3RyaW5nIEFzc2VtYmx5TmFtZSwgc3RyaW5nIE91cHV0VHlwZSwgSVByb2dyZXNzTW9uaXRvciBt b25pdG9yKQotCQl7Ci0JCQlEb3ROZXRQcm9qZWN0Q29uZmlndXJhdGlvbiBjb25mT2JqID0gcHJv amVjdC5DcmVhdGVDb25maWd1cmF0aW9uIChDb25maWdCbG9jay5OYW1lKSBhcyBEb3ROZXRQcm9q ZWN0Q29uZmlndXJhdGlvbjsKLQotCQkJY29uZk9iai5SdW5XaXRoV2FybmluZ3MgPSBmYWxzZTsK LQkJCWNvbmZPYmouRGVidWdNb2RlID0gQ29uZmlnQmxvY2suRGVidWdTeW1ib2xzOwotCQkJcHJv amVjdC5Db21waWxlVGFyZ2V0ID0gKENvbXBpbGVUYXJnZXQpIEVudW0uUGFyc2UgKHR5cGVvZihD b21waWxlVGFyZ2V0KSwgT3VwdXRUeXBlLCB0cnVlKTsKLQkJCQotCQkJc3RyaW5nIGRpciA9IE1h cFBhdGggKHByb2plY3QuQmFzZURpcmVjdG9yeSwgQ29uZmlnQmxvY2suT3V0cHV0UGF0aCk7Ci0J CQlpZiAoZGlyID09IG51bGwpIHsKLQkJCQlkaXIgPSBQYXRoLkNvbWJpbmUgKCJiaW4iLCBDb25m aWdCbG9jay5OYW1lKTsKLQkJCQltb25pdG9yLlJlcG9ydFdhcm5pbmcgKHN0cmluZy5Gb3JtYXQg KEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIk91dHB1dCBkaXJlY3RvcnkgJ3swfScgY2FuJ3Qg YmUgbWFwcGVkIHRvIGEgbG9jYWwgZGlyZWN0b3J5LiBUaGUgZGlyZWN0b3J5ICd7MX0nIHdpbGwg YmUgdXNlZCBpbnN0ZWFkIiksIENvbmZpZ0Jsb2NrLk91dHB1dFBhdGgsIGRpcikpOwotCQkJfQot CQkJY29uZk9iai5PdXRwdXREaXJlY3RvcnkgPSBkaXI7Ci0JCQljb25mT2JqLk91dHB1dEFzc2Vt Ymx5ID0gQXNzZW1ibHlOYW1lOwotCQkJCi0JCQlDU2hhcnBDb21waWxlclBhcmFtZXRlcnMgY29t cGlsZXJQYXJhbXMgPSBuZXcgQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzICgpOwotCQkJY29tcGls ZXJQYXJhbXMuV2FybmluZ0xldmVsID0gQ29uZmlnQmxvY2suV2FybmluZ0xldmVsOwotCQkJY29t cGlsZXJQYXJhbXMuTm9XYXJuaW5ncyA9ICIiOwotCQkJY29tcGlsZXJQYXJhbXMuT3B0aW1pemUg PSBDb25maWdCbG9jay5PcHRpbWl6ZTsKLQkJCWNvbXBpbGVyUGFyYW1zLkRlZmluZVN5bWJvbHMg PSBDb25maWdCbG9jay5EZWZpbmVDb25zdGFudHM7Ci0JCQljb21waWxlclBhcmFtcy5VbnNhZmVD b2RlID0gQ29uZmlnQmxvY2suQWxsb3dVbnNhZmVCbG9ja3M7IAotCQkJY29tcGlsZXJQYXJhbXMu R2VuZXJhdGVPdmVyZmxvd0NoZWNrcyA9IENvbmZpZ0Jsb2NrLkNoZWNrRm9yT3ZlcmZsb3dVbmRl cmZsb3c7Ci0JCQkKLQkJCXJldHVybiBjb25mT2JqOwotCQl9Ci0JCQotCQlpbnRlcm5hbCBzdGF0 aWMgc3RyaW5nIE1hcFBhdGggKHN0cmluZyBiYXNlUGF0aCwgc3RyaW5nIHJlbFBhdGgpCi0JCXsK LQkJCWlmIChyZWxQYXRoID09IG51bGwgfHwgcmVsUGF0aC5MZW5ndGggPT0gMCkKLQkJCQlyZXR1 cm4gbnVsbDsKLQkJCQotCQkJc3RyaW5nIHBhdGggPSByZWxQYXRoOwotCQkJaWYgKFBhdGguRGly ZWN0b3J5U2VwYXJhdG9yQ2hhciAhPSAnXFwnKQotCQkJCXBhdGggPSBwYXRoLlJlcGxhY2UgKCJc XCIsICIvIik7Ci0KLQkJCWlmIChjaGFyLklzTGV0dGVyIChwYXRoIFswXSkgJiYgcGF0aC5MZW5n dGggPiAxICYmIHBhdGhbMV0gPT0gJzonKQotCQkJCXJldHVybiBudWxsOwotCQkJCi0JCQlpZiAo YmFzZVBhdGggIT0gbnVsbCkKLQkJCQlwYXRoID0gUGF0aC5Db21iaW5lIChiYXNlUGF0aCwgcGF0 aCk7Ci0KLQkJCWlmIChTeXN0ZW0uSU8uRmlsZS5FeGlzdHMgKHBhdGgpKXsKLQkJCQlyZXR1cm4g UGF0aC5HZXRGdWxsUGF0aCAocGF0aCk7Ci0JCQl9Ci0JCQkJCi0JCQlpZiAoUGF0aC5Jc1BhdGhS b290ZWQgKHBhdGgpKSB7Ci0JCQkJCQotCQkJCS8vIFdpbmRvd3MgcGF0aHMgYXJlIGNhc2UtaW5z ZW5zaXRpdmUuIFdoZW4gbWFwcGluZyBhbiBhYnNvbHV0ZSBwYXRoCi0JCQkJLy8gd2UgY2FuIHRy eSB0byBmaW5kIHRoZSBjb3JyZWN0IGNhc2UgZm9yIHRoZSBwYXRoLgotCQkJCQotCQkJCXN0cmlu Z1tdIG5hbWVzID0gcGF0aC5TdWJzdHJpbmcgKDEpLlNwbGl0ICgnLycpOwotCQkJCXN0cmluZyBw YXJ0ID0gIi8iOwotCQkJCQotCQkJCWZvciAoaW50IG49MDsgbjxuYW1lcy5MZW5ndGg7IG4rKykg ewotCQkJCQlzdHJpbmdbXSBlbnRyaWVzOwotCi0JCQkJCWlmIChuYW1lcyBbbl0gPT0gIi4uIil7 Ci0JCQkJCQlwYXJ0ID0gUGF0aC5HZXRGdWxsUGF0aCAocGFydCArICIvLi4iKTsKLQkJCQkJCWNv bnRpbnVlOwotCQkJCQl9Ci0JCQkJCQotCQkJCQllbnRyaWVzID0gRGlyZWN0b3J5LkdldEZpbGVT eXN0ZW1FbnRyaWVzIChwYXJ0KTsKLQkJCQkJCi0JCQkJCXN0cmluZyBmcGF0aCA9IG51bGw7Ci0J CQkJCWZvcmVhY2ggKHN0cmluZyBlIGluIGVudHJpZXMpIHsKLQkJCQkJCWlmIChzdHJpbmcuQ29t cGFyZSAoUGF0aC5HZXRGaWxlTmFtZSAoZSksIG5hbWVzW25dLCB0cnVlKSA9PSAwKSB7Ci0JCQkJ CQkJZnBhdGggPSBlOwotCQkJCQkJCWJyZWFrOwotCQkJCQkJfQotCQkJCQl9Ci0JCQkJCWlmIChm cGF0aCA9PSBudWxsKSB7Ci0JCQkJCQkvLyBQYXJ0IG9mIHRoZSBwYXRoIGRvZXMgbm90IGV4aXN0 LiBDYW4ndCBkbyBhbnkgbW9yZSBjaGVja2luZy4KLQkJCQkJCXBhcnQgPSBQYXRoLkdldEZ1bGxQ YXRoIChwYXJ0KTsKLQkJCQkJCWZvciAoOyBuIDwgbmFtZXMuTGVuZ3RoOyBuKyspCi0JCQkJCQkJ cGFydCArPSAiLyIgKyBuYW1lc1tuXTsKLQkJCQkJCXJldHVybiBwYXJ0OwotCQkJCQl9Ci0KLQkJ CQkJcGFydCA9IGZwYXRoOwotCQkJCX0KLQkJCQlyZXR1cm4gUGF0aC5HZXRGdWxsUGF0aCAocGFy dCk7Ci0JCQl9IGVsc2UgewotCQkJCXJldHVybiBQYXRoLkdldEZ1bGxQYXRoIChwYXRoKTsKLQkJ CX0KLQkJfQotCi0JCS8vIHN0YXRpYyByZWdleGVzCi0JCXN0YXRpYyBSZWdleCBwcm9qZWN0UmVn ZXggPSBudWxsOwotCQlpbnRlcm5hbCBzdGF0aWMgUmVnZXggUHJvamVjdFJlZ2V4IHsKLQkJCWdl dCB7Ci0JCQkJaWYgKHByb2plY3RSZWdleCA9PSBudWxsKQotCQkJCQlwcm9qZWN0UmVnZXggPSBu ZXcgUmVnZXgoQCJQcm9qZWN0XCgiIihce1tefV0qXH0pIiJcKSA9ICIiKC4qKSIiLCAiIiguKiki IiwgIiIoXHtbXntdKlx9KSIiIik7Ci0JCQkJcmV0dXJuIHByb2plY3RSZWdleDsKLQkJCX0KLQkJ fQotCi0JCXN0YXRpYyBSZWdleCBzbG5WZXJzaW9uUmVnZXggPSBudWxsOwotCQlpbnRlcm5hbCBz dGF0aWMgUmVnZXggU2xuVmVyc2lvblJlZ2V4IHsKLQkJCWdldCB7Ci0JCQkJaWYgKHNsblZlcnNp b25SZWdleCA9PSBudWxsKQotCQkJCQlzbG5WZXJzaW9uUmVnZXggPSBuZXcgUmVnZXggKEAiTWlj cm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gKFxkP1xk LlxkXGQpIik7Ci0JCQkJcmV0dXJuIHNsblZlcnNpb25SZWdleDsKLQkJCX0KLQkJfQotCX0gICAK LX0NCg0KUmVtb3ZlZDogbWFpbi9zcmMvYWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9WUzIwMDNQ cm9qZWN0RmlsZUZvcm1hdC5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjc1ICswLDAgQEAKLS8vCi0v LyBWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgQW5raXQg SmFpbiA8amFua2l0QG5vdmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChDKSAyMDA3IE5vdmVs bCwgSW5jIChodHRwOi8vd3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0vLyBh IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUKLS8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcKLS8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLS8vIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotLy8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvCi0vLyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLyAKLS8vIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0v LyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT b2Z0d2FyZS4KLS8vIAotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0vLyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLS8vIE1FUkNIQU5UQUJJTElU WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECi0vLyBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF Ci0vLyBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OCi0vLyBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KLS8vIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotLy8KLQotdXNp bmcgTW9ub0RldmVsb3AuQ29yZTsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmUuUHJvZ3Jlc3NNb25p dG9yaW5nOwotdXNpbmcgTW9ub0RldmVsb3AuSWRlLkd1aTsKLXVzaW5nIE1vbm9EZXZlbG9wLlBy b2plY3RzOwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJp YzsKLXVzaW5nIFN5c3RlbS5JTzsKLXVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9u czsKLXVzaW5nIFN5c3RlbS5YbWw7Ci11c2luZyBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5FeHRlbnNp b25zOwotdXNpbmcgTW9ub0RldmVsb3AuSWRlOwotCi1uYW1lc3BhY2UgTW9ub0RldmVsb3AuUHJq Mk1ha2UKLXsKLQlwdWJsaWMgY2xhc3MgVlMyMDAzUHJvamVjdEZpbGVGb3JtYXQgOiBJRmlsZUZv cm1hdAotCXsKLQkJR3VpSGVscGVyIGhlbHBlcjsKLQkJCi0JCXB1YmxpYyBWUzIwMDNQcm9qZWN0 RmlsZUZvcm1hdCAoKQotCQl7Ci0JCX0KLQotCQlwdWJsaWMgc3RyaW5nIE5hbWUgewotCQkJZ2V0 IHsgcmV0dXJuICJWaXN1YWwgU3R1ZGlvIDIwMDMiOyB9Ci0JCX0KLQotCQlHdWlIZWxwZXIgR3Vp SGVscGVyIHsKLQkJCWdldCB7Ci0JCQkJaWYgKGhlbHBlciA9PSBudWxsKQotCQkJCQloZWxwZXIg PSBuZXcgR3VpSGVscGVyICgpOwotCQkJCXJldHVybiBoZWxwZXI7Ci0JCQl9Ci0JCX0NCi0NCi0J CXB1YmxpYyBGaWxlUGF0aCBHZXRWYWxpZEZvcm1hdE5hbWUgKG9iamVjdCBvYmosIEZpbGVQYXRo IGZpbGVOYW1lKQotCQl7Ci0JCQlyZXR1cm4gZmlsZU5hbWU7Ci0JCX0NCi0NCi0JCXB1YmxpYyBi b29sIENhblJlYWRGaWxlIChGaWxlUGF0aCBmaWxlLCBUeXBlIGV4cGVjdGVkT2JqZWN0VHlwZSkK LQkJewotCQkJaWYgKGV4cGVjdGVkT2JqZWN0VHlwZS5Jc0Fzc2lnbmFibGVGcm9tICh0eXBlb2Yo U29sdXRpb24pKSAmJiBTdHJpbmcuQ29tcGFyZSAoZmlsZS5FeHRlbnNpb24sICIuc2xuIiwgdHJ1 ZSkgPT0gMCkgewotCQkJCXN0cmluZyB2ZXIgPSBHZXRTbG5GaWxlVmVyc2lvbiAoZmlsZSk7Ci0J CQkJaWYgKHZlciA9PSAiNy4wMCIgfHwgdmVyID09ICI4LjAwIikKLQkJCQkJcmV0dXJuIHRydWU7 Ci0JCQl9Ci0JCQkKLQkJCWlmICghZXhwZWN0ZWRPYmplY3RUeXBlLklzQXNzaWduYWJsZUZyb20g KHR5cGVvZihEb3ROZXRQcm9qZWN0KSkpCi0JCQkJcmV0dXJuIGZhbHNlOwotCQkJCi0JCQlpZiAo U3RyaW5nLkNvbXBhcmUgKGZpbGUuRXh0ZW5zaW9uLCAiLmNzcHJvaiIsIHRydWUpICE9IDAgJiYK LQkJCQlTdHJpbmcuQ29tcGFyZSAoZmlsZS5FeHRlbnNpb24sICIudmJwcm9qIiwgdHJ1ZSkgIT0g MCkKLQkJCQlyZXR1cm4gZmFsc2U7Ci0KLQkJCXRyeSB7Ci0JCQkJdXNpbmcgKFhtbFJlYWRlciB4 ciA9IFhtbFJlYWRlci5DcmVhdGUgKGZpbGUpKSB7Ci0JCQkJCXhyLk1vdmVUb0NvbnRlbnQgKCk7 Ci0JCQkJCWlmICh4ci5Ob2RlVHlwZSA9PSBYbWxOb2RlVHlwZS5FbGVtZW50ICYmIFN0cmluZy5D b21wYXJlICh4ci5Mb2NhbE5hbWUsICJWaXN1YWxTdHVkaW9Qcm9qZWN0IikgPT0gMCkKLQkJCQkJ CXJldHVybiB0cnVlOwotCQkJCX0KLQkJCX0gY2F0Y2ggewotCQkJCXJldHVybiBmYWxzZTsKLQkJ CX0KLQotCQkJcmV0dXJuIGZhbHNlOwotCQl9Ci0KLQkJcHVibGljIGJvb2wgQ2FuV3JpdGVGaWxl IChvYmplY3Qgb2JqKQotCQl7Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JCX0NCi0NCi0JCXB1YmxpYyB2 b2lkIFdyaXRlRmlsZSAoRmlsZVBhdGggZmlsZSwgb2JqZWN0IG5vZGUsIElQcm9ncmVzc01vbml0 b3IgbW9uaXRvcikKLQkJewotCQl9DQotDQotCQlwdWJsaWMgb2JqZWN0IFJlYWRGaWxlIChGaWxl UGF0aCBmaWxlLCBUeXBlIGV4cGVjdGVkVHlwZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQot CQl7Ci0JCQlpZiAoZXhwZWN0ZWRUeXBlLklzQXNzaWduYWJsZUZyb20gKHR5cGVvZihEb3ROZXRQ cm9qZWN0KSkpCi0JCQkJcmV0dXJuIFJlYWRQcm9qZWN0RmlsZSAoZmlsZSwgbW9uaXRvcik7Ci0J CQllbHNlCi0JCQkJcmV0dXJuIFJlYWRTb2x1dGlvbkZpbGUgKGZpbGUsIG1vbml0b3IpOwotCQl9 DQotDQotCQlwdWJsaWMgb2JqZWN0IFJlYWRQcm9qZWN0RmlsZSAoRmlsZVBhdGggZmlsZU5hbWUs IElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikKLQkJewotCQkJaWYgKElkZUFwcC5Jc0luaXRpYWxp emVkKSB7Ci0JCQkJVGFyZ2V0Q29udmVydCBjaG9pY2UgPSBHdWlIZWxwZXIuUXVlcnlQcm9qZWN0 Q29udmVyc2lvbiAoZmlsZU5hbWUpOwotCQkJCWlmIChjaG9pY2UgPT0gVGFyZ2V0Q29udmVydC5O b25lKQotCQkJCQl0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiAoIlZTMjAwMyBw cm9qZWN0cyBhcmUgbm90IHN1cHBvcnRlZCBuYXRpdmVseS4iKTsKLQkKLQkJCQlTb2x1dGlvbkVu dGl0eUl0ZW0gcHJvamVjdCA9IEltcG9ydENzcHJvaiAoZmlsZU5hbWUpOwotCQkJCXByb2plY3Qu RmlsZU5hbWUgPSBmaWxlTmFtZTsKLQkKLQkJCQlpZiAoY2hvaWNlID09IFRhcmdldENvbnZlcnQu TW9ub0RldmVsb3ApIHsKLQkJCQkJcHJvamVjdC5GaWxlRm9ybWF0ID0gSWRlQXBwLlNlcnZpY2Vz LlByb2plY3RTZXJ2aWNlLkZpbGVGb3JtYXRzLkdldEZpbGVGb3JtYXQgKCJNRDEiKTsKLQkJCQl9 IGVsc2UgaWYgKGNob2ljZSA9PSBUYXJnZXRDb252ZXJ0LlZpc3VhbFN0dWRpbykgewotCQkJCQlw cm9qZWN0LkZpbGVGb3JtYXQgPSBJZGVBcHAuU2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmlsZUZv cm1hdHMuR2V0RmlsZUZvcm1hdCAoIk1TQnVpbGQwNSIpOwotCQkJCX0KLQotCQkJCXByb2plY3Qu U2F2ZSAobW9uaXRvcik7Ci0JCQkJcmV0dXJuIHByb2plY3Q7Ci0JCQl9Ci0JCQllbHNlIHsKLQkJ CQlTb2x1dGlvbkVudGl0eUl0ZW0gcHJvamVjdCA9IEltcG9ydENzcHJvaiAoZmlsZU5hbWUpOwot CQkJCXByb2plY3QuRmlsZU5hbWUgPSBmaWxlTmFtZTsKLQkJCQlyZXR1cm4gcHJvamVjdDsKLQkJ CX0KLQkJfQ0KLQ0KLQkJcHVibGljIG9iamVjdCBSZWFkU29sdXRpb25GaWxlIChGaWxlUGF0aCBm aWxlTmFtZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQotCQl7Ci0JCQlpZiAoSWRlQXBwLklz SW5pdGlhbGl6ZWQpIHsKLQkJCQlUYXJnZXRDb252ZXJ0IGNob2ljZSA9IEd1aUhlbHBlci5RdWVy eVNvbHV0aW9uQ29udmVyc2lvbiAoZmlsZU5hbWUpOwotCQkJCWlmIChjaG9pY2UgPT0gVGFyZ2V0 Q29udmVydC5Ob25lKQotCQkJCQl0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbiAo IlZTMjAwMyBzb2x1dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgbmF0aXZlbHkuIik7Ci0JCQkKLQkJ CQlTb2x1dGlvbiBzb2x1dGlvbiA9IEltcG9ydFNsbiAoZmlsZU5hbWUpOwotCQkJCi0JCQkJaWYg KGNob2ljZSA9PSBUYXJnZXRDb252ZXJ0Lk1vbm9EZXZlbG9wKSB7Ci0JCQkJCXNvbHV0aW9uLkNv bnZlcnRUb0Zvcm1hdCAoSWRlQXBwLlNlcnZpY2VzLlByb2plY3RTZXJ2aWNlLkZpbGVGb3JtYXRz LkdldEZpbGVGb3JtYXQgKCJNRDEiKSwgdHJ1ZSk7Ci0JCQkJfSBlbHNlIGlmIChjaG9pY2UgPT0g VGFyZ2V0Q29udmVydC5WaXN1YWxTdHVkaW8pIHsKLQkJCQkJc29sdXRpb24uQ29udmVydFRvRm9y bWF0IChJZGVBcHAuU2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmlsZUZvcm1hdHMuR2V0RmlsZUZv cm1hdCAoIk1TQnVpbGQwNSIpLCB0cnVlKTsKLQkJCQl9Ci0JCQkKLQkJCQlzb2x1dGlvbi5TYXZl IChtb25pdG9yKTsKLQkJCQlyZXR1cm4gc29sdXRpb247Ci0JCQl9Ci0JCQllbHNlCi0JCQkJcmV0 dXJuIEltcG9ydFNsbiAoZmlsZU5hbWUpOwotCQl9DQotDQotCQlpbnRlcm5hbCBTb2x1dGlvbkVu dGl0eUl0ZW0gSW1wb3J0Q3Nwcm9qIChGaWxlUGF0aCBmaWxlTmFtZSkKLQkJewotCQkJU29sdXRp b25FbnRpdHlJdGVtIHByb2plY3QgPSBudWxsOwotCQkJU2xuTWFrZXIgc2xubWFrZXIgPSBuZXcg U2xuTWFrZXIgKCk7Ci0JCQl0cnkgewotCQkJCUlQcm9ncmVzc01vbml0b3IgbSA9IElkZUFwcC5J c0luaXRpYWxpemVkID8gR3VpSGVscGVyLkNyZWF0ZVByb2dyZXNzTW9uaXRvciAoKSA6IG5ldyBD b25zb2xlUHJvZ3Jlc3NNb25pdG9yICgpOwotCQkJCXVzaW5nIChtKSB7Ci0JCQkJCXByb2plY3Qg PSBzbG5tYWtlci5DcmVhdGVQcmp4RnJvbUNzcHJvaiAoZmlsZU5hbWUsIG0pOwotCQkJCX0KLQkJ CX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkJTG9nZ2luZ1NlcnZpY2UuTG9nRXJyb3IgKCJl eGNlcHRpb24gd2hpbGUgY29udmVydGluZzogIiArIGUuVG9TdHJpbmcgKCkpOwotCQkJCXRocm93 OwotCQkJfQotCi0JCQlyZXR1cm4gcHJvamVjdDsKLQkJfQotCi0JCXB1YmxpYyB2b2lkIENvbnZl cnRUb0Zvcm1hdCAob2JqZWN0IG9iaikKLQkJewotCQl9DQotDQotCQlwdWJsaWMgTGlzdDxGaWxl UGF0aD4gR2V0SXRlbUZpbGVzIChvYmplY3Qgb2JqKQotCQl7DQotCQkJcmV0dXJuIG5ldyBMaXN0 PEZpbGVQYXRoPiAoKTsKLQkJfQotCi0JCS8vIENvbnZlcnRzIGEgdnMyMDAzIHNvbHV0aW9uIHRv IGEgQ29tYmluZSBvYmplY3QNCi0JCWludGVybmFsIFNvbHV0aW9uIEltcG9ydFNsbiAoRmlsZVBh dGggZmlsZU5hbWUpCi0JCXsKLQkJCVNsbk1ha2VyIHNsbm1ha2VyID0gbmV3IFNsbk1ha2VyICgp OwotCQkJU29sdXRpb24gc29sdXRpb24gPSBudWxsOwotCQkJSVByb2dyZXNzTW9uaXRvciBtID0g SWRlQXBwLklzSW5pdGlhbGl6ZWQgPyBHdWlIZWxwZXIuQ3JlYXRlUHJvZ3Jlc3NNb25pdG9yICgp IDogbmV3IENvbnNvbGVQcm9ncmVzc01vbml0b3IgKCk7Ci0KLQkJCXRyeSB7IAotCQkJCXNvbHV0 aW9uID0gc2xubWFrZXIuTXNTbG5Ub0NtYnhIZWxwZXIgKGZpbGVOYW1lLCBtKTsKLQkJCX0gY2F0 Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0JCQkJTG9nZ2luZ1NlcnZpY2UuTG9nRXJyb3IgKCJleGNlcHRp b24gd2hpbGUgY29udmVydGluZyA6ICIgKyBlLlRvU3RyaW5nICgpKTsKLQkJCQl0aHJvdzsKLQkJ CX0gZmluYWxseSB7Ci0JCQkJaWYgKG0gIT0gbnVsbCkKLQkJCQkJbS5EaXNwb3NlICgpOwotCQkJ fQotCi0JCQlyZXR1cm4gc29sdXRpb247Ci0JCX0KLQotCQkvLyBVdGlsaXR5IGZ1bmN0aW9uIHRv IGRldGVybWluZSB0aGUgc2xuIGZpbGUgdmVyc2lvbgotCQlzdHJpbmcgR2V0U2xuRmlsZVZlcnNp b24oc3RyaW5nIHN0ckluU2xuRmlsZSkKLQkJewotCQkJdXNpbmcgKHZhciBzdHJlYW0gPSBGaWxl Lk9wZW5UZXh0IChzdHJJblNsbkZpbGUpKSB7Ci0JCQkJLy8gUmVhZExpbmUgcmV0dXJucyBudWxs IGF0IEVPRiB3aGljaCBtYWtlcyB0aGUgcmVnZXggdGhyb3cgYW4gQXJnTnVsbCBleGNlcHRpb24K LQkJCQl2YXIgbWF0Y2ggPSBTbG5NYWtlci5TbG5WZXJzaW9uUmVnZXguTWF0Y2ggKHN0cmVhbS5S ZWFkTGluZSAoKSA/PyAiIik7Ci0JCQkJaWYgKCFtYXRjaC5TdWNjZXNzKQotCQkJCQltYXRjaCA9 IFNsbk1ha2VyLlNsblZlcnNpb25SZWdleC5NYXRjaCAoc3RyZWFtLlJlYWRMaW5lICgpID8/ICIi KTsKLQkJCQkKLQkJCQlyZXR1cm4gbWF0Y2guU3VjY2VzcyA/IG1hdGNoLkdyb3Vwc1sxXS5WYWx1 ZSA6IG51bGw7Ci0JCQl9Ci0JCX0KLQkJCi0JCXB1YmxpYyBib29sIFN1cHBvcnRzTWl4ZWRGb3Jt YXRzIHsKLQkJCWdldCB7IHJldHVybiBmYWxzZTsgfQotCQl9Ci0KLQkJcHVibGljIElFbnVtZXJh YmxlPHN0cmluZz4gR2V0Q29tcGF0aWJpbGl0eVdhcm5pbmdzIChvYmplY3Qgb2JqKQotCQl7Ci0J CQl5aWVsZCBicmVhazsKLQkJfQotCQkKLQkJcHVibGljIGJvb2wgU3VwcG9ydHNGcmFtZXdvcmsg KE1vbm9EZXZlbG9wLkNvcmUuQXNzZW1ibGllcy5UYXJnZXRGcmFtZXdvcmsgZnJhbWV3b3JrKQot CQl7Ci0JCQlyZXR1cm4gZnJhbWV3b3JrLklkID09IE1vbm9EZXZlbG9wLkNvcmUuQXNzZW1ibGll cy5UYXJnZXRGcmFtZXdvcmtNb25pa2VyLk5FVF8xXzE7Ci0JCX0KLQl9Ci0KLQllbnVtIFRhcmdl dENvbnZlcnQKLQl7Ci0JCU5vbmUsCi0JCVZpc3VhbFN0dWRpbywKLQkJTW9ub0RldmVsb3AKLQl9 Ci0KLQljbGFzcyBHdWlIZWxwZXI6IEd1aVN5bmNPYmplY3QKLQl7Ci0JCVRhcmdldENvbnZlcnQg UXVlcnlDb252ZXJzaW9uIChzdHJpbmcgdGV4dCkKLQkJewotCQkJQWxlcnRCdXR0b24gdnMyMDA1 ICAgICAgPSBuZXcgQWxlcnRCdXR0b24gKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIkNvbnZl cnQgdG8gTVNCdWlsZCIpKTsKLQotCQkJQWxlcnRCdXR0b24gY2hvaWNlID0gTWVzc2FnZVNlcnZp Y2UuQXNrUXVlc3Rpb24gKHRleHQsCi0JCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR2V0dGV4dENhdGFsb2cuR2V0U3RyaW5nICgiQ29udmVydGluZyB0 byBNU0J1aWxkIGZvcm1hdCB3aWxsIG92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4iKSwKLQkJCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGVydEJ1dHRv bi5DYW5jZWwsIHZzMjAwNSk7Ci0JCQlpZiAoY2hvaWNlID09IHZzMjAwNSkKLQkJCQlyZXR1cm4g VGFyZ2V0Q29udmVydC5WaXN1YWxTdHVkaW87Ci0JCQllbHNlCi0JCQkJcmV0dXJuIFRhcmdldENv bnZlcnQuTm9uZTsKLQkJfQotCQkKLQkJcHVibGljIFRhcmdldENvbnZlcnQgUXVlcnlQcm9qZWN0 Q29udmVyc2lvbiAoc3RyaW5nIGZpbGUpCi0JCXsKLQkJCXN0cmluZyB0ZXh0ID0gR2V0dGV4dENh dGFsb2cuR2V0U3RyaW5nICgiVGhlIHByb2plY3QgZmlsZSB7MH0gaXMgYSBWaXN1YWwgU3R1ZGlv IDIwMDMgcHJvamVjdC4gSXQgbXVzdCBiZSBjb252ZXJ0ZWQgdG8gYSBNU0J1aWxkIHByb2plY3Qu IiwgZmlsZSk7Ci0JCQlyZXR1cm4gUXVlcnlDb252ZXJzaW9uICh0ZXh0KTsKLQkJfQotCQkKLQkJ cHVibGljIFRhcmdldENvbnZlcnQgUXVlcnlTb2x1dGlvbkNvbnZlcnNpb24gKHN0cmluZyBmaWxl KQotCQl7Ci0JCQlzdHJpbmcgdGV4dCA9IEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIlRoZSBz b2x1dGlvbiBmaWxlIHswfSBpcyBhIFZpc3VhbCBTdHVkaW8gMjAwMyBzb2x1dGlvbi4gSXQgbXVz dCBiZSBjb252ZXJ0ZWQgdG8gYSBNU0J1aWxkIHByb2plY3QuIiwgZmlsZSk7Ci0JCQlyZXR1cm4g UXVlcnlDb252ZXJzaW9uICh0ZXh0KTsKLQkJfQotCi0JCXB1YmxpYyBJUHJvZ3Jlc3NNb25pdG9y IENyZWF0ZVByb2dyZXNzTW9uaXRvciAoKQotCQl7Ci0JCQlyZXR1cm4gbmV3IE1vbm9EZXZlbG9w LklkZS5Qcm9ncmVzc01vbml0b3JpbmcuTWVzc2FnZURpYWxvZ1Byb2dyZXNzTW9uaXRvciAodHJ1 ZSwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLQkJfQotCX0KLX0NCg0KUmVtb3ZlZDogbWFpbi9zcmMv YWRkaW5zL3ByajJtYWtlLXNoYXJwLWxpYi9jc3Byb2pfdmVyMjAwMy5jcw0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K QEAgLTEsMjg1ICswLDAgQEAKLW5hbWVzcGFjZSBNb25vRGV2ZWxvcC5QcmoyTWFrZS5TY2hlbWEu Q3Nwcm9qIHsKLSAgICB1c2luZyBTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb247Ci0gICAgCi0gICAg Ci0gICAgLy8vIDxyZW1hcmtzLz4KLSAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbFJv b3RBdHRyaWJ1dGUoTmFtZXNwYWNlPSIiLCBJc051bGxhYmxlPWZhbHNlKV0KLSAgICBwdWJsaWMg Y2xhc3MgQnVpbGQgewotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAg cHVibGljIFNldHRpbmdzIFNldHRpbmdzOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtz Lz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBcnJheUl0ZW1BdHRyaWJ1 dGUoSXNOdWxsYWJsZT1mYWxzZSldCi0gICAgICAgIHB1YmxpYyBSZWZlcmVuY2VbXSBSZWZlcmVu Y2VzOwotICAgIH0KLSAgICAKLSAgICAvLy8gPHJlbWFya3MvPgotICAgIFtTeXN0ZW0uWG1sLlNl cmlhbGl6YXRpb24uWG1sUm9vdEF0dHJpYnV0ZShOYW1lc3BhY2U9IiIsIElzTnVsbGFibGU9ZmFs c2UpXQotICAgIHB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7Ci0gICAgICAgIAotICAgICAgICAvLy8g PHJlbWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEVsZW1lbnRB dHRyaWJ1dGUoIkNvbmZpZyIpXQotICAgICAgICBwdWJsaWMgQ29uZmlnW10gQ29uZmlnOwotICAg ICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFs aXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBB cHBsaWNhdGlvbkljb247Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAg ICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAg ICAgICBwdWJsaWMgc3RyaW5nIEFzc2VtYmx5S2V5Q29udGFpbmVyTmFtZTsKLSAgICAgICAgCi0g ICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24u WG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgQXNzZW1ibHlO YW1lOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5Y bWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGlj IHN0cmluZyBBc3NlbWJseU9yaWdpbmF0b3JLZXlGaWxlOwotICAgICAgICAKLSAgICAgICAgLy8v IDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1 dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBEZWZhdWx0Q2xpZW50U2NyaXB0 OwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwu U2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0 cmluZyBEZWZhdWx0SFRNTFBhZ2VMYXlvdXQ7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFy a3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJp YnV0ZSgpXQotICAgICAgICBwdWJsaWMgc3RyaW5nIERlZmF1bHRUYXJnZXRTY2hlbWE7Ci0gICAg ICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxp emF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJsaWMgYm9vbCBEZWxh eVNpZ247Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAgICBbU3lzdGVt LlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJs aWMgc3RyaW5nIE91dHB1dFR5cGU7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgot ICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgp XQotICAgICAgICBwdWJsaWMgc3RyaW5nIFByZUJ1aWxkRXZlbnQ7Ci0gICAgICAgIAotICAgICAg ICAvLy8gPHJlbWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0 dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJsaWMgc3RyaW5nIFBvc3RCdWlsZEV2ZW50 OwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwu U2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0 cmluZyBSb290TmFtZXNwYWNlOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAg ICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0K LSAgICAgICAgcHVibGljIHN0cmluZyBSdW5Qb3N0QnVpbGRFdmVudDsKLSAgICAgICAgCi0gICAg ICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1s QXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgU3RhcnR1cE9iamVj dDsKLSAgICB9Ci0gICAgCi0gICAgLy8vIDxyZW1hcmtzLz4KLSAgICBbU3lzdGVtLlhtbC5TZXJp YWxpemF0aW9uLlhtbFJvb3RBdHRyaWJ1dGUoTmFtZXNwYWNlPSIiLCBJc051bGxhYmxlPWZhbHNl KV0KLSAgICBwdWJsaWMgY2xhc3MgQ29uZmlnIHsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVt YXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXR0cmlidXRlQXR0 cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgTmFtZTsKLSAgICAgICAgCi0gICAgICAg IC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXR0 cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBib29sIEFsbG93VW5zYWZlQmxvY2tz OwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwu U2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIGxv bmcgQmFzZUFkZHJlc3M7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAg ICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAg ICAgICBwdWJsaWMgYm9vbCBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93OwotICAgICAgICAKLSAg ICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5Y bWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBDb25maWd1cmF0 aW9uT3ZlcnJpZGVGaWxlOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAg ICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAg ICAgICAgcHVibGljIHN0cmluZyBEZWZpbmVDb25zdGFudHM7Ci0gICAgICAgIAotICAgICAgICAv Ly8gPHJlbWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJp YnV0ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJsaWMgc3RyaW5nIERvY3VtZW50YXRpb25GaWxl OwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwu U2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIGJv b2wgRGVidWdTeW1ib2xzOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAg ICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAg ICAgICAgcHVibGljIHNob3J0IEZpbGVBbGlnbm1lbnQ7Ci0gICAgICAgIAotICAgICAgICAvLy8g PHJlbWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0 ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJsaWMgYm9vbCBJbmNyZW1lbnRhbEJ1aWxkOwotICAg ICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFs aXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIGJvb2wgTm9T dGRMaWI7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAgICBbU3lzdGVt LlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQotICAgICAgICBwdWJs aWMgc3RyaW5nIE5vV2FybjsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAg ICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0g ICAgICAgIHB1YmxpYyBib29sIE9wdGltaXplOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1h cmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRy aWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBPdXRwdXRQYXRoOwotICAgICAgICAKLSAg ICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5Y bWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIGJvb2wgUmVnaXN0ZXJGb3JD b21JbnRlcm9wOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5 c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAg cHVibGljIGJvb2wgUmVtb3ZlSW50ZWdlckNoZWNrczsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8 cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXR0cmlidXRl QXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBib29sIFRyZWF0V2FybmluZ3NBc0Vycm9yczsK LSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNl cmlhbGl6YXRpb24uWG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBTeXN0 ZW0uU0J5dGUgV2FybmluZ0xldmVsOwotICAgIH0KLSAgICAKLSAgICAvLy8gPHJlbWFya3MvPgot ICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sUm9vdEF0dHJpYnV0ZShOYW1lc3BhY2U9 IiIsIElzTnVsbGFibGU9ZmFsc2UpXQotICAgIHB1YmxpYyBjbGFzcyBSZWZlcmVuY2UgewotICAg ICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFs aXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBO YW1lOwotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5Y bWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGlj IHN0cmluZyBBc3NlbWJseU5hbWU7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgot ICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgp XQotICAgICAgICBwdWJsaWMgc3RyaW5nIEhpbnRQYXRoOwotICAgICAgICAKLSAgICAgICAgLy8v IDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1 dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBQcm9qZWN0OwotICAgICAgICAK LSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlv bi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBQYWNrYWdl OwotICAgIH0KLSAgICAKLSAgICAvLy8gPHJlbWFya3MvPgotICAgIFtTeXN0ZW0uWG1sLlNlcmlh bGl6YXRpb24uWG1sUm9vdEF0dHJpYnV0ZShOYW1lc3BhY2U9IiIsIElzTnVsbGFibGU9ZmFsc2Up XQotICAgIHB1YmxpYyBjbGFzcyBDU0hBUlAgewotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1h cmtzLz4KLSAgICAgICAgcHVibGljIEJ1aWxkIEJ1aWxkOwotICAgICAgICAKLSAgICAgICAgLy8v IDxyZW1hcmtzLz4KLSAgICAgICAgcHVibGljIEZpbGVzIEZpbGVzOwotICAgICAgICAKLSAgICAg ICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxB dHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBQcm9qZWN0VHlwZTsK LSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNl cmlhbGl6YXRpb24uWG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJp bmcgUHJvZHVjdFZlcnNpb247Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAg ICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEF0dHJpYnV0ZUF0dHJpYnV0ZSgpXQot ICAgICAgICBwdWJsaWMgU3lzdGVtLkRlY2ltYWwgU2NoZW1hVmVyc2lvbjsKLSAgICAgICAgCi0g ICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24u WG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgUHJvamVjdEd1 aWQ7Ci0gICAgfQotICAgIAotICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgW1N5c3RlbS5YbWwuU2Vy aWFsaXphdGlvbi5YbWxSb290QXR0cmlidXRlKE5hbWVzcGFjZT0iIiwgSXNOdWxsYWJsZT1mYWxz ZSldCi0gICAgcHVibGljIGNsYXNzIEZpbGVzIHsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVt YXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXJyYXlJdGVtQXR0 cmlidXRlKElzTnVsbGFibGU9ZmFsc2UpXQotICAgICAgICBwdWJsaWMgRmlsZVtdIEluY2x1ZGU7 Ci0gICAgfQotICAgIAotICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgW1N5c3RlbS5YbWwuU2VyaWFs aXphdGlvbi5YbWxSb290QXR0cmlidXRlKE5hbWVzcGFjZT0iIiwgSXNOdWxsYWJsZT1mYWxzZSld Ci0gICAgcHVibGljIGNsYXNzIEZpbGUgewotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtz Lz4KLSAgICAgICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1 dGUoKV0KLSAgICAgICAgcHVibGljIHN0cmluZyBSZWxQYXRoOwotICAgICAgICAKLQkJW1N5c3Rl bS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLQkJcHVibGljIHN0 cmluZyBMaW5rOwotICAgIAkKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgW1N5c3Rl bS5YbWwuU2VyaWFsaXphdGlvbi5YbWxBdHRyaWJ1dGVBdHRyaWJ1dGUoKV0KLSAgICAgICAgcHVi bGljIEZpbGVCdWlsZEFjdGlvbiBCdWlsZEFjdGlvbjsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8 cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sQXR0cmlidXRl QXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgU3ViVHlwZTsKLSAgICAgICAgCi0g ICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24u WG1sQXR0cmlidXRlQXR0cmlidXRlKCldCi0gICAgICAgIHB1YmxpYyBzdHJpbmcgRGVwZW5kZW50 VXBvbjsKLSAgICB9Ci0gICAgCi0gICAgLy8vIDxyZW1hcmtzLz4KLSAgICBwdWJsaWMgZW51bSBG aWxlQnVpbGRBY3Rpb24gewotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAg ICAgQ29tcGlsZSwKLSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgICAgIENv bnRlbnQsCi0gICAgICAgIAotICAgICAgICAvLy8gPHJlbWFya3MvPgotICAgICAgICBFbWJlZGRl ZFJlc291cmNlLAotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1hcmtzLz4KLSAgICAgICAgTm9u ZSwKLSAgICB9Ci0gICAgCi0gICAgLy8vIDxyZW1hcmtzLz4KLSAgICBbU3lzdGVtLlhtbC5TZXJp YWxpemF0aW9uLlhtbFJvb3RBdHRyaWJ1dGUoTmFtZXNwYWNlPSIiLCBJc051bGxhYmxlPWZhbHNl KV0KLSAgICBwdWJsaWMgY2xhc3MgSW5jbHVkZSB7Ci0gICAgICAgIAotICAgICAgICAvLy8gPHJl bWFya3MvPgotICAgICAgICBbU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uLlhtbEVsZW1lbnRBdHRy aWJ1dGUoIkZpbGUiKV0KLSAgICAgICAgcHVibGljIEZpbGVbXSBGaWxlOwotICAgIH0KLSAgICAK LSAgICAvLy8gPHJlbWFya3MvPgotICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sUm9v dEF0dHJpYnV0ZShOYW1lc3BhY2U9IiIsIElzTnVsbGFibGU9ZmFsc2UpXQotICAgIHB1YmxpYyBj bGFzcyBSZWZlcmVuY2VzIHsKLSAgICAgICAgCi0gICAgICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAg ICAgIFtTeXN0ZW0uWG1sLlNlcmlhbGl6YXRpb24uWG1sRWxlbWVudEF0dHJpYnV0ZSgiUmVmZXJl bmNlIildCi0gICAgICAgIHB1YmxpYyBSZWZlcmVuY2VbXSBSZWZlcmVuY2U7Ci0gICAgfQotICAg IAotICAgIC8vLyA8cmVtYXJrcy8+Ci0gICAgW1N5c3RlbS5YbWwuU2VyaWFsaXphdGlvbi5YbWxS b290QXR0cmlidXRlKE5hbWVzcGFjZT0iIiwgSXNOdWxsYWJsZT1mYWxzZSldCi0gICAgcHVibGlj IGNsYXNzIFZpc3VhbFN0dWRpb1Byb2plY3QgewotICAgICAgICAKLSAgICAgICAgLy8vIDxyZW1h cmtzLz4KLSAgICAgICAgcHVibGljIENTSEFSUCBDU0hBUlA7Ci0gICAgfQotfQ0KDQpSZW1vdmVk OiBtYWluL3NyYy9hZGRpbnMvcHJqMm1ha2Utc2hhcnAtbGliL3BrZ2NvbmZpZ2ludm9rZXIuY3MN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCkBAIC0xLDk4ICswLDAgQEAKLS8vIGNyZWF0ZWQgb24gNi84LzIwMDQgYXQg NTo0NCBBTQotdXNpbmcgU3lzdGVtOwotdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwotdXNpbmcg TW9ub0RldmVsb3AuQ29yZTsKLQotbmFtZXNwYWNlIE1vbm9EZXZlbG9wLlByajJNYWtlCi17Ci0J cHVibGljIHNlYWxlZCBjbGFzcyBQa2dDb25maWdJbnZva2VyCi0JewotCQkKLQkJcHVibGljIHN0 YXRpYyBzdHJpbmcgR2V0UGtnQ29uZmlnVmVyc2lvbigpCi0JCXsKLQkJCXN0cmluZyBwa2dvdXQg PSBudWxsOwotCi0JCQlwa2dvdXQgPSBSdW5Qa2dDb25maWcoIi0tdmVyc2lvbiIpOwotCi0JCQlp Zihwa2dvdXQgIT0gbnVsbCkKLQkJCXsKLQkJCQlyZXR1cm4gcGtnb3V0OwotCQkJfQotCi0JCQly ZXR1cm4gbnVsbDsKLQkJfQotCi0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldFBrZ1ZhcmlhYmxl VmFsdWUoc3RyaW5nIHN0clBrZywgc3RyaW5nIHN0clZhck5hbWUpCi0JCXsKLQkJCXN0cmluZyBw a2dvdXQgPSBudWxsOwotCi0JCQlwa2dvdXQgPSBSdW5Qa2dDb25maWcoU3RyaW5nLkZvcm1hdCgi LS12YXJpYWJsZT17MH0gezF9IiwgCi0JCQkJc3RyVmFyTmFtZSwgc3RyUGtnKSk7Ci0KLQkJCWlm KHBrZ291dCAhPSBudWxsKQotCQkJewotCQkJCXJldHVybiBwa2dvdXQ7Ci0JCQl9Ci0KLQkJCXJl dHVybiBudWxsOwotCQl9Ci0KLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0UGtnQ29uZmlnTW9k dWxlVmVyc2lvbihzdHJpbmcgc3RyUGtnKQotCQl7Ci0JCQlzdHJpbmcgcGtnb3V0ID0gbnVsbDsK LQotCQkJcGtnb3V0ID0gUnVuUGtnQ29uZmlnKFN0cmluZy5Gb3JtYXQoIi0tbW9kdmVyc2lvbiB7 MH0iLCBzdHJQa2cpKTsKLQotCQkJaWYocGtnb3V0ICE9IG51bGwpCi0JCQl7Ci0JCQkJcmV0dXJu IHBrZ291dDsKLQkJCX0KLQotCQkJcmV0dXJuIG51bGw7Ci0JCX0KLQotCQlwdWJsaWMgc3RhdGlj IHN0cmluZyBSdW5Qa2dDb25maWcoc3RyaW5nIHN0ckFyZ0xpbmUpCi0JCXsKLQkJCXN0cmluZyBw a2dvdXQ7Ci0KLQkJCVByb2Nlc3NTdGFydEluZm8gcGkgPSBuZXcgUHJvY2Vzc1N0YXJ0SW5mbyAo KTsKLQkJCXBpLkZpbGVOYW1lID0gInBrZy1jb25maWciOwotCQkJcGkuUmVkaXJlY3RTdGFuZGFy ZE91dHB1dCA9IHRydWU7Ci0JCQlwaS5Vc2VTaGVsbEV4ZWN1dGUgPSBmYWxzZTsKLQkJCXBpLkFy Z3VtZW50cyA9IHN0ckFyZ0xpbmU7Ci0JCQlQcm9jZXNzIHAgPSBudWxsOwotCQkJdHJ5IA0KLQkJ CXsKLQkJCQlwID0gUHJvY2Vzcy5TdGFydCAocGkpOwotCQkJfSANCi0JCQljYXRjaCAoRXhjZXB0 aW9uIGUpIA0KLQkJCXsKLQkJCQlDb25zb2xlLldyaXRlTGluZSgiQ291bGRuJ3QgcnVuIHBrZy1j b25maWc6ICIgKyBlLk1lc3NhZ2UpOwotCQkJCUVudmlyb25tZW50LkV4aXQgKDEpOwotCQkJfQot Ci0JCQlpZiAocC5TdGFuZGFyZE91dHB1dCA9PSBudWxsKQ0KLQkJCXsKLQkJCQlMb2dnaW5nU2Vy dmljZS5Mb2dEZWJ1ZyAoIlNwZWNpZmllZCBwYWNrYWdlIGRpZCBub3QgcmV0dXJuIGFueSBpbmZv cm1hdGlvbiIpOwotCQkJfQotCQkJCi0JCQlwa2dvdXQgPSBwLlN0YW5kYXJkT3V0cHV0LlJlYWRU b0VuZCAoKTsJCQotCQkJcC5XYWl0Rm9yRXhpdCAoKTsKLQkJCWlmIChwLkV4aXRDb2RlICE9IDAp IA0KLQkJCXsKLQkJCQlMb2dnaW5nU2VydmljZS5Mb2dEZWJ1ZyAoInBrZy1jb25maWcgY29tbWFu ZCBmYWlsZWQ6IHBrZy1jb25maWcgIiArIHN0ckFyZ0xpbmUpOwotCQkJCXJldHVybiBudWxsOwot CQkJfQotCi0JCQlpZiAocGtnb3V0ICE9IG51bGwpDQotCQkJewotCQkJCXAuQ2xvc2UgKCk7Ci0J CQkJcmV0dXJuIHBrZ291dDsKLQkJCX0KLQotCQkJcC5DbG9zZSAoKTsKLQotCQkJcmV0dXJuIG51 bGw7Ci0JCX0KLQl9Ci19DQoNClJlbW92ZWQ6IG1haW4vc3JjL2FkZGlucy9wcmoybWFrZS1zaGFy cC1saWIvcHJqMm1ha2Utc2hhcnAtbGliLmFkZGluLnhtbA0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNyAr MCwwIEBACi08RXh0ZW5zaW9uTW9kZWw+Ci0JPEV4dGVuc2lvbiBwYXRoID0gIi9Nb25vRGV2ZWxv cC9Qcm9qZWN0TW9kZWwvRmlsZUZvcm1hdHMiPgotCQk8RmlsZUZvcm1hdCBpZD0iVlMyMDAzUHJv amVjdEZpbGVGb3JtYXQiCi0JCSAgICAgICAgICAgIGNsYXNzPSJNb25vRGV2ZWxvcC5QcmoyTWFr ZS5WUzIwMDNQcm9qZWN0RmlsZUZvcm1hdCIvPgotCTwvRXh0ZW5zaW9uPgotPC9FeHRlbnNpb25N b2RlbD4KLQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9hZGRpbnMvcHJqMm1ha2Utc2hhcnAtbGliL3By ajJtYWtlLXNoYXJwLWxpYi5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDExOCArMCwwIEBACi08 P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPFByb2plY3QgRGVmYXVsdFRh cmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9w ZXIvbXNidWlsZC8yMDAzIiBUb29sc1ZlcnNpb249IjQuMCI+Ci0gIDxQcm9wZXJ0eUdyb3VwPgot ICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAi PkRlYnVnPC9Db25maWd1cmF0aW9uPgotICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQbGF0 Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4KLSAgICA8UHJvZHVjdFZlcnNpb24+OS4w LjIxMDIyPC9Qcm9kdWN0VmVyc2lvbj4KLSAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZl cnNpb24+Ci0gICAgPFByb2plY3RHdWlkPnswRjU3RTU3Mi0yMzU5LTRCQUYtQjMwMi02NDc4QzJF NDJGQTJ9PC9Qcm9qZWN0R3VpZD4KLSAgICA8T3V0cHV0VHlwZT5MaWJyYXJ5PC9PdXRwdXRUeXBl PgotICAgIDxSb290TmFtZXNwYWNlPnByajJtYWtlc2hhcnBsaWI8L1Jvb3ROYW1lc3BhY2U+Ci0g IDwvUHJvcGVydHlHcm91cD4KLSAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmln dXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdEZWJ1Z3xBbnlDUFUnICI+Ci0gICAgPERlYnVnU3lt Ym9scz5UcnVlPC9EZWJ1Z1N5bWJvbHM+Ci0gICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+ Ci0gICAgPE9wdGltaXplPkZhbHNlPC9PcHRpbWl6ZT4KLSAgICA8T3V0cHV0UGF0aD4uLlwuLlwu LlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuTXNWaXN1YWxTdHVkaW88L091dHB1dFBhdGg+Ci0g ICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+Ci0gICAgPFdhcm5pbmdMZXZlbD40 PC9XYXJuaW5nTGV2ZWw+Ci0gICAgPEFzc2VtYmx5TmFtZT5Nb25vRGV2ZWxvcC5Nc1Zpc3VhbFN0 dWRpbzwvQXNzZW1ibHlOYW1lPgotICAgIDxFeGVjdXRpb24+Ci0gICAgICA8RXhlY3V0aW9uIGNs ci12ZXJzaW9uPSJOZXRfMl8wIiAvPgotICAgIDwvRXhlY3V0aW9uPgotICAgIDxEZWZpbmVDb25z dGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KLSAgICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9X YXJuPgotICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwuLlwuLlxidWlsZFxBZGRJbnNcTW9ub0Rl dmVsb3AuTXNWaXN1YWxTdHVkaW9cTW9ub0RldmVsb3AuTXNWaXN1YWxTdHVkaW8ueG1sPC9Eb2N1 bWVudGF0aW9uRmlsZT4KLSAgPC9Qcm9wZXJ0eUdyb3VwPgotICA8UHJvcGVydHlHcm91cCBDb25k aXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BV JyAiPgotICAgIDxEZWJ1Z1R5cGU+cGRib25seTwvRGVidWdUeXBlPgotICAgIDxPcHRpbWl6ZT5U cnVlPC9PcHRpbWl6ZT4KLSAgICA8T3V0cHV0UGF0aD4uLlwuLlwuLlxidWlsZFxBZGRJbnNcTW9u b0RldmVsb3AuTXNWaXN1YWxTdHVkaW88L091dHB1dFBhdGg+Ci0gICAgPEVycm9yUmVwb3J0PnBy b21wdDwvRXJyb3JSZXBvcnQ+Ci0gICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+Ci0g ICAgPEFzc2VtYmx5TmFtZT5wcmoybWFrZS1zaGFycC1saWI8L0Fzc2VtYmx5TmFtZT4KLSAgICA8 RXhlY3V0aW9uPgotICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAg ICA8L0V4ZWN1dGlvbj4KLSAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KLSAg ICA8Tm9XYXJuPjE1OTE7MTU3MzwvTm9XYXJuPgotICAgIDxEb2N1bWVudGF0aW9uRmlsZT4uLlwu LlwuLlxidWlsZFxBZGRJbnNcTW9ub0RldmVsb3AuTXNWaXN1YWxTdHVkaW9ccHJqMm1ha2Utc2hh cnAtbGliLnhtbDwvRG9jdW1lbnRhdGlvbkZpbGU+Ci0gIDwvUHJvcGVydHlHcm91cD4KLSAgPEl0 ZW1Hcm91cD4KLSAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4KLSAgICA8UmVmZXJl bmNlIEluY2x1ZGU9IlN5c3RlbS5YbWwiIC8+Ci0gICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJNb25v LlBvc2l4IiAvPgotICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0icGFuZ28tc2hhcnAsIFZlcnNpb249 Mi4xMi4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIzYzk5 ZiI+Ci0gICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+Ci0gICAg PC9SZWZlcmVuY2U+Ci0gICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJhdGstc2hhcnAsIFZlcnNpb249 Mi4xMi4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIzYzk5 ZiI+Ci0gICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+Ci0gICAg PC9SZWZlcmVuY2U+Ci0gICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJnZGstc2hhcnAsIFZlcnNpb249 Mi4xMi4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIzYzk5 ZiI+Ci0gICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+Ci0gICAg PC9SZWZlcmVuY2U+Ci0gICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJndGstc2hhcnAsIFZlcnNpb249 Mi4xMi4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIzYzk5 ZiI+Ci0gICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+Ci0gICAg PC9SZWZlcmVuY2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxQcm9qZWN0 UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXC4uXGNvcmVcTW9ub0RldmVsb3AuQ29yZVxNb25vRGV2ZWxv cC5Db3JlLmNzcHJvaiI+Ci0gICAgICA8UHJvamVjdD57NzUyNUJCODgtNjE0Mi00QTI2LTkzQjkt QTMwQzY5ODMzOTBBfTwvUHJvamVjdD4KLSAgICAgIDxOYW1lPk1vbm9EZXZlbG9wLkNvcmU8L05h bWU+Ci0gICAgICA8UHJpdmF0ZT5GYWxzZTwvUHJpdmF0ZT4KLSAgICA8L1Byb2plY3RSZWZlcmVu Y2U+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cLi5cY29yZVxNb25vRGV2ZWxv cC5JZGVcTW9ub0RldmVsb3AuSWRlLmNzcHJvaiI+Ci0gICAgICA8UHJvamVjdD57MjcwOTZFN0Yt QzkxQy00QUM2LUIyODktNjg5N0E3MDFERjIxfTwvUHJvamVjdD4KLSAgICAgIDxOYW1lPk1vbm9E ZXZlbG9wLklkZTwvTmFtZT4KLSAgICAgIDxQcml2YXRlPkZhbHNlPC9Qcml2YXRlPgotICAgIDwv UHJvamVjdFJlZmVyZW5jZT4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlxEZXBs b3ltZW50XE1vbm9EZXZlbG9wLkRlcGxveW1lbnRcTW9ub0RldmVsb3AuRGVwbG95bWVudC5jc3By b2oiPgotICAgICAgPFByb2plY3Q+ezlCQzY3MEE4LTE4NTEtNDBFQy05Njg1LTI3OUY0Qzk4NDMz RH08L1Byb2plY3Q+Ci0gICAgICA8TmFtZT5Nb25vRGV2ZWxvcC5EZXBsb3ltZW50PC9OYW1lPgot ICAgICAgPFByaXZhdGU+RmFsc2U8L1ByaXZhdGU+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgot ICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXFZCTmV0QmluZGluZ1xWQk5ldEJpbmRp bmcuY3Nwcm9qIj4KLSAgICAgIDxQcm9qZWN0PntFRjkxRDBCOC01M0Y2LTQ2MjItOUYyNi0zRUQy NzgxNTg3OEF9PC9Qcm9qZWN0PgotICAgICAgPE5hbWU+VkJOZXRCaW5kaW5nPC9OYW1lPgotICAg ICAgPFByaXZhdGU+RmFsc2U8L1ByaXZhdGU+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICAg IDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXENTaGFycEJpbmRpbmdcQ1NoYXJwQmluZGlu Zy5jc3Byb2oiPgotICAgICAgPFByb2plY3Q+ezA3Q0M3NjU0LTI3RDYtNDIxRC1BNjRDLTBGRkE0 MDQ1NkZBMn08L1Byb2plY3Q+Ci0gICAgICA8TmFtZT5DU2hhcnBCaW5kaW5nPC9OYW1lPgotICAg ICAgPFByaXZhdGU+RmFsc2U8L1ByaXZhdGU+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgotICAg IDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXC4uXGNvcmVcTW9uby5UZXh0ZWRpdG9yXE1v bm8uVGV4dEVkaXRvci5jc3Byb2oiPgotICAgICAgPFByb2plY3Q+e0EyMzI5MzA4LTM3NTEtNERC RC05QTc1LTVGN0I4QjAyNDYyNX08L1Byb2plY3Q+Ci0gICAgICA8TmFtZT5Nb25vLlRleHRFZGl0 b3I8L05hbWU+Ci0gICAgICA8UHJpdmF0ZT5GYWxzZTwvUHJpdmF0ZT4KLSAgICA8L1Byb2plY3RS ZWZlcmVuY2U+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cTW9ub0RldmVsb3Au UmVmYWN0b3JpbmdcTW9ub0RldmVsb3AuUmVmYWN0b3JpbmcuY3Nwcm9qIj4KLSAgICAgIDxQcm9q ZWN0PnsxMDA1NjhGQy1GNEU4LTQzOUItOTRBRC00MUQxMTcyNEU0NUJ9PC9Qcm9qZWN0PgotICAg ICAgPE5hbWU+TW9ub0RldmVsb3AuUmVmYWN0b3Jpbmc8L05hbWU+Ci0gICAgICA8UHJpdmF0ZT5G YWxzZTwvUHJpdmF0ZT4KLSAgICA8L1Byb2plY3RSZWZlcmVuY2U+Ci0gICAgPFByb2plY3RSZWZl cmVuY2UgSW5jbHVkZT0iLi5cLi5cLi5cZXh0ZXJuYWxcbW9uby1hZGRpbnNcTW9uby5BZGRpbnNc TW9uby5BZGRpbnMuY3Nwcm9qIj4KLSAgICAgIDxQcm9qZWN0Pns5MURENUEyRC05RkUzLTRDM0Mt OTI1My04NzYxNDE4NzREQUR9PC9Qcm9qZWN0PgotICAgICAgPE5hbWU+TW9uby5BZGRpbnM8L05h bWU+Ci0gICAgICA8UHJpdmF0ZT5GYWxzZTwvUHJpdmF0ZT4KLSAgICA8L1Byb2plY3RSZWZlcmVu Y2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxDb21waWxlIEluY2x1ZGU9 Ik1zUHJqSGVscGVyLmNzIiAvPgotICAgIDxDb21waWxlIEluY2x1ZGU9IkNzcHJvakluZm8uY3Mi IC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0icGtnY29uZmlnaW52b2tlci5jcyIgLz4KLSAgICA8 Q29tcGlsZSBJbmNsdWRlPSJjc3Byb2pfdmVyMjAwMy5jcyIgLz4KLSAgICA8Q29tcGlsZSBJbmNs dWRlPSJWUzIwMDNQcm9qZWN0RmlsZUZvcm1hdC5jcyIgLz4KLSAgICA8Q29tcGlsZSBJbmNsdWRl PSJBc3NlbWJseUluZm8uY3MiIC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0iQWRkaW5JbmZvLmNz IiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4KLSAgICA8RW1iZWRkZWRSZXNvdXJj ZSBJbmNsdWRlPSJwcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sIj4KLSAgICAgIDxMb2dpY2Fs TmFtZT5wcmoybWFrZS1zaGFycC1saWIuYWRkaW4ueG1sPC9Mb2dpY2FsTmFtZT4KLSAgICA8L0Vt YmVkZGVkUmVzb3VyY2U+Ci0gIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxOb25l IEluY2x1ZGU9Ik1ha2VmaWxlLmFtIiAvPgotICA8L0l0ZW1Hcm91cD4KLSAgPEltcG9ydCBQcm9q ZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+Ci08L1By b2plY3Q+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0Rl dmVsb3AuQ29yZS5hZGRpbi54bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xMjksMTEgKzEyOSw2IEBACiAJ CTxFeHRlbnNpb25Ob2RlIG5hbWU9IkRvdE5ldFByb2plY3QiIHR5cGU9Ik1vbm9EZXZlbG9wLlBy b2plY3RzLkV4dGVuc2lvbnMuRG90TmV0UHJvamVjdE5vZGUiLz4KIAkJPEV4dGVuc2lvbk5vZGUg bmFtZT0iRG90TmV0UHJvamVjdFN1YnR5cGUiIHR5cGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLkV4 dGVuc2lvbnMuRG90TmV0UHJvamVjdFN1YnR5cGVOb2RlIi8+CiAJPC9FeHRlbnNpb25Qb2ludD4K LQotCTxFeHRlbnNpb25Qb2ludCBwYXRoID0gIi9Nb25vRGV2ZWxvcC9Qcm9qZWN0TW9kZWwvTUQx U2VyaWFsaXphdGlvbk1hcHMiPgotCQk8RGVzY3JpcHRpb24+U2VyaWFsaXphdGlvbiBtYXBzIGZv ciB0aGUgTW9ub0RldmVsb3AgMS4wIGZpbGUgZm9ybWF0PC9EZXNjcmlwdGlvbj4KLQkJPEV4dGVu c2lvbk5vZGUgbmFtZT0iU2VyaWFsaXphdGlvbk1hcCIgdHlwZT0iTW9ub0RldmVsb3AuUHJvamVj dHMuRXh0ZW5zaW9ucy5TZXJpYWxpemF0aW9uTWFwTm9kZSIvPgotCTwvRXh0ZW5zaW9uUG9pbnQ+ CiAJCiAJPEV4dGVuc2lvblBvaW50IHBhdGggPSAiL01vbm9EZXZlbG9wL1Byb2plY3RNb2RlbC9Q b2xpY3lUeXBlcyIgbmFtZSA9ICJQb2xpY3kgdHlwZXMiPgogCQk8RGVzY3JpcHRpb24+VHlwZXMg Zm9yIHBlci1wcm9qZWN0IHBvbGljaWVzIGxhbmd1YWdlIGJpbmRpbmcuIFRoZXNlIHR5cGVzIG11 c3QgYmUgc2VyaWFsaXphYmxlLjwvRGVzY3JpcHRpb24+CkBAIC0yNjAsMTAgKzI1NSw2IEBACiAJ CTxDbGFzcyBpZD0iRmluYWxTdGVwIiBjbGFzcyA9ICJNb25vRGV2ZWxvcC5Db3JlLkZpbGVTeXN0 ZW0uRHVtbXlGaWxlU3lzdGVtRXh0ZW5zaW9uIiAvPgogCTwvRXh0ZW5zaW9uPgogCQotCTxFeHRl bnNpb24gcGF0aCA9ICIvTW9ub0RldmVsb3AvUHJvamVjdE1vZGVsL01EMVNlcmlhbGl6YXRpb25N YXBzIj4KLQkJPFNlcmlhbGl6YXRpb25NYXAgcmVzb3VyY2U9Im1kMWZvcm1hdC54bWwiIC8+Ci0J PC9FeHRlbnNpb24+Ci0JCiAJPEV4dGVuc2lvbiBwYXRoID0gIi9Nb25vRGV2ZWxvcC9Qcm9qZWN0 TW9kZWwvUG9saWN5U2V0cyIgPgogCQk8UG9saWN5U2V0IGlkPSJNb25vIiBfbmFtZT0iTW9ubyIg YWxsb3dEaWZmU2VyaWFsaXplPSJ0cnVlIj4KIAkJPCEtLQk8UG9saWNpZXMgcmVzb3VyY2U9IiIg Lz4gLS0+DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0Rl dmVsb3AuQ29yZS5jc3Byb2oNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0zMzIsMTkgKzMzMiwxMCBAQAogICAg IDxDb21waWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLkV4dGVuc2lvbnNcSVJlc291 cmNlSGFuZGxlci5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5FeHRlbnNpb25zXElQYXRoSGFuZGxlci5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRl PSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5FeHRlbnNpb25zXElBc3NlbWJseVJlZmVyZW5jZUhhbmRs ZXIuY3MiIC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9y bWF0cy5NRDFcTUQxQ3VzdG9tRGF0YUl0ZW0uY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0i TW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcTUQxRG90TmV0UHJvamVjdEhhbmRsZXIu Y3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0 cy5NRDFcTUQxRmlsZUZvcm1hdC5jcyIgLz4KLSAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2 ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMVxNRDFQcm9qZWN0U2VydmljZS5jcyIgLz4KICAgICA8 Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMVxNRDFTb2x1 dGlvbkVudGl0eUl0ZW1IYW5kbGVyLmNzIiAvPgotICAgIDxDb21waWxlIEluY2x1ZGU9Ik1vbm9E ZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxXENvbWJpbmVDb25maWd1cmF0aW9uLmNzIiAvPgot ICAgIDxDb21waWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxXENv bWJpbmVDb25maWd1cmF0aW9uRW50cnkuY3MiIC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0iTW9u b0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcQ21ieEZpbGVGb3JtYXQuY3MiIC8+Ci0gICAg PENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcUHJqeEZp bGVGb3JtYXQuY3MiIC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVj dHMuRm9ybWF0cy5NRDFcQ29tYmluZUNvbmZpZ3VyYXRpb25TZXQuY3MiIC8+Ci0gICAgPENvbXBp bGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcQ29tYmluZVN0YXJ0 dXBNb2RlLmNzIiAvPgogICAgIDxDb21waWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLlByb2plY3Rz LkZvcm1hdHMuTUQxXE1EMVNvbHV0aW9uSXRlbUhhbmRsZXIuY3MiIC8+Ci0gICAgPENvbXBpbGUg SW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcQnVpbGRBY3Rpb25EYXRh VHlwZS5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5G b3JtYXRzLk1TQnVpbGRcTVNCdWlsZEZpbGVGb3JtYXQuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5j bHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NU0J1aWxkXE1TQnVpbGRQcm9qZWN0 SGFuZGxlci5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0 cy5Gb3JtYXRzLk1TQnVpbGRcU2xuRmlsZUZvcm1hdC5jcyIgLz4KQEAgLTQ2Myw2ICs0NTQsNyBA QAogICAgIDxDb21waWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLkNvcmUuV2ViXENyZWRlbnRpYWxQ cm92aWRlckV4dGVuc2lvbnMuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVs b3AuQ29yZS5XZWJcV2ViU2VydmljZS5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25v RGV2ZWxvcC5Db3JlLkxvZ2dpbmdcQXNzZXJ0TG9nZ2luZ1RyYWNlTGlzdGVuZXIuY3MiIC8+Cisg ICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDFcTUQx UHJvamVjdFNlcnZpY2UuY3MiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SXRlbUdyb3VwPgogICAg IDxOb25lIEluY2x1ZGU9Ik1ha2VmaWxlLmFtIiAvPgpAQCAtNDg5LDkgKzQ4MSw2IEBACiAgICAg PEVtYmVkZGVkUmVzb3VyY2UgSW5jbHVkZT0iZnJhbWV3b3Jrc1xmcmFtZXdvcmtfTkVUXzRfMC54 bWwiPgogICAgICAgPExvZ2ljYWxOYW1lPmZyYW1ld29ya19ORVRfNF8wLnhtbDwvTG9naWNhbE5h bWU+CiAgICAgPC9FbWJlZGRlZFJlc291cmNlPgotICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1 ZGU9Im1kMWZvcm1hdC54bWwiPgotICAgICAgPExvZ2ljYWxOYW1lPm1kMWZvcm1hdC54bWw8L0xv Z2ljYWxOYW1lPgotICAgIDwvRW1iZWRkZWRSZXNvdXJjZT4KICAgICA8RW1iZWRkZWRSZXNvdXJj ZSBJbmNsdWRlPSJmcmFtZXdvcmtzXGZyYW1ld29ya19ORVRfNF81LnhtbCI+CiAgICAgICA8TG9n aWNhbE5hbWU+ZnJhbWV3b3JrX05FVF80XzUueG1sPC9Mb2dpY2FsTmFtZT4KICAgICA8L0VtYmVk ZGVkUmVzb3VyY2U+DQoNClJlbW92ZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuQ29yZS9N b25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS9CdWlsZEFjdGlvbkRhdGFUeXBlLmNzDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQpAQCAtMSw4NCArMCwwIEBACi0vLyAKLS8vIEJ1aWxkQWN0aW9uRGF0YVR5cGUu Y3MKLS8vIAotLy8gQXV0aG9yOgotLy8gICBNaWNoYWVsIEh1dGNoaW5zb24gPG1odXRjaGluc29u QG5vdmVsbC5jb20+Ci0vLyAKLS8vIENvcHlyaWdodCAoQykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0 cDovL3d3dy5ub3ZlbGwuY29tKQotLy8gCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKLS8vIGEgY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotLy8g IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZwotLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0vLyBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K LS8vIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vIAotLy8gVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLS8vIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgot Ly8gCi0vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLS8vIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUKLS8vIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04KLS8vIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgotLy8gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0vLwotCi11c2luZyBTeXN0ZW07 Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6YXRpb247Ci11c2luZyBNb25vRGV2ZWxv cC5Db3JlOwotCi1uYW1lc3BhY2UgTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEKLXsK LQkKLQkvLy8gPHN1bW1hcnk+Ci0JLy8vIE1hcHMgc29tZSBidWlsZCBhY3Rpb24gbmFtZXMgYmV0 d2VlbiB0aGUgTUQxIGZvcm1hdCBhbmQgdGhlIHN0YW5kYXJkIE1TQnVpbGQgZXF1aXZhbGVudHMK LQkvLy8gPC9zdW1tYXJ5PgotCWNsYXNzIEJ1aWxkQWN0aW9uRGF0YVR5cGUgOiBQcmltaXRpdmVE YXRhVHlwZQotCXsKLQkJc3RyaW5nIEVtYmVkQXNSZXNvdXJjZSA9ICJFbWJlZEFzUmVzb3VyY2Ui OwotCQlzdHJpbmcgTm90aGluZyA9ICJOb3RoaW5nIjsKLQkJc3RyaW5nIEV4Y2x1ZGUgPSAiRXhj bHVkZSI7Ci0JCQotCQlwdWJsaWMgQnVpbGRBY3Rpb25EYXRhVHlwZSAoVHlwZSB0eXBlKTogYmFz ZSAodHlwZSkKLQkJewotCQl9Ci0KLQkJaW50ZXJuYWwgcHJvdGVjdGVkIG92ZXJyaWRlIERhdGFO b2RlIE9uU2VyaWFsaXplIChTZXJpYWxpemF0aW9uQ29udGV4dCBzZXJDdHgsIG9iamVjdCBtYXBE YXRhLCBvYmplY3QgdmFsdWUpCi0JCXsKLQkJCXN0cmluZyBzdHIgPSB2YWx1ZSBhcyBzdHJpbmc7 Ci0JCQlzd2l0Y2ggKHN0cikgewotCQkJY2FzZSAiTm9uZSI6Ci0JCQkJc3RyID0gTm90aGluZzsK LQkJCQlicmVhazsKLQkJCWNhc2UgIkVtYmVkZGVkUmVzb3VyY2UiOgotCQkJCXN0ciA9IEVtYmVk QXNSZXNvdXJjZTsKLQkJCQlicmVhazsKLQkJCWNhc2UgIkNvbnRlbnQiOgotCQkJCXN0ciA9IEV4 Y2x1ZGU7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlyZXR1cm4gbmV3IERhdGFWYWx1ZSAoTmFtZSwg c3RyKTsKLQkJfQotCQkKLQkJaW50ZXJuYWwgcHJvdGVjdGVkIG92ZXJyaWRlIG9iamVjdCBPbkRl c2VyaWFsaXplIChTZXJpYWxpemF0aW9uQ29udGV4dCBzZXJDdHgsIG9iamVjdCBtYXBEYXRhLCBE YXRhTm9kZSBkYXRhKQotCQl7Ci0JCQlzdHJpbmcgc3RyID0gKChEYXRhVmFsdWUpZGF0YSkuVmFs dWU7Ci0JCQlzd2l0Y2ggKHN0cikgewotCQkJY2FzZSAiTm90aGluZyI6Ci0JCQkJc3RyID0gQnVp bGRBY3Rpb24uTm9uZTsKLQkJCQlicmVhazsKLQkJCWNhc2UgIkVtYmVkQXNSZXNvdXJjZSI6Ci0J CQkJc3RyID0gQnVpbGRBY3Rpb24uRW1iZWRkZWRSZXNvdXJjZTsKLQkJCQlicmVhazsKLQkJCWNh c2UgIkZpbGVDb3B5IjoKLQkJCWNhc2UgIkV4Y2x1ZGUiOgotCQkJCXN0ciA9IEJ1aWxkQWN0aW9u LkNvbnRlbnQ7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlyZXR1cm4gc3RyOwotCQl9Ci0JfQkKLX0N Cg0KUmVtb3ZlZDogbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlBy b2plY3RzLkZvcm1hdHMuTUQxL0NtYnhGaWxlRm9ybWF0LmNzDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSw0 ODUgKzAsMCBAQAotLy8KLS8vIENtYnhGaWxlRm9ybWF0LmNzCi0vLwotLy8gQXV0aG9yOgotLy8g ICBMbHVpcyBTYW5jaGV6IEd1YWwKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMDUgTm92ZWxsLCBJ bmMgKGh0dHA6Ly93d3cubm92ZWxsLmNvbSkKLS8vCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKLS8vIGEgY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZQotLy8gIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZwotLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0vLyBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8KLS8vIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vIAotLy8gVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLS8vIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLgotLy8gCi0vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotLy8gTUVSQ0hBTlRBQklMSVRZLCBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLS8vIE5PTklORlJJTkdFTUVOVC4g SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUKLS8v IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04KLS8vIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgotLy8gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0vLwotCi11c2luZyBT eXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlv bnMuR2VuZXJpYzsKLXVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5PYmplY3RNb2RlbDsKLXVzaW5n IFN5c3RlbS5Db2xsZWN0aW9ucy5TcGVjaWFsaXplZDsKLXVzaW5nIFN5c3RlbS5JTzsKLXVzaW5n IFN5c3RlbS5YbWw7Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlOwotdXNpbmcgTW9ub0RldmVsb3Au UHJvamVjdHM7Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6YXRpb247Ci0KLW5hbWVz cGFjZSBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMQotewotCWludGVyZmFjZSBJQ29t YmluZVJlYWRlciB7Ci0JCW9iamVjdCBSZWFkQ29tYmluZSAoWG1sUmVhZGVyIHJlYWRlcik7Ci0J fQotCQotCWNsYXNzIENvbWJpbmVSZWFkZXJWMjogWG1sQ29uZmlndXJhdGlvblJlYWRlciwgSUNv bWJpbmVSZWFkZXIKLQl7Ci0JCURhdGFTZXJpYWxpemVyIHNlcmlhbGl6ZXI7Ci0JCUFycmF5TGlz dCBlbnRyaWVzID0gbmV3IEFycmF5TGlzdCAoKTsKLQkJSVByb2dyZXNzTW9uaXRvciBtb25pdG9y OwotCQlUeXBlIG9iamVjdFR5cGU7Ci0JCXN0cmluZyBiYXNlRmlsZTsKLQkJCi0JCXB1YmxpYyBD b21iaW5lUmVhZGVyVjIgKERhdGFTZXJpYWxpemVyIHNlcmlhbGl6ZXIsIElQcm9ncmVzc01vbml0 b3IgbW9uaXRvciwgVHlwZSBvYmplY3RUeXBlKQotCQl7Ci0JCQl0aGlzLnNlcmlhbGl6ZXIgPSBz ZXJpYWxpemVyOwotCQkJdGhpcy5vYmplY3RUeXBlID0gb2JqZWN0VHlwZTsKLQkJCWJhc2VGaWxl ID0gc2VyaWFsaXplci5TZXJpYWxpemF0aW9uQ29udGV4dC5CYXNlRmlsZTsKLQkJCXRoaXMubW9u aXRvciA9IG1vbml0b3I7Ci0JCX0KLQkJCi0JCXB1YmxpYyBvYmplY3QgUmVhZENvbWJpbmUgKFht bFJlYWRlciByZWFkZXIpCi0JCXsKLQkJCURhdGFJdGVtIGRhdGEgPSAoRGF0YUl0ZW0pIFJlYWQg KHJlYWRlcik7Ci0JCQkKLQkJCS8vIEJvdGggY29tYmluZSBhbmQgU29sdXRpb25Gb2xkZXIgdXNl IHRoZSBzYW1lIGVsZW1lbnQgbmFtZSwgYnV0IHRoZSB0eXBlcyBhcmUgZGlmZmVyZW50Ci0JCQlp ZiAoZGF0YS5OYW1lID09ICJDb21iaW5lIiAmJiBvYmplY3RUeXBlID09IHR5cGVvZihTb2x1dGlv bkZvbGRlcikpCi0JCQkJZGF0YS5OYW1lID0gIlNvbHV0aW9uRm9sZGVyIjsKLQkJCQotCQkJU29s dXRpb25Gb2xkZXIgZm9sZGVyOwotCQkJSUV4dGVuZGVkRGF0YUl0ZW0gb2JqID0gKElFeHRlbmRl ZERhdGFJdGVtKSBzZXJpYWxpemVyLkNyZWF0ZUluc3RhbmNlIChvYmplY3RUeXBlLCBkYXRhKTsK LQkJCVNvbHV0aW9uIHNvbCA9IG9iaiBhcyBTb2x1dGlvbjsKLQkJCWlmIChzb2wgIT0gbnVsbCkg ewotCQkJCWZvbGRlciA9IHNvbC5Sb290Rm9sZGVyOwotCQkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQg KE1EMVByb2plY3RTZXJ2aWNlLkZpbGVGb3JtYXQsIGZhbHNlKTsKLQkJCQlzb2wuRmlsZU5hbWUg PSBzZXJpYWxpemVyLlNlcmlhbGl6YXRpb25Db250ZXh0LkJhc2VGaWxlOwotCQkJCWZvbGRlci5F eHRlbmRlZFByb3BlcnRpZXMgWyJGaWxlTmFtZSJdID0gc2VyaWFsaXplci5TZXJpYWxpemF0aW9u Q29udGV4dC5CYXNlRmlsZTsKLQkJCX0KLQkJCWVsc2UgewotCQkJCWZvbGRlciA9IChTb2x1dGlv bkZvbGRlcikgb2JqOwotCQkJCW9iai5FeHRlbmRlZFByb3BlcnRpZXMgWyJGaWxlTmFtZSJdID0g c2VyaWFsaXplci5TZXJpYWxpemF0aW9uQ29udGV4dC5CYXNlRmlsZTsKLQkJCX0KLQkJCQotCQkJ Ly8gVGhlIGZvbGRlciBlbnRyaWVzIG11c3QgYmUgYWRkZWQgYmVmb3JlIGRlc2VyaWFsaXppbmcg dGhlIGZvbGRlcgotCQkJLy8gc2luY2Ugb3RoZXIgZm9sZGVyIG1lbWJlcnMgZGVwZW5kIG9uIGl0 Ci0JCQkKLQkJCWZvcmVhY2ggKFNvbHV0aW9uSXRlbSBjZSBpbiBlbnRyaWVzKQotCQkJCWZvbGRl ci5JdGVtcy5BZGQgKGNlKTsKLQkJCQotCQkJc2VyaWFsaXplci5EZXNlcmlhbGl6ZSAob2JqLCBk YXRhKTsKLQkJCQotCQkJaWYgKHNvbCAhPSBudWxsKSB7Ci0JCQkJQ3JlYXRlU29sdXRpb25Db25m aWd1cmF0aW9ucyAoc29sKTsKLQkJCQlMb2FkU3RhcnR1cE1vZGUgKHNvbCk7Ci0JCQl9Ci0JCQkK LQkJCQotCQkJcmV0dXJuIG9iajsKLQkJfQotCQkKLQkJcHJvdGVjdGVkIG92ZXJyaWRlIERhdGFO b2RlIFJlYWRDaGlsZCAoWG1sUmVhZGVyIHJlYWRlciwgRGF0YUl0ZW0gcGFyZW50KQotCQl7Ci0J CQlpZiAocmVhZGVyLkxvY2FsTmFtZSA9PSAiRW50cmllcyIpIHsKLQkJCQlpZiAocmVhZGVyLklz RW1wdHlFbGVtZW50KSB7IHJlYWRlci5Ta2lwKCk7IHJldHVybiBudWxsOyB9Ci0JCQkJc3RyaW5n IGJhc2VQYXRoID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lIChiYXNlRmlsZSk7Ci0JCQkJcmVhZGVy LlJlYWRTdGFydEVsZW1lbnQgKCk7Ci0JCQkJCi0JCQkJQXJyYXlMaXN0IGZpbGVzID0gbmV3IEFy cmF5TGlzdCAoKTsKLQkJCQl3aGlsZSAoTW92ZVRvTmV4dEVsZW1lbnQgKHJlYWRlcikpIHsKLQkJ CQkJc3RyaW5nIG5vZGVmaWxlID0gcmVhZGVyLkdldEF0dHJpYnV0ZSAoImZpbGVuYW1lIik7Ci0J CQkJCW5vZGVmaWxlID0gRmlsZVNlcnZpY2UuUmVsYXRpdmVUb0Fic29sdXRlUGF0aCAoYmFzZVBh dGgsIG5vZGVmaWxlKTsKLQkJCQkJZmlsZXMuQWRkIChub2RlZmlsZSk7Ci0JCQkJCXJlYWRlci5T a2lwICgpOwotCQkJCX0KLQkJCQkKLQkJCQltb25pdG9yLkJlZ2luVGFzayAoR2V0dGV4dENhdGFs b2cuR2V0U3RyaW5nICgiTG9hZGluZyBzb2x1dGlvbjogezB9IiwgYmFzZUZpbGUpLCBmaWxlcy5D b3VudCk7Ci0JCQkJdHJ5IHsKLQkJCQkJZm9yZWFjaCAoc3RyaW5nIG5vZGVmaWxlIGluIGZpbGVz KSB7Ci0JCQkJCQl0cnkgewotCQkJCQkJCWlmIChQYXRoLkdldEV4dGVuc2lvbiAobm9kZWZpbGUp LlRvTG93ZXIgKCkgPT0gIi5tZHMiKSB7Ci0JCQkJCQkJCWVudHJpZXMuQWRkIChSZWFkU29sdXRp b25Gb2xkZXIgKG5vZGVmaWxlLCBtb25pdG9yKSk7Ci0JCQkJCQkJfQotCQkJCQkJCWVsc2Ugewot CQkJCQkJCQlTb2x1dGlvbkVudGl0eUl0ZW0gZW50cnkgPSAoU29sdXRpb25FbnRpdHlJdGVtKSBT ZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5SZWFkU29sdXRpb25JdGVtIChtb25pdG9yLCBub2RlZmls ZSk7Ci0JCQkJCQkJCWVudHJpZXMuQWRkIChlbnRyeSk7Ci0JCQkJCQkJfQotCQkJCQkJfSBjYXRj aCAoRXhjZXB0aW9uIGV4KSB7Ci0JCQkJCQkJVW5rbm93blNvbHV0aW9uSXRlbSBlbnRyeSA9IG5l dyBVbmtub3duU29sdXRpb25JdGVtICgpOwotCQkJCQkJCWVudHJ5LkZpbGVOYW1lID0gbm9kZWZp bGU7Ci0JCQkJCQkJZW50cnkuTG9hZEVycm9yID0gZXguTWVzc2FnZTsKLQkJCQkJCQllbnRyaWVz LkFkZCAoZW50cnkpOwotCQkJCQkJCW1vbml0b3IuUmVwb3J0RXJyb3IgKEdldHRleHRDYXRhbG9n LkdldFN0cmluZyAoIkNvdWxkIG5vdCBsb2FkIGl0ZW06IHswfSIsIG5vZGVmaWxlKSwgZXgpOwot CQkJCQkJfQotCQkJCQkJbW9uaXRvci5TdGVwICgxKTsKLQkJCQkJfQotCQkJCX0gZmluYWxseSB7 Ci0JCQkJCW1vbml0b3IuRW5kVGFzayAoKTsKLQkJCQl9Ci0JCQkJCi0JCQkJcmVhZGVyLlJlYWRF bmRFbGVtZW50ICgpOwotCQkJCXJldHVybiBudWxsOwotCQkJfQotCQkJCi0JCQlyZXR1cm4gYmFz ZS5SZWFkQ2hpbGQgKHJlYWRlciwgcGFyZW50KTsKLQkJfQotCQkKLQkJdm9pZCBDcmVhdGVTb2x1 dGlvbkNvbmZpZ3VyYXRpb25zIChTb2x1dGlvbiBzb2wpCi0JCXsKLQkJCUNvbWJpbmVDb25maWd1 cmF0aW9uU2V0IGNvbmZpZ3MgPSAoQ29tYmluZUNvbmZpZ3VyYXRpb25TZXQpIHNvbC5FeHRlbmRl ZFByb3BlcnRpZXMgWyJDb25maWd1cmF0aW9ucyJdOwotCQkJZm9yZWFjaCAoQ29tYmluZUNvbmZp Z3VyYXRpb24gY29uZmlnIGluIGNvbmZpZ3MuQ29uZmlndXJhdGlvbnMpIHsKLQkJCQlTb2x1dGlv bkNvbmZpZ3VyYXRpb24gc2NvbmYgPSBjb25maWcuU29sdXRpb25Db25maWd1cmF0aW9uID8/IG5l dyBTb2x1dGlvbkNvbmZpZ3VyYXRpb24gKGNvbmZpZy5OYW1lKTsKLQkJCQlzb2wuQ29uZmlndXJh dGlvbnMuQWRkIChzY29uZik7Ci0JCQl9Ci0JCQkKLQkJCWZvcmVhY2ggKFNvbHV0aW9uRW50aXR5 SXRlbSBpdGVtIGluIHNvbC5HZXRBbGxTb2x1dGlvbkl0ZW1zPFNvbHV0aW9uRW50aXR5SXRlbT4g KCkpIHsKLQkJCQkKLQkJCQlMaXN0PElFeHRlbmRlZERhdGFJdGVtPiBjaGFpbiA9IG5ldyBMaXN0 PElFeHRlbmRlZERhdGFJdGVtPiAoKTsKLQkJCQlTb2x1dGlvbkl0ZW0gaXQgPSBpdGVtOwotCQkJ CXdoaWxlIChpdCAhPSBudWxsKSB7Ci0JCQkJCWNoYWluLkluc2VydCAoMCwgaXQpOwotCQkJCQlp dCA9IGl0LlBhcmVudEZvbGRlcjsKLQkJCQl9Ci0JCQkJY2hhaW4gWzBdID0gc29sOwotCQkJCQot CQkJCWZvcmVhY2ggKFNvbHV0aW9uQ29uZmlndXJhdGlvbiBzY29uZmlnIGluIHNvbC5Db25maWd1 cmF0aW9ucykgewotCQkJCQlTb2x1dGlvbkNvbmZpZ3VyYXRpb25FbnRyeSBzZSA9IHNjb25maWcu QWRkSXRlbSAoaXRlbSk7Ci0JCQkJCXN0cmluZyBpdGVtQ29uZmlnID0gRmluZEl0ZW1Db25maWd1 cmF0aW9uIChjaGFpbiwgc2NvbmZpZy5JZCk7Ci0JCQkJCWlmIChpdGVtQ29uZmlnICE9IG51bGwp IHsKLQkJCQkJCXNlLkJ1aWxkID0gdHJ1ZTsKLQkJCQkJCXNlLkl0ZW1Db25maWd1cmF0aW9uID0g aXRlbUNvbmZpZzsKLQkJCQkJfQotCQkJCQllbHNlCi0JCQkJCQlzZS5CdWlsZCA9IGZhbHNlOwot CQkJCX0KLQkJCX0KLQkJCQotCQkJc29sLkRlZmF1bHRDb25maWd1cmF0aW9uSWQgPSBjb25maWdz LkFjdGl2ZTsKLQkJfQotCQkKLQkJdm9pZCBMb2FkU3RhcnR1cE1vZGUgKFNvbHV0aW9uIHNvbCkK LQkJewotCQkJLy8gUmVjdXJzaXZlbHkgbG9vayBmb3Igc3RhcnR1cCBpdGVtcy4gSWYgdGhlcmUg aXMgbW9yZSB0aGFuIG9uZSwKLQkJCS8vIGl0IG1lYW5zIGl0IGlzIGEgbXVsdGkgc3RhcnR1cCBz b2x1dGlvbi4KLQkJCUxpc3Q8U29sdXRpb25FbnRpdHlJdGVtPiBpdGVtcyA9IG5ldyBMaXN0PFNv bHV0aW9uRW50aXR5SXRlbT4gKCk7Ci0JCQlGaW5kU3RhcnR1cEl0ZW1zIChzb2wsIHNvbC5Sb290 Rm9sZGVyLCBpdGVtcyk7Ci0JCQkKLQkJCWlmIChpdGVtcy5Db3VudCA9PSAxKSB7Ci0JCQkJc29s LlNpbmdsZVN0YXJ0dXAgPSB0cnVlOwotCQkJCXNvbC5TdGFydHVwSXRlbSA9IGl0ZW1zIFswXTsK LQkJCX0gZWxzZSBpZiAoaXRlbXMuQ291bnQgPiAxKSB7Ci0JCQkJc29sLlNpbmdsZVN0YXJ0dXAg PSBmYWxzZTsKLQkJCQlzb2wuTXVsdGlTdGFydHVwSXRlbXMuQWRkUmFuZ2UgKGl0ZW1zKTsKLQkJ CX0KLQkJfQotCQkKLQkJdm9pZCBGaW5kU3RhcnR1cEl0ZW1zIChTb2x1dGlvbiBzb2wsIFNvbHV0 aW9uRm9sZGVyIGZvbGRlciwgTGlzdDxTb2x1dGlvbkVudGl0eUl0ZW0+IGl0ZW1zKQotCQl7Ci0J CQlDb21iaW5lU3RhcnR1cE1vZGUgc3RhcnR1cE1vZGUgPSAoQ29tYmluZVN0YXJ0dXBNb2RlKSBm b2xkZXIuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiU3RhcnRNb2RlIl07Ci0JCQlpZiAoc3RhcnR1cE1v ZGUgIT0gbnVsbCkgewotCQkJCWlmIChzdGFydHVwTW9kZS5TaW5nbGVTdGFydHVwKSB7Ci0JCQkJ CVNvbHV0aW9uSXRlbSBpdCA9IEZpbmRJdGVtQnlOYW1lIChmb2xkZXIsIHN0YXJ0dXBNb2RlLlN0 YXJ0RW50cnlOYW1lKTsKLQkJCQkJaWYgKGl0IGlzIFNvbHV0aW9uRm9sZGVyKQotCQkJCQkJRmlu ZFN0YXJ0dXBJdGVtcyAoc29sLCAoU29sdXRpb25Gb2xkZXIpaXQsIGl0ZW1zKTsKLQkJCQkJZWxz ZSBpZiAoaXQgaXMgU29sdXRpb25FbnRpdHlJdGVtKQotCQkJCQkJaXRlbXMuQWRkICgoU29sdXRp b25FbnRpdHlJdGVtKSBpdCk7Ci0JCQkJCXJldHVybjsKLQkJCQl9IGVsc2UgewotCQkJCQlmb3Jl YWNoIChDb21iaW5lU3RhcnR1cEVudHJ5IGNzZSBpbiBzdGFydHVwTW9kZS5FbnRyaWVzKSB7Ci0J CQkJCQlpZiAoY3NlLlR5cGUgPT0gIkV4ZWN1dGUiKSB7Ci0JCQkJCQkJU29sdXRpb25JdGVtIGl0 ID0gRmluZEl0ZW1CeU5hbWUgKGZvbGRlciwgY3NlLkVudHJ5KTsKLQkJCQkJCQlpZiAoaXQgaXMg U29sdXRpb25Gb2xkZXIpCi0JCQkJCQkJCUZpbmRTdGFydHVwSXRlbXMgKHNvbCwgKFNvbHV0aW9u Rm9sZGVyKWl0LCBpdGVtcyk7Ci0JCQkJCQkJZWxzZSBpZiAoaXQgaXMgU29sdXRpb25FbnRpdHlJ dGVtKQotCQkJCQkJCQlpdGVtcy5BZGQgKChTb2x1dGlvbkVudGl0eUl0ZW0pIGl0KTsKLQkJCQkJ CX0KLQkJCQkJfQotCQkJCX0KLQkJCX0KLQkJfQotCQkKLQkJU29sdXRpb25JdGVtIEZpbmRJdGVt QnlOYW1lIChTb2x1dGlvbkZvbGRlciBmb2xkZXIsIHN0cmluZyBuYW1lKQotCQl7Ci0JCQlmb3Jl YWNoIChTb2x1dGlvbkl0ZW0gaXQgaW4gZm9sZGVyLkl0ZW1zKQotCQkJCWlmIChpdC5OYW1lID09 IG5hbWUpCi0JCQkJCXJldHVybiBpdDsKLQkJCXJldHVybiBudWxsOwotCQl9Ci0JCQotCQlzdHJp bmcgRmluZEl0ZW1Db25maWd1cmF0aW9uIChMaXN0PElFeHRlbmRlZERhdGFJdGVtPiBjaGFpbiwg c3RyaW5nIGNvbmZpZ0lkKQotCQl7Ci0JCQlmb3IgKGludCBuPTA7IG4gPCBjaGFpbi5Db3VudCAt IDE7IG4rKykgewotCQkJCUNvbWJpbmVDb25maWd1cmF0aW9uU2V0IGNvbmZpZ3MgPSAoQ29tYmlu ZUNvbmZpZ3VyYXRpb25TZXQpIGNoYWluW25dLkV4dGVuZGVkUHJvcGVydGllcyBbIkNvbmZpZ3Vy YXRpb25zIl07Ci0JCQkJaWYgKGNvbmZpZ3MgPT0gbnVsbCkKLQkJCQkJcmV0dXJuIG51bGw7Ci0J CQkJU29sdXRpb25JdGVtIGl0ZW0gPSAoU29sdXRpb25JdGVtKSBjaGFpbiBbbisxXTsKLQkJCQlD b21iaW5lQ29uZmlndXJhdGlvbiBjb21iaW5lQ29uZmlnID0gY29uZmlncy5HZXRDb25maWcgKGNv bmZpZ0lkKTsKLQkJCQlpZiAoY29tYmluZUNvbmZpZyA9PSBudWxsKSB7Ci0JCQkJCW1vbml0b3Iu UmVwb3J0V2FybmluZyAoIkNvbmZpZ3VyYXRpb24gJyIgKyBjb25maWdJZCArICInIG5vdCBmb3Vu ZCBpbiBzb2x1dGlvbiBpdGVtICciICsgaXRlbS5OYW1lICsgIicuIik7Ci0JCQkJCXJldHVybiBu dWxsOwotCQkJCX0KLQkJCQlzdHJpbmcgbWFwcGVkQ29uZmlnSWQgPSBjb21iaW5lQ29uZmlnLkdl dE1hcHBlZENvbmZpZyAoaXRlbS5OYW1lKTsKLQkJCQlpZiAobWFwcGVkQ29uZmlnSWQgPT0gbnVs bCkKLQkJCQkJcmV0dXJuIG51bGw7Ci0JCQkJaWYgKG1hcHBlZENvbmZpZ0lkICE9IHN0cmluZy5F bXB0eSkKLQkJCQkJY29uZmlnSWQgPSBtYXBwZWRDb25maWdJZDsKLQkJCX0KLQkJCXJldHVybiBj b25maWdJZDsKLQkJfQotCQotCQlvYmplY3QgUmVhZFNvbHV0aW9uRm9sZGVyIChzdHJpbmcgZmls ZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQotCQl7Ci0JCQlYbWxUZXh0UmVhZGVyIHJlYWRl ciA9IG5ldyBYbWxUZXh0UmVhZGVyIChuZXcgU3RyZWFtUmVhZGVyIChmaWxlKSk7Ci0JCQlyZWFk ZXIuTW92ZVRvQ29udGVudCAoKTsKLQkJCQotCQkJc3RyaW5nIHZlcnNpb24gPSByZWFkZXIuR2V0 QXR0cmlidXRlICgidmVyc2lvbiIpOwotCQkJaWYgKHZlcnNpb24gPT0gbnVsbCkKLQkJCQl2ZXJz aW9uID0gcmVhZGVyLkdldEF0dHJpYnV0ZSAoImZpbGV2ZXJzaW9uIik7Ci0JCQkKLQkJCURhdGFT ZXJpYWxpemVyIHNlcmlhbGl6ZXIgPSBuZXcgRGF0YVNlcmlhbGl6ZXIgKE1EMVByb2plY3RTZXJ2 aWNlLkRhdGFDb250ZXh0LCBmaWxlKTsKLQkJCQotCQkJdHJ5IHsKLQkJCQlpZiAodmVyc2lvbiAh PSAiMi4wIikKLQkJCQkJdGhyb3cgbmV3IE1EMVVua25vd25Qcm9qZWN0VmVyc2lvbiAoZmlsZSwg dmVyc2lvbik7Ci0JCQkJSUNvbWJpbmVSZWFkZXIgY29tYmluZVJlYWRlciA9IG5ldyBDb21iaW5l UmVhZGVyVjIgKHNlcmlhbGl6ZXIsIG1vbml0b3IsIHR5cGVvZihTb2x1dGlvbkZvbGRlcikpOwot CQkJCXJldHVybiBjb21iaW5lUmVhZGVyLlJlYWRDb21iaW5lIChyZWFkZXIpOwotCQkJfSBjYXRj aCAoRXhjZXB0aW9uIGV4KSB7Ci0JCQkJbW9uaXRvci5SZXBvcnRFcnJvciAoR2V0dGV4dENhdGFs b2cuR2V0U3RyaW5nICgiQ291bGQgbm90IGxvYWQgc29sdXRpb246IHswfSIsIGZpbGUpLCBleCk7 Ci0JCQkJdGhyb3c7Ci0JCQl9IGZpbmFsbHkgewotCQkJCXJlYWRlci5DbG9zZSAoKTsKLQkJCX0K LQkJfQotCQkKLQkJcHJvdGVjdGVkIG92ZXJyaWRlIFhtbENvbmZpZ3VyYXRpb25SZWFkZXIgR2V0 Q2hpbGRSZWFkZXIgKE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlvbi5EYXRhSXRlbSBwYXJl bnQpCi0JCXsKLQkJCS8vIERvbid0IHJldXNlIHRoaXMgc2VyaWFsaXplciBmb3IgY2hpbGRyZW4s IHNpbmNlIGl0IGhhcyBzb2x1dGlvbi1zcGVjaWZpYyBzZXJpYWxpemF0aW9uIGNvZGUKLQkJCXJl dHVybiBYbWxDb25maWd1cmF0aW9uUmVhZGVyLkRlZmF1bHRSZWFkZXI7Ci0JCX0KLQotCX0KLQkK LQljbGFzcyBDb21iaW5lV3JpdGVyVjI6IFhtbENvbmZpZ3VyYXRpb25Xcml0ZXIKLQl7Ci0JCVNv bHV0aW9uRm9sZGVyIGZvbGRlcjsKLQkJRGF0YVNlcmlhbGl6ZXIgc2VyaWFsaXplcjsKLQkJSVBy b2dyZXNzTW9uaXRvciBtb25pdG9yOwotCQlUeXBlIG9iamVjdFR5cGU7Ci0JCQotCQlwdWJsaWMg Q29tYmluZVdyaXRlclYyIChEYXRhU2VyaWFsaXplciBzZXJpYWxpemVyLCBJUHJvZ3Jlc3NNb25p dG9yIG1vbml0b3IsIFR5cGUgb2JqZWN0VHlwZSkKLQkJewotCQkJdGhpcy5zZXJpYWxpemVyID0g c2VyaWFsaXplcjsKLQkJCXRoaXMubW9uaXRvciA9IG1vbml0b3I7Ci0JCQl0aGlzLm9iamVjdFR5 cGUgPSBvYmplY3RUeXBlOwotCQl9Ci0KLQkJcHVibGljIHZvaWQgV3JpdGVDb21iaW5lIChYbWxX cml0ZXIgd3JpdGVyLCBvYmplY3QgaXRlbSkKLQkJewotCQkJaWYgKGl0ZW0gaXMgU29sdXRpb24p IHsKLQkJCQlTb2x1dGlvbiBzb2wgPSAoU29sdXRpb24pIGl0ZW07Ci0JCQkJZm9sZGVyID0gc29s LlJvb3RGb2xkZXI7Ci0JCQkJQ3JlYXRlQ29tYmluZUNvbmZpZ3VyYXRpb25zIChzb2wuUm9vdEZv bGRlcik7Ci0JCQkJQ3JlYXRlU3RhcnR1cE1vZGVzIChzb2wpOwotCQkJfQotCQkJZWxzZQotCQkJ CWZvbGRlciA9IChTb2x1dGlvbkZvbGRlcikgaXRlbTsKLQkJCQotCQkJRGF0YUl0ZW0gZGF0YSA9 IChEYXRhSXRlbSkgc2VyaWFsaXplci5TZXJpYWxpemUgKGl0ZW0sIG9iamVjdFR5cGUpOwotCQkJ Ci0JCQkvLyBCb3RoIGNvbWJpbmUgYW5kIFNvbHV0aW9uRm9sZGVyIHVzZSB0aGUgc2FtZSBlbGVt ZW50IG5hbWUsIGJ1dCB0aGUgdHlwZXMgYXJlIGRpZmZlcmVudAotCQkJaWYgKGRhdGEuTmFtZSA9 PSAiU29sdXRpb25Gb2xkZXIiICYmIG9iamVjdFR5cGUgPT0gdHlwZW9mKFNvbHV0aW9uRm9sZGVy KSkKLQkJCQlkYXRhLk5hbWUgPSAiQ29tYmluZSI7Ci0JCQkKLQkJCVdyaXRlICh3cml0ZXIsIGRh dGEpOwotCQl9Ci0JCQotCQl2b2lkIENyZWF0ZVN0YXJ0dXBNb2RlcyAoU29sdXRpb24gc29sKQot CQl7Ci0JCQkvLyBJbml0aWFsaXplIHRoZSBzdGFydHVwIG1vZGVzCi0JCQlSZWFkT25seUNvbGxl Y3Rpb248U29sdXRpb25Gb2xkZXI+IGZvbGRlcnMgPSBzb2wuR2V0QWxsU29sdXRpb25JdGVtczxT b2x1dGlvbkZvbGRlcj4gKCk7Ci0JCQlmb3JlYWNoIChTb2x1dGlvbkZvbGRlciBmb2xkZXIgaW4g Zm9sZGVycykgewotCQkJCUNvbWJpbmVTdGFydHVwTW9kZSBzdGFydHVwTW9kZSA9IG5ldyBDb21i aW5lU3RhcnR1cE1vZGUgKCk7Ci0JCQkJc3RhcnR1cE1vZGUuU2luZ2xlU3RhcnR1cCA9IHRydWU7 Ci0JCQkJc3RhcnR1cE1vZGUuU3RhcnRFbnRyeU5hbWUgPSBudWxsOwotCQkJCWZvcmVhY2ggKFNv bHV0aW9uSXRlbSBpdCBpbiBmb2xkZXIuSXRlbXMpCi0JCQkJCXN0YXJ0dXBNb2RlLkFkZEVudHJ5 IChpdC5OYW1lKTsKLQkJCQlmb2xkZXIuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiU3RhcnRNb2RlIl0g PSBzdGFydHVwTW9kZTsKLQkJCX0KLQkJCQotCQkJLy8gR2V0IHRoZSBsaXN0IG9mIHN0YXJ0dXAg aXRlbXMKLQkJCUlFbnVtZXJhYmxlPFNvbHV0aW9uRW50aXR5SXRlbT4gaXRlbXM7Ci0JCQlpZiAo c29sLlNpbmdsZVN0YXJ0dXApCi0JCQkJaXRlbXMgPSBuZXcgU29sdXRpb25FbnRpdHlJdGVtIFtd IHsgc29sLlN0YXJ0dXBJdGVtIH07Ci0JCQllbHNlCi0JCQkJaXRlbXMgPSBzb2wuTXVsdGlTdGFy dHVwSXRlbXM7Ci0KLQkJCS8vIFNldHVwIHRoZSBzdGFydHVwIG1vZGVzCi0JCQlmb3JlYWNoIChT b2x1dGlvbkVudGl0eUl0ZW0gaXQgaW4gaXRlbXMpIHsKLQkJCQlpZiAoaXQgPT0gbnVsbCkKLQkJ CQkJY29udGludWU7Ci0JCQkJU29sdXRpb25Gb2xkZXIgZm9sZGVyID0gaXQuUGFyZW50Rm9sZGVy OwotCQkJCVNvbHV0aW9uSXRlbSBwcmV2SXRlbSA9IGl0OwotCQkJCXdoaWxlIChmb2xkZXIgIT0g bnVsbCkgewotCQkJCQlDb21iaW5lU3RhcnR1cE1vZGUgc3RhcnR1cE1vZGUgPSAoQ29tYmluZVN0 YXJ0dXBNb2RlKSBmb2xkZXIuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiU3RhcnRNb2RlIl07Ci0JCQkJ CWlmIChzdGFydHVwTW9kZS5TaW5nbGVTdGFydHVwKSB7Ci0JCQkJCQkvLyBJZiBhIHN0YXJ0IGVu dHJ5IGlzIGFscmVhZHkgc2V0LCBjb252ZXJ0IHRvIG11bHRpIHN0YXJ0dXAgbW9kZQotCQkJCQkJ aWYgKHN0YXJ0dXBNb2RlLlN0YXJ0RW50cnlOYW1lID09IG51bGwpCi0JCQkJCQkJc3RhcnR1cE1v ZGUuU3RhcnRFbnRyeU5hbWUgPSBwcmV2SXRlbS5OYW1lOwotCQkJCQkJZWxzZSBpZiAoc3RhcnR1 cE1vZGUuU3RhcnRFbnRyeU5hbWUgIT0gcHJldkl0ZW0uTmFtZSkgewotCQkJCQkJCXN0YXJ0dXBN b2RlLlNpbmdsZVN0YXJ0dXAgPSBmYWxzZTsKLQkJCQkJCQlzdGFydHVwTW9kZS5NYWtlRXhlY3V0 YWJsZSAoc3RhcnR1cE1vZGUuU3RhcnRFbnRyeU5hbWUpOwotCQkJCQkJCXN0YXJ0dXBNb2RlLk1h a2VFeGVjdXRhYmxlIChwcmV2SXRlbS5OYW1lKTsKLQkJCQkJCX0KLQkJCQkJfSBlbHNlIHsKLQkJ CQkJCS8vIEFscmVhZHkgbXVsdGkgc3RhcnR1cCwganVzdCBhZGQgdGhlIG5ldyBpdGVtCi0JCQkJ CQlzdGFydHVwTW9kZS5NYWtlRXhlY3V0YWJsZSAocHJldkl0ZW0uTmFtZSk7Ci0JCQkJCX0KLQkJ CQkJcHJldkl0ZW0gPSBmb2xkZXI7Ci0JCQkJCWZvbGRlciA9IGZvbGRlci5QYXJlbnRGb2xkZXI7 Ci0JCQkJfQotCQkJfQotCQkJCi0JCQkvLyBTZXQgdGhlIHN0YXJ0dXAgaXRlbSBmb3IgZm9sZGVy cyB3aGljaCBkb24ndCBoYXZlIG9uZQotCQkJZm9yZWFjaCAoU29sdXRpb25Gb2xkZXIgZm9sZGVy IGluIGZvbGRlcnMpIHsKLQkJCQlDb21iaW5lU3RhcnR1cE1vZGUgc3RhcnR1cE1vZGUgPSAoQ29t YmluZVN0YXJ0dXBNb2RlKSBmb2xkZXIuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiU3RhcnRNb2RlIl07 Ci0JCQkJaWYgKHN0YXJ0dXBNb2RlLlNpbmdsZVN0YXJ0dXAgJiYgc3RhcnR1cE1vZGUuU3RhcnRF bnRyeU5hbWUgPT0gbnVsbCkgewotCQkJCQlpZiAoZm9sZGVyLkl0ZW1zLkNvdW50ID4gMCkKLQkJ CQkJCXN0YXJ0dXBNb2RlLlN0YXJ0RW50cnlOYW1lID0gZm9sZGVyLkl0ZW1zIFswXS5OYW1lOwot CQkJCX0KLQkJCX0KLQkJfQotCQkKLQkJdm9pZCBDcmVhdGVDb21iaW5lQ29uZmlndXJhdGlvbnMg KFNvbHV0aW9uRm9sZGVyIGZvbGRlcikKLQkJewotCQkJSURpY3Rpb25hcnkgZXh0ZW5kZWRQcm9w ZXJ0aWVzID0gZm9sZGVyLkV4dGVuZGVkUHJvcGVydGllczsKLQkJCQotCQkJQ29tYmluZUNvbmZp Z3VyYXRpb25TZXQgY29uZmlncyA9IENyZWF0ZUNvbWJpbmVDb25maWd1cmF0aW9uU2V0IChmb2xk ZXIuUGFyZW50U29sdXRpb24sIGZvbGRlci5Jc1Jvb3QpOwotCQkJY29uZmlncy5BY3RpdmUgPSBm b2xkZXIuUGFyZW50U29sdXRpb24uRGVmYXVsdENvbmZpZ3VyYXRpb25JZDsKLQkJCQotCQkJZXh0 ZW5kZWRQcm9wZXJ0aWVzIFsiQ29uZmlndXJhdGlvbnMiXSA9IGNvbmZpZ3M7Ci0KLQkJCWZvcmVh Y2ggKFNvbHV0aW9uSXRlbSBpdCBpbiBmb2xkZXIuSXRlbXMpIHsKLQkJCQkKLQkJCQlpZiAoaXQg aXMgU29sdXRpb25Gb2xkZXIpIHsKLQkJCQkJZm9yZWFjaCAoU29sdXRpb25Db25maWd1cmF0aW9u IGNvbmYgaW4gZm9sZGVyLlBhcmVudFNvbHV0aW9uLkNvbmZpZ3VyYXRpb25zKSB7Ci0JCQkJCQlD b21iaW5lQ29uZmlndXJhdGlvbiBjYyA9IGNvbmZpZ3MuR2V0Q29uZmlnIChjb25mLklkKTsKLQkJ CQkJCUNvbWJpbmVDb25maWd1cmF0aW9uRW50cnkgY2UgPSBuZXcgQ29tYmluZUNvbmZpZ3VyYXRp b25FbnRyeSAoaXQuTmFtZSwgdHJ1ZSwgY29uZi5JZCk7Ci0JCQkJCQljYy5FbnRyaWVzLkFkZCAo Y2UpOwotCQkJCQl9Ci0JCQkJCUNyZWF0ZUNvbWJpbmVDb25maWd1cmF0aW9ucyAoKFNvbHV0aW9u Rm9sZGVyKSBpdCk7Ci0JCQkJfQotCQkJCWVsc2UgaWYgKGl0IGlzIFNvbHV0aW9uRW50aXR5SXRl bSkgewotCQkJCQlTb2x1dGlvbkVudGl0eUl0ZW0gc2l0ID0gKFNvbHV0aW9uRW50aXR5SXRlbSkg aXQ7Ci0JCQkJCWZvcmVhY2ggKFNvbHV0aW9uQ29uZmlndXJhdGlvbiBjb25mIGluIGZvbGRlci5Q YXJlbnRTb2x1dGlvbi5Db25maWd1cmF0aW9ucykgewotCQkJCQkJQ29tYmluZUNvbmZpZ3VyYXRp b24gY2MgPSBjb25maWdzLkdldENvbmZpZyAoY29uZi5JZCk7Ci0JCQkJCQlTb2x1dGlvbkNvbmZp Z3VyYXRpb25FbnRyeSBzY2UgPSBjb25mLkdldEVudHJ5Rm9ySXRlbSAoc2l0KTsKLQkJCQkJCUNv bWJpbmVDb25maWd1cmF0aW9uRW50cnkgY2UgPSBudWxsOwotCQkJCQkJaWYgKHNjZSA9PSBudWxs KQotCQkJCQkJCWNlID0gbmV3IENvbWJpbmVDb25maWd1cmF0aW9uRW50cnkgKGl0Lk5hbWUsIHRy dWUsIGNvbmYuSWQpOwotCQkJCQkJZWxzZQotCQkJCQkJCWNlID0gbmV3IENvbWJpbmVDb25maWd1 cmF0aW9uRW50cnkgKGl0Lk5hbWUsIHNjZS5CdWlsZCwgc2NlLkl0ZW1Db25maWd1cmF0aW9uKTsJ CQkJCQkKLQkJCQkJCWNjLkVudHJpZXMuQWRkIChjZSk7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9Ci0J CX0KLQkJCi0JCUNvbWJpbmVDb25maWd1cmF0aW9uU2V0IENyZWF0ZUNvbWJpbmVDb25maWd1cmF0 aW9uU2V0IChTb2x1dGlvbiBzb2wsIGJvb2wgaXNSb290KQotCQl7Ci0JCQlDb21iaW5lQ29uZmln dXJhdGlvblNldCBjc2V0ID0gbmV3IENvbWJpbmVDb25maWd1cmF0aW9uU2V0ICgpOwotCQkJZm9y ZWFjaCAoU29sdXRpb25Db25maWd1cmF0aW9uIGNvbmYgaW4gc29sLkNvbmZpZ3VyYXRpb25zKSB7 Ci0JCQkJQ29tYmluZUNvbmZpZ3VyYXRpb24gY2MgPSBuZXcgQ29tYmluZUNvbmZpZ3VyYXRpb24g KCk7Ci0JCQkJY2MuTmFtZSA9IGNvbmYuSWQ7Ci0JCQkJaWYgKGlzUm9vdCkKLQkJCQkJY2MuU29s dXRpb25Db25maWd1cmF0aW9uID0gY29uZjsKLQkJCQljc2V0LkNvbmZpZ3VyYXRpb25zLkFkZCAo Y2MpOwotCQkJfQotCQkJcmV0dXJuIGNzZXQ7Ci0JCX0KLQkJCi0JCXByb3RlY3RlZCBvdmVycmlk ZSB2b2lkIFdyaXRlQ2hpbGRyZW4gKFhtbFdyaXRlciB3cml0ZXIsIERhdGFJdGVtIGl0ZW0pCi0J CXsKLQkJCWJhc2UuV3JpdGVDaGlsZHJlbiAod3JpdGVyLCBpdGVtKTsKLQotCQkJd3JpdGVyLldy aXRlU3RhcnRFbGVtZW50ICgiRW50cmllcyIpOwotCQkJZm9yZWFjaCAoU29sdXRpb25JdGVtIGVu dHJ5IGluIGZvbGRlci5JdGVtcykgewotCQkJCXdyaXRlci5Xcml0ZVN0YXJ0RWxlbWVudCAoIkVu dHJ5Iik7Ci0JCQkJCi0JCQkJc3RyaW5nIGJhc2VEaXIgPSBQYXRoLkdldERpcmVjdG9yeU5hbWUg KHNlcmlhbGl6ZXIuU2VyaWFsaXphdGlvbkNvbnRleHQuQmFzZUZpbGUpOwotCQkJCXN0cmluZyBm bmFtZSA9IG51bGw7Ci0JCQkJCi0JCQkJaWYgKGVudHJ5IGlzIFNvbHV0aW9uRm9sZGVyKSB7Ci0J CQkJCVNvbHV0aW9uRm9sZGVyIGNmb2xkZXIgPSAoU29sdXRpb25Gb2xkZXIpIGVudHJ5OwotCQkJ CQlmbmFtZSA9IGNmb2xkZXIuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiRmlsZU5hbWUiXSBhcyBzdHJp bmc7Ci0JCQkJCWlmIChmbmFtZSA9PSBudWxsKSB7Ci0JCQkJCQkvLyBHdWVzcyBhIGdvb2QgZmls ZSBuYW1lIGZvciB0aGUgbWRzIGZpbGUuCi0JCQkJCQlpZiAoRGlyZWN0b3J5LkV4aXN0cyAoUGF0 aC5Db21iaW5lIChiYXNlRGlyLCBjZm9sZGVyLk5hbWUpKSkKLQkJCQkJCQlmbmFtZSA9IFBhdGgu Q29tYmluZSAoUGF0aC5Db21iaW5lIChiYXNlRGlyLCBjZm9sZGVyLk5hbWUpLCBjZm9sZGVyLk5h bWUgKyAiLm1kcyIpOwotCQkJCQkJZWxzZQotCQkJCQkJCWZuYW1lID0gUGF0aC5Db21iaW5lIChi YXNlRGlyLCBjZm9sZGVyLk5hbWUgKyAiLm1kcyIpOwotCQkJCQl9Ci0JCQkJfQotCQkJCWVsc2Ug aWYgKGVudHJ5IGlzIFNvbHV0aW9uRW50aXR5SXRlbSkgewotCQkJCQlmbmFtZSA9ICgoU29sdXRp b25FbnRpdHlJdGVtKWVudHJ5KS5GaWxlTmFtZTsKLQkJCQl9Ci0JCQkJaWYgKGZuYW1lID09IG51 bGwpCi0JCQkJCXRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uICgiRG9uJ3Qga25v dyBob3cgdG8gc2F2ZSBpdGVtIG9mIHR5cGUgIiArIGVudHJ5LkdldFR5cGUgKCkpOwotCQkJCQot CQkJCXN0cmluZyByZWxmbmFtZSA9IEZpbGVTZXJ2aWNlLkFic29sdXRlVG9SZWxhdGl2ZVBhdGgg KGJhc2VEaXIsIGZuYW1lKTsKLQkJCQl3cml0ZXIuV3JpdGVBdHRyaWJ1dGVTdHJpbmcgKCJmaWxl bmFtZSIsIHJlbGZuYW1lKTsKLQkJCQl3cml0ZXIuV3JpdGVFbmRFbGVtZW50ICgpOwotCQkJCWlm IChlbnRyeSBpcyBTb2x1dGlvbkVudGl0eUl0ZW0pCi0JCQkJCSgoU29sdXRpb25FbnRpdHlJdGVt KWVudHJ5KS5TYXZlIChtb25pdG9yKTsKLQkJCQllbHNlCi0JCQkJCVdyaXRlU29sdXRpb25Gb2xk ZXIgKChTb2x1dGlvbkZvbGRlcikgZW50cnksIGZuYW1lLCBtb25pdG9yKTsKLQkJCX0KLQkJCXdy aXRlci5Xcml0ZUVuZEVsZW1lbnQgKCk7Ci0JCX0KLQkJCi0JCXZvaWQgV3JpdGVTb2x1dGlvbkZv bGRlciAoU29sdXRpb25Gb2xkZXIgZm9sZGVyLCBzdHJpbmcgZmlsZSwgSVByb2dyZXNzTW9uaXRv ciBtb25pdG9yKQotCQl7Ci0JCQlTdHJlYW1Xcml0ZXIgc3cgPSBuZXcgU3RyZWFtV3JpdGVyIChm aWxlKTsKLQkJCXRyeSB7Ci0JCQkJbW9uaXRvci5CZWdpblRhc2sgKEdldHRleHRDYXRhbG9nLkdl dFN0cmluZyAoIlNhdmluZyBzb2x1dGlvbjogezB9IiwgZmlsZSksIDEpOwotCQkJCVhtbFRleHRX cml0ZXIgdHcgPSBuZXcgWG1sVGV4dFdyaXRlciAoc3cpOwotCQkJCXR3LkZvcm1hdHRpbmcgPSBG b3JtYXR0aW5nLkluZGVudGVkOwotCQkJCURhdGFTZXJpYWxpemVyIHNlcmlhbGl6ZXIgPSBuZXcg RGF0YVNlcmlhbGl6ZXIgKE1EMVByb2plY3RTZXJ2aWNlLkRhdGFDb250ZXh0LCBmaWxlKTsKLQkJ CQlDb21iaW5lV3JpdGVyVjIgY29tYmluZVdyaXRlciA9IG5ldyBDb21iaW5lV3JpdGVyVjIgKHNl cmlhbGl6ZXIsIG1vbml0b3IsIHR5cGVvZihTb2x1dGlvbkZvbGRlcikpOwotCQkJCWNvbWJpbmVX cml0ZXIuV3JpdGVDb21iaW5lICh0dywgZm9sZGVyKTsKLQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBl eCkgewotCQkJCW1vbml0b3IuUmVwb3J0RXJyb3IgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAo IkNvdWxkIG5vdCBzYXZlIHNvbHV0aW9uOiB7MH0iLCBmaWxlKSwgZXgpOwotCQkJCXRocm93Owot CQkJfSBmaW5hbGx5IHsKLQkJCQltb25pdG9yLkVuZFRhc2sgKCk7Ci0JCQkJc3cuQ2xvc2UgKCk7 Ci0JCQl9Ci0JCX0KLQkJCi0JCXByb3RlY3RlZCBvdmVycmlkZSBYbWxDb25maWd1cmF0aW9uV3Jp dGVyIEdldENoaWxkV3JpdGVyIChNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6YXRpb24uRGF0YU5v ZGUgZGF0YSkKLQkJewotCQkJLy8gRG9uJ3QgcmV1c2UgdGhpcyBzZXJpYWxpemVyIGZvciBjaGls ZHJlbiwgc2luY2UgaXQgaGFzIHNvbHV0aW9uLXNwZWNpZmljIHNlcmlhbGl6YXRpb24gY29kZQot CQkJcmV0dXJuIFhtbENvbmZpZ3VyYXRpb25Xcml0ZXIuRGVmYXVsdFdyaXRlcjsKLQkJfQotCi0J fQotfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVs b3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvQ29tYmluZUNvbmZpZ3VyYXRpb24uY3MNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCkBAIC0xLDExNSArMCwwIEBACi0vLyBDb21iaW5lQ29uZmlndXJhdGlvbi5jcwotLy8KLS8v IEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8K LS8vIENvcHlyaWdodCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29t KQotLy8KLS8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0v LyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbiB0aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2Yg dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg aXMKLS8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Ci0vLwotLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S Ci0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBP UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRI RSBTT0ZUV0FSRS4KLS8vCi0vLwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVj dGlvbnMuR2VuZXJpYzsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlvbjsKLXVz aW5nIE1vbm9EZXZlbG9wLlByb2plY3RzOwotCi1uYW1lc3BhY2UgTW9ub0RldmVsb3AuUHJvamVj dHMuRm9ybWF0cy5NRDEKLXsKLQljbGFzcyBDb21iaW5lQ29uZmlndXJhdGlvbjogSUN1c3RvbURh dGFJdGVtCi0JewotCQlbSXRlbVByb3BlcnR5XQotCQlzdHJpbmcgbmFtZTsKLQkJCi0JCVtFeHBh bmRlZENvbGxlY3Rpb25dCi0JCVtJdGVtUHJvcGVydHkgKCJFbnRyeSIsIFZhbHVlVHlwZT10eXBl b2YoQ29tYmluZUNvbmZpZ3VyYXRpb25FbnRyeSkpXQotCQlMaXN0PENvbWJpbmVDb25maWd1cmF0 aW9uRW50cnk+IGVudHJpZXMgPSBuZXcgTGlzdDxDb21iaW5lQ29uZmlndXJhdGlvbkVudHJ5PiAo KTsKLQkJCi0JCVNvbHV0aW9uQ29uZmlndXJhdGlvbiBzb2x1dGlvbkNvbmZpZ3VyYXRpb247Ci0J CQotCQlwdWJsaWMgc3RyaW5nIE5hbWUgewotCQkJZ2V0IHsKLQkJCQlyZXR1cm4gbmFtZTsKLQkJ CX0KLQkJCXNldCB7Ci0JCQkJbmFtZSA9IHZhbHVlOwotCQkJfQotCQl9Ci0KLQkJcHVibGljIExp c3Q8Q29tYmluZUNvbmZpZ3VyYXRpb25FbnRyeT4gRW50cmllcyB7Ci0JCQlnZXQgewotCQkJCXJl dHVybiBlbnRyaWVzOwotCQkJfQotCQkJc2V0IHsKLQkJCQllbnRyaWVzID0gdmFsdWU7Ci0JCQl9 Ci0JCX0KLQotCQlwdWJsaWMgU29sdXRpb25Db25maWd1cmF0aW9uIFNvbHV0aW9uQ29uZmlndXJh dGlvbiB7Ci0JCQlnZXQgewotCQkJCXJldHVybiBzb2x1dGlvbkNvbmZpZ3VyYXRpb247Ci0JCQl9 Ci0JCQlzZXQgewotCQkJCXNvbHV0aW9uQ29uZmlndXJhdGlvbiA9IHZhbHVlOwotCQkJfQotCQl9 Ci0JCQotCQlwdWJsaWMgc3RyaW5nIEdldE1hcHBlZENvbmZpZyAoc3RyaW5nIGl0ZW1OYW1lKQot CQl7Ci0JCQlmb3JlYWNoIChDb21iaW5lQ29uZmlndXJhdGlvbkVudHJ5IGNlIGluIGVudHJpZXMp IHsKLQkJCQlpZiAoY2UuTmFtZSA9PSBpdGVtTmFtZSkgewotCQkJCQlpZiAoY2UuQnVpbGQpCi0J CQkJCQlyZXR1cm4gY2UuQ29uZmlndXJhdGlvbjsKLQkJCQkJZWxzZQotCQkJCQkJcmV0dXJuIG51 bGw7Ci0JCQkJfQotCQkJfQotCQkJcmV0dXJuIG51bGw7Ci0JCX0KLQotCQlwdWJsaWMgRGF0YUNv bGxlY3Rpb24gU2VyaWFsaXplIChJVHlwZVNlcmlhbGl6ZXIgaGFuZGxlcikKLQkJewotCQkJRGF0 YUNvbGxlY3Rpb24gY29sID0gaGFuZGxlci5TZXJpYWxpemUgKHRoaXMpOwotCQkJaWYgKHNvbHV0 aW9uQ29uZmlndXJhdGlvbiAhPSBudWxsKSB7Ci0JCQkJRGF0YUl0ZW0gaXQgPSAoRGF0YUl0ZW0p IGhhbmRsZXIuU2VyaWFsaXphdGlvbkNvbnRleHQuU2VyaWFsaXplci5TZXJpYWxpemUgKHNvbHV0 aW9uQ29uZmlndXJhdGlvbik7Ci0JCQkJY29sLk1lcmdlIChpdC5JdGVtRGF0YSk7Ci0JCQl9Ci0J CQlyZXR1cm4gY29sOwotCQl9Ci0KLQkJcHVibGljIHZvaWQgRGVzZXJpYWxpemUgKElUeXBlU2Vy aWFsaXplciBoYW5kbGVyLCBEYXRhQ29sbGVjdGlvbiBkYXRhKQotCQl7Ci0JCQlEYXRhSXRlbSBp dGVtID0gbmV3IERhdGFJdGVtICgpOwotCQkJaXRlbS5OYW1lID0gIlNvbHV0aW9uQ29uZmlndXJh dGlvbiI7Ci0JCQlEYXRhQ29sbGVjdGlvbiBjb2wgPSBpdGVtLkl0ZW1EYXRhOwotCQkJCi0JCQlm b3JlYWNoIChEYXRhTm9kZSB2YWwgaW4gZGF0YSkgewotCQkJCWlmICh2YWwuTmFtZSAhPSAibmFt ZSIgJiYgdmFsLk5hbWUgIT0gImN0eXBlIiAmJiB2YWwuTmFtZSAhPSAiRW50cnkiKQotCQkJCQlj b2wuQWRkICh2YWwpOwotCQkJfQotCQkJCi0JCQloYW5kbGVyLkRlc2VyaWFsaXplICh0aGlzLCBk YXRhKTsKLQkJCQotCQkJaWYgKGRhdGEuQ291bnQgPiAwKSB7Ci0JCQkJc29sdXRpb25Db25maWd1 cmF0aW9uID0gbmV3IFNvbHV0aW9uQ29uZmlndXJhdGlvbiAobmFtZSk7Ci0JCQkJaGFuZGxlci5T ZXJpYWxpemF0aW9uQ29udGV4dC5TZXJpYWxpemVyLkRlc2VyaWFsaXplIChzb2x1dGlvbkNvbmZp Z3VyYXRpb24sIGl0ZW0pOwotCQkJfQotCQl9Ci0JfQotfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9j b3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvQ29t YmluZUNvbmZpZ3VyYXRpb25FbnRyeS5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsODIgKzAsMCBAQAot Ly8gQ29tYmluZUNvbmZpZ3VyYXRpb25FbnRyeS5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6YXRpb247 Ci0KLW5hbWVzcGFjZSBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMQotewotCWNsYXNz IENvbWJpbmVDb25maWd1cmF0aW9uRW50cnkKLQl7Ci0JCVtJdGVtUHJvcGVydHldCi0JCWJvb2wg YnVpbGQ7Ci0JCQotCQlbSXRlbVByb3BlcnR5XQotCQlzdHJpbmcgbmFtZTsKLQkJCi0JCVtJdGVt UHJvcGVydHldCi0JCXN0cmluZyBjb25maWd1cmF0aW9uOwotCQkKLQkJcHVibGljIENvbWJpbmVD b25maWd1cmF0aW9uRW50cnkgKCkKLQkJewotCQl9Ci0JCQotCQlwdWJsaWMgQ29tYmluZUNvbmZp Z3VyYXRpb25FbnRyeSAoc3RyaW5nIG5hbWUsIGJvb2wgYnVpbGQsIHN0cmluZyBjb25maWd1cmF0 aW9uKQotCQl7Ci0JCQl0aGlzLm5hbWUgPSBuYW1lOwotCQkJdGhpcy5idWlsZCA9IGJ1aWxkOwot CQkJdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKLQkJfQotCQkKLQkJcHVibGlj IGJvb2wgQnVpbGQgewotCQkJZ2V0IHsKLQkJCQlyZXR1cm4gYnVpbGQ7Ci0JCQl9Ci0JCQlzZXQg ewotCQkJCWJ1aWxkID0gdmFsdWU7Ci0JCQl9Ci0JCX0KLQotCQlwdWJsaWMgc3RyaW5nIE5hbWUg ewotCQkJZ2V0IHsKLQkJCQlyZXR1cm4gbmFtZTsKLQkJCX0KLQkJCXNldCB7Ci0JCQkJbmFtZSA9 IHZhbHVlOwotCQkJfQotCQl9Ci0KLQkJcHVibGljIHN0cmluZyBDb25maWd1cmF0aW9uIHsKLQkJ CWdldCB7Ci0JCQkJcmV0dXJuIGNvbmZpZ3VyYXRpb247Ci0JCQl9Ci0JCQlzZXQgewotCQkJCWNv bmZpZ3VyYXRpb24gPSB2YWx1ZTsKLQkJCX0KLQkJfQotCX0KLX0NCg0KUmVtb3ZlZDogbWFpbi9z cmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQx L0NvbWJpbmVDb25maWd1cmF0aW9uU2V0LmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSw3MCArMCwwIEBA Ci0vLyBDb21iaW5lQ29uZmlndXJhdGlvblNldC5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKLXVz aW5nIE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlvbjsKLQotbmFtZXNwYWNlIE1vbm9EZXZl bG9wLlByb2plY3RzLkZvcm1hdHMuTUQxCi17Ci0JW0RhdGFJbmNsdWRlICh0eXBlb2YoQ29tYmlu ZUNvbmZpZ3VyYXRpb24pKV0KLQljbGFzcyBDb21iaW5lQ29uZmlndXJhdGlvblNldAotCXsKLQkJ W0l0ZW1Qcm9wZXJ0eV0KLQkJc3RyaW5nIGFjdGl2ZTsKLQkJCi0JCVtFeHBhbmRlZENvbGxlY3Rp b25dCi0JCVtJdGVtUHJvcGVydHkgKCJDb25maWd1cmF0aW9uIiwgVmFsdWVUeXBlPXR5cGVvZihv YmplY3QpKV0KLQkJTGlzdDxDb21iaW5lQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbnMgPSBu ZXcgTGlzdDxDb21iaW5lQ29uZmlndXJhdGlvbj4gKCk7Ci0JCQotCQlwdWJsaWMgc3RyaW5nIEFj dGl2ZSB7Ci0JCQlnZXQgewotCQkJCXJldHVybiBhY3RpdmU7Ci0JCQl9Ci0JCQlzZXQgewotCQkJ CWFjdGl2ZSA9IHZhbHVlOwotCQkJfQotCQl9Ci0KLQkJcHVibGljIExpc3Q8Q29tYmluZUNvbmZp Z3VyYXRpb24+IENvbmZpZ3VyYXRpb25zIHsKLQkJCWdldCB7Ci0JCQkJcmV0dXJuIGNvbmZpZ3Vy YXRpb25zOwotCQkJfQotCQkJc2V0IHsKLQkJCQljb25maWd1cmF0aW9ucyA9IHZhbHVlOwotCQkJ fQotCQl9Ci0JCQotCQlwdWJsaWMgQ29tYmluZUNvbmZpZ3VyYXRpb24gR2V0Q29uZmlnIChzdHJp bmcgY29uZmlnSWQpCi0JCXsKLQkJCWZvcmVhY2ggKENvbWJpbmVDb25maWd1cmF0aW9uIGMgaW4g Y29uZmlndXJhdGlvbnMpCi0JCQkJaWYgKGMuTmFtZSA9PSBjb25maWdJZCkKLQkJCQkJcmV0dXJu IGM7Ci0JCQlyZXR1cm4gbnVsbDsKLQkJfQotCX0KLX0NCg0KUmVtb3ZlZDogbWFpbi9zcmMvY29y ZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxL0NvbWJp bmVTdGFydHVwTW9kZS5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNzcgKzAsMCBAQAotLy8gQ29tYmlu ZVN0YXJ0dXBNb2RlLmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVpcyBTYW5jaGV6IEd1YWwg PGxsdWlzQG5vdmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChjKSAyMDA4IE5vdmVsbCwgSW5j IChodHRwOi8vd3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotLy8g b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIHRvIGRlYWwKLS8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLS8vIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k L29yIHNlbGwKLS8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vCi0vLyBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgot Ly8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0v LwotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLS8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotLy8gRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFCi0vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAotLy8g T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUiBERUFMSU5HUyBJTgotLy8gVEhFIFNPRlRXQVJFLgotLy8KLS8vCi0KLXVzaW5nIFN5c3Rl bTsKLXVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwotdXNpbmcgTW9ub0RldmVsb3Au UHJvamVjdHM7Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlLlNlcmlhbGl6YXRpb247Ci0KLW5hbWVz cGFjZSBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMQotewotCWNsYXNzIENvbWJpbmVT dGFydHVwTW9kZQotCXsKLQkJW0l0ZW1Qcm9wZXJ0eSAoInN0YXJ0dXBlbnRyeSIpXQotCQlwdWJs aWMgc3RyaW5nIFN0YXJ0RW50cnlOYW1lOwotCQkKLQkJW0l0ZW1Qcm9wZXJ0eSAoInNpbmdsZSIp XQotCQlwdWJsaWMgYm9vbCBTaW5nbGVTdGFydHVwID0gdHJ1ZTsKLQkJCi0JCVtFeHBhbmRlZENv bGxlY3Rpb25dCi0JCVtJdGVtUHJvcGVydHkgKCJFeGVjdXRlIiwgVmFsdWVUeXBlPXR5cGVvZihD b21iaW5lU3RhcnR1cEVudHJ5KSldCi0JCXB1YmxpYyBMaXN0PENvbWJpbmVTdGFydHVwRW50cnk+ IEVudHJpZXMgPSBuZXcgTGlzdDxDb21iaW5lU3RhcnR1cEVudHJ5PiAoKTsKLQkJCi0JCXB1Ymxp YyB2b2lkIEFkZEVudHJ5IChzdHJpbmcgbmFtZSkKLQkJewotCQkJQ29tYmluZVN0YXJ0dXBFbnRy eSBlID0gbmV3IENvbWJpbmVTdGFydHVwRW50cnkgKCk7Ci0JCQllLkVudHJ5ID0gbmFtZTsKLQkJ CWUuVHlwZSA9ICJOb25lIjsKLQkJCUVudHJpZXMuQWRkIChlKTsKLQkJfQotCQkKLQkJcHVibGlj IENvbWJpbmVTdGFydHVwRW50cnkgRmluZEVudHJ5IChzdHJpbmcgbmFtZSkKLQkJewotCQkJZm9y ZWFjaCAoQ29tYmluZVN0YXJ0dXBFbnRyeSBjc2UgaW4gRW50cmllcykKLQkJCQlpZiAoY3NlLkVu dHJ5ID09IG5hbWUpCi0JCQkJCXJldHVybiBjc2U7Ci0JCQlyZXR1cm4gbnVsbDsKLQkJfQotCQkK LQkJcHVibGljIHZvaWQgTWFrZUV4ZWN1dGFibGUgKHN0cmluZyBuYW1lKQotCQl7Ci0JCQlGaW5k RW50cnkgKG5hbWUpLlR5cGUgPSAiRXhlY3V0ZSI7Ci0JCX0KLQl9Ci0JCi0JY2xhc3MgQ29tYmlu ZVN0YXJ0dXBFbnRyeQotCXsKLQkJW0l0ZW1Qcm9wZXJ0eSAoInR5cGUiKV0KLQkJcHVibGljIHN0 cmluZyBUeXBlOwotCQkKLQkJW0l0ZW1Qcm9wZXJ0eSAoImVudHJ5IildCi0JCXB1YmxpYyBzdHJp bmcgRW50cnk7Ci0JfQotfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNv cmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvTUQxQ3VzdG9tRGF0YUl0ZW0uY3MN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCkBAIC0xLDE5MyArMCwwIEBACi0vLyBNRDFDdXN0b21EYXRhSXRlbS5jcwot Ly8KLS8vIEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29t PgotLy8KLS8vIENvcHlyaWdodCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3Zl bGwuY29tKQotLy8KLS8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBk ZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29m dHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCi0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVU SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUiBPVEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4K LS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0vLwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0u SU87Ci11c2luZyBNb25vRGV2ZWxvcC5Db3JlOwotdXNpbmcgTW9ub0RldmVsb3AuQ29yZS5TZXJp YWxpemF0aW9uOwotdXNpbmcgTW9ub0RldmVsb3AuQ29yZS5Bc3NlbWJsaWVzOwotCi1uYW1lc3Bh Y2UgTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEKLXsKLQlwdWJsaWMgY2xhc3MgTUQx Q3VzdG9tRGF0YUl0ZW06IElDdXN0b21EYXRhSXRlbUhhbmRsZXIKLQl7Ci0JCXB1YmxpYyB2aXJ0 dWFsIERhdGFDb2xsZWN0aW9uIFNlcmlhbGl6ZSAob2JqZWN0IG9iaiwgSVR5cGVTZXJpYWxpemVy IGhhbmRsZXIpCi0JCXsKLQkJCWlmIChvYmogaXMgUHJvamVjdEZpbGUpIHsKLQkJCQlQcm9qZWN0 RmlsZSBwZiA9IChQcm9qZWN0RmlsZSkgb2JqOwotCQkJCURhdGFDb2xsZWN0aW9uIGRhdGEgPSBo YW5kbGVyLlNlcmlhbGl6ZSAob2JqKTsKLQkJCQkKLQkJCQkvL01hcCB0aGUgQ29udGVudCBidWls ZCBhY3Rpb24gdG8gdGhlIG9sZCBGaWxlQ29weSBhY3Rpb24gaWYgQ29weVRvT3V0cHV0RGlyZWN0 b3J5IGlzIHNldAotCQkJCWlmIChwZi5CdWlsZEFjdGlvbiA9PSBCdWlsZEFjdGlvbi5Db250ZW50 ICYmIHBmLkNvcHlUb091dHB1dERpcmVjdG9yeSAhPSBGaWxlQ29weU1vZGUuTm9uZSkgewotCQkJ CQlEYXRhVmFsdWUgdmFsdWUgPSBkYXRhIFsiYnVpbGRhY3Rpb24iXSBhcyBEYXRhVmFsdWU7Ci0J CQkJCWlmICh2YWx1ZSAhPSBudWxsKSB7Ci0JCQkJCQlkYXRhLlJlbW92ZSAodmFsdWUpOwotCQkJ CQkJZGF0YS5BZGQgKG5ldyBEYXRhVmFsdWUgKCJidWlsZGFjdGlvbiIsICJGaWxlQ29weSIpKTsK LQkJCQkJCWRhdGEuRXh0cmFjdCAoImNvcHlUb091dHB1dERpcmVjdG9yeSIpOwotCQkJCQl9Ci0J CQkJfQotCQkJCS8vIERvbid0IHN0b3JlIHRoZSByZXNvdXJjZSBpZCBpZiBpdCBtYXRjaGVzIHRo ZSBkZWZhdWx0LgotCQkJCWlmIChwZi5CdWlsZEFjdGlvbiA9PSBCdWlsZEFjdGlvbi5FbWJlZGRl ZFJlc291cmNlICYmIHBmLlJlc291cmNlSWQgIT0gUGF0aC5HZXRGaWxlTmFtZSAocGYuRmlsZVBh dGgpKQotCQkJCQlkYXRhLkFkZCAobmV3IERhdGFWYWx1ZSAoInJlc291cmNlX2lkIiwgcGYuUmVz b3VyY2VJZCkpOwotCQkJCXJldHVybiBkYXRhOwotCQkJfQotCQkJZWxzZSBpZiAob2JqIGlzIFNv bHV0aW9uRW50aXR5SXRlbSkgewotCQkJCURvdE5ldFByb2plY3QgcHJvamVjdCA9IG9iaiBhcyBE b3ROZXRQcm9qZWN0OwotCQkJCWlmIChwcm9qZWN0ICE9IG51bGwpIHsKLQkJCQkJZm9yZWFjaCAo RG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24gY29uZmlnIGluIHByb2plY3QuQ29uZmlndXJhdGlv bnMpCi0JCQkJCQljb25maWcuRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiQnVpbGQvdGFyZ2V0Il0gPSBw cm9qZWN0LkNvbXBpbGVUYXJnZXQuVG9TdHJpbmcgKCk7Ci0JCQkJfQotCQkJCURhdGFDb2xsZWN0 aW9uIGRhdGEgPSBoYW5kbGVyLlNlcmlhbGl6ZSAob2JqKTsKLQkJCQlTb2x1dGlvbkVudGl0eUl0 ZW0gaXRlbSA9IChTb2x1dGlvbkVudGl0eUl0ZW0pIG9iajsKLQkJCQlpZiAoaXRlbS5EZWZhdWx0 Q29uZmlndXJhdGlvbiAhPSBudWxsKSB7Ci0JCQkJCURhdGFJdGVtIGNvbmZJdGVtID0gZGF0YSBb IkNvbmZpZ3VyYXRpb25zIl0gYXMgRGF0YUl0ZW07Ci0JCQkJCWlmIChjb25mSXRlbSAhPSBudWxs KSB7Ci0JCQkJCQljb25mSXRlbS5VbmlxdWVOYW1lcyA9IHRydWU7Ci0JCQkJCQlpZiAoaXRlbS5Q YXJlbnRTb2x1dGlvbiAhPSBudWxsKQotCQkJCQkJCWNvbmZJdGVtLkl0ZW1EYXRhLkFkZCAobmV3 IERhdGFWYWx1ZSAoImFjdGl2ZSIsIGl0ZW0uUGFyZW50U29sdXRpb24uRGVmYXVsdENvbmZpZ3Vy YXRpb25JZCkpOwotCQkJCQl9Ci0JCQkJfQotCQkJCWlmIChwcm9qZWN0ICE9IG51bGwpIHsKLQkJ CQkJZGF0YS5FeHRyYWN0ICgidGFyZ2V0RnJhbWV3b3JrIik7Ci0JCQkJCWRhdGEuQWRkIChuZXcg RGF0YVZhbHVlICgidGFyZ2V0RnJhbWV3b3JrIiwgcHJvamVjdC5UYXJnZXRGcmFtZXdvcmsuSWQu VG9MZWdhY3lJZFN0cmluZyAoKSkpOwotCQkJCX0KLQkJCQlXcml0ZUl0ZW1zIChoYW5kbGVyLCAo U29sdXRpb25FbnRpdHlJdGVtKSBvYmosIGRhdGEpOwotCQkJCXJldHVybiBkYXRhOwotCQkJfQot CQkJZWxzZSBpZiAob2JqIGlzIFByb2plY3RSZWZlcmVuY2UpIHsKLQkJCQlQcm9qZWN0UmVmZXJl bmNlIHByZWYgPSAoUHJvamVjdFJlZmVyZW5jZSkgb2JqOwotCQkJCURhdGFDb2xsZWN0aW9uIGRh dGEgPSBoYW5kbGVyLlNlcmlhbGl6ZSAob2JqKTsKLQkJCQlzdHJpbmcgcmVmdG8gPSBwcmVmLlJl ZmVyZW5jZTsKLQkJCQlpZiAocHJlZi5SZWZlcmVuY2VUeXBlID09IFJlZmVyZW5jZVR5cGUuQXNz ZW1ibHkpIHsKLQkJCQkJc3RyaW5nIGJhc2VQYXRoID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lICho YW5kbGVyLlNlcmlhbGl6YXRpb25Db250ZXh0LkJhc2VGaWxlKTsKLQkJCQkJcmVmdG8gPSBGaWxl U2VydmljZS5BYnNvbHV0ZVRvUmVsYXRpdmVQYXRoIChiYXNlUGF0aCwgcmVmdG8pOwotCQkJCX0g ZWxzZSBpZiAocHJlZi5SZWZlcmVuY2VUeXBlID09IFJlZmVyZW5jZVR5cGUuUGFja2FnZSAmJiBw cmVmLkxvYWRlZFJlZmVyZW5jZSAhPSBudWxsKQotCQkJCQlyZWZ0byA9IHByZWYuTG9hZGVkUmVm ZXJlbmNlOwotCQotCQkJCWRhdGEuQWRkIChuZXcgRGF0YVZhbHVlICgicmVmdG8iLCByZWZ0bykp OwotCQkJCXJldHVybiBkYXRhOwotCQkJfQotCQkJcmV0dXJuIGhhbmRsZXIuU2VyaWFsaXplIChv YmopOwotCQl9Ci0JCQotCQl2b2lkIFdyaXRlSXRlbXMgKElUeXBlU2VyaWFsaXplciBoYW5kbGVy LCBTb2x1dGlvbkVudGl0eUl0ZW0gaXRlbSwgRGF0YUNvbGxlY3Rpb24gZGF0YSkKLQkJewotCQkJ RGF0YUl0ZW0gaXRlbXMgPSBuZXcgRGF0YUl0ZW0gKCk7Ci0JCQlpdGVtcy5OYW1lID0gIkl0ZW1z IjsKLQkJCWZvcmVhY2ggKG9iamVjdCBpdCBpbiBpdGVtLkl0ZW1zKSB7Ci0JCQkJaWYgKGl0IGlz IFByb2plY3RGaWxlIHx8IGl0IGlzIFByb2plY3RSZWZlcmVuY2UpCi0JCQkJCWNvbnRpbnVlOyAv LyBBbHJlYWR5IGhhbmRsZWQgYnkgc2VyaWFsaXplcgotCQkJCURhdGFOb2RlIG5vZGUgPSBoYW5k bGVyLlNlcmlhbGl6YXRpb25Db250ZXh0LlNlcmlhbGl6ZXIuU2VyaWFsaXplIChpdCwgaXQuR2V0 VHlwZSAoKSk7Ci0JCQkJaXRlbXMuSXRlbURhdGEuQWRkIChub2RlKTsKLQkJCX0KLQkJCWlmIChp dGVtcy5IYXNJdGVtRGF0YSkKLQkJCQlkYXRhLkFkZCAoaXRlbXMpOwotCQl9Ci0JCQotCQlwdWJs aWMgdmlydHVhbCB2b2lkIERlc2VyaWFsaXplIChvYmplY3Qgb2JqLCBJVHlwZVNlcmlhbGl6ZXIg aGFuZGxlciwgRGF0YUNvbGxlY3Rpb24gZGF0YSkKLQkJewotCQkJaWYgKG9iaiBpcyBQcm9qZWN0 RmlsZSkgewotCQkJCVByb2plY3RGaWxlIHBmID0gKFByb2plY3RGaWxlKSBvYmo7Ci0JCQkJCi0J CQkJLy9NYXAgdGhlIG9sZCBGaWxlQ29weSBhY3Rpb24gdG8gdGhlIENvbnRlbnQgQnVpbGRBY3Rp b24gd2l0aCBDb3B5VG9PdXRwdXREaXJlY3Rvcnkgc2V0IHRvICJhbHdheXMiCi0JCQkJLy9CdWls ZEFjdGlvbkRhdGFUeXBlIGhhbmRsZXMgbWFwcGluZyB0aGUgQnVpbGRBY3Rpb24gdG8gIkNvbnRl bnQiCi0JCQkJRGF0YVZhbHVlIHZhbHVlID0gZGF0YSBbImJ1aWxkYWN0aW9uIl0gYXMgRGF0YVZh bHVlOwotCQkJCWJvb2wgaXNGaWxlQ29weSA9IHZhbHVlICE9IG51bGwgJiYgdmFsdWUuVmFsdWUg PT0gIkZpbGVDb3B5IjsKLQkJCQkKLQkJCQlEYXRhVmFsdWUgcmVzb3VyY2VJZCA9IGRhdGEuRXh0 cmFjdCAoInJlc291cmNlX2lkIikgYXMgRGF0YVZhbHVlOwotCQkJCQotCQkJCWhhbmRsZXIuRGVz ZXJpYWxpemUgKG9iaiwgZGF0YSk7Ci0JCQkJaWYgKGlzRmlsZUNvcHkpCi0JCQkJCXBmLkNvcHlU b091dHB1dERpcmVjdG9yeSA9IEZpbGVDb3B5TW9kZS5BbHdheXM7Ci0JCQkJCi0JCQkJaWYgKHJl c291cmNlSWQgIT0gbnVsbCkKLQkJCQkJcGYuUmVzb3VyY2VJZCA9IHJlc291cmNlSWQuVmFsdWU7 Ci0JCQl9Ci0JCQllbHNlIGlmIChvYmogaXMgU29sdXRpb25FbnRpdHlJdGVtKSB7Ci0JCQkJRGF0 YVZhbHVlIGFjID0gbnVsbDsKLQkJCQlEYXRhSXRlbSBjb25mSXRlbSA9IGRhdGEgWyJDb25maWd1 cmF0aW9ucyJdIGFzIERhdGFJdGVtOwotCQkJCWlmIChjb25mSXRlbSAhPSBudWxsKQotCQkJCQlh YyA9IChEYXRhVmFsdWUpIGNvbmZJdGVtLkl0ZW1EYXRhLkV4dHJhY3QgKCJhY3RpdmUiKTsKLQkJ CQkJCi0JCQkJRGF0YUl0ZW0gaXRlbXMgPSBkYXRhLkV4dHJhY3QgKCJJdGVtcyIpIGFzIERhdGFJ dGVtOwotCQkJCWlmIChpdGVtcyAhPSBudWxsKQotCQkJCQlSZWFkSXRlbXMgKGhhbmRsZXIsIChT b2x1dGlvbkVudGl0eUl0ZW0pb2JqLCBpdGVtcyk7Ci0JCQkJCi0JCQkJaGFuZGxlci5EZXNlcmlh bGl6ZSAob2JqLCBkYXRhKTsKLQkJCQlpZiAoYWMgIT0gbnVsbCkgewotCQkJCQlTb2x1dGlvbkVu dGl0eUl0ZW0gaXRlbSA9IChTb2x1dGlvbkVudGl0eUl0ZW0pIG9iajsKLQkJCQkJaXRlbS5EZWZh dWx0Q29uZmlndXJhdGlvbklkID0gYWMuVmFsdWU7Ci0JCQkJfQotCQkJCURvdE5ldFByb2plY3Qg bnAgPSBvYmogYXMgRG90TmV0UHJvamVjdDsKLQkJCQlpZiAobnAgIT0gbnVsbCkgewotCQkJCQkv LyBJbXBvcnQgdGhlIGZyYW1ld29yayB2ZXJzaW9uCi0JCQkJCVRhcmdldEZyYW1ld29ya01vbmlr ZXIgZnggPSBudWxsOwotCQkJCQlEYXRhVmFsdWUgdmZ4ID0gZGF0YVsidGFyZ2V0RnJhbWV3b3Jr Il0gYXMgRGF0YVZhbHVlOwotCQkJCQlpZiAodmZ4ICE9IG51bGwpCi0JCQkJCQlmeCA9IFRhcmdl dEZyYW1ld29ya01vbmlrZXIuUGFyc2UgKHZmeC5WYWx1ZSk7Ci0JCQkJCWVsc2UgewotCQkJCQkJ dmZ4ID0gZGF0YSBbImNsci12ZXJzaW9uIl0gYXMgRGF0YVZhbHVlOwotCQkJCQkJaWYgKHZmeCAh PSBudWxsICYmIHZmeC5WYWx1ZSA9PSAiTmV0XzJfMCIpCi0JCQkJCQkJZnggPSBUYXJnZXRGcmFt ZXdvcmtNb25pa2VyLk5FVF8yXzA7Ci0JCQkJCQllbHNlIGlmICh2ZnggIT0gbnVsbCAmJiB2Zngu VmFsdWUgPT0gIk5ldF8xXzEiKQotCQkJCQkJCWZ4ID0gVGFyZ2V0RnJhbWV3b3JrTW9uaWtlci5O RVRfMV8xOwotCQkJCQl9Ci0JCQkJCWlmIChmeCAhPSBudWxsKQotCQkJCQkJbnAuVGFyZ2V0RnJh bWV3b3JrID0gUnVudGltZS5TeXN0ZW1Bc3NlbWJseVNlcnZpY2UuR2V0VGFyZ2V0RnJhbWV3b3Jr IChmeCk7Ci0KLQkJCQkJLy8gR2V0IHRoZSBjb21waWxlIHRhcmdldCBmcm9tIG9uZSBvZiB0aGUg Y29uZmlndXJhdGlvbnMKLQkJCQkJaWYgKG5wLkNvbmZpZ3VyYXRpb25zLkNvdW50ID4gMCkKLQkJ CQkJCW5wLkNvbXBpbGVUYXJnZXQgPSAoQ29tcGlsZVRhcmdldCkgRW51bS5QYXJzZSAodHlwZW9m KENvbXBpbGVUYXJnZXQpLCAoc3RyaW5nKSBucC5Db25maWd1cmF0aW9ucyBbMF0uRXh0ZW5kZWRQ cm9wZXJ0aWVzIFsiQnVpbGQvdGFyZ2V0Il0pOwotCQkJCX0KLQkJCX0KLQkJCWVsc2UgaWYgKG9i aiBpcyBQcm9qZWN0UmVmZXJlbmNlKSB7Ci0JCQkJUHJvamVjdFJlZmVyZW5jZSBwcmVmID0gKFBy b2plY3RSZWZlcmVuY2UpIG9iajsKLQkJCQlEYXRhVmFsdWUgcmVmdG8gPSBkYXRhLkV4dHJhY3Qg KCJyZWZ0byIpIGFzIERhdGFWYWx1ZTsKLQkJCQloYW5kbGVyLkRlc2VyaWFsaXplIChvYmosIGRh dGEpOwotCQkJCWlmIChyZWZ0byAhPSBudWxsKSB7Ci0JCQkJCXByZWYuUmVmZXJlbmNlID0gcmVm dG8uVmFsdWU7Ci0JCQkJCWlmIChwcmVmLlJlZmVyZW5jZVR5cGUgPT0gUmVmZXJlbmNlVHlwZS5B c3NlbWJseSkgewotCQkJCQkJc3RyaW5nIGJhc2VQYXRoID0gUGF0aC5HZXREaXJlY3RvcnlOYW1l IChoYW5kbGVyLlNlcmlhbGl6YXRpb25Db250ZXh0LkJhc2VGaWxlKTsKLQkJCQkJCXByZWYuUmVm ZXJlbmNlID0gRmlsZVNlcnZpY2UuUmVsYXRpdmVUb0Fic29sdXRlUGF0aCAoYmFzZVBhdGgsIHBy ZWYuUmVmZXJlbmNlKTsKLQkJCQkJfQotCQkJCX0KLQkJCX0gZWxzZQotCQkJCWhhbmRsZXIuRGVz ZXJpYWxpemUgKG9iaiwgZGF0YSk7Ci0JCX0KLQkJCi0JCXZvaWQgUmVhZEl0ZW1zIChJVHlwZVNl cmlhbGl6ZXIgaGFuZGxlciwgU29sdXRpb25FbnRpdHlJdGVtIGl0ZW0sIERhdGFJdGVtIGl0ZW1z KQotCQl7Ci0JCQlmb3JlYWNoIChEYXRhTm9kZSBub2RlIGluIGl0ZW1zLkl0ZW1EYXRhKSB7Ci0J CQkJRGF0YVR5cGUgZHR5cGUgPSBoYW5kbGVyLlNlcmlhbGl6YXRpb25Db250ZXh0LlNlcmlhbGl6 ZXIuRGF0YUNvbnRleHQuR2V0Q29uZmlndXJhdGlvbkRhdGFUeXBlIChub2RlLk5hbWUpOwotCQkJ CWlmIChkdHlwZSAhPSBudWxsICYmIHR5cGVvZihQcm9qZWN0SXRlbSkuSXNBc3NpZ25hYmxlRnJv bSAoZHR5cGUuVmFsdWVUeXBlKSkgewotCQkJCQlQcm9qZWN0SXRlbSBpdCA9IChQcm9qZWN0SXRl bSkgaGFuZGxlci5TZXJpYWxpemF0aW9uQ29udGV4dC5TZXJpYWxpemVyLkRlc2VyaWFsaXplIChk dHlwZS5WYWx1ZVR5cGUsIG5vZGUpOwotCQkJCQlpdGVtLkl0ZW1zLkFkZCAoaXQpOwotCQkJCX0K LQkJCX0KLQkJfQotCX0KLX0NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3Au Q29yZS9Nb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS9NRDFEb3ROZXRQcm9qZWN0SGFu ZGxlci5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTI4LDE2ICsyOCwxMiBAQAogdXNpbmcgU3lzdGVtOwog dXNpbmcgU3lzdGVtLklPOwogdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwotdXNpbmcgU3lzdGVt Lkdsb2JhbGl6YXRpb247CiB1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKIHVzaW5n IFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyOwogdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJl c3Npb25zOwotdXNpbmcgU3lzdGVtLlhtbDsKIHVzaW5nIE1vbm9EZXZlbG9wLkNvcmU7Ci11c2lu ZyBNb25vRGV2ZWxvcC5Db3JlLkFzc2VtYmxpZXM7CiB1c2luZyBNb25vRGV2ZWxvcC5Db3JlLkV4 ZWN1dGlvbjsKIHVzaW5nIE1vbm9EZXZlbG9wLlByb2plY3RzLkV4dGVuc2lvbnM7Ci11c2luZyBN b25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1TQnVpbGQ7CiB1c2luZyBNaWNyb3NvZnQuQnVp bGQuQnVpbGRFbmdpbmU7CiAJCiBuYW1lc3BhY2UgTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0 cy5NRDENCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVsb3AuQ29yZS9Nb25vRGV2 ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS9NRDFGaWxlRm9ybWF0LmNzDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpA QCAtMzYsMTUgKzM2LDcgQEAKIAogbmFtZXNwYWNlIE1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1h dHMuTUQxCiB7Ci0JY2xhc3MgTUQxVW5rbm93blByb2plY3RWZXJzaW9uIDogRXhjZXB0aW9uCi0J ewotCQlwdWJsaWMgTUQxVW5rbm93blByb2plY3RWZXJzaW9uIChzdHJpbmcgZmlsZW5hbWUsIHN0 cmluZyB1bnN1cHBvcnRlZFZlcnNpb24pCi0JCQk6IGJhc2UgKEdldHRleHRDYXRhbG9nLkdldFN0 cmluZyAoIlRoZSBmaWxlICd7MH0nIGhhcyBhbiB1bmtub3duIGZvcm1hdCB2ZXJzaW9uICh2ZXJz aW9uICd7MX0nKScuIiwgZmlsZW5hbWUsIHVuc3VwcG9ydGVkVmVyc2lvbikpCi0JCXsKLQkJfQot CX0KLQotCWludGVybmFsIGNsYXNzIE1EMUZpbGVGb3JtYXQ6IElGaWxlRm9ybWF0CisJY2xhc3Mg TUQxRmlsZUZvcm1hdDogSUZpbGVGb3JtYXQKIAl7CiAJCXB1YmxpYyBib29sIFN1cHBvcnRzTWl4 ZWRGb3JtYXRzIHsKIAkJCWdldCB7IHJldHVybiB0cnVlOyB9CkBAIC01Miw0NyArNDQsMjUgQEAg aW50ZXJuYWwgY2xhc3MgTUQxRmlsZUZvcm1hdDogSUZpbGVGb3JtYXQKIA0KIAkJcHVibGljIEZp bGVQYXRoIEdldFZhbGlkRm9ybWF0TmFtZSAob2JqZWN0IG9iaiwgRmlsZVBhdGggZmlsZU5hbWUp CiAJCXsKLQkJCWlmIChvYmogaXMgUHJvamVjdCkKLQkJCQlyZXR1cm4gUGF0aC5DaGFuZ2VFeHRl bnNpb24gKGZpbGVOYW1lLCAiLm1kcCIpOwotCQkJZWxzZSBpZiAob2JqIGlzIFNvbHV0aW9uKQot CQkJCXJldHVybiBQYXRoLkNoYW5nZUV4dGVuc2lvbiAoZmlsZU5hbWUsICIubWRzIik7Ci0JCQll bHNlIGlmIChvYmogaXMgV29ya3NwYWNlSXRlbSkKKwkJCWlmIChvYmogaXMgV29ya3NwYWNlSXRl bSAmJiAhKG9iaiBpcyBTb2x1dGlvbikpCiAJCQkJcmV0dXJuIFBhdGguQ2hhbmdlRXh0ZW5zaW9u IChmaWxlTmFtZSwgIi5tZHciKTsKLQkJCWVsc2UKLQkJCQlyZXR1cm4gUGF0aC5DaGFuZ2VFeHRl bnNpb24gKGZpbGVOYW1lLCAiLm1kc2UiKTsKKwkJCXRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9u RXhjZXB0aW9uICgpOwogCQl9DQogDQogCQlwdWJsaWMgYm9vbCBDYW5SZWFkRmlsZSAoRmlsZVBh dGggZmlsZSwgVHlwZSBleHBlY3RlZFR5cGUpCiAJCXsKIAkJCXN0cmluZyBleHQgPSBQYXRoLkdl dEV4dGVuc2lvbiAoZmlsZSkuVG9Mb3dlciAoKTsKLQkJCQotCQkJaWYgKGV4dCA9PSAiLm1kcyIg JiYgZXhwZWN0ZWRUeXBlLklzQXNzaWduYWJsZUZyb20gKHR5cGVvZihTb2x1dGlvbikpKQotCQkJ CXJldHVybiB0cnVlOwotCQkJZWxzZSBpZiAoZXh0ID09ICIubWRwIiAmJiBleHBlY3RlZFR5cGUu SXNBc3NpZ25hYmxlRnJvbSAodHlwZW9mKFByb2plY3QpKSkKLQkJCQlyZXR1cm4gdHJ1ZTsKLQkJ CWVsc2UgaWYgKGV4dCA9PSAiLm1kdyIgJiYgZXhwZWN0ZWRUeXBlLklzQXNzaWduYWJsZUZyb20g KHR5cGVvZihXb3Jrc3BhY2VJdGVtKSkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCQlyZXR1cm4gZXh0 ID09ICIubWRzZSIgJiYgZXhwZWN0ZWRUeXBlLklzQXNzaWduYWJsZUZyb20gKHR5cGVvZihTb2x1 dGlvbkVudGl0eUl0ZW0pKTsKKwkJCXJldHVybiBleHQgPT0gIi5tZHciICYmIGV4cGVjdGVkVHlw ZS5Jc0Fzc2lnbmFibGVGcm9tICh0eXBlb2YoV29ya3NwYWNlSXRlbSkpOwogCQl9CiAJCQogCQlw dWJsaWMgYm9vbCBDYW5Xcml0ZUZpbGUgKG9iamVjdCBvYmopCiAJCXsKLQkJCXJldHVybiAob2Jq IGlzIFNvbHV0aW9uRW50aXR5SXRlbSkgfHwgKG9iaiBpcyBXb3Jrc3BhY2VJdGVtKTsKKwkJCXJl dHVybiAob2JqIGlzIFdvcmtzcGFjZUl0ZW0gJiYgIShvYmogaXMgU29sdXRpb24pKTsKIAkJfQ0K IA0KIAkJcHVibGljIExpc3Q8RmlsZVBhdGg+IEdldEl0ZW1GaWxlcyAob2JqZWN0IG9iaikKIAkJ ew0KLQkJCUxpc3Q8RmlsZVBhdGg+IGxpc3QgPSBuZXcgTGlzdDxGaWxlUGF0aD4gKCk7Ci0JCQlp ZiAob2JqIGlzIFNvbHV0aW9uKSB7Ci0JCQkJU29sdXRpb24gc29sID0gKFNvbHV0aW9uKSBvYmo7 Ci0JCQkJbGlzdC5BZGQgKHNvbC5GaWxlTmFtZSk7Ci0JCQkJZm9yZWFjaCAoU29sdXRpb25Gb2xk ZXIgZiBpbiBzb2wuR2V0QWxsU29sdXRpb25JdGVtczxTb2x1dGlvbkZvbGRlcj4gKCkpIHsKLQkJ CQkJc3RyaW5nIGZuID0gZi5FeHRlbmRlZFByb3BlcnRpZXMgWyJGaWxlTmFtZSJdIGFzIHN0cmlu ZzsKLQkJCQkJaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eSAoZm4pKQotCQkJCQkJbGlzdC5BZGQg KGZuKTsKLQkJCQl9Ci0JCQl9Ci0JCQlyZXR1cm4gbGlzdDsKKwkJCXJldHVybiBuZXcgTGlzdDxG aWxlUGF0aD4gKCk7CiAJCX0NCiANCiAJCXB1YmxpYyB2b2lkIFdyaXRlRmlsZSAoRmlsZVBhdGgg ZmlsZSwgb2JqZWN0IG5vZGUsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikKQEAgLTEyMSw1NiAr OTEsOCBAQCBwdWJsaWMgdm9pZCBXcml0ZUZpbGUgKEZpbGVQYXRoIGZpbGUsIG9iamVjdCBub2Rl LCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCiANCiAJCXZvaWQgV3JpdGVGaWxlSW50ZXJuYWwg KEZpbGVQYXRoIGFjdHVhbEZpbGUsIEZpbGVQYXRoIG91dEZpbGUsIG9iamVjdCBub2RlLCBJUHJv Z3Jlc3NNb25pdG9yIG1vbml0b3IpCiAJCXsKLQkJCWlmIChub2RlIGlzIFByb2plY3QpIHsKLQkJ CQlXcml0ZVByb2plY3QgKGFjdHVhbEZpbGUsIG91dEZpbGUsIChQcm9qZWN0KSBub2RlLCBtb25p dG9yKTsKLQkJCX0KLQkJCWVsc2UgaWYgKG5vZGUgaXMgU29sdXRpb24pIHsKLQkJCQlXcml0ZVNv bHV0aW9uIChhY3R1YWxGaWxlLCBvdXRGaWxlLCAoU29sdXRpb24pIG5vZGUsIG1vbml0b3IpOwot CQkJfQotCQkJZWxzZSBpZiAobm9kZSBpcyBXb3Jrc3BhY2VJdGVtKSB7Ci0JCQkJV3JpdGVXb3Jr c3BhY2VJdGVtIChhY3R1YWxGaWxlLCBvdXRGaWxlLCAoV29ya3NwYWNlSXRlbSkgbm9kZSwgbW9u aXRvcik7Ci0JCQl9Ci0JCQllbHNlIHsKLQkJCQlXcml0ZVNvbHV0aW9uRW50aXR5SXRlbSAoYWN0 dWFsRmlsZSwgb3V0RmlsZSwgbm9kZSwgbW9uaXRvcik7Ci0JCQl9Ci0JCX0NCi0NCi0JCXZvaWQg V3JpdGVQcm9qZWN0IChGaWxlUGF0aCBhY3R1YWxGaWxlLCBGaWxlUGF0aCBvdXRGaWxlLCBQcm9q ZWN0IHByb2plY3QsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikKLQkJewotCQkJU3RyZWFtV3Jp dGVyIHN3ID0gbmV3IFN0cmVhbVdyaXRlciAob3V0RmlsZSk7Ci0JCQl0cnkgewotCQkJCW1vbml0 b3IuQmVnaW5UYXNrIChHZXR0ZXh0Q2F0YWxvZy5HZXRTdHJpbmcoIlNhdmluZyBwcm9qZWN0OiB7 MH0iLCBhY3R1YWxGaWxlKSwgMSk7Ci0JCQkJWG1sRGF0YVNlcmlhbGl6ZXIgc2VyID0gbmV3IFht bERhdGFTZXJpYWxpemVyIChNRDFQcm9qZWN0U2VydmljZS5EYXRhQ29udGV4dCk7Ci0JCQkJc2Vy LlNlcmlhbGl6YXRpb25Db250ZXh0LkJhc2VGaWxlID0gYWN0dWFsRmlsZTsKLQkJCQlzZXIuU2Vy aWFsaXphdGlvbkNvbnRleHQuUHJvZ3Jlc3NNb25pdG9yID0gbW9uaXRvcjsKLQkJCQlzZXIuU2Vy aWFsaXplIChzdywgcHJvamVjdCwgdHlwZW9mKFByb2plY3QpKTsKLQkJCX0gY2F0Y2ggKEV4Y2Vw dGlvbiBleCkgewotCQkJCW1vbml0b3IuUmVwb3J0RXJyb3IgKEdldHRleHRDYXRhbG9nLkdldFN0 cmluZyAoIkNvdWxkIG5vdCBzYXZlIHByb2plY3Q6IHswfSIsIGFjdHVhbEZpbGUpLCBleCk7Ci0J CQkJdGhyb3c7Ci0JCQl9IGZpbmFsbHkgewotCQkJCW1vbml0b3IuRW5kVGFzayAoKTsKLQkJCQlz dy5DbG9zZSAoKTsKLQkJCX0KLQkJfQ0KLQ0KLQkJdm9pZCBXcml0ZVNvbHV0aW9uIChGaWxlUGF0 aCBhY3R1YWxGaWxlLCBGaWxlUGF0aCBvdXRGaWxlLCBTb2x1dGlvbiBzb2x1dGlvbiwgSVByb2dy ZXNzTW9uaXRvciBtb25pdG9yKQotCQl7Ci0JCQlTdHJlYW1Xcml0ZXIgc3cgPSBuZXcgU3RyZWFt V3JpdGVyIChvdXRGaWxlKTsKLQkJCXRyeSB7Ci0JCQkJbW9uaXRvci5CZWdpblRhc2sgKEdldHRl eHRDYXRhbG9nLkdldFN0cmluZyAoIlNhdmluZyBzb2x1dGlvbjogezB9IiwgYWN0dWFsRmlsZSks IDEpOwotCQkJCVhtbFRleHRXcml0ZXIgdHcgPSBuZXcgWG1sVGV4dFdyaXRlciAoc3cpOwotCQkJ CXR3LkZvcm1hdHRpbmcgPSBGb3JtYXR0aW5nLkluZGVudGVkOwotCQkJCURhdGFTZXJpYWxpemVy IHNlcmlhbGl6ZXIgPSBuZXcgRGF0YVNlcmlhbGl6ZXIgKE1EMVByb2plY3RTZXJ2aWNlLkRhdGFD b250ZXh0LCBhY3R1YWxGaWxlKTsKLQkJCQlDb21iaW5lV3JpdGVyVjIgY29tYmluZVdyaXRlciA9 IG5ldyBDb21iaW5lV3JpdGVyVjIgKHNlcmlhbGl6ZXIsIG1vbml0b3IsIHR5cGVvZihTb2x1dGlv bikpOwotCQkJCWNvbWJpbmVXcml0ZXIuV3JpdGVDb21iaW5lICh0dywgc29sdXRpb24pOwotCQkJ fSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7Ci0JCQkJbW9uaXRvci5SZXBvcnRFcnJvciAoR2V0dGV4 dENhdGFsb2cuR2V0U3RyaW5nICgiQ291bGQgbm90IHNhdmUgc29sdXRpb246IHswfSIsIGFjdHVh bEZpbGUpLCBleCk7Ci0JCQkJdGhyb3c7Ci0JCQl9IGZpbmFsbHkgewotCQkJCW1vbml0b3IuRW5k VGFzayAoKTsKLQkJCQlzdy5DbG9zZSAoKTsKLQkJCX0KLQkJfQ0KKwkJCVdyaXRlV29ya3NwYWNl SXRlbSAoYWN0dWFsRmlsZSwgb3V0RmlsZSwgKFdvcmtzcGFjZUl0ZW0pIG5vZGUsIG1vbml0b3Ip OworCQl9CiANCiAJCXZvaWQgV3JpdGVXb3Jrc3BhY2VJdGVtIChGaWxlUGF0aCBhY3R1YWxGaWxl LCBGaWxlUGF0aCBvdXRGaWxlLCBXb3Jrc3BhY2VJdGVtIGl0ZW0sIElQcm9ncmVzc01vbml0b3Ig bW9uaXRvcikKIAkJewpAQCAtMjA1LDY1ICsxMjcsMTcgQEAgdm9pZCBXcml0ZVdvcmtzcGFjZUl0 ZW0gKEZpbGVQYXRoIGFjdHVhbEZpbGUsIEZpbGVQYXRoIG91dEZpbGUsIFdvcmtzcGFjZUl0ZW0g aXQKIAkJCX0KIAkJfQ0KIA0KLQkJdm9pZCBXcml0ZVNvbHV0aW9uRW50aXR5SXRlbSAoRmlsZVBh dGggYWN0dWFsRmlsZSwgRmlsZVBhdGggb3V0RmlsZSwgb2JqZWN0IG5vZGUsIElQcm9ncmVzc01v bml0b3IgbW9uaXRvcikKLQkJewotCQkJU3RyZWFtV3JpdGVyIHN3ID0gbmV3IFN0cmVhbVdyaXRl ciAob3V0RmlsZSk7Ci0JCQl0cnkgewotCQkJCW1vbml0b3IuQmVnaW5UYXNrIChzdHJpbmcuRm9y bWF0IChHZXR0ZXh0Q2F0YWxvZy5HZXRTdHJpbmcoIlNhdmluZyBzb2x1dGlvbiBpdGVtOiB7MH0i KSwgYWN0dWFsRmlsZSksIDEpOwotCQkJCVhtbERhdGFTZXJpYWxpemVyIHNlciA9IG5ldyBYbWxE YXRhU2VyaWFsaXplciAoTUQxUHJvamVjdFNlcnZpY2UuRGF0YUNvbnRleHQpOwotCQkJCXNlci5T ZXJpYWxpemF0aW9uQ29udGV4dC5CYXNlRmlsZSA9IGFjdHVhbEZpbGU7Ci0JCQkJc2VyLlNlcmlh bGl6YXRpb25Db250ZXh0LlByb2dyZXNzTW9uaXRvciA9IG1vbml0b3I7Ci0JCQkJc2VyLlNlcmlh bGl6ZSAoc3csIG5vZGUsIHR5cGVvZihTb2x1dGlvbkVudGl0eUl0ZW0pKTsKLQkJCX0gY2F0Y2gg KEV4Y2VwdGlvbiBleCkgewotCQkJCW1vbml0b3IuUmVwb3J0RXJyb3IgKHN0cmluZy5Gb3JtYXQg KEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIkNvdWxkIG5vdCBzYXZlIHNvbHV0aW9uIGl0ZW06 IHswfSIpLCBhY3R1YWxGaWxlKSwgZXgpOwotCQkJfSBmaW5hbGx5IHsKLQkJCQltb25pdG9yLkVu ZFRhc2sgKCk7Ci0JCQkJc3cuQ2xvc2UgKCk7Ci0JCQl9Ci0JCX0NCi0NCiAJCXB1YmxpYyBvYmpl Y3QgUmVhZEZpbGUgKEZpbGVQYXRoIGZpbGVOYW1lLCBUeXBlIGV4cGVjdGVkVHlwZSwgSVByb2dy ZXNzTW9uaXRvciBtb25pdG9yKQogCQl7CisJCQlzdHJpbmcgZXh0ID0gUGF0aC5HZXRFeHRlbnNp b24gKGZpbGVOYW1lKS5Ub0xvd2VyICgpOworCQkJaWYgKGV4dCAhPSAiLm1kdyIpCisJCQkJdGhy b3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uICgpOworCiAJCQlvYmplY3QgcmVhZE9iamVjdCA9IG51 bGw7Ci0JCQkKKwogCQkJUHJvamVjdEV4dGVuc2lvblV0aWwuQmVnaW5Mb2FkT3BlcmF0aW9uICgp OwogCQkJdHJ5IHsKLQkJCQlzdHJpbmcgZXh0ID0gUGF0aC5HZXRFeHRlbnNpb24gKGZpbGVOYW1l KS5Ub0xvd2VyICgpOwotCQkJCQotCQkJCWlmIChleHQgPT0gIi5tZHAiKSB7Ci0JCQkJCW9iamVj dCBwcm9qZWN0ID0gUmVhZFByb2plY3RGaWxlIChmaWxlTmFtZSwgbW9uaXRvcik7Ci0JCQkJCWlm IChwcm9qZWN0IGlzIERvdE5ldFByb2plY3QpCi0JCQkJCQkoKERvdE5ldFByb2plY3QpcHJvamVj dCkuU2V0SXRlbUhhbmRsZXIgKG5ldyBNRDFEb3ROZXRQcm9qZWN0SGFuZGxlciAoKERvdE5ldFBy b2plY3QpIHByb2plY3QpKTsKLQkJCQkJcmVhZE9iamVjdCA9IHByb2plY3Q7Ci0JCQkJfQotCQkJ CWVsc2UgaWYgKGV4dCA9PSAiLm1kcyIpIHsKLQkJCQkJcmVhZE9iamVjdCA9IFJlYWRDb21iaW5l RmlsZSAoZmlsZU5hbWUsIG1vbml0b3IpOwotCQkJCX0KLQkJCQllbHNlIGlmIChleHQgPT0gIi5t ZHciKSB7Ci0JCQkJCXJlYWRPYmplY3QgPSBSZWFkV29ya3NwYWNlSXRlbUZpbGUgKGZpbGVOYW1l LCBtb25pdG9yKTsKLQkJCQl9Ci0JCQkJZWxzZSB7Ci0JCQkJCVhtbFRleHRSZWFkZXIgcmVhZGVy ID0gbmV3IFhtbFRleHRSZWFkZXIgKG5ldyBTdHJlYW1SZWFkZXIgKGZpbGVOYW1lKSk7Ci0JCQkJ CXRyeSB7Ci0JCQkJCQltb25pdG9yLkJlZ2luVGFzayAoc3RyaW5nLkZvcm1hdCAoR2V0dGV4dENh dGFsb2cuR2V0U3RyaW5nICgiTG9hZGluZyBzb2x1dGlvbiBpdGVtOiB7MH0iKSwgZmlsZU5hbWUp LCAxKTsKLQkJCQkJCXJlYWRlci5Nb3ZlVG9Db250ZW50ICgpOwotCQkJCQkJWG1sRGF0YVNlcmlh bGl6ZXIgc2VyID0gbmV3IFhtbERhdGFTZXJpYWxpemVyIChNRDFQcm9qZWN0U2VydmljZS5EYXRh Q29udGV4dCk7Ci0JCQkJCQlzZXIuU2VyaWFsaXphdGlvbkNvbnRleHQuQmFzZUZpbGUgPSBmaWxl TmFtZTsKLQkJCQkJCXNlci5TZXJpYWxpemF0aW9uQ29udGV4dC5Qcm9ncmVzc01vbml0b3IgPSBt b25pdG9yOwotCQkJCQkJU29sdXRpb25FbnRpdHlJdGVtIGVudHJ5ID0gKFNvbHV0aW9uRW50aXR5 SXRlbSkgc2VyLkRlc2VyaWFsaXplIChyZWFkZXIsIHR5cGVvZihTb2x1dGlvbkVudGl0eUl0ZW0p KTsKLQkJCQkJCWVudHJ5LkZpbGVOYW1lID0gZmlsZU5hbWU7Ci0JCQkJCQlNRDFQcm9qZWN0U2Vy dmljZS5Jbml0aWFsaXplSGFuZGxlciAoZW50cnkpOwotCQkJCQkJcmVhZE9iamVjdCA9IGVudHJ5 OwotCQkJCQl9Ci0JCQkJCWNhdGNoIChFeGNlcHRpb24gZXgpIHsKLQkJCQkJCW1vbml0b3IuUmVw b3J0RXJyb3IgKHN0cmluZy5Gb3JtYXQgKEdldHRleHRDYXRhbG9nLkdldFN0cmluZyAoIkNvdWxk IG5vdCBsb2FkIHNvbHV0aW9uIGl0ZW06IHswfSIpLCBmaWxlTmFtZSksIGV4KTsKLQkJCQkJCXRo cm93OwotCQkJCQl9Ci0JCQkJCWZpbmFsbHkgewotCQkJCQkJbW9uaXRvci5FbmRUYXNrICgpOwot CQkJCQkJcmVhZGVyLkNsb3NlICgpOwotCQkJCQl9Ci0JCQkJfQorCQkJCXJlYWRPYmplY3QgPSBS ZWFkV29ya3NwYWNlSXRlbUZpbGUgKGZpbGVOYW1lLCBtb25pdG9yKTsKIAkJCX0gZmluYWxseSB7 CiAJCQkJUHJvamVjdEV4dGVuc2lvblV0aWwuRW5kTG9hZE9wZXJhdGlvbiAoKTsKIAkJCX0KQEAg LTI3NCw2NCArMTQ4LDYgQEAgcHVibGljIG9iamVjdCBSZWFkRmlsZSAoRmlsZVBhdGggZmlsZU5h bWUsIFR5cGUgZXhwZWN0ZWRUeXBlLCBJUHJvZ3Jlc3NNb25pdG9yIG0KIAkJCXJldHVybiByZWFk T2JqZWN0OwogCQl9DQogDQotCQlvYmplY3QgUmVhZENvbWJpbmVGaWxlIChGaWxlUGF0aCBmaWxl LCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCi0JCXsKLQkJCVhtbFRleHRSZWFkZXIgcmVhZGVy ID0gbmV3IFhtbFRleHRSZWFkZXIgKG5ldyBTdHJlYW1SZWFkZXIgKGZpbGUpKTsKLQkJCXJlYWRl ci5Nb3ZlVG9Db250ZW50ICgpOwotCQkJCi0JCQlzdHJpbmcgdmVyc2lvbiA9IHJlYWRlci5HZXRB dHRyaWJ1dGUgKCJ2ZXJzaW9uIik7Ci0JCQlpZiAodmVyc2lvbiA9PSBudWxsKSB2ZXJzaW9uID0g cmVhZGVyLkdldEF0dHJpYnV0ZSAoImZpbGV2ZXJzaW9uIik7Ci0JCQkKLQkJCURhdGFTZXJpYWxp emVyIHNlcmlhbGl6ZXIgPSBuZXcgRGF0YVNlcmlhbGl6ZXIgKE1EMVByb2plY3RTZXJ2aWNlLkRh dGFDb250ZXh0LCBmaWxlKTsKLQkJCUlDb21iaW5lUmVhZGVyIGNvbWJpbmVSZWFkZXIgPSBudWxs OwotCQkJCi0JCQlpZiAodmVyc2lvbiA9PSAiMi4wIiB8fCB2ZXJzaW9uID09ICIyLjEiKQotCQkJ CWNvbWJpbmVSZWFkZXIgPSBuZXcgQ29tYmluZVJlYWRlclYyIChzZXJpYWxpemVyLCBtb25pdG9y LCB0eXBlb2YoU29sdXRpb24pKTsKLQkJCQotCQkJdHJ5IHsKLQkJCQlpZiAoY29tYmluZVJlYWRl ciAhPSBudWxsKQotCQkJCQlyZXR1cm4gY29tYmluZVJlYWRlci5SZWFkQ29tYmluZSAocmVhZGVy KTsKLQkJCQllbHNlCi0JCQkJCXRocm93IG5ldyBNRDFVbmtub3duUHJvamVjdFZlcnNpb24gKGZp bGUsIHZlcnNpb24pOwotCQkJfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7Ci0JCQkJbW9uaXRvci5S ZXBvcnRFcnJvciAoR2V0dGV4dENhdGFsb2cuR2V0U3RyaW5nICgiQ291bGQgbm90IGxvYWQgc29s dXRpb246IHswfSIsIGZpbGUpLCBleCk7Ci0JCQkJdGhyb3c7Ci0JCQl9IGZpbmFsbHkgewotCQkJ CXJlYWRlci5DbG9zZSAoKTsKLQkJCX0KLQkJfQ0KLQ0KLQkJb2JqZWN0IFJlYWRQcm9qZWN0Rmls ZSAoRmlsZVBhdGggZmlsZU5hbWUsIElQcm9ncmVzc01vbml0b3IgbW9uaXRvcikKLQkJewotCQkJ WG1sVGV4dFJlYWRlciByZWFkZXIgPSBudWxsOwotCQkJdHJ5IHsKLQkJCQlyZWFkZXIgPSBuZXcg WG1sVGV4dFJlYWRlciAobmV3IFN0cmVhbVJlYWRlciAoZmlsZU5hbWUpKTsKLQkJCQlyZWFkZXIu TW92ZVRvQ29udGVudCAoKTsKLQotCQkJCXN0cmluZyB2ZXJzaW9uID0gcmVhZGVyLkdldEF0dHJp YnV0ZSAoInZlcnNpb24iKTsKLQkJCQlpZiAodmVyc2lvbiA9PSBudWxsKSB2ZXJzaW9uID0gcmVh ZGVyLkdldEF0dHJpYnV0ZSAoImZpbGV2ZXJzaW9uIik7Ci0JCQkJCi0JCQkJRGF0YVNlcmlhbGl6 ZXIgc2VyaWFsaXplciA9IG5ldyBEYXRhU2VyaWFsaXplciAoTUQxUHJvamVjdFNlcnZpY2UuRGF0 YUNvbnRleHQsIGZpbGVOYW1lKTsKLQkJCQlJUHJvamVjdFJlYWRlciBwcm9qZWN0UmVhZGVyID0g bnVsbDsKLQkJCQkKLQkJCQltb25pdG9yLkJlZ2luVGFzayAoR2V0dGV4dENhdGFsb2cuR2V0U3Ry aW5nICgiTG9hZGluZyBwcm9qZWN0OiB7MH0iLCBmaWxlTmFtZSksIDEpOwotCQkJCQotCQkJCWlm ICh2ZXJzaW9uID09ICIyLjAiIHx8IHZlcnNpb24gPT0gIjIuMSIpIHsKLQkJCQkJcHJvamVjdFJl YWRlciA9IG5ldyBQcm9qZWN0UmVhZGVyVjIgKHNlcmlhbGl6ZXIpOwotCQkJCQlyZXR1cm4gcHJv amVjdFJlYWRlci5SZWFkUHJvamVjdCAocmVhZGVyKTsKLQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl0 aHJvdyBuZXcgTUQxVW5rbm93blByb2plY3RWZXJzaW9uIChmaWxlTmFtZSwgdmVyc2lvbik7Ci0J CQl9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKLQkJCQltb25pdG9yLlJlcG9ydEVycm9yIChHZXR0 ZXh0Q2F0YWxvZy5HZXRTdHJpbmcgKCJDb3VsZCBub3QgbG9hZCBwcm9qZWN0OiB7MH0iLCBmaWxl TmFtZSksIGV4KTsKLQkJCQl0aHJvdzsKLQkJCX0gZmluYWxseSB7Ci0JCQkJbW9uaXRvci5FbmRU YXNrICgpOwotCQkJCWlmIChyZWFkZXIgIT0gbnVsbCkKLQkJCQkJcmVhZGVyLkNsb3NlICgpOwot CQkJfQotCQl9DQotDQogCQlvYmplY3QgUmVhZFdvcmtzcGFjZUl0ZW1GaWxlIChGaWxlUGF0aCBm aWxlTmFtZSwgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKQogCQl7CiAJCQlYbWxUZXh0UmVhZGVy IHJlYWRlciA9IG5ldyBYbWxUZXh0UmVhZGVyIChuZXcgU3RyZWFtUmVhZGVyIChmaWxlTmFtZSkp OwpAQCAtMzU4LDkgKzE3NCw2IEBAIG9iamVjdCBSZWFkV29ya3NwYWNlSXRlbUZpbGUgKEZpbGVQ YXRoIGZpbGVOYW1lLCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpCiAJCQogCQlwdWJsaWMgdm9p ZCBDb252ZXJ0VG9Gb3JtYXQgKG9iamVjdCBvYmopCiAJCXsKLQkJCVNvbHV0aW9uSXRlbSBpdGVt ID0gb2JqIGFzIFNvbHV0aW9uSXRlbTsKLQkJCWlmIChpdGVtICE9IG51bGwpCi0JCQkJTUQxUHJv amVjdFNlcnZpY2UuSW5pdGlhbGl6ZUhhbmRsZXIgKGl0ZW0pOwogCQl9DQogDQogCQlwdWJsaWMg SUVudW1lcmFibGU8c3RyaW5nPiBHZXRDb21wYXRpYmlsaXR5V2FybmluZ3MgKG9iamVjdCBvYmop DQoNCk1vZGlmaWVkOiBtYWluL3NyYy9jb3JlL01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVsb3Au UHJvamVjdHMuRm9ybWF0cy5NRDEvTUQxUHJvamVjdFNlcnZpY2UuY3MNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBA IC0yNSw5NCArMjUsMjkgQEAKIC8vCiAvLwogCi11c2luZyBTeXN0ZW07Ci11c2luZyBNb25vLkFk ZGluczsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmU7CiB1c2luZyBNb25vRGV2ZWxvcC5Qcm9qZWN0 czsKIHVzaW5nIE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlvbjsKLXVzaW5nIE1vbm9EZXZl bG9wLlByb2plY3RzLkV4dGVuc2lvbnM7CiAKIG5hbWVzcGFjZSBNb25vRGV2ZWxvcC5Qcm9qZWN0 cy5Gb3JtYXRzLk1EMQogewotCXB1YmxpYyBjbGFzcyBNRDFQcm9qZWN0U2VydmljZQorCXN0YXRp YyBjbGFzcyBNRDFQcm9qZWN0U2VydmljZQogCXsKIAkJc3RhdGljIERhdGFDb250ZXh0IGRhdGFD b250ZXh0OwotCQlzdGF0aWMgWG1sTWFwQXR0cmlidXRlUHJvdmlkZXIgYXR0cmlidXRlUHJvdmlk ZXI7Ci0JCQotCQljb25zdCBzdHJpbmcgTUQxU2VyaWFsaXphdGlvbk1hcHNFeHRlbnNpb25QYXRo ID0gIi9Nb25vRGV2ZWxvcC9Qcm9qZWN0TW9kZWwvTUQxU2VyaWFsaXphdGlvbk1hcHMiOwotCQkK KwogCQlwdWJsaWMgc3RhdGljIERhdGFDb250ZXh0IERhdGFDb250ZXh0IHsKIAkJCWdldCB7CiAJ CQkJaWYgKGRhdGFDb250ZXh0ID09IG51bGwpIHsKLQkJCQkJZGF0YUNvbnRleHQgPSBuZXcgRGF0 YUNvbnRleHQgKGF0dHJpYnV0ZVByb3ZpZGVyKTsKKwkJCQkJZGF0YUNvbnRleHQgPSBuZXcgRGF0 YUNvbnRleHQgKCk7CiAJCQkJCVNlcnZpY2VzLlByb2plY3RTZXJ2aWNlLkluaXRpYWxpemVEYXRh Q29udGV4dCAoZGF0YUNvbnRleHQpOwogCQkJCX0KIAkJCQlyZXR1cm4gZGF0YUNvbnRleHQ7CiAJ CQl9CiAJCX0KIAkJCi0JCXN0YXRpYyBNRDFQcm9qZWN0U2VydmljZSAoKQotCQl7Ci0JCQlhdHRy aWJ1dGVQcm92aWRlciA9IG5ldyBYbWxNYXBBdHRyaWJ1dGVQcm92aWRlciAoKTsKLQkJCUFkZGlu TWFuYWdlci5BZGRFeHRlbnNpb25Ob2RlSGFuZGxlciAoTUQxU2VyaWFsaXphdGlvbk1hcHNFeHRl bnNpb25QYXRoLCBPbk1hcHNDaGFuZ2VkKTsKLQkJCQotCQkJU2VydmljZXMuUHJvamVjdFNlcnZp Y2UuRGF0YUNvbnRleHRDaGFuZ2VkICs9IGRlbGVnYXRlIHsKLQkJCQkvLyBSZWdlbmVyYXRlIHRo ZSBkYXRhIGNvbnRleHQKLQkJCQlkYXRhQ29udGV4dCA9IG51bGw7Ci0JCQl9OwotCQl9Ci0JCQot CQlzdGF0aWMgdm9pZCBPbk1hcHNDaGFuZ2VkIChvYmplY3QgcywgRXh0ZW5zaW9uTm9kZUV2ZW50 QXJncyBhcmdzKQotCQl7Ci0JCQlpZiAoYXJncy5DaGFuZ2UgPT0gRXh0ZW5zaW9uQ2hhbmdlLkFk ZCkgewotCQkJCVNlcmlhbGl6YXRpb25NYXBOb2RlIG5vZGUgPSAoU2VyaWFsaXphdGlvbk1hcE5v ZGUpIGFyZ3MuRXh0ZW5zaW9uTm9kZTsKLQkJCQlhdHRyaWJ1dGVQcm92aWRlci5BZGRNYXAgKG5v ZGUuQWRkaW4sIG5vZGUuRmlsZUNvbnRlbnQsIG5vZGUuRmlsZUlkKTsKLQkJCX0KLQkJCWVsc2Ug ewotCQkJCVNlcmlhbGl6YXRpb25NYXBOb2RlIG5vZGUgPSAoU2VyaWFsaXphdGlvbk1hcE5vZGUp IGFyZ3MuRXh0ZW5zaW9uTm9kZTsKLQkJCQlhdHRyaWJ1dGVQcm92aWRlci5SZW1vdmVNYXAgKG5v ZGUuRmlsZUlkKTsKLQkJCX0KLQkJCQotCQkJLy8gUmVnZW5lcmF0ZSB0aGUgZGF0YSBjb250ZXh0 Ci0JCQlkYXRhQ29udGV4dCA9IG51bGw7Ci0JCX0KLQkJCiAJCXB1YmxpYyBzdGF0aWMgRmlsZUZv cm1hdCBGaWxlRm9ybWF0IHsKIAkJCWdldCB7CiAJCQkJcmV0dXJuIFNlcnZpY2VzLlByb2plY3RT ZXJ2aWNlLkZpbGVGb3JtYXRzLkdldEZpbGVGb3JtYXQgKCJNRDEiKTsKIAkJCX0KIAkJfQotCQkK LQkJcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0SXRlbUZpbGVOYW1lIChTb2x1dGlvbkl0ZW0gaXRl bSkKLQkJewotCQkJaWYgKGl0ZW0gaXMgU29sdXRpb25FbnRpdHlJdGVtKQotCQkJCXJldHVybiAo KFNvbHV0aW9uRW50aXR5SXRlbSlpdGVtKS5GaWxlTmFtZTsKLQkJCXJldHVybiAoc3RyaW5nKSBp dGVtLkV4dGVuZGVkUHJvcGVydGllcyBbIkZpbGVOYW1lIl07Ci0JCX0KLQkJCi0JCXB1YmxpYyBz dGF0aWMgdm9pZCBTZXRJdGVtRmlsZU5hbWUgKFNvbHV0aW9uSXRlbSBpdGVtLCBzdHJpbmcgZmls ZU5hbWUpCi0JCXsKLQkJCWlmIChpdGVtIGlzIFNvbHV0aW9uRW50aXR5SXRlbSkKLQkJCQkoKFNv bHV0aW9uRW50aXR5SXRlbSlpdGVtKS5GaWxlTmFtZSA9IGZpbGVOYW1lOwotCQkJZWxzZQotCQkJ CWl0ZW0uRXh0ZW5kZWRQcm9wZXJ0aWVzIFsiRmlsZU5hbWUiXSA9IGZpbGVOYW1lOwotCQl9Ci0J CQotCQlwdWJsaWMgc3RhdGljIHZvaWQgSW5pdGlhbGl6ZUhhbmRsZXIgKFNvbHV0aW9uSXRlbSBp dGVtKQotCQl7Ci0JCQlpZiAoaXRlbSBpcyBEb3ROZXRQcm9qZWN0KSB7Ci0JCQkJRG90TmV0UHJv amVjdCBwID0gKERvdE5ldFByb2plY3QpIGl0ZW07Ci0JCQkJaXRlbS5TZXRJdGVtSGFuZGxlciAo bmV3IE1EMURvdE5ldFByb2plY3RIYW5kbGVyIChwKSk7Ci0JCQkJcC5GaWxlTmFtZSA9IEZpbGVG b3JtYXQuR2V0VmFsaWRGaWxlTmFtZSAocCwgcC5GaWxlTmFtZSk7Ci0JCQl9Ci0JCQllbHNlIGlm IChpdGVtIGlzIFNvbHV0aW9uRW50aXR5SXRlbSkgewotCQkJCVNvbHV0aW9uRW50aXR5SXRlbSBp dCA9IChTb2x1dGlvbkVudGl0eUl0ZW0pIGl0ZW07Ci0JCQkJaXRlbS5TZXRJdGVtSGFuZGxlciAo bmV3IE1EMVNvbHV0aW9uRW50aXR5SXRlbUhhbmRsZXIgKGl0KSk7Ci0JCQkJaXQuRmlsZU5hbWUg PSBGaWxlRm9ybWF0LkdldFZhbGlkRmlsZU5hbWUgKGl0LCBpdC5GaWxlTmFtZSk7Ci0JCQl9Ci0J CQllbHNlIHsKLQkJCQlpdGVtLlNldEl0ZW1IYW5kbGVyIChuZXcgTUQxU29sdXRpb25JdGVtSGFu ZGxlciAoaXRlbSkpOwotCQkJfQotCQl9CiAJfQogfQ0KDQpSZW1vdmVkOiBtYWluL3NyYy9jb3Jl L01vbm9EZXZlbG9wLkNvcmUvTW9ub0RldmVsb3AuUHJvamVjdHMuRm9ybWF0cy5NRDEvUHJqeEZp bGVGb3JtYXQuY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDU5ICswLDAgQEAKLS8vCi0vLyBGaWxlRm9y bWF0TWFuYWdlci5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsCi0v LwotLy8gQ29weXJpZ2h0IChDKSAyMDA1IE5vdmVsbCwgSW5jIChodHRwOi8vd3d3Lm5vdmVsbC5j b20pCi0vLwotLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0vLyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLS8vICJTb2Z0d2FyZSIpLCB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLS8vIHdp dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwKLS8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotLy8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0vLyB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Ci0vLyAKLS8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0vLyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLS8vIAotLy8gVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0v LyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YKLS8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5ECi0vLyBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCi0vLyBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi0vLyBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04KLS8vIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgotLy8KLQotdXNpbmcgU3lzdGVtOwotdXNpbmcgU3lzdGVtLklP OwotdXNpbmcgU3lzdGVtLlhtbDsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmUuU2VyaWFsaXphdGlv bjsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmU7Ci0KLW5hbWVzcGFjZSBNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5Gb3JtYXRzLk1EMQotewkKLQlpbnRlcmZhY2UgSVByb2plY3RSZWFkZXIgewotCQlQcm9q ZWN0IFJlYWRQcm9qZWN0IChYbWxSZWFkZXIgcmVhZGVyKTsKLQl9Ci0JCi0JY2xhc3MgUHJvamVj dFJlYWRlclYyOiBYbWxDb25maWd1cmF0aW9uUmVhZGVyLCBJUHJvamVjdFJlYWRlcgotCXsKLQkJ RGF0YVNlcmlhbGl6ZXIgc2VyaWFsaXplcjsKLQkJCi0JCXB1YmxpYyBQcm9qZWN0UmVhZGVyVjIg KERhdGFTZXJpYWxpemVyIHNlcmlhbGl6ZXIpCi0JCXsKLQkJCXRoaXMuc2VyaWFsaXplciA9IHNl cmlhbGl6ZXI7Ci0JCX0KLQotCQlwdWJsaWMgUHJvamVjdCBSZWFkUHJvamVjdCAoWG1sUmVhZGVy IHJlYWRlcikKLQkJewotCQkJRGF0YU5vZGUgZGF0YSA9IFJlYWQgKHJlYWRlcik7Ci0JCQlQcm9q ZWN0IHByb2plY3QgPSAoUHJvamVjdCkgc2VyaWFsaXplci5EZXNlcmlhbGl6ZSAodHlwZW9mKFBy b2plY3QpLCBkYXRhKTsKLQkJCXByb2plY3QuRmlsZUZvcm1hdCA9IE1EMVByb2plY3RTZXJ2aWNl LkZpbGVGb3JtYXQ7Ci0JCQlwcm9qZWN0LkZpbGVOYW1lID0gc2VyaWFsaXplci5TZXJpYWxpemF0 aW9uQ29udGV4dC5CYXNlRmlsZTsKLQkJCXJldHVybiBwcm9qZWN0OwotCQl9Ci0JfQotfQ0KDQpN b2RpZmllZDogbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL01vbm9EZXZlbG9wLlByb2pl Y3RzL1Byb2plY3RTZXJ2aWNlLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNTAyLDIyICs1MDIsMTkgQEAg cHVibGljIFByb2plY3QgQ3JlYXRlUHJvamVjdCAoc3RyaW5nIHR5cGUsIFByb2plY3RDcmVhdGVJ bmZvcm1hdGlvbiBpbmZvLCBYbWxFbGUKIAkJCX0KIAkJCXRocm93IG5ldyBJbnZhbGlkT3BlcmF0 aW9uRXhjZXB0aW9uICgiUHJvamVjdCB0eXBlICciICsgdHlwZSArICInIG5vdCBmb3VuZCIpOwog CQl9Ci0JCQorCisJCS8vVE9ETzogZmluZCBzb2x1dGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBwcm9q ZWN0IGlmIHBvc3NpYmxlCiAJCXB1YmxpYyBTb2x1dGlvbiBHZXRXcmFwcGVyU29sdXRpb24gKElQ cm9ncmVzc01vbml0b3IgbW9uaXRvciwgc3RyaW5nIGZpbGVuYW1lKQogCQl7CiAJCQkvLyBGaXJz dCBvZiBhbGwsIGNoZWNrIGlmIGEgc29sdXRpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkg ZXhpc3RzCiAJCQkKIAkJCUZpbGVGb3JtYXRbXSBmb3JtYXRzID0gU2VydmljZXMuUHJvamVjdFNl cnZpY2UuRmlsZUZvcm1hdHMuR2V0RmlsZUZvcm1hdHMgKGZpbGVuYW1lLCB0eXBlb2YoU29sdXRp b25FbnRpdHlJdGVtKSk7CiAJCQlpZiAoZm9ybWF0cy5MZW5ndGggPT0gMCkKLQkJCQlmb3JtYXRz ID0gbmV3IEZpbGVGb3JtYXQgW10geyBEZWZhdWx0RmlsZUZvcm1hdCB9OworCQkJCWZvcm1hdHMg PSBuZXcgIFtdIHsgRGVmYXVsdEZpbGVGb3JtYXQgfTsKIAkJCQogCQkJU29sdXRpb24gdGVtcFNv bHV0aW9uID0gbmV3IFNvbHV0aW9uICgpOwogCQkJCi0JCQlGaWxlRm9ybWF0IHNvbHV0aW9uRmls ZUZvcm1hdDsKLQkJCWlmIChmb3JtYXRzIFswXS5DYW5Xcml0ZSAodGVtcFNvbHV0aW9uKSkKLQkJ CQlzb2x1dGlvbkZpbGVGb3JtYXQgPSBmb3JtYXRzIFswXTsKLQkJCWVsc2UKLQkJCQlzb2x1dGlv bkZpbGVGb3JtYXQgPSBNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5NRDFQcm9qZWN0 U2VydmljZS5GaWxlRm9ybWF0OworCQkJRmlsZUZvcm1hdCBzb2x1dGlvbkZpbGVGb3JtYXQgPSBm b3JtYXRzLkZpcnN0T3JEZWZhdWx0IChmID0+IGYuQ2FuV3JpdGUgKHRlbXBTb2x1dGlvbikpID8/ IERlZmF1bHRGaWxlRm9ybWF0OwogCQkJCiAJCQlzdHJpbmcgc29sRmlsZU5hbWUgPSBzb2x1dGlv bkZpbGVGb3JtYXQuR2V0VmFsaWRGaWxlTmFtZSAodGVtcFNvbHV0aW9uLCBmaWxlbmFtZSk7CiAJ CQkNCg0KUmVtb3ZlZDogbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5Db3JlL21kMWZvcm1hdC54 bWwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCkBAIC0xLDkxICswLDAgQEAKLTxTZXJpYWxpemF0aW9uTWFwPgotCTxE YXRhSXRlbSBjbGFzcyA9ICJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Tb2x1dGlvbiIgbmFtZT0iQ29t YmluZSI+Ci0JCTxMaXRlcmFsUHJvcGVydHkgbmFtZT0iZmlsZXZlcnNpb24iIHZhbHVlPSIyLjAi IC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJkZXNjcmlwdGlvbiIgZGVmYXVsdFZhbHVlPSIi IC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJ2ZXJzaW9uIiBkZWZhdWx0VmFsdWU9IjAuMSIv PgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ib3V0cHV0ZGlyIiBuYW1lPSJvdXRwdXRwYXRoIiBz ZXJpYWxpemF0aW9uRGF0YVR5cGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLlBhdGhEYXRhVHlwZSIg Lz4KLQkJPEl0ZW1NZW1iZXIgbmFtZT0iQ29tYmluZUNvbmZpZ3VyYXRpb25zIiB0eXBlPSJNb25v RGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5Db21iaW5lQ29uZmlndXJhdGlvblNldCIvPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iQ29tYmluZUNvbmZpZ3VyYXRpb25zIiBuYW1lPSJDb25m aWd1cmF0aW9ucyIgLz4KLQkJPEl0ZW1NZW1iZXIgbmFtZT0iU3RhcnRNb2RlIiB0eXBlPSJNb25v RGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5Db21iaW5lU3RhcnR1cE1vZGUiLz4KLQkJPEl0 ZW1Qcm9wZXJ0eSBtZW1iZXI9IlN0YXJ0TW9kZSIgbmFtZT0iU3RhcnRNb2RlIiAvPgotCQk8SXRl bVByb3BlcnR5IG1lbWJlcj0iUG9saWNpZXMiIHNraXBFbXB0eT0idHJ1ZSIgLz4KLQk8L0RhdGFJ dGVtPgotCTxEYXRhSXRlbSBjbGFzcyA9ICJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Tb2x1dGlvbkZv bGRlciIgbmFtZT0iU29sdXRpb25Gb2xkZXIiPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibmFt ZSIgLz4KLQkJPExpdGVyYWxQcm9wZXJ0eSBuYW1lPSJmaWxldmVyc2lvbiIgdmFsdWU9IjIuMCIg Lz4KLQkJPEl0ZW1NZW1iZXIgbmFtZT0iQ29tYmluZUNvbmZpZ3VyYXRpb25zIiB0eXBlPSJNb25v RGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5Db21iaW5lQ29uZmlndXJhdGlvblNldCIvPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iQ29tYmluZUNvbmZpZ3VyYXRpb25zIiBuYW1lPSJDb25m aWd1cmF0aW9ucyIgLz4KLQkJPEl0ZW1NZW1iZXIgbmFtZT0iU3RhcnRNb2RlIiB0eXBlPSJNb25v RGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5Db21iaW5lU3RhcnR1cE1vZGUiLz4KLQkJPEl0 ZW1Qcm9wZXJ0eSBtZW1iZXI9IlN0YXJ0TW9kZSIgbmFtZT0iU3RhcnRNb2RlIiAvPgotCTwvRGF0 YUl0ZW0+Ci0JPERhdGFJdGVtIGNsYXNzID0gIk1vbm9EZXZlbG9wLlByb2plY3RzLlNvbHV0aW9u SXRlbSI+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJQb2xpY2llcyIgc2tpcEVtcHR5PSJ0cnVl IiAvPgotCTwvRGF0YUl0ZW0+Ci0JPERhdGFJdGVtIGNsYXNzID0gIk1vbm9EZXZlbG9wLlByb2pl Y3RzLlNvbHV0aW9uRW50aXR5SXRlbSIgbmFtZT0iQ29tYmluZUVudHJ5IiBmYWxsYmFja1R5cGU9 Ik1vbm9EZXZlbG9wLlByb2plY3RzLlVua25vd25Tb2x1dGlvbkl0ZW0iIGN1c3RvbURhdGFJdGVt PSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Gb3JtYXRzLk1EMS5NRDFDdXN0b21EYXRhSXRlbSI+Ci0J CTxJdGVtUHJvcGVydHkgbWVtYmVyPSJyZWxlYXNlVmVyc2lvbiIgbmFtZSA9ICJyZWxlYXNlVmVy c2lvbiIgZGVmYXVsdFZhbHVlPSIwLjEiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9InN5bmNS ZWxlYXNlVmVyc2lvbiIgbmFtZSA9ICJzeW5jUmVsZWFzZVZlcnNpb24iIGRlZmF1bHRWYWx1ZT0i dHJ1ZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iTmFtZSIgbmFtZT0ibmFtZSIvPgotCQk8 TGl0ZXJhbFByb3BlcnR5IG5hbWU9ImZpbGV2ZXJzaW9uIiB2YWx1ZT0iMi4wIiAvPgotCQk8SXRl bVByb3BlcnR5IG1lbWJlcj0iQ29uZmlndXJhdGlvbnMiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1i ZXI9IkNvbmZpZ3VyYXRpb25zIiBzY29wZT0iKiIgbmFtZT0iQ29uZmlndXJhdGlvbiIgdmFsdWVU eXBlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Tb2x1dGlvbkl0ZW1Db25maWd1cmF0aW9uIi8+Ci0J PC9EYXRhSXRlbT4KLQk8RGF0YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuUHJvamVjdHMuUHJv amVjdCIgZmFsbGJhY2tUeXBlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Vbmtub3duUHJvamVjdCI+ Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJkZXNjcmlwdGlvbiIgZGVmYXVsdFZhbHVlPSIiLz4K LQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9Im5ld0ZpbGVTZWFyY2giIG5hbWU9Im5ld2ZpbGVzZWFy Y2giIGRlZmF1bHRWYWx1ZT0iTm9uZSIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9IkZpbGVz IiBuYW1lPSJDb250ZW50cyIgLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9IkZpbGVzIiBzY29w ZT0iKiIgbmFtZT0iRmlsZSIgLz4KLQk8L0RhdGFJdGVtPgotCTxEYXRhSXRlbSBjbGFzcyA9ICJN b25vRGV2ZWxvcC5Qcm9qZWN0cy5Eb3ROZXRQcm9qZWN0IiBuYW1lPSJBYnN0cmFjdERvdE5ldFBy b2plY3QiPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibGFuZ3VhZ2VOYW1lIiBuYW1lPSJsYW5n dWFnZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iVXNlUGFydGlhbFR5cGVzIiBkZWZhdWx0 VmFsdWU9InRydWUiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImRlZmF1bHROYW1lc3BhY2Ui IG5hbWU9IkRlZmF1bHROYW1lc3BhY2UiIGRlZmF1bHRWYWx1ZT0iIiAvPgotCQk8SXRlbVByb3Bl cnR5IG1lbWJlcj0iUmVmZXJlbmNlcyIgbmFtZT0iUmVmZXJlbmNlcyIgLz4KLQkJPEl0ZW1Qcm9w ZXJ0eSBtZW1iZXI9Ikxhbmd1YWdlUGFyYW1ldGVycyIgc2tpcEVtcHR5PSJ0cnVlIiAvPgotCTwv RGF0YUl0ZW0+Ci0JPERhdGFJdGVtIGNsYXNzID0gIk1vbm9EZXZlbG9wLlByb2plY3RzLkRvdE5l dEFzc2VtYmx5UHJvamVjdCIgbmFtZT0iRG90TmV0UHJvamVjdCI+Ci0JPC9EYXRhSXRlbT4KLQk8 RGF0YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuUHJvamVjdHMuRG90TmV0UHJvamVjdENvbmZp Z3VyYXRpb24iPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iYXNzZW1ibHkiIG5hbWU9Ik91dHB1 dC9hc3NlbWJseSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ic2lnbkFzc2VtYmx5IiBuYW1l PSJPdXRwdXQvc2lnbkFzc2VtYmx5IiBkZWZhdWx0VmFsdWU9ImZhbHNlIiAvPgotCQk8SXRlbVBy b3BlcnR5IG1lbWJlcj0iZGVsYXlTaWduIiBuYW1lPSJPdXRwdXQvZGVsYXlTaWduIiBkZWZhdWx0 VmFsdWU9ImZhbHNlIiAvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iYXNzZW1ibHlLZXlGaWxl IiBuYW1lPSJPdXRwdXQvYXNzZW1ibHlLZXlGaWxlIiBkZWZhdWx0VmFsdWU9IiIgLz4KLQkJPExp dGVyYWxQcm9wZXJ0eSBuYW1lPSJFeGVjdXRpb24vcnVudGltZSIgdmFsdWU9Ik1zTmV0IiAvPgot CQk8SXRlbU1lbWJlciBuYW1lPSJtZDFfQ29tcGlsZVRhcmdldCIgdHlwZT0iU3lzdGVtLlN0cmlu ZyIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ibWQxX0NvbXBpbGVUYXJnZXQiIG5hbWU9IkJ1 aWxkL3RhcmdldCIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iQ29tcGlsYXRpb25QYXJhbWV0 ZXJzIiBuYW1lPSJDb2RlR2VuZXJhdGlvbiIgZmFsbGJhY2tUeXBlPSJNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5Vbmtub3duQ29tcGlsYXRpb25QYXJhbWV0ZXJzIi8+Ci0JPC9EYXRhSXRlbT4KLQk8RGF0 YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuUHJvamVjdHMuSXRlbUNvbmZpZ3VyYXRpb24iPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iSWQiIG5hbWU9Im5hbWUiIC8+Ci0JCTxJdGVtUHJvcGVy dHkgbWVtYmVyPSJjdXN0b21Db21tYW5kcyIgbmFtZT0iQ3VzdG9tQ29tbWFuZHMiIC8+Ci0JCTxJ dGVtUHJvcGVydHkgbWVtYmVyPSJjdXN0b21Db21tYW5kcyIgbmFtZT0iQ29tbWFuZCIgc2NvcGU9 IioiIC8+Ci0JPC9EYXRhSXRlbT4KLQk8RGF0YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3AuUHJv amVjdHMuUHJvamVjdENvbmZpZ3VyYXRpb24iPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ib3V0 cHV0RGlyZWN0b3J5IiBuYW1lPSJPdXRwdXQvZGlyZWN0b3J5IiBzZXJpYWxpemF0aW9uRGF0YVR5 cGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLlBhdGhEYXRhVHlwZSIvPgotCQk8SXRlbVByb3BlcnR5 IG1lbWJlcj0iZGVidWdNb2RlIiBuYW1lPSJCdWlsZC9kZWJ1Z21vZGUiIC8+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJydW5XaXRoV2FybmluZ3MiIG5hbWU9IkV4ZWN1dGlvbi9ydW53aXRod2Fy bmluZ3MiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJjb21tYW5kTGluZVBhcmFtZXRlcnMi IG5hbWU9IkV4ZWN1dGlvbi9jb21tYW5kbGluZXBhcmFtZXRlcnMiIGRlZmF1bHRWYWx1ZSA9IiIv PgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iZXh0ZXJuYWxDb25zb2xlIiBuYW1lPSJFeGVjdXRp b24vZXh0ZXJuYWxjb25zb2xlIiBkZWZhdWx0VmFsdWU9ImZhbHNlIiAvPgotCQk8SXRlbVByb3Bl cnR5IG1lbWJlcj0icGF1c2VDb25zb2xlT3V0cHV0IiBuYW1lPSJFeGVjdXRpb24vY29uc29sZXBh dXNlIiAvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iZW52aXJvbm1lbnRWYXJpYWJsZXMiIG5h bWU9IkVudmlyb25tZW50VmFyaWFibGVzIiBza2lwRW1wdHk9InRydWUiIC8+Ci0JCTxJdGVtUHJv cGVydHkgbWVtYmVyPSJlbnZpcm9ubWVudFZhcmlhYmxlcyIgbmFtZT0iVmFyaWFibGUiIHNjb3Bl PSJpdGVtIi8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJlbnZpcm9ubWVudFZhcmlhYmxlcyIg bmFtZT0ibmFtZSIgc2NvcGU9ImtleSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iZW52aXJv bm1lbnRWYXJpYWJsZXMiIG5hbWU9InZhbHVlIiBzY29wZT0idmFsdWUiLz4KLQk8L0RhdGFJdGVt PgotCTxEYXRhSXRlbSBjbGFzcyA9ICJNb25vRGV2ZWxvcC5Qcm9qZWN0cy5Qcm9qZWN0RmlsZSIg Y3VzdG9tRGF0YUl0ZW09Ik1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxLk1EMUN1c3Rv bURhdGFJdGVtIj4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9ImZpbGVuYW1lIiBuYW1lPSJuYW1l IiBzZXJpYWxpemF0aW9uRGF0YVR5cGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLlBhdGhEYXRhVHlw ZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJlcj0ic3VidHlwZSIgbmFtZT0ic3VidHlwZSIvPgot CQk8SXRlbVByb3BlcnR5IG1lbWJlcj0iYnVpbGRhY3Rpb24iIG5hbWU9ImJ1aWxkYWN0aW9uIiBz ZXJpYWxpemF0aW9uRGF0YVR5cGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzLkZvcm1hdHMuTUQxLkJ1 aWxkQWN0aW9uRGF0YVR5cGUiIC8+Ci0JCTxJdGVtUHJvcGVydHkgbWVtYmVyPSJkZXBlbmRzT24i IG5hbWU9ImRlcGVuZHNvbiIgZGVmYXVsdFZhbHVlPSIiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1i ZXI9ImNvcHlUb091dHB1dERpcmVjdG9yeSIgbmFtZT0iY29weVRvT3V0cHV0RGlyZWN0b3J5IiBk ZWZhdWx0VmFsdWU9Ik5vbmUiLz4KLQkJPEl0ZW1Qcm9wZXJ0eSBtZW1iZXI9InZpc2libGUiIG5h bWU9InZpc2libGUiIGRlZmF1bHRWYWx1ZT0idHJ1ZSIvPgotCQk8SXRlbVByb3BlcnR5IG1lbWJl cj0iY29udGVudFR5cGUiIG5hbWU9ImNvbnRlbnRUeXBlIiBkZWZhdWx0VmFsdWU9IiIvPgotCQk8 SXRlbVByb3BlcnR5IG1lbWJlcj0iZ2VuZXJhdG9yIiBuYW1lPSJnZW5lcmF0b3IiIGRlZmF1bHRW YWx1ZT0iIi8+Ci0JPC9EYXRhSXRlbT4KLQk8RGF0YUl0ZW0gY2xhc3MgPSAiTW9ub0RldmVsb3Au UHJvamVjdHMuUHJvamVjdFJlZmVyZW5jZSIgZmFsbGJhY2tUeXBlPSJNb25vRGV2ZWxvcC5Qcm9q ZWN0cy5Vbmtub3duUHJvamVjdFJlZmVyZW5jZSIgY3VzdG9tRGF0YUl0ZW09Ik1vbm9EZXZlbG9w LlByb2plY3RzLkZvcm1hdHMuTUQxLk1EMUN1c3RvbURhdGFJdGVtIj4KLQkJPEl0ZW1Qcm9wZXJ0 eSBtZW1iZXI9ImludGVybmFsUmVmZXJlbmNlVHlwZSIgbmFtZT0idHlwZSIgLz4KLQkJPEl0ZW1Q cm9wZXJ0eSBtZW1iZXI9ImxvY2FsQ29weSIgbmFtZT0ibG9jYWxjb3B5IiAvPgotCQk8SXRlbVBy b3BlcnR5IG1lbWJlcj0iU3BlY2lmaWNWZXJzaW9uIiBuYW1lPSJzcGVjaWZpY1ZlcnNpb24iIGRl ZmF1bHRWYWx1ZT0iVHJ1ZSIvPgotCTwvRGF0YUl0ZW0+Ci0JPERhdGFJdGVtIGNsYXNzID0gIk1v bm9EZXZlbG9wLlByb2plY3RzLlNvbHV0aW9uQ29uZmlndXJhdGlvbiI+Ci0JPC9EYXRhSXRlbT4K LTwvU2VyaWFsaXphdGlvbk1hcD4NCg0KTW9kaWZpZWQ6IG1haW4vc3JjL2NvcmUvTW9ub0RldmVs b3AuSWRlL0V4dGVuc2lvbk1vZGVsL01vbm9EZXZlbG9wLklkZS5hZGRpbi54bWwNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCkBAIC0yMjIsMTIgKzIyMiw2IEBACiAJCTxGaWxlRmlsdGVyIGlkID0gIk1TQnVpbGRQcm9q ZWN0IgogCQkgICAgICAgICAgICBfbGFiZWwgPSAiUHJvamVjdCBGaWxlcyIKIAkJICAgICAgICAg ICAgZXh0ZW5zaW9ucyA9ICIqLipwcm9qIi8+Ci0JCTxGaWxlRmlsdGVyIGlkID0gIkNvbWJpbmUi Ci0JCSAgICAgICAgICAgIF9sYWJlbCA9ICJNRCAxLjAgU29sdXRpb24gRmlsZXMiCi0JCSAgICAg ICAgICAgIGV4dGVuc2lvbnMgPSAiKi5tZHMiLz4KLQkJPEZpbGVGaWx0ZXIgaWQgPSAiUHJvamVj dCIKLQkJICAgICAgICAgICAgX2xhYmVsID0gIk1EIDEuMCBQcm9qZWN0IEZpbGVzIgotCQkgICAg ICAgICAgICBleHRlbnNpb25zID0gIioubWRwIi8+CiAJCTxGaWxlRmlsdGVyIGlkID0gIldvcmti ZW5jaCIKIAkJCQkJX2xhYmVsID0gIk1EIFdvcmtiZW5jaCIKIAkJCQkJZXh0ZW5zaW9ucyA9ICIq Lm1kdyIvPg0KDQpNb2RpZmllZDogbWFpbi9zcmMvY29yZS9Nb25vRGV2ZWxvcC5JZGUvTW9ub0Rl dmVsb3AuSWRlL1Byb2plY3RPcGVyYXRpb25zLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNzA0LDcgKzcw NCw3IEBAIHB1YmxpYyBTb2x1dGlvbkl0ZW0gQWRkU29sdXRpb25JdGVtIChTb2x1dGlvbkZvbGRl ciBwYXJlbnRGb2xkZXIpCiAJCQl9OwogCQkKIAkJCWRsZy5BZGRBbGxGaWxlc0ZpbHRlciAoKTsK LQkJCWRsZy5EZWZhdWx0RmlsdGVyID0gZGxnLkFkZEZpbHRlciAoR2V0dGV4dENhdGFsb2cuR2V0 U3RyaW5nICgiUHJvamVjdCBGaWxlcyIpLCAiKi4qcHJvaiIsICIqLm1kcCIpOworCQkJZGxnLkRl ZmF1bHRGaWx0ZXIgPSBkbGcuQWRkRmlsdGVyIChHZXR0ZXh0Q2F0YWxvZy5HZXRTdHJpbmcgKCJQ cm9qZWN0IEZpbGVzIiksICIqLipwcm9qIik7CiAJCQkKIAkJCWlmIChkbGcuUnVuICgpKSB7CiAJ CQkJdHJ5IHsNCg0KTW9kaWZpZWQ6IG1haW4vdGVzdHMvVW5pdFRlc3RzL01vbm9EZXZlbG9wLlBy b2plY3RzL01TQnVpbGRUZXN0cy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTg3LDcgKzg3LDcgQEAgcHVi bGljIHZvaWQgQnVpbGRDb25zb2xlUHJvamVjdCAoKQogCQlwdWJsaWMgdm9pZCBDcmVhdGVDb25z b2xlUHJvamVjdCAoKQogCQl7CiAJCQlTb2x1dGlvbiBzb2wgPSBUZXN0UHJvamVjdHNDaGVja3Mu Q3JlYXRlQ29uc29sZVNvbHV0aW9uICgiY29uc29sZS1wcm9qZWN0LW1zYnVpbGQiKTsKLQkJCXNv bC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1TQnVpbGQwNSwgdHJ1ZSk7CisJCQlz b2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVGb3JtYXRNU0J1aWxkMTAsIHRydWUpOwogCQkJ c29sLlNhdmUgKFV0aWwuR2V0TW9uaXRvciAoKSk7CiAJCQkKIAkJCS8vIG1zYnVpbGQgZm9ybWF0 CkBAIC05OCwzMSArOTgsMTQgQEAgcHVibGljIHZvaWQgQ3JlYXRlQ29uc29sZVByb2plY3QgKCkK IAkJCS8vIE1ha2Ugc3VyZSB3ZSBjb21wYXJlIHVzaW5nIHRoZSBzYW1lIGd1aWQKIAkJCVByb2pl Y3QgcCA9IHNvbC5JdGVtcyBbMF0gYXMgUHJvamVjdDsKIAkJCXN0cmluZyBndWlkID0gcC5JdGVt SWQ7Ci0JCQlzb2xYbWwgPSBzb2xYbWwuUmVwbGFjZSAoZ3VpZCwgIntEQzU3NzIwMi02NTRCLTRG REItOTVDNy04Q0M1RERGNkQzMkR9Iik7Ci0JCQlwcm9qZWN0WG1sID0gcHJvamVjdFhtbC5SZXBs YWNlIChndWlkLCAie0RDNTc3MjAyLTY1NEItNEZEQi05NUM3LThDQzVEREY2RDMyRH0iKTsKKwkJ CXNvbFhtbCA9IHNvbFhtbC5SZXBsYWNlIChndWlkLCAiezk2OUYwNUUyLTBFNzktNEM1Qi05ODJD LThGM0RENEQ0NjMxMX0iKTsKKwkJCXByb2plY3RYbWwgPSBwcm9qZWN0WG1sLlJlcGxhY2UgKGd1 aWQsICJ7OTY5RjA1RTItMEU3OS00QzVCLTk4MkMtOEYzREQ0RDQ2MzExfSIpOwogCQkJCiAJCQlz dHJpbmcgc29sRmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdFBhdGggKCJnZW5lcmF0ZWQtY29u c29sZS1wcm9qZWN0IiwgIlRlc3RTb2x1dGlvbi5zbG4iKTsKIAkJCXN0cmluZyBwcm9qZWN0Rmls ZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdFBhdGggKCJnZW5lcmF0ZWQtY29uc29sZS1wcm9qZWN0 IiwgIlRlc3RQcm9qZWN0LmNzcHJvaiIpOwogCQkJCi0JCQlBc3NlcnQuQXJlRXF1YWwgKEZpbGUu UmVhZEFsbFRleHQgKHNvbEZpbGUpLCBzb2xYbWwpOwotCQkJQXNzZXJ0LkFyZUVxdWFsIChVdGls LkdldFhtbEZpbGVJbmZvc2V0IChwcm9qZWN0RmlsZSksIHByb2plY3RYbWwpOwotCi0JCQkvLyBN RDEgZm9ybWF0Ci0JCQkKLQkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1E MSwgdHJ1ZSk7Ci0JCQlzb2wuU2F2ZSAoVXRpbC5HZXRNb25pdG9yICgpKTsKLQotCQkJc29sWG1s ID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoc29sLkZpbGVOYW1lKTsKLQkJCXByb2plY3RYbWwg PSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0ICgoKFNvbHV0aW9uRW50aXR5SXRlbSlzb2wuSXRlbXMg WzBdKS5GaWxlTmFtZSk7Ci0KLQkJCXNvbEZpbGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3RQYXRo ICgiZ2VuZXJhdGVkLWNvbnNvbGUtcHJvamVjdCIsICJUZXN0U29sdXRpb24ubWRzIik7Ci0JCQlw cm9qZWN0RmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdFBhdGggKCJnZW5lcmF0ZWQtY29uc29s ZS1wcm9qZWN0IiwgIlRlc3RQcm9qZWN0Lm1kcCIpOwotCQkJCi0JCQlBc3NlcnQuQXJlRXF1YWwg KFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKHNvbEZpbGUpLCBzb2xYbWwsICJzb2xYbWw6ICIgKyBz b2wuRmlsZU5hbWUpOwotCQkJQXNzZXJ0LkFyZUVxdWFsIChVdGlsLkdldFhtbEZpbGVJbmZvc2V0 IChwcm9qZWN0RmlsZSksIHByb2plY3RYbWwsICJwcm9qZWN0WG1sOiAiICsgKChTb2x1dGlvbkVu dGl0eUl0ZW0pc29sLkl0ZW1zIFswXSkuRmlsZU5hbWUpOwotCQkJCi0vLwkJCXNvbC5GaWxlRm9y bWF0ID0gU2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmlsZUZvcm1hdHMuR2V0RmlsZUZvcm1hdCAo Ik1TQnVpbGQwOCIpOwotLy8JCQlzb2wuU2F2ZSAoVXRpbC5HZXRNb25pdG9yICgpKTsKKwkJCUFz c2VydC5BcmVFcXVhbCAoVXRpbC5Ub1dpbmRvd3NFbmRpbmdzIChGaWxlLlJlYWRBbGxUZXh0IChz b2xGaWxlKSksIHNvbFhtbCk7CisJCQlBc3NlcnQuQXJlRXF1YWwgKFV0aWwuVG9XaW5kb3dzRW5k aW5ncyAoVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAocHJvamVjdEZpbGUpKSwgcHJvamVjdFhtbCk7 CiAJCX0KIAkJCiAJCVtUZXN0XQ0KDQpNb2RpZmllZDogbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9u b0RldmVsb3AuUHJvamVjdHMvTWRzVGVzdHMuY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yNSwxNDEgKzI1 LDE1IEBACiAvLwogLy8KIAotdXNpbmcgU3lzdGVtOwogdXNpbmcgU3lzdGVtLklPOwogdXNpbmcg TlVuaXQuRnJhbWV3b3JrOwogdXNpbmcgVW5pdFRlc3RzOwotdXNpbmcgTW9ub0RldmVsb3AuQ29y ZTsKIAogbmFtZXNwYWNlIE1vbm9EZXZlbG9wLlByb2plY3RzCiB7Ci0JW1Rlc3RGaXh0dXJlKCld CisJW1Rlc3RGaXh0dXJlXQogCXB1YmxpYyBjbGFzcyBNZHNUZXN0czogVGVzdEJhc2UKIAl7Ci0J CVtUZXN0KCldCi0JCXB1YmxpYyB2b2lkIExvYWRTYXZlQnVpbGRDb25zb2xlUHJvamVjdCgpCi0J CXsKLQkJCXN0cmluZyBzb2xGaWxlID0gVXRpbC5HZXRTYW1wbGVQcm9qZWN0ICgiY3NoYXJwLWNv bnNvbGUtbWRwIiwgImNzaGFycC1jb25zb2xlLW1kcC5tZHMiKTsKLQkJCQotCQkJV29ya3NwYWNl SXRlbSBpdGVtID0gU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtzcGFjZUl0ZW0gKFV0 aWwuR2V0TW9uaXRvciAoKSwgc29sRmlsZSk7Ci0JCQlBc3NlcnQuSXNUcnVlIChpdGVtIGlzIFNv bHV0aW9uKTsKLQkJCQotCQkJU29sdXRpb24gc29sID0gKFNvbHV0aW9uKSBpdGVtOwotCQkJVGVz dFByb2plY3RzQ2hlY2tzLkNoZWNrQmFzaWNNZENvbnNvbGVQcm9qZWN0IChzb2wpOwotCQkJc3Ry aW5nIHByb2plY3RGaWxlID0gKChQcm9qZWN0KXNvbC5JdGVtcyBbMF0pLkZpbGVOYW1lOwotCQkJ Ci0JCQlCdWlsZFJlc3VsdCBjciA9IGl0ZW0uQnVpbGQgKFV0aWwuR2V0TW9uaXRvciAoKSwgKFNv bHV0aW9uQ29uZmlndXJhdGlvblNlbGVjdG9yKSAiRGVidWciKTsKLQkJCUFzc2VydC5Jc05vdE51 bGwgKGNyKTsKLQkJCUFzc2VydC5BcmVFcXVhbCAoMCwgY3IuRXJyb3JDb3VudCk7Ci0JCQlBc3Nl cnQuQXJlRXF1YWwgKDAsIGNyLldhcm5pbmdDb3VudCk7Ci0JCQkKLQkJCXN0cmluZyBzb2xYbWwg PSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChzb2xGaWxlKTsKLQkJCXN0cmluZyBwcm9qZWN0WG1s ID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAocHJvamVjdEZpbGUpOwotCQkJCi0JCQlzb2wuU2F2 ZSAoVXRpbC5HZXRNb25pdG9yICgpKTsKLQkJCQotCQkJQXNzZXJ0LkFyZUVxdWFsIChzb2xYbWws IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKHNvbEZpbGUpLCAiU2F2ZWQgc29sdXRpb24gZmlsZSIp OwotCQkJQXNzZXJ0LkFyZUVxdWFsIChwcm9qZWN0WG1sLCBVdGlsLkdldFhtbEZpbGVJbmZvc2V0 IChwcm9qZWN0RmlsZSksICJTYXZlZCBwcm9qZWN0IGZpbGUiKTsKLQkJfQotCQkKLQkJW1Rlc3Qo KV0KLQkJcHVibGljIHZvaWQgTmVzdGVkU29sdXRpb25zKCkKLQkJewotCQkJc3RyaW5nIHNvbEZp bGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3QgKCJuZXN0ZWQtc29sdXRpb25zLW1kcCIsICJuZXN0 ZWQtc29sdXRpb25zLW1kcC5tZHMiKTsKLQkJCQotCQkJV29ya3NwYWNlSXRlbSBpdGVtID0gU2Vy dmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtzcGFjZUl0ZW0gKFV0aWwuR2V0TW9uaXRvciAo KSwgc29sRmlsZSk7Ci0JCQlBc3NlcnQuSXNUcnVlIChpdGVtIGlzIFNvbHV0aW9uKTsKLQkJCQot CQkJU29sdXRpb24gc29sID0gKFNvbHV0aW9uKSBpdGVtOwotCQkJCi0JCQlCdWlsZFJlc3VsdCBj ciA9IGl0ZW0uQnVpbGQgKFV0aWwuR2V0TW9uaXRvciAoKSwgKFNvbHV0aW9uQ29uZmlndXJhdGlv blNlbGVjdG9yKSAiRGVidWciKTsKLQkJCUFzc2VydC5Jc05vdE51bGwgKGNyKTsKLQkJCUFzc2Vy dC5BcmVFcXVhbCAoMCwgY3IuRXJyb3JDb3VudCk7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKDAsIGNy Lldhcm5pbmdDb3VudCk7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKDYsIGNyLkJ1aWxkQ291bnQpOwot Ci0JCQlzdHJpbmcgZGlyID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lIChzb2xGaWxlKTsKLQkJCXN0 cmluZyBzb2xYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChzb2xGaWxlKTsKLQkJCXN0cmlu ZyBwMVhtbCA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgImNvbnNvbGUtcHJvamVjdCIs ICJjb25zb2xlLXByb2plY3QubWRwIik7Ci0JCQlzdHJpbmcgczFYbWwgPSBVdGlsLkdldFhtbEZp bGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgIm5lc3RlZC1zb2x1dGlvbjEubWRz Iik7Ci0JCQlzdHJpbmcgczJYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0 ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjIubWRzIik7Ci0JCQlzdHJpbmcgcGxpYjFY bWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgImxp YnJhcnkxIiwgImxpYnJhcnkxLm1kcCIpOwotCQkJc3RyaW5nIHBsaWIyWG1sID0gVXRpbC5HZXRY bWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMSIsICJsaWJyYXJ5MiIsICJsaWJy YXJ5Mi5tZHAiKTsKLQkJCXN0cmluZyBwMlhtbCA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRp ciwgIm5lc3RlZC1zb2x1dGlvbjIiLCAiY29uc29sZS1wcm9qZWN0MiIsICJjb25zb2xlLXByb2pl Y3QyLm1kcCIpOwotCQkJc3RyaW5nIHMzWG1sID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGly LCAibmVzdGVkLXNvbHV0aW9uMiIsICJuZXN0ZWQtc29sdXRpb24zIiwgIm5lc3RlZC1zb2x1dGlv bjMubWRzIik7Ci0JCQlzdHJpbmcgcGxpYjNYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChk aXIsICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjMiLCAibGlicmFyeTMiLCAi bGlicmFyeTMubWRwIik7Ci0JCQlzdHJpbmcgcGxpYjRYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZv c2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjMiLCAibGlicmFy eTQiLCAibGlicmFyeTQubWRwIik7Ci0JCQkKLQkJCXNvbC5TYXZlIChVdGlsLkdldE1vbml0b3Ig KCkpOwotCQkJCi0JCQlzdHJpbmcgc29sWG1sMiA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKHNv bEZpbGUpOwotCQkJc3RyaW5nIHAxWG1sMiA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwg ImNvbnNvbGUtcHJvamVjdCIsICJjb25zb2xlLXByb2plY3QubWRwIik7Ci0JCQlzdHJpbmcgczFY bWwyID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMSIsICJu ZXN0ZWQtc29sdXRpb24xLm1kcyIpOwotCQkJc3RyaW5nIHMyWG1sMiA9IFV0aWwuR2V0WG1sRmls ZUluZm9zZXQgKGRpciwgIm5lc3RlZC1zb2x1dGlvbjIiLCAibmVzdGVkLXNvbHV0aW9uMi5tZHMi KTsKLQkJCXN0cmluZyBwbGliMVhtbDIgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJu ZXN0ZWQtc29sdXRpb24xIiwgImxpYnJhcnkxIiwgImxpYnJhcnkxLm1kcCIpOwotCQkJc3RyaW5n IHBsaWIyWG1sMiA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgIm5lc3RlZC1zb2x1dGlv bjEiLCAibGlicmFyeTIiLCAibGlicmFyeTIubWRwIik7Ci0JCQlzdHJpbmcgcDJYbWwyID0gVXRp bC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJjb25zb2xlLXBy b2plY3QyIiwgImNvbnNvbGUtcHJvamVjdDIubWRwIik7Ci0JCQlzdHJpbmcgczNYbWwyID0gVXRp bC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJuZXN0ZWQtc29s dXRpb24zIiwgIm5lc3RlZC1zb2x1dGlvbjMubWRzIik7Ci0JCQlzdHJpbmcgcGxpYjNYbWwyID0g VXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJuZXN0ZWQt c29sdXRpb24zIiwgImxpYnJhcnkzIiwgImxpYnJhcnkzLm1kcCIpOwotCQkJc3RyaW5nIHBsaWI0 WG1sMiA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgIm5lc3RlZC1zb2x1dGlvbjIiLCAi bmVzdGVkLXNvbHV0aW9uMyIsICJsaWJyYXJ5NCIsICJsaWJyYXJ5NC5tZHAiKTsKLQkJCQotCQkJ QXNzZXJ0LkFyZUVxdWFsIChzb2xYbWwsIHNvbFhtbDIsICJzb2xYbWwiKTsKLQkJCUFzc2VydC5B cmVFcXVhbCAocDFYbWwsIHAxWG1sMiwgInAxWG1sIik7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKHMx WG1sLCBzMVhtbDIsICJzMVhtbCIpOwotCQkJQXNzZXJ0LkFyZUVxdWFsIChzMlhtbCwgczJYbWwy LCAiczJYbWwiKTsKLQkJCUFzc2VydC5BcmVFcXVhbCAocGxpYjFYbWwsIHBsaWIxWG1sMiwgInBs aWIxWG1sIik7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKHBsaWIyWG1sLCBwbGliMlhtbDIsICJwbGli MlhtbCIpOwotCQkJQXNzZXJ0LkFyZUVxdWFsIChwMlhtbCwgcDJYbWwyLCAicDJYbWwiKTsKLQkJ CUFzc2VydC5BcmVFcXVhbCAoczNYbWwsIHMzWG1sMiwgInMzWG1sIik7Ci0JCQlBc3NlcnQuQXJl RXF1YWwgKHBsaWIzWG1sLCBwbGliM1htbDIsICJwbGliM1htbCIpOwotCQkJQXNzZXJ0LkFyZUVx dWFsIChwbGliNFhtbCwgcGxpYjRYbWwyLCAicGxpYjRYbWwiKTsKLQkJfQotCQkKLQkJW1Rlc3Qo KV0KLQkJcHVibGljIHZvaWQgQ3JlYXRlTmVzdGVkU29sdXRpb25zKCkKLQkJewotCQkJU29sdXRp b24gc29sID0gVGVzdFByb2plY3RzQ2hlY2tzLkNyZWF0ZVByb2plY3RXaXRoRm9sZGVycyAoIm5l c3RlZC1zb2x1dGlvbnMtbWQxIik7Ci0JCQlzb2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVG b3JtYXRNRDEsIHRydWUpOwotCQkJCi0JCQlzb2wuU2F2ZSAoVXRpbC5HZXRNb25pdG9yICgpKTsK LQkJCQotCQkJc3RyaW5nIHNvbEZpbGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3RQYXRoICgibmVz dGVkLXNvbHV0aW9ucy1tZHAiLCAibmVzdGVkLXNvbHV0aW9ucy1tZHAubWRzIik7Ci0JCQlzdHJp bmcgZGlyID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lIChzb2xGaWxlKTsKLQkJCXN0cmluZyBzb2xY bWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChzb2xGaWxlKTsKLQkJCXN0cmluZyBwMVhtbCA9 IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgImNvbnNvbGUtcHJvamVjdCIsICJjb25zb2xl LXByb2plY3QubWRwIik7Ci0JCQlzdHJpbmcgczFYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0 IChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgIm5lc3RlZC1zb2x1dGlvbjEubWRzIik7Ci0JCQlz dHJpbmcgczJYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRp b24yIiwgIm5lc3RlZC1zb2x1dGlvbjIubWRzIik7Ci0JCQlzdHJpbmcgcGxpYjFYbWwgPSBVdGls LkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgImxpYnJhcnkxIiwg ImxpYnJhcnkxLm1kcCIpOwotCQkJc3RyaW5nIHBsaWIyWG1sID0gVXRpbC5HZXRYbWxGaWxlSW5m b3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMSIsICJsaWJyYXJ5MiIsICJsaWJyYXJ5Mi5tZHAi KTsKLQkJCXN0cmluZyBwMlhtbCA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgIm5lc3Rl ZC1zb2x1dGlvbjIiLCAiY29uc29sZS1wcm9qZWN0MiIsICJjb25zb2xlLXByb2plY3QyLm1kcCIp OwotCQkJc3RyaW5nIHMzWG1sID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVk LXNvbHV0aW9uMiIsICJuZXN0ZWQtc29sdXRpb24zIiwgIm5lc3RlZC1zb2x1dGlvbjMubWRzIik7 Ci0JCQlzdHJpbmcgcGxpYjNYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0 ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjMiLCAibGlicmFyeTMiLCAibGlicmFyeTMu bWRwIik7Ci0JCQlzdHJpbmcgcGxpYjRYbWwgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIs ICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjMiLCAibGlicmFyeTQiLCAibGli cmFyeTQubWRwIik7Ci0JCQkKLQkJCWRpciA9IFBhdGguR2V0RGlyZWN0b3J5TmFtZSAoc29sLkZp bGVOYW1lKTsKLQkJCXN0cmluZyBzb2xYbWwyID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoc29s RmlsZSk7Ci0JCQlzdHJpbmcgcDFYbWwyID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAi Y29uc29sZS1wcm9qZWN0IiwgImNvbnNvbGUtcHJvamVjdC5tZHAiKTsKLQkJCXN0cmluZyBzMVht bDIgPSBVdGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgIm5l c3RlZC1zb2x1dGlvbjEubWRzIik7Ci0JCQlzdHJpbmcgczJYbWwyID0gVXRpbC5HZXRYbWxGaWxl SW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJuZXN0ZWQtc29sdXRpb24yLm1kcyIp OwotCQkJc3RyaW5nIHBsaWIxWG1sMiA9IFV0aWwuR2V0WG1sRmlsZUluZm9zZXQgKGRpciwgIm5l c3RlZC1zb2x1dGlvbjEiLCAibGlicmFyeTEiLCAibGlicmFyeTEubWRwIik7Ci0JCQlzdHJpbmcg cGxpYjJYbWwyID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9u MSIsICJsaWJyYXJ5MiIsICJsaWJyYXJ5Mi5tZHAiKTsKLQkJCXN0cmluZyBwMlhtbDIgPSBVdGls LkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgImNvbnNvbGUtcHJv amVjdDIiLCAiY29uc29sZS1wcm9qZWN0Mi5tZHAiKTsKLQkJCXN0cmluZyBzM1htbDIgPSBVdGls LkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1zb2x1 dGlvbjMiLCAibmVzdGVkLXNvbHV0aW9uMy5tZHMiKTsKLQkJCXN0cmluZyBwbGliM1htbDIgPSBV dGlsLkdldFhtbEZpbGVJbmZvc2V0IChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1z b2x1dGlvbjMiLCAibGlicmFyeTMiLCAibGlicmFyeTMubWRwIik7Ci0JCQlzdHJpbmcgcGxpYjRY bWwyID0gVXRpbC5HZXRYbWxGaWxlSW5mb3NldCAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJu ZXN0ZWQtc29sdXRpb24zIiwgImxpYnJhcnk0IiwgImxpYnJhcnk0Lm1kcCIpOwotCQkJCi0JCQlB c3NlcnQuQXJlRXF1YWwgKHNvbFhtbCwgc29sWG1sMiwgInNvbFhtbCIpOwotCQkJQXNzZXJ0LkFy ZUVxdWFsIChwMVhtbCwgcDFYbWwyLCAicDFYbWwiKTsKLQkJCUFzc2VydC5BcmVFcXVhbCAoczFY bWwsIHMxWG1sMiwgInMxWG1sIik7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKHMyWG1sLCBzMlhtbDIs ICJzMlhtbCIpOwotCQkJQXNzZXJ0LkFyZUVxdWFsIChwbGliMVhtbCwgcGxpYjFYbWwyLCAicGxp YjFYbWwiKTsKLQkJCUFzc2VydC5BcmVFcXVhbCAocGxpYjJYbWwsIHBsaWIyWG1sMiwgInBsaWIy WG1sIik7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKHAyWG1sLCBwMlhtbDIsICJwMlhtbCIpOwotCQkJ QXNzZXJ0LkFyZUVxdWFsIChzM1htbCwgczNYbWwyLCAiczNYbWwiKTsKLQkJCUFzc2VydC5BcmVF cXVhbCAocGxpYjNYbWwsIHBsaWIzWG1sMiwgInBsaWIzWG1sIik7Ci0JCQlBc3NlcnQuQXJlRXF1 YWwgKHBsaWI0WG1sLCBwbGliNFhtbDIsICJwbGliNFhtbCIpOwotCQl9Ci0JCQogCQlbVGVzdF0K IAkJcHVibGljIHZvaWQgVGVzdFNhdmVXb3Jrc3BhY2UgKCkKIAkJewpAQCAtMTgzLDMwICs1Nyw1 IEBAIHB1YmxpYyB2b2lkIFRlc3RTYXZlV29ya3NwYWNlICgpCiAJCQlBc3NlcnQuSXNUcnVlIChG aWxlLkV4aXN0cyAoc29sLkZpbGVOYW1lKSk7CiAJCQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0 cyAocC5GaWxlTmFtZSkpOwogCQl9Ci0JCQotCQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIFRl c3RDcmVhdGVMb2FkU2F2ZUNvbnNvbGVQcm9qZWN0ICgpCi0JCXsKLQkJCVRlc3RQcm9qZWN0c0No ZWNrcy5UZXN0Q3JlYXRlTG9hZFNhdmVDb25zb2xlUHJvamVjdCAoIk1EMSIpOwotCQl9Ci0JCQot CQlbVGVzdF0KLQkJcHVibGljIHZvaWQgR2VuZXJpY1Byb2plY3QgKCkKLQkJewotCQkJVGVzdFBy b2plY3RzQ2hlY2tzLkNoZWNrR2VuZXJpY0l0ZW1Qcm9qZWN0ICgiTUQxIik7Ci0JCX0KLQkJCi0J CVtUZXN0XQotCQlwdWJsaWMgdm9pZCBUZXN0TG9hZFNhdmVTb2x1dGlvbkZvbGRlcnMgKCkKLQkJ ewotCQkJVGVzdFByb2plY3RzQ2hlY2tzLlRlc3RMb2FkU2F2ZVNvbHV0aW9uRm9sZGVycyAoIk1E MSIpOwotCQl9Ci0JCQotCQlbVGVzdF0KLQkJcHVibGljIHZvaWQgVGVzdExvYWRTYXZlUmVzb3Vy Y2VzICgpCi0JCXsKLQkJCVRlc3RQcm9qZWN0c0NoZWNrcy5UZXN0TG9hZFNhdmVSZXNvdXJjZXMg KCJNRDEiKTsKLQkJfQogCX0KIH0NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9u b0RldmVsb3AuUHJvamVjdHMvUGFja2FnaW5nVGVzdHMuY3MNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDMz NCArMCwwIEBACi0vLyBQYWNrYWdpbmdUZXN0cy5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotCi11c2luZyBTeXN0ZW07Ci11c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKLXVz aW5nIFN5c3RlbS5EaWFnbm9zdGljczsKLXVzaW5nIFN5c3RlbS5JTzsKLXVzaW5nIE5Vbml0LkZy YW1ld29yazsKLXVzaW5nIFVuaXRUZXN0czsKLXVzaW5nIE1vbm9EZXZlbG9wLkNvcmU7Ci11c2lu ZyBNb25vRGV2ZWxvcC5Qcm9qZWN0czsKLXVzaW5nIE1vbm9EZXZlbG9wLkRlcGxveW1lbnQuVGFy Z2V0czsKLXVzaW5nIE1vbm9EZXZlbG9wLkF1dG90b29sczsKLQotbmFtZXNwYWNlIE1vbm9EZXZl bG9wLkRlcGxveW1lbnQKLXsKLQlbVGVzdEZpeHR1cmVdCi0JW0lnbm9yZSAoIk1vc3Qgb2YgdGhl c2UgdGVzdHMgZmFpbCBhbmQgbm8tb25lIGlzIG1haW50YWluaW5nIHRoaXMgYWRkaW4gYXQgdGhl IG1vbWVudCIpXQotCXB1YmxpYyBjbGFzcyBQYWNrYWdpbmdUZXN0czogVGVzdEJhc2UKLQl7Ci0J CXN0cmluZyB0YXJEaXIgPSBudWxsOwotCQlpbnQgcGFja0lkID0gMDsKLQotI3JlZ2lvbiBCaW5h cmllcyBwYWNrYWdlCi0JCVtUZXN0XQotCQlwdWJsaWMgdm9pZCBDb25zb2xlUHJvamVjdEJpbnMg KCkKLQkJewotCQkJc3RyaW5nW10gYmluRmlsZXMgPSBuZXcgc3RyaW5nW10gewotCQkJCSJDb25z b2xlUHJvamVjdC5leGUiLAotCQkJCSJDb25zb2xlUHJvamVjdC5leGUubWRiIiwKLQkJCQkiY29u c29sZXByb2plY3QiCi0JCQl9OwotCQkJUnVuVGVzdEJpbmFyaWVzUGFja2FnZSAoImNvbnNvbGUt cHJvamVjdC9Db25zb2xlUHJvamVjdC5zbG4iLCBiaW5GaWxlcyk7Ci0JCX0KLQkJCi0JCVtUZXN0 XQotCQlwdWJsaWMgdm9pZCBDb25zb2xlUHJvamVjdFdpdGhMaWJzTWRwQmlucyAoKQotCQl7Ci0J CQlzdHJpbmdbXSBiaW5GaWxlcyA9IG5ldyBzdHJpbmdbXSB7Ci0JCQkJImNvbnNvbGUtd2l0aC1s aWJzLW1kcC5leGUiLCAKLQkJCQkiY29uc29sZS13aXRoLWxpYnMtbWRwLmV4ZS5tZGIiLCAKLQkJ CQkiY29uc29sZS13aXRoLWxpYnMtbWRwIiwKLQkJCQkibGlicmFyeTEuZGxsIiwgCi0JCQkJImxp YnJhcnkxLmRsbC5tZGIiLCAKLQkJCQkibGlicmFyeTEucGMiLCAKLQkJCQkibGlicmFyeTIuZGxs IiwgCi0JCQkJImxpYnJhcnkyLnBjIiwgCi0JCQkJImxpYnJhcnkyLmRsbC5tZGIiCi0JCQl9Owot CQkJUnVuVGVzdEJpbmFyaWVzUGFja2FnZSAoImNvbnNvbGUtd2l0aC1saWJzLW1kcC9jb25zb2xl LXdpdGgtbGlicy1tZHAubWRzIiwgYmluRmlsZXMpOwotCQl9Ci0jZW5kcmVnaW9uCi0JCQotI3Jl Z2lvbiBTb3VyY2VzIHBhY2thZ2UKLQkJCi0JCVtUZXN0XQotCQlwdWJsaWMgdm9pZCBDb25zb2xl UHJvamVjdFNvdXJjZXMgKCkKLQkJewotCQkJUnVuVGVzdFNvdXJjZXNQYWNrYWdlICgiY29uc29s ZS1wcm9qZWN0L0NvbnNvbGVQcm9qZWN0LnNsbiIpOwotCQl9Ci0JCQotCQlbVGVzdF0KLQkJcHVi bGljIHZvaWQgQ29uc29sZVByb2plY3RXaXRoTGlic01kcFNvdXJjZXMgKCkKLQkJewotCQkJUnVu VGVzdFNvdXJjZXNQYWNrYWdlICgiY29uc29sZS13aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0aC1s aWJzLW1kcC5tZHMiKTsKLQkJfQotCQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIE5lc3RlZFNv bHV0aW9uc01kcFNvdXJjZXMgKCkKLQkJewotCQkJUnVuVGVzdFNvdXJjZXNQYWNrYWdlICgibmVz dGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9ucy1tZHAubWRzIik7Ci0JCX0KLSNlbmRy ZWdpb24KLQkJCi0jcmVnaW9uIFRhcmJhbGwgcGFja2FnZQotCQkKLQkJLy8gQ29uc29sZSBwcm9q ZWN0Ci0JCQotCQlzdHJpbmdbXSBmaWxlc0NvbnNvbGVQcm9qZWN0VGFyYmFsbCA9IG5ldyBzdHJp bmdbXSB7Ci0JCQkiYmluL2NvbnNvbGVwcm9qZWN0IiwgCi0JCQkibGliL2NvbnNvbGVwcm9qZWN0 L0NvbnNvbGVQcm9qZWN0LmV4ZSIsIAotCQkJImxpYi9jb25zb2xlcHJvamVjdC9Db25zb2xlUHJv amVjdC5leGUubWRiIgotCQl9OwotCQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIENvbnNvbGVQ cm9qZWN0VGFyYmFsbCAoKQotCQl7Ci0JCQlSdW5UZXN0VGFyYmFsbFBhY2thZ2UgKCJjb25zb2xl LXByb2plY3QvQ29uc29sZVByb2plY3Quc2xuIiwgZmFsc2UsICJEZWJ1ZyIsIGZpbGVzQ29uc29s ZVByb2plY3RUYXJiYWxsKTsKLQkJfQotCQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIENvbnNv bGVQcm9qZWN0VGFyYmFsbEF1dG90b29scyAoKQotCQl7Ci0JCQlSdW5UZXN0VGFyYmFsbFBhY2th Z2UgKCJjb25zb2xlLXByb2plY3QvQ29uc29sZVByb2plY3Quc2xuIiwgdHJ1ZSwgIkRlYnVnIiwg ZmlsZXNDb25zb2xlUHJvamVjdFRhcmJhbGwpOwotCQl9Ci0JCQotCQkKLQkJLy8gQ29uc29sZVBy b2plY3RXaXRoTGlic01kcFRhcmJhbGwKLQkJCi0JCXN0cmluZ1tdIGZpbGVzQ29uc29sZVByb2pl Y3RXaXRoTGlic01kcFRhcmJhbGwgPSBuZXcgc3RyaW5nW10gewotCQkJImJpbi9jb25zb2xlLXdp dGgtbGlicy1tZHAiLCAKLQkJCSJsaWIvY29uc29sZS13aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0 aC1saWJzLW1kcC5leGUiLCAKLQkJCSJsaWIvY29uc29sZS13aXRoLWxpYnMtbWRwL2NvbnNvbGUt d2l0aC1saWJzLW1kcC5leGUubWRiIiwgCi0JCQkibGliL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9s aWJyYXJ5MS5kbGwiLAotCQkJImxpYi9jb25zb2xlLXdpdGgtbGlicy1tZHAvbGlicmFyeTEuZGxs Lm1kYiIsCi0JCQkibGliL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJyYXJ5Mi5kbGwiLAotCQkJ ImxpYi9jb25zb2xlLXdpdGgtbGlicy1tZHAvbGlicmFyeTIuZGxsLm1kYiIsCi0JCQkibGliL3Br Z2NvbmZpZy9saWJyYXJ5MS5wYyIsCi0JCQkibGliL3BrZ2NvbmZpZy9saWJyYXJ5Mi5wYyIKLQkJ fTsKLQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIENvbnNvbGVQcm9qZWN0V2l0aExpYnNNZHBU YXJiYWxsICgpCi0JCXsKLQkJCVJ1blRlc3RUYXJiYWxsUGFja2FnZSAoImNvbnNvbGUtd2l0aC1s aWJzLW1kcC9jb25zb2xlLXdpdGgtbGlicy1tZHAubWRzIiwgZmFsc2UsICJEZWJ1ZyIsIGZpbGVz Q29uc29sZVByb2plY3RXaXRoTGlic01kcFRhcmJhbGwpOwotCQl9Ci0JCi0JCVtUZXN0XQotCQlw dWJsaWMgdm9pZCBDb25zb2xlUHJvamVjdFdpdGhMaWJzTWRwVGFyYmFsbEF1dG90b29scyAoKQot CQl7Ci0JCQlSdW5UZXN0VGFyYmFsbFBhY2thZ2UgKCJjb25zb2xlLXdpdGgtbGlicy1tZHAvY29u c29sZS13aXRoLWxpYnMtbWRwLm1kcyIsIHRydWUsICJEZWJ1ZyIsIGZpbGVzQ29uc29sZVByb2pl Y3RXaXRoTGlic01kcFRhcmJhbGwpOwotCQl9Ci0JCQotCQlzdHJpbmdbXSBmaWxlc05lc3RlZFNv bHV0aW9uc01kcFRhcmJhbGwgPSBuZXcgc3RyaW5nW10gewotCQkJImJpbi9jb25zb2xlLXByb2pl Y3QiLCAKLQkJCSJiaW4vY29uc29sZS1wcm9qZWN0MiIsIAotCQkJImxpYi9uZXN0ZWQtc29sdXRp b25zLW1kcC9jb25zb2xlLXByb2plY3QuZXhlIiwgCi0JCQkibGliL25lc3RlZC1zb2x1dGlvbnMt bWRwL2NvbnNvbGUtcHJvamVjdC5leGUubWRiIiwKLQkJCSJsaWIvbmVzdGVkLXNvbHV0aW9ucy1t ZHAvY29uc29sZS1wcm9qZWN0Mi5leGUiLCAKLQkJCSJsaWIvbmVzdGVkLXNvbHV0aW9ucy1tZHAv Y29uc29sZS1wcm9qZWN0Mi5leGUubWRiIiwKLQkJCSJsaWIvbmVzdGVkLXNvbHV0aW9ucy1tZHAv bGlicmFyeTEuZGxsIiwgCi0JCQkibGliL25lc3RlZC1zb2x1dGlvbnMtbWRwL2xpYnJhcnkxLmRs bC5tZGIiLCAKLQkJCSJsaWIvbmVzdGVkLXNvbHV0aW9ucy1tZHAvbGlicmFyeTIuZGxsIiwgCi0J CQkibGliL25lc3RlZC1zb2x1dGlvbnMtbWRwL2xpYnJhcnkyLmRsbC5tZGIiLCAKLQkJCSJsaWIv bmVzdGVkLXNvbHV0aW9ucy1tZHAvbGlicmFyeTMuZGxsIiwgCi0JCQkibGliL25lc3RlZC1zb2x1 dGlvbnMtbWRwL2xpYnJhcnkzLmRsbC5tZGIiLCAKLQkJCSJsaWIvbmVzdGVkLXNvbHV0aW9ucy1t ZHAvbGlicmFyeTQuZGxsIiwgCi0JCQkibGliL25lc3RlZC1zb2x1dGlvbnMtbWRwL2xpYnJhcnk0 LmRsbC5tZGIiLCAKLQkJCSJsaWIvcGtnY29uZmlnL2xpYnJhcnkxLnBjIiwgCi0JCQkibGliL3Br Z2NvbmZpZy9saWJyYXJ5Mi5wYyIsIAotCQkJImxpYi9wa2djb25maWcvbGlicmFyeTMucGMiLCAK LQkJCSJsaWIvcGtnY29uZmlnL2xpYnJhcnk0LnBjIiwgCi0JCX07Ci0JCQotCQlbVGVzdF0KLQkJ cHVibGljIHZvaWQgTmVzdGVkU29sdXRpb25zTWRwVGFyYmFsbCAoKQotCQl7Ci0JCQlSdW5UZXN0 VGFyYmFsbFBhY2thZ2UgKCJuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb25zLW1k cC5tZHMiLCBmYWxzZSwgIkRlYnVnIiwgZmlsZXNOZXN0ZWRTb2x1dGlvbnNNZHBUYXJiYWxsKTsK LQkJfQotCQkKLQkJW1Rlc3RdCi0JCXB1YmxpYyB2b2lkIE5lc3RlZFNvbHV0aW9uc01kcFRhcmJh bGxBdXRvdG9vbHMgKCkKLQkJewotCQkJUnVuVGVzdFRhcmJhbGxQYWNrYWdlICgibmVzdGVkLXNv bHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9ucy1tZHAubWRzIiwgdHJ1ZSwgIkRlYnVnIiwgZmls ZXNOZXN0ZWRTb2x1dGlvbnNNZHBUYXJiYWxsKTsKLQkJfQotCi0jZW5kcmVnaW9uCi0JCQotI3Jl Z2lvbiBTdXBwb3J0IG1ldGhvZHMKLQkJCi0JCXZvaWQgUnVuVGVzdEJpbmFyaWVzUGFja2FnZSAo c3RyaW5nIHNvbEZpbGUsIHN0cmluZ1tdIGV4cGVjdGVkRmlsZXMpCi0JCXsKLQkJCXNvbEZpbGUg PSBVdGlsLkdldFNhbXBsZVByb2plY3QgKHNvbEZpbGUpOwotCQkJU29sdXRpb24gc29sID0gKFNv bHV0aW9uKSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5SZWFkV29ya3NwYWNlSXRlbSAoVXRpbC5H ZXRNb25pdG9yKCksIHNvbEZpbGUpOwotCQkJCi0JCQlCaW5hcmllc1ppcFBhY2thZ2VCdWlsZGVy IHBiID0gbmV3IEJpbmFyaWVzWmlwUGFja2FnZUJ1aWxkZXIgKCk7Ci0JCQlwYi5TZXRTb2x1dGlv bkl0ZW0gKHNvbC5Sb290Rm9sZGVyLCBzb2wuR2V0QWxsU29sdXRpb25JdGVtczxTb2x1dGlvbkl0 ZW0+ICgpKTsKLQkJCQotCQkJcGIuVGFyZ2V0RmlsZSA9IEdldFRlbXBUYXJGaWxlICgiYmluemlw Iik7Ci0JCQlwYi5QbGF0Zm9ybSA9ICJMaW51eCI7Ci0JCQlwYi5Db25maWd1cmF0aW9uID0gIkRl YnVnIjsKLQkJCQotCQkJaWYgKCFEZXBsb3lTZXJ2aWNlLkJ1aWxkUGFja2FnZSAoVXRpbC5HZXRN b25pdG9yICgpLCBwYikpCi0JCQkJQXNzZXJ0LkZhaWwgKCJQYWNrYWdlIGdlbmVyYXRpb24gZmFp bGVkIik7Ci0JCQkKLQkJCUNoZWNrVGFyQ29udGVudHMgKHBiLlRhcmdldEZpbGUsIGV4cGVjdGVk RmlsZXMsIHRydWUpOwotCQl9Ci0JCQotCQl2b2lkIFJ1blRlc3RTb3VyY2VzUGFja2FnZSAoc3Ry aW5nIHNvbEZpbGUpCi0JCXsKLQkJCXNvbEZpbGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3QgKHNv bEZpbGUpOwotCQkJU29sdXRpb24gc29sID0gKFNvbHV0aW9uKSBTZXJ2aWNlcy5Qcm9qZWN0U2Vy dmljZS5SZWFkV29ya3NwYWNlSXRlbSAoVXRpbC5HZXRNb25pdG9yKCksIHNvbEZpbGUpOwotCQkJ Ci0JCQlTb3VyY2VzWmlwUGFja2FnZUJ1aWxkZXIgcGIgPSBuZXcgU291cmNlc1ppcFBhY2thZ2VC dWlsZGVyICgpOwotCQkJcGIuRmlsZUZvcm1hdCA9IHNvbC5GaWxlRm9ybWF0OwotCQkJcGIuU2V0 U29sdXRpb25JdGVtIChzb2wuUm9vdEZvbGRlciwgc29sLkdldEFsbFNvbHV0aW9uSXRlbXM8U29s dXRpb25JdGVtPiAoKSk7Ci0JCQkKLQkJCXBiLlRhcmdldEZpbGUgPSBHZXRUZW1wVGFyRmlsZSAo InNvdXJjZXN6aXAiKTsKLQkJCQotCQkJaWYgKCFEZXBsb3lTZXJ2aWNlLkJ1aWxkUGFja2FnZSAo VXRpbC5HZXRNb25pdG9yICgpLCBwYikpCi0JCQkJQXNzZXJ0LkZhaWwgKCJQYWNrYWdlIGdlbmVy YXRpb24gZmFpbGVkIik7Ci0JCQkKLQkJCUxpc3Q8c3RyaW5nPiBmaWxlcyA9IG5ldyBMaXN0PHN0 cmluZz4gKCk7Ci0JCQlmb3JlYWNoIChzdHJpbmcgZiBpbiBzb2wuR2V0SXRlbUZpbGVzICh0cnVl KSkgewotCQkJCWZpbGVzLkFkZCAoc29sLkdldFJlbGF0aXZlQ2hpbGRQYXRoIChmKSk7Ci0JCQl9 Ci0JCQlDaGVja1RhckNvbnRlbnRzIChwYi5UYXJnZXRGaWxlLCBmaWxlcy5Ub0FycmF5ICgpLCB0 cnVlKTsKLQkJfQotCQkKLQkJdm9pZCBSdW5UZXN0VGFyYmFsbFBhY2thZ2UgKHN0cmluZyBzb2xG aWxlLCBib29sIGF1dG90b29scywgc3RyaW5nIGNvbmZpZywgc3RyaW5nW10gZXhwZWN0ZWRGaWxl cykKLQkJewotCQkJc29sRmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdCAoc29sRmlsZSk7Ci0J CQlTb2x1dGlvbiBzb2wgPSAoU29sdXRpb24pIFNlcnZpY2VzLlByb2plY3RTZXJ2aWNlLlJlYWRX b3Jrc3BhY2VJdGVtIChVdGlsLkdldE1vbml0b3IoKSwgc29sRmlsZSk7Ci0JCQkKLQkJCVRhcmJh bGxEZXBsb3lUYXJnZXQgcGIgPSBuZXcgVGFyYmFsbERlcGxveVRhcmdldCAoKTsKLQkJCXBiLlNl dFNvbHV0aW9uSXRlbSAoc29sLlJvb3RGb2xkZXIsIHNvbC5HZXRBbGxTb2x1dGlvbkl0ZW1zPFNv bHV0aW9uSXRlbT4gKCkpOwotCQkJcGIuVGFyZ2V0RGlyID0gVXRpbC5DcmVhdGVUbXBEaXIgKCJ0 YXJiYWxsLXRhcmdldC1kaXIiKTsKLQkJCXBiLkRlZmF1bHRDb25maWd1cmF0aW9uID0gY29uZmln OwotCQkJcGIuR2VuZXJhdGVGaWxlcyA9IHRydWU7Ci0JCQlwYi5HZW5lcmF0ZUF1dG90b29scyA9 IGF1dG90b29sczsKLQkJCQotCQkJaWYgKCFEZXBsb3lTZXJ2aWNlLkJ1aWxkUGFja2FnZSAoVXRp bC5HZXRNb25pdG9yICgpLCBwYikpCi0JCQkJQXNzZXJ0LkZhaWwgKCJQYWNrYWdlIGdlbmVyYXRp b24gZmFpbGVkIik7Ci0JCQkKLQkJCXN0cmluZyB0YXJmaWxlID0gRGlyZWN0b3J5LkdldEZpbGVz IChwYi5UYXJnZXREaXIpIFswXTsKLQkJCQotCQkJVW50YXIgKHRhcmZpbGUsIG51bGwpOwotCQkJ Ci0JCQlzdHJpbmdbXSBkaXJzID0gRGlyZWN0b3J5LkdldERpcmVjdG9yaWVzIChwYi5UYXJnZXRE aXIpOwotCQkJQXNzZXJ0LkFyZUVxdWFsICgxLCBkaXJzLkxlbmd0aCk7Ci0JCQkKLQkJCXN0cmlu ZyB0YXJEaXIgPSBkaXJzIFswXTsKLQkJCXN0cmluZyBwcmVmaXggPSBQYXRoLkNvbWJpbmUgKHBi LlRhcmdldERpciwgImluc3RhbGwiKTsKLQkJCQotCQkJaWYgKCFFeGVjIChQYXRoLkNvbWJpbmUg KHRhckRpciwgImNvbmZpZ3VyZSIpLCAiLS1wcmVmaXg9IiArIHByZWZpeCwgdGFyRGlyKSkKLQkJ CQlBc3NlcnQuRmFpbCAoIkNvbmZpZ3VyZSBzY3JpcHQgZmFpbGVkIik7Ci0JCQkKLQkJCWlmICgh RXhlYyAoIm1ha2UiLCAiYWxsIiwgdGFyRGlyKSkKLQkJCQlBc3NlcnQuRmFpbCAoIkJ1aWxkIGZh aWxlZCIpOwotCQkJCi0JCQlpZiAoIUV4ZWMgKCJtYWtlIiwgImluc3RhbGwiLCB0YXJEaXIpKQot CQkJCUFzc2VydC5GYWlsICgiSW5zdGFsbCBmYWlsZWQiKTsKLQkJCQotCQkJQ2hlY2tEaXJDb250 ZW50cyAocHJlZml4LCBleHBlY3RlZEZpbGVzKTsKLQkJfQotCQkKLQkJCi0JCXN0cmluZyBHZXRU ZW1wVGFyRmlsZSAoc3RyaW5nIGhpbnQpCi0JCXsKLQkJCWlmICh0YXJEaXIgPT0gbnVsbCkKLQkJ CQl0YXJEaXIgPSBVdGlsLkNyZWF0ZVRtcERpciAoInBhY2thZ2VzIik7Ci0JCQlyZXR1cm4gUGF0 aC5Db21iaW5lICh0YXJEaXIsIGhpbnQgKyAiLSIgKyAocGFja0lkKyspICsgIi50YXIuZ3oiKTsK LQkJfQotCQkKLQkJdm9pZCBDaGVja1RhckNvbnRlbnRzIChzdHJpbmcgZmlsZSwgc3RyaW5nW10g ZXhwZWN0ZWRGaWxlcywgYm9vbCBjaGVja0luU3ViZGlyKQotCQl7Ci0JCQlBc3NlcnQuSXNUcnVl IChGaWxlLkV4aXN0cyAoZmlsZSksICJ0YXIgZmlsZSBub3QgZm91bmQiKTsKLQkJCQotCQkJc3Ry aW5nIGRpciA9IFV0aWwuQ3JlYXRlVG1wRGlyICgidGFyLWNvbnRlbnRzIik7Ci0JCQlVbnRhciAo ZmlsZSwgZGlyKTsKLQkJCQotCQkJaWYgKGNoZWNrSW5TdWJkaXIpIHsKLQkJCQlzdHJpbmdbXSBk aXJzID0gRGlyZWN0b3J5LkdldERpcmVjdG9yaWVzIChkaXIpOwotCQkJCUFzc2VydC5Jc1RydWUg KGRpcnMuTGVuZ3RoID09IDEsICJObyB1bmlxdWUgc3ViZGlyIGZvdW5kIGluIHRhciIpOwotCQkJ CUFzc2VydC5Jc1RydWUgKERpcmVjdG9yeS5HZXRGaWxlcyhkaXIpLkxlbmd0aCA9PSAwLCAiTm8g dW5pcXVlIHN1YmRpciBmb3VuZCBpbiB0YXIiKTsKLQkJCQlkaXIgPSBQYXRoLkNvbWJpbmUgKGRp ciwgZGlyc1swXSk7Ci0JCQl9Ci0JCQlDaGVja0RpckNvbnRlbnRzIChkaXIsIGV4cGVjdGVkRmls ZXMpOwotCQl9Ci0JCQotCQl2b2lkIENoZWNrRGlyQ29udGVudHMgKHN0cmluZyBkaXIsIHN0cmlu Z1tdIGV4cGVjdGVkRmlsZXMpCi0JCXsKLQkJCUxpc3Q8c3RyaW5nPiB2YWxpZEZpbGVzID0gbmV3 IExpc3Q8c3RyaW5nPiAoKTsKLQkJCWZvcmVhY2ggKHN0cmluZyBmIGluIGV4cGVjdGVkRmlsZXMp IHsKLQkJCQlzdHJpbmcgdGYgPSBQYXRoLkNvbWJpbmUgKGRpciwgZik7Ci0JCQkJQXNzZXJ0Lklz VHJ1ZSAoRmlsZS5FeGlzdHMgKHRmKSwgIkNvbnRlbnQgY2hlY2s6IGZpbGUgbm90IGZvdW5kOiAi ICsgUGF0aC5HZXRGdWxsUGF0aCAodGYpKTsKLQkJCQl2YWxpZEZpbGVzLkFkZCAoUGF0aC5HZXRG dWxsUGF0aCAodGYpKTsKLQkJCX0KLQkJCUNoZWNrVmFsaWRGaWxlcyAoZGlyLCB2YWxpZEZpbGVz KTsKLQkJfQotCQkKLQkJdm9pZCBDaGVja1ZhbGlkRmlsZXMgKHN0cmluZyBkaXIsIExpc3Q8c3Ry aW5nPiB2YWxpZEZpbGVzKQotCQl7Ci0JCQlmb3JlYWNoIChzdHJpbmcgZiBpbiBEaXJlY3Rvcnku R2V0RmlsZXMgKGRpcikpCi0JCQkJQXNzZXJ0LklzRmFsc2UgKCF2YWxpZEZpbGVzLkNvbnRhaW5z IChQYXRoLkdldEZ1bGxQYXRoKGYpKSwgIkNvbnRlbnQgY2hlY2s6IGV4dHJhIGZpbGU6ICIgKyBQ YXRoLkdldEZ1bGxQYXRoKGYpKTsKLQkJCWZvcmVhY2ggKHN0cmluZyBkIGluIERpcmVjdG9yeS5H ZXREaXJlY3RvcmllcyAoZGlyKSkKLQkJCQlDaGVja1ZhbGlkRmlsZXMgKGQsIHZhbGlkRmlsZXMp OwotCQl9Ci0JCQotCQl2b2lkIFVudGFyIChzdHJpbmcgZmlsZSwgc3RyaW5nIGRpcikKLQkJewot CQkJaWYgKGRpciA9PSBudWxsKQotCQkJCWRpciA9IFBhdGguR2V0RGlyZWN0b3J5TmFtZSAoZmls ZSk7Ci0JCQlFeGVjICgidGFyIiwgInh2ZnogIiArIGZpbGUgKyAiIC1DICIgKyBkaXIsIG51bGwp OwotCQl9Ci0JCQotCQlib29sIEV4ZWMgKHN0cmluZyBmaWxlLCBzdHJpbmcgYXJncywgc3RyaW5n IHdvcmtEaXIpCi0JCXsKLQkJCVByb2Nlc3MgcHJvYyA9IG5ldyBQcm9jZXNzICgpOwotCQkJcHJv Yy5TdGFydEluZm8uVXNlU2hlbGxFeGVjdXRlID0gZmFsc2U7Ci0JCQlwcm9jLlN0YXJ0SW5mby5S ZWRpcmVjdFN0YW5kYXJkT3V0cHV0ID0gdHJ1ZTsKLQkJCXByb2MuU3RhcnRJbmZvLlJlZGlyZWN0 U3RhbmRhcmRFcnJvciA9IHRydWU7Ci0JCQlwcm9jLlN0YXJ0SW5mby5GaWxlTmFtZSA9IGZpbGU7 Ci0JCQlwcm9jLlN0YXJ0SW5mby5Bcmd1bWVudHMgPSBhcmdzOwotCQkJaWYgKHdvcmtEaXIgIT0g bnVsbCkKLQkJCQlwcm9jLlN0YXJ0SW5mby5Xb3JraW5nRGlyZWN0b3J5ID0gd29ya0RpcjsKLQkJ CXByb2MuU3RhcnQgKCk7Ci0JCQlzdHJpbmcgc291dCA9IHByb2MuU3RhbmRhcmRPdXRwdXQuUmVh ZFRvRW5kICgpOwotCQkJc291dCArPSBwcm9jLlN0YW5kYXJkRXJyb3IuUmVhZFRvRW5kICgpOwot CQkJcHJvYy5XYWl0Rm9yRXhpdCAoKTsKLQkJCWlmIChwcm9jLkV4aXRDb2RlID09IDApCi0JCQkJ cmV0dXJuIHRydWU7Ci0JCQllbHNlIHsKLQkJCQlDb25zb2xlLldyaXRlTGluZSAoc291dCk7Ci0J CQkJcmV0dXJuIGZhbHNlOwotCQkJfQotCQl9Ci0JfQotI2VuZHJlZ2lvbgotfQ0KDQpNb2RpZmll ZDogbWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9ub0RldmVsb3AuUHJvamVjdHMvU29sdXRpb25UZXN0 cy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KQEAgLTE4Myw5ICsxODMsOSBAQCBwdWJsaWMgdm9pZCBTb2x1dGlv bk5hbWUgKCkKIAkJCUFzc2VydC5BcmVFcXVhbCAoUGF0aC5Db21iaW5lICh0bXAsICJ0ZXN0NC5z bG4iKSwgKHN0cmluZykgc29sLkZpbGVOYW1lKTsKIAkJCUFzc2VydC5BcmVFcXVhbCAoNCwgbmFt ZUNoYW5nZXMpOwogCQkJCi0JCQlzb2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVGb3JtYXRN RDEsIHRydWUpOworCQkJc29sLkNvbnZlcnRUb0Zvcm1hdCAoVXRpbC5GaWxlRm9ybWF0TVNCdWls ZDEwLCB0cnVlKTsKIAkJCUFzc2VydC5BcmVFcXVhbCAoInRlc3Q0Iiwgc29sLk5hbWUpOwotCQkJ QXNzZXJ0LkFyZUVxdWFsIChQYXRoLkNvbWJpbmUgKHRtcCwgInRlc3Q0Lm1kcyIpLCAoc3RyaW5n KSBzb2wuRmlsZU5hbWUpOworCQkJQXNzZXJ0LkFyZUVxdWFsIChQYXRoLkNvbWJpbmUgKHRtcCwg InRlc3Q0LnNsbiIpLCAoc3RyaW5nKSBzb2wuRmlsZU5hbWUpOwogCQkJQXNzZXJ0LkFyZUVxdWFs ICg0LCBuYW1lQ2hhbmdlcyk7CiAJCX0KIAkJCkBAIC0yMjEsMTEgKzIyMSwxMSBAQCBwdWJsaWMg dm9pZCBQcm9qZWN0TmFtZSAoKQogCQkJQXNzZXJ0LkFyZUVxdWFsIChQYXRoLkNvbWJpbmUgKFBh dGguR2V0VGVtcFBhdGggKCksICJ0ZXN0NC5jc3Byb2oiKSwgKHN0cmluZykgcHJqLkZpbGVOYW1l KTsKIAkJCUFzc2VydC5BcmVFcXVhbCAoNCwgbmFtZUNoYW5nZXMpOwogCQkJCi0JCQlwcmouRmls ZUZvcm1hdCA9IFV0aWwuRmlsZUZvcm1hdE1EMTsKKwkJCXByai5GaWxlRm9ybWF0ID0gVXRpbC5G aWxlRm9ybWF0TVNCdWlsZDEyOwogCQkJQXNzZXJ0LkFyZUVxdWFsICgidGVzdDQiLCBwcmouTmFt ZSk7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKFBhdGguQ29tYmluZSAoUGF0aC5HZXRUZW1wUGF0aCAo KSwgInRlc3Q0Lm1kcCIpLCAoc3RyaW5nKSBwcmouRmlsZU5hbWUpOworCQkJQXNzZXJ0LkFyZUVx dWFsIChQYXRoLkNvbWJpbmUgKFBhdGguR2V0VGVtcFBhdGggKCksICJ0ZXN0NC5jc3Byb2oiKSwg KHN0cmluZykgcHJqLkZpbGVOYW1lKTsKIAkJCUFzc2VydC5BcmVFcXVhbCAoNCwgbmFtZUNoYW5n ZXMpOwotCQkJQXNzZXJ0LkFyZUVxdWFsICgiTUQxIiwgcHJqLkZpbGVGb3JtYXQuSWQpOworCQkJ QXNzZXJ0LkFyZUVxdWFsICgiTVNCdWlsZDEyIiwgcHJqLkZpbGVGb3JtYXQuSWQpOwogCQkJCiAJ CQkvLyBQcm9qZWN0cyBpbmhlcml0IHRoZSBmaWxlIGZvcm1hdCBmcm9tIHRoZSBwYXJlbnQgc29s dXRpb24KIAkJCVNvbHV0aW9uIHNvbCA9IG5ldyBTb2x1dGlvbiAoKTsKQEAgLTI1NSwxNiArMjU1 LDE2IEBAIHB1YmxpYyB2b2lkIFJlbG9hZGluZyAoKQogCQkJQXNzZXJ0LklzRmFsc2UgKHAuTmVl ZHNSZWxvYWQpOwogCQkJCiAJCQkvLyBDaGFuZ2luZyBmb3JtYXQgbXVzdCByZXNldCB0aGUgcmVs b2FkIGZsYWcgKGl0J3MgbGlrZSB3ZSBqdXN0IGNyZWF0ZWQgYSBuZXcgc29sdXRpb24gaW4gbWVt b3J5KQotCQkJc29sLkNvbnZlcnRUb0Zvcm1hdCAoVXRpbC5GaWxlRm9ybWF0TUQxLCB0cnVlKTsK KwkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1TQnVpbGQxMCwgdHJ1ZSk7 CiAJCQlBc3NlcnQuSXNGYWxzZSAoc29sLk5lZWRzUmVsb2FkKTsKIAkJCUFzc2VydC5Jc0ZhbHNl IChwLk5lZWRzUmVsb2FkKTsKLQkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1h dE1TQnVpbGQwNSwgdHJ1ZSk7CisJCQlzb2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVGb3Jt YXRNU0J1aWxkMTIsIHRydWUpOwogCQkJQXNzZXJ0LklzRmFsc2UgKHNvbC5OZWVkc1JlbG9hZCk7 CiAJCQlBc3NlcnQuSXNGYWxzZSAocC5OZWVkc1JlbG9hZCk7CiAJCQkKIAkJCXNvbC5Sb290Rm9s ZGVyLkl0ZW1zLlJlbW92ZSAocCk7CiAJCQlBc3NlcnQuSXNGYWxzZSAocC5OZWVkc1JlbG9hZCk7 Ci0JCQlwLkZpbGVGb3JtYXQgPSBVdGlsLkZpbGVGb3JtYXRNRDE7CisJCQlwLkZpbGVGb3JtYXQg PSBVdGlsLkZpbGVGb3JtYXRNU0J1aWxkMTI7CiAJCQlBc3NlcnQuSXNGYWxzZSAocC5OZWVkc1Jl bG9hZCk7CiAJCQlzb2wuUm9vdEZvbGRlci5JdGVtcy5BZGQgKHApOwogCQkJQXNzZXJ0LklzRmFs c2UgKHAuTmVlZHNSZWxvYWQpOwpAQCAtMjc0LDM1ICsyNzQsMzUgQEAgcHVibGljIHZvaWQgUmVs b2FkaW5nICgpCiAJCQlBc3NlcnQuSXNGYWxzZSAocC5OZWVkc1JlbG9hZCk7CiAJCQlzb2wuUm9v dEZvbGRlci5JdGVtcy5BZGQgKHApOwogCQkJQXNzZXJ0LklzRmFsc2UgKHAuTmVlZHNSZWxvYWQp OwotCQkJCi0JCQlzdHJpbmcgbWRzU29sRmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdCAoImNz aGFycC1jb25zb2xlLW1kcCIsICJjc2hhcnAtY29uc29sZS1tZHAubWRzIik7Ci0JCQlTb2x1dGlv biBtZHNTb2wgPSAoU29sdXRpb24pIFNlcnZpY2VzLlByb2plY3RTZXJ2aWNlLlJlYWRXb3Jrc3Bh Y2VJdGVtIChVdGlsLkdldE1vbml0b3IgKCksIG1kc1NvbEZpbGUpOwotCQkJUHJvamVjdCBwbWRz ID0gbWRzU29sLkl0ZW1zIFswXSBhcyBQcm9qZWN0OwotCQkJQXNzZXJ0LklzRmFsc2UgKG1kc1Nv bC5OZWVkc1JlbG9hZCk7Ci0JCQlBc3NlcnQuSXNGYWxzZSAocG1kcy5OZWVkc1JlbG9hZCk7CisK KwkJCXN0cmluZyBzb2xGaWxlMiA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdCAoImNzaGFycC1jb25z b2xlIiwgImNzaGFycC1jb25zb2xlLnNsbiIpOworCQkJU29sdXRpb24gc29sMiA9IChTb2x1dGlv bikgU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtzcGFjZUl0ZW0gKFV0aWwuR2V0TW9u aXRvciAoKSwgc29sRmlsZTIpOworCQkJUHJvamVjdCBwMiA9IHNvbDIuSXRlbXMgWzBdIGFzIFBy b2plY3Q7CisJCQlBc3NlcnQuSXNGYWxzZSAoc29sMi5OZWVkc1JlbG9hZCk7CisJCQlBc3NlcnQu SXNGYWxzZSAocDIuTmVlZHNSZWxvYWQpOwogCQkJCiAJCQkvLyBDaGVjayByZWxvYWRpbmcgZmxh ZyBpbiBhbm90aGVyIHNvbHV0aW9uCiAJCQkKIAkJCXN0cmluZyBzb2xGaWxlID0gc29sLkZpbGVO YW1lOwotCQkJU29sdXRpb24gc29sMiA9IChTb2x1dGlvbikgU2VydmljZXMuUHJvamVjdFNlcnZp Y2UuUmVhZFdvcmtzcGFjZUl0ZW0gKFV0aWwuR2V0TW9uaXRvciAoKSwgc29sRmlsZSk7Ci0JCQlB c3NlcnQuSXNGYWxzZSAoc29sMi5OZWVkc1JlbG9hZCk7CisJCQlTb2x1dGlvbiBzb2wzID0gKFNv bHV0aW9uKSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5SZWFkV29ya3NwYWNlSXRlbSAoVXRpbC5H ZXRNb25pdG9yICgpLCBzb2xGaWxlKTsKKwkJCUFzc2VydC5Jc0ZhbHNlIChzb2wzLk5lZWRzUmVs b2FkKTsKIAkJCQotCQkJUHJvamVjdCBwMiA9IHNvbDIuSXRlbXMgWzBdIGFzIFByb2plY3Q7Ci0J CQlBc3NlcnQuSXNGYWxzZSAocDIuTmVlZHNSZWxvYWQpOworCQkJUHJvamVjdCBwMyA9IHNvbDMu SXRlbXMgWzBdIGFzIFByb2plY3Q7CisJCQlBc3NlcnQuSXNGYWxzZSAocDMuTmVlZHNSZWxvYWQp OwogCQkJCiAJCQlTeXN0ZW0uVGhyZWFkaW5nLlRocmVhZC5TbGVlcCAoMTAwMCk7CiAJCQlzb2wu U2F2ZSAoVXRpbC5HZXRNb25pdG9yICgpKTsKIAkJCQotCQkJQXNzZXJ0LklzVHJ1ZSAoc29sMi5O ZWVkc1JlbG9hZCk7CisJCQlBc3NlcnQuSXNUcnVlIChzb2wzLk5lZWRzUmVsb2FkKTsKIAkJfQog CQkKIAkJW1Rlc3QoKV0KIAkJcHVibGljIHZvaWQgUmVsb2FkaW5nUmVmZXJlbmNlZFByb2plY3Qg KCkKIAkJewotCQkJc3RyaW5nIHNvbEZpbGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3QgKCJjb25z b2xlLXdpdGgtbGlicy1tZHAiLCAiY29uc29sZS13aXRoLWxpYnMtbWRwLm1kcyIpOworCQkJc3Ry aW5nIHNvbEZpbGUgPSBVdGlsLkdldFNhbXBsZVByb2plY3QgKCJjb25zb2xlLXdpdGgtbGlicyIs ICJjb25zb2xlLXdpdGgtbGlicy5zbG4iKTsKIAkJCQogCQkJU29sdXRpb24gc29sID0gKFNvbHV0 aW9uKSBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5SZWFkV29ya3NwYWNlSXRlbSAoVXRpbC5HZXRN b25pdG9yICgpLCBzb2xGaWxlKTsKLQkJCURvdE5ldFByb2plY3QgcCA9IChEb3ROZXRQcm9qZWN0 KSBzb2wuRmluZFByb2plY3RCeU5hbWUgKCJjb25zb2xlLXdpdGgtbGlicy1tZHAiKTsKKwkJCURv dE5ldFByb2plY3QgcCA9IChEb3ROZXRQcm9qZWN0KSBzb2wuRmluZFByb2plY3RCeU5hbWUgKCJj b25zb2xlLXdpdGgtbGlicyIpOwogCQkJRG90TmV0UHJvamVjdCBsaWIyID0gKERvdE5ldFByb2pl Y3QpIHNvbC5GaW5kUHJvamVjdEJ5TmFtZSAoImxpYnJhcnkyIik7CiAJCQkKIAkJCUFzc2VydC5B cmVFcXVhbCAoMywgcC5SZWZlcmVuY2VzLkNvdW50KTsKQEAgLTM0MywxMCArMzQzLDEwIEBAIHB1 YmxpYyB2b2lkIEdldEl0ZW1GaWxlcyAoKQogCQlbVGVzdCgpXQogCQlwdWJsaWMgdm9pZCBOZWVk c0J1aWxkaW5nICgpCiAJCXsKLQkJCXN0cmluZyBzb2xGaWxlID0gVXRpbC5HZXRTYW1wbGVQcm9q ZWN0ICgiY29uc29sZS13aXRoLWxpYnMtbWRwIiwgImNvbnNvbGUtd2l0aC1saWJzLW1kcC5tZHMi KTsKKwkJCXN0cmluZyBzb2xGaWxlID0gVXRpbC5HZXRTYW1wbGVQcm9qZWN0ICgiY29uc29sZS13 aXRoLWxpYnMiLCAiY29uc29sZS13aXRoLWxpYnMuc2xuIik7CiAJCQkKIAkJCVNvbHV0aW9uIHNv bCA9IChTb2x1dGlvbikgU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtzcGFjZUl0ZW0g KFV0aWwuR2V0TW9uaXRvciAoKSwgc29sRmlsZSk7Ci0JCQlEb3ROZXRQcm9qZWN0IHAgPSAoRG90 TmV0UHJvamVjdCkgc29sLkZpbmRQcm9qZWN0QnlOYW1lICgiY29uc29sZS13aXRoLWxpYnMtbWRw Iik7CisJCQlEb3ROZXRQcm9qZWN0IHAgPSAoRG90TmV0UHJvamVjdCkgc29sLkZpbmRQcm9qZWN0 QnlOYW1lICgiY29uc29sZS13aXRoLWxpYnMiKTsKIAkJCUFzc2VydC5Jc05vdE51bGwgKHApOwog CQkJRG90TmV0UHJvamVjdCBsaWIxID0gKERvdE5ldFByb2plY3QpIHNvbC5GaW5kUHJvamVjdEJ5 TmFtZSAoImxpYnJhcnkxIik7CiAJCQlBc3NlcnQuSXNOb3ROdWxsIChsaWIxKTsKQEAgLTM2Mywx MyArMzYzLDEzIEBAIHB1YmxpYyB2b2lkIE5lZWRzQnVpbGRpbmcgKCkKIAkJCQogCQkJQnVpbGRS ZXN1bHQgcmVzID0gcC5CdWlsZCAoVXRpbC5HZXRNb25pdG9yICgpLCBjb25maWcsIHRydWUpOwog CQkJZm9yZWFjaCAoQnVpbGRFcnJvciBlciBpbiByZXMuRXJyb3JzKQotCQkJCUNvbnNvbGUuV3Jp dGVMaW5lIChlci5Ub1N0cmluZyAoKSk7CisJCQkJQ29uc29sZS5Xcml0ZUxpbmUgKGVyKTsKIAkJ CUFzc2VydC5BcmVFcXVhbCAoMCwgcmVzLkVycm9yQ291bnQpOwogCQkJQXNzZXJ0LkFyZUVxdWFs ICgwLCByZXMuV2FybmluZ0NvdW50KTsKIAkJCUFzc2VydC5BcmVFcXVhbCAoMywgcmVzLkJ1aWxk Q291bnQpOwogCi0JCQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChw LkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCAiY29uc29sZS13aXRoLWxpYnMtbWRwLmV4 ZSIpKSk7Ci0JCQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChwLkJh c2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCBHZXRNZGIgKCJjb25zb2xlLXdpdGgtbGlicy1t ZHAuZXhlIikpKSk7CisJCQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5l IChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCAiY29uc29sZS13aXRoLWxpYnMuZXhl IikpKTsKKwkJCUFzc2VydC5Jc1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFz ZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIsIEdldE1kYiAoImNvbnNvbGUtd2l0aC1saWJzLmV4 ZSIpKSkpOwogCQkJQXNzZXJ0LklzVHJ1ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAobGli MS5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVnIiwgImxpYnJhcnkxLmRsbCIpKSk7CiAJCQlB c3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChsaWIxLkJhc2VEaXJlY3Rv cnksICJiaW4iLCAiRGVidWciLCBHZXRNZGIgKCJsaWJyYXJ5MS5kbGwiKSkpKTsKIAkJCUFzc2Vy dC5Jc1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKGxpYjIuQmFzZURpcmVjdG9yeSwg ImJpbiIsICJEZWJ1ZyIsICJsaWJyYXJ5Mi5kbGwiKSkpOwpAQCAtMzg2LDEwICszODYsMTAgQEAg cHVibGljIHZvaWQgTmVlZHNCdWlsZGluZyAoKQogCQlbVGVzdCgpXQogCQlwdWJsaWMgdm9pZCBC dWlsZGluZ0FuZENsZWFuaW5nICgpCiAJCXsKLQkJCXN0cmluZyBzb2xGaWxlID0gVXRpbC5HZXRT YW1wbGVQcm9qZWN0ICgiY29uc29sZS13aXRoLWxpYnMtbWRwIiwgImNvbnNvbGUtd2l0aC1saWJz LW1kcC5tZHMiKTsKKwkJCXN0cmluZyBzb2xGaWxlID0gVXRpbC5HZXRTYW1wbGVQcm9qZWN0ICgi Y29uc29sZS13aXRoLWxpYnMiLCAiY29uc29sZS13aXRoLWxpYnMuc2xuIik7CiAJCQkKIAkJCVNv bHV0aW9uIHNvbCA9IChTb2x1dGlvbikgU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtz cGFjZUl0ZW0gKFV0aWwuR2V0TW9uaXRvciAoKSwgc29sRmlsZSk7Ci0JCQlEb3ROZXRQcm9qZWN0 IHAgPSAoRG90TmV0UHJvamVjdCkgc29sLkZpbmRQcm9qZWN0QnlOYW1lICgiY29uc29sZS13aXRo LWxpYnMtbWRwIik7CisJCQlEb3ROZXRQcm9qZWN0IHAgPSAoRG90TmV0UHJvamVjdCkgc29sLkZp bmRQcm9qZWN0QnlOYW1lICgiY29uc29sZS13aXRoLWxpYnMiKTsKIAkJCURvdE5ldFByb2plY3Qg bGliMSA9IChEb3ROZXRQcm9qZWN0KSBzb2wuRmluZFByb2plY3RCeU5hbWUgKCJsaWJyYXJ5MSIp OwogCQkJRG90TmV0UHJvamVjdCBsaWIyID0gKERvdE5ldFByb2plY3QpIHNvbC5GaW5kUHJvamVj dEJ5TmFtZSAoImxpYnJhcnkyIik7CiAJCQkKQEAgLTQxMSw4ICs0MTEsOCBAQCBwdWJsaWMgdm9p ZCBCdWlsZGluZ0FuZENsZWFuaW5nICgpCiAJCQlBc3NlcnQuQXJlRXF1YWwgKDAsIHJlcy5XYXJu aW5nQ291bnQpOwogCQkJQXNzZXJ0LkFyZUVxdWFsICgzLCByZXMuQnVpbGRDb3VudCk7CiAJCQkK LQkJCUFzc2VydC5Jc1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVj dG9yeSwgImJpbiIsICJEZWJ1ZyIsICJjb25zb2xlLXdpdGgtbGlicy1tZHAuZXhlIikpKTsKLQkJ CUFzc2VydC5Jc1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVjdG9y eSwgImJpbiIsICJEZWJ1ZyIsIEdldE1kYiAoImNvbnNvbGUtd2l0aC1saWJzLW1kcC5leGUiKSkp KTsKKwkJCUFzc2VydC5Jc1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURp cmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIsICJjb25zb2xlLXdpdGgtbGlicy5leGUiKSkpOworCQkJ QXNzZXJ0LklzVHJ1ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5 LCAiYmluIiwgIkRlYnVnIiwgR2V0TWRiICgiY29uc29sZS13aXRoLWxpYnMuZXhlIikpKSk7CiAJ CQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChsaWIxLkJhc2VEaXJl Y3RvcnksICJiaW4iLCAiRGVidWciLCAibGlicmFyeTEuZGxsIikpKTsKIAkJCUFzc2VydC5Jc1Ry dWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKGxpYjEuQmFzZURpcmVjdG9yeSwgImJpbiIs ICJEZWJ1ZyIsIEdldE1kYiAoImxpYnJhcnkxLmRsbCIpKSkpOwogCQkJQXNzZXJ0LklzVHJ1ZSAo RmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAobGliMi5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRl YnVnIiwgImxpYnJhcnkyLmRsbCIpKSk7CkBAIC00MjEsOCArNDIxLDggQEAgcHVibGljIHZvaWQg QnVpbGRpbmdBbmRDbGVhbmluZyAoKQogCQkJLy8gQ2xlYW4gdGhlIHdvcmtzcGFjZQogCQkJCiAJ CQl3cy5DbGVhbiAoVXRpbC5HZXRNb25pdG9yICgpLCAiRGVidWciKTsKLQkJCUFzc2VydC5Jc0Zh bHNlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAi RGVidWciLCAiY29uc29sZS13aXRoLWxpYnMtbWRwLmV4ZSIpKSk7Ci0JCQlBc3NlcnQuSXNGYWxz ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRl YnVnIiwgR2V0TWRiICgiY29uc29sZS13aXRoLWxpYnMtbWRwLmV4ZSIpKSkpOworCQkJQXNzZXJ0 LklzRmFsc2UgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVjdG9yeSwgImJp biIsICJEZWJ1ZyIsICJjb25zb2xlLXdpdGgtbGlicy5leGUiKSkpOworCQkJQXNzZXJ0LklzRmFs c2UgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVjdG9yeSwgImJpbiIsICJE ZWJ1ZyIsIEdldE1kYiAoImNvbnNvbGUtd2l0aC1saWJzLmV4ZSIpKSkpOwogCQkJQXNzZXJ0Lklz RmFsc2UgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKGxpYjEuQmFzZURpcmVjdG9yeSwgImJp biIsICJEZWJ1ZyIsICJsaWJyYXJ5MS5kbGwiKSkpOwogCQkJQXNzZXJ0LklzRmFsc2UgKEZpbGUu RXhpc3RzIChVdGlsLkNvbWJpbmUgKGxpYjEuQmFzZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIs IEdldE1kYiAoImxpYnJhcnkxLmRsbCIpKSkpOwogCQkJQXNzZXJ0LklzRmFsc2UgKEZpbGUuRXhp c3RzIChVdGlsLkNvbWJpbmUgKGxpYjIuQmFzZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIsICJs aWJyYXJ5Mi5kbGwiKSkpOwpAQCAtNDM1LDggKzQzNSw4IEBAIHB1YmxpYyB2b2lkIEJ1aWxkaW5n QW5kQ2xlYW5pbmcgKCkKIAkJCUFzc2VydC5BcmVFcXVhbCAoMCwgcmVzLldhcm5pbmdDb3VudCk7 CiAJCQlBc3NlcnQuQXJlRXF1YWwgKDMsIHJlcy5CdWlsZENvdW50KTsKIAkJCQotCQkJQXNzZXJ0 LklzVHJ1ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmlu IiwgIkRlYnVnIiwgImNvbnNvbGUtd2l0aC1saWJzLW1kcC5leGUiKSkpOwotCQkJQXNzZXJ0Lklz VHJ1ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmluIiwg IkRlYnVnIiwgR2V0TWRiICgiY29uc29sZS13aXRoLWxpYnMtbWRwLmV4ZSIpKSkpOworCQkJQXNz ZXJ0LklzVHJ1ZSAoRmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAi YmluIiwgIkRlYnVnIiwgImNvbnNvbGUtd2l0aC1saWJzLmV4ZSIpKSk7CisJCQlBc3NlcnQuSXNU cnVlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAi RGVidWciLCBHZXRNZGIgKCJjb25zb2xlLXdpdGgtbGlicy5leGUiKSkpKTsKIAkJCUFzc2VydC5J c1RydWUgKEZpbGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKGxpYjEuQmFzZURpcmVjdG9yeSwgImJp biIsICJEZWJ1ZyIsICJsaWJyYXJ5MS5kbGwiKSkpOwogCQkJQXNzZXJ0LklzVHJ1ZSAoRmlsZS5F eGlzdHMgKFV0aWwuQ29tYmluZSAobGliMS5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVnIiwg R2V0TWRiICgibGlicmFyeTEuZGxsIikpKSk7CiAJCQlBc3NlcnQuSXNUcnVlIChGaWxlLkV4aXN0 cyAoVXRpbC5Db21iaW5lIChsaWIyLkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCAibGli cmFyeTIuZGxsIikpKTsKQEAgLTQ0NSw4ICs0NDUsOCBAQCBwdWJsaWMgdm9pZCBCdWlsZGluZ0Fu ZENsZWFuaW5nICgpCiAJCQkvLyBDbGVhbiB0aGUgc29sdXRpb24KIAkJCQogCQkJc29sLkNsZWFu IChVdGlsLkdldE1vbml0b3IgKCksICJEZWJ1ZyIpOwotCQkJQXNzZXJ0LklzRmFsc2UgKEZpbGUu RXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIsICJj b25zb2xlLXdpdGgtbGlicy1tZHAuZXhlIikpKTsKLQkJCUFzc2VydC5Jc0ZhbHNlIChGaWxlLkV4 aXN0cyAoVXRpbC5Db21iaW5lIChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCBHZXRN ZGIgKCJjb25zb2xlLXdpdGgtbGlicy1tZHAuZXhlIikpKSk7CisJCQlBc3NlcnQuSXNGYWxzZSAo RmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVn IiwgImNvbnNvbGUtd2l0aC1saWJzLmV4ZSIpKSk7CisJCQlBc3NlcnQuSXNGYWxzZSAoRmlsZS5F eGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVnIiwgR2V0 TWRiICgiY29uc29sZS13aXRoLWxpYnMuZXhlIikpKSk7CiAJCQlBc3NlcnQuSXNGYWxzZSAoRmls ZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAobGliMS5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVn IiwgImxpYnJhcnkxLmRsbCIpKSk7CiAJCQlBc3NlcnQuSXNGYWxzZSAoRmlsZS5FeGlzdHMgKFV0 aWwuQ29tYmluZSAobGliMS5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVnIiwgR2V0TWRiICgi bGlicmFyeTEuZGxsIikpKSk7CiAJCQlBc3NlcnQuSXNGYWxzZSAoRmlsZS5FeGlzdHMgKFV0aWwu Q29tYmluZSAobGliMi5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVnIiwgImxpYnJhcnkyLmRs bCIpKSk7CkBAIC00NTksOCArNDU5LDggQEAgcHVibGljIHZvaWQgQnVpbGRpbmdBbmRDbGVhbmlu ZyAoKQogCQkJQXNzZXJ0LkFyZUVxdWFsICgwLCByZXMuV2FybmluZ0NvdW50KTsKIAkJCUFzc2Vy dC5BcmVFcXVhbCAoMSwgcmVzLkJ1aWxkQ291bnQpOwogCQkJCi0JCQlBc3NlcnQuSXNGYWxzZSAo RmlsZS5FeGlzdHMgKFV0aWwuQ29tYmluZSAocC5CYXNlRGlyZWN0b3J5LCAiYmluIiwgIkRlYnVn IiwgImNvbnNvbGUtd2l0aC1saWJzLW1kcC5leGUiKSkpOwotCQkJQXNzZXJ0LklzRmFsc2UgKEZp bGUuRXhpc3RzIChVdGlsLkNvbWJpbmUgKHAuQmFzZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIs IEdldE1kYiAoImNvbnNvbGUtd2l0aC1saWJzLW1kcC5leGUiKSkpKTsKKwkJCUFzc2VydC5Jc0Zh bHNlIChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAi RGVidWciLCAiY29uc29sZS13aXRoLWxpYnMuZXhlIikpKTsKKwkJCUFzc2VydC5Jc0ZhbHNlIChG aWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChwLkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWci LCBHZXRNZGIgKCJjb25zb2xlLXdpdGgtbGlicy5leGUiKSkpKTsKIAkJCUFzc2VydC5Jc0ZhbHNl IChGaWxlLkV4aXN0cyAoVXRpbC5Db21iaW5lIChsaWIxLkJhc2VEaXJlY3RvcnksICJiaW4iLCAi RGVidWciLCAibGlicmFyeTEuZGxsIikpKTsKIAkJCUFzc2VydC5Jc0ZhbHNlIChGaWxlLkV4aXN0 cyAoVXRpbC5Db21iaW5lIChsaWIxLkJhc2VEaXJlY3RvcnksICJiaW4iLCAiRGVidWciLCBHZXRN ZGIgKCJsaWJyYXJ5MS5kbGwiKSkpKTsKIAkJCUFzc2VydC5Jc1RydWUgKEZpbGUuRXhpc3RzIChV dGlsLkNvbWJpbmUgKGxpYjIuQmFzZURpcmVjdG9yeSwgImJpbiIsICJEZWJ1ZyIsICJsaWJyYXJ5 Mi5kbGwiKSkpOwpAQCAtNDg0LDM1ICs0ODQsMzIgQEAgcHVibGljIHZvaWQgRm9ybWF0Q29udmVy c2lvbnMgKCkKIAkJCQogCQkJLy8gQ2hhbmdlIHNvbHV0aW9uIGZvcm1hdCBvZiB1bnNhdmVkIHNv bHV0aW9uCiAJCQkKLQkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1EMSwg dHJ1ZSk7CisJCQlzb2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVGb3JtYXRNU0J1aWxkMTAs IHRydWUpOwogCQkJCi0JCQlBc3NlcnQuQXJlRXF1YWwgKCJNRDEiLCBzb2wuRmlsZUZvcm1hdC5J ZCk7Ci0JCQlBc3NlcnQuQXJlRXF1YWwgKCJNRDEiLCBwLkZpbGVGb3JtYXQuSWQpOworCQkJQXNz ZXJ0LkFyZUVxdWFsICgiTVNCdWlsZDEwIiwgc29sLkZpbGVGb3JtYXQuSWQpOworCQkJQXNzZXJ0 LkFyZUVxdWFsICgiTVNCdWlsZDEwIiwgcC5GaWxlRm9ybWF0LklkKTsKIAkJCQotCQkJc29sLkNv bnZlcnRUb0Zvcm1hdCAoVXRpbC5GaWxlRm9ybWF0TVNCdWlsZDA1LCB0cnVlKTsKKwkJCXNvbC5D b252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1TQnVpbGQxMiwgdHJ1ZSk7CiAJCQkKLQkJ CUFzc2VydC5BcmVFcXVhbCAoIk1TQnVpbGQwNSIsIHNvbC5GaWxlRm9ybWF0LklkKTsKLQkJCUFz c2VydC5BcmVFcXVhbCAoIk1TQnVpbGQwNSIsIHAuRmlsZUZvcm1hdC5JZCk7CisJCQlBc3NlcnQu QXJlRXF1YWwgKCJNU0J1aWxkMTIiLCBzb2wuRmlsZUZvcm1hdC5JZCk7CisJCQlBc3NlcnQuQXJl RXF1YWwgKCJNU0J1aWxkMTIiLCBwLkZpbGVGb3JtYXQuSWQpOwogCQkJCiAJCQkvLyBDaGFuZ2Ug c29sdXRpb24gZm9ybWF0IG9mIHNhdmVkIHNvbHV0aW9uCiAJCQkKIAkJCXNvbC5TYXZlIChVdGls LkdldE1vbml0b3IgKCkpOwogCi0JCQlzb2wuQ29udmVydFRvRm9ybWF0IChVdGlsLkZpbGVGb3Jt YXRNRDEsIGZhbHNlKTsKKwkJCXNvbC5Db252ZXJ0VG9Gb3JtYXQgKFV0aWwuRmlsZUZvcm1hdE1T QnVpbGQwNSwgZmFsc2UpOwogCQkJCi0JCQlBc3NlcnQuQXJlRXF1YWwgKCJNRDEiLCBzb2wuRmls ZUZvcm1hdC5JZCk7CisJCQlBc3NlcnQuQXJlRXF1YWwgKCJNU0J1aWxkMDUiLCBzb2wuRmlsZUZv cm1hdC5JZCk7CiAJCQlBc3NlcnQuQXJlRXF1YWwgKCJNU0J1aWxkMDUiLCBwLkZpbGVGb3JtYXQu SWQpOwogCQkJCi0JCQlwLkZpbGVGb3JtYXQgPSBVdGlsLkZpbGVGb3JtYXRNRDE7Ci0JCQlBc3Nl cnQuQXJlRXF1YWwgKCJNRDEiLCBwLkZpbGVGb3JtYXQuSWQpOwotCQkJCiAJCQkvLyBBZGQgbmV3 IHByb2plY3QKIAkJCQogCQkJUHJvamVjdCBuZXdwID0gbmV3IERvdE5ldEFzc2VtYmx5UHJvamVj dCAoIkMjIik7CiAJCQlBc3NlcnQuQXJlRXF1YWwgKCJNU0J1aWxkMTAiLCBuZXdwLkZpbGVGb3Jt YXQuSWQpOwogCQkJCiAJCQlzb2wuUm9vdEZvbGRlci5JdGVtcy5BZGQgKG5ld3ApOwotCQkJQXNz ZXJ0LkFyZUVxdWFsICgiTUQxIiwgbmV3cC5GaWxlRm9ybWF0LklkKTsKKwkJCUFzc2VydC5BcmVF cXVhbCAoIk1TQnVpbGQwNSIsIG5ld3AuRmlsZUZvcm1hdC5JZCk7CiAJCQkKIAkJCS8vIEFkZCBz YXZlZCBwcm9qZWN0CiAJCQkKQEAgLTUyOSw3ICs1MjYsNyBAQCBwdWJsaWMgdm9pZCBGb3JtYXRD b252ZXJzaW9ucyAoKQogCQlbVGVzdCgpXQogCQlwdWJsaWMgdm9pZCBCdWlsZENvbmZpZ3VyYXRp b25NYXBwaW5ncyAoKQogCQl7Ci0JCQlzdHJpbmcgc29sRmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJv amVjdCAoInRlc3QtYnVpbGQtY29uZmlncyIsICJ0ZXN0LWJ1aWxkLWNvbmZpZ3MubWRzIik7CisJ CQlzdHJpbmcgc29sRmlsZSA9IFV0aWwuR2V0U2FtcGxlUHJvamVjdCAoInRlc3QtYnVpbGQtY29u ZmlncyIsICJ0ZXN0LWJ1aWxkLWNvbmZpZ3Muc2xuIik7CiAJCQkKIAkJCVNvbHV0aW9uIHNvbCA9 IChTb2x1dGlvbikgU2VydmljZXMuUHJvamVjdFNlcnZpY2UuUmVhZFdvcmtzcGFjZUl0ZW0gKFV0 aWwuR2V0TW9uaXRvciAoKSwgc29sRmlsZSk7CiAJCQlEb3ROZXRQcm9qZWN0IGxpYjEgPSAoRG90 TmV0UHJvamVjdCkgc29sLkZpbmRQcm9qZWN0QnlOYW1lICgiTGliMSIpOw0KDQpNb2RpZmllZDog bWFpbi90ZXN0cy9Vbml0VGVzdHMvTW9ub0RldmVsb3AuUHJvamVjdHMvVGVzdFByb2plY3RzQ2hl Y2tzLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWMgc3RhdGljIHZvaWQg Q2hlY2tCYXNpY01kQ29uc29sZVByb2plY3QgKFNvbHV0aW9uIHNvbCkKIAkJCUFzc2VydC5BcmVF cXVhbCAoMSwgc29sLkl0ZW1zLkNvdW50KTsKIAkJCUFzc2VydC5Jc1RydWUgKHNvbC5JdGVtcyBb MF0gaXMgRG90TmV0UHJvamVjdCwgIlByb2plY3QgaXMgRG90TmV0UHJvamVjdCIpOwogCQkJRG90 TmV0UHJvamVjdCBwcm9qZWN0ID0gKERvdE5ldFByb2plY3QpIHNvbC5JdGVtcyBbMF07Ci0JCQlB c3NlcnQuQXJlRXF1YWwgKCJjc2hhcnAtY29uc29sZS1tZHAiLCBwcm9qZWN0Lk5hbWUpOworCQkJ QXNzZXJ0LkFyZUVxdWFsICgiY3NoYXJwLWNvbnNvbGUiLCBwcm9qZWN0Lk5hbWUpOwogCQkJCiAJ CQkvLyBDaGVjayBmaWxlcwogCQkJCkBAIC0yNDQsMTAxICsyNDQsNiBAQCBwdWJsaWMgc3RhdGlj IHZvaWQgSW5pdGlhbGl6ZVByb2plY3QgKHN0cmluZyBkaXIsIERvdE5ldFByb2plY3QgcHJvamVj dCwgc3RyaW5nCiAJCQlwcm9qZWN0LkZpbGVOYW1lID0gcGZpbGU7CiAJCX0KIAkJCi0JCXB1Ymxp YyBzdGF0aWMgU29sdXRpb24gQ3JlYXRlUHJvamVjdFdpdGhGb2xkZXJzIChzdHJpbmcgaGludCkK LQkJewotCQkJc3RyaW5nIGRpciA9IFV0aWwuQ3JlYXRlVG1wRGlyIChoaW50KTsKLQkJCURpcmVj dG9yeS5DcmVhdGVEaXJlY3RvcnkgKFV0aWwuQ29tYmluZSAoZGlyLCAiY29uc29sZS1wcm9qZWN0 IikpOwotCQkJRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeSAoVXRpbC5Db21iaW5lIChkaXIsICJu ZXN0ZWQtc29sdXRpb24xIikpOwotCQkJRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeSAoVXRpbC5D b21iaW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgImxpYnJhcnkxIikpOwotCQkJRGlyZWN0 b3J5LkNyZWF0ZURpcmVjdG9yeSAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24x IiwgImxpYnJhcnkyIikpOwotCQkJRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeSAoVXRpbC5Db21i aW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24yIikpOwotCQkJRGlyZWN0b3J5LkNyZWF0ZURpcmVj dG9yeSAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgImNvbnNvbGUtcHJv amVjdDIiKSk7Ci0JCQlEaXJlY3RvcnkuQ3JlYXRlRGlyZWN0b3J5IChVdGlsLkNvbWJpbmUgKGRp ciwgIm5lc3RlZC1zb2x1dGlvbjIiLCAibmVzdGVkLXNvbHV0aW9uMyIpKTsKLQkJCURpcmVjdG9y eS5DcmVhdGVEaXJlY3RvcnkgKFV0aWwuQ29tYmluZSAoZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIs ICJuZXN0ZWQtc29sdXRpb24zIiwgImxpYnJhcnkzIikpOwotCQkJRGlyZWN0b3J5LkNyZWF0ZURp cmVjdG9yeSAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgIm5lc3RlZC1z b2x1dGlvbjMiLCAibGlicmFyeTQiKSk7Ci0JCQkKLQkJCVNvbHV0aW9uIHNvbCA9IG5ldyBTb2x1 dGlvbiAoKTsKLQkJCXNvbC5GaWxlTmFtZSA9IFBhdGguQ29tYmluZSAoZGlyLCAibmVzdGVkLXNv bHV0aW9ucy1tZHAiKTsKLQkJCVNvbHV0aW9uQ29uZmlndXJhdGlvbiBzY0RlYnVnID0gc29sLkFk ZENvbmZpZ3VyYXRpb24gKCJEZWJ1ZyIsIHRydWUpOwotCQkJU29sdXRpb25Db25maWd1cmF0aW9u IHNjUmVsZWFzZSA9IHNvbC5BZGRDb25maWd1cmF0aW9uICgiUmVsZWFzZSIsIHRydWUpOwotCQkJ Ci0JCQlEb3ROZXRQcm9qZWN0IHByb2plY3QxID0gQ3JlYXRlUHJvamVjdCAoVXRpbC5Db21iaW5l IChkaXIsICJjb25zb2xlLXByb2plY3QiKSwgIkMjIiwgImNvbnNvbGUtcHJvamVjdCIpOwotCQkJ cHJvamVjdDEuRmlsZXMuQWRkIChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29tYmluZSAocHJvamVj dDEuQmFzZURpcmVjdG9yeSwgIlByb2dyYW0uY3MiKSkpOwotCQkJcHJvamVjdDEuRmlsZXMuQWRk IChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29tYmluZSAocHJvamVjdDEuQmFzZURpcmVjdG9yeSwg IlByb3BlcnRpZXMiLCAiQXNzZW1ibHlJbmZvLmNzIikpKTsKLQkJCXNvbC5Sb290Rm9sZGVyLkl0 ZW1zLkFkZCAocHJvamVjdDEpOwotCQkJCi0JCQkvLyBuZXN0ZWQtc29sdXRpb24xCi0JCQkKLQkJ CVNvbHV0aW9uRm9sZGVyIGZvbGRlcjEgPSBuZXcgU29sdXRpb25Gb2xkZXIgKCk7Ci0JCQlzb2wu Um9vdEZvbGRlci5JdGVtcy5BZGQgKGZvbGRlcjEpOwotCQkJZm9sZGVyMS5OYW1lID0gIm5lc3Rl ZC1zb2x1dGlvbjEiOwotCQkJCi0JCQlEb3ROZXRQcm9qZWN0IHByb2plY3RMaWIxID0gQ3JlYXRl UHJvamVjdCAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0ZWQtc29sdXRpb24xIiwgImxpYnJhcnkx IiksICJDIyIsICJsaWJyYXJ5MSIpOwotCQkJcHJvamVjdExpYjEuUmVmZXJlbmNlcy5BZGQgKG5l dyBQcm9qZWN0UmVmZXJlbmNlIChSZWZlcmVuY2VUeXBlLlBhY2thZ2UsICJTeXN0ZW0sIFZlcnNp b249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRl MDg5IikpOwotCQkJcHJvamVjdExpYjEuRmlsZXMuQWRkIChuZXcgUHJvamVjdEZpbGUgKFBhdGgu Q29tYmluZSAocHJvamVjdExpYjEuQmFzZURpcmVjdG9yeSwgIk15Q2xhc3MuY3MiKSkpOwotCQkJ cHJvamVjdExpYjEuRmlsZXMuQWRkIChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29tYmluZSAocHJv amVjdExpYjEuQmFzZURpcmVjdG9yeSwgIlByb3BlcnRpZXMiLCAiQXNzZW1ibHlJbmZvLmNzIikp KTsKLQkJCXByb2plY3RMaWIxLkNvbXBpbGVUYXJnZXQgPSBDb21waWxlVGFyZ2V0LkxpYnJhcnk7 Ci0JCQlmb2xkZXIxLkl0ZW1zLkFkZCAocHJvamVjdExpYjEpOwotCQkJCi0JCQlEb3ROZXRQcm9q ZWN0IHByb2plY3RMaWIyID0gQ3JlYXRlUHJvamVjdCAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0 ZWQtc29sdXRpb24xIiwgImxpYnJhcnkyIiksICJDIyIsICJsaWJyYXJ5MiIpOwotCQkJcHJvamVj dExpYjIuUmVmZXJlbmNlcy5BZGQgKG5ldyBQcm9qZWN0UmVmZXJlbmNlIChSZWZlcmVuY2VUeXBl LlBhY2thZ2UsICJTeXN0ZW0sIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJs aWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IikpOwotCQkJcHJvamVjdExpYjIuRmlsZXMuQWRk IChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29tYmluZSAocHJvamVjdExpYjIuQmFzZURpcmVjdG9y eSwgIk15Q2xhc3MuY3MiKSkpOwotCQkJcHJvamVjdExpYjIuRmlsZXMuQWRkIChuZXcgUHJvamVj dEZpbGUgKFBhdGguQ29tYmluZSAocHJvamVjdExpYjIuQmFzZURpcmVjdG9yeSwgIlByb3BlcnRp ZXMiLCAiQXNzZW1ibHlJbmZvLmNzIikpKTsKLQkJCXByb2plY3RMaWIyLkNvbXBpbGVUYXJnZXQg PSBDb21waWxlVGFyZ2V0LkxpYnJhcnk7Ci0JCQlmb2xkZXIxLkl0ZW1zLkFkZCAocHJvamVjdExp YjIpOwotCQkJCi0JCQkvLyBuZXN0ZWQtc29sdXRpb24yCi0KLQkJCVNvbHV0aW9uRm9sZGVyIGZv bGRlcjIgPSBuZXcgU29sdXRpb25Gb2xkZXIgKCk7Ci0JCQlmb2xkZXIyLk5hbWUgPSAibmVzdGVk LXNvbHV0aW9uMiI7Ci0JCQlzb2wuUm9vdEZvbGRlci5JdGVtcy5BZGQgKGZvbGRlcjIpOwotCQkJ Ci0JCQlEb3ROZXRQcm9qZWN0IHByb2plY3QyID0gQ3JlYXRlUHJvamVjdCAoVXRpbC5Db21iaW5l IChkaXIsICJuZXN0ZWQtc29sdXRpb24yIiwgImNvbnNvbGUtcHJvamVjdDIiKSwgIkMjIiwgImNv bnNvbGUtcHJvamVjdDIiKTsKLQkJCXByb2plY3QyLkZpbGVzLkFkZCAobmV3IFByb2plY3RGaWxl IChQYXRoLkNvbWJpbmUgKHByb2plY3QyLkJhc2VEaXJlY3RvcnksICJQcm9ncmFtLmNzIikpKTsK LQkJCXByb2plY3QyLkZpbGVzLkFkZCAobmV3IFByb2plY3RGaWxlIChQYXRoLkNvbWJpbmUgKHBy b2plY3QyLkJhc2VEaXJlY3RvcnksICJQcm9wZXJ0aWVzIiwgIkFzc2VtYmx5SW5mby5jcyIpKSk7 Ci0JCQlwcm9qZWN0Mi5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RSZWZlcmVuY2UgKFJlZmVy ZW5jZVR5cGUuUGFja2FnZSwgIlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRy YWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiKSk7Ci0JCQkKLQkJCS8vIG5lc3Rl ZC1zb2x1dGlvbjMKLQotCQkJU29sdXRpb25Gb2xkZXIgZm9sZGVyMyA9IG5ldyBTb2x1dGlvbkZv bGRlciAoKTsKLQkJCWZvbGRlcjMuTmFtZSA9ICJuZXN0ZWQtc29sdXRpb24zIjsKLQkJCQotCQkJ RG90TmV0UHJvamVjdCBwcm9qZWN0TGliMyA9IENyZWF0ZVByb2plY3QgKFV0aWwuQ29tYmluZSAo ZGlyLCAibmVzdGVkLXNvbHV0aW9uMiIsICJuZXN0ZWQtc29sdXRpb24zIiwgImxpYnJhcnkzIiks ICJDIyIsICJsaWJyYXJ5MyIpOwotCQkJcHJvamVjdExpYjMuUmVmZXJlbmNlcy5BZGQgKG5ldyBQ cm9qZWN0UmVmZXJlbmNlIChSZWZlcmVuY2VUeXBlLlBhY2thZ2UsICJTeXN0ZW0sIFZlcnNpb249 Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5 IikpOwotCQkJcHJvamVjdExpYjMuRmlsZXMuQWRkIChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29t YmluZSAocHJvamVjdExpYjMuQmFzZURpcmVjdG9yeSwgIk15Q2xhc3MuY3MiKSkpOwotCQkJcHJv amVjdExpYjMuRmlsZXMuQWRkIChuZXcgUHJvamVjdEZpbGUgKFBhdGguQ29tYmluZSAocHJvamVj dExpYjMuQmFzZURpcmVjdG9yeSwgIlByb3BlcnRpZXMiLCAiQXNzZW1ibHlJbmZvLmNzIikpKTsK LQkJCXByb2plY3RMaWIzLkNvbXBpbGVUYXJnZXQgPSBDb21waWxlVGFyZ2V0LkxpYnJhcnk7Ci0J CQlmb2xkZXIzLkl0ZW1zLkFkZCAocHJvamVjdExpYjMpOwotCQkJCi0JCQlEb3ROZXRQcm9qZWN0 IHByb2plY3RMaWI0ID0gQ3JlYXRlUHJvamVjdCAoVXRpbC5Db21iaW5lIChkaXIsICJuZXN0ZWQt c29sdXRpb24yIiwgIm5lc3RlZC1zb2x1dGlvbjMiLCAibGlicmFyeTQiKSwgIkMjIiwgImxpYnJh cnk0Iik7Ci0JCQlwcm9qZWN0TGliNC5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RSZWZlcmVu Y2UgKFJlZmVyZW5jZVR5cGUuUGFja2FnZSwgIlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0 dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiKSk7Ci0JCQlwcm9q ZWN0TGliNC5GaWxlcy5BZGQgKG5ldyBQcm9qZWN0RmlsZSAoUGF0aC5Db21iaW5lIChwcm9qZWN0 TGliNC5CYXNlRGlyZWN0b3J5LCAiTXlDbGFzcy5jcyIpKSk7Ci0JCQlwcm9qZWN0TGliNC5GaWxl cy5BZGQgKG5ldyBQcm9qZWN0RmlsZSAoUGF0aC5Db21iaW5lIChwcm9qZWN0TGliNC5CYXNlRGly ZWN0b3J5LCAiUHJvcGVydGllcyIsICJBc3NlbWJseUluZm8uY3MiKSkpOwotCQkJcHJvamVjdExp YjQuQ29tcGlsZVRhcmdldCA9IENvbXBpbGVUYXJnZXQuTGlicmFyeTsKLQkJCWZvbGRlcjMuSXRl bXMuQWRkIChwcm9qZWN0TGliNCk7Ci0JCQkKLQkJCWZvbGRlcjIuSXRlbXMuQWRkIChmb2xkZXIz KTsKLQkJCWZvbGRlcjIuSXRlbXMuQWRkIChwcm9qZWN0Mik7Ci0JCQkKLQkJCXN0cmluZyBmaWxl ID0gUGF0aC5Db21iaW5lIChkaXIsICJUZXN0U29sdXRpb24uc2xuIik7Ci0JCQlzb2wuRmlsZU5h bWUgPSBmaWxlOwotCQkJCi0JCQlwcm9qZWN0MS5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RS ZWZlcmVuY2UgKFJlZmVyZW5jZVR5cGUuUGFja2FnZSwgIlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiKSk7Ci0J CQlwcm9qZWN0MS5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RSZWZlcmVuY2UgKHByb2plY3RM aWIxKSk7Ci0JCQlwcm9qZWN0MS5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RSZWZlcmVuY2Ug KHByb2plY3RMaWIyKSk7Ci0JCQlwcm9qZWN0MS5SZWZlcmVuY2VzLkFkZCAobmV3IFByb2plY3RS ZWZlcmVuY2UgKHByb2plY3RMaWIzKSk7Ci0JCQlwcm9qZWN0MS5SZWZlcmVuY2VzLkFkZCAobmV3 IFByb2plY3RSZWZlcmVuY2UgKHByb2plY3RMaWI0KSk7Ci0JCQkKLQkJCXByb2plY3QyLlJlZmVy ZW5jZXMuQWRkIChuZXcgUHJvamVjdFJlZmVyZW5jZSAocHJvamVjdExpYjMpKTsKLQkJCXByb2pl Y3QyLlJlZmVyZW5jZXMuQWRkIChuZXcgUHJvamVjdFJlZmVyZW5jZSAocHJvamVjdExpYjQpKTsK LQkJCQotCQkJQXNzZXJ0LkFyZUVxdWFsICgyLCBzb2wuQ29uZmlndXJhdGlvbnMuQ291bnQpOwot CQkJQXNzZXJ0LkFyZUVxdWFsICg2LCBzY0RlYnVnLkNvbmZpZ3VyYXRpb25zLkNvdW50KTsKLQkJ CUFzc2VydC5BcmVFcXVhbCAoNiwgc2NSZWxlYXNlLkNvbmZpZ3VyYXRpb25zLkNvdW50KTsKLQkJ CQotCQkJcmV0dXJuIHNvbDsKLQkJfQotCQkKIAkJcHVibGljIHN0YXRpYyB2b2lkIENoZWNrR2Vu ZXJpY0l0ZW1Qcm9qZWN0IChzdHJpbmcgZmlsZUZvcm1hdCkKIAkJewogCQkJU29sdXRpb24gc29s ID0gbmV3IFNvbHV0aW9uICgpOw0KDQpNb2RpZmllZDogbWFpbi90ZXN0cy9Vbml0VGVzdHMvVW5p dFRlc3RzLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTI1Myw3ICsyNTMsNiBAQAogICAgIDxDb21w aWxlIEluY2x1ZGU9Ik1vbm9EZXZlbG9wLlByb2plY3RzXE1vbm9EZXZlbG9wZXJGb3JtYXRUZXN0 cy5jcyIgLz4KICAgICA8Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0c1xQcm9q ZWN0VGVzdHMuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVsb3AuUHJvamVj dHNcV29ya3NwYWNlVGVzdHMuY3MiIC8+Ci0gICAgPENvbXBpbGUgSW5jbHVkZT0iTW9ub0RldmVs b3AuUHJvamVjdHNcUGFja2FnaW5nVGVzdHMuY3MiIC8+CiAgICAgPENvbXBpbGUgSW5jbHVkZT0i TW9ub0RldmVsb3AuUHJvamVjdHNcTWFrZWZpbGVUZXN0cy5jcyIgLz4KICAgICA8Q29tcGlsZSBJ bmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0c1xMb2NhbENvcHlUZXN0cy5jcyIgLz4KICAgICA8 Q29tcGlsZSBJbmNsdWRlPSJNb25vRGV2ZWxvcC5Qcm9qZWN0c1xUZXh0Rm9ybWF0dGVyVGVzdHMu Y3MiIC8+DQoNCk1vZGlmaWVkOiBtYWluL3Rlc3RzL1VuaXRUZXN0cy9VdGlsLmNzDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgVW5pdFRlc3RzCiB7Ci0JcHVibGlj IGNsYXNzIFV0aWwKKwlwdWJsaWMgc3RhdGljIGNsYXNzIFV0aWwKIAl7CiAJCXN0YXRpYyBzdHJp bmcgcm9vdERpcjsKIAkJc3RhdGljIGludCBwcm9qZWN0SWQgPSAxOwpAQCAtNTYsMTAgKzU2LDYg QEAgcHVibGljIGNsYXNzIFV0aWwKIAkJCWdldCB7IHJldHVybiBQYXRoLkNvbWJpbmUgKFRlc3Rz Um9vdERpciwgInRtcCIpOyB9CiAJCX0KIAkJCi0JCXB1YmxpYyBzdGF0aWMgRmlsZUZvcm1hdCBG aWxlRm9ybWF0TUQxIHsKLQkJCWdldCB7IHJldHVybiBTZXJ2aWNlcy5Qcm9qZWN0U2VydmljZS5G aWxlRm9ybWF0cy5HZXRGaWxlRm9ybWF0ICgiTUQxIik7IH0KLQkJfQotCQkKIAkJcHVibGljIHN0 YXRpYyBGaWxlRm9ybWF0IEZpbGVGb3JtYXRNU0J1aWxkMDUgewogCQkJZ2V0IHsgcmV0dXJuIFNl cnZpY2VzLlByb2plY3RTZXJ2aWNlLkZpbGVGb3JtYXRzLkdldEZpbGVGb3JtYXQgKCJNU0J1aWxk MDUiKTsgfQogCQl9CkBAIC02Nyw2ICs2MywxNCBAQCBwdWJsaWMgY2xhc3MgVXRpbAogCQlwdWJs aWMgc3RhdGljIEZpbGVGb3JtYXQgRmlsZUZvcm1hdE1TQnVpbGQwOCB7CiAJCQlnZXQgeyByZXR1 cm4gU2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmlsZUZvcm1hdHMuR2V0RmlsZUZvcm1hdCAoIk1T QnVpbGQwOCIpOyB9CiAJCX0KKworCQlwdWJsaWMgc3RhdGljIEZpbGVGb3JtYXQgRmlsZUZvcm1h dE1TQnVpbGQxMCB7CisJCQlnZXQgeyByZXR1cm4gU2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmls ZUZvcm1hdHMuR2V0RmlsZUZvcm1hdCAoIk1TQnVpbGQxMCIpOyB9CisJCX0KKworCQlwdWJsaWMg c3RhdGljIEZpbGVGb3JtYXQgRmlsZUZvcm1hdE1TQnVpbGQxMiB7CisJCQlnZXQgeyByZXR1cm4g U2VydmljZXMuUHJvamVjdFNlcnZpY2UuRmlsZUZvcm1hdHMuR2V0RmlsZUZvcm1hdCAoIk1TQnVp bGQxMiIpOyB9CisJCX0KIAkJCiAJCXB1YmxpYyBzdGF0aWMgSVByb2dyZXNzTW9uaXRvciBHZXRN b25pdG9yICgpCiAJCXsKQEAgLTExOSw2ICsxMjMsMTEgQEAgcHVibGljIHN0YXRpYyBzdHJpbmcg R2V0WG1sRmlsZUluZm9zZXQgKHBhcmFtcyBzdHJpbmdbXSBwYXRoKQogCQkJZG9jLkxvYWQgKGZp bGUpOwogCQkJcmV0dXJuIEluZm9zZXQgKGRvYyk7CiAJCX0KKworCQlwdWJsaWMgc3RhdGljIHN0 cmluZyBUb1dpbmRvd3NFbmRpbmdzIChzdHJpbmcgcykKKwkJeworCQkJcmV0dXJuIHMuUmVwbGFj ZSAoIlxyXG4iLCAiXG4iKS5SZXBsYWNlICgiXG4iLCAiXHJcbiIpOworCQl9CiAJCQogCQlzdGF0 aWMgdm9pZCBDb3B5RGlyIChzdHJpbmcgc3JjLCBzdHJpbmcgZHN0KQogCQl7DQoNClJlbW92ZWQ6 IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDI1 OSArMCwwIEBACi0yMDA5LTAyLTEzICBNaWNoYWVsIEh1dGNoaW5zb24gIDxtaHV0Y2hpbnNvbkBu b3ZlbGwuY29tPgotCi0JKiBnZW5lcmF0ZWQtY29uc29sZS1wcm9qZWN0L1Rlc3RTb2x1dGlvbi5t ZHM6IFJlbW92ZSB1bm5lY2Vzc2FyeSAKLQlhdHRyaWJ1dGUgdGhhdCB3YXMgYnJlYWtpbmcgdGVz dC4KLQotMjAwOS0wMS0yNyAgTGx1aXMgU2FuY2hleiBHdWFsICA8bGx1aXNAbm92ZWxsLmNvbT4K LQotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvTWFpbi5jczoKLQkqIGNv bXBsZXRpb24tZGItdGVzdC9MaWJyYXJ5Mi9TaGFyZWROYW1lc3BhY2UuY3M6Ci0JKiBjb21wbGV0 aW9uLWRiLXRlc3QvQ29tcGxldGlvbkRiVGVzdC9SZXBsYWNlbWVudHM6Ci0JKiBjb21wbGV0aW9u LWRiLXRlc3QvQ29tcGxldGlvbkRiVGVzdC9QYXJ0aWFsVGVzdDIuY3M6Ci0JKiBjb21wbGV0aW9u LWRiLXRlc3QvQ29tcGxldGlvbkRiVGVzdC9QYXJ0aWFsVGVzdDEuY3M6Ci0JKiBjb21wbGV0aW9u LWRiLXRlc3QvQ29tcGxldGlvbkRiVGVzdC9Db21wbGV0aW9uRGJUZXN0LmNzcHJvajoKLQkqIGNv bXBsZXRpb24tZGItdGVzdC9Db21wbGV0aW9uRGJUZXN0L1JlcGxhY2VtZW50cy9FbXB0eUZpbGUu Y3M6Ci0JKiBjb21wbGV0aW9uLWRiLXRlc3QvQ29tcGxldGlvbkRiVGVzdC9SZXBsYWNlbWVudHMv UGFydGlhbFRlc3QyLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3Qv UmVwbGFjZW1lbnRzL0dlbmVyaWNSZXdyaXRlLmNzOgotCUFkZGVkIHJlcGxhY2VtZW50IGZpbGVz LCB0byBiZSB1c2VkIHRvIHNpbXVsYXRlIGNoYW5nZXMgaW4gZmlsZXMuCi0KLTIwMDktMDEtMjcg IExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIGNvbXBsZXRpb24t ZGItdGVzdC9Db21wbGV0aW9uRGJUZXN0L01haW4uY3M6IFVwZGF0ZWQgdGVzdHMuCi0KLTIwMDkt MDEtMjAgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIGNvbXBs ZXRpb24tZGItdGVzdC9Db21wbGV0aW9uRGJUZXN0L0dlbmVyaWNSZXdyaXRlLmNzOgotCSogY29t cGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvQ29tcGxldGlvbkRiVGVzdC5jc3Byb2o6 IEFkZGVkIG5ldwotCXRlc3QuCi0KLTIwMDktMDEtMTUgIE1pY2hhZWwgSHV0Y2hpbnNvbiAgPG1o dXRjaGluc29uQG5vdmVsbC5jb20+Ci0KLQkqIHZzLWxvY2FsLWNvcHkvc29sdXRpb24tZm9sZGVy OgotCSogdnMtbG9jYWwtY29weS9zb2x1dGlvbi1mb2xkZXIvcXV1eC50eHQ6Ci0JKiB2cy1sb2Nh bC1jb3B5L3NvbHV0aW9uLWZvbGRlci9hcHAuY29uZmlnOgotCSogdnMtbG9jYWwtY29weS9WU0xv Y2FsQ29weVRlc3QvVlNMb2NhbENvcHlUZXN0LmNzcHJvajogVGVzdCBsb2NhbC1jb3B5Ci0Jb2Yg ZXh0ZXJuYWwgZmlsZXMuIFBhdGNoIGZyb20gU2FtIENodXBhcmtvZmYuCi0KLTIwMDktMDEtMTIg IE1pY2hhZWwgSHV0Y2hpbnNvbiAgPG1odXRjaGluc29uQG5vdmVsbC5jb20+Ci0KLQkqIHZzLWxv Y2FsLWNvcHkvQ2xhc3NMaWJyYXJ5MS9mb286Ci0JKiB2cy1sb2NhbC1jb3B5L1ZTTG9jYWxDb3B5 VGVzdC9mb2xkZXI6Ci0JKiB2cy1sb2NhbC1jb3B5L0NsYXNzTGlicmFyeTEvZm9vL2Jhci50eHQ6 Ci0JKiB2cy1sb2NhbC1jb3B5L1ZTTG9jYWxDb3B5VGVzdC9mb2xkZXIvYmF6LnR4dDoKLQkqIHZz LWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5MS9DbGFzc0xpYnJhcnkxLmNzcHJvajoKLQkqIHZzLWxv Y2FsLWNvcHkvVlNMb2NhbENvcHlUZXN0L1ZTTG9jYWxDb3B5VGVzdC5jc3Byb2o6IFVwZGF0ZQot CWxvY2FsLWNvcHkgdGVzdCB0byBtYWtlIHN1cmUgcGF0aHMgYXJlIGluY2x1ZGVkLiBDb3ZlcnMg IkJ1ZyA0NTkzMTEgLQotCUNvcHlpbmcgZmlsZXMgdG8gb3V0cHV0IGRpcmVjdG9yeSBpbiBNb25v RGV2ZWxvcCIuCi0KLTIwMDgtMTItMTYgIExsdWlzIFNhbmNoZXogR3VhbCAgPGxsdWlzQG5vdmVs bC5jb20+Ci0KLQkqIGdlbmVyYXRlZC1jb25zb2xlLXByb2plY3QvVGVzdFByb2plY3QubWRwOgot CSogZ2VuZXJhdGVkLWNvbnNvbGUtcHJvamVjdC9UZXN0UHJvamVjdC5jc3Byb2o6Ci0JKiBuZXN0 ZWQtc29sdXRpb25zLW1kcC9jb25zb2xlLXByb2plY3QvY29uc29sZS1wcm9qZWN0Lm1kcDoKLQkq IG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjEvbGlicmFyeTEvbGlicmFyeTEu bWRwOgotCSogbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMS9saWJyYXJ5Mi9s aWJyYXJ5Mi5tZHA6Ci0JKiBjc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwL2Nz aGFycC1jb25zb2xlLW1kcC5tZHA6Ci0JKiBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29s dXRpb24yL2NvbnNvbGUtcHJvamVjdDIvY29uc29sZS1wcm9qZWN0Mi5tZHA6Ci0JKiBuZXN0ZWQt c29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFyeTQv bGlicmFyeTQubWRwOgotCSogbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9u ZXN0ZWQtc29sdXRpb24zL2xpYnJhcnkzL2xpYnJhcnkzLm1kcDoKLQkqIHRlc3QtY29uZmlndXJh dGlvbi1tZXJnaW5nL1Rlc3RDb25maWd1cmF0aW9uTWVyZ2luZy9UZXN0Q29uZmlndXJhdGlvbk1l cmdpbmcuY3Nwcm9qOgotCSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENvbmZpZ3Vy YXRpb25NZXJnaW5nL1Rlc3RDb25maWd1cmF0aW9uTWVyZ2luZ1NhdmVkLmNzcHJvajoKLQlUcmFj ayBjaGFuZ2VzIGRvbmUgaW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0LgotCi0JKiBjb21wbGV0 aW9uLWRiLXRlc3QvTGlicmFyeTEvTXlDbGFzcy5jczoKLQkqIGNvbXBsZXRpb24tZGItdGVzdC9M aWJyYXJ5Mi9NeUNsYXNzLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRl c3Quc2xuOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0xpYnJhcnkxL0xpYnJhcnkxLmNzcHJvajoK LQkqIGNvbXBsZXRpb24tZGItdGVzdC9MaWJyYXJ5Mi9Bc3NlbWJseUluZm8uY3M6Ci0JKiBjb21w bGV0aW9uLWRiLXRlc3QvTGlicmFyeTEvQXNzZW1ibHlJbmZvLmNzOgotCSogY29tcGxldGlvbi1k Yi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvTWFpbi5jczoKLQkqIGNvbXBsZXRpb24tZGItdGVzdC9M aWJyYXJ5Mi9MaWJyYXJ5Mi5jc3Byb2o6Ci0JKiBjb21wbGV0aW9uLWRiLXRlc3QvTGlicmFyeTIv U2hhcmVkTmFtZXNwYWNlLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0xpYnJhcnkxL1NoYXJl ZE5hbWVzcGFjZS5jczoKLQkqIGNvbXBsZXRpb24tZGItdGVzdC9MaWJyYXJ5Mi9HZW5lcmljU3Vi Y2xhc3NpbmcuY3M6Ci0JKiBjb21wbGV0aW9uLWRiLXRlc3QvTGlicmFyeTEvR2VuZXJpY1N1YmNs YXNzaW5nLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvQXNzZW1i bHlJbmZvLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvU2hhcmVk TmFtZXNwYWNlLmNzOgotCSogY29tcGxldGlvbi1kYi10ZXN0L0NvbXBsZXRpb25EYlRlc3QvQ29t cGxldGlvbkRiVGVzdC5jc3Byb2o6IEFkZGVkIG5ldwotCXRlc3RzIGZvciB0aGUgY29kZSBjb21w bGV0aW9uIGRhdGFiYXNlLgotCi0yMDA4LTEwLTMxICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVp c0Bub3ZlbGwuY29tPgotCi0JKiByZXNvdXJjZXMtdGVzdGVyL1Jlc291cmNlc1Rlc3Rlci9TdWJm b2xkZXIvRm9ybUZpbGUyLkRlc2lnbmVyLmNzOiBGaXgKLQlidWlsZCBvZiB0ZXN0IHNvbHV0aW9u LgotCi0yMDA4LTEwLTMwICBMbHVpcyBTYW5jaGV6IEd1YWwgIDxsbHVpc0Bub3ZlbGwuY29tPgot Ci0JKiB0ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliNC9MaWI0Lm1kcDoKLQkqIHRlc3QtYnVpbGQtY29u Zmlncy9MaWIzL0xpYjMubWRwOgotCSogdGVzdC1idWlsZC1jb25maWdzL0xpYjIvTGliMi5tZHA6 IEZpeCB0ZXN0IHNvbHV0aW9ucy4KLQotMjAwOC0xMC0yMyAgTGx1aXMgU2FuY2hleiBHdWFsICA8 bGx1aXNAbm92ZWxsLmNvbT4KLQotCSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENv bmZpZ3VyYXRpb25NZXJnaW5nL1Rlc3RDb25maWd1cmF0aW9uTWVyZ2luZy5jc3Byb2o6Ci0JRml4 ZWQgaW52YWxpZCBwcm9qZWN0IGZpbGUuCi0KLTIwMDgtMTAtMjMgIExsdWlzIFNhbmNoZXogR3Vh bCAgPGxsdWlzQG5vdmVsbC5jb20+Ci0KLQkqIHRlc3QtY29uZmlndXJhdGlvbi1tZXJnaW5nOgot CSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENvbmZpZ3VyYXRpb25NZXJnaW5nOgot CSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENvbmZpZ3VyYXRpb25NZXJnaW5nLnNs bjoKLQkqIHRlc3QtY29uZmlndXJhdGlvbi1tZXJnaW5nL1Rlc3RDb25maWd1cmF0aW9uTWVyZ2lu Zy9NYWluLmNzOgotCSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENvbmZpZ3VyYXRp b25NZXJnaW5nL0Fzc2VtYmx5SW5mby5jczoKLQkqIHRlc3QtY29uZmlndXJhdGlvbi1tZXJnaW5n L1Rlc3RDb25maWd1cmF0aW9uTWVyZ2luZy9UZXN0Q29uZmlndXJhdGlvbk1lcmdpbmcuY3Nwcm9q OgotCSogdGVzdC1jb25maWd1cmF0aW9uLW1lcmdpbmcvVGVzdENvbmZpZ3VyYXRpb25NZXJnaW5n L1Rlc3RDb25maWd1cmF0aW9uTWVyZ2luZ1NhdmVkLmNzcHJvajoKLQlBZGQgbmV3IHRlc3QgcHJv amVjdHMuCi0KLTIwMDgtMTAtMDEgIE1pY2hhZWwgSHV0Y2hpbnNvbiA8bWh1dGNoaW5zb25Abm92 ZWxsLmNvbT4gCi0KLQkqIHZzLWxvY2FsLWNvcHksIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5 NSwKLQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5NS9Qcm9wZXJ0aWVzLAotCSAgdnMtbG9j YWwtY29weS9DbGFzc0xpYnJhcnk1L1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzLAotCSAgdnMt bG9jYWwtY29weS9DbGFzc0xpYnJhcnk1L0NsYXNzNS5jcywKLQkgIHZzLWxvY2FsLWNvcHkvQ2xh c3NMaWJyYXJ5NS9DbGFzc0xpYnJhcnk1LmNzcHJvaiwKLQkgIHZzLWxvY2FsLWNvcHkvVlNMb2Nh bENvcHlUZXN0LnNsbiwgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJhcnkxLAotCSAgdnMtbG9jYWwt Y29weS9DbGFzc0xpYnJhcnkxL1RleHRGaWxlMS50eHQsCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNz TGlicmFyeTEvQ2xhc3NMaWJyYXJ5MS5jc3Byb2osCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNzTGli cmFyeTEvQ2xhc3MxLmNzLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJhcnkxL1Byb3BlcnRp ZXMsCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNzTGlicmFyeTEvUHJvcGVydGllcy9Bc3NlbWJseUlu Zm8uY3MsCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNzTGlicmFyeTIsCi0JICB2cy1sb2NhbC1jb3B5 L0NsYXNzTGlicmFyeTIvVGV4dEZpbGUyLnR4dCwKLQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJy YXJ5Mi9DbGFzczIuY3MsCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNzTGlicmFyeTIvQ2xhc3NMaWJy YXJ5Mi5jc3Byb2osCi0JICB2cy1sb2NhbC1jb3B5L0NsYXNzTGlicmFyeTIvUHJvcGVydGllcywK LQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5j cywKLQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5MywKLQkgIHZzLWxvY2FsLWNvcHkvQ2xh c3NMaWJyYXJ5My9Qcm9wZXJ0aWVzLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJhcnkzL1By b3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJhcnkz L0NsYXNzMy5jcywKLQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5My9DbGFzc0xpYnJhcnkz LmNzcHJvaiwKLQkgIHZzLWxvY2FsLWNvcHkvQ2xhc3NMaWJyYXJ5NCwKLQkgIHZzLWxvY2FsLWNv cHkvQ2xhc3NMaWJyYXJ5NC9Qcm9wZXJ0aWVzLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJh cnk0L1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xp YnJhcnk0L0NsYXNzTGlicmFyeTQuY3Nwcm9qLAotCSAgdnMtbG9jYWwtY29weS9DbGFzc0xpYnJh cnk0L0NsYXNzNC5jcywKLQkgIHZzLWxvY2FsLWNvcHkvVlNMb2NhbENvcHlUZXN0LAotCSAgdnMt bG9jYWwtY29weS9WU0xvY2FsQ29weVRlc3QvUHJvZ3JhbS5jcywKLQkgIHZzLWxvY2FsLWNvcHkv VlNMb2NhbENvcHlUZXN0L1Byb3BlcnRpZXMsCi0JICB2cy1sb2NhbC1jb3B5L1ZTTG9jYWxDb3B5 VGVzdC9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcywKLQkgIHZzLWxvY2FsLWNvcHkvVlNMb2Nh bENvcHlUZXN0L1ZTTG9jYWxDb3B5VGVzdC5jc3Byb2o6IEFkZCBhIHRlc3QKLQkgIHByb2plY3Qg Zm9yIGxvY2FsIGNvcHkgb2YgZmlsZXMgYW5kIHJlZmVyZW5jZXMuCi0KLTIwMDgtMDYtMDQgIExs dWlzIFNhbmNoZXogR3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4gCi0KLQkqIHRlc3QtYnVpbGQtY29u ZmlncywgdGVzdC1idWlsZC1jb25maWdzL3Rlc3QtYnVpbGQtY29uZmlncy5tZHMsCi0JICB0ZXN0 LWJ1aWxkLWNvbmZpZ3MvTGliMSwgdGVzdC1idWlsZC1jb25maWdzL0xpYjEvTXlDbGFzcy5jcywK LQkgIHRlc3QtYnVpbGQtY29uZmlncy9MaWIxL0Fzc2VtYmx5SW5mby5jcywKLQkgIHRlc3QtYnVp bGQtY29uZmlncy9MaWIxL0xpYjEubWRwLCB0ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliMiwKLQkgIHRl c3QtYnVpbGQtY29uZmlncy9MaWIyL015Q2xhc3MuY3MsCi0JICB0ZXN0LWJ1aWxkLWNvbmZpZ3Mv TGliMi9Bc3NlbWJseUluZm8uY3MsCi0JICB0ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliMi9MaWIyLm1k cCwgdGVzdC1idWlsZC1jb25maWdzL0xpYjMsCi0JICB0ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliMy9N eUNsYXNzLmNzLAotCSAgdGVzdC1idWlsZC1jb25maWdzL0xpYjMvQXNzZW1ibHlJbmZvLmNzLAot CSAgdGVzdC1idWlsZC1jb25maWdzL0xpYjMvTGliMy5tZHAsIHRlc3QtYnVpbGQtY29uZmlncy9M aWI0LAotCSAgdGVzdC1idWlsZC1jb25maWdzL0xpYjQvTXlDbGFzcy5jcywKLQkgIHRlc3QtYnVp bGQtY29uZmlncy9MaWI0L0Fzc2VtYmx5SW5mby5jcywKLQkgIHRlc3QtYnVpbGQtY29uZmlncy9M aWI0L0xpYjQubWRwOiBOZXcgdGVzdHMgZm9yIGNoZWNraW5nIHNvbHV0aW9uCi0JICBjb25maWd1 cmF0aW9uIG1hcHBpbmdzLgotCi0yMDA4LTA2LTA0ICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlz QG5vdmVsbC5jb20+IAotCi0JKiBnZW5lcmF0ZWQtY29uc29sZS1wcm9qZWN0L1Rlc3RTb2x1dGlv bi5zbG4sCi0JICBjb25zb2xlLXByb2plY3QvQ29uc29sZVByb2plY3Quc2xuOiBUZXN0IGZpeGVz LgotCi0yMDA4LTA1LTIzICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+IAot Ci0JKiBnZW5lcmF0ZWQtY29uc29sZS1wcm9qZWN0L1Rlc3RQcm9qZWN0Lm1kcCwKLQkgIGdlbmVy YXRlZC1jb25zb2xlLXByb2plY3QvVGVzdFNvbHV0aW9uLnNsbiwKLQkgIGNvbnNvbGUtcHJvamVj dC9Db25zb2xlUHJvamVjdC5zbG46IEZpeCB0ZXN0cy4KLQotMjAwOC0wNS0yMSAgTGx1aXMgU2Fu Y2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPiAKLQotCSogY29uc29sZS13aXRoLWxpYnMtbWRw L2NvbnNvbGUtd2l0aC1saWJzLW1kcC9jb25zb2xlLXdpdGgtbGlicy1tZHAubWRwLAotCSAgY29u c29sZS13aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9Bc3NlbWJseUluZm8uY3Ms Ci0JICBjb25zb2xlLXdpdGgtbGlicy1tZHAvY29uc29sZS13aXRoLWxpYnMtbWRwL01haW4uY3Ms Ci0JICBjb25zb2xlLXdpdGgtbGlicy1tZHAvY29uc29sZS13aXRoLWxpYnMtbWRwLm1kcywKLQkg IGNvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJyYXJ5MS9NeUNsYXNzLmNzLAotCSAgY29uc29sZS13 aXRoLWxpYnMtbWRwL2xpYnJhcnkxL0Fzc2VtYmx5SW5mby5jcywKLQkgIGNvbnNvbGUtd2l0aC1s aWJzLW1kcC9saWJyYXJ5Mi9NeUNsYXNzLmNzLAotCSAgY29uc29sZS13aXRoLWxpYnMtbWRwL2xp YnJhcnkyL0Fzc2VtYmx5SW5mby5jcywKLQkgIGNvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJyYXJ5 Mi9saWJyYXJ5Mi5tZHAsCi0JICBnZW5lcmF0ZWQtY29uc29sZS1wcm9qZWN0L1Rlc3RQcm9qZWN0 LmNzcHJvaiwKLQkgIGdlbmVyYXRlZC1jb25zb2xlLXByb2plY3QvVGVzdFByb2plY3QubWRwLAot CSAgZ2VuZXJhdGVkLWNvbnNvbGUtcHJvamVjdC9UZXN0U29sdXRpb24uc2xuLAotCSAgZ2VuZXJh dGVkLWNvbnNvbGUtcHJvamVjdC9UZXN0U29sdXRpb24ubWRzLAotCSAgbnVuaXQtYXNzZW1ibHkt Z3JvdXAvbnVuaXQtYXNzZW1ibHktZ3JvdXAubWRzLAotCSAgbnVuaXQtYXNzZW1ibHktZ3JvdXAv bnVuaXQtYXNzZW1ibHktZ3JvdXAubWQtbnVuaXQsCi0JICBjb25zb2xlLXByb2plY3QvQ29uc29s ZVByb2plY3Quc2xuLAotCSAgY29uc29sZS1wcm9qZWN0L0NvbnNvbGVQcm9qZWN0L0NvbnNvbGVQ cm9qZWN0LmNzcHJvaiwKLQkgIGNvbnNvbGUtcHJvamVjdC9Db25zb2xlUHJvamVjdC9Qcm9ncmFt LmNzLAotCSAgY29uc29sZS1wcm9qZWN0L0NvbnNvbGVQcm9qZWN0L1Byb3BlcnRpZXMvQXNzZW1i bHlJbmZvLmNzLAotCSAgY29uc29sZS1wcm9qZWN0LXdpdGgtbWFrZWZpbGUvTWFrZWZpbGUuaW5j bHVkZSwKLQkgIGNvbnNvbGUtcHJvamVjdC13aXRoLW1ha2VmaWxlL2NvbmZpZ3VyZSwKLQkgIGNv bnNvbGUtcHJvamVjdC13aXRoLW1ha2VmaWxlL0NvbnNvbGVQcm9qZWN0LnNsbiwKLQkgIGNvbnNv bGUtcHJvamVjdC13aXRoLW1ha2VmaWxlL3J1bGVzLm1ha2UsCi0JICBjb25zb2xlLXByb2plY3Qt d2l0aC1tYWtlZmlsZS9Db25zb2xlUHJvamVjdC9Db25zb2xlUHJvamVjdC5jc3Byb2osCi0JICBj b25zb2xlLXByb2plY3Qtd2l0aC1tYWtlZmlsZS9Db25zb2xlUHJvamVjdC9Qcm9ncmFtLmNzLAot CSAgY29uc29sZS1wcm9qZWN0LXdpdGgtbWFrZWZpbGUvQ29uc29sZVByb2plY3QvUHJvcGVydGll cy9Bc3NlbWJseUluZm8uY3MsCi0JICBjb25zb2xlLXByb2plY3Qtd2l0aC1tYWtlZmlsZS9Db25z b2xlUHJvamVjdC9NYWtlZmlsZSwKLQkgIGNvbnNvbGUtcHJvamVjdC13aXRoLW1ha2VmaWxlL0Nv bnNvbGVQcm9qZWN0L2NvbnNvbGVwcm9qZWN0LmluLAotCSAgY29uc29sZS1wcm9qZWN0LXdpdGgt bWFrZWZpbGUvTWFrZWZpbGUsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRp b25zLW1kcC5tZHMsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9jb25zb2xlLXByb2plY3QvQXNz ZW1ibHlJbmZvLmNzLAotCSAgbmVzdGVkLXNvbHV0aW9ucy1tZHAvY29uc29sZS1wcm9qZWN0L2Nv bnNvbGUtcHJvamVjdC5tZHAsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9jb25zb2xlLXByb2pl Y3QvTWFpbi5jcywKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjEvbmVz dGVkLXNvbHV0aW9uMS5tZHMsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRp b24xL2xpYnJhcnkxL015Q2xhc3MuY3MsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQt c29sdXRpb24xL2xpYnJhcnkxL0Fzc2VtYmx5SW5mby5jcywKLQkgIG5lc3RlZC1zb2x1dGlvbnMt bWRwL25lc3RlZC1zb2x1dGlvbjEvbGlicmFyeTEvbGlicmFyeTEubWRwLAotCSAgbmVzdGVkLXNv bHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMS9saWJyYXJ5Mi9NeUNsYXNzLmNzLAotCSAgbmVz dGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMS9saWJyYXJ5Mi9Bc3NlbWJseUluZm8u Y3MsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24xL2xpYnJhcnkyL2xp YnJhcnkyLm1kcCwKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvbmVz dGVkLXNvbHV0aW9uMy9uZXN0ZWQtc29sdXRpb24zLm1kcywKLQkgIG5lc3RlZC1zb2x1dGlvbnMt bWRwL25lc3RlZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5My9NeUNsYXNzLmNz LAotCSAgbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9uZXN0ZWQtc29sdXRp b24zL2xpYnJhcnkzL0Fzc2VtYmx5SW5mby5jcywKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25l c3RlZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5My9saWJyYXJ5My5waWRiLAot CSAgbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9uZXN0ZWQtc29sdXRpb24z L2xpYnJhcnkzL2xpYnJhcnkzLm1kcCwKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1z b2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5NC9NeUNsYXNzLmNzLAotCSAgbmVzdGVk LXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9uZXN0ZWQtc29sdXRpb24zL2xpYnJhcnk0 L0Fzc2VtYmx5SW5mby5jcywKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlv bjIvbmVzdGVkLXNvbHV0aW9uMy9saWJyYXJ5NC9saWJyYXJ5NC5waWRiLAotCSAgbmVzdGVkLXNv bHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9uZXN0ZWQtc29sdXRpb24zL2xpYnJhcnk0L2xp YnJhcnk0Lm1kcCwKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvbmVz dGVkLXNvbHV0aW9uMi5tZHMsCi0JICBuZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRp b24yL2NvbnNvbGUtcHJvamVjdDIvQXNzZW1ibHlJbmZvLmNzLAotCSAgbmVzdGVkLXNvbHV0aW9u cy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9jb25zb2xlLXByb2plY3QyL2NvbnNvbGUtcHJvamVjdDIu cGlkYiwKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvY29uc29sZS1w cm9qZWN0Mi9jb25zb2xlLXByb2plY3QyLm1kcCwKLQkgIG5lc3RlZC1zb2x1dGlvbnMtbWRwL25l c3RlZC1zb2x1dGlvbjIvY29uc29sZS1wcm9qZWN0Mi9NYWluLmNzLAotCSAgcmVzb3VyY2VzLXRl c3Rlci9SZXNvdXJjZXNUZXN0ZXIvUmVzb3VyY2VzVGVzdGVyLmNzcHJvaiwKLQkgIHJlc291cmNl cy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL0JpdG1hcEN1bHR1cmVkLmNhLmJtcCwKLQkgIHJlc291 cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL0Zvcm1GaWxlLnJlc3gsCi0JICByZXNvdXJjZXMt dGVzdGVyL1Jlc291cmNlc1Rlc3Rlci9TdWJmb2xkZXIvQml0bWFwQ3VsdHVyZWQyLmNhLmJtcCwK LQkgIHJlc291cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1N1YmZvbGRlci9Gb3JtRmlsZTIu cmVzeCwKLQkgIHJlc291cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1N1YmZvbGRlci9Gb3Jt RmlsZTIuY2EucmVzeCwKLQkgIHJlc291cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1N1YmZv bGRlci9Gb3JtRmlsZTIuRGVzaWduZXIuY3MsCi0JICByZXNvdXJjZXMtdGVzdGVyL1Jlc291cmNl c1Rlc3Rlci9TdWJmb2xkZXIvRm9ybUZpbGUyLmNzLAotCSAgcmVzb3VyY2VzLXRlc3Rlci9SZXNv dXJjZXNUZXN0ZXIvU3ViZm9sZGVyL05vcm1hbDIucmVzeCwKLQkgIHJlc291cmNlcy10ZXN0ZXIv UmVzb3VyY2VzVGVzdGVyL1N1YmZvbGRlci9DdWx0dXJlZDIuY2EucmVzeCwKLQkgIHJlc291cmNl cy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1N1YmZvbGRlci9CaXRtYXAyLmJtcCwKLQkgIHJlc291 cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1N1YmZvbGRlci9Ob3JtYWwyLkRlc2lnbmVyLmNz LAotCSAgcmVzb3VyY2VzLXRlc3Rlci9SZXNvdXJjZXNUZXN0ZXIvRm9ybUZpbGUuY2EucmVzeCwK LQkgIHJlc291cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL0Zvcm1GaWxlLkRlc2lnbmVyLmNz LAotCSAgcmVzb3VyY2VzLXRlc3Rlci9SZXNvdXJjZXNUZXN0ZXIvRm9ybUZpbGUuY3MsCi0JICBy ZXNvdXJjZXMtdGVzdGVyL1Jlc291cmNlc1Rlc3Rlci9Ob3JtYWwucmVzeCwKLQkgIHJlc291cmNl cy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL0N1bHR1cmVkLmNhLnJlc3gsCi0JICByZXNvdXJjZXMt dGVzdGVyL1Jlc291cmNlc1Rlc3Rlci9CaXRtYXAxLmJtcCwKLQkgIHJlc291cmNlcy10ZXN0ZXIv UmVzb3VyY2VzVGVzdGVyL05vcm1hbC5EZXNpZ25lci5jcywKLQkgIHJlc291cmNlcy10ZXN0ZXIv UmVzb3VyY2VzVGVzdGVyL1Byb2dyYW0uY3MsCi0JICByZXNvdXJjZXMtdGVzdGVyL1Jlc291cmNl c1Rlc3Rlci9Qcm9wZXJ0aWVzL1NldHRpbmdzLnNldHRpbmdzLAotCSAgcmVzb3VyY2VzLXRlc3Rl ci9SZXNvdXJjZXNUZXN0ZXIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MsCi0JICByZXNvdXJj ZXMtdGVzdGVyL1Jlc291cmNlc1Rlc3Rlci9Qcm9wZXJ0aWVzL1NldHRpbmdzLkRlc2lnbmVyLmNz LAotCSAgcmVzb3VyY2VzLXRlc3Rlci9SZXNvdXJjZXNUZXN0ZXIvUHJvcGVydGllcy9SZXNvdXJj ZXMucmVzeCwKLQkgIHJlc291cmNlcy10ZXN0ZXIvUmVzb3VyY2VzVGVzdGVyL1Byb3BlcnRpZXMv UmVzb3VyY2VzLkRlc2lnbmVyLmNzLAotCSAgcmVzb3VyY2VzLXRlc3Rlci9SZXNvdXJjZXNUZXN0 ZXIuc2xuLAotCSAgY3NoYXJwLWNvbnNvbGUtbWRwL2NzaGFycC1jb25zb2xlLW1kcC5tZHMsCi0J ICBjc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwL0Fzc2VtYmx5SW5mby5jcywK LQkgIGNzaGFycC1jb25zb2xlLW1kcC9jc2hhcnAtY29uc29sZS1tZHAvTWFpbi5jcywKLQkgIGNz aGFycC1jb25zb2xlLW1kcC9jc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwLm1k cDogTmV3Ci0JICB1bml0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCi0KLQ0KDQpSZW1vdmVkOiBtYWlu L3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29udGFjdEJvb2svQ29udGFjdEJvb2subWRzDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpAQCAtMSwyNCArMCwwIEBACi08Q29tYmluZSBkZWZhdWx0RGVwbG95VGFyZ2V0PSJJbnN0 YWxsIGlyZWN0b3J5IiBuYW1lPSJDb250YWN0Qm9vayIgZmlsZXZlcnNpb249IjIuMCIgTWFrZVBr Z0NvbmZpZz0iRmFsc2UiIE1ha2VMaWJQQz0iVHJ1ZSI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3Rp dmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJp bmVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iQ29udGFj dEJvb2siIGNvbmZpZ3VyYXRpb249IkRlYnVnIiAvPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVl IiBuYW1lPSJDdXN0b21XaWRnZXRzIiBjb25maWd1cmF0aW9uPSJEZWJ1ZyIgLz4KLSAgICA8L0Nv bmZpZ3VyYXRpb24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIgY3R5cGU9IkNv bWJpbmVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iQ29u dGFjdEJvb2siIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9 IlRydWUiIG5hbWU9IkN1c3RvbVdpZGdldHMiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0g ICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8RGVwbG95VGFyZ2V0 cz4KLSAgICA8RGVwbG95VGFyZ2V0IEhhbmRsZXI9Ik1vbm9EZXZlbG9wLkRpcmVjdG9yeURlcGxv eSIgTmFtZT0iSW5zdGFsbCBpcmVjdG9yeSIgY3R5cGU9IkRpcmVjdG9yeURlcGxveVRhcmdldCIg Lz4KLSAgICA8RGVwbG95VGFyZ2V0IEhhbmRsZXI9Ik1vbm9EZXZlbG9wLkF1dG90b29scy5EZXBs b3llciIgTmFtZT0iUmVsZWFzZSBUYXJiYWxsIiBEZWZhdWx0Q29uZmlndXJhdGlvbj0iRGVidWci IGN0eXBlPSJUYXJiYWxsRGVwbG95VGFyZ2V0IiAvPgotICA8L0RlcGxveVRhcmdldHM+Ci0gIDxT dGFydE1vZGUgc3RhcnR1cGVudHJ5PSJDb250YWN0Qm9vayIgc2luZ2xlPSJUcnVlIj4KLSAgICA8 RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iQ29udGFjdEJvb2siIC8+Ci0gICAgPEV4ZWN1dGUg dHlwZT0iTm9uZSIgZW50cnk9IkN1c3RvbVdpZGdldHMiIC8+Ci0gIDwvU3RhcnRNb2RlPgotICA8 RW50cmllcz4KLSAgICA8RW50cnkgZmlsZW5hbWU9Ii4vQ29udGFjdEJvb2svQ29udGFjdEJvb2su bWRwIiAvPgotICAgIDxFbnRyeSBmaWxlbmFtZT0iLi9DdXN0b21XaWRnZXRzL0N1c3RvbVdpZGdl dHMubWRwIiAvPgotICA8L0VudHJpZXM+Ci08L0NvbWJpbmU+ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQ0KDQpBZGRlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL0NvbnRhY3RCb29rL0Nv bnRhY3RCb29rLnNsbg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAsMCArMSw0MCBAQAor77u/CitNaWNyb3Nv ZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4wMAorIyBW aXN1YWwgU3R1ZGlvIDIwMTAKK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMw NEY3OUVGQkN9IikgPSAiQ29udGFjdEJvb2siLCAiQ29udGFjdEJvb2tcQ29udGFjdEJvb2suY3Nw cm9qIiwgIns3MzkwMEZFOS1FQTM3LTQ0QTYtQjY3My1FREQ2MkM2Qjc1NUJ9IgorRW5kUHJvamVj dAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJD dXN0b21XaWRnZXRzIiwgIkN1c3RvbVdpZGdldHNcQ3VzdG9tV2lkZ2V0cy5jc3Byb2oiLCAie0FG OEIyOUE4LUI5NjgtNEMxMy04RkZFLUQ3OTU4MDNCQkFCOX0iCitFbmRQcm9qZWN0CitHbG9iYWwK KwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1 dGlvbgorCQlEZWJ1Z3xBbnkgQ1BVID0gRGVidWd8QW55IENQVQorCQlSZWxlYXNlfEFueSBDUFUg PSBSZWxlYXNlfEFueSBDUFUKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihQcm9q ZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24KKwkJezczOTAwRkU5LUVB MzctNDRBNi1CNjczLUVERDYyQzZCNzU1Qn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1 Z3xBbnkgQ1BVCisJCXs3MzkwMEZFOS1FQTM3LTQ0QTYtQjY3My1FREQ2MkM2Qjc1NUJ9LkRlYnVn fEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJezczOTAwRkU5LUVBMzctNDRBNi1C NjczLUVERDYyQzZCNzU1Qn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55 IENQVQorCQl7NzM5MDBGRTktRUEzNy00NEE2LUI2NzMtRURENjJDNkI3NTVCfS5SZWxlYXNlfEFu eSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQorCQl7QUY4QjI5QTgtQjk2OC00QzEzLThG RkUtRDc5NTgwM0JCQUI5fS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUK KwkJe0FGOEIyOUE4LUI5NjgtNEMxMy04RkZFLUQ3OTU4MDNCQkFCOX0uRGVidWd8QW55IENQVS5C dWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7QUY4QjI5QTgtQjk2OC00QzEzLThGRkUtRDc5NTgw M0JCQUI5fS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtB RjhCMjlBOC1COTY4LTRDMTMtOEZGRS1ENzk1ODAzQkJBQjl9LlJlbGVhc2V8QW55IENQVS5CdWls ZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24o TW9ub0RldmVsb3BQcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCisJCVN0YXJ0dXBJdGVtID0gQ29u dGFjdEJvb2tcQ29udGFjdEJvb2suY3Nwcm9qCisJCWRlZmF1bHREZXBsb3lUYXJnZXQgPSBJbnN0 YWxsIGlyZWN0b3J5CisJCW5hbWUgPSBDb250YWN0Qm9vaworCQlNYWtlUGtnQ29uZmlnID0gRmFs c2UKKwkJTWFrZUxpYlBDID0gVHJ1ZQorCQlEZXBsb3lUYXJnZXRzID0gJDAKKwkJJDAuRGVwbG95 VGFyZ2V0ID0gJDEKKwkJJDEuSGFuZGxlciA9IE1vbm9EZXZlbG9wLkRpcmVjdG9yeURlcGxveQor CQkkMS5OYW1lID0gSW5zdGFsbCBpcmVjdG9yeQorCQkkMS5jdHlwZSA9IERpcmVjdG9yeURlcGxv eVRhcmdldAorCQkkMC5EZXBsb3lUYXJnZXQgPSAkMgorCQkkMi5IYW5kbGVyID0gTW9ub0RldmVs b3AuQXV0b3Rvb2xzLkRlcGxveWVyCisJCSQyLk5hbWUgPSBSZWxlYXNlIFRhcmJhbGwKKwkJJDIu RGVmYXVsdENvbmZpZ3VyYXRpb24gPSBEZWJ1ZworCQkkMi5jdHlwZSA9IFRhcmJhbGxEZXBsb3lU YXJnZXQKKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwNCg0KQWRkZWQ6IG1haW4vdGVzdHMv dGVzdC1wcm9qZWN0cy9Db250YWN0Qm9vay9Db250YWN0Qm9vay9Db250YWN0Qm9vay5jc3Byb2oN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCkBAIC0wLDAgKzEsNzQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp bmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lv bj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNi dWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0 aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+Cisg ICAgPFBsYXRmb3JtIENvbmRpdGlvbj0iICckKFBsYXRmb3JtKScgPT0gJycgIj5BbnlDUFU8L1Bs YXRmb3JtPgorICAgIDxQcm9kdWN0VmVyc2lvbj4xMC4wLjA8L1Byb2R1Y3RWZXJzaW9uPgorICAg IDxTY2hlbWFWZXJzaW9uPjIuMDwvU2NoZW1hVmVyc2lvbj4KKyAgICA8UHJvamVjdEd1aWQ+ezcz OTAwRkU5LUVBMzctNDRBNi1CNjczLUVERDYyQzZCNzU1Qn08L1Byb2plY3RHdWlkPgorICAgIDxP dXRwdXRUeXBlPkV4ZTwvT3V0cHV0VHlwZT4KKyAgICA8Um9vdE5hbWVzcGFjZT5Db250YWN0Qm9v azwvUm9vdE5hbWVzcGFjZT4KKyAgICA8QXNzZW1ibHlOYW1lPkNvbnRhY3RCb29rPC9Bc3NlbWJs eU5hbWU+CisgICAgPFRhcmdldEZyYW1ld29ya1ZlcnNpb24+djIuMDwvVGFyZ2V0RnJhbWV3b3Jr VmVyc2lvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249 IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0RlYnVnfEFueUNQVScgIj4KKyAg ICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KKyAgICA8T3B0aW1pemU+dHJ1ZTwv T3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVnPC9PdXRwdXRQYXRoPgorICAgIDxF cnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2Fy bmluZ0xldmVsPgorICAgIDxFeGVjdXRpb24+CisgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9u PSJOZXRfMl8wIiB4bWxucz0iIiAvPgorICAgIDwvRXhlY3V0aW9uPgorICAgIDxDaGVja0Zvck92 ZXJmbG93VW5kZXJmbG93PnRydWU8L0NoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+CisgIDwvUHJv cGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlv bil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KKyAgICA8T3B0aW1pemU+dHJ1 ZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2U8L091dHB1dFBhdGg+Cisg ICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZlbD40 PC9XYXJuaW5nTGV2ZWw+CisgICAgPEV4ZWN1dGlvbj4KKyAgICAgIDxFeGVjdXRpb24gY2xyLXZl cnNpb249Ik5ldF8yXzAiIHhtbG5zPSIiIC8+CisgICAgPC9FeGVjdXRpb24+CisgICAgPENoZWNr Rm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwvQ2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdz4KKyAg PC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDb250ZW50IEluY2x1ZGU9Imd0 ay1ndWlcZ3VpLnN0ZXRpYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAg PENvbXBpbGUgSW5jbHVkZT0iZ3RrLWd1aVxnZW5lcmF0ZWQuY3MiIC8+CisgICAgPENvbXBpbGUg SW5jbHVkZT0iTWFpbldpbmRvdy5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNYWluLmNz IiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkFzc2VtYmx5SW5mby5jcyIgLz4KKyAgICA8Q29t cGlsZSBJbmNsdWRlPSJHbG9iYWxBY3Rpb25Hcm91cC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNs dWRlPSJndGstZ3VpXENvbnRhY3RCb29rLkdsb2JhbEFjdGlvbkdyb3VwLmNzIiAvPgorICAgIDxD b21waWxlIEluY2x1ZGU9Imd0ay1ndWlcTWFpbldpbmRvdy5jcyIgLz4KKyAgPC9JdGVtR3JvdXA+ CisgIDxJdGVtR3JvdXA+CisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJndGstc2hhcnAsIFZlcnNp b249Mi40LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zNWUxMDE5NWRhYjNj OTlmIj4KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4KKyAg ICA8L1JlZmVyZW5jZT4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Imdkay1zaGFycCwgVmVyc2lv bj0yLjQuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1ZTEwMTk1ZGFiM2M5 OWYiPgorICAgICAgPFNwZWNpZmljVmVyc2lvbj5GYWxzZTwvU3BlY2lmaWNWZXJzaW9uPgorICAg IDwvUmVmZXJlbmNlPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iZ2xpYi1zaGFycCwgVmVyc2lv bj0yLjQuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1ZTEwMTk1ZGFiM2M5 OWYiPgorICAgICAgPFNwZWNpZmljVmVyc2lvbj5GYWxzZTwvU3BlY2lmaWNWZXJzaW9uPgorICAg IDwvUmVmZXJlbmNlPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iZ2xhZGUtc2hhcnAsIFZlcnNp b249Mi40LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zNWUxMDE5NWRhYjNj OTlmIj4KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4KKyAg ICA8L1JlZmVyZW5jZT4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9InBhbmdvLXNoYXJwLCBWZXJz aW9uPTIuNC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIz Yzk5ZiI+CisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+Cisg ICAgPC9SZWZlcmVuY2U+CisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+CisgICAg PFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0uV2ViLlNlcnZpY2VzIiAvPgorICAgIDxSZWZlcmVu Y2UgSW5jbHVkZT0iTW9uby5Qb3NpeCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+ CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cQ3VzdG9tV2lkZ2V0c1xDdXN0b21X aWRnZXRzLmNzcHJvaiI+CisgICAgICA8UHJvamVjdD57QUY4QjI5QTgtQjk2OC00QzEzLThGRkUt RDc5NTgwM0JCQUI5fTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPkN1c3RvbVdpZGdldHM8L05hbWU+ CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9q ZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+Cis8L1By b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW1vdmVkOiBtYWluL3Rlc3Rz L3Rlc3QtcHJvamVjdHMvQ29udGFjdEJvb2svQ29udGFjdEJvb2svQ29udGFjdEJvb2subWRwDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQpAQCAtMSwzNyArMCwwIEBACi08UHJvamVjdCBuYW1lPSJDb250YWN0Qm9vayIg ZmlsZXZlcnNpb249IjIuMCIgRGVmYXVsdE5hbWVzcGFjZT0iQ29udGFjdEJvb2siIGxhbmd1YWdl PSJDIyIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIHRhcmdldEZyYW1ld29yaz0iMi4wIiBjdHlwZT0i RG90TmV0UHJvamVjdCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8 Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0 aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vRGVidWciIGFzc2VtYmx5PSJDb250 YWN0Qm9vayIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IlRydWUiIHRhcmdldD0iRXhlIiAv PgotICAgICAgPEV4ZWN1dGlvbiBjb25zb2xlcGF1c2U9IlRydWUiIHJ1bndpdGh3YXJuaW5ncz0i VHJ1ZSIgcnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgotICAgICAgPENv ZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9IlRy dWUiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iVHJ1 ZSIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRp b24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIgY3R5cGU9IkRvdE5ldFByb2pl Y3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vUmVsZWFzZSIg YXNzZW1ibHk9IkNvbnRhY3RCb29rIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFsc2Ui IHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1dGlvbiBjb25zb2xlcGF1c2U9IlRydWUiIHJ1 bndpdGh3YXJuaW5ncz0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJOZXRfMl8w IiAvPgotICAgICAgPENvZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0i NCIgb3B0aW1pemU9IlRydWUiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVy Zmxvd2NoZWNrcz0iVHJ1ZSIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAg ICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+Ci0gIDxDb250ZW50cz4KLSAg ICA8RmlsZSBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iRXhjbHVkZSIgbmFtZT0iZ3RrLWd1 aS9ndWkuc3RldGljIiAvPgotICAgIDxGaWxlIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJD b21waWxlIiBuYW1lPSJndGstZ3VpL2dlbmVyYXRlZC5jcyIgLz4KLSAgICA8RmlsZSBzdWJ0eXBl PSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iTWFpbldpbmRvdy5jcyIgLz4KLSAg ICA8RmlsZSBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iTWFpbi5j cyIgLz4KLSAgICA8RmlsZSBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFt ZT0iQXNzZW1ibHlJbmZvLmNzIiAvPgotICAgIDxGaWxlIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0 aW9uPSJDb21waWxlIiBuYW1lPSJHbG9iYWxBY3Rpb25Hcm91cC5jcyIgLz4KLSAgICA8RmlsZSBz dWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iZ3RrLWd1aS9Db250YWN0 Qm9vay5HbG9iYWxBY3Rpb25Hcm91cC5jcyIgLz4KLSAgICA8RmlsZSBzdWJ0eXBlPSJDb2RlIiBi dWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iZ3RrLWd1aS9NYWluV2luZG93LmNzIiAvPgotICA8 L0NvbnRlbnRzPgotICA8UmVmZXJlbmNlcz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSBzcGVjaWZp Y1ZlcnNpb249IkZhbHNlIiB0eXBlPSJHYWMiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89Imd0ay1z aGFycCwgVmVyc2lvbj0yLjQuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1 ZTEwMTk1ZGFiM2M5OWYiIC8+Ci0gICAgPFByb2plY3RSZWZlcmVuY2Ugc3BlY2lmaWNWZXJzaW9u PSJGYWxzZSIgdHlwZT0iR2FjIiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJnZGstc2hhcnAsIFZl cnNpb249Mi40LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zNWUxMDE5NWRh YjNjOTlmIiAvPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHNwZWNpZmljVmVyc2lvbj0iRmFsc2Ui IHR5cGU9IkdhYyIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iZ2xpYi1zaGFycCwgVmVyc2lvbj0y LjQuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1ZTEwMTk1ZGFiM2M5OWYi IC8+Ci0gICAgPFByb2plY3RSZWZlcmVuY2Ugc3BlY2lmaWNWZXJzaW9uPSJGYWxzZSIgdHlwZT0i R2FjIiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJnbGFkZS1zaGFycCwgVmVyc2lvbj0yLjQuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1ZTEwMTk1ZGFiM2M5OWYiIC8+Ci0g ICAgPFByb2plY3RSZWZlcmVuY2Ugc3BlY2lmaWNWZXJzaW9uPSJGYWxzZSIgdHlwZT0iR2FjIiBs b2NhbGNvcHk9IlRydWUiIHJlZnRvPSJwYW5nby1zaGFycCwgVmVyc2lvbj0yLjQuMC4wLCBDdWx0 dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM1ZTEwMTk1ZGFiM2M5OWYiIC8+Ci0gICAgPFBy b2plY3RSZWZlcmVuY2UgdHlwZT0iUHJvamVjdCIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iQ3Vz dG9tV2lkZ2V0cyIgLz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJHYWMiIGxvY2FsY29w eT0iVHJ1ZSIgcmVmdG89IlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWws IFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0gICAgPFByb2plY3RSZWZlcmVu Y2UgdHlwZT0iR2FjIiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJTeXN0ZW0uV2ViLlNlcnZpY2Vz LCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVm N2YxMWQ1MGEzYSIgLz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJHYWMiIGxvY2FsY29w eT0iVHJ1ZSIgcmVmdG89Ik1vbm8uUG9zaXgsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0 cmFsLCBQdWJsaWNLZXlUb2tlbj0wNzM4ZWI5ZjEzMmVkNzU2IiAvPgotICA8L1JlZmVyZW5jZXM+ Ci08L1Byb2plY3Q+DQoNCkFkZGVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvQ29udGFjdEJv b2svQ3VzdG9tV2lkZ2V0cy9DdXN0b21XaWRnZXRzLmNzcHJvag0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAs MCArMSw2MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9q ZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRw Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJv cGVydHlHcm91cD4KKyAgICA8Q29uZmlndXJhdGlvbiBDb25kaXRpb249IiAnJChDb25maWd1cmF0 aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0 aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1 Y3RWZXJzaW9uPjEwLjAuMDwvUHJvZHVjdFZlcnNpb24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4w PC9TY2hlbWFWZXJzaW9uPgorICAgIDxQcm9qZWN0R3VpZD57QUY4QjI5QTgtQjk2OC00QzEzLThG RkUtRDc5NTgwM0JCQUI5fTwvUHJvamVjdEd1aWQ+CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwv T3V0cHV0VHlwZT4KKyAgICA8Um9vdE5hbWVzcGFjZT5DdXN0b21XaWRnZXRzPC9Sb290TmFtZXNw YWNlPgorICAgIDxBc3NlbWJseU5hbWU+Q3VzdG9tV2lkZ2V0czwvQXNzZW1ibHlOYW1lPgorICAg IDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnYxLjE8L1RhcmdldEZyYW1ld29ya1ZlcnNpb24+Cisg IDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmln dXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdEZWJ1Z3xBbnlDUFUnICI+CisgICAgPERlYnVnU3lt Ym9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+CisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPgor ICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1ZzwvT3V0cHV0UGF0aD4KKyAgICA8RXJyb3JSZXBvcnQ+ cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4K KyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzFfMSIg eG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29sZVBhdXNlPmZhbHNlPC9D b25zb2xlUGF1c2U+CisgICAgPENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwvQ2hlY2tG b3JPdmVyZmxvd1VuZGVyZmxvdz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAgICA8T3V0cHV0UGF0 aD5iaW5cUmVsZWFzZTwvT3V0cHV0UGF0aD4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJv clJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0 aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzFfMSIgeG1sbnM9IiIgLz4K KyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29sZVBhdXNlPmZhbHNlPC9Db25zb2xlUGF1c2U+ CisgICAgPENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwvQ2hlY2tGb3JPdmVyZmxvd1Vu ZGVyZmxvdz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDb21waWxl IEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iQXNzZW1ibHlJ bmZvLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Imd0ay1ndWlcZ2VuZXJhdGVkLmNzIiAv PgorICAgIDxDb21waWxlIEluY2x1ZGU9IlRleHRTZWxlY3Rvci5jcyIgLz4KKyAgICA8Q29tcGls ZSBJbmNsdWRlPSJndGstZ3VpXEN1c3RvbVdpZGdldHMuVGV4dFNlbGVjdG9yLmNzIiAvPgorICA8 L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29udGVudCBJbmNsdWRlPSJndGstZ3Vp XGd1aS5zdGV0aWMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxFbWJl ZGRlZFJlc291cmNlIEluY2x1ZGU9Imd0ay1ndWlcb2JqZWN0cy54bWwiPgorICAgICAgPExvZ2lj YWxOYW1lPm9iamVjdHMueG1sPC9Mb2dpY2FsTmFtZT4KKyAgICA8L0VtYmVkZGVkUmVzb3VyY2U+ CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0i Z3RrLXNoYXJwLCBWZXJzaW9uPTIuNC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9r ZW49MzVlMTAxOTVkYWIzYzk5ZiI+CisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVj aWZpY1ZlcnNpb24+CisgICAgPC9SZWZlcmVuY2U+CisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJn ZGstc2hhcnAsIFZlcnNpb249Mi40LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tl bj0zNWUxMDE5NWRhYjNjOTlmIj4KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNp ZmljVmVyc2lvbj4KKyAgICA8L1JlZmVyZW5jZT4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5 c3RlbSIgLz4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Ik1vbm8uUG9zaXgiIC8+CisgIDwvSXRl bUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXE1pY3Jvc29mdC5D U2hhcnAudGFyZ2V0cyIgLz4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9Db250YWN0Qm9vay9DdXN0b21X aWRnZXRzL0N1c3RvbVdpZGdldHMubWRwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwzMSArMCwwIEBACi08 UHJvamVjdCBuYW1lPSJDdXN0b21XaWRnZXRzIiBmaWxldmVyc2lvbj0iMi4wIiBEZWZhdWx0TmFt ZXNwYWNlPSJDdXN0b21XaWRnZXRzIiBsYW5ndWFnZT0iQyMiIGNsci12ZXJzaW9uPSJOZXRfMV8x IiB0YXJnZXRGcmFtZXdvcms9IjEuMSIgY3R5cGU9IkRvdE5ldFByb2plY3QiPgotICA8Q29uZmln dXJhdGlvbnMgYWN0aXZlPSJEZWJ1ZyI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVidWci IGN0eXBlPSJEb3ROZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVj dG9yeT0iYmluL0RlYnVnIiBhc3NlbWJseT0iQ3VzdG9tV2lkZ2V0cyIgLz4KLSAgICAgIDxCdWls ZCBkZWJ1Z21vZGU9IlRydWUiIHRhcmdldD0iTGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24g Y29uc29sZXBhdXNlPSJGYWxzZSIgcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBydW50aW1lPSJNc05l dCIgY2xyLXZlcnNpb249Ik5ldF8xXzEiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGls ZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFsbG93 ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJUcnVlIiBjdHlwZT0iQ1NoYXJwQ29t cGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJh dGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgot ICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3NlbWJseT0iQ3VzdG9tV2lk Z2V0cyIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IkZhbHNlIiB0YXJnZXQ9IkxpYnJhcnki IC8+Ci0gICAgICA8RXhlY3V0aW9uIGNvbnNvbGVwYXVzZT0iRmFsc2UiIHJ1bndpdGh3YXJuaW5n cz0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJOZXRfMV8xIiAvPgotICAgICAg PENvZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9 IlRydWUiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0i VHJ1ZSIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3Vy YXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+Ci0gIDxDb250ZW50cz4KLSAgICA8RmlsZSBzdWJ0 eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iTXlDbGFzcy5jcyIgLz4KLSAg ICA8RmlsZSBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iQXNzZW1i bHlJbmZvLmNzIiAvPgotICAgIDxGaWxlIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJFeGNs dWRlIiBuYW1lPSJndGstZ3VpL2d1aS5zdGV0aWMiIC8+Ci0gICAgPEZpbGUgc3VidHlwZT0iQ29k ZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIG5hbWU9Imd0ay1ndWkvZ2VuZXJhdGVkLmNzIiAvPgot ICAgIDxGaWxlIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiBuYW1lPSJUZXh0 U2VsZWN0b3IuY3MiIC8+Ci0gICAgPEZpbGUgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkVt YmVkQXNSZXNvdXJjZSIgbmFtZT0iZ3RrLWd1aS9vYmplY3RzLnhtbCIgLz4KLSAgICA8RmlsZSBz dWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgbmFtZT0iZ3RrLWd1aS9DdXN0b21X aWRnZXRzLlRleHRTZWxlY3Rvci5jcyIgLz4KLSAgPC9Db250ZW50cz4KLSAgPFJlZmVyZW5jZXM+ Ci0gICAgPFByb2plY3RSZWZlcmVuY2Ugc3BlY2lmaWNWZXJzaW9uPSJGYWxzZSIgdHlwZT0iR2Fj IiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJndGstc2hhcnAsIFZlcnNpb249Mi40LjAuMCwgQ3Vs dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zNWUxMDE5NWRhYjNjOTlmIiAvPgotICAgIDxQ cm9qZWN0UmVmZXJlbmNlIHNwZWNpZmljVmVyc2lvbj0iRmFsc2UiIHR5cGU9IkdhYyIgbG9jYWxj b3B5PSJUcnVlIiByZWZ0bz0iZ2RrLXNoYXJwLCBWZXJzaW9uPTIuNC4wLjAsIEN1bHR1cmU9bmV1 dHJhbCwgUHVibGljS2V5VG9rZW49MzVlMTAxOTVkYWIzYzk5ZiIgLz4KLSAgICA8UHJvamVjdFJl ZmVyZW5jZSB0eXBlPSJHYWMiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89IlN5c3RlbSwgVmVyc2lv bj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkz NGUwODkiIC8+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgdHlwZT0iR2FjIiBsb2NhbGNvcHk9IlRy dWUiIHJlZnRvPSJNb25vLlBvc2l4LCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJh bCwgUHVibGljS2V5VG9rZW49MDczOGViOWYxMzJlZDc1NiIgLz4KLSAgPC9SZWZlcmVuY2VzPgot PC9Qcm9qZWN0Pg0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13 aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0aC1saWJzLW1kcC5tZHMNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0x LDI0ICswLDAgQEAKLTxDb21iaW5lIG5hbWU9ImNvbnNvbGUtd2l0aC1saWJzLW1kcCIgZmlsZXZl cnNpb249IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29u ZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJpbmVDb25maWd1cmF0aW9uIj4KLSAg ICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iY29uc29sZS13aXRoLWxpYnMtbWRwIiBjb25m aWd1cmF0aW9uPSJEZWJ1ZyIgLz4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0ibGli cmFyeTEiIGNvbmZpZ3VyYXRpb249IkRlYnVnIiAvPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVl IiBuYW1lPSJsaWJyYXJ5MiIgY29uZmlndXJhdGlvbj0iRGVidWciIC8+Ci0gICAgPC9Db25maWd1 cmF0aW9uPgotICAgIDxDb25maWd1cmF0aW9uIG5hbWU9IlJlbGVhc2UiIGN0eXBlPSJDb21iaW5l Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9ImNvbnNvbGUt d2l0aC1saWJzLW1kcCIgY29uZmlndXJhdGlvbj0iUmVsZWFzZSIgLz4KLSAgICAgIDxFbnRyeSBi dWlsZD0iVHJ1ZSIgbmFtZT0ibGlicmFyeTEiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0g ICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9ImxpYnJhcnkyIiBjb25maWd1cmF0aW9uPSJS ZWxlYXNlIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4KLSAg PFN0YXJ0TW9kZSBzdGFydHVwZW50cnk9ImNvbnNvbGUtd2l0aC1saWJzLW1kcCIgc2luZ2xlPSJU cnVlIj4KLSAgICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iY29uc29sZS13aXRoLWxpYnMt bWRwIiAvPgotICAgIDxFeGVjdXRlIHR5cGU9Ik5vbmUiIGVudHJ5PSJsaWJyYXJ5MSIgLz4KLSAg ICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0ibGlicmFyeTIiIC8+Ci0gIDwvU3RhcnRNb2Rl PgotICA8RW50cmllcz4KLSAgICA8RW50cnkgZmlsZW5hbWU9ImNvbnNvbGUtd2l0aC1saWJzLW1k cC9jb25zb2xlLXdpdGgtbGlicy1tZHAubWRwIiAvPgotICAgIDxFbnRyeSBmaWxlbmFtZT0ibGli cmFyeTEvbGlicmFyeTEubWRwIiAvPgotICAgIDxFbnRyeSBmaWxlbmFtZT0ibGlicmFyeTIvbGli cmFyeTIubWRwIiAvPgotICA8L0VudHJpZXM+Ci08L0NvbWJpbmU+ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQ0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13 aXRoLWxpYnMtbWRwL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9Qcm9ncmFtLmNzDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpAQCAtMSwzOCArMCwwIEBACi0vLyBNYWluLmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVp cyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChjKSAy MDA4IE5vdmVsbCwgSW5jIChodHRwOi8vd3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEgY29weQotLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKLS8vIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo dHMKLS8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwgYW5kL29yIHNlbGwKLS8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotLy8gZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vCi0vLyBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi ZSBpbmNsdWRlZCBpbgotLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCi0vLwotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLS8vIElNUExJRUQsIElOQ0xV RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ LAotLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0vLyBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORyBGUk9NLAotLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgotLy8gVEhFIFNPRlRXQVJFLgotLy8KLS8v Ci11c2luZyBTeXN0ZW07Ci0KLW5hbWVzcGFjZSBjb25zb2xld2l0aGxpYnNtZHAKLXsKLQljbGFz cyBNYWluQ2xhc3MKLQl7Ci0JCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3Mp Ci0JCXsKLQkJCUNvbnNvbGUuV3JpdGVMaW5lKCJIZWxsbyBXb3JsZCEiKTsKLQkJfQotCX0KLX0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1w cm9qZWN0cy9jb25zb2xlLXdpdGgtbGlicy1tZHAvY29uc29sZS13aXRoLWxpYnMtbWRwL1Byb3Bl cnRpZXMvQXNzZW1ibHlJbmZvLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSw1MSArMCwwIEBACi0vLyBB c3NlbWJseUluZm8uY3MKLS8vCi0vLyBBdXRob3I6Ci0vLyAgIExsdWlzIFNhbmNoZXogR3VhbCA8 bGx1aXNAbm92ZWxsLmNvbT4KLS8vCi0vLyBDb3B5cmlnaHQgKGMpIDIwMDggTm92ZWxsLCBJbmMg KGh0dHA6Ly93d3cubm92ZWxsLmNvbSkKLS8vCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Ci0vLyBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwgdG8gZGVhbAotLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwotLy8gdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv b3Igc2VsbAotLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi0vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotLy8KLS8vIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCi0v LyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLS8v Ci0vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgotLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0vLyBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUKLS8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLS8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCi0vLyBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTIElOCi0vLyBUSEUgU09GVFdBUkUuCi0vLwotLy8KLXVzaW5nIFN5c3RlbS5S ZWZsZWN0aW9uOwotdXNpbmcgU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlczsKLQotLy8g SW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhc3NlbWJseSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dp bmcgYXR0cmlidXRlcy4gCi0vLyBDaGFuZ2UgdGhlbSB0byB0aGUgdmFsdWVzIHNwZWNpZmljIHRv IHlvdXIgcHJvamVjdC4KLQotW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJjb25zb2xlLXdpdGgt bGlicy1tZHAiKV0KLVthc3NlbWJseTogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildCi1bYXNzZW1i bHk6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5Q29tcGFu eSgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCgiIildCi1bYXNzZW1ibHk6IEFzc2Vt Ymx5Q29weXJpZ2h0KCIiKV0KLVthc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQotW2Fz c2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQotCi0vLyBUaGUgYXNzZW1ibHkgdmVyc2lvbiBo YXMgdGhlIGZvcm1hdCAie01ham9yfS57TWlub3J9LntCdWlsZH0ue1JldmlzaW9ufSIuCi0vLyBJ ZiB0aGUgYnVpbGQgYW5kIHJldmlzaW9uIGFyZSBzZXQgdG8gJyonIHRoZXkgd2lsbCBiZSB1cGRh dGVkIGF1dG9tYXRpY2FsbHkuCi0KLVthc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuKiIp XQotCi0vLyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHVzZWQgdG8gc3BlY2lmeSB0aGUg c2lnbmluZyBrZXkgZm9yIHRoZSBhc3NlbWJseSwgCi0vLyBpZiBkZXNpcmVkLiBTZWUgdGhlIE1v bm8gZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzaWduaW5nLgotCi1b YXNzZW1ibHk6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0KLVthc3NlbWJseTogQXNzZW1ibHlL ZXlGaWxlKCIiKV0NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUt d2l0aC1saWJzLW1kcC9jb25zb2xlLXdpdGgtbGlicy1tZHAvY29uc29sZS13aXRoLWxpYnMtbWRw Lm1kcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjUgKzAsMCBAQAotPFByb2plY3QgbmFtZT0iY29uc29s ZS13aXRoLWxpYnMtbWRwIiBmaWxldmVyc2lvbj0iMi4wIiBsYW5ndWFnZT0iQyMiIGNsci12ZXJz aW9uPSJOZXRfMl8wIiBjdHlwZT0iRG90TmV0UHJvamVjdCI+Ci0gIDxDb25maWd1cmF0aW9ucyBh Y3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkRv dE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4v RGVidWciIGFzc2VtYmx5PSJjb25zb2xlLXdpdGgtbGlicy1tZHAiIC8+Ci0gICAgICA8QnVpbGQg ZGVidWdtb2RlPSJUcnVlIiB0YXJnZXQ9IkV4ZSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0 aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xlcGF1c2U9IlRydWUiIHJ1bnRpbWU9Ik1zTmV0IiBjbHIt dmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNz IiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJUcnVlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFs c2UiIGdlbmVyYXRlb3ZlcmZsb3djaGVja3M9IlRydWUiIGRlZmluZXN5bWJvbHM9IkRFQlVHIiBj dHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4K LSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENv bmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3Nl bWJseT0iY29uc29sZS13aXRoLWxpYnMtbWRwIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0i RmFsc2UiIHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9 IlRydWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJO ZXRfMl8wIiAvPgotICAgICAgPENvZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmds ZXZlbD0iNCIgb3B0aW1pemU9IlRydWUiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJh dGVvdmVyZmxvd2NoZWNrcz0iVHJ1ZSIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIg Lz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+Ci0gIDxDb250ZW50 cz4KLSAgICA8RmlsZSBuYW1lPSJQcm9ncmFtLmNzIiBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlv bj0iQ29tcGlsZSIgLz4KLSAgICA8RmlsZSBuYW1lPSJQcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5j cyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0gIDwvQ29udGVudHM+ Ci0gIDxSZWZlcmVuY2VzPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9IkdhYyIgbG9jYWxj b3B5PSJUcnVlIiByZWZ0bz0iU3lzdGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJh bCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgLz4KLSAgICA8UHJvamVjdFJlZmVy ZW5jZSB0eXBlPSJQcm9qZWN0IiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJsaWJyYXJ5MSIgLz4K LSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQcm9qZWN0IiBsb2NhbGNvcHk9IlRydWUiIHJl ZnRvPSJsaWJyYXJ5MiIgLz4KLSAgPC9SZWZlcmVuY2VzPgotPC9Qcm9qZWN0Pg0KDQpSZW1vdmVk OiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxpYnMtbWRwL2xpYnJhcnkx L2xpYnJhcnkxLm1kcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjMgKzAsMCBAQAotPFByb2plY3QgbmFt ZT0ibGlicmFyeTEiIGZpbGV2ZXJzaW9uPSIyLjAiIGxhbmd1YWdlPSJDIyIgY2xyLXZlcnNpb249 Ik5ldF8yXzAiIGN0eXBlPSJEb3ROZXRQcm9qZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2 ZT0iRGVidWciPgotICAgIDxDb25maWd1cmF0aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0 UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1 ZyIgYXNzZW1ibHk9ImxpYnJhcnkxIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iVHJ1ZSIg dGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRy dWUiIGNvbnNvbGVwYXVzZT0iRmFsc2UiIHJ1bnRpbWU9Ik1zTmV0IiBjbHItdmVyc2lvbj0iTmV0 XzJfMCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNzIiB3YXJuaW5nbGV2 ZWw9IjQiIG9wdGltaXplPSJUcnVlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRl b3ZlcmZsb3djaGVja3M9IlRydWUiIGRlZmluZXN5bWJvbHM9IkRFQlVHIiBjdHlwZT0iQ1NoYXJw Q29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmln dXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24i PgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3NlbWJseT0ibGlicmFy eTEiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJGYWxzZSIgdGFyZ2V0PSJMaWJyYXJ5IiAv PgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0i RmFsc2UiIHJ1bnRpbWU9Ik1zTmV0IiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAgICAgIDxD b2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNzIiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJU cnVlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRlb3ZlcmZsb3djaGVja3M9IlRy dWUiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0gICAgPC9Db25maWd1cmF0 aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8Q29udGVudHM+Ci0gICAgPEZpbGUgbmFtZT0i TXlDbGFzcy5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0gICAg PEZpbGUgbmFtZT0iUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MiIHN1YnR5cGU9IkNvZGUiIGJ1 aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICA8L0NvbnRlbnRzPgotICA8UmVmZXJlbmNlcz4KLSAg ICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJHYWMiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89IlN5 c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3 N2E1YzU2MTkzNGUwODkiIC8+Ci0gIDwvUmVmZXJlbmNlcz4KLTwvUHJvamVjdD4NCg0KUmVtb3Zl ZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzLW1kcC9saWJyYXJ5 Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNTEgKzAsMCBA QAotLy8gQXNzZW1ibHlJbmZvLmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVpcyBTYW5jaGV6 IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChjKSAyMDA4IE5vdmVs bCwgSW5jIChodHRwOi8vd3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29w eQotLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKLS8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLS8vIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwgYW5kL29yIHNlbGwKLS8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vCi0vLyBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRl ZCBpbgotLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh cmUuCi0vLwotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLS8vIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotLy8gRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFCi0vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0vLyBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N LAotLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTgotLy8gVEhFIFNPRlRXQVJFLgotLy8KLS8vCi11c2luZyBT eXN0ZW0uUmVmbGVjdGlvbjsKLXVzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7 Ci0KLS8vIEluZm9ybWF0aW9uIGFib3V0IHRoaXMgYXNzZW1ibHkgaXMgZGVmaW5lZCBieSB0aGUg Zm9sbG93aW5nIGF0dHJpYnV0ZXMuIAotLy8gQ2hhbmdlIHRoZW0gdG8gdGhlIHZhbHVlcyBzcGVj aWZpYyB0byB5b3VyIHByb2plY3QuCi0KLVthc3NlbWJseTogQXNzZW1ibHlUaXRsZSgibGlicmFy eTIiKV0KLVthc3NlbWJseTogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildCi1bYXNzZW1ibHk6IEFz c2VtYmx5Q29uZmlndXJhdGlvbigiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5Q29tcGFueSgiIild Ci1bYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5Q29w eXJpZ2h0KCIiKV0KLVthc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQotW2Fzc2VtYmx5 OiBBc3NlbWJseUN1bHR1cmUoIiIpXQotCi0vLyBUaGUgYXNzZW1ibHkgdmVyc2lvbiBoYXMgdGhl IGZvcm1hdCAie01ham9yfS57TWlub3J9LntCdWlsZH0ue1JldmlzaW9ufSIuCi0vLyBJZiB0aGUg YnVpbGQgYW5kIHJldmlzaW9uIGFyZSBzZXQgdG8gJyonIHRoZXkgd2lsbCBiZSB1cGRhdGVkIGF1 dG9tYXRpY2FsbHkuCi0KLVthc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuKiIpXQotCi0v LyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2lnbmlu ZyBrZXkgZm9yIHRoZSBhc3NlbWJseSwgCi0vLyBpZiBkZXNpcmVkLiBTZWUgdGhlIE1vbm8gZG9j dW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzaWduaW5nLgotCi1bYXNzZW1i bHk6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0KLVthc3NlbWJseTogQXNzZW1ibHlLZXlGaWxl KCIiKV0NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1s aWJzLW1kcC9saWJyYXJ5Mi9saWJyYXJ5Mi5tZHANCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDIzICswLDAg QEAKLTxQcm9qZWN0IG5hbWU9ImxpYnJhcnkyIiBmaWxldmVyc2lvbj0iMi4wIiBsYW5ndWFnZT0i QyMiIGNsci12ZXJzaW9uPSJOZXRfMl8wIiBjdHlwZT0iRG90TmV0UHJvamVjdCI+Ci0gIDxDb25m aWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1 ZyIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGly ZWN0b3J5PSJiaW4vRGVidWciIGFzc2VtYmx5PSJsaWJyYXJ5MiIgLz4KLSAgICAgIDxCdWlsZCBk ZWJ1Z21vZGU9IlRydWUiIHRhcmdldD0iTGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVu d2l0aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xlcGF1c2U9IkZhbHNlIiBydW50aW1lPSJNc05ldCIg Y2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9 Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFsbG93ZWQ9 IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJUcnVlIiBkZWZpbmVzeW1ib2xzPSJERUJV RyIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRp b24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIgY3R5cGU9IkRvdE5ldFByb2pl Y3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vUmVsZWFzZSIg YXNzZW1ibHk9ImxpYnJhcnkyIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFsc2UiIHRh cmdldD0iTGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdzPSJUcnVl IiBjb25zb2xlcGF1c2U9IkZhbHNlIiBydW50aW1lPSJNc05ldCIgY2xyLXZlcnNpb249Ik5ldF8y XzAiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVs PSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92 ZXJmbG93Y2hlY2tzPSJUcnVlIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgot ICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4KLSAgPENvbnRlbnRzPgot ICAgIDxGaWxlIG5hbWU9Ik15Q2xhc3MuY3MiIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJD b21waWxlIiAvPgotICAgIDxGaWxlIG5hbWU9IlByb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIiBz dWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgPC9Db250ZW50cz4KLSAg PFJlZmVyZW5jZXM+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgdHlwZT0iR2FjIiBsb2NhbGNvcHk9 IlRydWUiIHJlZnRvPSJTeXN0ZW0sIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQ dWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiAvPgotICA8L1JlZmVyZW5jZXM+Ci08L1By b2plY3Q+DQoNCkFkZGVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxp YnMvY29uc29sZS13aXRoLWxpYnMuc2xuDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMCwwICsxLDMzIEBACivv u78KK01pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9u IDExLjAwCisjIFZpc3VhbCBTdHVkaW8gMjAxMAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFE My1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJjb25zb2xlLXdpdGgtbGlicyIsICJjb25zb2xlLXdp dGgtbGlic1xjb25zb2xlLXdpdGgtbGlicy5jc3Byb2oiLCAie0VBQjgwQTEzLUZDM0UtNEU1My04 OTUwLUU2QjlGMTlFNEM5MH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0x MUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gImxpYnJhcnkxIiwgImxpYnJhcnkxXGxpYnJhcnkx LmNzcHJvaiIsICJ7N0Y2M0NCRTYtMkZFNy00N0E3LTg5MzAtRUEwNzhEQTA1MDYyfSIKK0VuZFBy b2plY3QKK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Iikg PSAibGlicmFyeTIiLCAibGlicmFyeTJcbGlicmFyeTIuY3Nwcm9qIiwgIns0MkE5QUFGMS1EQ0I4 LTRGM0YtOUIyMC01RjE3RDRFQUFEMjB9IgorRW5kUHJvamVjdAorR2xvYmFsCisJR2xvYmFsU2Vj dGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KKwkJRGVi dWd8QW55IENQVSA9IERlYnVnfEFueSBDUFUKKwkJUmVsZWFzZXxBbnkgQ1BVID0gUmVsZWFzZXxB bnkgQ1BVCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3Vy YXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXs0MkE5QUFGMS1EQ0I4LTRGM0YtOUIy MC01RjE3RDRFQUFEMjB9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQor CQl7NDJBOUFBRjEtRENCOC00RjNGLTlCMjAtNUYxN0Q0RUFBRDIwfS5EZWJ1Z3xBbnkgQ1BVLkJ1 aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs0MkE5QUFGMS1EQ0I4LTRGM0YtOUIyMC01RjE3RDRF QUFEMjB9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKKwkJezQy QTlBQUYxLURDQjgtNEYzRi05QjIwLTVGMTdENEVBQUQyMH0uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxk LjAgPSBSZWxlYXNlfEFueSBDUFUKKwkJezdGNjNDQkU2LTJGRTctNDdBNy04OTMwLUVBMDc4REEw NTA2Mn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3RjYzQ0JF Ni0yRkU3LTQ3QTctODkzMC1FQTA3OERBMDUwNjJ9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERl YnVnfEFueSBDUFUKKwkJezdGNjNDQkU2LTJGRTctNDdBNy04OTMwLUVBMDc4REEwNTA2Mn0uUmVs ZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7N0Y2M0NCRTYtMkZF Ny00N0E3LTg5MzAtRUEwNzhEQTA1MDYyfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVh c2V8QW55IENQVQorCQl7RUFCODBBMTMtRkMzRS00RTUzLTg5NTAtRTZCOUYxOUU0QzkwfS5EZWJ1 Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJe0VBQjgwQTEzLUZDM0UtNEU1 My04OTUwLUU2QjlGMTlFNEM5MH0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQ VQorCQl7RUFCODBBMTMtRkMzRS00RTUzLTg5NTAtRTZCOUYxOUU0QzkwfS5SZWxlYXNlfEFueSBD UFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtFQUI4MEExMy1GQzNFLTRFNTMtODk1 MC1FNkI5RjE5RTRDOTB9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BV CisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oTW9ub0RldmVsb3BQcm9wZXJ0aWVz KSA9IHByZVNvbHV0aW9uCisJCVN0YXJ0dXBJdGVtID0gY29uc29sZS13aXRoLWxpYnNcY29uc29s ZS13aXRoLWxpYnMuY3Nwcm9qCisJCW5hbWUgPSBjb25zb2xlLXdpdGgtbGlicworCUVuZEdsb2Jh bFNlY3Rpb24KK0VuZEdsb2JhbA0KDQpSZW5hbWVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMv Y29uc29sZS13aXRoLWxpYnMvY29uc29sZS13aXRoLWxpYnMvUHJvZ3JhbS5jcw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTI2LDcgKzI2LDcgQEAKIC8vCiB1c2luZyBTeXN0ZW07CiAKLW5hbWVzcGFjZSBjb25z b2xlcHJvamVjdAorbmFtZXNwYWNlIGNvbnNvbGV3aXRobGliCiB7CiAJY2xhc3MgTWFpbkNsYXNz CiAJewpAQCAtMzUsNCArMzUsNCBAQCBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBh cmdzKQogCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkhlbGxvIFdvcmxkISIpOwogCQl9CiAJfQotfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30NCg0KUmVuYW1lZDogbWFpbi90ZXN0cy90ZXN0 LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJzL2NvbnNvbGUtd2l0aC1saWJzL1Byb3BlcnRpZXMv QXNzZW1ibHlJbmZvLmNzDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjcsMTAgKzI3LDEwIEBACiB1c2luZyBT eXN0ZW0uUmVmbGVjdGlvbjsKIHVzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7 CiAKLS8vIEluZm9ybWF0aW9uIGFib3V0IHRoaXMgYXNzZW1ibHkgaXMgZGVmaW5lZCBieSB0aGUg Zm9sbG93aW5nIGF0dHJpYnV0ZXMuIAorLy8gSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhc3NlbWJs eSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcy4KIC8vIENoYW5nZSB0aGVt IHRvIHRoZSB2YWx1ZXMgc3BlY2lmaWMgdG8geW91ciBwcm9qZWN0LgogCi1bYXNzZW1ibHk6IEFz c2VtYmx5VGl0bGUoImNvbnNvbGUtcHJvamVjdCIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxl KCJjb25zb2xlLXdpdGgtbGlicyIpXQogW2Fzc2VtYmx5OiBBc3NlbWJseURlc2NyaXB0aW9uKCIi KV0KIFthc3NlbWJseTogQXNzZW1ibHlDb25maWd1cmF0aW9uKCIiKV0KIFthc3NlbWJseTogQXNz ZW1ibHlDb21wYW55KCIiKV0KQEAgLTQ0LDcgKzQ0LDcgQEAKIAogW2Fzc2VtYmx5OiBBc3NlbWJs eVZlcnNpb24oIjEuMC4qIildCiAKLS8vIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgdXNl ZCB0byBzcGVjaWZ5IHRoZSBzaWduaW5nIGtleSBmb3IgdGhlIGFzc2VtYmx5LCAKKy8vIFRoZSBm b2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBzaWduaW5nIGtleSBm b3IgdGhlIGFzc2VtYmx5LAogLy8gaWYgZGVzaXJlZC4gU2VlIHRoZSBNb25vIGRvY3VtZW50YXRp b24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2lnbmluZy4KIAogW2Fzc2VtYmx5OiBBc3Nl bWJseURlbGF5U2lnbihmYWxzZSldDQoNCkFkZGVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMv Y29uc29sZS13aXRoLWxpYnMvY29uc29sZS13aXRoLWxpYnMvY29uc29sZS13aXRoLWxpYnMuY3Nw cm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQpAQCAtMCwwICsxLDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu Y29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1Zl cnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVy L21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxDb25maWd1cmF0aW9uIENv bmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9u PgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQbGF0Zm9ybSknID09ICcnICI+QW55Q1BV PC9QbGF0Zm9ybT4KKyAgICA8UHJvZHVjdFZlcnNpb24+MTAuMC4wPC9Qcm9kdWN0VmVyc2lvbj4K KyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+CisgICAgPFByb2plY3RHdWlk PntFQUI4MEExMy1GQzNFLTRFNTMtODk1MC1FNkI5RjE5RTRDOTB9PC9Qcm9qZWN0R3VpZD4KKyAg ICA8T3V0cHV0VHlwZT5FeGU8L091dHB1dFR5cGU+CisgICAgPEFzc2VtYmx5TmFtZT5jb25zb2xl LXdpdGgtbGliczwvQXNzZW1ibHlOYW1lPgorICAgIDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnYy LjA8L1RhcmdldEZyYW1ld29ya1ZlcnNpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3Bl cnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdE ZWJ1Z3xBbnlDUFUnICI+CisgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+Cisg ICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPgorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Zzwv T3V0cHV0UGF0aD4KKyAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+ CisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZl bD40PC9XYXJuaW5nTGV2ZWw+CisgICAgPENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwv Q2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdz4KKyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1 dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4K KyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25m aWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyAiPgorICAgIDxPcHRp bWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAgICA8T3V0cHV0UGF0aD5iaW5cUmVsZWFzZTwvT3V0cHV0 UGF0aD4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2Fybmlu Z0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlv biBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAg ICA8Q2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdz50cnVlPC9DaGVja0Zvck92ZXJmbG93VW5kZXJm bG93PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENvbXBpbGUgSW5j bHVkZT0iUHJvZ3JhbS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFz c2VtYmx5SW5mby5jcyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJl ZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3Vw PgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXGxpYnJhcnkxXGxpYnJhcnkxLmNz cHJvaiI+CisgICAgICA8UHJvamVjdD57N0Y2M0NCRTYtMkZFNy00N0E3LTg5MzAtRUEwNzhEQTA1 MDYyfTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPmxpYnJhcnkxPC9OYW1lPgorICAgIDwvUHJvamVj dFJlZmVyZW5jZT4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlxsaWJyYXJ5Mlxs aWJyYXJ5Mi5jc3Byb2oiPgorICAgICAgPFByb2plY3Q+ezQyQTlBQUYxLURDQjgtNEYzRi05QjIw LTVGMTdENEVBQUQyMH08L1Byb2plY3Q+CisgICAgICA8TmFtZT5saWJyYXJ5MjwvTmFtZT4KKyAg ICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9 IiQoTVNCdWlsZEJpblBhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4KKzwvUHJvamVj dD4NCg0KUmVuYW1lZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NvbnNvbGUtd2l0aC1saWJz L2xpYnJhcnkxL015Q2xhc3MuY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yOSwxMSArMjksMTEgQEAKIAog bmFtZXNwYWNlIGxpYnJhcnkxCiB7Ci0JCi0JCisKKwogCXB1YmxpYyBjbGFzcyBNeUNsYXNzCiAJ ewotCQkKKwogCQlwdWJsaWMgTXlDbGFzcygpCiAJCXsKIAkJfQ0KDQpSZW5hbWVkOiBtYWluL3Rl c3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxpYnMvbGlicmFyeTEvUHJvcGVydGllcy9B c3NlbWJseUluZm8uY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yNyw3ICsyNyw3IEBACiB1c2luZyBTeXN0 ZW0uUmVmbGVjdGlvbjsKIHVzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7CiAK LS8vIEluZm9ybWF0aW9uIGFib3V0IHRoaXMgYXNzZW1ibHkgaXMgZGVmaW5lZCBieSB0aGUgZm9s bG93aW5nIGF0dHJpYnV0ZXMuIAorLy8gSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhc3NlbWJseSBp cyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcy4KIC8vIENoYW5nZSB0aGVtIHRv IHRoZSB2YWx1ZXMgc3BlY2lmaWMgdG8geW91ciBwcm9qZWN0LgogCiBbYXNzZW1ibHk6IEFzc2Vt Ymx5VGl0bGUoImxpYnJhcnkxIildCkBAIC00NCw3ICs0NCw3IEBACiAKIFthc3NlbWJseTogQXNz ZW1ibHlWZXJzaW9uKCIxLjAuKiIpXQogCi0vLyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJl IHVzZWQgdG8gc3BlY2lmeSB0aGUgc2lnbmluZyBrZXkgZm9yIHRoZSBhc3NlbWJseSwgCisvLyBU aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2lnbmluZyBr ZXkgZm9yIHRoZSBhc3NlbWJseSwKIC8vIGlmIGRlc2lyZWQuIFNlZSB0aGUgTW9ubyBkb2N1bWVu dGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNpZ25pbmcuCiAKIFthc3NlbWJseTog QXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KDQpBZGRlZDogbWFpbi90ZXN0cy90ZXN0LXByb2pl Y3RzL2NvbnNvbGUtd2l0aC1saWJzL2xpYnJhcnkxL2xpYnJhcnkxLmNzcHJvag0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi Pz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHht bG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMi PgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q29uZmlndXJhdGlvbiBDb25kaXRpb249IiAnJChD b25maWd1cmF0aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZv cm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+Cisg ICAgPFByb2R1Y3RWZXJzaW9uPjEwLjAuMDwvUHJvZHVjdFZlcnNpb24+CisgICAgPFNjaGVtYVZl cnNpb24+Mi4wPC9TY2hlbWFWZXJzaW9uPgorICAgIDxQcm9qZWN0R3VpZD57N0Y2M0NCRTYtMkZF Ny00N0E3LTg5MzAtRUEwNzhEQTA1MDYyfTwvUHJvamVjdEd1aWQ+CisgICAgPE91dHB1dFR5cGU+ TGlicmFyeTwvT3V0cHV0VHlwZT4KKyAgICA8QXNzZW1ibHlOYW1lPmxpYnJhcnkxPC9Bc3NlbWJs eU5hbWU+CisgICAgPFRhcmdldEZyYW1ld29ya1ZlcnNpb24+djIuMDwvVGFyZ2V0RnJhbWV3b3Jr VmVyc2lvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249 IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0RlYnVnfEFueUNQVScgIj4KKyAg ICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KKyAgICA8T3B0aW1pemU+dHJ1ZTwv T3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVnPC9PdXRwdXRQYXRoPgorICAgIDxE ZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KKyAgICA8RXJyb3JSZXBvcnQ+ cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4K KyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIg eG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29sZVBhdXNlPmZhbHNlPC9D b25zb2xlUGF1c2U+CisgICAgPENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwvQ2hlY2tG b3JPdmVyZmxvd1VuZGVyZmxvdz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91 cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8 QW55Q1BVJyAiPgorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAgICA8T3V0cHV0UGF0 aD5iaW5cUmVsZWFzZTwvT3V0cHV0UGF0aD4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJv clJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0 aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4K KyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29sZVBhdXNlPmZhbHNlPC9Db25zb2xlUGF1c2U+ CisgICAgPENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+dHJ1ZTwvQ2hlY2tGb3JPdmVyZmxvd1Vu ZGVyZmxvdz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDb21waWxl IEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iUHJvcGVydGll c1xBc3NlbWJseUluZm8uY3MiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAg IDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9y dCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+ Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW5hbWVkOiBtYWlu L3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxpYnMvbGlicmFyeTIvTXlDbGFzcy5j cw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KQEAgLTI5LDExICsyOSwxMSBAQAogCiBuYW1lc3BhY2UgbGlicmFyeTIK IHsKLQkKLQkKKworCiAJcHVibGljIGNsYXNzIE15Q2xhc3MKIAl7Ci0JCQorCiAJCXB1YmxpYyBN eUNsYXNzKCkKIAkJewogCQl9DQoNClJlbmFtZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9j b25zb2xlLXdpdGgtbGlicy9saWJyYXJ5Mi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcw0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KQEAgLTI3LDcgKzI3LDcgQEAKIHVzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOwogdXNp bmcgU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlczsKIAotLy8gSW5mb3JtYXRpb24gYWJv dXQgdGhpcyBhc3NlbWJseSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcy4g CisvLyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2VtYmx5IGlzIGRlZmluZWQgYnkgdGhlIGZv bGxvd2luZyBhdHRyaWJ1dGVzLgogLy8gQ2hhbmdlIHRoZW0gdG8gdGhlIHZhbHVlcyBzcGVjaWZp YyB0byB5b3VyIHByb2plY3QuCiAKIFthc3NlbWJseTogQXNzZW1ibHlUaXRsZSgibGlicmFyeTIi KV0KQEAgLTQ0LDcgKzQ0LDcgQEAKIAogW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjEuMC4q IildCiAKLS8vIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgdXNlZCB0byBzcGVjaWZ5IHRo ZSBzaWduaW5nIGtleSBmb3IgdGhlIGFzc2VtYmx5LCAKKy8vIFRoZSBmb2xsb3dpbmcgYXR0cmli dXRlcyBhcmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBzaWduaW5nIGtleSBmb3IgdGhlIGFzc2VtYmx5 LAogLy8gaWYgZGVzaXJlZC4gU2VlIHRoZSBNb25vIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgc2lnbmluZy4KIAogW2Fzc2VtYmx5OiBBc3NlbWJseURlbGF5U2lnbihm YWxzZSldDQoNCkFkZGVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY29uc29sZS13aXRoLWxp YnMvbGlicmFyeTIvbGlicmFyeTIuY3Nwcm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMCwwICsxLDQ1IEBA Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVs dFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFz Lm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3Vw PgorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAn JyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQ bGF0Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4KKyAgICA8UHJvZHVjdFZlcnNpb24+ MTAuMC4wPC9Qcm9kdWN0VmVyc2lvbj4KKyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZl cnNpb24+CisgICAgPFByb2plY3RHdWlkPns0MkE5QUFGMS1EQ0I4LTRGM0YtOUIyMC01RjE3RDRF QUFEMjB9PC9Qcm9qZWN0R3VpZD4KKyAgICA8T3V0cHV0VHlwZT5MaWJyYXJ5PC9PdXRwdXRUeXBl PgorICAgIDxBc3NlbWJseU5hbWU+bGlicmFyeTI8L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0 RnJhbWV3b3JrVmVyc2lvbj52Mi4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICA8L1Byb3Bl cnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24p fCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1 ZTwvRGVidWdTeW1ib2xzPgorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAgICA8T3V0 cHV0UGF0aD5iaW5cRGVidWc8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50cz5ERUJV RzwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0 PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxFeGVjdXRpb24+Cisg ICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiB4bWxucz0iIiAvPgorICAgIDwv RXhlY3V0aW9uPgorICAgIDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVzZT4KKyAgICA8 Q2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdz50cnVlPC9DaGVja0Zvck92ZXJmbG93VW5kZXJmbG93 PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENv bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CisgICAgPE9w dGltaXplPnRydWU8L09wdGltaXplPgorICAgIDxPdXRwdXRQYXRoPmJpblxSZWxlYXNlPC9PdXRw dXRQYXRoPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJu aW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxFeGVjdXRpb24+CisgICAgICA8RXhlY3V0 aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiB4bWxucz0iIiAvPgorICAgIDwvRXhlY3V0aW9uPgor ICAgIDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVzZT4KKyAgICA8Q2hlY2tGb3JPdmVy Zmxvd1VuZGVyZmxvdz50cnVlPC9DaGVja0Zvck92ZXJmbG93VW5kZXJmbG93PgorICA8L1Byb3Bl cnR5R3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTXlDbGFzcy5j cyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFzc2VtYmx5SW5mby5jcyIg Lz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJlZmVyZW5jZSBJbmNsdWRl PSJTeXN0ZW0iIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWls ZEJpblBhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4KKzwvUHJvamVjdD4KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0 cy9jc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwLm1kcw0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K QEAgLTEsMTYgKzAsMCBAQAotPENvbWJpbmUgbmFtZT0iY3NoYXJwLWNvbnNvbGUtbWRwIiBmaWxl dmVyc2lvbj0iMi4wIj4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAgIDxD b25maWd1cmF0aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iQ29tYmluZUNvbmZpZ3VyYXRpb24iPgot ICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJjc2hhcnAtY29uc29sZS1tZHAiIGNvbmZp Z3VyYXRpb249IkRlYnVnIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJh dGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iQ29tYmluZUNvbmZpZ3VyYXRpb24iPgotICAgICAg PEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJjc2hhcnAtY29uc29sZS1tZHAiIGNvbmZpZ3VyYXRp b249IlJlbGVhc2UyIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9u cz4KLSAgPFN0YXJ0TW9kZSBzdGFydHVwZW50cnk9ImNzaGFycC1jb25zb2xlLW1kcCIgc2luZ2xl PSJUcnVlIj4KLSAgICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iY3NoYXJwLWNvbnNvbGUt bWRwIiAvPgotICA8L1N0YXJ0TW9kZT4KLSAgPEVudHJpZXM+Ci0gICAgPEVudHJ5IGZpbGVuYW1l PSJjc2hhcnAtY29uc29sZS1tZHAvY3NoYXJwLWNvbnNvbGUtbWRwLm1kcCIgLz4KLSAgPC9FbnRy aWVzPgotPC9Db21iaW5lPg0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvY3No YXJwLWNvbnNvbGUtbWRwL2NzaGFycC1jb25zb2xlLW1kcC9Qcm9ncmFtLmNzDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpAQCAtMSwzOCArMCwwIEBACi0vLyBNYWluLmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVp cyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5vdmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChjKSAy MDA4IE5vdmVsbCwgSW5jIChodHRwOi8vd3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEgY29weQotLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKLS8vIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdo dHMKLS8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwgYW5kL29yIHNlbGwKLS8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotLy8gZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLS8vCi0vLyBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi ZSBpbmNsdWRlZCBpbgotLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCi0vLwotLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLS8vIElNUExJRUQsIElOQ0xV RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ LAotLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0vLyBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORyBGUk9NLAotLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgotLy8gVEhFIFNPRlRXQVJFLgotLy8KLS8v Ci11c2luZyBTeXN0ZW07Ci0KLW5hbWVzcGFjZSBjc2hhcnBjb25zb2xlbWRwCi17Ci0JY2xhc3Mg TWFpbkNsYXNzCi0JewotCQlwdWJsaWMgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQot CQl7Ci0JCQlDb25zb2xlLldyaXRlTGluZSgiSGVsbG8gV29ybGQhIik7Ci0JCX0KLQl9Ci19Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJv amVjdHMvY3NoYXJwLWNvbnNvbGUtbWRwL2NzaGFycC1jb25zb2xlLW1kcC9Qcm9wZXJ0aWVzL0Fz c2VtYmx5SW5mby5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNTEgKzAsMCBAQAotLy8gQXNzZW1ibHlJ bmZvLmNzCi0vLwotLy8gQXV0aG9yOgotLy8gICBMbHVpcyBTYW5jaGV6IEd1YWwgPGxsdWlzQG5v dmVsbC5jb20+Ci0vLwotLy8gQ29weXJpZ2h0IChjKSAyMDA4IE5vdmVsbCwgSW5jIChodHRwOi8v d3d3Lm5vdmVsbC5jb20pCi0vLwotLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQotLy8gb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksIHRvIGRlYWwKLS8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKLS8vIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwK LS8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZSBTb2Z0d2FyZSBpcwotLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKLS8vCi0vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotLy8gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0vLwotLy8gVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKLS8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotLy8gRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF Ci0vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSCi0vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAotLy8gT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUyBJTgotLy8gVEhFIFNPRlRXQVJFLgotLy8KLS8vCi11c2luZyBTeXN0ZW0uUmVmbGVjdGlv bjsKLXVzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7Ci0KLS8vIEluZm9ybWF0 aW9uIGFib3V0IHRoaXMgYXNzZW1ibHkgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGF0dHJp YnV0ZXMuIAotLy8gQ2hhbmdlIHRoZW0gdG8gdGhlIHZhbHVlcyBzcGVjaWZpYyB0byB5b3VyIHBy b2plY3QuCi0KLVthc3NlbWJseTogQXNzZW1ibHlUaXRsZSgiY3NoYXJwLWNvbnNvbGUtbWRwIild Ci1bYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJs eUNvbmZpZ3VyYXRpb24oIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIiIpXQotW2Fz c2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseUNvcHlyaWdo dCgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5VHJhZGVtYXJrKCIiKV0KLVthc3NlbWJseTogQXNz ZW1ibHlDdWx0dXJlKCIiKV0KLQotLy8gVGhlIGFzc2VtYmx5IHZlcnNpb24gaGFzIHRoZSBmb3Jt YXQgIntNYWpvcn0ue01pbm9yfS57QnVpbGR9LntSZXZpc2lvbn0iLgotLy8gSWYgdGhlIGJ1aWxk IGFuZCByZXZpc2lvbiBhcmUgc2V0IHRvICcqJyB0aGV5IHdpbGwgYmUgdXBkYXRlZCBhdXRvbWF0 aWNhbGx5LgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0KLQotLy8gVGhl IGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHNpZ25pbmcga2V5 IGZvciB0aGUgYXNzZW1ibHksIAotLy8gaWYgZGVzaXJlZC4gU2VlIHRoZSBNb25vIGRvY3VtZW50 YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2lnbmluZy4KLQotW2Fzc2VtYmx5OiBB c3NlbWJseURlbGF5U2lnbihmYWxzZSldCi1bYXNzZW1ibHk6IEFzc2VtYmx5S2V5RmlsZSgiIild DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9jc2hhcnAtY29uc29sZS1tZHAv Y3NoYXJwLWNvbnNvbGUtbWRwL2NzaGFycC1jb25zb2xlLW1kcC5tZHANCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBA IC0xLDIzICswLDAgQEAKLTxQcm9qZWN0IG5hbWU9ImNzaGFycC1jb25zb2xlLW1kcCIgRGVmYXVs dE5hbWVzcGFjZT0iY3NoYXJwY29uc29sZW1kcCIgZmlsZXZlcnNpb249IjIuMCIgbGFuZ3VhZ2U9 IkMjIiB0YXJnZXRGcmFtZXdvcms9IjIuMCIgY3R5cGU9IkRvdE5ldFByb2plY3QiPgotICA8Q29u ZmlndXJhdGlvbnMgYWN0aXZlPSJEZWJ1ZyI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVi dWciIGN0eXBlPSJEb3ROZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRp cmVjdG9yeT0iYmluL0RlYnVnIiBhc3NlbWJseT0iY3NoYXJwLWNvbnNvbGUtbWRwIiAvPgotICAg ICAgPEJ1aWxkIGRlYnVnbW9kZT0iVHJ1ZSIgdGFyZ2V0PSJFeGUiIC8+Ci0gICAgICA8RXhlY3V0 aW9uIHJ1bndpdGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJUcnVlIiBydW50aW1lPSJN c05ldCIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29t cGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFs bG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJUcnVlIiBkZWZpbmVzeW1ib2xz PSJERUJVRyIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZp Z3VyYXRpb24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZTIiIGN0eXBlPSJEb3RO ZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVjdG9yeT0iYmluL1Jl bGVhc2UiIGFzc2VtYmx5PSJjc2hhcnAtY29uc29sZS1tZHAiIC8+Ci0gICAgICA8QnVpbGQgZGVi dWdtb2RlPSJGYWxzZSIgdGFyZ2V0PSJFeGUiIC8+Ci0gICAgICA8RXhlY3V0aW9uIHJ1bndpdGh3 YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJUcnVlIiBydW50aW1lPSJNc05ldCIgY2xyLXZl cnNpb249Ik5ldF8yXzAiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIg d2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFsbG93ZWQ9IkZhbHNl IiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJUcnVlIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJh bWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4KLSAg PENvbnRlbnRzPgotICAgIDxGaWxlIG5hbWU9IlByb2dyYW0uY3MiIHN1YnR5cGU9IkNvZGUiIGJ1 aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICAgIDxGaWxlIG5hbWU9IlByb3BlcnRpZXMvQXNzZW1i bHlJbmZvLmNzIiBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgPC9D b250ZW50cz4KLSAgPFJlZmVyZW5jZXM+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgdHlwZT0iUGFj a2FnZSIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iU3lzdGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1 bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgLz4KLSAgPC9S ZWZlcmVuY2VzPgotPC9Qcm9qZWN0Pg0KDQpBZGRlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3Rz L2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlLnNsbg0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAsMCAr MSwyMSBAQAor77u/CitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3Jt YXQgVmVyc2lvbiAxMS4wMAorIyBWaXN1YWwgU3R1ZGlvIDIwMTAKK1Byb2plY3QoIntGQUUwNEVD MC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiY3NoYXJwLWNvbnNvbGUiLCAiY3No YXJwLWNvbnNvbGVcY3NoYXJwLWNvbnNvbGUuY3Nwcm9qIiwgInswMzJEMUU2Ni1BMUU4LTQ1ODUt QUU3Ni0wMjBBMjJDNzQxMDF9IgorRW5kUHJvamVjdAorR2xvYmFsCisJR2xvYmFsU2VjdGlvbihT b2x1dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KKwkJRGVidWd8QW55 IENQVSA9IERlYnVnfEFueSBDUFUKKwkJUmVsZWFzZXxBbnkgQ1BVID0gUmVsZWFzZXxBbnkgQ1BV CisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25Q bGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXswMzJEMUU2Ni1BMUU4LTQ1ODUtQUU3Ni0wMjBB MjJDNzQxMDF9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7MDMy RDFFNjYtQTFFOC00NTg1LUFFNzYtMDIwQTIyQzc0MTAxfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAg PSBEZWJ1Z3xBbnkgQ1BVCisJCXswMzJEMUU2Ni1BMUU4LTQ1ODUtQUU3Ni0wMjBBMjJDNzQxMDF9 LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlMnxBbnkgQ1BVCisJCXswMzJEMUU2 Ni1BMUU4LTQ1ODUtQUU3Ni0wMjBBMjJDNzQxMDF9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0g UmVsZWFzZTJ8QW55IENQVQorCUVuZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKE1vbm9E ZXZlbG9wUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbgorCQlTdGFydHVwSXRlbSA9IGNzaGFycC1j b25zb2xlXGNzaGFycC1jb25zb2xlLmNzcHJvagorCQluYW1lID0gY3NoYXJwLWNvbnNvbGUKKwlF bmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwNCg0KUmVuYW1lZDogbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlL1Byb2dyYW0uY3MNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCkBAIC0yNiw3ICsyNiw3IEBACiAvLwogdXNpbmcgU3lzdGVtOwogCi1uYW1lc3BhY2UgY29u c29sZXByb2plY3QyCituYW1lc3BhY2UgY3NoYXJwY29uc29sZXAKIHsKIAljbGFzcyBNYWluQ2xh c3MKIAl7CkBAIC0zNSw0ICszNSw0IEBAIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1td IGFyZ3MpCiAJCQlDb25zb2xlLldyaXRlTGluZSgiSGVsbG8gV29ybGQhIik7CiAJCX0KIAl9Ci19 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQ0KDQpSZW5hbWVkOiBtYWluL3Rlc3RzL3Rl c3QtcHJvamVjdHMvY3NoYXJwLWNvbnNvbGUvY3NoYXJwLWNvbnNvbGUvUHJvcGVydGllcy9Bc3Nl bWJseUluZm8uY3MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0yNywxMCArMjcsMTAgQEAKIHVzaW5nIFN5c3Rl bS5SZWZsZWN0aW9uOwogdXNpbmcgU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlczsKIAot Ly8gSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhc3NlbWJseSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xs b3dpbmcgYXR0cmlidXRlcy4gCisvLyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2VtYmx5IGlz IGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLgogLy8gQ2hhbmdlIHRoZW0gdG8g dGhlIHZhbHVlcyBzcGVjaWZpYyB0byB5b3VyIHByb2plY3QuCiAKLVthc3NlbWJseTogQXNzZW1i bHlUaXRsZSgibGlicmFyeTEiKV0KK1thc3NlbWJseTogQXNzZW1ibHlUaXRsZSgiY3NoYXJwLWNv bnNvbGUiKV0KIFthc3NlbWJseTogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildCiBbYXNzZW1ibHk6 IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildCiBbYXNzZW1ibHk6IEFzc2VtYmx5Q29tcGFueSgi IildCkBAIC00NCw3ICs0NCw3IEBACiAKIFthc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAu KiIpXQogCi0vLyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHVzZWQgdG8gc3BlY2lmeSB0 aGUgc2lnbmluZyBrZXkgZm9yIHRoZSBhc3NlbWJseSwgCisvLyBUaGUgZm9sbG93aW5nIGF0dHJp YnV0ZXMgYXJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2lnbmluZyBrZXkgZm9yIHRoZSBhc3NlbWJs eSwKIC8vIGlmIGRlc2lyZWQuIFNlZSB0aGUgTW9ubyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGlu Zm9ybWF0aW9uIGFib3V0IHNpZ25pbmcuCiAKIFthc3NlbWJseTogQXNzZW1ibHlEZWxheVNpZ24o ZmFsc2UpXQ0KDQpBZGRlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2NzaGFycC1jb25zb2xl L2NzaGFycC1jb25zb2xlL2NzaGFycC1jb25zb2xlLmNzcHJvag0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAs MCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9q ZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRw Oi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJv cGVydHlHcm91cD4KKyAgICA8Q29uZmlndXJhdGlvbiBDb25kaXRpb249IiAnJChDb25maWd1cmF0 aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0 aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1 Y3RWZXJzaW9uPjEwLjAuMDwvUHJvZHVjdFZlcnNpb24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4w PC9TY2hlbWFWZXJzaW9uPgorICAgIDxQcm9qZWN0R3VpZD57MDMyRDFFNjYtQTFFOC00NTg1LUFF NzYtMDIwQTIyQzc0MTAxfTwvUHJvamVjdEd1aWQ+CisgICAgPE91dHB1dFR5cGU+RXhlPC9PdXRw dXRUeXBlPgorICAgIDxSb290TmFtZXNwYWNlPmNzaGFycGNvbnNvbGU8L1Jvb3ROYW1lc3BhY2U+ CisgICAgPEFzc2VtYmx5TmFtZT5jc2hhcnAtY29uc29sZXA8L0Fzc2VtYmx5TmFtZT4KKyAgICA8 VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52Mi4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICA8 L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3Vy YXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJv bHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAg ICA8T3V0cHV0UGF0aD5iaW5cRGVidWc8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50 cz5ERUJVRzwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9y UmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxDaGVja0Zv ck92ZXJmbG93VW5kZXJmbG93PnRydWU8L0NoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+CisgICAg PEV4ZWN1dGlvbj4KKyAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249Ik5ldF8yXzAiIHhtbG5z PSIiIC8+CisgICAgPC9FeGVjdXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5 R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxl YXNlMnxBbnlDUFUnICI+CisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPgorICAgIDxPdXRw dXRQYXRoPmJpblxSZWxlYXNlPC9PdXRwdXRQYXRoPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8 L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxF eGVjdXRpb24+CisgICAgICA8RXhlY3V0aW9uIGNsci12ZXJzaW9uPSJOZXRfMl8wIiB4bWxucz0i IiAvPgorICAgIDwvRXhlY3V0aW9uPgorICAgIDxDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93PnRy dWU8L0NoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3c+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0 ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9ncmFtLmNzIiAvPgorICAgIDxDb21w aWxlIEluY2x1ZGU9IlByb3BlcnRpZXNcQXNzZW1ibHlJbmZvLmNzIiAvPgorICA8L0l0ZW1Hcm91 cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4KKyAg PC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkQmluUGF0aClcTWljcm9z b2Z0LkNTaGFycC50YXJnZXRzIiAvPgorPC9Qcm9qZWN0Pg0KDQpNb2RpZmllZDogbWFpbi90ZXN0 cy90ZXN0LXByb2plY3RzL2dlbmVyYXRlZC1jb25zb2xlLXByb2plY3QvVGVzdFByb2plY3QuY3Nw cm9qDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQpAQCAtMSwxMyArMSwxNSBAQAotPFByb2plY3QgeG1sbnM9Imh0dHA6 Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyIgRGVmYXVsdFRh cmdldHM9IkJ1aWxkIj4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8 UHJvamVjdCB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNi dWlsZC8yMDAzIiBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIj4KICAg PFByb3BlcnR5R3JvdXA+CiAgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmln dXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+CiAgICAgPFBsYXRmb3JtIENv bmRpdGlvbj0iICckKFBsYXRmb3JtKScgPT0gJycgIj5BbnlDUFU8L1BsYXRmb3JtPgotICAgIDxQ cm9kdWN0VmVyc2lvbj44LjAuNTA3Mjc8L1Byb2R1Y3RWZXJzaW9uPgorICAgIDxQcm9kdWN0VmVy c2lvbj4xMC4wLjA8L1Byb2R1Y3RWZXJzaW9uPgogICAgIDxTY2hlbWFWZXJzaW9uPjIuMDwvU2No ZW1hVmVyc2lvbj4KLSAgICA8UHJvamVjdEd1aWQ+e0RDNTc3MjAyLTY1NEItNEZEQi05NUM3LThD QzVEREY2RDMyRH08L1Byb2plY3RHdWlkPgorICAgIDxQcm9qZWN0R3VpZD57OTY5RjA1RTItMEU3 OS00QzVCLTk4MkMtOEYzREQ0RDQ2MzExfTwvUHJvamVjdEd1aWQ+CiAgICAgPE91dHB1dFR5cGU+ RXhlPC9PdXRwdXRUeXBlPgogICAgIDxSb290TmFtZXNwYWNlPlRlc3RQcm9qZWN0PC9Sb290TmFt ZXNwYWNlPgogICAgIDxBc3NlbWJseU5hbWU+VGVzdFByb2plY3Q8L0Fzc2VtYmx5TmFtZT4KKyAg ICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52Mi4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgog ICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZp Z3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgogICAgIDxEZWJ1Z1N5 bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgpAQCAtNDAsNyArNDIsNyBAQAogICA8SXRlbUdyb3Vw PgogICAgIDxDb250ZW50IEluY2x1ZGU9IkV4Y2x1ZGVkLnhtbCIgLz4KICAgICA8Q29udGVudCBJ bmNsdWRlPSJDb3B5LnhtbCI+Ci0gICAgCTxDb3B5VG9PdXRwdXREaXJlY3Rvcnk+QWx3YXlzPC9D b3B5VG9PdXRwdXREaXJlY3Rvcnk+CisgICAgICA8Q29weVRvT3V0cHV0RGlyZWN0b3J5PkFsd2F5 czwvQ29weVRvT3V0cHV0RGlyZWN0b3J5PgogICAgIDwvQ29udGVudD4KICAgPC9JdGVtR3JvdXA+ CiAgIDxJdGVtR3JvdXA+DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9nZW5l cmF0ZWQtY29uc29sZS1wcm9qZWN0L1Rlc3RQcm9qZWN0Lm1kcA0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEs MjggKzAsMCBAQAotPFByb2plY3QgbmFtZT0iVGVzdFByb2plY3QiIGZpbGV2ZXJzaW9uPSIyLjAi IGxhbmd1YWdlPSJDIyIgdGFyZ2V0RnJhbWV3b3JrPSIyLjAiIERlZmF1bHROYW1lc3BhY2U9IlRl c3RQcm9qZWN0IiBjdHlwZT0iRG90TmV0UHJvamVjdCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3Rp dmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkRvdE5l dFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vRGVi dWciIGFzc2VtYmx5PSJUZXN0UHJvamVjdCIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IlRy dWUiIHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRy dWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdl bmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iRmFsc2Ui IHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2Ui IGRlZmluZXN5bWJvbHM9IkRFQlVHO1RSQUNFIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0 ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJS ZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1 dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3NlbWJseT0iVGVzdFByb2plY3QiIC8+Ci0gICAg ICA8QnVpbGQgZGVidWdtb2RlPSJGYWxzZSIgdGFyZ2V0PSJFeGUiIC8+Ci0gICAgICA8RXhlY3V0 aW9uIHJ1bndpdGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJUcnVlIiBydW50aW1lPSJN c05ldCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNzIiB3YXJuaW5nbGV2 ZWw9IjQiIG9wdGltaXplPSJUcnVlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRl b3ZlcmZsb3djaGVja3M9IkZhbHNlIiBkZWZpbmVzeW1ib2xzPSJUUkFDRSIgY3R5cGU9IkNTaGFy cENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmln dXJhdGlvbnM+Ci0gIDxDb250ZW50cz4KLSAgICA8RmlsZSBuYW1lPSJQcm9ncmFtLmNzIiBzdWJ0 eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgICA8RmlsZSBuYW1lPSJSZXNv dXJjZS54bWwiIHJlc291cmNlX2lkPSJUZXN0UHJvamVjdC5SZXNvdXJjZS54bWwiIHN1YnR5cGU9 IkNvZGUiIGJ1aWxkYWN0aW9uPSJFbWJlZEFzUmVzb3VyY2UiIC8+Ci0gICAgPEZpbGUgbmFtZT0i RXhjbHVkZWQueG1sIiBzdWJ0eXBlPSJDb2RlIiBidWlsZGFjdGlvbj0iRXhjbHVkZSIgLz4KLSAg ICA8RmlsZSBuYW1lPSJDb3B5LnhtbCIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkZpbGVD b3B5IiAvPgotICAgIDxGaWxlIG5hbWU9Ik5vdGhpbmcueG1sIiBzdWJ0eXBlPSJDb2RlIiBidWls ZGFjdGlvbj0iTm90aGluZyIgLz4KLSAgPC9Db250ZW50cz4KLSAgPFJlZmVyZW5jZXM+Ci0gICAg PFByb2plY3RSZWZlcmVuY2UgdHlwZT0iUGFja2FnZSIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0i U3lzdGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49 Yjc3YTVjNTYxOTM0ZTA4OSIgLz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQYWNrYWdl IiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0yLjAuMC4wLCBD dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0gICAg PFByb2plY3RSZWZlcmVuY2UgdHlwZT0iUGFja2FnZSIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0i U3lzdGVtLlhtbCwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv a2VuPWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0gIDwvUmVmZXJlbmNlcz4KLTwvUHJvamVjdD4NCg0K UmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3RzL2dlbmVyYXRlZC1jb25zb2xlLXByb2pl Y3QvVGVzdFNvbHV0aW9uLm1kcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMTYgKzAsMCBAQAotPENvbWJp bmUgZmlsZXZlcnNpb249IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4K LSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJpbmVDb25maWd1cmF0 aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iVGVzdFByb2plY3QiIGNvbmZp Z3VyYXRpb249IkRlYnVnIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJh dGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iQ29tYmluZUNvbmZpZ3VyYXRpb24iPgotICAgICAg PEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJUZXN0UHJvamVjdCIgY29uZmlndXJhdGlvbj0iUmVs ZWFzZSIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+Ci0gIDxT dGFydE1vZGUgc3RhcnR1cGVudHJ5PSJUZXN0UHJvamVjdCIgc2luZ2xlPSJUcnVlIj4KLSAgICA8 RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iVGVzdFByb2plY3QiIC8+Ci0gIDwvU3RhcnRNb2Rl PgotICA8RW50cmllcz4KLSAgICA8RW50cnkgZmlsZW5hbWU9IlRlc3RQcm9qZWN0Lm1kcCIgLz4K LSAgPC9FbnRyaWVzPgotPC9Db21iaW5lPg0KDQpNb2RpZmllZDogbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL2dlbmVyYXRlZC1jb25zb2xlLXByb2plY3QvVGVzdFNvbHV0aW9uLnNsbg0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KQEAgLTEsNyArMSw3IEBACiDvu78NCi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1 dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiA5LjAwDQotIyBWaXN1YWwgU3R1ZGlvIDIwMDUNCi1Q cm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIlRlc3RQ cm9qZWN0IiwgIlRlc3RQcm9qZWN0LmNzcHJvaiIsICJ7REM1NzcyMDItNjU0Qi00RkRCLTk1Qzct OENDNURERjZEMzJEfSINCitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBG b3JtYXQgVmVyc2lvbiAxMS4wMAorIyBWaXN1YWwgU3R1ZGlvIDIwMTAKK1Byb2plY3QoIntGQUUw NEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiVGVzdFByb2plY3QiLCAiVGVz dFByb2plY3QuY3Nwcm9qIiwgIns5NjlGMDVFMi0wRTc5LTRDNUItOTgyQy04RjNERDRENDYzMTF9 IgogRW5kUHJvamVjdA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJh dGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KQEAgLTksMTAgKzksMTAgQEAgR2xvYmFsCiAJ CVJlbGVhc2V8QW55IENQVSA9IFJlbGVhc2V8QW55IENQVQ0KIAlFbmRHbG9iYWxTZWN0aW9uDQog CUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0 aW9uDQotCQl7REM1NzcyMDItNjU0Qi00RkRCLTk1QzctOENDNURERjZEMzJEfS5EZWJ1Z3xBbnkg Q1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCi0JCXtEQzU3NzIwMi02NTRCLTRGREItOTVD Ny04Q0M1RERGNkQzMkR9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUNCi0J CXtEQzU3NzIwMi02NTRCLTRGREItOTVDNy04Q0M1RERGNkQzMkR9LlJlbGVhc2V8QW55IENQVS5B Y3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCi0JCXtEQzU3NzIwMi02NTRCLTRGREItOTVDNy04 Q0M1RERGNkQzMkR9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVDQor CQl7OTY5RjA1RTItMEU3OS00QzVCLTk4MkMtOEYzREQ0RDQ2MzExfS5EZWJ1Z3xBbnkgQ1BVLkFj dGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJezk2OUYwNUUyLTBFNzktNEM1Qi05ODJDLThGM0RE NEQ0NjMxMX0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7OTY5RjA1 RTItMEU3OS00QzVCLTk4MkMtOEYzREQ0RDQ2MzExfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2Zn ID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs5NjlGMDVFMi0wRTc5LTRDNUItOTgyQy04RjNERDRENDYz MTF9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCiAJRW5kR2xvYmFs U2VjdGlvbg0KIAlHbG9iYWxTZWN0aW9uKE1vbm9EZXZlbG9wUHJvcGVydGllcykgPSBwcmVTb2x1 dGlvbg0KIAkJU3RhcnR1cEl0ZW0gPSBUZXN0UHJvamVjdC5jc3Byb2oNDQoNClJlbW92ZWQ6IG1h aW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9jb25zb2xlLXByb2pl Y3QvY29uc29sZS1wcm9qZWN0Lm1kcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjcgKzAsMCBAQAotPFBy b2plY3QgbmFtZT0iY29uc29sZS1wcm9qZWN0IiBmaWxldmVyc2lvbj0iMi4wIiBsYW5ndWFnZT0i QyMiIHRhcmdldEZyYW1ld29yaz0iMi4wIiBEZWZhdWx0TmFtZXNwYWNlPSJjb25zb2xlLXByb2pl Y3QiIGN0eXBlPSJEb3ROZXRQcm9qZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVi dWciPgotICAgIDxDb25maWd1cmF0aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0UHJvamVj dENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1ZyIgYXNz ZW1ibHk9ImNvbnNvbGUtcHJvamVjdCIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IlRydWUi IHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUi IGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVy YXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iRmFsc2UiIHVu c2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGRl ZmluZXN5bWJvbHM9IkRFQlVHO1RSQUNFIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJz IiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxl YXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBk aXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3NlbWJseT0iY29uc29sZS1wcm9qZWN0IiAvPgotICAg ICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFsc2UiIHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1 dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0i TXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xl dmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5zYWZlY29kZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0 ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgZGVmaW5lc3ltYm9scz0iVFJBQ0UiIGN0eXBlPSJDU2hh cnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0gICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZp Z3VyYXRpb25zPgotICA8Q29udGVudHM+Ci0gICAgPEZpbGUgbmFtZT0iUHJvZ3JhbS5jcyIgc3Vi dHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0gICAgPEZpbGUgbmFtZT0iUHJv cGVydGllcy9Bc3NlbWJseUluZm8uY3MiIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21w aWxlIiAvPgotICA8L0NvbnRlbnRzPgotICA8UmVmZXJlbmNlcz4KLSAgICA8UHJvamVjdFJlZmVy ZW5jZSB0eXBlPSJQYWNrYWdlIiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJTeXN0ZW0sIFZlcnNp b249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRl MDg5IiAvPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9IlByb2plY3QiIGxvY2FsY29weT0i VHJ1ZSIgcmVmdG89ImxpYnJhcnkxIiAvPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9IlBy b2plY3QiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89ImxpYnJhcnkyIiAvPgotICAgIDxQcm9qZWN0 UmVmZXJlbmNlIHR5cGU9IlByb2plY3QiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89ImxpYnJhcnkz IiAvPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9IlByb2plY3QiIGxvY2FsY29weT0iVHJ1 ZSIgcmVmdG89ImxpYnJhcnk0IiAvPgotICA8L1JlZmVyZW5jZXM+Ci08L1Byb2plY3Q+DQoNClJl bW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0 ZWQtc29sdXRpb24xL2xpYnJhcnkxL015Q2xhc3MuY3MNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDQxICsw LDAgQEAKLS8vIE15Q2xhc3MuY3MKLS8vCi0vLyBBdXRob3I6Ci0vLyAgIExsdWlzIFNhbmNoZXog R3VhbCA8bGx1aXNAbm92ZWxsLmNvbT4KLS8vCi0vLyBDb3B5cmlnaHQgKGMpIDIwMDggTm92ZWxs LCBJbmMgKGh0dHA6Ly93d3cubm92ZWxsLmNvbSkKLS8vCi0vLyBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5 Ci0vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAotLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwotLy8gdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LCBhbmQvb3Igc2VsbAotLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCi0vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotLy8KLS8vIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk IGluCi0vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy ZS4KLS8vCi0vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0vLyBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBF VkVOVCBTSEFMTCBUSEUKLS8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLS8vIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s Ci0vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSIERFQUxJTkdTIElOCi0vLyBUSEUgU09GVFdBUkUuCi0vLwotLy8KLQotdXNpbmcg U3lzdGVtOwotCi1uYW1lc3BhY2UgbGlicmFyeTEKLXsKLQkKLQkKLQlwdWJsaWMgY2xhc3MgTXlD bGFzcwotCXsKLQkJCi0JCXB1YmxpYyBNeUNsYXNzKCkKLQkJewotCQl9Ci0JfQotfQ0KDQpSZW1v dmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVk LXNvbHV0aW9uMS9saWJyYXJ5MS9saWJyYXJ5MS5tZHANCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDIzICsw LDAgQEAKLTxQcm9qZWN0IG5hbWU9ImxpYnJhcnkxIiBmaWxldmVyc2lvbj0iMi4wIiBsYW5ndWFn ZT0iQyMiIHRhcmdldEZyYW1ld29yaz0iMi4wIiBEZWZhdWx0TmFtZXNwYWNlPSJsaWJyYXJ5MSIg Y3R5cGU9IkRvdE5ldFByb2plY3QiPgotICA8Q29uZmlndXJhdGlvbnMgYWN0aXZlPSJEZWJ1ZyI+ Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVidWciIGN0eXBlPSJEb3ROZXRQcm9qZWN0Q29u ZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVjdG9yeT0iYmluL0RlYnVnIiBhc3NlbWJs eT0ibGlicmFyeTEiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJUcnVlIiB0YXJnZXQ9Ikxp YnJhcnkiIC8+Ci0gICAgICA8RXhlY3V0aW9uIHJ1bndpdGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29s ZXBhdXNlPSJUcnVlIiBydW50aW1lPSJNc05ldCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBj b21waWxlcj0iTWNzIiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJGYWxzZSIgdW5zYWZlY29k ZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgZGVmaW5lc3lt Ym9scz0iREVCVUc7VFJBQ0UiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0g ICAgPC9Db25maWd1cmF0aW9uPgotICAgIDxDb25maWd1cmF0aW9uIG5hbWU9IlJlbGVhc2UiIGN0 eXBlPSJEb3ROZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVjdG9y eT0iYmluL1JlbGVhc2UiIGFzc2VtYmx5PSJsaWJyYXJ5MSIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1 Z21vZGU9IkZhbHNlIiB0YXJnZXQ9IkxpYnJhcnkiIC8+Ci0gICAgICA8RXhlY3V0aW9uIHJ1bndp dGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJUcnVlIiBydW50aW1lPSJNc05ldCIgLz4K LSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNzIiB3YXJuaW5nbGV2ZWw9IjQiIG9w dGltaXplPSJUcnVlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRlb3ZlcmZsb3dj aGVja3M9IkZhbHNlIiBkZWZpbmVzeW1ib2xzPSJUUkFDRSIgY3R5cGU9IkNTaGFycENvbXBpbGVy UGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+ Ci0gIDxDb250ZW50cz4KLSAgICA8RmlsZSBuYW1lPSJNeUNsYXNzLmNzIiBzdWJ0eXBlPSJDb2Rl IiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgICA8RmlsZSBuYW1lPSJQcm9wZXJ0aWVzL0Fz c2VtYmx5SW5mby5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0g IDwvQ29udGVudHM+Ci0gIDxSZWZlcmVuY2VzPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9 IlBhY2thZ2UiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89IlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0g IDwvUmVmZXJlbmNlcz4KLTwvUHJvamVjdD4NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjEvbGlicmFyeTIvTXlD bGFzcy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNDEgKzAsMCBAQAotLy8gTXlDbGFzcy5jcwotLy8K LS8vIEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgot Ly8KLS8vIENvcHlyaWdodCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwu Y29tKQotLy8KLS8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs Ci0vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUgaXMKLS8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Ci0vLwotLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCi0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8v IFRIRSBTT0ZUV0FSRS4KLS8vCi0vLwotCi11c2luZyBTeXN0ZW07Ci0KLW5hbWVzcGFjZSBsaWJy YXJ5MgotewotCQotCQotCXB1YmxpYyBjbGFzcyBNeUNsYXNzCi0JewotCQkKLQkJcHVibGljIE15 Q2xhc3MoKQotCQl7Ci0JCX0KLQl9Ci19DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9q ZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24xL2xpYnJhcnkyL2xpYnJh cnkyLm1kcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjMgKzAsMCBAQAotPFByb2plY3QgbmFtZT0ibGli cmFyeTIiIGZpbGV2ZXJzaW9uPSIyLjAiIGxhbmd1YWdlPSJDIyIgdGFyZ2V0RnJhbWV3b3JrPSIy LjAiIERlZmF1bHROYW1lc3BhY2U9ImxpYnJhcnkyIiBjdHlwZT0iRG90TmV0UHJvamVjdCI+Ci0g IDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1l PSJEZWJ1ZyIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRw dXQgZGlyZWN0b3J5PSJiaW4vRGVidWciIGFzc2VtYmx5PSJsaWJyYXJ5MiIgLz4KLSAgICAgIDxC dWlsZCBkZWJ1Z21vZGU9IlRydWUiIHRhcmdldD0iTGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRp b24gcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xlcGF1c2U9IlRydWUiIHJ1bnRpbWU9Ik1z TmV0IiAvPgotICAgICAgPENvZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZl bD0iNCIgb3B0aW1pemU9IkZhbHNlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRl b3ZlcmZsb3djaGVja3M9IkZhbHNlIiBkZWZpbmVzeW1ib2xzPSJERUJVRztUUkFDRSIgY3R5cGU9 IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gICAg PENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1 cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vUmVsZWFzZSIgYXNzZW1ibHk9 ImxpYnJhcnkyIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFsc2UiIHRhcmdldD0iTGli cmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xl cGF1c2U9IlRydWUiIHJ1bnRpbWU9Ik1zTmV0IiAvPgotICAgICAgPENvZGVHZW5lcmF0aW9uIGNv bXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9IlRydWUiIHVuc2FmZWNvZGVh bGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGRlZmluZXN5bWJv bHM9IlRSQUNFIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29u ZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4KLSAgPENvbnRlbnRzPgotICAgIDxGaWxl IG5hbWU9Ik15Q2xhc3MuY3MiIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiAv PgotICAgIDxGaWxlIG5hbWU9IlByb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIiBzdWJ0eXBlPSJD b2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgPC9Db250ZW50cz4KLSAgPFJlZmVyZW5j ZXM+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgdHlwZT0iUGFja2FnZSIgbG9jYWxjb3B5PSJUcnVl IiByZWZ0bz0iU3lzdGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGlj S2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgLz4KLSAgPC9SZWZlcmVuY2VzPgotPC9Qcm9qZWN0 Pg0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0aW9ucy1t ZHAvbmVzdGVkLXNvbHV0aW9uMS9uZXN0ZWQtc29sdXRpb24xLm1kcw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAg LTEsMjAgKzAsMCBAQAotPENvbWJpbmUgbmFtZT0ibmVzdGVkLXNvbHV0aW9uMSIgZmlsZXZlcnNp b249IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmln dXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJpbmVDb25maWd1cmF0aW9uIj4KLSAgICAg IDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0ibGlicmFyeTEiIGNvbmZpZ3VyYXRpb249IkRlYnVn IiAvPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJsaWJyYXJ5MiIgY29uZmlndXJh dGlvbj0iRGVidWciIC8+Ci0gICAgPC9Db25maWd1cmF0aW9uPgotICAgIDxDb25maWd1cmF0aW9u IG5hbWU9IlJlbGVhc2UiIGN0eXBlPSJDb21iaW5lQ29uZmlndXJhdGlvbiI+Ci0gICAgICA8RW50 cnkgYnVpbGQ9IlRydWUiIG5hbWU9ImxpYnJhcnkxIiBjb25maWd1cmF0aW9uPSJSZWxlYXNlIiAv PgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJsaWJyYXJ5MiIgY29uZmlndXJhdGlv bj0iUmVsZWFzZSIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+ Ci0gIDxTdGFydE1vZGUgc3RhcnR1cGVudHJ5PSJsaWJyYXJ5MSIgc2luZ2xlPSJUcnVlIj4KLSAg ICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0ibGlicmFyeTEiIC8+Ci0gICAgPEV4ZWN1dGUg dHlwZT0iTm9uZSIgZW50cnk9ImxpYnJhcnkyIiAvPgotICA8L1N0YXJ0TW9kZT4KLSAgPEVudHJp ZXM+Ci0gICAgPEVudHJ5IGZpbGVuYW1lPSJsaWJyYXJ5MS9saWJyYXJ5MS5tZHAiIC8+Ci0gICAg PEVudHJ5IGZpbGVuYW1lPSJsaWJyYXJ5Mi9saWJyYXJ5Mi5tZHAiIC8+Ci0gIDwvRW50cmllcz4K LTwvQ29tYmluZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoNClJlbW92ZWQ6IG1haW4v dGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24y L2NvbnNvbGUtcHJvamVjdDIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CkBAIC0xLDUxICswLDAgQEAKLS8vIEFzc2VtYmx5SW5mby5jcwotLy8KLS8vIEF1dGhvcjoKLS8v ICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdo dCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0 aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwot Ly8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4K LS8vCi0vLwotdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247Ci11c2luZyBTeXN0ZW0uUnVudGltZS5D b21waWxlclNlcnZpY2VzOwotCi0vLyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2VtYmx5IGlz IGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLiAKLS8vIENoYW5nZSB0aGVtIHRv IHRoZSB2YWx1ZXMgc3BlY2lmaWMgdG8geW91ciBwcm9qZWN0LgotCi1bYXNzZW1ibHk6IEFzc2Vt Ymx5VGl0bGUoImNvbnNvbGUtcHJvamVjdDIiKV0KLVthc3NlbWJseTogQXNzZW1ibHlEZXNjcmlw dGlvbigiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildCi1bYXNzZW1i bHk6IEFzc2VtYmx5Q29tcGFueSgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCgiIild Ci1bYXNzZW1ibHk6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0KLVthc3NlbWJseTogQXNzZW1ibHlU cmFkZW1hcmsoIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQotCi0vLyBUaGUg YXNzZW1ibHkgdmVyc2lvbiBoYXMgdGhlIGZvcm1hdCAie01ham9yfS57TWlub3J9LntCdWlsZH0u e1JldmlzaW9ufSIuCi0vLyBJZiB0aGUgYnVpbGQgYW5kIHJldmlzaW9uIGFyZSBzZXQgdG8gJyon IHRoZXkgd2lsbCBiZSB1cGRhdGVkIGF1dG9tYXRpY2FsbHkuCi0KLVthc3NlbWJseTogQXNzZW1i bHlWZXJzaW9uKCIxLjAuKiIpXQotCi0vLyBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHVz ZWQgdG8gc3BlY2lmeSB0aGUgc2lnbmluZyBrZXkgZm9yIHRoZSBhc3NlbWJseSwgCi0vLyBpZiBk ZXNpcmVkLiBTZWUgdGhlIE1vbm8gZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBh Ym91dCBzaWduaW5nLgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0KLVth c3NlbWJseTogQXNzZW1ibHlLZXlGaWxlKCIiKV0NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0 LXByb2plY3RzL25lc3RlZC1zb2x1dGlvbnMtbWRwL25lc3RlZC1zb2x1dGlvbjIvY29uc29sZS1w cm9qZWN0Mi9jb25zb2xlLXByb2plY3QyLm1kcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjUgKzAsMCBA QAotPFByb2plY3QgbmFtZT0iY29uc29sZS1wcm9qZWN0MiIgZmlsZXZlcnNpb249IjIuMCIgbGFu Z3VhZ2U9IkMjIiB0YXJnZXRGcmFtZXdvcms9IjIuMCIgRGVmYXVsdE5hbWVzcGFjZT0iY29uc29s ZS1wcm9qZWN0MiIgY3R5cGU9IkRvdE5ldFByb2plY3QiPgotICA8Q29uZmlndXJhdGlvbnMgYWN0 aXZlPSJEZWJ1ZyI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVidWciIGN0eXBlPSJEb3RO ZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVjdG9yeT0iYmluL0Rl YnVnIiBhc3NlbWJseT0iY29uc29sZS1wcm9qZWN0MiIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21v ZGU9IlRydWUiIHRhcmdldD0iRXhlIiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2Fybmlu Z3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIC8+Ci0gICAgICA8 Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0i RmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0i RmFsc2UiIGRlZmluZXN5bWJvbHM9IkRFQlVHO1RSQUNFIiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQ YXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBu YW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAgICAg PE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBhc3NlbWJseT0iY29uc29sZS1wcm9qZWN0 MiIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IkZhbHNlIiB0YXJnZXQ9IkV4ZSIgLz4KLSAg ICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xlcGF1c2U9IlRydWUi IHJ1bnRpbWU9Ik1zTmV0IiAvPgotICAgICAgPENvZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3Mi IHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9IlRydWUiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxz ZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGRlZmluZXN5bWJvbHM9IlRSQUNFIiBj dHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4K LSAgPC9Db25maWd1cmF0aW9ucz4KLSAgPENvbnRlbnRzPgotICAgIDxGaWxlIG5hbWU9IlByb2dy YW0uY3MiIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICAgIDxGaWxl IG5hbWU9IlByb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIiBzdWJ0eXBlPSJDb2RlIiBidWlsZGFj dGlvbj0iQ29tcGlsZSIgLz4KLSAgPC9Db250ZW50cz4KLSAgPFJlZmVyZW5jZXM+Ci0gICAgPFBy b2plY3RSZWZlcmVuY2UgdHlwZT0iUGFja2FnZSIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iU3lz dGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3 YTVjNTYxOTM0ZTA4OSIgLz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQcm9qZWN0IiBs b2NhbGNvcHk9IlRydWUiIHJlZnRvPSJsaWJyYXJ5MyIgLz4KLSAgICA8UHJvamVjdFJlZmVyZW5j ZSB0eXBlPSJQcm9qZWN0IiBsb2NhbGNvcHk9IlRydWUiIHJlZnRvPSJsaWJyYXJ5NCIgLz4KLSAg PC9SZWZlcmVuY2VzPgotPC9Qcm9qZWN0Pg0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJv amVjdHMvbmVzdGVkLXNvbHV0aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9uMi9uZXN0ZWQtc29sdXRp b24yLm1kcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsMjAgKzAsMCBAQAotPENvbWJpbmUgbmFtZT0ibmVz dGVkLXNvbHV0aW9uMiIgZmlsZXZlcnNpb249IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3Rp dmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJp bmVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0ibmVzdGVk LXNvbHV0aW9uMyIgY29uZmlndXJhdGlvbj0iRGVidWciIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9 IlRydWUiIG5hbWU9ImNvbnNvbGUtcHJvamVjdDIiIGNvbmZpZ3VyYXRpb249IkRlYnVnIiAvPgot ICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBj dHlwZT0iQ29tYmluZUNvbmZpZ3VyYXRpb24iPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBu YW1lPSJuZXN0ZWQtc29sdXRpb24zIiBjb25maWd1cmF0aW9uPSJSZWxlYXNlIiAvPgotICAgICAg PEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJjb25zb2xlLXByb2plY3QyIiBjb25maWd1cmF0aW9u PSJSZWxlYXNlIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4K LSAgPFN0YXJ0TW9kZSBzdGFydHVwZW50cnk9Im5lc3RlZC1zb2x1dGlvbjMiIHNpbmdsZT0iVHJ1 ZSI+Ci0gICAgPEV4ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9Im5lc3RlZC1zb2x1dGlvbjMiIC8+ Ci0gICAgPEV4ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9ImNvbnNvbGUtcHJvamVjdDIiIC8+Ci0g IDwvU3RhcnRNb2RlPgotICA8RW50cmllcz4KLSAgICA8RW50cnkgZmlsZW5hbWU9Im5lc3RlZC1z b2x1dGlvbjMvbmVzdGVkLXNvbHV0aW9uMy5tZHMiIC8+Ci0gICAgPEVudHJ5IGZpbGVuYW1lPSJj b25zb2xlLXByb2plY3QyL2NvbnNvbGUtcHJvamVjdDIubWRwIiAvPgotICA8L0VudHJpZXM+Ci08 L0NvbWJpbmU+DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29s dXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFyeTMvTXlD bGFzcy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNDEgKzAsMCBAQAotLy8gTXlDbGFzcy5jcwotLy8K LS8vIEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgot Ly8KLS8vIENvcHlyaWdodCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwu Y29tKQotLy8KLS8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs Ci0vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUgaXMKLS8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Ci0vLwotLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCi0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8v IFRIRSBTT0ZUV0FSRS4KLS8vCi0vLwotCi11c2luZyBTeXN0ZW07Ci0KLW5hbWVzcGFjZSBsaWJy YXJ5MwotewotCQotCQotCXB1YmxpYyBjbGFzcyBNeUNsYXNzCi0JewotCQkKLQkJcHVibGljIE15 Q2xhc3MoKQotCQl7Ci0JCX0KLQl9Ci19DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9q ZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlv bjMvbGlicmFyeTMvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0x LDUxICswLDAgQEAKLS8vIEFzc2VtYmx5SW5mby5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247Ci11c2luZyBTeXN0ZW0uUnVudGltZS5Db21waWxl clNlcnZpY2VzOwotCi0vLyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2VtYmx5IGlzIGRlZmlu ZWQgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLiAKLS8vIENoYW5nZSB0aGVtIHRvIHRoZSB2 YWx1ZXMgc3BlY2lmaWMgdG8geW91ciBwcm9qZWN0LgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5VGl0 bGUoImxpYnJhcnkzIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQotW2Fz c2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseUNv bXBhbnkoIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIiIpXQotW2Fzc2VtYmx5OiBB c3NlbWJseUNvcHlyaWdodCgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5VHJhZGVtYXJrKCIiKV0K LVthc3NlbWJseTogQXNzZW1ibHlDdWx0dXJlKCIiKV0KLQotLy8gVGhlIGFzc2VtYmx5IHZlcnNp b24gaGFzIHRoZSBmb3JtYXQgIntNYWpvcn0ue01pbm9yfS57QnVpbGR9LntSZXZpc2lvbn0iLgot Ly8gSWYgdGhlIGJ1aWxkIGFuZCByZXZpc2lvbiBhcmUgc2V0IHRvICcqJyB0aGV5IHdpbGwgYmUg dXBkYXRlZCBhdXRvbWF0aWNhbGx5LgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4w LioiKV0KLQotLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIHNwZWNpZnkg dGhlIHNpZ25pbmcga2V5IGZvciB0aGUgYXNzZW1ibHksIAotLy8gaWYgZGVzaXJlZC4gU2VlIHRo ZSBNb25vIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2lnbmluZy4K LQotW2Fzc2VtYmx5OiBBc3NlbWJseURlbGF5U2lnbihmYWxzZSldCi1bYXNzZW1ibHk6IEFzc2Vt Ymx5S2V5RmlsZSgiIildDQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0 ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFy eTMvbGlicmFyeTMubWRwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwyMyArMCwwIEBACi08UHJvamVjdCBu YW1lPSJsaWJyYXJ5MyIgZmlsZXZlcnNpb249IjIuMCIgbGFuZ3VhZ2U9IkMjIiB0YXJnZXRGcmFt ZXdvcms9IjIuMCIgRGVmYXVsdE5hbWVzcGFjZT0ibGlicmFyeTMiIGN0eXBlPSJEb3ROZXRQcm9q ZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAgIDxDb25maWd1cmF0 aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAg ICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1ZyIgYXNzZW1ibHk9ImxpYnJhcnkzIiAvPgot ICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iVHJ1ZSIgdGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAg PEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVu dGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2Fy bmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iRmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIg Z2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGRlZmluZXN5bWJvbHM9IkRFQlVHO1RSQUNF IiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlv bj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVj dENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBh c3NlbWJseT0ibGlicmFyeTMiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJGYWxzZSIgdGFy Z2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUi IGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVy YXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5z YWZlY29kZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgZGVm aW5lc3ltYm9scz0iVFJBQ0UiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0g ICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8Q29udGVudHM+Ci0g ICAgPEZpbGUgbmFtZT0iTXlDbGFzcy5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNv bXBpbGUiIC8+Ci0gICAgPEZpbGUgbmFtZT0iUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MiIHN1 YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICA8L0NvbnRlbnRzPgotICA8 UmVmZXJlbmNlcz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQYWNrYWdlIiBsb2NhbGNv cHk9IlRydWUiIHJlZnRvPSJTeXN0ZW0sIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiAvPgotICA8L1JlZmVyZW5jZXM+Ci08 L1Byb2plY3Q+DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29s dXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFyeTQvTXlD bGFzcy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTEsNDEgKzAsMCBAQAotLy8gTXlDbGFzcy5jcwotLy8K LS8vIEF1dGhvcjoKLS8vICAgTGx1aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgot Ly8KLS8vIENvcHlyaWdodCAoYykgMjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwu Y29tKQotLy8KLS8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs Ci0vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUgaXMKLS8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Ci0vLwotLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCi0vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgotLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8v IFRIRSBTT0ZUV0FSRS4KLS8vCi0vLwotCi11c2luZyBTeXN0ZW07Ci0KLW5hbWVzcGFjZSBsaWJy YXJ5NAotewotCQotCQotCXB1YmxpYyBjbGFzcyBNeUNsYXNzCi0JewotCQkKLQkJcHVibGljIE15 Q2xhc3MoKQotCQl7Ci0JCX0KLQl9Ci19DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9q ZWN0cy9uZXN0ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlv bjMvbGlicmFyeTQvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0x LDUxICswLDAgQEAKLS8vIEFzc2VtYmx5SW5mby5jcwotLy8KLS8vIEF1dGhvcjoKLS8vICAgTGx1 aXMgU2FuY2hleiBHdWFsIDxsbHVpc0Bub3ZlbGwuY29tPgotLy8KLS8vIENvcHlyaWdodCAoYykg MjAwOCBOb3ZlbGwsIEluYyAoaHR0cDovL3d3dy5ub3ZlbGwuY29tKQotLy8KLS8vIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKLS8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCi0vLyBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzCi0vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCi0vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLS8vIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0vLwotLy8gVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KLS8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgotLy8KLS8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0vLyBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKLS8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotLy8gTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKLS8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KLS8vIFRIRSBTT0ZUV0FSRS4KLS8vCi0v LwotdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247Ci11c2luZyBTeXN0ZW0uUnVudGltZS5Db21waWxl clNlcnZpY2VzOwotCi0vLyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGFzc2VtYmx5IGlzIGRlZmlu ZWQgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLiAKLS8vIENoYW5nZSB0aGVtIHRvIHRoZSB2 YWx1ZXMgc3BlY2lmaWMgdG8geW91ciBwcm9qZWN0LgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5VGl0 bGUoImxpYnJhcnk0IildCi1bYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQotW2Fz c2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseUNv bXBhbnkoIiIpXQotW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIiIpXQotW2Fzc2VtYmx5OiBB c3NlbWJseUNvcHlyaWdodCgiIildCi1bYXNzZW1ibHk6IEFzc2VtYmx5VHJhZGVtYXJrKCIiKV0K LVthc3NlbWJseTogQXNzZW1ibHlDdWx0dXJlKCIiKV0KLQotLy8gVGhlIGFzc2VtYmx5IHZlcnNp b24gaGFzIHRoZSBmb3JtYXQgIntNYWpvcn0ue01pbm9yfS57QnVpbGR9LntSZXZpc2lvbn0iLgot Ly8gSWYgdGhlIGJ1aWxkIGFuZCByZXZpc2lvbiBhcmUgc2V0IHRvICcqJyB0aGV5IHdpbGwgYmUg dXBkYXRlZCBhdXRvbWF0aWNhbGx5LgotCi1bYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4w LioiKV0KLQotLy8gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIHNwZWNpZnkg dGhlIHNpZ25pbmcga2V5IGZvciB0aGUgYXNzZW1ibHksIAotLy8gaWYgZGVzaXJlZC4gU2VlIHRo ZSBNb25vIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc2lnbmluZy4K LQotW2Fzc2VtYmx5OiBBc3NlbWJseURlbGF5U2lnbihmYWxzZSldCi1bYXNzZW1ibHk6IEFzc2Vt Ymx5S2V5RmlsZSgiIildDQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0 ZWQtc29sdXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbGlicmFy eTQvbGlicmFyeTQubWRwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwyMyArMCwwIEBACi08UHJvamVjdCBu YW1lPSJsaWJyYXJ5NCIgZmlsZXZlcnNpb249IjIuMCIgbGFuZ3VhZ2U9IkMjIiB0YXJnZXRGcmFt ZXdvcms9IjIuMCIgRGVmYXVsdE5hbWVzcGFjZT0ibGlicmFyeTQiIGN0eXBlPSJEb3ROZXRQcm9q ZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAgIDxDb25maWd1cmF0 aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24iPgotICAg ICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1ZyIgYXNzZW1ibHk9ImxpYnJhcnk0IiAvPgot ICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iVHJ1ZSIgdGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAg PEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVu dGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2Fy bmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iRmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIg Z2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGRlZmluZXN5bWJvbHM9IkRFQlVHO1RSQUNF IiBjdHlwZT0iQ1NoYXJwQ29tcGlsZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlv bj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iRG90TmV0UHJvamVj dENvbmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlIiBh c3NlbWJseT0ibGlicmFyeTQiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJGYWxzZSIgdGFy Z2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUi IGNvbnNvbGVwYXVzZT0iVHJ1ZSIgcnVudGltZT0iTXNOZXQiIC8+Ci0gICAgICA8Q29kZUdlbmVy YXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0iVHJ1ZSIgdW5z YWZlY29kZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgZGVm aW5lc3ltYm9scz0iVFJBQ0UiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0g ICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8Q29udGVudHM+Ci0g ICAgPEZpbGUgbmFtZT0iTXlDbGFzcy5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNv bXBpbGUiIC8+Ci0gICAgPEZpbGUgbmFtZT0iUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MiIHN1 YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICA8L0NvbnRlbnRzPgotICA8 UmVmZXJlbmNlcz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQYWNrYWdlIiBsb2NhbGNv cHk9IlRydWUiIHJlZnRvPSJTeXN0ZW0sIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiAvPgotICA8L1JlZmVyZW5jZXM+Ci08 L1Byb2plY3Q+DQoNClJlbW92ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9uZXN0ZWQtc29s dXRpb25zLW1kcC9uZXN0ZWQtc29sdXRpb24yL25lc3RlZC1zb2x1dGlvbjMvbmVzdGVkLXNvbHV0 aW9uMy5tZHMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDIwICswLDAgQEAKLTxDb21iaW5lIG5hbWU9Im5l c3RlZC1zb2x1dGlvbjMiIGZpbGV2ZXJzaW9uPSIyLjAiPgotICA8Q29uZmlndXJhdGlvbnMgYWN0 aXZlPSJEZWJ1ZyI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVidWciIGN0eXBlPSJDb21i aW5lQ29uZmlndXJhdGlvbiI+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9ImxpYnJh cnkzIiBjb25maWd1cmF0aW9uPSJEZWJ1ZyIgLz4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIg bmFtZT0ibGlicmFyeTQiIGNvbmZpZ3VyYXRpb249IkRlYnVnIiAvPgotICAgIDwvQ29uZmlndXJh dGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iQ29tYmluZUNv bmZpZ3VyYXRpb24iPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJsaWJyYXJ5MyIg Y29uZmlndXJhdGlvbj0iUmVsZWFzZSIgLz4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFt ZT0ibGlicmFyeTQiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0gICAgPC9Db25maWd1cmF0 aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8U3RhcnRNb2RlIHN0YXJ0dXBlbnRyeT0ibGli cmFyeTMiIHNpbmdsZT0iVHJ1ZSI+Ci0gICAgPEV4ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9Imxp YnJhcnkzIiAvPgotICAgIDxFeGVjdXRlIHR5cGU9Ik5vbmUiIGVudHJ5PSJsaWJyYXJ5NCIgLz4K LSAgPC9TdGFydE1vZGU+Ci0gIDxFbnRyaWVzPgotICAgIDxFbnRyeSBmaWxlbmFtZT0ibGlicmFy eTMvbGlicmFyeTMubWRwIiAvPgotICAgIDxFbnRyeSBmaWxlbmFtZT0ibGlicmFyeTQvbGlicmFy eTQubWRwIiAvPgotICA8L0VudHJpZXM+Ci08L0NvbWJpbmU+ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQ0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvbmVzdGVkLXNvbHV0 aW9ucy1tZHAvbmVzdGVkLXNvbHV0aW9ucy1tZHAubWRzDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMSwyNCAr MCwwIEBACi08Q29tYmluZSBuYW1lPSJuZXN0ZWQtc29sdXRpb25zLW1kcCIgZmlsZXZlcnNpb249 IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJh dGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJpbmVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxF bnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iY29uc29sZS1wcm9qZWN0IiBjb25maWd1cmF0aW9uPSJE ZWJ1ZyIgLz4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0ibmVzdGVkLXNvbHV0aW9u MSIgY29uZmlndXJhdGlvbj0iRGVidWciIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5h bWU9Im5lc3RlZC1zb2x1dGlvbjIiIGNvbmZpZ3VyYXRpb249IkRlYnVnIiAvPgotICAgIDwvQ29u ZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlvbiBuYW1lPSJSZWxlYXNlIiBjdHlwZT0iQ29t YmluZUNvbmZpZ3VyYXRpb24iPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBuYW1lPSJjb25z b2xlLXByb2plY3QiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0gICAgICA8RW50cnkgYnVp bGQ9IlRydWUiIG5hbWU9Im5lc3RlZC1zb2x1dGlvbjEiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2Ui IC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9Im5lc3RlZC1zb2x1dGlvbjIiIGNv bmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0gICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZp Z3VyYXRpb25zPgotICA8U3RhcnRNb2RlIHN0YXJ0dXBlbnRyeT0iY29uc29sZS1wcm9qZWN0IiBz aW5nbGU9IlRydWUiPgotICAgIDxFeGVjdXRlIHR5cGU9Ik5vbmUiIGVudHJ5PSJjb25zb2xlLXBy b2plY3QiIC8+Ci0gICAgPEV4ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9Im5lc3RlZC1zb2x1dGlv bjEiIC8+Ci0gICAgPEV4ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9Im5lc3RlZC1zb2x1dGlvbjIi IC8+Ci0gIDwvU3RhcnRNb2RlPgotICA8RW50cmllcz4KLSAgICA8RW50cnkgZmlsZW5hbWU9ImNv bnNvbGUtcHJvamVjdC9jb25zb2xlLXByb2plY3QubWRwIiAvPgotICAgIDxFbnRyeSBmaWxlbmFt ZT0ibmVzdGVkLXNvbHV0aW9uMS9uZXN0ZWQtc29sdXRpb24xLm1kcyIgLz4KLSAgICA8RW50cnkg ZmlsZW5hbWU9Im5lc3RlZC1zb2x1dGlvbjIvbmVzdGVkLXNvbHV0aW9uMi5tZHMiIC8+Ci0gIDwv RW50cmllcz4KLTwvQ29tYmluZT4NCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90ZXN0LXByb2plY3Rz L251bml0LWFzc2VtYmx5LWdyb3VwL251bml0LWFzc2VtYmx5LWdyb3VwLm1kLW51bml0DQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpAQCAtMSw5ICswLDAgQEAKLTxOVW5pdEFzc2VtYmx5R3JvdXBQcm9qZWN0IG5hbWU9 Im51bml0LWFzc2VtYmx5LWdyb3VwIiBmaWxldmVyc2lvbj0iMi4wIj4KLSAgPENvbmZpZ3VyYXRp b25zIGFjdGl2ZT0iRGVmYXVsdCI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVmYXVsdCIg Y3R5cGU9Ik5Vbml0QXNzZW1ibHlHcm91cFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxB c3NlbWJsaWVzPgotICAgICAgICA8QXNzZW1ibHkgUGF0aD0iL2hvbWUvbGx1aXMvd29yay9tZG5v dS9tYWluL2J1aWxkL2Jpbi9Vbml0VGVzdHMuZGxsIiAvPgotICAgICAgPC9Bc3NlbWJsaWVzPgot ICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgPC9Db25maWd1cmF0aW9ucz4KLTwvTlVuaXRBc3NlbWJs eUdyb3VwUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQoNClJlbW92ZWQ6IG1h aW4vdGVzdHMvdGVzdC1wcm9qZWN0cy9udW5pdC1hc3NlbWJseS1ncm91cC9udW5pdC1hc3NlbWJs eS1ncm91cC5tZHMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC0xLDEzICswLDAgQEAKLTxDb21iaW5lIG5hbWU9 Im51bml0LWFzc2VtYmx5LWdyb3VwIiBmaWxldmVyc2lvbj0iMi4wIj4KLSAgPENvbmZpZ3VyYXRp b25zIGFjdGl2ZT0iRGVmYXVsdCI+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iRGVmYXVsdCIg Y3R5cGU9IkNvbWJpbmVDb25maWd1cmF0aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIg bmFtZT0ibnVuaXQtYXNzZW1ibHktZ3JvdXAiIGNvbmZpZ3VyYXRpb249IkRlZmF1bHQiIC8+Ci0g ICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8U3RhcnRNb2RlIHN0 YXJ0dXBlbnRyeT0ibnVuaXQtYXNzZW1ibHktZ3JvdXAiIHNpbmdsZT0iVHJ1ZSI+Ci0gICAgPEV4 ZWN1dGUgdHlwZT0iTm9uZSIgZW50cnk9Im51bml0LWFzc2VtYmx5LWdyb3VwIiAvPgotICA8L1N0 YXJ0TW9kZT4KLSAgPEVudHJpZXM+Ci0gICAgPEVudHJ5IGZpbGVuYW1lPSJudW5pdC1hc3NlbWJs eS1ncm91cC5tZC1udW5pdCIgLz4KLSAgPC9FbnRyaWVzPgotPC9Db21iaW5lPgpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUNCg0KQWRkZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy90ZXN0 LWJ1aWxkLWNvbmZpZ3MvTGliMS9MaWIxLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAsMCArMSw1 NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERl ZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2No ZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJvcGVydHlH cm91cD4KKyAgICA8Q29uZmlndXJhdGlvbiBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKScg PT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIg JyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1Y3RWZXJz aW9uPjEwLjAuMDwvUHJvZHVjdFZlcnNpb24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4wPC9TY2hl bWFWZXJzaW9uPgorICAgIDxQcm9qZWN0R3VpZD57REFFMEY1RDAtNTBCMC00MjM4LThGQkEtNDZE RTVGNEQ2Mjg0fTwvUHJvamVjdEd1aWQ+CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0 VHlwZT4KKyAgICA8QXNzZW1ibHlOYW1lPkxpYjE8L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0 RnJhbWV3b3JrVmVyc2lvbj52Mi4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICA8L1Byb3Bl cnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24p fCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1 ZTwvRGVidWdTeW1ib2xzPgorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPE91 dHB1dFBhdGg+YmluXERlYnVnPC9PdXRwdXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+REVC VUc8L0RlZmluZUNvbnN0YW50cz4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9y dD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0aW9uPgor ICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8 L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29sZVBhdXNlPmZhbHNlPC9Db25zb2xlUGF1c2U+CisgIDwv UHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJh dGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KKyAgICA8T3B0aW1pemU+ ZmFsc2U8L09wdGltaXplPgorICAgIDxPdXRwdXRQYXRoPmJpblxSZWxlYXNlPC9PdXRwdXRQYXRo PgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2 ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVz ZT4KKyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJf MCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8 SXRlbUdyb3VwPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENv bXBpbGUgSW5jbHVkZT0iUHJvcGVydGllc1xBc3NlbWJseUluZm8uY3MiIC8+CisgIDwvSXRlbUdy b3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgor ICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNs dWRlPSIuLlxMaWIyXExpYjIuY3Nwcm9qIj4KKyAgICAgIDxQcm9qZWN0PnszM0ZENjVDQi1GRjVD LTRCOEQtQkRCRS0xMzI2RDI2ODhCMTZ9PC9Qcm9qZWN0PgorICAgICAgPE5hbWU+TGliMjwvTmFt ZT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVk ZT0iLi5cTGliM1xMaWIzLmNzcHJvaiI+CisgICAgICA8UHJvamVjdD57RDRBMDhFNjgtOUFGQy00 RTZFLTkxMkItN0JBQ0U4MUI1ODZFfTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPkxpYjM8L05hbWU+ CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9 Ii4uXExpYjRcTGliNC5jc3Byb2oiPgorICAgICAgPFByb2plY3Q+e0VEMTFFRTZBLUMyRTYtNDkw OS05N0MwLTRDODE3NDQ1RDM0Qn08L1Byb2plY3Q+CisgICAgICA8TmFtZT5MaWI0PC9OYW1lPgor ICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVj dD0iJChNU0J1aWxkQmluUGF0aClcTWljcm9zb2Z0LkNTaGFycC50YXJnZXRzIiAvPgorPC9Qcm9q ZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCg0KUmVtb3ZlZDogbWFpbi90ZXN0cy90 ZXN0LXByb2plY3RzL3Rlc3QtYnVpbGQtY29uZmlncy9MaWIxL0xpYjEubWRwDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpAQCAtMSwyNiArMCwwIEBACi08UHJvamVjdCBuYW1lPSJMaWIxIiBmaWxldmVyc2lvbj0iMi4w IiBsYW5ndWFnZT0iQyMiIGNsci12ZXJzaW9uPSJOZXRfMl8wIiBjdHlwZT0iRG90TmV0UHJvamVj dCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8Q29uZmlndXJhdGlv biBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAg IDxPdXRwdXQgZGlyZWN0b3J5PSJiaW4vRGVidWciIGFzc2VtYmx5PSJMaWIxIiAvPgotICAgICAg PEJ1aWxkIGRlYnVnbW9kZT0iVHJ1ZSIgdGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1 dGlvbiBydW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iRmFsc2UiIHJ1bnRpbWU9 Ik1zTmV0IiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBj b21waWxlcj0iTWNzIiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJGYWxzZSIgdW5zYWZlY29k ZWFsbG93ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgZGVmaW5lc3lt Ym9scz0iREVCVUciIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0gICAgPC9D b25maWd1cmF0aW9uPgotICAgIDxDb25maWd1cmF0aW9uIG5hbWU9IlJlbGVhc2UiIGN0eXBlPSJE b3ROZXRQcm9qZWN0Q29uZmlndXJhdGlvbiI+Ci0gICAgICA8T3V0cHV0IGRpcmVjdG9yeT0iYmlu L1JlbGVhc2UiIGFzc2VtYmx5PSJMaWIxIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFs c2UiIHRhcmdldD0iTGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdz PSJUcnVlIiBjb25zb2xlcGF1c2U9IkZhbHNlIiBydW50aW1lPSJNc05ldCIgY2xyLXZlcnNpb249 Ik5ldF8yXzAiIC8+Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2Fybmlu Z2xldmVsPSI0IiBvcHRpbWl6ZT0iRmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2Vu ZXJhdGVvdmVyZmxvd2NoZWNrcz0iRmFsc2UiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRl cnMiIC8+Ci0gICAgPC9Db25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8Q29u dGVudHM+Ci0gICAgPEZpbGUgbmFtZT0iTXlDbGFzcy5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRh Y3Rpb249IkNvbXBpbGUiIC8+Ci0gICAgPEZpbGUgbmFtZT0iUHJvcGVydGllcy9Bc3NlbWJseUlu Zm8uY3MiIHN1YnR5cGU9IkNvZGUiIGJ1aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICA8L0NvbnRl bnRzPgotICA8UmVmZXJlbmNlcz4KLSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJHYWMiIGxv Y2FsY29weT0iVHJ1ZSIgcmVmdG89IlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5l dXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0gICAgPFByb2plY3RS ZWZlcmVuY2UgdHlwZT0iUHJvamVjdCIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iTGliMiIgLz4K LSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJQcm9qZWN0IiBsb2NhbGNvcHk9IlRydWUiIHJl ZnRvPSJMaWIzIiAvPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9IlByb2plY3QiIGxvY2Fs Y29weT0iVHJ1ZSIgcmVmdG89IkxpYjQiIC8+Ci0gIDwvUmVmZXJlbmNlcz4KLTwvUHJvamVjdD4N Cg0KQWRkZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy90ZXN0LWJ1aWxkLWNvbmZpZ3MvTGli Mi9MaWIyLmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAsMCArMSw0MyBAQAorPD94bWwgdmVyc2lv bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWls ZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29t L2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q29uZmln dXJhdGlvbiBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29u ZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAn JyAiPkFueUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1Y3RWZXJzaW9uPjEwLjAuMDwvUHJvZHVj dFZlcnNpb24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4wPC9TY2hlbWFWZXJzaW9uPgorICAgIDxQ cm9qZWN0R3VpZD57MzNGRDY1Q0ItRkY1Qy00QjhELUJEQkUtMTMyNkQyNjg4QjE2fTwvUHJvamVj dEd1aWQ+CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4KKyAgICA8QXNzZW1i bHlOYW1lPkxpYjI8L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52 Mi4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9w ZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAn RGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgor ICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVn PC9PdXRwdXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50 cz4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xl dmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlvbiBj bHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8 Q29uc29sZVBhdXNlPmZhbHNlPC9Db25zb2xlUGF1c2U+CisgIDwvUHJvcGVydHlHcm91cD4KKyAg PFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn ID09ICdSZWxlYXNlfEFueUNQVScgIj4KKyAgICA8T3B0aW1pemU+ZmFsc2U8L09wdGltaXplPgor ICAgIDxPdXRwdXRQYXRoPmJpblxSZWxlYXNlPC9PdXRwdXRQYXRoPgorICAgIDxFcnJvclJlcG9y dD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVs PgorICAgIDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVzZT4KKyAgICA8RXhlY3V0aW9u PgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAg ICA8L0V4ZWN1dGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxD b21waWxlIEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iUHJv cGVydGllc1xBc3NlbWJseUluZm8uY3MiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3Vw PgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAg PEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdl dHMiIC8+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW1vdmVk OiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdzL0xpYjIvTGliMi5t ZHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCkBAIC0xLDIzICswLDAgQEAKLTxQcm9qZWN0IG5hbWU9IkxpYjIiIGZp bGV2ZXJzaW9uPSIyLjAiIGxhbmd1YWdlPSJDIyIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIGN0eXBl PSJEb3ROZXRQcm9qZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAg IDxDb25maWd1cmF0aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3Vy YXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1ZyIgYXNzZW1ibHk9Ikxp YjIiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJUcnVlIiB0YXJnZXQ9IkxpYnJhcnkiIC8+ Ci0gICAgICA8RXhlY3V0aW9uIHJ1bndpdGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJG YWxzZSIgcnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgotICAgICAgPENv ZGVHZW5lcmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9IkZh bHNlIiB1bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRlb3ZlcmZsb3djaGVja3M9IkZh bHNlIiBkZWZpbmVzeW1ib2xzPSJERUJVRyIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVy cyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVs ZWFzZSIgY3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQg ZGlyZWN0b3J5PSJiaW4vUmVsZWFzZSIgYXNzZW1ibHk9IkxpYjIiIC8+Ci0gICAgICA8QnVpbGQg ZGVidWdtb2RlPSJGYWxzZSIgdGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1dGlvbiBy dW53aXRod2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iRmFsc2UiIHJ1bnRpbWU9Ik1zTmV0 IiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxl cj0iTWNzIiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJGYWxzZSIgdW5zYWZlY29kZWFsbG93 ZWQ9IkZhbHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgY3R5cGU9IkNTaGFycENv bXBpbGVyUGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJh dGlvbnM+Ci0gIDxDb250ZW50cz4KLSAgICA8RmlsZSBuYW1lPSJNeUNsYXNzLmNzIiBzdWJ0eXBl PSJDb2RlIiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgICA8RmlsZSBuYW1lPSJQcm9wZXJ0 aWVzL0Fzc2VtYmx5SW5mby5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUi IC8+Ci0gIDwvQ29udGVudHM+Ci0gIDxSZWZlcmVuY2VzPgotICAgIDxQcm9qZWN0UmVmZXJlbmNl IHR5cGU9IkdhYyIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iU3lzdGVtLCBWZXJzaW9uPTIuMC4w LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgLz4K LSAgPC9SZWZlcmVuY2VzPgotPC9Qcm9qZWN0Pg0KDQpBZGRlZDogbWFpbi90ZXN0cy90ZXN0LXBy b2plY3RzL3Rlc3QtYnVpbGQtY29uZmlncy9MaWIzL0xpYjMuY3Nwcm9qDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpA QCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgor PFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9 Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+Cisg IDxQcm9wZXJ0eUdyb3VwPgorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZp Z3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnK0V4dHJhPC9Db25maWd1cmF0aW9uPgorICAgIDxQbGF0 Zm9ybSBDb25kaXRpb249IiAnJChQbGF0Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4K KyAgICA8UHJvZHVjdFZlcnNpb24+MTAuMC4wPC9Qcm9kdWN0VmVyc2lvbj4KKyAgICA8U2NoZW1h VmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+CisgICAgPFByb2plY3RHdWlkPntENEEwOEU2OC05 QUZDLTRFNkUtOTEyQi03QkFDRTgxQjU4NkV9PC9Qcm9qZWN0R3VpZD4KKyAgICA8T3V0cHV0VHlw ZT5MaWJyYXJ5PC9PdXRwdXRUeXBlPgorICAgIDxBc3NlbWJseU5hbWU+TGliMzwvQXNzZW1ibHlO YW1lPgorICAgIDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnYyLjA8L1RhcmdldEZyYW1ld29ya1Zl cnNpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIg JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdEZWJ1ZytFeHRyYXxBbnlDUFUnICI+ CisgICAgPERlYnVnU3ltYm9scz50cnVlPC9EZWJ1Z1N5bWJvbHM+CisgICAgPE9wdGltaXplPmZh bHNlPC9PcHRpbWl6ZT4KKyAgICA8T3V0cHV0UGF0aD5iaW5cRGVidWdFeHRyYTwvT3V0cHV0UGF0 aD4KKyAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHPC9EZWZpbmVDb25zdGFudHM+CisgICAgPEVy cm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJu aW5nTGV2ZWw+CisgICAgPEV4ZWN1dGlvbj4KKyAgICAgIDxFeGVjdXRpb24gY2xyLXZlcnNpb249 Ik5ldF8yXzAiIHhtbG5zPSIiIC8+CisgICAgPC9FeGVjdXRpb24+CisgICAgPENvbnNvbGVQYXVz ZT5mYWxzZTwvQ29uc29sZVBhdXNlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdy b3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFz ZStFeHRyYXxBbnlDUFUnICI+CisgICAgPE9wdGltaXplPmZhbHNlPC9PcHRpbWl6ZT4KKyAgICA8 T3V0cHV0UGF0aD5iaW5cUmVsZWFzZUV4dHJhPC9PdXRwdXRQYXRoPgorICAgIDxFcnJvclJlcG9y dD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVs PgorICAgIDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVzZT4KKyAgICA8RXhlY3V0aW9u PgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAg ICA8L0V4ZWN1dGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxD b21waWxlIEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iUHJv cGVydGllc1xBc3NlbWJseUluZm8uY3MiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3Vw PgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAg PEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdl dHMiIC8+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW1vdmVk OiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdzL0xpYjMvTGliMy5t ZHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCkBAIC0xLDIzICswLDAgQEAKLTxQcm9qZWN0IG5hbWU9IkxpYjMiIGZp bGV2ZXJzaW9uPSIyLjAiIGxhbmd1YWdlPSJDIyIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIGN0eXBl PSJEb3ROZXRQcm9qZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAg IDxDb25maWd1cmF0aW9uIG5hbWU9IkRlYnVnK0V4dHJhIiBjdHlwZT0iRG90TmV0UHJvamVjdENv bmZpZ3VyYXRpb24iPgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1Z0V4dHJhIiBh c3NlbWJseT0iTGliMyIgLz4KLSAgICAgIDxCdWlsZCBkZWJ1Z21vZGU9IlRydWUiIHRhcmdldD0i TGlicmFyeSIgLz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBjb25z b2xlcGF1c2U9IkZhbHNlIiBydW50aW1lPSJNc05ldCIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+ Ci0gICAgICA8Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBv cHRpbWl6ZT0iRmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxv d2NoZWNrcz0iRmFsc2UiIGRlZmluZXN5bWJvbHM9IkRFQlVHIiBjdHlwZT0iQ1NoYXJwQ29tcGls ZXJQYXJhbWV0ZXJzIiAvPgotICAgIDwvQ29uZmlndXJhdGlvbj4KLSAgICA8Q29uZmlndXJhdGlv biBuYW1lPSJSZWxlYXNlK0V4dHJhIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24i PgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9SZWxlYXNlRXh0cmEiIGFzc2VtYmx5PSJM aWIzIiAvPgotICAgICAgPEJ1aWxkIGRlYnVnbW9kZT0iRmFsc2UiIHRhcmdldD0iTGlicmFyeSIg Lz4KLSAgICAgIDxFeGVjdXRpb24gcnVud2l0aHdhcm5pbmdzPSJUcnVlIiBjb25zb2xlcGF1c2U9 IkZhbHNlIiBydW50aW1lPSJNc05ldCIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIC8+Ci0gICAgICA8 Q29kZUdlbmVyYXRpb24gY29tcGlsZXI9Ik1jcyIgd2FybmluZ2xldmVsPSI0IiBvcHRpbWl6ZT0i RmFsc2UiIHVuc2FmZWNvZGVhbGxvd2VkPSJGYWxzZSIgZ2VuZXJhdGVvdmVyZmxvd2NoZWNrcz0i RmFsc2UiIGN0eXBlPSJDU2hhcnBDb21waWxlclBhcmFtZXRlcnMiIC8+Ci0gICAgPC9Db25maWd1 cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8Q29udGVudHM+Ci0gICAgPEZpbGUgbmFt ZT0iTXlDbGFzcy5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0g ICAgPEZpbGUgbmFtZT0iUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MiIHN1YnR5cGU9IkNvZGUi IGJ1aWxkYWN0aW9uPSJDb21waWxlIiAvPgotICA8L0NvbnRlbnRzPgotICA8UmVmZXJlbmNlcz4K LSAgICA8UHJvamVjdFJlZmVyZW5jZSB0eXBlPSJHYWMiIGxvY2FsY29weT0iVHJ1ZSIgcmVmdG89 IlN5c3RlbSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2Vu PWI3N2E1YzU2MTkzNGUwODkiIC8+Ci0gIDwvUmVmZXJlbmNlcz4KLTwvUHJvamVjdD4NCg0KQWRk ZWQ6IG1haW4vdGVzdHMvdGVzdC1wcm9qZWN0cy90ZXN0LWJ1aWxkLWNvbmZpZ3MvTGliNC9MaWI0 LmNzcHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KQEAgLTAsMCArMSw0MyBAQAorPD94bWwgdmVyc2lvbj0iMS4w IiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9v bHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVs b3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q29uZmlndXJhdGlv biBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJh dGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFu eUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1Y3RWZXJzaW9uPjEwLjAuMDwvUHJvZHVjdFZlcnNp b24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4wPC9TY2hlbWFWZXJzaW9uPgorICAgIDxQcm9qZWN0 R3VpZD57RUQxMUVFNkEtQzJFNi00OTA5LTk3QzAtNEM4MTc0NDVEMzRCfTwvUHJvamVjdEd1aWQ+ CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4KKyAgICA8QXNzZW1ibHlOYW1l PkxpYjQ8L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52Mi4wPC9U YXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdy b3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8 QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxP cHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVnPC9PdXRw dXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc8L0RlZmluZUNvbnN0YW50cz4KKyAg ICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8 L1dhcm5pbmdMZXZlbD4KKyAgICA8RXhlY3V0aW9uPgorICAgICAgPEV4ZWN1dGlvbiBjbHItdmVy c2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8Q29uc29s ZVBhdXNlPmZhbHNlPC9Db25zb2xlUGF1c2U+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3Bl cnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdS ZWxlYXNlfEFueUNQVScgIj4KKyAgICA8T3B0aW1pemU+ZmFsc2U8L09wdGltaXplPgorICAgIDxP dXRwdXRQYXRoPmJpblxSZWxlYXNlPC9PdXRwdXRQYXRoPgorICAgIDxFcnJvclJlcG9ydD5wcm9t cHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAg IDxDb25zb2xlUGF1c2U+ZmFsc2U8L0NvbnNvbGVQYXVzZT4KKyAgICA8RXhlY3V0aW9uPgorICAg ICAgPEV4ZWN1dGlvbiBjbHItdmVyc2lvbj0iTmV0XzJfMCIgeG1sbnM9IiIgLz4KKyAgICA8L0V4 ZWN1dGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDb21waWxl IEluY2x1ZGU9Ik15Q2xhc3MuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iUHJvcGVydGll c1xBc3NlbWJseUluZm8uY3MiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAg IDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9y dCBQcm9qZWN0PSIkKE1TQnVpbGRCaW5QYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+ Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KDQpSZW1vdmVkOiBtYWlu L3Rlc3RzL3Rlc3QtcHJvamVjdHMvdGVzdC1idWlsZC1jb25maWdzL0xpYjQvTGliNC5tZHANCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCkBAIC0xLDIzICswLDAgQEAKLTxQcm9qZWN0IG5hbWU9IkxpYjQiIGZpbGV2ZXJz aW9uPSIyLjAiIGxhbmd1YWdlPSJDIyIgY2xyLXZlcnNpb249Ik5ldF8yXzAiIGN0eXBlPSJEb3RO ZXRQcm9qZWN0Ij4KLSAgPENvbmZpZ3VyYXRpb25zIGFjdGl2ZT0iRGVidWciPgotICAgIDxDb25m aWd1cmF0aW9uIG5hbWU9IkRlYnVnIiBjdHlwZT0iRG90TmV0UHJvamVjdENvbmZpZ3VyYXRpb24i PgotICAgICAgPE91dHB1dCBkaXJlY3Rvcnk9ImJpbi9EZWJ1ZyIgYXNzZW1ibHk9IkxpYjQiIC8+ Ci0gICAgICA8QnVpbGQgZGVidWdtb2RlPSJUcnVlIiB0YXJnZXQ9IkxpYnJhcnkiIC8+Ci0gICAg ICA8RXhlY3V0aW9uIHJ1bndpdGh3YXJuaW5ncz0iVHJ1ZSIgY29uc29sZXBhdXNlPSJGYWxzZSIg cnVudGltZT0iTXNOZXQiIGNsci12ZXJzaW9uPSJOZXRfMl8wIiAvPgotICAgICAgPENvZGVHZW5l cmF0aW9uIGNvbXBpbGVyPSJNY3MiIHdhcm5pbmdsZXZlbD0iNCIgb3B0aW1pemU9IkZhbHNlIiB1 bnNhZmVjb2RlYWxsb3dlZD0iRmFsc2UiIGdlbmVyYXRlb3ZlcmZsb3djaGVja3M9IkZhbHNlIiBk ZWZpbmVzeW1ib2xzPSJERUJVRyIgY3R5cGU9IkNTaGFycENvbXBpbGVyUGFyYW1ldGVycyIgLz4K LSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIg Y3R5cGU9IkRvdE5ldFByb2plY3RDb25maWd1cmF0aW9uIj4KLSAgICAgIDxPdXRwdXQgZGlyZWN0 b3J5PSJiaW4vUmVsZWFzZSIgYXNzZW1ibHk9IkxpYjQiIC8+Ci0gICAgICA8QnVpbGQgZGVidWdt b2RlPSJGYWxzZSIgdGFyZ2V0PSJMaWJyYXJ5IiAvPgotICAgICAgPEV4ZWN1dGlvbiBydW53aXRo d2FybmluZ3M9IlRydWUiIGNvbnNvbGVwYXVzZT0iRmFsc2UiIHJ1bnRpbWU9Ik1zTmV0IiBjbHIt dmVyc2lvbj0iTmV0XzJfMCIgLz4KLSAgICAgIDxDb2RlR2VuZXJhdGlvbiBjb21waWxlcj0iTWNz IiB3YXJuaW5nbGV2ZWw9IjQiIG9wdGltaXplPSJGYWxzZSIgdW5zYWZlY29kZWFsbG93ZWQ9IkZh bHNlIiBnZW5lcmF0ZW92ZXJmbG93Y2hlY2tzPSJGYWxzZSIgY3R5cGU9IkNTaGFycENvbXBpbGVy UGFyYW1ldGVycyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+Ci0gIDwvQ29uZmlndXJhdGlvbnM+ Ci0gIDxDb250ZW50cz4KLSAgICA8RmlsZSBuYW1lPSJNeUNsYXNzLmNzIiBzdWJ0eXBlPSJDb2Rl IiBidWlsZGFjdGlvbj0iQ29tcGlsZSIgLz4KLSAgICA8RmlsZSBuYW1lPSJQcm9wZXJ0aWVzL0Fz c2VtYmx5SW5mby5jcyIgc3VidHlwZT0iQ29kZSIgYnVpbGRhY3Rpb249IkNvbXBpbGUiIC8+Ci0g IDwvQ29udGVudHM+Ci0gIDxSZWZlcmVuY2VzPgotICAgIDxQcm9qZWN0UmVmZXJlbmNlIHR5cGU9 IkdhYyIgbG9jYWxjb3B5PSJUcnVlIiByZWZ0bz0iU3lzdGVtLCBWZXJzaW9uPTIuMC4wLjAsIEN1 bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgLz4KLSAgPC9S ZWZlcmVuY2VzPgotPC9Qcm9qZWN0Pg0KDQpSZW1vdmVkOiBtYWluL3Rlc3RzL3Rlc3QtcHJvamVj dHMvdGVzdC1idWlsZC1jb25maWdzL3Rlc3QtYnVpbGQtY29uZmlncy5tZHMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CkBAIC0xLDI4ICswLDAgQEAKLTxDb21iaW5lIG5hbWU9InRlc3QtYnVpbGQtY29uZmlncyIgZmls ZXZlcnNpb249IjIuMCI+Ci0gIDxDb25maWd1cmF0aW9ucyBhY3RpdmU9IkRlYnVnIj4KLSAgICA8 Q29uZmlndXJhdGlvbiBuYW1lPSJEZWJ1ZyIgY3R5cGU9IkNvbWJpbmVDb25maWd1cmF0aW9uIj4K LSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iTGliMSIgY29uZmlndXJhdGlvbj0iRGVi dWciIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9IkxpYjIiIGNvbmZpZ3VyYXRp b249IlJlbGVhc2UiIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9IkxpYjMiIGNv bmZpZ3VyYXRpb249IkRlYnVnK0V4dHJhIiAvPgotICAgICAgPEVudHJ5IGJ1aWxkPSJUcnVlIiBu YW1lPSJMaWI0IiBjb25maWd1cmF0aW9uPSJEZWJ1ZyIgLz4KLSAgICA8L0NvbmZpZ3VyYXRpb24+ Ci0gICAgPENvbmZpZ3VyYXRpb24gbmFtZT0iUmVsZWFzZSIgY3R5cGU9IkNvbWJpbmVDb25maWd1 cmF0aW9uIj4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iTGliMSIgY29uZmlndXJh dGlvbj0iUmVsZWFzZSIgLz4KLSAgICAgIDxFbnRyeSBidWlsZD0iVHJ1ZSIgbmFtZT0iTGliMiIg Y29uZmlndXJhdGlvbj0iRGVidWciIC8+Ci0gICAgICA8RW50cnkgYnVpbGQ9IlRydWUiIG5hbWU9 IkxpYjMiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UrRXh0cmEiIC8+Ci0gICAgICA8RW50cnkgYnVp bGQ9IlRydWUiIG5hbWU9IkxpYjQiIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiIC8+Ci0gICAgPC9D b25maWd1cmF0aW9uPgotICA8L0NvbmZpZ3VyYXRpb25zPgotICA8U3RhcnRNb2RlIHN0YXJ0dXBl bnRyeT0iTGliMSIgc2luZ2xlPSJUcnVlIj4KLSAgICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRy eT0iTGliMSIgLz4KLSAgICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iTGliMiIgLz4KLSAg ICA8RXhlY3V0ZSB0eXBlPSJOb25lIiBlbnRyeT0iTGliMyIgLz4KLSAgICA8RXhlY3V0ZSB0eXBl PSJOb25lIiBlbnRyeT0iTGliNCIgLz4KLSAgPC9TdGFydE1vZGU+Ci0gIDxFbnRyaWVzPgotICAg IDxFbnRyeSBmaWxlbmFtZT0iTGliMS9MaWIxLm1kcCIgLz4KLSAgICA8RW50cnkgZmlsZW5hbWU9 IkxpYjIvTGliMi5tZHAiIC8+Ci0gICAgPEVudHJ5IGZpbGVuYW1lPSJMaWIzL0xpYjMubWRwIiAv PgotICAgIDxFbnRyeSBmaWxlbmFtZT0iTGliNC9MaWI0Lm1kcCIgLz4KLSAgPC9FbnRyaWVzPgot PC9Db21iaW5lPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCg0KQWRkZWQ6IG1haW4vdGVz dHMvdGVzdC1wcm9qZWN0cy90ZXN0LWJ1aWxkLWNvbmZpZ3MvdGVzdC1idWlsZC1jb25maWdzLnNs bg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KQEAgLTAsMCArMSwzOSBAQAor77u/CitNaWNyb3NvZnQgVmlzdWFsIFN0 dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4wMAorIyBWaXN1YWwgU3R1ZGlv IDIwMTAKK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Iikg PSAiTGliMSIsICJMaWIxXExpYjEuY3Nwcm9qIiwgIntEQUUwRjVEMC01MEIwLTQyMzgtOEZCQS00 NkRFNUY0RDYyODR9IgorRW5kUHJvamVjdAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1C RjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJMaWIyIiwgIkxpYjJcTGliMi5jc3Byb2oiLCAiezMzRkQ2 NUNCLUZGNUMtNEI4RC1CREJFLTEzMjZEMjY4OEIxNn0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7 RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkxpYjMiLCAiTGliM1xM aWIzLmNzcHJvaiIsICJ7RDRBMDhFNjgtOUFGQy00RTZFLTkxMkItN0JBQ0U4MUI1ODZFfSIKK0Vu ZFByb2plY3QKK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9 IikgPSAiTGliNCIsICJMaWI0XExpYjQuY3Nwcm9qIiwgIntFRDExRUU2QS1DMkU2LTQ5MDktOTdD MC00QzgxNzQ0NUQzNEJ9IgorRW5kUHJvamVjdAorR2xvYmFsCisJR2xvYmFsU2VjdGlvbihTb2x1 dGlvbkNvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcHJlU29sdXRpb24KKwkJRGVidWd8QW55IENQ VSA9IERlYnVnfEFueSBDUFUKKwkJUmVsZWFzZXxBbnkgQ1BVID0gUmVsZWFzZXxBbnkgQ1BVCisJ RW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0 Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXszM0ZENjVDQi1GRjVDLTRCOEQtQkRCRS0xMzI2RDI2 ODhCMTZ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXszM0ZE NjVDQi1GRjVDLTRCOEQtQkRCRS0xMzI2RDI2ODhCMTZ9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9 IFJlbGVhc2V8QW55IENQVQorCQl7MzNGRDY1Q0ItRkY1Qy00QjhELUJEQkUtMTMyNkQyNjg4QjE2 fS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7MzNGRDY1Q0It RkY1Qy00QjhELUJEQkUtMTMyNkQyNjg4QjE2fS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IERl YnVnfEFueSBDUFUKKwkJe0Q0QTA4RTY4LTlBRkMtNEU2RS05MTJCLTdCQUNFODFCNTg2RX0uRGVi dWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1ZytFeHRyYXxBbnkgQ1BVCisJCXtENEEwOEU2OC05 QUZDLTRFNkUtOTEyQi03QkFDRTgxQjU4NkV9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVn K0V4dHJhfEFueSBDUFUKKwkJe0Q0QTA4RTY4LTlBRkMtNEU2RS05MTJCLTdCQUNFODFCNTg2RX0u UmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2UrRXh0cmF8QW55IENQVQorCQl7RDRB MDhFNjgtOUFGQy00RTZFLTkxMkItN0JBQ0U4MUI1ODZFfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQu MCA9IFJlbGVhc2UrRXh0cmF8QW55IENQVQorCQl7REFFMEY1RDAtNTBCMC00MjM4LThGQkEtNDZE RTVGNEQ2Mjg0fS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJe0RB RTBGNUQwLTUwQjAtNDIzOC04RkJBLTQ2REU1RjRENjI4NH0uRGVidWd8QW55IENQVS5CdWlsZC4w ID0gRGVidWd8QW55IENQVQorCQl7REFFMEY1RDAtNTBCMC00MjM4LThGQkEtNDZERTVGNEQ2Mjg0 fS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtEQUUwRjVE MC01MEIwLTQyMzgtOEZCQS00NkRFNUY0RDYyODR9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0g UmVsZWFzZXxBbnkgQ1BVCisJCXtFRDExRUU2QS1DMkU2LTQ5MDktOTdDMC00QzgxNzQ0NUQzNEJ9 LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7RUQxMUVFNkEtQzJF Ni00OTA5LTk3QzAtNEM4MTc0NDVEMzRCfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xB bnkgQ1BVCisJCXtFRDExRUU2QS1DMkU2LTQ5MDktOTdDMC00QzgxNzQ0NUQzNEJ9LlJlbGVhc2V8 QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKKwkJe0VEMTFFRTZBLUMyRTYtNDkw OS05N0MwLTRDODE3NDQ1RDM0Qn0uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFu eSBDUFUKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihNb25vRGV2ZWxvcFByb3Bl cnRpZXMpID0gcHJlU29sdXRpb24KKwkJU3RhcnR1cEl0ZW0gPSBMaWIxXExpYjEuY3Nwcm9qCisJ CW5hbWUgPSB0ZXN0LWJ1aWxkLWNvbmZpZ3MKKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1vbm8tcGF0 Y2hlcyBtYWlsbGlzdCAgLSAgTW9uby1wYXRjaGVzQGxpc3RzLnhpbWlhbi5jb20KaHR0cDovL2xp c3RzLnhpbWlhbi5jb20vbWFpbG1hbi9saXN0aW5mby9tb25vLXBhdGNoZXMK