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 26533 invoked from network); 17 Jul 2020 10:26:55 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Jul 2020 10:26:55 -0000 Content-Type: multipart/mixed; boundary="===============1083273801347257630==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5Breally_wip=5D_system_wide_electron_package?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 17 Jul 2020 12:26:55 +0200 List-Id: Message-ID: <20200717102655.DGq35_g80ZLdnqjGaGPUKHoE71ovQLmaKag6mVggSnM@z> GitHub notification mails are now in MIME to allow UTF8. --===============1083273801347257630== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb24KaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxNzU4CgpbcmVhbGx5IHdpcF0gc3lzdGVtIHdp ZGUgZWxlY3Ryb24gcGFja2FnZQpUZXN0IHJlcG86IGh0dHBzOi8vdm9pZC5qb2hubnluYXRvci5k ZXYvZWxlY3Ryb24vDQoNCnRvIGRvOiByZWludHJvZHVjZSBzeXN0ZW0gemxpYiBwYXRjaA0KdG8g ZG86IGVsZWN0cm9uOCBwYWNrYWdlIGZvciBhbGwgdGhlIG90aGVyIGVsZWN0cm9uIGFwcHMNCnRv IGRvOiBicmluZyB0aGUgdGVtcGxhdGUgbW9yZSBpbiBsaW5lIHdpdGggdGhlIGNocm9taXVtIG9u ZSBzdGlsZSB3aXNlDQoNClRoYW5rcyB0byBAQ29naXRyaSB3aG8gZGlkIHByZXBhcmUgbW9zdCBv ZiB0aGlzIHdvcmsNCg0KUC5zLiBJJ20gYWxyZWFkeSBzb3JyeSBmb3IgdGhlIGJ1aWxkIHNlcnZl ciB0byBnZXQgYSAzcmQgY2hyb21pdW0gcGFja2FnZSB0byBidWlsZCBvY2Nhc2lvbmFsbHkuCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMjE3NTgucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1083273801347257630== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron-21758.patch" RnJvbSAxZjM0NzE3OWVjZTAyYjBjNzkwYjY0ZDYyNGQ5MWI3OGI4ZmU3NDIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IEZyaSwg OCBNYXkgMjAyMCAxOToxNjozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBOZXcgcGFja2Fn ZTogZWxlY3Ryb243LTcuMi4zCgotLS0KIC4uLm11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6 ZS5wYXRjaC5wYXRjaCB8ICAzMSArCiAuLi4vY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBh dGNoICAgICAgICAgfCAxNzYgKysrKysKIC4uLnVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFt ZS5wYXRjaC5wYXRjaCB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaC5wYXRj aCAgICAgICAgICAgfCAgNDUgKysKIC4uLm11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5w YXRjaC5wYXRjaCB8ICAxOCArCiAuLi4vY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gucGF0Y2ggICAg ICAgICAgICAgfCAgNjEgKysKIC4uLi9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gucGF0Y2gg ICAgICAgICB8ICA5NiArKysKIC4uLi9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRj aCAgICAgICB8ICA0OCArKwogLi4uL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRj aCAgICAgIHwgIDI1ICsKIC4uLi9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBhdGNoICAg ICAgICB8ICA2MSArKwogLi4uL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0 Y2ggIHwgIDE4ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaCAgICAg ICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zaV9maWVsZHMucGF0Y2gucGF0Y2ggICAgICAg fCAgMTMgKwogLi4uL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaC5wYXRjaCAgICAgIHwg IDQxICsKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoICAgICB8ICA0 NCArKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaC5wYXRjaCAgICAgIHwgIDE0 ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBhdGNoICAgICAgICB8ICAyNCAr CiAuLi51bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2ggfCAgNzMgKysK IC4uLl9sb2dzX2Zyb21fdGVzdF9jaWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaCB8IDM0MiArKysr KysrKwogLi4ucHN0cmVhbV9tb3ZlX2NoaWxkX3Byb2Nlc3NfbG9nLnBhdGNoLnBhdGNoIHwgNzMw ICsrKysrKysrKysrKysrKysrKwogLi4ucHN0cmVhbV91c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBh dGNoLnBhdGNoIHwgMTg2ICsrKysrCiAuLi4tMDA1LXVwc3RyZWFtLWNocm9taXVtX3ZlcnNpb24u cGF0Y2gucGF0Y2ggfCAgMjYgKwogLi4uY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBh dGNoLnBhdGNoIHwgIDE3ICsKIC4uLi9jaHJvbWl1bS1jbGFuZzEwX2dsc2xhbmcucGF0Y2gucGF0 Y2ggICAgICB8ICAyNSArCiAuLi4vY2hyb21pdW0tZml4LWNvbW1hbmRsaW5lLWluY2x1ZGUucGF0 Y2ggICAgfCAgNDQgKysKIC4uLi9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gg ICAgICB8ICAxNSArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nY2MucGF0Y2ggICAgICAg ICAgfCAgNDMgKysKIC4uLi9wYXRjaGVzL2Nocm9taXVtLWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRj aCB8ICAzMiArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1pY3VfdTE2X25leHQucGF0Y2gucGF0Y2gg fCAgMTMgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2ggIHwg IDI2ICsKIC4uLmEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaCB8ICA0 MiArCiAuLi4vcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaCAgfCAgNTcg KysKIC4uLmVjdHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaCB8ICAxNyAr CiAuLi4vZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1maXgtaW5jbHVkZXMucGF0Y2ggfCAgMTkgKwog Li4uL2VsZWN0cm9uLW1qc3VuaXQtbm90LWV4c2l0LnBhdGNoLnBhdGNoICAgIHwgIDQ3ICsrCiBz cmNwa2dzL2VsZWN0cm9uNy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAyNTcgKysrKysr CiBzcmNwa2dzL2VsZWN0cm9uNy91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwog MzcgZmlsZXMgY2hhbmdlZCwgMjc1NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVs dC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0 Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmljYWxpemVfZmlsZV9uYW1lLnBhdGNoLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfY2RlZnMucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVt cF9mYWlsdXJlX3JldHJ5LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVf dC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9tYWxsaW5mby5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0 LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfc2lfZmllbGRzLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRj aC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2xfdGNwX2xpc3Rlbi5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMi11 cHN0cmVhbV9zYXZlX2xvZ3NfZnJvbV90ZXN0X2NpbGRfcHJvY2Vzc2VzLnBhdGNoLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS0wMDMtdXBzdHJlYW1fbW92ZV9jaGlsZF9wcm9jZXNzX2xvZy5wYXRjaC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDA0 LXVwc3RyZWFtX3VzZV9jaGlsZHByb2Nlc3Nsb2dnZXIucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNS11cHN0 cmVhbS1jaHJvbWl1bV92ZXJzaW9uLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9u YWwucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9wYXRjaGVzL2Nocm9taXVtLWNsYW5nMTBfZ2xzbGFuZy5wYXRjaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWNv bW1hbmRsaW5lLWluY2x1ZGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1zdWNlc3MtZGVmaW5pdGlvbi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tZ2NjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWljdV91MTZfbmV4 dC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1s aXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVj dHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVz LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb243L3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjcvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwYzEzNjFiOGVkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVs dC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDMxIEBACitkaWZmIC0t Z2l0IGEvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjIGIvYmFzZS90aHJl YWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitpbmRleCAwOTVjNDliLi41MDQ0YmI4IDEw MDY0NAorLS0tIGEvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCisrKysg Yi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKK0BAIC0xODYsNyArMTg2 LDcgQEAgdm9pZCBUZXJtaW5hdGVPblRocmVhZCgpIHt9CisgCisgc2l6ZV90IEdldERlZmF1bHRU aHJlYWRTdGFja1NpemUoY29uc3QgcHRocmVhZF9hdHRyX3QmIGF0dHJpYnV0ZXMpIHsKKyAjaWYg IWRlZmluZWQoVEhSRUFEX1NBTklUSVpFUikKKy0gIHJldHVybiAwOworKyAgcmV0dXJuICgxIDw8 IDIzKTsKKyAjZWxzZQorICAgLy8gVGhyZWFkU2FuaXRpemVyIGJsb2F0cyB0aGUgc3RhY2sgaGVh dmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKKyAgIC8vIGRlZmF1bHQgc3RhY2sgc2l6 ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0cy4KK2RpZmYgLS1naXQgYS9jaHJv bWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYyBiL2Nocm9tZS9hcHAvc2h1 dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjCitpbmRleCA2MjFkNDQxLi5iZTIxMTA2IDEw MDY0NAorLS0tIGEvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MK KysrKyBiL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjCitAQCAt MTg3LDExICsxODcsMTEgQEAgdm9pZCBJbnN0YWxsU2h1dGRvd25TaWduYWxIYW5kbGVycygKKyAg IGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkID0gcGlwZWZkWzBdOworICAgZ19zaHV0ZG93bl9waXBl X3dyaXRlX2ZkID0gcGlwZWZkWzFdOworICNpZiAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikK Ky0gIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJF QURfU1RBQ0tfTUlOICogMjsKKysgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVh ZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogMiAqODsKKyAjZWxzZQorICAgLy8gQVNh biBpbnN0cnVtZW50YXRpb24gYmxvYXRzIHRoZSBzdGFjayBmcmFtZXMsIHNvIHdlIG5lZWQgdG8g aW5jcmVhc2UgdGhlCisgICAvLyBzdGFjayBzaXplIHRvIGF2b2lkIGhpdHRpbmcgdGhlIGd1YXJk IHBhZ2UuCistICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUg PSBQVEhSRUFEX1NUQUNLX01JTiAqIDQ7CisrICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0 b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDQgKjg7CisgI2VuZGlmCisg ICBTaHV0ZG93bkRldGVjdG9yKiBkZXRlY3RvciA9IG5ldyBTaHV0ZG93bkRldGVjdG9yKAorICAg ICAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkLCBzdGQ6Om1vdmUoc2h1dGRvd25fY2FsbGJhY2sp LCB0YXNrX3J1bm5lcik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQ4NWY2Y2M3NWEKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTc2IEBACitkaWZmIC0t Z2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworaW5kZXggMzQ4YWI2ZS4uNDU1MGY5ZSAx MDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCisrKysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTEzOSwyMSAr MTM5LDExIEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKKyAvLyBwcmVzZW50IChhcyBpbiBuZXdlciB2 ZXJzaW9ucyBvZiBwb3NpeF9zcGF3bikuCisgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJl YWRzQW5kRVBFUk1Gb3JrKCkgeworICAgY29uc3QgQXJnPHVuc2lnbmVkIGxvbmc+IGZsYWdzKDAp OworLQorLSAgLy8gVE9ETyhtZGVtcHNreSk6IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3Mg JiB+bWFzazEpID09IG1hc2syLgorLSAgY29uc3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sg PSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU1lTVlNFTTsKKy0gIGNvbnN0 IHVpbnQ2NF90IGtPYnNvbGV0ZUFuZHJvaWRDbG9uZU1hc2sgPSBrQW5kcm9pZENsb25lTWFzayB8 IENMT05FX0RFVEFDSEVEOworLQorLSAgY29uc3QgdWludDY0X3Qga0dsaWJjUHRocmVhZEZsYWdz ID0KKy0gICAgICBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdI QU5EIHwgQ0xPTkVfVEhSRUFEIHwKKy0gICAgICBDTE9ORV9TWVNWU0VNIHwgQ0xPTkVfU0VUVExT IHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEOworLSAgY29uc3Qg Qm9vbEV4cHIgZ2xpYmNfdGVzdCA9IGZsYWdzID09IGtHbGliY1B0aHJlYWRGbGFnczsKKy0KKy0g IGNvbnN0IEJvb2xFeHByIGFuZHJvaWRfdGVzdCA9CistICAgICAgQW55T2YoZmxhZ3MgPT0ga0Fu ZHJvaWRDbG9uZU1hc2ssIGZsYWdzID09IGtPYnNvbGV0ZUFuZHJvaWRDbG9uZU1hc2ssCistICAg ICAgICAgICAgZmxhZ3MgPT0ga0dsaWJjUHRocmVhZEZsYWdzKTsKKysgIGNvbnN0IGludCByZXF1 aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQg fAorKyAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsK KysgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8 IENMT05FX0NISUxEX0NMRUFSVElEIHwKKysgICAgICAgICAgICAgICAgICAgQ0xPTkVfREVUQUNI RUQ7CisrICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xvbmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1y ZXF1aXJlZDsKKyAKKyAgIC8vIFRoZSBmb2xsb3dpbmcgdHdvIGZsYWdzIGFyZSB0aGUgdHdvIGlt cG9ydGFudCBmbGFncyBpbiBhbnkgdmZvcmstZW11bGF0aW5nCisgICAvLyBjbG9uZSBjYWxsLiBF UEVSTSBhbnkgY2xvbmUgY2FsbCB0aGF0IGNvbnRhaW5zIGJvdGggb2YgdGhlbS4KK0BAIC0xNjMs NyArMTUzLDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3Jr KCkgeworICAgICAgIEFueU9mKChmbGFncyAmIChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09 IDAsCisgICAgICAgICAgICAgKGZsYWdzICYga0ltcG9ydGFudENsb25lVmZvcmtGbGFncykgPT0g a0ltcG9ydGFudENsb25lVmZvcmtGbGFncyk7CisgCistICByZXR1cm4gSWYoSXNBbmRyb2lkKCkg PyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0LCBBbGxvdygpKQorKyAgcmV0dXJuIElmKHRocmVh ZF9jbG9uZV9vaywgQWxsb3coKSkKKyAgICAgICAuRWxzZUlmKGlzX2Zvcmtfb3JfY2xvbmVfdmZv cmssIEVycm9yKEVQRVJNKSkKKyAgICAgICAuRWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworIH0K K2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworaW5kZXggN2RiY2M4Ny4uNTg5MjYyZiAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyAuL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC0zOTEsNiArMzkxLDcgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0aChpbnQgc3lzbm8pIHsK KyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgICAgY2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlm CisrICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgIGNhc2UgX19OUl9jbG9uZTogIC8vIFNob3VsZCBiZSBwYXJhbWV0ZXItcmVzdHJpY3RlZC4K KyAgICAgY2FzZSBfX05SX3NldG5zOiAgLy8gUHJpdmlsZWdlZC4KK0BAIC00MDMsNyArNDA0LDYg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0aChpbnQgc3lz bm8pIHsKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRp ZgorLSAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICBjYXNlIF9fTlJfdW5zaGFy ZToKKyAjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAg ICBjYXNlIF9fTlJfdmZvcms6CitAQCAtNTEzLDYgKzUxMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05S X21sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubG9jazoKKyAgICAgY2FzZSBfX05SX211bm1hcDoK KysgICAgY2FzZSBfX05SX21yZW1hcDoKKysgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAg ICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9tYWR2aXNlOgorICAgICBjYXNlIF9fTlJf bWluY29yZToKK0BAIC01MzAsNyArNTMyLDYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk QWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xk dDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX21wcm90ZWN0OgorLSAgICBjYXNlIF9fTlJfbXJl bWFwOgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxsOgor ICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAoraW5kZXggNTlkMGVhYi4uN2FlNzAwMiAx MDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lz Y2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9z eXNjYWxscy5oCitAQCAtMTA2Myw0ICsxMDYzLDggQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3Jl YXRlIDI3OQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2Rl ZmluZSBfX05SX21lbWJhcnJpZXIgMjgzCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9Y X0xJTlVYX1NZU1RFTV9IRUFERVJTX0FSTTY0X0xJTlVYX1NZU0NBTExTX0hfCitkaWZmIC0tZ2l0 IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaCBiL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IDFh ZGRkNTMuLjc4NDNiNWUgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2FybV9saW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2FybV9saW51eF9zeXNjYWxscy5oCitAQCAtMTM4NSw2ICsxMzg1LDEwIEBACisgI2RlZmluZSBf X05SX21lbWZkX2NyZWF0ZSAoX19OUl9TWVNDQUxMX0JBU0UrMzg1KQorICNlbmRpZgorIAorKyNp ZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9f TlJfU1lTQ0FMTF9CQVNFKzM4OSkKKysjZW5kaWYKKysKKyAvLyBBUk0gcHJpdmF0ZSBzeXNjYWxs cy4KKyAjaWYgIWRlZmluZWQoX19BUk1fTlJfQkFTRSkKKyAjZGVmaW5lIF9fQVJNX05SX0JBU0Ug KF9fTlJfU1lTQ0FMTF9CQVNFICsgMHhGMDAwMCkKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAoraW5kZXggZWM3NTgxNS4uNjEy ZmNmYSAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwczY0X2xp bnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwczY0 X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjcxLDQgKzEyNzEsOCBAQAorICNkZWZpbmUgX19OUl9t ZW1mZF9jcmVhdGUgKF9fTlJfTGludXggKyAzMTQpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVk KF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9MaW51eCAr IDMxOCkKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURF UlNfTUlQUzY0X0xJTlVYX1NZU0NBTExTX0hfCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2FsbHMuaAoraW5kZXggZGRiZjk3Zi4uMTc0MmFjZCAx MDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNj YWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lz Y2FsbHMuaAorQEAgLTE0MzMsNCArMTQzMyw4IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0 ZSAoX19OUl9MaW51eCArIDM1NCkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1i YXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX0xpbnV4ICsgMzU4KQorKyNl bmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19NSVBTX0xJ TlVYX1NZU0NBTExTX0hfCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy94ODZfMzJfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv eDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IGE2YWZjNjIuLjdlZDBhM2IgMTAwNjQ0Cist LS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5o CisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxs cy5oCitAQCAtMTQyMiw1ICsxNDIyLDkgQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDM1 NgorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBf X05SX21lbWJhcnJpZXIgMzc1CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVY X1NZU1RFTV9IRUFERVJTX1g4Nl8zMl9MSU5VWF9TWVNDQUxMU19IXworIAorZGlmZiAtLWdpdCBh L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmggYi9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCitpbmRl eCAzNDk1MDRhLi5lYTNjN2M5IDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTEyOTAsNSArMTI5MCw5IEBACisg I2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzMTkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQo X19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDMyNAorKyNlbmRpZgor KworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19YODZfNjRfTElOVVhf U1lTQ0FMTFNfSF8KKyAKK2RpZmYgLS1naXQgYS9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2Fu ZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjIGIvc2VydmljZXMvc2Vydmlj ZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworaW5k ZXggMDE3ZjEzYy4uNTBhZWVjMyAxMDA2NDQKKy0tLSAuL3NlcnZpY2VzL3NlcnZpY2VfbWFuYWdl ci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKKysrKyAuL3NlcnZp Y2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGlu dXguY2MKK0BAIC04OCwxMCArODgsMTAgQEAgUmVzdWx0RXhwciBSZW5kZXJlclByb2Nlc3NQb2xp Y3k6OkV2YWx1YXRlU3lzY2FsbChpbnQgc3lzbm8pIGNvbnN0IHsKKyAgICAgY2FzZSBfX05SX3N5 c2luZm86CisgICAgIGNhc2UgX19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorLSAg ICAgIHJldHVybiBBbGxvdygpOworLSAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHk6Cisg ICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHNj aGVkdWxlcjoKKysgICAgICByZXR1cm4gQWxsb3coKTsKKysgICAgY2FzZSBfX05SX3NjaGVkX2dl dGFmZmluaXR5OgorICAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorICAgICAgIHJl dHVybiBzYW5kYm94OjpSZXN0cmljdFNjaGVkVGFyZ2V0KEdldFBvbGljeVBpZCgpLCBzeXNubyk7 CisgICAgIGNhc2UgX19OUl9wcmxpbWl0NjQ6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmljYWxpemVfZmlsZV9uYW1l LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDU2MTRkYWE3NTcKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5v bmljYWxpemVfZmlsZV9uYW1lLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaCBiL3RoaXJkX3BhcnR5 L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCitpbmRleCA3ZWI3YzIwLi44ODJiNzM2IDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKKysrKyBiL3Ro aXJkX3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCitAQCAtMTE3LDcgKzExNyw3IEBA CisgI2RlZmluZSBIQVZFX0FDQ0VTUyAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGBjYW5vbmljYWxpemVfZmlsZV9uYW1lJyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVf Q0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCisrLyogI3VuZGVmIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAqLworIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY3B1X3RvX2xl MTYnIGludHJpbnNpYyBmdW5jdGlvbi4gKi8KKyAvKiAjdW5kZWYgSEFWRV9DUFVfVE9fTEUxNiAq LwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfY2RlZnMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmM3ZGMwNmZmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5w YXRjaC5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitkaWZmIC0tZ2l0IGEvYmFzZS9hbGxvY2F0b3Iv YWxsb2NhdG9yX3NoaW1faW50ZXJuYWxzLmggYi9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hp bV9pbnRlcm5hbAorcy5oCitpbmRleCAwMTk2Zjg5Li5iYjQyYjVkIDEwMDY0NAorLS0tIGEvYmFz ZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWxzLmgKKysrKyBiL2Jhc2UvYWxsb2Nh dG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5oCitAQCAtNyw3ICs3LDkgQEAKKworICNpZiBk ZWZpbmVkKF9fR05VQ19fKQorCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxz eXMvY2RlZnMuaD4gIC8vIGZvciBfX1RIUk9XCisrI2VuZGlmCisKKyAjaWZuZGVmIF9fVEhST1cg IC8vIE5vdCBhIGdsaWJjIHN5c3RlbQorICNpZmRlZiBfTk9FWENFUFQgIC8vIExMVk0gbGliYysr IHVzZXMgbm9leGNlcHQgaW5zdGVhZAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYnN5bmMv c3JjL2luY2x1ZGUvc3luYy9zeW5jLmggYi90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRl L3N5bmMvc3luYy5oCitpbmRleCA1MGVkMGFjLi43NTUyYTQ5IDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorKysrIGIvdGhpcmRfcGFydHkv bGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorQEAgLTE5LDEyICsxOSwxMyBAQAorICNp Zm5kZWYgX19TWVNfQ09SRV9TWU5DX0gKKyAjZGVmaW5lIF9fU1lTX0NPUkVfU1lOQ19ICisgCist I2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVk ZSA8bGludXgvdHlwZXMuaD4KKyAKKy1fX0JFR0lOX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVz CisrZXh0ZXJuICJDIiB7CisrI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisgCisgc3RydWN0IHN5 bmNfbGVnYWN5X21lcmdlX2RhdGEgeworICBpbnQzMl90IGZkMjsKK0BAIC0xNTgsNiArMTU5LDgg QEAgc3RydWN0IHN5bmNfcHRfaW5mbyAqc3luY19wdF9pbmZvKHN0cnVjdCBzeW5jX2ZlbmNlX2lu Zm9fZGF0YSAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHN5bmNfcHRfaW5mbyAqaXRyKTsKKyB2b2lkIHN5bmNfZmVuY2VfaW5mb19mcmVlKHN0cnVjdCBz eW5jX2ZlbmNlX2luZm9fZGF0YSAqaW5mbyk7CisgCistX19FTkRfREVDTFMKKysjaWZkZWYgX19j cGx1c3BsdXMKKyt9CisrI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisgCisgI2VuZGlmIC8qIF9f U1lTX0NPUkVfU1lOQ19IICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNo LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjFkYjY1OGY4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVf dGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBhL3Nh bmRib3gvbGludXgvc3VpZC9zYW5kYm94LmMJMjAxOS0xMS0xOSAwOToyODowNS4wMDAwMDAwMDAg KzA4MDAKKysrKyBiL3NhbmRib3gvbGludXgvc3VpZC9zYW5kYm94LmMJMjAyMC0wNC0yNCAxMTo1 MDoxMi43MTk4ODA3MjggKzA4MDAKK0BAIC00Miw2ICs0MiwxNSBAQAorICNkZWZpbmUgQ0xPTkVf TkVXTkVUIDB4NDAwMDAwMDAKKyAjZW5kaWYKKyAKKysjaWZuZGVmIFRFTVBfRkFJTFVSRV9SRVRS WQorKyNkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysgIChfX2V4dGVu c2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgICAgKHsgbG9uZyBpbnQgX19yZXN1bHQ7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgZG8gX19yZXN1bHQg PSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgICAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgX19yZXN1bHQ7IH0pKQorKyNlbmRp ZgorKworIHN0YXRpYyBib29sIERyb3BSb290KCk7CisgCisgI2RlZmluZSBIQU5ETEVfRUlOVFIo eCkgVEVNUF9GQUlMVVJFX1JFVFJZKHgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gucGF0Y2ggYi9zcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY0OWQ4YmQwYWZhCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfZG5zLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNjEgQEAKK2RpZmYgLS1naXQg YS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYyBiL25ldC9kbnMvZG5zX2NvbmZp Z19zZXJ2aWNlX3Bvc2l4LmNjCitpbmRleCAyZjk0ODMyLi4yZGQxYTk4IDEwMDY0NAorLS0tIGEv bmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKKysrKyBiL25ldC9kbnMvZG5zX2Nv bmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCitAQCAtMTUwLDcgKzE1MCw3IEBAIENvbmZpZ1BhcnNlUG9z aXhSZXN1bHQgUmVhZERuc0NvbmZpZyhEbnNDb25maWcqIGRuc19jb25maWcpIHsKKyAjaWYgIWRl ZmluZWQoT1NfQU5EUk9JRCkKKyAgIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgcmVzdWx0OworIC8v IFRPRE8oZnVjaHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3MgaW1wbGVtZW50ZWQgb24g RnVjaHNpYS4KKy0jaWYgZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEp CisrI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVm aW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIC8vIE5vdGU6IHJlc19u aW5pdCBpbiBnbGliYyBhbHdheXMgcmV0dXJucyAwIGFuZCBzZXRzIFJFU19JTklULgorICAgLy8g cmVzX2luaXQgYmVoYXZlcyB0aGUgc2FtZSB3YXkuCisgICBtZW1zZXQoJl9yZXMsIDAsIHNpemVv ZihfcmVzKSk7CitAQCAtMTczLDcgKzE3Myw3IEBAIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgUmVh ZERuc0NvbmZpZyhEbnNDb25maWcqIGRuc19jb25maWcpIHsKKyAjZWxzZQorICAgcmVzX25jbG9z ZSgmcmVzKTsKKyAjZW5kaWYgIC8vIGRlZmluZWQoT1NfTUFDT1NYKSB8fCBkZWZpbmVkKE9TX0ZS RUVCU0QpCistI2VuZGlmICAvLyBkZWZpbmVkKE9TX09QRU5CU0QpCisrI2VuZGlmICAvLyBkZWZp bmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgKGRlZmluZWQoT1NfTElO VVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgCisgI2lmIGRlZmluZWQoT1NfTUFDT1NYKSAm JiAhZGVmaW5lZChPU19JT1MpCisgICBDb25maWdQYXJzZVBvc2l4UmVzdWx0IGVycm9yID0gRG5z Q29uZmlnV2F0Y2hlcjo6Q2hlY2tEbnNDb25maWcoKTsKK2RpZmYgLS1naXQgYS9uZXQvZG5zL2Ru c19yZWxvYWRlci5jYyBiL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCitpbmRleCA5NTJjZmY0Li40 YjM2NmY0IDEwMDY0NAorLS0tIGEvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKKysrKyBiL25ldC9k bnMvZG5zX3JlbG9hZGVyLmNjCitAQCAtNCw3ICs0LDcgQEAKKyAKKyAjaW5jbHVkZSAibmV0L2Ru cy9kbnNfcmVsb2FkZXIuaCIKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQo T1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisrI2lmIGRlZmluZWQoT1Nf UE9TSVgpICYmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFk ZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKyAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRl ZmluZWQoT1NfRlVDSFNJQSkKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+CitkaWZmIC0tZ2l0IGEv bmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MgYi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJf bWFuYWdlci5jYworaW5kZXggZThkZWE0Ni4uYzg2YTgzMCAxMDA2NDQKKy0tLSBhL25ldC9kbnMv aG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCisrKysgYi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFu YWdlci5jYworQEAgLTIzODYsNyArMjM4Niw3IEBAIEhvc3RSZXNvbHZlck1hbmFnZXI6Okhvc3RS ZXNvbHZlck1hbmFnZXIoCisgICBOZXR3b3JrQ2hhbmdlTm90aWZpZXI6OkFkZENvbm5lY3Rpb25U eXBlT2JzZXJ2ZXIodGhpcyk7CisgICBpZiAoc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfKQor ICAgICBzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8tPkFkZE9ic2VydmVyKHRoaXMpOworLSNp ZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9T X09QRU5CU0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAor ICAgICAhZGVmaW5lZChPU19BTkRST0lEKQorICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7Cisg I2VuZGlmCitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MgYi9uZXQv ZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworaW5kZXggMDgyNDU0MC4uMzM4NDk3OCAxMDA2NDQK Ky0tLSBhL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCisrKysgYi9uZXQvZG5zL2hvc3Rf cmVzb2x2ZXJfcHJvYy5jYworQEAgLTE5Nyw3ICsxOTcsNyBAQCBpbnQgU3lzdGVtSG9zdFJlc29s dmVyQ2FsbChjb25zdCBzdGQ6OnN0cmluZyYgaG9zdCwKKyAgIGJhc2U6OlNjb3BlZEJsb2NraW5n Q2FsbCBzY29wZWRfYmxvY2tpbmdfY2FsbChGUk9NX0hFUkUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6QmxvY2tpbmdUeXBlOjpXSUxMX0JM T0NLKTsKKyAKKy0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAm JiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisrI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmIGRl ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09Q RU5CU0QpICYmIFwKKyAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoT1NfRlVD SFNJQSkKKyAgIERuc1JlbG9hZGVyTWF5YmVSZWxvYWQoKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWlu Zm8ucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9leGVpbmZvLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5mMWFmYzdjMWIxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gucGF0 Y2gKQEAgLTAsMCArMSw5NiBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2Vf cG9zaXguY2MgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCitpbmRleCBkZTJmMzU2 Li5mNjk3YzY2IDEwMDY0NAorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYwor KysrIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworQEAgLTI3LDcgKzI3LDcgQEAK KyAjaWYgIWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAjaW5jbHVkZSA8Y3h4YWJpLmg+CisgI2Vu ZGlmCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorICNlbmRpZgorIAorQEAgLTg2LDcgKzg2LDcgQEAg dm9pZCBEZW1hbmdsZVN5bWJvbHMoc3RkOjpzdHJpbmcqIHRleHQpIHsKKyAgIC8vIE5vdGU6IGNv ZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5n IHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6ZV90 eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAgIHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUo KSkgeworICAgICAvLyBMb29rIGZvciB0aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJv bSBzZWFyY2hfZnJvbS4KK0BAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMo c3RkOjpzdHJpbmcqIHRleHQpIHsKKyAgICAgICBzZWFyY2hfZnJvbSA9IG1hbmdsZWRfc3RhcnQg KyAyOworICAgICB9CisgICB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh ZGVmaW5lZChfQUlYKQorKyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgfQorICNlbmRpZiAgLy8gIWRlZmluZWQo VVNFX1NZTUJPTElaRSkKKyAKK0BAIC0xMzMsNyArMTMzLDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0 cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZh dWx0OworIH07CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQorIHZvaWQgT3V0cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VP dXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4g ZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGln aXRzICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgorQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFBy b2Nlc3NCYWNrdHJhY2Uodm9pZCogY29uc3QqIHRyYWNlLAorICAgfQorICNlbmRpZiAgLy8gZGVm aW5lZChVU0VfU1lNQk9MSVpFKQorIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAKKyB2b2lkIFByaW50VG9TdGRl cnIoY29uc3QgY2hhciogb3V0cHV0KSB7CisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBh c3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKK0BAIC04MjgsNyArODI4 LDcgQEAgc2l6ZV90IENvbGxlY3RTdGFja1RyYWNlKHZvaWQqKiB0cmFjZSwgc2l6ZV90IGNvdW50 KSB7CisgICAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQn cyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAgIC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIp LiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgorIAorLSNpZiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYg IWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUg YmFja3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2 ZQorICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFz ZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAt ODQxLDEzICs4NDEsMTMgQEAgdm9pZCBTdGFja1RyYWNlOjpQcmludFdpdGhQcmVmaXgoY29uc3Qg Y2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJl IGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1 bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJl LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAgIFByaW50QmFja3RyYWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyOworICAgUHJvY2Vzc0Jh Y2t0cmFjZSh0cmFjZV8sIGNvdW50XywgcHJlZml4X3N0cmluZywgJmhhbmRsZXIpOworICNlbmRp ZgorIH0KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCisgdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoc3RkOjpv c3RyZWFtKiBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBTdHJlYW1CYWNrdHJhY2VPdXRw dXRIYW5kbGVyIGhhbmRsZXIob3MpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hh ZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29u ZmlnL2NvbmZpZy5oIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1z dWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK2luZGV4IDc5 OGYxNTAuLjk3YWNjN2MgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGly ZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25m aWcuaAorKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6 ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK0BAIC0xNCw3ICsx NCw3IEBACisgI2RlZmluZSBFTkFCTEVfQ1JBU0hfT1ZFUlJJREVTIDEKKyAKKyAvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGJhY2t0cmFjZScgZnVuY3Rpb24uICovCistI2RlZmluZSBI QVZFX0JBQ0tUUkFDRSAxCisrLyogI3VuZGVmIEhBVkVfQkFDS1RSQUNFICovCisgCisgLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxDcmFzaFJlcG9ydGVyQ2xpZW50Lmg+IGhlYWRlciBm aWxlLiAqLworIC8qICN1bmRlZiBIQVZFX0NSQVNIUkVQT1JURVJDTElFTlRfSCAqLworQEAgLTU1 LDcgKzU1LDcgQEAKKyAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCisgCisgLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIDxleGVjaW5mby5oPiBoZWFkZXIgZmlsZS4gKi8KKy0jZGVmaW5lIEhB VkVfRVhFQ0lORk9fSCAxCisrLyogI3VuZGVmIEhBVkVfRVhFQ0lORk9fSCAqLworIAorIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCisgI2Rl ZmluZSBIQVZFX0ZDTlRMX0ggMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZnBzdGF0ZV90LnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZnBzdGF0ZV90LnBh dGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kOGM0MWNj ZDlhMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDQ4IEBA CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNv bnRleHRfcmVhZGVyLmNjCitpbmRleCA2ZWU2Y2MxLi5hOGY5Y2NjIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdWNvbnRleHRfcmVhZGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu Y2MKK0BAIC00OSw3ICs0OSw3IEBAIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1 Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisgfQorIAorIHZvaWQgVUNvbnRl eHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRl eHRfdCAqdWMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IF9saWJjX2Zwc3RhdGUqIGZwKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IF9mcHN0YXRlKiBmcCkgeworICAgY29uc3QgZ3JlZ190KiByZWdz ID0gdWMtPnVjX21jb250ZXh0LmdyZWdzOworIAorICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURf Q09OVEVYVF9YODZfRlVMTCB8CitAQCAtOTcsNyArOTcsNyBAQCB1aW50cHRyX3QgVUNvbnRleHRS ZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworIH0K KyAKKyB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpv dXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCBfbGliY19mcHN0YXRlKiBmcHJlZ3MpIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZwcmVncykg eworICAgY29uc3QgZ3JlZ190KiByZWdzID0gdWMtPnVjX21jb250ZXh0LmdyZWdzOworIAorICAg b3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9BTUQ2NF9GVUxMOworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgK K2luZGV4IGY4MzA2MTguLmYzZGRlMWYgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuaAorKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKK0BAIC01MCw3ICs1MCw3 IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRlciB7CisgICAvLyAgIGluZm86IHRoZSBjb2xsZWN0aW9u IG9mIHJlZ2lzdGVyIHN0cnVjdHVyZXMuCisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjQpCisgICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BV ICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IF9saWJjX2Zwc3RhdGUqIGZwKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBfZnBzdGF0ZSogZnApOworICNlbGlmIGRlZmluZWQoX19h YXJjaDY0X18pCisgICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpv dXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGZwc2ltZF9jb250ZXh0KiBmcHJlZ3MpOworZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L21pbmlkdW1wX3dyaXRlci5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKK2luZGV4IGQxZGMz MzEuLmQxY2M1NjIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKK0BAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEV4Y2VwdGlv bkhhbmRsZXI7CisgI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCisgdHlwZWRlZiBzdHJ1Y3QgZnBz aW1kX2NvbnRleHQgZnBzdGF0ZV90OworICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCistdHlwZWRlZiBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSBmcHN0YXRl X3Q7CisrdHlwZWRlZiBzdHJ1Y3QgX2Zwc3RhdGUgZnBzdGF0ZV90OworICNlbmRpZgorIAorIC8v IFRoZXNlIGVudHJpZXMgc3RvcmUgYSBsaXN0IG9mIG1lbW9yeSByZWdpb25zIHRoYXQgdGhlIGNs aWVudCB3YW50cyBpbmNsdWRlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQu cGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc2OTcy NDNhOTEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDI1 IEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj CitpbmRleCBiODk1ZjZkLi40ZjEzMzUyIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj CisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC00OTAsNyArNDkwLDkgQEAgYm9vbCBFeGNl cHRpb25IYW5kbGVyOjpTaW11bGF0ZVNpZ25hbERlbGl2ZXJ5KGludCBzaWcpIHsKKyAgIHNpZ2lu Zm8uc2lfY29kZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNpX3BpZCA9IGdldHBpZCgpOworICAg dWNvbnRleHRfdCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGdldGNvbnRl eHQoJmNvbnRleHQpOworKyNlbmRpZgorICAgcmV0dXJuIEhhbmRsZVNpZ25hbChzaWcsICZzaWdp bmZvLCAmY29udGV4dCk7CisgfQorIAorQEAgLTY3NSw4ICs2NzcsMTAgQEAgYm9vbCBFeGNlcHRp b25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lzX3ByY3RsKFBSX1NFVF9EVU1QQUJM RSwgMSwgMCwgMCwgMCk7CisgCisgICBDcmFzaENvbnRleHQgY29udGV4dDsKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQgPSBnZXRjb250ZXh0KCZjb250 ZXh0LmNvbnRleHQpOworICAgaWYgKGdldGNvbnRleHRfcmVzdWx0KQorKyNlbmRpZgorICAgICBy ZXR1cm4gZmFsc2U7CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9tYWxsaW5mby5w YXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi45NDEzMTNlNDkzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBhdGNo CkBAIC0wLDAgKzEsNjEgQEAKK2RpZmYgLS1naXQgYS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRy aWNzX3Bvc2l4LmNjIGIvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworaW5k ZXggMDQ0YmQ4ZC4uMDUyMTMyMSAxMDA2NDQKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21l dHJpY3NfcG9zaXguY2MKKysrKyBiL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXgu Y2MKK0BAIC0xMTAsMTQgKzExMCwxNCBAQCBzaXplX3QgUHJvY2Vzc01ldHJpY3M6OkdldE1hbGxv Y1VzYWdlKCkgeworICAgbWFsbG9jX3N0YXRpc3RpY3NfdCBzdGF0cyA9IHswfTsKKyAgIG1hbGxv Y196b25lX3N0YXRpc3RpY3MobnVsbHB0ciwgJnN0YXRzKTsKKyAgIHJldHVybiBzdGF0cy5zaXpl X2luX3VzZTsKKy0jZWxpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQp CisrI2VsaWYgKGRlZmluZWQoT1NfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgZGVm aW5lZChPU19BTkRST0lEKQorICAgc3RydWN0IG1hbGxpbmZvIG1pbmZvID0gbWFsbGluZm8oKTsK KyAjaWYgQlVJTERGTEFHKFVTRV9UQ01BTExPQykKKyAgIHJldHVybiBtaW5mby51b3JkYmxrczsK KyAjZWxzZQorICAgcmV0dXJuIG1pbmZvLmhibGtoZCArIG1pbmZvLmFyZW5hOworICNlbmRpZgor LSNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKysjZWxzZQorICAgLy8gVE9ETyhmdWNoc2lhKTog Tm90IGN1cnJlbnRseSBleHBvc2VkLiBodHRwczovL2NyYnVnLmNvbS83MzUwODcuCisgICByZXR1 cm4gMDsKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1w X3Byb3ZpZGVyLmNjIGIvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYwor aW5kZXggZTg5NTk3Yy4uZWNhMjU4YyAxMDA2NDQKKy0tLSBhL2Jhc2UvdHJhY2VfZXZlbnQvbWFs bG9jX2R1bXBfcHJvdmlkZXIuY2MKKysrKyBiL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBf cHJvdmlkZXIuY2MKK0BAIC0xMzIsNyArMTMyLDcgQEAgYm9vbCBNYWxsb2NEdW1wUHJvdmlkZXI6 Ok9uTWVtb3J5RHVtcChjb25zdCBNZW1vcnlEdW1wQXJncyYgYXJncywKKyAgIH0KKyAjZWxpZiBk ZWZpbmVkKE9TX0ZVQ0hTSUEpCisgLy8gVE9ETyhmdWNoc2lhKTogUG9ydCwgc2VlIGh0dHBzOi8v Y3JidWcuY29tLzcwNjU5Mi4KKy0jZWxzZQorKyNlbGlmIGRlZmluZWQoT1NfTElOVVgpICYmIGRl ZmluZWQoX19HTElCQ19fKQorICAgc3RydWN0IG1hbGxpbmZvIGluZm8gPSBtYWxsaW5mbygpOwor ICAgRENIRUNLX0dFKGluZm8uYXJlbmEgKyBpbmZvLmhibGtoZCwgaW5mby51b3JkYmxrcyk7Cisg CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1z dWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmggYi90aGlyZF9w YXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5j bHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAoraW5kZXggYWE5ODI0Mi4uOTdhY2M3YyAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9i dWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisrKysgYi90aGlyZF9wYXJ0 eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVk ZS9sbHZtL0NvbmZpZy9jb25maWcuaAorQEAgLTEzMCw3ICsxMzAsNyBAQAorIC8qICN1bmRlZiBI QVZFX01BTExDVEwgKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1hbGxp bmZvJyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfTUFMTElORk8gMQorKy8qICN1bmRlZiBI QVZFX01BTExJTkZPICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWxs b2MuaD4gaGVhZGVyIGZpbGUuICovCisgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTcuMC9jb25maWdz L2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmggYi90aGlyZF9wYXJ0eS9zd2lmdHNo YWRlci90aGlyZF9wYXJ0eS9sbHZtLTcuMC9jb25maWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25m aWcvY29uZmlnLmgKK2luZGV4IDZlMTcwMjAuLmQ0YTllZDAgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTcuMC9jb25maWdzL2xpbnV4L2luY2x1 ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3Ro aXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25m aWcuaAorQEAgLTEyMiw3ICsxMjIsNyBAQAorIC8qICN1bmRlZiBIQVZFX01BTExDVEwgKi8KKwor IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLwor LSNkZWZpbmUgSEFWRV9NQUxMSU5GTyAxCisrLyogI3VuZGVmIEhBVkVfTUFMTElORk8gKi8KKwor IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAq LworICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNo LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjJhZWFhZWI3NTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0 Y2gucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xzcy9s aW51eF9zeXNjYWxsX3N1cHBvcnQuaCBiL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1 cHBvcnQuaAoraW5kZXggNWQ5YzJlOC4uMjY4MjM0OSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oCitAQCAtMTY2LDYgKzE2NiwxMyBAQCBleHRlcm4gIkMiIHsKKyAj IHVuZGVmIF9fTlJfd2FpdHBpZAorICNlbmRpZgorIAorKyNpZmRlZiBwcmVhZDY0CisrI3VuZGVm IHByZWFkNjQKKysjZW5kaWYKKysjaWZkZWYgcHdyaXRlNjQKKysjdW5kZWYgcHdyaXRlNjQKKysj ZW5kaWYKKysKKyAvKiBBcyBnbGliYyBvZnRlbiBwcm92aWRlcyBzdWJ0bHkgaW5jb21wYXRpYmxl IGRhdGEgc3RydWN0dXJlcyAoYW5kIGltcGxpY2l0CisgICogd3JhcHBlciBmdW5jdGlvbnMgdGhh dCBjb252ZXJ0IHRoZW0pLCB3ZSBwcm92aWRlIG91ciBvd24ga2VybmVsIGRhdGEKKyAgKiBzdHJ1 Y3R1cmVzIGZvciB1c2UgYnkgdGhlIHN5c3RlbSBjYWxscy4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uY2ZmMzQwMjg3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2sucGF0Y2gucGF0Y2gK QEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3Np eC5jYyBiL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworaW5kZXggMDhiZjc5Yy4uM2Vl NTM1MyAxMDA2NDQKKy0tLSBhL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworKysrIGIv bmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitAQCAtMTE5NCw3ICsxMTk0LDcgQEAgU2Vu ZFJlc3VsdCBVRFBTb2NrZXRQb3NpeFNlbmRlcjo6SW50ZXJuYWxTZW5kbW1zZ0J1ZmZlcnMoCisg ICAgIG1zZ19pb3YtPnB1c2hfYmFjayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkp LCBidWZmZXItPmxlbmd0aCgpfSk7CisgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkp OworICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQorLSAgICBt c2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2dfaW92W2pdLCAxLCBudWxscHRyLCAw LCAwfSwgMH0pOworKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2dfaW92 W2pdLCAxLCAwLCBudWxscHRyLCAwLCAwLCAwfSwgMH0pOworICAgaW50IHJlc3VsdCA9IEhBTkRM RV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsKKyAg IFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAgIGlm IChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zaV9maWVsZHMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zaV9maWVsZHMucGF0Y2gu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkYmVmZDI3ZTJi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfc2lfZmllbGRzLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2Rp ZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKK2luZGV4IDAwMzcwOGQuLmIyMTQxNGYgMTAwNjQ0Cist LS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKKysrKyBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYvdHJhcC5jYworQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIFRyYXA6OlNp Z1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyogaW5mbywgdWNvbnRleHRfdCogY3R4KSB7CisgICAv LyBtb3N0IHZlcnNpb25zIG9mIGdsaWJjIGRvbid0IGluY2x1ZGUgdGhpcyBpbmZvcm1hdGlvbiBp biBzaWdpbmZvX3QuIFNvLAorICAgLy8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGNvcHkgaXQgaW50 byBhIGFyY2hfc2lnc3lzIHN0cnVjdHVyZS4KKyAgIHN0cnVjdCBhcmNoX3NpZ3N5cyBzaWdzeXM7 CistICBtZW1jcHkoJnNpZ3N5cywgJmluZm8tPl9zaWZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOwor KyAgbWVtY3B5KCZzaWdzeXMsICZpbmZvLT5fX3NpX2ZpZWxkcywgc2l6ZW9mKHNpZ3N5cykpOwor IAorICNpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgLy8gV2hlbiBpbmRpcmVjdCBzeXNjYWxsIChz eXNjYWxsKF9fTlJfZm9vLCAuLi4pKSBpcyBtYWRlIG9uIE1pcHMsIHRoZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tf c2l6ZS5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmE0ZGY3YTM3MjliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5w YXRjaC5wYXRjaApAQCAtMCwwICsxLDQxIEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MgYi90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYworaW5kZXggYjI0MjE2NC4uMWEw YjUxOSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0 Zi9zdGFja191dGlsLmNjCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS93dGYvc3RhY2tfdXRpbC5jYworQEAgLTI5LDcgKzI5LDcgQEAgc2l6ZV90IEdldFVuZGVyZXN0 aW1hdGVkU3RhY2tTaXplKCkgeworIC8vIEZJWE1FOiBPbiBNYWMgT1NYIGFuZCBMaW51eCwgdGhp cyBtZXRob2QgY2Fubm90IGVzdGltYXRlIHN0YWNrIHNpemUKKyAvLyBjb3JyZWN0bHkgZm9yIHRo ZSBtYWluIHRocmVhZC4KKyAKKy0jaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1Nf QU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisrI2lmIGRlZmluZWQoT1NfTElO VVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisg ICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBm YWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRl KCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMpLgorQEAgLTU1LDYg KzU1LDkgQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgeworICAgcHRocmVh ZF9hdHRyX2Rlc3Ryb3koJmF0dHIpOworICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKE9TX0xJTlVY KSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICByZXR1cm4gMDsKKysjZWxzZQorICAgLy8gUmV0 dXJuIGEgNTEyayBzdGFjayBzaXplLCAoY29uc2VydmF0aXZlbHkpIGFzc3VtaW5nIHRoZSBmb2xs b3dpbmc6CisgICAvLyAgLSB0aGF0IHNpemUgaXMgbXVjaCBsb3dlciB0aGFuIHRoZSBwdGhyZWFk cyBkZWZhdWx0ICh4ODYgcHRocmVhZHMgaGFzIGEgMk0KKyAgIC8vICAgIGRlZmF1bHQuKQorQEAg LTYyLDYgKzY1LDggQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgeworICAg Ly8gICAgbG93IGFzIDUxMmsuCisgICAvLworICAgcmV0dXJuIDUxMiAqIDEwMjQ7CisrI2VuZGlm CisrCisgI2VsaWYgZGVmaW5lZChPU19NQUNPU1gpCisgICAvLyBwdGhyZWFkX2dldF9zdGFja3Np emVfbnAoKSByZXR1cm5zIHRvbyBsb3cgYSB2YWx1ZSBmb3IgdGhlIG1haW4gdGhyZWFkIG9uCisg ICAvLyBPU1ggMTAuOSwKK0BAIC05Nyw3ICsxMDIsNyBAQCByZXR1cm4gVGhyZWFkaW5nOjpUaHJl YWRTdGFja1NpemUoKTsKKyB9CisgCisgdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKKy0jaWYgZGVm aW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVF QlNEKSB8fCBcCisrI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkg fHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCisgICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAg IHB0aHJlYWRfYXR0cl90IGF0dHI7CisgICBpbnQgZXJyb3I7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5w YXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi45YTFmMmIwNDQ1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNo LnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK2RpZmYgLS1naXQgYS9iYXNlL2RlYnVnL3N0YWNrX3Ry YWNlLmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworaW5kZXggZDhjYTgyMi4uZmZlMWYw OCAxMDA2NDQKKy0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBiL2Jhc2UvZGVi dWcvc3RhY2tfdHJhY2UuY2MKK0BAIC0yMjUsNyArMjI1LDkgQEAgdm9pZCBTdGFja1RyYWNlOjpQ cmludCgpIGNvbnN0IHsKKyB9CisKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKHN0 ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQ cmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRpZgorIH0KKworIHN0ZDo6c3RyaW5nIFN0YWNrVHJh Y2U6OlRvU3RyaW5nKCkgY29uc3QgeworQEAgLTIzMywxNCArMjMzLDE0IEBAIHN0ZDo6c3RyaW5n IFN0YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QgeworIH0KKyBzdGQ6OnN0cmluZyBTdGFja1Ry YWNlOjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3Qg eworICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOworLSNpZiAhZGVmaW5lZChfX1VDTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZp eCgmc3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKKyAjZW5kaWYKKyAgIHJldHVybiBzdHJlYW0uc3Ry KCk7CisgfQorIAorIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBj b25zdCBTdGFja1RyYWNlJiBzKSB7CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYgIWRlZmlu ZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYgIWRlZmluZWQoX0FJWCkKKyAgIHMuT3V0cHV0VG9TdHJlYW0oJm9zKTsKKyAjZWxzZQorICAg b3MgPDwgIlN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtIG5vdCBpbXBsZW1lbnRlZC4iOworZGlm ZiAtLWdpdCBhL2Jhc2UvbG9nZ2luZy5jYyBiL2Jhc2UvbG9nZ2luZy5jYworaW5kZXggMzZiOGJm Yy4uZGQ4MzBmZSAxMDA2NDQKKy0tLSBhL2Jhc2UvbG9nZ2luZy5jYworKysrIGIvYmFzZS9sb2dn aW5nLmNjCitAQCAtNjA3LDcgKzYwNyw3IEBAIExvZ01lc3NhZ2U6OkxvZ01lc3NhZ2UoY29uc3Qg Y2hhciogZmlsZSwgaW50IGxpbmUsIExvZ1NldmVyaXR5IHNldmVyaXR5LAorIExvZ01lc3NhZ2U6 On5Mb2dNZXNzYWdlKCkgeworICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFtXy50ZWxscCgp OworICNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYg IWRlZmluZWQoX19VQ0xJQkNfXykgJiYgXAorLSAgICAhZGVmaW5lZChPU19BSVgpCisrICAgICFk ZWZpbmVkKE9TX0FJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpZiAoc2V2ZXJpdHlfID09 IExPR19GQVRBTCAmJiAhYmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgeworICAgICAvLyBJ bmNsdWRlIGEgc3RhY2sgdHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdnZXIgaXMgYXR0 YWNoZWQuCisgICAgIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3RyYWNlOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf dGNwX2xpc3Rlbi5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNjIzMTdiMTFhCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfdGNwX2xp c3Rlbi5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE0IEBACitkaWZmIC0tZ2l0IGEvY29udGVudC9w dWJsaWMvY29tbW9uL3NvY2tldF9wZXJtaXNzaW9uX3JlcXVlc3QuaCBiL2NvbnRlbnQvcHVibGlj L2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKK2luZGV4IDczMTY2MjEuLjYxNzEy MTkgMTAwNjQ0CistLS0gYS9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25f cmVxdWVzdC5oCisrKysgYi9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25f cmVxdWVzdC5oCitAQCAtOSw2ICs5LDkgQEAKKyAKKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorKyNp ZmRlZiBUQ1BfTElTVEVOCisrI3VuZGVmIFRDUF9MSVNURU4KKysjZW5kaWYKKyAKKyBuYW1lc3Bh Y2UgY29udGVudCB7CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjA4Y2ZmYWZiZQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2Vs Zl9jb3JlX2R1bXAuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bGludXgvZWxmX2NvcmVfZHVtcC5oCitpbmRleCBkMDNjN2E4Li43OGNhOWRkIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29y ZV9kdW1wLmgKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bGludXgvZWxmX2NvcmVfZHVtcC5oCitAQCAtMzYsNiArMzYsNyBAQAorICNpbmNsdWRlIDxlbGYu aD4KKyAjaW5jbHVkZSA8bGluay5oPgorICNpbmNsdWRlIDxzdGRkZWYuaD4KKysjaW5jbHVkZSA8 bGltaXRzLmg+CisgCisgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnlfcmFuZ2UuaCIKKyAKK0BAIC01 MSw5ICs1Miw5IEBAIGNsYXNzIEVsZkNvcmVEdW1wIHsKKyAgIHR5cGVkZWYgRWxmVyhQaGRyKSBQ aGRyOworICAgdHlwZWRlZiBFbGZXKFdvcmQpIFdvcmQ7CisgICB0eXBlZGVmIEVsZlcoQWRkcikg QWRkcjsKKy0jaWYgX19XT1JEU0laRSA9PSAzMgorKyNpZiBVTE9OR19NQVggPT0gMHhmZmZmZmZm ZgorICAgc3RhdGljIGNvbnN0IGludCBrQ2xhc3MgPSBFTEZDTEFTUzMyOworLSNlbGlmIF9fV09S RFNJWkUgPT0gNjQKKysjZWxpZiBVTE9OR19NQVggPT0gMHhmZmZmZmZmZmZmZmZmZmZmCisgICBz dGF0aWMgY29uc3QgaW50IGtDbGFzcyA9IEVMRkNMQVNTNjQ7CisgI2Vsc2UKKyAjZXJyb3IgIlVu c3VwcG9ydGVkIF9fV09SRFNJWkUgZm9yIEVsZkNvcmVEdW1wLiIKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAxLXVwc3RyZWFtX2Nocm9tZV9j bGVhbmVyLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU3ZTk0MTgwYzU5Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDEtdXBzdHJlYW1f Y2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw3MyBAQAorRnJvbSBjNzU1ZWM4 NDc0NTlkOWQzODA3YzIyYzJkNGQ2YWE2ZjljODZkYzdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogSm9obiBCdWRvcmljayA8amJ1ZG9yaWNrQGNocm9taXVtLm9yZz4KK0RhdGU6IFR1 ZSwgMTkgTm92IDIwMTkgMjI6MjQ6MjAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gMzkwNDogY2hy b21lX2NsZWFuZXI6IGVuc3VyZSBpbnRlcm5hbCB0YXJnZXRzIGFyZSByZWFjaGFibGUKKyBmcm9t IDpnbl9hbGwuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGVlZTUxM2RmYzc4MGFkNGJj YWE3NGI2N2YyZTBlYWViZjU3YjVjOTMpCisKK0J1ZzogOTg0MTYyLCAxMDA0ODQ4CitDaGFuZ2Ut SWQ6IEliYjdjNDdmMDE4OGRlOGUwNzdjZDMwYWE4ZDY4Y2E2MTEzM2QyMDM3CitSZXZpZXdlZC1v bjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3Ny Yy8rLzE5MDQ1NDkKK0NvbW1pdC1RdWV1ZTogSm9obiBCdWRvcmljayA8amJ1ZG9yaWNrQGNocm9t aXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAY2hyb21pdW0u b3JnPgorQ3ItT3JpZ2luYWwtQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izcx MzY4M30KK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2Uu Y29tL2MvY2hyb21pdW0vc3JjLysvMTkyMjI5OQorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2Jy YW5jaC1oZWFkcy8zOTA0QHsjODk1fQorQ3ItQnJhbmNoZWQtRnJvbTogNjc1OTY4YThjNjU3YTNi ZDljMWMyYzIwYzVkMjkzNTU3N2JiYzVlNi1yZWZzL2hlYWRzL21hc3RlckB7IzY5Mzk1NH0KKy0t LQorIEJVSUxELmduICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgY2hyb21lL2Nocm9t ZV9jbGVhbmVyL0JVSUxELmduIHwgMjMgKysrKysrKysrKysrKysrKysrKystLS0KKyAyIGZpbGVz IGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9CVUlMRC5nbiBiL0JVSUxELmduCitpbmRleCA1ZTJmNmI5YjBmNDFjLi5hYzAyOTc2MDg1OTRm IDEwMDY0NAorLS0tIGEvQlVJTEQuZ24KKysrKyBiL0JVSUxELmduCitAQCAtNjA0LDcgKzYwNCw3 IEBAIGdyb3VwKCJnbl9hbGwiKSB7CisgICBpZiAoaXNfd2luKSB7CisgICAgIGRlcHMgKz0gWwor ICAgICAgICIvL2Jhc2U6cGVfaW1hZ2VfdGVzdCIsCistICAgICAgIi8vY2hyb21lL2Nocm9tZV9j bGVhbmVyOmNocm9tZV9jbGVhbmVyX3VuaXR0ZXN0cyIsCisrICAgICAgIi8vY2hyb21lL2Nocm9t ZV9jbGVhbmVyIiwKKyAgICAgICAiLy9jaHJvbWUvY2hyb21lX2VsZjpjaHJvbWVfZWxmX3VuaXR0 ZXN0cyIsCisgICAgICAgIi8vY2hyb21lL2Nocm9tZV9lbGY6ZGxsX2hhc2hfbWFpbiIsCisgICAg ICAgIi8vY2hyb21lL2VsZXZhdGlvbl9zZXJ2aWNlOmVsZXZhdGlvbl9zZXJ2aWNlX3VuaXR0ZXN0 cyIsCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL0JVSUxELmduIGIvY2hyb21l L2Nocm9tZV9jbGVhbmVyL0JVSUxELmduCitpbmRleCBmYmQyZDhkNTMwN2FhLi4xNjcxYTNmN2Qw OTdjIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL0JVSUxELmduCisrKysgYi9j aHJvbWUvY2hyb21lX2NsZWFuZXIvQlVJTEQuZ24KK0BAIC02NCw5ICs2NCw2IEBAIHN0YXRpY19s aWJyYXJ5KCJvdGhlcl9leGVjdXRhYmxlX2RlZmluaXRpb25zIikgeworIH0KKyAKKyB0ZXN0KCJj aHJvbWVfY2xlYW5lcl91bml0dGVzdHMiKSB7CistICAjIE1ha2UgdGhpcyB0YXJnZXQgZmluZGFi bGUgZnJvbSB0aGUgImFsbCIgdGFyZ2V0IHVzZWQgYnkgdGhlIGJ1aWxkZXJzLgorLSAgdmlzaWJp bGl0eSArPSBbICIvLy46Z25fYWxsIiBdCistCisgICBzb3VyY2VzID0gWworICAgICAiLy9jaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC90ZXN0X21haW4uY2MiLAorICAgXQorQEAgLTEyNiwzICsx MjMsMjMgQEAgdGVzdCgiY2hyb21lX2NsZWFuZXJfdW5pdHRlc3RzIikgeworICAgICBdCisgICB9 CisgfQorKworK2dyb3VwKCJjaHJvbWVfY2xlYW5lciIpIHsKKysgIHRlc3Rvbmx5ID0gdHJ1ZQor KworKyAgIyBNYWtlIHRoaXMgdGFyZ2V0IGZpbmRhYmxlIGZyb20gdGhlICJhbGwiIHRhcmdldCB1 c2VkIGJ5IHRoZSBidWlsZGVycy4KKysgIHZpc2liaWxpdHkgKz0gWyAiLy8uOmduX2FsbCIgXQor KworKyAgZGVwcyA9IFsKKysgICAgIjpjaHJvbWVfY2xlYW5lcl91bml0dGVzdHMiLAorKyAgICAi Ly9jaHJvbWUvY2hyb21lX2NsZWFuZXIvZXhlY3V0YWJsZXM6Y2hyb21lX2NsZWFudXBfdG9vbCIs CisrICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9leGVjdXRhYmxlczpzb2Z0d2FyZV9yZXBv cnRlcl90b29sIiwKKysgIF0KKysKKysgIGlmIChpc19pbnRlcm5hbF9jaHJvbWVfY2xlYW5lcl9i dWlsZCkgeworKyAgICBkZXBzICs9IFsKKysgICAgICAiJHtjaHJvbWVfY2xlYW5lcl9pbnRlcm5h bF9yb290fTpidWlsZF90YXJnZXRzIiwKKysgICAgICAiJHtjaHJvbWVfY2xlYW5lcl9pbnRlcm5h bF9yb290fTp0ZXN0X3RhcmdldHMiLAorKyAgICBdCisrICB9CisrfQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDItdXBzdHJlYW1fc2F2ZV9s b2dzX2Zyb21fdGVzdF9jaWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAyLXVwc3RyZWFtX3NhdmVfbG9nc19mcm9tX3Rl c3RfY2lsZF9wcm9jZXNzZXMucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjc0YjlmZWM1OWE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDItdXBzdHJlYW1fc2F2ZV9sb2dzX2Zyb21f dGVzdF9jaWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDM0MiBAQAorRnJvbSBk YWVjNjYxZjI3YmRmYWI3OTEzMmQ3ZDJjNDYzN2NjMTdmZDRhYTM1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVzQGdvb2dsZS5jb20+CitEYXRl OiBXZWQsIDQgRGVjIDIwMTkgMTg6MDQ6MjEgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gU2F2ZSBs b2dzIGZyb20gdGVzdCBjaGlsZCBwcm9jZXNzZXMgYnkgcmVkaXJlY3Rpbmcgc3Rkb3V0IGFuZAor IHN0ZGVyci4KKworVGhlIHByZXZpb3VzIHNvbHV0aW9uIGNhbiBvbmx5IGNhcHR1cmUgbG9ncyBh ZnRlciB0aGUgY2hpbGQgcHJvY2VzcworY3JlYXRlcyBhIFNjb3BlZExvZ2dpbmcgb2JqZWN0LiBX ZSBzZWUgZmxha3kgY3Jhc2hlcyBpbiBzYW5kYm94IGNyZWF0aW9uCit0aGF0IGhhcHBlbiBiZWZv cmUgdGhhdCBzbyB0aGlzIHdpbGwgbGV0IHVzIHNlZSB0aGUgY2hpbGQgcHJvY2VzcyBzdGFjawor dHJhY2VzLgorCitBbHNvIG1vdmVzIHNvbWUgZnVuY3Rpb25zIHRoYXQgd2VyZSBleHBvcnRlZCBm cm9tIGlwY190ZXN0X3V0aWwuaCB0byBiZQorcHJpdmF0ZSB0byBwcm90b19jaHJvbWVfcHJvbXB0 X2lwY191bml0dGVzdC5jYywgd2hpY2ggaXMgdGhlIG9ubHkgdGVzdAordGhhdCBzdGlsbCB1c2Vz IHRoZW0uCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGU3YTc1NTQyMTEzNmQ3ZmM5YjNh NzNhNWU1NDY0MzY4ZjNlZmE3ZjkpCisKK0J1ZzogMTAzMDMzMworQ2hhbmdlLUlkOiBJZTMwZWVk M2IxNjYzMTcyMWU4MWE0MjBiM2I3MGYxZWM1ZjBkOWEwYworUmV2aWV3ZWQtb246IGh0dHBzOi8v Y2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xOTQ4NDgz CitSZXZpZXdlZC1ieTogcHJvYmVyZ2UgPHByb2JlcmdlQGNocm9taXVtLm9yZz4KK0NvbW1pdC1R dWV1ZTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVzQGNocm9taXVtLm9yZz4KK0NyLU9yaWdpbmFs LUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3MjEwNzF9CitSZXZpZXdlZC1v bjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3Ny Yy8rLzE5NTEwODkKK1Jldmlld2VkLWJ5OiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAY2hyb21p dW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy8zOTA0QHsjOTEz fQorQ3ItQnJhbmNoZWQtRnJvbTogNjc1OTY4YThjNjU3YTNiZDljMWMyYzIwYzVkMjkzNTU3N2Ji YzVlNi1yZWZzL2hlYWRzL21hc3RlckB7IzY5Mzk1NH0KKy0tLQorIGNocm9tZS9jaHJvbWVfY2xl YW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYyAgICB8IDkyICsrKysrKysrKysrKy0tLS0tLS0KKyBj aHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaCAgICAgfCAxMyArKy0KKyAu Li4vaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjICAgfCAxNyArKy0tCisg Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9zYW5kYm94LmNjICAgICAgICAgIHwgIDUgKy0KKyA0 IGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjIGIvY2hy b21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjCitpbmRleCAwNWZjMGQwMjdl YzQzLi4wZDAzYTY4NzBmYjA3IDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lw Yy9pcGNfdGVzdF91dGlsLmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190 ZXN0X3V0aWwuY2MKK0BAIC0xMyw2ICsxMyw3IEBACisgI2luY2x1ZGUgImJhc2UvY29tbWFuZF9s aW5lLmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRoLmgiCisgI2luY2x1ZGUgImJh c2UvZmlsZXMvZmlsZV91dGlsLmgiCisrI2luY2x1ZGUgImJhc2UvZmlsZXMvc2NvcGVkX3RlbXBf ZGlyLmgiCisgI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nl c3MvbGF1bmNoLmgiCisgI2luY2x1ZGUgImJhc2UvcmFuZF91dGlsLmgiCitAQCAtMjMsNyArMjQs NiBAQAorICNpbmNsdWRlICJiYXNlL3Rlc3QvdGVzdF90aW1lb3V0cy5oIgorICNpbmNsdWRlICJi YXNlL3dpbi93aW5fdXRpbC5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBj L3NhbmRib3guaCIKKy0jaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2xvZ2dpbmcvc2Nv cGVkX2xvZ2dpbmcuaCIKKyAjaW5jbHVkZSAic2FuZGJveC93aW4vc3JjL3NhbmRib3hfZmFjdG9y eS5oIgorIAorIG5hbWVzcGFjZSBjaHJvbWVfY2xlYW5lciB7CitAQCAtMzIsMTIgKzMyLDEzIEBA IG5hbWVzcGFjZSB7CisgCisgY29uc3RleHByIGNoYXIga01vam9QaXBlVG9rZW5Td2l0Y2hbXSA9 ICJtb2pvLXBpcGUtdG9rZW4iOworIAorLWNvbnN0ZXhwciB3Y2hhcl90IGtJUENUZXN0VXRpbExv Z1N1ZmZpeFtdID0gTCJpcGMtdGVzdC11dGlsIjsKKy0KKyBjbGFzcyBNb2pvU2FuZGJveFNldHVw SG9va3MgOiBwdWJsaWMgU2FuZGJveFNldHVwSG9va3MgeworICBwdWJsaWM6CistICBleHBsaWNp dCBNb2pvU2FuZGJveFNldHVwSG9va3MoU2FuZGJveGVkUGFyZW50UHJvY2VzcyogcGFyZW50X3By b2Nlc3MpCistICAgICAgOiBwYXJlbnRfcHJvY2Vzc18ocGFyZW50X3Byb2Nlc3MpIHt9CisrICBl eHBsaWNpdCBNb2pvU2FuZGJveFNldHVwSG9va3MoCisrICAgICAgU2FuZGJveGVkUGFyZW50UHJv Y2VzcyogcGFyZW50X3Byb2Nlc3MsCisrICAgICAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hp bGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkKKysgICAgICA6IHBhcmVudF9wcm9jZXNzXyhwYXJlbnRf cHJvY2VzcyksCisrICAgICAgICBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlXyhzdGQ6Om1vdmUo Y2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkpIHt9CisgICB+TW9qb1NhbmRib3hTZXR1cEhvb2tz KCkgb3ZlcnJpZGUgPSBkZWZhdWx0OworIAorICAgLy8gU2FuZGJveFNldHVwSG9va3MKK0BAIC00 OSw2ICs1MCw4IEBAIGNsYXNzIE1vam9TYW5kYm94U2V0dXBIb29rcyA6IHB1YmxpYyBTYW5kYm94 U2V0dXBIb29rcyB7CisgICAgIHBhcmVudF9wcm9jZXNzXy0+Q3JlYXRlTW9qb1BpcGUoY29tbWFu ZF9saW5lLCAmaGFuZGxlc190b19pbmhlcml0KTsKKyAgICAgZm9yIChIQU5ETEUgaGFuZGxlIDog aGFuZGxlc190b19pbmhlcml0KQorICAgICAgIHBvbGljeS0+QWRkSGFuZGxlVG9TaGFyZShoYW5k bGUpOworKyAgICBwb2xpY3ktPlNldFN0ZG91dEhhbmRsZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFu ZGxlXy5HZXQoKSk7CisrICAgIHBvbGljeS0+U2V0U3RkZXJySGFuZGxlKGNoaWxkX3N0ZG91dF93 cml0ZV9oYW5kbGVfLkdldCgpKTsKKyAgICAgcmV0dXJuIFJFU1VMVF9DT0RFX1NVQ0NFU1M7Cisg ICB9CisgCitAQCAtNjEsMzMgKzY0LDE0IEBAIGNsYXNzIE1vam9TYW5kYm94U2V0dXBIb29rcyA6 IHB1YmxpYyBTYW5kYm94U2V0dXBIb29rcyB7CisgCisgIHByaXZhdGU6CisgICBTYW5kYm94ZWRQ YXJlbnRQcm9jZXNzKiBwYXJlbnRfcHJvY2Vzc187CisrICBiYXNlOjp3aW46OlNjb3BlZEhhbmRs ZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlXzsKKyB9OworIAorIH0gIC8vIG5hbWVzcGFjZQor IAorIG5hbWVzcGFjZSBpbnRlcm5hbCB7CisgCistYmFzZTo6RmlsZVBhdGg6OlN0cmluZ1BpZWNl VHlwZSBHZXRMb2dQYXRoU3VmZml4KCkgeworLSAgcmV0dXJuIGtJUENUZXN0VXRpbExvZ1N1ZmZp eDsKKy19CistCistYmFzZTo6RmlsZVBhdGggR2V0TG9nUGF0aCgpIHsKKy0gIHJldHVybiBTY29w ZWRMb2dnaW5nOjpHZXRMb2dGaWxlUGF0aChrSVBDVGVzdFV0aWxMb2dTdWZmaXgpOworLX0KKy0K Ky1ib29sIERlbGV0ZUNoaWxkUHJvY2Vzc0xvZ3MoKSB7CistICAvLyBEZWxldGUgdGhlIGNoaWxk IHByb2Nlc3MgbG9nIGZpbGUgaWYgZXhpc3RpbmcuCistICBjb25zdCBiYXNlOjpGaWxlUGF0aCBs b2dfcGF0aCA9IEdldExvZ1BhdGgoKTsKKy0gIGlmICghYmFzZTo6RGVsZXRlRmlsZShsb2dfcGF0 aCwgZmFsc2UpKSB7CistICAgIExPRyhFUlJPUikgPDwgIkNhbid0IGRlbGV0ZSBsb2cgZmlsZSBm cm9tIHByZXZpb3VzIHJ1bjogIgorLSAgICAgICAgICAgICAgIDw8IGxvZ19wYXRoLnZhbHVlKCk7 CistICAgIHJldHVybiBmYWxzZTsKKy0gIH0KKy0gIHJldHVybiB0cnVlOworLX0KKy0KKy12b2lk IFByaW50Q2hpbGRQcm9jZXNzTG9ncygpIHsKKy0gIGNvbnN0IGJhc2U6OkZpbGVQYXRoIGxvZ19w YXRoID0gR2V0TG9nUGF0aCgpOworK3ZvaWQgUHJpbnRDaGlsZFByb2Nlc3NMb2dzKGNvbnN0IGJh c2U6OkZpbGVQYXRoJiBsb2dfcGF0aCkgeworICAgaWYgKGxvZ19wYXRoLmVtcHR5KCkpIHsKKyAg ICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzcyBsb2cgcGF0aCBpcyBlbXB0eSI7CisgICAg IHJldHVybjsKK0BAIC0xNzQsMTEgKzE1OCwzOCBAQCBib29sIFBhcmVudFByb2Nlc3M6OkxhdW5j aENvbm5lY3RlZENoaWxkUHJvY2VzcygKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21h aW5fZnVuY3Rpb24sCisgICAgIGJhc2U6OlRpbWVEZWx0YSB0aW1lb3V0LAorICAgICBpbnQzMl90 KiBleGl0X2NvZGUpIHsKKy0gIGlmICghaW50ZXJuYWw6OkRlbGV0ZUNoaWxkUHJvY2Vzc0xvZ3Mo KSkKKysgIC8vIEFkYXB0ZWQgZnJvbQorKyAgLy8gaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy b21pdW0vc3JjL3NhbmRib3gvd2luL3NyYy9oYW5kbGVfaW5oZXJpdGFuY2VfdGVzdC5jYworKyAg YmFzZTo6U2NvcGVkVGVtcERpciB0ZW1wX2RpcjsKKysgIGlmICghdGVtcF9kaXIuQ3JlYXRlVW5p cXVlVGVtcERpcigpKSB7CisrICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRlIHRl bXAgZGlyIGZvciBjaGlsZCBzdGRvdXQiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisr ICBiYXNlOjpGaWxlUGF0aCB0ZW1wX2ZpbGVfbmFtZTsKKysgIGlmICghQ3JlYXRlVGVtcG9yYXJ5 RmlsZUluRGlyKHRlbXBfZGlyLkdldFBhdGgoKSwgJnRlbXBfZmlsZV9uYW1lKSkgeworKyAgICBQ TE9HKEVSUk9SKSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0ZW1wIGZpbGUgZm9yIGNoaWxkIHN0ZG91 dCI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIFNFQ1VSSVRZX0FUVFJJQlVURVMg YXR0cnMgPSB7fTsKKysgIGF0dHJzLm5MZW5ndGggPSBzaXplb2YoYXR0cnMpOworKyAgYXR0cnMu YkluaGVyaXRIYW5kbGUgPSB0cnVlOworKworKyAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hp bGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSgKKysgICAgICA6OkNyZWF0ZUZpbGUodGVtcF9maWxlX25h bWUudmFsdWUoKS5jX3N0cigpLCBHRU5FUklDX1dSSVRFLAorKyAgICAgICAgICAgICAgICAgICBG SUxFX1NIQVJFX1dSSVRFIHwgRklMRV9TSEFSRV9SRUFEIHwgRklMRV9TSEFSRV9ERUxFVEUsCisr ICAgICAgICAgICAgICAgICAgICZhdHRycywgT1BFTl9FWElTVElORywgMCwgbnVsbHB0cikpOwor KyAgaWYgKCFjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlLklzVmFsaWQoKSkgeworKyAgICBQTE9H KEVSUk9SKSA8PCAiQ291bGQgbm90IG9wZW4gY2hpbGQgc3Rkb3V0IGZpbGUiOworICAgICByZXR1 cm4gZmFsc2U7CisrICB9CisgCistICBpZiAoIVByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9j ZXNzKGNoaWxkX21haW5fZnVuY3Rpb24pKQorKyAgaWYgKCFQcmVwYXJlQW5kTGF1bmNoVGVzdENo aWxkUHJvY2VzcyhjaGlsZF9tYWluX2Z1bmN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkpKSB7 CisrICAgIGludGVybmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3ModGVtcF9maWxlX25hbWUpOwor ICAgICByZXR1cm4gZmFsc2U7CisrICB9CisgCisgICBDcmVhdGVJbXBsT25JUENUaHJlYWQoc3Rk Ojptb3ZlKG1vam9fcGlwZV8pKTsKKyAgIGNvbnN0IGJvb2wgc3VjY2VzcyA9IGJhc2U6OldhaXRG b3JNdWx0aXByb2Nlc3NUZXN0Q2hpbGRFeGl0KAorQEAgLTE4OSwyMSArMjAwLDMyIEBAIGJvb2wg UGFyZW50UHJvY2Vzczo6TGF1bmNoQ29ubmVjdGVkQ2hpbGRQcm9jZXNzKAorICAgfQorICAgRGVz dHJveUltcGxPbklQQ1RocmVhZCgpOworIAorLSAgaWYgKCFzdWNjZXNzIHx8ICpleGl0X2NvZGUg IT0gMCkKKy0gICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQcm9jZXNzTG9ncygpOworKyAgaWYgKCFz dWNjZXNzIHx8ICpleGl0X2NvZGUgIT0gMCkgeworKyAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFBy b2Nlc3NMb2dzKHRlbXBfZmlsZV9uYW1lKTsKKysgIH0KKyAKKyAgIHJldHVybiBzdWNjZXNzOwor IH0KKyAKKyBib29sIFBhcmVudFByb2Nlc3M6OlByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9j ZXNzKAorLSAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgeworKyAg ICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKysgICAgYmFzZTo6d2lu OjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkgeworICAgYmFzZTo6TGF1 bmNoT3B0aW9ucyBsYXVuY2hfb3B0aW9uczsKKyAgIGxhdW5jaF9vcHRpb25zLmhhbmRsZXNfdG9f aW5oZXJpdCA9IGV4dHJhX2hhbmRsZXNfdG9faW5oZXJpdF87CisrICBsYXVuY2hfb3B0aW9ucy5o YW5kbGVzX3RvX2luaGVyaXQucHVzaF9iYWNrKGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUuR2V0 KCkpOworKyAgbGF1bmNoX29wdGlvbnMuc3RkaW5faGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFM VUU7CisrICBsYXVuY2hfb3B0aW9ucy5zdGRvdXRfaGFuZGxlID0gY2hpbGRfc3Rkb3V0X3dyaXRl X2hhbmRsZS5HZXQoKTsKKysgIGxhdW5jaF9vcHRpb25zLnN0ZGVycl9oYW5kbGUgPSBjaGlsZF9z dGRvdXRfd3JpdGVfaGFuZGxlLkdldCgpOworKworICAgQ3JlYXRlTW9qb1BpcGUoJmNvbW1hbmRf bGluZV8sICZsYXVuY2hfb3B0aW9ucy5oYW5kbGVzX3RvX2luaGVyaXQpOworIAorICAgYmFzZTo6 UHJvY2VzcyBjaGlsZF9wcm9jZXNzID0gYmFzZTo6U3Bhd25NdWx0aVByb2Nlc3NUZXN0Q2hpbGQo CisgICAgICAgY2hpbGRfbWFpbl9mdW5jdGlvbiwgY29tbWFuZF9saW5lXywgbGF1bmNoX29wdGlv bnMpOworIAorKyAgLy8gTm93IHRoYXQgaXQncyBiZWVuIHBhc3NlZCB0byB0aGUgY2hpbGQgcHJv Y2VzcywKKysgIC8vIHxjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlfCBjYW4gYmUgY2xvc2VkIGlu IHRoaXMgcHJvY2VzcyBhcyBpdCBnb2VzIG91dAorKyAgLy8gb2Ygc2NvcGUuCisrCisgICBDb25u ZWN0TW9qb1BpcGUoc3RkOjptb3ZlKGNoaWxkX3Byb2Nlc3MpKTsKKyAgIHJldHVybiB0cnVlOwor IH0KK0BAIC0yMzUsOCArMjU3LDkgQEAgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6U2FuZGJveGVk UGFyZW50UHJvY2VzcygKKyBTYW5kYm94ZWRQYXJlbnRQcm9jZXNzOjp+U2FuZGJveGVkUGFyZW50 UHJvY2VzcygpIHt9CisgCisgYm9vbCBTYW5kYm94ZWRQYXJlbnRQcm9jZXNzOjpQcmVwYXJlQW5k TGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21h aW5fZnVuY3Rpb24pIHsKKy0gIE1vam9TYW5kYm94U2V0dXBIb29rcyBob29rcyh0aGlzKTsKKysg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24sCisrICAgIGJhc2U6Ondp bjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpIHsKKysgIE1vam9TYW5k Ym94U2V0dXBIb29rcyBob29rcyh0aGlzLCBzdGQ6Om1vdmUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hh bmRsZSkpOworIAorICAgLy8gVGhpcyBzd2l0Y2ggdXNhZ2UgaXMgY29waWVkIGZyb20gU3Bhd25N dWx0aVByb2Nlc3NUZXN0Q2hpbGQuCisgICAvLworQEAgLTI1OCw4ICsyODEsNyBAQCBib29sIFNh bmRib3hlZFBhcmVudFByb2Nlc3M6OlByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKAor IAorIENoaWxkUHJvY2Vzczo6Q2hpbGRQcm9jZXNzKHNjb3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5u ZXI+IG1vam9fdGFza19ydW5uZXIpCisgICAgIDogbW9qb190YXNrX3J1bm5lcl8obW9qb190YXNr X3J1bm5lciksCistICAgICAgY29tbWFuZF9saW5lXyhiYXNlOjpDb21tYW5kTGluZTo6Rm9yQ3Vy cmVudFByb2Nlc3MoKSksCistICAgICAgc2NvcHBlZF9sb2dnaW5nXyhuZXcgU2NvcGVkTG9nZ2lu ZyhrSVBDVGVzdFV0aWxMb2dTdWZmaXgpKSB7CisrICAgICAgY29tbWFuZF9saW5lXyhiYXNlOjpD b21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3MoKSkgeworICAgc2FuZGJveDo6VGFyZ2V0U2Vy dmljZXMqIHRhcmdldF9zZXJ2aWNlcyA9CisgICAgICAgc2FuZGJveDo6U2FuZGJveEZhY3Rvcnk6 OkdldFRhcmdldFNlcnZpY2VzKCk7CisgICBpZiAoIXRhcmdldF9zZXJ2aWNlcykKK2RpZmYgLS1n aXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaCBiL2Nocm9tZS9j aHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5oCitpbmRleCA5N2YyMDcyYTA5MTY1Li4x YjJlNTU5OGVkNTJhIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNf dGVzdF91dGlsLmgKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRp bC5oCitAQCAtMTQsOSArMTQsOSBAQAorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvbGF1bmNoLmgi CisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9wcm9jZXNzLmgiCisgI2luY2x1ZGUgImJhc2UvdGlt ZS90aW1lLmgiCisrI2luY2x1ZGUgImJhc2Uvd2luL3Njb3BlZF9oYW5kbGUuaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9jaHJvbWVfcHJvbXB0X2lwYy5oIgorICNpbmNs dWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL21vam9fdGFza19ydW5uZXIuaCIKKy0jaW5j bHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2xvZ2dpbmcvc2NvcGVkX2xvZ2dpbmcuaCIKKyAj aW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL3BsYXRmb3JtL3BsYXRmb3JtX2NoYW5uZWwuaCIKKyAj aW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL3N5c3RlbS9pbnZpdGF0aW9uLmgiCisgI2luY2x1ZGUg Im1vam8vcHVibGljL2NwcC9zeXN0ZW0vbWVzc2FnZV9waXBlLmgiCitAQCAtNzAsNyArNzAsOCBA QCBjbGFzcyBQYXJlbnRQcm9jZXNzIDogcHVibGljIGJhc2U6OlJlZkNvdW50ZWRUaHJlYWRTYWZl PFBhcmVudFByb2Nlc3M+IHsKKyAgIC8vIGFzIGluIHRoZSBzYW5kYm94LiBTdWJjbGFzc2VzIHNo b3VsZCBjYWxsIENyZWF0ZU1vam9QaXBlIGJlZm9yZSB0aGUKKyAgIC8vIHN1YnByb2Nlc3MgaXMg c3Bhd25lZCBhbmQgQ29ubmVjdE1vam9QaXBlIGFmdGVyd2FyZC4KKyAgIHZpcnR1YWwgYm9vbCBQ cmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgY2hpbGRfbWFpbl9mdW5jdGlvbik7CisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxk X21haW5fZnVuY3Rpb24sCisrICAgICAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rk b3V0X3dyaXRlX2hhbmRsZSk7CisgCisgICBzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVubmVyPiBt b2pvX3Rhc2tfcnVubmVyKCk7CisgCitAQCAtOTUsNyArOTYsOCBAQCBjbGFzcyBTYW5kYm94ZWRQ YXJlbnRQcm9jZXNzIDogcHVibGljIFBhcmVudFByb2Nlc3MgeworICAgflNhbmRib3hlZFBhcmVu dFByb2Nlc3MoKSBvdmVycmlkZTsKKyAKKyAgIGJvb2wgUHJlcGFyZUFuZExhdW5jaFRlc3RDaGls ZFByb2Nlc3MoCistICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24p IG92ZXJyaWRlOworKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9u LAorKyAgICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5k bGUpIG92ZXJyaWRlOworIH07CisgCisgY2xhc3MgQ2hpbGRQcm9jZXNzIDogcHVibGljIGJhc2U6 OlJlZkNvdW50ZWRUaHJlYWRTYWZlPENoaWxkUHJvY2Vzcz4geworQEAgLTEyMCw3ICsxMjIsNiBA QCBjbGFzcyBDaGlsZFByb2Nlc3MgOiBwdWJsaWMgYmFzZTo6UmVmQ291bnRlZFRocmVhZFNhZmU8 Q2hpbGRQcm9jZXNzPiB7CisgCisgIHByaXZhdGU6CisgICBiYXNlOjpDb21tYW5kTGluZSogY29t bWFuZF9saW5lXzsKKy0gIHN0ZDo6dW5pcXVlX3B0cjxTY29wZWRMb2dnaW5nPiBzY29wcGVkX2xv Z2dpbmdfOworIAorICAgLy8gVGhpcyB3aWxsIGJlIHRydWUgaWZmIHRoZSBwcm9jZXNzIGlzIHJ1 bm5pbmcgaW4gYSBzYW5kYm94IGFuZAorICAgLy8gVGFyZ2V0U2VydmljZXMgd2FzIGluaXRpYWxp emVkIHN1Y2Nlc3NmdWxseS4KK0BAIC0xNDMsOSArMTQ0LDcgQEAgY2xhc3MgQ2hyb21lUHJvbXB0 SVBDVGVzdEVycm9ySGFuZGxlciA6IHB1YmxpYyBDaHJvbWVQcm9tcHRJUEM6OkVycm9ySGFuZGxl ciB7CisgfTsKKyAKKyBuYW1lc3BhY2UgaW50ZXJuYWwgeworLWJhc2U6OkZpbGVQYXRoOjpTdHJp bmdQaWVjZVR5cGUgR2V0TG9nUGF0aFN1ZmZpeCgpOworLWJvb2wgRGVsZXRlQ2hpbGRQcm9jZXNz TG9ncygpOworLXZvaWQgUHJpbnRDaGlsZFByb2Nlc3NMb2dzKCk7Cisrdm9pZCBQcmludENoaWxk UHJvY2Vzc0xvZ3MoY29uc3QgYmFzZTo6RmlsZVBhdGgmIGxvZ19maWxlKTsKKyB9ICAvLyBuYW1l c3BhY2UgaW50ZXJuYWwKKyAKKyB9ICAvLyBuYW1lc3BhY2UgY2hyb21lX2NsZWFuZXIKK2RpZmYg LS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBj X3VuaXR0ZXN0LmNjIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJv bXB0X2lwY191bml0dGVzdC5jYworaW5kZXggMWM3YjRjNTc1ZWIzZC4uZjg2N2RmNThmOTZlYSAx MDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9fY2hyb21lX3Byb21w dF9pcGNfdW5pdHRlc3QuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9f Y2hyb21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MKK0BAIC01LDYgKzUsNyBAQAorICNpbmNsdWRl IDx3aW5kb3dzLmg+CisgCisgI2luY2x1ZGUgImJhc2UvY29tbWFuZF9saW5lLmgiCisrI2luY2x1 ZGUgImJhc2UvZmlsZXMvZmlsZV91dGlsLmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9wcm9j ZXNzLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJjYXQuaCIKKyAjaW5jbHVkZSAiYmFz ZS9zdHJpbmdzL3N0cmluZ19udW1iZXJfY29udmVyc2lvbnMuaCIKK0BAIC00MSw4ICs0Miw5IEBA IGNvbnN0ZXhwciBjaGFyIGtFeHBlY3RlZFByb21wdFJlc3VsdFN3aXRjaFtdID0gImV4cGVjdGVk LXByb21wdC1yZXN1bHQiOworIGNvbnN0ZXhwciBjaGFyIGtFeHBlY3RlZENocm9tZURpc2Nvbm5l Y3RQb2ludFN3aXRjaFtdID0KKyAgICAgImV4cGVjdGVkLXBhcmVudC1kaXNjb25uZWN0ZWQiOwor IAorLWNvbnN0IGJhc2U6OmNoYXIxNiBrSW52YWxpZFVURjE2U3RyaW5nW10gPSB7MHhEQzAwLCAw eEQ4MDAsIDB4RDgwMCwgMHhERkZGLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhERkZGLCAweERCRkYsIDB9OworK2NvbnN0ZXhwciBiYXNlOjpjaGFyMTYg a0xvZ1N1ZmZpeFtdID0gTCJwcm9tcHQtaXBjLXRlc3QiOworK2NvbnN0ZXhwciBiYXNlOjpjaGFy MTYga0ludmFsaWRVVEYxNlN0cmluZ1tdID0gezB4REMwMCwgMHhEODAwLCAweEQ4MDAsIDB4REZG RiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweERG RkYsIDB4REJGRiwgMH07CisgY29uc3QgYmFzZTo6RmlsZVBhdGgga0ludmFsaWRGaWxlUGF0aChr SW52YWxpZFVURjE2U3RyaW5nKTsKKyBjb25zdCBiYXNlOjpGaWxlUGF0aCBrTm9uQVNDSUlGaWxl UGF0aChMIsOpw6nDoMOgw6fDpyIpOworIGNvbnN0IGJhc2U6OnN0cmluZzE2IGtJbnZhbGlkUmVn aXN0cnlLZXkoa0ludmFsaWRVVEYxNlN0cmluZyk7CitAQCAtNDIwLDggKzQyMiw3IEBAIGNsYXNz IE1vY2tDaHJvbWUgeworIGNsYXNzIENoaWxkUHJvY2VzcyB7CisgIHB1YmxpYzoKKyAgIENoaWxk UHJvY2VzcygpCistICAgICAgOiBzY29wcGVkX2xvZ2dpbmdfKAorLSAgICAgICAgICAgIHN0ZDo6 bWFrZV91bmlxdWU8U2NvcGVkTG9nZ2luZz4oaW50ZXJuYWw6OkdldExvZ1BhdGhTdWZmaXgoKSkp IHsKKysgICAgICA6IHNjb3BwZWRfbG9nZ2luZ18oc3RkOjptYWtlX3VuaXF1ZTxTY29wZWRMb2dn aW5nPihrTG9nU3VmZml4KSkgeworICAgICBtb2NrX2Nocm9tZV8gPSBzdGQ6Om1ha2VfdW5pcXVl PE1vY2tDaHJvbWU+KAorICAgICAgICAgRXh0cmFjdEhhbmRsZUZyb21Db21tYW5kTGluZShjaHJv bWVfY2xlYW5lcjo6a0Nocm9tZVJlYWRIYW5kbGVTd2l0Y2gpLAorICAgICAgICAgRXh0cmFjdEhh bmRsZUZyb21Db21tYW5kTGluZShjaHJvbWVfY2xlYW5lcjo6a0Nocm9tZVdyaXRlSGFuZGxlU3dp dGNoKSk7CitAQCAtNjMwLDcgKzYzMSwxMCBAQCBjbGFzcyBQYXJlbnRQcm9jZXNzIHsKKyAgIH0K KyAKKyAgIHZvaWQgUnVuKCkgeworLSAgICBBU1NFUlRfVFJVRShpbnRlcm5hbDo6RGVsZXRlQ2hp bGRQcm9jZXNzTG9ncygpKTsKKysgICAgLy8gRGVsZXRlIHRoZSBjaGlsZCBwcm9jZXNzIGxvZyBm aWxlIGlmIGV4aXN0aW5nLgorKyAgICBjb25zdCBiYXNlOjpGaWxlUGF0aCBsb2dfcGF0aCA9IFNj b3BlZExvZ2dpbmc6OkdldExvZ0ZpbGVQYXRoKGtMb2dTdWZmaXgpOworKyAgICBBU1NFUlRfVFJV RShiYXNlOjpEZWxldGVGaWxlKGxvZ19wYXRoLCBmYWxzZSkpCisrICAgICAgICA8PCAiQ2FuJ3Qg ZGVsZXRlIGxvZyBmaWxlIGZyb20gcHJldmlvdXMgcnVuOiAiIDw8IGxvZ19wYXRoLnZhbHVlKCk7 CisgCisgICAgIC8vIFBhc3MgdGhlIGNvbW1hbmQgdG8gdGhlIGNoaWxkIHByb2Nlc3MgYW5kIGxh dW5jaCB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgICAgYmFzZTo6UHJvY2VzcyBjaGlsZF9wcm9jZXNz ID0gYmFzZTo6U3Bhd25NdWx0aVByb2Nlc3NUZXN0Q2hpbGQoCitAQCAtNzAyLDcgKzcwNiw4IEBA IGNsYXNzIFBhcmVudFByb2Nlc3MgeworICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfZXhpdF9jb2Rl LCBydik7CisgCisgICAgIGlmICghc3VjY2VzcyB8fCBydiAhPSAwKSB7CistICAgICAgaW50ZXJu YWw6OlByaW50Q2hpbGRQcm9jZXNzTG9ncygpOworKyAgICAgIGludGVybmFsOjpQcmludENoaWxk UHJvY2Vzc0xvZ3MoCisrICAgICAgICAgIFNjb3BlZExvZ2dpbmc6OkdldExvZ0ZpbGVQYXRoKGtM b2dTdWZmaXgpKTsKKyAgICAgfQorICAgfQorIAorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVf Y2xlYW5lci9pcGMvc2FuZGJveC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvc2FuZGJv eC5jYworaW5kZXggMTU0YmQwNWM1MTA2Ni4uZmFmYWQ0ZjBjNjE4OCAxMDA2NDQKKy0tLSBhL2No cm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvc2FuZGJveC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9j bGVhbmVyL2lwYy9zYW5kYm94LmNjCitAQCAtMjgwLDggKzI4MCw5IEBAIFJlc3VsdENvZGUgU3Rh cnRTYW5kYm94VGFyZ2V0KGNvbnN0IGJhc2U6OkNvbW1hbmRMaW5lJiBzYW5kYm94X2NvbW1hbmRf bGluZSwKKyAgICAgICAmbGFzdF93aW5fZXJyb3IsICZ0ZW1wX3Byb2Nlc3NfaW5mbyk7CisgICBp ZiAoc2FuZGJveF9yZXN1bHQgIT0gc2FuZGJveDo6U0JPWF9BTExfT0spIHsKKyAgICAgTE9HKERG QVRBTCkgPDwgIkZhaWxlZCB0byBzcGF3biBzYW5kYm94IHRhcmdldDogIiA8PCBzYW5kYm94X3Jl c3VsdAorLSAgICAgICAgICAgICAgICA8PCAiICwgbGFzdCBzYW5kYm94IHdhcm5pbmcgOiAiIDw8 IGxhc3Rfc2JveF93YXJuaW5nCistICAgICAgICAgICAgICAgIDw8ICIgLCBsYXN0IHdpbmRvd3Mg ZXJyb3I6ICIgPDwgbGFzdF93aW5fZXJyb3I7CisrICAgICAgICAgICAgICAgIDw8ICIsIGxhc3Qg c2FuZGJveCB3YXJuaW5nOiAiIDw8IGxhc3Rfc2JveF93YXJuaW5nCisrICAgICAgICAgICAgICAg IDw8ICIsIGxhc3Qgd2luZG93cyBlcnJvcjogIgorKyAgICAgICAgICAgICAgICA8PCBsb2dnaW5n OjpTeXN0ZW1FcnJvckNvZGVUb1N0cmluZyhsYXN0X3dpbl9lcnJvcik7CisgICAgIHJldHVybiBS RVNVTFRfQ09ERV9GQUlMRURfVE9fU1RBUlRfU0FOREJPWF9QUk9DRVNTOworICAgfQorIApkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDMtdXBz dHJlYW1fbW92ZV9jaGlsZF9wcm9jZXNzX2xvZy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAzLXVwc3RyZWFtX21vdmVfY2hpbGRfcHJvY2Vz c19sb2cucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjUxOGI5NTVhMGIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS0wMDMtdXBzdHJlYW1fbW92ZV9jaGlsZF9wcm9jZXNzX2xvZy5wYXRj aC5wYXRjaApAQCAtMCwwICsxLDczMCBAQAorRnJvbSA3MjZjYmZjZmFhNTIxZTllNTA5ODgyOTE5 NWE3ZDlhOWMxOWNhMzkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9lIE1hc29u IDxqb2Vub3RjaGFybGVzQGdvb2dsZS5jb20+CitEYXRlOiBXZWQsIDQgRGVjIDIwMTkgMTg6MTU6 MzYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gTW92ZSBjaGlsZCBwcm9jZXNzIGxvZyBjYXB0dXJl IHRvIGEgQ2hpbGRQcm9jZXNzTG9nZ2VyIGNsYXNzLgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAorCitVcGRhdGUgY29tbWVudHMgdG8gY2xhcmlmeSBob3cgdGhlIGNoaWxkIHBy b2Nlc3MgbG9nIGludGVyYWN0cyB3aXRoCitTY29wZWRMb2dnaW5nLgorCitVc2UgdGhlIG5ldyBj bGFzcyB0byBjYXB0dXJlIGxvZ3MgaW4gY2xlYW5lcl90ZXN0LmNjLAorc2VjdXJlX2RsbF9sb2Fk aW5nX3Rlc3QuY2MgYW5kIHByb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjLgorCitS PeKAi3Byb2JlcmdlCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDA2MzYwMDIyOWZiN2Rj NDcyZmY2NjgzOWJhMjY1N2JmOTliOTg4NTApCisKK0J1ZzogMTAzMDMzMworQ2hhbmdlLUlkOiBJ ODhmNTM4ZmYzNjBiYjhlZDlkYTY3NDNkYzVkNmM0YjI2M2FmOTkyYworUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8x OTQ3OTg2CitDb21taXQtUXVldWU6IEpvZSBNYXNvbiA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5v cmc+CitSZXZpZXdlZC1ieTogcHJvYmVyZ2UgPHByb2JlcmdlQGNocm9taXVtLm9yZz4KK0NyLU9y aWdpbmFsLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3MjExODR9CitSZXZp ZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9t aXVtL3NyYy8rLzE5NDk2MzEKK1Jldmlld2VkLWJ5OiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNA Y2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy8zOTA0 QHsjOTE0fQorQ3ItQnJhbmNoZWQtRnJvbTogNjc1OTY4YThjNjU3YTNiZDljMWMyYzIwYzVkMjkz NTU3N2JiYzVlNi1yZWZzL2hlYWRzL21hc3RlckB7IzY5Mzk1NH0KKy0tLQorIGNocm9tZS9jaHJv bWVfY2xlYW5lci9pcGMvQlVJTEQuZ24gICAgICAgICAgICB8ICAxICsKKyBjaHJvbWUvY2hyb21l X2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MgICAgfCA5OCArKystLS0tLS0tLS0tLS0tLS0t CisgY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmggICAgIHwgMTcgKyst LQorIC4uLi9pcGMvcHJvdG9fY2hyb21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MgICB8IDI2ICsr Ky0tCisgY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvQlVJTEQuZ24gICAgICAgICAgIHwgIDMg KworIC4uLi90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmNjICAgICAgICAgICAgICB8IDkwICsr KysrKysrKysrKysrKysrCisgLi4uL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCAgICAgICAg ICAgICAgIHwgNjIgKysrKysrKysrKysrCisgY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2xl YW5lcl90ZXN0LmNjICAgIHwgMTQgKystCisgLi4uL3Rlc3Qvc2VjdXJlX2RsbF9sb2FkaW5nX3Rl c3QuY2MgICAgICAgICAgIHwgNTcgKystLS0tLS0tLS0KKyA5IGZpbGVzIGNoYW5nZWQsIDIwNyBp bnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGNocm9t ZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmNjCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IGNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2Vy LmgKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvQlVJTEQuZ24gYi9j aHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL0JVSUxELmduCitpbmRleCAwM2ZkZGZkODczNmUxLi40 ZDgxODAzYTI0ZGY2IDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9CVUlM RC5nbgorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9CVUlMRC5nbgorQEAgLTc3LDYg Kzc3LDcgQEAgc291cmNlX3NldCgiaXBjX3Rlc3RfdXRpbCIpIHsKKyAgICAgIi8vYmFzZS90ZXN0 OnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGM6c2FuZGJv eCIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9sb2dnaW5nOmNvbW1vbiIsCisrICAg ICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0OnRlc3RfdXRpbCIsCisgICAgICIvL21vam8v cHVibGljL2NwcC9zeXN0ZW0iLAorICAgICAiLy9zYW5kYm94L3dpbjpzYW5kYm94IiwKKyAgICAg Ii8vdGVzdGluZy9ndGVzdCIsCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lw Yy9pcGNfdGVzdF91dGlsLmNjIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91 dGlsLmNjCitpbmRleCAwZDAzYTY4NzBmYjA3Li5lYTJiYjIxNDViZmRkIDEwMDY0NAorLS0tIGEv Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjCisrKysgYi9jaHJvbWUv Y2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MKK0BAIC0xMiwxNCArMTIsMTAgQEAK KyAjaW5jbHVkZSAiYmFzZS9iaW5kX2hlbHBlcnMuaCIKKyAjaW5jbHVkZSAiYmFzZS9jb21tYW5k X2xpbmUuaCIKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3BhdGguaCIKKy0jaW5jbHVkZSAi YmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKy0jaW5jbHVkZSAiYmFzZS9maWxlcy9zY29wZWRfdGVt cF9kaXIuaCIKKyAjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisgI2luY2x1ZGUgImJhc2UvcHJv Y2Vzcy9sYXVuY2guaCIKKyAjaW5jbHVkZSAiYmFzZS9yYW5kX3V0aWwuaCIKKyAjaW5jbHVkZSAi YmFzZS9zdHJpbmdzL3N0cmluZ19udW1iZXJfY29udmVyc2lvbnMuaCIKKy0jaW5jbHVkZSAiYmFz ZS9zdHJpbmdzL3N0cmluZ19waWVjZS5oIgorLSNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5n X3NwbGl0LmgiCisgI2luY2x1ZGUgImJhc2UvdGVzdC9tdWx0aXByb2Nlc3NfdGVzdC5oIgorICNp bmNsdWRlICJiYXNlL3Rlc3QvdGVzdF90aW1lb3V0cy5oIgorICNpbmNsdWRlICJiYXNlL3dpbi93 aW5fdXRpbC5oIgorQEAgLTM0LDExICszMCw4IEBAIGNvbnN0ZXhwciBjaGFyIGtNb2pvUGlwZVRv a2VuU3dpdGNoW10gPSAibW9qby1waXBlLXRva2VuIjsKKyAKKyBjbGFzcyBNb2pvU2FuZGJveFNl dHVwSG9va3MgOiBwdWJsaWMgU2FuZGJveFNldHVwSG9va3MgeworICBwdWJsaWM6CistICBleHBs aWNpdCBNb2pvU2FuZGJveFNldHVwSG9va3MoCistICAgICAgU2FuZGJveGVkUGFyZW50UHJvY2Vz cyogcGFyZW50X3Byb2Nlc3MsCistICAgICAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRf c3Rkb3V0X3dyaXRlX2hhbmRsZSkKKy0gICAgICA6IHBhcmVudF9wcm9jZXNzXyhwYXJlbnRfcHJv Y2VzcyksCistICAgICAgICBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlXyhzdGQ6Om1vdmUoY2hp bGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkpIHt9CisrICBleHBsaWNpdCBNb2pvU2FuZGJveFNldHVw SG9va3MoU2FuZGJveGVkUGFyZW50UHJvY2VzcyogcGFyZW50X3Byb2Nlc3MpCisrICAgICAgOiBw YXJlbnRfcHJvY2Vzc18ocGFyZW50X3Byb2Nlc3MpIHt9CisgICB+TW9qb1NhbmRib3hTZXR1cEhv b2tzKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OworIAorICAgLy8gU2FuZGJveFNldHVwSG9va3MKK0BA IC01MCw4ICs0Myw3IEBAIGNsYXNzIE1vam9TYW5kYm94U2V0dXBIb29rcyA6IHB1YmxpYyBTYW5k Ym94U2V0dXBIb29rcyB7CisgICAgIHBhcmVudF9wcm9jZXNzXy0+Q3JlYXRlTW9qb1BpcGUoY29t bWFuZF9saW5lLCAmaGFuZGxlc190b19pbmhlcml0KTsKKyAgICAgZm9yIChIQU5ETEUgaGFuZGxl IDogaGFuZGxlc190b19pbmhlcml0KQorICAgICAgIHBvbGljeS0+QWRkSGFuZGxlVG9TaGFyZSho YW5kbGUpOworLSAgICBwb2xpY3ktPlNldFN0ZG91dEhhbmRsZShjaGlsZF9zdGRvdXRfd3JpdGVf aGFuZGxlXy5HZXQoKSk7CistICAgIHBvbGljeS0+U2V0U3RkZXJySGFuZGxlKGNoaWxkX3N0ZG91 dF93cml0ZV9oYW5kbGVfLkdldCgpKTsKKysgICAgcGFyZW50X3Byb2Nlc3NfLT5jaGlsZF9wcm9j ZXNzX2xvZ2dlcigpLlVwZGF0ZVNhbmRib3hQb2xpY3kocG9saWN5KTsKKyAgICAgcmV0dXJuIFJF U1VMVF9DT0RFX1NVQ0NFU1M7CisgICB9CisgCitAQCAtNjksMzggKzYxLDYgQEAgY2xhc3MgTW9q b1NhbmRib3hTZXR1cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAKKyB9ICAv LyBuYW1lc3BhY2UKKyAKKy1uYW1lc3BhY2UgaW50ZXJuYWwgeworLQorLXZvaWQgUHJpbnRDaGls ZFByb2Nlc3NMb2dzKGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBsb2dfcGF0aCkgeworLSAgaWYgKGxv Z19wYXRoLmVtcHR5KCkpIHsKKy0gICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzcyBsb2cg cGF0aCBpcyBlbXB0eSI7CistICAgIHJldHVybjsKKy0gIH0KKy0KKy0gIGlmICghYmFzZTo6UGF0 aEV4aXN0cyhsb2dfcGF0aCkpIHsKKy0gICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzcyBs b2cgZmlsZSBkb2Vzbid0IGV4aXN0IjsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgLy8gQ29s bGVjdCB0aGUgY2hpbGQgcHJvY2VzcyBsb2cgZmlsZSwgYW5kIGR1bXAgdGhlIGNvbnRlbnRzLCB0 byBoZWxwCistICAvLyBkZWJ1Z2dpbmcgZmFpbHVyZXMuCistICBzdGQ6OnN0cmluZyBsb2dfZmls ZV9jb250ZW50czsKKy0gIGlmICghYmFzZTo6UmVhZEZpbGVUb1N0cmluZyhsb2dfcGF0aCwgJmxv Z19maWxlX2NvbnRlbnRzKSkgeworLSAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBj aGlsZCBwcm9jZXNzIGxvZyBmaWxlIjsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgc3RkOjp2 ZWN0b3I8YmFzZTo6U3RyaW5nUGllY2U+IGxpbmVzID0KKy0gICAgICBiYXNlOjpTcGxpdFN0cmlu Z1BpZWNlKGxvZ19maWxlX2NvbnRlbnRzLCAiXG4iLCBiYXNlOjpUUklNX1dISVRFU1BBQ0UsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpTUExJVF9XQU5UX05PTkVNUFRZKTsK Ky0gIExPRyhFUlJPUikgPDwgIkR1bXBpbmcgY2hpbGQgcHJvY2VzcyBsb2dzIjsKKy0gIGZvciAo Y29uc3QgYXV0byYgbGluZSA6IGxpbmVzKSB7CistICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHBy b2Nlc3M6ICIgPDwgbGluZTsKKy0gIH0KKy19CistCistfSAgLy8gbmFtZXNwYWNlIGludGVybmFs CistCisgUGFyZW50UHJvY2Vzczo6UGFyZW50UHJvY2VzcyhzY29wZWRfcmVmcHRyPE1vam9UYXNr UnVubmVyPiBtb2pvX3Rhc2tfcnVubmVyKQorICAgICA6IGNvbW1hbmRfbGluZV8oYmFzZTo6R2V0 TXVsdGlQcm9jZXNzVGVzdENoaWxkQmFzZUNvbW1hbmRMaW5lKCkpLAorICAgICAgIG1vam9fdGFz a19ydW5uZXJfKG1vam9fdGFza19ydW5uZXIpIHt9CitAQCAtMTU4LDM2ICsxMTgsMTAgQEAgYm9v bCBQYXJlbnRQcm9jZXNzOjpMYXVuY2hDb25uZWN0ZWRDaGlsZFByb2Nlc3MoCisgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uLAorICAgICBiYXNlOjpUaW1lRGVsdGEg dGltZW91dCwKKyAgICAgaW50MzJfdCogZXhpdF9jb2RlKSB7CistICAvLyBBZGFwdGVkIGZyb20K Ky0gIC8vIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9zYW5kYm94L3dpbi9z cmMvaGFuZGxlX2luaGVyaXRhbmNlX3Rlc3QuY2MKKy0gIGJhc2U6OlNjb3BlZFRlbXBEaXIgdGVt cF9kaXI7CistICBpZiAoIXRlbXBfZGlyLkNyZWF0ZVVuaXF1ZVRlbXBEaXIoKSkgeworLSAgICBQ TE9HKEVSUk9SKSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0ZW1wIGRpciBmb3IgY2hpbGQgc3Rkb3V0 IjsKKysgIGlmICghY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkluaXRpYWxpemUoKSkKKyAgICAgcmV0 dXJuIGZhbHNlOworLSAgfQorLQorLSAgYmFzZTo6RmlsZVBhdGggdGVtcF9maWxlX25hbWU7Cist ICBpZiAoIUNyZWF0ZVRlbXBvcmFyeUZpbGVJbkRpcih0ZW1wX2Rpci5HZXRQYXRoKCksICZ0ZW1w X2ZpbGVfbmFtZSkpIHsKKy0gICAgUExPRyhFUlJPUikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVt cCBmaWxlIGZvciBjaGlsZCBzdGRvdXQiOworLSAgICByZXR1cm4gZmFsc2U7CistICB9CistCist ICBTRUNVUklUWV9BVFRSSUJVVEVTIGF0dHJzID0ge307CistICBhdHRycy5uTGVuZ3RoID0gc2l6 ZW9mKGF0dHJzKTsKKy0gIGF0dHJzLmJJbmhlcml0SGFuZGxlID0gdHJ1ZTsKKy0KKy0gIGJhc2U6 Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUoCistICAgICAgOjpD cmVhdGVGaWxlKHRlbXBfZmlsZV9uYW1lLnZhbHVlKCkuY19zdHIoKSwgR0VORVJJQ19XUklURSwK Ky0gICAgICAgICAgICAgICAgICAgRklMRV9TSEFSRV9XUklURSB8IEZJTEVfU0hBUkVfUkVBRCB8 IEZJTEVfU0hBUkVfREVMRVRFLAorLSAgICAgICAgICAgICAgICAgICAmYXR0cnMsIE9QRU5fRVhJ U1RJTkcsIDAsIG51bGxwdHIpKTsKKy0gIGlmICghY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZS5J c1ZhbGlkKCkpIHsKKy0gICAgUExPRyhFUlJPUikgPDwgIkNvdWxkIG5vdCBvcGVuIGNoaWxkIHN0 ZG91dCBmaWxlIjsKKy0gICAgcmV0dXJuIGZhbHNlOworLSAgfQorLQorLSAgaWYgKCFQcmVwYXJl QW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcyhjaGlsZF9tYWluX2Z1bmN0aW9uLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoY2hpbGRfc3Rkb3V0X3dy aXRlX2hhbmRsZSkpKSB7CistICAgIGludGVybmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3ModGVt cF9maWxlX25hbWUpOworKyAgaWYgKCFQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2Vzcyhj aGlsZF9tYWluX2Z1bmN0aW9uKSkgeworKyAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uRHVtcExv Z3MoKTsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorIAorQEAgLTIwMSwzMSArMTM1LDIyIEBA IGJvb2wgUGFyZW50UHJvY2Vzczo6TGF1bmNoQ29ubmVjdGVkQ2hpbGRQcm9jZXNzKAorICAgRGVz dHJveUltcGxPbklQQ1RocmVhZCgpOworIAorICAgaWYgKCFzdWNjZXNzIHx8ICpleGl0X2NvZGUg IT0gMCkgeworLSAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFByb2Nlc3NMb2dzKHRlbXBfZmlsZV9u YW1lKTsKKysgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7CisgICB9CisgCisg ICByZXR1cm4gc3VjY2VzczsKKyB9CisgCisgYm9vbCBQYXJlbnRQcm9jZXNzOjpQcmVwYXJlQW5k TGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21h aW5fZnVuY3Rpb24sCistICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93 cml0ZV9oYW5kbGUpIHsKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rp b24pIHsKKyAgIGJhc2U6OkxhdW5jaE9wdGlvbnMgbGF1bmNoX29wdGlvbnM7CisgICBsYXVuY2hf b3B0aW9ucy5oYW5kbGVzX3RvX2luaGVyaXQgPSBleHRyYV9oYW5kbGVzX3RvX2luaGVyaXRfOwor LSAgbGF1bmNoX29wdGlvbnMuaGFuZGxlc190b19pbmhlcml0LnB1c2hfYmFjayhjaGlsZF9zdGRv dXRfd3JpdGVfaGFuZGxlLkdldCgpKTsKKy0gIGxhdW5jaF9vcHRpb25zLnN0ZGluX2hhbmRsZSA9 IElOVkFMSURfSEFORExFX1ZBTFVFOworLSAgbGF1bmNoX29wdGlvbnMuc3Rkb3V0X2hhbmRsZSA9 IGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUuR2V0KCk7CistICBsYXVuY2hfb3B0aW9ucy5zdGRl cnJfaGFuZGxlID0gY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZS5HZXQoKTsKKy0KKysgIGNoaWxk X3Byb2Nlc3NfbG9nZ2VyXy5VcGRhdGVMYXVuY2hPcHRpb25zKCZsYXVuY2hfb3B0aW9ucyk7Cisg ICBDcmVhdGVNb2pvUGlwZSgmY29tbWFuZF9saW5lXywgJmxhdW5jaF9vcHRpb25zLmhhbmRsZXNf dG9faW5oZXJpdCk7CisgCisgICBiYXNlOjpQcm9jZXNzIGNoaWxkX3Byb2Nlc3MgPSBiYXNlOjpT cGF3bk11bHRpUHJvY2Vzc1Rlc3RDaGlsZCgKKyAgICAgICBjaGlsZF9tYWluX2Z1bmN0aW9uLCBj b21tYW5kX2xpbmVfLCBsYXVuY2hfb3B0aW9ucyk7CisgCistICAvLyBOb3cgdGhhdCBpdCdzIGJl ZW4gcGFzc2VkIHRvIHRoZSBjaGlsZCBwcm9jZXNzLAorLSAgLy8gfGNoaWxkX3N0ZG91dF93cml0 ZV9oYW5kbGV8IGNhbiBiZSBjbG9zZWQgaW4gdGhpcyBwcm9jZXNzIGFzIGl0IGdvZXMgb3V0Cist ICAvLyBvZiBzY29wZS4KKy0KKyAgIENvbm5lY3RNb2pvUGlwZShzdGQ6Om1vdmUoY2hpbGRfcHJv Y2VzcykpOworICAgcmV0dXJuIHRydWU7CisgfQorQEAgLTI1Nyw5ICsxODIsOCBAQCBTYW5kYm94 ZWRQYXJlbnRQcm9jZXNzOjpTYW5kYm94ZWRQYXJlbnRQcm9jZXNzKAorIFNhbmRib3hlZFBhcmVu dFByb2Nlc3M6On5TYW5kYm94ZWRQYXJlbnRQcm9jZXNzKCkge30KKyAKKyBib29sIFNhbmRib3hl ZFBhcmVudFByb2Nlc3M6OlByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKAorLSAgICBj b25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKy0gICAgYmFzZTo6d2luOjpT Y29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkgeworLSAgTW9qb1NhbmRib3hT ZXR1cEhvb2tzIGhvb2tzKHRoaXMsIHN0ZDo6bW92ZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxl KSk7CisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uKSB7CisrICBN b2pvU2FuZGJveFNldHVwSG9va3MgaG9va3ModGhpcyk7CisgCisgICAvLyBUaGlzIHN3aXRjaCB1 c2FnZSBpcyBjb3BpZWQgZnJvbSBTcGF3bk11bHRpUHJvY2Vzc1Rlc3RDaGlsZC4KKyAgIC8vCitk aWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmggYi9j aHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaAoraW5kZXggMWIyZTU1OThl ZDUyYS4uMTUyNmE0MjcwMTM1MyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9p cGMvaXBjX3Rlc3RfdXRpbC5oCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190 ZXN0X3V0aWwuaAorQEAgLTE0LDkgKzE0LDkgQEAKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL2xh dW5jaC5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvcHJvY2Vzcy5oIgorICNpbmNsdWRlICJi YXNlL3RpbWUvdGltZS5oIgorLSNpbmNsdWRlICJiYXNlL3dpbi9zY29wZWRfaGFuZGxlLmgiCisg I2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvY2hyb21lX3Byb21wdF9pcGMuaCIK KyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9tb2pvX3Rhc2tfcnVubmVyLmgi CisrI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9n Z2VyLmgiCisgI2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9wbGF0Zm9ybS9wbGF0Zm9ybV9jaGFu bmVsLmgiCisgI2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9zeXN0ZW0vaW52aXRhdGlvbi5oIgor ICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvc3lzdGVtL21lc3NhZ2VfcGlwZS5oIgorQEAgLTU4 LDYgKzU4LDEwIEBAIGNsYXNzIFBhcmVudFByb2Nlc3MgOiBwdWJsaWMgYmFzZTo6UmVmQ291bnRl ZFRocmVhZFNhZmU8UGFyZW50UHJvY2Vzcz4geworICAgICByZXR1cm4gZXh0cmFfaGFuZGxlc190 b19pbmhlcml0XzsKKyAgIH0KKyAKKysgIGNvbnN0IENoaWxkUHJvY2Vzc0xvZ2dlciYgY2hpbGRf cHJvY2Vzc19sb2dnZXIoKSBjb25zdCB7CisrICAgIHJldHVybiBjaGlsZF9wcm9jZXNzX2xvZ2dl cl87CisrICB9CisrCisgIHByb3RlY3RlZDoKKyAgIGZyaWVuZCBiYXNlOjpSZWZDb3VudGVkVGhy ZWFkU2FmZTxQYXJlbnRQcm9jZXNzPjsKKyAgIHZpcnR1YWwgflBhcmVudFByb2Nlc3MoKTsKK0BA IC03MCwxMyArNzQsMTMgQEAgY2xhc3MgUGFyZW50UHJvY2VzcyA6IHB1YmxpYyBiYXNlOjpSZWZD b3VudGVkVGhyZWFkU2FmZTxQYXJlbnRQcm9jZXNzPiB7CisgICAvLyBhcyBpbiB0aGUgc2FuZGJv eC4gU3ViY2xhc3NlcyBzaG91bGQgY2FsbCBDcmVhdGVNb2pvUGlwZSBiZWZvcmUgdGhlCisgICAv LyBzdWJwcm9jZXNzIGlzIHNwYXduZWQgYW5kIENvbm5lY3RNb2pvUGlwZSBhZnRlcndhcmQuCisg ICB2aXJ0dWFsIGJvb2wgUHJlcGFyZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCistICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24sCistICAgICAgYmFzZTo6d2lu OjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSk7CisrICAgICAgY29uc3Qg c3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24pOworIAorICAgc2NvcGVkX3JlZnB0cjxN b2pvVGFza1J1bm5lcj4gbW9qb190YXNrX3J1bm5lcigpOworIAorICAgYmFzZTo6Q29tbWFuZExp bmUgY29tbWFuZF9saW5lXzsKKyAgIGJhc2U6OkhhbmRsZXNUb0luaGVyaXRWZWN0b3IgZXh0cmFf aGFuZGxlc190b19pbmhlcml0XzsKKysgIENoaWxkUHJvY2Vzc0xvZ2dlciBjaGlsZF9wcm9jZXNz X2xvZ2dlcl87CisgCisgIHByaXZhdGU6CisgICBzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVubmVy PiBtb2pvX3Rhc2tfcnVubmVyXzsKK0BAIC05Niw4ICsxMDAsNyBAQCBjbGFzcyBTYW5kYm94ZWRQ YXJlbnRQcm9jZXNzIDogcHVibGljIFBhcmVudFByb2Nlc3MgeworICAgflNhbmRib3hlZFBhcmVu dFByb2Nlc3MoKSBvdmVycmlkZTsKKyAKKyAgIGJvb2wgUHJlcGFyZUFuZExhdW5jaFRlc3RDaGls ZFByb2Nlc3MoCistICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24s CistICAgICAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRs ZSkgb3ZlcnJpZGU7CisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rp b24pIG92ZXJyaWRlOworIH07CisgCisgY2xhc3MgQ2hpbGRQcm9jZXNzIDogcHVibGljIGJhc2U6 OlJlZkNvdW50ZWRUaHJlYWRTYWZlPENoaWxkUHJvY2Vzcz4geworQEAgLTE0MywxMCArMTQ2LDYg QEAgY2xhc3MgQ2hyb21lUHJvbXB0SVBDVGVzdEVycm9ySGFuZGxlciA6IHB1YmxpYyBDaHJvbWVQ cm9tcHRJUEM6OkVycm9ySGFuZGxlciB7CisgICBiYXNlOjpPbmNlQ2xvc3VyZSBvbl9jbG9zZWRf YWZ0ZXJfZG9uZV87CisgfTsKKyAKKy1uYW1lc3BhY2UgaW50ZXJuYWwgeworLXZvaWQgUHJpbnRD aGlsZFByb2Nlc3NMb2dzKGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBsb2dfZmlsZSk7CistfSAgLy8g bmFtZXNwYWNlIGludGVybmFsCistCisgfSAgLy8gbmFtZXNwYWNlIGNocm9tZV9jbGVhbmVyCisg CisgI2VuZGlmICAvLyBDSFJPTUVfQ0hST01FX0NMRUFORVJfSVBDX0lQQ19URVNUX1VUSUxfSF8K K2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9t cHRfaXBjX3VuaXR0ZXN0LmNjIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJv bWVfcHJvbXB0X2lwY191bml0dGVzdC5jYworaW5kZXggZjg2N2RmNThmOTZlYS4uZTNjZTJhYjZj MjdmZSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9fY2hyb21l X3Byb21wdF9pcGNfdW5pdHRlc3QuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMv cHJvdG9fY2hyb21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MKK0BAIC01LDcgKzUsNiBAQAorICNp bmNsdWRlIDx3aW5kb3dzLmg+CisgCisgI2luY2x1ZGUgImJhc2UvY29tbWFuZF9saW5lLmgiCist I2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV91dGlsLmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vz cy9wcm9jZXNzLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJjYXQuaCIKKyAjaW5jbHVk ZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19udW1iZXJfY29udmVyc2lvbnMuaCIKK0BAIC0xOSw3ICsx OCw3IEBACisgI2luY2x1ZGUgImJhc2Uvd2luL3dpbl91dGlsLmgiCisgI2luY2x1ZGUgImNocm9t ZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5oIgorICNpbmNsdWRlICJjaHJvbWUv Y2hyb21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjLmgiCistI2luY2x1ZGUg ImNocm9tZS9jaHJvbWVfY2xlYW5lci9sb2dnaW5nL3Njb3BlZF9sb2dnaW5nLmgiCisrI2luY2x1 ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisg I2luY2x1ZGUgImNvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvcHVibGljL2NvbnN0YW50cy9jb25z dGFudHMuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9jaHJvbWVfY2xlYW5lci9wdWJsaWMvcHJv dG8vY2hyb21lX3Byb21wdC5wYi5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2Nocm9tZV9jbGVh bmVyL3B1YmxpYy9wcm90by9jaHJvbWVfcHJvbXB0X2Zvcl90ZXN0cy5wYi5oIgorQEAgLTQyLDcg KzQxLDYgQEAgY29uc3RleHByIGNoYXIga0V4cGVjdGVkUHJvbXB0UmVzdWx0U3dpdGNoW10gPSAi ZXhwZWN0ZWQtcHJvbXB0LXJlc3VsdCI7CisgY29uc3RleHByIGNoYXIga0V4cGVjdGVkQ2hyb21l RGlzY29ubmVjdFBvaW50U3dpdGNoW10gPQorICAgICAiZXhwZWN0ZWQtcGFyZW50LWRpc2Nvbm5l Y3RlZCI7CisgCistY29uc3RleHByIGJhc2U6OmNoYXIxNiBrTG9nU3VmZml4W10gPSBMInByb21w dC1pcGMtdGVzdCI7CisgY29uc3RleHByIGJhc2U6OmNoYXIxNiBrSW52YWxpZFVURjE2U3RyaW5n W10gPSB7MHhEQzAwLCAweEQ4MDAsIDB4RDgwMCwgMHhERkZGLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4REZGRiwgMHhEQkZGLCAwfTsKKyBjb25z dCBiYXNlOjpGaWxlUGF0aCBrSW52YWxpZEZpbGVQYXRoKGtJbnZhbGlkVVRGMTZTdHJpbmcpOwor QEAgLTQyMSw4ICs0MTksNyBAQCBjbGFzcyBNb2NrQ2hyb21lIHsKKyAvLyBHdGVzdCB0byBsb2cu CisgY2xhc3MgQ2hpbGRQcm9jZXNzIHsKKyAgcHVibGljOgorLSAgQ2hpbGRQcm9jZXNzKCkKKy0g ICAgICA6IHNjb3BwZWRfbG9nZ2luZ18oc3RkOjptYWtlX3VuaXF1ZTxTY29wZWRMb2dnaW5nPihr TG9nU3VmZml4KSkgeworKyAgQ2hpbGRQcm9jZXNzKCkgeworICAgICBtb2NrX2Nocm9tZV8gPSBz dGQ6Om1ha2VfdW5pcXVlPE1vY2tDaHJvbWU+KAorICAgICAgICAgRXh0cmFjdEhhbmRsZUZyb21D b21tYW5kTGluZShjaHJvbWVfY2xlYW5lcjo6a0Nocm9tZVJlYWRIYW5kbGVTd2l0Y2gpLAorICAg ICAgICAgRXh0cmFjdEhhbmRsZUZyb21Db21tYW5kTGluZShjaHJvbWVfY2xlYW5lcjo6a0Nocm9t ZVdyaXRlSGFuZGxlU3dpdGNoKSk7CitAQCAtNTcxLDcgKzU2OCw2IEBAIGNsYXNzIENoaWxkUHJv Y2VzcyB7CisgCisgIHByaXZhdGU6CisgICBzdGQ6OnVuaXF1ZV9wdHI8TW9ja0Nocm9tZT4gbW9j a19jaHJvbWVfOworLSAgc3RkOjp1bmlxdWVfcHRyPFNjb3BlZExvZ2dpbmc+IHNjb3BwZWRfbG9n Z2luZ187CisgCisgICBDaHJvbWVEaXNjb25uZWN0UG9pbnQgZXhwZWN0ZWRfZGlzY29ubmVjdF9w b2ludF8gPQorICAgICAgIENocm9tZURpc2Nvbm5lY3RQb2ludDo6a1Vuc3BlY2lmaWVkOworQEAg LTYwMyw2ICs1OTksOSBAQCBjbGFzcyBQcm90b0Nocm9tZVByb21wdElQQ1Rlc3QKKyBjbGFzcyBQ YXJlbnRQcm9jZXNzIHsKKyAgcHVibGljOgorICAgYm9vbCBJbml0aWFsaXplKCkgeworKyAgICBp ZiAoIWNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5Jbml0aWFsaXplKCkpCisrICAgICAgcmV0dXJuIGZh bHNlOworKworICAgICAvLyBJbmplY3QgdGhlIGZsYWdzIHJlbGF0ZWQgdG8gdGhlIHRoZSBjb25m aWcgaW4gdGhlIGNvbW1hbmQgbGluZS4KKyAgICAgdGVzdF9jb25maWdfLkVuaGFuY2VDb21tYW5k TGluZSgmY29tbWFuZF9saW5lXyk7CisgCitAQCAtNjMxLDE0ICs2MzAsMTMgQEAgY2xhc3MgUGFy ZW50UHJvY2VzcyB7CisgICB9CisgCisgICB2b2lkIFJ1bigpIHsKKy0gICAgLy8gRGVsZXRlIHRo ZSBjaGlsZCBwcm9jZXNzIGxvZyBmaWxlIGlmIGV4aXN0aW5nLgorLSAgICBjb25zdCBiYXNlOjpG aWxlUGF0aCBsb2dfcGF0aCA9IFNjb3BlZExvZ2dpbmc6OkdldExvZ0ZpbGVQYXRoKGtMb2dTdWZm aXgpOworLSAgICBBU1NFUlRfVFJVRShiYXNlOjpEZWxldGVGaWxlKGxvZ19wYXRoLCBmYWxzZSkp CistICAgICAgICA8PCAiQ2FuJ3QgZGVsZXRlIGxvZyBmaWxlIGZyb20gcHJldmlvdXMgcnVuOiAi IDw8IGxvZ19wYXRoLnZhbHVlKCk7CisrICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5VcGRhdGVM YXVuY2hPcHRpb25zKCZsYXVuY2hfb3B0aW9uc18pOworIAorICAgICAvLyBQYXNzIHRoZSBjb21t YW5kIHRvIHRoZSBjaGlsZCBwcm9jZXNzIGFuZCBsYXVuY2ggdGhlIGNoaWxkIHByb2Nlc3MuCisg ICAgIGJhc2U6OlByb2Nlc3MgY2hpbGRfcHJvY2VzcyA9IGJhc2U6OlNwYXduTXVsdGlQcm9jZXNz VGVzdENoaWxkKAorICAgICAgICAgIlByb3RvQ2hyb21lUHJvbXB0SVBDQ2xpZW50TWFpbiIsIGNv bW1hbmRfbGluZV8sIGxhdW5jaF9vcHRpb25zXyk7CisrICAgIGlmICghY2hpbGRfcHJvY2Vzcy5J c1J1bm5pbmcoKSkKKysgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uRHVtcExvZ3MoKTsKKyAg ICAgQVNTRVJUX1RSVUUoY2hpbGRfcHJvY2Vzcy5Jc1J1bm5pbmcoKSk7CisgCisgICAgIC8vIENs b3NlIG91ciByZWZlcmVuY2VzIHRvIHRoZSBoYW5kbGVzIGFzIHRoZXkgYXJlIG5vdyBoYW5kbGVk IGJ5IHRoZSBjaGlsZAorQEAgLTcwNSwxMCArNzAzLDggQEAgY2xhc3MgUGFyZW50UHJvY2VzcyB7 CisgCisgICAgIEVYUEVDVF9FUShleHBlY3RlZF9leGl0X2NvZGUsIHJ2KTsKKyAKKy0gICAgaWYg KCFzdWNjZXNzIHx8IHJ2ICE9IDApIHsKKy0gICAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFByb2Nl c3NMb2dzKAorLSAgICAgICAgICBTY29wZWRMb2dnaW5nOjpHZXRMb2dGaWxlUGF0aChrTG9nU3Vm Zml4KSk7CistICAgIH0KKysgICAgaWYgKCFzdWNjZXNzIHx8IHJ2ICE9IDApCisrICAgICAgY2hp bGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7CisgICB9CisgCisgICBUZXN0Q29uZmlnJiBH ZXRUZXN0Q29uZmlnKCkgeyByZXR1cm4gdGVzdF9jb25maWdfOyB9CitAQCAtNzMyLDYgKzcyOCw4 IEBAIGNsYXNzIFBhcmVudFByb2Nlc3MgeworICAgLy8gQmxvY2tzIHVudGlsIHdlIHJlY2VpdmUg dGhlIHJlc3BvbnNlIGZyb20gQ2hyb21lIG9yIGFuIGVycm9yIG9jY3Vycy4KKyAgIGJhc2U6OlJ1 bkxvb3AgbWFpbl9ydW5sb29wXzsKKyAgIGJvb2wgZXJyb3Jfb2NjdXJyZWRfID0gZmFsc2U7Cisr CisrICBDaGlsZFByb2Nlc3NMb2dnZXIgY2hpbGRfcHJvY2Vzc19sb2dnZXJfOworIH07CisgCisg Ly8gVGhpcyBjb250YWlucyBjYWxscyB0byB0aGUgY2hyb21lX2NsZWFuZXJfaXBjIGltcGxlbWVu dGF0aW9uLgorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L0JVSUxELmdu IGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvQlVJTEQuZ24KK2luZGV4IDExODQ1NGMyYmRj ZDIuLjRiMDUzZmRjYWYxODIgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVz dC9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvQlVJTEQuZ24KK0BA IC0xNDgsNiArMTQ4LDggQEAgc291cmNlX3NldCgidGVzdF91dGlsIikgeworICAgdGVzdG9ubHkg PSB0cnVlCisgCisgICBzb3VyY2VzID0gWworKyAgICAiY2hpbGRfcHJvY2Vzc19sb2dnZXIuY2Mi LAorKyAgICAiY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIsCisgICAgICJmaWxlX3JlbW92ZXJfdGVz dF91dGlsLmNjIiwKKyAgICAgImZpbGVfcmVtb3Zlcl90ZXN0X3V0aWwuaCIsCisgICAgICJyZWJv b3RfZGVsZXRpb25faGVscGVyLmNjIiwKK0BAIC0yMjgsNiArMjMwLDcgQEAgc291cmNlX3NldCgi aW50ZWdyYXRpb25fdGVzdF9zb3VyY2VzIikgeworICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFu ZXIvb3M6Y29tbW9uX29zIiwKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL3B1cF9kYXRh OnB1cF9kYXRhX2Jhc2UiLAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcHVwX2RhdGE6 dGVzdF91d3MiLAorKyAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdDp0ZXN0X3V0aWwi LAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvemlwX2FyY2hpdmVyOmNvbW1vbiIsCisg ICAgICIvL2NvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvcHVibGljL2NvbnN0YW50cyIsCisgICAg ICIvL2NvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvdGVzdDp0ZXN0X25hbWVfaGVscGVyIiwKK2Rp ZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dl ci5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmNj CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwMC4uOWY0ODM2MjY3YWVh NgorLS0tIC9kZXYvbnVsbAorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hpbGRf cHJvY2Vzc19sb2dnZXIuY2MKK0BAIC0wLDAgKzEsOTAgQEAKKysvLyBDb3B5cmlnaHQgMjAxOSBU aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhp cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2Fu IGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiY2hyb21l L2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIKKysKKysjaW5jbHVk ZSA8dmVjdG9yPgorKworKyNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVfdXRpbC5oIgorKyNpbmNs dWRlICJiYXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19waWVj ZS5oIgorKyNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0LmgiCisrCisrbmFtZXNw YWNlIGNocm9tZV9jbGVhbmVyIHsKKysKKytDaGlsZFByb2Nlc3NMb2dnZXI6OkNoaWxkUHJvY2Vz c0xvZ2dlcigpID0gZGVmYXVsdDsKKysKKytDaGlsZFByb2Nlc3NMb2dnZXI6On5DaGlsZFByb2Nl c3NMb2dnZXIoKSA9IGRlZmF1bHQ7CisrCisrYm9vbCBDaGlsZFByb2Nlc3NMb2dnZXI6OkluaXRp YWxpemUoKSB7CisrICAvLyBBZGFwdGVkIGZyb20KKysgIC8vIGh0dHBzOi8vY3MuY2hyb21pdW0u b3JnL2Nocm9taXVtL3NyYy9zYW5kYm94L3dpbi9zcmMvaGFuZGxlX2luaGVyaXRhbmNlX3Rlc3Qu Y2MKKysgIGlmICghdGVtcF9kaXJfLkNyZWF0ZVVuaXF1ZVRlbXBEaXIoKSkgeworKyAgICBQTE9H KEVSUk9SKSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0ZW1wIGRpciBmb3IgY2hpbGQgc3Rkb3V0IjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgaWYgKCFDcmVhdGVUZW1wb3JhcnlGaWxl SW5EaXIodGVtcF9kaXJfLkdldFBhdGgoKSwgJnRlbXBfZmlsZV9uYW1lXykpIHsKKysgICAgUExP RyhFUlJPUikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlIGZvciBjaGlsZCBzdGRvdXQi OworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBTRUNVUklUWV9BVFRSSUJVVEVTIGF0 dHJzID0ge307CisrICBhdHRycy5uTGVuZ3RoID0gc2l6ZW9mKGF0dHJzKTsKKysgIGF0dHJzLmJJ bmhlcml0SGFuZGxlID0gdHJ1ZTsKKysKKysgIGNoaWxkX3N0ZG91dF9oYW5kbGVfLlNldCgKKysg ICAgICA6OkNyZWF0ZUZpbGUodGVtcF9maWxlX25hbWVfLnZhbHVlKCkuY19zdHIoKSwgR0VORVJJ Q19XUklURSwKKysgICAgICAgICAgICAgICAgICAgRklMRV9TSEFSRV9XUklURSB8IEZJTEVfU0hB UkVfUkVBRCB8IEZJTEVfU0hBUkVfREVMRVRFLAorKyAgICAgICAgICAgICAgICAgICAmYXR0cnMs IE9QRU5fRVhJU1RJTkcsIDAsIG51bGxwdHIpKTsKKysgIGlmICghY2hpbGRfc3Rkb3V0X2hhbmRs ZV8uSXNWYWxpZCgpKSB7CisrICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3Qgb3BlbiBjaGls ZCBzdGRvdXQgZmlsZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIHJldHVybiB0 cnVlOworK30KKysKKyt2b2lkIENoaWxkUHJvY2Vzc0xvZ2dlcjo6VXBkYXRlTGF1bmNoT3B0aW9u cygKKysgICAgYmFzZTo6TGF1bmNoT3B0aW9ucyogb3B0aW9ucykgY29uc3QgeworKyAgRENIRUNL KGNoaWxkX3N0ZG91dF9oYW5kbGVfLklzVmFsaWQoKSk7CisrICBvcHRpb25zLT5oYW5kbGVzX3Rv X2luaGVyaXQucHVzaF9iYWNrKGNoaWxkX3N0ZG91dF9oYW5kbGVfLkdldCgpKTsKKysgIG9wdGlv bnMtPnN0ZGluX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOworKyAgb3B0aW9ucy0+c3Rk b3V0X2hhbmRsZSA9IGNoaWxkX3N0ZG91dF9oYW5kbGVfLkdldCgpOworKyAgb3B0aW9ucy0+c3Rk ZXJyX2hhbmRsZSA9IGNoaWxkX3N0ZG91dF9oYW5kbGVfLkdldCgpOworK30KKysKKyt2b2lkIENo aWxkUHJvY2Vzc0xvZ2dlcjo6VXBkYXRlU2FuZGJveFBvbGljeSgKKysgICAgc2FuZGJveDo6VGFy Z2V0UG9saWN5KiBwb2xpY3kpIGNvbnN0IHsKKysgIERDSEVDSyhjaGlsZF9zdGRvdXRfaGFuZGxl Xy5Jc1ZhbGlkKCkpOworKyAgcG9saWN5LT5TZXRTdGRvdXRIYW5kbGUoY2hpbGRfc3Rkb3V0X2hh bmRsZV8uR2V0KCkpOworKyAgcG9saWN5LT5TZXRTdGRlcnJIYW5kbGUoY2hpbGRfc3Rkb3V0X2hh bmRsZV8uR2V0KCkpOworK30KKysKKyt2b2lkIENoaWxkUHJvY2Vzc0xvZ2dlcjo6RHVtcExvZ3Mo KSBjb25zdCB7CisrICBEQ0hFQ0soIXRlbXBfZmlsZV9uYW1lXy5lbXB0eSgpKTsKKysKKysgIGlm ICghYmFzZTo6UGF0aEV4aXN0cyh0ZW1wX2ZpbGVfbmFtZV8pKSB7CisrICAgIExPRyhFUlJPUikg PDwgIkNoaWxkIHByb2Nlc3MgbG9nIGZpbGUgZG9lc24ndCBleGlzdCI7CisrICAgIHJldHVybjsK KysgIH0KKysKKysgIC8vIENvbGxlY3QgdGhlIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUsIGFuZCBk dW1wIHRoZSBjb250ZW50cywgdG8gaGVscAorKyAgLy8gZGVidWdnaW5nIGZhaWx1cmVzLgorKyAg c3RkOjpzdHJpbmcgbG9nX2ZpbGVfY29udGVudHM7CisrICBpZiAoIWJhc2U6OlJlYWRGaWxlVG9T dHJpbmcodGVtcF9maWxlX25hbWVfLCAmbG9nX2ZpbGVfY29udGVudHMpKSB7CisrICAgIExPRyhF UlJPUikgPDwgIkZhaWxlZCB0byByZWFkIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUiOworKyAgICBy ZXR1cm47CisrICB9CisrCisrICBzdGQ6OnZlY3RvcjxiYXNlOjpTdHJpbmdQaWVjZT4gbGluZXMg PQorKyAgICAgIGJhc2U6OlNwbGl0U3RyaW5nUGllY2UobG9nX2ZpbGVfY29udGVudHMsICJcbiIs IGJhc2U6OlRSSU1fV0hJVEVTUEFDRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh c2U6OlNQTElUX1dBTlRfTk9ORU1QVFkpOworKyAgTE9HKEVSUk9SKSA8PCAiRHVtcGluZyBjaGls ZCBwcm9jZXNzIGxvZ3MiOworKyAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDogbGluZXMpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzczogIiA8PCBsaW5lOworKyAgfQorK30KKysK Kyt9ICAvLyBuYW1lc3BhY2UgY2hyb21lX2NsZWFuZXIKK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hy b21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5oIGIvY2hyb21lL2Nocm9tZV9j bGVhbmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAwMDAuLjIxNWZhOTExZDc4OTkKKy0tLSAvZGV2L251bGwKKysrKyBi L2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgKK0BAIC0w LDAgKzEsNjIgQEAKKysvLyBDb3B5cmlnaHQgMjAxOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIENIUk9NRV9DSFJPTUVfQ0xFQU5FUl9URVNUX0NISUxE X1BST0NFU1NfTE9HR0VSX0hfCisrI2RlZmluZSBDSFJPTUVfQ0hST01FX0NMRUFORVJfVEVTVF9D SElMRF9QUk9DRVNTX0xPR0dFUl9IXworKworKyNpbmNsdWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90 ZW1wX2Rpci5oIgorKyNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvbGF1bmNoLmgiCisrI2luY2x1ZGUg ImJhc2Uvd2luL3Njb3BlZF9oYW5kbGUuaCIKKysjaW5jbHVkZSAic2FuZGJveC93aW4vc3JjL3Nh bmRib3hfcG9saWN5LmgiCisrCisrbmFtZXNwYWNlIGNocm9tZV9jbGVhbmVyIHsKKysKKysvLyBS ZWRpcmVjdHMgc3RkaW4gYW5kIHN0ZG91dCBvZiBhIGNoaWxkIHByb2Nlc3MgdG8gYSB0ZW1wIGZp bGUuIFRlc3RzIHRoYXQKKysvLyBzcGF3biBjaGlsZHJlbiBjYW4gYWRkIHRoZSBjb250ZW50cyBv ZiB0aGUgdGVtcCBmaWxlIHRvIHRoZSB0ZXN0IG91dHB1dC4KKysvLworKy8vIE5vdGUgdGhhdCBp ZiB0aGUgY2hpbGQgcHJvY2VzcyBzZXRzIHVwIFNjb3BlZExvZ2dpbmcsIEVSUk9SIGFuZCBGQVRB TCBsZXZlbAorKy8vIGxvZ3Mgd2lsbCBzdGlsbCBiZSBjYXB0dXJlZCBieSB0aGlzLCBidXQgb3Ro ZXIgbG9ncyB3aWxsIHN0YXJ0IGdvaW5nIHRvIHRoZQorKy8vIFNjb3BlZExvZ2dpbmcgbG9nIGZp bGUuIHRlc3RfbWFpbi5jYyBzZXRzIHVwIFNjb3BlZExvZ2dpbmcgc28gdXN1YWxseSB0aGlzCisr Ly8gY2xhc3Mgd2lsbCBjYXB0dXJlOgorKy8vCisrLy8gMS4gQWxsIGxvZyBsaW5lcyBmcm9tIGJl Zm9yZSB0aGUgU2NvcGVkTG9nZ2luZyBjb25zdHJ1Y3Rvci4KKysvLyAyLiBFUlJPUiBhbmQgRkFU QUwgbG9nIGxpbmVzIGZyb20gYWZ0ZXIgdGhhdC4KKysvLyAzLiBzdGRvdXQgYW5kIHN0ZGVyciBv dXRwdXQgdGhhdCBkb2Vzbid0IGdvIHRocm91Z2ggdGhlIGxvZ2dpbmcgc3lzdGVtLgorKy8vIDQu IFN0YWNrIHRyYWNlcyBmcm9tIGFueSBjcmFzaGVzLgorKy8vCisrLy8gVGhpcyBzaG91bGQgYmUg YWxsIHRoYXQncyBuZWVkZWQgdG8gZGlhZ25vc2UgZXJyb3JzIGluIHRlc3RzLgorK2NsYXNzIENo aWxkUHJvY2Vzc0xvZ2dlciB7CisrIHB1YmxpYzoKKysgIENoaWxkUHJvY2Vzc0xvZ2dlcigpOwor KyAgfkNoaWxkUHJvY2Vzc0xvZ2dlcigpOworKworKyAgLy8gQ3JlYXRlcyBhIHRlbXAgZmlsZSBm b3IgY2hpbGQgcHJvY2Vzc2VzIHRvIGxvZyB0by4gTG9ncyBhbiBlcnJvciBhbmQKKysgIC8vIHJl dHVybnMgZmFsc2Ugb24gZmFpbHVyZS4KKysgIGJvb2wgSW5pdGlhbGl6ZSgpOworKworKyAgLy8g VXBkYXRlcyB8b3B0aW9uc3wgdG8gZGlyZWN0IHRoZSBjaGlsZCBzdGRvdXQgYW5kIHN0ZGVyciB0 byB0aGUgdGVtcCBmaWxlLgorKyAgLy8gRm9yIHVzZSB3aXRoIGJhc2U6OkxhdW5jaFByb2Nlc3Mg YW5kIGJhc2U6OlNwYXduTXVsdGlQcm9jZXNzVGVzdENoaWxkLgorKyAgdm9pZCBVcGRhdGVMYXVu Y2hPcHRpb25zKGJhc2U6OkxhdW5jaE9wdGlvbnMqIG9wdGlvbnMpIGNvbnN0OworKworKyAgLy8g VXBkYXRlcyB8cG9saWN5fCB0byBkaXJlY3QgdGhlIGNoaWxkIHN0ZG91dCBhbmQgc3RkZXJyIHRv IHRoZSB0ZW1wIGZpbGUuCisrICAvLyBGb3IgdXNlIHdpdGggc2FuZGJveDo6QnJva2VyU2Vydmlj ZXM6OlNwYXduVGFyZ2V0LgorKyAgdm9pZCBVcGRhdGVTYW5kYm94UG9saWN5KHNhbmRib3g6OlRh cmdldFBvbGljeSogcG9saWN5KSBjb25zdDsKKysKKysgIC8vIFdyaXRlcyBldmVyeSBsaW5lIGlu IHRoZSB0ZW1wIGZpbGUgdXNpbmcgTE9HKEVSUk9SKSBzbyB0aGF0IGFsbCBsaW5lcyBhcmUKKysg IC8vIGNhcHR1cmVkIGluIHRoZSB0ZXN0IHN1aXRlIG91dHB1dC4gVGhlIGNsYXNzLWxldmVsIGNv bW1lbnQgYWJvdmUgZGVzY3JpYmVzCisrICAvLyB3aGljaCBsb2cgbGluZXMgZnJvbSB0aGUgY2hp bGQgd2lsbCBiZSBjYXB0dXJlZC4KKysgIHZvaWQgRHVtcExvZ3MoKSBjb25zdDsKKysKKysgcHJp dmF0ZToKKysgIENoaWxkUHJvY2Vzc0xvZ2dlcihjb25zdCBDaGlsZFByb2Nlc3NMb2dnZXImIG90 aGVyKSA9IGRlbGV0ZTsKKysgIENoaWxkUHJvY2Vzc0xvZ2dlciYgb3BlcmF0b3I9KGNvbnN0IENo aWxkUHJvY2Vzc0xvZ2dlciYgb3RoZXIpID0gZGVsZXRlOworKworKyAgYmFzZTo6U2NvcGVkVGVt cERpciB0ZW1wX2Rpcl87CisrICBiYXNlOjpGaWxlUGF0aCB0ZW1wX2ZpbGVfbmFtZV87CisrICBi YXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfaGFuZGxlXzsKKyt9OworKworK30g IC8vIG5hbWVzcGFjZSBjaHJvbWVfY2xlYW5lcgorKworKyNlbmRpZiAgLy8gQ0hST01FX0NIUk9N RV9DTEVBTkVSX1RFU1RfQ0hJTERfUFJPQ0VTU19MT0dHRVJfSF8KK2RpZmYgLS1naXQgYS9jaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jbGVhbmVyX3Rlc3QuY2MgYi9jaHJvbWUvY2hyb21lX2Ns ZWFuZXIvdGVzdC9jbGVhbmVyX3Rlc3QuY2MKK2luZGV4IGQ2ZGYxN2UzNTE2ZjEuLmY3NzgxMDNi ZmRhZDMgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jbGVhbmVyX3Rl c3QuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NsZWFuZXJfdGVzdC5jYwor QEAgLTI0LDYgKzI0LDcgQEAKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL29zL3By ZV9mZXRjaGVkX3BhdGhzLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9wdXBf ZGF0YS9wdXBfZGF0YS5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvcHVwX2Rh dGEvdGVzdF91d3MuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hp bGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rl c3QvdGVzdF91dGlsLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci96aXBfYXJj aGl2ZXIvc2FuZGJveGVkX3ppcF9hcmNoaXZlci5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2No cm9tZV9jbGVhbmVyL3B1YmxpYy9jb25zdGFudHMvY29uc3RhbnRzLmgiCitAQCAtMzExLDggKzMx MiwxNCBAQCBjbGFzcyBDbGVhbmVyVGVzdAorIAorICAgdm9pZCBFeHBlY3RFeGl0Q29kZShjb25z dCBiYXNlOjpDb21tYW5kTGluZSYgY29tbWFuZF9saW5lLAorICAgICAgICAgICAgICAgICAgICAg ICBpbnQgZXhwZWN0ZWRfZXhpdF9jb2RlKSB7CistICAgIGJhc2U6OlByb2Nlc3MgcHJvY2VzcygK Ky0gICAgICAgIGJhc2U6OkxhdW5jaFByb2Nlc3MoY29tbWFuZF9saW5lLCBiYXNlOjpMYXVuY2hP cHRpb25zKCkpKTsKKysgICAgY2hyb21lX2NsZWFuZXI6OkNoaWxkUHJvY2Vzc0xvZ2dlciBsb2dn ZXI7CisrICAgIEFTU0VSVF9UUlVFKGxvZ2dlci5Jbml0aWFsaXplKCkpOworKworKyAgICBiYXNl OjpMYXVuY2hPcHRpb25zIG9wdGlvbnM7CisrICAgIGxvZ2dlci5VcGRhdGVMYXVuY2hPcHRpb25z KCZvcHRpb25zKTsKKysgICAgYmFzZTo6UHJvY2VzcyBwcm9jZXNzKGJhc2U6OkxhdW5jaFByb2Nl c3MoY29tbWFuZF9saW5lLCBvcHRpb25zKSk7CisrICAgIGlmICghcHJvY2Vzcy5Jc1ZhbGlkKCkp CisrICAgICAgbG9nZ2VyLkR1bXBMb2dzKCk7CisgICAgIEFTU0VSVF9UUlVFKHByb2Nlc3MuSXNW YWxpZCgpKTsKKyAKKyAgICAgaW50IGV4aXRfY29kZSA9IC0xOworQEAgLTMyMCw3ICszMjcsOCBA QCBjbGFzcyBDbGVhbmVyVGVzdAorICAgICAgICAgYmFzZTo6VGltZURlbHRhOjpGcm9tTWludXRl cygxMCksICZleGl0X2NvZGUpOworICAgICBFWFBFQ1RfVFJVRShleGl0ZWRfd2l0aGluX3RpbWVv dXQpOworICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfZXhpdF9jb2RlLCBleGl0X2NvZGUpOworLQor KyAgICBpZiAoIWV4aXRlZF93aXRoaW5fdGltZW91dCB8fCBleHBlY3RlZF9leGl0X2NvZGUgIT0g ZXhpdF9jb2RlKQorKyAgICAgIGxvZ2dlci5EdW1wTG9ncygpOworICAgICBpZiAoIWV4aXRlZF93 aXRoaW5fdGltZW91dCkKKyAgICAgICBwcm9jZXNzLlRlcm1pbmF0ZSgvKmV4aXRfY29kZT0qLy0x LCAvKndhaXQ9Ki9mYWxzZSk7CisgICB9CitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVh bmVyL3Rlc3Qvc2VjdXJlX2RsbF9sb2FkaW5nX3Rlc3QuY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFu ZXIvdGVzdC9zZWN1cmVfZGxsX2xvYWRpbmdfdGVzdC5jYworaW5kZXggZmUxMGM0NDM0NmI1ZS4u OTJlMmRiMTlmZGU2YyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3Nl Y3VyZV9kbGxfbG9hZGluZ190ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVz dC9zZWN1cmVfZGxsX2xvYWRpbmdfdGVzdC5jYworQEAgLTgsMjIgKzgsMTcgQEAKKyAKKyAjaW5j bHVkZSA8bWVtb3J5PgorICNpbmNsdWRlIDxzZXQ+CistI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5j bHVkZSA8dmVjdG9yPgorIAorICNpbmNsdWRlICJiYXNlL2Jhc2VfcGF0aHMuaCIKKyAjaW5jbHVk ZSAiYmFzZS9jb21tYW5kX2xpbmUuaCIKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3BhdGgu aCIKKy0jaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKy0jaW5jbHVkZSAiYmFzZS9m aWxlcy9zY29wZWRfdGVtcF9kaXIuaCIKKyAjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisgI2lu Y2x1ZGUgImJhc2UvcGF0aF9zZXJ2aWNlLmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9sYXVu Y2guaCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL3Byb2Nlc3MuaCIKKyAjaW5jbHVkZSAiYmFz ZS9zdHJpbmdzL3N0cmluZzE2LmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfbnVt YmVyX2NvbnZlcnNpb25zLmgiCistI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfcGllY2Uu aCIKKy0jaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19zcGxpdC5oIgorICNpbmNsdWRlICJi YXNlL3N0cmluZ3Mvc3RyaW5nX3V0aWwuaCIKKyAjaW5jbHVkZSAiYmFzZS9zeW5jaHJvbml6YXRp b24vd2FpdGFibGVfZXZlbnQuaCIKKyAjaW5jbHVkZSAiYmFzZS90ZXN0L3Rlc3RfdGltZW91dHMu aCIKK0BAIC0zMiw1NCArMjcsMTYgQEAKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVy L2NvbnN0YW50cy9jaHJvbWVfY2xlYW5lcl9zd2l0Y2hlcy5oIgorICNpbmNsdWRlICJjaHJvbWUv Y2hyb21lX2NsZWFuZXIvb3MvaW5oZXJpdGFibGVfZXZlbnQuaCIKKyAjaW5jbHVkZSAiY2hyb21l L2Nocm9tZV9jbGVhbmVyL29zL3Byb2Nlc3MuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9j bGVhbmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2No cm9tZV9jbGVhbmVyL3Rlc3QvdGVzdF91dGlsLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvY2hy b21lX2NsZWFuZXIvcHVibGljL2NvbnN0YW50cy9jb25zdGFudHMuaCIKKyAjaW5jbHVkZSAiY29t cG9uZW50cy9jaHJvbWVfY2xlYW5lci90ZXN0L3Rlc3RfbmFtZV9oZWxwZXIuaCIKKyAjaW5jbHVk ZSAidGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgiCisgCistbmFtZXNwYWNlIHsK Ky0KKy12b2lkIFByaW50Q2hpbGRQcm9jZXNzTG9ncyhjb25zdCBiYXNlOjpGaWxlUGF0aCYgbG9n X2RpciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpTdHJpbmdQaWVjZTE2IGZp bGVfbmFtZSkgeworLSAgYmFzZTo6c3RyaW5nMTYgYmFzZV9uYW1lOworLSAgaWYgKGZpbGVfbmFt ZSA9PSBMInNvZnR3YXJlX3JlcG9ydGVyX3Rvb2wiKSB7CistICAgIGJhc2VfbmFtZSA9IEwic29m dHdhcmVfcmVwb3J0ZXJfdG9vbCI7CistICB9IGVsc2UgaWYgKGZpbGVfbmFtZSA9PSBMImNocm9t ZV9jbGVhbnVwX3Rvb2wiKSB7CistICAgIGJhc2VfbmFtZSA9IEwiY2hyb21lX2NsZWFudXAiOwor LSAgfSBlbHNlIHsKKy0gICAgTE9HKEVSUk9SKSA8PCAiVW5rbm93biBmaWxlIG5hbWUgIiA8PCBm aWxlX25hbWUuZGF0YSgpOworLSAgICByZXR1cm47CistICB9CistCistICBiYXNlOjpGaWxlUGF0 aCBsb2dfcGF0aCA9IGxvZ19kaXIuQXBwZW5kKGJhc2VfbmFtZSkuQWRkRXh0ZW5zaW9uKEwibG9n Iik7CistCistICBpZiAoIWJhc2U6OlBhdGhFeGlzdHMobG9nX3BhdGgpKSB7CistICAgIExPRyhF UlJPUikgPDwgIkNoaWxkIHByb2Nlc3MgbG9nIGZpbGUgZG9lc24ndCBleGlzdCI7CistICAgIHJl dHVybjsKKy0gIH0KKy0KKy0gIC8vIENvbGxlY3QgdGhlIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUs IGFuZCBkdW1wIHRoZSBjb250ZW50cywgdG8gaGVscAorLSAgLy8gZGVidWdnaW5nIGZhaWx1cmVz LgorLSAgc3RkOjpzdHJpbmcgbG9nX2ZpbGVfY29udGVudHM7CistICBpZiAoIWJhc2U6OlJlYWRG aWxlVG9TdHJpbmcobG9nX3BhdGgsICZsb2dfZmlsZV9jb250ZW50cykpIHsKKy0gICAgTE9HKEVS Uk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgY2hpbGQgcHJvY2VzcyBsb2cgZmlsZSI7CistICAgIHJl dHVybjsKKy0gIH0KKy0KKy0gIHN0ZDo6dmVjdG9yPGJhc2U6OlN0cmluZ1BpZWNlPiBsaW5lcyA9 CistICAgICAgYmFzZTo6U3BsaXRTdHJpbmdQaWVjZShsb2dfZmlsZV9jb250ZW50cywgIlxuIiwg YmFzZTo6VFJJTV9XSElURVNQQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz ZTo6U1BMSVRfV0FOVF9OT05FTVBUWSk7CistICBMT0coRVJST1IpIDw8ICJEdW1waW5nIGNoaWxk IHByb2Nlc3MgbG9ncyI7CistICBmb3IgKGNvbnN0IGF1dG8mIGxpbmUgOiBsaW5lcykgeworLSAg ICBMT0coRVJST1IpIDw8ICJDaGlsZCBwcm9jZXNzOiAiIDw8IGxpbmU7CistICB9CistfQorLQor LX0gIC8vIG5hbWVzcGFjZQorLQorIGNsYXNzIFNlY3VyZURMTExvYWRpbmdUZXN0IDogcHVibGlj IHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08YmFzZTo6c3RyaW5nMTY+IHsKKyAgcHJvdGVjdGVkOgor ICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKysgICAgQVNTRVJUX1RSVUUoY2hpbGRfcHJvY2Vz c19sb2dnZXJfLkluaXRpYWxpemUoKSk7CisgICAgIGJhc2U6OkZpbGVQYXRoIG91dF9kaXI7Cisg ICAgIEFTU0VSVF9UUlVFKGJhc2U6OlBhdGhTZXJ2aWNlOjpHZXQoYmFzZTo6RElSX0VYRSwgJm91 dF9kaXIpKTsKKyAgICAgZXhlX3BhdGhfID0gb3V0X2Rpci5BcHBlbmQoR2V0UGFyYW0oKSArIEwi LmV4ZSIpOworQEAgLTEwNCw4ICs2MSw2IEBAIGNsYXNzIFNlY3VyZURMTExvYWRpbmdUZXN0IDog cHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08YmFzZTo6c3RyaW5nMTY+IHsKKyAgICAgICAg IGJhc2U6Ok51bWJlclRvU3RyaW5nMTYoCisgICAgICAgICAgICAgYmFzZTo6d2luOjpIYW5kbGVU b1VpbnQzMihpbml0X2RvbmVfbm90aWZpZXItPmhhbmRsZSgpKSkpOworICAgICBjb21tYW5kX2xp bmUuQXBwZW5kU3dpdGNoKGNocm9tZV9jbGVhbmVyOjprTG9hZEVtcHR5RExMU3dpdGNoKTsKKy0g ICAgY29tbWFuZF9saW5lLkFwcGVuZFN3aXRjaFBhdGgoY2hyb21lX2NsZWFuZXI6OmtUZXN0TG9n Z2luZ1BhdGhTd2l0Y2gsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ19k aXIuR2V0UGF0aCgpKTsKKyAKKyAjaWYgIUJVSUxERkxBRyhJU19PRkZJQ0lBTF9DSFJPTUVfQ0xF QU5FUl9CVUlMRCkKKyAgICAgaWYgKGRpc2FibGVfc2VjdXJlX2RsbF9sb2FkaW5nKQorQEAgLTEy MSw3ICs3NiwxMiBAQCBjbGFzcyBTZWN1cmVETExMb2FkaW5nVGVzdCA6IHB1YmxpYyB0ZXN0aW5n OjpUZXN0V2l0aFBhcmFtPGJhc2U6OnN0cmluZzE2PiB7CisgCisgICAgIGJhc2U6OkxhdW5jaE9w dGlvbnMgb3B0aW9uczsKKyAgICAgb3B0aW9ucy5oYW5kbGVzX3RvX2luaGVyaXQucHVzaF9iYWNr KGluaXRfZG9uZV9ub3RpZmllci0+aGFuZGxlKCkpOworKyAgICBjaGlsZF9wcm9jZXNzX2xvZ2dl cl8uVXBkYXRlTGF1bmNoT3B0aW9ucygmb3B0aW9ucyk7CisgICAgIGJhc2U6OlByb2Nlc3MgcHJv Y2VzcyA9IGJhc2U6OkxhdW5jaFByb2Nlc3MoY29tbWFuZF9saW5lLCBvcHRpb25zKTsKKysgICAg aWYgKCFwcm9jZXNzLklzVmFsaWQoKSkgeworKyAgICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5E dW1wTG9ncygpOworKyAgICAgIHJldHVybiBwcm9jZXNzOworKyAgICB9CisgCisgICAgIC8vIE1h a2Ugc3VyZSB0aGUgcHJvY2VzcyBoYXMgZmluaXNoZWQgaXRzIGluaXRpYWxpemF0aW9uIChpbmNs dWRpbmcgbG9hZGluZworICAgICAvLyBETExzKS4gQWxzbyBjaGVjayB0aGUgcHJvY2VzcyBoYW5k bGUgaW4gY2FzZSBpdCBleGl0cyB3aXRoIGFuIGVycm9yLgorQEAgLTEzNiw3ICs5Niw3IEBAIGNs YXNzIFNlY3VyZURMTExvYWRpbmdUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08 YmFzZTo6c3RyaW5nMTY+IHsKKyAgICAgICBQTE9HX0lGKEVSUk9SLCAhOjpHZXRFeGl0Q29kZVBy b2Nlc3MocHJvY2Vzcy5IYW5kbGUoKSwgJmV4aXRfY29kZSkpOworICAgICAgIEFERF9GQUlMVVJF KCkgPDwgIlByb2Nlc3MgZXhpdGVkIHdpdGggIiA8PCBleGl0X2NvZGUKKyAgICAgICAgICAgICAg ICAgICAgIDw8ICIgYmVmb3JlIHNpZ25hbGxpbmcgaW5pdF9kb25lX25vdGlmaWVyIjsKKy0gICAg ICBQcmludENoaWxkUHJvY2Vzc0xvZ3MobG9nX2Rpci5HZXRQYXRoKCksIEdldFBhcmFtKCkpOwor KyAgICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworICAgICB9IGVsc2Ugewor ICAgICAgIEVYUEVDVF9FUSh3YWl0X3Jlc3VsdCwgV0FJVF9PQkpFQ1RfMCk7CisgICAgIH0KK0BA IC0xNTcsNiArMTE3LDcgQEAgY2xhc3MgU2VjdXJlRExMTG9hZGluZ1Rlc3QgOiBwdWJsaWMgdGVz dGluZzo6VGVzdFdpdGhQYXJhbTxiYXNlOjpzdHJpbmcxNj4geworICAgfQorIAorICBwcml2YXRl OgorKyAgY2hyb21lX2NsZWFuZXI6OkNoaWxkUHJvY2Vzc0xvZ2dlciBjaGlsZF9wcm9jZXNzX2xv Z2dlcl87CisgICBiYXNlOjpGaWxlUGF0aCBleGVfcGF0aF87CisgICBiYXNlOjpGaWxlUGF0aCBl bXB0eV9kbGxfcGF0aF87CisgfTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tMDA0LXVwc3RyZWFtX3VzZV9jaGlsZHByb2Nlc3Nsb2dnZXIucGF0 Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNC11 cHN0cmVhbV91c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42YTJhNDg5M2Q0NAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDA0LXVwc3RyZWFtX3Vz ZV9jaGlsZHByb2Nlc3Nsb2dnZXIucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxODYgQEAKK0Zyb20g ODkwOTU2YmUxNDk2YjYyNTk2N2RmMGJiZjYyMGU4ZmM0YWVmYjM5MCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEpvZSBNYXNvbiA8am9lbm90Y2hhcmxlc0Bnb29nbGUuY29tPgorRGF0 ZTogV2VkLCA0IERlYyAyMDE5IDE4OjIyOjM0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBD aGlsZFByb2Nlc3NMb2dnZXIgaW4gRmlsZVJlbW92ZXJRdWFyYW50aW5lVGVzdCBhbmQKKyBTYW5k Ym94ZWRTaG9ydGN1dFBhcnNlclRlc3QKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKKworUj3igItwcm9iZXJnZQorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4MTQ1ODM4 MzRlYmYzNWVkZTVkYWQwYmEzNTc0MzQzODUxYjFhOGJkKQorCitCdWc6IDEwMzAzMzMKK0NoYW5n ZS1JZDogSTY2YjliM2RjNzM5ODBlOGVkMDNlZTM3ZDg5ZWIxNzJiNTMzMGM5MTMKK1Jldmlld2Vk LW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0v c3JjLysvMTk0ODIzNQorQ29tbWl0LVF1ZXVlOiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAY2hy b21pdW0ub3JnPgorUmV2aWV3ZWQtYnk6IHByb2JlcmdlIDxwcm9iZXJnZUBjaHJvbWl1bS5vcmc+ CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzIxMTkz fQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20v Yy9jaHJvbWl1bS9zcmMvKy8xOTQ4MTAyCitSZXZpZXdlZC1ieTogSm9lIE1hc29uIDxqb2Vub3Rj aGFybGVzQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVh ZHMvMzkwNEB7IzkxNX0KK0NyLUJyYW5jaGVkLUZyb206IDY3NTk2OGE4YzY1N2EzYmQ5YzFjMmMy MGM1ZDI5MzU1NzdiYmM1ZTYtcmVmcy9oZWFkcy9tYXN0ZXJAeyM2OTM5NTR9CistLS0KKyAuLi4v b3MvZmlsZV9yZW1vdmVyX3VuaXR0ZXN0LmNjICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysr KysrKysrLS0tCisgLi4uL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyL2Jyb2tlci9CVUlMRC5nbiAg IHwgIDEgKworIC4uLi9zYW5kYm94ZWRfc2hvcnRjdXRfcGFyc2VyX3VuaXR0ZXN0LmNjICAgICB8 IDM1ICsrKysrKysrKysrKysrKy0tCisgMyBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL29z L2ZpbGVfcmVtb3Zlcl91bml0dGVzdC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9vcy9maWxl X3JlbW92ZXJfdW5pdHRlc3QuY2MKK2luZGV4IDUyYzliNGYxYzUwODkuLmM1Nzk4M2U4M2M2Yjkg MTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvZmlsZV9yZW1vdmVyX3VuaXR0 ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvZmlsZV9yZW1vdmVyX3VuaXR0 ZXN0LmNjCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFu ZXIvb3MvcHJlX2ZldGNoZWRfcGF0aHMuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVh bmVyL29zL3N5c3RlbV91dGlsLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9v cy93aGl0ZWxpc3RlZF9kaXJlY3RvcnkuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVh bmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9t ZV9jbGVhbmVyL3Rlc3QvZmlsZV9yZW1vdmVyX3Rlc3RfdXRpbC5oIgorICNpbmNsdWRlICJjaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9yZWJvb3RfZGVsZXRpb25faGVscGVyLmgiCisgI2luY2x1 ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3Jlc291cmNlcy9ncml0L3Rlc3RfcmVzb3Vy Y2VzLmgiCitAQCAtMzk4LDIwICszOTksNDcgQEAgY29uc3RleHByIHdjaGFyX3Qga1Rlc3RFeHBl Y3RBcmNoaXZlTmFtZVtdID0KKyAgICAgTCJ0ZW1wX2ZpbGUuZXhlXyIKKyAgICAgTCJBNTkxQTZE NDBCRjQyMDQwNEEwMTE3MzNDRkI3QjE5MEQ2MkM2NUJGMEJDREEzMkI1N0IyNzdEOUFEOUYxNDZF LnppcCI7CisgCisrY2xhc3MgTG9nZ2VkWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcyA6IHB1 YmxpYyBaaXBBcmNoaXZlclNhbmRib3hTZXR1cEhvb2tzIHsKKysgcHVibGljOgorKyAgZXhwbGlj aXQgTG9nZ2VkWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcygKKysgICAgICBzY29wZWRfcmVm cHRyPE1vam9UYXNrUnVubmVyPiBtb2pvX3Rhc2tfcnVubmVyLAorKyAgICAgIGJhc2U6Ok9uY2VD bG9zdXJlIGNvbm5lY3Rpb25fZXJyb3JfaGFuZGxlciwKKysgICAgICBjaHJvbWVfY2xlYW5lcjo6 Q2hpbGRQcm9jZXNzTG9nZ2VyKiBjaGlsZF9wcm9jZXNzX2xvZ2dlcikKKysgICAgICA6IFppcEFy Y2hpdmVyU2FuZGJveFNldHVwSG9va3Moc3RkOjptb3ZlKG1vam9fdGFza19ydW5uZXIpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoY29ubmVjdGlvbl9l cnJvcl9oYW5kbGVyKSksCisrICAgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8oY2hpbGRfcHJv Y2Vzc19sb2dnZXIpIHt9CisrCisrICBSZXN1bHRDb2RlIFVwZGF0ZVNhbmRib3hQb2xpY3koc2Fu ZGJveDo6VGFyZ2V0UG9saWN5KiBwb2xpY3ksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmFzZTo6Q29tbWFuZExpbmUqIGNvbW1hbmRfbGluZSkgb3ZlcnJpZGUgeworKyAgICBj aGlsZF9wcm9jZXNzX2xvZ2dlcl8tPlVwZGF0ZVNhbmRib3hQb2xpY3kocG9saWN5KTsKKysgICAg cmV0dXJuIFppcEFyY2hpdmVyU2FuZGJveFNldHVwSG9va3M6OlVwZGF0ZVNhbmRib3hQb2xpY3ko cG9saWN5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21tYW5kX2xpbmUpOworKyAgfQorKworKyBwcml2YXRlOgorKyAgY2hy b21lX2NsZWFuZXI6OkNoaWxkUHJvY2Vzc0xvZ2dlciogY2hpbGRfcHJvY2Vzc19sb2dnZXJfOwor K307CisrCisgY2xhc3MgRmlsZVJlbW92ZXJRdWFyYW50aW5lVGVzdCA6IHB1YmxpYyBiYXNlOjpN dWx0aVByb2Nlc3NUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs aWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Ym9vbD4geworICBwdWJsaWM6CisgICB2 b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICB1c2VfcmVib290X3JlbW92YWxfID0gR2V0UGFy YW0oKTsKKyAKKysgICAgQVNTRVJUX1RSVUUoY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkluaXRpYWxp emUoKSk7CisrCisgICAgIHNjb3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19y dW5uZXIgPSBNb2pvVGFza1J1bm5lcjo6Q3JlYXRlKCk7CistICAgIFppcEFyY2hpdmVyU2FuZGJv eFNldHVwSG9va3Mgc2V0dXBfaG9va3MoCisrICAgIExvZ2dlZFppcEFyY2hpdmVyU2FuZGJveFNl dHVwSG9va3Mgc2V0dXBfaG9va3MoCisgICAgICAgICBtb2pvX3Rhc2tfcnVubmVyLmdldCgpLCBi YXNlOjpCaW5kT25jZShbXSB7CisgICAgICAgICAgIEZBSUwoKSA8PCAiWmlwQXJjaGl2ZXIgc2Fu ZGJveCBjb25uZWN0aW9uIGVycm9yIjsKKy0gICAgICAgIH0pKTsKKy0gICAgQVNTRVJUX0VRKFJF U1VMVF9DT0RFX1NVQ0NFU1MsCistICAgICAgICAgICAgICBTdGFydFNhbmRib3hUYXJnZXQoTWFr ZUNtZExpbmUoIkZpbGVSZW1vdmVyUXVhcmFudGluZVRhcmdldE1haW4iKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmc2V0dXBfaG9va3MsIFNhbmRib3hUeXBlOjprVGVzdCkp OworKyAgICAgICAgfSksCisrICAgICAgICAmY2hpbGRfcHJvY2Vzc19sb2dnZXJfKTsKKysgICAg UmVzdWx0Q29kZSByZXN1bHRfY29kZSA9CisrICAgICAgICBTdGFydFNhbmRib3hUYXJnZXQoTWFr ZUNtZExpbmUoIkZpbGVSZW1vdmVyUXVhcmFudGluZVRhcmdldE1haW4iKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAmc2V0dXBfaG9va3MsIFNhbmRib3hUeXBlOjprVGVzdCk7CisrICAg IGlmIChyZXN1bHRfY29kZSAhPSBSRVNVTFRfQ09ERV9TVUNDRVNTKQorKyAgICAgIGNoaWxkX3By b2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworKyAgICBBU1NFUlRfRVEoUkVTVUxUX0NPREVfU1VD Q0VTUywgcmVzdWx0X2NvZGUpOworIAorICAgICBBU1NFUlRfVFJVRSh0ZW1wX2Rpcl8uQ3JlYXRl VW5pcXVlVGVtcERpcigpKTsKKyAKK0BAIC00NDcsNiArNDc1LDcgQEAgY2xhc3MgRmlsZVJlbW92 ZXJRdWFyYW50aW5lVGVzdCA6IHB1YmxpYyBiYXNlOjpNdWx0aVByb2Nlc3NUZXN0LAorICAgYmFz ZTo6dGVzdDo6U2luZ2xlVGhyZWFkVGFza0Vudmlyb25tZW50IHRhc2tfZW52aXJvbm1lbnRfOwor ICAgYmFzZTo6U2NvcGVkVGVtcERpciB0ZW1wX2Rpcl87CisgICBzdGQ6OnVuaXF1ZV9wdHI8Rmls ZVJlbW92ZXI+IGZpbGVfcmVtb3Zlcl87CisrICBjaHJvbWVfY2xlYW5lcjo6Q2hpbGRQcm9jZXNz TG9nZ2VyIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKyB9OworIAorIH0gIC8vIG5hbWVzcGFjZQor ZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNl ci9icm9rZXIvQlVJTEQuZ24gYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1 dF9wYXJzZXIvYnJva2VyL0JVSUxELmduCitpbmRleCBiYzdiYTgxODhjODNiLi4wOWVkMDdiNzYx YTRlIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvc2hvcnRjdXRf cGFyc2VyL2Jyb2tlci9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNl cnMvc2hvcnRjdXRfcGFyc2VyL2Jyb2tlci9CVUlMRC5nbgorQEAgLTY3LDYgKzY3LDcgQEAgc291 cmNlX3NldCgidW5pdHRlc3Rfc291cmNlcyIpIHsKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVh bmVyL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyOnNhbmRib3hlZF9sbmtfcGFyc2VyX3Rlc3RfdXRp bCIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNl ci90YXJnZXQ6bG5rX3BhcnNlciIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJz ZXJzL3RhcmdldDpwYXJzZXJfc2FuZGJveF90YXJnZXQiLAorKyAgICAiLy9jaHJvbWUvY2hyb21l X2NsZWFuZXIvdGVzdDp0ZXN0X3V0aWwiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmluZGlu Z3M6YmluZGluZ3MiLAorICAgICAiLy9zYW5kYm94L3dpbjpzYW5kYm94IiwKKyAgICAgIi8vdGVz dGluZy9ndGVzdCIsCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMv c2hvcnRjdXRfcGFyc2VyL2Jyb2tlci9zYW5kYm94ZWRfc2hvcnRjdXRfcGFyc2VyX3VuaXR0ZXN0 LmNjIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyL2Jyb2tl ci9zYW5kYm94ZWRfc2hvcnRjdXRfcGFyc2VyX3VuaXR0ZXN0LmNjCitpbmRleCA2NGFjOTFlZDky MDE2Li40YzAzM2YyMWM3N2MzIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Bh cnNlcnMvc2hvcnRjdXRfcGFyc2VyL2Jyb2tlci9zYW5kYm94ZWRfc2hvcnRjdXRfcGFyc2VyX3Vu aXR0ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9w YXJzZXIvYnJva2VyL3NhbmRib3hlZF9zaG9ydGN1dF9wYXJzZXJfdW5pdHRlc3QuY2MKK0BAIC0x OCw2ICsxOCw3IEBACisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL2Jy b2tlci9zYW5kYm94X3NldHVwX2hvb2tzLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xl YW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9zYW5kYm94ZWRfbG5rX3BhcnNlcl90ZXN0X3V0 aWwuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvdGFyZ2V0L3Nh bmRib3hfc2V0dXAuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hp bGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL2JpbmRpbmdz L2ludGVyZmFjZV9yZXF1ZXN0LmgiCisgI2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9zeXN0ZW0v cGxhdGZvcm1faGFuZGxlLmgiCisgI2luY2x1ZGUgInNhbmRib3gvd2luL3NyYy9zYW5kYm94X2Zh Y3RvcnkuaCIKK0BAIC0zMSw2ICszMiwyNiBAQCBjb25zdGV4cHIgdW5zaWduZWQgaW50IGtEaXJR dWFudGl0eSA9IDU7CisgCisgY29uc3QgYmFzZTo6c3RyaW5nMTYga0xua0FyZ3VtZW50cyA9IEwi LWEgLWIgLWMgLWQgR2VuZXJpY0V4YW1wbGUiOworIAorK2NsYXNzIExvZ2dlZFBhcnNlclNhbmRi b3hTZXR1cEhvb2tzIDogcHVibGljIFBhcnNlclNhbmRib3hTZXR1cEhvb2tzIHsKKysgcHVibGlj OgorKyAgZXhwbGljaXQgTG9nZ2VkUGFyc2VyU2FuZGJveFNldHVwSG9va3MoCisrICAgICAgc2Nv cGVkX3JlZnB0cjxNb2pvVGFza1J1bm5lcj4gbW9qb190YXNrX3J1bm5lciwKKysgICAgICBiYXNl OjpPbmNlQ2xvc3VyZSBjb25uZWN0aW9uX2Vycm9yX2hhbmRsZXIsCisrICAgICAgY2hyb21lX2Ns ZWFuZXI6OkNoaWxkUHJvY2Vzc0xvZ2dlciogY2hpbGRfcHJvY2Vzc19sb2dnZXIpCisrICAgICAg OiBQYXJzZXJTYW5kYm94U2V0dXBIb29rcyhzdGQ6Om1vdmUobW9qb190YXNrX3J1bm5lciksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoY29ubmVjdGlvbl9lcnJv cl9oYW5kbGVyKSksCisrICAgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8oY2hpbGRfcHJvY2Vz c19sb2dnZXIpIHt9CisrCisrICBSZXN1bHRDb2RlIFVwZGF0ZVNhbmRib3hQb2xpY3koc2FuZGJv eDo6VGFyZ2V0UG9saWN5KiBwb2xpY3ksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmFzZTo6Q29tbWFuZExpbmUqIGNvbW1hbmRfbGluZSkgb3ZlcnJpZGUgeworKyAgICBjaGls ZF9wcm9jZXNzX2xvZ2dlcl8tPlVwZGF0ZVNhbmRib3hQb2xpY3kocG9saWN5KTsKKysgICAgcmV0 dXJuIFBhcnNlclNhbmRib3hTZXR1cEhvb2tzOjpVcGRhdGVTYW5kYm94UG9saWN5KHBvbGljeSwg Y29tbWFuZF9saW5lKTsKKysgIH0KKysKKysgcHJpdmF0ZToKKysgIGNocm9tZV9jbGVhbmVyOjpD aGlsZFByb2Nlc3NMb2dnZXIqIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKyt9OworKworIH0gIC8v IG5hbWVzcGFjZQorIAorIGNsYXNzIFNhbmRib3hlZFNob3J0Y3V0UGFyc2VyVGVzdCA6IHB1Ymxp YyBiYXNlOjpNdWx0aVByb2Nlc3NUZXN0IHsKK0BAIC00MCwxNCArNjEsMjAgQEAgY2xhc3MgU2Fu ZGJveGVkU2hvcnRjdXRQYXJzZXJUZXN0IDogcHVibGljIGJhc2U6Ok11bHRpUHJvY2Vzc1Rlc3Qg eworICAgICAgICAgdGVtcF9kaXJzX3dpdGhfY2hyb21lX2xua18oa0RpclF1YW50aXR5KSB7fQor IAorICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKysgICAgQVNTRVJUX1RSVUUoY2hpbGRfcHJv Y2Vzc19sb2dnZXJfLkluaXRpYWxpemUoKSk7CisrCisgICAgIG1vam9fdGFza19ydW5uZXJfID0g TW9qb1Rhc2tSdW5uZXI6OkNyZWF0ZSgpOworICAgICBQYXJzZXJTYW5kYm94U2V0dXBIb29rcyBz ZXR1cF9ob29rcygKKyAgICAgICAgIG1vam9fdGFza19ydW5uZXJfLmdldCgpLAorICAgICAgICAg YmFzZTo6QmluZE9uY2UoW10geyBGQUlMKCkgPDwgIlBhcnNlciBzYW5kYm94IGNvbm5lY3Rpb24g ZXJyb3IiOyB9KSk7CistICAgIEFTU0VSVF9FUSgKKy0gICAgICAgIFJFU1VMVF9DT0RFX1NVQ0NF U1MsCisrCisrICAgIFJlc3VsdENvZGUgcmVzdWx0X2NvZGUgPQorICAgICAgICAgU3RhcnRTYW5k Ym94VGFyZ2V0KE1ha2VDbWRMaW5lKCJTYW5kYm94ZWRTaG9ydGN1dFBhcnNlclRhcmdldE1haW4i KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAmc2V0dXBfaG9va3MsIFNhbmRib3hUeXBl OjprVGVzdCkpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZXR1cF9ob29rcywgU2Fu ZGJveFR5cGU6OmtUZXN0KTsKKysgICAgaWYgKHJlc3VsdF9jb2RlICE9IFJFU1VMVF9DT0RFX1NV Q0NFU1MpCisrICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7CisrICAgIEFT U0VSVF9FUShSRVNVTFRfQ09ERV9TVUNDRVNTLCByZXN1bHRfY29kZSk7CisrCisgICAgIHBhcnNl cl9wdHJfID0gc2V0dXBfaG9va3MuVGFrZVBhcnNlclB0cigpOworICAgICBzaG9ydGN1dF9wYXJz ZXJfID0gc3RkOjptYWtlX3VuaXF1ZTxTYW5kYm94ZWRTaG9ydGN1dFBhcnNlcj4oCisgICAgICAg ICBtb2pvX3Rhc2tfcnVubmVyXy5nZXQoKSwgcGFyc2VyX3B0cl8uZ2V0KCkpOworQEAgLTk4LDYg KzEyNSw4IEBAIGNsYXNzIFNhbmRib3hlZFNob3J0Y3V0UGFyc2VyVGVzdCA6IHB1YmxpYyBiYXNl OjpNdWx0aVByb2Nlc3NUZXN0IHsKKyAgIGJhc2U6OkZpbGVQYXRoIG5vdF9sbmtfZmlsZV9wYXRo XzsKKyAKKyAgIGJhc2U6OnRlc3Q6OlRhc2tFbnZpcm9ubWVudCB0YXNrX2Vudmlyb25tZW50XzsK KysKKysgIGNocm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIgY2hpbGRfcHJvY2Vzc19s b2dnZXJfOworIH07CisgCisgTVVMVElQUk9DRVNTX1RFU1RfTUFJTihTYW5kYm94ZWRTaG9ydGN1 dFBhcnNlclRhcmdldE1haW4pIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tMDA1LXVwc3RyZWFtLWNocm9taXVtX3ZlcnNpb24ucGF0Y2gucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNS11cHN0cmVh bS1jaHJvbWl1bV92ZXJzaW9uLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi42NWI4ZWY0ZGYwYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDA1LXVwc3RyZWFtLWNocm9taXVtX3ZlcnNp b24ucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJvbSBjMTEwOWI3MDdiMWVkYTVkOThl YjJlZDZiZDc0MDgzYmMzNTJmNDgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogY2hy b21lLXJlbGVhc2UtYm90IDxjaHJvbWUtcmVsZWFzZS1ib3RAY2hyb21pdW0ub3JnPgorRGF0ZTog RnJpLCA2IERlYyAyMDE5IDAxOjA5OjUwICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEluY3JlbWVu dGluZyBWRVJTSU9OIHRvIDc4LjAuMzkwNC4xMzAKKworVEJSPWdvdmluZEBjaHJvbWl1bS5vcmcK KworQ2hhbmdlLUlkOiBJYjY3NTY1M2UyNjA1Y2YyYzE1ZWJkYmQxMzIwNDY1YjA4YTQ5OTk0ZAor UmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9j aHJvbWl1bS9zcmMvKy8xOTU0NzA5CitSZXZpZXdlZC1ieTogQ2hyb21lIFJlbGVhc2UgQm90IChM VUNJKSA8Y2hyb21lLW9mZmljaWFsLWJyYW5jaGVyQGNob3BzLXNlcnZpY2UtYWNjb3VudHMuaWFt LmdzZXJ2aWNlYWNjb3VudC5jb20+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvYnJhbmNoLWhl YWRzLzM5MDRAeyM5MTd9CitDci1CcmFuY2hlZC1Gcm9tOiA2NzU5NjhhOGM2NTdhM2JkOWMxYzJj MjBjNWQyOTM1NTc3YmJjNWU2LXJlZnMvaGVhZHMvbWFzdGVyQHsjNjkzOTU0fQorLS0tCisgY2hy b21lL1ZFUlNJT04gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvVkVSU0lPTiBiL2Nocm9tZS9WRVJTSU9O CitpbmRleCA3YTQzODNhMWNjYjdmLi41MGY4ODdmNzQ2MjI3IDEwMDY0NAorLS0tIGEvY2hyb21l L1ZFUlNJT04KKysrKyBiL2Nocm9tZS9WRVJTSU9OCitAQCAtMSw0ICsxLDQgQEAKKyBNQUpPUj03 OAorIE1JTk9SPTAKKyBCVUlMRD0zOTA0CistUEFUQ0g9MTA4CisrUEFUQ0g9MTMwCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtX2F0 a19vcHRpb25hbC5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yN2I1NjI1MWVjMwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29w dGlvbmFsLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKK2RpZmYgLS1naXQgYS9idWlsZC9j b25maWcvdWkuZ25pIGIvYnVpbGQvY29uZmlnL3VpLmduaQoraW5kZXggNTQ3YjQyZi4uOTY2YjAw YyAxMDA2NDQKKy0tLSBhL2J1aWxkL2NvbmZpZy91aS5nbmkKKysrKyBiL2J1aWxkL2NvbmZpZy91 aS5nbmkKK0BAIC01MSw4ICs1MSwxMCBAQCBpZiAodXNlX296b25lKSB7CisgICB1c2VfZ2xpYiA9 IGZhbHNlCisgfQorCistIyBXaGV0aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmlsaXR5IFRv b2xLaXQgbGlicmFyeQorLXVzZV9hdGsgPSBpc19kZXNrdG9wX2xpbnV4ICYmIHVzZV94MTEKKytk ZWNsYXJlX2FyZ3MoKSB7CisrICAjIFdoZXRoZXIgdG8gdXNlIGF0aywgdGhlIEFjY2Vzc2liaWxp dHkgVG9vbEtpdCBsaWJyYXJ5CisrICB1c2VfYXRrID0gaXNfZGVza3RvcF9saW51eCAmJiB1c2Vf eDExCisrfQorICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisgIyAgIFBMRUFTRSBETyBOT1QgQUREIE1PUkUgRkxBR1MgVE8gVEhJUyBGSUxFCisgIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2xhbmcxMF9nbHNsYW5nLnBh dGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGFu ZzEwX2dsc2xhbmcucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjkxZWY4NGNhN2U2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGFuZzEwX2dsc2xhbmcucGF0Y2gucGF0Y2gKQEAgLTAs MCArMSwyNSBAQAorRnJvbSAyNGIzZTgzODRlOTNmM2U3M2I2YWExNGVhMDBhMzA1NzQxMTJmOWJh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmVpZCBLbGVja25lciA8cm5rQGdvb2ds ZS5jb20+CitEYXRlOiBXZWQsIDQgRGVjIDIwMTkgMTQ6MDk6MDMgLTA4MDAKK1N1YmplY3Q6IFtQ QVRDSF0gUmVtb3ZlIGdsc2xhbmc6OnBvb2xfYWxsb2NhdG9yOjpzZXRBbGxvY2F0b3IKKworVFBv b2xBbGxvY2F0b3IgaXMgbm90IGNvcHkgYXNzaWduYWJsZSwgc28gdGhpcyBzZXR0ZXIgY291bGQg bmV2ZXIgaGF2ZQorYmVlbiB1c2VkLiBBZnRlciBhIHJlY2VudCBjaGFuZ2UgKDg3OGEyNGVlMiks IG5ldyB2ZXJzaW9ucyBvZiBDbGFuZworcmVqZWN0IHRoaXMgY29kZSBvdXRyaWdodC4KKy0tLQor IGdsc2xhbmcvSW5jbHVkZS9Qb29sQWxsb2MuaCB8IDEgLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGRl bGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9nbHNsYW5nL0luY2x1ZGUvUG9vbEFsbG9jLmggYi9n bHNsYW5nL0luY2x1ZGUvUG9vbEFsbG9jLmgKK2luZGV4IDBlMjM3YTZhMi4uYjhlY2NiODgzIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvZ2xzbGFuZy9zcmMvZ2xzbGFuZy9JbmNsdWRlL1Bvb2xB bGxvYy5oCisrKysgYi90aGlyZF9wYXJ0eS9nbHNsYW5nL3NyYy9nbHNsYW5nL0luY2x1ZGUvUG9v bEFsbG9jLmgKK0BAIC0zMDQsNyArMzA0LDYgQEAgY2xhc3MgcG9vbF9hbGxvY2F0b3IgeworICAg ICBzaXplX3R5cGUgbWF4X3NpemUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3R5 cGU+KC0xKSAvIHNpemVvZihUKTsgfQorICAgICBzaXplX3R5cGUgbWF4X3NpemUoaW50IHNpemUp IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdHlwZT4oLTEpIC8gc2l6ZTsgfQorIAor LSAgICB2b2lkIHNldEFsbG9jYXRvcihUUG9vbEFsbG9jYXRvciogYSkgeyBhbGxvY2F0b3IgPSAq YTsgfQorICAgICBUUG9vbEFsbG9jYXRvciYgZ2V0QWxsb2NhdG9yKCkgY29uc3QgeyByZXR1cm4g YWxsb2NhdG9yOyB9CisgCisgcHJvdGVjdGVkOgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1jb21tYW5kbGluZS1pbmNsdWRlLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtY29tbWFuZGxp bmUtaW5jbHVkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MTVkYTc5NGNiYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWZpeC1jb21tYW5kbGluZS1pbmNsdWRlLnBhdGNoCkBAIC0wLDAgKzEs NDQgQEAKK0VsZWN0cm9uIHBhdGNoZXMgdGhlIGZpbGUgdG8gdXNlIGJhc2U6OkNvbW1hbmRMaW5l LCBidXQgZm9yZ290IHRvIGluY2x1ZGUKK3RoZSBuZWNlc3NhcnkgaGVhZGVyIGZvciBpdC4KKy0t LSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2NhbnZhc19j b2xvcl9wYXJhbXMuY2Mub3JpZwkyMDIwLTA0LTI3IDEzOjQ5OjQxLjQwODU5Mjk0MSArMDIwMAor KysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhpY3MvY2FudmFz X2NvbG9yX3BhcmFtcy5jYwkyMDIwLTA0LTI3IDEzOjQ5OjUzLjg0MTA3MTgzMCArMDIwMAorQEAg LTQsNiArNCw3IEBACisgCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL2dyYXBoaWNzL2NhbnZhc19jb2xvcl9wYXJhbXMuaCIKKyAKKysjaW5jbHVkZSAiYmFz ZS9jb21tYW5kX2xpbmUuaCIKKyAjaW5jbHVkZSAiY2MvcGFpbnQvc2tpYV9wYWludF9jYW52YXMu aCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy92aXovY29tbW9uL3Jlc291cmNlcy9yZXNvdXJjZV9m b3JtYXRfdXRpbHMuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vcnVudGltZV9lbmFibGVkX2ZlYXR1cmVzLmgiCistLS0gYS90aGlyZF9wYXJ0eS9ibGlu ay9wdWJsaWMvcGxhdGZvcm0vd2ViX3J0Y19ydHBfc291cmNlLmgub3JpZwkyMDIwLTA0LTI3IDE0 OjE2OjA1LjMyMzA4NTgxNCArMDIwMAorKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL3Bs YXRmb3JtL3dlYl9ydGNfcnRwX3NvdXJjZS5oCTIwMjAtMDQtMjcgMTQ6MTY6MTcuMjc5NDgwODM4 ICswMjAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSAiYmFzZS9vcHRpb25hbC5oIgor ICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvcGxhdGZvcm0vd2ViX2NvbW1vbi5o IgorKyNpbmNsdWRlIDxtZW1vcnk+CisgCisgbmFtZXNwYWNlIGJhc2UgeworIGNsYXNzIFRpbWVU aWNrczsKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Nocm9tZV9jb250ZW50X2Jyb3dzZXJfY2xpZW50 LmNjLm9yaWcJMjAyMC0wNC0yNyAxNjoxNjoyNy4yOTEyMDgzOTQgKzAyMDAKKysrKyBiL2Nocm9t ZS9icm93c2VyL2Nocm9tZV9jb250ZW50X2Jyb3dzZXJfY2xpZW50LmNjCTIwMjAtMDQtMjcgMTY6 MTY6NDkuMjgzOTg0MjE3ICswMjAwCitAQCAtMjg5Niw2ICsyODk2LDggQEAKKyAgICAgY29uc3Qg c3RkOjpzdHJpbmcmIGZyYW1lX25hbWUsCisgICAgIFdpbmRvd09wZW5EaXNwb3NpdGlvbiBkaXNw b3NpdGlvbiwKKyAgICAgY29uc3QgYmxpbms6Om1vam9tOjpXaW5kb3dGZWF0dXJlcyYgZmVhdHVy ZXMsCisrICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgYWRkaXRpb25hbF9mZWF0 dXJlcywKKysgICAgY29uc3Qgc2NvcGVkX3JlZnB0cjxuZXR3b3JrOjpSZXNvdXJjZVJlcXVlc3RC b2R5PiYgYm9keSwKKyAgICAgYm9vbCB1c2VyX2dlc3R1cmUsCisgICAgIGJvb2wgb3BlbmVyX3N1 cHByZXNzZWQsCisgICAgIGJvb2wqIG5vX2phdmFzY3JpcHRfYWNjZXNzKSB7CistLS0gYS9jaHJv bWUvYnJvd3Nlci9jaHJvbWVfY29udGVudF9icm93c2VyX2NsaWVudC5oLm9yaWcJMjAyMC0wNC0y NyAxNjoxNTo0MS45MzIzNTk3NTMgKzAyMDAKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZV9j b250ZW50X2Jyb3dzZXJfY2xpZW50LmgJMjAyMC0wNC0yNyAxNjoxNjowOS43OTgzMTg4NDUgKzAy MDAKK0BAIC0zMDMsNiArMzAzLDggQEAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 ZDo6c3RyaW5nJiBmcmFtZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93T3Bl bkRpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Ymxpbms6Om1vam9tOjpXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsCisrICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGFkZGl0aW9uYWxfZmVhdHVy ZXMsCisrICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY29wZWRfcmVmcHRyPG5ldHdvcms6 OlJlc291cmNlUmVxdWVzdEJvZHk+JiBib2R5LAorICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCB1c2VyX2dlc3R1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9wZW5lcl9zdXBw cmVzc2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogbm9famF2YXNjcmlwdF9hY2Nl c3MpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1zdWNlc3MtZGVmaW5pdGlvbi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGRjMDI0NjkzZTYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1z dWNlc3MtZGVmaW5pdGlvbi5wYXRjaApAQCAtMCwwICsxLDE1IEBACitYMTEuaCBkZWZpbmVzIGEg bWFjcm8gY2FsbGVkICJTdWNjZXNzIiwgd2hpY2ggaXMgMC4gVGhpcyBicmVha3MgYW4gZW51bQor dGhhdCBpcyBnZW5lcmF0ZWQgaW4gQ2hyb21pdW0gdGhhdCBoYXMgYSBtZW1iZXIgIlN1Y2Nlc3Mi LCBzbyB1bmRlZmluZQoraXQuCistLS0gYS9jaHJvbWUvYnJvd3Nlci91aS9saWJndGt1aS9zZWxl Y3RfZmlsZV9kaWFsb2dfaW1wbF9rZGUuY2Mub3JpZwkyMDIwLTA0LTI3IDE4OjQyOjE1LjQ1NzI5 NzU0NCArMDIwMAorKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvbGliZ3RrdWkvc2VsZWN0X2ZpbGVf ZGlhbG9nX2ltcGxfa2RlLmNjCTIwMjAtMDQtMjcgMTg6NDI6MjEuNzYwNDU0MzA0ICswMjAwCitA QCAtMjQsNyArMjQsOSBAQAorICNpbmNsdWRlICJiYXNlL3Rhc2svcG9zdF90YXNrLmgiCisgI2lu Y2x1ZGUgImJhc2UvdGFzay90YXNrX3RyYWl0cy5oIgorICNpbmNsdWRlICJiYXNlL3RocmVhZGlu Zy90aHJlYWRfcmVzdHJpY3Rpb25zLmgiCisrI3VuZGVmIFN1Y2Nlc3MKKyAjaW5jbHVkZSAiY2hy b21lL2Jyb3dzZXIvdWkvbGliZ3RrdWkvc2VsZWN0X2ZpbGVfZGlhbG9nX2ltcGwuaCIKKysjZGVm aW5lIFN1Y2Nlc3MgMAorICNpbmNsdWRlICJjb250ZW50L3B1YmxpYy9icm93c2VyL2Jyb3dzZXJf dGhyZWFkLmgiCisgI2luY2x1ZGUgInVpL2F1cmEvd2luZG93X3RyZWVfaG9zdC5oIgorICNpbmNs dWRlICJ1aS9iYXNlL2wxMG4vbDEwbl91dGlsLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi43NGRlMjJlMmMxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLnBhdGNoCkBAIC0wLDAgKzEsNDMg QEAKK0ZpeCBHQ0MgYnVpbGQgZXJyb3IKKworRml4ZXMgdGhpcyBlcnJvcjoKK1sgIDM3NXNdIElu IGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9iYXNlL3Rhc2svY29tbW9uL2ludHJ1c2l2ZV9oZWFw Lmg6OCwKK1sgIDM3NXNdICAgICAgICAgICAgICAgICAgZnJvbSAuLi8uLi9iYXNlL3Rhc2svdGhy ZWFkX3Bvb2wvdGFza19zb3VyY2UuaDoxNywKK1sgIDM3NXNdICAgICAgICAgICAgICAgICAgZnJv bSAuLi8uLi9iYXNlL3Rhc2svdGhyZWFkX3Bvb2wvdGFza190cmFja2VyLmg6MjcsCitbICAzNzVz XSAgICAgICAgICAgICAgICAgIGZyb20gLi8uLi8uLi9iYXNlL3Rhc2svdGhyZWFkX3Bvb2wvc2Vy dmljZV90aHJlYWQuY2M6MTQsCitbICAzNzVzXSAgICAgICAgICAgICAgICAgIGZyb20gZ2VuL2Jh c2UvYmFzZV9qdW1ib18yOC5jYzo1OgorWyAgMzc1c10gLi4vLi4vYmFzZS9jb250YWluZXJzL2lu dHJ1c2l2ZV9oZWFwLmg6MTUyOjM2OiBlcnJvcjogZW51bWVyYXRvciB2YWx1ZQorICAgICAgICAg Jy0xJyBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiB1bmRlcmx5aW5nIHR5cGUgJ3NpemVfdCcge2Fr YSAnbG9uZyB1bnNpZ25lZCBpbnQnfQorWyAgMzc1c10gICAxNTIgfCAgIGVudW0gOiBzaXplX3Qg eyBrSW52YWxpZEluZGV4ID0gLTEgfTsKK1sgIDM3NXNdICAgICAgIHwKKworQ2hhbmdlLUlkOiBJ NjA0NGZiNzA0OTMxYjJmODQxNmY2YjE5YTI0N2FlMjk3Y2Q3YjBkNgorUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8x NzkyNzYzCitDb21taXQtUXVldWU6IFRob21hcyBBbmRlcnNvbiA8dGhvbWFzYW5kZXJzb25AY2hy b21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBMZWkgWmhhbmcgPHRoZXN0aWdAY2hyb21pdW0ub3Jn PgorUmV2aWV3ZWQtYnk6IExlaSBaaGFuZyA8dGhlc3RpZ0BjaHJvbWl1bS5vcmc+CitBdXRvLVN1 Ym1pdDogVGhvbWFzIEFuZGVyc29uIDx0aG9tYXNhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CitDci1D b21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNjk0ODUzfQorCitkaWZmIC0tZ2l0 IGEvYmFzZS9jb250YWluZXJzL2ludHJ1c2l2ZV9oZWFwLmggYi9iYXNlL2NvbnRhaW5lcnMvaW50 cnVzaXZlX2hlYXAuaAoraW5kZXggNTNkMzkwOS4uZDc2MjZiYiAxMDA2NDQKKy0tLSBhL2Jhc2Uv Y29udGFpbmVycy9pbnRydXNpdmVfaGVhcC5oCisrKysgYi9iYXNlL2NvbnRhaW5lcnMvaW50cnVz aXZlX2hlYXAuaAorCitAQCAtMTMxLDYgKzEzMSw3IEBACisgCisgI2luY2x1ZGUgPGFsZ29yaXRo bT4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKysjaW5jbHVkZSA8bGltaXRzPgorICNpbmNsdWRl IDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KKyAjaW5jbHVkZSA8dmVjdG9yPgor QEAgLTE0OSw3ICsxNTAsNyBAQAorIC8vIGluIHBsYWNlLgorIGNsYXNzIEJBU0VfRVhQT1JUIEhl YXBIYW5kbGUgeworICBwdWJsaWM6CistICBlbnVtIDogc2l6ZV90IHsga0ludmFsaWRJbmRleCA9 IC0xIH07CisrICBlbnVtIDogc2l6ZV90IHsga0ludmFsaWRJbmRleCA9IHN0ZDo6bnVtZXJpY19s aW1pdHM8c2l6ZV90Pjo6bWF4KCkgfTsKKyAKKyAgIGNvbnN0ZXhwciBIZWFwSGFuZGxlKCkgPSBk ZWZhdWx0OworICAgY29uc3RleHByIEhlYXBIYW5kbGUoY29uc3QgSGVhcEhhbmRsZSYgb3RoZXIp ID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tZ25fYm9vdHN0cmFwX25pbmphLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5Zjk1ZjA5Y2FlCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBf bmluamEucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorUGF0Y2ggYnkgTWljaGFlbCBGb3JuZXkgPG1m b3JuZXlAbWZvcm5leS5vcmc+CisKK0FscmVhZHkgbWVyZ2VkIGh0dHBzOi8vY2hyb21pdW0tcmV2 aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xOTc1NDUzCisKKy0tLSBhL3Rv b2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkKKysrKyBiL3Rvb2xzL2duL2Jvb3RzdHJhcC9i b290c3RyYXAucHkKK0BAIC03MCw2ICs3MCw3IEBACisgICBvdXRfZGlyID0gb3MucGF0aC5qb2lu KFNSQ19ST09ULCBidWlsZF9yZWwpCisgICBnbl9wYXRoID0gb3B0aW9ucy5vdXRwdXQgb3Igb3Mu cGF0aC5qb2luKG91dF9kaXIsICdnbicpCisgICBnbl9idWlsZF9kaXIgPSBvcy5wYXRoLmpvaW4o b3V0X2RpciwgJ2duX2J1aWxkJykKKysgIG5pbmphX2JpbmFyeSA9IG9zLmVudmlyb24uZ2V0KCdO SU5KQScsICduaW5qYScpCisgCisgICAjIFRPRE8odGhvbWFzYW5kZXJzb24pOiBSZW1vdmUgdGhp cyBvbmNlIFVidW50dSBUcnVzdHkgcmVhY2hlcyBFT0wsIG9yIHdoZW4KKyAgICMgQ2hyb21pdW0n cyBpbmZyYXN0cnVjdHVyZSBpcyB1cGdyYWRlZCBmcm9tIFRydXN0eSB0byBYZW5pYWwsIHdoaWNo ZXZlciBjb21lcworQEAgLTkwLDcgKzkxLDcgQEAKKyAgICAgICAgICAgICAgIG9zLmVudmlyb24u Z2V0KCdDRkxBR1MnLCAnJykuc3BsaXQoKSArCisgICAgICAgICAgICAgICBvcy5lbnZpcm9uLmdl dCgnQ1hYRkxBR1MnLCAnJykuc3BsaXQoKSksCisgICAgICAgXSkgKyAnXG4nKQorLSAgICBzdWJw cm9jZXNzLmNoZWNrX2NhbGwoWyduaW5qYScsICctQycsIGxpYmN4eF9kaXJdKQorKyAgICBzdWJw cm9jZXNzLmNoZWNrX2NhbGwoW25pbmphX2JpbmFyeSwgJy1DJywgbGliY3h4X2Rpcl0pCisgICAg IHNodXRpbC5jb3B5Mihvcy5wYXRoLmpvaW4oZ25fYnVpbGRfZGlyLCAnbGliYysrLmduLnNvJyks IG91dF9kaXIpCisgCisgICAgIGRlZiBhcHBlbmRfdG9fZW52KHZhciwgdmFscyk6CitAQCAtMTIw LDcgKzEyMSw3IEBACisgICBzaHV0aWwuY29weTIoCisgICAgICAgb3MucGF0aC5qb2luKEJPT1RT VFJBUF9ESVIsICdsYXN0X2NvbW1pdF9wb3NpdGlvbi5oJyksIGduX2J1aWxkX2RpcikKKyAgIHN1 YnByb2Nlc3MuY2hlY2tfY2FsbCgKKy0gICAgICBbJ25pbmphJywgJy1DJywgZ25fYnVpbGRfZGly LCAnZ24nLCAnLXcnLCAnZHVwYnVpbGQ9ZXJyJ10pCisrICAgICAgW25pbmphX2JpbmFyeSwgJy1D JywgZ25fYnVpbGRfZGlyLCAnLXcnLCAnZHVwYnVpbGQ9ZXJyJywgJ2duJ10pCisgICBzaHV0aWwu Y29weTIob3MucGF0aC5qb2luKGduX2J1aWxkX2RpciwgJ2duJyksIGduX3BhdGgpCisgCisgICBp ZiBub3Qgb3B0aW9ucy5za2lwX2dlbmVyYXRlX2J1aWxkZmlsZXM6CmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWljdV91MTZfbmV4dC5wYXRjaC5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taWN1X3UxNl9u ZXh0LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40 ZWQ0YzAzOGRlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0taWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2RvbS9kb2N1bWVu dC5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvZG9tL2RvY3VtZW50LmNjCitp bmRleCA0NGQ1YTQ5Li5jMmE3YTJmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvY29yZS9kb20vZG9jdW1lbnQuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL2NvcmUvZG9tL2RvY3VtZW50LmNjCitAQCAtNjIxNiw3ICs2MjE2LDcgQEAgc3RhdGljIFBh cnNlUXVhbGlmaWVkTmFtZVJlc3VsdCBQYXJzZVF1YWxpZmllZE5hbWVJbnRlcm5hbCgKKyAKKyAg IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7KSB7CisgICAgIFVDaGFyMzIgYzsKKy0g ICAgVTE2X05FWFQoY2hhcmFjdGVycywgaSwgbGVuZ3RoLCBjKQorKyAgICBVMTZfTkVYVChjaGFy YWN0ZXJzLCBpLCBsZW5ndGgsIGMpOworICAgICBpZiAoYyA9PSAnOicpIHsKKyAgICAgICBpZiAo c2F3X2NvbG9uKQorICAgICAgICAgcmV0dXJuIFBhcnNlUXVhbGlmaWVkTmFtZVJlc3VsdChrUU5N dWx0aXBsZUNvbG9ucyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMjdjZDJjZWZjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCkBAIC0w LDAgKzEsMjYgQEAKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDE3 LTA5LTE1IDA4OjQxOjQzLjAwMDAwMDAwMCArMDAwMAorKysrIGIvYmFzZS9wcm9jZXNzL21lbW9y eV9saW51eC5jYwkyMDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5NTQ2OSArMDAwMAorQEAgLTIxLDYg KzIxLDEyIEBACisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3NyYy9n cGVyZnRvb2xzL3RjbWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElC QykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6 ZSk7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBzaXplX3QgZ19vb21f c2l6ZSA9IDBVOworLS0tIGEvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMTct MDktMTUgMDg6NDY6NTUuMDAwMDAwMDAwICswMDAwCisrKysgYi9iYXNlL3Byb2Nlc3MvbWVtb3J5 X2xpbnV4LmNjCTIwMTctMDktMTUgMDg6NTE6MzQuNDIyMDE2ODU4ICswMDAwCitAQCAtMTA3LDcg KzEwNyw3IEBACisgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChVU0VfVENN QUxMT0MpKQorICAgKnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKExJQkNf R0xJQkMpICYmICFkZWZpbmVkKFVTRV9UQ01BTExPQykKKy0gICpyZXN1bHQgPSBfX2xpYmNfbWFs bG9jKHNpemUpOworKyAgKnJlc3VsdCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKKyAjZWxpZiBk ZWZpbmVkKFVTRV9UQ01BTExPQykKKyAgICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tpcF9uZXdfaGFu ZGxlcihzaXplKTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEt c2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTE2ZGJhOWRjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1s aXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBmZjQx MjJmMjM2YjcwYzI3MmM3NDZkMGMzMzZjZGJkNTg4ZDc4Y2QxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRWx2aXMgUHJhbnNrZXZpY2h1cyA8ZWx2aXNAbWFnaWMuaW8+CitEYXRlOiBU aHUsIDEyIERlYyAyMDE5IDE2OjEyOjE4IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIHNj cmlwdCB0byBsaXN0IHBhdGNoIHRhcmdldHMKKworLS0tCisgc2NyaXB0L2xpc3RfcGF0Y2hfdGFy Z2V0cy5weSB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDIz IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0L2xpc3RfcGF0Y2hfdGFy Z2V0cy5weQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBiL3Nj cmlwdC9saXN0X3BhdGNoX3RhcmdldHMucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAw MDAwMDAwMDAuLjU1MTczYmFjOQorLS0tIC9kZXYvbnVsbAorKysrIGIvc2NyaXB0L2xpc3RfcGF0 Y2hfdGFyZ2V0cy5weQorQEAgLTAsMCArMSwyMyBAQAorKyMhL3Vzci9iaW4vZW52IHB5dGhvbgor KworK2ltcG9ydCBhcmdwYXJzZQorK2ltcG9ydCBqc29uCisrCisrCisrZGVmIHBhcnNlX2FyZ3Mo KToKKysgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdBcHBs eSBFbGVjdHJvbiBwYXRjaGVzJykKKysgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2NvbmZpZycsIG5h cmdzPScrJywKKysgICAgICAgICAgICAgICAgICAgICAgdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgn cicpLAorKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwYXRjaGVzXCcgY29uZmlnKHMpIGlu IHRoZSBKU09OIGZvcm1hdCcpCisrICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoKQorKworKwor K2RlZiBtYWluKCk6CisrICBjb25maWdzID0gcGFyc2VfYXJncygpLmNvbmZpZworKyAgZm9yIGNv bmZpZ19qc29uIGluIGNvbmZpZ3M6CisrICAgIGZvciBwYXRjaF9kaXIsIHJlcG8gaW4ganNvbi5s b2FkKGNvbmZpZ19qc29uKS5pdGVyaXRlbXMoKToKKysgICAgICBwcmludChyZXBvKQorKworKwor K2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisrICBtYWluKCkKKy0tIAorMi4yMy4wCisKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQt Zml4ZXMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0 cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5hNTkxYzJlZGY2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKQEAgLTAs MCArMSw1NyBAQAorZGlmZiAtLWdpdCBhL2J1aWxkL2FyZ3MvYWxsLmduIGIvYnVpbGQvYXJncy9h bGwuZ24KK2luZGV4IDhiYmI4NmUyOC4uODQ3NmQwOWVhIDEwMDY0NAorLS0tIGEvYnVpbGQvYXJn cy9hbGwuZ24KKysrKyBiL2J1aWxkL2FyZ3MvYWxsLmduCitAQCAtMSw1ICsxLDQgQEAKKyBpc19l bGVjdHJvbl9idWlsZCA9IHRydWUKKy11c2VfanVtYm9fYnVpbGQgPSB0cnVlCisgcm9vdF9leHRy YV9kZXBzID0gWyAiLy9lbGVjdHJvbiIgXQorIAorICMgUmVnaXN0cnkgb2YgTk1WcyAtLT4gaHR0 cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2RvYy9hYmlfdmVyc2lvbl9y ZWdpc3RyeS5qc29uCitkaWZmIC0tZ2l0IGEvYnVpbGQvYXJncy9yZWxlYXNlLmduIGIvYnVpbGQv YXJncy9yZWxlYXNlLmduCitpbmRleCBlNTAxN2Y2ZTEuLjU5MjA3YjM4OSAxMDA2NDQKKy0tLSBh L2J1aWxkL2FyZ3MvcmVsZWFzZS5nbgorKysrIGIvYnVpbGQvYXJncy9yZWxlYXNlLmduCitAQCAt MSw2ICsxLDQgQEAKKyBpbXBvcnQoImFsbC5nbiIpCistaXNfY29tcG9uZW50X2J1aWxkID0gZmFs c2UKKy1pc19vZmZpY2lhbF9idWlsZCA9IHRydWUKKyAKKyAjIFRoaXMgbWF5IGJlIGd1YXJkZWQg YmVoaW5kIGlzX2Nocm9tZV9icmFuZGVkIGFsb25nc2lkZQorICMgcHJvcHJpZXRhcnlfY29kZWNz IGh0dHBzOi8vd2VicnRjLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mvc3JjLysvMzYzMjEsCitA QCAtOCw5ICs2LDMgQEAgaXNfb2ZmaWNpYWxfYnVpbGQgPSB0cnVlCisgIyBUaGUgaW5pdGlhbGl6 YXRpb24gb2YgdGhlIGRlY29kZXIgZGVwZW5kcyBvbiB3aGV0aGVyIGZmbXBlZyBoYXMKKyAjIGJl ZW4gYnVpbHQgd2l0aCBILjI2NCBzdXBwb3J0LgorIHJ0Y191c2VfaDI2NCA9IHByb3ByaWV0YXJ5 X2NvZGVjcworLQorLSMgQnkgZGVmYXVsdCwgRWxlY3Ryb24gYnVpbGRzIGZmbXBlZyB3aXRoIHBy b3ByaWV0YXJ5IGNvZGVjcyBlbmFibGVkLiBJbiBvcmRlcgorLSMgdG8gZmFjaWxpdGF0ZSB1c2Vy cyB3aG8gZG9uJ3Qgd2FudCB0byBzaGlwIHByb3ByaWV0YXJ5IGNvZGVjcyBpbiBmZm1wZWcsIG9y CistIyB3aG8gaGF2ZSBhbiBMR1BMIHJlcXVpcmVtZW50IHRvIHNoaXAgZmZtcGVnIGFzIGEgZHlu YW1pY2FsbHkgbGlua2VkIGxpYnJhcnksCistIyB3ZSBidWlsZCBmZm1wZWcgYXMgYSBzaGFyZWQg bGlicmFyeS4KKy1pc19jb21wb25lbnRfZmZtcGVnID0gdHJ1ZQorZGlmZiAtLWdpdCBhL2J1aWxk L25wbS5nbmkgYi9idWlsZC9ucG0uZ25pCitpbmRleCBhMTk4N2QwOTUuLmZiMzNhMTRjMyAxMDA2 NDQKKy0tLSBhL2J1aWxkL25wbS5nbmkKKysrKyBiL2J1aWxkL25wbS5nbmkKK0BAIC0zNSw3ICsz NSw2IEBAIHRlbXBsYXRlKCJucG1fYWN0aW9uIikgeworICAgICBpZiAoIWRlZmluZWQoZGVwcykp IHsKKyAgICAgICBkZXBzID0gW10KKyAgICAgfQorLSAgICBkZXBzICs9IFsgIjpucG1fcHJlX2Zs aWdodF8iICsgdGFyZ2V0X25hbWUgXQorIAorICAgICBzY3JpcHQgPSAiLy9lbGVjdHJvbi9idWls ZC9ucG0tcnVuLnB5IgorICAgICBhcmdzID0gWworZGlmZiAtLWdpdCBhL3BhdGNoZXMvbm9kZS9m aXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2du X2luLnBhdGNoIGIvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJs ZV9sdG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK2luZGV4IDBkYzk5MTZiZS4uN2Vh YTQ2YmY1IDEwMDY0NAorLS0tIGEvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNf Zm9yX2VuYWJsZV9sdG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKKysrKyBiL3BhdGNo ZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92 OF93aXRoX2duX2luLnBhdGNoCitAQCAtMzAsNyArMzAsNyBAQAorICsgICAgIyB0aGVzZSB2YWx1 ZXMgYmVpbmcgYWNjdXJhdGUuCisgKyAgICAnYnVpbGRfdjhfd2l0aF9nbic6ICdmYWxzZScsCisg KyAgICAnZW5hYmxlX2x0byUnOiAnZmFsc2UnLAorLSsKKysrICAgICdvcGVuc3NsX2ZpcHMnOiAn JywKKyAgICAgICdjb25kaXRpb25zJzogWworICAgICAgICBbJ3RhcmdldF9hcmNoPT0iYXJtNjQi JywgeworICAgICAgICAgICMgRGlzYWJsZWQgcGVuZGluZyBodHRwczovL2dpdGh1Yi5jb20vbm9k ZWpzL25vZGUvaXNzdWVzLzIzOTEzLgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1kb250LWFzc3VtZS1w eXRob24taXMtcHl0aG9uMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZmIxMzQ3NDgwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNo CkBAIC0wLDAgKzEsMTcgQEAKKy0tLSBhL2J1aWxkL3ppcC5weS5vcmlnCTIwMjAtMDQtMjcgMTc6 NTk6NTMuNDk5MjgxNjY3ICswMjAwCisrKysgYi9idWlsZC96aXAucHkJMjAyMC0wNC0yNyAxNzo1 OTo1Ny42NTU4MzkxNDMgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHB5 dGhvbgorKyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKKworLS0tIGEvYnVp bGQvbnBtLXJ1bi5weS5vcmlnCTIwMjAtMDQtMjcgMTc6NTk6NTAuODI5MzUxODA3ICswMjAwCisr KysgYi9idWlsZC9ucG0tcnVuLnB5CTIwMjAtMDQtMjcgMTg6MDA6MDIuNzAyMzczMjU2ICswMjAw CitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBweXRob24KKysjIS91c3IvYmluL2Vu diBweXRob24yCisgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorIGltcG9y dCBvcworIGltcG9ydCBzdWJwcm9jZXNzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2VsZWN0cm9uLWZpeC1pbmNsdWRlcy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZGYxZmQ2OTQ2ZAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVz LnBhdGNoCkBAIC0wLDAgKzEsMTkgQEAKKy0tLSBhL3BhdGNoZXMvY2hyb21pdW0vZmVhdF9vZmZz Y3JlZW5fcmVuZGVyaW5nX3dpdGhfdml6X2NvbXBvc2l0b3IucGF0Y2gub3JpZwkyMDIwLTA0LTI3 IDE2OjM3OjA5LjkzNDI3MTIyNyArMDIwMAorKysrIGIvcGF0Y2hlcy9jaHJvbWl1bS9mZWF0X29m ZnNjcmVlbl9yZW5kZXJpbmdfd2l0aF92aXpfY29tcG9zaXRvci5wYXRjaAkyMDIwLTA0LTI3IDE2 OjM3OjUwLjkwMzIwNzE2NiArMDIwMAorQEAgLTM1MCw3ICszNTAsNyBAQAorIGluZGV4IDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NjU5MzlkMDQ0NWEyM2E0Njg3 NzBmNTcyMDdiYTVlZjIzMjc3ZWQKKyAtLS0gL2Rldi9udWxsCisgKysrIGIvY29tcG9uZW50cy92 aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVyL3NvZnR3YXJlX291dHB1dF9kZXZpY2VfcHJveHku aAorLUBAIC0wLDAgKzEsODggQEAKKytAQCAtMCwwICsxLDg5IEBACisgKy8vIENvcHlyaWdodCAy MDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICsvLyBVc2Ug b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo YXQgY2FuIGJlCisgKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitAQCAtMzY0LDYgKzM2 NCw3IEBACisgKworICsjaW5jbHVkZSA8bWVtb3J5PgorICsKKysrI2luY2x1ZGUgImJhc2UvdGhy ZWFkaW5nL3RocmVhZF9jaGVja2VyLmgiCisgKyNpbmNsdWRlICJjb21wb25lbnRzL3Zpei9ob3N0 L2hvc3RfZGlzcGxheV9jbGllbnQuaCIKKyArI2luY2x1ZGUgImNvbXBvbmVudHMvdml6L3NlcnZp Y2UvZGlzcGxheS9zb2Z0d2FyZV9vdXRwdXRfZGV2aWNlLmgiCisgKyNpbmNsdWRlICJjb21wb25l bnRzL3Zpei9zZXJ2aWNlL3Zpel9zZXJ2aWNlX2V4cG9ydC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tbWpzdW5p dC1ub3QtZXhzaXQucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjI1Njc1NDA4NjljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaApAQCAt MCwwICsxLDQ3IEBACitkaWZmIC0tZ2l0IGEvcGF0Y2hlcy92OC9tYWtlX2NyZWF0ZWR5bmFtaWNm dW5jdGlvbl90aHJvd19pZl9kaXNhbGxvd2VkLnBhdGNoIGIvcGF0Y2hlcy92OC9tYWtlX2NyZWF0 ZWR5bmFtaWNmdW5jdGlvbl90aHJvd19pZl9kaXNhbGxvd2VkLnBhdGNoCitpbmRleCBiYWZkMGIw Li45NDljYjJkIDEwMDY0NAorLS0tIGEvcGF0Y2hlcy92OC9tYWtlX2NyZWF0ZWR5bmFtaWNmdW5j dGlvbl90aHJvd19pZl9kaXNhbGxvd2VkLnBhdGNoCisrKysgYi9wYXRjaGVzL3Y4L21ha2VfY3Jl YXRlZHluYW1pY2Z1bmN0aW9uX3Rocm93X2lmX2Rpc2FsbG93ZWQucGF0Y2gKK0BAIC0yNSw0MiAr MjUsMyBAQCBpbmRleCBmNzUwMTRkMDM0NjI2NjQzYWU4M2RjOGYxNjdhNDczYjcyOTE1MjJjLi5i NWMyZThiMjVmMTBmMmZmZjkwMTFhMGExYmQxYWVlZgorICAgIH0KKyAgCisgICAgLy8gQnVpbGQg dGhlIHNvdXJjZSBzdHJpbmcuCistZGlmZiAtLWdpdCBhL3Rlc3QvbWpzdW5pdC9tanN1bml0LnN0 YXR1cyBiL3Rlc3QvbWpzdW5pdC9tanN1bml0LnN0YXR1cworLWluZGV4IDEzNGE0OWY3NDgwYzg3 YWNiYjA4MTMzYTJkNmE0ZDAyOGJiZGQwOTAuLjdkY2FhNDEyMTk5NzcwZDdjNGY2ODhkN2Y4YTY2 ZDg4NzEzMGJmODIgMTAwNjQ0CistLS0tIGEvdGVzdC9tanN1bml0L21qc3VuaXQuc3RhdHVzCist KysrIGIvdGVzdC9tanN1bml0L21qc3VuaXQuc3RhdHVzCistQEAgLTIzMiw2ICsyMzIsOSBAQAor LSAgICMgQlVHKHY4OjYzMDYpLgorLSAgICd3YXNtL2h1Z2UtbWVtb3J5JzogW1NLSVBdLAorLSAK Ky0rICAjIE5lZWRzIHRvIGJlIGFkYXB0ZWQgYWZ0ZXIgY2hhbmdlcyB0byBGdW5jdGlvbiBjb25z dHJ1Y3Rvci4gY2hyb21pdW06MTA2NTA5NAorLSsgICdjcm9zcy1yZWFsbS1maWx0ZXJpbmcnOiBb U0tJUF0sCistKworLSAgICMgQWxsb2NhdGVzIGEgaHVnZSBzdHJpbmcgYW5kIHRoZW4gZmxhdHRl bnMgaXQsIHZlcnkgc2xvdyBpbiBkZWJ1ZyBtb2RlLgorLSAgICdyZWdyZXNzL3JlZ3Jlc3MtNzUy NzY0JzogW1BBU1MsIFsnbW9kZSA9PSBkZWJ1ZycsIFNMT1ddXSwKKy0gCistZGlmZiAtLWdpdCBh L3Rlc3QvbWpzdW5pdC9yZWdyZXNzLTEwNjUwOTQuanMgYi90ZXN0L21qc3VuaXQvcmVncmVzcy0x MDY1MDk0LmpzCistbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy1pbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjVlMjAyODViYjA1MDVkZWMzZjg0YzRkZjU3ZGIw NTI1ZTdhY2MzCistLS0tIC9kZXYvbnVsbAorLSsrKyBiL3Rlc3QvbWpzdW5pdC9yZWdyZXNzLTEw NjUwOTQuanMKKy1AQCAtMCwwICsxLDE5IEBACistKy8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBw cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistKy8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK Ky0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0rCistKy8vIEZsYWdzOiAtLWFsbG93 LW5hdGl2ZXMtc3ludGF4CistKworLStmdW5jdGlvbiBmKGZuQ29uc3RydWN0b3IpIHsKKy0rICAg IHJldHVybiBPYmplY3QuaXMobmV3IGZuQ29uc3RydWN0b3IoKSwgdW5kZWZpbmVkKTsKKy0rfQor LSsKKy0rY29uc3QgcmVhbG1JbmRleCA9IFJlYWxtLmNyZWF0ZUFsbG93Q3Jvc3NSZWFsbUFjY2Vz cygpOworLStjb25zdCBvdGhlckZ1bmN0aW9uID0gUmVhbG0uZ2xvYmFsKHJlYWxtSW5kZXgpLkZ1 bmN0aW9uOworLStSZWFsbS5kZXRhY2hHbG9iYWwocmVhbG1JbmRleCk7CistKworLSslUHJlcGFy ZUZ1bmN0aW9uRm9yT3B0aW1pemF0aW9uKGYpOworLSthc3NlcnRGYWxzZShmKEZ1bmN0aW9uKSk7 CistK2Fzc2VydFRocm93cyhfID0+IGYob3RoZXJGdW5jdGlvbikpOworLSslT3B0aW1pemVGdW5j dGlvbk9uTmV4dENhbGwoZik7CistK2Fzc2VydFRocm93cyhfID0+IGYob3RoZXJGdW5jdGlvbikp OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvdGVtcGxhdGUgYi9zcmNwa2dzL2VsZWN0 cm9uNy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGJk OGM3NmJjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy90ZW1wbGF0ZQpA QCAtMCwwICsxLDI1NyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnZWxlY3Ryb243JworcGtnbmFt ZT1lbGVjdHJvbjcKK3ZlcnNpb249Ny4zLjIKK3JldmlzaW9uPTEKK19ub2RldmVyPTEyLjguMQor X2Nocm9taXVtdmVyPTc4LjAuMzkwNC4xMDgKK2FyY2hzPSJ4ODZfNjQqIgorY3JlYXRlX3dya3Ny Yz15ZXMKK2J1aWxkX3dya3NyYz0ic3JjIgoraG9zdG1ha2VkZXBlbmRzPSJjbGFuZyB5YXNtIHB5 dGhvbiBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCisgd2hpY2gg Z2l0IGxpYmF0b21pYy1kZXZlbCBsaWJldmVudC1kZXZlbCBsaWJnbGliLWRldmVsIHlhcm4gb3Bl bmpkayIKK21ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBu c3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwKKyBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGli Z25vbWUta2V5cmluZy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxzLWRldmVsCisgbGliWGNvbXBv c2l0ZS1kZXZlbCBzcGVlY2gtZGlzcGF0Y2hlci1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbWl0LWty YjUtZGV2ZWwKKyBsaWJYU2NyblNhdmVyLWRldmVsIGFsc2EtbGliLWRldmVsIHNuYXBweS1kZXZl bCBsaWJkcm0tZGV2ZWwKKyBsaWJ4bWwyLWRldmVsIGxpYnhzbHQtZGV2ZWwgcHVsc2VhdWRpby1k ZXZlbCBsaWJleGlmLWRldmVsCisgbGliWGN1cnNvci1kZXZlbCBsaWJmbGFjLWRldmVsIHNwZWV4 LWRldmVsIGxpYm10cC1kZXZlbCBsaWJ3ZWJwLWRldmVsCisgbGlianBlZy10dXJiby1kZXZlbCBs aWJldmVudC1kZXZlbCBqc29uLWMtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKKyBtaW5pemlwLWRldmVs IGpzb25jcHAtZGV2ZWwgemxpYi1kZXZlbCBsaWJjYXAtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbAor IHJlMi1kZXZlbCBmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIG9wdXMtZGV2ZWwKKyBm Zm1wZWctZGV2ZWwgbGlidmEtZGV2ZWwgbGlidXYtZGV2ZWwgYy1hcmVzLWRldmVsIGxpYm5vdGlm eS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGZyYW1ld29yayBi YXNlZCBvbiB3ZWIgdGVjaG5vbG9naWVzIgorbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKK2hvbWVwYWdlPSJodHRwczovL2VsZWN0 cm9uanMub3JnIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ry b24vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6PmVsZWN0cm9uLSR7dmVyc2lvbn0udGFyLmd6Cisg aHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2Vy LW9mZmljaWFsL2Nocm9taXVtLSRfY2hyb21pdW12ZXIudGFyLnh6CisgaHR0cHM6Ly9naXRodWIu Y29tL25vZGVqcy9ub2RlL2FyY2hpdmUvdiRfbm9kZXZlci50YXIuZ3o+bm9kZS0kX25vZGV2ZXIu dGFyLmd6IgorY2hlY2tzdW09IjRlZGU1MDFmMGQ1ZWUzMDY4NDc0YzllMmFjMTU0Y2QyM2ZkYjM1 ODBjMGNmZjUyMzBkNGRkY2ZmZTU0MmU2YmEKKyBmOWM1MzgzOWYzMDZkMjk3M2RlMjc3MjMzNjAw MjRmNzkwNDEwMWQ0MjZiOWU3ZTljZGI1NmU4YmNjNzc1YjBlCisgMTE2NDhkNTg2ZjY4ZWU1ZmMz OGU0Y2FkZjM5NzQ1NDFhYWM0YTY3NzA5ZmEwMjhlOTA3NWFmZjQyZTI4ZDliOSIKKworbGliMzJk aXNhYmxlZD15ZXMKK25vZGVidWc9eWVzCitub3BpZT15ZXMgICMgY29udGFpbnMgdG9vbHMgdGhh dCBhcmUgbm90IFBJRSwgZW5hYmxlcyBQSUUgaXRzZWxmCisKKyMgWFhYOiBwdWxzZWF1ZGlvIGJy b2tlbiBhdCBjb21waWxlIHRpbWUKK2J1aWxkX29wdGlvbnM9InB1bHNlYXVkaW8iCitidWlsZF9v cHRpb25zX2RlZmF1bHQ9IiIKKworX2J1aWxkdHlwZT1SZWxlYXNlCitfaXNfZGVidWc9ZmFsc2UK KworQ0ZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZQSUMiCitDWFhGTEFHUz0i LVduby11bmtub3duLXdhcm5pbmctb3B0aW9uIC1mUElDIgorCitwb3N0X2V4dHJhY3QoKSB7CisJ bG4gLXMgY2hyb21pdW0tJF9jaHJvbWl1bXZlciBzcmMKKwlta2RpciAtcCBzcmMvdGhpcmRfcGFy dHkvCisJbG4gLXMgLi4vLi4vbm9kZS0kX25vZGV2ZXIgc3JjL3RoaXJkX3BhcnR5L2VsZWN0cm9u X25vZGUKKwlsbiAtcyAuLi9lbGVjdHJvbi0ke3ZlcnNpb259IHNyYy9lbGVjdHJvbgorCit9Citw b3N0X3BhdGNoKCkgeworCWNkICR3cmtzcmMKKwlmb3IgeCBpbiAkRklMRVNESVIvcGF0Y2hlcy8q OyBkbworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWNocm9taXVtKi5wYXRjaCkKKwkJCQljZCBz cmMKKwkJCQllY2hvIFBhdGNoaW5nICR4CisJCQkJcGF0Y2ggLXAxIC1pICIkeCIKKwkJCQljZCAi JHdya3NyYyIKKwkJCQk7OworCQkJZWxlY3Ryb24qLnBhdGNoKQorCQkJCWNkIHNyYy9lbGVjdHJv bgorCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQlwYXRjaCAtcDEgLWkgIiR4IgorCQkJCWNkICIk d3Jrc3JjIgorCQllc2FjCisJZG9uZQorCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KKwlmb3IgeCBpbiAkRklMRVNESVIvbXVzbC1wYXRjaGVzLyo7IGRvCisJCWNh c2UgIiR7eCMjKi99IiBpbgorCQkJY2hyb21pdW0qLnBhdGNoKQorCQkJCWNkIHNyYworCQkJCWVj aG8gUGF0Y2hpbmcgJHgKKwkJCQlwYXRjaCAtcDEgLWkgIiR4IgorCQkJCWNkICIkd3Jrc3JjIgor CQkJCTs7CisJCQllbGVjdHJvbioucGF0Y2gpCisJCQkJY2Qgc3JjL2VsZWN0cm9uCisJCQkJZWNo byBQYXRjaGluZyAkeAorCQkJCXBhdGNoIC1wMSAtaSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiCisJ CWVzYWMKKwlkb25lCisJZmkKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwljZCAkd3Jrc3JjCisJ IyBTaWdoLCBlbGVjdHJvbiB1c2VzIGdpdCBhbS4uLgorCXB5dGhvbjIgc3JjL2VsZWN0cm9uL3Nj cmlwdC9saXN0X3BhdGNoX3RhcmdldHMucHkgc3JjL2VsZWN0cm9uL3BhdGNoZXMvY29uZmlnLmpz b24gfCB3aGlsZSByZWFkIC1yIHJlcG9wYXRoOyBkbworCQljZCAiJHdya3NyYyIvIiRyZXBvcGF0 aCIKKwkJZ2l0IGluaXQgLXEKKwkJZ2l0IGNvbmZpZyAiZ2MuYXV0byIgMAorCQlpZiBbICIkcmVw b3BhdGgiICE9ICJzcmMiIF07IHRoZW4KKwkJCWVjaG8gIi8ke3JlcG9wYXRoI3NyYy99IiA+PiAi JHdya3NyYy8kYnVpbGRfd3Jrc3JjLy5naXRpZ25vcmUiCisJCWZpCisJCWdpdCBhZGQgLgorCQln aXQgLWMgJ3VzZXIubmFtZT1FbGVjdHJvbiBidWlsZCcgLWMgJ3VzZXIuZW1haWw9ZWxlY3Ryb25A ZWJ1aWxkJyBcCisJCQljb21taXQgLXEgLW0gIi4iIHx8IHRydWUKKwlkb25lCisKKwlweXRob24y IHNyYy9lbGVjdHJvbi9zY3JpcHQvYXBwbHlfYWxsX3BhdGNoZXMucHkgc3JjL2VsZWN0cm9uL3Bh dGNoZXMvY29uZmlnLmpzb24KKworCWNkICIkYnVpbGRfd3Jrc3JjIgorCisJIyBodHRwczovL2dy b3Vwcy5nb29nbGUuY29tL2EvY2hyb21pdW0ub3JnL2QvdG9waWMvY2hyb21pdW0tcGFja2FnZXJz LzlKWDFOMm5mNFBVL2Rpc2N1c3Npb24KKwl0b3VjaCBjaHJvbWUvdGVzdC9kYXRhL3dlYnVpL2kx OG5fcHJvY2Vzc19jc3NfdGVzdC5odG1sCisJIyBVc2UgdGhlIGZpbGUgYXQgcnVuIHRpbWUgaW5z dGVhZCBvZiBlZmZlY3RpdmVseSBjb21waWxpbmcgaXQgaW4KKwlzZWQgJ3N8Ly90aGlyZF9wYXJ0 eS91c2JfaWRzL3VzYi5pZHN8L3Vzci9zaGFyZS9od2RhdGEvdXNiLmlkc3xnJyBcCisJCS1pIHNl cnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL3VzYi9CVUlMRC5nbgorCisJbWtkaXIgLXAgdGhpcmRf cGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4KKwlsbiAtcyAvdXNyL2Jpbi9ub2Rl IHRoaXJkX3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51eC14NjQvYmluLworCisJIyByZXVzYWJs ZSBzeXN0ZW0gbGlicmFyeSBzZXR0aW5ncworCWxvY2FsIHVzZV9zeXN0ZW09IgorCQlmZm1wZWcK KwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhhcmZidXp6LW5nCisJCWxpYmRy bQorCQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3ZWJwCisJCWxpYnhtbAor CQlsaWJ4c2x0CisJCW9wdXMKKwkJcmUyCisJCXNuYXBweQorCQl5YXNtCisJCSIKKwlmb3IgX2xp YiBpbiAkdXNlX3N5c3RlbSBsaWJqcGVnX3R1cmJvOyBkbworCQltc2dfbm9ybWFsICJSZW1vdmlu ZyBidWlsZHNjcmlwdHMgZm9yIHN5c3RlbSBwcm92aWRlZCAkX2xpYlxuIgorCQlmaW5kIC10eXBl IGYgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi8qIiBcCisJCQlcISAtcGF0aCAiKnRoaXJkX3Bh cnR5LyRfbGliL2Nocm9taXVtLyoiIFwKKwkJCVwhIC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIv Z29vZ2xlLyoiIFwKKwkJCVwhIC1wYXRoICcuL2Jhc2UvdGhpcmRfcGFydHkvaWN1LyonIFwKKwkJ CVwhIC1wYXRoICcuL3RoaXJkX3BhcnR5L2xpYnhtbC8qJyBcCisJCQlcISAtcGF0aCAnLi90aGly ZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkvZnJlZXR5cGUvaW5jbHVkZS9wc3RhYmxlcy5oJyBc CisJCQlcISAtcGF0aCAnLi90aGlyZF9wYXJ0eS95YXNtL3J1bl95YXNtLnB5JyBcCisJCQlcISAt cmVnZXggJy4qXC5cKGduXHxnbmlcfGlzb2xhdGVcfHB5XCknIFwKKwkJCS1kZWxldGUKKwlkb25l CisKKworCW1zZ19ub3JtYWwgIlJlcGxhY2luZyBnbiBmaWxlc1xuIgorCXB5dGhvbjIgYnVpbGQv bGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weSAtLXN5c3RlbS1saWJyYXJpZXMgXAor CQkkdXNlX3N5c3RlbQorCXRoaXJkX3BhcnR5L2xpYmFkZHJlc3NpbnB1dC9jaHJvbWl1bS90b29s cy91cGRhdGUtc3RyaW5ncy5weQorfQorCitkb19jb25maWd1cmUoKSB7CisJbG9jYWwgY29uZj0o KQorCWNkIHRoaXJkX3BhcnR5L2VsZWN0cm9uX25vZGUKKworCS4vY29uZmlndXJlIC0tcHJlZml4 PS91c3IgXAorCQktLXNoYXJlZC16bGliIFwKKwkJLS1zaGFyZWQtbGlidXYgXAorCQktLXNoYXJl ZC1vcGVuc3NsIFwKKwkJLS1zaGFyZWQtY2FyZXMgXAorCQktLW9wZW5zc2wtdXNlLWRlZi1jYS1z dG9yZSBcCisJCS0td2l0aG91dC1ucG0gXAorCQktLXdpdGhvdXQtZHRyYWNlIFwKKwkJLS13aXRo b3V0LWJ1bmRsZWQtdjgKKworCWNkICIkd3Jrc3JjLyRidWlsZF93cmtzcmMiL2VsZWN0cm9uCisJ eWFybiBpbnN0YWxsCisJZWNobyAkd3Jrc3JjLyRidWlsZF93cmtzcmMKKwljZCAiJHdya3NyYy8k YnVpbGRfd3Jrc3JjIgorCisJIyBHb29nbGUgQVBJIGtleXMgKHNlZSBodHRwOi8vd3d3LmNocm9t aXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10b3MvYXBpLWtleXMpCisJIyBOb3RlOiBUaGVzZSBhcmUg Zm9yIFZvaWQgTGludXggdXNlIE9OTFkuCisJY29uZis9KAorCQknZ29vZ2xlX2FwaV9rZXk9IkFJ emFTeUE5Z1dhekthSGFOSVBQZzJock1qNl9aU0c4QUZtcTczOCInCisJCSdnb29nbGVfZGVmYXVs dF9jbGllbnRfaWQ9IjEyNjY1OTE0OTQyMy1ob282aWNrYmszcDF1MnFqc2RzcDBkZGNpdXJmdmI0 dC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSInCisJCSdnb29nbGVfZGVmYXVsdF9jbGllbnRf c2VjcmV0PSJfb3pJeDJELURLbV9zZV8yTlB3VjRsNWIiJworCSkKKworCWNvbmYrPSgKKwkJJ2Js aW5rX3N5bWJvbF9sZXZlbD0wJworCQknY2xhbmdfdXNlX2Nocm9tZV9wbHVnaW5zPWZhbHNlJwor CQknY2xvc3VyZV9jb21waWxlPXRydWUnCisJCSdjdXN0b21fdG9vbGNoYWluPSIvL2J1aWxkL3Rv b2xjaGFpbi9saW51eC91bmJ1bmRsZTpkZWZhdWx0IicKKwkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1 aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpkZWZhdWx0IicKKwkJJ2VuYWJsZV9oYW5nb3V0 X3NlcnZpY2VzX2V4dGVuc2lvbj10cnVlJworCQknZW5hYmxlX25hY2xfbm9uc2ZpPWZhbHNlJwor CQknZW5hYmxlX25hY2w9ZmFsc2UnCisJCSdlbmFibGVfcHJlY29tcGlsZWRfaGVhZGVycz1mYWxz ZScKKwkJJ2ZhdGFsX2xpbmtlcl93YXJuaW5ncz1mYWxzZScKKwkJJ2ZmbXBlZ19icmFuZGluZz0i Q2hyb21lIicKKwkJJ2ZpZWxkdHJpYWxfdGVzdGluZ19saWtlX29mZmljaWFsX2J1aWxkPXRydWUn CisJCSdnb2xkX3BhdGg9Ii91c3IvYmluL2xkLmdvbGQiJworCQknaWN1X3VzZV9kYXRhX2ZpbGU9 dHJ1ZScKKwkJJ2lzX2NsYW5nPXRydWUnCisJCSdpc19jb21wb25lbnRfYnVpbGQ9ZmFsc2UnCisJ CSJpc19kZWJ1Zz0kX2lzX2RlYnVnIgorCQknaXNfZGVza3RvcF9saW51eD10cnVlJworCQknbGlu dXhfdXNlX2J1bmRsZWRfYmludXRpbHM9ZmFsc2UnCisJCSdwcm9wcmlldGFyeV9jb2RlY3M9dHJ1 ZScKKwkJJ3N5bWJvbF9sZXZlbD0wJworCQkndHJlYXRfd2FybmluZ3NfYXNfZXJyb3JzPWZhbHNl JworCQkndXNlX2FsbG9jYXRvcl9zaGltPWZhbHNlJworCQkndXNlX2FsbG9jYXRvcj0ibm9uZSIn CisJCSd1c2VfY3Vwcz10cnVlJworCQkndXNlX2N1c3RvbV9saWJjeHg9ZmFsc2UnCisJCSd1c2Vf Z25vbWVfa2V5cmluZz1mYWxzZScKKwkJJ3VzZV9nb2xkPWZhbHNlJworCQkndXNlX2xsZD1mYWxz ZScKKwkJInVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvICd0cnVlJyAnZmFsc2Un KSIKKwkJJ3VzZV9zeXNyb290PWZhbHNlJworCQkndXNlX3N5c3RlbV9oYXJmYnV6ej10cnVlJwor CQknaW1wb3J0KCIvL2VsZWN0cm9uL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiIpJworCSkKKworCW1z Z19ub3JtYWwgIkJvb3RzdHJhcHBpbmcgR05cbiIKKyMJQVI9ImFyIiBDQz0iJHtDQzotZ2NjfSIg Q1hYPSIke0NYWDotZysrfSIgTEQ9IiR7Q1hYOi1nKyt9IiBcCisJQ0M9IiR7Q0M6LWNsYW5nfSIg Q1hYPSIke0NYWDotY2xhbmcrK30iIExEPSIke0NYWDotY2xhbmcrK30iIFwKKwkJcHl0aG9uMiB0 b29scy9nbi9ib290c3RyYXAvYm9vdHN0cmFwLnB5IC1zIC12IC0tZ24tZ2VuLWFyZ3MgIiR7Y29u ZlsqXX0iCisKKwltc2dfbm9ybWFsICJDb25maWd1cmluZyBidWlsZFxuIgorCisJQVI9ImFyIiBD Qz0iY2xhbmciIENYWD0iY2xhbmcrKyIgTEQ9ImNsYW5nKysiIE5NPS91c3IvYmluL25tIFwKKwkJ b3V0L1JlbGVhc2UvZ24gZ2VuIG91dC8kX2J1aWxkdHlwZSAtLWFyZ3M9IiR7Y29uZlsqXX0iCit9 CisKK2RvX2J1aWxkKCkgeworCW1zZ19ub3JtYWwgIk5pbmphIHR1cnRsZXMgR08hXG4iCisJbmlu amEgJHttYWtlam9ic30gLUMgb3V0L1JlbGVhc2UgdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZTpo ZWFkZXJzCisKKwluaW5qYSAke21ha2Vqb2JzfSAtQyBvdXQvJF9idWlsZHR5cGUgZWxlY3Ryb24K KwkjIGZpbmlzaCByZXN0IG9mIHRoZSBidWlsZAorCXN0cmlwIC1zIG91dC8kX2J1aWxkdHlwZS9l bGVjdHJvbgorCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8kX2J1aWxkdHlwZSBlbGVjdHJvbl9k aXN0X3ppcAorfQorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xpYi8kcGtnbmFtZQor CXZta2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUKKwlic2R0YXIgLXhmIG91dC8kX2J1aWxkdHlw ZS9kaXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZSIKKworCWNobW9kIHUrcyAi JERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZS9jaHJvbWUtc2FuZGJveCIKKworCWNwIG91dC8kX2J1 aWxkdHlwZS9nZW4vbm9kZV9oZWFkZXJzLnRhci5neiAiJERFU1RESVIiL3Vzci9pbmNsdWRlLyRw a2duYW1lCisKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL0xJQ0VOU0UgY2hyb21pdW0uTElDRU5T RQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvZWxlY3Ryb24vTElDRU5TRSBlbGVjdHJvbi5MSUNF TlNFCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy90aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlL0xJ Q0VOU0Ugbm9kZS5MSUNFTlNFCisKKwl2bWtkaXIgL3Vzci9iaW4KKwlsbiAtcyAuLi9saWIvJHBr Z25hbWUvZWxlY3Ryb24gIiRERVNURElSIi91c3IvYmluLyRwa2duYW1lCit9CmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uNy91cGRhdGUgYi9zcmNwa2dzL2VsZWN0cm9uNy91cGRhdGUKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNhZjhlNThiNTM1Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvdXBkYXRlCkBAIC0wLDAgKzEsMiBAQAorc2l0 ZT1odHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy9yZWxlYXNlcy9zdGFibGU/dmVyc2lvbj0ke3Zl cnNpb24lJS4qfQorcGF0dGVybj0ndGFnL3ZcS1tcZFwuXSsoPz0iKScKCkZyb20gNGExN2YxYWUz M2ZjZGE5NWUwYzI4MWI1NzE1NGIyYjc2ODBmYjk0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDggTWF5IDIwMjAgMTk6 MTc6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gdnNjb2RlOiBidWlsdCBhZ2FpbnN0IHN5 c3RlbSBlbGVjdHJvbgoKW2NpIHNraXBdCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgLQogLi4uL3ZzY29kZS9wYXRjaGVzL2RvbnQtZG93bmxv YWQtZmZtcGVnLnBhdGNoIHwgMTQgKysrKysrKysrKwogc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9m aXhfZGlyLnBhdGNoICAgICAgICAgIHwgIDYgKystLS0KIHNyY3BrZ3MvdnNjb2RlL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrLS0tLS0KIDQgZmlsZXMg Y2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaAoK ZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDg4N2YxNjBk NWZkLi5kZjVlNTIyMTZhYyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24v c2hsaWJzCkBAIC0xMzAsNyArMTMwLDYgQEAgbGliR0xFU3YyLnNvIGRpc2NvcmQtMC4wLjdfMQog bGliR0xFU3YyLnNvIGtleWJhc2UtZGVza3RvcC0zLjEuMl8xCiBsaWJHTEVTdjIuc28gcmlvdC1k ZXNrdG9wLTAuMTcuOV8yCiBsaWJHTEVTdjIuc28gd2lyZS1kZXNrdG9wLTMuNi4yODg1XzEKLWxp YkdMRVN2Mi5zbyB2c2NvZGUtMS4zNi4xXzEKIGxpYkdMRVN2Mi5zbyBTaWduYWwtRGVza3RvcC0x LjIzLjJfMQogbGliR0xFU3YyLnNvIHNsYWNrLWRlc2t0b3AtMy40LjJfMQogbGliYnJjbUVHTC5z byBycGktdXNlcmxhbmQtMjAxODAxMDNfMgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92c2NvZGUvcGF0 Y2hlcy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaCBiL3NyY3BrZ3MvdnNjb2RlL3BhdGNoZXMv ZG9udC1kb3dubG9hZC1mZm1wZWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjk1ZWVlMzYxZTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy92c2NvZGUv cGF0Y2hlcy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaApAQCAtMCwwICsxLDE0IEBACitkaWZm IC0tZ2l0IGEvYnVpbGQvZ3VscGZpbGUudnNjb2RlLmpzIGIvYnVpbGQvZ3VscGZpbGUudnNjb2Rl LmpzCitpbmRleCAzNDg4ZDdiNTFjLi43MzEyODJhODgxIDEwMDY0NAorLS0tIGEvYnVpbGQvZ3Vs cGZpbGUudnNjb2RlLmpzCisrKysgYi9idWlsZC9ndWxwZmlsZS52c2NvZGUuanMKK0BAIC0yNjcs NyArMjY3LDcgQEAgZnVuY3Rpb24gcGFja2FnZVRhc2socGxhdGZvcm0sIGFyY2gsIHNvdXJjZUZv bGRlck5hbWUsIGRlc3RpbmF0aW9uRm9sZGVyTmFtZSwgb3AKKyAJCWxldCByZXN1bHQgPSBhbGwK KyAJCQkucGlwZSh1dGlsLnNraXBEaXJlY3RvcmllcygpKQorIAkJCS5waXBlKHV0aWwuZml4V2lu MzJEaXJlY3RvcnlQZXJtaXNzaW9ucygpKQorLQkJCS5waXBlKGVsZWN0cm9uKF8uZXh0ZW5kKHt9 LCBjb25maWcsIHsgcGxhdGZvcm0sIGFyY2gsIGZmbXBlZ0Nocm9taXVtOiB0cnVlIH0pKSkKKysJ CQkucGlwZShlbGVjdHJvbihfLmV4dGVuZCh7fSwgY29uZmlnLCB7IHBsYXRmb3JtLCBhcmNoLCBm Zm1wZWdDaHJvbWl1bTogZmFsc2UgfSkpKQorIAkJCS5waXBlKGZpbHRlcihbJyoqJywgJyFMSUNF TlNFJywgJyFMSUNFTlNFUy5jaHJvbWl1bS5odG1sJywgJyF2ZXJzaW9uJ10sIHsgZG90OiB0cnVl IH0pKTsKKyAKKyAJCWlmIChwbGF0Zm9ybSA9PT0gJ2xpbnV4JykgeworIApkaWZmIC0tZ2l0IGEv c3JjcGtncy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNoIGIvc3JjcGtncy92c2NvZGUvcGF0 Y2hlcy9maXhfZGlyLnBhdGNoCmluZGV4IGY0MjUxZTg5YmNiLi44MTMyYWM3ZTI4YyAxMDA2NDQK LS0tIGEvc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNoCisrKyBiL3NyY3BrZ3Mv dnNjb2RlL3BhdGNoZXMvZml4X2Rpci5wYXRjaApAQCAtMjAsNyArMjAsNyBAQCBpbmRleCBiODU1 MjVmYmQwNDIuLmRjNzYxNzA1MWI5NSAxMDA2NDQKICBDb21tZW50PUNvZGUgRWRpdGluZy4gUmVk ZWZpbmVkLgogIEdlbmVyaWNOYW1lPVRleHQgRWRpdG9yCiAtRXhlYz1AQEVYRUNAQCAtLW5vLXNh bmRib3ggLS1vcGVuLXVybCAlVQotK0V4ZWM9L3Vzci9saWIvQEBOQU1FQEAvQEBOQU1FQEAgLS1u by1zYW5kYm94IC0tb3Blbi11cmwgJVUKKytFeGVjPS91c3IvbGliL0BATkFNRUBAL2Jpbi9AQE5B TUVAQCAtLW5vLXNhbmRib3ggLS1vcGVuLXVybCAlVQogIEljb249QEBJQ09OQEAKICBUeXBlPUFw cGxpY2F0aW9uCiAgTm9EaXNwbGF5PXRydWUKQEAgLTMzLDcgKzMzLDcgQEAgaW5kZXggYjk3NWUx MDk0YTJjLi5hMDk0Y2MzNmU4MTAgMTAwNjQ0CiAgQ29tbWVudD1Db2RlIEVkaXRpbmcuIFJlZGVm aW5lZC4KICBHZW5lcmljTmFtZT1UZXh0IEVkaXRvcgogLUV4ZWM9QEBFWEVDQEAgLS1uby1zYW5k Ym94IC0tdW5pdHktbGF1bmNoICVGCi0rRXhlYz0vdXNyL2xpYi9AQE5BTUVAQC9AQE5BTUVAQCAt LW5vLXNhbmRib3ggLS11bml0eS1sYXVuY2ggJUYKKytFeGVjPS91c3IvbGliL0BATkFNRUBAL2Jp bi9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS11bml0eS1sYXVuY2ggJUYKICBJY29uPUBASUNPTkBA CiAgVHlwZT1BcHBsaWNhdGlvbgogIFN0YXJ0dXBOb3RpZnk9ZmFsc2UKQEAgLTQyLDUgKzQyLDUg QEAgaW5kZXggYjk3NWUxMDk0YTJjLi5hMDk0Y2MzNmU4MTAgMTAwNjQ0CiAgW0Rlc2t0b3AgQWN0 aW9uIG5ldy1lbXB0eS13aW5kb3ddCiAgTmFtZT1OZXcgRW1wdHkgV2luZG93CiAtRXhlYz1AQEVY RUNAQCAtLW5vLXNhbmRib3ggLS1uZXctd2luZG93ICVGCi0rRXhlYz0vdXNyL2xpYi9AQE5BTUVA QC9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS1uZXctd2luZG93ICVGCisrRXhlYz0vdXNyL2xpYi9A QE5BTUVAQC9iaW4vQEBOQU1FQEAgLS1uby1zYW5kYm94IC0tbmV3LXdpbmRvdyAlRgogIEljb249 QEBJQ09OQEAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRlIGIvc3JjcGtncy92 c2NvZGUvdGVtcGxhdGUKaW5kZXggZDg3MDQ1NGU2ZjkuLjQxMTU2YTBlYzQ5IDEwMDY0NAotLS0g YS9zcmNwa2dzL3ZzY29kZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3ZzY29kZS90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndnNjb2RlJwogcGtnbmFtZT12 c2NvZGUKIHZlcnNpb249MS40Ni4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCitfZWxlY3Ryb252 ZXI9Ny4zLjIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBweXRob24gbm9kZWpzLWx0cy0x MCB5YXJuIHRhciIKLW1ha2VkZXBlbmRzPSJsaWJ4a2JmaWxlLWRldmVsIGxpYnNlY3JldC1kZXZl bCIKLWRlcGVuZHM9ImxpYlh0c3QgbGlieGtiZmlsZSBuc3MgZGVqYXZ1LWZvbnRzLXR0ZiB4ZGct dXRpbHMiCittYWtlZGVwZW5kcz0ibGlieGtiZmlsZS1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgZWxl Y3Ryb243IgorZGVwZW5kcz0icmlwZ3JlcCBlbGVjdHJvbjciCitkZXBlbmRzPSJsaWJYdHN0IGxp YnhrYmZpbGUgbnNzIGRlamF2dS1mb250cy10dGYgeGRnLXV0aWxzIGVsZWN0cm9uNyIKIHNob3J0 X2Rlc2M9Ik1pY3Jvc29mdCBDb2RlIGZvciBMaW51eCIKIG1haW50YWluZXI9InNoaXpvbmljIDxy ZWFsdGlhekBnbWFpbC5jb20+IgogbGljZW5zZT0iTUlUIgpAQCAtMTQsNyArMTYsNyBAQCBjaGVj a3N1bT01YmY0ZDUxNzczYmIyNmE0ODRlMDA2M2I2NjhjYmEzOGI1Zjc0NTFjYjc3YmUyMzBmYmY2 NGZhNDRkNDk4YWQ4CiBwYXRjaF9hcmdzPSItTnAxIgogCiAjIER1ZSB0byBlbGVjdHJvbgotYXJj aHM9Ing4Nl82NCIKK2FyY2hzPSJ4ODZfNjQqIgogbm9zdHJpcF9maWxlcz0iY29kZS1vc3MiCiAK IHByZV9idWlsZCgpIHsKQEAgLTI2LDYgKzI4LDkgQEAgcHJlX2J1aWxkKCkgewogCV9URUxFTUVU UllfVVJMUz0iKGRjXC5zZXJ2aWNlc1wudmlzdWFsc3R1ZGlvXC5jb20pfCh2b3J0ZXhcLmRhdGFc Lm1pY3Jvc29mdFwuY29tKSIKIAlfUkVQTEFDRU1FTlQ9InMvJF9URUxFTUVUUllfVVJMUy8wXC4w XC4wXC4wL2ciCiAJZ3JlcCAtcmwgLS1leGNsdWRlLWRpcj0uZ2l0IC1FICRfVEVMRU1FVFJZX1VS TFMgfCB4YXJncyBzZWQgLWkgLUUgJF9SRVBMQUNFTUVOVAorCisJIyBzZXQgdXNlZCBlbGVjdHJv biB2ZXJzaW9uCisJc2VkIC1pICJzL150YXJnZXQgLiovdGFyZ2V0IFwiJHtfZWxlY3Ryb252ZXJ9 XCIvIiAueWFybnJjCiB9CiAKIGRvX2J1aWxkKCkgewpAQCAtMzUsMTggKzQwLDI4IEBAIGRvX2J1 aWxkKCkgewogCV9tZW1fbGltaXQ9Ii0tbWF4X29sZF9zcGFjZV9zaXplPTQwOTUiCiAKIAlleHBv cnQgTk9ERV9PUFRJT05TPSIke19tZW1fbGltaXR9IgotCXlhcm4gaW5zdGFsbCAtLWlnbm9yZS1l bmdpbmVzIC0tYXJjaD14NjQKKwkvdXNyL2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ub2RlLWd5 cC1iaW4vbm9kZS1neXAgaW5zdGFsbCBcCisJCS0tdGFyZ2V0PSRfZWxlY3Ryb252ZXIgXAorCQkt LXRhcmJhbGw9L3Vzci9pbmNsdWRlL2VsZWN0cm9uNy9ub2RlX2hlYWRlcnMudGFyLmd6CisJeWFy biBpbnN0YWxsIC0taWdub3JlLWVuZ2luZXMgLS1mcm96ZW4tbG9ja2ZpbGUgLS1hcmNoPXg2NAor CWV4cG9ydCBDRkxBR1M9IiRDRkxBR1MgLUkvdXNyL2luY2x1ZGUvbm9kZSIKIAl5YXJuIHJ1biBn dWxwIHZzY29kZS1saW51eC14NjQtbWluCiB9CiAKIGRvX2luc3RhbGwoKSB7CiAJdm1rZGlyIHVz ci9saWIvY29kZS1vc3MKLQl2Y29weSAuLi9WU0NvZGUtbGludXgteDY0LyogdXNyL2xpYi9jb2Rl LW9zcworCXZjb3B5IC4uL1ZTQ29kZS1saW51eC14NjQvcmVzb3VyY2VzIHVzci9saWIvY29kZS1v c3MKKwl2Y29weSAuLi9WU0NvZGUtbGludXgteDY0L2JpbiB1c3IvbGliL2NvZGUtb3NzCiAJdm1r ZGlyIHVzci9iaW4KIAlsbiAtc2YgL3Vzci9saWIvY29kZS1vc3MvYmluL2NvZGUtb3NzICR7REVT VERJUn0vdXNyL2Jpbi8KIAl2bWtkaXIgdXNyL3NoYXJlL2FwcGxpY2F0aW9ucwogCWxuIC1zZiAv dXNyL2xpYi9jb2RlLW9zcy9yZXNvdXJjZXMvYXBwL3Jlc291cmNlcy9saW51eC9jb2RlLmRlc2t0 b3AgJHtERVNURElSfS91c3Ivc2hhcmUvYXBwbGljYXRpb25zL2NvZGUtb3NzLmRlc2t0b3AKIAl2 bWtkaXIgdXNyL3NoYXJlL3BpeG1hcHMKIAlsbiAtc2YgL3Vzci9saWIvY29kZS1vc3MvcmVzb3Vy Y2VzL2FwcC9yZXNvdXJjZXMvbGludXgvY29kZS5wbmcgJHtERVNURElSfS91c3Ivc2hhcmUvcGl4 bWFwcy9jb2RlLW9zcy5wbmcKKwlsbiAtc2YgL3Vzci9iaW4vcmcgJHtERVNURElSfS91c3IvbGli L2NvZGUtb3NzL3Jlc291cmNlcy9hcHAvbm9kZV9tb2R1bGVzLmFzYXIudW5wYWNrZWQvdnNjb2Rl LXJpcGdyZXAvYmluL3JnCisJdnNlZCBcCisJCS1lICJzfEVMRUNUUk9OPS4qfEVMRUNUUk9OPS91 c3IvbGliL2VsZWN0cm9uJHtfZWxlY3Ryb252ZXIlJS4qfS9lbGVjdHJvbnxnIiBcCisJCS1lICdz fCIkQ0xJInwiJENMSSIgLS1hcHA9IiR7VlNDT0RFX1BBVEh9L3Jlc291cmNlcy9hcHAifGcnIFwK KwkJLWkgIiRERVNURElSIi91c3IvbGliL2NvZGUtb3NzL2Jpbi9jb2RlLW9zcwogCXZsaWNlbnNl IExJQ0VOU0UudHh0CiB9Cg== --===============1083273801347257630==--