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 844A7C04FFE for ; Fri, 17 May 2024 07:53:24 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s7sOu-0003aX-ID; Fri, 17 May 2024 03:53:12 -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 1s7sOr-0003Xu-El for grub-devel@gnu.org; Fri, 17 May 2024 03:53:09 -0400 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s7sOp-0004vh-5t for grub-devel@gnu.org; Fri, 17 May 2024 03:53:09 -0400 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-51f0602bc58so279941e87.0 for ; Fri, 17 May 2024 00:53:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715932385; x=1716537185; 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=Sm8bfFc3BeBSrqNuPtj3YNItnAK3tGRFsCq/fnNyYFI=; b=cb90L7HKmT9aJgBmOGUhB6lq06rQGtuG/qXjnvpNZc8/Y45ywfvm/4So01vo8/RLBF fovZ9ujS+cexyjIn+B5Trd/Hi89Ee4pC8+syV/xHotozevq86dnsRECwB//AqweHxvCW m68QX1vAQ7AVg3AMjzQ10hqISt4RMEcb2VvBGEpL2NY8cVIr6ZLJG8wzBTWoHlLJwwVr U9Sh3tIYu6CLIxWaF9aW3oHnDofdT4UMejSlaoFaq6IExepc/5YUXwLZnNs0w1wrYZLz DiWf4idmAKeAuLzkHo8pr5gnv3JKr9A57vozmBbh5oBsmdL9JrqOBTTPsDTQPwTFZdiN VGGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715932385; x=1716537185; 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=Sm8bfFc3BeBSrqNuPtj3YNItnAK3tGRFsCq/fnNyYFI=; b=n4O+BNmEF9USHzKbu2HisByhO+v/xpS85S3ovPk1vh1sF5y0Wx4x+507owWDYVwi9w Kko//f91TBjpMa/rdtSwbVvGmYpDneA6FR8W+h80IeRscWSAPRigzGc4t7IUuR1yU6jX 4ax1WfWC5Kf5zBN5S+vM+oaFM2rga/gFr3FpCy2+WI8roBbuP4HEfFuTMJaWspthvXli 2aWrF/whkmDTnZbo/q1LdDvsDjmtcYqSa6AUYtsWb6ymktGjTil3hOzmjlUlt4LfA3ve xIZb/5+aHLKOIrMFAanwkBcXp3plr1/E05lRCos4viOnZShDm5z5MVv5gwUN7PPAq9g0 PjiQ== X-Gm-Message-State: AOJu0YzIWHBY1e7rUtnMOQyHor2ATzAPN3jcNDUGqqLo0eImK/Vjbmav wnwDL6reyHXroyt6mv7k3q/No+Ic2s1+nr7x7iLYbYK0TKXlGIe0YYVq1iWhfJsZxA== X-Google-Smtp-Source: AGHT+IG0ovJKZBvARO7nHaYUa4oJaFbw+veZ4Fu7mx6GyPs3mO14Fv9h9mg3jX5YTQiA8hXYlnsGHQ== X-Received: by 2002:a05:6512:1289:b0:519:65fe:ac10 with SMTP id 2adb3069b0e04-5220e68b5a3mr7818521e87.32.1715932384749; Fri, 17 May 2024 00:53:04 -0700 (PDT) Received: from localhost ([5.165.219.191]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-521f38d87fbsm3181855e87.199.2024.05.17.00.53.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 May 2024 00:53:04 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH vRESEND 1/4] Add "noescape" argument to cmdline creation Date: Fri, 17 May 2024 10:52:47 +0300 Message-Id: <20240517075250.2760-1-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::131; envelope-from=phcoder@gmail.com; helo=mail-lf1-x131.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 SWYgT1MgcGFyc2VzIGluIGEgd2F5IGRpZmZlcmVudCBmcm9tIHNoLWxpa2UgdGhhdCBHUlVCIGRv ZXMsIGVzY2FwaW5nIGRvZXMKbW9yZSBoYXJtIHRoYW4gZ29vZC4gTm90ZSB0aGF0IGFsbG93cyB0 byBzcGVjaWZ5IGVudGlyZSBjb21tYW5kIGxpbmUgaW4gYQpzaW5nbGUgYXJndW1lbnQgZS5nLiBt dWx0aWJvb3QgLS1ub2VzY2FwZSAva2VybmVsICJhIGIgYyIuCgpUaGlzIGlzIG5lZWRlZCB0byBi b290IFNvbGFyaXMvSWxsdW1vcyBvbiBzb21lIGJvb3QgcGF0aHMgdGhhdCBuZWVkIHF1b3Rlcy4K ClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIFNlcmJpbmVua28gPHBoY29kZXJAZ21haWwuY29tPgot LS0KIGdydWItY29yZS9saWIvY21kbGluZS5jICAgICAgICAgICAgICAgICAgIHwgNDAgKysrKysr KysrKysrKystLS0tLS0tLS0KIGdydWItY29yZS9sb2FkZXIvYXJtL2xpbnV4LmMgICAgICAgICAg ICAgIHwgIDQgKy0tCiBncnViLWNvcmUvbG9hZGVyL2FybTY0L3hlbl9ib290LmMgICAgICAgICB8 ICA0ICstLQogZ3J1Yi1jb3JlL2xvYWRlci9lZmkvbGludXguYyAgICAgICAgICAgICAgfCAgNCAr LS0KIGdydWItY29yZS9sb2FkZXIvaTM4Ni9saW51eC5jICAgICAgICAgICAgIHwgIDIgKy0KIGdy dWItY29yZS9sb2FkZXIvaTM4Ni9tdWx0aWJvb3RfbWJpLmMgICAgIHwgIDggKystLS0KIGdydWIt Y29yZS9sb2FkZXIvaTM4Ni9wYy9saW51eC5jICAgICAgICAgIHwgIDIgKy0KIGdydWItY29yZS9s b2FkZXIvaTM4Ni94ZW4uYyAgICAgICAgICAgICAgIHwgIDYgKystLQogZ3J1Yi1jb3JlL2xvYWRl ci9taXBzL2xpbnV4LmMgICAgICAgICAgICAgfCAgNCArLS0KIGdydWItY29yZS9sb2FkZXIvbXVs dGlib290X21iaTIuYyAgICAgICAgIHwgIDggKystLS0KIGdydWItY29yZS9sb2FkZXIvcG93ZXJw Yy9pZWVlMTI3NS9saW51eC5jIHwgIDQgKy0tCiBncnViLWNvcmUvbG9hZGVyL3NwYXJjNjQvaWVl ZTEyNzUvbGludXguYyB8ICA0ICstLQogaW5jbHVkZS9ncnViL2xpYi9jbWRsaW5lLmggICAgICAg ICAgICAgICAgfCAgNSArLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDQz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvY21kbGluZS5jIGIvZ3J1 Yi1jb3JlL2xpYi9jbWRsaW5lLmMKaW5kZXggZWQwYjE0OWRjLi43MTUzOTJmYWMgMTAwNjQ0Ci0t LSBhL2dydWItY29yZS9saWIvY21kbGluZS5jCisrKyBiL2dydWItY29yZS9saWIvY21kbGluZS5j CkBAIC00NSwxNCArNDUsMTQgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjaGVja19hcmcgKGNoYXIg KmMsIGludCAqaGFzX3NwYWNlKQogICByZXR1cm4gc2l6ZTsKIH0KIAotdW5zaWduZWQgaW50IGdy dWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3Vuc2lnbmVk IGludCBncnViX2xvYWRlcl9jbWRsaW5lX3NpemUgKGludCBhcmdjLCBjaGFyICphcmd2W10sIGlu dCBub2VzY2FwZSkKIHsKICAgaW50IGk7CiAgIHVuc2lnbmVkIGludCBzaXplID0gMDsKIAogICBm b3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgIHsKLSAgICAgIHNpemUgKz0gY2hlY2tfYXJn IChhcmd2W2ldLCAwKTsKKyAgICAgIHNpemUgKz0gbm9lc2NhcGUgPyBncnViX3N0cmxlbihhcmd2 W2ldKSA6IGNoZWNrX2FyZyAoYXJndltpXSwgMCk7CiAgICAgICBzaXplKys7IC8qIFNlcGFyYXRv ciBzcGFjZSBvciBOVUxMLiAgKi8KICAgICB9CiAKQEAgLTY0LDE2ICs2NCwxNyBAQCB1bnNpZ25l ZCBpbnQgZ3J1Yl9sb2FkZXJfY21kbGluZV9zaXplIChpbnQgYXJnYywgY2hhciAqYXJndltdKQog CiBncnViX2Vycl90CiBncnViX2NyZWF0ZV9sb2FkZXJfY21kbGluZSAoaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSwgY2hhciAqYnVmLAotCQkJICAgIGdydWJfc2l6ZV90IHNpemUsIGVudW0gZ3J1Yl92 ZXJpZnlfc3RyaW5nX3R5cGUgdHlwZSkKKwkJCSAgICBncnViX3NpemVfdCBzaXplLCBlbnVtIGdy dWJfdmVyaWZ5X3N0cmluZ190eXBlIHR5cGUsCisJCQkgICAgaW50IG5vZXNjYXBlKQogewotICBp bnQgaSwgc3BhY2U7CisgIGludCBpLCBzcGFjZSA9IDA7CiAgIHVuc2lnbmVkIGludCBhcmdfc2l6 ZTsKICAgY2hhciAqYywgKm9yaWdfYnVmID0gYnVmOwogCiAgIGZvciAoaSA9IDA7IGkgPCBhcmdj OyBpKyspCiAgICAgewogICAgICAgYyA9IGFyZ3ZbaV07Ci0gICAgICBhcmdfc2l6ZSA9IGNoZWNr X2FyZyhhcmd2W2ldLCAmc3BhY2UpOworICAgICAgYXJnX3NpemUgPSBub2VzY2FwZSA/IGdydWJf c3RybGVuKGFyZ3ZbaV0pIDogY2hlY2tfYXJnKGFyZ3ZbaV0sICZzcGFjZSk7CiAgICAgICBhcmdf c2l6ZSsrOyAvKiBTZXBhcmF0b3Igc3BhY2Ugb3IgTlVMTC4gICovCiAKICAgICAgIGlmIChzaXpl IDwgYXJnX3NpemUpCkBAIC04MSwyMSArODIsMjggQEAgZ3J1Yl9jcmVhdGVfbG9hZGVyX2NtZGxp bmUgKGludCBhcmdjLCBjaGFyICphcmd2W10sIGNoYXIgKmJ1ZiwKIAogICAgICAgc2l6ZSAtPSBh cmdfc2l6ZTsKIAotICAgICAgaWYgKHNwYWNlKQotCSpidWYrKyA9ICciJzsKLQotICAgICAgd2hp bGUgKCpjKQorICAgICAgaWYgKG5vZXNjYXBlKQogCXsKLQkgIGlmICgqYyA9PSAnXFwnIHx8ICpj ID09ICdcJycgfHwgKmMgPT0gJyInKQotCSAgICAqYnVmKysgPSAnXFwnOwotCi0JICAqYnVmKysg PSAqYzsKLQkgIGMrKzsKKwkgIGdydWJfbWVtY3B5KGJ1ZiwgYywgYXJnX3NpemUpOworCSAgYnVm ICs9IGFyZ19zaXplIC0gMTsKIAl9CisgICAgICBlbHNlCisJeworCSAgaWYgKHNwYWNlKQorCSAg ICAqYnVmKysgPSAnIic7CiAKLSAgICAgIGlmIChzcGFjZSkKLQkqYnVmKysgPSAnIic7CisJICB3 aGlsZSAoKmMpCisJICAgIHsKKwkgICAgICBpZiAoKmMgPT0gJ1xcJyB8fCAqYyA9PSAnXCcnIHx8 ICpjID09ICciJykKKwkJKmJ1ZisrID0gJ1xcJzsKIAorCSAgICAgICpidWYrKyA9ICpjOworCSAg ICAgIGMrKzsKKwkgICAgfQorCisJICBpZiAoc3BhY2UpCisJICAgICpidWYrKyA9ICciJzsKKwl9 CiAgICAgICAqYnVmKysgPSAnICc7CiAgICAgfQogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbG9h ZGVyL2FybS9saW51eC5jIGIvZ3J1Yi1jb3JlL2xvYWRlci9hcm0vbGludXguYwppbmRleCAxOWRk ZWRiYzIuLjZhMDUyYTBkYSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9hcm0vbGludXgu YworKysgYi9ncnViLWNvcmUvbG9hZGVyL2FybS9saW51eC5jCkBAIC0zNzUsNyArMzc1LDcgQEAg Z3J1Yl9jbWRfbGludXggKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2Vk KSksCiAKICAgZ3J1Yl9sb2FkZXJfc2V0IChsaW51eF9ib290LCBsaW51eF91bmxvYWQsIDApOwog Ci0gIHNpemUgPSBncnViX2xvYWRlcl9jbWRsaW5lX3NpemUgKGFyZ2MsIGFyZ3YpOworICBzaXpl ID0gZ3J1Yl9sb2FkZXJfY21kbGluZV9zaXplIChhcmdjLCBhcmd2LCAwKTsKICAgbGludXhfYXJn cyA9IGdydWJfbWFsbG9jIChzaXplICsgc2l6ZW9mIChMSU5VWF9JTUFHRSkpOwogICBpZiAoIWxp bnV4X2FyZ3MpCiAgICAgewpAQCAtMzg3LDcgKzM4Nyw3IEBAIGdydWJfY21kX2xpbnV4IChncnVi X2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICBncnViX21lbWNweSAo bGludXhfYXJncywgTElOVVhfSU1BR0UsIHNpemVvZiAoTElOVVhfSU1BR0UpKTsKICAgZXJyID0g Z3J1Yl9jcmVhdGVfbG9hZGVyX2NtZGxpbmUgKGFyZ2MsIGFyZ3YsCiAJCQkJICAgIGxpbnV4X2Fy Z3MgKyBzaXplb2YgKExJTlVYX0lNQUdFKSAtIDEsIHNpemUsCi0JCQkJICAgIEdSVUJfVkVSSUZZ X0tFUk5FTF9DTURMSU5FKTsKKwkJCQkgICAgR1JVQl9WRVJJRllfS0VSTkVMX0NNRExJTkUsIDAp OwogICBpZiAoZXJyKQogICAgIGdvdG8gZmFpbDsKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xv YWRlci9hcm02NC94ZW5fYm9vdC5jIGIvZ3J1Yi1jb3JlL2xvYWRlci9hcm02NC94ZW5fYm9vdC5j CmluZGV4IDI2ZTE0NzJjOS4uN2I1NTc0MmY1IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbG9hZGVy L2FybTY0L3hlbl9ib290LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9hcm02NC94ZW5fYm9vdC5j CkBAIC0zNDUsNyArMzQ1LDcgQEAgeGVuX2Jvb3RfYmluYXJ5X2xvYWQgKHN0cnVjdCB4ZW5fYm9v dF9iaW5hcnkgKmJpbmFyeSwgZ3J1Yl9maWxlX3QgZmlsZSwKIAogICBpZiAoYXJnYyA+IDEpCiAg ICAgewotICAgICAgYmluYXJ5LT5jbWRsaW5lX3NpemUgPSBncnViX2xvYWRlcl9jbWRsaW5lX3Np emUgKGFyZ2MgLSAxLCBhcmd2ICsgMSk7CisgICAgICBiaW5hcnktPmNtZGxpbmVfc2l6ZSA9IGdy dWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYyAtIDEsIGFyZ3YgKyAxLCAwKTsKICAgICAgIGJp bmFyeS0+Y21kbGluZSA9IGdydWJfemFsbG9jIChiaW5hcnktPmNtZGxpbmVfc2l6ZSk7CiAgICAg ICBpZiAoIWJpbmFyeS0+Y21kbGluZSkKIAl7CkBAIC0zNTUsNyArMzU1LDcgQEAgeGVuX2Jvb3Rf YmluYXJ5X2xvYWQgKHN0cnVjdCB4ZW5fYm9vdF9iaW5hcnkgKmJpbmFyeSwgZ3J1Yl9maWxlX3Qg ZmlsZSwKIAl9CiAgICAgICBncnViX2NyZWF0ZV9sb2FkZXJfY21kbGluZSAoYXJnYyAtIDEsIGFy Z3YgKyAxLCBiaW5hcnktPmNtZGxpbmUsCiAJCQkJICBiaW5hcnktPmNtZGxpbmVfc2l6ZSwKLQkJ CQkgIEdSVUJfVkVSSUZZX0tFUk5FTF9DTURMSU5FKTsKKwkJCQkgIEdSVUJfVkVSSUZZX0tFUk5F TF9DTURMSU5FLCAwKTsKICAgICAgIGdydWJfZHByaW50ZiAoInhlbl9sb2FkZXIiLAogCQkgICAg Ilhlbl9ib290IGNtZGxpbmUgQCAlcCAlcywgc2l6ZTogJWRcbiIsCiAJCSAgICBiaW5hcnktPmNt ZGxpbmUsIGJpbmFyeS0+Y21kbGluZSwgYmluYXJ5LT5jbWRsaW5lX3NpemUpOwpkaWZmIC0tZ2l0 IGEvZ3J1Yi1jb3JlL2xvYWRlci9lZmkvbGludXguYyBiL2dydWItY29yZS9sb2FkZXIvZWZpL2xp bnV4LmMKaW5kZXggYmZiZDk1YWVlLi5kYzk0YTk1NzIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9s b2FkZXIvZWZpL2xpbnV4LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9lZmkvbGludXguYwpAQCAt NTMzLDcgKzUzMyw3IEBAIGZhbGxiYWNrOgogCiAgIGdydWJfZHByaW50ZiAoImxpbnV4IiwgImtl cm5lbCBAICVwXG4iLCBrZXJuZWxfYWRkcik7CiAKLSAgY21kbGluZV9zaXplID0gZ3J1Yl9sb2Fk ZXJfY21kbGluZV9zaXplIChhcmdjLCBhcmd2KSArIHNpemVvZiAoTElOVVhfSU1BR0UpOworICBj bWRsaW5lX3NpemUgPSBncnViX2xvYWRlcl9jbWRsaW5lX3NpemUgKGFyZ2MsIGFyZ3YsIDApICsg c2l6ZW9mIChMSU5VWF9JTUFHRSk7CiAgIGxpbnV4X2FyZ3MgPSBncnViX21hbGxvYyAoY21kbGlu ZV9zaXplKTsKICAgaWYgKCFsaW51eF9hcmdzKQogICAgIHsKQEAgLTU0NCw3ICs1NDQsNyBAQCBm YWxsYmFjazoKICAgZXJyID0gZ3J1Yl9jcmVhdGVfbG9hZGVyX2NtZGxpbmUgKGFyZ2MsIGFyZ3Ys CiAJCQkJICAgIGxpbnV4X2FyZ3MgKyBzaXplb2YgKExJTlVYX0lNQUdFKSAtIDEsCiAJCQkJICAg IGNtZGxpbmVfc2l6ZSwKLQkJCQkgICAgR1JVQl9WRVJJRllfS0VSTkVMX0NNRExJTkUpOworCQkJ CSAgICBHUlVCX1ZFUklGWV9LRVJORUxfQ01ETElORSwgMCk7CiAgIGlmIChlcnIpCiAgICAgZ290 byBmYWlsOwogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbG9hZGVyL2kzODYvbGludXguYyBiL2dy dWItY29yZS9sb2FkZXIvaTM4Ni9saW51eC5jCmluZGV4IDk3Nzc1N2YyYy4uNjZhOWE3MTM2IDEw MDY0NAotLS0gYS9ncnViLWNvcmUvbG9hZGVyL2kzODYvbGludXguYworKysgYi9ncnViLWNvcmUv bG9hZGVyL2kzODYvbGludXguYwpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgZ3J1Yl9jbWRfbGludXgg KGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAJCQkJICAgICAg KyBzaXplb2YgKExJTlVYX0lNQUdFKSAtIDEsCiAJCQkJICAgICAgbWF4aW1hbF9jbWRsaW5lX3Np emUKIAkJCQkgICAgICAtIChzaXplb2YgKExJTlVYX0lNQUdFKSAtIDEpLAotCQkJCSAgICAgIEdS VUJfVkVSSUZZX0tFUk5FTF9DTURMSU5FKTsKKwkJCQkgICAgICBHUlVCX1ZFUklGWV9LRVJORUxf Q01ETElORSwgMCk7CiAgICAgaWYgKGVycikKICAgICAgIGdvdG8gZmFpbDsKICAgfQpkaWZmIC0t Z2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L211bHRpYm9vdF9tYmkuYyBiL2dydWItY29yZS9s b2FkZXIvaTM4Ni9tdWx0aWJvb3RfbWJpLmMKaW5kZXggYmRhZjY3YWQwLi4zMjY4MjcwODkgMTAw NjQ0Ci0tLSBhL2dydWItY29yZS9sb2FkZXIvaTM4Ni9tdWx0aWJvb3RfbWJpLmMKKysrIGIvZ3J1 Yi1jb3JlL2xvYWRlci9pMzg2L211bHRpYm9vdF9tYmkuYwpAQCAtNjY4LDcgKzY2OCw3IEBAIGdy dWJfbXVsdGlib290X2luaXRfbWJpIChpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgIGdydWJf bXVsdGlib290X2ZyZWVfbWJpICgpOwogCi0gIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6 ZSAoYXJnYywgYXJndik7CisgIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywg YXJndiwgMCk7CiAKICAgY21kbGluZSA9IGdydWJfbWFsbG9jIChsZW4pOwogICBpZiAoISBjbWRs aW5lKQpAQCAtNjc2LDcgKzY3Niw3IEBAIGdydWJfbXVsdGlib290X2luaXRfbWJpIChpbnQgYXJn YywgY2hhciAqYXJndltdKQogICBjbWRsaW5lX3NpemUgPSBsZW47CiAKICAgcmV0dXJuIGdydWJf Y3JlYXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjLCBhcmd2LCBjbWRsaW5lLAotCQkJCSAgICAgY21k bGluZV9zaXplLCBHUlVCX1ZFUklGWV9LRVJORUxfQ01ETElORSk7CisJCQkJICAgICBjbWRsaW5l X3NpemUsIEdSVUJfVkVSSUZZX0tFUk5FTF9DTURMSU5FLCAwKTsKIH0KIAogZ3J1Yl9lcnJfdApA QCAtNjk0LDcgKzY5NCw3IEBAIGdydWJfbXVsdGlib290X2FkZF9tb2R1bGUgKGdydWJfYWRkcl90 IHN0YXJ0LCBncnViX3NpemVfdCBzaXplLAogICBuZXdtb2QtPnNpemUgPSBzaXplOwogICBuZXdt b2QtPm5leHQgPSAwOwogCi0gIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywg YXJndik7CisgIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywgYXJndiwgMCk7 CiAKICAgbmV3bW9kLT5jbWRsaW5lID0gZ3J1Yl9tYWxsb2MgKGxlbik7CiAgIGlmICghIG5ld21v ZC0+Y21kbGluZSkKQEAgLTcwNiw3ICs3MDYsNyBAQCBncnViX211bHRpYm9vdF9hZGRfbW9kdWxl IChncnViX2FkZHJfdCBzdGFydCwgZ3J1Yl9zaXplX3Qgc2l6ZSwKICAgdG90YWxfbW9kY21kICs9 IEFMSUdOX1VQIChsZW4sIDQpOwogCiAgIGVyciA9IGdydWJfY3JlYXRlX2xvYWRlcl9jbWRsaW5l IChhcmdjLCBhcmd2LCBuZXdtb2QtPmNtZGxpbmUsCi0JCQkJICAgIG5ld21vZC0+Y21kbGluZV9z aXplLCBHUlVCX1ZFUklGWV9NT0RVTEVfQ01ETElORSk7CisJCQkJICAgIG5ld21vZC0+Y21kbGlu ZV9zaXplLCBHUlVCX1ZFUklGWV9NT0RVTEVfQ01ETElORSwgMCk7CiAgIGlmIChlcnIpCiAgICAg ewogICAgICAgZ3J1Yl9mcmVlIChuZXdtb2QpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRl ci9pMzg2L3BjL2xpbnV4LmMgYi9ncnViLWNvcmUvbG9hZGVyL2kzODYvcGMvbGludXguYwppbmRl eCA0YWRlZWU5YWUuLmUyMjA5Y2RiZSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2 L3BjL2xpbnV4LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L3BjL2xpbnV4LmMKQEAgLTM0 NSw3ICszNDUsNyBAQCBncnViX2NtZF9saW51eCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSwKIAkJCQkgICAgKyBHUlVCX0xJTlVYX0NMX09GRlNFVCArIHNpemVv ZiAoTElOVVhfSU1BR0UpIC0gMSwKIAkJCQkgICAgbWF4aW1hbF9jbWRsaW5lX3NpemUKIAkJCQkg ICAgLSAoc2l6ZW9mIChMSU5VWF9JTUFHRSkgLSAxKSwKLQkJCQkgICAgR1JVQl9WRVJJRllfS0VS TkVMX0NNRExJTkUpOworCQkJCSAgICBHUlVCX1ZFUklGWV9LRVJORUxfQ01ETElORSwgMCk7CiAg IGlmIChlcnIpCiAgICAgZ290byBmYWlsOwogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbG9hZGVy L2kzODYveGVuLmMgYi9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuLmMKaW5kZXggM2I4NTZlODQy Li5kMjRlZjE1MWIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYworKysg Yi9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuLmMKQEAgLTY1MCw3ICs2NTAsNyBAQCBncnViX2Nt ZF94ZW4gKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAgIGVy ciA9IGdydWJfY3JlYXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjIC0gMSwgYXJndiArIDEsCiAJCQkJ ICAgIChjaGFyICopIHhlbl9zdGF0ZS5uZXh0X3N0YXJ0LmNtZF9saW5lLAogCQkJCSAgICBzaXpl b2YgKHhlbl9zdGF0ZS5uZXh0X3N0YXJ0LmNtZF9saW5lKSAtIDEsCi0JCQkJICAgIEdSVUJfVkVS SUZZX0tFUk5FTF9DTURMSU5FKTsKKwkJCQkgICAgR1JVQl9WRVJJRllfS0VSTkVMX0NNRExJTkUs IDApOwogICBpZiAoZXJyKQogICAgIHJldHVybiBlcnI7CiAKQEAgLTkxMCw3ICs5MTAsNyBAQCBn cnViX2NtZF9tb2R1bGUgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2Vk KSksCiAgICAgcmV0dXJuIGdydWJfZXJybm87CiAgIHNpemUgPSBncnViX2ZpbGVfc2l6ZSAoZmls ZSk7CiAKLSAgY21kbGluZV9sZW4gPSBncnViX2xvYWRlcl9jbWRsaW5lX3NpemUgKGFyZ2MgLSAx LCBhcmd2ICsgMSk7CisgIGNtZGxpbmVfbGVuID0gZ3J1Yl9sb2FkZXJfY21kbGluZV9zaXplIChh cmdjIC0gMSwgYXJndiArIDEsIDApOwogCiAgIGVyciA9IGdydWJfcmVsb2NhdG9yX2FsbG9jX2No dW5rX2FkZHIgKHhlbl9zdGF0ZS5yZWxvY2F0b3IsICZjaCwKIAkJCQkJIHhlbl9zdGF0ZS5tYXhf YWRkciwgY21kbGluZV9sZW4pOwpAQCAtOTE5LDcgKzkxOSw3IEBAIGdydWJfY21kX21vZHVsZSAo Z3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKIAogICBlcnIgPSBn cnViX2NyZWF0ZV9sb2FkZXJfY21kbGluZSAoYXJnYyAtIDEsIGFyZ3YgKyAxLAogCQkJCSAgICBn ZXRfdmlydHVhbF9jdXJyZW50X2FkZHJlc3MgKGNoKSwgY21kbGluZV9sZW4sCi0JCQkJICAgIEdS VUJfVkVSSUZZX01PRFVMRV9DTURMSU5FKTsKKwkJCQkgICAgR1JVQl9WRVJJRllfTU9EVUxFX0NN RExJTkUsIDApOwogICBpZiAoZXJyKQogICAgIGdvdG8gZmFpbDsKIApkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xvYWRlci9taXBzL2xpbnV4LmMgYi9ncnViLWNvcmUvbG9hZGVyL21pcHMvbGludXgu YwppbmRleCA3MjY0YmEyYjYuLmRlZGY2MTI4MCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRl ci9taXBzL2xpbnV4LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9taXBzL2xpbnV4LmMKQEAgLTMw NCw3ICszMDQsNyBAQCBncnViX2NtZF9saW51eCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSwKIAogI2lmZGVmIEdSVUJfTUFDSElORV9NSVBTX1FFTVVfTUlQUwog ICAvKiBDcmVhdGUga2VybmVsIGNvbW1hbmQgbGluZS4gICovCi0gIHNpemUgPSBncnViX2xvYWRl cl9jbWRsaW5lX3NpemUoYXJnYywgYXJndik7CisgIHNpemUgPSBncnViX2xvYWRlcl9jbWRsaW5l X3NpemUoYXJnYywgYXJndiwgMCk7CiAgIHBhcmFtcyA9IGdydWJfbWFsbG9jIChzaXplICsgc2l6 ZW9mIChMSU5VWF9JTUFHRSkpOwogICBpZiAoISBwYXJhbXMpCiAgICAgewpAQCAtMzE0LDcgKzMx NCw3IEBAIGdydWJfY21kX2xpbnV4IChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAo KHVudXNlZCkpLAogCiAgIGdydWJfbWVtY3B5IChwYXJhbXMsIExJTlVYX0lNQUdFLCBzaXplb2Yg KExJTlVYX0lNQUdFKSk7CiAgIGdydWJfY3JlYXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjLCBhcmd2 LCBwYXJhbXMgKyBzaXplb2YgKExJTlVYX0lNQUdFKSAtIDEsCi0JCQkgICAgICBzaXplLCBHUlVC X1ZFUklGWV9LRVJORUxfQ01ETElORSk7CisJCQkgICAgICBzaXplLCBHUlVCX1ZFUklGWV9LRVJO RUxfQ01ETElORSwgMCk7CiAjZWxzZQogICBsaW51eF9hcmd2ID0gZXh0cmE7CiAgIGFyZ3Zfb2Zm ID0gKGdydWJfdWludDhfdCAqKSBsaW51eF9hcmd2IC0gKGdydWJfdWludDhfdCAqKSBwbGF5Z3Jv dW5kOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3RfbWJpMi5jIGIvZ3J1 Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3RfbWJpMi5jCmluZGV4IDAwYTQ4NDEzYy4uOGE4MWEwMzU5 IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbG9hZGVyL211bHRpYm9vdF9tYmkyLmMKKysrIGIvZ3J1 Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3RfbWJpMi5jCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBncnVi X211bHRpYm9vdDJfaW5pdF9tYmkgKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgZ3J1Yl9t dWx0aWJvb3QyX2ZyZWVfbWJpICgpOwogCi0gIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6 ZSAoYXJnYywgYXJndik7CisgIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywg YXJndiwgMCk7CiAKICAgY21kbGluZSA9IGdydWJfbWFsbG9jIChsZW4pOwogICBpZiAoISBjbWRs aW5lKQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgZ3J1Yl9tdWx0aWJvb3QyX2luaXRfbWJpIChpbnQg YXJnYywgY2hhciAqYXJndltdKQogICBjbWRsaW5lX3NpemUgPSBsZW47CiAKICAgcmV0dXJuIGdy dWJfY3JlYXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjLCBhcmd2LCBjbWRsaW5lLCBjbWRsaW5lX3Np emUsCi0JCQkJICAgICBHUlVCX1ZFUklGWV9LRVJORUxfQ01ETElORSk7CisJCQkJICAgICBHUlVC X1ZFUklGWV9LRVJORUxfQ01ETElORSwgMCk7CiB9CiAKIGdydWJfZXJyX3QKQEAgLTEwNjIsNyAr MTA2Miw3IEBAIGdydWJfbXVsdGlib290Ml9hZGRfbW9kdWxlIChncnViX2FkZHJfdCBzdGFydCwg Z3J1Yl9zaXplX3Qgc2l6ZSwKICAgbmV3bW9kLT5zdGFydCA9IHN0YXJ0OwogICBuZXdtb2QtPnNp emUgPSBzaXplOwogCi0gIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywgYXJn dik7CisgIGxlbiA9IGdydWJfbG9hZGVyX2NtZGxpbmVfc2l6ZSAoYXJnYywgYXJndiwgMCk7CiAK ICAgbmV3bW9kLT5jbWRsaW5lID0gZ3J1Yl9tYWxsb2MgKGxlbik7CiAgIGlmICghIG5ld21vZC0+ Y21kbGluZSkKQEAgLTEwNzQsNyArMTA3NCw3IEBAIGdydWJfbXVsdGlib290Ml9hZGRfbW9kdWxl IChncnViX2FkZHJfdCBzdGFydCwgZ3J1Yl9zaXplX3Qgc2l6ZSwKICAgdG90YWxfbW9kY21kICs9 IEFMSUdOX1VQIChsZW4sIE1VTFRJQk9PVF9UQUdfQUxJR04pOwogCiAgIGVyciA9IGdydWJfY3Jl YXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjLCBhcmd2LCBuZXdtb2QtPmNtZGxpbmUsCi0JCQkJICAg IG5ld21vZC0+Y21kbGluZV9zaXplLCBHUlVCX1ZFUklGWV9NT0RVTEVfQ01ETElORSk7CisJCQkJ ICAgIG5ld21vZC0+Y21kbGluZV9zaXplLCBHUlVCX1ZFUklGWV9NT0RVTEVfQ01ETElORSwgMCk7 CiAgIGlmIChlcnIpCiAgICAgewogICAgICAgZ3J1Yl9mcmVlIChuZXdtb2QtPmNtZGxpbmUpOwpk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9wb3dlcnBjL2llZWUxMjc1L2xpbnV4LmMgYi9n cnViLWNvcmUvbG9hZGVyL3Bvd2VycGMvaWVlZTEyNzUvbGludXguYwppbmRleCA0ODY0ZTVmYjAu LjQ1NDYxZjI2YSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9wb3dlcnBjL2llZWUxMjc1 L2xpbnV4LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9wb3dlcnBjL2llZWUxMjc1L2xpbnV4LmMK QEAgLTMwNiw3ICszMDYsNyBAQCBncnViX2NtZF9saW51eCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9f YXR0cmlidXRlX18gKCh1bnVzZWQpKSwKICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICBzaXpl ID0gZ3J1Yl9sb2FkZXJfY21kbGluZV9zaXplKGFyZ2MsIGFyZ3YpOworICBzaXplID0gZ3J1Yl9s b2FkZXJfY21kbGluZV9zaXplKGFyZ2MsIGFyZ3YsIDApOwogICBsaW51eF9hcmdzID0gZ3J1Yl9t YWxsb2MgKHNpemUgKyBzaXplb2YgKExJTlVYX0lNQUdFKSk7CiAgIGlmICghIGxpbnV4X2FyZ3Mp CiAgICAgZ290byBvdXQ7CkBAIC0zMTQsNyArMzE0LDcgQEAgZ3J1Yl9jbWRfbGludXggKGdydWJf Y29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAgIC8qIENyZWF0ZSBrZXJu ZWwgY29tbWFuZCBsaW5lLiAgKi8KICAgZ3J1Yl9tZW1jcHkgKGxpbnV4X2FyZ3MsIExJTlVYX0lN QUdFLCBzaXplb2YgKExJTlVYX0lNQUdFKSk7CiAgIGlmIChncnViX2NyZWF0ZV9sb2FkZXJfY21k bGluZSAoYXJnYywgYXJndiwgbGludXhfYXJncyArIHNpemVvZiAoTElOVVhfSU1BR0UpIC0gMSwK LQkJCQkgIHNpemUsIEdSVUJfVkVSSUZZX0tFUk5FTF9DTURMSU5FKSkKKwkJCQkgIHNpemUsIEdS VUJfVkVSSUZZX0tFUk5FTF9DTURMSU5FLCAwKSkKICAgICBnb3RvIG91dDsKIAogb3V0OgpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9zcGFyYzY0L2llZWUxMjc1L2xpbnV4LmMgYi9ncnVi LWNvcmUvbG9hZGVyL3NwYXJjNjQvaWVlZTEyNzUvbGludXguYwppbmRleCBhYzIyMDZmM2MuLmRl MzFhMDc5MiAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9zcGFyYzY0L2llZWUxMjc1L2xp bnV4LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9zcGFyYzY0L2llZWUxMjc1L2xpbnV4LmMKQEAg LTMzMiw3ICszMzIsNyBAQCBncnViX2NtZF9saW51eCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0 cmlidXRlX18gKCh1bnVzZWQpKSwKICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICBzaXplID0g Z3J1Yl9sb2FkZXJfY21kbGluZV9zaXplKGFyZ2MsIGFyZ3YpOworICBzaXplID0gZ3J1Yl9sb2Fk ZXJfY21kbGluZV9zaXplKGFyZ2MsIGFyZ3YsIDApOwogCiAgIGxpbnV4X2FyZ3MgPSBncnViX21h bGxvYyAoc2l6ZSArIHNpemVvZiAoTElOVVhfSU1BR0UpKTsKICAgaWYgKCEgbGludXhfYXJncykK QEAgLTM0MSw3ICszNDEsNyBAQCBncnViX2NtZF9saW51eCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9f YXR0cmlidXRlX18gKCh1bnVzZWQpKSwKICAgLyogQ3JlYXRlIGtlcm5lbCBjb21tYW5kIGxpbmUu ICAqLwogICBncnViX21lbWNweSAobGludXhfYXJncywgTElOVVhfSU1BR0UsIHNpemVvZiAoTElO VVhfSU1BR0UpKTsKICAgaWYgKGdydWJfY3JlYXRlX2xvYWRlcl9jbWRsaW5lIChhcmdjLCBhcmd2 LCBsaW51eF9hcmdzICsgc2l6ZW9mIChMSU5VWF9JTUFHRSkgLSAxLAotCQkJCSAgc2l6ZSwgR1JV Ql9WRVJJRllfS0VSTkVMX0NNRExJTkUpKQorCQkJCSAgc2l6ZSwgR1JVQl9WRVJJRllfS0VSTkVM X0NNRExJTkUsIDApKQogICAgIGdvdG8gb3V0OwogCiBvdXQ6CmRpZmYgLS1naXQgYS9pbmNsdWRl L2dydWIvbGliL2NtZGxpbmUuaCBiL2luY2x1ZGUvZ3J1Yi9saWIvY21kbGluZS5oCmluZGV4IGNk Y2EwOWI3YS4uYzEyMTBlYzIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvbGliL2NtZGxpbmUu aAorKysgYi9pbmNsdWRlL2dydWIvbGliL2NtZGxpbmUuaApAQCAtMjUsOCArMjUsOSBAQAogCiAj ZGVmaW5lIExJTlVYX0lNQUdFICJCT09UX0lNQUdFPSIKIAotdW5zaWduZWQgaW50IGdydWJfbG9h ZGVyX2NtZGxpbmVfc2l6ZSAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7Cit1bnNpZ25lZCBpbnQg Z3J1Yl9sb2FkZXJfY21kbGluZV9zaXplIChpbnQgYXJnYywgY2hhciAqYXJndltdLCBpbnQgbm9l c2NhcGUpOwogZ3J1Yl9lcnJfdCBncnViX2NyZWF0ZV9sb2FkZXJfY21kbGluZSAoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSwgY2hhciAqYnVmLAotCQkJCSAgICAgICBncnViX3NpemVfdCBzaXplLCBl bnVtIGdydWJfdmVyaWZ5X3N0cmluZ190eXBlIHR5cGUpOworCQkJCSAgICAgICBncnViX3NpemVf dCBzaXplLCBlbnVtIGdydWJfdmVyaWZ5X3N0cmluZ190eXBlIHR5cGUsCisJCQkJICAgICAgIGlu dCBub2VzY2FwZSk7CiAKICNlbmRpZiAvKiAhIEdSVUJfQ01ETElORV9IRUFERVIgKi8KLS0gCjIu MzkuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdy dWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdu dS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==