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: Resolves: mbz #1370778,1371147,1373824 Date: Tue, 28 Jul 2026 16:48:35 GMT Message-ID: <178525731519.1.9973922223600938977.rpms-jss-d8d41b5f8c5a@fedoraproject.org> List-ID: X-Git-Repo: rpms/jss X-Git-Branch: pqc X-Git-Rev: d8d41b5f8c5a8b4d9fd388d2ba87a8f074090a50 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvanNzCiAgICAgICAgICAgIEJyYW5jaCA6IHBxYwogICAgICAgICAgICBDb21t aXQgOiBkOGQ0MWI1ZjhjNWE4YjRkOWZkMzg4ZDJiYTg3YThmMDc0MDkwYTUwCiAgICAgICAgICAg IEF1dGhvciA6IE1hdHRoZXcgSGFybXNlbiA8bWhhcm1zZW5AcmVkaGF0LmNvbT4KICAgICAgICAg ICAgRGF0ZSAgIDogMjAxNy0wOS0xMVQyMzoyMzowMS0wNjowMAogICAgICAgICAgICBTdGF0cyAg OiArODY3Ly0xIGluIDQgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5m ZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2pzcy9jL2Q4ZDQxYjVmOGM1YThiNGQ5ZmQzODhkMmJhODdh OGYwNzQwOTBhNTA/YnJhbmNoPXBxYwoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZXNv bHZlczogbWJ6ICMxMzcwNzc4LDEzNzExNDcsMTM3MzgyNAoKLSBNb3ppbGxhIEJ1Z3ppbGxhICMx MzcwNzc4IC0gUEJFIGFuZCBwYWRkZWQgYmxvY2sgY2lwaGVyIGVuaGFuY2VtZW50cyBhbmQKICBm aXhlcyAoZnR3ZWVkYWwpCi0gTW96aWxsYSBCdWd6aWxsYSAjMTM3MTE0NyAtIFBLMTFTdG9yZS5n ZXRFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbygpIHNlZ2ZhdWx0CiAgaWYgZXhwb3J0IGZhaWxzIChm dHdlZWRhbCkKLSBNb3ppbGxhIEJ1Z3ppbGxhICMxMzczODI0IC0gTW96aWxsYSBCdWcgIzEzNzM4 MjQgLSBCdWcgMTMwODAyNyAoY2hhbmdlIDIxNjMpCiAgYnJlYWtzIEhNQUMtU0hBMSBrZXkgaW1w b3J0cyAoam1hZ25lKQoKLS0tCmRpZmYgLS1naXQgYS9qc3MtSE1BQy10ZXN0LWZvci1BRVMtZW5j cnlwdC11bndyYXAucGF0Y2ggYi9qc3MtSE1BQy10ZXN0LWZvci1BRVMtZW5jcnlwdC11bndyYXAu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM1ZGZkMAotLS0gL2Rl di9udWxsCisrKyBiL2pzcy1ITUFDLXRlc3QtZm9yLUFFUy1lbmNyeXB0LXVud3JhcC5wYXRjaApA QCAtMCwwICsxLDE5NiBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBKYWNrIE1hZ25l IDxqbWFnbmVAcmVkaGF0LmNvbT4KKyMgRGF0ZSAxNTA0MzA3NzU0IDI1MjAwCisjICAgICAgRnJp IFNlcCAwMSAxNjoxNTo1NCAyMDE3IC0wNzAwCisjIE5vZGUgSUQgZWVjMTU1MThmZDYxZjFkOTg4 YzI1YjRkZTU4OTU1NTc5NmY5ZTY1ZgorIyBQYXJlbnQgIDE3ZDFkN2I3NDBjYTU3NzdmYmNmOGVl ODE3YTJmMjZiOWM5MzU5M2EKK3Vud3JhcHBpbmcgb2YgSE1BQy1TSEExIHNlY3JldCBrZXlzIHVz aW5nIEFFUyB3cmFwcGluZyBhbmQgdW53cmFwcGluZworY2Z1IG9uIGJlaGFsZiBvZiBqbWFnbmUK KworZGlmZiAtciAxN2QxZDdiNzQwY2EgLXIgZWVjMTU1MThmZDYxIG9yZy9tb3ppbGxhL2pzcy9w a2NzMTEvUEsxMUtleVdyYXBwZXIuamF2YQorLS0tIGEvb3JnL21vemlsbGEvanNzL3BrY3MxMS9Q SzExS2V5V3JhcHBlci5qYXZhCU1vbiBNYXkgMDEgMTA6Mzk6NTAgMjAxNyAtMDcwMAorKysrIGIv b3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExS2V5V3JhcHBlci5qYXZhCUZyaSBTZXAgMDEgMTY6 MTU6NTQgMjAxNyAtMDcwMAorQEAgLTU4OCw2ICs1ODgsOCBAQAorICAgICAgICAgICAgIHJldHVy biBFbmNyeXB0aW9uQWxnb3JpdGhtLlJDNDsKKyAgICAgICAgIH0gZWxzZSBpZiggdHlwZSA9PSBT eW1tZXRyaWNLZXkuQUVTICkgeworICAgICAgICAgICAgIHJldHVybiBFbmNyeXB0aW9uQWxnb3Jp dGhtLkFFU18xMjhfRUNCOworKyAgICAgICAgfSBlbHNlIGlmKCB0eXBlID09IFN5bW1ldHJpY0tl eS5TSEExX0hNQUMpIHsKKysgICAgICAgICAgICByZXR1cm4gSE1BQ0FsZ29yaXRobS5TSEExOwor ICAgICAgICAgfSBlbHNlICB7CisgICAgICAgICAgICAgQXNzZXJ0Ll9hc3NlcnQoIHR5cGUgPT0g U3ltbWV0cmljS2V5LlJDMiApOworICAgICAgICAgICAgIHJldHVybiBFbmNyeXB0aW9uQWxnb3Jp dGhtLlJDMl9DQkM7CitkaWZmIC1yIDE3ZDFkN2I3NDBjYSAtciBlZWMxNTUxOGZkNjEgb3JnL21v emlsbGEvanNzL3BrY3MxMS9QSzExTWVzc2FnZURpZ2VzdC5jCistLS0gYS9vcmcvbW96aWxsYS9q c3MvcGtjczExL1BLMTFNZXNzYWdlRGlnZXN0LmMJTW9uIE1heSAwMSAxMDozOTo1MCAyMDE3IC0w NzAwCisrKysgYi9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFNZXNzYWdlRGlnZXN0LmMJRnJp IFNlcCAwMSAxNjoxNTo1NCAyMDE3IC0wNzAwCitAQCAtNjcsMTkgKzY3LDE5IEBACisgICAgIH0K KyAKKyAgICAgLyogY29weSB0aGUga2V5LCBzZXR0aW5nIHRoZSBDS0FfU0lHTiBhdHRyaWJ1dGUg Ki8KKy0gICAgLyoKKysgICAgCisgICAgIG5ld0tleSA9IFBLMTFfQ29weVN5bUtleUZvclNpZ25p bmcob3JpZ0tleSwgbWVjaCk7CisrCisrICAgIC8qIEZvciBzb21lIGtleSBvbiB0aGUgaHNtLCB0 aGlzIGNhbGwgY291bGQgZmFpbCwgYnV0IHRoZSBrZXkgbWF5IHdvcmsgYW55d2F5ICovCisrCisg ICAgIGlmKCBuZXdLZXkgPT0gTlVMTCApIHsKKy0gICAgICAgIEpTU190aHJvd01zZyhlbnYsIERJ R0VTVF9FWENFUFRJT04sCistICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBzZXQg Q0tBX1NJR04gYXR0cmlidXRlIG9uIHN5bW1ldHJpYyBrZXkiKTsKKy0gICAgICAgIGdvdG8gZmlu aXNoOworKyAgICAgICAgbmV3S2V5ID0gb3JpZ0tleTsKKyAgICAgfQorLSAgICAqLworIAorICAg ICBwYXJhbS5kYXRhID0gTlVMTDsKKyAgICAgcGFyYW0ubGVuID0gMDsKKyAKKy0gICAgY29udGV4 dCA9IFBLMTFfQ3JlYXRlQ29udGV4dEJ5U3ltS2V5KG1lY2gsIENLQV9TSUdOLCBvcmlnS2V5LCAm cGFyYW0pOworKyAgICBjb250ZXh0ID0gUEsxMV9DcmVhdGVDb250ZXh0QnlTeW1LZXkobWVjaCwg Q0tBX1NJR04sIG5ld0tleSwgJnBhcmFtKTsKKyAgICAgaWYoIGNvbnRleHQgPT0gTlVMTCApIHsK KyAgICAgICAgIEpTU190aHJvd01zZyhlbnYsIERJR0VTVF9FWENFUFRJT04sCisgICAgICAgICAg ICAgIlVuYWJsZSB0byBpbml0aWFsaXplIGRpZ2VzdCBjb250ZXh0Iik7CitAQCAtODgsNyArODgs NyBAQAorIAorICAgICBjb250ZXh0T2JqID0gSlNTX1BLMTFfd3JhcENpcGhlckNvbnRleHRQcm94 eShlbnYsICZjb250ZXh0KTsKKyBmaW5pc2g6CistICAgIGlmKG5ld0tleSkgeworKyAgICBpZihu ZXdLZXkgJiYgKG5ld0tleSAhPSBvcmlnS2V5KSkgeworICAgICAgICAgLyogU3ltS2V5cyBhcmUg cmVmIGNvdW50ZWQsIGFuZCB0aGUgY29udGV4dCB3aWxsIGZyZWUgaXQncyByZWYKKyAgICAgICAg ICAqIHdoZW4gaXQgaXMgZGVzdHJveWVkICovCisgICAgICAgICBQSzExX0ZyZWVTeW1LZXkobmV3 S2V5KTsKK2RpZmYgLXIgMTdkMWQ3Yjc0MGNhIC1yIGVlYzE1NTE4ZmQ2MSBvcmcvbW96aWxsYS9q c3MvdGVzdHMvSG1hY1Rlc3QuamF2YQorLS0tIC9kZXYvbnVsbAlUaHUgSmFuIDAxIDAwOjAwOjAw IDE5NzAgKzAwMDAKKysrKyBiL29yZy9tb3ppbGxhL2pzcy90ZXN0cy9IbWFjVGVzdC5qYXZhCUZy aSBTZXAgMDEgMTY6MTU6NTQgMjAxNyAtMDcwMAorQEAgLTAsMCArMSwxMTkgQEAKKysKKytwYWNr YWdlIG9yZy5tb3ppbGxhLmpzcy50ZXN0czsKKysKKysKKytpbXBvcnQgamF2YS5zZWN1cml0eS5L ZXk7CisraW1wb3J0IGphdmF4LmNyeXB0by5DaXBoZXI7CisraW1wb3J0IGphdmF4LmNyeXB0by5L ZXlHZW5lcmF0b3I7CisraW1wb3J0IGphdmF4LmNyeXB0by5NYWM7CisraW1wb3J0IGphdmF4LmNy eXB0by5TZWNyZXRLZXk7CisraW1wb3J0IGphdmF4LmNyeXB0by5zcGVjLkl2UGFyYW1ldGVyU3Bl YzsKKysKKytpbXBvcnQgb3JnLm1vemlsbGEuanNzLkNyeXB0b01hbmFnZXI7CisraW1wb3J0IG9y Zy5tb3ppbGxhLmpzcy5jcnlwdG8uQ3J5cHRvVG9rZW47CisraW1wb3J0IG9yZy5tb3ppbGxhLmpz cy5jcnlwdG8uU3ltbWV0cmljS2V5OworKworKworK3B1YmxpYyBjbGFzcyBIbWFjVGVzdCB7Cisr CisrICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5URVJOQUxfS0VZX1NUT1JBR0VfVE9L RU4gPQorKyAgICBuZXcgQ3J5cHRvTWFuYWdlci5Jbml0aWFsaXphdGlvblZhbHVlcygiIikuZ2V0 SW50ZXJuYWxLZXlTdG9yYWdlVG9rZW5EZXNjcmlwdGlvbigpLnRyaW0oKTsKKysKKysgIHByaXZh dGUgc3RhdGljIGZpbmFsIFN0cmluZyBOU1NfREFUQUJBU0VfRElSID0gInNxbDpkYXRhIjsKKysg IHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9WSURFUiA9ICJNb3ppbGxhLUpTUyI7Cisr CisrCisrICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorKyAgIHsKKysK KysgICAgU3RyaW5nIGFsZ29yaXRobSA9ICJobWFjLXNoYTEiOworKworKyAgICB0cnkgeworKyAg ICAgICBjb25maWd1cmVDcnlwdG8oYXJncyk7CisrCisrICAgICAgIE1hYyBtYWMgPSBNYWMuZ2V0 SW5zdGFuY2UoYWxnb3JpdGhtLCBQUk9WSURFUik7CisrCisrICAgICAgIGJ5dGVbXSBrZXlEYXRh ID0gbmV3IGJ5dGVbMTZdOworKyAgICAgICBLZXkga2V5ID0gaW1wb3J0SG1hY1NoYTFLZXkoa2V5 RGF0YSk7CisrCisrICAgICAgIG1hYy5pbml0KGtleSk7CisrCisrICAgICAgIGRvSE1BQyhtYWMs IkRvZ3RhZyBydWxlcyEiKTsKKysKKysgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIik7 CisrCisrICAgICAgIFN5c3RlbS5leGl0KDApOworKyAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkg eworKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisrICAgIH0KKysgIH0KKysKKysgIHByaXZhdGUg c3RhdGljIHZvaWQgY29uZmlndXJlQ3J5cHRvKFN0cmluZ1tdIGFyZ3MpCisrICAgIHRocm93cyBF eGNlcHRpb24geworKworKyAgICBDcnlwdG9NYW5hZ2VyLkluaXRpYWxpemF0aW9uVmFsdWVzIGlu aXRpYWxpemF0aW9uVmFsdWVzID0KKysgICAgICBuZXcgQ3J5cHRvTWFuYWdlci5Jbml0aWFsaXph dGlvblZhbHVlcyhhcmdzWzBdKTsKKysKKysgICAgQ3J5cHRvTWFuYWdlci5pbml0aWFsaXplKGlu aXRpYWxpemF0aW9uVmFsdWVzKTsKKysKKysgICAgQ3J5cHRvTWFuYWdlciBjcnlwdG9NYW5hZ2Vy ID0gQ3J5cHRvTWFuYWdlci5nZXRJbnN0YW5jZSgpOworKworKyAgICBDcnlwdG9Ub2tlbiBjcnlw dG9Ub2tlbiA9CisrICAgICAgY3J5cHRvTWFuYWdlci5nZXRUb2tlbkJ5TmFtZShJTlRFUk5BTF9L RVlfU1RPUkFHRV9UT0tFTik7CisrCisrICAgIGNyeXB0b01hbmFnZXIuc2V0VGhyZWFkVG9rZW4o Y3J5cHRvVG9rZW4pOworKyAgfQorKworKyAgcHJpdmF0ZSBzdGF0aWMgS2V5IGltcG9ydEhtYWNT aGExS2V5KGJ5dGVbXSBrZXkpCisrICAgIHRocm93cyBFeGNlcHRpb24geworKworKyAgICBmaW5h bCBTdHJpbmcgV1JBUFBJTkdfQUxHT1JJVEhNID0gIkFFUy9DQkMvUEtDUzVQYWRkaW5nIjsKKysK KysgICAgS2V5IHdyYXBwaW5nS2V5ID0gZ2V0V3JhcHBpbmdLZXkoKTsKKysKKysgICAgYnl0ZVtd IGl2ID0gbmV3IGJ5dGVbMTZdOworKyAgICBJdlBhcmFtZXRlclNwZWMgaXZQYXJhbWV0ZXJTcGVj ID0gbmV3IEl2UGFyYW1ldGVyU3BlYyhpdik7CisrCisrICAgIENpcGhlciB3cmFwcGluZ0NpcGhl ciA9IENpcGhlci5nZXRJbnN0YW5jZShXUkFQUElOR19BTEdPUklUSE0sIFBST1ZJREVSKTsKKysg ICAgd3JhcHBpbmdDaXBoZXIuaW5pdChDaXBoZXIuRU5DUllQVF9NT0RFLCB3cmFwcGluZ0tleSwg aXZQYXJhbWV0ZXJTcGVjKTsKKysKKysgICAgYnl0ZVtdIHdyYXBwZWRLZXlEYXRhID0gd3JhcHBp bmdDaXBoZXIuZG9GaW5hbChrZXkpOworKworKyAgICBDaXBoZXIgdW53cmFwcGluZ0NpcGhlciA9 IENpcGhlci5nZXRJbnN0YW5jZShXUkFQUElOR19BTEdPUklUSE0sIFBST1ZJREVSKTsKKysgICAg dW53cmFwcGluZ0NpcGhlci5pbml0KENpcGhlci5VTldSQVBfTU9ERSwgd3JhcHBpbmdLZXksIGl2 UGFyYW1ldGVyU3BlYyk7CisrCisrICAgIHJldHVybiAoU2VjcmV0S2V5KSB1bndyYXBwaW5nQ2lw aGVyLnVud3JhcCh3cmFwcGVkS2V5RGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN5bW1ldHJpY0tleS5TSEExX0hNQUMudG9TdHJpbmcoKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENpcGhlci5TRUNS RVRfS0VZKTsKKysgIH0KKysKKysgIHByaXZhdGUgc3RhdGljIHN5bmNocm9uaXplZCBLZXkgZ2V0 V3JhcHBpbmdLZXkoKQorKyAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKysKKysgICAgZmluYWwgU3Ry aW5nIGtleUdlbkFsZ29yaXRobSA9ICJBRVMiOworKyAgICBmaW5hbCBpbnQgd3JhcHBpbmdLZXlM ZW5ndGggPSAyNTY7CisrCisrICAgIEtleUdlbmVyYXRvciBrZXlHZW4gPSBLZXlHZW5lcmF0b3Iu Z2V0SW5zdGFuY2Uoa2V5R2VuQWxnb3JpdGhtLCBQUk9WSURFUik7CisrICAgIGtleUdlbi5pbml0 KHdyYXBwaW5nS2V5TGVuZ3RoKTsKKysgICAgcmV0dXJuIGtleUdlbi5nZW5lcmF0ZUtleSgpOwor KyAgfQorKworKyAgcHVibGljIHN0YXRpYyB2b2lkIGRvSE1BQyhNYWMgbW96aWxsYUhtYWMsIFN0 cmluZyBjbGVhclRleHQpCisrICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisrICAgICAg ICBieXRlW10gbW96aWxsYUhtYWNPdXQ7CisrCisrICAgICAgICAvL0dldCB0aGUgTW96aWxsYSBI TUFDCisrICAgICAgICBtb3ppbGxhSG1hY091dCA9IG1vemlsbGFIbWFjLmRvRmluYWwoY2xlYXJU ZXh0LmdldEJ5dGVzKCkpOworKworKyAgICAgICAgaWYgKG1vemlsbGFIbWFjT3V0Lmxlbmd0aCA9 PSBtb3ppbGxhSG1hYy5nZXRNYWNMZW5ndGgoKSkgeworKyAgICAgICAgICAgIFN5c3RlbS5vdXQu cHJpbnRsbihQUk9WSURFUiArICIgc3VwcG9ydHMgIiArCisrICAgICAgICAgICAgICAgICAgICBt b3ppbGxhSG1hYy5nZXRBbGdvcml0aG0oKSArICIgIGFuZCB0aGUgb3V0cHV0IHNpemUgaXMgIiAr IG1vemlsbGFIbWFjLmdldE1hY0xlbmd0aCgpKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAg ICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRVJST1I6IGhtYWMgb3V0cHV0IHNpemUgaXMgIiAr CisrICAgICAgICAgICAgICAgICAgICBtb3ppbGxhSG1hY091dC5sZW5ndGggKyAiLCBzaG91bGQg YmUgIiArCisrICAgICAgICAgICAgICAgICAgICBtb3ppbGxhSG1hYy5nZXRNYWNMZW5ndGgoKSk7 CisrICAgICAgICB9CisrICAgIH0KKysKKysKKyt9CitkaWZmIC1yIDE3ZDFkN2I3NDBjYSAtciBl ZWMxNTUxOGZkNjEgb3JnL21vemlsbGEvanNzL3Rlc3RzL2FsbC5wbAorLS0tIGEvb3JnL21vemls bGEvanNzL3Rlc3RzL2FsbC5wbAlNb24gTWF5IDAxIDEwOjM5OjUwIDIwMTcgLTA3MDAKKysrKyBi L29yZy9tb3ppbGxhL2pzcy90ZXN0cy9hbGwucGwJRnJpIFNlcCAwMSAxNjoxNTo1NCAyMDE3IC0w NzAwCitAQCAtNDkyLDYgKzQ5MiwxMCBAQAorICRjb21tYW5kID0gIiRqYXZhIC1jcCAkanNzX2Ns YXNzcGF0aCBvcmcubW96aWxsYS5qc3MudGVzdHMuSE1BQ1Rlc3QgJHRlc3RkaXIgJHB3ZmlsZSI7 CisgcnVuX3Rlc3QoJHRlc3RuYW1lLCAkY29tbWFuZCk7CisgCisrJHRlc3RuYW1lID0gIkhNQUMg VW53cmFwIjsKKyskY29tbWFuZCA9ICIkamF2YSAtY3AgJGpzc19jbGFzc3BhdGggb3JnLm1vemls bGEuanNzLnRlc3RzLkhtYWNUZXN0ICR0ZXN0ZGlyICRwd2ZpbGUiOworK3J1bl90ZXN0KCR0ZXN0 bmFtZSwgJGNvbW1hbmQpOworKworICR0ZXN0bmFtZSA9ICJLZXlXcmFwcGluZyAiOworICRjb21t YW5kID0gIiRqYXZhIC1jcCAkanNzX2NsYXNzcGF0aCBvcmcubW96aWxsYS5qc3MudGVzdHMuSkNB S2V5V3JhcCAkdGVzdGRpciAkcHdmaWxlIjsKKyBydW5fdGVzdCgkdGVzdG5hbWUsICRjb21tYW5k KTsKCmRpZmYgLS1naXQgYS9qc3MtUEJFLXBhZGRlZC1ibG9jay1jaXBoZXItZW5oYW5jZW1lbnRz LnBhdGNoIGIvanNzLVBCRS1wYWRkZWQtYmxvY2stY2lwaGVyLWVuaGFuY2VtZW50cy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjQzZWM1Ci0tLSAvZGV2L251bGwK KysrIGIvanNzLVBCRS1wYWRkZWQtYmxvY2stY2lwaGVyLWVuaGFuY2VtZW50cy5wYXRjaApAQCAt MCwwICsxLDYyMCBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBGcmFzZXIgVHdlZWRh bGU8ZnR3ZWVkYWxlQHJlZGhhdC5jb20+CisjIERhdGUgMTUwNDg5NDE2MyAyNTIwMAorIyAgICAg IEZyaSBTZXAgMDggMTE6MDk6MjMgMjAxNyAtMDcwMAorIyBOb2RlIElEIDM2MjliNTk4YTljZTcz ZTgzYzc4OTY0MDdlM2NhODIwZjYzODM3NTAKKyMgUGFyZW50ICBlZWMxNTUxOGZkNjFmMWQ5ODhj MjViNGRlNTg5NTU1Nzk2ZjllNjVmCitCdWcgMTM3MDc3OCBQQkUgYW5kIHBhZGRlZCBibG9jayBj aXBoZXIgZW5oYW5jZW1lbnRzIGFuZCBmaXhlcyAtCisgIHBhdGNoIGpzcy1mdHdlZWRhbC0wMDA2 LVBCRUtleUdlblBhcmFtcy1hbGxvdy1zcGVjaWZ5aW5nLWVuY3J5cHRpb24tYWxnb3JpdGgucGF0 Y2gKKworQWxsb3cgc3BlY2lmeWluZyBhbiB0YXJnZXQgZW5jcnlwdGlvbiBhbGdvcml0aG0gaW4g UEJFS2V5R2VuUGFyYW1zOworIGlmIHRoZSBQQkUgYWxnb3JpdGhtIGRvZXMgbm90IGltcGx5IGEg cGFydGljdWxhciBjaXBoZXIsIHRoaXMgaXMgbmVlZGVkCisgdG8gZGV0ZXJtaW5lIHRoZSBzaXpl IG9mIHRoZSBrZXkgdG8gZ2VuZXJhdGUKKworY2Z1IGZvciBmdHdlZWRhbGUKKworZGlmZiAtciBl ZWMxNTUxOGZkNjEgLXIgMzYyOWI1OThhOWNlIG9yZy9tb3ppbGxhL2pzcy9jcnlwdG8vUEJFS2V5 R2VuUGFyYW1zLmphdmEKKy0tLSBhL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vUEJFS2V5R2VuUGFy YW1zLmphdmEJRnJpIFNlcCAwMSAxNjoxNTo1NCAyMDE3IC0wNzAwCisrKysgYi9vcmcvbW96aWxs YS9qc3MvY3J5cHRvL1BCRUtleUdlblBhcmFtcy5qYXZhCUZyaSBTZXAgMDggMTE6MDk6MjMgMjAx NyAtMDcwMAorQEAgLTEzLDYgKzEzLDcgQEAKKyAgICAgcHJpdmF0ZSBQYXNzd29yZCBwYXNzOwor ICAgICBwcml2YXRlIGJ5dGVbXSBzYWx0OworICAgICBwcml2YXRlIGludCBpdGVyYXRpb25zOwor KyAgICBwcml2YXRlIEVuY3J5cHRpb25BbGdvcml0aG0gZW5jcnlwdGlvbkFsZ29yaXRobSA9IEVu Y3J5cHRpb25BbGdvcml0aG0uREVTM19DQkM7CisgCisgICAgIHByaXZhdGUgUEJFS2V5R2VuUGFy YW1zKCkgeyB9CisgCitAQCAtNDAsNyArNDEsOCBAQAorICAgICB9CisgCisgICAgIC8qKgorLSAg ICAgKiBDcmVhdGVzIFBCRSBwYXJhbWV0ZXJzLgorKyAgICAgKiBDcmVhdGVzIFBCRSBwYXJhbWV0 ZXJzIHVzaW5nIGRlZmF1bHQgZW5jcnlwdGlvbiBhbGdvcml0aG0KKysgICAgICogKERFUzNfRURF M19DQkMpLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gcGFzcyBUaGUgcGFzc3dvcmQuIEl0IHdp bGwgYmUgY2xvbmVkLCBzbyB0aGUKKyAgICAgICogICAgICBjYWxsZXIgaXMgc3RpbGwgcmVzcG9u c2libGUgZm9yIGNsZWFyaW5nIGl0LiBJdCBtdXN0IG5vdCBiZSBudWxsLgorQEAgLTYwLDYgKzYy LDMzIEBACisgICAgIH0KKyAKKyAgICAgLyoqCisrICAgICAqIENyZWF0ZXMgUEJFIHBhcmFtZXRl cnMgdXNpbmcgZGVmYXVsdCBlbmNyeXB0aW9uIGFsZ29yaXRobQorKyAgICAgKiAoREVTM19FREUz X0NCQykuCisrICAgICAqCisrICAgICAqIEBwYXJhbSBwYXNzIFRoZSBwYXNzd29yZC4gSXQgd2ls bCBiZSBjbG9uZWQsIHNvIHRoZQorKyAgICAgKiAgICAgIGNhbGxlciBpcyBzdGlsbCByZXNwb25z aWJsZSBmb3IgY2xlYXJpbmcgaXQuIEl0IG11c3Qgbm90IGJlIG51bGwuCisrICAgICAqIEBwYXJh bSBzYWx0IFRoZSBzYWx0IGZvciB0aGUgUEJFIGFsZ29yaXRobS4gV2lsbCA8Yj5ub3Q8L2I+IGJl IGNsb25lZC4KKysgICAgICogICAgICBNdXN0IG5vdCBiZSBudWxsLiBJdCBpcyB0aGUgcmVzcG9u c2liaWxpdHkgb2YgdGhlIGNhbGxlciB0bworKyAgICAgKiAgICAgIHVzZSB0aGUgcmlnaHQgc2Fs dCBsZW5ndGggZm9yIHRoZSBhbGdvcml0aG0uIE1vc3QgYWxnb3JpdGhtcworKyAgICAgKiAgICAg IHVzZSA4IGJ5dGVzIG9mIHNhbHQuCisrICAgICAqIEBwYXJhbSBpdGVyYXRpb25zIFRoZSBpdGVy YXRpb24gY291bnQgZm9yIHRoZSBQQkUgYWxnb3JpdGhtLgorKyAgICAgKiBAcGFyYW0gZW5jQWxn IFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobS4gIFRoaXMgaXMgdXNlZCB3aXRoIFNPTUUKKysgICAg ICogICAgICBQQkUgYWxnb3JpdGhtcyBmb3IgZGV0ZXJtaW5pbmcgdGhlIEtERiBvdXRwdXQgbGVu Z3RoLgorKyAgICAgKi8KKysgICAgcHVibGljIFBCRUtleUdlblBhcmFtcygKKysgICAgICAgICAg ICBjaGFyW10gcGFzcywgYnl0ZVtdIHNhbHQsIGludCBpdGVyYXRpb25zLAorKyAgICAgICAgICAg IEVuY3J5cHRpb25BbGdvcml0aG0gZW5jQWxnKSB7CisrICAgICAgICBpZiAocGFzcyA9PSBudWxs IHx8IHNhbHQgPT0gbnVsbCkgeworKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4 Y2VwdGlvbigpOworKyAgICAgICAgfQorKyAgICAgICAgdGhpcy5wYXNzID0gbmV3IFBhc3N3b3Jk KChjaGFyW10pIHBhc3MuY2xvbmUoKSk7CisrICAgICAgICB0aGlzLnNhbHQgPSBzYWx0OworKyAg ICAgICAgdGhpcy5pdGVyYXRpb25zID0gaXRlcmF0aW9uczsKKysgICAgICAgIGlmIChlbmNBbGcg IT0gbnVsbCkKKysgICAgICAgICAgICB0aGlzLmVuY3J5cHRpb25BbGdvcml0aG0gPSBlbmNBbGc7 CisrICAgIH0KKysKKysgICAgLyoqCisgICAgICAqIFJldHVybnMgYSA8Yj5yZWZlcmVuY2U8L2I+ IHRvIHRoZSBwYXNzd29yZCwgbm90IGEgY29weS4KKyAgICAgICovCisgICAgIHB1YmxpYyBQYXNz d29yZCBnZXRQYXNzd29yZCgpIHsKK0BAIC04MSw2ICsxMTAsMTQgQEAKKyAgICAgfQorIAorICAg ICAvKioKKysgICAgICogVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlzIHVzZWQgd2l0aCBTT01F IFBCRSBhbGdvcml0aG1zIGZvcgorKyAgICAgKiBkZXRlcm1pbmluZyB0aGUgS0RGIG91dHB1dCBs ZW5ndGguCisrICAgICAqLworKyAgICBwdWJsaWMgRW5jcnlwdGlvbkFsZ29yaXRobSBnZXRFbmNy eXB0aW9uQWxnb3JpdGhtKCkgeworKyAgICAgICAgcmV0dXJuIGVuY3J5cHRpb25BbGdvcml0aG07 CisrICAgIH0KKysKKysgICAgLyoqCisgICAgICAqIENsZWFycyB0aGUgcGFzc3dvcmQuIFRoaXMg c2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoaXMgb2JqZWN0IGlzIG5vCisgICAgICAqIGxvbmdlciBu ZWVkZWQgc28gdGhlIHBhc3N3b3JkIGlzIG5vdCBsZWZ0IGFyb3VuZCBpbiBtZW1vcnkuCisgICAg ICAqLworZGlmZiAtciBlZWMxNTUxOGZkNjEgLXIgMzYyOWI1OThhOWNlIG9yZy9tb3ppbGxhL2pz cy9wa2NzMTEvUEsxMUtleUdlbmVyYXRvci5jCistLS0gYS9vcmcvbW96aWxsYS9qc3MvcGtjczEx L1BLMTFLZXlHZW5lcmF0b3IuYwlGcmkgU2VwIDAxIDE2OjE1OjU0IDIwMTcgLTA3MDAKKysrKyBi L29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUtleUdlbmVyYXRvci5jCUZyaSBTZXAgMDggMTE6 MDk6MjMgMjAxNyAtMDcwMAorQEAgLTI0Niw5ICsyNDYsOSBAQAorICAqCisgICovCisgSk5JRVhQ T1JUIGpvYmplY3QgSk5JQ0FMTAorLUphdmFfb3JnX21vemlsbGFfanNzX3BrY3MxMV9QSzExS2V5 R2VuZXJhdG9yX2dlbmVyYXRlUEJFCistICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBq b2JqZWN0IHRva2VuLCBqb2JqZWN0IGFsZywgamJ5dGVBcnJheSBwYXNzQkEsCistICAgIGpieXRl QXJyYXkgc2FsdEJBLCBqaW50IGl0ZXJhdGlvbkNvdW50KQorK0phdmFfb3JnX21vemlsbGFfanNz X3BrY3MxMV9QSzExS2V5R2VuZXJhdG9yX2dlbmVyYXRlUEJFKAorKyAgICBKTklFbnYgKmVudiwg amNsYXNzIGNsYXp6LCBqb2JqZWN0IHRva2VuLCBqb2JqZWN0IGFsZywgam9iamVjdCBlbmNBbGcs CisrICAgIGpieXRlQXJyYXkgcGFzc0JBLCBqYnl0ZUFycmF5IHNhbHRCQSwgamludCBpdGVyYXRp b25Db3VudCkKKyB7CisgICAgIFBLMTFTbG90SW5mbyAqc2xvdD1OVUxMOworICAgICBQSzExU3lt S2V5ICpza2V5PU5VTEw7CitAQCAtMjk5LDEyICsyOTksMTUgQEAKKyAgICAgICAgIG9pZFRhZyA9 IEpTU19nZXRPaWRUYWdGcm9tQWxnKGVudiwgYWxnKTsKKyAgICAgICAgIFBSX0FTU0VSVChvaWRU YWcgIT0gU0VDX09JRF9VTktOT1dOKTsKKyAKKysgICAgICAgIFNFQ09pZFRhZyBlbmNBbGdPaWRU YWcgPSBKU1NfZ2V0T2lkVGFnRnJvbUFsZyhlbnYsIGVuY0FsZyk7CisrICAgICAgICBQUl9BU1NF UlQoZW5jQWxnT2lkVGFnICE9IFNFQ19PSURfVU5LTk9XTik7CisrCisgICAgICAgICAvKiBjcmVh dGUgYWxnaWQgKi8KKyAgICAgICAgIGFsZ2lkID0gUEsxMV9DcmVhdGVQQkVWMkFsZ29yaXRobUlE KAorICAgICAgICAgICAgIG9pZFRhZywKKy0gICAgICAgICAgICBTRUNfT0lEX0RFU19FREUzX0NC QywKKysgICAgICAgICAgICBlbmNBbGdPaWRUYWcsCisgICAgICAgICAgICAgU0VDX09JRF9ITUFD X1NIQTEsCistICAgICAgICAgICAgMTY4LzgsCisrICAgICAgICAgICAgMCwKKyAgICAgICAgICAg ICBpdGVyYXRpb25Db3VudCwKKyAgICAgICAgICAgICBzYWx0KTsKKyAKK2RpZmYgLXIgZWVjMTU1 MThmZDYxIC1yIDM2MjliNTk4YTljZSBvcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFLZXlHZW5l cmF0b3IuamF2YQorLS0tIGEvb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExS2V5R2VuZXJhdG9y LmphdmEJRnJpIFNlcCAwMSAxNjoxNTo1NCAyMDE3IC0wNzAwCisrKysgYi9vcmcvbW96aWxsYS9q c3MvcGtjczExL1BLMTFLZXlHZW5lcmF0b3IuamF2YQlGcmkgU2VwIDA4IDExOjA5OjIzIDIwMTcg LTA3MDAKK0BAIC0xNzgsOCArMTc4LDkgQEAKKyAgICAgICAgICAgICBieXRlW10gcHdieXRlcz1u dWxsOworICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgIHB3Ynl0ZXMgPSBjaGFy VG9CeXRlLmNvbnZlcnQoIGtncC5nZXRQYXNzd29yZCgpLmdldENoYXJzKCkgKTsKKy0gICAgICAg ICAgICAgICAgcmV0dXJuIGdlbmVyYXRlUEJFKHRva2VuLCBhbGdvcml0aG0sIHB3Ynl0ZXMsCist ICAgICAgICAgICAgICAgICAgICBrZ3AuZ2V0U2FsdCgpLCBrZ3AuZ2V0SXRlcmF0aW9ucygpKTsK KysgICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlUEJFKAorKyAgICAgICAgICAgICAgICAg ICAgdG9rZW4sIGFsZ29yaXRobSwga2dwLmdldEVuY3J5cHRpb25BbGdvcml0aG0oKSwKKysgICAg ICAgICAgICAgICAgICAgIHB3Ynl0ZXMsIGtncC5nZXRTYWx0KCksIGtncC5nZXRJdGVyYXRpb25z KCkpOworICAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgIGlmKCBwd2J5 dGVzIT1udWxsICkgeworICAgICAgICAgICAgICAgICAgICAgUGFzc3dvcmQud2lwZUJ5dGVzKHB3 Ynl0ZXMpOworQEAgLTI5Niw3ICsyOTcsOSBAQAorICAgICAgKiAgYmUgbnVsbC4KKyAgICAgICov CisgICAgIHByaXZhdGUgc3RhdGljIG5hdGl2ZSBTeW1tZXRyaWNLZXkKKy0gICAgZ2VuZXJhdGVQ QkUoUEsxMVRva2VuIHRva2VuLCBLZXlHZW5BbGdvcml0aG0gYWxnb3JpdGhtLCBieXRlW10gcGFz cywKKy0gICAgICAgIGJ5dGVbXSBzYWx0LCBpbnQgaXRlcmF0aW9uQ291bnQpIHRocm93cyBUb2tl bkV4Y2VwdGlvbjsKKysgICAgZ2VuZXJhdGVQQkUoCisrICAgICAgICBQSzExVG9rZW4gdG9rZW4s IEtleUdlbkFsZ29yaXRobSBhbGdvcml0aG0sIEVuY3J5cHRpb25BbGdvcml0aG0gZW5jQWxnLAor KyAgICAgICAgYnl0ZVtdIHBhc3MsIGJ5dGVbXSBzYWx0LCBpbnQgaXRlcmF0aW9uQ291bnQpCisr ICAgICAgICB0aHJvd3MgVG9rZW5FeGNlcHRpb247CisgCisgfQorIyBIRyBjaGFuZ2VzZXQgcGF0 Y2gKKyMgVXNlciBGcmFzZXIgVHdlZWRhbGU8ZnR3ZWVkYWxlQHJlZGhhdC5jb20+CisjIERhdGUg MTUwNDg5NDUyOSAyNTIwMAorIyAgICAgIEZyaSBTZXAgMDggMTE6MTU6MjkgMjAxNyAtMDcwMAor IyBOb2RlIElEIGJhZGExNDA5ZDJiYjY3Y2Q5MmMzYjdjMjkyYjhiYjRhZTYzODg1MTMKKyMgUGFy ZW50ICAzNjI5YjU5OGE5Y2U3M2U4M2M3ODk2NDA3ZTNjYTgyMGY2MzgzNzUwCitCdWcgMTM3MDc3 OCBQQkUgYW5kIHBhZGRlZCBibG9jayBjaXBoZXIgZW5oYW5jZW1lbnRzIGFuZCBmaXhlcyAtCitw YXRjaCBqc3MtZnR3ZWVkYWwtMDAwNy1TdXBwb3J0LXRoZS1DS0tfR0VORVJJQ19TRUNSRVQtc3lt bWV0cmljLWtleS10eXBlLnBhdGNoCitTdWJqZWN0OiBTdXBwb3J0IHRoZSBDS0tfR0VORVJJQ19T RUNSRVQgc3ltbWV0cmljIGtleSB0eXBlCitGcm9tOiBGcmFzZXIgVHdlZWRhbGUgPGZ0d2VlZGFs QHJlZGhhdC5jb20+CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KK2ZvdW5kIHBhdGNoIGF0IGJ5 dGUgODczCittZXNzYWdlOgorU3VwcG9ydCB0aGUgQ0tLX0dFTkVSSUNfU0VDUkVUIHN5bW1ldHJp YyBrZXkgdHlwZQorVGhlIE5TUyBQQktERjIgZ2VuZXJhdGlvbiBwcm9kdWNlcyBhIGtleSB3aXRo IHRoZSBDS0tfR0VORVJJQ19TRUNSRVQKK2tleSB0eXBlLiAgVGhlIHVuZGVybHlpbmcgUEtDUyAj MTEgb2JqZWN0ICpkb2VzKiByZWNvcmQgdGhlIGludGVuZGVkCitlbmNyeXB0aW9uIGFsZ29yaXRo bSB0aGF0IHdhcyBzcGVjaWZpZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBrZXkgdmlhCitQSzExX1BC RUtleUdlbiwgYnV0IHRoaXMgaW5mb3JtYXRpb24gaXMgbm90IGV4cG9zZWQgdmlhIHRoZSBQS0NT ICMxMQoraW50ZXJmYWNlLiAgV2hlbiBpbml0aWFsaXNpbmcgYSBjaXBoZXIsIEpTUyBjaGVja3Mg dGhlIGtleSB0eXBlCithZ2FpbnN0IHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSBhbmQgZmFpbHMg aWYgdGhleSBkbyBub3QgbWF0Y2gsCit3aGljaCBpcyBhbHdheXMgdGhlIGNhc2Ugd2l0aCBQQktE RjItZGVyaXZlZCBrZXlzLgorCitUbyB3b3JrIGFyb3VuZCB0aGlzIHByb2JsZW0sIHByb3Blcmx5 IHJlY29yZCB0aGUga2V5IHR5cGUgZm9yCitDS0tfR0VORVJJQ19TRUNSRVQga2V5cywgYW5kIHVw ZGF0ZSB0aGUgY2lwaGVyIGluaXRpYWxpc2F0aW9uIGtleQordHlwZSBjaGVjayB0byBhbHdheXMg YWNjZXB0IHN1Y2gga2V5cy4KKworY2Z1IGZvciBmdHdlZWRhbAorCitkaWZmIC1yIDM2MjliNTk4 YTljZSAtciBiYWRhMTQwOWQyYmIgb3JnL21vemlsbGEvanNzL3BrY3MxMS9LZXlUeXBlLmphdmEK Ky0tLSBhL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvS2V5VHlwZS5qYXZhCUZyaSBTZXAgMDggMTE6 MDk6MjMgMjAxNyAtMDcwMAorKysrIGIvb3JnL21vemlsbGEvanNzL3BrY3MxMS9LZXlUeXBlLmph dmEJRnJpIFNlcCAwOCAxMToxNToyOSAyMDE3IC0wNzAwCitAQCAtMjQyLDQgKzI0Miw3IEBACisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTSEExX0hNQUMiCisgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKyAKKysgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBLZXlUeXBlIEdFTkVSSUNf U0VDUkVUID0KKysgICAgICAgIG5ldyBLZXlUeXBlKG5ldyBBbGdvcml0aG1bXSB7IH0sICJHRU5F UklDX1NFQ1JFVCIpOworKworIH0KK2RpZmYgLXIgMzYyOWI1OThhOWNlIC1yIGJhZGExNDA5ZDJi YiBvcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFDaXBoZXIuamF2YQorLS0tIGEvb3JnL21vemls bGEvanNzL3BrY3MxMS9QSzExQ2lwaGVyLmphdmEJRnJpIFNlcCAwOCAxMTowOToyMyAyMDE3IC0w NzAwCisrKysgYi9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFDaXBoZXIuamF2YQlGcmkgU2Vw IDA4IDExOjE1OjI5IDIwMTcgLTA3MDAKK0BAIC0yNDMsOCArMjQzLDExIEBACisgICAgICAgICB9 CisgCisgICAgICAgICB0cnkgeworLSAgICAgICAgICAgIGlmKCAoKFBLMTFTeW1LZXkpa2V5KS5n ZXRLZXlUeXBlKCkgIT0KKy0gICAgICAgICAgICAgICAgICAgIEtleVR5cGUuZ2V0S2V5VHlwZUZy b21BbGdvcml0aG0oYWxnb3JpdGhtKSApIHsKKysgICAgICAgICAgICBLZXlUeXBlIGtleVR5cGUg PSAoKFBLMTFTeW1LZXkpIGtleSkuZ2V0S2V5VHlwZSgpOworKyAgICAgICAgICAgIGlmICgKKysg ICAgICAgICAgICAgICAga2V5VHlwZSAhPSBLZXlUeXBlLkdFTkVSSUNfU0VDUkVUCisrICAgICAg ICAgICAgICAgICYmIGtleVR5cGUgIT0gS2V5VHlwZS5nZXRLZXlUeXBlRnJvbUFsZ29yaXRobShh bGdvcml0aG0pCisrICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJ bnZhbGlkS2V5RXhjZXB0aW9uKCJLZXkgaXMgbm90IHRoZSByaWdodCB0eXBlIGZvciIrCisgICAg ICAgICAgICAgICAgICAgICAiIHRoaXMgYWxnb3JpdGhtOiAiICsgKChQSzExU3ltS2V5KWtleSku Z2V0S2V5VHlwZSgpICsgIjoiICsgS2V5VHlwZS5nZXRLZXlUeXBlRnJvbUFsZ29yaXRobShhbGdv cml0aG0pICsiOyIpOworICAgICAgICAgICAgIH0KK2RpZmYgLXIgMzYyOWI1OThhOWNlIC1yIGJh ZGExNDA5ZDJiYiBvcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFTeW1LZXkuYworLS0tIGEvb3Jn L21vemlsbGEvanNzL3BrY3MxMS9QSzExU3ltS2V5LmMJRnJpIFNlcCAwOCAxMTowOToyMyAyMDE3 IC0wNzAwCisrKysgYi9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFTeW1LZXkuYwlGcmkgU2Vw IDA4IDExOjE1OjI5IDIwMTcgLTA3MDAKK0BAIC0zMDUsNiArMzA1LDkgQEAKKyAgICAgICAgICAg Y2FzZSBDS0tfREVTMjoKKyAgICAgICAgICAgICAgdHlwZUZpZWxkTmFtZSA9IERFUzNfS0VZVFlQ RV9GSUVMRDsKKyAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2UgQ0tLX0dFTkVS SUNfU0VDUkVUOgorKyAgICAgICAgICAgICB0eXBlRmllbGROYW1lID0gR0VORVJJQ19TRUNSRVRf S0VZVFlQRV9GSUVMRDsKKysgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGRlZmF1bHQ6 CisgICAgICAgICAgICAgUFJfQVNTRVJUKFBSX0ZBTFNFKTsKKyAgICAgICAgICAgICB0eXBlRmll bGROYW1lID0gREVTX0tFWVRZUEVfRklFTEQ7CitkaWZmIC1yIDM2MjliNTk4YTljZSAtciBiYWRh MTQwOWQyYmIgb3JnL21vemlsbGEvanNzL3V0aWwvamF2YV9pZHMuaAorLS0tIGEvb3JnL21vemls bGEvanNzL3V0aWwvamF2YV9pZHMuaAlGcmkgU2VwIDA4IDExOjA5OjIzIDIwMTcgLTA3MDAKKysr KyBiL29yZy9tb3ppbGxhL2pzcy91dGlsL2phdmFfaWRzLmgJRnJpIFNlcCAwOCAxMToxNToyOSAy MDE3IC0wNzAwCitAQCAtODcsNiArODcsNyBAQAorICNkZWZpbmUgUkMyX0tFWVRZUEVfRklFTEQg IlJDMiIKKyAjZGVmaW5lIFNIQTFfSE1BQ19LRVlUWVBFX0ZJRUxEICJTSEExX0hNQUMiCisgI2Rl ZmluZSBBRVNfS0VZVFlQRV9GSUVMRCAiQUVTIgorKyNkZWZpbmUgR0VORVJJQ19TRUNSRVRfS0VZ VFlQRV9GSUVMRCAiR0VORVJJQ19TRUNSRVQiCisgCisgLyoKKyAgKiBOYXRpdmVQcm94eQorIyBI RyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBGcmFzZXIgVHdlZWRhbGU8ZnR3ZWVkYWxlQHJlZGhh dC5jb20+CisjIERhdGUgMTUwNDg5NDg4MiAyNTIwMAorIyAgICAgIEZyaSBTZXAgMDggMTE6MjE6 MjIgMjAxNyAtMDcwMAorIyBOb2RlIElEIDg5MDIxNjU5OWYyMWRmNGM2ZDA3ODE1NjA0YWFhYzUy NjgyM2E4OTIKKyMgUGFyZW50ICBiYWRhMTQwOWQyYmI2N2NkOTJjM2I3YzI5MmI4YmI0YWU2Mzg4 NTEzCitCdWcgMTM3MDc3OCBQQkUgYW5kIHBhZGRlZCBibG9jayBjaXBoZXIgZW5oYW5jZW1lbnRz IGFuZCBmaXhlcyAtCitwYXRjaCBqc3MtZnR3ZWVkYWwtMDAwOC1QSzExQ2lwaGVyLWltcHJvdmUt ZXJyb3ItcmVwb3J0aW5nLnBhdGNoCitTdWJqZWN0OiBQSzExQ2lwaGVyOiBpbXByb3ZlIGVycm9y IHJlcG9ydGluZworRnJvbTogRnJhc2VyIFR3ZWVkYWxlIDxmdHdlZWRhbEByZWRoYXQuY29tPgor bWVzc2FnZToKK1BLMTFDaXBoZXI6IGltcHJvdmUgZXJyb3IgcmVwb3J0aW5nCisKK2NmdSBmb3Ig ZnR3ZWVkYWwKKworZGlmZiAtciBiYWRhMTQwOWQyYmIgLXIgODkwMjE2NTk5ZjIxIG9yZy9tb3pp bGxhL2pzcy9wa2NzMTEvUEsxMUNpcGhlci5jCistLS0gYS9vcmcvbW96aWxsYS9qc3MvcGtjczEx L1BLMTFDaXBoZXIuYwlGcmkgU2VwIDA4IDExOjE1OjI5IDIwMTcgLTA3MDAKKysrKyBiL29yZy9t b3ppbGxhL2pzcy9wa2NzMTEvUEsxMUNpcGhlci5jCUZyaSBTZXAgMDggMTE6MjE6MjIgMjAxNyAt MDcwMAorQEAgLTE1Miw3ICsxNTIsOSBAQAorICAgICAvKiBkbyB0aGUgb3BlcmF0aW9uICovCisg ICAgIGlmKCBQSzExX0NpcGhlck9wKGNvbnRleHQsIG91dGJ1ZiwgKGludCopJm91dGxlbiwgb3V0 bGVuLAorICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyKilpbmJ1ZiwgaW5sZW4pICE9IFNFQ1N1 Y2Nlc3MpIHsKKy0gICAgICAgIEpTU190aHJvd01zZyhlbnYsIFRPS0VOX0VYQ0VQVElPTiwgIkNp cGhlciBPcGVyYXRpb24gZmFpbGVkIik7CisrICAgICAgICBKU1NfdGhyb3dNc2dQckVyckFyZygK KysgICAgICAgICAgICBlbnYsIFRPS0VOX0VYQ0VQVElPTiwgIkNpcGhlciBjb250ZXh0IHVwZGF0 ZSBmYWlsZWQiLAorKyAgICAgICAgICAgIFBSX0dldEVycm9yKCkpOworICAgICAgICAgZ290byBm aW5pc2g7CisgICAgIH0KKyAgICAgUFJfQVNTRVJUKG91dGxlbiA+PSAwKTsKK0BAIC0yMDksNyAr MjExLDkgQEAKKyAgICAgLyogcGVyZm9ybSB0aGUgZmluYWxpemF0aW9uICovCisgICAgIHN0YXR1 cyA9IFBLMTFfRGlnZXN0RmluYWwoY29udGV4dCwgb3V0QnVmLCAmbmV3T3V0TGVuLCBvdXRMZW4p OworICAgICBpZiggKHN0YXR1cyAhPSBTRUNTdWNjZXNzKSApIHsKKy0gICAgICAgIEpTU190aHJv d01zZyhlbnYsIFRPS0VOX0VYQ0VQVElPTiwgIkNpcGhlciBvcGVyYXRpb24gZmFpbGVkIG9uIHRv a2VuIik7CisrICAgICAgICBKU1NfdGhyb3dNc2dQckVyckFyZygKKysgICAgICAgICAgICBlbnYs IFRPS0VOX0VYQ0VQVElPTiwgIkNpcGhlciBjb250ZXh0IGZpbmFsaXphdGlvbiBmYWlsZWQiLAor KyAgICAgICAgICAgIFBSX0dldEVycm9yKCkpOworICAgICAgICAgZ290byBmaW5pc2g7CisgICAg IH0KKyAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVzZXIgRnJhc2VyIFR3ZWVkYWxlPGZ0d2Vl ZGFsZUByZWRoYXQuY29tPgorIyBEYXRlIDE1MDQ4OTU1NTIgMjUyMDAKKyMgICAgICBGcmkgU2Vw IDA4IDExOjMyOjMyIDIwMTcgLTA3MDAKKyMgTm9kZSBJRCBkMzllOWIzNzM3OThlYTlkNmFlN2Yz NTA4OWIwNzE0Mzg0NWIyMTBlCisjIFBhcmVudCAgODkwMjE2NTk5ZjIxZGY0YzZkMDc4MTU2MDRh YWFjNTI2ODIzYTg5MgorQnVnIDEzNzA3NzggUEJFIGFuZCBwYWRkZWQgYmxvY2sgY2lwaGVyIGVu aGFuY2VtZW50cyBhbmQgZml4ZXMgLQorcGF0Y2gganNzLWZ0d2VlZGFsLTAwMDktVXBkYXRlLUFF Uy1DQkMtUEFELWNpcGhlci1kZWZpbml0aW9ucy5wYXRjaAorU3ViamVjdDogVXBkYXRlIEFFUy1D QkMtUEFEIGNpcGhlciBkZWZpbml0aW9ucworRnJvbTogRnJhc2VyIFR3ZWVkYWxlIDxmdHdlZWRh bEByZWRoYXQuY29tPgorbWVzc2FnZToKK1VwZGF0ZSBBRVMtQ0JDLVBBRCBjaXBoZXIgZGVmaW5p dGlvbnMKK1RoZSBBRVNfezEyOCwxOTIsMjU2fV9DQkNfUEFEIEVuY3J5cHRpb25BbGdvcml0aG0g ZGVmaW5pdGlvbnMgZGVjbGFyZQordGhlIGNvcnJlY3QgUEtDUyAjMTEgY2lwaGVyIG1lY2hhbmlz bSBhbmQgcGFkZGluZywgYnV0IGRvIG5vdCBkZWNsYXJlCit0aGUgcmVsZXZhbnQgT0lEcy4gIFRo ZXkgYXJlIGFsc28gdW51c2FibGUgYXMgdGFyZ2V0IGFsZ29yaXRobXMgaW4KK1BCRSBrZXkgZ2Vu ZXJhdGlvbiBiZWNhdXNlIHRoZXkgZGVjbGFyZSBhIFBLMTFfTUVDSCBpbnN0ZWFkIG9mIGEKK1NF Q19PSURfVEFHLgorCitVcGRhdGUgdGhlc2UgYWxnb3JpdGhtcyBkZWZpbml0aW9ucyB0byBkZWNs YXJlIGEgU0VDX09JRF9UQUcgaW5zdGVhZAorb2YgYSBQSzExX01FQ0ggKEpTU19nZXRPaWRUYWdG cm9tQWxnKCkgd2lsbCBzdGlsbCByZXR1cm4gdGhlIGNvcnJlY3QKK21lY2hhbmlzbSkgYW5kIGRl Y2xhcmUgdGhlIGFzc29jaWF0ZWQgT0lEcy4KKworY2Z1IGZvciBmdHdlZWRhbAorCitkaWZmIC1y IDg5MDIxNjU5OWYyMSAtciBkMzllOWIzNzM3OTggb3JnL21vemlsbGEvanNzL2NyeXB0by9FbmNy eXB0aW9uQWxnb3JpdGhtLmphdmEKKy0tLSBhL29yZy9tb3ppbGxhL2pzcy9jcnlwdG8vRW5jcnlw dGlvbkFsZ29yaXRobS5qYXZhCUZyaSBTZXAgMDggMTE6MjE6MjIgMjAxNyAtMDcwMAorKysrIGIv b3JnL21vemlsbGEvanNzL2NyeXB0by9FbmNyeXB0aW9uQWxnb3JpdGhtLmphdmEJRnJpIFNlcCAw OCAxMTozMjozMiAyMDE3IC0wNzAwCitAQCAtMzU5LDggKzM1OSwxMCBAQAorICAgICAgICAgQUVT X1JPT1RfT0lELnN1YkJyYW5jaCgyKSwgMTI4KTsKKyAKKyAgICAgcHVibGljIHN0YXRpYyBmaW5h bCBFbmNyeXB0aW9uQWxnb3JpdGhtCistICAgIEFFU18xMjhfQ0JDX1BBRCA9IG5ldyBFbmNyeXB0 aW9uQWxnb3JpdGhtKENLTV9BRVNfQ0JDX1BBRCwgQWxnLkFFUywgTW9kZS5DQkMsCistICAgICAg ICBQYWRkaW5nLlBLQ1M1LCBJVlBhcmFtZXRlclNwZWNDbGFzc2VzLCAxNiwgbnVsbCwgMTI4KTsg Ly8gbm8gb2lkCisrICAgIEFFU18xMjhfQ0JDX1BBRCA9IG5ldyBFbmNyeXB0aW9uQWxnb3JpdGht KFNFQ19PSURfQUVTXzEyOF9DQkMsCisrICAgICAgICBBbGcuQUVTLCBNb2RlLkNCQywKKysgICAg ICAgIFBhZGRpbmcuUEtDUzUsIElWUGFyYW1ldGVyU3BlY0NsYXNzZXMsIDE2LAorKyAgICAgICAg QUVTX1JPT1RfT0lELnN1YkJyYW5jaCgyKSwgMTI4KTsKKyAgICAgCisgICAgIHB1YmxpYyBzdGF0 aWMgZmluYWwgRW5jcnlwdGlvbkFsZ29yaXRobQorICAgICBBRVNfMTkyX0VDQiA9IG5ldyBFbmNy eXB0aW9uQWxnb3JpdGhtKFNFQ19PSURfQUVTXzE5Ml9FQ0IsCitAQCAtMzc0LDggKzM3NiwxMCBA QAorICAgICAgICAgQUVTX1JPT1RfT0lELnN1YkJyYW5jaCgyMiksIDE5Mik7CisgICAgIAorICAg ICBwdWJsaWMgc3RhdGljIGZpbmFsIEVuY3J5cHRpb25BbGdvcml0aG0KKy0gICAgQUVTXzE5Ml9D QkNfUEFEID0gbmV3IEVuY3J5cHRpb25BbGdvcml0aG0oQ0tNX0FFU19DQkNfUEFELCBBbGcuQUVT LCBNb2RlLkNCQywKKy0gICAgICAgIFBhZGRpbmcuUEtDUzUsIElWUGFyYW1ldGVyU3BlY0NsYXNz ZXMsIDE2LCBudWxsLCAxOTIpOyAvLyBubyBvaWQKKysgICAgQUVTXzE5Ml9DQkNfUEFEID0gbmV3 IEVuY3J5cHRpb25BbGdvcml0aG0oU0VDX09JRF9BRVNfMTkyX0NCQywKKysgICAgICAgIEFsZy5B RVMsIE1vZGUuQ0JDLAorKyAgICAgICAgUGFkZGluZy5QS0NTNSwgSVZQYXJhbWV0ZXJTcGVjQ2xh c3NlcywgMTYsCisrICAgICAgICBBRVNfUk9PVF9PSUQuc3ViQnJhbmNoKDIyKSwgMTkyKTsKKyAK KyAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFbmNyeXB0aW9uQWxnb3JpdGhtCisgICAgIEFFU18y NTZfRUNCID0gbmV3IEVuY3J5cHRpb25BbGdvcml0aG0oU0VDX09JRF9BRVNfMjU2X0VDQiwKK0BA IC0zOTMsNiArMzk3LDkgQEAKKyAgICAgICAgIFBhZGRpbmcuUEtDUzUsIElWUGFyYW1ldGVyU3Bl Y0NsYXNzZXMsIDE2LCBudWxsLCAyNTYpOyAvLyBubyBvaWQKKyAgICAgCisgICAgIHB1YmxpYyBz dGF0aWMgZmluYWwgRW5jcnlwdGlvbkFsZ29yaXRobQorLSAgICBBRVNfMjU2X0NCQ19QQUQgPSBB RVNfQ0JDX1BBRDsKKysgICAgQUVTXzI1Nl9DQkNfUEFEID0gbmV3IEVuY3J5cHRpb25BbGdvcml0 aG0oU0VDX09JRF9BRVNfMjU2X0NCQywKKysgICAgICAgIEFsZy5BRVMsIE1vZGUuQ0JDLAorKyAg ICAgICAgUGFkZGluZy5QS0NTNSwgSVZQYXJhbWV0ZXJTcGVjQ2xhc3NlcywgMTYsCisrICAgICAg ICBBRVNfUk9PVF9PSUQuc3ViQnJhbmNoKDQyKSwgMjU2KTsKKyAgICAgCisgfQorIyBIRyBjaGFu Z2VzZXQgcGF0Y2gKKyMgVXNlciBGcmFzZXIgVHdlZWRhbGU8ZnR3ZWVkYWxlQHJlZGhhdC5jb20+ CisjIERhdGUgMTUwNDg5NjYyMSAyNTIwMAorIyAgICAgIEZyaSBTZXAgMDggMTE6NTA6MjEgMjAx NyAtMDcwMAorIyBOb2RlIElEIDBiOGE2ZTg0YjZjNzM2NzQzZjIxODRiMmI4NThmZGE2YmU3NDA1 NDQKKyMgUGFyZW50ICBkMzllOWIzNzM3OThlYTlkNmFlN2YzNTA4OWIwNzE0Mzg0NWIyMTBlCitC dWcgMTM3MDc3OCBQQkUgYW5kIHBhZGRlZCBibG9jayBjaXBoZXIgZW5oYW5jZW1lbnRzIGFuZCBm aXhlcyAtCitwYXRjaCBqc3MtZnR3ZWVkYWwtMDAxMC1QSzExQ2lwaGVyLXVzZS1wYWQtbWVjaGFu aXNtLWZvci1hbGdvcml0aG1zLXRoYXQtdXNlLnBhdGNoCitTdWJqZWN0OiBQSzExQ2lwaGVyOiB1 c2UgcGFkIG1lY2hhbmlzbSBmb3IgYWxnb3JpdGhtcyB0aGF0IHVzZSBwYWRkaW5nCitGcm9tOiBG cmFzZXIgVHdlZWRhbGUgPGZ0d2VlZGFsQHJlZGhhdC5jb20+CittZXNzYWdlOgorUEsxMUNpcGhl cjogdXNlIHBhZCBtZWNoYW5pc20gZm9yIGFsZ29yaXRobXMgdGhhdCB1c2UgcGFkZGluZworVGhl IFBLMTFDaXBoZXIgaW1wbGVtZW50YXRpb24sIHdoZW4gaW5pdGlhbGlzaW5nIGEgY2lwaGVyIGNv bnRleHQsCit1c2VzIEpTU19nZXRQSzExTWVjaEZyb21BbGcoKSB0byByZXRyaWV2ZSB0aGUgUEtD UyAjMTEgbWVjaGFuaXNtIHRvCit1c2UuICBXaGVuIGEgSlNTIEVuY3J5cHRpb25BbGdvcml0aG0g dXNlcyBhIFNFQ19PSURfVEFHLCB0aGlzIHdpbGwKK3JldHVybiB0aGUgbm9uLXBhZGRlZCBtZWNo YW5pc20uICBUaGVuLCBpZiB0aGUgc2l6ZSBvZiB0aGUgZGF0YSBpcworbm90IGEgbXVsdGlwbGUg b2YgdGhlIGNpcGhlciBibG9jayBzaXplLCBhIHBhZGRpbmcgZXJyb3Igb2NjdXJzLgorCitXaGVu IHRoZSBFbmNyeXB0aW9uQWxnb3JpdGhtIGluZGljYXRlcyB0aGF0IHBhZGRpbmcgaXMgdG8gYmUg dXNlZCwKK2NhbGwgUEsxMV9HZXRQYWRNZWNoYW5pc20oKSBvbiB0aGUgcmVzdWx0IG9mIEpTU19n ZXRQSzExTWVjaEZyb21BbGcoKQordG8gZ2V0IHRoZSBwYWRkaW5nIHZhcmlhbnQgb2YgdGhlIG1l Y2hhbmlzbS4KKworY2Z1IGZvciBmdHdlZWRhbAorCitkaWZmIC1yIGQzOWU5YjM3Mzc5OCAtciAw YjhhNmU4NGI2Yzcgb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExQ2lwaGVyLmMKKy0tLSBhL29y Zy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUNpcGhlci5jCUZyaSBTZXAgMDggMTE6MzI6MzIgMjAx NyAtMDcwMAorKysrIGIvb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExQ2lwaGVyLmMJRnJpIFNl cCAwOCAxMTo1MDoyMSAyMDE3IC0wNzAwCitAQCAtMjQsMTYgKzI0LDE2IEBACisgSk5JRVhQT1JU IGpvYmplY3QgSk5JQ0FMTAorIEphdmFfb3JnX21vemlsbGFfanNzX3BrY3MxMV9QSzExQ2lwaGVy X2luaXRDb250ZXh0CisgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqYm9vbGVhbiBl bmNyeXB0LCBqb2JqZWN0IGtleU9iaiwKKy0gICAgICAgIGpvYmplY3QgYWxnT2JqLCBqYnl0ZUFy cmF5IGl2QkEpCisrICAgICAgICBqb2JqZWN0IGFsZ09iaiwgamJ5dGVBcnJheSBpdkJBLCBqYm9v bGVhbiBwYWRkZWQpCisgeworICAgICByZXR1cm4gSmF2YV9vcmdfbW96aWxsYV9qc3NfcGtjczEx X1BLMTFDaXBoZXJfaW5pdENvbnRleHRXaXRoS2V5Qml0cworLSAgICAgICAgKCBlbnYsIGNsYXp6 LCBlbmNyeXB0LCBrZXlPYmosIGFsZ09iaiwgaXZCQSwgMCk7CisrICAgICAgICAoIGVudiwgY2xh enosIGVuY3J5cHQsIGtleU9iaiwgYWxnT2JqLCBpdkJBLCAwLCBwYWRkZWQpOworIH0KKyAKKyBK TklFWFBPUlQgam9iamVjdCBKTklDQUxMCisgSmF2YV9vcmdfbW96aWxsYV9qc3NfcGtjczExX1BL MTFDaXBoZXJfaW5pdENvbnRleHRXaXRoS2V5Qml0cworICAgICAoSk5JRW52ICplbnYsIGpjbGFz cyBjbGF6eiwgamJvb2xlYW4gZW5jcnlwdCwgam9iamVjdCBrZXlPYmosCistICAgICAgICBqb2Jq ZWN0IGFsZ09iaiwgamJ5dGVBcnJheSBpdkJBLCBqaW50IGtleUJpdHMpCisrICAgICAgICBqb2Jq ZWN0IGFsZ09iaiwgamJ5dGVBcnJheSBpdkJBLCBqaW50IGtleUJpdHMsIGpib29sZWFuIHBhZGRl ZCkKKyB7CisgICAgIENLX01FQ0hBTklTTV9UWVBFIG1lY2g7CisgICAgIFBLMTFTeW1LZXkgKmtl eT1OVUxMOworQEAgLTUzLDYgKzUzLDkgQEAKKyAgICAgICAgIGdvdG8gZmluaXNoOworICAgICB9 CisgCisrICAgIGlmIChwYWRkZWQpCisrICAgICAgICBtZWNoID0gUEsxMV9HZXRQYWRNZWNoYW5p c20obWVjaCk7CisrCisgICAgIC8qIGdldCBvcGVyYXRpb24gdHlwZSAqLworICAgICBpZiggZW5j cnlwdCApIHsKKyAgICAgICAgIG9wID0gQ0tBX0VOQ1JZUFQ7CitkaWZmIC1yIGQzOWU5YjM3Mzc5 OCAtciAwYjhhNmU4NGI2Yzcgb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExQ2lwaGVyLmphdmEK Ky0tLSBhL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMUNpcGhlci5qYXZhCUZyaSBTZXAgMDgg MTE6MzI6MzIgMjAxNyAtMDcwMAorKysrIGIvb3JnL21vemlsbGEvanNzL3BrY3MxMS9QSzExQ2lw aGVyLmphdmEJRnJpIFNlcCAwOCAxMTo1MDoyMSAyMDE3IC0wNzAwCitAQCAtOTAsMTAgKzkwLDEz IEBACisgICAgICAgICBzdGF0ZSA9IEVOQ1JZUFQ7CisgCisgICAgICAgICBpZiggcGFyYW1ldGVy cyBpbnN0YW5jZW9mIFJDMlBhcmFtZXRlclNwZWMgKSB7CistICAgICAgICAgICAgY29udGV4dFBy b3h5ID0gaW5pdENvbnRleHRXaXRoS2V5Qml0cyggdHJ1ZSwga2V5LCBhbGdvcml0aG0sIElWLAor LSAgICAgICAgICAgICAgICAoKFJDMlBhcmFtZXRlclNwZWMpcGFyYW1ldGVycykuZ2V0RWZmZWN0 aXZlS2V5Qml0cygpICk7CisrICAgICAgICAgICAgY29udGV4dFByb3h5ID0gaW5pdENvbnRleHRX aXRoS2V5Qml0cygKKysgICAgICAgICAgICAgICAgdHJ1ZSwga2V5LCBhbGdvcml0aG0sIElWLAor KyAgICAgICAgICAgICAgICAoKFJDMlBhcmFtZXRlclNwZWMpcGFyYW1ldGVycykuZ2V0RWZmZWN0 aXZlS2V5Qml0cygpLAorKyAgICAgICAgICAgICAgICBhbGdvcml0aG0uaXNQYWRkZWQoKSk7Cisg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgIGNvbnRleHRQcm94eSA9IGluaXRDb250ZXh0 KCB0cnVlLCBrZXksIGFsZ29yaXRobSwgSVYgKTsKKysgICAgICAgICAgICBjb250ZXh0UHJveHkg PSBpbml0Q29udGV4dCgKKysgICAgICAgICAgICAgICAgdHJ1ZSwga2V5LCBhbGdvcml0aG0sIElW LCBhbGdvcml0aG0uaXNQYWRkZWQoKSk7CisgICAgICAgICB9CisgICAgIH0KKyAKK0BAIC0xMTIs MTAgKzExNSwxMyBAQAorICAgICAgICAgc3RhdGUgPSBERUNSWVBUOworIAorICAgICAgICAgaWYo IHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBSQzJQYXJhbWV0ZXJTcGVjICkgeworLSAgICAgICAgICAg IGNvbnRleHRQcm94eSA9IGluaXRDb250ZXh0V2l0aEtleUJpdHMoZmFsc2UsIGtleSwgYWxnb3Jp dGhtLCBJViwKKy0gICAgICAgICAgICAgICAgKChSQzJQYXJhbWV0ZXJTcGVjKXBhcmFtZXRlcnMp LmdldEVmZmVjdGl2ZUtleUJpdHMoKSApOworKyAgICAgICAgICAgIGNvbnRleHRQcm94eSA9IGlu aXRDb250ZXh0V2l0aEtleUJpdHMoCisrICAgICAgICAgICAgICAgIGZhbHNlLCBrZXksIGFsZ29y aXRobSwgSVYsCisrICAgICAgICAgICAgICAgICgoUkMyUGFyYW1ldGVyU3BlYylwYXJhbWV0ZXJz KS5nZXRFZmZlY3RpdmVLZXlCaXRzKCksCisrICAgICAgICAgICAgICAgIGFsZ29yaXRobS5pc1Bh ZGRlZCgpKTsKKyAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgY29udGV4dFByb3h5ID0g aW5pdENvbnRleHQoZmFsc2UsIGtleSwgYWxnb3JpdGhtLCBJVik7CisrICAgICAgICAgICAgY29u dGV4dFByb3h5ID0gaW5pdENvbnRleHQoCisrICAgICAgICAgICAgICAgIGZhbHNlLCBrZXksIGFs Z29yaXRobSwgSVYsIGFsZ29yaXRobS5pc1BhZGRlZCgpKTsKKyAgICAgICAgIH0KKyAgICAgfQor IAorQEAgLTE4MiwxMyArMTg4LDEzIEBACisgCisgICAgIHByaXZhdGUgc3RhdGljIG5hdGl2ZSBD aXBoZXJDb250ZXh0UHJveHkKKyAgICAgaW5pdENvbnRleHQoYm9vbGVhbiBlbmNyeXB0LCBTeW1t ZXRyaWNLZXkga2V5LCBFbmNyeXB0aW9uQWxnb3JpdGhtIGFsZywKKy0gICAgICAgICAgICAgICAg IGJ5dGVbXSBJVikKKysgICAgICAgICAgICAgICAgIGJ5dGVbXSBJViwgYm9vbGVhbiBwYWRkZWQp CisgICAgICAgICB0aHJvd3MgVG9rZW5FeGNlcHRpb247CisgCisgICAgIC8vIFRoaXMgdmVyc2lv biBhY2NlcHRzIHRoZSBudW1iZXIgb2YgZWZmZWN0aXZlIGtleSBiaXRzIGZvciBSQzIgQ0JDLgor ICAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmUgQ2lwaGVyQ29udGV4dFByb3h5CisgICAgIGluaXRD b250ZXh0V2l0aEtleUJpdHMoYm9vbGVhbiBlbmNyeXB0LCBTeW1tZXRyaWNLZXkga2V5LAorLSAg ICAgICAgICAgICAgICBFbmNyeXB0aW9uQWxnb3JpdGhtIGFsZywgYnl0ZVtdIElWLCBpbnQga2V5 Qml0cykKKysgICAgICAgICAgICAgICAgRW5jcnlwdGlvbkFsZ29yaXRobSBhbGcsIGJ5dGVbXSBJ ViwgaW50IGtleUJpdHMsIGJvb2xlYW4gcGFkZGVkKQorICAgICAgICAgdGhyb3dzIFRva2VuRXhj ZXB0aW9uOworIAorICAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmUgYnl0ZVtdCisjIEhHIGNoYW5n ZXNldCBwYXRjaAorIyBVc2VyIEZyYXNlciBUd2VlZGFsZTxmdHdlZWRhbGVAcmVkaGF0LmNvbT4K KyMgRGF0ZSAxNTA0ODk2ODE2IDI1MjAwCisjICAgICAgRnJpIFNlcCAwOCAxMTo1MzozNiAyMDE3 IC0wNzAwCisjIE5vZGUgSUQgYjNiNjUzZmFlZjg0NzVhZTAzYzY3MDc2NjQyOWZkNGRmYWIzN2E1 ZQorIyBQYXJlbnQgIDBiOGE2ZTg0YjZjNzM2NzQzZjIxODRiMmI4NThmZGE2YmU3NDA1NDQKK2J1 ZyAxMzcwNzc4IFBCRSBhbmQgcGFkZGVkIGJsb2NrIGNpcGhlciBlbmhhbmNlbWVudHMgYW5kIGZp eGVzIC0KK3BhdGNoIGpzcy1mdHdlZWRhbC0wMDEyLTItQWRkLW1ldGhvZC1FbmNyeXB0ZWRQcml2 YXRlS2V5SW5mby5jcmVhdGVQQkVTMi5wYXRjaAorU3ViamVjdDogQWRkIG1ldGhvZCBFbmNyeXB0 ZWRQcml2YXRlS2V5SW5mby5jcmVhdGVQQkVTMgorRnJvbTogRnJhc2VyIFR3ZWVkYWxlIDxmdHdl ZWRhbEByZWRoYXQuY29tPgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCitmb3VuZCBwYXRjaCBh dCBieXRlIDQwNAorbWVzc2FnZToKK0FkZCBtZXRob2QgRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8u Y3JlYXRlUEJFUzIKK1RoZSBjcmVhdGVQQkUgbWV0aG9kIGRvZXMgbm90IHN1cHBvcnQgUEJFUzIg KGl0IGlzIG5lY2Vzc2FyeSB0byBrbm93Cit0aGUgZGVzaXJlZCBlbmNyeXB0ZWQgYWxnb3JpdGht IHRvIGRlcml2ZSB0aGUga2V5IGFuZCBidWlsZCB0aGUKK3BhcmFtZXRlcnMgZGF0YSkuICBBZGQg dGhlIGNyZWF0ZVBCRVMyIG1ldGhvZCwgd2hpY2ggdXNlcyBQQktERjIgdG8KK2Rlcml2ZSB0aGUg c3ltbWV0cmljIGtleSBhbmQgYWxsb3dzIHRoZSBjYWxsZXIgdG8gc3BlY2lmeSB0aGUKK2VuY3J5 cHRpb24gYWxnb3JpdGhtLgorCitjZnUgZm9yIGZ0d2VlZGFsCisKK2RpZmYgLXIgMGI4YTZlODRi NmM3IC1yIGIzYjY1M2ZhZWY4NCBvcmcvbW96aWxsYS9qc3MvcGtpeC9wcmltaXRpdmUvRW5jcnlw dGVkUHJpdmF0ZUtleUluZm8uamF2YQorLS0tIGEvb3JnL21vemlsbGEvanNzL3BraXgvcHJpbWl0 aXZlL0VuY3J5cHRlZFByaXZhdGVLZXlJbmZvLmphdmEJRnJpIFNlcCAwOCAxMTo1MDoyMSAyMDE3 IC0wNzAwCisrKysgYi9vcmcvbW96aWxsYS9qc3MvcGtpeC9wcmltaXRpdmUvRW5jcnlwdGVkUHJp dmF0ZUtleUluZm8uamF2YQlGcmkgU2VwIDA4IDExOjUzOjM2IDIwMTcgLTA3MDAKK0BAIC0xNTUs NiArMTU1LDEwMCBAQAorIAorIAorICAgICAvKioKKysgICAgICogRXhwb3J0IGEgcHJpdmF0ZSBr ZXkgaW4gUEJFUzIgZm9ybWF0LCB1c2luZyBhIHJhbmRvbSBQQktERjIgc2FsdC4KKysgICAgICoK KysgICAgICogVG9rZW4gbXVzdCBzdXBwb3J0IHRoZSBDS01fUEtDUzVfUEJLRDIgbWVjaGFuaXNt LgorKyAgICAgKgorKyAgICAgKiBAcGFyYW0gc2FsdExlbiBMZW5ndGggb2Ygc2FsdCBpbiBieXRl cyAoZGVmYXVsdDogMTYpCisrICAgICAqIEBwYXJhbSBrZGZJdGVyYXRpb25zIFBCS0RGMiBpdGVy YXRpb25zIChkZWZhdWx0OiAyMDAwKQorKyAgICAgKiBAcGFyYW0gZW5jQWxnIFRoZSBzeW1tZXRy aWMgZW5jcnlwdGlvbiBhbGdvcml0aG0gZm9yIGVuY2lwaGVyaW5nIHRoZQorKyAgICAgKiAgICAg ICAgICAgICAgIHByaXZhdGUga2V5LiAgRGV0ZXJtaW5lcyB0aGUgc2l6ZSBvZiBkZXJpdmVkIGtl eS4KKysgICAgICogQHBhcmFtIHB3ZCBQYXNzd29yZAorKyAgICAgKiBAcGFyYW0gY2hhclRvQnl0 ZUNvbnZlcnRlciBUaGUgbWVjaGFuaXNtIGZvciBjb252ZXJ0aW5nIHRoZSBjaGFyYWN0ZXJzCisr ICAgICAqICAgICAgaW4gdGhlIHBhc3N3b3JkIGludG8gYnl0ZXMuICBJZiBudWxsLCB0aGUgZGVm YXVsdCBtZWNoYW5pc20KKysgICAgICogICAgICB3aWxsIGJlIHVzZWQsIHdoaWNoIGlzIFVURjgu CisrICAgICAqIEBwYXJhbSBwcml2YXRlS2V5SW5mbyBUaGUgZW5jb2RlZCBQcml2YXRlS2V5SW5m byB0byBiZSBlbmNyeXB0ZWQgYW5kCisrICAgICAqICAgICAgICAgICAgICAgICAgICAgICBzdG9y ZWQgaW4gdGhlIEVuY3J5cHRlZENvbnRlbnRJbmZvLgorKyAgICAgKi8KKysgICAgcHVibGljIHN0 YXRpYyBFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyBjcmVhdGVQQkVTMigKKysgICAgICAgICAgICBp bnQgc2FsdExlbiwKKysgICAgICAgICAgICBpbnQga2RmSXRlcmF0aW9ucywKKysgICAgICAgICAg ICBFbmNyeXB0aW9uQWxnb3JpdGhtIGVuY0FsZywKKysgICAgICAgICAgICBQYXNzd29yZCBwd2Qs CisrICAgICAgICAgICAgS2V5R2VuZXJhdG9yLkNoYXJUb0J5dGVDb252ZXJ0ZXIgY2hhclRvQnl0 ZUNvbnZlcnRlciwKKysgICAgICAgICAgICBQcml2YXRlS2V5SW5mbyBwcml2YXRlS2V5SW5mbykK KysgICAgICAgIHRocm93cyBDcnlwdG9NYW5hZ2VyLk5vdEluaXRpYWxpemVkRXhjZXB0aW9uLCBO b1N1Y2hBbGdvcml0aG1FeGNlcHRpb24sCisrICAgICAgICBJbnZhbGlkS2V5RXhjZXB0aW9uLCBJ bnZhbGlkQWxnb3JpdGhtUGFyYW1ldGVyRXhjZXB0aW9uLCBUb2tlbkV4Y2VwdGlvbiwKKysgICAg ICAgIENoYXJDb252ZXJzaW9uRXhjZXB0aW9uCisrICAgIHsKKysgICAgICAgIGlmIChlbmNBbGcg PT0gbnVsbCkKKysgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9u KCJlbmNBbGcgY2Fubm90IGJlIG51bGwiKTsKKysgICAgICAgIGlmIChwd2QgPT0gbnVsbCkKKysg ICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJwd2QgY2Fubm90 IGJlIG51bGwiKTsKKysgICAgICAgIGlmIChwcml2YXRlS2V5SW5mbyA9PSBudWxsKQorKyAgICAg ICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInByaXZhdGVLZXlJbmZv IGNhbm5vdCBiZSBudWxsIik7CisrCisrICAgICAgICBpZiAoa2RmSXRlcmF0aW9ucyA8IDEpCisr ICAgICAgICAgICAga2RmSXRlcmF0aW9ucyA9IDIwMDA7CisrICAgICAgICBpZiAoc2FsdExlbiA8 IDEpCisrICAgICAgICAgICAgc2FsdExlbiA9IDE2OworKworKyAgICAgICAgdHJ5IHsKKysgICAg ICAgICAgICAvLyBnZW5lcmF0ZSByYW5kb20gUEJLREYyIHNhbHQKKysgICAgICAgICAgICBTZWN1 cmVSYW5kb20gcmFuZG9tID0gbmV3IFNlY3VyZVJhbmRvbSgpOworKyAgICAgICAgICAgIGJ5dGUg c2FsdFtdID0gbmV3IGJ5dGVbc2FsdExlbl07CisrICAgICAgICAgICAgcmFuZG9tLm5leHRCeXRl cyhzYWx0KTsKKysKKysgICAgICAgICAgICAvLyBkZXJpdmUgc3ltbWV0cmljIGtleSBmcm9tIHBh c3NwaHJhc2UgdXNpbmcgUEJLREYyCisrICAgICAgICAgICAgQ3J5cHRvTWFuYWdlciBjbSA9IENy eXB0b01hbmFnZXIuZ2V0SW5zdGFuY2UoKTsKKysgICAgICAgICAgICBDcnlwdG9Ub2tlbiB0b2tl biA9IGNtLmdldEludGVybmFsQ3J5cHRvVG9rZW4oKTsKKysgICAgICAgICAgICBLZXlHZW5lcmF0 b3Iga2cgPSB0b2tlbi5nZXRLZXlHZW5lcmF0b3IoCisrICAgICAgICAgICAgICAgIFBCRUFsZ29y aXRobS5QQkVfUEtDUzVfUEJLREYyKTsKKysgICAgICAgICAgICBQQkVLZXlHZW5QYXJhbXMgcGJl a2dQYXJhbXMgPSBuZXcgUEJFS2V5R2VuUGFyYW1zKAorKyAgICAgICAgICAgICAgICBwd2QuZ2V0 Q2hhcnMoKSwgc2FsdCwga2RmSXRlcmF0aW9ucywgZW5jQWxnKTsKKysgICAgICAgICAgICBpZiAo Y2hhclRvQnl0ZUNvbnZlcnRlciAhPSBudWxsKQorKyAgICAgICAgICAgICAgICBrZy5zZXRDaGFy VG9CeXRlQ29udmVydGVyKGNoYXJUb0J5dGVDb252ZXJ0ZXIpOworKyAgICAgICAgICAgIGtnLmlu aXRpYWxpemUocGJla2dQYXJhbXMpOworKyAgICAgICAgICAgIFN5bW1ldHJpY0tleSBzayA9IGtn LmdlbmVyYXRlKCk7CisrCisrICAgICAgICAgICAgLy8gZW5jcnlwdCBQcml2YXRlS2V5SW5mbwor KyAgICAgICAgICAgIGJ5dGUgaXZbXSA9IG5ldyBieXRlW2VuY0FsZy5nZXRCbG9ja1NpemUoKV07 CisrICAgICAgICAgICAgcmFuZG9tLm5leHRCeXRlcyhpdik7CisrICAgICAgICAgICAgQ2lwaGVy IGNpcGhlciA9IHRva2VuLmdldENpcGhlckNvbnRleHQoZW5jQWxnKTsKKysgICAgICAgICAgICBj aXBoZXIuaW5pdEVuY3J5cHQoc2ssIG5ldyBJVlBhcmFtZXRlclNwZWMoaXYpKTsKKysgICAgICAg ICAgICBieXRlW10gZW5jRGF0YSA9IGNpcGhlci5kb0ZpbmFsKEFTTjFVdGlsLmVuY29kZShwcml2 YXRlS2V5SW5mbykpOworKworKyAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBLREYgQWxnb3JpdGht SWRlbnRpZmllcgorKyAgICAgICAgICAgIFNFUVVFTkNFIHBhcmFtc0tkZiA9IG5ldyBTRVFVRU5D RSgpOworKyAgICAgICAgICAgIHBhcmFtc0tkZi5hZGRFbGVtZW50KG5ldyBPQ1RFVF9TVFJJTkco c2FsdCkpOworKyAgICAgICAgICAgIHBhcmFtc0tkZi5hZGRFbGVtZW50KG5ldyBJTlRFR0VSKChs b25nKSBrZGZJdGVyYXRpb25zKSk7CisrICAgICAgICAgICAgcGFyYW1zS2RmLmFkZEVsZW1lbnQo bmV3IElOVEVHRVIoKGxvbmcpIHNrLmdldExlbmd0aCgpKSk7CisrICAgICAgICAgICAgQWxnb3Jp dGhtSWRlbnRpZmllciBhbGdJZEtkZiA9IG5ldyBBbGdvcml0aG1JZGVudGlmaWVyKAorKyAgICAg ICAgICAgICAgICBQQkVBbGdvcml0aG0uUEJFX1BLQ1M1X1BCS0RGMi50b09JRCgpLCBwYXJhbXNL ZGYpOworKworKyAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBlbmNyeXB0aW9uIEFsZ29yaXRobUlk ZW50aWZpZXIKKysgICAgICAgICAgICBBbGdvcml0aG1JZGVudGlmaWVyIGFsZ0lkRW5jID0gbmV3 IEFsZ29yaXRobUlkZW50aWZpZXIoCisrICAgICAgICAgICAgICAgIGVuY0FsZy50b09JRCgpLCBu ZXcgT0NURVRfU1RSSU5HKGl2KSk7CisrCisrICAgICAgICAgICAgLy8gY29uc3RydWN0ICJjb21w b3NpdGUiIFBCRVMyIEFsZ29yaXRobUlkZW50aWZpZXIKKysgICAgICAgICAgICBTRVFVRU5DRSBw YXJhbXNQQkVTMiA9IG5ldyBTRVFVRU5DRSgpOworKyAgICAgICAgICAgIHBhcmFtc1BCRVMyLmFk ZEVsZW1lbnQoYWxnSWRLZGYpOworKyAgICAgICAgICAgIHBhcmFtc1BCRVMyLmFkZEVsZW1lbnQo YWxnSWRFbmMpOworKyAgICAgICAgICAgIEFsZ29yaXRobUlkZW50aWZpZXIgYWxnSWRQQkVTMiA9 IG5ldyBBbGdvcml0aG1JZGVudGlmaWVyKAorKyAgICAgICAgICAgICAgICBQQkVBbGdvcml0aG0u UEJFX1BLQ1M1X1BCRVMyLnRvT0lEKCksIHBhcmFtc1BCRVMyKTsKKysKKysgICAgICAgICAgICAv LyBjb25zdHJ1Y3QgRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8KKysgICAgICAgICAgICByZXR1cm4g bmV3IEVuY3J5cHRlZFByaXZhdGVLZXlJbmZvKGFsZ0lkUEJFUzIsIG5ldyBPQ1RFVF9TVFJJTkco ZW5jRGF0YSkpOworKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEJsb2NrU2l6ZUV4Y2VwdGlvbiBl KSB7CisrICAgICAgICAgICAgQXNzZXJ0Lm5vdFJlYWNoZWQoIklsbGVnYWxCbG9ja1NpemVFeGNl cHRpb24gaW4gRW5jcnlwdGVkQ29udGVudEluZm8uY3JlYXRlUEJFUzIiKTsKKysgICAgICAgIH0g Y2F0Y2ggKEJhZFBhZGRpbmdFeGNlcHRpb24gZSkgeworKyAgICAgICAgICAgIEFzc2VydC5ub3RS ZWFjaGVkKCJCYWRQYWRkaW5nRXhjZXB0aW9uIGluIEVuY3J5cHRlZENvbnRlbnRJbmZvLmNyZWF0 ZVBCRVMyIik7CisrICAgICAgICB9CisrICAgICAgICByZXR1cm4gbnVsbDsgLy8gdW5yZWFjaGFi bGUKKysgICAgfQorKworKworKyAgICAvKioKKyAgICAgICogQ3JlYXRlcyBhIG5ldyBFbmNyeXB0 ZWRQcml2YXRlS2V5SW5mbywgd2hlcmUgdGhlIGRhdGEgaXMgZW5jcnlwdGVkCisgICAgICAqIHdp dGggYSBwYXNzd29yZC1iYXNlZCBrZXktIAorICAgICAgKiAgICAgICB3aXRoIHdyYXBwaW5nL3Vu d3JhcHBpbmcgaGFwcGVuaW5nIG9uIHRva2VuLgorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNl ciBGcmFzZXIgVHdlZWRhbGU8ZnR3ZWVkYWxlQHJlZGhhdC5jb20+CisjIERhdGUgMTUwNDg5Njk2 NCAyNTIwMAorIyAgICAgIEZyaSBTZXAgMDggMTE6NTY6MDQgMjAxNyAtMDcwMAorIyBOb2RlIElE IDg3ZGNhMDdmNzUyOTQ2MzM5ODczNGQxMjc5YmNmZDcwMjNhNDNkNGMKKyMgUGFyZW50ICBiM2I2 NTNmYWVmODQ3NWFlMDNjNjcwNzY2NDI5ZmQ0ZGZhYjM3YTVlCitCdWcgMTM3MDc3OCBQQkUgYW5k IHBhZGRlZCBibG9jayBjaXBoZXIgZW5oYW5jZW1lbnRzIGFuZCBmaXhlcyAtCitwYXRjaCAganNz LWZ0d2VlZGFsLTAwMTMtSW1wcm92ZS1lcnJvci1yZXBvcnRpbmcucGF0Y2gKK1N1YmplY3Q6IElt cHJvdmUgZXJyb3IgcmVwb3J0aW5nCitGcm9tOiBGcmFzZXIgVHdlZWRhbGUgPGZ0d2VlZGFsQHJl ZGhhdC5jb20+CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KK2ZvdW5kIHBhdGNoIGF0IGJ5dGUg MTU3CittZXNzYWdlOgorSW1wcm92ZSBlcnJvciByZXBvcnRpbmcKKworY2Z1IGZvciBmdHdlZWRh bAorCitkaWZmIC1yIGIzYjY1M2ZhZWY4NCAtciA4N2RjYTA3Zjc1Mjkgb3JnL21vemlsbGEvanNz L3BrY3MxMS9QSzExS2V5V3JhcHBlci5jCistLS0gYS9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BL MTFLZXlXcmFwcGVyLmMJRnJpIFNlcCAwOCAxMTo1MzozNiAyMDE3IC0wNzAwCisrKysgYi9vcmcv bW96aWxsYS9qc3MvcGtjczExL1BLMTFLZXlXcmFwcGVyLmMJRnJpIFNlcCAwOCAxMTo1NjowNCAy MDE3IC0wNzAwCitAQCAtMjUxLDkgKzI1MSw3IEBACisgICAgIHN0YXR1cyA9IFBLMTFfV3JhcFBy aXZLZXkoc2xvdCwgd3JhcHBpbmcsIHRvQmVXcmFwcGVkLCBtZWNoLCBwYXJhbSwKKyAgICAgICAg ICAgICAgICAgJndyYXBwZWQsIE5VTEwgLyogd2luY3ggKi8gKTsKKyAgICAgaWYoc3RhdHVzICE9 IFNFQ1N1Y2Nlc3MpIHsKKy0gICAgICAgIGNoYXIgZXJyWzI1Nl0gPSB7MH07CistICAgICAgICBQ Ul9zbnByaW50ZihlcnIsIDI1NiwgIldyYXBwaW5nIG9wZXJhdGlvbiBmYWlsZWQgb24gdG9rZW46 JWQiLCBQUl9HZXRFcnJvcigpKTsKKy0gICAgICAgIEpTU190aHJvd01zZyhlbnYsIFRPS0VOX0VY Q0VQVElPTiwgZXJyKTsKKysgICAgICAgIEpTU190aHJvd01zZ1ByRXJyKGVudiwgVE9LRU5fRVhD RVBUSU9OLCAiV3JhcHBpbmcgb3BlcmF0aW9uIGZhaWxlZCBvbiB0b2tlbiIpOworICAgICAgICAg Z290byBmaW5pc2g7CisgICAgIH0KKyAgICAgUFJfQVNTRVJUKHdyYXBwZWQubGVuPjAgJiYgd3Jh cHBlZC5kYXRhIT1OVUxMKTsKK0BAIC00NTAsOCArNDQ4LDggQEAKKyAgICAgICAgICAgICAgICAg YXR0cmlicywgbnVtQXR0cmlicywgTlVMTCAvKndpbmN4Ki8pOworICAgICBpZiggcHJpdmsgPT0g TlVMTCApIHsKKyAgICAgICAgIGNoYXIgZXJyWzI1Nl0gPSB7MH07CistICAgICAgICBQUl9zbnBy aW50ZihlcnIsIDI1NiwgIktleSBVbndyYXAgZmFpbGVkIG9uIHRva2VuOmVycm9yPSVkLCBrZXlU eXBlPSVkIiwgUFJfR2V0RXJyb3IoKSwga2V5VHlwZSk7CistICAgICAgICBKU1NfdGhyb3dNc2co ZW52LCBUT0tFTl9FWENFUFRJT04sIGVycik7CisrICAgICAgICBQUl9zbnByaW50ZihlcnIsIDI1 NiwgIktleSBVbndyYXAgZmFpbGVkIG9uIHRva2VuOyBrZXlUeXBlPSVkIiwga2V5VHlwZSk7Cisr ICAgICAgICBKU1NfdGhyb3dNc2dQckVycihlbnYsIFRPS0VOX0VYQ0VQVElPTiwgZXJyKTsKKyAg ICAgICAgIGdvdG8gZmluaXNoOworICAgICB9CisgICAgICAgICAgICAgICAgIAorZGlmZiAtciBi M2I2NTNmYWVmODQgLXIgODdkY2EwN2Y3NTI5IG9yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMVN0 b3JlLmMKKy0tLSBhL29yZy9tb3ppbGxhL2pzcy9wa2NzMTEvUEsxMVN0b3JlLmMJRnJpIFNlcCAw OCAxMTo1MzozNiAyMDE3IC0wNzAwCisrKysgYi9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFT dG9yZS5jCUZyaSBTZXAgMDggMTE6NTY6MDQgMjAxNyAtMDcwMAorQEAgLTczNCw3ICs3MzQsNyBA QAorICAgICAgICAgUFJfVFJVRSAvKiBpc3Blcm0gKi8sIFBSX1RSVUUgLyogaXNwcml2YXRlICov LAorICAgICAgICAgcHViS2V5LT5rZXlUeXBlLCBrZXlVc2FnZSwgTlVMTCAvKiB3aW5jeCAqLyk7 CisgICAgIGlmIChyZXN1bHQgIT0gU0VDU3VjY2VzcykgeworLSAgICAgICAgSlNTX3Rocm93TXNn KAorKyAgICAgICAgSlNTX3Rocm93TXNnUHJFcnIoCisgICAgICAgICAgICAgZW52LCBUT0tFTl9F WENFUFRJT04sCisgICAgICAgICAgICAgIkZhaWxlZCB0byBpbXBvcnQgRW5jcnlwdGVkUHJpdmF0 ZUtleUluZm8gdG8gdG9rZW4iKTsKKyAgICAgICAgIGdvdG8gZmluaXNoOwoKZGlmZiAtLWdpdCBh L2pzcy1maXgtUEsxMVN0b3JlLWdldEVuY3J5cHRlZFByaXZhdGVLZXlJbmZvLXNlZ2ZhdWx0LnBh dGNoIGIvanNzLWZpeC1QSzExU3RvcmUtZ2V0RW5jcnlwdGVkUHJpdmF0ZUtleUluZm8tc2VnZmF1 bHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI5M2RjMAotLS0g L2Rldi9udWxsCisrKyBiL2pzcy1maXgtUEsxMVN0b3JlLWdldEVuY3J5cHRlZFByaXZhdGVLZXlJ bmZvLXNlZ2ZhdWx0LnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNo CisjIFVzZXIgRnJhc2VyIFR3ZWVkYWxlPGZ0d2VlZGFsZUByZWRoYXQuY29tPgorIyBEYXRlIDE1 MDUxNzU4NjIgMjUyMDAKKyMgICAgICBNb24gU2VwIDExIDE3OjI0OjIyIDIwMTcgLTA3MDAKKyMg Tm9kZSBJRCAzZTlhNWFlMjE0OWQwNDg3N2RjMTliMTE3YTg5MTdjMjI4NTRmOGViCisjIFBhcmVu dCAgODdkY2EwN2Y3NTI5NDYzMzk4NzM0ZDEyNzliY2ZkNzAyM2E0M2Q0YworQnVnIDEzNzExNDcg UEsxMVN0b3JlLmdldEVuY3J5cHRlZFByaXZhdGVLZXlJbmZvKCkgc2VnZmF1bHQgaWYgZXhwb3J0 IGZhaWxzIC0KK3BhdGNoIGpzcy1mdHdlZWRhbC0wMDExLURvbi10LWNyYXNoLWlmLVBLMTFfRXhw b3J0RW5jcnlwdGVkUHJpdktleUluZm8tcmV0dXIucGF0Y2gKK1N1YmplY3Q6IERvbid0IGNyYXNo IGlmIFBLMTFfRXhwb3J0RW5jcnlwdGVkUHJpdktleUluZm8gcmV0dXJucyBOVUxMCitGcm9tOiBG cmFzZXIgVHdlZWRhbGUgPGZ0d2VlZGFsQHJlZGhhdC5jb20+CitDb250ZW50LVR5cGU6IHRleHQv cGxhaW4KK2ZvdW5kIHBhdGNoIGF0IGJ5dGUgMjM5CittZXNzYWdlOgorRG9uJ3QgY3Jhc2ggaWYg UEsxMV9FeHBvcnRFbmNyeXB0ZWRQcml2S2V5SW5mbyByZXR1cm5zIE5VTEwKK1BLMTFfRXhwb3J0 RW5jcnlwdGVkUHJpdktleUluZm8gcmV0dXJuaW5nIE5VTEwgaXMgbm90IGJlaW5nIGhhbmRsZWQK K3Byb3Blcmx5LCBjYXVzaW5nIHNlZ2ZhdWx0LiAgRGV0ZWN0IHRoaXMgY29uZGl0aW9uIGFuZCBy YWlzZSBhCitUb2tlbkV4Y2VwdGlvbiBpbnN0ZWFkLgorCitjZnUgZm9yIGZ0d2VlZGFsCisKK2Rp ZmYgLXIgODdkY2EwN2Y3NTI5IC1yIDNlOWE1YWUyMTQ5ZCBvcmcvbW96aWxsYS9qc3MvcGtjczEx L1BLMTFTdG9yZS5jCistLS0gYS9vcmcvbW96aWxsYS9qc3MvcGtjczExL1BLMTFTdG9yZS5jCUZy aSBTZXAgMDggMTE6NTY6MDQgMjAxNyAtMDcwMAorKysrIGIvb3JnL21vemlsbGEvanNzL3BrY3Mx MS9QSzExU3RvcmUuYwlNb24gU2VwIDExIDE3OjI0OjIyIDIwMTcgLTA3MDAKK0BAIC01ODEsNiAr NTgxLDExIEBACisgICAgIC8vIGV4cG9ydCB0aGUgZXBraQorICAgICBlcGtpID0gUEsxMV9FeHBv cnRFbmNyeXB0ZWRQcml2S2V5SW5mbygKKyAgICAgICAgIHNsb3QsIGFsZ1RhZywgcHdJdGVtLCBw cml2aywgaXRlcmF0aW9ucywgTlVMTCAvKndpbmN4Ki8pOworKyAgICBpZiAoZXBraSA9PSBOVUxM KSB7CisrICAgICAgICBKU1NfdGhyb3dNc2dQckVycigKKysgICAgICAgICAgICBlbnYsIFRPS0VO X0VYQ0VQVElPTiwgIkZhaWxlZCB0byBleHBvcnQgRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8iKTsK KysgICAgICAgIGdvdG8gZmluaXNoOworKyAgICB9CisgCisgICAgIC8vIERFUi1lbmNvZGUgdGhl IGVwa2kKKyAgICAgaWYgKFNFQ19BU04xRW5jb2RlSXRlbShOVUxMLCAmZXBraUl0ZW0sIGVwa2ks CgpkaWZmIC0tZ2l0IGEvanNzLnNwZWMgYi9qc3Muc3BlYwppbmRleCBiOTRmNjhjLi43ZmNlZGI1 IDEwMDY0NAotLS0gYS9qc3Muc3BlYworKysgYi9qc3Muc3BlYwpAQCAtMSw2ICsxLDYgQEAKIE5h bWU6ICAgICAgICAgICBqc3MKIFZlcnNpb246ICAgICAgICA0LjQuMgotUmVsZWFzZTogICAgICAg IDQlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDUlez9kaXN0fQogU3VtbWFyeTogICAgICAgIEph dmEgU2VjdXJpdHkgU2VydmljZXMgKEpTUykKIAogR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZp cm9ubWVudC9MaWJyYXJpZXMKQEAgLTMyLDYgKzMyLDEwIEBAIEJ1aWxkUmVxdWlyZXM6ICBwZXJs LWludGVycHJldGVyCiBSZXF1aXJlczogICAgICAgamF2YS1oZWFkbGVzcwogUmVxdWlyZXM6ICAg ICAgIG5zcyA+PSAzLjI4LjQtNgogCitQYXRjaDE6ICAgICAgICAganNzLUhNQUMtdGVzdC1mb3It QUVTLWVuY3J5cHQtdW53cmFwLnBhdGNoCitQYXRjaDI6ICAgICAgICAganNzLVBCRS1wYWRkZWQt YmxvY2stY2lwaGVyLWVuaGFuY2VtZW50cy5wYXRjaAorUGF0Y2gzOiAgICAgICAgIGpzcy1maXgt UEsxMVN0b3JlLWdldEVuY3J5cHRlZFByaXZhdGVLZXlJbmZvLXNlZ2ZhdWx0LnBhdGNoCisKICVk ZXNjcmlwdGlvbgogSmF2YSBTZWN1cml0eSBTZXJ2aWNlcyAoSlNTKSBpcyBhIGphdmEgbmF0aXZl IGludGVyZmFjZSB3aGljaCBwcm92aWRlcyBhIGJyaWRnZQogZm9yIGphdmEtYmFzZWQgYXBwbGlj YXRpb25zIHRvIHVzZSBuYXRpdmUgTmV0d29yayBTZWN1cml0eSBTZXJ2aWNlcyAoTlNTKS4KQEAg LTQ3LDYgKzUxLDkgQEAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBBUEkgZG9jdW1lbnRhdGlv biBmb3IgSlNTLgogCiAlcHJlcAogJXNldHVwIC1xIC1uICV7bmFtZX0tJXt2ZXJzaW9ufQorJXBh dGNoMSAtZCBqc3MgLXAxCislcGF0Y2gyIC1kIGpzcyAtcDEKKyVwYXRjaDMgLWQganNzIC1wMQog CiAlYnVpbGQKIFsgLXogIiRKQVZBX0hPTUUiIF0gJiYgZXhwb3J0IEpBVkFfSE9NRT0le19qdm1k aXJ9L2phdmEKQEAgLTEzOCw2ICsxNDUsMTQgQEAgcm0gLXJmICRSUE1fQlVJTERfUk9PVAogJXtf amF2YWRvY2Rpcn0vJXtuYW1lfS0le3ZlcnNpb259LyoKIAogJWNoYW5nZWxvZworKiBNb24gU2Vw IDExIDIwMTcgRG9ndGFnIFRlYW0gPHBraS1kZXZlbEByZWRoYXQuY29tPiA0LjQuMi01CistIE1v emlsbGEgQnVnemlsbGEgIzEzNzA3NzggLSBQQkUgYW5kIHBhZGRlZCBibG9jayBjaXBoZXIgZW5o YW5jZW1lbnRzIGFuZAorICBmaXhlcyAoZnR3ZWVkYWwpCistIE1vemlsbGEgQnVnemlsbGEgIzEz NzExNDcgLSBQSzExU3RvcmUuZ2V0RW5jcnlwdGVkUHJpdmF0ZUtleUluZm8oKSBzZWdmYXVsdAor ICBpZiBleHBvcnQgZmFpbHMgKGZ0d2VlZGFsKQorLSBNb3ppbGxhIEJ1Z3ppbGxhICMxMzczODI0 IC0gTW96aWxsYSBCdWcgIzEzNzM4MjQgLSBCdWcgMTMwODAyNyAoY2hhbmdlIDIxNjMpCisgIGJy ZWFrcyBITUFDLVNIQTEga2V5IGltcG9ydHMgKGptYWduZSkKKwogKiBUaHUgQXVnIDAzIDIwMTcg RmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0 LjQuMi00CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRv cmFfMjdfQmludXRpbHNfTWFzc19SZWJ1aWxkCiAK