From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=ALL_TRUSTED,DKIM_ADSP_NXDOMAIN, NO_DNS_FOR_FROM,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id C158B2470E for ; Sat, 24 Feb 2024 00:21:56 +0100 (CET) Content-Type: multipart/mixed; boundary="===============0456597793176981223==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_webrtc-audio-processing=3A_update_to_1=2E3=3B_revbump_dependents?= To: ml@inbox.vuxu.org From: cinerea0 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 24 Feb 2024 00:21:56 +0100 List-Id: Message-Id: <20240223232156.C158B2470E@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============0456597793176981223== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2luZXJlYTAgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2Np bmVyZWEwL3ZvaWQtcGFja2FnZXMgd2VicnRjCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC80ODkwMgoKd2VicnRjLWF1ZGlvLXByb2Nlc3Npbmc6IHVwZGF0 ZSB0byAxLjM7IHJldmJ1bXAgZGVwZW5kZW50cwojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0g SSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQotLS0NCg0KQGFoZXNm b3JkIEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIG5lZ2F0aXZlIGNvbnNlcXVlbmNlcyBvZiBmb3Jj aW5nIGFic2VpbCB0byB1c2UgQysrMTcgeW91IGNhbiB0aGluayBvZj8KCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80ODkw Mi5wYXRjaCBpcyBhdHRhY2hlZA== --===============0456597793176981223== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-webrtc-48902.patch" RnJvbSA2OTI1ZWU0NjBjMTg2ZjlkMjNlOTUzMTdlMjMyOGNiZTg4YTE5ZmE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjaW5lcmVhMCA8Y2luZXJlYTBAZGlzcm9vdC5vcmc+CkRhdGU6 IEZyaSwgMjMgRmViIDIwMjQgMTg6MTg6NTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvNl0gYWJz ZWlsLWNwcDogdXNlIEMrKzE3CgotLS0KIHNyY3BrZ3MvYWJzZWlsLWNwcC90ZW1wbGF0ZSB8IDUg KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hYnNlaWwtY3BwL3RlbXBsYXRlIGIvc3JjcGtncy9hYnNlaWwt Y3BwL3RlbXBsYXRlCmluZGV4IDc5MDliNWUxOWUwYWEuLmIxOWM0NDRhMWZlNGYgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvYWJzZWlsLWNwcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Fic2VpbC1jcHAv dGVtcGxhdGUKQEAgLTEsOSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYWJzZWlsLWNw cCcKIHBrZ25hbWU9YWJzZWlsLWNwcAogdmVyc2lvbj0yMDI0MDExNi4xCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfU0hB UkVEX0xJQlM9T04gLURBQlNMX1BST1BBR0FURV9DWFhfU1REPU9OIgorY29uZmlndXJlX2FyZ3M9 Ii1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURBQlNMX1BST1BBR0FURV9DWFhfU1REPU9OCisgLURD TUFLRV9DWFhfU1RBTkRBUkQ9MTciCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBzaG9y dF9kZXNjPSJBYnNlaWwgY29tbW9uIGxpYnJhcmllcyIKIG1haW50YWluZXI9IkFuZHJldyBKLiBI ZXNmb3JkIDxhamhAc2lkZWJhbmQub3JnPiIKCkZyb20gZWU2YWQ1YmE1ZDIxYmE3OWQ1M2E1ZDM3 M2M0YjQ4YjFmMmM1YjYzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2luZXJlYTAg PGNpbmVyZWEwQGRpc3Jvb3Qub3JnPgpEYXRlOiBGcmksIDIzIEZlYiAyMDI0IDE4OjE5OjI0IC0w NTAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nOiB1cGRhdGUg dG8gMS4zCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogLi4ueXRlLW9yZGVyLWFuZC1wb2ludGVyLXNpemUtZGV0ZWN0aW9uLnBhdGNo IHwgIDI0ICsrLS0KIC4uLi9wYXRjaGVzL2k2ODYtbm8tc3NlLnBhdGNoICAgICAgICAgICAgICAg ICB8ICAxNSArKysKIC4uLi9wYXRjaGVzL21pcHMucGF0Y2ggICAgICAgICAgICAgICAgICAgICAg ICB8IDExMyAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAg ICAgICAgICAgICAgICAgICB8ICA1MSArKysrKy0tLQogc3JjcGtncy93ZWJydGMtYXVkaW8tcHJv Y2Vzc2luZy90ZW1wbGF0ZSAgICAgIHwgIDMxICsrLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDc0IGlu c2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvaTY4Ni1uby1zc2UucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbWlw cy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IGNkZTExMDZmN2RiZWYuLmI2MDAzZWU0ZmJjYzQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtMTA1Niw3ICsxMDU2LDggQEAgbGliaXB0Y2RhdGEuc28u MCBsaWJpcHRjZGF0YS0xLjAuNF8xCiBsaWJ1dGVtcHRlci5zby4wIGxpYnV0ZW1wdGVyLTEuMS41 XzEKIGxpYnhhdHJhY2tlci5zby4yIGxpYnhhdHJhY2tlci0xMC4wLjBfMgogbGlidHVtYmxlci0x LnNvLjAgdHVtYmxlci00LjkuMl8xCi1saWJ3ZWJydGNfYXVkaW9fcHJvY2Vzc2luZy5zby4xIHdl YnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTAuM18xCitsaWJ3ZWJydGMtYXVkaW8tY29kaW5nLTEuc28u MyB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xLjNfMQorbGlid2VicnRjLWF1ZGlvLXByb2Nlc3Np bmctMS5zby4zIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTEuM18xCiBsaWJjdXBzbWltZS5zby4x IGxpYmN1cHMtMS41LjNfMQogbGliY3Vwc3BwZGMuc28uMSBsaWJjdXBzLTEuNS4zXzEKIGxpYmN1 cHNjZ2kuc28uMSBsaWJjdXBzLTEuNS4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd2VicnRjLWF1 ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9BZGQtZ2VuZXJpYy1ieXRlLW9yZGVyLWFuZC1wb2ludGVy LXNpemUtZGV0ZWN0aW9uLnBhdGNoIGIvc3JjcGtncy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9w YXRjaGVzL0FkZC1nZW5lcmljLWJ5dGUtb3JkZXItYW5kLXBvaW50ZXItc2l6ZS1kZXRlY3Rpb24u cGF0Y2gKaW5kZXggMTMzODc4NGU2OWVmOC4uMjhmMWRiZGNkODY4NCAxMDA2NDQKLS0tIGEvc3Jj cGtncy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL0FkZC1nZW5lcmljLWJ5dGUtb3Jk ZXItYW5kLXBvaW50ZXItc2l6ZS1kZXRlY3Rpb24ucGF0Y2gKKysrIGIvc3JjcGtncy93ZWJydGMt YXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL0FkZC1nZW5lcmljLWJ5dGUtb3JkZXItYW5kLXBvaW50 ZXItc2l6ZS1kZXRlY3Rpb24ucGF0Y2gKQEAgLTEsMjAgKzEsMjAgQEAKLUZyb206IFRoYW4gPHRo YW5AcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgOCBKdW4gMjAxNiAxOToxMDowOCAtMDQwMAotU3Vi amVjdDogQWRkIGdlbmVyaWMgYnl0ZSBvcmRlciBhbmQgcG9pbnRlciBzaXplIGRldGVjdGlvbgor VGFrZW4gZnJvbSBodHRwczovL2dpdHdlYi5nZW50b28ub3JnL3JlcG8vZ2VudG9vLmdpdC90cmVl L21lZGlhLWxpYnMvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvZmlsZXMvd2VicnRjLWF1ZGlvLXBy b2Nlc3NpbmctMS4zLUFkZC1nZW5lcmljLWJ5dGUtb3JkZXItYW5kLXBvaW50ZXItc2l6ZS1kZXRl Y3Rpb24ucGF0Y2g/aWQ9MjljZDBlNjIyYjU3NGRmNmFkZmY1NzA0YWI0ZTIyMDcwOTYxOTc2Nwor aHR0cHM6Ly9idWdzLmdlbnRvby5vcmcvOTE3NDkzCitodHRwczovL3NvdXJjZXMuZGViaWFuLm9y Zy9zcmMvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvMS4wLTAuMi9kZWJpYW4vcGF0Y2hlcy9BZGQt Z2VuZXJpYy1ieXRlLW9yZGVyLWFuZC1wb2ludGVyLXNpemUtZGV0ZWN0aW9uLnBhdGNoLwogCitE ZXNjcmlwdGlvbjogQWRkIGdlbmVyaWMgYnl0ZSBvcmRlciBhbmQgcG9pbnRlciBzaXplIGRldGVj dGlvbgorQXV0aG9yOiBUaGFuIDx0aGFuQHJlZGhhdC5jb20+CitPcmlnaW46IGh0dHBzOi8vYnVn cy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzM4I2M0CitMYXN0LVVwZGF0ZTog MjAyMi0wMi0wMQogLS0tCi0gd2VicnRjL3R5cGVkZWZzLmggfCAxNCArKysrKysrKysrKysrLQot IDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYg LS1naXQgYS93ZWJydGMvdHlwZWRlZnMuaCBiL3dlYnJ0Yy90eXBlZGVmcy5oCi1pbmRleCBkODc1 NDkwLi5kYzA3NGYxIDEwMDY0NAotLS0tIGEvd2VicnRjL3R5cGVkZWZzLmgKLSsrKyBiL3dlYnJ0 Yy90eXBlZGVmcy5oCi1AQCAtNDgsNyArNDgsMTkgQEAKK1RoaXMgcGF0Y2ggaGVhZGVyIGZvbGxv d3MgREVQLTM6IGh0dHA6Ly9kZXAuZGViaWFuLm5ldC9kZXBzL2RlcDMvCistLS0gYS93ZWJydGMv cnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAorKysrIGIvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNo LmgKK0BAIC01OCw3ICs1OCwxOSBAQAogICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwogICNk ZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgogICNlbHNlCi0tI2Vycm9yIFBsZWFzZSBh ZGQgc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gdHlwZWRlZnMuaAorLSNlcnJvciBQ bGVhc2UgYWRkIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19iYXNlL3N5c3Rl bS9hcmNoLmgKICsvKiBpbnN0ZWFkIG9mIGZhaWxpbmcsIHVzZSB0eXBpY2FsIHVuaXggZGVmaW5l cy4uLiAqLwogKyNpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXwog KyNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93 ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL2k2ODYtbm8tc3NlLnBhdGNoIGIvc3JjcGtn cy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy9wYXRjaGVzL2k2ODYtbm8tc3NlLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmRlMTQ1YWYyMDgzMTIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvaTY4 Ni1uby1zc2UucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorVGFrZW4gZnJvbSBodHRwczovL2dpdHdl Yi5nZW50b28ub3JnL3JlcG8vZ2VudG9vLmdpdC90cmVlL21lZGlhLWxpYnMvd2VicnRjLWF1ZGlv LXByb2Nlc3NpbmcvZmlsZXMvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zLXg4Ni1uby1zc2Uu cGF0Y2g/aWQ9MjljZDBlNjIyYjU3NGRmNmFkZmY1NzA0YWI0ZTIyMDcwOTYxOTc2NworaHR0cHM6 Ly9idWdzLmdlbnRvby5vcmcvOTIxMTQwCitodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcv cHVsc2VhdWRpby93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy8tL2lzc3Vlcy81CistLS0gYS93ZWJy dGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAorKysrIGIvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9h cmNoLmgKK0BAIC0zNCw3ICszNCw3IEBACisgI2Vsc2UKKyAjZGVmaW5lIFdFQlJUQ19BUkNIXzMy X0JJVFMKKyAjZW5kaWYKKy0jZWxpZiBkZWZpbmVkKF9NX0lYODYpIHx8IGRlZmluZWQoX19pMzg2 X18pCisrI2VsaWYgZGVmaW5lZChfX1NTRV9fKSAmJiAoZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZp bmVkKF9faTM4Nl9fKSkKKyAjZGVmaW5lIFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkKKyAjZGVmaW5l IFdFQlJUQ19BUkNIX1g4NgorICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUworCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbWlwcy5wYXRjaCBi L3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9taXBzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTlhYWYzOTIyMDgyLi4wMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9taXBzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLS0tLSB3ZWJydGMtYXVkaW8tcHJvY2Vzc2lu Zy0wLjNfMy9jb25maWd1cmUuYWMJMjAxNy0xMS0yMiAyMDoyNjo1NC4yMDcwMDk4ODEgKzAxMDAK LSsrKyB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0wLjNfMy9jb25maWd1cmUuYWMJMjAxNy0xMS0y MiAyMDozNzo1Ny40NzI5OTY1MjEgKzAxMDAKLUBAIC05MCwxMCArOTAsMTQgQEAKLSAJW0hBVkVf TkVPTj0xOyBBUkNIX0NGTEFHUz0iJHtBUkNIX0NGTEFHU30gLURXRUJSVENfSEFTX05FT04gLURX RUJSVENfQVJDSF9BUk02NCJdKQotIEFDX0NIRUNLX0RFQ0xTKFtfX2kzODZfX10sIFtIQVZFX1g4 Nj0xXSkKLSBBQ19DSEVDS19ERUNMUyhbX194ODZfNjRfX10sIFtIQVZFX1g4Nj0xXSkKLStBQ19D SEVDS19ERUNMUyhbX19NSVBTRUJfX10sIFtIQVZFX01JUFNFQj0xXSkKLStBQ19DSEVDS19ERUNM UyhbX19NSVBTRUxfX10sIFtIQVZFX01JUFNFTD0xXSkKLSAKLSBBTV9DT05ESVRJT05BTChIQVZF X1g4NiwgW3Rlc3QgIngke0hBVkVfWDg2fSIgPSAieDEiXSkKLSBBTV9DT05ESVRJT05BTChIQVZF X0FSTSwgW3Rlc3QgIngke0hBVkVfQVJNfSIgPSAieDEiXSkKLSBBTV9DT05ESVRJT05BTChIQVZF X0FSTVY3LCBbdGVzdCAieCR7SEFWRV9BUk1WN30iID0gIngxIl0pCi0rQU1fQ09ORElUSU9OQUwo SEFWRV9NSVBTRUIsIFt0ZXN0ICJ4JHtIQVZFX01JUFNFQn0iID0gIngxIl0pCi0rQU1fQ09ORElU SU9OQUwoSEFWRV9NSVBTRUwsIFt0ZXN0ICJ4JHtIQVZFX01JUFNFTH0iID0gIngxIl0pCi0gCi0g IyBCb3Jyb3dlZCBmcm9tIHB1bHNlYXVkaW8ncyBjb25maWd1cmUuYWMKLSBBQ19BUkdfRU5BQkxF KFtuZW9uXSwKLS0tLSB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0wLjNfMy93ZWJydGMvdHlwZWRl ZnMuaAkyMDE1LTEwLTE1IDEyOjQ4OjI1LjAwMDAwMDAwMCArMDIwMAotKysrIHdlYnJ0Yy1hdWRp by1wcm9jZXNzaW5nLTAuM18zL3dlYnJ0Yy90eXBlZGVmcy5oCTIwMTctMTEtMjIgMjA6Mzk6MjAu ODAwOTk0ODQzICswMTAwCi1AQCAtNDcsNiArNDcsMTAgQEAKLSAjZWxpZiBkZWZpbmVkKF9fcG5h Y2xfXykKLSAjZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKLSAjZGVmaW5lIFdFQlJUQ19BUkNI X0xJVFRMRV9FTkRJQU4KLSsjZWxpZiBkZWZpbmVkKF9fTUlQU0VMX18pCi0rI2RlZmluZSBXRUJS VENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2VsaWYgZGVmaW5lZChfX01JUFNFQl9fKQotKyNkZWZp bmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotICNlbHNlCi0gI2Vycm9yIFBsZWFzZSBhZGQgc3Vw cG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gdHlwZWRlZnMuaAotICNlbmRpZgotLS0tIHdl YnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTAuMy93ZWJydGMvY29tbW9uX2F1ZGlvL3dhdl9maWxlLmNj CTIwMTUtMTEtMTkgMTM6NDE6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgd2VicnRjLWF1ZGlvLXBy b2Nlc3NpbmctMC4zL3dlYnJ0Yy9jb21tb25fYXVkaW8vd2F2X2ZpbGUuY2MJMjAxNy0xMS0yMiAy MTowMTo0Ni41NTQ5Njc3MzcgKzAxMDAKLUBAIC02NCw5ICs2NCw2IEBACi0gfQotIAotIHNpemVf dCBXYXZSZWFkZXI6OlJlYWRTYW1wbGVzKHNpemVfdCBudW1fc2FtcGxlcywgaW50MTZfdCogc2Ft cGxlcykgewotLSNpZm5kZWYgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotLSNlcnJvciAiTmVl ZCB0byBjb252ZXJ0IHNhbXBsZXMgdG8gYmlnLWVuZGlhbiB3aGVuIHJlYWRpbmcgZnJvbSBXQVYg ZmlsZSIKLS0jZW5kaWYKLSAgIC8vIFRoZXJlIGNvdWxkIGJlIG1ldGFkYXRhIGFmdGVyIHRoZSBh dWRpbzsgZW5zdXJlIHdlIGRvbid0IHJlYWQgaXQuCi0gICBudW1fc2FtcGxlcyA9IHN0ZDo6bWlu KHJ0Yzo6Y2hlY2tlZF9jYXN0PHVpbnQzMl90PihudW1fc2FtcGxlcyksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIG51bV9zYW1wbGVzX3JlbWFpbmluZ18pOwotQEAgLTc2LDYgKzczLDEyIEBA Ci0gICBSVENfQ0hFQ0socmVhZCA9PSBudW1fc2FtcGxlcyB8fCBmZW9mKGZpbGVfaGFuZGxlXykp OwotICAgUlRDX0NIRUNLX0xFKHJlYWQsIG51bV9zYW1wbGVzX3JlbWFpbmluZ18pOwotICAgbnVt X3NhbXBsZXNfcmVtYWluaW5nXyAtPSBydGM6OmNoZWNrZWRfY2FzdDx1aW50MzJfdD4ocmVhZCk7 Ci0rI2lmZGVmIFdFQlJUQ19BUkNIX0JJR19FTkRJQU4KLSsgIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgcmVhZDsgaSsrKSB7Ci0rICAgIHVpbnQxNl90IHMgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4o c2FtcGxlc1tpXSk7Ci0rICAgIHNhbXBsZXNbaV0gPSBzdGF0aWNfY2FzdDxpbnQxNl90PigocyA+ PiA4KSB8IChzIDw8IDgpKTsKLSsgIH0KLSsjZW5kaWYKLSAgIHJldHVybiByZWFkOwotIH0KLSAK LUBAIC0xMTksMTEgKzEyMiwyMCBAQAotIH0KLSAKLSB2b2lkIFdhdldyaXRlcjo6V3JpdGVTYW1w bGVzKGNvbnN0IGludDE2X3QqIHNhbXBsZXMsIHNpemVfdCBudW1fc2FtcGxlcykgewotLSNpZm5k ZWYgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotLSNlcnJvciAiTmVlZCB0byBjb252ZXJ0IHNh bXBsZXMgdG8gbGl0dGxlLWVuZGlhbiB3aGVuIHdyaXRpbmcgdG8gV0FWIGZpbGUiCi0tI2VuZGlm Ci0rI2lmZGVmIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSAgIGNvbnN0IHNpemVfdCB3cml0 dGVuID0KLSAgICAgICBmd3JpdGUoc2FtcGxlcywgc2l6ZW9mKCpzYW1wbGVzKSwgbnVtX3NhbXBs ZXMsIGZpbGVfaGFuZGxlXyk7Ci0rI2Vsc2UKLSsgIHNpemVfdCB3cml0dGVuID0gMDsKLSsgIGZv ciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX3NhbXBsZXM7IGkrKykgewotKyAgICB1aW50MTZfdCBz ID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KHNhbXBsZXNbaV0pOwotKyAgICBzID0gc3RhdGljX2Nh c3Q8aW50MTZfdD4oKHM8PDgpIHwgKHM+PjgpKTsKLSsgICAgc2l6ZV90IHNpemUgPSBmd3JpdGUo JnMsIHNpemVvZihzKSwgMSwgZmlsZV9oYW5kbGVfKTsKLSsgICAgaWYgKHNpemUgPCAxKQotKyAg ICAgIGJyZWFrOwotKyAgICB3cml0dGVuICs9IHNpemU7Ci0rICB9Ci0rI2VuZGlmCi0gICBSVENf Q0hFQ0tfRVEobnVtX3NhbXBsZXMsIHdyaXR0ZW4pOwotICAgbnVtX3NhbXBsZXNfICs9IHN0YXRp Y19jYXN0PHVpbnQzMl90Pih3cml0dGVuKTsKLSAgIFJUQ19DSEVDSyh3cml0dGVuIDw9IHN0ZDo6 bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSB8fAotLS0tIHdlYnJ0Yy1hdWRpby1wcm9j ZXNzaW5nLTAuMy93ZWJydGMvY29tbW9uX2F1ZGlvL3dhdl9oZWFkZXIuY2MJMjAxNS0xMC0xNSAx Mjo0ODo0NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyB3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0wLjMv d2VicnRjL2NvbW1vbl9hdWRpby93YXZfaGVhZGVyLmNjCTIwMTctMTEtMjIgMjE6MTE6MzYuMjkx OTU1ODU5ICswMTAwCi1AQCAtMTI5LDcgKzEyOSwzMCBAQAotICAgcmV0dXJuIHN0ZDo6c3RyaW5n KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZ4KSwgNCk7Ci0gfQotICNlbHNlCi0tI2Vycm9yICJX cml0ZSBiZS10by1sZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyIKLStzdGF0aWMgaW5saW5lIHZvaWQg V3JpdGVMRTE2KHVpbnQxNl90KiBmLCB1aW50MTZfdCB4KSB7ICpmID0gKHggPj4gOCkgfCAoeCA8 PCA4KTsgfQotK3N0YXRpYyBpbmxpbmUgdm9pZCBXcml0ZUxFMzIodWludDMyX3QqIGYsIHVpbnQz Ml90IHgpIHsKLSsgICpmID0gKCh4ICYgMHhmZjAwMDAwMCkgPj4gMjQpIHwKLSsgICAgICAgKCh4 ICYgMHgwMGZmMDAwMCkgPj4gIDgpIHwKLSsgICAgICAgKCh4ICYgMHgwMDAwZmYwMCkgPDwgIDgp IHwKLSsgICAgICAgKCh4ICYgMHgwMDAwMDBmZikgPDwgMjQpOwotK30KLStzdGF0aWMgaW5saW5l IHZvaWQgV3JpdGVGb3VyQ0ModWludDMyX3QqIGYsIGNoYXIgYSwgY2hhciBiLCBjaGFyIGMsIGNo YXIgZCkgewotKyAgKmYgPSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGEpIDw8IDI0KQotKyAgICAg IHwgKHN0YXRpY19jYXN0PHVpbnQzMl90PihiKSA8PCAxNikKLSsgICAgICB8IChzdGF0aWNfY2Fz dDx1aW50MzJfdD4oYykgPDwgOCkKLSsgICAgICB8IHN0YXRpY19jYXN0PHVpbnQzMl90PihkKTsK LSt9Ci0rc3RhdGljIGlubGluZSB1aW50MTZfdCBSZWFkTEUxNih1aW50MTZfdCB4KSB7IHJldHVy biAoeCA+PiA4KSB8ICh4IDw8IDgpOyB9Ci0rc3RhdGljIGlubGluZSB1aW50MzJfdCBSZWFkTEUz Mih1aW50MzJfdCB4KSB7Ci0rICByZXR1cm4gKCh4IDw8IDI0KSAmIDB4ZmYwMDAwMDApIHwKLSsg ICAgICAgICAoKHggPDwgIDgpICYgMHgwMGZmMDAwMCkgfAotKyAgICAgICAgICgoeCA+PiAgOCkg JiAweDAwMDBmZjAwKSB8Ci0rICAgICAgICAgKCh4ID4+IDI0KSAmIDB4MDAwMDAwZmYpOwotK30K LStzdGF0aWMgaW5saW5lIHN0ZDo6c3RyaW5nIFJlYWRGb3VyQ0ModWludDMyX3QgeCkgewotKyAg dWludDMyX3QgcyA9IFJlYWRMRTMyKHgpOwotKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKHJlaW50ZXJw cmV0X2Nhc3Q8Y2hhcio+KCZzKSwgNCk7Ci0rfQotICNlbmRpZgotIAotIHN0YXRpYyBpbmxpbmUg dWludDMyX3QgUmlmZkNodW5rU2l6ZSh1aW50MzJfdCBieXRlc19pbl9wYXlsb2FkKSB7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3BhdGNoZXMvbXVzbC5wYXRj aCBiL3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9tdXNsLnBhdGNoCmlu ZGV4IGFkY2E3OWI2Yjc0ODYuLjMzNWE0NDk2ODZiZjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9tdXNsLnBhdGNoCisrKyBiL3NyY3BrZ3Mvd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmcvcGF0Y2hlcy9tdXNsLnBhdGNoCkBAIC0xLDIwICsxLDMzIEBA Ci0tLS0gYS93ZWJydGMvYmFzZS9jaGVja3MuY2Mub3JpZwkyMDE2LTA2LTI1IDA3OjQ3OjM0LjA5 OTUxNTU0OCArMDIwMAotKysrIGIvd2VicnRjL2Jhc2UvY2hlY2tzLmNjCTIwMTYtMDYtMjUgMDc6 NDg6MjguNTU0MTIyNDYzICswMjAwCi1AQCAtMTYsNyArMTYsNyBAQAotICNpbmNsdWRlIDxjc3Rk aW8+Ci0gI2luY2x1ZGUgPGNzdGRsaWI+CitodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcv cHVsc2VhdWRpby93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy8tL21lcmdlX3JlcXVlc3RzLzM3Ciso c2VlIGFsc28gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL3B1bHNlYXVkaW8vd2VicnRj LWF1ZGlvLXByb2Nlc3NpbmcvLS9tZXJnZV9yZXF1ZXN0cy8zOCkKKworRnJvbSBkZTFiOWM0NDRk ZjFlZDY2ZDcyYTRhYjNkMGU0ZGQyMTUxMDM3OTM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWFya3VzIFZvbGsgPGZfbF9rQHQtb25saW5lLmRlPgorRGF0ZTogVGh1LCAxNCBTZXAg MjAyMyAxNjoxMjozMiArMDIwMAorU3ViamVjdDogW1BBVENIXSBmaWxlX3dyYXBwZXIuaDogYWRk IG1pc3NpbmcgaW5jbHVkZSBmb3IgbXVzbAorCit0aGlzIGZpeGVzOgorfCBJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi4vd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zL3dlYnJ0Yy9ydGNfYmFzZS9z eXN0ZW0vZmlsZV93cmFwcGVyLmNjOjExOgorfCAuLi93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0x LjMvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9maWxlX3dyYXBwZXIuaDo4NjoyMTogZXJyb3I6ICdp bnQ2NF90JyBoYXMgbm90IGJlZW4gZGVjbGFyZWQKKworaWYgYnVpbHQgd2l0aCBtdXNsIGxpYmMK KworU2lnbmVkLW9mZi1ieTogTWFya3VzIFZvbGsgPGZfbF9rQHQtb25saW5lLmRlPgorLS0tCisg d2VicnRjL3J0Y19iYXNlL3N5c3RlbS9maWxlX3dyYXBwZXIuaCB8IDEgKworIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvd2VicnRjL3J0Y19iYXNlL3N5c3Rl bS9maWxlX3dyYXBwZXIuaCBiL3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vZmlsZV93cmFwcGVyLmgK K2luZGV4IDQyYzQ2M2MuLmMzNGQzNjYgMTAwNjQ0CistLS0gYS93ZWJydGMvcnRjX2Jhc2Uvc3lz dGVtL2ZpbGVfd3JhcHBlci5oCisrKysgYi93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2ZpbGVfd3Jh cHBlci5oCitAQCAtMTMsNiArMTMsNyBAQAogIAotLSNpZiBkZWZpbmVkKF9fR0xJQkNYWF9fKSAm JiAhZGVmaW5lZChfX1VDTElCQ19fKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5l ZChfX0dMSUJDWFhfXykKLSAjaW5jbHVkZSA8Y3h4YWJpLmg+Ci0gI2luY2x1ZGUgPGV4ZWNpbmZv Lmg+Ci0gI2VuZGlmCi1AQCAtNTUsNyArNTUsNyBAQCB2b2lkIFByaW50RXJyb3IoY29uc3QgY2hh ciogZm9ybWF0LCAuLi4pCi0gLy8gdG8gZ2V0IHVzYWJsZSBzeW1ib2xzIG9uIExpbnV4LiBUaGlz IGlzIGNvcGllZCBmcm9tIFY4LiBDaHJvbWl1bSBoYXMgYSBtb3JlCi0gLy8gYWR2YW5jZWQgc3Rh Y2UgdHJhY2Ugc3lzdGVtOyBhbHNvIG1vcmUgZGlmZmljdWx0IHRvIGNvcHkuCi0gdm9pZCBEdW1w QmFja3RyYWNlKCkgewotLSNpZiBkZWZpbmVkKF9fR0xJQkNYWF9fKSAmJiAhZGVmaW5lZChfX1VD TElCQ19fKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX0dMSUJDWFhfXykK LSAgIHZvaWQqIHRyYWNlWzEwMF07Ci0gICBpbnQgc2l6ZSA9IGJhY2t0cmFjZSh0cmFjZSwgc2l6 ZW9mKHRyYWNlKSAvIHNpemVvZigqdHJhY2UpKTsKLSAgIGNoYXIqKiBzeW1ib2xzID0gYmFja3Ry YWNlX3N5bWJvbHModHJhY2UsIHNpemUpOworICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVk ZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAKKyAjaW5jbHVkZSA8c3RyaW5nPgor IAorLS0gCitHaXRMYWIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd2VicnRjLWF1ZGlvLXByb2Nlc3Np bmcvdGVtcGxhdGUgYi9zcmNwa2dzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nL3RlbXBsYXRlCmlu ZGV4IDMwYTQyMGIyOGY1NzUuLmU1Mjc3ZDE3ZTBiOWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93ZWJydGMtYXVkaW8t cHJvY2Vzc2luZy90ZW1wbGF0ZQpAQCAtMSwzOCArMSwzMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmcnCiBwa2duYW1lPXdlYnJ0Yy1hdWRpby1wcm9jZXNz aW5nCi12ZXJzaW9uPTAuMy4xCit2ZXJzaW9uPTEuMwogcmV2aXNpb249MQotYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQotaG9zdG1ha2VkZXBlbmRzPSJhdXRvbWFrZSBsaWJ0b29sIgorYnVpbGRf c3R5bGU9bWVzb24KK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKK21ha2VkZXBlbmRzPSJh YnNlaWwtY3BwLWRldmVsIgogc2hvcnRfZGVzYz0iQXVkaW9Qcm9jZXNzaW5nIGxpYnJhcnkgYmFz ZWQgb24gR29vZ2xlJ3MgaW1wbGVtZW50YXRpb24gb2YgV2ViUlRDIgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKLWhv bWVwYWdlPSJodHRwOi8vZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3B1bHNlYXVkaW8vd2VicnRj LWF1ZGlvLXByb2Nlc3NpbmciCi1kaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hMGZkZDkzOGZkODUyNzJkNjdlODE1NzJjNWE0ZDll MjAwYTBjMTA0NzUzY2IzYzIwOWRlZDE3NWNlM2M1ZGJmCitob21lcGFnZT0iaHR0cHM6Ly9mcmVl ZGVza3RvcC5vcmcvc29mdHdhcmUvcHVsc2VhdWRpby93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZyIK K2Rpc3RmaWxlcz0iJHtGUkVFREVTS1RPUF9TSVRFfS9wdWxzZWF1ZGlvL3dlYnJ0Yy1hdWRpby1w cm9jZXNzaW5nL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLSR7dmVyc2lvbn0udGFyLmd6IgorY2hl Y2tzdW09OTU1NTJmYzE3ZmFhMDIwMjEzMzcwN2JiYjM3MjdlOGMyY2Y2NGQ0MjY2ZmUzMWJmZGIy Mjk4ZDc2OWMxZGI3NQogCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkjIERpc2Fi bGUgbmVvbiBmb3IgdGhlIGFybSogYXJjaGl0ZWN0dXJlcwotCWFybSopIGNvbmZpZ3VyZV9hcmdz Kz0iIC0tZW5hYmxlLW5lb249bm8iIDs7Ci1lc2FjCi0KLXByZV9jb25maWd1cmUoKSB7Ci0JIyBS ZW1vdmUgZmFpbGluZyBzdGF0ZW1lbnQgUEtHX0NIRUNLX01PRFVMRShHTlVTVEwsIGdudXN0bCkK LQlzZWQgLWkgY29uZmlndXJlLmFjIC1lJy9pZiB0ZXN0ICJ4JHdpdGhfZ251c3RsIiAhPSAieG5v IjsgdGhlbi8sKzJkJwotCWF1dG9yZWNvbmYgLWZpCi19CisjIFVwc3RyZWFtIGlzc3VlOiBodHRw czovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcHVsc2VhdWRpby93ZWJydGMtYXVkaW8tcHJvY2Vz c2luZy8tL2lzc3Vlcy81CitpZiBbICIkWEJQU19NQUNISU5FIiA9ICJpNjg2IiBdOyB0aGVuCisJ Q1hYRkxBR1M9Ii1EUEZGRlRfU0lNRF9ESVNBQkxFPTEiCisJQ0ZMQUdTPSItRFBGRkZUX1NJTURf RElTQUJMRT0xIgorZmkKIAogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIENPUFlJTkcKIH0K IAogd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSIk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGFic2VpbC1jcHAtZGV2ZWwiCiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv aW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwotCQl2bW92ZSAidXNyL2xpYi8qLmEi CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJfQogfQoKRnJvbSBlMGE5YjNiOTVhYWE4ZjFmYzE2 Mzk1NmQ3YTgzYTRlZDkxODVkYzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjaW5l cmVhMCA8Y2luZXJlYTBAZGlzcm9vdC5vcmc+CkRhdGU6IEZyaSwgMjMgRmViIDIwMjQgMTg6MjA6 MTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDMvNl0gcHVsc2VhdWRpbzogcmV2YnVtcCBmb3Igd2Vi cnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zCgotLS0KIC4uLi9wYXRjaGVzL3dlYnJ0Yy1hdWRpby1w cm9jZXNzaW5nLTEucGF0Y2ggICB8IDY3NiArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvcHVs c2VhdWRpby90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogMiBmaWxlcyBjaGFu Z2VkLCA2NzkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3B1bHNlYXVkaW8vcGF0Y2hlcy93ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xLnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wdWxzZWF1ZGlvL3BhdGNoZXMvd2VicnRjLWF1ZGlv LXByb2Nlc3NpbmctMS5wYXRjaCBiL3NyY3BrZ3MvcHVsc2VhdWRpby9wYXRjaGVzL3dlYnJ0Yy1h dWRpby1wcm9jZXNzaW5nLTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMC4uMTI4MTY0MTZmMDQ5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHVsc2Vh dWRpby9wYXRjaGVzL3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nLTEucGF0Y2gKQEAgLTAsMCArMSw2 NzYgQEAKKyMgVGhpcyBjYW4gYmUgZHJvcHBlZCB3aXRoIFB1bHNlQXVkaW8gMTcKKworRnJvbSBi MTZiMTA3MTcxZjI0Zjc5MWY3OWMyMDczMGNmNmViM2FkNDY5OTQ0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogQXJ1biBSYWdoYXZhbiA8YXJ1bkBhc3ltcHRvdGljLmlvPgorRGF0ZTog VHVlLCAyMCBPY3QgMjAyMCAxNjoxODo1NyAtMDQwMAorU3ViamVjdDogW1BBVENIIDEvM10gZWNo by1jYW5jZWwtdGVzdDogRHJvcCByZWZlcmVuY2VzIHRvIGludGVybmFsIG1lc3NhZ2UKKyBxdWV1 ZQorCitXZSBkb24ndCBhY3R1YWxseSBpbml0aWFsaXNlIG9yIHVzZSBpdCBpbiB0aGUgdGVzdCwg YW5kIHRoaXMganVzdCBjYXVzZXMKK2EgY3Jhc2ggYXQgdGhlIGVuZC4KKworUGFydC1vZjogPGh0 dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8vLS9tZXJn ZV9yZXF1ZXN0cy8zOTU+CistLS0KKyBzcmMvbW9kdWxlcy9lY2hvLWNhbmNlbC9tb2R1bGUtZWNo by1jYW5jZWwuYyB8IDIgLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3NyYy9tb2R1bGVzL2VjaG8tY2FuY2VsL21vZHVsZS1lY2hvLWNhbmNlbC5jIGIv c3JjL21vZHVsZXMvZWNoby1jYW5jZWwvbW9kdWxlLWVjaG8tY2FuY2VsLmMKK2luZGV4IDNkNjNl YTYwODQuLmFlMWJmOWQ2ODQgMTAwNjQ0CistLS0gYS9zcmMvbW9kdWxlcy9lY2hvLWNhbmNlbC9t b2R1bGUtZWNoby1jYW5jZWwuYworKysrIGIvc3JjL21vZHVsZXMvZWNoby1jYW5jZWwvbW9kdWxl LWVjaG8tY2FuY2VsLmMKK0BAIC0yMzcwLDggKzIzNzAsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciogYXJndltdKSB7CisgICAgIH0KKyAKKyAgICAgdS5lYy0+ZG9uZSh1LmVjKTsKKy0gICAg dS5lYy0+bXNnLT5kZWFkID0gdHJ1ZTsKKy0gICAgcGFfZWNob19jYW5jZWxsZXJfbXNnX3VucmVm KHUuZWMtPm1zZyk7CisgCisgb3V0OgorICAgICBpZiAodS5jYXB0dXJlZF9maWxlKQorLS0gCitH aXRMYWIKKworCitGcm9tIDIyYmJiNWIzYmEwZDI4ZDYzMGIxMDk0NGZlMTlkN2Y5ZWVlM2EwMGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFZXJvIE51cmtrYWxhIDxlZXJvLm51cmtr YWxhQG9mZmNvZGUuZmk+CitEYXRlOiBUdWUsIDIwIE9jdCAyMDIwIDE2OjIwOjIzIC0wNDAwCitT dWJqZWN0OiBbUEFUQ0ggMi8zXSBlY2hvLWNhbmNlbDogYWRkIHdlYnJ0YyBBRUMzIHN1cHBvcnQK KworRHJvcCBhIG51bWJlciBvZiBub3cgdW5zdXBwb3J0ZWQgZmVhdHVyZXMsIGFuZCBhZGQgbmV3 IHBhcmFtZXRlcnMgZm9yCitwcmUtL3Bvc3QtYW1wbGlmaWNhdGlvbi4KKworUGFydC1vZjogPGh0 dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8vLS9tZXJn ZV9yZXF1ZXN0cy8zOTU+CistLS0KKyBzcmMvbW9kdWxlcy9lY2hvLWNhbmNlbC93ZWJydGMuY2Mg fCA0MzMgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEx MyBpbnNlcnRpb25zKCspLCAzMjAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvbW9k dWxlcy9lY2hvLWNhbmNlbC93ZWJydGMuY2MgYi9zcmMvbW9kdWxlcy9lY2hvLWNhbmNlbC93ZWJy dGMuY2MKK2luZGV4IDU2ZGFhYjBmZDAuLmVkNGJiNjVhNTYgMTAwNjQ0CistLS0gYS9zcmMvbW9k dWxlcy9lY2hvLWNhbmNlbC93ZWJydGMuY2MKKysrKyBiL3NyYy9tb2R1bGVzL2VjaG8tY2FuY2Vs L3dlYnJ0Yy5jYworQEAgLTMsOCArMyw4IEBACisgCisgICAgIENvcHlyaWdodCAyMDExIENvbGxh Ym9yYSBMdGQuCisgICAgICAgICAgICAgICAyMDE1IEFsZGViYXJhbiBTb2Z0QmFuayBHcm91cAor LQorLSAgICBDb250cmlidXRvcjogQXJ1biBSYWdoYXZhbiA8bWFpbEBhcnVucmFnaGF2YW4ubmV0 PgorKyAgICAgICAgICAgICAgMjAyMCBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFzeW1wdG90aWMuaW8+ CisrICAgICAgICAgICAgICAyMDIwIEVlcm8gTnVya2thbGEgPGVlcm8ubnVya2thbGFAb2ZmY29k ZS5maT4KKyAKKyAgICAgUHVsc2VBdWRpbyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAorQEAgLTM0LDgw ICszNCw0NyBAQCBQQV9DX0RFQ0xfQkVHSU4KKyAjaW5jbHVkZSAiZWNoby1jYW5jZWwuaCIKKyBQ QV9DX0RFQ0xfRU5ECisgCistI2luY2x1ZGUgPHdlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3Np bmcvaW5jbHVkZS9hdWRpb19wcm9jZXNzaW5nLmg+CistI2luY2x1ZGUgPHdlYnJ0Yy9tb2R1bGVz L2ludGVyZmFjZS9tb2R1bGVfY29tbW9uX3R5cGVzLmg+CistI2luY2x1ZGUgPHdlYnJ0Yy9zeXN0 ZW1fd3JhcHBlcnMvaW5jbHVkZS90cmFjZS5oPgorKyNkZWZpbmUgV0VCUlRDX0FQTV9ERUJVR19E VU1QIDAKKysKKysjaW5jbHVkZSA8bW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2luY2x1ZGUvYXVk aW9fcHJvY2Vzc2luZy5oPgorIAorICNkZWZpbmUgQkxPQ0tfU0laRV9VUyAxMDAwMAorIAorICNk ZWZpbmUgREVGQVVMVF9ISUdIX1BBU1NfRklMVEVSIHRydWUKKyAjZGVmaW5lIERFRkFVTFRfTk9J U0VfU1VQUFJFU1NJT04gdHJ1ZQorKyNkZWZpbmUgREVGQVVMVF9UUkFOU0lFTlRfTk9JU0VfU1VQ UFJFU1NJT04gdHJ1ZQorICNkZWZpbmUgREVGQVVMVF9BTkFMT0dfR0FJTl9DT05UUk9MIHRydWUK KyAjZGVmaW5lIERFRkFVTFRfRElHSVRBTF9HQUlOX0NPTlRST0wgZmFsc2UKKyAjZGVmaW5lIERF RkFVTFRfTU9CSUxFIGZhbHNlCistI2RlZmluZSBERUZBVUxUX1JPVVRJTkdfTU9ERSAic3BlYWtl cnBob25lIgorICNkZWZpbmUgREVGQVVMVF9DT01GT1JUX05PSVNFIHRydWUKKyAjZGVmaW5lIERF RkFVTFRfRFJJRlRfQ09NUEVOU0FUSU9OIGZhbHNlCistI2RlZmluZSBERUZBVUxUX1ZBRCB0cnVl CistI2RlZmluZSBERUZBVUxUX0VYVEVOREVEX0ZJTFRFUiBmYWxzZQorLSNkZWZpbmUgREVGQVVM VF9JTlRFTExJR0lCSUxJVFlfRU5IQU5DRVIgZmFsc2UKKy0jZGVmaW5lIERFRkFVTFRfRVhQRVJJ TUVOVEFMX0FHQyBmYWxzZQorKyNkZWZpbmUgREVGQVVMVF9WQUQgZmFsc2UKKyAjZGVmaW5lIERF RkFVTFRfQUdDX1NUQVJUX1ZPTFVNRSA4NQorLSNkZWZpbmUgREVGQVVMVF9CRUFNRk9STUlORyBm YWxzZQorLSNkZWZpbmUgREVGQVVMVF9UUkFDRSBmYWxzZQorKyNkZWZpbmUgREVGQVVMVF9QT1NU QU1QX0VOQUJMRSBmYWxzZQorKyNkZWZpbmUgREVGQVVMVF9QT1NUQU1QX0dBSU5fREIgMAorKyNk ZWZpbmUgREVGQVVMVF9QUkVBTVBfRU5BQkxFIGZhbHNlCisrI2RlZmluZSBERUZBVUxUX1BSRUFN UF9HQUlOX0RCIDAKKyAKKyAjZGVmaW5lIFdFQlJUQ19BR0NfTUFYX1ZPTFVNRSAyNTUKKysjZGVm aW5lIFdFQlJUQ19QT1NUQU1QX0dBSU5fTUFYX0RCIDkwCisrI2RlZmluZSBXRUJSVENfUFJFQU1Q X0dBSU5fTUFYX0RCIDkwCisgCisgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHZhbGlkX21vZGFy Z3NbXSA9IHsKKy0gICAgImhpZ2hfcGFzc19maWx0ZXIiLAorLSAgICAibm9pc2Vfc3VwcHJlc3Np b24iLAorKyAgICAiYWdjX3N0YXJ0X3ZvbHVtZSIsCisgICAgICJhbmFsb2dfZ2Fpbl9jb250cm9s IiwKKyAgICAgImRpZ2l0YWxfZ2Fpbl9jb250cm9sIiwKKysgICAgImhpZ2hfcGFzc19maWx0ZXIi LAorICAgICAibW9iaWxlIiwKKy0gICAgInJvdXRpbmdfbW9kZSIsCistICAgICJjb21mb3J0X25v aXNlIiwKKy0gICAgImRyaWZ0X2NvbXBlbnNhdGlvbiIsCisrICAgICJub2lzZV9zdXBwcmVzc2lv biIsCisrICAgICJwb3N0X2FtcGxpZmllciIsCisrICAgICJwb3N0X2FtcGxpZmllcl9nYWluIiwK KysgICAgInByZV9hbXBsaWZpZXIiLAorKyAgICAicHJlX2FtcGxpZmllcl9nYWluIiwKKysgICAg InRyYW5zaWVudF9ub2lzZV9zdXBwcmVzc2lvbiIsCisgICAgICJ2b2ljZV9kZXRlY3Rpb24iLAor LSAgICAiZXh0ZW5kZWRfZmlsdGVyIiwKKy0gICAgImludGVsbGlnaWJpbGl0eV9lbmhhbmNlciIs CistICAgICJleHBlcmltZW50YWxfYWdjIiwKKy0gICAgImFnY19zdGFydF92b2x1bWUiLAorLSAg ICAiYmVhbWZvcm1pbmciLAorLSAgICAibWljX2dlb21ldHJ5IiwgLyogZG9jdW1lbnRlZCBpbiBw YXJzZV9taWNfZ2VvbWV0cnkoKSAqLworLSAgICAidGFyZ2V0X2RpcmVjdGlvbiIsIC8qIGRvY3Vt ZW50ZWQgaW4gcGFyc2VfbWljX2dlb21ldHJ5KCkgKi8KKy0gICAgInRyYWNlIiwKKyAgICAgTlVM TAorIH07CisgCistc3RhdGljIGludCByb3V0aW5nX21vZGVfZnJvbV9zdHJpbmcoY29uc3QgY2hh ciAqcm1vZGUpIHsKKy0gICAgaWYgKHBhX3N0cmVxKHJtb2RlLCAicXVpZXQtZWFycGllY2Utb3It aGVhZHNldCIpKQorLSAgICAgICAgcmV0dXJuIHdlYnJ0Yzo6RWNob0NvbnRyb2xNb2JpbGU6OmtR dWlldEVhcnBpZWNlT3JIZWFkc2V0OworLSAgICBlbHNlIGlmIChwYV9zdHJlcShybW9kZSwgImVh cnBpZWNlIikpCistICAgICAgICByZXR1cm4gd2VicnRjOjpFY2hvQ29udHJvbE1vYmlsZTo6a0Vh cnBpZWNlOworLSAgICBlbHNlIGlmIChwYV9zdHJlcShybW9kZSwgImxvdWQtZWFycGllY2UiKSkK Ky0gICAgICAgIHJldHVybiB3ZWJydGM6OkVjaG9Db250cm9sTW9iaWxlOjprTG91ZEVhcnBpZWNl OworLSAgICBlbHNlIGlmIChwYV9zdHJlcShybW9kZSwgInNwZWFrZXJwaG9uZSIpKQorLSAgICAg ICAgcmV0dXJuIHdlYnJ0Yzo6RWNob0NvbnRyb2xNb2JpbGU6OmtTcGVha2VycGhvbmU7CistICAg IGVsc2UgaWYgKHBhX3N0cmVxKHJtb2RlLCAibG91ZC1zcGVha2VycGhvbmUiKSkKKy0gICAgICAg IHJldHVybiB3ZWJydGM6OkVjaG9Db250cm9sTW9iaWxlOjprTG91ZFNwZWFrZXJwaG9uZTsKKy0g ICAgZWxzZQorLSAgICAgICAgcmV0dXJuIC0xOworLX0KKy0KKy1jbGFzcyBQYVdlYnJ0Y1RyYWNl Q2FsbGJhY2sgOiBwdWJsaWMgd2VicnRjOjpUcmFjZUNhbGxiYWNrIHsKKy0gICAgdm9pZCBQcmlu dCh3ZWJydGM6OlRyYWNlTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCBsZW5n dGgpCistICAgIHsKKy0gICAgICAgIGlmIChsZXZlbCAmIHdlYnJ0Yzo6a1RyYWNlRXJyb3IgfHwg bGV2ZWwgJiB3ZWJydGM6OmtUcmFjZUNyaXRpY2FsKQorLSAgICAgICAgICAgIHBhX2xvZygiJXMi LCBtZXNzYWdlKTsKKy0gICAgICAgIGVsc2UgaWYgKGxldmVsICYgd2VicnRjOjprVHJhY2VXYXJu aW5nKQorLSAgICAgICAgICAgIHBhX2xvZ193YXJuKCIlcyIsIG1lc3NhZ2UpOworLSAgICAgICAg ZWxzZSBpZiAobGV2ZWwgJiB3ZWJydGM6OmtUcmFjZUluZm8pCistICAgICAgICAgICAgcGFfbG9n X2luZm8oIiVzIiwgbWVzc2FnZSk7CistICAgICAgICBlbHNlCistICAgICAgICAgICAgcGFfbG9n X2RlYnVnKCIlcyIsIG1lc3NhZ2UpOworLSAgICB9CistfTsKKy0KKyBzdGF0aWMgaW50IHdlYnJ0 Y192b2x1bWVfZnJvbV9wYShwYV92b2x1bWVfdCB2KQorIHsKKyAgICAgcmV0dXJuICh2ICogV0VC UlRDX0FHQ19NQVhfVk9MVU1FKSAvIFBBX1ZPTFVNRV9OT1JNOworQEAgLTEyMCw4ICs4Nyw3IEBA IHN0YXRpYyBwYV92b2x1bWVfdCB3ZWJydGNfdm9sdW1lX3RvX3BhKGludCB2KQorIAorIHN0YXRp YyB2b2lkIHdlYnJ0Y19lY19maXhhdGVfc3BlYyhwYV9zYW1wbGVfc3BlYyAqcmVjX3NzLCBwYV9j aGFubmVsX21hcCAqcmVjX21hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFfc2FtcGxlX3NwZWMgKnBsYXlfc3MsIHBhX2NoYW5uZWxfbWFwICpwbGF5X21hcCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFfc2FtcGxlX3NwZWMgKm91dF9zcywgcGFf Y2hhbm5lbF9tYXAgKm91dF9tYXAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgYmVhbWZvcm1pbmcpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh X3NhbXBsZV9zcGVjICpvdXRfc3MsIHBhX2NoYW5uZWxfbWFwICpvdXRfbWFwKQorIHsKKyAgICAg cmVjX3NzLT5mb3JtYXQgPSBQQV9TQU1QTEVfRkxPQVQzMk5FOworICAgICBwbGF5X3NzLT5mb3Jt YXQgPSBQQV9TQU1QTEVfRkxPQVQzMk5FOworQEAgLTEzOSwxMTAgKzEwNSwyMiBAQCBzdGF0aWMg dm9pZCB3ZWJydGNfZWNfZml4YXRlX3NwZWMocGFfc2FtcGxlX3NwZWMgKnJlY19zcywgcGFfY2hh bm5lbF9tYXAgKnJlY19tYQorICAgICAqb3V0X3NzID0gKnJlY19zczsKKyAgICAgKm91dF9tYXAg PSAqcmVjX21hcDsKKyAKKy0gICAgaWYgKGJlYW1mb3JtaW5nKSB7CistICAgICAgICAvKiBUaGUg YmVhbWZvcm1lciBnaXZlcyB1cyBhIHNpbmdsZSBjaGFubmVsICovCistICAgICAgICBvdXRfc3Mt PmNoYW5uZWxzID0gMTsKKy0gICAgICAgIHBhX2NoYW5uZWxfbWFwX2luaXRfbW9ubyhvdXRfbWFw KTsKKy0gICAgfQorLQorICAgICAvKiBQbGF5YmFjayBzdHJlYW0gcmF0ZSBuZWVkcyB0byBiZSB0 aGUgc2FtZSBhcyBjYXB0dXJlICovCisgICAgIHBsYXlfc3MtPnJhdGUgPSByZWNfc3MtPnJhdGU7 CisgfQorIAorLXN0YXRpYyBib29sIHBhcnNlX3BvaW50KGNvbnN0IGNoYXIgKipwb2ludCwgZmxv YXQgKCZmKVszXSkgeworLSAgICBpbnQgcmV0LCBsZW5ndGg7CistCistICAgIHJldCA9IHNzY2Fu ZigqcG9pbnQsICIlZywlZywlZyVuIiwgJmZbMF0sICZmWzFdLCAmZlsyXSwgJmxlbmd0aCk7Cist ICAgIGlmIChyZXQgIT0gMykKKy0gICAgICAgIHJldHVybiBmYWxzZTsKKy0KKy0gICAgLyogQ29u c3VtZSB0aGUgYnl0ZXMgd2UndmUgcmVhZCBzbyBmYXIgKi8KKy0gICAgKnBvaW50ICs9IGxlbmd0 aDsKKy0KKy0gICAgcmV0dXJuIHRydWU7CistfQorLQorLXN0YXRpYyBib29sIHBhcnNlX21pY19n ZW9tZXRyeShjb25zdCBjaGFyICoqbWljX2dlb21ldHJ5LCBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlBv aW50PiYgZ2VvbWV0cnkpIHsKKy0gICAgLyogVGhlIG1pY3JvcGhvbmUgZ2VvbWV0cnkgaXMgZXhw cmVzc2VkIGFzIGNhcnRlc2lhbiBwb2ludCBmb3JtOgorLSAgICAgKiAgIHgxLHkxLHoxLHgyLHky LHoyLC4uLgorLSAgICAgKgorLSAgICAgKiBXaGVyZSB4MSx5MSx6MSBpcyB0aGUgcG9zaXRpb24g b2YgdGhlIGZpcnN0IG1pY3JvcGhvbmUgd2l0aCByZWdhcmRzIHRvCistICAgICAqIHRoZSBhcnJh eSdzICJjZW50ZXIiLCB4Mix5Mix6MiB0aGUgcG9zaXRpb24gb2YgdGhlIHNlY29uZCwgYW5kIHNv IG9uLgorLSAgICAgKgorLSAgICAgKiAneCcgaXMgdGhlIGhvcml6b250YWwgY29vcmRpbmF0ZSwg d2l0aCBwb3NpdGl2ZSB2YWx1ZXMgYmVpbmcgdG8gdGhlCistICAgICAqIHJpZ2h0IGZyb20gdGhl IG1pYyBhcnJheSdzIHBlcnNwZWN0aXZlLgorLSAgICAgKgorLSAgICAgKiAneScgaXMgdGhlIGRl cHRoIGNvb3JkaW5hdGUsIHdpdGggcG9zaXRpdmUgdmFsdWVzIGJlaW5nIGluIGZyb250IG9mIHRo ZQorLSAgICAgKiBhcnJheS4KKy0gICAgICoKKy0gICAgICogJ3onIGlzIHRoZSB2ZXJ0aWNhbCBj b29yZGluYXRlLCB3aXRoIHBvc2l0aXZlIHZhbHVlcyBiZWluZyBhYm92ZSB0aGUKKy0gICAgICog YXJyYXkuCistICAgICAqCistICAgICAqIEFsbCBkaXN0YW5jZXMgYXJlIGluIG1ldGVycy4KKy0g ICAgICovCistCistICAgIC8qIFRoZSB0YXJnZXQgZGlyZWN0aW9uIGlzIGV4cGVjdGVkIHRvIGJl IGluIHNwaGVyaWNhbCBwb2ludCBmb3JtOgorLSAgICAgKiAgIGEsZSxyCistICAgICAqCistICAg ICAqIFdoZXJlICdhJyBpcyB0aGUgYXppbXV0aCBvZiB0aGUgdGFyZ2V0IHBvaW50IHJlbGF0aXZl IHRvIHRoZSBjZW50ZXIgb2YKKy0gICAgICogdGhlIGFycmF5LCAnZScgaXRzIGVsZXZhdGlvbiwg YW5kICdyJyB0aGUgcmFkaXVzLgorLSAgICAgKgorLSAgICAgKiAwIHJhZGlhbnMgYXppbXV0aCBp cyB0byB0aGUgcmlnaHQgb2YgdGhlIGFycmF5LCBhbmQgcG9zaXRpdmUgYW5nbGVzCistICAgICAq IG1vdmUgaW4gYSBjb3VudGVyLWNsb2Nrd2lzZSBkaXJlY3Rpb24uCistICAgICAqCistICAgICAq IDAgcmFkaWFucyBlbGV2YXRpb24gaXMgaG9yaXpvbnRhbCB3LnIudC4gdGhlIGFycmF5LCBhbmQg cG9zaXRpdmUKKy0gICAgICogYW5nbGVzIGdvIHVwd2FyZHMuCistICAgICAqCistICAgICAqIHJh ZGl1cyBpcyBkaXN0YW5jZSBmcm9tIHRoZSBhcnJheSBjZW50ZXIgaW4gbWV0ZXJzLgorLSAgICAg Ki8KKy0KKy0gICAgbG9uZyB1bnNpZ25lZCBpbnQgaTsKKy0gICAgZmxvYXQgZlszXTsKKy0KKy0g ICAgZm9yIChpID0gMDsgaSA8IGdlb21ldHJ5LnNpemUoKTsgaSsrKSB7CistICAgICAgICBpZiAo IXBhcnNlX3BvaW50KG1pY19nZW9tZXRyeSwgZikpIHsKKy0gICAgICAgICAgICBwYV9sb2coIkZh aWxlZCB0byBwYXJzZSBjaGFubmVsICVsdSBpbiBtaWNfZ2VvbWV0cnkiLCBpKTsKKy0gICAgICAg ICAgICByZXR1cm4gZmFsc2U7CistICAgICAgICB9CistCistICAgICAgICAvKiBFeGNlcHQgZm9y IHRoZSBsYXN0IHBvaW50LCB3ZSBzaG91bGQgaGF2ZSBhIHRyYWlsaW5nIGNvbW1hICovCistICAg ICAgICBpZiAoaSAhPSBnZW9tZXRyeS5zaXplKCkgLSAxKSB7CistICAgICAgICAgICAgaWYgKCoq bWljX2dlb21ldHJ5ICE9ICcsJykgeworLSAgICAgICAgICAgICAgICBwYV9sb2coIkZhaWxlZCB0 byBwYXJzZSBjaGFubmVsICVsdSBpbiBtaWNfZ2VvbWV0cnkiLCBpKTsKKy0gICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAoKm1pY19n ZW9tZXRyeSkrKzsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHBhX2xvZ19kZWJ1ZygiR290IG1p YyAjJWx1IHBvc2l0aW9uOiAoJWcsICVnLCAlZykiLCBpLCBmWzBdLCBmWzFdLCBmWzJdKTsKKy0K Ky0gICAgICAgIGdlb21ldHJ5W2ldLmNbMF0gPSBmWzBdOworLSAgICAgICAgZ2VvbWV0cnlbaV0u Y1sxXSA9IGZbMV07CistICAgICAgICBnZW9tZXRyeVtpXS5jWzJdID0gZlsyXTsKKy0gICAgfQor LQorLSAgICBpZiAoKiptaWNfZ2VvbWV0cnkgIT0gJ1wwJykgeworLSAgICAgICAgcGFfbG9nKCJG YWlsZWQgdG8gcGFyc2UgbWljX2dlb21ldHJ5IHZhbHVlOiBtb3JlIHBhcmFtZXRlcnMgdGhhbiBl eHBlY3RlZCIpOworLSAgICAgICAgcmV0dXJuIGZhbHNlOworLSAgICB9CistCistICAgIHJldHVy biB0cnVlOworLX0KKy0KKyBib29sIHBhX3dlYnJ0Y19lY19pbml0KHBhX2NvcmUgKmMsIHBhX2Vj aG9fY2FuY2VsbGVyICplYywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhX3NhbXBsZV9zcGVj ICpyZWNfc3MsIHBhX2NoYW5uZWxfbWFwICpyZWNfbWFwLAorICAgICAgICAgICAgICAgICAgICAg ICAgcGFfc2FtcGxlX3NwZWMgKnBsYXlfc3MsIHBhX2NoYW5uZWxfbWFwICpwbGF5X21hcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHBhX3NhbXBsZV9zcGVjICpvdXRfc3MsIHBhX2NoYW5uZWxf bWFwICpvdXRfbWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm5mcmFtZXMs IGNvbnN0IGNoYXIgKmFyZ3MpIHsKKy0gICAgd2VicnRjOjpBdWRpb1Byb2Nlc3NpbmcgKmFwbSA9 IE5VTEw7CisrICAgIHdlYnJ0Yzo6QXVkaW9Qcm9jZXNzaW5nICphcG0gPSB3ZWJydGM6OkF1ZGlv UHJvY2Vzc2luZ0J1aWxkZXIoKS5DcmVhdGUoKTsKKyAgICAgd2VicnRjOjpQcm9jZXNzaW5nQ29u ZmlnIHBjb25maWc7CistICAgIHdlYnJ0Yzo6Q29uZmlnIGNvbmZpZzsKKy0gICAgYm9vbCBocGYs IG5zLCBhZ2MsIGRnYywgbW9iaWxlLCBjbiwgdmFkLCBleHRfZmlsdGVyLCBpbnRlbGxpZ2liaWxp dHksIGV4cGVyaW1lbnRhbF9hZ2MsIGJlYW1mb3JtaW5nOworLSAgICBpbnQgcm0gPSAtMSwgaTsK Ky0gICAgdWludDMyX3QgYWdjX3N0YXJ0X3ZvbHVtZTsKKysgICAgd2VicnRjOjpBdWRpb1Byb2Nl c3Npbmc6OkNvbmZpZyBjb25maWc7CisrICAgIGJvb2wgaHBmLCBucywgdG5zLCBhZ2MsIGRnYywg bW9iaWxlLCBwcmVfYW1wLCB2YWQsIHBvc3RfYW1wOworKyAgICBpbnQgaTsKKysgICAgdWludDMy X3QgYWdjX3N0YXJ0X3ZvbHVtZSwgcHJlX2FtcF9nYWluLCBwb3N0X2FtcF9nYWluOworICAgICBw YV9tb2RhcmdzICptYTsKKy0gICAgYm9vbCB0cmFjZSA9IGZhbHNlOworIAorICAgICBpZiAoISht YSA9IHBhX21vZGFyZ3NfbmV3KGFyZ3MsIHZhbGlkX21vZGFyZ3MpKSkgeworICAgICAgICAgcGFf bG9nKCJGYWlsZWQgdG8gcGFyc2Ugc3VibW9kdWxlIGFyZ3VtZW50cy4iKTsKK0BAIC0yNjEsNiAr MTM5LDEyIEBAIGJvb2wgcGFfd2VicnRjX2VjX2luaXQocGFfY29yZSAqYywgcGFfZWNob19jYW5j ZWxsZXIgKmVjLAorICAgICAgICAgZ290byBmYWlsOworICAgICB9CisgCisrICAgIHRucyA9IERF RkFVTFRfVFJBTlNJRU5UX05PSVNFX1NVUFBSRVNTSU9OOworKyAgICBpZiAocGFfbW9kYXJnc19n ZXRfdmFsdWVfYm9vbGVhbihtYSwgInRyYW5zaWVudF9ub2lzZV9zdXBwcmVzc2lvbiIsICZ0bnMp IDwgMCkgeworKyAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgdHJhbnNpZW50X25vaXNl X3N1cHByZXNzaW9uIHZhbHVlIik7CisrICAgICAgICBnb3RvIGZhaWw7CisrICAgIH0KKysKKyAg ICAgYWdjID0gREVGQVVMVF9BTkFMT0dfR0FJTl9DT05UUk9MOworICAgICBpZiAocGFfbW9kYXJn c19nZXRfdmFsdWVfYm9vbGVhbihtYSwgImFuYWxvZ19nYWluX2NvbnRyb2wiLCAmYWdjKSA8IDAp IHsKKyAgICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIGFuYWxvZ19nYWluX2NvbnRyb2wg dmFsdWUiKTsKK0BAIC0yNzgsNjIgKzE2Miw0NyBAQCBib29sIHBhX3dlYnJ0Y19lY19pbml0KHBh X2NvcmUgKmMsIHBhX2VjaG9fY2FuY2VsbGVyICplYywKKyAgICAgICAgIGdvdG8gZmFpbDsKKyAg ICAgfQorIAorLSAgICBtb2JpbGUgPSBERUZBVUxUX01PQklMRTsKKy0gICAgaWYgKHBhX21vZGFy Z3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJtb2JpbGUiLCAmbW9iaWxlKSA8IDApIHsKKy0gICAg ICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIG1vYmlsZSB2YWx1ZSIpOworKyAgICBwcmVfYW1w ID0gREVGQVVMVF9QUkVBTVBfRU5BQkxFOworKyAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVf Ym9vbGVhbihtYSwgInByZV9hbXBsaWZpZXIiLCAmcHJlX2FtcCkgPCAwKSB7CisrICAgICAgICBw YV9sb2coIkZhaWxlZCB0byBwYXJzZSBwcmVfYW1wbGlmaWVyIHZhbHVlIik7CisgICAgICAgICBn b3RvIGZhaWw7CisgICAgIH0KKy0KKy0gICAgZWMtPnBhcmFtcy5kcmlmdF9jb21wZW5zYXRpb24g PSBERUZBVUxUX0RSSUZUX0NPTVBFTlNBVElPTjsKKy0gICAgaWYgKHBhX21vZGFyZ3NfZ2V0X3Zh bHVlX2Jvb2xlYW4obWEsICJkcmlmdF9jb21wZW5zYXRpb24iLCAmZWMtPnBhcmFtcy5kcmlmdF9j b21wZW5zYXRpb24pIDwgMCkgeworLSAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgZHJp ZnRfY29tcGVuc2F0aW9uIHZhbHVlIik7CisrICAgIHByZV9hbXBfZ2FpbiA9IERFRkFVTFRfUFJF QU1QX0dBSU5fREI7CisrICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV91MzIobWEsICJwcmVf YW1wbGlmaWVyX2dhaW4iLCAmcHJlX2FtcF9nYWluKSA8IDApIHsKKysgICAgICAgIHBhX2xvZygi RmFpbGVkIHRvIHBhcnNlIHByZV9hbXBsaWZpZXJfZ2FpbiB2YWx1ZSIpOworICAgICAgICAgZ290 byBmYWlsOworICAgICB9CistCistICAgIGlmIChtb2JpbGUpIHsKKy0gICAgICAgIGlmIChlYy0+ cGFyYW1zLmRyaWZ0X2NvbXBlbnNhdGlvbikgeworLSAgICAgICAgICAgIHBhX2xvZygiQ2FuJ3Qg dXNlIGRyaWZ0X2NvbXBlbnNhdGlvbiBpbiBtb2JpbGUgbW9kZSIpOworLSAgICAgICAgICAgIGdv dG8gZmFpbDsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmICgocm0gPSByb3V0aW5nX21vZGVf ZnJvbV9zdHJpbmcocGFfbW9kYXJnc19nZXRfdmFsdWUobWEsICJyb3V0aW5nX21vZGUiLCBERUZB VUxUX1JPVVRJTkdfTU9ERSkpKSA8IDApIHsKKy0gICAgICAgICAgICBwYV9sb2coIkZhaWxlZCB0 byBwYXJzZSByb3V0aW5nX21vZGUgdmFsdWUiKTsKKy0gICAgICAgICAgICBnb3RvIGZhaWw7Cist ICAgICAgICB9CistCistICAgICAgICBjbiA9IERFRkFVTFRfQ09NRk9SVF9OT0lTRTsKKy0gICAg ICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAiY29tZm9ydF9ub2lzZSIs ICZjbikgPCAwKSB7CistICAgICAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgY24gdmFs dWUiKTsKKy0gICAgICAgICAgICBnb3RvIGZhaWw7CistICAgICAgICB9CistICAgIH0gZWxzZSB7 CistICAgICAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWUobWEsICJjb21mb3J0X25vaXNlIiwg TlVMTCkgfHwgcGFfbW9kYXJnc19nZXRfdmFsdWUobWEsICJyb3V0aW5nX21vZGUiLCBOVUxMKSkg eworLSAgICAgICAgICAgIHBhX2xvZygiVGhlIHJvdXRpbmdfbW9kZSBhbmQgY29tZm9ydF9ub2lz ZSBvcHRpb25zIGFyZSBvbmx5IHZhbGlkIHdpdGggbW9iaWxlPXRydWUiKTsKKy0gICAgICAgICAg ICBnb3RvIGZhaWw7CistICAgICAgICB9CisrICAgIGlmIChwcmVfYW1wX2dhaW4gPiBXRUJSVENf UFJFQU1QX0dBSU5fTUFYX0RCKSB7CisrICAgICAgICBwYV9sb2coIlByZWFtcCBnYWluIG11c3Qg bm90IGV4Y2VlZCAldSIsIFdFQlJUQ19QUkVBTVBfR0FJTl9NQVhfREIpOworKyAgICAgICAgZ290 byBmYWlsOworICAgICB9CisgCistICAgIHZhZCA9IERFRkFVTFRfVkFEOworLSAgICBpZiAocGFf bW9kYXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgInZvaWNlX2RldGVjdGlvbiIsICZ2YWQpIDwg MCkgeworLSAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2Ugdm9pY2VfZGV0ZWN0aW9uIHZh bHVlIik7CisrICAgIHBvc3RfYW1wID0gREVGQVVMVF9QT1NUQU1QX0VOQUJMRTsKKysgICAgaWYg KHBhX21vZGFyZ3NfZ2V0X3ZhbHVlX2Jvb2xlYW4obWEsICJwb3N0X2FtcGxpZmllciIsICZwb3N0 X2FtcCkgPCAwKSB7CisrICAgICAgICBwYV9sb2coIkZhaWxlZCB0byBwYXJzZSBwb3N0X2FtcGxp ZmllciB2YWx1ZSIpOworICAgICAgICAgZ290byBmYWlsOworICAgICB9CistCistICAgIGV4dF9m aWx0ZXIgPSBERUZBVUxUX0VYVEVOREVEX0ZJTFRFUjsKKy0gICAgaWYgKHBhX21vZGFyZ3NfZ2V0 X3ZhbHVlX2Jvb2xlYW4obWEsICJleHRlbmRlZF9maWx0ZXIiLCAmZXh0X2ZpbHRlcikgPCAwKSB7 CistICAgICAgICBwYV9sb2coIkZhaWxlZCB0byBwYXJzZSBleHRlbmRlZF9maWx0ZXIgdmFsdWUi KTsKKysgICAgcG9zdF9hbXBfZ2FpbiA9IERFRkFVTFRfUE9TVEFNUF9HQUlOX0RCOworKyAgICBp ZiAocGFfbW9kYXJnc19nZXRfdmFsdWVfdTMyKG1hLCAicG9zdF9hbXBsaWZpZXJfZ2FpbiIsICZw b3N0X2FtcF9nYWluKSA8IDApIHsKKysgICAgICAgIHBhX2xvZygiRmFpbGVkIHRvIHBhcnNlIHBv c3RfYW1wbGlmaWVyX2dhaW4gdmFsdWUiKTsKKysgICAgICAgIGdvdG8gZmFpbDsKKysgICAgfQor KyAgICBpZiAocG9zdF9hbXBfZ2FpbiA+IFdFQlJUQ19QT1NUQU1QX0dBSU5fTUFYX0RCKSB7Cisr ICAgICAgICBwYV9sb2coIlBvc3RhbXAgZ2FpbiBtdXN0IG5vdCBleGNlZWQgJXUiLCBXRUJSVENf UE9TVEFNUF9HQUlOX01BWF9EQik7CisgICAgICAgICBnb3RvIGZhaWw7CisgICAgIH0KKyAKKy0g ICAgaW50ZWxsaWdpYmlsaXR5ID0gREVGQVVMVF9JTlRFTExJR0lCSUxJVFlfRU5IQU5DRVI7Cist ICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAiaW50ZWxsaWdpYmlsaXR5 X2VuaGFuY2VyIiwgJmludGVsbGlnaWJpbGl0eSkgPCAwKSB7CistICAgICAgICBwYV9sb2coIkZh aWxlZCB0byBwYXJzZSBpbnRlbGxpZ2liaWxpdHlfZW5oYW5jZXIgdmFsdWUiKTsKKysgICAgbW9i aWxlID0gREVGQVVMVF9NT0JJTEU7CisrICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29s ZWFuKG1hLCAibW9iaWxlIiwgJm1vYmlsZSkgPCAwKSB7CisrICAgICAgICBwYV9sb2coIkZhaWxl ZCB0byBwYXJzZSBtb2JpbGUgdmFsdWUiKTsKKyAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgfQor IAorLSAgICBleHBlcmltZW50YWxfYWdjID0gREVGQVVMVF9FWFBFUklNRU5UQUxfQUdDOworLSAg ICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgImV4cGVyaW1lbnRhbF9hZ2Mi LCAmZXhwZXJpbWVudGFsX2FnYykgPCAwKSB7CistICAgICAgICBwYV9sb2coIkZhaWxlZCB0byBw YXJzZSBleHBlcmltZW50YWxfYWdjIHZhbHVlIik7CisrICAgIGVjLT5wYXJhbXMuZHJpZnRfY29t cGVuc2F0aW9uID0gREVGQVVMVF9EUklGVF9DT01QRU5TQVRJT047CisrCisrICAgIHZhZCA9IERF RkFVTFRfVkFEOworKyAgICBpZiAocGFfbW9kYXJnc19nZXRfdmFsdWVfYm9vbGVhbihtYSwgInZv aWNlX2RldGVjdGlvbiIsICZ2YWQpIDwgMCkgeworKyAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8g cGFyc2Ugdm9pY2VfZGV0ZWN0aW9uIHZhbHVlIik7CisgICAgICAgICBnb3RvIGZhaWw7CisgICAg IH0KKyAKK0BAIC0zNDgsODIgKzIxNyw3IEBAIGJvb2wgcGFfd2VicnRjX2VjX2luaXQocGFfY29y ZSAqYywgcGFfZWNob19jYW5jZWxsZXIgKmVjLAorICAgICB9CisgICAgIGVjLT5wYXJhbXMud2Vi cnRjLmFnY19zdGFydF92b2x1bWUgPSBhZ2Nfc3RhcnRfdm9sdW1lOworIAorLSAgICBiZWFtZm9y bWluZyA9IERFRkFVTFRfQkVBTUZPUk1JTkc7CistICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1 ZV9ib29sZWFuKG1hLCAiYmVhbWZvcm1pbmciLCAmYmVhbWZvcm1pbmcpIDwgMCkgeworLSAgICAg ICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2UgYmVhbWZvcm1pbmcgdmFsdWUiKTsKKy0gICAgICAg IGdvdG8gZmFpbDsKKy0gICAgfQorLQorLSAgICBpZiAoZXh0X2ZpbHRlcikKKy0gICAgICAgIGNv bmZpZy5TZXQ8d2VicnRjOjpFeHRlbmRlZEZpbHRlcj4obmV3IHdlYnJ0Yzo6RXh0ZW5kZWRGaWx0 ZXIodHJ1ZSkpOworLSAgICBpZiAoaW50ZWxsaWdpYmlsaXR5KQorLSAgICAgICAgcGFfbG9nX3dh cm4oIlRoZSBpbnRlbGxpZ2liaWxpdHkgZW5oYW5jZXIgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0 ZWQiKTsKKy0gICAgaWYgKGV4cGVyaW1lbnRhbF9hZ2MpCistICAgICAgICBjb25maWcuU2V0PHdl YnJ0Yzo6RXhwZXJpbWVudGFsQWdjPihuZXcgd2VicnRjOjpFeHBlcmltZW50YWxBZ2ModHJ1ZSwg ZWMtPnBhcmFtcy53ZWJydGMuYWdjX3N0YXJ0X3ZvbHVtZSkpOworLQorLSAgICB0cmFjZSA9IERF RkFVTFRfVFJBQ0U7CistICAgIGlmIChwYV9tb2RhcmdzX2dldF92YWx1ZV9ib29sZWFuKG1hLCAi dHJhY2UiLCAmdHJhY2UpIDwgMCkgeworLSAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2Ug dHJhY2UgdmFsdWUiKTsKKy0gICAgICAgIGdvdG8gZmFpbDsKKy0gICAgfQorLQorLSAgICBpZiAo dHJhY2UpIHsKKy0gICAgICAgIHdlYnJ0Yzo6VHJhY2U6OkNyZWF0ZVRyYWNlKCk7CistICAgICAg ICB3ZWJydGM6OlRyYWNlOjpzZXRfbGV2ZWxfZmlsdGVyKHdlYnJ0Yzo6a1RyYWNlQWxsKTsKKy0g ICAgICAgIGVjLT5wYXJhbXMud2VicnRjLnRyYWNlX2NhbGxiYWNrID0gbmV3IFBhV2VicnRjVHJh Y2VDYWxsYmFjaygpOworLSAgICAgICAgd2VicnRjOjpUcmFjZTo6U2V0VHJhY2VDYWxsYmFjaygo UGFXZWJydGNUcmFjZUNhbGxiYWNrICopIGVjLT5wYXJhbXMud2VicnRjLnRyYWNlX2NhbGxiYWNr KTsKKy0gICAgfQorLQorLSAgICB3ZWJydGNfZWNfZml4YXRlX3NwZWMocmVjX3NzLCByZWNfbWFw LCBwbGF5X3NzLCBwbGF5X21hcCwgb3V0X3NzLCBvdXRfbWFwLCBiZWFtZm9ybWluZyk7CistCist ICAgIC8qIFdlIGRvIHRoaXMgYWZ0ZXIgZml4YXRlIGJlY2F1c2Ugd2UgbmVlZCB0aGUgY2FwdHVy ZSBjaGFubmVsIGNvdW50ICovCistICAgIGlmIChiZWFtZm9ybWluZykgeworLSAgICAgICAgc3Rk Ojp2ZWN0b3I8d2VicnRjOjpQb2ludD4gZ2VvbWV0cnkocmVjX3NzLT5jaGFubmVscyk7CistICAg ICAgICB3ZWJydGM6OlNwaGVyaWNhbFBvaW50ZiBkaXJlY3Rpb24oMC4wZiwgMC4wZiwgMC4wZik7 CistICAgICAgICBjb25zdCBjaGFyICptaWNfZ2VvbWV0cnksICp0YXJnZXRfZGlyZWN0aW9uOwor LQorLSAgICAgICAgaWYgKCEobWljX2dlb21ldHJ5ID0gcGFfbW9kYXJnc19nZXRfdmFsdWUobWEs ICJtaWNfZ2VvbWV0cnkiLCBOVUxMKSkpIHsKKy0gICAgICAgICAgICBwYV9sb2coIm1pY19nZW9t ZXRyeSBtdXN0IGJlIHNldCBpZiBiZWFtZm9ybWluZyBpcyBlbmFibGVkIik7CistICAgICAgICAg ICAgZ290byBmYWlsOworLSAgICAgICAgfQorLQorLSAgICAgICAgaWYgKCFwYXJzZV9taWNfZ2Vv bWV0cnkoJm1pY19nZW9tZXRyeSwgZ2VvbWV0cnkpKSB7CistICAgICAgICAgICAgcGFfbG9nKCJG YWlsZWQgdG8gcGFyc2UgbWljX2dlb21ldHJ5IHZhbHVlIik7CistICAgICAgICAgICAgZ290byBm YWlsOworLSAgICAgICAgfQorLQorLSAgICAgICAgaWYgKCh0YXJnZXRfZGlyZWN0aW9uID0gcGFf bW9kYXJnc19nZXRfdmFsdWUobWEsICJ0YXJnZXRfZGlyZWN0aW9uIiwgTlVMTCkpKSB7CistICAg ICAgICAgICAgZmxvYXQgZlszXTsKKy0KKy0gICAgICAgICAgICBpZiAoIXBhcnNlX3BvaW50KCZ0 YXJnZXRfZGlyZWN0aW9uLCBmKSkgeworLSAgICAgICAgICAgICAgICBwYV9sb2coIkZhaWxlZCB0 byBwYXJzZSB0YXJnZXRfZGlyZWN0aW9uIHZhbHVlIik7CistICAgICAgICAgICAgICAgIGdvdG8g ZmFpbDsKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgaWYgKCp0YXJnZXRfZGlyZWN0 aW9uICE9ICdcMCcpIHsKKy0gICAgICAgICAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gcGFyc2Ug dGFyZ2V0X2RpcmVjdGlvbiB2YWx1ZTogbW9yZSBwYXJhbWV0ZXJzIHRoYW4gZXhwZWN0ZWQiKTsK Ky0gICAgICAgICAgICAgICAgZ290byBmYWlsOworLSAgICAgICAgICAgIH0KKy0KKy0jZGVmaW5l IElTX1pFUk8oZikgKChmKSA8IDAuMDAwMDAxICYmIChmKSA+IC0wLjAwMDAwMSkKKy0KKy0gICAg ICAgICAgICBpZiAoIUlTX1pFUk8oZlsxXSkgfHwgIUlTX1pFUk8oZlsyXSkpIHsKKy0gICAgICAg ICAgICAgICAgcGFfbG9nKCJUaGUgYmVhbWZvcm1lciBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0 YXJnZXRpbmcgYWxvbmcgdGhlIGF6aW11dGgiKTsKKy0gICAgICAgICAgICAgICAgZ290byBmYWls OworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICBkaXJlY3Rpb24uc1swXSA9IGZbMF07 CistICAgICAgICAgICAgZGlyZWN0aW9uLnNbMV0gPSBmWzFdOworLSAgICAgICAgICAgIGRpcmVj dGlvbi5zWzJdID0gZlsyXTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmICghdGFyZ2V0X2Rp cmVjdGlvbikKKy0gICAgICAgICAgICBjb25maWcuU2V0PHdlYnJ0Yzo6QmVhbWZvcm1pbmc+KG5l dyB3ZWJydGM6OkJlYW1mb3JtaW5nKHRydWUsIGdlb21ldHJ5KSk7CistICAgICAgICBlbHNlCist ICAgICAgICAgICAgY29uZmlnLlNldDx3ZWJydGM6OkJlYW1mb3JtaW5nPihuZXcgd2VicnRjOjpC ZWFtZm9ybWluZyh0cnVlLCBnZW9tZXRyeSwgZGlyZWN0aW9uKSk7CistICAgIH0KKy0KKy0gICAg YXBtID0gd2VicnRjOjpBdWRpb1Byb2Nlc3Npbmc6OkNyZWF0ZShjb25maWcpOworKyAgICB3ZWJy dGNfZWNfZml4YXRlX3NwZWMocmVjX3NzLCByZWNfbWFwLCBwbGF5X3NzLCBwbGF5X21hcCwgb3V0 X3NzLCBvdXRfbWFwKTsKKyAKKyAgICAgcGNvbmZpZyA9IHsKKyAgICAgICAgIHdlYnJ0Yzo6U3Ry ZWFtQ29uZmlnKHJlY19zcy0+cmF0ZSwgcmVjX3NzLT5jaGFubmVscywgZmFsc2UpLCAvKiBpbnB1 dCBzdHJlYW0gKi8KK0BAIC00MzYsNDYgKzIzMCw2MCBAQCBib29sIHBhX3dlYnJ0Y19lY19pbml0 KHBhX2NvcmUgKmMsIHBhX2VjaG9fY2FuY2VsbGVyICplYywKKyAgICAgICAgIGdvdG8gZmFpbDsK KyAgICAgfQorIAorKyAgICBpZiAocHJlX2FtcCkgeworKyAgICAgICBjb25maWcucHJlX2FtcGxp Zmllci5lbmFibGVkID0gdHJ1ZTsKKysgICAgICAgY29uZmlnLnByZV9hbXBsaWZpZXIuZml4ZWRf Z2Fpbl9mYWN0b3IgPSAoZmxvYXQpcHJlX2FtcF9nYWluOworKyAgICB9IGVsc2UKKysgICAgICAg Y29uZmlnLnByZV9hbXBsaWZpZXIuZW5hYmxlZCA9IGZhbHNlOworKworICAgICBpZiAoaHBmKQor LSAgICAgICAgYXBtLT5oaWdoX3Bhc3NfZmlsdGVyKCktPkVuYWJsZSh0cnVlKTsKKy0KKy0gICAg aWYgKCFtb2JpbGUpIHsKKy0gICAgICAgIGFwbS0+ZWNob19jYW5jZWxsYXRpb24oKS0+ZW5hYmxl X2RyaWZ0X2NvbXBlbnNhdGlvbihlYy0+cGFyYW1zLmRyaWZ0X2NvbXBlbnNhdGlvbik7CistICAg ICAgICBhcG0tPmVjaG9fY2FuY2VsbGF0aW9uKCktPkVuYWJsZSh0cnVlKTsKKy0gICAgfSBlbHNl IHsKKy0gICAgICAgIGFwbS0+ZWNob19jb250cm9sX21vYmlsZSgpLT5zZXRfcm91dGluZ19tb2Rl KHN0YXRpY19jYXN0PHdlYnJ0Yzo6RWNob0NvbnRyb2xNb2JpbGU6OlJvdXRpbmdNb2RlPihybSkp OworLSAgICAgICAgYXBtLT5lY2hvX2NvbnRyb2xfbW9iaWxlKCktPmVuYWJsZV9jb21mb3J0X25v aXNlKGNuKTsKKy0gICAgICAgIGFwbS0+ZWNob19jb250cm9sX21vYmlsZSgpLT5FbmFibGUodHJ1 ZSk7CistICAgIH0KKysgICAgICAgIGNvbmZpZy5oaWdoX3Bhc3NfZmlsdGVyLmVuYWJsZWQgPSB0 cnVlOworKyAgICBlbHNlCisrICAgICAgICBjb25maWcuaGlnaF9wYXNzX2ZpbHRlci5lbmFibGVk ID0gZmFsc2U7CisgCistICAgIGlmIChucykgeworLSAgICAgICAgYXBtLT5ub2lzZV9zdXBwcmVz c2lvbigpLT5zZXRfbGV2ZWwod2VicnRjOjpOb2lzZVN1cHByZXNzaW9uOjprSGlnaCk7CistICAg ICAgICBhcG0tPm5vaXNlX3N1cHByZXNzaW9uKCktPkVuYWJsZSh0cnVlKTsKKy0gICAgfQorKyAg ICBjb25maWcuZWNob19jYW5jZWxsZXIuZW5hYmxlZCA9IHRydWU7CisgCistICAgIGlmIChhZ2Mg fHwgZGdjKSB7CistICAgICAgICBpZiAobW9iaWxlICYmIHJtIDw9IHdlYnJ0Yzo6RWNob0NvbnRy b2xNb2JpbGU6OmtFYXJwaWVjZSkgeworLSAgICAgICAgICAgIC8qIE1heWJlIHRoaXMgc2hvdWxk IGJlIGEga25vYiwgYnV0IHdlJ3ZlIGdvdCBhIGxvdCBvZiBrbm9icyBhbHJlYWR5ICovCistICAg ICAgICAgICAgYXBtLT5nYWluX2NvbnRyb2woKS0+c2V0X21vZGUod2VicnRjOjpHYWluQ29udHJv bDo6a0ZpeGVkRGlnaXRhbCk7CistICAgICAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuYWdjID0g ZmFsc2U7CistICAgICAgICB9IGVsc2UgaWYgKGRnYykgeworLSAgICAgICAgICAgIGFwbS0+Z2Fp bl9jb250cm9sKCktPnNldF9tb2RlKHdlYnJ0Yzo6R2FpbkNvbnRyb2w6OmtBZGFwdGl2ZURpZ2l0 YWwpOworLSAgICAgICAgICAgIGVjLT5wYXJhbXMud2VicnRjLmFnYyA9IGZhbHNlOworLSAgICAg ICAgfSBlbHNlIHsKKy0gICAgICAgICAgICBhcG0tPmdhaW5fY29udHJvbCgpLT5zZXRfbW9kZSh3 ZWJydGM6OkdhaW5Db250cm9sOjprQWRhcHRpdmVBbmFsb2cpOworLSAgICAgICAgICAgIGlmIChh cG0tPmdhaW5fY29udHJvbCgpLT5zZXRfYW5hbG9nX2xldmVsX2xpbWl0cygwLCBXRUJSVENfQUdD X01BWF9WT0xVTUUpICE9CistICAgICAgICAgICAgICAgICAgICB3ZWJydGM6OkF1ZGlvUHJvY2Vz c2luZzo6a05vRXJyb3IpIHsKKy0gICAgICAgICAgICAgICAgcGFfbG9nKCJGYWlsZWQgdG8gaW5p dGlhbGlzZSBBR0MiKTsKKy0gICAgICAgICAgICAgICAgZ290byBmYWlsOworLSAgICAgICAgICAg IH0KKy0gICAgICAgICAgICBlYy0+cGFyYW1zLndlYnJ0Yy5hZ2MgPSB0cnVlOworLSAgICAgICAg fQorKyAgICBpZiAoIW1vYmlsZSkKKysgICAgICAgIGNvbmZpZy5lY2hvX2NhbmNlbGxlci5tb2Jp bGVfbW9kZSA9IGZhbHNlOworKyAgICBlbHNlCisrICAgICAgICBjb25maWcuZWNob19jYW5jZWxs ZXIubW9iaWxlX21vZGUgPSB0cnVlOworKworKyAgICBpZiAobnMpCisrICAgICAgIGNvbmZpZy5u b2lzZV9zdXBwcmVzc2lvbi5lbmFibGVkID0gdHJ1ZTsKKysgICAgZWxzZQorKyAgICAgICBjb25m aWcubm9pc2Vfc3VwcHJlc3Npb24uZW5hYmxlZCA9IGZhbHNlOworIAorLSAgICAgICAgYXBtLT5n YWluX2NvbnRyb2woKS0+RW5hYmxlKHRydWUpOworKyAgICBpZiAodG5zKQorKyAgICAgICBjb25m aWcudHJhbnNpZW50X3N1cHByZXNzaW9uLmVuYWJsZWQgPSB0cnVlOworKyAgICBlbHNlCisrICAg ICAgIGNvbmZpZy50cmFuc2llbnRfc3VwcHJlc3Npb24uZW5hYmxlZCA9IGZhbHNlOworKworKyAg ICBpZiAoZGdjKSB7CisrICAgICAgICBlYy0+cGFyYW1zLndlYnJ0Yy5hZ2MgPSBmYWxzZTsKKysg ICAgICAgIGNvbmZpZy5nYWluX2NvbnRyb2xsZXIxLmVuYWJsZWQgPSB0cnVlOworKyAgICAgICAg aWYgKG1vYmlsZSkKKysgICAgICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMS5tb2RlID0g d2VicnRjOjpBdWRpb1Byb2Nlc3Npbmc6OkNvbmZpZzo6R2FpbkNvbnRyb2xsZXIxOjprRml4ZWRE aWdpdGFsOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGNvbmZpZy5nYWluX2NvbnRyb2xs ZXIxLm1vZGUgPSB3ZWJydGM6OkF1ZGlvUHJvY2Vzc2luZzo6Q29uZmlnOjpHYWluQ29udHJvbGxl cjE6OmtBZGFwdGl2ZURpZ2l0YWw7CisrICAgIH0gZWxzZSBpZiAoYWdjKSB7CisrICAgICAgICBl Yy0+cGFyYW1zLndlYnJ0Yy5hZ2MgPSB0cnVlOworKyAgICAgICAgY29uZmlnLmdhaW5fY29udHJv bGxlcjEuZW5hYmxlZCA9IHRydWU7CisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMS5t b2RlID0gd2VicnRjOjpBdWRpb1Byb2Nlc3Npbmc6OkNvbmZpZzo6R2FpbkNvbnRyb2xsZXIxOjpr QWRhcHRpdmVBbmFsb2c7CisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMS5hbmFsb2df bGV2ZWxfbWluaW11bSA9IDA7CisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMS5hbmFs b2dfbGV2ZWxfbWF4aW11bSA9IFdFQlJUQ19BR0NfTUFYX1ZPTFVNRTsKKyAgICAgfQorIAorICAg ICBpZiAodmFkKQorLSAgICAgICAgYXBtLT52b2ljZV9kZXRlY3Rpb24oKS0+RW5hYmxlKHRydWUp OworKyAgICAgICAgY29uZmlnLnZvaWNlX2RldGVjdGlvbi5lbmFibGVkID0gdHJ1ZTsKKysgICAg ZWxzZQorKyAgICAgICAgY29uZmlnLnZvaWNlX2RldGVjdGlvbi5lbmFibGVkID0gZmFsc2U7Cisr CisrICAgIGlmIChwb3N0X2FtcCkgeworKyAgICAgICAgY29uZmlnLmdhaW5fY29udHJvbGxlcjIu ZW5hYmxlZCA9IHRydWU7CisrICAgICAgICBjb25maWcuZ2Fpbl9jb250cm9sbGVyMi5maXhlZF9k aWdpdGFsLmdhaW5fZGIgPSAoZmxvYXQpcG9zdF9hbXBfZ2FpbjsKKysgICAgICAgIGNvbmZpZy5n YWluX2NvbnRyb2xsZXIyLmFkYXB0aXZlX2RpZ2l0YWwuZW5hYmxlZCA9IGZhbHNlOworKyAgICB9 IGVsc2UKKysgICAgICAgIGNvbmZpZy5nYWluX2NvbnRyb2xsZXIyLmVuYWJsZWQgPSBmYWxzZTsK KyAKKyAgICAgZWMtPnBhcmFtcy53ZWJydGMuYXBtID0gYXBtOworICAgICBlYy0+cGFyYW1zLndl YnJ0Yy5yZWNfc3MgPSAqcmVjX3NzOworQEAgLTQ4NSw2ICsyOTMsOCBAQCBib29sIHBhX3dlYnJ0 Y19lY19pbml0KHBhX2NvcmUgKmMsIHBhX2VjaG9fY2FuY2VsbGVyICplYywKKyAgICAgKm5mcmFt ZXMgPSBlYy0+cGFyYW1zLndlYnJ0Yy5ibG9ja3NpemU7CisgICAgIGVjLT5wYXJhbXMud2VicnRj LmZpcnN0ID0gdHJ1ZTsKKyAKKysgICAgYXBtLT5BcHBseUNvbmZpZyhjb25maWcpOworKworICAg ICBmb3IgKGkgPSAwOyBpIDwgcmVjX3NzLT5jaGFubmVsczsgaSsrKQorICAgICAgICAgZWMtPnBh cmFtcy53ZWJydGMucmVjX2J1ZmZlcltpXSA9IHBhX3huZXcoZmxvYXQsICpuZnJhbWVzKTsKKyAg ICAgZm9yIChpID0gMDsgaSA8IHBsYXlfc3MtPmNoYW5uZWxzOyBpKyspCitAQCAtNDk2LDEwICsz MDYsNyBAQCBib29sIHBhX3dlYnJ0Y19lY19pbml0KHBhX2NvcmUgKmMsIHBhX2VjaG9fY2FuY2Vs bGVyICplYywKKyBmYWlsOgorICAgICBpZiAobWEpCisgICAgICAgICBwYV9tb2RhcmdzX2ZyZWUo bWEpOworLSAgICBpZiAoZWMtPnBhcmFtcy53ZWJydGMudHJhY2VfY2FsbGJhY2spIHsKKy0gICAg ICAgIHdlYnJ0Yzo6VHJhY2U6OlJldHVyblRyYWNlKCk7CistICAgICAgICBkZWxldGUgKChQYVdl YnJ0Y1RyYWNlQ2FsbGJhY2sgKikgZWMtPnBhcmFtcy53ZWJydGMudHJhY2VfY2FsbGJhY2spOwor LSAgICB9IGlmIChhcG0pCisrICAgIGlmIChhcG0pCisgICAgICAgICBkZWxldGUgYXBtOworIAor ICAgICByZXR1cm4gZmFsc2U7CitAQCAtNTE1LDEyICszMjIsNiBAQCB2b2lkIHBhX3dlYnJ0Y19l Y19wbGF5KHBhX2VjaG9fY2FuY2VsbGVyICplYywgY29uc3QgdWludDhfdCAqcGxheSkgeworICAg ICBwYV9kZWludGVybGVhdmUocGxheSwgKHZvaWQgKiopIGJ1Ziwgc3MtPmNoYW5uZWxzLCBwYV9z YW1wbGVfc2l6ZShzcyksIG4pOworIAorICAgICBwYV9hc3NlcnRfc2UoYXBtLT5Qcm9jZXNzUmV2 ZXJzZVN0cmVhbShidWYsIGNvbmZpZywgY29uZmlnLCBidWYpID09IHdlYnJ0Yzo6QXVkaW9Qcm9j ZXNzaW5nOjprTm9FcnJvcik7CistCistICAgIC8qIEZJWE1FOiBJZiBQcm9jZXNzUmV2ZXJzZVN0 cmVhbSgpIG1ha2VzIGFueSBjaGFuZ2VzIHRvIHRoZSBhdWRpbywgc3VjaCBhcworLSAgICAgKiBh cHBseWluZyBpbnRlbGxpZ2liaWxpdHkgZW5oYW5jZW1lbnQsIHRob3NlIGNoYW5nZXMgZG9uJ3Qg aGF2ZSBhbnkKKy0gICAgICogZWZmZWN0LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCB0aGUg c291cmNlIHNpZGUsIGJ1dCB0aGUgcHJvY2Vzc2luZworLSAgICAgKiB3b3VsZCBoYXZlIHRvIGJl IGRvbmUgaW4gdGhlIHNpbmsgdG8gYmUgYWJsZSB0byBmZWVkIHRoZSBwcm9jZXNzZWQgYXVkaW8K Ky0gICAgICogdG8gc3BlYWtlcnMuICovCisgfQorIAorIHZvaWQgcGFfd2VicnRjX2VjX3JlY29y ZChwYV9lY2hvX2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3QgKnJlYywgdWludDhfdCAqb3V0 KSB7CitAQCAtNTM4LDcgKzMzOSw3IEBAIHZvaWQgcGFfd2VicnRjX2VjX3JlY29yZChwYV9lY2hv X2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3QgKnJlYywgdWludDhfdCAqb3V0CisgICAgIGlm IChlYy0+cGFyYW1zLndlYnJ0Yy5hZ2MpIHsKKyAgICAgICAgIHBhX3ZvbHVtZV90IHYgPSBwYV9l Y2hvX2NhbmNlbGxlcl9nZXRfY2FwdHVyZV92b2x1bWUoZWMpOworICAgICAgICAgb2xkX3ZvbHVt ZSA9IHdlYnJ0Y192b2x1bWVfZnJvbV9wYSh2KTsKKy0gICAgICAgIGFwbS0+Z2Fpbl9jb250cm9s KCktPnNldF9zdHJlYW1fYW5hbG9nX2xldmVsKG9sZF92b2x1bWUpOworKyAgICAgICAgYXBtLT5z ZXRfc3RyZWFtX2FuYWxvZ19sZXZlbChvbGRfdm9sdW1lKTsKKyAgICAgfQorIAorICAgICBhcG0t PnNldF9zdHJlYW1fZGVsYXlfbXMoMCk7CitAQCAtNTUzLDcgKzM1NCw3IEBAIHZvaWQgcGFfd2Vi cnRjX2VjX3JlY29yZChwYV9lY2hvX2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3QgKnJlYywg dWludDhfdCAqb3V0CisgICAgICAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuZmlyc3QgPSBmYWxz ZTsKKyAgICAgICAgICAgICBuZXdfdm9sdW1lID0gZWMtPnBhcmFtcy53ZWJydGMuYWdjX3N0YXJ0 X3ZvbHVtZTsKKyAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgbmV3X3ZvbHVtZSA9IGFw bS0+Z2Fpbl9jb250cm9sKCktPnN0cmVhbV9hbmFsb2dfbGV2ZWwoKTsKKysgICAgICAgICAgICBu ZXdfdm9sdW1lID0gYXBtLT5yZWNvbW1lbmRlZF9zdHJlYW1fYW5hbG9nX2xldmVsKCk7CisgICAg ICAgICB9CisgCisgICAgICAgICBpZiAob2xkX3ZvbHVtZSAhPSBuZXdfdm9sdW1lKQorQEAgLTU2 NCw5ICszNjUsNiBAQCB2b2lkIHBhX3dlYnJ0Y19lY19yZWNvcmQocGFfZWNob19jYW5jZWxsZXIg KmVjLCBjb25zdCB1aW50OF90ICpyZWMsIHVpbnQ4X3QgKm91dAorIH0KKyAKKyB2b2lkIHBhX3dl YnJ0Y19lY19zZXRfZHJpZnQocGFfZWNob19jYW5jZWxsZXIgKmVjLCBmbG9hdCBkcmlmdCkgewor LSAgICB3ZWJydGM6OkF1ZGlvUHJvY2Vzc2luZyAqYXBtID0gKHdlYnJ0Yzo6QXVkaW9Qcm9jZXNz aW5nKillYy0+cGFyYW1zLndlYnJ0Yy5hcG07CistCistICAgIGFwbS0+ZWNob19jYW5jZWxsYXRp b24oKS0+c2V0X3N0cmVhbV9kcmlmdF9zYW1wbGVzKGRyaWZ0ICogZWMtPnBhcmFtcy53ZWJydGMu YmxvY2tzaXplKTsKKyB9CisgCisgdm9pZCBwYV93ZWJydGNfZWNfcnVuKHBhX2VjaG9fY2FuY2Vs bGVyICplYywgY29uc3QgdWludDhfdCAqcmVjLCBjb25zdCB1aW50OF90ICpwbGF5LCB1aW50OF90 ICpvdXQpIHsKK0BAIC01NzcsMTEgKzM3NSw2IEBAIHZvaWQgcGFfd2VicnRjX2VjX3J1bihwYV9l Y2hvX2NhbmNlbGxlciAqZWMsIGNvbnN0IHVpbnQ4X3QgKnJlYywgY29uc3QgdWludDhfdCAqCisg dm9pZCBwYV93ZWJydGNfZWNfZG9uZShwYV9lY2hvX2NhbmNlbGxlciAqZWMpIHsKKyAgICAgaW50 IGk7CisgCistICAgIGlmIChlYy0+cGFyYW1zLndlYnJ0Yy50cmFjZV9jYWxsYmFjaykgeworLSAg ICAgICAgd2VicnRjOjpUcmFjZTo6UmV0dXJuVHJhY2UoKTsKKy0gICAgICAgIGRlbGV0ZSAoKFBh V2VicnRjVHJhY2VDYWxsYmFjayAqKSBlYy0+cGFyYW1zLndlYnJ0Yy50cmFjZV9jYWxsYmFjayk7 CistICAgIH0KKy0KKyAgICAgaWYgKGVjLT5wYXJhbXMud2VicnRjLmFwbSkgeworICAgICAgICAg ZGVsZXRlICh3ZWJydGM6OkF1ZGlvUHJvY2Vzc2luZyopZWMtPnBhcmFtcy53ZWJydGMuYXBtOwor ICAgICAgICAgZWMtPnBhcmFtcy53ZWJydGMuYXBtID0gTlVMTDsKKy0tIAorR2l0TGFiCisKKwor RnJvbSA4NGM1MzA2NmM2NTQzOWRlYjQyZDI5YmJhOGM2ODk5YTRmYTBlMzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogQXJ1biBSYWdoYXZhbiA8YXJ1bkBhc3ltcHRvdGljLmlvPgor RGF0ZTogVHVlLCAyMCBPY3QgMjAyMCAxNzoyOTo1NSAtMDQwMAorU3ViamVjdDogW1BBVENIIDMv M10gYnVpbGQtc3lzOiBCdW1wIHdlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nIGRlcGVuZGVuY3kKKwor VGhlIHBhY2thZ2UgbmFtZSBhbmQgdmVyc2lvbmluZyBhcmUgY2hhbmdpbmcgdXBzdHJlYW0sIHNv IHByZXBhcmUgZm9yCit0aGF0LgorCitQYXJ0LW9mOiA8aHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0 b3Aub3JnL3B1bHNlYXVkaW8vcHVsc2VhdWRpby8tL21lcmdlX3JlcXVlc3RzLzM5NT4KKy0tLQor IG1lc29uLmJ1aWxkIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAoraW5k ZXggYjY3OGJiNTMxYS4uYTE2NTJlNGQzMCAxMDA2NDQKKy0tLSBhL21lc29uLmJ1aWxkCisrKysg Yi9tZXNvbi5idWlsZAorQEAgLTcyOCw3ICs3MjgsNyBAQCBpZiBnZXRfb3B0aW9uKCdkYWVtb24n KQorICAgICBjZGF0YS5zZXQoJ0hBVkVfU09YUicsIDEpCisgICBlbmRpZgorIAorLSAgd2VicnRj X2RlcCA9IGRlcGVuZGVuY3koJ3dlYnJ0Yy1hdWRpby1wcm9jZXNzaW5nJywgdmVyc2lvbiA6ICc+ PSAwLjInLCByZXF1aXJlZCA6IGdldF9vcHRpb24oJ3dlYnJ0Yy1hZWMnKSkKKysgIHdlYnJ0Y19k ZXAgPSBkZXBlbmRlbmN5KCd3ZWJydGMtYXVkaW8tcHJvY2Vzc2luZy0xJywgdmVyc2lvbiA6ICc+ PSAxLjAnLCByZXF1aXJlZCA6IGdldF9vcHRpb24oJ3dlYnJ0Yy1hZWMnKSkKKyAgIGlmIHdlYnJ0 Y19kZXAuZm91bmQoKQorICAgICBjZGF0YS5zZXQoJ0hBVkVfV0VCUlRDJywgMSkKKyAgIGVuZGlm CistLSAKK0dpdExhYgorCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHVsc2VhdWRpby90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcHVsc2VhdWRpby90ZW1wbGF0ZQppbmRleCAzMGYwYTRjYzIzYTljLi40YjBk YmQ0Y2VmMDhiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B1bHNlYXVkaW8vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9wdWxzZWF1ZGlvL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE1IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdwdWxzZWF1ZGlvJwogcGtnbmFtZT1wdWxzZWF1ZGlvCiB2ZXJzaW9uPTE2LjEK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJn cz0iLURqYWNrPWVuYWJsZWQgLURsaXJjPWRpc2FibGVkIC1EaGFsLWNvbXBhdD1mYWxzZSAtRG9y Yz1lbmFibGVkCiAgLURndGs9ZGlzYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkIC1Ed2VicnRjLWFl Yz1lbmFibGVkCiAgLURnc2V0dGluZ3M9ZW5hYmxlZCAtRGJsdWV6NT1lbmFibGVkCiAgLURibHVl ejUtb2Zvbm8taGVhZHNldD1mYWxzZSAtRGJsdWV6NS1uYXRpdmUtaGVhZHNldD10cnVlCiAgLURl bG9naW5kPWVuYWJsZWQgLUR1ZGV2cnVsZXNkaXI9L3Vzci9saWIvdWRldi9ydWxlcy5kCi0gLURi YXNoY29tcGxldGlvbmRpcj0vdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlvbi9jb21wbGV0aW9ucyIK KyAtRGJhc2hjb21wbGV0aW9uZGlyPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uL2NvbXBsZXRp b25zCisgLURjcHBfc3RkPWMrKzE3IgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBtNCBnZXR0ZXh0 IGxpYnRvb2wgb3JjLWRldmVsIHBlcmwtWE1MLVBhcnNlciBwa2ctY29uZmlnCiAgZG94eWdlbiIK IG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgYXZhaGkgYXZhaGktbGlicy1kZXZlbCkgZXVkZXYtbGli dWRldi1kZXZlbCBmZnR3LWRldmVsIGphY2stZGV2ZWwKCkZyb20gMGFjYzFmNTU3MzEzYTQ0MDU0 ZDJjMDU3M2NkN2VhODI4YzdjZmNmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2lu ZXJlYTAgPGNpbmVyZWEwQGRpc3Jvb3Qub3JnPgpEYXRlOiBGcmksIDIzIEZlYiAyMDI0IDE4OjIw OjM2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIHBpcGV3aXJlOiByZXZidW1wIGZvciB3ZWJy dGMtYXVkaW8tcHJvY2Vzc2luZy0xLjMKCi0tLQogc3JjcGtncy9waXBld2lyZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcGlwZXdpcmUvdGVtcGxhdGUgYi9zcmNwa2dzL3BpcGV3aXJlL3Rl bXBsYXRlCmluZGV4IGQyMzk1NmUxM2UzYTcuLjQ4NDgyOTJjMWQ4NDAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcGlwZXdpcmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9waXBld2lyZS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BpcGV3aXJlJwogcGtnbmFtZT1w aXBld2lyZQogdmVyc2lvbj0xLjAuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSIKICAtLWF1dG8tZmVhdHVyZXM9ZW5hYmxlZAoKRnJv bSAwYTcxMjQyMTQyZTQ4OWE2Y2Q1ZTQxMjc1NTM2ODAxODE4MzhjZjA5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBjaW5lcmVhMCA8Y2luZXJlYTBAZGlzcm9vdC5vcmc+CkRhdGU6IEZy aSwgMjMgRmViIDIwMjQgMTg6MjE6MTAgLTA1MDAKU3ViamVjdDogW1BBVENIIDUvNl0gZ3N0LXBs dWdpbnMtYmFkMTogcmV2YnVtcCBmb3Igd2VicnRjLWF1ZGlvLXByb2Nlc3NpbmctMS4zCgotLS0K IHNyY3BrZ3MvZ3N0LXBsdWdpbnMtYmFkMS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3N0 LXBsdWdpbnMtYmFkMS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3N0LXBsdWdpbnMtYmFkMS90ZW1wbGF0 ZQppbmRleCAxMGRjNDlmNGMxNTFiLi5kYzRkYjkxMGM0M2U4IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dzdC1wbHVnaW5zLWJhZDEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtcGx1Z2lucy1iYWQx L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3N0LXBsdWdp bnMtYmFkMScKIHBrZ25hbWU9Z3N0LXBsdWdpbnMtYmFkMQogdmVyc2lvbj0xLjIyLjkKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K IGNvbmZpZ3VyZV9hcmdzPSItRHBhY2thZ2Utb3JpZ2luPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZyAt RGRvYz1kaXNhYmxlZAoKRnJvbSA4NjAyYWMzYmE4ZDczZmY4MDdjYzkyZTllZmE3YjE2OWZjNTg2 Yzg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjaW5lcmVhMCA8Y2luZXJlYTBAZGlz cm9vdC5vcmc+CkRhdGU6IEZyaSwgMjMgRmViIDIwMjQgMTg6MjE6MzYgLTA1MDAKU3ViamVjdDog W1BBVENIIDYvNl0gYmFyZXNpcDogcmV2YnVtcCBmb3Igd2VicnRjLWF1ZGlvLXByb2Nlc3Npbmct MS4zCgotLS0KIHNyY3BrZ3MvYmFyZXNpcC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFy ZXNpcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmFyZXNpcC90ZW1wbGF0ZQppbmRleCAxMmM4OTU0ZWY3 YjliLi5iMTZiNjdiZWFiOGQyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9iYXJlc2lwL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnYmFyZXNpcCcKIHBrZ25hbWU9YmFyZXNpcAogdmVyc2lvbj0zLjYuMAotcmV2 aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYmdzbS1kZXZlbCBsaWJwbmct ZGV2ZWwgb3BlbnNzbC1kZXZlbCBsaWJzbmRmaWxlLWRldmVsCg== --===============0456597793176981223==--