From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Matthew Harmsen To: git-commits@fedoraproject.org Subject: [rpms/jss] pqc: Bugzilla Bug #797351 - JSS - HSM token name was mistaken for manufacturer identifier Date: Tue, 28 Jul 2026 16:48:19 GMT Message-ID: <178525729922.1.8348310203815783785.rpms-jss-7094694f2434@fedoraproject.org> List-ID: X-Git-Repo: rpms/jss X-Git-Branch: pqc X-Git-Rev: 7094694f24340ad0aecbcf85fbcde182458bb709 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvanNzCiAgICAgICAgICAgIEJyYW5jaCA6IHBxYwogICAgICAgICAgICBDb21t aXQgOiA3MDk0Njk0ZjI0MzQwYWQwYWVjYmNmODVmYmNkZTE4MjQ1OGJiNzA5CiAgICAgICAgICAg IEF1dGhvciA6IE1hdHRoZXcgSGFybXNlbiA8bWhhcm1zZW5AcmVkaGF0LmNvbT4KICAgICAgICAg ICAgRGF0ZSAgIDogMjAxMi0wMy0yMVQyMTozODowMC0wNzowMAogICAgICAgICAgICBTdGF0cyAg OiArNzA5Ly02IGluIDUgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5m ZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2pzcy9jLzcwOTQ2OTRmMjQzNDBhZDBhZWNiY2Y4NWZiY2Rl MTgyNDU4YmI3MDk/YnJhbmNoPXBxYwoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBCdWd6 aWxsYSBCdWcgIzc5NzM1MSAtIEpTUyAtIEhTTSB0b2tlbiBuYW1lIHdhcyBtaXN0YWtlbiBmb3Ig bWFudWZhY3R1cmVyIGlkZW50aWZpZXIKQnVnemlsbGEgQnVnICM4MDQ4NDAgLSBbUkZFXSBFQ0Mg ZW5jcnlwdGlvbiBrZXlzIGNhbm5vdCBiZSBhcmNoaXZlZCBFQ0MgcGhhc2UyIHdvcmsgLSBzdXBw b3J0IGZvciBFQ0MgZW5jcnlwdGlvbiBrZXkgYXJjaGl2YWwgYW5kIHJlY292ZXJ5CkJ1Z3ppbGxh IEJ1ZyAjNzgzMDA3IC0gVW4tZGVwcmVjYXRlIHByZXZpb3VzbHkgZGVwcmVjYXRlZCBtZXRob2Rz IGluIEpTUyA0LjIuNiAuIC4gLgpEb2d0YWcgVFJBQyBUYXNrICMxMDkgKGh0dHBzOi8vZmVkb3Jh aG9zdGVkLm9yZy9wa2kvdGlja2V0LzEwOSkgLSBhZGQgYmVuaWduIEpOSSBqYXIgZmlsZSBzeW1i b2xpYyBsaW5rIGZyb20gSk5JIGxpYmRpciB0byBKTkkgamFyIGZpbGUKCi0tLQpkaWZmIC0tZ2l0 IGEvY2xvZyBiL2Nsb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNDE0ODAuLjAw MDAwMDAKLS0tIGEvY2xvZworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotQnVnemlsbGEg QnVnICM3MzcxMjIgLSBEUk06IGR1cmluZyBhcmNoaXZpbmcgYW5kIHJlY292ZXJpbmcsIHdyYXBw aW5nCi11bndyYXBwaW5nIGtleXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIHRva2VuCi1zdXBwb3J0 IGZvciBQS0NTNXYyOyBzdXBwb3J0IGZvciBzZWN1cmUgUEtDUzEyCi1CdWd6aWxsYSBCdWcgIzc0 NDc5NyAtIEtSQSBrZXkgcmVjb3ZlcnkgKHJldHJpZXZlIHBrY3MjMTIpIGZhaWxzIGFmdGVyIHRo ZQotaW4tcGxhY2UgdXBncmFkZSggQ1MgOC4wLT44LjEpCgpkaWZmIC0tZ2l0IGEvanNzLUVDQy1Q aGFzZTJLZXlBcmNoaXZhbFJlY292ZXJ5LnBhdGNoIGIvanNzLUVDQy1QaGFzZTJLZXlBcmNoaXZh bFJlY292ZXJ5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiY2My MzgKLS0tIC9kZXYvbnVsbAorKysgYi9qc3MtRUNDLVBoYXNlMktleUFyY2hpdmFsUmVjb3Zlcnku cGF0Y2gKQEAgLTAsMCArMSw0NTEgQEAKK2RpZmYgLXVwIGpzcy00LjIuNi9tb3ppbGxhL3NlY3Vy aXR5L2pzcy9idWlsZF9qYXZhLnBsLmNmdU9yaWcganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkv anNzL2J1aWxkX2phdmEucGwKKy0tLSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3MvYnVp bGRfamF2YS5wbC5jZnVPcmlnCTIwMTItMDMtMTkgMTc6NDg6NTcuNjE1MDQ4MDAwIC0wNzAwCisr KysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL2J1aWxkX2phdmEucGwJMjAxMi0wMy0x OSAxNzo0ODo1My4yNTAwNTIwMDAgLTA3MDAKK0BAIC0xOSw2ICsxOSw3IEBAIG9yZy5tb3ppbGxh Lmpzcy5jcnlwdG8uQWxnb3JpdGhtCisgb3JnLm1vemlsbGEuanNzLmNyeXB0by5FbmNyeXB0aW9u QWxnb3JpdGhtICAgICAgCisgb3JnLm1vemlsbGEuanNzLmNyeXB0by5QUUdQYXJhbXMgICAgIAor IG9yZy5tb3ppbGxhLmpzcy5jcnlwdG8uU2VjcmV0RGVjb2RlclJpbmcKKytvcmcubW96aWxsYS5q c3MuYXNuMS5BU04xVXRpbAorIG9yZy5tb3ppbGxhLmpzcy5wa2NzMTEuQ2VydFByb3h5ICAgICAg ICAKKyBvcmcubW96aWxsYS5qc3MucGtjczExLkNpcGhlckNvbnRleHRQcm94eSAKKyBvcmcubW96 aWxsYS5qc3MucGtjczExLlBLMTFNb2R1bGUgCitkaWZmIC11cCBqc3MtNC4yLjYvbW96aWxsYS9z ZWN1cml0eS9qc3MvbGliL2NvbmZpZy5tay5jZnVPcmlnIGpzcy00LjIuNi9tb3ppbGxhL3NlY3Vy aXR5L2pzcy9saWIvY29uZmlnLm1rCistLS0ganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNz L2xpYi9jb25maWcubWsuY2Z1T3JpZwkyMDEyLTAzLTE5IDE3OjQ4OjU3LjUzNTA0ODAwMCAtMDcw MAorKysrIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9saWIvY29uZmlnLm1rCTIwMTIt MDMtMTkgMTc6NDg6NTMuMjY0MDUyMDAwIC0wNzAwCitAQCAtNDQsNiArNDQsNyBAQCBTSEFSRURf TElCUkFSWV9ESVJTID0gXAorICAgICAuLi9vcmcvbW96aWxsYS9qc3MvU2VjcmV0RGVjb2RlclJp bmcgXAorICAgICAuLi9vcmcvbW96aWxsYS9qc3MgXAorICAgICAuLi9vcmcvbW96aWxsYS9qc3Mv cGtjczExIFwKKysgICAgLi4vb3JnL21vemlsbGEvanNzL2FzbjEgXAorICAgICAuLi9vcmcvbW96 aWxsYS9qc3Mvc3NsIFwKKyAgICAgLi4vb3JnL21vemlsbGEvanNzL3V0aWwgXAorICAgICAuLi9v cmcvbW96aWxsYS9qc3MvcHJvdmlkZXIvamF2YS9zZWN1cml0eSBcCitkaWZmIC11cCBqc3MtNC4y LjYvbW96aWxsYS9zZWN1cml0eS9qc3MvbGliL2pzcy5kZWYuY2Z1T3JpZyBqc3MtNC4yLjYvbW96 aWxsYS9zZWN1cml0eS9qc3MvbGliL2pzcy5kZWYKKy0tLSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1 cml0eS9qc3MvbGliL2pzcy5kZWYuY2Z1T3JpZwkyMDEyLTAzLTE5IDE3OjQ4OjU3LjM2MjA0ODAw MCAtMDcwMAorKysrIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9saWIvanNzLmRlZgky MDEyLTAzLTE5IDE3OjQ4OjUzLjI3ODA1MjAwMCAtMDcwMAorQEAgLTMzMyw2ICszMzMsNyBAQCBK YXZhX29yZ19tb3ppbGxhX2pzc19DcnlwdG9NYW5hZ2VyX09DU1BDCisgSmF2YV9vcmdfbW96aWxs YV9qc3NfQ3J5cHRvTWFuYWdlcl9zZXRPQ1NQVGltZW91dE5hdGl2ZTsKKyBKYXZhX29yZ19tb3pp bGxhX2pzc19DcnlwdG9NYW5hZ2VyX3ZlcmlmeUNlcnRpZmljYXRlTm93TmF0aXZlOworIEphdmFf b3JnX21vemlsbGFfanNzX0NyeXB0b01hbmFnZXJfdmVyaWZ5Q2VydGlmaWNhdGVOb3dDVU5hdGl2 ZTsKKytKYXZhX29yZ19tb3ppbGxhX2pzc19hc24xX0FTTjFVdGlsX2dldFRhZ0Rlc2NyaXB0aW9u QnlPaWQ7CisgOysgICAgbG9jYWw6CisgOysgICAgICAgKjsKKyA7K307CitkaWZmIC11cCBqc3Mt NC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3MvbGliL3J1bGVzLm1rLmNmdU9yaWcganNzLTQuMi42 L21vemlsbGEvc2VjdXJpdHkvanNzL2xpYi9ydWxlcy5taworLS0tIGpzcy00LjIuNi9tb3ppbGxh L3NlY3VyaXR5L2pzcy9saWIvcnVsZXMubWsuY2Z1T3JpZwkyMDEyLTAzLTE5IDE3OjQ4OjU3LjU3 NDA0OTAwMCAtMDcwMAorKysrIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9saWIvcnVs ZXMubWsJMjAxMi0wMy0xOSAxNzo0ODo1My4yODgwNTIwMDAgLTA3MDAKK0BAIC00MSw2ICs0MSw3 IEBAIHJlbGVhc2Vfc2FuaXRpemU6OgorIAktcm0gJChTT1VSQ0VfUkVMRUFTRV9QUkVGSVgpLyQo U09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChETExfUFJFRklYKWpzc2NyeXB0byQoRFlOQU1JQ19M SUJfRVhURU5TSU9OKSQoRFlOQU1JQ19MSUJfU1VGRklYKQorIAktcm0gJChTT1VSQ0VfUkVMRUFT RV9QUkVGSVgpLyQoU09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChETExfUFJFRklYKWpzc21hbmFn ZSQoRFlOQU1JQ19MSUJfRVhURU5TSU9OKSQoRFlOQU1JQ19MSUJfU1VGRklYKQorIAktcm0gJChT T1VSQ0VfUkVMRUFTRV9QUkVGSVgpLyQoU09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChETExfUFJF RklYKWpzc3BrY3MxMSQoRFlOQU1JQ19MSUJfRVhURU5TSU9OKSQoRFlOQU1JQ19MSUJfU1VGRklY KQorKwktcm0gJChTT1VSQ0VfUkVMRUFTRV9QUkVGSVgpLyQoU09VUkNFX1JFTEVBU0VfTElCX0RJ UikvJChETExfUFJFRklYKWpzc2FzbjEkKERZTkFNSUNfTElCX0VYVEVOU0lPTikkKERZTkFNSUNf TElCX1NVRkZJWCkKKyAJLXJtICQoU09VUkNFX1JFTEVBU0VfUFJFRklYKS8kKFNPVVJDRV9SRUxF QVNFX0xJQl9ESVIpLyQoRExMX1BSRUZJWClqc3Nwb2xpY3kkKERZTkFNSUNfTElCX0VYVEVOU0lP TikkKERZTkFNSUNfTElCX1NVRkZJWCkKKyAJLXJtICQoU09VUkNFX1JFTEVBU0VfUFJFRklYKS8k KFNPVVJDRV9SRUxFQVNFX0xJQl9ESVIpLyQoRExMX1BSRUZJWClqc3Nzc2wkKERZTkFNSUNfTElC X0VYVEVOU0lPTikkKERZTkFNSUNfTElCX1NVRkZJWCkKKyAJLXJtICQoU09VUkNFX1JFTEVBU0Vf UFJFRklYKS8kKFNPVVJDRV9SRUxFQVNFX0xJQl9ESVIpLyQoRExMX1BSRUZJWClqc3N1dGlsJChE WU5BTUlDX0xJQl9FWFRFTlNJT04pJChEWU5BTUlDX0xJQl9TVUZGSVgpCitAQCAtNDgsNiArNDks NyBAQCBpZmVxICgkKE9TX0FSQ0gpLFdJTk5UKQorIAktcm0gJChTT1VSQ0VfUkVMRUFTRV9QUkVG SVgpLyQoU09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChJTVBPUlRfTElCX1BSRUZJWClqc3Njcnlw dG8kKElNUE9SVF9MSUJfRVhURU5TSU9OKSQoSU1QT1JUX0xJQl9TVUZGSVgpCisgCS1ybSAkKFNP VVJDRV9SRUxFQVNFX1BSRUZJWCkvJChTT1VSQ0VfUkVMRUFTRV9MSUJfRElSKS8kKElNUE9SVF9M SUJfUFJFRklYKWpzc21hbmFnZSQoSU1QT1JUX0xJQl9FWFRFTlNJT04pJChJTVBPUlRfTElCX1NV RkZJWCkKKyAJLXJtICQoU09VUkNFX1JFTEVBU0VfUFJFRklYKS8kKFNPVVJDRV9SRUxFQVNFX0xJ Ql9ESVIpLyQoSU1QT1JUX0xJQl9QUkVGSVgpanNzcGtjczExJChJTVBPUlRfTElCX0VYVEVOU0lP TikkKElNUE9SVF9MSUJfU1VGRklYKQorKwktcm0gJChTT1VSQ0VfUkVMRUFTRV9QUkVGSVgpLyQo U09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChJTVBPUlRfTElCX1BSRUZJWClqc3Nhc24xJChJTVBP UlRfTElCX0VYVEVOU0lPTikkKElNUE9SVF9MSUJfU1VGRklYKQorIAktcm0gJChTT1VSQ0VfUkVM RUFTRV9QUkVGSVgpLyQoU09VUkNFX1JFTEVBU0VfTElCX0RJUikvJChJTVBPUlRfTElCX1BSRUZJ WClqc3Nwb2xpY3kkKElNUE9SVF9MSUJfRVhURU5TSU9OKSQoSU1QT1JUX0xJQl9TVUZGSVgpCisg CS1ybSAkKFNPVVJDRV9SRUxFQVNFX1BSRUZJWCkvJChTT1VSQ0VfUkVMRUFTRV9MSUJfRElSKS8k KElNUE9SVF9MSUJfUFJFRklYKWpzc3NzbCQoSU1QT1JUX0xJQl9FWFRFTlNJT04pJChJTVBPUlRf TElCX1NVRkZJWCkKKyAJLXJtICQoU09VUkNFX1JFTEVBU0VfUFJFRklYKS8kKFNPVVJDRV9SRUxF QVNFX0xJQl9ESVIpLyQoSU1QT1JUX0xJQl9QUkVGSVgpanNzdXRpbCQoSU1QT1JUX0xJQl9FWFRF TlNJT04pJChJTVBPUlRfTElCX1NVRkZJWCkKK2RpZmYgLXVwIGpzcy00LjIuNi9tb3ppbGxhL3Nl Y3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvYXNuMS9BU04xVXRpbC5jLmNmdU9yaWcganNzLTQu Mi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL0FTTjFVdGlsLmMK Ky0tLSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2FzbjEv QVNOMVV0aWwuYy5jZnVPcmlnCTIwMTItMDMtMTkgMTc6NDg6NTcuMzgxMDQ4MDAwIC0wNzAwCisr KysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL0FT TjFVdGlsLmMJMjAxMi0wMy0xOSAxNzo1MTozMi40MzM4OTMwMDAgLTA3MDAKK0BAIC0wLDAgKzEs OTcgQEAKKysvKiAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoqKioqCisrICogVmVyc2lvbjog TVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xCisrICoKKysgKiBUaGUgY29udGVudHMgb2YgdGhpcyBm aWxlIGFyZSBzdWJqZWN0IHRvIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24KKysg KiAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBp biBjb21wbGlhbmNlIHdpdGgKKysgKiB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5 IG9mIHRoZSBMaWNlbnNlIGF0CisrICogaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvCisrICoK KysgKiBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl ZCBvbiBhbiAiQVMgSVMiIGJhc2lzLAorKyAqIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZQorKyAqIGZvciB0aGUg c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQgbGltaXRhdGlvbnMgdW5kZXIg dGhlCisrICogTGljZW5zZS4KKysgKgorKyAqIFRoZSBPcmlnaW5hbCBDb2RlIGlzIHRoZSBOZXRz Y2FwZSBTZWN1cml0eSBTZXJ2aWNlcyBmb3IgSmF2YS4KKysgKgorKyAqIFRoZSBJbml0aWFsIERl dmVsb3BlciBvZiB0aGUgT3JpZ2luYWwgQ29kZSBpcworKyAqIE5ldHNjYXBlIENvbW11bmljYXRp b25zIENvcnBvcmF0aW9uLgorKyAqIFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhlIEluaXRpYWwgRGV2 ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMAorKyAqIHRoZSBJbml0aWFsIERldmVs b3Blci4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKysgKgorKyAqIENvbnRyaWJ1dG9yKHMpOgorKyAq CisrICogQWx0ZXJuYXRpdmVseSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBtYXkgYmUgdXNl ZCB1bmRlciB0aGUgdGVybXMgb2YKKysgKiBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIFZlcnNpb24gMiBvciBsYXRlciAodGhlICJHUEwiKSwgb3IKKysgKiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4xIG9yIGxhdGVyICh0aGUgIkxH UEwiKSwKKysgKiBpbiB3aGljaCBjYXNlIHRoZSBwcm92aXNpb25zIG9mIHRoZSBHUEwgb3IgdGhl IExHUEwgYXJlIGFwcGxpY2FibGUgaW5zdGVhZAorKyAqIG9mIHRob3NlIGFib3ZlLiBJZiB5b3Ug d2lzaCB0byBhbGxvdyB1c2Ugb2YgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBvbmx5CisrICog dW5kZXIgdGhlIHRlcm1zIG9mIGVpdGhlciB0aGUgR1BMIG9yIHRoZSBMR1BMLCBhbmQgbm90IHRv IGFsbG93IG90aGVycyB0bworKyAqIHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgTVBMLCBpbmRpY2F0ZSB5b3VyCisrICogZGVjaXNpb24gYnkgZGVs ZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3Rp Y2UKKysgKiBhbmQgb3RoZXIgcHJvdmlzaW9ucyByZXF1aXJlZCBieSB0aGUgR1BMIG9yIHRoZSBM R1BMLiBJZiB5b3UgZG8gbm90IGRlbGV0ZQorKyAqIHRoZSBwcm92aXNpb25zIGFib3ZlLCBhIHJl Y2lwaWVudCBtYXkgdXNlIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIKKysgKiB0aGUg dGVybXMgb2YgYW55IG9uZSBvZiB0aGUgTVBMLCB0aGUgR1BMIG9yIHRoZSBMR1BMLgorKyAqCisr ICogKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKiogKi8KKysjaW5jbHVkZSAiX2puaS9vcmdf bW96aWxsYV9qc3NfYXNuMV9BU04xVXRpbC5oIgorKyNpbmNsdWRlIDxwazExZnVuYy5oPgorKyNp bmNsdWRlIDxuc3ByLmg+CisrI2luY2x1ZGUgPHNlY2NvbW9uLmg+CisrI2luY2x1ZGUgPGtleS5o PgorKyNpbmNsdWRlIDxzZWNpdGVtLmg+CisrCisrI2luY2x1ZGUgPGpzc3V0aWwuaD4KKysjaW5j bHVkZSA8amF2YV9pZHMuaD4KKysjaW5jbHVkZSA8anNzX2V4Y2VwdGlvbnMuaD4KKysjaW5jbHVk ZSA8QWxnb3JpdGhtLmg+CisrCisrLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICoKKysgKiBKYXZhX29yZ19t b3ppbGxhX2pzc19hc24xX0FTTjFVdGlsX2dldFRhZ0Rlc2NyaXB0aW9uQnlPaWQKKysgKiAgICAg cmV0cmlldmVzIE9JRCBkZXNjcmlwdGlvbiBieSBOU1MncyBPSUQgVGFnIGlkZW50aWZpZXIKKysg KiAgICAgdGhlIE9JRCBieXRlIGFycmF5IGlzIGV4cGVjdGVkIHRvIGJlIHdpdGhvdXQgdGhlIE9J RCBUYWcgKDYpIGFuZCBzaXplCisrICogICAgICAgICh0b2dldGhlciAyIGJ5dGVzKQorKyAqLwor K0pOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwKKytKYXZhX29yZ19tb3ppbGxhX2pzc19hc24xX0FT TjFVdGlsX2dldFRhZ0Rlc2NyaXB0aW9uQnlPaWQoSk5JRW52ICplbnYsIGpvYmplY3QgdGhpcywg amJ5dGVBcnJheSBvaWRCQSkKKyt7CisrICAgIFNFQ0l0ZW0gKm9pZCA9IE5VTEw7CisrICAgIFNF Q09pZFRhZyBvaWRUYWcgPSBTRUNfT0lEX1VOS05PV047CisrICAgIGNoYXIgKm9pZERlc2MgPSBO VUxMOworKyAgICBqc3RyaW5nIGRlc2NyaXB0aW9uPSAiIjsKKysKKysgICAgaWYgKG9pZEJBID09 IE5VTEwpIHsKKysgICAgICAgIEpTU190aHJvd01zZyhlbnYsIElOVkFMSURfUEFSQU1FVEVSX0VY Q0VQVElPTiwKKysgICAgICAgICAgICAiSlNTIGdldFRhZ0Rlc2NyaXB0aW9uQnlPaWQ6IG9pZEJB IG51bGwiKTsKKysgICAgICAgIGdvdG8gZmluaXNoOworKyAgICB9IGVsc2UgeworKyAgICAgICAg LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICAg ICAgICAgKiBTZXR1cCB0aGUgcGFyYW1ldGVycworKyAgICAgICAgICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisrICAgICAgICBvaWQgPSBKU1NfQnl0 ZUFycmF5VG9TRUNJdGVtKGVudiwgb2lkQkEpOworKyAgICAgICAgaWYgKG9pZCA9PSBOVUxMKSB7 CisrICAgICAgICAgICAgSlNTX3Rocm93TXNnKGVudiwgSU5WQUxJRF9QQVJBTUVURVJfRVhDRVBU SU9OLAorKyAgICAgICAgICAgICAgICAiSlNTIGdldFRhZ0Rlc2NyaXB0aW9uQnlPaWQ6IEpTU19C eXRlQXJyYXlUb1NFQ0l0ZW0gZmFpbGVkIik7CisrICAgICAgICAgICAgZ290byBmaW5pc2g7Cisr ICAgICAgICB9CisrCisrICAgICAgICAvKgorKyAgICAgICAgICogU0VDT0lEX0ZpbmRPSURUYWco KSByZXR1cm5zIFNFQ19PSURfVU5LTk9XTiBpZiBubyBtYXRjaAorKyAgICAgICAgICovCisrICAg ICAgICBvaWRUYWcgPSBTRUNPSURfRmluZE9JRFRhZyhvaWQpOworKyAgICAgICAgaWYgKG9pZFRh ZyA9PSBTRUNfT0lEX1VOS05PV04pIHsKKysgICAgICAgICAgICBKU1NfdGhyb3dNc2coZW52LCBJ TlZBTElEX1BBUkFNRVRFUl9FWENFUFRJT04sCisrICAgICAgICAgICAgICAgICJKU1MgZ2V0VGFn RGVzY3JpcHRpb25CeU9pZDogT0lEIFVOS05PV04iKTsKKysgICAgICAgICAgICBnb3RvIGZpbmlz aDsKKysgICAgICAgIH0KKysKKysgICAgICAgIG9pZERlc2MgPSBTRUNPSURfRmluZE9JRFRhZ0Rl c2NyaXB0aW9uKG9pZFRhZyk7CisrICAgICAgICBpZiAob2lkRGVzYyA9PSBOVUxMKSB7CisrICAg ICAgICAgICAgb2lkRGVzYyA9ICIiOworKyAgICAgICAgfQorKyAgICAgICAgZGVzY3JpcHRpb24g PSAoKmVudiktPk5ld1N0cmluZ1VURihlbnYsIG9pZERlc2MpOworKyAgICB9CisrCisrZmluaXNo OgorKyAgICByZXR1cm4gZGVzY3JpcHRpb247CisrfQorZGlmZiAtdXAganNzLTQuMi42L21vemls bGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL0FTTjFVdGlsLmphdmEuY2Z1T3Jp ZyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2FzbjEvQVNO MVV0aWwuamF2YQorLS0tIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxs YS9qc3MvYXNuMS9BU04xVXRpbC5qYXZhLmNmdU9yaWcJMjAxMi0wMy0xOSAxNzo0ODo1Ny4xMTkw NDgwMDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemls bGEvanNzL2FzbjEvQVNOMVV0aWwuamF2YQkyMDEyLTAzLTE5IDE4OjAzOjIwLjc2NjE4NjAwMCAt MDcwMAorQEAgLTM2LDYgKzM2LDggQEAKKyBwYWNrYWdlIG9yZy5tb3ppbGxhLmpzcy5hc24xOwor IAorIGltcG9ydCBqYXZhLmlvLio7CisraW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisrCisgaW1w b3J0IG9yZy5tb3ppbGxhLmpzcy5hc24xLkludmFsaWRCRVJFeGNlcHRpb247CisgaW1wb3J0IG9y Zy5tb3ppbGxhLmpzcy51dGlsLkFzc2VydDsKKyAKK0BAIC0xMTQsNCArMTE2LDcxIEBAIHB1Ymxp YyBjbGFzcyBBU04xVXRpbCB7CisgICAgICAgICAgICAgbnVtUmVhZCArPSBucjsKKyAgICAgICAg IH0KKyAgICAgfQorKworKyAgICAvKioKKysgICAgICogcmV0dXJucyB0aGUgRUNDIGN1cnZlIGJ5 dGUgYXJyYXkgZ2l2ZW4gdGhlIFg1MDkgcHVibGljIGtleSBieXRlIGFycmF5CisrICAgICAqCisr ICAgICAqIEBwYXJhbSBYNTA5UHViS2V5Qnl0ZXMgYnl0ZSBhcnJheSBvZiBhbiBYNTA5UHViS2V5 CisrICAgICAqIEBwYXJhbSB3aXRoSGVhZGVyIHRlbGxzIGlmIHRoZSByZXR1cm4gYnllcyBzaG91 bGQgaW5jbHVsZGUgdGhlIHRhZyBhbmQgc2l6ZSBoZWFkZXIgb3Igbm90CisrICAgICAqLworKyAg ICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBnZXRFQ0N1cnZlQnl0ZXNCeVg1MDlQdWJsaWNLZXlCeXRl cyhieXRlW10gWDUwOVB1YktleUJ5dGVzLAorKyAgICAgICAgYm9vbGVhbiB3aXRoSGVhZGVyKQor KyAgICAgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgQXJyYXlJbmRleE91dE9m Qm91bmRzRXhjZXB0aW9uLAorKyAgICAgICAgICAgICAgIE51bGxQb2ludGVyRXhjZXB0aW9uCisr ICAgIHsKKysgICAgICAgIGlmICgoWDUwOVB1YktleUJ5dGVzID09IG51bGwpIHx8IChYNTA5UHVi S2V5Qnl0ZXMubGVuZ3RoID09IDApKSB7CisrICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxB cmd1bWVudEV4Y2VwdGlvbigiWDUwOVB1YktleUJ5dGVzIG51bGwiKTsKKysgICAgICAgIH0KKysK KysgICAgICAgIC8qIEVDIHB1YmxpYyBrZXkgT0lEIGNvbXBsZXRlIHdpdGggdGFnIGFuZCBzaXpl ICovCisrICAgICAgICBieXRlW10gRUNfUHViT0lEQnl0ZXNfZnVsbCA9CisrICAgICAgICAgICAg QVNOMVV0aWwuZW5jb2RlKE9CSkVDVF9JREVOVElGSUVSLkVDX1BVQktFWV9PSUQpOworKworKyAg ICAgICAgLyogRUMgcHVibGljIGtleSBPSUQgd2l0aG91dCB0YWcgYW5kIHNpemUgKi8KKysgICAg ICAgIGJ5dGVbXSBFQ19QdWJPSURCeXRlcyA9CisrICAgICAgICAgICAgQXJyYXlzLmNvcHlPZlJh bmdlKEVDX1B1Yk9JREJ5dGVzX2Z1bGwsIDIsIEVDX1B1Yk9JREJ5dGVzX2Z1bGwubGVuZ3RoKTsK KysKKysgICAgICAgIGludCBjdXJ2ZUJlZ2luSW5kZXggPSAwOworKyAgICAgICAgZm9yIChpbnQg aWR4ID0gMDsgaWR4PD0gWDUwOVB1YktleUJ5dGVzLmxlbmd0aDsgaWR4KyspIHsKKysgICAgICAg ICAgICBieXRlW10gdG1wID0gCisrICAgICAgICAgICAgICAgIEFycmF5cy5jb3B5T2ZSYW5nZShY NTA5UHViS2V5Qnl0ZXMsIGlkeCwgaWR4K0VDX1B1Yk9JREJ5dGVzLmxlbmd0aCk7CisrICAgICAg ICAgICAgaWYgKEFycmF5cy5lcXVhbHModG1wLCBFQ19QdWJPSURCeXRlcykpIHsKKysgICAgICAg ICAgICAgICAgY3VydmVCZWdpbkluZGV4ID0gaWR4KyBFQ19QdWJPSURCeXRlcy5sZW5ndGg7Cisr ICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysKKysg ICAgICAgIGludCBjdXJ2ZUJ5dGVBcnJheVNpemUgPSAoaW50KSBYNTA5UHViS2V5Qnl0ZXNbY3Vy dmVCZWdpbkluZGV4KyAxXTsKKysKKysgICAgICAgIGlmICh3aXRoSGVhZGVyKSB7CisrICAgICAg ICAgICAgLyogYWN0dWFsIGN1cnZlIHdpdGggdGFnIGFuZCBzaXplICovCisrICAgICAgICAgICAg Ynl0ZSBjdXJ2ZVtdID0gQXJyYXlzLmNvcHlPZlJhbmdlKFg1MDlQdWJLZXlCeXRlcywgY3VydmVC ZWdpbkluZGV4LCBjdXJ2ZUJlZ2luSW5kZXggKyBjdXJ2ZUJ5dGVBcnJheVNpemUgKyAyKTsKKysg ICAgICAgICAgICByZXR1cm4gY3VydmU7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAg IC8qIGFjdHVhbCBjdXJ2ZSB3aXRob3V0IHRhZyBhbmQgc2l6ZSAqLworKyAgICAgICAgICAgIGJ5 dGUgY3VydmVbXSA9IAorKyAgICAgICAgICAgICAgICBBcnJheXMuY29weU9mUmFuZ2UoWDUwOVB1 YktleUJ5dGVzLCBjdXJ2ZUJlZ2luSW5kZXggKyAyLAorKyAgICAgICAgICAgICAgICAgICAgY3Vy dmVCZWdpbkluZGV4ICsgMiArIGN1cnZlQnl0ZUFycmF5U2l6ZSk7CisrICAgICAgICAgICAgcmV0 dXJuIGN1cnZlOworKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8qKgorKyAgICAgKiBnZXRP SURkZXNjcmlwdGlvbigpIHJldHVybnMgYSB0ZXh0IGRlc2NyaXB0aW9uIG9mIHRoZSBPSUQKKysg ICAgICogICAgIGZyb20gT0lEIGJ5dGUgYXJyYXkKKysgICAgICogdGhlIE9JRCBieXRlIGFycmF5 IGlzIGV4cGVjdGVkIHRvIGJlIHdpdGhvdXQgdGhlIE9JRCBUYWcgKDYpIGFuZCBzaXplCisrICAg ICAqICAgICh0b2dldGhlciAyIGJ5dGVzKQorKyAgICAgKi8KKysgICAgcHVibGljIHN0YXRpYyBT dHJpbmcKKysgICAgZ2V0T0lEZGVzY3JpcHRpb24oYnl0ZVtdIG9pZEJBKSB7CisrICAgICAgICBy ZXR1cm4gZ2V0VGFnRGVzY3JpcHRpb25CeU9pZChvaWRCQSk7CisrICAgIH0KKysKKysgICAgLyoq CisrICAgICAqIGdldCBPSUQgZGVzY3JpcHRpb24gSk5JIG1ldGhvZAorKyAgICAgKi8KKysgICAg cHJpdmF0ZSBuYXRpdmUgc3RhdGljIFN0cmluZworKyAgICBnZXRUYWdEZXNjcmlwdGlvbkJ5T2lk KGJ5dGVbXSBvaWRCQSk7CisrCisrCisgfQorZGlmZiAtdXAganNzLTQuMi42L21vemlsbGEvc2Vj dXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL01ha2VmaWxlLmNmdU9yaWcganNzLTQuMi42 L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL01ha2VmaWxlCistLS0g anNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL01ha2Vm aWxlLmNmdU9yaWcJMjAxMi0wMy0xOSAxNzo0ODo1Ny40NjcwNDgwMDAgLTA3MDAKKysrKyBqc3Mt NC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2FzbjEvTWFrZWZpbGUJ MjAxMi0wMy0xOSAxNzo0ODo1My4zNDgwNTIwMDAgLTA3MDAKK0BAIC01Nyw3ICs1Nyw3IEBAIGlu Y2x1ZGUgJChDT1JFX0RFUFRIKS8kKE1PRFVMRSkvY29uZmlnL2MKKyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor ICMgKDQpIEluY2x1ZGUgImxvY2FsIiBwbGF0Zm9ybS1kZXBlbmRlbnQgYXNzaWdubWVudHMgKE9Q VElPTkFMKS4gICAgICAjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0jaW5jbHVkZSBjb25maWcubWsKKytp bmNsdWRlIGNvbmZpZy5taworIAorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC11cCBqc3MtNC4y LjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2FzbjEvT0JKRUNUX0lERU5U SUZJRVIuamF2YS5jZnVPcmlnIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96 aWxsYS9qc3MvYXNuMS9PQkpFQ1RfSURFTlRJRklFUi5qYXZhCistLS0ganNzLTQuMi42L21vemls bGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL09CSkVDVF9JREVOVElGSUVSLmph dmEuY2Z1T3JpZwkyMDEyLTAzLTE5IDE3OjQ4OjU3LjE3ODA0ODAwMCAtMDcwMAorKysrIGpzcy00 LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvYXNuMS9PQkpFQ1RfSURF TlRJRklFUi5qYXZhCTIwMTItMDMtMTkgMTc6NDg6NTMuMzY0MDUyMDAwIC0wNzAwCitAQCAtNTIs NiArNTIsMTIgQEAgcHVibGljIGNsYXNzIE9CSkVDVF9JREVOVElGSUVSIGltcGxlbWVudAorICAg ICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworIAorICAgICAvKioKKysgICAgICogVGhlIE9JRCBzcGFjZSBmb3Ig RUMKKysgICAgICovCisrICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT0JKRUNUX0lERU5USUZJRVIg RUNfUFVCS0VZX09JRCA9CisrICAgICAgICBuZXcgT0JKRUNUX0lERU5USUZJRVIoIG5ldyBsb25n W117MSwgMiwgODQwLCAxMDA0NSwgMiwgMX0gKTsKKysKKysgICAgLyoqCisgICAgICAqIFRoZSBP SUQgc3BhY2UgZm9yIFJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuCisgICAgICAqLworICAgICBwdWJs aWMgc3RhdGljIGZpbmFsIE9CSkVDVF9JREVOVElGSUVSIFJTQURTSSA9CitkaWZmIC11cCBqc3Mt NC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2FzbjEvY29uZmlnLm1r LmNmdU9yaWcganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9h c24xL2NvbmZpZy5taworLS0tIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96 aWxsYS9qc3MvYXNuMS9jb25maWcubWsuY2Z1T3JpZwkyMDEyLTAzLTE5IDE3OjQ4OjU3LjM5ODA0 ODAwMCAtMDcwMAorKysrIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxs YS9qc3MvYXNuMS9jb25maWcubWsJMjAxMi0wMy0xOSAxNzo0ODo1My4zODEwNTIwMDAgLTA3MDAK K0BAIC0wLDAgKzEsNDEgQEAKKysjIAorKyMgKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioq KgorKyMgVmVyc2lvbjogTVBMIDEuMS9HUEwgMi4wL0xHUEwgMi4xCisrIworKyMgVGhlIGNvbnRl bnRzIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgTW96aWxsYSBQdWJsaWMgTGljZW5z ZSBWZXJzaW9uCisrIyAxLjEgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKKysjIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9i dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKysjIGh0dHA6Ly93d3cubW96aWxsYS5vcmcv TVBMLworKyMKKysjIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp c3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgYmFzaXMsCisrIyBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UKKysjIGZv ciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHJpZ2h0cyBhbmQgbGltaXRhdGlvbnMg dW5kZXIgdGhlCisrIyBMaWNlbnNlLgorKyMKKysjIFRoZSBPcmlnaW5hbCBDb2RlIGlzIHRoZSBO ZXRzY2FwZSBTZWN1cml0eSBTZXJ2aWNlcyBmb3IgSmF2YS4KKysjCisrIyBUaGUgSW5pdGlhbCBE ZXZlbG9wZXIgb2YgdGhlIE9yaWdpbmFsIENvZGUgaXMKKysjIE5ldHNjYXBlIENvbW11bmljYXRp b25zIENvcnBvcmF0aW9uLgorKyMgUG9ydGlvbnMgY3JlYXRlZCBieSB0aGUgSW5pdGlhbCBEZXZl bG9wZXIgYXJlIENvcHlyaWdodCAoQykgMTk5OC0yMDAwCisrIyB0aGUgSW5pdGlhbCBEZXZlbG9w ZXIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisrIworKyMgQ29udHJpYnV0b3Iocyk6CisrIworKyMg QWx0ZXJuYXRpdmVseSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBtYXkgYmUgdXNlZCB1bmRl ciB0aGUgdGVybXMgb2YKKysjIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug VmVyc2lvbiAyIG9yIGxhdGVyICh0aGUgIkdQTCIpLCBvcgorKyMgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMSBvciBsYXRlciAodGhlICJMR1BMIiksCisr IyBpbiB3aGljaCBjYXNlIHRoZSBwcm92aXNpb25zIG9mIHRoZSBHUEwgb3IgdGhlIExHUEwgYXJl IGFwcGxpY2FibGUgaW5zdGVhZAorKyMgb2YgdGhvc2UgYWJvdmUuIElmIHlvdSB3aXNoIHRvIGFs bG93IHVzZSBvZiB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIG9ubHkKKysjIHVuZGVyIHRoZSB0 ZXJtcyBvZiBlaXRoZXIgdGhlIEdQTCBvciB0aGUgTEdQTCwgYW5kIG5vdCB0byBhbGxvdyBvdGhl cnMgdG8KKysjIHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgTVBMLCBpbmRpY2F0ZSB5b3VyCisrIyBkZWNpc2lvbiBieSBkZWxldGluZyB0aGUgcHJv dmlzaW9ucyBhYm92ZSBhbmQgcmVwbGFjZSB0aGVtIHdpdGggdGhlIG5vdGljZQorKyMgYW5kIG90 aGVyIHByb3Zpc2lvbnMgcmVxdWlyZWQgYnkgdGhlIEdQTCBvciB0aGUgTEdQTC4gSWYgeW91IGRv IG5vdCBkZWxldGUKKysjIHRoZSBwcm92aXNpb25zIGFib3ZlLCBhIHJlY2lwaWVudCBtYXkgdXNl IHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIKKysjIHRoZSB0ZXJtcyBvZiBhbnkgb25l IG9mIHRoZSBNUEwsIHRoZSBHUEwgb3IgdGhlIExHUEwuCisrIworKyMgKioqKiogRU5EIExJQ0VO U0UgQkxPQ0sgKioqKioKKytUQVJHRVRTPSQoTElCUkFSWSkKKytTSEFSRURfTElCUkFSWT0KKytJ TVBPUlRfTElCUkFSWT0KKysKKytOT19NRF9SRUxFQVNFID0gMQorZGlmZiAtdXAganNzLTQuMi42 L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24xL21hbmlmZXN0Lm1uLmNm dU9yaWcganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9hc24x L21hbmlmZXN0Lm1uCistLS0ganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3pp bGxhL2pzcy9hc24xL21hbmlmZXN0Lm1uLmNmdU9yaWcJMjAxMi0wMy0xOSAxNzo0ODo1Ny40MzQw NDgwMDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemls bGEvanNzL2FzbjEvbWFuaWZlc3QubW4JMjAxMi0wMy0xOSAxNzo0ODo1My40MDEwNTIwMDAgLTA3 MDAKK0BAIC00MSw2ICs0MSw4IEBAIE1PRFVMRSA9IGpzcworICAKKyBOU19VU0VfSkRLID0gMQor IAorK1JFUVVJUkVTID0gICAgICBuc3ByMjAgbnNzCisrCisgUEFDS0FHRSA9ICAgICAgIG9yZy9t b3ppbGxhL2pzcy9hc24xCisgCisgQ0xBU1NFUyA9IAkJCQkJCQkJCQkJXAorQEAgLTExMiwzICsx MTQsOSBAQCBKU1JDUyA9IAkJCQkJCQkJCQkJXAorICAgICAgICAgICAgIFVUQ1RpbWUuamF2YSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgVVRGOFN0cmluZy5qYXZh ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAJCQkkKE5VTEwpCisrCisrQ1NSQ1MgPSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAgIEFTTjFVdGlsLmMgICAgIFwK KysgICAgICAgICAgICAkKE5VTEwpCisrCisrTElCUkFSWV9OQU1FID0ganNzYXNuMQorZGlmZiAt dXAganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9tYW5pZmVz dC5tbi5jZnVPcmlnIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9q c3MvbWFuaWZlc3QubW4KKy0tLSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21v emlsbGEvanNzL21hbmlmZXN0Lm1uLmNmdU9yaWcJMjAxMi0wMy0xOSAxNzo0ODo1Ny41MDIwNDgw MDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEv anNzL21hbmlmZXN0Lm1uCTIwMTItMDMtMTkgMTc6NDg6NTMuNDEzMDUyMDAwIC0wNzAwCitAQCAt NDgsNiArNDgsNyBAQCBESVJTID0JXAorIAljcnlwdG8JXAorICAgICBTZWNyZXREZWNvZGVyUmlu ZyBcCisgCXBrY3MxMQlcCisrICAgIGFzbjEgICBcCisgICAgIHNzbCAgICAgXAorICAgICBwcm92 aWRlciBcCisgCSQoTlVMTCkKK2RpZmYgLXVwIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pz cy9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFFQ1B1YmxpY0tleS5qYXZhLmNmdU9yaWcganNz LTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUVD UHVibGljS2V5LmphdmEKKy0tLSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21v emlsbGEvanNzL3BrY3MxMS9QSzExRUNQdWJsaWNLZXkuamF2YS5jZnVPcmlnCTIwMTItMDMtMTkg MTc6NDg6NTcuMjM4MDQ4MDAwIC0wNzAwCisrKysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkv anNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUVDUHVibGljS2V5LmphdmEJMjAxMi0wMy0x OSAxNzo0ODo1My40MzIwNTIwMDAgLTA3MDAKK0BAIC02MSwxNSArNjEsMjkgQEAgcHVibGljIGZp bmFsIGNsYXNzIFBLMTFFQ1B1YmxpY0tleSBleHRlbgorIC8vICAgICAgfQorIC8vICAgIH0KKyAv LworLS8vICAgIHB1YmxpYyBCaWdJbnRlZ2VyIGdldFcoKSB7CistLy8gICAgICB0cnkgeworLS8v ICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoIGdldFdCeXRlQXJyYXkoKSApOworLS8vICAg ICAgfSBjYXRjaChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworLS8vICAgICAgICBBc3NlcnQu bm90UmVhY2hlZCgiVW5hYmxlIHRvIGRlY29kZSBEU0EgcHVibGljIHZhbHVlIik7CistLy8gICAg ICAgIHJldHVybiBudWxsOworLS8vICAgICAgfQorLS8vICAgIH0KKy0vLworLS8vICAgIHByaXZh dGUgbmF0aXZlIGJ5dGVbXSBnZXRDdXJ2ZUJ5dGVBcnJheSgpOworLS8vICAgIHByaXZhdGUgbmF0 aXZlIGJ5dGVbXSBnZXRXQnl0ZUFycmF5KCk7CisrCisrICAgIHB1YmxpYyBCaWdJbnRlZ2VyIGdl dEN1cnZlKCkgeworKyAgICAgIHRyeSB7CisrICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIo IGdldEN1cnZlQnl0ZUFycmF5KCkgKTsKKysgICAgICB9IGNhdGNoKE51bWJlckZvcm1hdEV4Y2Vw dGlvbiBlKSB7CisrICAgICAgIEFzc2VydC5ub3RSZWFjaGVkKCJVbmFibGUgdG8gZGVjb2RlIEVD IGN1cnZlIik7CisrICAgICAgIHJldHVybiBudWxsOworKyAgICAgIH0KKysgICAgfQorKworKyAg ICBwdWJsaWMgYnl0ZVtdIGdldEN1cnZlQkEoKSB7CisrICAgICAgICByZXR1cm4gZ2V0Q3VydmVC eXRlQXJyYXkoKTsKKysgICAgfQorKworKyAgICBwdWJsaWMgQmlnSW50ZWdlciBnZXRXKCkgewor KyAgICAgIHRyeSB7CisrICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoIGdldFdCeXRlQXJy YXkoKSApOworKyAgICAgIH0gY2F0Y2goTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKysgICAg ICAgIEFzc2VydC5ub3RSZWFjaGVkKCJVbmFibGUgdG8gZGVjb2RlIEVDIHB1YmxpYyB2YWx1ZSIp OworKyAgICAgICAgcmV0dXJuIG51bGw7CisrICAgICAgfQorKyAgICB9CisrCisrICAgIHByaXZh dGUgbmF0aXZlIGJ5dGVbXSBnZXRDdXJ2ZUJ5dGVBcnJheSgpOworKyAgICBwcml2YXRlIG5hdGl2 ZSBieXRlW10gZ2V0V0J5dGVBcnJheSgpOworIH0KK2RpZmYgLXVwIGpzcy00LjIuNi9tb3ppbGxh L3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFLZXlXcmFwcGVyLmMuY2Z1 T3JpZyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL3BrY3Mx MS9QSzExS2V5V3JhcHBlci5jCistLS0ganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29y Zy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVdyYXBwZXIuYy5jZnVPcmlnCTIwMTItMDMtMTkg MTc6NDg6NTcuMjcyMDQ4MDAwIC0wNzAwCisrKysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkv anNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVdyYXBwZXIuYwkyMDEyLTAzLTE5IDE3 OjQ4OjUzLjQ1MDA1MjAwMCAtMDcwMAorQEAgLTQ1MCw2ICs0NTAsMTQgQEAgSmF2YV9vcmdfbW96 aWxsYV9qc3NfcGtjczExX1BLMTFLZXlXcmFwcAorICAgICAgICAgICAgIG51bUF0dHJpYnMgPSA0 OworICAgICAgICAgfQorIAlicmVhazsKKysgICAgY2FzZSBDS0tfRUM6CisrICAgICAgICBudW1B dHRyaWJzID0gMTsKKysgICAgICAgIGF0dHJpYnNbMF0gPSBDS0FfU0lHTjsKKysgICAgICAgIGlm IChpc0V4dHJhY3RhYmxlKSB7CisrICAgICAgICAgICAgYXR0cmlic1sxXSA9IENLQV9FWFRSQUNU QUJMRTsKKysgICAgICAgICAgICBudW1BdHRyaWJzID0gMjsKKysgICAgICAgIH0KKysJYnJlYWs7 CisgICAgIGNhc2UgQ0tLX0RTQToKKyAgICAgICAgIGF0dHJpYnNbMF0gPSBDS0FfU0lHTjsKKyAg ICAgICAgIG51bUF0dHJpYnMgPSAxOworQEAgLTQ2MCwxMSArNDY4LDYgQEAgSmF2YV9vcmdfbW96 aWxsYV9qc3NfcGtjczExX1BLMTFLZXlXcmFwcAorICAgICAgICAgYXR0cmlic1swXSA9IENLQV9E RVJJVkU7CisgICAgICAgICBudW1BdHRyaWJzID0gMTsKKyAJYnJlYWs7CistICAgIGNhc2UgQ0tL X0VDOgorLSAgICAgICAgYXR0cmlic1swXSA9IENLQV9TSUdOOworLSAgICAgICAgYXR0cmlic1sx XSA9IENLQV9ERVJJVkU7CistICAgICAgICBudW1BdHRyaWJzID0gMjsKKy0JYnJlYWs7CisgICAg IGRlZmF1bHQ6CisgICAgICAgICAvKiB1bmtub3duIGtleSB0eXBlICovCisgICAgICAgICBQUl9B U1NFUlQoUFJfRkFMU0UpOworQEAgLTQ3OSw3ICs0ODIsNyBAQCBKYXZhX29yZ19tb3ppbGxhX2pz c19wa2NzMTFfUEsxMUtleVdyYXBwCisgICAgICAgICAgICAgICAgIGF0dHJpYnMsIG51bUF0dHJp YnMsIE5VTEwgLyp3aW5jeCovKTsKKyAgICAgaWYoIHByaXZrID09IE5VTEwgKSB7CisgICAgICAg ICBjaGFyIGVyclsyNTZdID0gezB9OworLSAgICAgICAgUFJfc25wcmludGYoZXJyLCAyNTYsICJL ZXkgVW53cmFwIGZhaWxlZCBvbiB0b2tlbjolZCIsIFBSX0dldEVycm9yKCkpOworKyAgICAgICAg UFJfc25wcmludGYoZXJyLCAyNTYsICJLZXkgVW53cmFwIGZhaWxlZCBvbiB0b2tlbjplcnJvcj0l ZCwga2V5VHlwZT0lZCIsIFBSX0dldEVycm9yKCksIGtleVR5cGUpOworICAgICAgICAgSlNTX3Ro cm93TXNnKGVudiwgVE9LRU5fRVhDRVBUSU9OLCBlcnIpOworICAgICAgICAgZ290byBmaW5pc2g7 CisgICAgIH0KK2RpZmYgLXVwIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96 aWxsYS9qc3MvcGtjczExL1BLMTFLZXlXcmFwcGVyLmphdmEuY2Z1T3JpZyBqc3MtNC4yLjYvbW96 aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExS2V5V3JhcHBlci5q YXZhCistLS0ganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9w a2NzMTEvUEsxMUtleVdyYXBwZXIuamF2YS5jZnVPcmlnCTIwMTItMDMtMTkgMTc6NDg6NTcuMjk4 MDQ4MDAwIC0wNzAwCisrKysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3pp bGxhL2pzcy9wa2NzMTEvUEsxMUtleVdyYXBwZXIuamF2YQkyMDEyLTAzLTE5IDE3OjQ4OjUzLjQ3 MTA1MjAwMCAtMDcwMAorQEAgLTQ1OSwxMyArNDU5LDE5IEBAIGZpbmFsIGNsYXNzIFBLMTFLZXlX cmFwcGVyIGltcGxlbWVudHMgS2UKKyAgICAgICAgIGlmKCB0eXBlID09IFByaXZhdGVLZXkuUlNB ICkgeworICAgICAgICAgICAgIGlmKCAhKHB1YmxpY0tleSBpbnN0YW5jZW9mIFJTQVB1YmxpY0tl eSkpIHsKKyAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXlFeGNlcHRpb24oIlR5 cGUgb2YgcHVibGljIGtleSBkb2VzIG5vdCAiKworLSAgICAgICAgICAgICAgICAgICAgIm1hdGNo IHR5cGUgb2YgcHJpdmF0ZSBrZXkiKTsKKysgICAgICAgICAgICAgICAgICAgICJtYXRjaCB0eXBl IG9mIHByaXZhdGUga2V5IHdoaWNoIGlzIFJTQSIpOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICByZXR1cm4gKChSU0FQdWJsaWNLZXkpcHVibGljS2V5KS5nZXRNb2R1bHVzKCkudG9CeXRl QXJyYXkoKTsKKysgICAgICAgIH0gZWxzZSBpZih0eXBlID09IFByaXZhdGVLZXkuRUMpIHsKKysg ICAgICAgICAgICBpZiggIShwdWJsaWNLZXkgaW5zdGFuY2VvZiBQSzExRUNQdWJsaWNLZXkpICkg eworKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEtleUV4Y2VwdGlvbigiVHlwZSBv ZiBwdWJsaWMga2V5IGRvZXMgbm90ICIrCisrICAgICAgICAgICAgICAgICAgICAibWF0Y2ggdHlw ZSBvZiBwcml2YXRlIGtleSB3aGljaCBpcyBFQyIpOworKyAgICAgICAgICAgIH0KKysgICAgICAg ICAgICByZXR1cm4gKChQSzExRUNQdWJsaWNLZXkpcHVibGljS2V5KS5nZXRXKCkudG9CeXRlQXJy YXkoKTsKKyAgICAgICAgIH0gZWxzZSBpZih0eXBlID09IFByaXZhdGVLZXkuRFNBKSB7CisgICAg ICAgICAgICAgaWYoICEocHVibGljS2V5IGluc3RhbmNlb2YgRFNBUHVibGljS2V5KSApIHsKKyAg ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXlFeGNlcHRpb24oIlR5cGUgb2YgcHVi bGljIGtleSBkb2VzIG5vdCAiKworLSAgICAgICAgICAgICAgICAgICAgIm1hdGNoIHR5cGUgb2Yg cHJpdmF0ZSBrZXkiKTsKKysgICAgICAgICAgICAgICAgICAgICJtYXRjaCB0eXBlIG9mIHByaXZh dGUga2V5IHdoaWNoIGlzIERTQSIpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1 cm4gKChEU0FQdWJsaWNLZXkpcHVibGljS2V5KS5nZXRZKCkudG9CeXRlQXJyYXkoKTsKKyAgICAg ICAgIH0gZWxzZSB7CgpkaWZmIC0tZ2l0IGEvanNzLUhTTS1tYW51ZmFjdHVyZXJJRC5wYXRjaCBi L2pzcy1IU00tbWFudWZhY3R1cmVySUQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmE3YmRmZgotLS0gL2Rldi9udWxsCisrKyBiL2pzcy1IU00tbWFudWZhY3R1cmVy SUQucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorZGlmZiAtdXAganNzLTQuMi42L21vemlsbGEvc2Vj dXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVBhaXJHZW5lcmF0b3IuYy5j ZnUganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEv UEsxMUtleVBhaXJHZW5lcmF0b3IuYworLS0tIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pz cy9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFLZXlQYWlyR2VuZXJhdG9yLmMuY2Z1CTIwMTEt MTEtMTAgMTc6MTg6MDIuNzA2NDIxMDAwIC0wODAwCisrKysganNzLTQuMi42L21vemlsbGEvc2Vj dXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVBhaXJHZW5lcmF0b3IuYwky MDExLTExLTEwIDE3OjE4OjIzLjM3MDQ0MjAwMCAtMDgwMAorQEAgLTE5NSw3ICsxOTUsOCBAQCBK U1NfUEsxMV9nZW5lcmF0ZUtleVBhaXJXaXRoT3BGbGFncyhKTklFCisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIFBSX0dldEVycm9yVGV4dChlcnJCdWYpOworICAgICAgICAgfQorLSAgICAg ICAgbXNnQnVmID0gUFJfc21wcmludGYoIktleXBhaXIgR2VuZXJhdGlvbiBmYWlsZWQgb24gdG9r ZW46ICVzIiwKKysgICAgICAgIG1zZ0J1ZiA9IFBSX3NtcHJpbnRmKCJLZXlwYWlyIEdlbmVyYXRp b24gZmFpbGVkIG9uIHRva2VuIHdpdGggZXJyb3I6ICVkIDogJXMiLAorKyAgICAgICAgICAgIFBS X0dldEVycm9yKCksCisgICAgICAgICAgICAgZXJyTGVuZ3RoPjA/IGVyckJ1ZiA6ICIiKTsKKyAg ICAgICAgIGlmKGVyckxlbmd0aD4wKSB7CisgICAgICAgICAgICAgUFJfRnJlZShlcnJCdWYpOwor ZGlmZiAtdXAganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9w a2NzMTEvUEsxMUtleVdyYXBwZXIuYy5jZnUganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNz L29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVdyYXBwZXIuYworLS0tIGpzcy00LjIuNi9t b3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFLZXlXcmFwcGVy LmMuY2Z1CTIwMTEtMTEtMTAgMTc6MTg6MTAuNzY3NDI5MDAwIC0wODAwCisrKysganNzLTQuMi42 L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleVdyYXBw ZXIuYwkyMDExLTExLTEwIDE3OjUyOjM0LjcwMzQ5MTAwMCAtMDgwMAorQEAgLTMzNCwzMiArMzM0 LDM2IEBAIEphdmFfb3JnX21vemlsbGFfanNzX3BrY3MxMV9QSzExS2V5V3JhcHAKKyAgICAgUFJC b29sIGlzRXh0cmFjdGFibGUgPSBQUl9GQUxTRTsKKyAKKyAgICAgLyogc3BlY2lhbCBjYXNlIG5l dGhzbSBhbmQgbHVuYXNhKi8KKy0gICAgQ0tfVVRGOENIQVIgbmV0aHNtTGFiZWxbNF0gPSB7J04n LCdIJywnUycsJ00nfTsKKy0gICAgQ0tfVVRGOENIQVIgbHVuYXNhTGFiZWxbNF0gPSB7J2wnLCd1 JywnbicsJ2EnfTsKKysgICAgY29uc3QgaW50IG51bU1hbnVmYWN0dXJlcklEY2hhcnMgPSA3Owor KyAgICBDS19VVEY4Q0hBUiBuZXRoc21NYW51ZmFjdHVyZXJJRFtdID0geyduJywnQycsJ2knLCdw JywnaCcsJ2UnLCdyJ307CisrICAgIENLX1VURjhDSEFSIGx1bmFzYU1hbnVmYWN0dXJlcklEW10g PSB7J1MnLCdhJywnZicsJ2UnLCduJywnZScsJ3QnfTsKKyAgICAgUFJCb29sIGlzTmV0aHNtID0g UFJfVFJVRTsKKyAgICAgUFJCb29sIGlzTHVuYXNhID0gUFJfVFJVRTsKKyAKKysgICAgdG9rZW5J bmZvLm1hbnVmYWN0dXJlcklEWzBdID0gMDsKKysKKyAgICAgaWYoIEpTU19QSzExX2dldFRva2Vu U2xvdFB0cihlbnYsIHRva2VuT2JqLCAmc2xvdCkgIT0gUFJfU1VDQ0VTUykgeworICAgICAgICAg LyogZXhjZXB0aW9uIHdhcyB0aHJvd24gKi8KKyAgICAgICAgIGdvdG8gZmluaXNoOworICAgICB9 CisgCistICAgIGlmICggUEsxMV9HZXRUb2tlbkluZm8oc2xvdCwgJnRva2VuSW5mbykgPT0gUFJf U1VDQ0VTUykgeworKyAgICBpZiAoIChQSzExX0dldFRva2VuSW5mbyhzbG90LCAmdG9rZW5JbmZv KSA9PSBQUl9TVUNDRVNTKSAmJgorKyAgICAgICAodG9rZW5JbmZvLm1hbnVmYWN0dXJlcklEWzBd ICE9IDApKSB7CisgICAgICAgICBpbnQgaXggPSAwOworLSAgICAgICAgZm9yKGl4PTA7IGl4IDwg NDsgaXgrKykgeworLSAgICAgICAgICAgIGlmICh0b2tlbkluZm8ubGFiZWxbaXhdICE9IG5ldGhz bUxhYmVsW2l4XSkgeworKworKyAgICAgICAgZm9yKGl4PTA7IGl4IDwgbnVtTWFudWZhY3R1cmVy SURjaGFyczsgaXgrKykgeworKyAgICAgICAgICAgIGlmICh0b2tlbkluZm8ubWFudWZhY3R1cmVy SURbaXhdICE9IG5ldGhzbU1hbnVmYWN0dXJlcklEW2l4XSkgeworICAgICAgICAgICAgICAgIGlz TmV0aHNtID0gUFJfRkFMU0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg fQorICAgICAgICAgfQorLSAgICAgICAgaXggPSAwOworLSAgICAgICAgZm9yKGl4PTA7IGl4IDwg NDsgaXgrKykgeworLSAgICAgICAgICAgIGlmICh0b2tlbkluZm8ubGFiZWxbaXhdICE9IGx1bmFz YUxhYmVsW2l4XSkgeworKworKyAgICAgICAgZm9yKGl4PTA7IGl4IDwgbnVtTWFudWZhY3R1cmVy SURjaGFyczsgaXgrKykgeworKyAgICAgICAgICAgIGlmICh0b2tlbkluZm8ubWFudWZhY3R1cmVy SURbaXhdICE9IGx1bmFzYU1hbnVmYWN0dXJlcklEW2l4XSkgeworICAgICAgICAgICAgICAgIGlz THVuYXNhID0gUFJfRkFMU0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg fQorICAgICAgICAgfQorLQorICAgICB9IGVsc2UgeworICAgICAgICAgaXNOZXRoc20gPSBQUl9G QUxTRTsKKyAgICAgICAgIGlzTHVuYXNhID0gUFJfRkFMU0U7CgpkaWZmIC0tZ2l0IGEvanNzLXVu ZG8tSkNBLWRlcHJlY2F0aW9ucy5wYXRjaCBiL2pzcy11bmRvLUpDQS1kZXByZWNhdGlvbnMucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxYzUxYQotLS0gL2Rldi9u dWxsCisrKyBiL2pzcy11bmRvLUpDQS1kZXByZWNhdGlvbnMucGF0Y2gKQEAgLTAsMCArMSwxNzEg QEAKK2RpZmYgLXJ1cE4ganNzLTQuMi42Lm9yaWcvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21v emlsbGEvanNzL2NyeXB0by9DaXBoZXIuamF2YSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9q c3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9DaXBoZXIuamF2YQorLS0tIGpzcy00LjIuNi5vcmln L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vQ2lwaGVyLmphdmEJ MjAxMi0wMy0yMCAxNjozMDoyNi41NzAzMzgwMDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxs YS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9DaXBoZXIuamF2YQkyMDEyLTAz LTIwIDE2OjM5OjU5LjA4MzE5NjAwMCAtMDcwMAorQEAgLTQ5LDcgKzQ5LDYgQEAgaW1wb3J0IG9y Zy5tb3ppbGxhLmpzcy51dGlsLkFzc2VydDsKKyAgKiBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNh bGwgPGNvZGU+dXBkYXRlPC9jb2RlPiBpZiBhbGwgb2YgdGhlIGRhdGEgaXMKKyAgKiBhdmFpbGFi bGUgYXQgb25jZS4gIEluIHRoaXMgY2FzZSwgYWxsIG9mIHRoZSBpbnB1dCBjYW4gYmUgcHJvY2Vz c2VkIHdpdGggb25lCisgICogY2FsbCB0byA8Y29kZT5kb0ZpbmFsPC9jb2RlPi4KKy0gKiBAZGVw cmVjYXRlZCBVc2UgdGhlIEpDQSBpbnRlcmZhY2UgaW5zdGVhZCAoe0BsaW5rIGphdmF4LmNyeXB0 by5DaXBoZXJ9KQorICAqLworIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBDaXBoZXIgeworIAorZGlm ZiAtcnVwTiBqc3MtNC4yLjYub3JpZy9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9q c3MvY3J5cHRvL0NyeXB0b1Rva2VuLmphdmEganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNz L29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vQ3J5cHRvVG9rZW4uamF2YQorLS0tIGpzcy00LjIuNi5v cmlnL21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vQ3J5cHRvVG9r ZW4uamF2YQkyMDEyLTAzLTIwIDE2OjMwOjI2LjU4NzMzODAwMCAtMDcwMAorKysrIGpzcy00LjIu Ni9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0NyeXB0b1Rva2Vu LmphdmEJMjAxMi0wMy0yMCAxNjo0MTo1NC43OTI5NjQwMDAgLTA3MDAKK0BAIC02MCw3ICs2MCw2 IEBAIHB1YmxpYyBpbnRlcmZhY2UgQ3J5cHRvVG9rZW4geworICAgICAgKiBAcGFyYW0gYWxnb3Jp dGhtIFRoZSBhbGdvcml0aG0gdXNlZCBmb3IgdGhlIHNpZ25pbmcvdmVyaWZpY2F0aW9uLgorICAg ICAgKiBAZXhjZXB0aW9uIGphdmEuc2VjdXJpdHkuTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uIElm IHRoZSBnaXZlbgorICAgICAgKiAgICAgIGFsZ29yaXRobSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRo aXMgcHJvdmlkZXIuCistICAgICAqIEBkZXByZWNhdGVkIFVzZSB0aGUgSkNBIGludGVyZmFjZSBp bnN0ZWFkICh7QGxpbmsgamF2YS5zZWN1cml0eS5TaWduYXR1cmV9KQorICAgICAgKi8KKyAgICAg cHVibGljIGFic3RyYWN0IG9yZy5tb3ppbGxhLmpzcy5jcnlwdG8uU2lnbmF0dXJlCisgICAgIGdl dFNpZ25hdHVyZUNvbnRleHQoU2lnbmF0dXJlQWxnb3JpdGhtIGFsZ29yaXRobSkKK0BAIC03Myw3 ICs3Miw2IEBAIHB1YmxpYyBpbnRlcmZhY2UgQ3J5cHRvVG9rZW4geworICAgICAgKiBAcGFyYW0g YWxnb3JpdGhtIFRoZSBhbGdvcml0aG0gdXNlZCBmb3IgZGlnZXN0aW5nLgorICAgICAgKiBAZXhj ZXB0aW9uIGphdmEuc2VjdXJpdHkuTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uIElmIHRoaXMgcHJv dmlkZXIKKyAgICAgICogIGRvZXMgbm90IHN1cHBvcnQgdGhlIGdpdmVuIGFsZ29yaXRobS4KKy0g ICAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBKQ0EgaW50ZXJmYWNlIGluc3RlYWQgKHtAbGluayBq YXZhLnNlY3VyaXR5Lk1lc3NhZ2VEaWdlc3R9KQorICAgICAgKi8KKyAgICAgcHVibGljIGFic3Ry YWN0IEpTU01lc3NhZ2VEaWdlc3QKKyAgICAgZ2V0RGlnZXN0Q29udGV4dChEaWdlc3RBbGdvcml0 aG0gYWxnb3JpdGhtKQorQEAgLTg5LDE1ICs4NywxMSBAQCBwdWJsaWMgaW50ZXJmYWNlIENyeXB0 b1Rva2VuIHsKKyAgICAgICogQHBhcmFtIGFsZ29yaXRobSBUaGUgYWxnb3JpdGhtIHVzZWQgZm9y IGVuY3J5cHRpb24vZGVjcnlwdGlvbi4KKyAgICAgICogQGV4Y2VwdGlvbiBqYXZhLnNlY3VyaXR5 Lk5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbiBJZiB0aGlzIHByb3ZpZGVyCisgICAgICAqICAgICAg ZG9lcyBub3Qgc3VwcG9ydCB0aGUgZ2l2ZW4gYWxnb3JpdGhtLgorLSAgICAgKiBAZGVwcmVjYXRl ZCBVc2UgdGhlIEpDQSBpbnRlcmZhY2UgaW5zdGVhZCAoe0BsaW5rIGphdmF4LmNyeXB0by5DaXBo ZXJ9KQorICAgICAgKi8KKyAgICAgcHVibGljIGFic3RyYWN0IENpcGhlcgorICAgICBnZXRDaXBo ZXJDb250ZXh0KEVuY3J5cHRpb25BbGdvcml0aG0gYWxnb3JpdGhtKQorICAgICAgICAgdGhyb3dz IGphdmEuc2VjdXJpdHkuTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uLCBUb2tlbkV4Y2VwdGlvbjsK KyAKKy0gICAgLyoqCistICAgICAqIEBkZXByZWNhdGVkIFVzZSB0aGUgSkNBIGludGVyZmFjZSBp bnN0ZWFkICh7QGxpbmsgamF2YXguY3J5cHRvLkNpcGhlcn0pCistICAgICAqLworICAgICBwdWJs aWMgYWJzdHJhY3QgS2V5V3JhcHBlcgorICAgICBnZXRLZXlXcmFwcGVyKEtleVdyYXBBbGdvcml0 aG0gYWxnb3JpdGhtKQorICAgICAgICAgdGhyb3dzIGphdmEuc2VjdXJpdHkuTm9TdWNoQWxnb3Jp dGhtRXhjZXB0aW9uLCBUb2tlbkV4Y2VwdGlvbjsKK0BAIC0xMjMsNyArMTE3LDYgQEAgcHVibGlj IGludGVyZmFjZSBDcnlwdG9Ub2tlbiB7CisgICAgICAqIEBwYXJhbSBhbGdvcml0aG0gVGhlIGFs Z29yaXRobSB0aGF0IHRoZSBrZXlzIHdpbGwgYmUgdXNlZCB3aXRoLgorICAgICAgKiBAZXhjZXB0 aW9uIGphdmEuc2VjdXJpdHkuTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uIElmIHRoaXMgdG9rZW4g ZG9lcyBub3QKKyAgICAgICogICAgICBzdXBwb3J0IHRoZSBnaXZlbiBhbGdvcml0aG0uCistICAg ICAqIEBkZXByZWNhdGVkIFVzZSB0aGUgSkNBIGludGVyZmFjZSBpbnN0ZWFkICh7QGxpbmsgamF2 YXguY3J5cHRvLktleUdlbmVyYXRvcn0pCisgICAgICAqLworICAgICBwdWJsaWMgYWJzdHJhY3Qg S2V5R2VuZXJhdG9yCisgICAgIGdldEtleUdlbmVyYXRvcihLZXlHZW5BbGdvcml0aG0gYWxnb3Jp dGhtKQorQEAgLTEzNiw3ICsxMjksNiBAQCBwdWJsaWMgaW50ZXJmYWNlIENyeXB0b1Rva2VuIHsK KyAgICAgICogICAgICBjYW5ub3QgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGN1cnJlbnQgdG9rZW4u CisgICAgICAqIEBleGNlcHRpb24gSW52YWxpZEtleUV4Y2VwdGlvbiBJZiB0aGUgb3duaW5nIHRv a2VuIGNhbm5vdCBwcm9jZXNzCisgICAgICAqICAgICAgdGhlIGtleSB0byBiZSBjbG9uZWQuCist ICAgICAqIEBkZXByZWNhdGVkIFVzZSB0aGUgSkNBIGludGVyZmFjZSBpbnN0ZWFkICh7QGxpbmsg amF2YXguY3J5cHRvLlNlY3JldEtleUZhY3Rvcnl9KQorICAgICAgKi8KKyAgICAgcHVibGljIFN5 bW1ldHJpY0tleSBjbG9uZUtleShTeW1tZXRyaWNLZXkga2V5KQorICAgICAgICAgdGhyb3dzIFN5 bW1ldHJpY0tleS5Ob3RFeHRyYWN0YWJsZUV4Y2VwdGlvbiwKK0BAIC0xNTEsNyArMTQzLDYgQEAg cHVibGljIGludGVyZmFjZSBDcnlwdG9Ub2tlbiB7CisgICAgICAqICAgICAgRFNBLCBFQywgZXRj LikKKyAgICAgICogQGV4Y2VwdGlvbiBqYXZhLnNlY3VyaXR5Lk5vU3VjaEFsZ29yaXRobUV4Y2Vw dGlvbiBJZiB0aGlzIHRva2VuIGRvZXMKKyAgICAgICogICAgICBub3Qgc3VwcG9ydCB0aGUgZ2l2 ZW4gYWxnb3JpdGhtLgorLSAgICAgKiBAZGVwcmVjYXRlZCBVc2UgdGhlIEpDQSBpbnRlcmZhY2Ug aW5zdGVhZCAoe0BsaW5rIGphdmEuc2VjdXJpdHkuS2V5UGFpckdlbmVyYXRvcn0pCisgICAgICAq LworICAgICBwdWJsaWMgYWJzdHJhY3QgS2V5UGFpckdlbmVyYXRvcgorICAgICBnZXRLZXlQYWly R2VuZXJhdG9yKEtleVBhaXJBbGdvcml0aG0gYWxnb3JpdGhtKQorZGlmZiAtcnVwTiBqc3MtNC4y LjYub3JpZy9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0pTU01l c3NhZ2VEaWdlc3QuamF2YSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemls bGEvanNzL2NyeXB0by9KU1NNZXNzYWdlRGlnZXN0LmphdmEKKy0tLSBqc3MtNC4yLjYub3JpZy9t b3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0pTU01lc3NhZ2VEaWdl c3QuamF2YQkyMDEyLTAzLTIwIDE2OjMwOjI2LjU5NTMzODAwMCAtMDcwMAorKysrIGpzcy00LjIu Ni9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0pTU01lc3NhZ2VE aWdlc3QuamF2YQkyMDEyLTAzLTIwIDE2OjM4OjMxLjk4NzM3MDAwMCAtMDcwMAorQEAgLTQxLDcg KzQxLDYgQEAgaW1wb3J0IGphdmEuc2VjdXJpdHkuSW52YWxpZEtleUV4Y2VwdGlvbgorIAorIC8q KgorICAqIEEgY2xhc3MgZm9yIHBlcmZvcm1pbmcgbWVzc2FnZSBkaWdlc3RpbmcgKGhhc2hpbmcp IGFuZCBNQUMgb3BlcmF0aW9ucy4KKy0gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIEpDQSBpbnRlcmZh Y2UgaW5zdGVhZCAoe0BsaW5rIGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdH0pCisgICovCisg cHVibGljIGFic3RyYWN0IGNsYXNzIEpTU01lc3NhZ2VEaWdlc3QgeworIAorZGlmZiAtcnVwTiBq c3MtNC4yLjYub3JpZy9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRv L0pTU1NlY3VyZVJhbmRvbS5qYXZhIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcv bW96aWxsYS9qc3MvY3J5cHRvL0pTU1NlY3VyZVJhbmRvbS5qYXZhCistLS0ganNzLTQuMi42Lm9y aWcvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9KU1NTZWN1cmVS YW5kb20uamF2YQkyMDA0LTA0LTI1IDA4OjAyOjIxLjAwMDAwMDAwMCAtMDcwMAorKysrIGpzcy00 LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0pTU1NlY3Vy ZVJhbmRvbS5qYXZhCTIwMTItMDMtMjAgMTY6Mzk6MDIuOTM4MzA4MDAwIC0wNzAwCitAQCAtMzgs NyArMzgsNiBAQCBwYWNrYWdlIG9yZy5tb3ppbGxhLmpzcy5jcnlwdG87CisgCisgLyoqCisgICog QW4gaW50ZXJmYWNlIGZvciBzZWN1cmUgcmFuZG9tIG51bWJlcnMuCistICogQGRlcHJlY2F0ZWQg VXNlIHRoZSBKQ0EgaW50ZXJmYWNlIGluc3RlYWQgKHtAbGluayBqYXZhLnNlY3VyaXR5LlNlY3Vy ZVJhbmRvbX0pCisgICovCisgcHVibGljIGludGVyZmFjZSBKU1NTZWN1cmVSYW5kb20geworIAor ZGlmZiAtcnVwTiBqc3MtNC4yLjYub3JpZy9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxs YS9qc3MvY3J5cHRvL0tleUdlbmVyYXRvci5qYXZhIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5 L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0tleUdlbmVyYXRvci5qYXZhCistLS0ganNzLTQu Mi42Lm9yaWcvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9LZXlH ZW5lcmF0b3IuamF2YQkyMDA1LTExLTE0IDE0OjE1OjA2LjAwMDAwMDAwMCAtMDgwMAorKysrIGpz cy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0tleUdl bmVyYXRvci5qYXZhCTIwMTItMDMtMjAgMTY6Mzk6MTkuNjg3Mjc0MDAwIC0wNzAwCitAQCAtNDMs NyArNDMsNiBAQCBpbXBvcnQgamF2YS5pby5DaGFyQ29udmVyc2lvbkV4Y2VwdGlvbjsKKyAKKyAv KioKKyAgKiBHZW5lcmF0ZXMgc3ltbWV0cmljIGtleXMgZm9yIGVuY3J5cHRpb24gYW5kIGRlY3J5 cHRpb24uCistICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBKQ0EgaW50ZXJmYWNlIGluc3RlYWQgKHtA bGluayBqYXZheC5jcnlwdG8uS2V5R2VuZXJhdG9yfSkKKyAgKi8KKyBwdWJsaWMgaW50ZXJmYWNl IEtleUdlbmVyYXRvciB7CisgCitkaWZmIC1ydXBOIGpzcy00LjIuNi5vcmlnL21vemlsbGEvc2Vj dXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vS2V5UGFpckdlbmVyYXRvci5qYXZhIGpz cy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvY3J5cHRvL0tleVBh aXJHZW5lcmF0b3IuamF2YQorLS0tIGpzcy00LjIuNi5vcmlnL21vemlsbGEvc2VjdXJpdHkvanNz L29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vS2V5UGFpckdlbmVyYXRvci5qYXZhCTIwMTItMDMtMjAg MTY6MzA6MjUuNzU1MzQwMDAwIC0wNzAwCisrKysganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkv anNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vS2V5UGFpckdlbmVyYXRvci5qYXZhCTIwMTItMDMt MjAgMTY6Mzg6MDMuNjM1NDI2MDAwIC0wNzAwCitAQCAtNDksNyArNDksNiBAQCBpbXBvcnQgamF2 YS5zZWN1cml0eS5zcGVjLkFsZ29yaXRobVBhcmFtCisgICogPGNvZGU+a2V5Z2VuT25JbnRlcm5h bFRva2VuPC9jb2RlPiB0byBmaW5kIG91dCBpZiB0aGlzIGlzIGhhcHBlbmluZy4KKyAgKgorICAq IEBzZWUgb3JnLm1vemlsbGEuanNzLmNyeXB0by5DcnlwdG9Ub2tlbiNnZXRLZXlQYWlyR2VuZXJh dG9yCistICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBKQ0EgaW50ZXJmYWNlIGluc3RlYWQgKHtAbGlu ayBqYXZhLnNlY3VyaXR5LktleVBhaXJHZW5lcmF0b3J9KQorICAqLworIHB1YmxpYyBjbGFzcyBL ZXlQYWlyR2VuZXJhdG9yIHsKKyAKK2RpZmYgLXJ1cE4ganNzLTQuMi42Lm9yaWcvbW96aWxsYS9z ZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9LZXlXcmFwcGVyLmphdmEganNzLTQu Mi42L21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vS2V5V3JhcHBl ci5qYXZhCistLS0ganNzLTQuMi42Lm9yaWcvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemls bGEvanNzL2NyeXB0by9LZXlXcmFwcGVyLmphdmEJMjAwNC0wNC0yNSAwODowMjoyMS4wMDAwMDAw MDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEv anNzL2NyeXB0by9LZXlXcmFwcGVyLmphdmEJMjAxMi0wMy0yMCAxNjozOTo0MC41NTEyMzIwMDAg LTA3MDAKK0BAIC00MCw5ICs0MCw2IEBAIGltcG9ydCBqYXZhLnNlY3VyaXR5LkludmFsaWRBbGdv cml0aG1QYXIKKyBpbXBvcnQgamF2YS5zZWN1cml0eS5QdWJsaWNLZXk7CisgaW1wb3J0IGphdmEu c2VjdXJpdHkuSW52YWxpZEtleUV4Y2VwdGlvbjsKKyAKKy0vKioKKy0gKiBAZGVwcmVjYXRlZCBV c2UgdGhlIEpDQSBpbnRlcmZhY2UgaW5zdGVhZCAoe0BsaW5rIGphdmF4LmNyeXB0by5DaXBoZXJ9 KQorLSAqLworIHB1YmxpYyBpbnRlcmZhY2UgS2V5V3JhcHBlciB7CisgCisgICAgIHB1YmxpYyB2 b2lkIGluaXRXcmFwKFN5bW1ldHJpY0tleSB3cmFwcGluZ0tleSwKK2RpZmYgLXJ1cE4ganNzLTQu Mi42Lm9yaWcvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9TaWdu YXR1cmUuamF2YSBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNz L2NyeXB0by9TaWduYXR1cmUuamF2YQorLS0tIGpzcy00LjIuNi5vcmlnL21vemlsbGEvc2VjdXJp dHkvanNzL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vU2lnbmF0dXJlLmphdmEJMjAwNC0wNC0yNSAw ODowMjoyMS4wMDAwMDAwMDAgLTA3MDAKKysrKyBqc3MtNC4yLjYvbW96aWxsYS9zZWN1cml0eS9q c3Mvb3JnL21vemlsbGEvanNzL2NyeXB0by9TaWduYXR1cmUuamF2YQkyMDEyLTAzLTIwIDE2OjM4 OjQ2LjQ2ODM0MDAwMCAtMDcwMAorQEAgLTQ0LDcgKzQ0LDYgQEAgaW1wb3J0IGphdmEuc2VjdXJp dHkuc3BlYy5BbGdvcml0aG1QYXJhbQorICAqIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGNhbiBi ZSBvYnRhaW4gZnJvbSA8Y29kZT5DcnlwdG9Ub2tlbjwvY29kZT5zLgorICAqCisgICogQHNlZSBv cmcubW96aWxsYS5qc3MuY3J5cHRvLkNyeXB0b1Rva2VuI2dldFNpZ25hdHVyZUNvbnRleHQKKy0g KiBAZGVwcmVjYXRlZCBVc2UgdGhlIEpDQSBpbnRlcmZhY2UgaW5zdGVhZCAoe0BsaW5rIGphdmEu c2VjdXJpdHkuU2lnbmF0dXJlfSkKKyAgKi8KKyBwdWJsaWMgY2xhc3MgU2lnbmF0dXJlIHsgCisg CitkaWZmIC1ydXBOIGpzcy00LjIuNi5vcmlnL21vemlsbGEvc2VjdXJpdHkvanNzL29yZy9tb3pp bGxhL2pzcy90ZXN0cy9TaWdUZXN0LmphdmEganNzLTQuMi42L21vemlsbGEvc2VjdXJpdHkvanNz L29yZy9tb3ppbGxhL2pzcy90ZXN0cy9TaWdUZXN0LmphdmEKKy0tLSBqc3MtNC4yLjYub3JpZy9t b3ppbGxhL3NlY3VyaXR5L2pzcy9vcmcvbW96aWxsYS9qc3MvdGVzdHMvU2lnVGVzdC5qYXZhCTIw MDUtMTEtMjMgMTU6NDA6MjYuMDAwMDAwMDAwIC0wODAwCisrKysganNzLTQuMi42L21vemlsbGEv c2VjdXJpdHkvanNzL29yZy9tb3ppbGxhL2pzcy90ZXN0cy9TaWdUZXN0LmphdmEJMjAxMi0wMy0y MCAxNjozNToxMy42NTM3NjYwMDAgLTA3MDAKK0BAIC0zNywxNSArMzcsMTAgQEAKKyAKKyAvKiBU aGlzIHByb2dyYW0gZGVtb25zdHJhdGVzIGhvdyB0byBzaWduIGRhdGEgd2l0aCBrZXlzIGZyb20g SlNTCisgICoKKy0gKiBNb3N0IG9mIHRoaXMgY29kZSBpcyBkZXByZWNhdGVkIGxvb2sgYXQgSkNB U2lnVGVzdC5qYXZhCistICoKKyAgKiBUaGUgdG9rZW4gbmFtZSBjYW4gYmUgZWl0aGVyIHRoZSBu YW1lIG9mIGEgaGFyZHdhcmUgdG9rZW4sIG9yCisgICogb25lIG9mIHRoZSBpbnRlcm5hbCB0b2tl bnM6CisgICogIEludGVybmFsIENyeXB0byBTZXJ2aWNlcyBUb2tlbgorICAqICBJbnRlcm5hbCBL ZXkgU3RvcmFnZSBUb2tlbiAgICAoa2V5cyBzdG9yZWQgaW4ga2V5My5kYikKKy0gKgorLSAqIEBz ZWUgb3JnLm1vemlsbGEuanNzLnRlc3RzLkpDQVNpZ1Rlc3QKKy0gKiBAZGVwcmVjYXRlZCBVc2Ug dGhlIEpDQSBpbnRlcmZhY2UgaW5zdGVhZAorICAqLworIAorIHBhY2thZ2Ugb3JnLm1vemlsbGEu anNzLnRlc3RzOworZGlmZiAtcnVwTiBqc3MtNC4yLjYub3JpZy9tb3ppbGxhL3NlY3VyaXR5L2pz cy9vcmcvbW96aWxsYS9qc3MvdGVzdHMvYWxsLnBsIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5 L2pzcy9vcmcvbW96aWxsYS9qc3MvdGVzdHMvYWxsLnBsCistLS0ganNzLTQuMi42Lm9yaWcvbW96 aWxsYS9zZWN1cml0eS9qc3Mvb3JnL21vemlsbGEvanNzL3Rlc3RzL2FsbC5wbAkyMDA3LTEyLTIw IDEwOjM4OjQ0LjAwMDAwMDAwMCAtMDgwMAorKysrIGpzcy00LjIuNi9tb3ppbGxhL3NlY3VyaXR5 L2pzcy9vcmcvbW96aWxsYS9qc3MvdGVzdHMvYWxsLnBsCTIwMTItMDMtMjAgMTY6MzY6MzcuNzEx NTk4MDAwIC0wNzAwCitAQCAtNTM0LDYgKzUzNCwxMCBAQCAkdGVzdG5hbWUgPSAiTW96aWxsYS1K U1MgSkNBIFNpZ25hdHVyZSAiCisgJGNvbW1hbmQgPSAiJGphdmEgLWNwICRqc3NfY2xhc3NwYXRo IG9yZy5tb3ppbGxhLmpzcy50ZXN0cy5KQ0FTaWdUZXN0ICR0ZXN0ZGlyICRwd2ZpbGUiOworIHJ1 bl90ZXN0KCR0ZXN0bmFtZSwgJGNvbW1hbmQpOworIAorKyR0ZXN0bmFtZSA9ICJNb3ppbGxhLUpT UyBOU1MgU2lnbmF0dXJlICI7CisrJGNvbW1hbmQgPSAiJGphdmEgLWNwICRqc3NfY2xhc3NwYXRo IG9yZy5tb3ppbGxhLmpzcy50ZXN0cy5TaWdUZXN0ICR0ZXN0ZGlyICRwd2ZpbGUiOworK3J1bl90 ZXN0KCR0ZXN0bmFtZSwgJGNvbW1hbmQpOworKworICR0ZXN0bmFtZSA9ICJTZWNyZXQgRGVjb2Rl ciBSaW5nIjsKKyAkY29tbWFuZCA9ICIkamF2YSAtY3AgJGpzc19jbGFzc3BhdGggb3JnLm1vemls bGEuanNzLnRlc3RzLlRlc3RTRFIgJHRlc3RkaXIgJHB3ZmlsZSI7CisgcnVuX3Rlc3QoJHRlc3Ru YW1lLCAkY29tbWFuZCk7CgpkaWZmIC0tZ2l0IGEvanNzLnNwZWMgYi9qc3Muc3BlYwppbmRleCBh OTIwMGZlLi5jNWQzYjlhIDEwMDY0NAotLS0gYS9qc3Muc3BlYworKysgYi9qc3Muc3BlYwpAQCAt MSw2ICsxLDYgQEAKIE5hbWU6ICAgICAgICAgICBqc3MKIFZlcnNpb246ICAgICAgICA0LjIuNgot UmVsZWFzZTogICAgICAgIDIyJXs/ZGlzdH0KK1JlbGVhc2U6ICAgICAgICAyMyV7P2Rpc3R9CiBT dW1tYXJ5OiAgICAgICAgSmF2YSBTZWN1cml0eSBTZXJ2aWNlcyAoSlNTKQogCiBHcm91cDogICAg ICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwpAQCAtNDAsNiArNDAsOSBAQCBQYXRj aDE1OiAgICAgICAganNzLVBLQ1MxMi1GSVBTLnBhdGNoCiBQYXRjaDE2OiAgICAgICAganNzLWVs aW1pbmF0ZS1uYXRpdmUtY292ZXJpdHktZGVmZWN0cy5wYXRjaAogUGF0Y2gxNzogICAgICAgIGpz cy1QQkUtUEtDUzUtVjItc2VjdXJlLVAxMi5wYXRjaAogUGF0Y2gxODogICAgICAgIGpzcy13cmFw SW5Ub2tlbi5wYXRjaAorUGF0Y2gxOTogICAgICAgIGpzcy1IU00tbWFudWZhY3R1cmVySUQucGF0 Y2gKK1BhdGNoMjA6ICAgICAgICBqc3MtRUNDLVBoYXNlMktleUFyY2hpdmFsUmVjb3ZlcnkucGF0 Y2gKK1BhdGNoMjE6ICAgICAgICBqc3MtdW5kby1KQ0EtZGVwcmVjYXRpb25zLnBhdGNoCiAKIAog JWRlc2NyaXB0aW9uCkBAIC03NSw2ICs3OCw5IEBAIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUg QVBJIGRvY3VtZW50YXRpb24gZm9yIEpTUy4KICVwYXRjaDE2IC1wMQogJXBhdGNoMTcgLXAxCiAl cGF0Y2gxOCAtcDEKKyVwYXRjaDE5IC1wMQorJXBhdGNoMjAgLXAxCislcGF0Y2gyMSAtcDEKIAog JWJ1aWxkCiBbIC16ICIkSkFWQV9IT01FIiBdICYmIGV4cG9ydCBKQVZBX0hPTUU9JXtfanZtZGly fS9qYXZhCkBAIC0xMTIsNiArMTE4LDkgQEAgZXhwb3J0IFVTRV82NAogJWlmIDAlez9mZWRvcmF9 ID49IDE2CiBjcCAtcCBtb3ppbGxhL3NlY3VyaXR5L2NvcmVjb25mL0xpbnV4Mi42Lm1rIG1vemls bGEvc2VjdXJpdHkvY29yZWNvbmYvTGludXgzLjEubWsgCiBzZWQgLWkgLWUgJ3M7TElOVVgyXzE7 TElOVVgzXzE7JyBtb3ppbGxhL3NlY3VyaXR5L2NvcmVjb25mL0xpbnV4My4xLm1rCisKK2NwIC1w IG1vemlsbGEvc2VjdXJpdHkvY29yZWNvbmYvTGludXgzLjEubWsgbW96aWxsYS9zZWN1cml0eS9j b3JlY29uZi9MaW51eDMuMi5tayAKK3NlZCAtaSAtZSAncztMSU5VWDNfMTtMSU5VWDNfMjsnIG1v emlsbGEvc2VjdXJpdHkvY29yZWNvbmYvTGludXgzLjIubWsKICVlbmRpZgogCiAjIFRoZSBNYWtl ZmlsZSBpcyBub3QgdGhyZWFkLXNhZmUKQEAgLTE0Niw2ICsxNTUsMTEgQEAgbG4gLWZzICV7X2xp YmRpcn0vanNzL2pzczQuamFyICRSUE1fQlVJTERfUk9PVCV7X2puaWRpcn0vanNzNC5qYXIKICMg bG9hZGVkIGJ5IHRoZSBqYXIgZmlsZS4KIGluc3RhbGwgLWQgLW0gMDc1NSAkUlBNX0JVSUxEX1JP T1Qle19saWJkaXJ9L2pzcwogaW5zdGFsbCAtbSAwNzU1IG1vemlsbGEvZGlzdC9MaW51eCouT0JK L2xpYi9saWJqc3M0LnNvICR7UlBNX0JVSUxEX1JPT1R9JXtfbGliZGlyfS9qc3MvCislaWYgMCV7 P2ZlZG9yYX0gPj0gMTYKK3B1c2hkICAke1JQTV9CVUlMRF9ST09UfSV7X2xpYmRpcn0vanNzCisg ICAgbG4gLWZzICV7X2puaWRpcn0vanNzNC5qYXIganNzNC5qYXIKK3BvcGQKKyVlbmRpZgogCiAj IGphdmFkb2MKIGluc3RhbGwgLWQgLW0gMDc1NSAkUlBNX0JVSUxEX1JPT1Qle19qYXZhZG9jZGly fS8le25hbWV9LSV7dmVyc2lvbn0KQEAgLTE2OCw2ICsxODIsMTYgQEAgcm0gLXJmICRSUE1fQlVJ TERfUk9PVAogCiAKICVjaGFuZ2Vsb2cKKyogVHVlIE1hciAyMCAyMDEyIENocmlzdGluYSBGdSA8 Y2Z1QHJlZGhhdC5jb20+IC0gNC4yLjYtMjMKKy0gQnVnemlsbGEgQnVnICM3OTczNTEgLSBKU1Mg LSBIU00gdG9rZW4gbmFtZSB3YXMgbWlzdGFrZW4gZm9yIG1hbnVmYWN0dXJlcgorICBpZGVudGlm aWVyIChjZnUpCistIEJ1Z3ppbGxhIEJ1ZyAjODA0ODQwIC0gW1JGRV0gRUNDIGVuY3J5cHRpb24g a2V5cyBjYW5ub3QgYmUgYXJjaGl2ZWQKKyAgRUNDIHBoYXNlMiB3b3JrIC0gc3VwcG9ydCBmb3Ig RUNDIGVuY3J5cHRpb24ga2V5IGFyY2hpdmFsIGFuZCByZWNvdmVyeSAoY2Z1KQorLSBCdWd6aWxs YSBCdWcgIzc4MzAwNyAtIFVuLWRlcHJlY2F0ZSBwcmV2aW91c2x5IGRlcHJlY2F0ZWQgbWV0aG9k cyBpbgorICBKU1MgNC4yLjYgLiAuIC4gKG1oYXJtc2VuKQorLSBEb2d0YWcgVFJBQyBUYXNrICMx MDkgKGh0dHBzOi8vZmVkb3JhaG9zdGVkLm9yZy9wa2kvdGlja2V0LzEwOSkgLSBhZGQKKyAgYmVu aWduIEpOSSBqYXIgZmlsZSBzeW1ib2xpYyBsaW5rIGZyb20gSk5JIGxpYmRpciB0byBKTkkgamFy IGZpbGUgKG1oYXJtc2VuKQorCiAqIEZyaSBKYW4gMTMgMjAxMiBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjIuNi0yMgogLSBS ZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzE3X01hc3Nf UmVidWlsZAogCg==