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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 6208 invoked from network); 19 Dec 2021 20:53:46 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 19 Dec 2021 20:53:46 -0000 Content-Type: multipart/mixed; boundary="===============5729821505976041421==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_bubblewrap=3A_update_to_0=2E5=2E0=2E?= To: ml@inbox.vuxu.org From: UsernameRandomlyGenerated Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 19 Dec 2021 21:53:45 +0100 List-Id: Message-ID: <20211219205345.BP5mv1jUp6cUBlREBuG0_XsQxQyJIT0B68ewVbB6pxc@z> GitHub notification mails are now in MIME to allow UTF8. --===============5729821505976041421== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgVXNlcm5hbWVSYW5kb21seUdlbmVy YXRlZCBhZ2FpbnN0IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRw czovL2dpdGh1Yi5jb20vVXNlcm5hbWVSYW5kb21seUdlbmVyYXRlZC92b2lkLXBhY2thZ2VzIGJ3 cmFwMDUwCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z MzM3MgoKYnViYmxld3JhcDogdXBkYXRlIHRvIDAuNS4wLgpNdXNsIHByb2JsZW0gc2VlbXMgdG8g YmUgcmVzb2x2ZWQsIHRlc3RlZCBmbGF0cGFrIHN0ZWFtLCBydW5zIGZpbmUuDQoNCg0KPCEtLSBN YXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0K LSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBpdCBjb25mb3JtcyB0byB0aGUgW3F1YWxp dHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cykNCg0KIyMjIyBI YXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBjaGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBb eF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9u IGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlzIFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0g SSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3RlZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0 ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIgQ0kgY2Fubm90IGJlIHVzZWQgdG8gdmFs aWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1wbGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlr ZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ugc3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJ QlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pLg0KV2hlbiBza2lwcGluZyBDSSwgdW5j b21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5nIHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVp bGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBpbiBsZXNzIHRoYW4gMiBob3VycywgaXQg aXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQotLT4NCjwhLS0gDQojIyMjIERvZXMgaXQg YnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25l IG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxk LiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15 IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIg bG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3Nz YnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQogIC0gWyBdIGFybXY3bA0KICAtIFsgXSBh cm12NmwtbXVzbA0KLS0+DQoNCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMzMzcyLnBhdGNoIGlzIGF0dGFjaGVk --===============5729821505976041421== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-bwrap050-33372.patch" RnJvbSBjNDc0MmM2OGVhNzAzYmQ3OTNlMDUzM2EwZmUyNzA0ZWI5ZGIzNTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVc2VybmFtZVJhbmRvbWx5R2VuZXJhdGVkIDxvdmVydHdpc3Rf d3RAYWxlZWFzLmNvbT4KRGF0ZTogU3VuLCAxOSBEZWMgMjAyMSAyMjo1MzoxNSArMDEwMApTdWJq ZWN0OiBbUEFUQ0hdIGJ1YmJsZXdyYXA6IHVwZGF0ZSB0byAwLjUuMC4KCi0tLQogLi4uL2ZpeC1U RU1QX0ZBSUxUVVJFX1JFVFJZLW11c2wucGF0Y2ggICAgICAgIHwgIDE5IC0tCiAuLi4vcGF0Y2hl cy9yZWFscGF0aC13b3JrYXJvdW5kLnBhdGNoICAgICAgICAgfCAyNDkgLS0tLS0tLS0tLS0tLS0t LS0tCiBzcmNwa2dzL2J1YmJsZXdyYXAvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAgMTIg Ky0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWRsaW5rLnBhdGNoICAgICAgICAgICB8ICA0MSAr KysKIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWxwYXRoLnBhdGNoICAgICAgICAgICB8IDE4NCAr KysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDIyOCBpbnNlcnRpb25zKCspLCAyNzcgZGVs ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWJibGV3cmFwL3BhdGNoZXMv Zml4LVRFTVBfRkFJTFRVUkVfUkVUUlktbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvYnViYmxld3JhcC9wYXRjaGVzL3JlYWxwYXRoLXdvcmthcm91bmQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9yZWFkbGluay5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWxwYXRoLnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9idWJibGV3cmFwL3BhdGNoZXMvZml4LVRFTVBfRkFJTFRVUkVfUkVUUlkt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvYnViYmxld3JhcC9wYXRjaGVzL2ZpeC1URU1QX0ZBSUxUVVJF X1JFVFJZLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZmE5ZTRm OTgzMi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYnViYmxld3JhcC9wYXRjaGVzL2ZpeC1U RU1QX0ZBSUxUVVJFX1JFVFJZLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCww IEBACi0tLS0gYS9idWJibGV3cmFwLmMKLSsrKyBiL2J1YmJsZXdyYXAuYwotQEAgLTQyLDYgKzQy LDE2IEBACi0gI2RlZmluZSBDTE9ORV9ORVdDR1JPVVAgMHgwMjAwMDAwMCAvKiBOZXcgY2dyb3Vw IG5hbWVzcGFjZSAqLwotICNlbmRpZgotIAotKy8qIHRha2VuIGZyb20gZ2xpYmMgdW5pc3RkLmgg YW5kIGZpeGVzIG11c2wgKi8KLSsjaWZuZGVmIFRFTVBfRkFJTFVSRV9SRVRSWQotKyNkZWZpbmUg VEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKLSsgIChfX2V4dGVuc2lvbl9fICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0rICAgICh7IGxvbmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICBkbyBfX3Jlc3VsdCA9IChsb25nIGlu dCkgKGV4cHJlc3Npb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAg ICAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgICAgIF9fcmVzdWx0OyB9KSkKLSsjZW5kaWYKLSsKLSAv KiBHbG9iYWxzIHRvIGF2b2lkIGhhdmluZyB0byB1c2UgZ2V0dWlkKCksIHNpbmNlIHRoZSB1aWQv Z2lkIGNoYW5nZXMgZHVyaW5nIHJ1bnRpbWUgKi8KLSBzdGF0aWMgdWlkX3QgcmVhbF91aWQ7Ci0g c3RhdGljIGdpZF90IHJlYWxfZ2lkOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWJibGV3cmFwL3Bh dGNoZXMvcmVhbHBhdGgtd29ya2Fyb3VuZC5wYXRjaCBiL3NyY3BrZ3MvYnViYmxld3JhcC9wYXRj aGVzL3JlYWxwYXRoLXdvcmthcm91bmQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDQ1ZDFmZDYyMzFiNi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYnViYmxld3JhcC9w YXRjaGVzL3JlYWxwYXRoLXdvcmthcm91bmQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNDkg KzAsMCBAQAotLS0tIC9kZXYvbnVsbAkyMDIwLTEwLTE4IDA5OjI2OjMyLjMxMjc0NTc1NSArMDIw MAotKysrIGIvTElDRU5TRS5yZWFscGF0aAkyMDIwLTEwLTE4IDExOjA5OjE0LjExOTkyOTA3NiAr MDIwMAotQEAgLTAsMCArMSwyOSBAQAotK0NvcHlyaWdodCAoYykgMTk4OSwgMTk5MSwgMTk5Mywg MTk5NQotKyAgICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4g IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rCi0rVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBzb2Z0 d2FyZSBjb250cmlidXRlZCB0byBCZXJrZWxleSBieQotK0phbi1TaW1vbiBQZW5kcnkuCi0rCi0r UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv ciB3aXRob3V0Ci0rbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zCi0rYXJlIG1ldDoKLSsxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKyAgIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSsy LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl IGNvcHlyaWdodAotKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSsgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKzMuIE5laXRoZXIg dGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0 b3JzCi0rICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2 ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0rICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu IHBlcm1pc3Npb24uCi0rCi0rVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5U UyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLStBTlkgRVhQUkVTUyBPUiBJTVBMSUVE IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLStJTVBMSUVE IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRQotK0FSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VO VFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotK0ZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0rREFNQUdF UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMKLStPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikKLStIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotK0xJQUJJTElUWSwg T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO WSBXQVkKLStPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GCi0rU1VDSCBEQU1BR0UuCi0tLS0gYS9iaW5kLW1vdW50LmMJ MjAxOC0wOS0yNiAxNDo1NToxNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL2JpbmQtbW91bnQuYwky MDIwLTEwLTE4IDExOjA4OjM3LjgyMjkzMTQ1MiArMDIwMAotQEAgLTIyLDYgKzIyLDE5OCBAQAot IAotICNpbmNsdWRlICJ1dGlscy5oIgotICNpbmNsdWRlICJiaW5kLW1vdW50LmgiCi0rI2luY2x1 ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+ Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNpbmNsdWRl IDxlcnJuby5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4K LSsKLSsjaWZuZGVmIF9fR0xJQkNfXwotKy8qCi0rICogQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkx LCAxOTkzLCAxOTk1Ci0rICogICAgICBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsgKgotKyAqIFRoaXMgY29kZSBpcyBk ZXJpdmVkIGZyb20gc29mdHdhcmUgY29udHJpYnV0ZWQgdG8gQmVya2VsZXkgYnkKLSsgKiBKYW4t U2ltb24gUGVuZHJ5LgotKyAqCi0rICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0rICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0rICogYXJl IG1ldDoKLSsgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g dGhlIGFib3ZlIGNvcHlyaWdodAotKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSsgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lciBpbiB0aGUKLSsgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUg b2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0rICog ICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv bSB0aGlzIHNvZnR3YXJlCi0rICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl cm1pc3Npb24uCi0rICoKLSsgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdF TlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotKyAqIEFOWSBFWFBSRVNTIE9SIElN UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotKyAq IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFCi0rICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM TCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0rICogRk9SIEFOWSBESVJF Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF TlRJQUwKLSsgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotKyAqIEhPV0VWRVIg Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD VCwgU1RSSUNUCi0rICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSsgKiBT VUNIIERBTUFHRS4KLSsgKi8KLStjaGFyICpyZWFscGF0aF9pbnQoY29uc3QgY2hhciAqLCBjaGFy Kik7Ci0rY2hhciAqCi0rcmVhbHBhdGhfaW50KGNvbnN0IGNoYXIgKiBwYXRoLCBjaGFyICogcmVz b2x2ZWQpCi0rewotKyAgICAgICAgc3RydWN0IHN0YXQgc2I7Ci0rICAgICAgICBpbnQgaWR4ID0g MCwgbmxuayA9IDA7Ci0rICAgICAgICBjb25zdCBjaGFyICpxOwotKyAgICAgICAgY2hhciAqcCwg d2J1ZlsyXVtNQVhQQVRITEVOXSwgKmZyZXM7Ci0rICAgICAgICBzaXplX3QgbGVuOwotKyAgICAg ICAgc3NpemVfdCBuOwotKwotKyAgICAgICAgLyogUE9TSVggc2V6IHdlIG11c3QgdGVzdCBmb3Ig dGhpcyAqLwotKyAgICAgICAgaWYgKHBhdGggPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICBl cnJubyA9IEVJTlZBTDsKLSsgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAgICAgICB9 Ci0rCi0rICAgICAgICBpZiAocmVzb2x2ZWQgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICBm cmVzID0gcmVzb2x2ZWQgPSBtYWxsb2MoTUFYUEFUSExFTik7Ci0rICAgICAgICAgICAgICAgIGlm IChyZXNvbHZlZCA9PSBOVUxMKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxM OwotKyAgICAgICAgfSBlbHNlCi0rICAgICAgICAgICAgICAgIGZyZXMgPSBOVUxMOwotKwotKwot KyAgICAgICAgLyoKLSsgICAgICAgICAqIEJ1aWxkIHJlYWwgcGF0aCBvbmUgYnkgb25lIHdpdGgg cGF5aW5nIGFuIGF0dGVudGlvbiB0byAuLAotKyAgICAgICAgICogLi4gYW5kIHN5bWJvbGljIGxp bmsuCi0rICAgICAgICAgKi8KLSsKLSsgICAgICAgIC8qCi0rICAgICAgICAgKiBgcCcgaXMgd2hl cmUgd2UnbGwgcHV0IGEgbmV3IGNvbXBvbmVudCB3aXRoIHByZXBlbmRpbmcKLSsgICAgICAgICAq IGEgZGVsaW1pdGVyLgotKyAgICAgICAgICovCi0rICAgICAgICBwID0gcmVzb2x2ZWQ7Ci0rCi0r ICAgICAgICBpZiAoKnBhdGggPT0gJ1wwJykgewotKyAgICAgICAgICAgICAgICAqcCA9ICdcMCc7 Ci0rICAgICAgICAgICAgICAgIGVycm5vID0gRU5PRU5UOwotKyAgICAgICAgICAgICAgICBnb3Rv IG91dDsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIC8qIElmIHJlbGF0aXZlIHBhdGgsIHN0YXJ0 IGZyb20gY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gKi8KLSsgICAgICAgIGlmICgqcGF0aCAh PSAnLycpIHsKLSsgICAgICAgICAgICAgICAgLyogY2hlY2sgZm9yIHJlc29sdmVkIHBvaW50ZXIg dG8gYXBwZWFzZSBjb3Zlcml0eSAqLwotKyAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQgJiYg Z2V0Y3dkKHJlc29sdmVkLCBNQVhQQVRITEVOKSA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgcFswXSA9ICcuJzsKLSsgICAgICAgICAgICAgICAgICAgICAgICBwWzFdID0gJ1ww JzsKLSsgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKLSsgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICBsZW4gPSBzdHJsZW4ocmVzb2x2ZWQpOwotKyAgICAgICAgICAg ICAgICBpZiAobGVuID4gMSkKLSsgICAgICAgICAgICAgICAgICAgICAgICBwICs9IGxlbjsKLSsg ICAgICAgIH0KLSsKLStsb29wOgotKyAgICAgICAgLyogU2tpcCBhbnkgc2xhc2guICovCi0rICAg ICAgICB3aGlsZSAoKnBhdGggPT0gJy8nKQotKyAgICAgICAgICAgICAgICBwYXRoKys7Ci0rCi0r ICAgICAgICBpZiAoKnBhdGggPT0gJ1wwJykgewotKyAgICAgICAgICAgICAgICBpZiAocCA9PSBy ZXNvbHZlZCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAqcCsrID0gJy8nOwotKyAgICAgICAg ICAgICAgICAqcCA9ICdcMCc7Ci0rICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlZDsKLSsg ICAgICAgIH0KLSsKLSsgICAgICAgIC8qIEZpbmQgdGhlIGVuZCBvZiB0aGlzIGNvbXBvbmVudC4g Ki8KLSsgICAgICAgIHEgPSBwYXRoOwotKyAgICAgICAgZG8KLSsgICAgICAgICAgICAgICAgcSsr OwotKyAgICAgICAgd2hpbGUgKCpxICE9ICcvJyAmJiAqcSAhPSAnXDAnKTsKLSsKLSsgICAgICAg IC8qIFRlc3QgLiBvciAuLiAqLwotKyAgICAgICAgaWYgKHBhdGhbMF0gPT0gJy4nKSB7Ci0rICAg ICAgICAgICAgICAgIGlmIChxIC0gcGF0aCA9PSAxKSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgcGF0aCA9IHE7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZ290byBsb29wOwotKyAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIGlmIChwYXRoWzFdID09ICcuJyAmJiBxIC0g cGF0aCA9PSAyKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLyogVHJpbSB0aGUgbGFzdCBj b21wb25lbnQuICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAgIT0gcmVzb2x2ZWQp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKi0tcCAhPSAnLycpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAg ICAgICAgICAgICAgICAgICAgIHBhdGggPSBxOwotKyAgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gbG9vcDsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgfQotKwotKyAgICAgICAgLyog QXBwZW5kIHRoaXMgY29tcG9uZW50LiAqLwotKyAgICAgICAgaWYgKHAgLSByZXNvbHZlZCArIDEg KyBxIC0gcGF0aCArIDEgPiBNQVhQQVRITEVOKSB7Ci0rICAgICAgICAgICAgICAgIGVycm5vID0g RU5BTUVUT09MT05HOwotKyAgICAgICAgICAgICAgICBpZiAocCA9PSByZXNvbHZlZCkKLSsgICAg ICAgICAgICAgICAgICAgICAgICAqcCsrID0gJy8nOwotKyAgICAgICAgICAgICAgICAqcCA9ICdc MCc7Ci0rICAgICAgICAgICAgICAgIGdvdG8gb3V0OwotKyAgICAgICAgfQotKyAgICAgICAgcFsw XSA9ICcvJzsKLSsgICAgICAgIG1lbWNweSgmcFsxXSwgcGF0aCwKLSsgICAgICAgICAgICAvKiBM SU5URUQgV2Uga25vdyBxID4gcGF0aC4gKi8KLSsgICAgICAgICAgICBxIC0gcGF0aCk7Ci0rICAg ICAgICBwWzEgKyBxIC0gcGF0aF0gPSAnXDAnOwotKwotKyAgICAgICAgLyoKLSsgICAgICAgICAq IElmIHRoaXMgY29tcG9uZW50IGlzIGEgc3ltbGluaywgdG9zcyBpdCBhbmQgcHJlcGVuZCBsaW5r Ci0rICAgICAgICAgKiB0YXJnZXQgdG8gdW5yZXNvbHZlZCBwYXRoLgotKyAgICAgICAgICovCi0r ICAgICAgICBpZiAobHN0YXQocmVzb2x2ZWQsICZzYikgPT0gLTEpCi0rICAgICAgICAgICAgICAg IGdvdG8gb3V0OwotKwotKyAgICAgICAgaWYgKFNfSVNMTksoc2Iuc3RfbW9kZSkpIHsKLSsgICAg ICAgICAgICAgICAgaWYgKG5sbmsrKyA+PSBNQVhTWU1MSU5LUykgewotKyAgICAgICAgICAgICAg ICAgICAgICAgIGVycm5vID0gRUxPT1A7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZ290byBv dXQ7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgbiA9IHJlYWRsaW5rKHJl c29sdmVkLCB3YnVmW2lkeF0sIHNpemVvZih3YnVmWzBdKSAtIDEpOwotKyAgICAgICAgICAgICAg ICBpZiAobiA8IDApCi0rICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Ci0rICAgICAg ICAgICAgICAgIGlmIChuID09IDApIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBlcnJubyA9 IEVOT0VOVDsKLSsgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKLSsgICAgICAgICAg ICAgICAgfQotKwotKyAgICAgICAgICAgICAgICAvKiBBcHBlbmQgdW5yZXNvbHZlZCBwYXRoIHRv IGxpbmsgdGFyZ2V0IGFuZCBzd2l0Y2ggdG8gaXQuICovCi0rICAgICAgICAgICAgICAgIGlmIChu ICsgKGxlbiA9IHN0cmxlbihxKSkgKyAxID4gc2l6ZW9mKHdidWZbMF0pKSB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgZXJybm8gPSBFTkFNRVRPT0xPTkc7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgZ290byBvdXQ7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgbWVt Y3B5KCZ3YnVmW2lkeF1bbl0sIHEsIGxlbiArIDEpOwotKyAgICAgICAgICAgICAgICBwYXRoID0g d2J1ZltpZHhdOwotKyAgICAgICAgICAgICAgICBpZHggXj0gMTsKLSsKLSsgICAgICAgICAgICAg ICAgLyogSWYgYWJzb2x1dGUgc3ltbGluaywgc3RhcnQgZnJvbSByb290LiAqLwotKyAgICAgICAg ICAgICAgICBpZiAoKnBhdGggPT0gJy8nKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBy ZXNvbHZlZDsKLSsgICAgICAgICAgICAgICAgZ290byBsb29wOwotKyAgICAgICAgfQotKyAgICAg ICAgaWYgKCpxID09ICcvJyAmJiAhU19JU0RJUihzYi5zdF9tb2RlKSkgewotKyAgICAgICAgICAg ICAgICBlcnJubyA9IEVOT1RESVI7Ci0rICAgICAgICAgICAgICAgIGdvdG8gb3V0OwotKyAgICAg ICAgfQotKwotKyAgICAgICAgLyogQWR2YW5jZSBib3RoIHJlc29sdmVkIGFuZCB1bnJlc29sdmVk IHBhdGguICovCi0rICAgICAgICBwICs9IDEgKyBxIC0gcGF0aDsKLSsgICAgICAgIHBhdGggPSBx OwotKyAgICAgICAgZ290byBsb29wOwotK291dDoKLSsgICAgICAgIGZyZWUoZnJlcyk7Ci0rICAg ICAgICByZXR1cm4gTlVMTDsKLSt9Ci0rI2VuZGlmCi0gCi0gc3RhdGljIGNoYXIgKgotIHNraXBf dG9rZW4gKGNoYXIgKmxpbmUsIGJvb2wgZWF0X3doaXRlc3BhY2UpCi1AQCAtMzk1LDkgKzU4Nywx NCBAQAotIAotICAgLyogVGhlIG1vdW50IG9wZXJhdGlvbiB3aWxsIHJlc29sdmUgYW55IHN5bWxp bmtzIGluIHRoZSBkZXN0aW5hdGlvbgotICAgICAgcGF0aCwgc28gdG8gZmluZCBpdCBpbiB0aGUg bW91bnQgdGFibGUgd2UgbmVlZCB0byBkbyB0aGF0IHRvby4gKi8KLSsjaWZkZWYgX19HTElCQ19f Ci0gICByZXNvbHZlZF9kZXN0ID0gcmVhbHBhdGggKGRlc3QsIE5VTEwpOwotLSAgaWYgKHJlc29s dmVkX2Rlc3QgPT0gTlVMTCkKLSsjZWxzZQotKyAgcmVzb2x2ZWRfZGVzdCA9IHJlYWxwYXRoX2lu dCAoZGVzdCwgTlVMTCk7Ci0rI2VuZGlmCi0rICBpZiAocmVzb2x2ZWRfZGVzdCA9PSBOVUxMKSB7 Ci0gICAgIHJldHVybiAyOwotKyAgfQotIAotICAgbW91bnRfdGFiID0gcGFyc2VfbW91bnRpbmZv IChwcm9jX2ZkLCByZXNvbHZlZF9kZXN0KTsKLSAgIGlmIChtb3VudF90YWJbMF0ubW91bnRwb2lu dCA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWJibGV3cmFwL3RlbXBsYXRlIGIvc3Jj cGtncy9idWJibGV3cmFwL3RlbXBsYXRlCmluZGV4IDRkZjFkYWM1OTM5NS4uMzJhN2FhZDUwNDU3 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1YmJsZXdyYXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9i dWJibGV3cmFwL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn YnViYmxld3JhcCcKIHBrZ25hbWU9YnViYmxld3JhcAotdmVyc2lvbj0wLjQuMQotcmV2aXNpb249 MgordmVyc2lvbj0wLjUuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog aG9zdG1ha2VkZXBlbmRzPSJsaWJ4c2x0IGRvY2Jvb2steHNsIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0ibGliY2FwLWRldmVsIgpAQCAtMTAsMTAgKzEwLDQgQEAgbWFpbnRhaW5lcj0iRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9jb250YWluZXJzL2J1YmJsZXdyYXAiCiBkaXN0 ZmlsZXM9IiR7aG9tZXBhZ2V9L3JlbGVhc2VzL2Rvd25sb2FkL3Yke3ZlcnNpb259LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOWM2OWI5YjFjNjFhNjA4ZjM0MzI1Yzhl MWE0OTUyMjliYWNmNmU0YTA3Y2JiMGM4MGNmN2E4MTRkN2NjYzAzCi0KLXBvc3RfaW5zdGFsbCgp IHsKLQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgotCQl2bGljZW5z ZSBMSUNFTlNFLnJlYWxwYXRoCi0JZmkKLX0KK2NoZWNrc3VtPTE2ZmRhZjMzNzk5ZDYzMTA0ZTM0 N2UwMTMzZjkwOTE5NmZlOTBkMGM1MDUxNWQwMTBiY2I0MjJlYjVhMDA4MTgKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWRsaW5rLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNo ZXMvcmVhZGxpbmsucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wNmYzNTkxNjhhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9y ZWFkbGluay5wYXRjaApAQCAtMCwwICsxLDQxIEBACitkaWZmIC0tZ2l0IGEvc3JjL3VuaXN0ZC9y ZWFkbGluay5jIGIvc3JjL3VuaXN0ZC9yZWFkbGluay5jCitpbmRleCBhMTUyZDUyNC4uMzJmNDUz N2YgMTAwNjQ0CistLS0gYS9zcmMvdW5pc3RkL3JlYWRsaW5rLmMKKysrKyBiL3NyYy91bmlzdGQv cmVhZGxpbmsuYworQEAgLTQsOSArNCwxNiBAQAorIAorIHNzaXplX3QgcmVhZGxpbmsoY29uc3Qg Y2hhciAqcmVzdHJpY3QgcGF0aCwgY2hhciAqcmVzdHJpY3QgYnVmLCBzaXplX3QgYnVmc2l6ZSkK KyB7CisrCWNoYXIgZHVtbXlbMV07CisrCWlmICghYnVmc2l6ZSkgeworKwkJYnVmID0gZHVtbXk7 CisrCQlidWZzaXplID0gMTsKKysJfQorICNpZmRlZiBTWVNfcmVhZGxpbmsKKy0JcmV0dXJuIHN5 c2NhbGwoU1lTX3JlYWRsaW5rLCBwYXRoLCBidWYsIGJ1ZnNpemUpOworKwlpbnQgciA9IF9fc3lz Y2FsbChTWVNfcmVhZGxpbmssIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7CisgI2Vsc2UKKy0JcmV0dXJu IHN5c2NhbGwoU1lTX3JlYWRsaW5rYXQsIEFUX0ZEQ1dELCBwYXRoLCBidWYsIGJ1ZnNpemUpOwor KwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgQVRfRkRDV0QsIHBhdGgsIGJ1Ziwg YnVmc2l6ZSk7CisgI2VuZGlmCisrCWlmIChidWYgPT0gZHVtbXkgJiYgciA+IDApIHIgPSAwOwor KwlyZXR1cm4gX19zeXNjYWxsX3JldChyKTsKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL3VuaXN0ZC9y ZWFkbGlua2F0LmMgYi9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYworaW5kZXggOWFmNDVjZDUuLmY3 OWQzZDE0IDEwMDY0NAorLS0tIGEvc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMKKysrKyBiL3NyYy91 bmlzdGQvcmVhZGxpbmthdC5jCitAQCAtMyw1ICszLDEyIEBACisgCisgc3NpemVfdCByZWFkbGlu a2F0KGludCBmZCwgY29uc3QgY2hhciAqcmVzdHJpY3QgcGF0aCwgY2hhciAqcmVzdHJpY3QgYnVm LCBzaXplX3QgYnVmc2l6ZSkKKyB7CistCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGlua2F0LCBm ZCwgcGF0aCwgYnVmLCBidWZzaXplKTsKKysJY2hhciBkdW1teVsxXTsKKysJaWYgKCFidWZzaXpl KSB7CisrCQlidWYgPSBkdW1teTsKKysJCWJ1ZnNpemUgPSAxOworKwl9CisrCWludCByID0gX19z eXNjYWxsKFNZU19yZWFkbGlua2F0LCBmZCwgcGF0aCwgYnVmLCBidWZzaXplKTsKKysJaWYgKGJ1 ZiA9PSBkdW1teSAmJiByID4gMCkgciA9IDA7CisrCXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwor IH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWxwYXRoLnBhdGNoIGIvc3Jj cGtncy9tdXNsL3BhdGNoZXMvcmVhbHBhdGgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi4zZDRiYzlhZTA3OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L211c2wvcGF0Y2hlcy9yZWFscGF0aC5wYXRjaApAQCAtMCwwICsxLDE4NCBAQAorZGlmZiAtLWdp dCBhL3NyYy9taXNjL3JlYWxwYXRoLmMgYi9zcmMvbWlzYy9yZWFscGF0aC5jCitpbmRleCBkMjcw OGU1OS4uZGI4Yjc0ZGMgMTAwNjQ0CistLS0gYS9zcmMvbWlzYy9yZWFscGF0aC5jCisrKysgYi9z cmMvbWlzYy9yZWFscGF0aC5jCitAQCAtMSw0MyArMSwxNTYgQEAKKyAjaW5jbHVkZSA8c3RkbGli Lmg+CisgI2luY2x1ZGUgPGxpbWl0cy5oPgorLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLSNpbmNs dWRlIDxmY250bC5oPgorICNpbmNsdWRlIDxlcnJuby5oPgorICNpbmNsdWRlIDx1bmlzdGQuaD4K KyAjaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgInN5c2NhbGwuaCIKKysKKytzdGF0aWMg c2l6ZV90IHNsYXNoX2xlbihjb25zdCBjaGFyICpzKQorK3sKKysJY29uc3QgY2hhciAqczAgPSBz OworKwl3aGlsZSAoKnMgPT0gJy8nKSBzKys7CisrCXJldHVybiBzLXMwOworK30KKyAKKyBjaGFy ICpyZWFscGF0aChjb25zdCBjaGFyICpyZXN0cmljdCBmaWxlbmFtZSwgY2hhciAqcmVzdHJpY3Qg cmVzb2x2ZWQpCisgeworLQlpbnQgZmQ7CistCXNzaXplX3QgcjsKKy0Jc3RydWN0IHN0YXQgc3Qx LCBzdDI7CistCWNoYXIgYnVmWzE1KzMqc2l6ZW9mKGludCldOworLQljaGFyIHRtcFtQQVRIX01B WF07CisrCWNoYXIgc3RhY2tbUEFUSF9NQVgrMV07CisrCWNoYXIgb3V0cHV0W1BBVEhfTUFYXTsK KysJc2l6ZV90IHAsIHEsIGwsIGwwLCBjbnQ9MCwgbnVwPTA7CisrCWludCBjaGVja19kaXI9MDsK KyAKKyAJaWYgKCFmaWxlbmFtZSkgeworIAkJZXJybm8gPSBFSU5WQUw7CisgCQlyZXR1cm4gMDsK KyAJfQorKwlsID0gc3RybmxlbihmaWxlbmFtZSwgc2l6ZW9mIHN0YWNrKTsKKysJaWYgKCFsKSB7 CisrCQllcnJubyA9IEVOT0VOVDsKKysJCXJldHVybiAwOworKwl9CisrCWlmIChsID49IFBBVEhf TUFYKSBnb3RvIHRvb2xvbmc7CisrCXAgPSBzaXplb2Ygc3RhY2sgLSBsIC0gMTsKKysJcSA9IDA7 CisrCW1lbWNweShzdGFjaytwLCBmaWxlbmFtZSwgbCsxKTsKKysKKysJLyogTWFpbiBsb29wLiBF YWNoIGl0ZXJhdGlvbiBwb3BzIHRoZSBuZXh0IHBhcnQgZnJvbSBzdGFjayBvZgorKwkgKiByZW1h aW5pbmcgcGF0aCBjb21wb25lbnRzIGFuZCBjb25zdW1lcyBhbnkgc2xhc2hlcyB0aGF0IGZvbGxv dy4KKysJICogSWYgbm90IGEgbGluaywgaXQncyBtb3ZlZCB0byBvdXRwdXQ7IGlmIGEgbGluaywg Y29udGVudHMgYXJlCisrCSAqIHB1c2hlZCB0byB0aGUgc3RhY2suICovCisrcmVzdGFydDoKKysJ Zm9yICg7IDsgcCs9c2xhc2hfbGVuKHN0YWNrK3ApKSB7CisrCQkvKiBJZiBzdGFjayBzdGFydHMg d2l0aCAvLCB0aGUgd2hvbGUgY29tcG9uZW50IGlzIC8gb3IgLy8KKysJCSAqIGFuZCB0aGUgb3V0 cHV0IHN0YXRlIG11c3QgYmUgcmVzZXQuICovCisrCQlpZiAoc3RhY2tbcF0gPT0gJy8nKSB7Cisr CQkJY2hlY2tfZGlyPTA7CisrCQkJbnVwPTA7CisrCQkJcT0wOworKwkJCW91dHB1dFtxKytdID0g Jy8nOworKwkJCXArKzsKKysJCQkvKiBJbml0aWFsIC8vIGlzIHNwZWNpYWwuICovCisrCQkJaWYg KHN0YWNrW3BdID09ICcvJyAmJiBzdGFja1twKzFdICE9ICcvJykKKysJCQkJb3V0cHV0W3ErK10g PSAnLyc7CisrCQkJY29udGludWU7CisrCQl9CisrCisrCQljaGFyICp6ID0gX19zdHJjaHJudWwo c3RhY2srcCwgJy8nKTsKKysJCWwwID0gbCA9IHotKHN0YWNrK3ApOworIAorLQlmZCA9IHN5c19v cGVuKGZpbGVuYW1lLCBPX1BBVEh8T19OT05CTE9DS3xPX0NMT0VYRUMpOworLQlpZiAoZmQgPCAw KSByZXR1cm4gMDsKKy0JX19wcm9jZmRuYW1lKGJ1ZiwgZmQpOworKwkJaWYgKCFsICYmICFjaGVj a19kaXIpIGJyZWFrOworIAorLQlyID0gcmVhZGxpbmsoYnVmLCB0bXAsIHNpemVvZiB0bXAgLSAx KTsKKy0JaWYgKHIgPCAwKSBnb3RvIGVycjsKKy0JdG1wW3JdID0gMDsKKysJCS8qIFNraXAgYW55 IC4gY29tcG9uZW50IGJ1dCBwcmVzZXJ2ZSBjaGVja19kaXIgc3RhdHVzLiAqLworKwkJaWYgKGw9 PTEgJiYgc3RhY2tbcF09PScuJykgeworKwkJCXAgKz0gbDsKKysJCQljb250aW51ZTsKKysJCX0K KyAKKy0JZnN0YXQoZmQsICZzdDEpOworLQlyID0gc3RhdCh0bXAsICZzdDIpOworLQlpZiAocjww IHx8IHN0MS5zdF9kZXYgIT0gc3QyLnN0X2RldiB8fCBzdDEuc3RfaW5vICE9IHN0Mi5zdF9pbm8p IHsKKy0JCWlmICghcikgZXJybm8gPSBFTE9PUDsKKy0JCWdvdG8gZXJyOworKwkJLyogQ29weSBu ZXh0IGNvbXBvbmVudCBvbnRvIG91dHB1dCBhdCBsZWFzdCB0ZW1wb3JhcmlseSwgdG8KKysJCSAq IGNhbGwgcmVhZGxpbmssIGJ1dCB3YWl0IHRvIGFkdmFuY2Ugb3V0cHV0IHBvc2l0aW9uIHVudGls CisrCQkgKiBkZXRlcm1pbmluZyBpdCdzIG5vdCBhIGxpbmsuICovCisrCQlpZiAocSAmJiBvdXRw dXRbcS0xXSAhPSAnLycpIHsKKysJCQlpZiAoIXApIGdvdG8gdG9vbG9uZzsKKysJCQlzdGFja1st LXBdID0gJy8nOworKwkJCWwrKzsKKysJCX0KKysJCWlmIChxK2wgPj0gUEFUSF9NQVgpIGdvdG8g dG9vbG9uZzsKKysJCW1lbWNweShvdXRwdXQrcSwgc3RhY2srcCwgbCk7CisrCQlvdXRwdXRbcSts XSA9IDA7CisrCQlwICs9IGw7CisrCisrCQlpbnQgdXAgPSAwOworKwkJaWYgKGwwPT0yICYmIHN0 YWNrW3AtMl09PScuJyAmJiBzdGFja1twLTFdPT0nLicpIHsKKysJCQl1cCA9IDE7CisrCQkJLyog QW55IG5vbi0uLiBwYXRoIGNvbXBvbmVudHMgd2UgY291bGQgY2FuY2VsIHN0YXJ0CisrCQkJICog YWZ0ZXIgbnVwIHJlcGV0aXRpb25zIG9mIHRoZSAzLWJ5dGUgc3RyaW5nICIuLi8iOworKwkJCSAq IGlmIHRoZXJlIGFyZSBub25lLCBhY2N1bXVsYXRlIC4uIGNvbXBvbmVudHMgdG8KKysJCQkgKiBs YXRlciBhcHBseSB0byBjd2QsIGlmIG5lZWRlZC4gKi8KKysJCQlpZiAocSA8PSAzKm51cCkgewor KwkJCQludXArKzsKKysJCQkJcSArPSBsOworKwkJCQljb250aW51ZTsKKysJCQl9CisrCQkJLyog V2hlbiBwcmV2aW91cyBjb21wb25lbnRzIGFyZSBhbHJlYWR5IGtub3duIHRvIGJlCisrCQkJICog ZGlyZWN0b3JpZXMsIHByb2Nlc3NpbmcgLi4gY2FuIHNraXAgcmVhZGxpbmsuICovCisrCQkJaWYg KCFjaGVja19kaXIpIGdvdG8gc2tpcF9yZWFkbGluazsKKysJCX0KKysJCXNzaXplX3QgayA9IHJl YWRsaW5rKG91dHB1dCwgc3RhY2ssIHApOworKwkJaWYgKGs9PXApIGdvdG8gdG9vbG9uZzsKKysJ CWlmICghaykgeworKwkJCWVycm5vID0gRU5PRU5UOworKwkJCXJldHVybiAwOworKwkJfQorKwkJ aWYgKGs8MCkgeworKwkJCWlmIChlcnJubyAhPSBFSU5WQUwpIHJldHVybiAwOworK3NraXBfcmVh ZGxpbms6CisrCQkJY2hlY2tfZGlyID0gMDsKKysJCQlpZiAodXApIHsKKysJCQkJd2hpbGUocSAm JiBvdXRwdXRbcS0xXSE9Jy8nKSBxLS07CisrCQkJCWlmIChxPjEgJiYgKHE+MiB8fCBvdXRwdXRb MF0hPScvJykpIHEtLTsKKysJCQkJY29udGludWU7CisrCQkJfQorKwkJCWlmIChsMCkgcSArPSBs OworKwkJCWNoZWNrX2RpciA9IHN0YWNrW3BdOworKwkJCWNvbnRpbnVlOworKwkJfQorKwkJaWYg KCsrY250ID09IFNZTUxPT1BfTUFYKSB7CisrCQkJZXJybm8gPSBFTE9PUDsKKysJCQlyZXR1cm4g MDsKKysJCX0KKysKKysJCS8qIElmIGxpbmsgY29udGVudHMgZW5kIGluIC8sIHN0cmlwIGFueSBz bGFzaGVzIGFscmVhZHkgb24KKysJCSAqIHN0YWNrIHRvIGF2b2lkIC8tPi8vIG9yIC8vLT4vLy8g b3Igc3B1cmlvdXMgdG9vbG9uZy4gKi8KKysJCWlmIChzdGFja1trLTFdPT0nLycpIHdoaWxlIChz dGFja1twXT09Jy8nKSBwKys7CisrCQlwIC09IGs7CisrCQltZW1tb3ZlKHN0YWNrK3AsIHN0YWNr LCBrKTsKKysKKysJCS8qIFNraXAgdGhlIHN0YWNrIGFkdmFuY2VtZW50IGluIGNhc2Ugd2UgaGF2 ZSBhIG5ldworKwkJICogYWJzb2x1dGUgYmFzZSBwYXRoLiAqLworKwkJZ290byByZXN0YXJ0Owor IAl9CisgCistCV9fc3lzY2FsbChTWVNfY2xvc2UsIGZkKTsKKy0JcmV0dXJuIHJlc29sdmVkID8g c3RyY3B5KHJlc29sdmVkLCB0bXApIDogc3RyZHVwKHRtcCk7CistZXJyOgorLQlfX3N5c2NhbGwo U1lTX2Nsb3NlLCBmZCk7CisrIAlvdXRwdXRbcV0gPSAwOworKworKwlpZiAob3V0cHV0WzBdICE9 ICcvJykgeworKwkJaWYgKCFnZXRjd2Qoc3RhY2ssIHNpemVvZiBzdGFjaykpIHJldHVybiAwOwor KwkJbCA9IHN0cmxlbihzdGFjayk7CisrCQkvKiBDYW5jZWwgYW55IGluaXRpYWwgLi4gY29tcG9u ZW50cy4gKi8KKysJCXAgPSAwOworKwkJd2hpbGUgKG51cC0tKSB7CisrCQkJd2hpbGUobD4xICYm IHN0YWNrW2wtMV0hPScvJykgbC0tOworKwkJCWlmIChsPjEpIGwtLTsKKysJCQlwICs9IDI7Cisr CQkJaWYgKHA8cSkgcCsrOworKwkJfQorKwkJaWYgKHEtcCAmJiBzdGFja1tsLTFdIT0nLycpIHN0 YWNrW2wrK10gPSAnLyc7CisrCQlpZiAobCArIChxLXApICsgMSA+PSBQQVRIX01BWCkgZ290byB0 b29sb25nOworKwkJbWVtbW92ZShvdXRwdXQgKyBsLCBvdXRwdXQgKyBwLCBxIC0gcCArIDEpOwor KwkJbWVtY3B5KG91dHB1dCwgc3RhY2ssIGwpOworKwkJcSA9IGwgKyBxLXA7CisrCX0KKysKKysJ aWYgKHJlc29sdmVkKSByZXR1cm4gbWVtY3B5KHJlc29sdmVkLCBvdXRwdXQsIHErMSk7CisrCWVs c2UgcmV0dXJuIHN0cmR1cChvdXRwdXQpOworKworK3Rvb2xvbmc6CisrCWVycm5vID0gRU5BTUVU T09MT05HOworIAlyZXR1cm4gMDsKKyB9Cg== --===============5729821505976041421==--