From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 75ED8C369AB for ; Fri, 18 Apr 2025 15:45:09 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u5ntY-0003Xa-Kh; Fri, 18 Apr 2025 11:44:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u5ntX-0003X4-2O for grub-devel@gnu.org; Fri, 18 Apr 2025 11:44:47 -0400 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u5ntU-0001FY-RN for grub-devel@gnu.org; Fri, 18 Apr 2025 11:44:46 -0400 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-54c090fc7adso2180239e87.2 for ; Fri, 18 Apr 2025 08:44:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744991082; x=1745595882; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=N6zFZaUX0BDQwSTaQStU5v9/2FHiLAfW9TMcpl6iMDA=; b=TrE+oG+k3TK6AGk/mAaGroWLTDx9sopZ+9G32pAzNiwIjF30wrZO+onXAgYCqnRXzC XHGQmkJvLiJzoQATKqmfPoZBiv79PJGlRYczu08SVg9JtQzLOxGHTs5H2W4poRqWW8Tp 0N4sYi1iqdQAvBWIp+Mlm6j6hh2khL9XHC1kbjOek2HhbEzuSOWBiwcqqi62L0YsiE4w 9mftdMH0uYe3Lr4rBlMS+yriVgRhJDbemFORxYfTj+ozQqBaivsH6OZPc0VmZ8QGnlX/ oH0eMRFmpa8GX+tpn+qXY7wzvNPPtQFUTKlblPrsyTM9c5HkuUuk57Z+Uh1e7c6RmWfN nn8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744991082; x=1745595882; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N6zFZaUX0BDQwSTaQStU5v9/2FHiLAfW9TMcpl6iMDA=; b=bHQzdBEf0j5CFCTQc3OrPYadW4Vn4/zkEdag99DmH6TvQYV0tWGCCu8+xjwojbqVmu +nrHB9/uCXVZ26FcLGPNdp2I/J7KhSmlt3iJcGT8GyWq9seKjEJ31PxitaYlnm2ZGb6w sV7vWSr6wtD3KeDinfnAHDtx/vuEHWgbGSNM0mrE1Q4GPn9H76e49GXwxDUWpwAimNqs HWR/2YMZbVPyEIhswqEfNLbHnsBTpuUwKZpI4G2j0lBJdtPY632/lJayDdXN94wX8ATB Kk70wMKJLIXiMMvEwkOAUiRiZg/rl713tck05yH0w4YLJDzi2xh3DghdjEup3CgIbWi6 341A== X-Gm-Message-State: AOJu0YwHCnmfIHXPW2lcY+OkauQFgF1aWBd4m2korpqgsJusLH+5EnYM e6Zhp4CtEQFXuYjZ9OAJRyz2JYJoRLsXuC8VDciEcPPn93GNX5ELK2aOkg== X-Gm-Gg: ASbGncsNjMWLX+6j0ahWw23vYb2LuDjTsQ+zZXKJp0vzNYBQmODtsFaLxJInB5/vIR5 cqsFQ/rvXu489Ok8dishX1C5LUGN+SHIaPHbaHEaQwyEViF9mchJZsNfxlqhLcFfz6wZVhQx1p3 pH+g5ahZ4xBTNeBwFvz2ozntqM1hmId8JfEf2H2i4y0CnSWeW60gHIAHrULyJmM33CE4yLU0LGD jZvZUHcKlJOaCWbKb+jN3n7AaXnjkoN3gHsvo0gJHRUnGdhnQU8drXEZTusyeSx2AP+YJkCCnhI pdeE4LX4+fXEaOZhmUY4hHv348cgabreolbRfXhQ5wZ2b8aYrFpW+lE= X-Google-Smtp-Source: AGHT+IGNCjHE6sosNq3EbjjB+qgoHaPbp/mnxC4ax2rsXikJ3WbZGvJNVYmFT5MJPhJXydw4zXcVlQ== X-Received: by 2002:a05:6512:a8b:b0:54c:a49:d3f4 with SMTP id 2adb3069b0e04-54d6e558464mr829163e87.0.1744991081444; Fri, 18 Apr 2025 08:44:41 -0700 (PDT) Received: from localhost (vds2213055.my-ihor.ru. [94.142.141.192]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54d6e540c8dsm224875e87.63.2025.04.18.08.44.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 08:44:40 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH] Command lspaging to show paging table Date: Fri, 18 Apr 2025 15:44:11 +0000 Message-ID: <20250418154423.85408-1-phcoder@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::12f; envelope-from=phcoder@gmail.com; helo=mail-lf1-x12f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VGhpcyBjb21tYW5kIGZvciB4ODZfNjQgYW5kIGFybTY0IHNob3dzIGN1cnJlbnQgcGFnaW5nIHRh YmxlIG9uIHBsYXRmb3JtcwppbiBxdWVzdGlvbi4KClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIFNl cmJpbmVua28gPHBoY29kZXJAZ21haWwuY29tPgotLS0KIGdydWItY29yZS9NYWtlZmlsZS5jb3Jl LmRlZiAgICAgICAgICB8ICAgOCArKwogZ3J1Yi1jb3JlL2NvbW1hbmRzL2FybTY0L2xzcGFnaW5n LmMgIHwgMTM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogZ3J1Yi1jb3JlL2NvbW1hbmRz L3g4Nl82NC9sc3BhZ2luZy5jIHwgMTE1ICsrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMjYxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv Y29tbWFuZHMvYXJtNjQvbHNwYWdpbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9j b21tYW5kcy94ODZfNjQvbHNwYWdpbmcuYwoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9NYWtlZmls ZS5jb3JlLmRlZiBiL2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRlZgppbmRleCBmNzBlMDJlNjku LjdmOGNiM2Y3ZCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCisrKyBi L2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRlZgpAQCAtODE0LDYgKzgxNCwxNCBAQCBtb2R1bGUg PSB7CiAgIGVuYWJsZSA9IGVmaTsKIH07CiAKK21vZHVsZSA9IHsKKyAgbmFtZSA9IGxzcGFnaW5n OworICB4ODZfNjRfZWZpID0gY29tbWFuZHMveDg2XzY0L2xzcGFnaW5nLmM7CisgIGFybTY0X2Vm aSA9IGNvbW1hbmRzL2FybTY0L2xzcGFnaW5nLmM7CisgIGVuYWJsZSA9IGFybTY0X2VmaTsKKyAg ZW5hYmxlID0geDg2XzY0X2VmaTsKK307CisKIG1vZHVsZSA9IHsKICAgbmFtZSA9IGxzZWZpbW1h cDsKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FybTY0L2xzcGFnaW5nLmMgYi9n cnViLWNvcmUvY29tbWFuZHMvYXJtNjQvbHNwYWdpbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLjNkMThhMDljMwotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9j b21tYW5kcy9hcm02NC9sc3BhZ2luZy5jCkBAIC0wLDAgKzEsMTM4IEBACisvKiBsc3BhZ2luZy5j ICAtIERpc3BsYXkgcGFnaW5nIHRhYmxlLiAgKi8KKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVu aWZpZWQgQm9vdGxvYWRlcgorICogIENvcHlyaWdodCAoQykgMjAyNSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVC IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKyNpbmNsdWRlIDxncnVi L3R5cGVzLmg+CisjaW5jbHVkZSA8Z3J1Yi9tbS5oPgorI2luY2x1ZGUgPGdydWIvbWlzYy5oPgor I2luY2x1ZGUgPGdydWIvbm9ybWFsLmg+CisjaW5jbHVkZSA8Z3J1Yi9jaGFyc2V0Lmg+CisjaW5j bHVkZSA8Z3J1Yi9lZmkvYXBpLmg+CisjaW5jbHVkZSA8Z3J1Yi9lZmkvZWZpLmg+CisjaW5jbHVk ZSA8Z3J1Yi9kbC5oPgorCitHUlVCX01PRF9MSUNFTlNFICgiR1BMdjMrIik7CisKK3R5cGVkZWYg ZW51bSB7VU5NQVBQRUQsIE5PTklERU5USVRZLCBJREVOVElUWX0gbWFwcGluZ190eXBlX3Q7CisK K3N0YXRpYyBjb25zdCBjaGFyICptYXBwaW5nX25hbWVzW10gPSB7CisgICJ1bm1hcHBlZCIsCisg ICJub24taWRlbnRpdHkiLAorICAiaWRlbnRpdHkiLAorfTsKKworc3RhdGljIGJvb2wKK3Byb2Nl c3NfbGV2ZWwoZ3J1Yl91aW50NjRfdCAqc3RhcnRfYWRkcmVzcywgbWFwcGluZ190eXBlX3QgKnN0 YXJ0X3R5cGUsCisJICAgICAgZ3J1Yl91aW50NjRfdCAqbmV4dF9hZGRyZXNzLCBncnViX3VpbnQ2 NF90ICpseCwgZ3J1Yl91aW50NjRfdCBjdXJfYWRkcmVzcywgaW50IG9mZnNldCkKK3sKKyAgbWFw cGluZ190eXBlX3QgY3VyX3R5cGU7CisgIGdydWJfdWludDY0X3QgZW50cnkgPSAoKGdydWJfdWlu dDY0X3QgKikqbHgpWyhjdXJfYWRkcmVzcyA+PiBvZmZzZXQpICYgMHgxZmZdOworICBzd2l0Y2gg KGVudHJ5ICYgMykKKyAgICB7CisgICAgY2FzZSAwOgorICAgIGNhc2UgMjoKKyAgICAgIGN1cl90 eXBlID0gVU5NQVBQRUQ7CisgICAgICBicmVhazsKKyAgICBjYXNlIDM6IC8qIFRhYmxlIGVudHJ5 ICovCisgICAgICBpZiAob2Zmc2V0ICE9IDEyKQorCXsKKwkgICpseCA9IChlbnRyeSAmIDB4ZmZm ZmZmZmZmMDAwKTsKKwkgIHJldHVybiBmYWxzZTsKKwl9CisgICAgICAvKiBGYWxsdGhyb3VnaCAq LworICAgIGNhc2UgMToKKyAgICAgIGN1cl90eXBlID0gKChlbnRyeSAmIDB4ZmZmZmZmZmZmMDAw KSA9PSAoY3VyX2FkZHJlc3MgJiAweGZmZmZmZmZmZjAwMCkpID8gSURFTlRJVFkgOiBOT05JREVO VElUWTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAqbmV4dF9hZGRyZXNzID0gKChjdXJfYWRk cmVzcyA+PiBvZmZzZXQpICsgMSkgPDwgb2Zmc2V0OworCisgIGlmICgqc3RhcnRfdHlwZSAhPSBj dXJfdHlwZSkKKyAgICB7CisgICAgICBpZiAoY3VyX2FkZHJlc3MgIT0gMCkKKwlncnViX3ByaW50 ZigiJTA4bHgtJTA4bHg6ICVzXG4iLCAqc3RhcnRfYWRkcmVzcywgY3VyX2FkZHJlc3MsIG1hcHBp bmdfbmFtZXNbKnN0YXJ0X3R5cGVdKTsKKyAgICAgICpzdGFydF90eXBlID0gY3VyX3R5cGU7Cisg ICAgICAqc3RhcnRfYWRkcmVzcyA9IGN1cl9hZGRyZXNzOworICAgIH0KKworICByZXR1cm4gdHJ1 ZTsKK30KKworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21kX2xzcGFnaW5nIChzdHJ1Y3QgZ3J1 Yl9jb21tYW5kICpjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorCQlpbnQgYXJnYyBfX2F0 dHJpYnV0ZV9fICgodW51c2VkKSksCisJCWNoYXIgKiphcmdzIF9fYXR0cmlidXRlX18gKCh1bnVz ZWQpKSkKK3sKKyAgZ3J1Yl91aW50NjRfdCB0Y3JfZWwxLCB0dGJyMF9lbDE7CisgIGdydWJfdWlu dDY0X3QgaWRfYWE2NG1tZnIzX2VsMTsKKyAgYXNtIHZvbGF0aWxlICgibXJzICAgICAgICUwLCBp ZF9hYTY0bW1mcjNfZWwxIjogIj1yIihpZF9hYTY0bW1mcjNfZWwxKSk7CisKKyAgaWYgKGlkX2Fh NjRtbWZyM19lbDEgJiAweGYpCisgICAgeworICAgICAgZ3J1Yl91aW50NjRfdCB0Y3IyX2VsMTsK KworICAgICAgYXNtIHZvbGF0aWxlICgibXJzICAgICAgICUwLCBzM18wX2MyX2MwXzMiOiAiPXIi KHRjcjJfZWwxKSk7CisgICAgICBpZiAoKHRjcjJfZWwxID4+IDUpICYgMSkKKwlyZXR1cm4gZ3J1 Yl9lcnJvcihHUlVCX0VSUl9OT1RfSU1QTEVNRU5URURfWUVULCAiUGFyc2luZyBEMTI4IHRhYmxl cyBpc24ndCBzdXBwb3J0ZWQgeWV0Iik7CisgICAgfQorICBhc20gdm9sYXRpbGUgKCJtcnMgICAg ICAgJTAsIHRjcl9lbDEiOiAiPXIiKHRjcl9lbDEpKTsKKworICBpZiAoKHRjcl9lbDEgPj4gMTQp ICYgMykKKyAgICByZXR1cm4gZ3J1Yl9lcnJvcihHUlVCX0VSUl9OT1RfSU1QTEVNRU5URURfWUVU LCAibm9uLTRLIHBhZ2UgdGFibGVzIGFyZW4ndCBzdXBwb3J0ZWQgeWV0Iik7CisKKyAgZ3J1Yl91 aW50NjRfdCB0MHN6ID0gdGNyX2VsMSAmIDB4M2Y7CisKKyAgaWYgKHQwc3ogPj0gMjUpCisgICAg cmV0dXJuIGdydWJfZXJyb3IoR1JVQl9FUlJfTk9UX0lNUExFTUVOVEVEX1lFVCwgIlQwU1ogJWxk IGlzbid0IHN1cHBvcnRlZCB5ZXQiLCB0MHN6KTsKKworICBhc20gdm9sYXRpbGUgKCJtcnMgICAg ICAgJTAsIHR0YnIwX2VsMSI6ICI9ciIodHRicjBfZWwxKSk7CisKKyAgZ3J1Yl91aW50NjRfdCBi YWRkciA9ICh0dGJyMF9lbDEgJiAweGZmZmZmZmZmZmZmZWxsKTsKKyAgZ3J1Yl91aW50NjRfdCBz dGFydF9hZGRyZXNzID0gMCwgY3VyX2FkZHJlc3MgPSAwLCBuZXh0X2FkZHJlc3MgPSAwOworICBt YXBwaW5nX3R5cGVfdCBzdGFydF90eXBlID0gVU5NQVBQRUQ7CisKKyAgZ3J1Yl9wcmludGYoImJh ZGRyPSVseFxuIiwgYmFkZHIpOworCisgIGZvciAoY3VyX2FkZHJlc3MgPSAwOyBjdXJfYWRkcmVz cyA8IDB4N2ZmZmZmZmZmZmZmOyBjdXJfYWRkcmVzcyA9IG5leHRfYWRkcmVzcykKKyAgICB7Cisg ICAgICBncnViX3VpbnQ2NF90IGx4ID0gYmFkZHI7CisgICAgICBpZiAocHJvY2Vzc19sZXZlbCgm c3RhcnRfYWRkcmVzcywgJnN0YXJ0X3R5cGUsICZuZXh0X2FkZHJlc3MsICZseCwgY3VyX2FkZHJl c3MsIDM5KSkKKwljb250aW51ZTsKKyAgICAgIGlmIChwcm9jZXNzX2xldmVsKCZzdGFydF9hZGRy ZXNzLCAmc3RhcnRfdHlwZSwgJm5leHRfYWRkcmVzcywgJmx4LCBjdXJfYWRkcmVzcywgMzApKQor CWNvbnRpbnVlOworICAgICAgaWYgKHByb2Nlc3NfbGV2ZWwoJnN0YXJ0X2FkZHJlc3MsICZzdGFy dF90eXBlLCAmbmV4dF9hZGRyZXNzLCAmbHgsIGN1cl9hZGRyZXNzLCAyMSkpCisJY29udGludWU7 CisgICAgICBwcm9jZXNzX2xldmVsKCZzdGFydF9hZGRyZXNzLCAmc3RhcnRfdHlwZSwgJm5leHRf YWRkcmVzcywgJmx4LCBjdXJfYWRkcmVzcywgMTIpOworICAgIH0KKworICBncnViX3ByaW50Zigi JTA4bHgtJTA4bHg6ICVzXG4iLCBzdGFydF9hZGRyZXNzLCBjdXJfYWRkcmVzcywgbWFwcGluZ19u YW1lc1tzdGFydF90eXBlXSk7CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKK3N0YXRp YyBncnViX2NvbW1hbmRfdCBjbWQ7CisKK0dSVUJfTU9EX0lOSVQobHNwYWdpbmcpCit7CisgIGNt ZCA9IGdydWJfcmVnaXN0ZXJfY29tbWFuZCAoImxzcGFnaW5nIiwgZ3J1Yl9jbWRfbHNwYWdpbmcs ICIiLAorCQkJICAgICAgICJEaXNwbGF5IHBhZ2luZyB0YWJsZS4iKTsKK30KKworR1JVQl9NT0Rf RklOSShsc3BhZ2luZykKK3sKKyAgZ3J1Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNtZCk7Cit9CmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMveDg2XzY0L2xzcGFnaW5nLmMgYi9ncnViLWNv cmUvY29tbWFuZHMveDg2XzY0L2xzcGFnaW5nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5kZGQzOTkwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvY29tbWFu ZHMveDg2XzY0L2xzcGFnaW5nLmMKQEAgLTAsMCArMSwxMTUgQEAKKy8qIGxzcGFnaW5nLmMgIC0g RGlzcGxheSBwYWdpbmcgdGFibGUuICAqLworLyoKKyAqICBHUlVCICAtLSAgR1JhbmQgVW5pZmll ZCBCb290bG9hZGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDI1ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAqCisgKiAgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIEdSVUIgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworI2luY2x1ZGUgPGdydWIvdHlw ZXMuaD4KKyNpbmNsdWRlIDxncnViL21tLmg+CisjaW5jbHVkZSA8Z3J1Yi9taXNjLmg+CisjaW5j bHVkZSA8Z3J1Yi9ub3JtYWwuaD4KKyNpbmNsdWRlIDxncnViL2NoYXJzZXQuaD4KKyNpbmNsdWRl IDxncnViL2VmaS9hcGkuaD4KKyNpbmNsdWRlIDxncnViL2VmaS9lZmkuaD4KKyNpbmNsdWRlIDxn cnViL2RsLmg+CisKK0dSVUJfTU9EX0xJQ0VOU0UgKCJHUEx2MysiKTsKKwordHlwZWRlZiBlbnVt IHtVTk1BUFBFRCwgTk9OSURFTlRJVFksIElERU5USVRZfSBtYXBwaW5nX3R5cGVfdDsKKworc3Rh dGljIGNvbnN0IGNoYXIgKm1hcHBpbmdfbmFtZXNbXSA9IHsKKyAgInVubWFwcGVkIiwKKyAgIm5v bi1pZGVudGl0eSIsCisgICJpZGVudGl0eSIsCit9OworCitzdGF0aWMgYm9vbAorcHJvY2Vzc19s ZXZlbChncnViX3VpbnQ2NF90ICpzdGFydF9hZGRyZXNzLCBtYXBwaW5nX3R5cGVfdCAqc3RhcnRf dHlwZSwKKwkgICAgICBncnViX3VpbnQ2NF90ICpuZXh0X2FkZHJlc3MsIGdydWJfdWludDY0X3Qg Kmx4LCBncnViX3VpbnQ2NF90IGN1cl9hZGRyZXNzLCBpbnQgb2Zmc2V0KQoreworICBtYXBwaW5n X3R5cGVfdCBjdXJfdHlwZTsKKyAgZ3J1Yl91aW50NjRfdCBlbnRyeSA9ICgoZ3J1Yl91aW50NjRf dCAqKSpseClbKGN1cl9hZGRyZXNzID4+IG9mZnNldCkgJiAweDFmZl07CisgIGlmICgoZW50cnkg JiAxKSAmJiBvZmZzZXQgIT0gMTIgJiYgIShlbnRyeSAmIDB4ODApKQorICAgIHsKKyAgICAgICps eCA9IChlbnRyeSAmIDB4ZmZmZmZmZmZmMDAwKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9 CisKKyAgaWYgKChlbnRyeSAmIDEpID09IDApCisgICAgeworICAgICAgY3VyX3R5cGUgPSBVTk1B UFBFRDsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBjdXJfdHlwZSA9ICgoZW50cnkgJiAw eGZmZmZmZmZmZjAwMCkgPT0gKGN1cl9hZGRyZXNzICYgMHhmZmZmZmZmZmYwMDApKSA/IElERU5U SVRZIDogTk9OSURFTlRJVFk7CisgICAgfQorCisgICpuZXh0X2FkZHJlc3MgPSAoKGN1cl9hZGRy ZXNzID4+IG9mZnNldCkgKyAxKSA8PCBvZmZzZXQ7CisKKyAgaWYgKCpzdGFydF90eXBlICE9IGN1 cl90eXBlKQorICAgIHsKKyAgICAgIGlmIChjdXJfYWRkcmVzcyAhPSAwKQorCWdydWJfcHJpbnRm KCIlMDhseC0lMDhseDogJXNcbiIsICpzdGFydF9hZGRyZXNzLCBjdXJfYWRkcmVzcywgbWFwcGlu Z19uYW1lc1sqc3RhcnRfdHlwZV0pOworICAgICAgKnN0YXJ0X3R5cGUgPSBjdXJfdHlwZTsKKyAg ICAgICpzdGFydF9hZGRyZXNzID0gY3VyX2FkZHJlc3M7CisgICAgfQorCisgIHJldHVybiB0cnVl OworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfbHNwYWdpbmcgKHN0cnVjdCBncnVi X2NvbW1hbmQgKmNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisJCWludCBhcmdjIF9fYXR0 cmlidXRlX18gKCh1bnVzZWQpKSwKKwkJY2hhciAqKmFyZ3MgX19hdHRyaWJ1dGVfXyAoKHVudXNl ZCkpKQoreworICBncnViX3VpbnQ2NF90IGNyMzsKKworICBhc20gdm9sYXRpbGUgKCJtb3ZxICAg ICAgICUlY3IzLCAlMCI6ICI9ciIoY3IzKSk7CisKKyAgZ3J1Yl91aW50NjRfdCBiYWRkciA9IGNy MzsKKyAgZ3J1Yl91aW50NjRfdCBzdGFydF9hZGRyZXNzID0gMCwgY3VyX2FkZHJlc3MgPSAwLCBu ZXh0X2FkZHJlc3MgPSAwOworICBtYXBwaW5nX3R5cGVfdCBzdGFydF90eXBlID0gVU5NQVBQRUQ7 CisKKyAgZ3J1Yl9wcmludGYoImJhZGRyPSVseFxuIiwgYmFkZHIpOworCisgIGZvciAoY3VyX2Fk ZHJlc3MgPSAwOyBjdXJfYWRkcmVzcyA8IDB4N2ZmZmZmZmZmZmZmOyBjdXJfYWRkcmVzcyA9IG5l eHRfYWRkcmVzcykKKyAgICB7CisgICAgICBncnViX3VpbnQ2NF90IGx4ID0gYmFkZHI7CisgICAg ICBpZiAocHJvY2Vzc19sZXZlbCgmc3RhcnRfYWRkcmVzcywgJnN0YXJ0X3R5cGUsICZuZXh0X2Fk ZHJlc3MsICZseCwgY3VyX2FkZHJlc3MsIDM5KSkKKwljb250aW51ZTsKKyAgICAgIGlmIChwcm9j ZXNzX2xldmVsKCZzdGFydF9hZGRyZXNzLCAmc3RhcnRfdHlwZSwgJm5leHRfYWRkcmVzcywgJmx4 LCBjdXJfYWRkcmVzcywgMzApKQorCWNvbnRpbnVlOworICAgICAgaWYgKHByb2Nlc3NfbGV2ZWwo JnN0YXJ0X2FkZHJlc3MsICZzdGFydF90eXBlLCAmbmV4dF9hZGRyZXNzLCAmbHgsIGN1cl9hZGRy ZXNzLCAyMSkpCisJY29udGludWU7CisgICAgICBwcm9jZXNzX2xldmVsKCZzdGFydF9hZGRyZXNz LCAmc3RhcnRfdHlwZSwgJm5leHRfYWRkcmVzcywgJmx4LCBjdXJfYWRkcmVzcywgMTIpOworICAg IH0KKworICBncnViX3ByaW50ZigiJTA4bHgtJTA4bHg6ICVzXG4iLCBzdGFydF9hZGRyZXNzLCBj dXJfYWRkcmVzcywgbWFwcGluZ19uYW1lc1tzdGFydF90eXBlXSk7CisKKyAgcmV0dXJuIEdSVUJf RVJSX05PTkU7Cit9CisKK3N0YXRpYyBncnViX2NvbW1hbmRfdCBjbWQ7CisKK0dSVUJfTU9EX0lO SVQobHNwYWdpbmcpCit7CisgIGNtZCA9IGdydWJfcmVnaXN0ZXJfY29tbWFuZCAoImxzcGFnaW5n IiwgZ3J1Yl9jbWRfbHNwYWdpbmcsICIiLAorCQkJICAgICAgICJEaXNwbGF5IHBhZ2luZyB0YWJs ZS4iKTsKK30KKworR1JVQl9NT0RfRklOSShsc3BhZ2luZykKK3sKKyAgZ3J1Yl91bnJlZ2lzdGVy X2NvbW1hbmQgKGNtZCk7Cit9Ci0tIAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVs QGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZl bAo=