From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14555 invoked from network); 29 Aug 2020 03:19:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Aug 2020 03:19:47 -0000 Content-Type: multipart/mixed; boundary="===============5129957638715554735==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_freecad=3A_fix_build_for_vtk9_and_musl=2E?= To: ml@inbox.vuxu.org From: ericonr Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 29 Aug 2020 05:19:44 +0200 List-Id: Message-ID: <20200829031944.7ps9J5mzeBlm7CAPQ137mOmzBv8COVkzrnpiKash7pI@z> GitHub notification mails are now in MIME to allow UTF8. --===============5129957638715554735== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZXJpY29uciBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZXJp Y29uci92b2lkLXBhY2thZ2VzIGNhZApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjQ1MzAKCmZyZWVjYWQ6IGZpeCBidWlsZCBmb3IgdnRrOSBhbmQgbXVz bC4KTmV3IHBhdGNoIGFuZCBhZGQgbGliZXhlY2luZm8gdG8gbWFrZWRlcGVuZHMuDQoNCltjaSBz a2lwXQoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzI0NTMwLnBhdGNoIGlzIGF0dGFjaGVk --===============5129957638715554735== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cad-24530.patch" RnJvbSA0NmQzNWRhMDU0ZDI4MzI0NTNlMzI0NDRmZjhhZDU5ODczMDM5MjdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUMzPTg5cmljbz0yMFJvbGltPz0gPGVyaWNv LmVyY0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjggQXVnIDIwMjAgMjM6MDQ6NTcgLTAzMDAKU3Vi amVjdDogW1BBVENIXSBmcmVlY2FkOiBmaXggYnVpbGQgZm9yIHZ0azkgYW5kIG11c2wuCgpOZXcg cGF0Y2gsIGFkZCBsaWJleGVjaW5mbyB0byBtYWtlZGVwZW5kcyBhbmQgc3RvcCByZW1vdmluZyBx dDUtd2Via2l0CmZvciBtdXNsLgoKW2NpIHNraXBdCi0tLQogc3JjcGtncy9mcmVlY2FkL3BhdGNo ZXMvMTUwLXZ0azkucGF0Y2ggfCA3NjAgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtn cy9mcmVlY2FkL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgIDggKy0KIDIgZmlsZXMgY2hhbmdl ZCwgNzYzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRj aGVzLzE1MC12dGs5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5lOGZiNWVjMTRiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVz LzE1MC12dGs5LnBhdGNoCkBAIC0wLDAgKzEsNzYwIEBACitUYWtlbiBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS93d21heWVyL0ZyZWVDQUQvY29tbWl0LzUyNTk5Zjc3MWZhOTM0Y2VlYjExYTk3MGMz NjM5YmZhOGY5MDQxMWUKKworZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5j L1NNRFNfTWVzaEVsZW1lbnQuaHh4IGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURT X01lc2hFbGVtZW50Lmh4eAoraW5kZXggMTRhNmQ5YTc2Li43YjlkODhkYjEgMTAwNjQ0CistLS0g c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eAorKysrIHNy Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5oeHgKK0BAIC00MCwx MCArNDAsMTYgQEAKKyAKKyAjaW5jbHVkZSA8dnRrVHlwZS5oPgorICNpbmNsdWRlIDx2dGtDZWxs VHlwZS5oPgorKyNpbmNsdWRlIDx2dGtDZWxsQXJyYXkuaD4KKyAKKyAvL3R5cGVkZWYgdW5zaWdu ZWQgc2hvcnQgVVNob3J0VHlwZTsKKyB0eXBlZGVmIHNob3J0IFNob3J0VHlwZTsKKyB0eXBlZGVm IGludCAgIExvbmdUeXBlOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgorK3R5cGVkZWYgY29u c3QgdnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7CisrI2Vsc2UKKyt0eXBlZGVmIHZ0a0lkVHlwZSog dnRrSWRUeXBlUHRyOworKyNlbmRpZgorIAorIGNsYXNzIFNNRFNfTWVzaE5vZGU7CisgY2xhc3Mg U01EU19NZXNoRWRnZTsKK0BAIC0xOTIsNyArMTk4LDcgQEAgcHJvdGVjdGVkOgorICAgLy8hIEVs ZW1lbnQgaW5kZXggaW4gdmVjdG9yIFNNRFNfTWVzaDo6bXlOb2RlcyBvciBTTURTX01lc2g6Om15 Q2VsbHMKKyAgIGludCBteUlEOworICAgLy8hIGluZGV4IGluIHZ0a1Vuc3RydWN0dXJlZEdyaWQK Ky0gIGludCBteVZ0a0lEOworKyAgdnRrSWRUeXBlIG15VnRrSUQ7CisgICAvLyEgU01EU19NZXNo IGlkZW50aWZpY2F0aW9uIGluIFNNRVNICisgICBTaG9ydFR5cGUgbXlNZXNoSWQ7CisgICAvLyEg U3ViU2hhcGUgYW5kIFN1Yk1lc2ggaWRlbnRpZmljYXRpb24gaW4gU01FU0hEUworZGlmZiAtLWdp dCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHgg Yi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHgK K2luZGV4IDllNGEyM2VkZC4uNzc0NjU4MTQ1IDEwMDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9pbmMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmh4eAorKysrIHNyYy8zcmRQYXJ0eS9z YWxvbWVzbWVzaC9pbmMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmh4eAorQEAgLTk1LDcgKzk1LDEx IEBAIHB1YmxpYzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6 Om1hcDxpbnQsIHN0ZDo6bWFwPGxvbmcsaW50PiA+JiBub2RlUXVhZERvbWFpbnMpOworICAgdnRr Q2VsbExpbmtzKiBHZXRMaW5rcygpCisgICB7CisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCisr ICAgIHJldHVybiBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3MqPihHZXRDZWxsTGlua3MoKSk7Cisr I2Vsc2UKKyAgICAgcmV0dXJuIExpbmtzOworKyNlbmRpZgorICAgfQorICAgU01EU19Eb3dud2Fy ZCogZ2V0RG93bkFycmF5KHVuc2lnbmVkIGNoYXIgdnRrVHlwZSkKKyAgIHsKK2RpZmYgLS1naXQg c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQuY3BwIGIv c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQuY3BwCitp bmRleCAyOTkwOTNjOTQuLjk5MGUyYjY0MSAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21l c21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAKKysrKyBzcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAKK0BAIC02OCw5ICs2OCwxMyBA QCBib29sIFNNRFNfQmFsbEVsZW1lbnQ6OkNoYW5nZU5vZGUgKGNvbnN0IFNNRFNfTWVzaE5vZGUg KiBub2RlKQorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0g IHZ0a0lkVHlwZSogcHRzID0gMDsKKysgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOworICAgZ3JpZC0+ R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJB WV9WMgorKy8vRklYTUU6IHZ0azkKKysjZWxzZQorICAgcHRzWzBdID0gbm9kZS0+Z2V0VnRrSWQo KTsKKysjZW5kaWYKKyAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2Rp ZmllZCgpOworICAgcmV0dXJuIHRydWU7CisgfQorQEAgLTgzLDcgKzg3LDggQEAgdm9pZCBTTURT X0JhbGxFbGVtZW50OjpQcmludCAoc3RkOjpvc3RyZWFtICYgT1MpIGNvbnN0CisgY29uc3QgU01E U19NZXNoTm9kZSogU01EU19CYWxsRWxlbWVudDo6R2V0Tm9kZSAoY29uc3QgaW50IGluZCkgY29u c3QKKyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExp c3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CistICB2dGtJZFR5cGUgbnB0cywgKnB0czsKKysgIHZ0 a0lkVHlwZSBucHRzOworKyAgdnRrSWRUeXBlUHRyIHB0czsKKyAgIGdyaWQtPkdldENlbGxQb2lu dHMoIG15VnRrSUQsIG5wdHMsIHB0cyApOworICAgcmV0dXJuIFNNRFNfTWVzaDo6X21lc2hMaXN0 W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgMCBdKTsKKyB9CitkaWZmIC0tZ2l0IHNyYy8z cmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcCBiL3NyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAoraW5kZXggZDYwNDlj MGJkLi43NzU1NWQ1YmMgMTAwNjQ0CistLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfRG93bndhcmQuY3BwCisrKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfRG93bndhcmQuY3BwCitAQCAtMzAzLDcgKzMwMyw3IEBAIGludCBTTURTX0Rvd24x RDo6Z2V0Tm9kZVNldChpbnQgY2VsbElkLCBpbnQqIG5vZGVTZXQpCisgdm9pZCBTTURTX0Rvd24x RDo6c2V0Tm9kZXMoaW50IGNlbGxJZCwgaW50IHZ0a0lkKQorIHsKKyAgIHZ0a0lkVHlwZSBucHRz ID0gMDsKKy0gIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdz IG9mIHRoZSBmYWNlCisrICB2dGtJZFR5cGVQdHIgcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBw b2ludCBpZCdzIG9mIHRoZSBmYWNlCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0 cywgcHRzKTsKKyAgIC8vIE1FU1NBR0UodnRrSWQgPDwgIiAiIDw8IG5wdHMgPDwgIiAgIiA8PCBf bmJEb3duQ2VsbHMpOworICAgLy9BU1NFUlQobnB0cyA9PSBfbmJEb3duQ2VsbHMpOworQEAgLTUz Miw3ICs1MzIsNyBAQCBpbnQgU01EU19Eb3duMkQ6OmNvbXB1dGVWb2x1bWVJZHMoaW50IGNlbGxJ ZCwgaW50KiBpZHMpCisgICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCisgCisg ICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKnB0czsgLy8gd2lsbCByZWZlciB0 byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQorKyAgdnRrSWRUeXBlUHRyIHB0czsgLy8gd2ls bCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQorICAgX2dyaWQtPkdldENlbGxQ b2ludHMoY2VsbElkLCBucHRzLCBwdHMpOworICAgdmVjdG9yPGludD4gbm9kZXM7CisgICBmb3Ig KGludCBpID0gMDsgaSA8IG5wdHM7IGkrKykKK0BAIC02MjcsNyArNjI3LDcgQEAgaW50IFNNRFNf RG93bjJEOjpjb21wdXRlVm9sdW1lSWRzRnJvbU5vZGVzRmFjZShpbnQqIHB0cywgaW50IG5wdHMs IGludCogaWRzKQorIHZvaWQgU01EU19Eb3duMkQ6OnNldFRlbXBOb2RlcyhpbnQgY2VsbElkLCBp bnQgdnRrSWQpCisgeworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpwdHM7 IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKKysgIHZ0a0lkVHlw ZVB0ciBwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKKyAg IF9ncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lkLCBucHRzLCBwdHMpOworICAgLy8gTUVTU0FHRSh2 dGtJZCA8PCAiICIgPDwgbnB0cyA8PCAiICAiIDw8IF9uYk5vZGVzKTsKKyAgIC8vQVNTRVJUKG5w dHMgPT0gX25iTm9kZXMpOworQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lkIFNNRFNfRG93bjNEOjpn ZXROb2RlSWRzKGludCBjZWxsSWQsIHN0ZDo6c2V0PGludD4mIG5vZGVTZXQpCisgeworICAgaW50 IHZ0a0lkID0gdGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXTsKKyAgIHZ0a0lkVHlwZSBucHRzID0g MDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mg b2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRo ZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lk LCBucHRzLCBub2Rlcyk7CisgICBmb3IgKGludCBpID0gMDsgaSA8IG5wdHM7IGkrKykKKyAgICAg bm9kZVNldC5pbnNlcnQobm9kZXNbaV0pOworQEAgLTExMjYsNyArMTEyNiw3IEBAIHZvaWQgU01E U19Eb3duVGV0cmE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rv cjx2dGtJZFR5cGU+JiBvCisgICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKKyAK KyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVz OyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlk LT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsK KyAKKyAgIHNldDxpbnQ+IHRvZmluZDsKK0BAIC0xMTc4LDcgKzExNzgsNyBAQCB2b2lkIFNNRFNf RG93blRldHJhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5v ZGVzVHlwZSYgZmFjZQorICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisg CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJl ZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2Rl czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3Jp ZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKKyAKKyAgIC8vIC0tLSBjcmVh dGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKK0BAIC0x MjM0LDcgKzEyMzQsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRUZXRyYTo6Z2V0T3JkZXJlZE5vZGVz T2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHlwZQorICAgLy9NRVNTQUdFKCJj ZWxsSWQgPSAiIDw8IGNlbGxJZCk7CisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJ ZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1 bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQn cyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElk c1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7CisgCisgICBzZXQ8aW50PiB0b2ZpbmQ7CitAQCAtMTI4 OCw3ICsxMjg4LDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkVGV0cmE6OmNvbXB1dGVGYWNlc1dpdGhO b2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9kZXNUeXBlJgorICAgLy8gLS0tIGZpbmQgcG9p bnQgaWQncyBvZiB0aGUgdm9sdW1lCisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJ ZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1 bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQn cyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5v ZGVzKTsKKyAKKyAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBp ZCdzIGZvciBlYWNoIGZhY2UKK0BAIC0xMzU3LDcgKzEzNTcsNyBAQCB2b2lkIFNNRFNfRG93blB5 cmFtaWQ6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJ ZFR5cGU+JgorICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7CisgCisgICB2dGtJ ZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRo ZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2ls bCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2Vs bFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7CisgCisgICBz ZXQ8aW50PiB0b2ZpbmQ7CitAQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBTTURTX0Rvd25QeXJh bWlkOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlw ZSYgZmEKKyAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorIAorICAgdnRr SWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0 aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdp bGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENl bGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7CisgCisgICAvLyAtLS0gY3JlYXRlIGFsbCB0 aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCitAQCAtMTUwMCw3ICsx NTAwLDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkUHlyYW1pZDo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNl KGludCBjZWxsSWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHkKKyAgIC8vTUVTU0FHRSgiY2VsbElkID0g IiA8PCBjZWxsSWQpOworIAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpu b2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2 dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhl IHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElk XSwgbnB0cywgbm9kZXMpOworIAorICAgc2V0PGludD4gdG9maW5kOworQEAgLTE1ODAsNyArMTU4 MCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFB5cmFtaWQ6OmNvbXB1dGVGYWNlc1dpdGhOb2Rlcyhp bnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9kZXNUeXBlCisgICAvLyAtLS0gZmluZCBwb2ludCBpZCdz IG9mIHRoZSB2b2x1bWUKKyAKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAq bm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAg dnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRo ZSB2b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwor IAorICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9y IGVhY2ggZmFjZQorQEAgLTE2NjAsNyArMTY2MCw3IEBAIHZvaWQgU01EU19Eb3duUGVudGE6Omdl dE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBv CisgICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKKyAKKyAgIHZ0a0lkVHlwZSBu cHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50 IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVy IHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9ncmlkLT5HZXRDZWxsUG9pbnRz KHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKKyAKKyAgIHNldDxpbnQ+ IHRvZmluZDsKK0BAIC0xNzQ0LDcgKzE3NDQsNyBAQCB2b2lkIFNNRFNfRG93blBlbnRhOjpjb21w dXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmFjZQor ICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgCisgICB2dGtJZFR5cGUg bnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2lu dCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZl ciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50 cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKKyAKKyAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRl cmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKK0BAIC0xODEwLDcgKzE4MTAsNyBA QCB2b2lkIFNNRFNfRG93blF1YWRQZW50YTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxs SWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHlwZQorICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNl bGxJZCk7CisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l CisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRz LCBub2Rlcyk7CisgCisgICBzZXQ8aW50PiB0b2ZpbmQ7CitAQCAtMTg5Niw3ICsxODk2LDcgQEAg dm9pZCBTTURTX0Rvd25RdWFkUGVudGE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElk LCBMaXN0RWxlbUJ5Tm9kZXNUeXBlJgorICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUg dm9sdW1lCisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l CisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKKyAKKyAgIC8v IC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZh Y2UKK0BAIC0xOTgxLDcgKzE5ODEsNyBAQCB2b2lkIFNNRFNfRG93bkhleGE6OmdldE9yZGVyZWRO b2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBvcgorICAgLy9N RVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7CisgCisgICB2dGtJZFR5cGUgbnB0cyA9IDA7 CistICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9m IHRoZSB2b2x1bWUKKysgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5f dnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7CisgCisgICBzZXQ8aW50PiB0b2ZpbmQ7 CitAQCAtMjAzNiw3ICsyMDM2LDcgQEAgdm9pZCBTTURTX0Rvd25IZXhhOjpjb21wdXRlRmFjZXNX aXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmFjZXMKKyAgIC8vIC0t LSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorIAorICAgdnRrSWRUeXBlIG5wdHMgPSAw OworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBv ZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhl IHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElk LCBucHRzLCBub2Rlcyk7CisgCisgICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0 IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCitAQCAtMjExMiw3ICsyMTEyLDcgQEAgdm9pZCBT TURTX0Rvd25RdWFkSGV4YTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6 dmVjdG9yPHZ0a0lkVHlwZT4KKyAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwor IAorICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCisrICB2dGtJZFR5cGVQdHIgbm9k ZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorICAgX2dy aWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMp OworIAorICAgc2V0PGludD4gdG9maW5kOworQEAgLTIxNjcsNyArMjE2Nyw3IEBAIHZvaWQgU01E U19Eb3duUXVhZEhleGE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxl bUJ5Tm9kZXNUeXBlJiBmCisgICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUK KyAKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwg cmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQorKyAgdnRrSWRUeXBlUHRyIG5v ZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKKyAgIF9n cmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOworIAorICAgLy8gLS0tIGNy ZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQorZGlm ZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoLmNwcCBi L3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2guY3BwCitpbmRleCA0 YWM2ZmQ3NjguLjUxYjI4MTY5OSAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gv c3JjL1NNRFMvU01EU19NZXNoLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv U01EUy9TTURTX01lc2guY3BwCitAQCAtNDc2Myw3ICs0NzYzLDExIEBAIHZvaWQgU01EU19NZXNo OjpkdW1wR3JpZChzdHJpbmcgZmljZHVtcCkKKyAgICAgICAgIGZpY2NvbiA8PCBlbmRsOworICAg fQorICAgZmljY29uIDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb25uZWN0 aXZpdHkgIiA8PCAgbmJQb2ludHMgPDwgZW5kbDsKKy0gICAgICAgIHZ0a0NlbGxMaW5rcyAqbGlu a3MgPSBteUdyaWQtPkdldENlbGxMaW5rcygpOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgor KyAgdnRrQ2VsbExpbmtzICpsaW5rcyA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KG15R3Jp ZC0+R2V0Q2VsbExpbmtzKCkpOworKyNlbHNlCisrICB2dGtDZWxsTGlua3MgKmxpbmtzID0gbXlH cmlkLT5HZXRDZWxsTGlua3MoKTsKKysjZW5kaWYKKyAgIGZvciAoaW50IGk9MDsgaTxuYlBvaW50 czsgaSsrKQorICAgeworICAgICAgICAgaW50IG5jZWxscyA9IGxpbmtzLT5HZXROY2VsbHMoaSk7 CitkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gw REVsZW1lbnQuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVz aDBERWxlbWVudC5jcHAKK2luZGV4IDk1NDM4ZWFiMC4uYTdmODA1OWUwIDEwMDY0NAorLS0tIHNy Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQuY3BwCisr Kysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaDBERWxlbWVudC5j cHAKK0BAIC0xNDcsNyArMTQ3LDcgQEAgYm9vbCBTTURTX01lc2gwREVsZW1lbnQ6OkNoYW5nZU5v ZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk4KKyAgIHsKKyAg ICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVz aElkXS0+Z2V0R3JpZCgpOworICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICAgIHZ0a0lkVHlw ZSogcHRzID0gMDsKKysgICAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICAgIGdyaWQtPkdldENl bGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKKyAgICAgaWYgKG5iTm9kZXMgIT0gbnB0cykK KyAgICAgeworQEAgLTE1NSw3ICsxNTUsMTEgQEAgYm9vbCBTTURTX01lc2gwREVsZW1lbnQ6OkNo YW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk4KKyAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAgICAgbXlOb2RlID0gbm9kZXNbMF07CisrI2lm ZGVmIFZUS19DRUxMX0FSUkFZX1YyCisrLy9GSVhNRTogdnRrOQorKyNlbHNlCisgICAgIHB0c1sw XSA9IG15Tm9kZS0+Z2V0VnRrSWQoKTsKKysjZW5kaWYKKyAKKyAgICAgU01EU19NZXNoOjpfbWVz aExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7CisgICAgIHJldHVybiB0cnVlOworZGlm ZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5j cHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5jcHAK K2luZGV4IGY2NDdhNWYxYi4uNWI5MDNjOGZiIDEwMDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNwcAorQEAgLTE5MSw3ICsxOTEsNyBAQCBw dWJsaWM6CisgU01EU19FbGVtSXRlcmF0b3JQdHIgU01EU19NZXNoTm9kZTo6CisgR2V0SW52ZXJz ZUVsZW1lbnRJdGVyYXRvcihTTURTQWJzX0VsZW1lbnRUeXBlIHR5cGUpIGNvbnN0CisgeworLSAg dnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdl dEdyaWQoKS0+R2V0Q2VsbExpbmtzKCktPkdldExpbmsobXlWdGtJRCk7CisrICB2dGtDZWxsTGlu a3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KFNNRFNfTWVzaDo6X21lc2hM aXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsobXlWdGtJ RCk7CisgICAvL01FU1NBR0UoIm15SUQgIiA8PCBteUlEIDw8ICIgbmNlbGxzICIgPDwgbC5uY2Vs bHMpOworICAgcmV0dXJuIFNNRFNfRWxlbUl0ZXJhdG9yUHRyKG5ldyBTTURTX01lc2hOb2RlX015 SW52SXRlcmF0b3IoU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLCBsLmNlbGxzLCBsLm5j ZWxscywgdHlwZSkpOworIH0KK0BAIC0yNTEsNyArMjUxLDcgQEAgZWxlbWVudHNJdGVyYXRvcihT TURTQWJzX0VsZW1lbnRUeXBlIHR5cGUpIGNvbnN0CisgICAgIHJldHVybiBTTURTX01lc2hFbGVt ZW50OjplbGVtZW50c0l0ZXJhdG9yKFNNRFNBYnNfTm9kZSk7CisgICBlbHNlCisgICB7CistICAg IHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5n ZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG15VnRrSUQpOworKyAgICB2dGtDZWxs TGlua3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KFNNRFNfTWVzaDo6X21l c2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsobXlW dGtJRCk7CisgICAgIHJldHVybiBTTURTX0VsZW1JdGVyYXRvclB0cihuZXcgU01EU19NZXNoTm9k ZV9NeUl0ZXJhdG9yKFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXSwgbC5jZWxscywgbC5u Y2VsbHMsIHR5cGUpKTsKKyAgIH0KKyB9CitAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgU01EU19N ZXNoTm9kZTo6QWRkSW52ZXJzZUVsZW1lbnQoY29uc3QgU01EU19NZXNoRWxlbWVudCogTUUpCisg ICBjb25zdCBTTURTX01lc2hDZWxsICpjZWxsID0gZHluYW1pY19jYXN0PGNvbnN0IFNNRFNfTWVz aENlbGwqPiAoTUUpOworICAgYXNzZXJ0KGNlbGwpOworICAgU01EU19VbnN0cnVjdHVyZWRHcmlk KiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CistICB2 dGtDZWxsTGlua3MgKkxpbmtzID0gZ3JpZC0+R2V0Q2VsbExpbmtzKCk7CisrICB2dGtDZWxsTGlu a3MgKkxpbmtzID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oZ3JpZC0+R2V0Q2VsbExpbmtz KCkpOworICAgTGlua3MtPlJlc2l6ZUNlbGxMaXN0KG15VnRrSUQsIDEpOworICAgTGlua3MtPkFk ZENlbGxSZWZlcmVuY2UoY2VsbC0+Z2V0VnRrSWQoKSwgbXlWdGtJRCk7CisgfQorQEAgLTM2Niw3 ICszNjYsNyBAQCB2b2lkIFNNRFNfTWVzaE5vZGU6OkNsZWFySW52ZXJzZUVsZW1lbnRzKCkKKyAK KyBib29sIFNNRFNfTWVzaE5vZGU6OmVtcHR5SW52ZXJzZUVsZW1lbnRzKCkKKyB7CistICB2dGtD ZWxsTGlua3M6OkxpbmsgbCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3Jp ZCgpLT5HZXRDZWxsTGlua3MoKS0+R2V0TGluayhteVZ0a0lEKTsKKysgIHZ0a0NlbGxMaW5rczo6 TGluayBsID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3Rb bXlNZXNoSWRdLT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsK KyAgIHJldHVybiAobC5uY2VsbHMgPT0gMCk7CisgfQorIAorQEAgLTM3OCw3ICszNzgsNyBAQCBi b29sIFNNRFNfTWVzaE5vZGU6OmVtcHR5SW52ZXJzZUVsZW1lbnRzKCkKKyAKKyBpbnQgU01EU19N ZXNoTm9kZTo6TmJJbnZlcnNlRWxlbWVudHMoU01EU0Fic19FbGVtZW50VHlwZSB0eXBlKSBjb25z dAorIHsKKy0gIHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlN ZXNoSWRdLT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG15VnRrSUQpOworKyAg dnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3MqPihTTURTX01l c2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExpbmtzKCkpLT5HZXRM aW5rKG15VnRrSUQpOworIAorICAgaWYgKCB0eXBlID09IFNNRFNBYnNfQWxsICkKKyAgICAgcmV0 dXJuIGwubmNlbGxzOworZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NN RFMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9z cmMvU01EUy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuY3BwCitpbmRleCBmYmQ5MDNiMWUuLjE5Y2Nl YmNhYiAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19V bnN0cnVjdHVyZWRHcmlkLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuY3BwCitAQCAtMTM5LDggKzEzOSw4IEBAIGludCBTTURT X1Vuc3RydWN0dXJlZEdyaWQ6Okluc2VydE5leHRMaW5rZWRDZWxsKGludCB0eXBlLCBpbnQgbnB0 cywgdnRrSWRUeXBlICpwCisgICBmb3IgKDsgaXQgIT0gc2V0T2ZOb2Rlcy5lbmQoKTsgKytpdCkK KyAgICAgeworICAgICAgIC8vTUVTU0FHRSgicmV2ZXJzZSBsaW5rIGZvciBub2RlICIgPDwgKml0 IDw8ICIgY2VsbCAiIDw8IGNlbGxpZCk7CistICAgICAgdGhpcy0+TGlua3MtPlJlc2l6ZUNlbGxM aXN0KCppdCwgMSk7CistICAgICAgdGhpcy0+TGlua3MtPkFkZENlbGxSZWZlcmVuY2UoY2VsbGlk LCAqaXQpOworKyAgICAgIHRoaXMtPkdldExpbmtzKCktPlJlc2l6ZUNlbGxMaXN0KCppdCwgMSk7 CisrICAgICAgdGhpcy0+R2V0TGlua3MoKS0+QWRkQ2VsbFJlZmVyZW5jZShjZWxsaWQsICppdCk7 CisgICAgIH0KKyAKKyAgIHJldHVybiBjZWxsaWQ7CitAQCAtMzMyLDkgKzMzMiwxMyBAQCB2b2lk IFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6Y29weUJsb2ModnRrVW5zaWduZWRDaGFyQXJyYXkgKm5l d1R5cGVzLAorICAgICB7CisgICAgICAgbmV3VHlwZXMtPlNldFZhbHVlKGFscmVhZHlDb3BpZWQs IHRoaXMtPlR5cGVzLT5HZXRWYWx1ZShqKSk7CisgICAgICAgaWRDZWxsc09sZFRvTmV3W2pdID0g YWxyZWFkeUNvcGllZDsgLy8gb2xkIHZ0a0lkIC0tPiBuZXcgdnRrSWQKKysjaWZkZWYgVlRLX0NF TExfQVJSQVlfVjIKKysgICAgICB2dGtJZFR5cGUgb2xkTG9jOyAvL0ZJWE1FOiB2dGs5CisrI2Vs c2UKKyAgICAgICB2dGtJZFR5cGUgb2xkTG9jID0gdGhpcy0+TG9jYXRpb25zLT5HZXRWYWx1ZShq KTsKKysjZW5kaWYKKyAgICAgICB2dGtJZFR5cGUgbmJwdHM7CistICAgICAgdnRrSWRUeXBlICpv bGRQdHNDZWxsID0gMDsKKysgICAgICB2dGtJZFR5cGVQdHIgb2xkUHRzQ2VsbCA9IDA7CisgICAg ICAgdGhpcy0+Q29ubmVjdGl2aXR5LT5HZXRDZWxsKG9sZExvYywgbmJwdHMsIG9sZFB0c0NlbGwp OworICAgICAgIGFzc2VydChuYnB0cyA8IE5CTUFYTk9ERVNJTkNFTEwpOworICAgICAgIC8vTUVT U0FHRShqIDw8ICIgIiA8PCBhbHJlYWR5Q29waWVkIDw8ICIgIiA8PCAoaW50KXRoaXMtPlR5cGVz LT5HZXRWYWx1ZShqKSA8PCAiICIgPDwgb2xkTG9jIDw8ICIgIiA8PCBuYnB0cyApOworQEAgLTk1 MywxNCArOTU3LDE4IEBAIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpHZXROb2RlSWRzKHN0 ZDo6c2V0PGludD4mIG5vZGVTZXQsIGludCBkb3duSWQsIHVuc2lnCisgdm9pZCBTTURTX1Vuc3Ry dWN0dXJlZEdyaWQ6Ok1vZGlmeUNlbGxOb2RlcyhpbnQgdnRrVm9sSWQsIHN0ZDo6bWFwPGludCwg aW50PiBsb2NhbENsb25lZE5vZGVJZHMpCisgeworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAg dnRrSWRUeXBlICpwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZh Y2UKKysgIHZ0a0lkVHlwZVB0ciBwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mg b2YgdGhlIGZhY2UKKyAgIHRoaXMtPkdldENlbGxQb2ludHModnRrVm9sSWQsIG5wdHMsIHB0cyk7 CisgICBmb3IgKGludCBpID0gMDsgaSA8IG5wdHM7IGkrKykKKyAgICAgeworICAgICAgIGlmIChs b2NhbENsb25lZE5vZGVJZHMuY291bnQocHRzW2ldKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAg dnRrSWRUeXBlIG9sZHB0ID0gcHRzW2ldOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgorKy8v RklYTUU6IHZ0azkKKysjZWxzZQorICAgICAgICAgICBwdHNbaV0gPSBsb2NhbENsb25lZE5vZGVJ ZHNbb2xkcHRdOworKyNlbmRpZgorICAgICAgICAgICAvL01FU1NBR0Uob2xkcHQgPDwgIiAtLT4g IiA8PCBwdHNbaV0pOworICAgICAgICAgICAvL3RoaXMtPlJlbW92ZVJlZmVyZW5jZVRvQ2VsbChv bGRwdCwgdnRrVm9sSWQpOworICAgICAgICAgICAvL3RoaXMtPkFkZFJlZmVyZW5jZVRvQ2VsbChw dHNbaV0sIHZ0a1ZvbElkKTsKK0BAIC05OTUsMTEgKzEwMDMsMjAgQEAgdm9pZCBTTURTX1Vuc3Ry dWN0dXJlZEdyaWQ6OkJ1aWxkTGlua3MoKQorICAgICB0aGlzLT5MaW5rcy0+VW5SZWdpc3Rlcih0 aGlzKTsKKyAgICAgfQorIAorKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0 azkKKysgIHRoaXMtPkxpbmtzID0gU01EU19DZWxsTGlua3M6Ok5ldygpOworKyAgLy90aGlzLT5M aW5rcy0+QWxsb2NhdGUodGhpcy0+R2V0TnVtYmVyT2ZQb2ludHMoKSk7CisrICB0aGlzLT5MaW5r cy0+UmVnaXN0ZXIodGhpcyk7CisrICAvL3RoaXMtPkxpbmtzLT5CdWlsZExpbmtzKHRoaXMsIHRo aXMtPkNvbm5lY3Rpdml0eSk7CisrICB0aGlzLT5MaW5rcy0+RGVsZXRlKCk7CisrI2Vsc2UKKyAg IHRoaXMtPkxpbmtzID0gU01EU19DZWxsTGlua3M6Ok5ldygpOworICAgdGhpcy0+TGlua3MtPkFs bG9jYXRlKHRoaXMtPkdldE51bWJlck9mUG9pbnRzKCkpOworICAgdGhpcy0+TGlua3MtPlJlZ2lz dGVyKHRoaXMpOworICAgdGhpcy0+TGlua3MtPkJ1aWxkTGlua3ModGhpcywgdGhpcy0+Q29ubmVj dGl2aXR5KTsKKyAgIHRoaXMtPkxpbmtzLT5EZWxldGUoKTsKKysjZW5kaWYKKyB9CisgCisgLyoh IENyZWF0ZSBhIHZvbHVtZSAocHJpc20gb3IgaGV4YWhlZHJvbikgYnkgZHVwbGljYXRpb24gb2Yg YSBmYWNlLgorZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19WdGtDZWxsSXRlcmF0b3IuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURT L1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcAoraW5kZXggZGViMDU5ODVmLi42M2I2ZWFiYjcgMTAw NjQ0CistLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0 ZXJhdG9yLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0 a0NlbGxJdGVyYXRvci5jcHAKK0BAIC0zMyw3ICszMyw4IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9y OjpTTURTX1Z0a0NlbGxJdGVyYXRvcihTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWxsSWQsIFNN RFNBCisgICB9CisgICBlbHNlCisgICB7CistICAgIHZ0a0lkVHlwZSBucHRzLCAqcHRzOworKyAg ICB2dGtJZFR5cGUgbnB0czsKKysgICAgdnRrSWRUeXBlUHRyIHB0czsKKyAgICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyggX2NlbGxJZCwgbnB0cywgcHRzICk7CisgICAgIF92dGtJZExpc3QtPlNldE51 bWJlck9mSWRzKCBfbmJOb2RlcyA9IG5wdHMgKTsKKyAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBf bmJOb2RlczsgaSsrKQorQEAgLTY3LDcgKzY4LDcgQEAgU01EU19WdGtDZWxsSXRlcmF0b3JUb1VO Vjo6U01EU19WdGtDZWxsSXRlcmF0b3JUb1VOVihTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWwK KyAgIC8vTUVTU0FHRSgiU01EU19WdGtDZWxsSW50ZXJsYWNlZEl0ZXJhdG9yIChVTlYpIiA8PCBf dHlwZSk7CisgCisgICBfdnRrSWRMaXN0ID0gdnRrSWRMaXN0OjpOZXcoKTsKKy0gIHZ0a0lkVHlw ZSogcHRzOworKyAgdnRrSWRUeXBlUHRyIHB0czsKKyAgIHZ0a0lkVHlwZSBucHRzOworICAgdnRr VW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IF9tZXNoLT5nZXRHcmlkKCk7CisgICBncmlkLT5HZXRD ZWxsUG9pbnRzKCh2dGtJZFR5cGUpX2NlbGxJZCwgbnB0cywgcHRzKTsKK0BAIC0xODIsNyArMTgz LDcgQEAgU01EU19WdGtDZWxsSXRlcmF0b3JQb2x5SDo6U01EU19WdGtDZWxsSXRlcmF0b3JQb2x5 SChTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWwKKyAgIHsKKyAgICAgLy9NRVNTQUdFKCJTTURT X1Z0a0NlbGxJdGVyYXRvciBQb2x5aGVkcmEiKTsKKyAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7 CistICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAw OworICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKF9jZWxsSWQsIG5GYWNlcywgcHRJZHMpOworICAg ICBpbnQgaWQgPSAwOworICAgICBfbmJOb2Rlc0luRmFjZXMgPSAwOworZGlmZiAtLWdpdCBzcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNwcCBiL3NyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3BwCitpbmRleCA5Nzg2YWJm OWEuLjU4ZDJkZjNjZiAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NN RFMvU01EU19WdGtFZGdlLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX1Z0a0VkZ2UuY3BwCitAQCAtNjgsNyArNjgsNyBAQCBib29sIFNNRFNfVnRrRWRnZTo6 Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9k ZXMpCisgeworICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hM aXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworLSAgdnRr SWRUeXBlKiBwdHMgPSAwOworKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICBncmlkLT5HZXRD ZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7CisgICBpZiAobmJOb2RlcyAhPSBucHRzKQor ICAgICB7CitAQCAtNzcsNyArNzcsMTEgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVz KGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQorICAgICB9 CisgICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKKyAgICAgeworKyNpZmRlZiBW VEtfQ0VMTF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0azkKKysjZWxzZQorICAgICAgIHB0c1tpXSA9 IG5vZGVzW2ldLT5nZXRWdGtJZCgpOworKyNlbmRpZgorICAgICB9CisgICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKKyAgIHJldHVybiB0cnVlOworQEAg LTg3LDcgKzkxLDcgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURT X01lc2hOb2RlKiBub2RlKSBjb25zdAorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQg PSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKyAgIHZ0a0lkVHlw ZSBucHRzID0gMDsKKy0gIHZ0a0lkVHlwZSogcHRzID0gMDsKKysgIHZ0a0lkVHlwZVB0ciBwdHMg PSAwOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOworICAgLy9N RVNTQUdFKCJJc01lZGl1bU5vZGUgIiA8PCBucHRzICA8PCAiICIgPDwgKG5vZGUtPmdldFZ0a0lk KCkgPT0gcHRzW25wdHMtMV0pKTsKKyAgIHJldHVybiAoKG5wdHMgPT0gMykgJiYgKG5vZGUtPmdl dFZ0a0lkKCkgPT0gcHRzWzJdKSk7CitAQCAtMTM3LDcgKzE0MSw4IEBAIGNvbnN0IFNNRFNfTWVz aE5vZGUqCisgU01EU19WdGtFZGdlOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0Cisgewor ICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVz aElkXS0+Z2V0R3JpZCgpOworLSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7CisrICB2dGtJZFR5cGUg bnB0czsKKysgIHZ0a0lkVHlwZVB0ciBwdHM7CisgICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlz LT5teVZ0a0lELCBucHRzLCBwdHMgKTsKKyAgIHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtt eU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNbIGluZCBdKTsKKyB9CitkaWZmIC0tZ2l0IHNyYy8z cmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3BwIGIvc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRmFjZS5jcHAKK2luZGV4IDEzODllMGQz NS4uYTkyNjAxZjFlIDEwMDY0NAorLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01E Uy9TTURTX1Z0a0ZhY2UuY3BwCisrKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURT L1NNRFNfVnRrRmFjZS5jcHAKK0BAIC0xMDIsNyArMTAyLDcgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6 OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5v ZGVzKQorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gIHZ0 a0lkVHlwZSogcHRzID0gMDsKKysgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOworICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOworICAgaWYgKG5iTm9kZXMgIT0gbnB0cykK KyAgICAgeworQEAgLTExMSw3ICsxMTEsMTEgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6OkNoYW5nZU5v ZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQorICAg ICB9CisgICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKKyAgICAgeworKyNpZmRl ZiBWVEtfQ0VMTF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0azkKKysjZWxzZQorICAgICAgIHB0c1tp XSA9IG5vZGVzW2ldLT5nZXRWdGtJZCgpOworKyNlbmRpZgorICAgICB9CisgICBTTURTX01lc2g6 Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKKyAgIHJldHVybiB0cnVlOwor QEAgLTE3Myw3ICsxNzcsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKgorIFNNRFNfVnRrRmFjZTo6 R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAorIHsKKyAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQq IGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKy0gIHZ0 a0lkVHlwZSBucHRzLCAqcHRzOworKyAgdnRrSWRUeXBlIG5wdHM7CisrICB2dGtJZFR5cGVQdHIg cHRzOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7 CisgICByZXR1cm4gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0aygg cHRzWyBpbmQgXSk7CisgfQorQEAgLTE4Niw3ICsxOTEsOCBAQCBTTURTX1Z0a0ZhY2U6OkdldE5v ZGUoY29uc3QgaW50IGluZCkgY29uc3QKKyBpbnQgU01EU19WdGtGYWNlOjpHZXROb2RlSW5kZXgo IGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAorIHsKKyAgIHZ0a1Vuc3RydWN0dXJl ZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsK Ky0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOworKyAgdnRrSWRUeXBlIG5wdHM7CisrICB2dGtJZFR5 cGVQdHIgcHRzOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywg cHRzICk7CisgICBmb3IgKCB2dGtJZFR5cGUgaSA9IDA7IGkgPCBucHRzOyArK2kgKQorICAgICBp ZiAoIHB0c1tpXSA9PSBub2RlLT5nZXRWdGtJZCgpICkKK0BAIC0yNTEsNyArMjU3LDcgQEAgYm9v bCBTTURTX1Z0a0ZhY2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01lc2hOb2RlKiBub2RlKSBj b25zdAorICAgICByZXR1cm4gZmFsc2U7CisgICB9CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7Cist ICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKKyAgIGdyaWQt PkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKKyAgIHZ0a0lkVHlwZSBub2RlSWQg PSBub2RlLT5nZXRWdGtJZCgpOworICAgZm9yIChpbnQgcmFuayA9IDA7IHJhbmsgPCBucHRzOyBy YW5rKyspCitAQCAtMzU3LDEwICszNjMsMTQgQEAgdm9pZCBTTURTX1Z0a0ZhY2U6OkNoYW5nZUFw ZXgoU01EU19NZXNoTm9kZSogbm9kZSkKKyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlk ID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisgICB2dGtJZFR5 cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICB2dGtJZFR5cGVQdHIgcHRz ID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKKyAgIGdy aWQtPlJlbW92ZVJlZmVyZW5jZVRvQ2VsbChwdHNbMF0sIG15VnRrSUQpOworKyNpZmRlZiBWVEtf Q0VMTF9BUlJBWV9WMgorKy8vRklYTUU6IHZ0azkKKysjZWxzZQorICAgcHRzWzBdID0gbm9kZS0+ Z2V0VnRrSWQoKTsKKysjZW5kaWYKKyAgIG5vZGUtPkFkZEludmVyc2VFbGVtZW50KHRoaXMpLAor ICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7CisgfQor ZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1 bWUuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrVm9sdW1l LmNwcAoraW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CistLS0gc3JjLzNyZFBhcnR5 L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrVm9sdW1lLmNwcAorKysrIHNyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKK0BAIC0xMzQsNyArMTM0 LDcgQEAgYm9vbCBTTURTX1Z0a1ZvbHVtZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9k ZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMKKyB7CisgICB2dGtVbnN0cnVjdHVyZWRHcmlk KiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisgICB2 dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICB2dGtJZFR5cGVQ dHIgcHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsK KyAgIGlmIChuYk5vZGVzICE9IG5wdHMpCisgICAgIHsKK0BAIC0xNDMsNyArMTQzLDExIEBAIGJv b2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVz W10sIGNvbnN0IGludCBuYk5vZGVzCisgICAgIH0KKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJO b2RlczsgaSsrKQorICAgICB7CisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCisrLy9GSVhNRTog dnRrOQorKyNlbHNlCisgICAgICAgcHRzW2ldID0gbm9kZXNbaV0tPmdldFZ0a0lkKCk7CisrI2Vu ZGlmCisgICAgIH0KKyAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2Rp ZmllZCgpOworICAgcmV0dXJuIHRydWU7CitAQCAtMjA3LDcgKzIxMSw3IEBAIGludCBTTURTX1Z0 a1ZvbHVtZTo6TmJGYWNlcygpIGNvbnN0CisgICAgIGNhc2UgVlRLX1BPTFlIRURST046CisgICAg ICAgeworICAgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CistICAgICAgICB2dGtJZFR5cGUq IHB0SWRzID0gMDsKKysgICAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7CisgICAgICAgICBn cmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICAg ICAgbmJGYWNlcyA9IG5GYWNlczsKKyAgICAgICAgIGJyZWFrOworQEAgLTIzNiw3ICsyNDAsNyBA QCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iTm9kZXMoKSBjb25zdAorICAgZWxzZQorICAgICB7Cisg ICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CistICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7 CisrICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgICBncmlkLT5HZXRGYWNlU3Ry ZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICAgIGludCBpZCA9IDA7Cisg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKK0BAIC0yNzYsNyArMjgwLDcg QEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkVkZ2VzKCkgY29uc3QKKyAgICAgY2FzZSBWVEtfUE9M WUhFRFJPTjoKKyAgICAgICB7CisgICAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKKy0gICAg ICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0g MDsKKyAgICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBw dElkcyk7CisgICAgICAgICBuYkVkZ2VzID0gMDsKKyAgICAgICAgIGludCBpZCA9IDA7CitAQCAt MzEyLDcgKzMxNiw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNlTm9kZXMoY29uc3QgaW50 IGZhY2VfaW5kKSBjb25zdAorICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQorICAg ICB7CisgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CistICAgICAgdnRrSWRUeXBlKiBwdElk cyA9IDA7CisrICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgICBncmlkLT5HZXRG YWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICAgIGludCBpZCA9 IDA7CisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKK0BAIC0zNDIsNyAr MzQ2LDcgQEAgY29uc3QgU01EU19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldEZhY2VOb2Rl KGNvbnN0IGludCBmYWNlX2luZCwgY29uc3QgaW50IG4KKyAgIGlmIChhVnRrVHlwZSA9PSBWVEtf UE9MWUhFRFJPTikKKyAgICAgeworICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOworLSAgICAg IHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Cisg ICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsK KyAgICAgICBpbnQgaWQgPSAwOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBp KyspCitAQCAtMzcyLDcgKzM3Niw3IEBAIHN0ZDo6dmVjdG9yPGludD4gU01EU19WdGtWb2x1bWU6 OkdldFF1YW50aXRpZXMoKSBjb25zdAorICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9O KQorICAgICB7CisgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CistICAgICAgdnRrSWRUeXBl KiBwdElkcyA9IDA7CisrICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgICBncmlk LT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICAgIGlu dCBpZCA9IDA7CisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKK0BAIC00 MzAsNyArNDM0LDcgQEAgY29uc3QgU01EU19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldE5v ZGUoY29uc3QgaW50IGluZCkgY29uc3QKKyAgIGlmICggYVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURS T04pCisgICB7CisgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOworLSAgICB2dGtJZFR5cGUqIHB0 SWRzID0gMDsKKysgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKKyAgICAgZ3JpZC0+R2V0RmFj ZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKKyAgICAgaW50IGlkID0gMCwg bmJQb2ludHMgPSAwOworICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQorQEAg LTQ0Myw3ICs0NDcsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0 Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAorICAgICB9CisgICAgIHJldHVybiAwOworICAgfQor LSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7CisrICB2dGtJZFR5cGUgbnB0czsKKysgIHZ0a0lkVHlw ZVB0ciBwdHM7CisgICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBw dHMgKTsKKyAgIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIGludGVybGFjZSA9IFNNRFNfTWVzaENl bGw6OmZyb21WdGtPcmRlciggVlRLQ2VsbFR5cGUoIGFWdGtUeXBlICkpOworICAgcmV0dXJuIFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgaW50ZXJsYWNl LmVtcHR5KCkgPyBpbmQgOiBpbnRlcmxhY2VbaW5kXV0gKTsKK0BAIC00NjAsNyArNDY1LDcgQEAg aW50IFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlSW5kZXgoIGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5v ZGUgKSBjb25zdAorICAgaWYgKCBhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKKyAgIHsKKyAg ICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CistICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOworKyAg ICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAwOworICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMt Pm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOworICAgICBpbnQgaWQgPSAwOworICAgICBmb3IgKGlu dCBpRiA9IDA7IGlGIDwgbkZhY2VzOyBpRisrKQorQEAgLTQ3Myw3ICs0NzgsOCBAQCBpbnQgU01E U19WdGtWb2x1bWU6OkdldE5vZGVJbmRleCggY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSApIGNv bnN0CisgICAgIH0KKyAgICAgcmV0dXJuIC0xOworICAgfQorLSAgdnRrSWRUeXBlIG5wdHMsICpw dHM7CisrICB2dGtJZFR5cGUgbnB0czsKKysgIHZ0a0lkVHlwZVB0ciBwdHM7CisgICBncmlkLT5H ZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBwdHMgKTsKKyAgIGZvciAoIHZ0a0lk VHlwZSBpID0gMDsgaSA8IG5wdHM7ICsraSApCisgICAgIGlmICggcHRzW2ldID09IG5vZGUtPmdl dFZ0a0lkKCkgKQorQEAgLTUzNCw3ICs1NDAsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpJc01l ZGl1bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKKyAgICAgICByZXR1cm4g ZmFsc2U7CisgICB9CisgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICB2dGtJZFR5cGUqIHB0cyA9 IDA7CisrICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQb2ludHMobXlW dGtJRCwgbnB0cywgcHRzKTsKKyAgIHZ0a0lkVHlwZSBub2RlSWQgPSBub2RlLT5nZXRWdGtJZCgp OworICAgZm9yIChpbnQgcmFuayA9IDA7IHJhbmsgPCBucHRzOyByYW5rKyspCitkaWZmIC0tZ2l0 IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01FU0gvU01FU0hfTWVzaEVkaXRvci5jcHAg Yi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3Bw CitpbmRleCBhNzQyNzAyZmYuLjFmZjRkNWVlZiAxMDA2NDQKKy0tLSBzcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwCisrKysgc3JjLzNyZFBhcnR5 L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAorQEAgLTExMzQzLDcg KzExMzQzLDcgQEAgYm9vbCBTTUVTSF9NZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBCb3Vu ZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxUSURTb3J0ZWQKKyAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICBpbnQgb2xkSWQgPSAqaXRuOworICAgICAgICAgICAgICAgLy9NRVNTQUdFKCIg ICAgIG5vZGUgIiA8PCBvbGRJZCk7CistICAgICAgICAgICAgICB2dGtDZWxsTGlua3M6Okxpbmsg bCA9IGdyaWQtPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG9sZElkKTsKKysgICAgICAgICAgICAg IHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oZ3JpZC0+ R2V0Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG9sZElkKTsKKyAgICAgICAgICAgICAgIGZvciAoaW50 IGk9MDsgaTxsLm5jZWxsczsgaSsrKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgaW50IHZ0a0lkID0gbC5jZWxsc1tpXTsKK0BAIC0xMTUyMiw3ICsxMTUyMiw3IEBAIGJv b2wgU01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qg c3RkOjp2ZWN0b3I8VElEU29ydGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy9NRVNTQUdFKCIgIGRvbWFpbiAiIDw8IGlkb20gPDwgIiB2b2x1bWUgIiA8PCBl bGVtLT5HZXRJRCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb3VibGUgdmFsdWVzWzNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2dGtJZFR5cGUqIHB0cyA9IDA7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtWb2xJ ZHNbaXZvbF0sIG5wdHMsIHB0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU01EU19WdGtWb2x1bWU6OmdyYXZpdHlDZW50ZXIoZ3JpZCwgcHRzLCBucHRzLCB2 YWx1ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp ZCA9PTApCitAQCAtMTE3MDMsNyArMTE3MDMsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0b3I6OkRv dWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRlZAor ICAgICAgICAgeworICAgICAgICAgICBpbnQgb2xkSWQgPSBpdG5vZC0+Zmlyc3Q7CisgICAgICAg ICAgIC8vTUVTU0FHRSgiICAgICBub2RlICIgPDwgb2xkSWQpOworLSAgICAgICAgICB2dGtDZWxs TGlua3M6OkxpbmsgbCA9IGdyaWQtPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG9sZElkKTsKKysg ICAgICAgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3Mq PihncmlkLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsob2xkSWQpOworICAgICAgICAgICBmb3Ig KGludCBpID0gMDsgaSA8IGwubmNlbGxzOyBpKyspCisgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgaW50IHZ0a0lkID0gbC5jZWxsc1tpXTsKK0BAIC0xMjE2MCw3ICsxMjE2MCw3IEBAIHZv aWQgU01FU0hfTWVzaEVkaXRvcjo6Q3JlYXRlSG9sZVNraW4oZG91YmxlIHJhZGl1cywKKyAgICAg ICAgICAgTUVTU0FHRSgidm9sdW1lIHRvIGNoZWNrLCAgdnRrSWQgIiA8PCB2dGtJZCA8PCAiIHNt ZHNJZCAiIDw8IG1lc2hEUy0+ZnJvbVZ0a1RvU21kcyh2dGtJZCkpOworICAgICAgICAgICBib29s IHZvbEluc2lkZSA9IGZhbHNlOworICAgICAgICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7CistICAg ICAgICAgIHZ0a0lkVHlwZSogcHRzID0gMDsKKysgICAgICAgICAgdnRrSWRUeXBlUHRyIHB0cyA9 IDA7CisgICAgICAgICAgIGdyaWQtPkdldENlbGxQb2ludHModnRrSWQsIG5wdHMsIHB0cyk7Cisg ICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxucHRzOyBpKyspCisgICAgICAgICAgICAgeworZGlm ZiAtLWdpdCBzcmMvTW9kL0ZlbS9HdWkvVmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAgYi9z cmMvTW9kL0ZlbS9HdWkvVmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAKK2luZGV4IGRkZTJi ZDgyNC4uM2FjZmVhZDY1IDEwMDY0NAorLS0tIHNyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlkZXJG ZW1Qb3N0T2JqZWN0LmNwcAorKysrIHNyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlkZXJGZW1Qb3N0 T2JqZWN0LmNwcAorQEAgLTU2LDYgKzU2LDExIEBACisgDQorIHVzaW5nIG5hbWVzcGFjZSBGZW1H dWk7DQorIA0KKysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjINCisrdHlwZWRlZiBjb25zdCB2dGtJ ZFR5cGUqIHZ0a0lkVHlwZVB0cjsNCisrI2Vsc2UNCisrdHlwZWRlZiB2dGtJZFR5cGUqIHZ0a0lk VHlwZVB0cjsNCisrI2VuZGlmDQorIA0KKyBQUk9QRVJUWV9TT1VSQ0UoRmVtR3VpOjpWaWV3UHJv dmlkZXJGZW1Qb3N0T2JqZWN0LCBHdWk6OlZpZXdQcm92aWRlckRvY3VtZW50T2JqZWN0KQ0KKyAN CitAQCAtMzE2LDcgKzMyMSw3IEBAIHZvaWQgVmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdDo6dXBk YXRlM0QoKSB7CisgICAgIHZ0a0RhdGFBcnJheSAqdGNvb3JkcyA9IE5VTEw7DQorICAgICB2dGtD ZWxsQXJyYXkgKmNlbGxzOw0KKyAgICAgdnRrSWRUeXBlIG5wdHMgPSAwOw0KKy0gICAgdnRrSWRU eXBlICppbmR4ID0gMDsNCisrICAgIHZ0a0lkVHlwZVB0ciBpbmR4ID0gMDsNCisgDQorICAgICBw b2ludHMgPSBwZC0+R2V0UG9pbnRzKCk7DQorICAgICBwbnREYXRhID0gcGQtPkdldFBvaW50RGF0 YSgpOw0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZnJl ZWNhZC90ZW1wbGF0ZQppbmRleCBiNTZkODIyN2Q2MC4uOGEzNmQxYTM4ZTQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxhdGUK QEAgLTM2LDExICszNiw5IEBAIGhvbWVwYWdlPSJodHRwczovL2ZyZWVjYWR3ZWIub3JnLyIKIGRp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0ZyZWVDQUQvRnJlZUNBRC9hcmNoaXZlLyR7dmVy c2lvbn0udGFyLmd6IgogY2hlY2tzdW09NGUwY2NlNDQ3YjMxYjg5ODlhMDBjZjY4YzQ5YWUwMTJj ZThlNTU0NmE1NmM2ZTA4NzRmYmQ4ZjdkZGVkZmZkMgogCi1jYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KLQkqLW11c2wpICMgU0lHU0VHViB3aXRoIG11c2wsIHNlZSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vlcy8xMjU5NQotCQltYWtlZGVwZW5k cz0ke21ha2VkZXBlbmRzL3F0NS13ZWJraXQtZGV2ZWwvfQotCQk7OwotZXNhYworaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZXhlY2lu Zm8tZGV2ZWwiCitmaQogCiBwb3N0X2V4dHJhY3QoKSB7CiAJIyBSZXBvcnQgZXhhY3QgbWlub3Ig dmVyc2lvbgo= --===============5129957638715554735==--