Add --human flag to slabtop
"Krzysztof Piecuch" <[email protected]> ("piecuch") Mon, 09 Oct 2023 19:21:30 +0000
| Newsgroups | gmane.linux.procps.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! Thanks for great software. Slabtop is amazing, but to make it easier to work with I suggest adding a `--human` flag, as already provided in `free`. I already went through the effort and prepared some patches and would be happy if you could include them in the trunk. Thanks, Kris --b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8 Content-Type: text/x-patch; charset=UTF-8; name=0002-Whitespace-fix-tabs-to-spaces.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-Whitespace-fix-tabs-to-spaces.patch RnJvbSA5NTA3NjNkZTI1NGNhNjc4OTk0NmI5ZDcyZDUxMGFmNDk1YWYyMWRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMjo0MzoxNCArMDEwMA0KU3ViamVjdDogW1BBVENIIDIv M10gV2hpdGVzcGFjZSBmaXggLSB0YWJzIHRvIHNwYWNlcw0KDQpubyBmdW5jdGlvbmFsIGNoYW5n ZQ0KLS0tDQogc3JjL3NsYWJ0b3AuYyB8IDEwICsrKysrLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvc3JjL3NsYWJ0 b3AuYyBiL3NyYy9zbGFidG9wLmMNCmluZGV4IDQwY2UzNDBlLi5kMDRiNDI2MiAxMDA2NDQNCi0t LSBhL3NyYy9zbGFidG9wLmMNCisrKyBiL3NyYy9zbGFidG9wLmMNCkBAIC0xODQsOCArMTg0LDgg QEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgICB3 aGlsZSAoKG8gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZDpzOm9oViIsIGxvbmdvcHRzLCBO VUxMKSkgIT0gLTEpIHsNCiAgICAgICAgIHN3aXRjaCAobykgew0KICAgICAgICAgY2FzZSAnZCc6 DQotCSAgICBpZiAoUnVuX29uY2UpDQotCQl4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5vdCBj b21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KKyAgICAgICAgICAgIGlmIChSdW5fb25jZSkN CisgICAgICAgICAgICAgICAgeGVycngoRVhJVF9GQUlMVVJFLCBfKCJDYW5ub3QgY29tYmluZSAt ZCBhbmQgLW8gb3B0aW9ucyIpKTsNCiAgICAgICAgICAgICBlcnJubyA9IDA7DQogICAgICAgICAg ICAgRGVsYXkgPSBzdHJ0b2xfb3JfZXJyKG9wdGFyZywgXygiaWxsZWdhbCBkZWxheSIpKTsNCiAg ICAgICAgICAgICBpZiAoRGVsYXkgPCAxKQ0KQEAgLTE5NSw4ICsxOTUsOCBAQCBzdGF0aWMgdm9p ZCBwYXJzZV9vcHRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogICAgICAgICAgICAgc2V0X3Nv cnRfc3R1ZmYob3B0YXJnWzBdKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGNhc2Ug J28nOg0KLQkgICAgaWYgKERlbGF5ICE9IDApDQotCQl4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNh bm5vdCBjb21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KKyAgICAgICAgICAgIGlmIChEZWxh eSAhPSAwKQ0KKyAgICAgICAgICAgICAgICB4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5vdCBj b21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KICAgICAgICAgICAgIFJ1bl9vbmNlPTE7DQog ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICBjYXNlICdWJzoNCkBAIC0yMTEsNyArMjExLDcg QEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgICBp ZiAob3B0aW5kICE9IGFyZ2MpDQogICAgICAgICB1c2FnZShzdGRlcnIpOw0KICAgICBpZiAoIVJ1 bl9vbmNlICYmIERlbGF5ID09IDApDQotCURlbGF5ID0gREVGQVVMVF9ERUxBWTsNCisgICAgICAg IERlbGF5ID0gREVGQVVMVF9ERUxBWTsNCiB9DQogDQogc3RhdGljIHZvaWQgcHJpbnRfc3VtbWFy eSAodm9pZCkNCi0tIA0KMi40Mi4wDQoNCg== --b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8 Content-Type: text/x-patch; charset=UTF-8; name=0001-Move-scale_size-away-from-free-to-use-in-other-progr.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Move-scale_size-away-from-free-to-use-in-other-progr.patch RnJvbSA0MWEwZjk1ZDlkYzc5OTY5N2YwN2U0NWU4YWU3MWQ4NWI1MTVkMWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMjoyMjozMiArMDEwMA0KU3ViamVjdDogW1BBVENIIDEv M10gTW92ZSBzY2FsZV9zaXplIGF3YXkgZnJvbSBmcmVlIHRvIHVzZSBpbiBvdGhlciBwcm9ncmFt cw0KDQpubyBmdW5jdGlvbmFsIGNoYW5nZQ0KLS0tDQogTWFrZWZpbGUuYW0gICB8ICAgMiArLQ0K IGxvY2FsL3VuaXRzLmMgfCAgNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGxvY2Fs L3VuaXRzLmggfCAgIDYgKysrDQogc3JjL2ZyZWUuYyAgICB8IDEyMSArKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIDQgZmlsZXMgY2hhbmdlZCwgMTAy IGluc2VydGlvbnMoKyksIDk0IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBsb2Nh bC91bml0cy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxvY2FsL3VuaXRzLmgNCg0KZGlmZiAtLWdp dCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0NCmluZGV4IDYwODYwNzI2Li45N2U5N2I1MSAx MDA2NDQNCi0tLSBhL01ha2VmaWxlLmFtDQorKysgYi9NYWtlZmlsZS5hbQ0KQEAgLTIyMyw3ICsy MjMsNyBAQCBlbHNlDQogCW1hbi9zbmljZS4xDQogZW5kaWYNCiANCi1zcmNfZnJlZV9TT1VSQ0VT ID0gc3JjL2ZyZWUuYyBsb2NhbC9zdHJ1dGlscy5jIGxvY2FsL2ZpbGV1dGlscy5jDQorc3JjX2Zy ZWVfU09VUkNFUyA9IHNyYy9mcmVlLmMgbG9jYWwvc3RydXRpbHMuYyBsb2NhbC9maWxldXRpbHMu YyBsb2NhbC91bml0cy5jDQogc3JjX3BncmVwX1NPVVJDRVMgPSBzcmMvcGdyZXAuYyBsb2NhbC9m aWxldXRpbHMuYyBsb2NhbC9zaWduYWxzLmMgbG9jYWwvc3RydXRpbHMuYw0KIHNyY19wa2lsbF9T T1VSQ0VTID0gc3JjL3BncmVwLmMgbG9jYWwvZmlsZXV0aWxzLmMgbG9jYWwvc2lnbmFscy5jIGxv Y2FsL3N0cnV0aWxzLmMNCiBzcmNfcG1hcF9TT1VSQ0VTID0gc3JjL3BtYXAuYyBsb2NhbC9maWxl dXRpbHMuYw0KZGlmZiAtLWdpdCBhL2xvY2FsL3VuaXRzLmMgYi9sb2NhbC91bml0cy5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAuLjdlODU0MTIzDQotLS0gL2Rldi9udWxs DQorKysgYi9sb2NhbC91bml0cy5jDQpAQCAtMCwwICsxLDY3IEBADQorI2luY2x1ZGUgPHN0ZGlv Lmg+DQorDQorc3RhdGljIGRvdWJsZSBwb3dlcih1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQg aW50IGV4cG8pOw0KKw0KK3N0YXRpYyBkb3VibGUgcG93ZXIodW5zaWduZWQgaW50IGJhc2UsIHVu c2lnbmVkIGludCBleHBvKQ0KK3sNCisJcmV0dXJuIChleHBvID09IDApID8gMSA6IGJhc2UgKiBw b3dlcihiYXNlLCBleHBvIC0gMSk7DQorfQ0KKw0KKy8qIGlkZWEgb2YgdGhpcyBmdW5jdGlvbiBp cyBjb3BpZWQgZnJvbSB0b3Agc2l6ZSBzY2FsaW5nICovDQorY29uc3QgY2hhciAqc2NhbGVfc2l6 ZSh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBleHBvbmVudCwgaW50IHNpLCBpbnQg aHVtYW5yZWFkYWJsZSkNCit7DQorCXN0YXRpYyBjaGFyIHVwW10gPSB7ICdCJywgJ0snLCAnTScs ICdHJywgJ1QnLCAnUCcsIDAgfTsNCisJc3RhdGljIGNoYXIgYnVmW0JVRlNJWl07DQorCWludCBp Ow0KKwlmbG9hdCBiYXNlOw0KKwlsb25nIGxvbmcgYnl0ZXM7DQorDQorCWJhc2UgPSBzaSA/IDEw MDAuMCA6IDEwMjQuMDsNCisJYnl0ZXMgPSBzaXplICogMTAyNExMOw0KKw0KKwlpZiAoIWh1bWFu cmVhZGFibGUpIHsNCisJCXN3aXRjaCAoZXhwb25lbnQpIHsNCisJCWNhc2UgMDoNCisJCQkvKiBk ZWZhdWx0IG91dHB1dCAqLw0KKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLCAo bG9uZyBpbnQpKGJ5dGVzIC8gKGxvbmcgbG9uZyBpbnQpYmFzZSkpOw0KKwkJCXJldHVybiBidWY7 DQorCQljYXNlIDE6DQorCQkJLyogaW4gYnl0ZXMsIHdoaWNoIGNhbiBub3QgYmUgaW4gU0kgKi8N CisJCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWxsZCIsIGJ5dGVzKTsNCisJCQlyZXR1 cm4gYnVmOw0KKwkJZGVmYXVsdDoNCisJCQkvKiBJbiBkZXNpcmVkIHNjYWxlLiAqLw0KKwkJCXNu cHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLA0KKwkJCSAgICAgICAgKGxvbmcpKGJ5dGVz IC8gcG93ZXIoYmFzZSwgZXhwb25lbnQtMSkpKTsNCisJCQlyZXR1cm4gYnVmOw0KKwkJfQ0KKwl9 DQorDQorCS8qIGh1bWFuIHJlYWRhYmxlIG91dHB1dCAqLw0KKwlpZiAoNCA+PSBzbnByaW50Zihi dWYsIHNpemVvZihidWYpLCAiJWxsZCVjIiwgYnl0ZXMsIHVwWzBdKSkNCisJCXJldHVybiBidWY7 DQorDQorCWZvciAoaSA9IDE7IHVwW2ldICE9IDA7IGkrKykgew0KKwkJaWYgKHNpKSB7DQorCQkJ aWYgKDQgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUuMWYlYyIsDQorCQkJICAgICAg ICAgICAgICAgICAgKGZsb2F0KShieXRlcyAvIHBvd2VyKGJhc2UsIGkpKSwgdXBbaV0pKQ0KKwkJ CQlyZXR1cm4gYnVmOw0KKwkJCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIl bGQlYyIsDQorCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwg aSkpLCB1cFtpXSkpDQorCQkJCXJldHVybiBidWY7DQorCQl9IGVsc2Ugew0KKwkJCWlmICg1ID49 IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlLjFmJWNpIiwNCisJCQkgICAgICAgICAgICAg ICAgICAoZmxvYXQpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1cFtpXSkpDQorCQkJCXJldHVy biBidWY7DQorCQkJaWYgKDUgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZCVjaSIs DQorCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1 cFtpXSkpDQorCQkJCXJldHVybiBidWY7DQorCQl9DQorCX0NCisJLyoNCisJICogT24gc3lzdGVt IHdoZXJlIHRoZXJlIGlzIG1vcmUgdGhhbiBleGJpYnl0ZSBvZiBtZW1vcnkgb3Igc3dhcCB0aGUN CisJICogb3V0cHV0IGRvZXMgbm90IGZpdCB0byBjb2x1bW4uIEZvciBpbmNvbWluZyBmZXcgeWVh cnMgdGhpcyBzaG91bGQNCisJICogbm90IGJlIGEgYmlnIHByb2JsZW0gKHdyb3RlIGF0IEFwciwg MjAxNSkuDQorCSAqLw0KKwlyZXR1cm4gYnVmOw0KK30NCmRpZmYgLS1naXQgYS9sb2NhbC91bml0 cy5oIGIvbG9jYWwvdW5pdHMuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw Li4yZWE4ZjYzYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvbG9jYWwvdW5pdHMuaA0KQEAgLTAsMCAr MSw2IEBADQorI2lmbmRlZiBQUk9DUFNfVU5JVFNfSA0KKyNkZWZpbmUgUFJPQ1BTX1VOSVRTX0gN CisNCitjb25zdCBjaGFyKiBzY2FsZV9zaXplKHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQg aW50IGV4cG9uZW50LCBpbnQgc2ksIGludCBodW1hbnJlYWRhYmxlKTsNCisNCisjZW5kaWYNCmRp ZmYgLS1naXQgYS9zcmMvZnJlZS5jIGIvc3JjL2ZyZWUuYw0KaW5kZXggNTc5NTkxZDQuLmRmYjE2 NmNkIDEwMDY0NA0KLS0tIGEvc3JjL2ZyZWUuYw0KKysrIGIvc3JjL2ZyZWUuYw0KQEAgLTM4LDYg KzM4LDcgQEANCiAjaW5jbHVkZSAibmxzLmgiDQogI2luY2x1ZGUgInN0cnV0aWxzLmgiDQogI2lu Y2x1ZGUgImZpbGV1dGlscy5oIg0KKyNpbmNsdWRlICJ1bml0cy5oIg0KIA0KICNpbmNsdWRlICJt ZW1pbmZvLmgiDQogDQpAQCAtNjMsOCArNjQsNiBAQCBzdHJ1Y3QgY29tbWFuZGxpbmVfYXJndW1l bnRzIHsNCiANCiAvKiBmdW5jdGlvbiBwcm90b3R5cGVzICovDQogc3RhdGljIHZvaWQgdXNhZ2Uo RklMRSAqIG91dCk7DQotZG91YmxlIHBvd2VyKHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBp bnQgZXhwbyk7DQotc3RhdGljIGNvbnN0IGNoYXIgKnNjYWxlX3NpemUodW5zaWduZWQgbG9uZyBz aXplLCBpbnQgZmxhZ3MsIHN0cnVjdCBjb21tYW5kbGluZV9hcmd1bWVudHMgYXJncyk7DQogDQog c3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpDQogICAgIHVzYWdlKEZJ TEUgKiBvdXQpDQpAQCAtMTAxLDcwICsxMDAsNiBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9f ICgoX19ub3JldHVybl9fKSkNCiAJZXhpdChvdXQgPT0gc3RkZXJyID8gRVhJVF9GQUlMVVJFIDog RVhJVF9TVUNDRVNTKTsNCiB9DQogDQotZG91YmxlIHBvd2VyKHVuc2lnbmVkIGludCBiYXNlLCB1 bnNpZ25lZCBpbnQgZXhwbykNCi17DQotCXJldHVybiAoZXhwbyA9PSAwKSA/IDEgOiBiYXNlICog cG93ZXIoYmFzZSwgZXhwbyAtIDEpOw0KLX0NCi0NCi0vKiBpZGVhIG9mIHRoaXMgZnVuY3Rpb24g aXMgY29waWVkIGZyb20gdG9wIHNpemUgc2NhbGluZyAqLw0KLXN0YXRpYyBjb25zdCBjaGFyICpz Y2FsZV9zaXplKHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IGZsYWdzLCBzdHJ1Y3QgY29tbWFuZGxp bmVfYXJndW1lbnRzIGFyZ3MpDQotew0KLQlzdGF0aWMgY2hhciB1cFtdID0geyAnQicsICdLJywg J00nLCAnRycsICdUJywgJ1AnLCAwIH07DQotCXN0YXRpYyBjaGFyIGJ1ZltCVUZTSVpdOw0KLQlp bnQgaTsNCi0JZmxvYXQgYmFzZTsNCi0JbG9uZyBsb25nIGJ5dGVzOw0KLQ0KLQliYXNlID0gKGZs YWdzICYgRlJFRV9TSSkgPyAxMDAwLjAgOiAxMDI0LjA7DQotCWJ5dGVzID0gc2l6ZSAqIDEwMjRM TDsNCi0NCi0JaWYgKCEoZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKSB7DQotCQlzd2l0Y2gg KGFyZ3MuZXhwb25lbnQpIHsNCi0JCWNhc2UgMDoNCi0JCQkvKiBkZWZhdWx0IG91dHB1dCAqLw0K LQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLCAobG9uZyBpbnQpKGJ5dGVzIC8g KGxvbmcgbG9uZyBpbnQpYmFzZSkpOw0KLQkJCXJldHVybiBidWY7DQotCQljYXNlIDE6DQotCQkJ LyogaW4gYnl0ZXMsIHdoaWNoIGNhbiBub3QgYmUgaW4gU0kgKi8NCi0JCQlzbnByaW50ZihidWYs IHNpemVvZihidWYpLCAiJWxsZCIsIGJ5dGVzKTsNCi0JCQlyZXR1cm4gYnVmOw0KLQkJZGVmYXVs dDoNCi0JCQkvKiBJbiBkZXNpcmVkIHNjYWxlLiAqLw0KLQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9m KGJ1ZiksICIlbGQiLA0KLQkJCSAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgYXJn cy5leHBvbmVudC0xKSkpOw0KLQkJCXJldHVybiBidWY7DQotCQl9DQotCX0NCi0NCi0JLyogaHVt YW4gcmVhZGFibGUgb3V0cHV0ICovDQotCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1 ZiksICIlbGxkJWMiLCBieXRlcywgdXBbMF0pKQ0KLQkJcmV0dXJuIGJ1ZjsNCi0NCi0JZm9yIChp ID0gMTsgdXBbaV0gIT0gMDsgaSsrKSB7DQotCQlpZiAoZmxhZ3MgJiBGUkVFX1NJKSB7DQotCQkJ aWYgKDQgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUuMWYlYyIsDQotCQkJICAgICAg ICAgICAgICAgICAgKGZsb2F0KShieXRlcyAvIHBvd2VyKGJhc2UsIGkpKSwgdXBbaV0pKQ0KLQkJ CQlyZXR1cm4gYnVmOw0KLQkJCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIl bGQlYyIsDQotCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwg aSkpLCB1cFtpXSkpDQotCQkJCXJldHVybiBidWY7DQotCQl9IGVsc2Ugew0KLQkJCWlmICg1ID49 IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlLjFmJWNpIiwNCi0JCQkgICAgICAgICAgICAg ICAgICAoZmxvYXQpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1cFtpXSkpDQotCQkJCXJldHVy biBidWY7DQotCQkJaWYgKDUgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZCVjaSIs DQotCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1 cFtpXSkpDQotCQkJCXJldHVybiBidWY7DQotCQl9DQotCX0NCi0JLyoNCi0JICogT24gc3lzdGVt IHdoZXJlIHRoZXJlIGlzIG1vcmUgdGhhbiBleGJpYnl0ZSBvZiBtZW1vcnkgb3Igc3dhcCB0aGUN Ci0JICogb3V0cHV0IGRvZXMgbm90IGZpdCB0byBjb2x1bW4uIEZvciBpbmNvbWluZyBmZXcgeWVh cnMgdGhpcyBzaG91bGQNCi0JICogbm90IGJlIGEgYmlnIHByb2JsZW0gKHdyb3RlIGF0IEFwciwg MjAxNSkuDQotCSAqLw0KLQlyZXR1cm4gYnVmOw0KLX0NCi0NCiBzdGF0aWMgdm9pZCBjaGVja191 bml0X3NldChpbnQgKnVuaXRfc2V0KQ0KIHsNCiAgICAgaWYgKCp1bml0X3NldCkNCkBAIC0zNzgs MTEgKzMxMywxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogICAgICAgICAg ICAgICAgICAgKiB0aGF0IGFyZSBhbGwgNyBjaGFyYWN0ZXJzIGxvbmcuIFVzZSBzcGFjZXMgYW5k IHJpZ2h0DQogICAgICAgICAgICAgICAgICAgKiBhbGlnbiBpZiB0aGUgdHJhbnNsYXRpb24gaXMg c2hvcnRlci4NCiAgICAgICAgICAgICAgICAgICAqLw0KLQkJcHJpbnRmKCIlcyAlMTFzICIsIF8o IlN3YXBVc2UiKSwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQ X1VTRUQsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQorCQkgICAgIHByaW50ZigiJXMgJTExcyAi LCBfKCJTd2FwVXNlIiksIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9f U1dBUF9VU0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdz ICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQogCQlwcmludGYoIiVzICUxMXMgIiwgXygiQ2FjaFVz ZSIpLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9CVUZGRVJT LCB1bF9pbnQpICsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVNSU5GT19HRVQobWVt X2luZm8sIE1FTUlORk9fTUVNX0NBQ0hFRF9BTEwsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQot CQlwcmludGYoIiVzICUxMXMgIiwgXygiIE1lbVVzZSIpLCBzY2FsZV9zaXplKE1FTUlORk9fR0VU KG1lbV9pbmZvLCBNRU1JTkZPX01FTV9VU0VELCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJ cHJpbnRmKCIlcyAlMTFzICIsIF8oIk1lbUZyZWUiKSwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVCht ZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVN X0NBQ0hFRF9BTEwsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxh Z3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCisJCXByaW50ZigiJXMgJTExcyAiLCBfKCIgTWVt VXNlIiksIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX1VTRUQs IHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hV TUFOUkVBREFCTEUpKTsNCisJCXByaW50ZigiJXMgJTExcyAiLCBfKCJNZW1GcmVlIiksIHNjYWxl X3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0ZSRUUsIHVsX2ludCksIGFy Z3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUp KTsNCiAJCWlmICggKGZsYWdzICYgRlJFRV9SRVBFQVQpID09IDAgKQ0KIAkJCXByaW50ZigiXG4i KTsNCiAJCWVsc2UgaWYgKCBhcmdzLnJlcGVhdF9jb3VudGVyID09IDEgKQ0KQEAgLTM5OCwyMCAr MzMzLDIwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJCX0NCiAJCXByaW50 ZigiXG4iKTsNCiAJCXByaW50X2hlYWRfY29sKF8oIk1lbToiKSk7DQotCQlwcmludGYoIiUxMXMi LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9UT1RBTCwgdWxf aW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlO Rk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9VU0VELCB1bF9pbnQpLCBmbGFncywgYXJncykp Ow0KLQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F TUlORk9fTUVNX0ZSRUUsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQotCQlwcmludGYoIiAlMTFz Iiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fU0hBUkVELCB1 bF9pbnQpLCBmbGFncywgYXJncykpOw0KKwkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1J TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fVE9UQUwsIHVsX2ludCksIGFyZ3MuZXhwb25l bnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCisJCXBy aW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01F TV9VU0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYg RlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1J TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSwgYXJncy5leHBvbmVu dCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJcHJp bnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVN X1NIQVJFRCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAm IEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KIAkJaWYgKGZsYWdzICYgRlJFRV9XSURFKSB7DQogCQkJ cHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9f TUVNX0JVRkZFUlMsIHVsX2ludCksDQotCQkJCSAgICBmbGFncywgYXJncykpOw0KKwkJCQkgICAg YXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJM RSkpOw0KIAkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZv LCBNRU1JTkZPX01FTV9DQUNIRURfQUxMLCB1bF9pbnQpDQotCQkJCSAgICAsIGZsYWdzLCBhcmdz KSk7DQorCQkJCSAgICAsIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBG UkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCX0gZWxzZSB7DQogCQkJcHJpbnRmKCIgJTExcyIsIHNj YWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0JVRkZFUlMsIHVsX2lu dCkgKw0KLQkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NBQ0hFRF9B TEwsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQorCQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5m bywgTUVNSU5GT19NRU1fQ0FDSEVEX0FMTCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3Mg JiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KIAkJfQ0KLQkJcHJpbnRm KCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0FW QUlMQUJMRSwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCisJCXByaW50ZigiICUxMXMiLCBzY2Fs ZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9BVkFJTEFCTEUsIHVsX2lu dCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVB REFCTEUpKTsNCiAJCXByaW50ZigiXG4iKTsNCiAJCS8qDQogCQkgKiBQcmludCBsb3cgdnMuIGhp Z2ggaW5mb3JtYXRpb24sIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpdC4NCkBAIC00MjEsNDQgKzM1 Niw0NCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogCQkgKi8NCiAJCWlmIChm bGFncyAmIEZSRUVfTE9ISSkgew0KIAkJCXByaW50X2hlYWRfY29sKF8oIkxvdzoiKSk7DQotCQkJ cHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19N RU1fTE9XX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJCXByaW50ZigiICUxMXMi LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9MT1dfVVNFRCwg dWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShN RU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fTE9XX0ZSRUUsIHVsX2ludCksIGZsYWdz LCBhcmdzKSk7DQorCQkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1f aW5mbywgTUVNSU5GT19NRU1fTE9XX1RPVEFMLCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFn cyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRmKCIg JTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0xPV19V U0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJF RV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5G T19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0xPV19GUkVFLCB1bF9pbnQpLCBhcmdzLmV4cG9u ZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQogCQkJ cHJpbnRmKCJcbiIpOw0KIA0KIAkJCXByaW50X2hlYWRfY29sKCBfKCJIaWdoOiIpKTsNCi0JCQlw cmludGYoIiUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01F TV9ISUdIX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJCXByaW50ZigiICUxMXMi LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX1VTRUQs IHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQotCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUo TUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0hJR0hfRlJFRSwgdWxfaW50KSwgZmxh Z3MsIGFyZ3MpKTsNCisJCQlwcmludGYoIiUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1l bV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX1RPVEFMLCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBm bGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRm KCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0hJ R0hfVVNFRCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAm IEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1F TUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX0ZSRUUsIHVsX2ludCksIGFyZ3Mu ZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsN CiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogDQogCQlwcmludF9oZWFkX2NvbChfKCJTd2FwOiIp KTsNCi0JCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F TUlORk9fU1dBUF9UT1RBTCwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUx MXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX1NXQVBfVVNFRCwg dWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1F TUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX1NXQVBfRlJFRSwgdWxfaW50KSwgZmxhZ3MsIGFy Z3MpKTsNCisJCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8s IE1FTUlORk9fU1dBUF9UT1RBTCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVF X1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJcHJpbnRmKCIgJTExcyIsIHNj YWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9VU0VELCB1bF9pbnQp LCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURB QkxFKSk7DQorCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5m bywgTUVNSU5GT19TV0FQX0ZSRUUsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJF RV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCXByaW50ZigiXG4iKTsNCiAN CiAJCWlmIChmbGFncyAmIEZSRUVfVE9UQUwpIHsNCiAJCQlwcmludF9oZWFkX2NvbChfKCJUb3Rh bDoiKSk7DQogCQkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZSgNCiAJCQkJICAgIE1FTUlORk9f R0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9UT1RBTCwgdWxfaW50KSArDQotCQkJCSAgICBNRU1J TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJn cykpOw0KKwkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9UT1RBTCwg dWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVN QU5SRUFEQUJMRSkpOw0KIAkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKA0KIAkJCQkgICAg TUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX1VTRUQsIHVsX2ludCkgKw0KLQkJCQkg ICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9VU0VELCB1bF9pbnQpLCBmbGFn cywgYXJncykpOw0KKwkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9V U0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJF RV9IVU1BTlJFQURBQkxFKSk7DQogCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoDQogCQkJ CSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSArDQot CQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQX0ZSRUUsIHVsX2ludCks IGZsYWdzLCBhcmdzKSk7DQorCQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19T V0FQX0ZSRUUsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3Mg JiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogCQlpZiAo ZmxhZ3MgJiBGUkVFX0NPTU1JVFRFRCkgew0KIAkJCXByaW50X2hlYWRfY29sKF8oIkNvbW06Iikp Ow0KLQkJCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F TUlORk9fTUVNX0NPTU1JVF9MSU1JVCwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCQlwcmlu dGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1f Q09NTUlUVEVEX0FTLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KKwkJCXByaW50ZigiJTExcyIs IHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NPTU1JVF9MSU1J VCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVf SFVNQU5SRUFEQUJMRSkpOw0KKwkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9f R0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9DT01NSVRURURfQVMsIHVsX2ludCksIGFyZ3MuZXhw b25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJ CQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZSgNCiAJCQkJICAgIE1FTUlORk9fR0VUKG1lbV9p bmZvLCBNRU1JTkZPX01FTV9DT01NSVRfTElNSVQsIHVsX2ludCkgLQ0KLQkJCQkgICAgTUVNSU5G T19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NPTU1JVFRFRF9BUywgdWxfaW50KSwgZmxhZ3Ms IGFyZ3MpKTsNCisJCQkJICAgIE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9DT01N SVRURURfQVMsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3Mg JiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogDQotLSAN CjIuNDIuMA0KDQo= --b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8 Content-Type: text/x-patch; charset=UTF-8; name=0003-Slabtop-add-human-flag-for-human-readable-units.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0003-Slabtop-add-human-flag-for-human-readable-units.patch RnJvbSBiYTA1OTM1OTBjYTQ3OWZkZTIwYmI2OTA0MWMwYzYzYjg1NDVhMGJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMzowOTo1OCArMDEwMA0KU3ViamVjdDogW1BBVENIIDMv M10gU2xhYnRvcCAtIGFkZCAtLWh1bWFuIGZsYWcgZm9yIGh1bWFuLXJlYWRhYmxlIHVuaXRzDQoN ClN0cm9uZ2x5IGluc3BpcmVkIGZyb20gZnJlZS5jIGNvZGViYXNlDQoNCkkgaGFkIHRvIHNwbGl0 IFBSSU5UX2xpbmUgaW50byB0d28gY2FsbHMgYmVjYXVzZSBzY2FsZV9zaXplIHJldXNlcyB0aGUN CmJ1ZmZlciBhbmQgdGhhdCdzIHRoZSBlYXNpZXN0IHdvcmthcm91bmQgZm9yIHRoYXQuDQotLS0N CiBNYWtlZmlsZS5hbSAgIHwgIDIgKy0NCiBzcmMvc2xhYnRvcC5jIHwgMjMgKysrKysrKysrKysr KysrKysrLS0tLS0NCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pDQoNCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtDQppbmRleCA5 N2U5N2I1MS4uOTk4OTFkMzYgMTAwNjQ0DQotLS0gYS9NYWtlZmlsZS5hbQ0KKysrIGIvTWFrZWZp bGUuYW0NCkBAIC0xNzksNyArMTc5LDcgQEAgYmluX1BST0dSQU1TICs9IFwNCiAJc3JjL3NsYWJ0 b3ANCiBkaXN0X21hbl9NQU5TICs9IFwNCiAJbWFuL3NsYWJ0b3AuMQ0KLXNyY19zbGFidG9wX1NP VVJDRVMgPSBzcmMvc2xhYnRvcC5jIGxvY2FsL3N0cnV0aWxzLmMgbG9jYWwvZmlsZXV0aWxzLmMN CitzcmNfc2xhYnRvcF9TT1VSQ0VTID0gc3JjL3NsYWJ0b3AuYyBsb2NhbC9zdHJ1dGlscy5jIGxv Y2FsL2ZpbGV1dGlscy5jIGxvY2FsL3VuaXRzLmMNCiBzcmNfc2xhYnRvcF9DRkxBR1MgPSBATkNV UlNFU19DRkxBR1NADQogc3JjX3NsYWJ0b3BfTERBREQgPSAkKExEQUREKSBATkNVUlNFU19MSUJT QA0KIGVuZGlmDQpkaWZmIC0tZ2l0IGEvc3JjL3NsYWJ0b3AuYyBiL3NyYy9zbGFidG9wLmMNCmlu ZGV4IGQwNGI0MjYyLi45NDc5ZjA5ZiAxMDA2NDQNCi0tLSBhL3NyYy9zbGFidG9wLmMNCisrKyBi L3NyYy9zbGFidG9wLmMNCkBAIC00NCw2ICs0NCw3IEBADQogI2luY2x1ZGUgImZpbGV1dGlscy5o Ig0KICNpbmNsdWRlICJubHMuaCINCiAjaW5jbHVkZSAic3RydXRpbHMuaCINCisjaW5jbHVkZSAi dW5pdHMuaCINCiANCiAjaW5jbHVkZSAic2xhYmluZm8uaCINCiANCkBAIC01NSw2ICs1Niw3IEBA DQogc3RhdGljIHVuc2lnbmVkIHNob3J0IENvbHMsIFJvd3M7DQogc3RhdGljIHN0cnVjdCB0ZXJt aW9zIFNhdmVkX3R0eTsNCiBzdGF0aWMgbG9uZyBEZWxheSA9IDA7DQorc3RhdGljIGludCBIdW1h biA9IDA7DQogc3RhdGljIGludCBSdW5fb25jZSA9IDA7DQogDQogc3RhdGljIHN0cnVjdCBzbGFi aW5mb19pbmZvICpTbGFiX2luZm87DQpAQCAtMTA3LDYgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIF9f YXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIHVzYWdlIChGSUxFICpvdXQpDQogICAgIGZwdXRz KFVTQUdFX09QVElPTlMsIG91dCk7DQogICAgIGZwdXRzKF8oIiAtZCwgLS1kZWxheSA8c2Vjcz4g IGRlbGF5IHVwZGF0ZXNcbiIpLCBvdXQpOw0KICAgICBmcHV0cyhfKCIgLW8sIC0tb25jZSAgICAg ICAgICBvbmx5IGRpc3BsYXkgb25jZSwgdGhlbiBleGl0XG4iKSwgb3V0KTsNCisgICAgZnB1dHMo XygiIC0taHVtYW4gICAgICAgICAgICAgc2hvdyBodW1hbi1yZWFkYWJsZSBvdXRwdXRcbiIpLCBv dXQpOw0KICAgICBmcHV0cyhfKCIgLXMsIC0tc29ydCA8Y2hhcj4gICBzcGVjaWZ5IHNvcnQgY3Jp dGVyaWEgYnkgY2hhcmFjdGVyIChzZWUgYmVsb3cpXG4iKSwgb3V0KTsNCiAgICAgZnB1dHMoVVNB R0VfU0VQQVJBVE9SLCBvdXQpOw0KICAgICBmcHV0cyhVU0FHRV9IRUxQLCBvdXQpOw0KQEAgLTE3 Miw3ICsxNzUsMTIgQEAgc3RhdGljIHZvaWQgc2V0X3NvcnRfc3R1ZmYgKGNvbnN0IGNoYXIga2V5 KQ0KIA0KIHN0YXRpYyB2b2lkIHBhcnNlX29wdHMgKGludCBhcmdjLCBjaGFyICoqYXJndikNCiB7 DQorDQorICAgIGVudW0gew0KKyAgICAgICAgSFVNQU5fT1BUSU9OID0gQ0hBUl9NQVggKyAxLA0K KyAgICB9Ow0KICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gew0K KyAgICAgICAgeyAiaHVtYW4iLCAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBIVU1BTl9PUFRJ T04gfSwNCiAgICAgICAgIHsgImRlbGF5IiwgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2Qn IH0sDQogICAgICAgICB7ICJzb3J0IiwgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdzJyB9 LA0KICAgICAgICAgeyAib25jZSIsICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAnbycgfSwN CkBAIC0xODMsNiArMTkxLDkgQEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQ0KIA0KICAgICB3aGlsZSAoKG8gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi ZDpzOm9oViIsIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsNCiAgICAgICAgIHN3aXRjaCAobykg ew0KKyAgICAgICAgY2FzZSBIVU1BTl9PUFRJT046DQorICAgICAgICAgICAgSHVtYW4gPSAxOw0K KyAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2FzZSAnZCc6DQogICAgICAgICAgICAgaWYg KFJ1bl9vbmNlKQ0KICAgICAgICAgICAgICAgICB4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5v dCBjb21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KQEAgLTI1NSwxMSArMjY2LDEzIEBAIHN0 YXRpYyB2b2lkIHByaW50X3N1bW1hcnkgKHZvaWQpDQogICAgICAgICAgICAgICAgLCB0b3RhbFZB TCh0b3RfQUNBQ0hFUywgdV9pbnQpDQogICAgICAgICAgICAgICAgLCB0b3RhbFZBTCh0b3RfQ0FD SEVTLCAgdV9pbnQpDQogICAgICAgICAgICAgICAgLCAxMDAuMCAqIHRvdGFsVkFMKHRvdF9BQ0FD SEVTLCB1X2ludCkgLyB0b3RhbFZBTCh0b3RfQ0FDSEVTLCB1X2ludCkpOw0KLSAgICBQUklOVF9s aW5lKCIgJS0zNXM6ICUuMmZLIC8gJS4yZksgKCUuMWYlJSlcbiINCisgICAgUFJJTlRfbGluZSgi ICUtMzVzOiAlcyAvICINCiAgICAgICAgICAgICAgICAsIC8qIHhnZXR0ZXh0Om5vLWMtZm9ybWF0 ICovDQogICAgICAgICAgICAgICAgICBfKCJBY3RpdmUgLyBUb3RhbCBTaXplICglIHVzZWQpIikN Ci0gICAgICAgICAgICAgICAsIHRvdGFsVkFMKHRvdF9BQ1RJVkUsIHVsX2ludCkgLyAxMDI0LjAN Ci0gICAgICAgICAgICAgICAsIHRvdGFsVkFMKHRvdF9UT1RBTCwgIHVsX2ludCkgLyAxMDI0LjAN CisgICAgICAgICAgICAgICAsIHNjYWxlX3NpemUodG90YWxWQUwodG90X0FDVElWRSwgdWxfaW50 KSAvIDEwMjQsIDAsIDAsIEh1bWFuKSk7DQorICAgIFBSSU5UX2xpbmUoIiVzICglLjFmJSUpXG4i DQorICAgICAgICAgICAgICAgICAvKiB4Z2V0dGV4dDpuby1jLWZvcm1hdCAqLw0KKyAgICAgICAg ICAgICAgICwgc2NhbGVfc2l6ZSh0b3RhbFZBTCh0b3RfVE9UQUwsICB1bF9pbnQpIC8gMTAyNCwg MCwgMCwgSHVtYW4pDQogICAgICAgICAgICAgICAgLCAxMDAuMCAqIHRvdGFsVkFMKHRvdF9BQ1RJ VkUsIHVsX2ludCkgLyB0b3RhbFZBTCh0b3RfVE9UQUwsIHVsX2ludCkpOw0KICAgICBQUklOVF9s aW5lKCIgJS0zNXM6ICUuMmZLIC8gJS4yZksgLyAlLjJmS1xuXG4iDQogICAgICAgICAgICAgICAg LCBfKCJNaW5pbXVtIC8gQXZlcmFnZSAvIE1heGltdW0gT2JqZWN0IikNCkBAIC0yNzksMTQgKzI5 MiwxNCBAQCBzdGF0aWMgdm9pZCBwcmludF9oZWFkaW5ncyAodm9pZCkNCiBzdGF0aWMgdm9pZCBw cmludF9kZXRhaWxzIChzdHJ1Y3Qgc2xhYmluZm9fc3RhY2sgKnN0YWNrKQ0KIHsNCiAgI2RlZmlu ZSBub2RlVkFMKGUsdCkgU0xBQklORk9fVkFMKGUsIHQsIHN0YWNrLCBTbGFiX2luZm8pDQotICAg IFBSSU5UX2xpbmUoIiU2dSAlNnUgJTN1JSUgJTcuMmZLICU2dSAlOHUgJTlsdUsgJS0yM3NcbiIN CisgICAgUFJJTlRfbGluZSgiJTZ1ICU2dSAlM3UlJSAlNy4yZksgJTZ1ICU4dSAlMTBzICUtMjNz XG4iDQogICAgICAgICAsIG5vZGVWQUwobm9kX09CSlMsICB1X2ludCkNCiAgICAgICAgICwgbm9k ZVZBTChub2RfQU9CSlMsIHVfaW50KQ0KICAgICAgICAgLCBub2RlVkFMKG5vZF9VU0UsICAgdV9p bnQpDQogICAgICAgICAsIG5vZGVWQUwobm9kX09TSVpFLCB1X2ludCkgLyAxMDI0LjANCiAgICAg ICAgICwgbm9kZVZBTChub2RfU0xBQlMsIHVfaW50KQ0KICAgICAgICAgLCBub2RlVkFMKG5vZF9P UFMsICAgdV9pbnQpDQotICAgICAgICAsIG5vZGVWQUwobm9kX1NJWkUsICB1bF9pbnQpIC8gMTAy NA0KKyAgICAgICAgLCBzY2FsZV9zaXplKG5vZGVWQUwobm9kX1NJWkUsICB1bF9pbnQpIC8gMTAy NCwgMCwgMCwgSHVtYW4pDQogICAgICAgICAsIG5vZGVWQUwobm9kX05BTUUsICBzdHIpKTsNCiAN CiAgICAgcmV0dXJuOw0KLS0gDQoyLjQyLjANCg0K --b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8--