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 90755D6DDDB for ; Fri, 15 Nov 2024 07:39:32 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqsz-0001Ho-Qx; Fri, 15 Nov 2024 02:36:59 -0500 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 1tBqsq-00018E-BR for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:48 -0500 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqsl-00008Z-EN for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:47 -0500 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2fb5fa911aaso25190091fa.2 for ; Thu, 14 Nov 2024 23:36:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656200; x=1732261000; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=m1FpQXFG1gQ43vaAse/0L0YK4OFTf5Q9PX/ReScVkMc=; b=VMIHxsiDjVWTz2wV6SHJtyJKlv0+CEoPpR9PWu7yx6JEQow369kjH6iWm9DzOUjH3O wFm+3pxn4B/dsAlVvKfOomrcOtvUdVnOmfiGCA6e4Lbl4aike/A/vNlz24cMAUi4ap5h OFdAHoQWqiD9+/dQsi7LEhuzuBjrdAIJgDM/l+k+QTHR36tO0CA6u+8WKKgggBGYALWt vJsVdswfx2vycEL38o2yPzEIZr3T/O+LcODQFxvPQxwtaWfJ2uUN9lY8o+C5juNaxRav fm6hSxMpGu0Kl8O2sULb0yW6g4aN2PlEoc/OY/Q7gCgZOsAqfP/4BFYFMmZ17YZC0hbA 8Ujg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656200; x=1732261000; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m1FpQXFG1gQ43vaAse/0L0YK4OFTf5Q9PX/ReScVkMc=; b=sTMzURSdjGLQFZLpCghUuMYsaRjmnX95pLc5eXhKruzCQQKW+5HbGzS/aK1m3toh9f ccZyaUNJ6q2lAp6JUGRBKkEKlbnjG2qcRRbrEoBgi0sR5eEkpZjlkoPqOIjLLOBXKSU7 I1DLxpzqZito5JM3/0ObiopkCq3NYSewKkm0hezTvcm0ozLnytvySrwsNAjY4ptLYJ8/ AhXc3/5W+IaL4DlbQELU4cKJfDMcxVEW5694NGVu7lfWcM8OFK5yTBVewIG6Jj1GoV+g ZBBiuKV1XsilV4CPzx5xqLa5cJszwgi14qmuz2KlbsfpPHguUmFemA6Jut57p5OZBtdk Klng== X-Gm-Message-State: AOJu0YxfFBUy0dkiaSHMM3AwQmDLtSVhsDPNBQbw8BjcubHFjxNVjjU8 IhpLMhYpyWU7EkZ41oKHG//QPmo2uculhQZy1jYWmXJ6dcjZ3hj0/yI9qJHFsemtiP9OTfdMHVL X X-Google-Smtp-Source: AGHT+IEPLRdtab/bY8auIniy3Z8q0jI0LcS39dnuZbw4TbD+gtaXHA8gTSxBuSRkFakCb0mYEa8ZDw== X-Received: by 2002:a05:6512:32c9:b0:52e:fa5f:b6a7 with SMTP id 2adb3069b0e04-53dab29e907mr1016824e87.13.1731656192262; Thu, 14 Nov 2024 23:36:32 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-211d0f47b2csm6806005ad.219.2024.11.14.23.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:36:31 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 21/33] tss2: Add TPM2 types and Marshal/Unmarshal functions Date: Fri, 15 Nov 2024 15:34:49 +0800 Message-ID: <20241115073506.2784-22-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241115073506.2784-1-glin@suse.com> References: <20241115073506.2784-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::22c; envelope-from=glin@suse.com; helo=mail-lj1-x22c.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, 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: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko 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 VGhpcyBjb21taXQgYWRkcyB0aGUgbmVjZXNzYXJ5IFRQTTIgdHlwZXMgYW5kIHN0cnVjdHMgYXMg dGhlIHByZXBhcmF0aW9uCmZvciB0aGUgVFBNMiBTb2Z0d2FyZSBTdGFjayAoVFNTMikgc3VwcG9y dC4gVGhlIE1hcnNoYWwvVW5tYXJzaGFsCmZ1bmN0aW9ucyBhcmUgYWxzbyBhZGRlZCB0byBoYW5k bGUgdGhlIGRhdGEgc3RydWN0dXJlIHRvIGJlIHN1Ym1pdHRlZCB0bwpUUE0yIGNvbW1hbmRzIGFu ZCB0byBiZSByZWNlaXZlZCBmcm9tIHRoZSByZXNwb25zZS4KClNpZ25lZC1vZmYtYnk6IEhlcm5h biBHYXR0YSA8aGVnYXR0YUBsaW51eC5taWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBHYXJ5 IExpbiA8Z2xpbkBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtp cGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4 LmlibS5jb20+Ci0tLQogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuYyAgICAgIHwgMTE3NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUu aCAgICAgIHwgIDM5NyArKysrKysrKysrCiBncnViLWNvcmUvbGliL3RzczIvdHNzMl9zdHJ1Y3Rz LmggfCAgNzk2ICsrKysrKysrKysrKysrKysrKysKIGdydWItY29yZS9saWIvdHNzMi90c3MyX3R5 cGVzLmggICB8ICA0MDQgKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyNzcxIGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL3RzczIvdHNzMl9tdS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi90c3MyX3N0cnVjdHMuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi90c3MyX3R5cGVzLmgKCmRpZmYgLS1naXQgYS9ncnVi LWNvcmUvbGliL3RzczIvdHNzMl9tdS5jIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjg2MTM0Y2MwYQotLS0gL2Rldi9u dWxsCisrKyBiL2dydWItY29yZS9saWIvdHNzMi90c3MyX211LmMKQEAgLTAsMCArMSwxMTc0IEBA CisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmln aHQgKEMpIDIwMjIgTWljcm9zb2Z0IENvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDI0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVCIGlzIGZyZWUgc29m dHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0 aCBHUlVCLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICov CisKKyNpbmNsdWRlIDxncnViL21pc2MuaD4KKworI2luY2x1ZGUgPHRzczJfbXUuaD4KKwordm9p ZAorZ3J1Yl9Uc3MyX01VX1RQTVNfQVVUSF9DT01NQU5EX01hcnNoYWwgKGdydWJfdHBtMl9idWZm ZXJfdCBidWZmZXIsCisJCQkJCWNvbnN0IFRQTVNfQVVUSF9DT01NQU5EX3QgKmF1dGhDb21tYW5k KQoreworICBncnViX3VpbnQzMl90IHN0YXJ0OworICBncnViX3VpbnQzMl90IHRtcDsKKworICBn cnViX3RwbTJfYnVmZmVyX3BhY2tfdTMyIChidWZmZXIsIDApOworICBzdGFydCA9IGJ1ZmZlci0+ c2l6ZTsKKworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTMyIChidWZmZXIsIGF1dGhDb21tYW5k LT5zZXNzaW9uSGFuZGxlKTsKKworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIs IGF1dGhDb21tYW5kLT5ub25jZS5zaXplKTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrIChidWZm ZXIsIGF1dGhDb21tYW5kLT5ub25jZS5idWZmZXIsIGF1dGhDb21tYW5kLT5ub25jZS5zaXplKTsK KworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTggKGJ1ZmZlciwgKigoY29uc3QgZ3J1Yl91aW50 OF90ICopICZhdXRoQ29tbWFuZC0+c2Vzc2lvbkF0dHJpYnV0ZXMpKTsKKworICBncnViX3RwbTJf YnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIGF1dGhDb21tYW5kLT5obWFjLnNpemUpOworICBncnVi X3RwbTJfYnVmZmVyX3BhY2sgKGJ1ZmZlciwgYXV0aENvbW1hbmQtPmhtYWMuYnVmZmVyLCBhdXRo Q29tbWFuZC0+aG1hYy5zaXplKTsKKworICB0bXAgPSBncnViX2NwdV90b19iZTMyIChidWZmZXIt PnNpemUgLSBzdGFydCk7CisgIGdydWJfbWVtY3B5ICgmYnVmZmVyLT5kYXRhW3N0YXJ0IC0gc2l6 ZW9mIChncnViX3VpbnQzMl90KV0sICZ0bXAsIHNpemVvZiAodG1wKSk7Cit9CisKK3ZvaWQKK2dy dWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJ ICAgIGNvbnN0IGdydWJfdWludDE2X3Qgc2l6ZSwKKwkJCSAgICBjb25zdCBncnViX3VpbnQ4X3Qg KmIpCit7CisgIGdydWJfdWludDE2X3QgaTsKKworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2 IChidWZmZXIsIHNpemUpOworCisgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCisgICAgZ3J1 Yl90cG0yX2J1ZmZlcl9wYWNrX3U4IChidWZmZXIsIGJbaV0pOworfQorCit2b2lkCitncnViX1Rz czJfTVVfVFBNVV9TWU1fS0VZX0JJVFNfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZl ciwKKwkJCQkJY29uc3QgVFBNSV9BTEdfU1lNX09CSkVDVF90IGFsZ29yaXRobSwKKwkJCQkJY29u c3QgVFBNVV9TWU1fS0VZX0JJVFNfdCAqcCkKK3sKKyAgc3dpdGNoIChhbGdvcml0aG0pCisgICAg eworICAgIGNhc2UgVFBNX0FMR19BRVM6CisgICAgY2FzZSBUUE1fQUxHX1NNNDoKKyAgICBjYXNl IFRQTV9BTEdfQ0FNRUxMSUE6CisgICAgY2FzZSBUUE1fQUxHX1hPUjoKKyAgICAgIGdydWJfdHBt Ml9idWZmZXJfcGFja191MTYgKGJ1ZmZlciwgKigoY29uc3QgZ3J1Yl91aW50MTZfdCAqKSBwKSk7 CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfTlVMTDoKKyAgICAgIGJyZWFrOworICAg IGRlZmF1bHQ6CisgICAgICBidWZmZXItPmVycm9yID0gMTsKKyAgICAgIGJyZWFrOworICAgIH0K K30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfU1lNX01PREVfTWFyc2hhbCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgY29uc3QgVFBNSV9BTEdfU1lNX09CSkVDVF90IGFs Z29yaXRobSwKKwkJCQkgICAgY29uc3QgVFBNVV9TWU1fTU9ERV90ICpwKQoreworICBzd2l0Y2gg KGFsZ29yaXRobSkKKyAgICB7CisgICAgY2FzZSBUUE1fQUxHX0FFUzoKKyAgICBjYXNlIFRQTV9B TEdfU000OgorICAgIGNhc2UgVFBNX0FMR19DQU1FTExJQToKKyAgICAgIGdydWJfdHBtMl9idWZm ZXJfcGFja191MTYgKGJ1ZmZlciwgKigoY29uc3QgZ3J1Yl91aW50MTZfdCAqKSBwKSk7CisgICAg ICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfWE9SOgorICAgIGNhc2UgVFBNX0FMR19OVUxMOgor ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAg ICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVF9TWU1fREVGX01h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgY29uc3QgVFBNVF9TWU1f REVGX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MTYgKGJ1ZmZlciwgcC0+YWxn b3JpdGhtKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVfU1lNX0tFWV9CSVRTX01hcnNoYWwgKGJ1ZmZl ciwgcC0+YWxnb3JpdGhtLCAmcC0+a2V5Qml0cyk7CisgIGdydWJfVHNzMl9NVV9UUE1VX1NZTV9N T0RFX01hcnNoYWwgKGJ1ZmZlciwgcC0+YWxnb3JpdGhtLCAmcC0+bW9kZSk7Cit9CisKK3ZvaWQK K2dydWJfVHNzMl9NVV9UUE1TX1BDUl9TRUxFQ1RJT05fTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZl cl90IGJ1ZmZlciwKKwkJCQkJIGNvbnN0IFRQTVNfUENSX1NFTEVDVElPTl90ICpwY3JTZWxlY3Rp b24pCit7CisgIGdydWJfdWludDMyX3QgaTsKKworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2 IChidWZmZXIsIHBjclNlbGVjdGlvbi0+aGFzaCk7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191 OCAoYnVmZmVyLCBwY3JTZWxlY3Rpb24tPnNpemVPZlNlbGVjdCk7CisKKyAgZm9yIChpID0gMDsg aSA8IHBjclNlbGVjdGlvbi0+c2l6ZU9mU2VsZWN0OyBpKyspCisgICAgZ3J1Yl90cG0yX2J1ZmZl cl9wYWNrX3U4IChidWZmZXIsIHBjclNlbGVjdGlvbi0+cGNyU2VsZWN0W2ldKTsKK30KKwordm9p ZAorZ3J1Yl9Uc3MyX01VX1RQTUxfUENSX1NFTEVDVElPTl9NYXJzaGFsIChncnViX3RwbTJfYnVm ZmVyX3QgYnVmZmVyLAorCQkJCQkgY29uc3QgVFBNTF9QQ1JfU0VMRUNUSU9OX3QgKnBjclNlbGVj dGlvbikKK3sKKyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdydWJfdHBtMl9idWZmZXJfcGFja191 MzIgKGJ1ZmZlciwgcGNyU2VsZWN0aW9uLT5jb3VudCk7CisKKyAgZm9yIChpID0gMDsgaSA8IHBj clNlbGVjdGlvbi0+Y291bnQ7IGkrKykKKyAgICBncnViX1RzczJfTVVfVFBNU19QQ1JfU0VMRUNU SU9OX01hcnNoYWwgKGJ1ZmZlciwgJnBjclNlbGVjdGlvbi0+cGNyU2VsZWN0aW9uc1tpXSk7Cit9 CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1BX09CSkVDVF9NYXJzaGFsIChncnViX3RwbTJfYnVm ZmVyX3QgYnVmZmVyLAorCQkJCSAgY29uc3QgVFBNQV9PQkpFQ1RfdCAqcCkKK3sKKyAgZ3J1Yl90 cG0yX2J1ZmZlcl9wYWNrX3UzMiAoYnVmZmVyLCAqKChjb25zdCBncnViX3VpbnQzMl90ICopIHAp KTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfU0NIRU1FX1hPUl9NYXJzaGFsIChncnVi X3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgIGNvbnN0IFRQTVNfU0NIRU1FX1hPUl90 ICpwKQoreworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPmhhc2hBbGcp OworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPmtkZik7Cit9CisKK3Zv aWQKK2dydWJfVHNzMl9NVV9UUE1TX1NDSEVNRV9ITUFDX01hcnNoYWwgKGdydWJfdHBtMl9idWZm ZXJfdCBidWZmZXIsCisJCQkJICAgICAgIGNvbnN0IFRQTVNfU0NIRU1FX0hNQUNfdCAqcCkKK3sK KyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVyLCBwLT5oYXNoQWxnKTsKK30KKwor dm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfU0NIRU1FX0tFWUVESEFTSF9NYXJzaGFsIChncnViX3Rw bTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgICAgY29uc3QgVFBNSV9BTEdfS0VZRURIQVNIX1ND SEVNRV90IHNjaGVtZSwKKwkJCQkJICAgIGNvbnN0IFRQTVVfU0NIRU1FX0tFWUVESEFTSF90ICpw KQoreworICBzd2l0Y2ggKHNjaGVtZSkKKyAgICB7CisgICAgY2FzZSBUUE1fQUxHX0hNQUM6Cisg ICAgICBncnViX1RzczJfTVVfVFBNU19TQ0hFTUVfSE1BQ19NYXJzaGFsIChidWZmZXIsICZwLT5o bWFjKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19YT1I6CisgICAgICBncnViX1Rz czJfTVVfVFBNU19TQ0hFTUVfWE9SX01hcnNoYWwgKGJ1ZmZlciwgJnAtPmV4Y2x1c2l2ZU9yKTsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19OVUxMOgorICAgICAgYnJlYWs7CisgICAg ZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAgICAgYnJlYWs7CisgICAgfQor fQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVF9LRVlFREhBU0hfU0NIRU1FX01hcnNoYWwgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICBjb25zdCBUUE1UX0tFWUVESEFTSF9T Q0hFTUVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVyLCBwLT5z Y2hlbWUpOworICBncnViX1RzczJfTVVfVFBNVV9TQ0hFTUVfS0VZRURIQVNIX01hcnNoYWwgKGJ1 ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWlscyk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE1TX0tFWUVESEFTSF9QQVJNU19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAor CQkJCQkgICBjb25zdCBUUE1TX0tFWUVESEFTSF9QQVJNU190ICpwKQoreworICBncnViX1RzczJf TVVfVFBNVF9LRVlFREhBU0hfU0NIRU1FX01hcnNoYWwgKGJ1ZmZlciwgJnAtPnNjaGVtZSk7Cit9 CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1NZTV9ERUZfT0JKRUNUX01hcnNoYWwgKGdydWJf dHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgY29uc3QgVFBNVF9TWU1fREVGX09CSkVDVF90 ICpwKQoreworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPmFsZ29yaXRo bSk7CisgIGdydWJfVHNzMl9NVV9UUE1VX1NZTV9LRVlfQklUU19NYXJzaGFsIChidWZmZXIsIHAt PmFsZ29yaXRobSwgJnAtPmtleUJpdHMpOworICBncnViX1RzczJfTVVfVFBNVV9TWU1fTU9ERV9N YXJzaGFsIChidWZmZXIsIHAtPmFsZ29yaXRobSwgJnAtPm1vZGUpOworfQorCit2b2lkCitncnVi X1RzczJfTVVfVFBNVV9BU1lNX1NDSEVNRV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAorCQkJCSAgICAgICBjb25zdCBUUE1JX0FMR19SU0FfREVDUllQVF90IHNjaGVtZSwKKwkJ CQkgICAgICAgY29uc3QgVFBNVV9BU1lNX1NDSEVNRV90ICpwIF9fYXR0cmlidXRlX18gKCh1bnVz ZWQpKSkKK3sKKyAgc3dpdGNoIChzY2hlbWUpCisgICAgeworICAgIGNhc2UgVFBNX0FMR19OVUxM OgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIC8qIFVuc3VwcG9ydGVkICovCisg ICAgICBidWZmZXItPmVycm9yID0gMTsKKyAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZAor Z3J1Yl9Uc3MyX01VX1RQTVRfUlNBX1NDSEVNRV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLAorCQkJCSAgICAgIGNvbnN0IFRQTVRfUlNBX1NDSEVNRV90ICpwKQoreworICBncnVi X3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPnNjaGVtZSk7CisgIGdydWJfVHNzMl9N VV9UUE1VX0FTWU1fU0NIRU1FX01hcnNoYWwgKGJ1ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWls cyk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX1JTQV9QQVJNU19NYXJzaGFsIChncnVi X3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgY29uc3QgVFBNU19SU0FfUEFSTVNfdCAq cCkKK3sKKyAgZ3J1Yl9Uc3MyX01VX1RQTVRfU1lNX0RFRl9PQkpFQ1RfTWFyc2hhbCAoYnVmZmVy LCAmcC0+c3ltbWV0cmljKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVRfUlNBX1NDSEVNRV9NYXJzaGFs IChidWZmZXIsICZwLT5zY2hlbWUpOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZm ZXIsIHAtPmtleUJpdHMpOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTMyIChidWZmZXIsIHAt PmV4cG9uZW50KTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfU1lNQ0lQSEVSX1BBUk1T X01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgIGNvbnN0IFRQTVNf U1lNQ0lQSEVSX1BBUk1TX3QgKnApCit7CisgIGdydWJfVHNzMl9NVV9UUE1UX1NZTV9ERUZfT0JK RUNUX01hcnNoYWwgKGJ1ZmZlciwgJnAtPnN5bSk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE1UX0VDQ19TQ0hFTUVfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkg ICAgICBjb25zdCBUUE1UX0VDQ19TQ0hFTUVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9w YWNrX3UxNiAoYnVmZmVyLCBwLT5zY2hlbWUpOworICBncnViX1RzczJfTVVfVFBNVV9BU1lNX1ND SEVNRV9NYXJzaGFsIChidWZmZXIsIHAtPnNjaGVtZSwgJnAtPmRldGFpbHMpOworfQorCit2b2lk CitncnViX1RzczJfTVVfVFBNVV9LREZfU0NIRU1FX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisJCQkJICAgICAgY29uc3QgVFBNSV9BTEdfS0RGX3Qgc2NoZW1lLAorCQkJCSAg ICAgIGNvbnN0IFRQTVVfS0RGX1NDSEVNRV90ICpwKQoreworICBzd2l0Y2ggKHNjaGVtZSkKKyAg ICB7CisgICAgY2FzZSBUUE1fQUxHX01HRjE6CisgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tf dTE2IChidWZmZXIsIHAtPm1nZjEuaGFzaEFsZyk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQ TV9BTEdfS0RGMV9TUDgwMF81NkE6CisgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChi dWZmZXIsIHAtPmtkZjFfc3A4MDBfNTZhLmhhc2hBbGcpOworICAgICAgYnJlYWs7CisgICAgY2Fz ZSBUUE1fQUxHX0tERjI6CisgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIs IHAtPmtkZjIuaGFzaEFsZyk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfS0RGMV9T UDgwMF8xMDg6CisgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPmtk ZjFfc3A4MDBfMTA4Lmhhc2hBbGcpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX05V TEw6CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYnVmZmVyLT5lcnJvciA9IDE7 CisgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX0tERl9T Q0hFTUVfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgICBjb25z dCBUUE1UX0tERl9TQ0hFTUVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAo YnVmZmVyLCBwLT5zY2hlbWUpOworICBncnViX1RzczJfTVVfVFBNVV9LREZfU0NIRU1FX01hcnNo YWwgKGJ1ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWlscyk7Cit9CisKK3ZvaWQKK2dydWJfVHNz Ml9NVV9UUE1TX0VDQ19QQVJNU19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAor CQkJCSAgICAgY29uc3QgVFBNU19FQ0NfUEFSTVNfdCAqcCkKK3sKKyAgZ3J1Yl9Uc3MyX01VX1RQ TVRfU1lNX0RFRl9PQkpFQ1RfTWFyc2hhbCAoYnVmZmVyLCAmcC0+c3ltbWV0cmljKTsKKyAgZ3J1 Yl9Uc3MyX01VX1RQTVRfRUNDX1NDSEVNRV9NYXJzaGFsIChidWZmZXIsICZwLT5zY2hlbWUpOwor ICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAtPmN1cnZlSUQpOworICBncnVi X1RzczJfTVVfVFBNVF9LREZfU0NIRU1FX01hcnNoYWwgKGJ1ZmZlciwgJnAtPmtkZik7Cit9CisK K3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19QQVJNU19NYXJzaGFsIChncnViX3RwbTJf YnVmZmVyX3QgYnVmZmVyLAorCQkJCQljb25zdCBncnViX3VpbnQzMl90IHR5cGUsCisJCQkJCWNv bnN0IFRQTVVfUFVCTElDX1BBUk1TX3QgKnApCit7CisgIHN3aXRjaCAodHlwZSkKKyAgICB7Cisg ICAgY2FzZSBUUE1fQUxHX0tFWUVESEFTSDoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX0tFWUVE SEFTSF9QQVJNU19NYXJzaGFsIChidWZmZXIsICZwLT5rZXllZEhhc2hEZXRhaWwpOworICAgICAg YnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX1NZTUNJUEhFUjoKKyAgICAgIGdydWJfVHNzMl9NVV9U UE1TX1NZTUNJUEhFUl9QQVJNU19NYXJzaGFsIChidWZmZXIsICZwLT5zeW1EZXRhaWwpOworICAg ICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX1JTQToKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1T X1JTQV9QQVJNU19NYXJzaGFsIChidWZmZXIsICZwLT5yc2FEZXRhaWwpOworICAgICAgYnJlYWs7 CisgICAgY2FzZSBUUE1fQUxHX0VDQzoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX0VDQ19QQVJN U19NYXJzaGFsIChidWZmZXIsICZwLT5lY2NEZXRhaWwpOworICAgICAgYnJlYWs7CisgICAgZGVm YXVsdDoKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAgICAgYnJlYWs7CisgICAgfQorfQor Cit2b2lkCitncnViX1RzczJfTVVfVFBNU19FQ0NfUE9JTlRfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1 ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgIGNvbnN0IFRQTVNfRUNDX1BPSU5UX3QgKnApCit7Cisg IGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAtPnguc2l6ZSwgcC0+eC5idWZm ZXIpOworICBncnViX1RzczJfTVVfVFBNMkJfTWFyc2hhbCAoYnVmZmVyLCBwLT55LnNpemUsIHAt PnkuYnVmZmVyKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfUFVCTElDX0lEX01hcnNo YWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICBjb25zdCBUUE1JX0FMR19Q VUJMSUNfdCB0eXBlLAorCQkJCSAgICAgY29uc3QgVFBNVV9QVUJMSUNfSURfdCAqcCkKK3sKKyAg c3dpdGNoKHR5cGUpCisgICAgeworICAgIGNhc2UgVFBNX0FMR19LRVlFREhBU0g6CisgICAgICBn cnViX1RzczJfTVVfVFBNMkJfTWFyc2hhbCAoYnVmZmVyLCBwLT5rZXllZEhhc2guc2l6ZSwgcC0+ a2V5ZWRIYXNoLmJ1ZmZlcik7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfU1lNQ0lQ SEVSOgorICAgICAgZ3J1Yl9Uc3MyX01VX1RQTTJCX01hcnNoYWwgKGJ1ZmZlciwgcC0+c3ltLnNp emUsIHAtPnN5bS5idWZmZXIpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX1JTQToK KyAgICAgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAtPnJzYS5zaXplLCBw LT5yc2EuYnVmZmVyKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19FQ0M6CisgICAg ICBncnViX1RzczJfTVVfVFBNU19FQ0NfUE9JTlRfTWFyc2hhbCAoYnVmZmVyLCAmcC0+ZWNjKTsK KyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBidWZmZXItPmVycm9yID0gMTsKKyAg ICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfUFVCTElDX1BB Uk1TX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCWNvbnN0IFRQTVRf UFVCTElDX1BBUk1TX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MTYgKGJ1ZmZl ciwgcC0+dHlwZSk7CisgIGdydWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19QQVJNU19NYXJzaGFsIChi dWZmZXIsIHAtPnR5cGUsICZwLT5wYXJhbWV0ZXJzKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01V X1RQTVRfUFVCTElDX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICBj b25zdCBUUE1UX1BVQkxJQ190ICpwKQoreworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChi dWZmZXIsIHAtPnR5cGUpOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTE2IChidWZmZXIsIHAt Pm5hbWVBbGcpOworICBncnViX1RzczJfTVVfVFBNQV9PQkpFQ1RfTWFyc2hhbCAoYnVmZmVyLCAm cC0+b2JqZWN0QXR0cmlidXRlcyk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZm ZXIsIHAtPmF1dGhQb2xpY3kuc2l6ZSwgcC0+YXV0aFBvbGljeS5idWZmZXIpOworICBncnViX1Rz czJfTVVfVFBNVV9QVUJMSUNfUEFSTVNfTWFyc2hhbCAoYnVmZmVyLCBwLT50eXBlLCAmcC0+cGFy YW1ldGVycyk7CisgIGdydWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19JRF9NYXJzaGFsIChidWZmZXIs IHAtPnR5cGUsICZwLT51bmlxdWUpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNMkJfUFVC TElDX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgY29uc3QgVFBN MkJfUFVCTElDX3QgKnApCit7CisgIGdydWJfdWludDMyX3Qgc3RhcnQ7CisgIGdydWJfdWludDE2 X3Qgc2l6ZTsKKworICBpZiAocCkKKyAgICB7CisgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tf dTE2IChidWZmZXIsIHAtPnNpemUpOworCisgICAgICBzdGFydCA9IGJ1ZmZlci0+c2l6ZTsKKyAg ICAgIGdydWJfVHNzMl9NVV9UUE1UX1BVQkxJQ19NYXJzaGFsIChidWZmZXIsICZwLT5wdWJsaWNB cmVhKTsKKyAgICAgIHNpemUgPSBncnViX2NwdV90b19iZTE2IChidWZmZXItPnNpemUgLSBzdGFy dCk7CisgICAgICBncnViX21lbWNweSAoJmJ1ZmZlci0+ZGF0YVtzdGFydCAtIHNpemVvZiAoZ3J1 Yl91aW50MTZfdCldLCAmc2l6ZSwgc2l6ZW9mIChzaXplKSk7CisgICAgfQorICBlbHNlCisgICAg Z3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVyLCAwKTsKK30KKwordm9pZAorZ3J1Yl9U c3MyX01VX1RQTVNfU0VOU0lUSVZFX0NSRUFURV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLAorCQkJCQkgICAgY29uc3QgVFBNU19TRU5TSVRJVkVfQ1JFQVRFX3QgKnApCit7Cisg IGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAtPnVzZXJBdXRoLnNpemUsIHAt PnVzZXJBdXRoLmJ1ZmZlcik7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIs IHAtPmRhdGEuc2l6ZSwgcC0+ZGF0YS5idWZmZXIpOworfQorCit2b2lkCitncnViX1RzczJfTVVf VFBNVV9TRU5TSVRJVkVfQ09NUE9TSVRFX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZm ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFRQTUlfQUxHX1BVQkxJQ190IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFRQTVVfU0VOU0lUSVZFX0NPTVBPU0lURV90ICpwKQorewor ICBzd2l0Y2godHlwZSkKKyAgICB7CisgICAgY2FzZSBUUE1fQUxHX1JTQToKKyAgICAgIGdydWJf VHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAtPnJzYS5zaXplLCBwLT5yc2EuYnVmZmVy KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19FQ0M6CisgICAgICBncnViX1RzczJf TVVfVFBNMkJfTWFyc2hhbCAoYnVmZmVyLCBwLT5lY2Muc2l6ZSwgcC0+ZWNjLmJ1ZmZlcik7Cisg ICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfS0VZRURIQVNIOgorICAgICAgZ3J1Yl9Uc3My X01VX1RQTTJCX01hcnNoYWwgKGJ1ZmZlciwgcC0+Yml0cy5zaXplLCBwLT5iaXRzLmJ1ZmZlcik7 CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfU1lNQ0lQSEVSOgorICAgICAgZ3J1Yl9U c3MyX01VX1RQTTJCX01hcnNoYWwgKGJ1ZmZlciwgcC0+c3ltLnNpemUsIHAtPnN5bS5idWZmZXIp OworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOwor ICAgIH0KK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfU0VOU0lUSVZFX01hcnNoYWwgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgVFBNVF9TRU5TSVRJVkVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9w YWNrX3UxNiAoYnVmZmVyLCBwLT5zZW5zaXRpdmVUeXBlKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJC X01hcnNoYWwgKGJ1ZmZlciwgcC0+YXV0aFZhbHVlLnNpemUsIHAtPmF1dGhWYWx1ZS5idWZmZXIp OworICBncnViX1RzczJfTVVfVFBNMkJfTWFyc2hhbCAoYnVmZmVyLCBwLT5zZWVkVmFsdWUuc2l6 ZSwgcC0+c2VlZFZhbHVlLmJ1ZmZlcik7CisgIGdydWJfVHNzMl9NVV9UUE1VX1NFTlNJVElWRV9D T01QT1NJVEVfTWFyc2hhbCAoYnVmZmVyLCBwLT5zZW5zaXRpdmVUeXBlLCAmcC0+c2Vuc2l0aXZl KTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX1NFTlNJVElWRV9NYXJzaGFsIChncnVi X3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBUUE0yQl9TRU5TSVRJVkVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9w YWNrX3UxNiAoYnVmZmVyLCBwLT5zaXplKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVRfU0VOU0lUSVZF X01hcnNoYWwgKGJ1ZmZlciwgJnAtPnNlbnNpdGl2ZUFyZWEpOworfQorCit2b2lkCitncnViX1Rz czJfTVVfVFBNMkJfU0VOU0lUSVZFX0NSRUFURV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLAorCQkJCQkgICAgIGNvbnN0IFRQTTJCX1NFTlNJVElWRV9DUkVBVEVfdCAqc2Vuc2l0 aXZlQ3JlYXRlKQoreworICBncnViX3VpbnQzMl90IHN0YXJ0OworICBncnViX3VpbnQxNl90IHNp emU7CisKKyAgaWYgKHNlbnNpdGl2ZUNyZWF0ZSkKKyAgICB7CisgICAgICBncnViX3RwbTJfYnVm ZmVyX3BhY2tfdTE2IChidWZmZXIsIHNlbnNpdGl2ZUNyZWF0ZS0+c2l6ZSk7CisgICAgICBzdGFy dCA9IGJ1ZmZlci0+c2l6ZTsKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NFTlNJVElWRV9DUkVB VEVfTWFyc2hhbCAoYnVmZmVyLCAmc2Vuc2l0aXZlQ3JlYXRlLT5zZW5zaXRpdmUpOworICAgICAg c2l6ZSA9IGdydWJfY3B1X3RvX2JlMTYgKGJ1ZmZlci0+c2l6ZSAtIHN0YXJ0KTsKKworICAgICAg Z3J1Yl9tZW1jcHkgKCZidWZmZXItPmRhdGFbc3RhcnQgLSBzaXplb2YgKGdydWJfdWludDE2X3Qp XSwgJnNpemUsIHNpemVvZiAoc2l6ZSkpOworICAgIH0KKyAgZWxzZQorICAgIGdydWJfdHBtMl9i dWZmZXJfcGFja191MTYgKGJ1ZmZlciwgMCk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1T X1NJR05BVFVSRV9SU0FfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNU19TSUdOQVRVUkVf UlNBX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MTYgKGJ1ZmZlciwgcC0+aGFz aCk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAtPnNpZy5zaXplLCBw LT5zaWcuYnVmZmVyKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfU0lHTkFUVVJFX0VD Q19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUUE1TX1NJR05BVFVSRV9FQ0NfdCAqcCkKK3sK KyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVyLCBwLT5oYXNoKTsKKyAgZ3J1Yl9U c3MyX01VX1RQTTJCX01hcnNoYWwgKGJ1ZmZlciwgcC0+c2lnbmF0dXJlUi5zaXplLCBwLT5zaWdu YXR1cmVSLmJ1ZmZlcik7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIsIHAt PnNpZ25hdHVyZVMuc2l6ZSwgcC0+c2lnbmF0dXJlUy5idWZmZXIpOworfQorCit2b2lkCitncnVi X1RzczJfTVVfVFBNVV9IQV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNSV9BTEdfSEFTSF90IGhhc2hBbGcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUUE1VX0hBX3QgKnApCit7Cisg IGdydWJfdWludDE2X3QgaTsKKworICBzd2l0Y2ggKGhhc2hBbGcpCisgICAgeworICAgIGNhc2Ug VFBNX0FMR19TSEExOgorICAgICAgZm9yIChpID0gMDsgaSA8IFRQTV9TSEExX0RJR0VTVF9TSVpF OyBpKyspCisgICAgICAgIGdydWJfdHBtMl9idWZmZXJfcGFja191OCAoYnVmZmVyLCBwLT5zaGEx W2ldKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19TSEEyNTY6CisgICAgICBmb3Ig KGkgPSAwOyBpIDwgVFBNX1NIQTI1Nl9ESUdFU1RfU0laRTsgaSsrKQorICAgICAgICBncnViX3Rw bTJfYnVmZmVyX3BhY2tfdTggKGJ1ZmZlciwgcC0+c2hhMjU2W2ldKTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgVFBNX0FMR19TSEEzODQ6CisgICAgICBmb3IgKGkgPSAwOyBpIDwgVFBNX1NIQTM4 NF9ESUdFU1RfU0laRTsgaSsrKQorICAgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTggKGJ1 ZmZlciwgcC0+c2hhMzg0W2ldKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19TSEE1 MTI6CisgICAgICBmb3IgKGkgPSAwOyBpIDwgVFBNX1NIQTUxMl9ESUdFU1RfU0laRTsgaSsrKQor ICAgICAgICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTggKGJ1ZmZlciwgcC0+c2hhNTEyW2ldKTsK KyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBidWZmZXItPmVycm9yID0gMTsKKyAg ICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfSEFfTWFyc2hh bCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFRQTVRfSEFfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAo YnVmZmVyLCBwLT5oYXNoQWxnKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVfSEFfTWFyc2hhbCAoYnVm ZmVyLCBwLT5oYXNoQWxnLCAmcC0+ZGlnZXN0KTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQ TVVfU0lHTkFUVVJFX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNSV9BTEdfU0lHX1NDSEVNRV90 IHNpZ0FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUUE1V X1NJR05BVFVSRV90ICpwKQoreworICBzd2l0Y2ggKHNpZ0FsZykKKyAgICB7CisgICAgY2FzZSBU UE1fQUxHX1JTQVNTQToKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9SU0FfTWFy c2hhbCAoYnVmZmVyLCAoVFBNU19TSUdOQVRVUkVfUlNBX3QgKikgJnAtPnJzYXNzYSk7CisgICAg ICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfUlNBUFNTOgorICAgICAgZ3J1Yl9Uc3MyX01VX1RQ TVNfU0lHTkFUVVJFX1JTQV9NYXJzaGFsIChidWZmZXIsIChUUE1TX1NJR05BVFVSRV9SU0FfdCAq KSAmcC0+cnNhcHNzKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19FQ0RTQToKKyAg ICAgIGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfTWFyc2hhbCAoYnVmZmVyLCAoVFBN U19TSUdOQVRVUkVfRUNDX3QgKikgJnAtPmVjZHNhKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2Ug VFBNX0FMR19FQ0RBQToKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfTWFy c2hhbCAoYnVmZmVyLCAoVFBNU19TSUdOQVRVUkVfRUNDX3QgKikgJnAtPmVjZGFhKTsKKyAgICAg IGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19TTTI6CisgICAgICBncnViX1RzczJfTVVfVFBNU19T SUdOQVRVUkVfRUNDX01hcnNoYWwgKGJ1ZmZlciwgKFRQTVNfU0lHTkFUVVJFX0VDQ190ICopICZw LT5zbTIpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX0VDU0NITk9SUjoKKyAgICAg IGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfTWFyc2hhbCAoYnVmZmVyLCAoVFBNU19T SUdOQVRVUkVfRUNDX3QgKikgJnAtPmVjc2Nobm9ycik7CisgICAgICBicmVhazsKKyAgICBjYXNl IFRQTV9BTEdfSE1BQzoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1UX0hBX01hcnNoYWwgKGJ1ZmZl ciwgJnAtPmhtYWMpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX05VTEw6CisgICAg ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYnVmZmVyLT5lcnJvciA9IDE7CisgICAgICBi cmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1NJR05BVFVSRV9NYXJz aGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFRQTVRfU0lHTkFUVVJFX3QgKnApCit7CisgIGdydWJfdHBtMl9i dWZmZXJfcGFja191MTYgKGJ1ZmZlciwgcC0+c2lnQWxnKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVf U0lHTkFUVVJFX01hcnNoYWwgKGJ1ZmZlciwgcC0+c2lnQWxnLCAmcC0+c2lnbmF0dXJlKTsKK30K Kwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfVEtfVkVSSUZJRURfTWFyc2hhbCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IFRQTVRfVEtfVkVSSUZJRURfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNr X3UxNiAoYnVmZmVyLCBwLT50YWcpOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTMyIChidWZm ZXIsIHAtPmhpZXJhcmNoeSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChidWZmZXIs IHAtPmRpZ2VzdC5zaXplLCBwLT5kaWdlc3QuYnVmZmVyKTsKK30KKworc3RhdGljIHZvaWQKK19f VHNzMl9NVV9UUE0yQl9CVUZGRVJfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorCQkJCSAgVFBNMkJfdCAqcCwgZ3J1Yl91aW50MTZfdCBib3VuZCkKK3sKKyAgZ3J1Yl90cG0y X2J1ZmZlcl91bnBhY2tfdTE2IChidWZmZXIsICZwLT5zaXplKTsKKworICBpZiAocC0+c2l6ZSA+ IGJvdW5kKQorICAgIHsKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOworICAgICAgcmV0dXJuOwor ICAgIH0KKworICBncnViX3RwbTJfYnVmZmVyX3VucGFjayAoYnVmZmVyLCAmcC0+YnVmZmVyLCBw LT5zaXplKTsKK30KKworI2RlZmluZSBUUE0yQl9CVUZGRVJfVU5NQVJTSEFMKGJ1ZmZlciwgdHlw ZSwgZGF0YSkgXAorICBfX1RzczJfTVVfVFBNMkJfQlVGRkVSX1VubWFyc2hhbChidWZmZXIsIChU UE0yQl90ICopZGF0YSwgc2l6ZW9mKHR5cGUpIC0gc2l6ZW9mKGdydWJfdWludDE2X3QpKQorCit2 b2lkCitncnViX1RzczJfTVVfVFBNU19BVVRIX1JFU1BPTlNFX1VubWFyc2hhbCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgVFBNU19BVVRIX1JFU1BPTlNFX3QgKnApCit7Cisg IGdydWJfdWludDhfdCB0bXA7CisgIGdydWJfdWludDMyX3QgdG1wMzI7CisKKyAgZ3J1Yl90cG0y X2J1ZmZlcl91bnBhY2tfdTE2IChidWZmZXIsICZwLT5ub25jZS5zaXplKTsKKworICBpZiAocC0+ bm9uY2Uuc2l6ZSkKKyAgICBncnViX3RwbTJfYnVmZmVyX3VucGFjayAoYnVmZmVyLCAmcC0+bm9u Y2UuYnVmZmVyLCBwLT5ub25jZS5zaXplKTsKKworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191 OCAoYnVmZmVyLCAmdG1wKTsKKyAgdG1wMzIgPSB0bXA7CisgIGdydWJfbWVtY3B5ICgmcC0+c2Vz c2lvbkF0dHJpYnV0ZXMsICZ0bXAzMiwgc2l6ZW9mIChncnViX3VpbnQzMl90KSk7CisKKyAgZ3J1 Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChidWZmZXIsICZwLT5obWFjLnNpemUpOworCisgIGlm IChwLT5obWFjLnNpemUpCisgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2sgKGJ1ZmZlciwgJnAt PmhtYWMuYnVmZmVyLCBwLT5obWFjLnNpemUpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBN MkJfRElHRVNUX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAg IFRQTTJCX0RJR0VTVF90ICpkaWdlc3QpCit7CisgIFRQTTJCX0JVRkZFUl9VTk1BUlNIQUwgKGJ1 ZmZlciwgVFBNMkJfRElHRVNUX3QsIGRpZ2VzdCk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE0yQl9OT05DRV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAg IFRQTTJCX05PTkNFX3QgKm5vbmNlKQoreworICBUUE0yQl9CVUZGRVJfVU5NQVJTSEFMIChidWZm ZXIsIFRQTTJCX05PTkNFX3QsIG5vbmNlKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJC X0RBVEFfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgIFRQTTJC X0RBVEFfdCAqZGF0YSkKK3sKKyAgVFBNMkJfQlVGRkVSX1VOTUFSU0hBTCAoYnVmZmVyLCBUUE0y Ql9EQVRBX3QsIGRhdGEpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNU19DUkVBVElPTl9E QVRBX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgVFBNU19D UkVBVElPTl9EQVRBX3QgKmRhdGEpCit7CisgIGdydWJfVHNzMl9NVV9UUE1MX1BDUl9TRUxFQ1RJ T05fVW5tYXJzaGFsIChidWZmZXIsICZkYXRhLT5wY3JTZWxlY3QpOworICBncnViX1RzczJfTVVf VFBNMkJfRElHRVNUX1VubWFyc2hhbCAoYnVmZmVyLCAmZGF0YS0+cGNyRGlnZXN0KTsKKyAgZ3J1 Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTggKGJ1ZmZlciwgKGdydWJfdWludDhfdCAqKSZkYXRhLT5s b2NhbGl0eSk7CisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmZGF0YS0+ cGFyZW50TmFtZUFsZyk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OQU1FX1VubWFyc2hhbCAoYnVm ZmVyLCAmZGF0YS0+cGFyZW50TmFtZSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OQU1FX1VubWFy c2hhbCAoYnVmZmVyLCAmZGF0YS0+cGFyZW50UXVhbGlmaWVkTmFtZSk7CisgIGdydWJfVHNzMl9N VV9UUE0yQl9EQVRBX1VubWFyc2hhbCAoYnVmZmVyLCAmZGF0YS0+b3V0c2lkZUluZm8pOworfQor Cit2b2lkCitncnViX1RzczJfTVVfVFBNMkJfQ1JFQVRJT05fREFUQV9Vbm1hcnNoYWwgKGdydWJf dHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICBUUE0yQl9DUkVBVElPTl9EQVRBX3QgKmRh dGEpCit7CisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmZGF0YS0+c2l6 ZSk7CisgIGdydWJfVHNzMl9NVV9UUE1TX0NSRUFUSU9OX0RBVEFfVW5tYXJzaGFsIChidWZmZXIs ICZkYXRhLT5jcmVhdGlvbkRhdGEpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNMkJfUFJJ VkFURV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICAgVFBN MkJfUFJJVkFURV90ICpwcml2YXRlKQoreworICBUUE0yQl9CVUZGRVJfVU5NQVJTSEFMIChidWZm ZXIsIFRQTTJCX1BSSVZBVEVfdCwgcHJpdmF0ZSk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE0yQl9TRU5TSVRJVkVfREFUQV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJCSAgICAgVFBNMkJfU0VOU0lUSVZFX0RBVEFfdCAqZGF0YSkKK3sKKyAgVFBNMkJfQlVG RkVSX1VOTUFSU0hBTCAoYnVmZmVyLCBUUE0yQl9TRU5TSVRJVkVfREFUQV90LCBkYXRhKTsKK30K Kwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX1BVQkxJQ19LRVlfUlNBX1VubWFyc2hhbCAoZ3J1 Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgICBUUE0yQl9QVUJMSUNfS0VZX1JTQV90 ICpyc2EpCit7CisgIFRQTTJCX0JVRkZFUl9VTk1BUlNIQUwgKGJ1ZmZlciwgVFBNMkJfUFVCTElD X0tFWV9SU0FfdCwgcnNhKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX0VDQ19QQVJB TUVURVJfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgICAgVFBN MkJfRUNDX1BBUkFNRVRFUl90ICpwYXJhbSkKK3sKKyAgVFBNMkJfQlVGRkVSX1VOTUFSU0hBTCAo YnVmZmVyLCBUUE0yQl9FQ0NfUEFSQU1FVEVSX3QsIHBhcmFtKTsKK30KKwordm9pZAorZ3J1Yl9U c3MyX01VX1RQTUFfT0JKRUNUX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwK KwkJCQkgICAgVFBNQV9PQkpFQ1RfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tf dTMyIChidWZmZXIsIChncnViX3VpbnQzMl90ICopIHApOworfQorCit2b2lkCitncnViX1RzczJf TVVfVFBNU19TQ0hFTUVfSE1BQ19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJCSBUUE1TX1NDSEVNRV9ITUFDX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfdW5w YWNrX3UxNiAoYnVmZmVyLCAmcC0+aGFzaEFsZyk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE1TX1NDSEVNRV9YT1JfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJ CQlUUE1TX1NDSEVNRV9YT1JfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2 IChidWZmZXIsICZwLT5oYXNoQWxnKTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChi dWZmZXIsICZwLT5rZGYpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVV9TQ0hFTUVfS0VZ RURIQVNIX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgICAg VFBNSV9BTEdfS0VZRURIQVNIX1NDSEVNRV90IHNjaGVtZSwKKwkJCQkJICAgICAgVFBNVV9TQ0hF TUVfS0VZRURIQVNIX3QgKnApCit7CisgIHN3aXRjaCAoc2NoZW1lKQorICAgIHsKKyAgICBjYXNl IFRQTV9BTEdfSE1BQzoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NDSEVNRV9ITUFDX1VubWFy c2hhbCAoYnVmZmVyLCAmcC0+aG1hYyk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdf WE9SOgorICAgICAgZ3J1Yl9Uc3MyX01VX1RQTVNfU0NIRU1FX1hPUl9Vbm1hcnNoYWwgKGJ1ZmZl ciwgJnAtPmV4Y2x1c2l2ZU9yKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19OVUxM OgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ZXJyb3IgPSAxOwor ICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVF9LRVlFREhB U0hfU0NIRU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAg ICAgVFBNVF9LRVlFREhBU0hfU0NIRU1FX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfdW5w YWNrX3UxNiAoYnVmZmVyLCAmcC0+c2NoZW1lKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVfU0NIRU1F X0tFWUVESEFTSF9Vbm1hcnNoYWwgKGJ1ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWlscyk7Cit9 CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX0tFWUVESEFTSF9QQVJNU19Vbm1hcnNoYWwgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICAgVFBNU19LRVlFREhBU0hfUEFSTVNf dCAqcCkKK3sKKyAgZ3J1Yl9Uc3MyX01VX1RQTVRfS0VZRURIQVNIX1NDSEVNRV9Vbm1hcnNoYWwg KGJ1ZmZlciwgJnAtPnNjaGVtZSk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX1NZTV9L RVlfQklUU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgVFBN SV9BTEdfU1lNX09CSkVDVF90IGFsZ29yaXRobSwKKwkJCQkJICBUUE1VX1NZTV9LRVlfQklUU190 ICpwKQoreworICBzd2l0Y2ggKGFsZ29yaXRobSkKKyAgICB7CisgICAgY2FzZSBUUE1fQUxHX0FF UzoKKyAgICBjYXNlIFRQTV9BTEdfU000OgorICAgIGNhc2UgVFBNX0FMR19DQU1FTExJQToKKyAg ICBjYXNlIFRQTV9BTEdfWE9SOgorICAgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChi dWZmZXIsIChncnViX3VpbnQxNl90ICopIHApOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1f QUxHX05VTEw6CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYnVmZmVyLT5lcnJv ciA9IDE7CisgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1V X1NZTV9NT0RFX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAg ICBUUE1JX0FMR19TWU1fT0JKRUNUX3QgYWxnb3JpdGhtLAorCQkJCSAgICAgIFRQTVVfU1lNX01P REVfdCAqcCkKK3sKKyAgc3dpdGNoIChhbGdvcml0aG0pCisgICAgeworICAgIGNhc2UgVFBNX0FM R19BRVM6CisgICAgY2FzZSBUUE1fQUxHX1NNNDoKKyAgICBjYXNlIFRQTV9BTEdfQ0FNRUxMSUE6 CisgICAgICBncnViX3RwbTJfYnVmZmVyX3VucGFja191MTYgKGJ1ZmZlciwgKGdydWJfdWludDE2 X3QgKikgcCk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfWE9SOgorICAgIGNhc2Ug VFBNX0FMR19OVUxMOgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ ZXJyb3IgPSAxOworICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkCitncnViX1RzczJfTVVf VFBNVF9TWU1fREVGX09CSkVDVF9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJCSAgICBUUE1UX1NZTV9ERUZfT0JKRUNUX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZm ZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmcC0+YWxnb3JpdGhtKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQ TVVfU1lNX0tFWV9CSVRTX1VubWFyc2hhbCAoYnVmZmVyLCBwLT5hbGdvcml0aG0sICZwLT5rZXlC aXRzKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVfU1lNX01PREVfVW5tYXJzaGFsIChidWZmZXIsIHAt PmFsZ29yaXRobSwgJnAtPm1vZGUpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNU19TWU1D SVBIRVJfUEFSTVNfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkg ICAgIFRQTVNfU1lNQ0lQSEVSX1BBUk1TX3QgKnApCit7CisgIGdydWJfVHNzMl9NVV9UUE1UX1NZ TV9ERUZfT0JKRUNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+c3ltKTsKK30KKwordm9pZAorZ3J1 Yl9Uc3MyX01VX1RQTVVfQVNZTV9TQ0hFTUVfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLAorCQkJCQkgVFBNSV9BTEdfUlNBX0RFQ1JZUFRfdCBzY2hlbWUsCisJCQkJCSBUUE1V X0FTWU1fU0NIRU1FX3QgKnAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIHN3aXRjaCAo c2NoZW1lKQorICAgIHsKKyAgICBjYXNlIFRQTV9BTEdfTlVMTDoKKyAgICAgIGJyZWFrOworICAg IGRlZmF1bHQ6CisgICAgICAvKiBVbnN1cHBvcnRlZCAqLworICAgICAgYnVmZmVyLT5lcnJvciA9 IDE7CisgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1JT QV9TQ0hFTUVfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQlUUE1U X1JTQV9TQ0hFTUVfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChidWZm ZXIsICZwLT5zY2hlbWUpOworICBncnViX1RzczJfTVVfVFBNVV9BU1lNX1NDSEVNRV9Vbm1hcnNo YWwgKGJ1ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWlscyk7Cit9CisKK3ZvaWQKK2dydWJfVHNz Ml9NVV9UUE1TX1JTQV9QQVJNU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJICAgICAgIFRQTVNfUlNBX1BBUk1TX3QgKnApCit7CisgIGdydWJfVHNzMl9NVV9UUE1U X1NZTV9ERUZfT0JKRUNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+c3ltbWV0cmljKTsKKyAgZ3J1 Yl9Uc3MyX01VX1RQTVRfUlNBX1NDSEVNRV9Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPnNjaGVtZSk7 CisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmcC0+a2V5Qml0cyk7Cisg IGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UzMiAoYnVmZmVyLCAmcC0+ZXhwb25lbnQpOworfQor Cit2b2lkCitncnViX1RzczJfTVVfVFBNVF9FQ0NfU0NIRU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJVFBNVF9FQ0NfU0NIRU1FX3QgKnApCit7CisgIGdydWJf dHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmcC0+c2NoZW1lKTsKKyAgZ3J1Yl9Uc3My X01VX1RQTVVfQVNZTV9TQ0hFTUVfVW5tYXJzaGFsIChidWZmZXIsIHAtPnNjaGVtZSwgJnAtPmRl dGFpbHMpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVV9LREZfU0NIRU1FX1VubWFyc2hh bCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJVFBNSV9BTEdfS0RGX3Qgc2NoZW1l LAorCQkJCQlUUE1VX0tERl9TQ0hFTUVfdCAqcCkKK3sKKyAgc3dpdGNoIChzY2hlbWUpCisgICAg eworICAgIGNhc2UgVFBNX0FMR19NR0YxOgorICAgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tf dTE2IChidWZmZXIsICZwLT5tZ2YxLmhhc2hBbGcpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBU UE1fQUxHX0tERjFfU1A4MDBfNTZBOgorICAgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2 IChidWZmZXIsICZwLT5rZGYxX3NwODAwXzU2YS5oYXNoQWxnKTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgVFBNX0FMR19LREYyOgorICAgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChi dWZmZXIsICZwLT5rZGYyLmhhc2hBbGcpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxH X0tERjFfU1A4MDBfMTA4OgorICAgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChidWZm ZXIsICZwLT5rZGYxX3NwODAwXzEwOC5oYXNoQWxnKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2Ug VFBNX0FMR19OVUxMOgorICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGJ1ZmZlci0+ ZXJyb3IgPSAxOworICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkCitncnViX1RzczJfTVVf VFBNVF9LREZfU0NIRU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJ CQkJVFBNVF9LREZfU0NIRU1FX3QgKnApCit7CisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3Ux NiAoYnVmZmVyLCAmcC0+c2NoZW1lKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTVVfS0RGX1NDSEVNRV9V bm1hcnNoYWwgKGJ1ZmZlciwgcC0+c2NoZW1lLCAmcC0+ZGV0YWlscyk7Cit9CisKK3ZvaWQKK2dy dWJfVHNzMl9NVV9UUE1TX0VDQ19QQVJNU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBi dWZmZXIsCisJCQkJICAgICAgIFRQTVNfRUNDX1BBUk1TX3QgKnApCit7CisgIGdydWJfVHNzMl9N VV9UUE1UX1NZTV9ERUZfT0JKRUNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+c3ltbWV0cmljKTsK KyAgZ3J1Yl9Uc3MyX01VX1RQTVRfRUNDX1NDSEVNRV9Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPnNj aGVtZSApOworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191MTYgKGJ1ZmZlciwgJnAtPmN1cnZl SUQpOworICBncnViX1RzczJfTVVfVFBNVF9LREZfU0NIRU1FX1VubWFyc2hhbCAoYnVmZmVyLCAm cC0+a2RmKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfUFVCTElDX1BBUk1TX1VubWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICBncnViX3VpbnQzMl90IHR5 cGUsCisJCQkJCSAgVFBNVV9QVUJMSUNfUEFSTVNfdCAqcCkKK3sKKyAgc3dpdGNoICh0eXBlKQor ICAgIHsKKyAgICBjYXNlIFRQTV9BTEdfS0VZRURIQVNIOgorICAgICAgZ3J1Yl9Uc3MyX01VX1RQ TVNfS0VZRURIQVNIX1BBUk1TX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+a2V5ZWRIYXNoRGV0YWls KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19TWU1DSVBIRVI6CisgICAgICBncnVi X1RzczJfTVVfVFBNU19TWU1DSVBIRVJfUEFSTVNfVW5tYXJzaGFsIChidWZmZXIsICZwLT5zeW1E ZXRhaWwpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX1JTQToKKyAgICAgIGdydWJf VHNzMl9NVV9UUE1TX1JTQV9QQVJNU19Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPnJzYURldGFpbCk7 CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfRUNDOgorICAgICAgZ3J1Yl9Uc3MyX01V X1RQTVNfRUNDX1BBUk1TX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+ZWNjRGV0YWlsKTsKKyAgICAg IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBidWZmZXItPmVycm9yID0gMTsKKyAgICAgIGJy ZWFrOworICAgIH0KK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfRUNDX1BPSU5UX1VubWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgICAgVFBNU19FQ0NfUE9J TlRfdCAqcCkKK3sKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX0VDQ19QQVJBTUVURVJfVW5tYXJzaGFs IChidWZmZXIsICZwLT54KTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX0VDQ19QQVJBTUVURVJfVW5t YXJzaGFsIChidWZmZXIsICZwLT55KTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfUFVC TElDX0lEX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgICAg VFBNSV9BTEdfUFVCTElDX3QgdHlwZSwKKwkJCQkgICAgICAgVFBNVV9QVUJMSUNfSURfdCAqcCkK K3sKKyAgc3dpdGNoKHR5cGUpCisgICAgeworICAgIGNhc2UgVFBNX0FMR19LRVlFREhBU0g6Cisg ICAgICBncnViX1RzczJfTVVfVFBNMkJfRElHRVNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+a2V5 ZWRIYXNoKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19TWU1DSVBIRVI6CisgICAg ICBncnViX1RzczJfTVVfVFBNMkJfRElHRVNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+c3ltKTsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19SU0E6CisgICAgICBncnViX1RzczJfTVVf VFBNMkJfUFVCTElDX0tFWV9SU0FfVW5tYXJzaGFsIChidWZmZXIsICZwLT5yc2EpOworICAgICAg YnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX0VDQzoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX0VD Q19QT0lOVF9Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPmVjYyk7CisgICAgICBicmVhazsKKyAgICBk ZWZhdWx0OgorICAgICAgYnVmZmVyLT5lcnJvciA9IDE7CisgICAgICBicmVhazsKKyAgICB9Cit9 CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1BVQkxJQ19Vbm1hcnNoYWwgKGdydWJfdHBtMl9i dWZmZXJfdCBidWZmZXIsCisJCQkJICAgIFRQTVRfUFVCTElDX3QgKnApCit7CisgIGdydWJfdHBt Ml9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmcC0+dHlwZSk7CisgIGdydWJfdHBtMl9idWZm ZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmcC0+bmFtZUFsZyk7CisgIGdydWJfVHNzMl9NVV9UUE1B X09CSkVDVF9Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPm9iamVjdEF0dHJpYnV0ZXMpOworICBncnVi X1RzczJfTVVfVFBNMkJfRElHRVNUX1VubWFyc2hhbCAoYnVmZmVyLCAmcC0+YXV0aFBvbGljeSk7 CisgIGdydWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19QQVJNU19Vbm1hcnNoYWwgKGJ1ZmZlciwgcC0+ dHlwZSwgJnAtPnBhcmFtZXRlcnMpOworICBncnViX1RzczJfTVVfVFBNVV9QVUJMSUNfSURfVW5t YXJzaGFsIChidWZmZXIsIHAtPnR5cGUsICZwLT51bmlxdWUpOworfQorCit2b2lkCitncnViX1Rz czJfTVVfVFBNMkJfUFVCTElDX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwK KwkJCQkgICAgIFRQTTJCX1BVQkxJQ190ICpwKQoreworICBncnViX3RwbTJfYnVmZmVyX3VucGFj a191MTYgKGJ1ZmZlciwgJnAtPnNpemUpOworICBncnViX1RzczJfTVVfVFBNVF9QVUJMSUNfVW5t YXJzaGFsIChidWZmZXIsICZwLT5wdWJsaWNBcmVhKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01V X1RQTVNfTlZfUFVCTElDX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJ CQkgICAgICAgVFBNU19OVl9QVUJMSUNfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBh Y2tfdTMyIChidWZmZXIsICZwLT5udkluZGV4KTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tf dTE2IChidWZmZXIsICZwLT5uYW1lQWxnKTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTMy IChidWZmZXIsICZwLT5hdHRyaWJ1dGVzKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX0RJR0VTVF9V bm1hcnNoYWwgKGJ1ZmZlciwgJnAtPmF1dGhQb2xpY3kpOworICBncnViX3RwbTJfYnVmZmVyX3Vu cGFja191MTYgKGJ1ZmZlciwgJnAtPmRhdGFTaXplKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01V X1RQTTJCX05WX1BVQkxJQ19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJ CQkJCVRQTTJCX05WX1BVQkxJQ190ICpwKQoreworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191 MTYgKGJ1ZmZlciwgJnAtPnNpemUpOworICBncnViX1RzczJfTVVfVFBNU19OVl9QVUJMSUNfVW5t YXJzaGFsIChidWZmZXIsICZwLT5udlB1YmxpYyk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE0yQl9OQU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICBU UE0yQl9OQU1FX3QgKm4pCit7CisgIFRQTTJCX0JVRkZFUl9VTk1BUlNIQUwgKGJ1ZmZlciwgVFBN MkJfTkFNRV90LCBuKTsKK30KKwordm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfVEFHR0VEX1BST1BF UlRZX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgICBUUE1T X1RBR0dFRF9QUk9QRVJUWV90ICpwcm9wZXJ0eSkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBh Y2tfdTMyIChidWZmZXIsICZwcm9wZXJ0eS0+cHJvcGVydHkpOworICBncnViX3RwbTJfYnVmZmVy X3VucGFja191MzIgKGJ1ZmZlciwgJnByb3BlcnR5LT52YWx1ZSk7Cit9CisKK3ZvaWQKK2dydWJf VHNzMl9NVV9UUE1UX1RLX0NSRUFUSU9OX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1 ZmZlciwKKwkJCQkJIFRQTVRfVEtfQ1JFQVRJT05fdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZl cl91bnBhY2tfdTE2IChidWZmZXIsICZwLT50YWcpOworICBncnViX3RwbTJfYnVmZmVyX3VucGFj a191MzIgKGJ1ZmZlciwgJnAtPmhpZXJhcmNoeSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9ESUdF U1RfVW5tYXJzaGFsIChidWZmZXIsICZwLT5kaWdlc3QpOworfQorCit2b2lkCitncnViX1RzczJf TVVfVFBNVF9US19IQVNIQ0hFQ0tfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFBNVF9US19IQVNI Q0hFQ0tfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChidWZmZXIsICZw LT50YWcpOworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191MzIgKGJ1ZmZlciwgJnAtPmhpZXJh cmNoeSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9ESUdFU1RfVW5tYXJzaGFsIChidWZmZXIsICZw LT5kaWdlc3QpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBNVF9US19WRVJJRklFRF9Vbm1h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRQTVRfVEtfVkVSSUZJRURfdCAqcCkKK3sKKyAgZ3J1Yl90cG0y X2J1ZmZlcl91bnBhY2tfdTE2IChidWZmZXIsICZwLT50YWcpOworICBncnViX3RwbTJfYnVmZmVy X3VucGFja191MzIgKGJ1ZmZlciwgJnAtPmhpZXJhcmNoeSk7CisgIGdydWJfVHNzMl9NVV9UUE0y Ql9ESUdFU1RfVW5tYXJzaGFsIChidWZmZXIsICZwLT5kaWdlc3QpOworfQorCit2b2lkCitncnVi X1RzczJfTVVfVFBNU19QQ1JfU0VMRUNUSU9OX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90 IGJ1ZmZlciwKKwkJCQkJICAgVFBNU19QQ1JfU0VMRUNUSU9OX3QgKnBjclNlbGVjdGlvbikKK3sK KyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVm ZmVyLCAmcGNyU2VsZWN0aW9uLT5oYXNoKTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTgg KGJ1ZmZlciwgJnBjclNlbGVjdGlvbi0+c2l6ZU9mU2VsZWN0KTsKKworICBpZiAocGNyU2VsZWN0 aW9uLT5zaXplT2ZTZWxlY3QgPiBUUE1fUENSX1NFTEVDVF9NQVgpCisgICAgeworICAgICAgYnVm ZmVyLT5lcnJvciA9IDE7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkg PCBwY3JTZWxlY3Rpb24tPnNpemVPZlNlbGVjdDsgaSsrKQorICAgIGdydWJfdHBtMl9idWZmZXJf dW5wYWNrX3U4IChidWZmZXIsICZwY3JTZWxlY3Rpb24tPnBjclNlbGVjdFtpXSk7Cit9CisKK3Zv aWQKK2dydWJfVHNzMl9NVV9UUE1MX1BDUl9TRUxFQ1RJT05fVW5tYXJzaGFsIChncnViX3RwbTJf YnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgICBUUE1MX1BDUl9TRUxFQ1RJT05fdCAqcGNyU2VsZWN0 aW9uKQoreworICBncnViX3VpbnQzMl90IGk7CisKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tf dTMyIChidWZmZXIsICZwY3JTZWxlY3Rpb24tPmNvdW50KTsKKworICBpZiAocGNyU2VsZWN0aW9u LT5jb3VudCA+IFRQTV9OVU1fUENSX0JBTktTKQorICAgIHsKKyAgICAgIGJ1ZmZlci0+ZXJyb3Ig PSAxOworICAgICAgcmV0dXJuOworICAgIH0KKworICBmb3IgKGkgPSAwOyBpIDwgcGNyU2VsZWN0 aW9uLT5jb3VudDsgaSsrKQorICAgIGdydWJfVHNzMl9NVV9UUE1TX1BDUl9TRUxFQ1RJT05fVW5t YXJzaGFsIChidWZmZXIsICZwY3JTZWxlY3Rpb24tPnBjclNlbGVjdGlvbnNbaV0pOworfQorCit2 b2lkCitncnViX1RzczJfTVVfVFBNTF9ESUdFU1RfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVy X3QgYnVmZmVyLAorCQkJCSAgICBUUE1MX0RJR0VTVF90ICpkaWdlc3QpCit7CisgIGdydWJfdWlu dDMyX3QgaTsKKworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191MzIgKGJ1ZmZlciwgJmRpZ2Vz dC0+Y291bnQpOworCisgIGlmIChkaWdlc3QtPmNvdW50ID4gOCkKKyAgICB7CisgICAgICBidWZm ZXItPmVycm9yID0gMTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8 IGRpZ2VzdC0+Y291bnQ7IGkrKykKKyAgICBncnViX1RzczJfTVVfVFBNMkJfRElHRVNUX1VubWFy c2hhbCAoYnVmZmVyLCAmZGlnZXN0LT5kaWdlc3RzW2ldKTsKK30KKwordm9pZAorZ3J1Yl9Uc3My X01VX1RQTVNfU0lHTkFUVVJFX1JTQV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZm ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFBNU19TSUdO QVRVUkVfUlNBX3QgKnJzYSkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTE2IChidWZm ZXIsICZyc2EtPmhhc2gpOworICBncnViX1RzczJfTVVfVFBNMkJfUFVCTElDX0tFWV9SU0FfVW5t YXJzaGFsIChidWZmZXIsICZyc2EtPnNpZyk7Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1T X1NJR05BVFVSRV9FQ0NfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQTVNfU0lHTkFUVVJFX0VD Q190ICplY2MpCit7CisgIGdydWJfdHBtMl9idWZmZXJfdW5wYWNrX3UxNiAoYnVmZmVyLCAmZWNj LT5oYXNoKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX0VDQ19QQVJBTUVURVJfVW5tYXJzaGFsIChi dWZmZXIsICZlY2MtPnNpZ25hdHVyZVIpOworICBncnViX1RzczJfTVVfVFBNMkJfRUNDX1BBUkFN RVRFUl9Vbm1hcnNoYWwgKGJ1ZmZlciwgJmVjYy0+c2lnbmF0dXJlUyk7Cit9CisKK3ZvaWQKK2dy dWJfVHNzMl9NVV9UUE1VX0hBX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFBNSV9BTEdfSEFTSF90IGhhc2hBbGcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQTVVfSEFfdCAqcCkKK3sKKyAgc3dp dGNoIChoYXNoQWxnKQorICAgIHsKKyAgICBjYXNlIFRQTV9BTEdfU0hBMToKKyAgICAgIGdydWJf dHBtMl9idWZmZXJfdW5wYWNrIChidWZmZXIsICZwLT5zaGExLCBUUE1fU0hBMV9ESUdFU1RfU0la RSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfU0hBMjU2OgorICAgICAgZ3J1Yl90 cG0yX2J1ZmZlcl91bnBhY2sgKGJ1ZmZlciwgJnAtPnNoYTI1NiwgVFBNX1NIQTI1Nl9ESUdFU1Rf U0laRSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfU0hBMzg0OgorICAgICAgZ3J1 Yl90cG0yX2J1ZmZlcl91bnBhY2sgKGJ1ZmZlciwgJnAtPnNoYTM4NCwgVFBNX1NIQTM4NF9ESUdF U1RfU0laRSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFRQTV9BTEdfU0hBNTEyOgorICAgICAg Z3J1Yl90cG0yX2J1ZmZlcl91bnBhY2sgKGJ1ZmZlciwgJnAtPnNoYTUxMiwgVFBNX1NIQTUxMl9E SUdFU1RfU0laRSk7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYnVmZmVyLT5l cnJvciA9IDE7CisgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE1UX0hBX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVFBNVF9IQV90ICpwKQoreworICBncnViX3RwbTJfYnVmZmVy X3VucGFja191MTYgKGJ1ZmZlciwgJnAtPmhhc2hBbGcpOworICBncnViX1RzczJfTVVfVFBNVV9I QV9Vbm1hcnNoYWwgKGJ1ZmZlciwgcC0+aGFzaEFsZywgJnAtPmRpZ2VzdCk7Cit9CisKK3ZvaWQK K2dydWJfVHNzMl9NVV9UUE1VX1NJR05BVFVSRV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUE1JX0FM R19TSUdfU0NIRU1FX3Qgc2lnQWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVFBNVV9TSUdOQVRVUkVfdCAqcCkKK3sKKyAgc3dpdGNoIChzaWdBbGcpCisgICAgewor ICAgIGNhc2UgVFBNX0FMR19SU0FTU0E6CisgICAgICBncnViX1RzczJfTVVfVFBNU19TSUdOQVRV UkVfUlNBX1VubWFyc2hhbCAoYnVmZmVyLCAoVFBNU19TSUdOQVRVUkVfUlNBX3QgKikmcC0+cnNh c3NhKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FMR19SU0FQU1M6CisgICAgICBncnVi X1RzczJfTVVfVFBNU19TSUdOQVRVUkVfUlNBX1VubWFyc2hhbCAoYnVmZmVyLCAoVFBNU19TSUdO QVRVUkVfUlNBX3QgKikmcC0+cnNhcHNzKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVFBNX0FM R19FQ0RTQToKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfVW5tYXJzaGFs IChidWZmZXIsIChUUE1TX1NJR05BVFVSRV9FQ0NfdCAqKSZwLT5lY2RzYSk7CisgICAgICBicmVh azsKKyAgICBjYXNlIFRQTV9BTEdfRUNEQUE6CisgICAgICBncnViX1RzczJfTVVfVFBNU19TSUdO QVRVUkVfRUNDX1VubWFyc2hhbCAoYnVmZmVyLCAoVFBNU19TSUdOQVRVUkVfRUNDX3QgKikmcC0+ ZWNkYWEpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX1NNMjoKKyAgICAgIGdydWJf VHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfVW5tYXJzaGFsIChidWZmZXIsIChUUE1TX1NJR05B VFVSRV9FQ0NfdCAqKSZwLT5zbTIpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX0VD U0NITk9SUjoKKyAgICAgIGdydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9FQ0NfVW5tYXJzaGFs IChidWZmZXIsIChUUE1TX1NJR05BVFVSRV9FQ0NfdCAqKSZwLT5lY3NjaG5vcnIpOworICAgICAg YnJlYWs7CisgICAgY2FzZSBUUE1fQUxHX0hNQUM6CisgICAgICBncnViX1RzczJfTVVfVFBNVF9I QV9Vbm1hcnNoYWwgKGJ1ZmZlciwgJnAtPmhtYWMpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBU UE1fQUxHX05VTEw6CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgYnVmZmVyLT5l cnJvciA9IDE7CisgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQKK2dydWJfVHNzMl9NVV9U UE1UX1NJR05BVFVSRV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUE1UX1NJR05BVFVSRV90ICpwKQor eworICBncnViX3RwbTJfYnVmZmVyX3VucGFja191MTYgKGJ1ZmZlciwgJnAtPnNpZ0FsZyk7Cisg IGdydWJfVHNzMl9NVV9UUE1VX1NJR05BVFVSRV9Vbm1hcnNoYWwgKGJ1ZmZlciwgcC0+c2lnQWxn LCAmcC0+c2lnbmF0dXJlKTsKK30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvdHNzMi90c3My X211LmggYi9ncnViLWNvcmUvbGliL3RzczIvdHNzMl9tdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uOGY4MjEyNmUxCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3Jl L2xpYi90c3MyL3RzczJfbXUuaApAQCAtMCwwICsxLDM5NyBAQAorLyoKKyAqICBHUlVCICAtLSAg R1JhbmQgVW5pZmllZCBCb290bG9hZGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDIyIE1pY3Jvc29m dCBDb3Jwb3JhdGlvbgorICogIENvcHlyaWdodCAoQykgMjAyNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAqCisgKiAgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIEdSVUIgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIEdSVUJfVFBN Ml9NVV9IRUFERVIKKyNkZWZpbmUgR1JVQl9UUE0yX01VX0hFQURFUiAxCisKKyNpbmNsdWRlIDx0 c3MyX2J1ZmZlci5oPgorI2luY2x1ZGUgPHRzczJfc3RydWN0cy5oPgorCitleHRlcm4gdm9pZAor Z3J1Yl9Uc3MyX01VX1RQTVNfQVVUSF9DT01NQU5EX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisJCQkJCWNvbnN0IFRQTVNfQVVUSF9DT01NQU5EX3QgKmF1dGhDb21tYW5kKTsK KworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9NYXJzaGFsIChncnViX3RwbTJfYnVm ZmVyX3QgYnVmZmVyLAorCQkJICAgIGNvbnN0IGdydWJfdWludDE2X3Qgc2l6ZSwKKwkJCSAgICBj b25zdCBncnViX3VpbnQ4X3QgKmIpOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVf U1lNX0tFWV9CSVRTX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCWNv bnN0IFRQTUlfQUxHX1NZTV9PQkpFQ1RfdCBhbGdvcml0aG0sCisJCQkJCWNvbnN0IFRQTVVfU1lN X0tFWV9CSVRTX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfU1lNX01P REVfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgY29uc3QgVFBN SV9BTEdfU1lNX09CSkVDVF90IGFsZ29yaXRobSwKKwkJCQkgICAgY29uc3QgVFBNVV9TWU1fTU9E RV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1NZTV9ERUZfTWFyc2hh bCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICBjb25zdCBUUE1UX1NZTV9ERUZf dCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNU19QQ1JfU0VMRUNUSU9OX01h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSBjb25zdCBUUE1TX1BDUl9T RUxFQ1RJT05fdCAqcGNyU2VsZWN0aW9uKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9U UE1MX1BDUl9TRUxFQ1RJT05fTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJ CQkJIGNvbnN0IFRQTUxfUENSX1NFTEVDVElPTl90ICpwY3JTZWxlY3Rpb24pOworCitleHRlcm4g dm9pZAorZ3J1Yl9Uc3MyX01VX1RQTUFfT0JKRUNUX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisJCQkJICBjb25zdCBUUE1BX09CSkVDVF90ICpwKTsKKworZXh0ZXJuIHZvaWQK K2dydWJfVHNzMl9NVV9UUE1TX1NDSEVNRV9YT1JfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90 IGJ1ZmZlciwKKwkJCQkgICAgICBjb25zdCBUUE1TX1NDSEVNRV9YT1JfdCAqcCk7CisKK2V4dGVy biB2b2lkCitncnViX1RzczJfTVVfVFBNU19TQ0hFTUVfSE1BQ19NYXJzaGFsIChncnViX3RwbTJf YnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgICBjb25zdCBUUE1TX1NDSEVNRV9ITUFDX3QgKnAp OworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfU0NIRU1FX0tFWUVESEFTSF9NYXJz aGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgICAgY29uc3QgVFBNSV9BTEdf S0VZRURIQVNIX1NDSEVNRV90IHNjaGVtZSwKKwkJCQkJICAgIGNvbnN0IFRQTVVfU0NIRU1FX0tF WUVESEFTSF90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX0tFWUVESEFT SF9TQ0hFTUVfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgIGNv bnN0IFRQTVRfS0VZRURIQVNIX1NDSEVNRV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNz Ml9NVV9UUE1TX0tFWUVESEFTSF9QQVJNU19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAorCQkJCQkgICBjb25zdCBUUE1TX0tFWUVESEFTSF9QQVJNU190ICpwKTsKKworZXh0ZXJu IHZvaWQKK2dydWJfVHNzMl9NVV9UUE1UX1NZTV9ERUZfT0JKRUNUX01hcnNoYWwgKGdydWJfdHBt Ml9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgY29uc3QgVFBNVF9TWU1fREVGX09CSkVDVF90ICpw KTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX0FTWU1fU0NIRU1FX01hcnNoYWwg KGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICAgIGNvbnN0IFRQTUlfQUxHX1JT QV9ERUNSWVBUX3Qgc2NoZW1lLAorCQkJCSAgICAgICBjb25zdCBUUE1VX0FTWU1fU0NIRU1FX3Qg KnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfUlNBX1NDSEVNRV9NYXJzaGFs IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgIGNvbnN0IFRQTVRfUlNBX1ND SEVNRV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX1JTQV9QQVJNU19N YXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgY29uc3QgVFBNU19S U0FfUEFSTVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNU19TWU1DSVBI RVJfUEFSTVNfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgY29u c3QgVFBNU19TWU1DSVBIRVJfUEFSTVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJf TVVfVFBNVF9FQ0NfU0NIRU1FX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJ CQkJICAgICAgY29uc3QgVFBNVF9FQ0NfU0NIRU1FX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1 Yl9Uc3MyX01VX1RQTVVfS0RGX1NDSEVNRV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAorCQkJCSAgICAgIGNvbnN0IFRQTUlfQUxHX0tERl90IHNjaGVtZSwKKwkJCQkgICAgICBj b25zdCBUUE1VX0tERl9TQ0hFTUVfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVf VFBNVF9LREZfU0NIRU1FX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJ ICAgICAgY29uc3QgVFBNVF9LREZfU0NIRU1FX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9U c3MyX01VX1RQTVNfRUNDX1BBUk1TX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJICAgICBjb25zdCBUUE1TX0VDQ19QQVJNU190ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dy dWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19QQVJNU19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3Qg YnVmZmVyLAorCQkJCQljb25zdCBncnViX3VpbnQzMl90IHR5cGUsCisJCQkJCWNvbnN0IFRQTVVf UFVCTElDX1BBUk1TX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfRUND X1BPSU5UX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICBjb25z dCBUUE1TX0VDQ19QT0lOVF90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1V X1BVQkxJQ19JRF9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAg Y29uc3QgVFBNSV9BTEdfUFVCTElDX3QgdHlwZSwKKwkJCQkgICAgIGNvbnN0IFRQTVVfUFVCTElD X0lEX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfUFVCTElDX1BBUk1T X01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCWNvbnN0IFRQTVRfUFVC TElDX1BBUk1TX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfUFVCTElD X01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICBjb25zdCBUUE1UX1BV QkxJQ190ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9QVUJMSUNfTWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICBjb25zdCBUUE0yQl9QVUJM SUNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNU19TRU5TSVRJVkVfQ1JF QVRFX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICBjb25zdCBU UE1TX1NFTlNJVElWRV9DUkVBVEVfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVf VFBNMkJfU0VOU0lUSVZFX0NSRUFURV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorCQkJCQkgICAgIGNvbnN0IFRQTTJCX1NFTlNJVElWRV9DUkVBVEVfdCAqc2Vuc2l0aXZlQ3Jl YXRlKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX1NFTlNJVElWRV9DT01QT1NJ VEVfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNSV9BTEdfUFVCTElDX3QgdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg VFBNVV9TRU5TSVRJVkVfQ09NUE9TSVRFX3QgKnApOworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9N VV9UUE1UX1NFTlNJVElWRV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRQTVRfU0VOU0lUSVZFX3Qg KnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX1NFTlNJVElWRV9NYXJzaGFs IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBUUE0yQl9TRU5TSVRJVkVfdCAqcCk7CisKK2V4dGVybiB2b2lkCitn cnViX1RzczJfTVVfVFBNU19TSUdOQVRVUkVfUlNBX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFRQTVNfU0lHTkFUVVJFX1JTQV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9U UE1TX1NJR05BVFVSRV9FQ0NfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNU19TSUdOQVRV UkVfRUNDX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfSEFfTWFyc2hh bCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFRQTUlfQUxHX0hBU0hfdCBoYXNoQWxnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVFBNVV9IQV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9N VV9UUE1UX0hBX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBUUE1UX0hBX3QgKnApOworCitleHRlcm4gdm9pZAor Z3J1Yl9Uc3MyX01VX1RQTVVfU0lHTkFUVVJFX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBi dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFBNSV9B TEdfU0lHX1NDSEVNRV90IHNpZ0FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBUUE1VX1NJR05BVFVSRV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNz Ml9NVV9UUE1UX1NJR05BVFVSRV9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRQTVRfU0lHTkFUVVJF X3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfVEtfVkVSSUZJRURfTWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFRQTVRfVEtfVkVSSUZJRURfdCAqcCk7CisKK2V4dGVybiB2 b2lkCitncnViX1RzczJfTVVfVFBNU19BVVRIX1JFU1BPTlNFX1VubWFyc2hhbCAoZ3J1Yl90cG0y X2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgVFBNU19BVVRIX1JFU1BPTlNFX3QgKnApOworCitl eHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX0RJR0VTVF9Vbm1hcnNoYWwgKGdydWJfdHBt Ml9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICBUUE0yQl9ESUdFU1RfdCAqZGlnZXN0KTsKKwor ZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9OT05DRV9Vbm1hcnNoYWwgKGdydWJfdHBt Ml9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgIFRQTTJCX05PTkNFX3QgKm5vbmNlKTsKKworZXh0 ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9EQVRBX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1 ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICBUUE0yQl9EQVRBX3QgKmRhdGEpOworCitleHRlcm4gdm9p ZAorZ3J1Yl9Uc3MyX01VX1RQTVNfQ1JFQVRJT05fREFUQV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9i dWZmZXJfdCBidWZmZXIsCisJCQkJCSAgIFRQTVNfQ1JFQVRJT05fREFUQV90ICpkYXRhKTsKKwor ZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9DUkVBVElPTl9EQVRBX1VubWFyc2hhbCAo Z3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgIFRQTTJCX0NSRUFUSU9OX0RBVEFf dCAqZGF0YSk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNMkJfUFJJVkFURV9Vbm1h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICAgVFBNMkJfUFJJVkFU RV90ICpwcml2YXRlKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9TRU5TSVRJ VkVfREFUQV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICAg VFBNMkJfU0VOU0lUSVZFX0RBVEFfdCAqZGF0YSk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJf TVVfVFBNMkJfUFVCTElDX0tFWV9SU0FfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAorCQkJCQkgICAgIFRQTTJCX1BVQkxJQ19LRVlfUlNBX3QgKnJzYSk7CisKK2V4dGVybiB2 b2lkCitncnViX1RzczJfTVVfVFBNMkJfRUNDX1BBUkFNRVRFUl9Vbm1hcnNoYWwgKGdydWJfdHBt Ml9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICBUUE0yQl9FQ0NfUEFSQU1FVEVSX3QgKnBhcmFt KTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1BX09CSkVDVF9Vbm1hcnNoYWwgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgIFRQTUFfT0JKRUNUX3QgKnApOworCitl eHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfU0NIRU1FX0hNQUNfVW5tYXJzaGFsIChncnVi X3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgVFBNU19TQ0hFTUVfSE1BQ190ICpwKTsKKwor ZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX1NDSEVNRV9YT1JfVW5tYXJzaGFsIChncnVi X3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQlUUE1TX1NDSEVNRV9YT1JfdCAqcCk7CisKK2V4 dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNVV9TQ0hFTUVfS0VZRURIQVNIX1VubWFyc2hhbCAo Z3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgICAgVFBNSV9BTEdfS0VZRURIQVNI X1NDSEVNRV90IHNjaGVtZSwKKwkJCQkJICAgICAgVFBNVV9TQ0hFTUVfS0VZRURIQVNIX3QgKnAp OworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfS0VZRURIQVNIX1NDSEVNRV9Vbm1h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICAgIFRQTVRfS0VZRURI QVNIX1NDSEVNRV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX0tFWUVE SEFTSF9QQVJNU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAg ICAgVFBNU19LRVlFREhBU0hfUEFSTVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJf TVVfVFBNVV9TWU1fS0VZX0JJVFNfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorCQkJCQkgIFRQTUlfQUxHX1NZTV9PQkpFQ1RfdCBhbGdvcml0aG0sCisJCQkJCSAgVFBNVV9T WU1fS0VZX0JJVFNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNVV9TWU1f TU9ERV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICAgVFBN SV9BTEdfU1lNX09CSkVDVF90IGFsZ29yaXRobSwKKwkJCQkgICAgICBUUE1VX1NZTV9NT0RFX3Qg KnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfU1lNX0RFRl9PQkpFQ1RfVW5t YXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCQkgICAgVFBNVF9TWU1fREVG X09CSkVDVF90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX1NZTUNJUEhF Ul9QQVJNU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgICAg VFBNU19TWU1DSVBIRVJfUEFSTVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVf VFBNVV9BU1lNX1NDSEVNRV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJ CQkJCSBUUE1JX0FMR19SU0FfREVDUllQVF90IHNjaGVtZSwKKwkJCQkJIFRQTVVfQVNZTV9TQ0hF TUVfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNVF9SU0FfU0NIRU1FX1Vu bWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJVFBNVF9SU0FfU0NIRU1F X3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfUlNBX1BBUk1TX1VubWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgICAgVFBNU19SU0FfUEFS TVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNVF9FQ0NfU0NIRU1FX1Vu bWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJVFBNVF9FQ0NfU0NIRU1F X3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVVfS0RGX1NDSEVNRV9Vbm1h cnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCVRQTUlfQUxHX0tERl90IHNj aGVtZSwKKwkJCQkJVFBNVV9LREZfU0NIRU1FX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9U c3MyX01VX1RQTVRfS0RGX1NDSEVNRV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZm ZXIsCisJCQkJCVRQTVRfS0RGX1NDSEVNRV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNz Ml9NVV9UUE1TX0VDQ19QQVJNU19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJICAgICAgIFRQTVNfRUNDX1BBUk1TX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9U c3MyX01VX1RQTVVfUFVCTElDX1BBUk1TX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1 ZmZlciwKKwkJCQkJICBncnViX3VpbnQzMl90IHR5cGUsCisJCQkJCSAgVFBNVV9QVUJMSUNfUEFS TVNfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNU19FQ0NfUE9JTlRfVW5t YXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgICBUUE1TX0VDQ19Q T0lOVF90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX1BVQkxJQ19JRF9V bm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAgICAgIFRQTUlfQUxH X1BVQkxJQ190IHR5cGUsCisJCQkJICAgICAgIFRQTVVfUFVCTElDX0lEX3QgKnApOworCitleHRl cm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfUFVCTElDX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1 ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgVFBNVF9QVUJMSUNfdCAqcCk7CisKK2V4dGVybiB2b2lk CitncnViX1RzczJfTVVfVFBNMkJfUFVCTElDX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90 IGJ1ZmZlciwKKwkJCQkgICAgIFRQTTJCX1BVQkxJQ190ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dy dWJfVHNzMl9NVV9UUE1TX05WX1BVQkxJQ19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBi dWZmZXIsCisJCQkJICAgICAgIFRQTVNfTlZfUFVCTElDX3QgKnApOworCitleHRlcm4gdm9pZAor Z3J1Yl9Uc3MyX01VX1RQTTJCX05WX1BVQkxJQ19Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJf dCBidWZmZXIsCisJCQkJCVRQTTJCX05WX1BVQkxJQ190ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dy dWJfVHNzMl9NVV9UUE0yQl9OQU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZl ciwKKwkJCQkgICBUUE0yQl9OQU1FX3QgKm4pOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01V X1RQTVNfVEFHR0VEX1BST1BFUlRZX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZl ciwKKwkJCQkJICAgICBUUE1TX1RBR0dFRF9QUk9QRVJUWV90ICpwcm9wZXJ0eSk7CisKK2V4dGVy biB2b2lkCitncnViX1RzczJfTVVfVFBNVF9US19DUkVBVElPTl9Vbm1hcnNoYWwgKGdydWJfdHBt Ml9idWZmZXJfdCBidWZmZXIsCisJCQkJCSBUUE1UX1RLX0NSRUFUSU9OX3QgKnApOworCitleHRl cm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfVEtfSEFTSENIRUNLX1VubWFyc2hhbCAoZ3J1Yl90 cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRQTVRfVEtfSEFTSENIRUNLX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3My X01VX1RQTVRfVEtfVkVSSUZJRURfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUE1UX1RLX1ZFUklG SUVEX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVNfUENSX1NFTEVDVElP Tl9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJCSAgIFRQTVNfUENS X1NFTEVDVElPTl90ICpwY3JTZWxlY3Rpb24pOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01V X1RQTUxfUENSX1NFTEVDVElPTl9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIs CisJCQkJCSAgIFRQTUxfUENSX1NFTEVDVElPTl90ICpwY3JTZWxlY3Rpb24pOworCitleHRlcm4g dm9pZAorZ3J1Yl9Uc3MyX01VX1RQTUxfRElHRVNUX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZl cl90IGJ1ZmZlciwKKwkJCQkgICAgVFBNTF9ESUdFU1RfdCAqZGlnZXN0KTsKKworZXh0ZXJuIHZv aWQKK2dydWJfVHNzMl9NVV9UUE1TX1NJR05BVFVSRV9SU0FfVW5tYXJzaGFsIChncnViX3RwbTJf YnVmZmVyX3QgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRQTVNfU0lHTkFUVVJFX1JTQV90ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9N VV9UUE1TX1NJR05BVFVSRV9FQ0NfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQTVNfU0lHTkFU VVJFX0VDQ190ICpwKTsKKworZXh0ZXJuIHZvaWQKK2dydWJfVHNzMl9NVV9UUE1VX0hBX1VubWFy c2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVFBNSV9BTEdfSEFTSF90IGhhc2hBbGcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRQTVVfSEFfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBN VF9IQV9Vbm1hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRQTVRfSEFfdCAqcCk7CisKK2V4dGVybiB2b2lkCitncnViX1Rz czJfTVVfVFBNVV9TSUdOQVRVUkVfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFBNSV9BTEdfU0lHX1ND SEVNRV90IHNpZ0FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQ TVVfU0lHTkFUVVJFX3QgKnApOworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTVRfU0lH TkFUVVJFX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRQTVRfU0lHTkFUVVJFX3QgKnApOworCisjZW5k aWYgLyogISBHUlVCX1RQTTJfTVVfSEVBREVSICovCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGli L3RzczIvdHNzMl9zdHJ1Y3RzLmggYi9ncnViLWNvcmUvbGliL3RzczIvdHNzMl9zdHJ1Y3RzLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jYTMzZGIzZWMKLS0tIC9kZXYv bnVsbAorKysgYi9ncnViLWNvcmUvbGliL3RzczIvdHNzMl9zdHJ1Y3RzLmgKQEAgLTAsMCArMSw3 OTYgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlcgorICogIENv cHlyaWdodCAoQykgMjAyMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24KKyAqICBDb3B5cmlnaHQgKEMp IDIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogIEdSVUIgaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9u ZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisgKi8KKworI2lmbmRlZiBHUlVCX1RQTTJfSU5URVJOQUxfU1RSVUNUU19IRUFERVIKKyNkZWZp bmUgR1JVQl9UUE0yX0lOVEVSTkFMX1NUUlVDVFNfSEVBREVSIDEKKworI2luY2x1ZGUgPHRzczJf dHlwZXMuaD4KKworLyoKKyAqIFRQTSByZXNwb25zZSBoZWFkZXIKKyAqICAgVGhpcyBzdHJ1Y3Qg aXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIG1pbmltdW0gc2l6ZSBvZiB0aGUgVFBNIDIuMCByZXNw b25zZS4KKyAqICAgVGhlIGZvcm1hdCBvZiB0aGUgcmVzcG9uc2U6CisgKgorICogICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgfCBVSU5UMTYgdGFnICAgICAgICAgICB8CisgKiAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICB8IFVJTlQzMiByZXBzb25zZV9zaXplIHwKKyAq ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgIHwgVUlOVDMyIHJlc3BvbnNlX2NvZGUg fAorICogICArPT09PT09PT09PT09PT09PT09PT09PSsKKyAqICAgfCByZXNwb25zZV9kYXRhICAg ICAgICB8IChvcHRpb25hbCkKKyAqICAgKz09PT09PT09PT09PT09PT09PT09PT0rCisgKi8KK3N0 cnVjdCBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIFRQTV9SRVNQT05TRV9IRUFERVIKK3sK KyAgZ3J1Yl91aW50MTZfdCB0YWc7CisgIGdydWJfdWludDMyX3QgcmVzcG9uc2Vfc2l6ZTsKKyAg VFBNX1JDX3QgcmVzcG9uc2VfY29kZTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1fUkVTUE9OU0Vf SEVBREVSIFRQTV9SRVNQT05TRV9IRUFERVJfdDsKKworLyogVFBNU19UQUdHRURfUFJPUEVSVFkg U3RydWN0dXJlICovCitzdHJ1Y3QgVFBNU19UQUdHRURfUFJPUEVSVFkKK3sKKyAgVFBNX1BUX3Qg cHJvcGVydHk7CisgIGdydWJfdWludDMyX3QgdmFsdWU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBN U19UQUdHRURfUFJPUEVSVFkgVFBNU19UQUdHRURfUFJPUEVSVFlfdDsKKworLyogVFBNTF9UQUdH RURfVFBNX1BST1BFUlRZIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTUxfVEFHR0VEX1RQTV9QUk9Q RVJUWQoreworICBncnViX3VpbnQzMl90IGNvdW50OworICBUUE1TX1RBR0dFRF9QUk9QRVJUWV90 IHRwbVByb3BlcnR5W1RQTV9NQVhfVFBNX1BST1BFUlRJRVNdOworfTsKK3R5cGVkZWYgc3RydWN0 IFRQTUxfVEFHR0VEX1RQTV9QUk9QRVJUWSBUUE1MX1RBR0dFRF9UUE1fUFJPUEVSVFlfdDsKKwor LyogVFBNVV9DQVBBQklMSVRJRVMgU3RydWN0dXJlICovCit1bmlvbiBUUE1VX0NBUEFCSUxJVElF UworeworICBUUE1MX1RBR0dFRF9UUE1fUFJPUEVSVFlfdCB0cG1Qcm9wZXJ0aWVzOworfTsKK3R5 cGVkZWYgdW5pb24gVFBNVV9DQVBBQklMSVRJRVMgVFBNVV9DQVBBQklMSVRJRVNfdDsKKworLyog VFBNU19DQVBBQklMSVRZX0RBVEEgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNU19DQVBBQklMSVRZ X0RBVEEKK3sKKyAgVFBNX0NBUF90IGNhcGFiaWxpdHk7CisgIFRQTVVfQ0FQQUJJTElUSUVTX3Qg ZGF0YTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX0NBUEFCSUxJVFlfREFUQSBUUE1TX0NBUEFC SUxJVFlfREFUQV90OworCisvKiBUUE1TX1BDUl9TRUxFQ1QgU3RydWN0dXJlICovCitzdHJ1Y3Qg VFBNU19QQ1JfU0VMRUNUCit7CisgIGdydWJfdWludDhfdCBzaXplT2ZTZWxlY3Q7CisgIGdydWJf dWludDhfdCBwY3JTZWxlY3RbVFBNX1BDUl9TRUxFQ1RfTUFYXTsKK307Cit0eXBlZGVmIHN0cnVj dCBUUE1TX1BDUl9TRUxFQ1QgVFBNU19QQ1JfU0VMRUNUX3Q7CisKKy8qIFRQTVNfUENSX1NFTEVD VElPTiBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1TX1BDUl9TRUxFQ1RJT04KK3sKKyAgVFBNSV9B TEdfSEFTSF90IGhhc2g7CisgIGdydWJfdWludDhfdCBzaXplT2ZTZWxlY3Q7CisgIGdydWJfdWlu dDhfdCBwY3JTZWxlY3RbVFBNX1BDUl9TRUxFQ1RfTUFYXTsKK307Cit0eXBlZGVmIHN0cnVjdCBU UE1TX1BDUl9TRUxFQ1RJT04gVFBNU19QQ1JfU0VMRUNUSU9OX3Q7CisKK3N0YXRpYyBpbmxpbmUg dm9pZCBUUE1TX1BDUl9TRUxFQ1RJT05fU2VsZWN0UENSKFRQTVNfUENSX1NFTEVDVElPTl90ICpz ZWxmLCBncnViX3VpbnQzMl90IG4pCit7CisgIHNlbGYtPnBjclNlbGVjdFsobiAvIDgpXSB8PSAo MSA8PCAobiAlIDgpKTsKK30KKworLyogVFBNTF9QQ1JfU0VMRUNUSU9OIFN0cnVjdHVyZSAqLwor c3RydWN0IFRQTUxfUENSX1NFTEVDVElPTgoreworICBncnViX3VpbnQzMl90IGNvdW50OworICBU UE1TX1BDUl9TRUxFQ1RJT05fdCBwY3JTZWxlY3Rpb25zW1RQTV9OVU1fUENSX0JBTktTXTsKK307 Cit0eXBlZGVmIHN0cnVjdCBUUE1MX1BDUl9TRUxFQ1RJT04gVFBNTF9QQ1JfU0VMRUNUSU9OX3Q7 CisKKy8qIFRQTVVfSEEgU3RydWN0dXJlICovCit1bmlvbiBUUE1VX0hBCit7CisgIGdydWJfdWlu dDhfdCBzaGExW1RQTV9TSEExX0RJR0VTVF9TSVpFXTsKKyAgZ3J1Yl91aW50OF90IHNoYTI1NltU UE1fU0hBMjU2X0RJR0VTVF9TSVpFXTsKKyAgZ3J1Yl91aW50OF90IHNoYTM4NFtUUE1fU0hBMzg0 X0RJR0VTVF9TSVpFXTsKKyAgZ3J1Yl91aW50OF90IHNoYTUxMltUUE1fU0hBNTEyX0RJR0VTVF9T SVpFXTsKKyAgZ3J1Yl91aW50OF90IHNtM18yNTZbVFBNX1NNM18yNTZfRElHRVNUX1NJWkVdOwor fTsKK3R5cGVkZWYgdW5pb24gVFBNVV9IQSBUUE1VX0hBX3Q7CisKKy8qIFRQTTJCIFN0cnVjdHVy ZSAqLworc3RydWN0IFRQTTJCCit7CisgIGdydWJfdWludDE2X3Qgc2l6ZTsKKyAgZ3J1Yl91aW50 OF90IGJ1ZmZlclsxXTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE0yQiBUUE0yQl90OworCisvKiBU UE0yQl9ESUdFU1QgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNMkJfRElHRVNUCit7CisgIGdydWJf dWludDE2X3Qgc2l6ZTsKKyAgZ3J1Yl91aW50OF90IGJ1ZmZlcltzaXplb2YoVFBNVV9IQV90KV07 Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNMkJfRElHRVNUIFRQTTJCX0RJR0VTVF90OworCisvKiBU UE1MX0RJR0VTVCBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1MX0RJR0VTVAoreworICBncnViX3Vp bnQzMl90IGNvdW50OworICBUUE0yQl9ESUdFU1RfdCBkaWdlc3RzWzhdOworfTsKK3R5cGVkZWYg c3RydWN0IFRQTUxfRElHRVNUIFRQTUxfRElHRVNUX3Q7CisKKy8qIFRQTTJCX05PTkNFIFR5cGUg Ki8KK3R5cGVkZWYgVFBNMkJfRElHRVNUX3QgVFBNMkJfTk9OQ0VfdDsKKworLyogVFBNQV9TRVNT SU9OIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTUFfU0VTU0lPTgoreworICBncnViX3VpbnQ4X3Qg Y29udGludWVTZXNzaW9uOjE7CisgIGdydWJfdWludDhfdCBhdWRpdEV4Y2x1c2l2ZToxOworICBn cnViX3VpbnQ4X3QgYXVkaXRSZXNldDoxOworICBncnViX3VpbnQ4X3QgcmVzZXJ2ZWQ6MjsKKyAg Z3J1Yl91aW50OF90IGRlY3J5cHQ6MTsKKyAgZ3J1Yl91aW50OF90IGVuY3J5cHQ6MTsKKyAgZ3J1 Yl91aW50OF90IGF1ZGl0OjE7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNQV9TRVNTSU9OIFRQTUFf U0VTU0lPTl90OworCisvKiBUUE0yQl9BVVRIIFR5cGUgKi8KK3R5cGVkZWYgVFBNMkJfRElHRVNU X3QgVFBNMkJfQVVUSF90OworCisvKiBUUE1TX0FVVEhfQ09NTUFORCBTdHJ1Y3R1cmUgKi8KK3N0 cnVjdCBUUE1TX0FVVEhfQ09NTUFORAoreworICBUUE1JX1NIX0FVVEhfU0VTU0lPTl90IHNlc3Np b25IYW5kbGU7CisgIFRQTTJCX05PTkNFX3Qgbm9uY2U7CisgIFRQTUFfU0VTU0lPTl90IHNlc3Np b25BdHRyaWJ1dGVzOworICBUUE0yQl9BVVRIX3QgaG1hYzsKK307Cit0eXBlZGVmIHN0cnVjdCBU UE1TX0FVVEhfQ09NTUFORCBUUE1TX0FVVEhfQ09NTUFORF90OworCisvKiBUUE1TX0FVVEhfUkVT UE9OU0UgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNU19BVVRIX1JFU1BPTlNFCit7CisgIFRQTTJC X05PTkNFX3Qgbm9uY2U7CisgIFRQTUFfU0VTU0lPTl90IHNlc3Npb25BdHRyaWJ1dGVzOworICBU UE0yQl9BVVRIX3QgaG1hYzsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX0FVVEhfUkVTUE9OU0Ug VFBNU19BVVRIX1JFU1BPTlNFX3Q7CisKKy8qIFRQTTJCX1NFTlNJVElWRV9EQVRBIFN0cnVjdHVy ZSAqLworc3RydWN0IFRQTTJCX1NFTlNJVElWRV9EQVRBCit7CisgIGdydWJfdWludDE2X3Qgc2l6 ZTsKKyAgZ3J1Yl91aW50OF90IGJ1ZmZlcltUUE1fTUFYX1NZTV9EQVRBXTsKK307Cit0eXBlZGVm IHN0cnVjdCBUUE0yQl9TRU5TSVRJVkVfREFUQSBUUE0yQl9TRU5TSVRJVkVfREFUQV90OworCisv KiBUUE1TX1NFTlNJVElWRV9DUkVBVEUgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNU19TRU5TSVRJ VkVfQ1JFQVRFCit7CisgIFRQTTJCX0FVVEhfdCB1c2VyQXV0aDsKKyAgVFBNMkJfU0VOU0lUSVZF X0RBVEFfdCBkYXRhOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVNfU0VOU0lUSVZFX0NSRUFURSBU UE1TX1NFTlNJVElWRV9DUkVBVEVfdDsKKworLyogVFBNMkJfU0VOU0lUSVZFX0NSRUFURSBTdHJ1 Y3R1cmUgKi8KK3N0cnVjdCBUUE0yQl9TRU5TSVRJVkVfQ1JFQVRFCit7CisgIGdydWJfdWludDE2 X3Qgc2l6ZTsKKyAgVFBNU19TRU5TSVRJVkVfQ1JFQVRFX3Qgc2Vuc2l0aXZlOworfTsKK3R5cGVk ZWYgc3RydWN0IFRQTTJCX1NFTlNJVElWRV9DUkVBVEUgVFBNMkJfU0VOU0lUSVZFX0NSRUFURV90 OworCisvKiBUUE1BX09CSkVDVCBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1BX09CSkVDVAorewor ICBncnViX3VpbnQzMl90IHJlc2VydmVkMToxOworICBncnViX3VpbnQzMl90IGZpeGVkVFBNOjE7 CisgIGdydWJfdWludDMyX3Qgc3RDbGVhcjoxOworICBncnViX3VpbnQzMl90IHJlc2VydmVkMjox OworICBncnViX3VpbnQzMl90IGZpeGVkUGFyZW50OjE7CisgIGdydWJfdWludDMyX3Qgc2Vuc2l0 aXZlRGF0YU9yaWdpbjoxOworICBncnViX3VpbnQzMl90IHVzZXJXaXRoQXV0aDoxOworICBncnVi X3VpbnQzMl90IGFkbWluV2l0aFBvbGljeToxOworICBncnViX3VpbnQzMl90IHJlc2VydmVkMzoy OworICBncnViX3VpbnQzMl90IG5vREE6MTsKKyAgZ3J1Yl91aW50MzJfdCBlbmNyeXB0ZWREdXBs aWNhdGlvbjoxOworICBncnViX3VpbnQzMl90IHJlc2VydmVkNDo0OworICBncnViX3VpbnQzMl90 IHJlc3RyaWN0ZWQ6MTsKKyAgZ3J1Yl91aW50MzJfdCBkZWNyeXB0OjE7CisgIGdydWJfdWludDMy X3Qgc2lnbjoxOworICBncnViX3VpbnQzMl90IHJlc2VydmVkNToxMzsKK307Cit0eXBlZGVmIHN0 cnVjdCBUUE1BX09CSkVDVCBUUE1BX09CSkVDVF90OworCisvKiBUUE1TX1NDSEVNRV9IQVNIIFN0 cnVjdHVyZSAqLworc3RydWN0IFRQTVNfU0NIRU1FX0hBU0gKK3sKKyAgVFBNSV9BTEdfSEFTSF90 IGhhc2hBbGc7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNU19TQ0hFTUVfSEFTSCBUUE1TX1NDSEVN RV9IQVNIX3Q7CisKKy8qIFRQTVNfU0NIRU1FX0hBU0ggVHlwZXMgKi8KK3R5cGVkZWYgVFBNU19T Q0hFTUVfSEFTSF90IFRQTVNfS0VZX1NDSEVNRV9FQ0RIX3Q7Cit0eXBlZGVmIFRQTVNfU0NIRU1F X0hBU0hfdCBUUE1TX0tFWV9TQ0hFTUVfRUNNUVZfdDsKK3R5cGVkZWYgVFBNU19TQ0hFTUVfSEFT SF90IFRQTVNfU0lHX1NDSEVNRV9SU0FTU0FfdDsKK3R5cGVkZWYgVFBNU19TQ0hFTUVfSEFTSF90 IFRQTVNfU0lHX1NDSEVNRV9SU0FQU1NfdDsKK3R5cGVkZWYgVFBNU19TQ0hFTUVfSEFTSF90IFRQ TVNfU0lHX1NDSEVNRV9FQ0RTQV90OwordHlwZWRlZiBUUE1TX1NDSEVNRV9IQVNIX3QgVFBNU19T SUdfU0NIRU1FX0VDREFBX3Q7Cit0eXBlZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX1NJR19T Q0hFTUVfU00yX3Q7Cit0eXBlZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX1NJR19TQ0hFTUVf RUNTQ0hOT1JSX3Q7Cit0eXBlZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX0VOQ19TQ0hFTUVf UlNBRVNfdDsKK3R5cGVkZWYgVFBNU19TQ0hFTUVfSEFTSF90IFRQTVNfRU5DX1NDSEVNRV9PQUVQ X3Q7Cit0eXBlZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX1NDSEVNRV9LREYyX3Q7Cit0eXBl ZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX1NDSEVNRV9NR0YxX3Q7Cit0eXBlZGVmIFRQTVNf U0NIRU1FX0hBU0hfdCBUUE1TX1NDSEVNRV9LREYxX1NQODAwXzU2QV90OwordHlwZWRlZiBUUE1T X1NDSEVNRV9IQVNIX3QgVFBNU19TQ0hFTUVfS0RGMl90OwordHlwZWRlZiBUUE1TX1NDSEVNRV9I QVNIX3QgVFBNU19TQ0hFTUVfS0RGMV9TUDgwMF8xMDhfdDsKKworLyogVFBNU19TQ0hFTUVfSE1B QyBUeXBlICovCit0eXBlZGVmIFRQTVNfU0NIRU1FX0hBU0hfdCBUUE1TX1NDSEVNRV9ITUFDX3Q7 CisKKy8qIFRQTVNfU0NIRU1FX1hPUiBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1TX1NDSEVNRV9Y T1IKK3sKKyAgVFBNSV9BTEdfSEFTSF90IGhhc2hBbGc7CisgIFRQTUlfQUxHX0tERl90IGtkZjsK K307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX1NDSEVNRV9YT1IgVFBNU19TQ0hFTUVfWE9SX3Q7CisK Ky8qIFRQTVVfU0NIRU1FX0tFWUVESEFTSCBVbmlvbiAqLwordW5pb24gVFBNVV9TQ0hFTUVfS0VZ RURIQVNICit7CisgIFRQTVNfU0NIRU1FX0hNQUNfdCBobWFjOworICBUUE1TX1NDSEVNRV9YT1Jf dCBleGNsdXNpdmVPcjsKK307Cit0eXBlZGVmIHVuaW9uIFRQTVVfU0NIRU1FX0tFWUVESEFTSCBU UE1VX1NDSEVNRV9LRVlFREhBU0hfdDsKKworLyogVFBNVF9LRVlFREhBU0hfU0NIRU1FIFN0cnVj dHVyZSAqLworc3RydWN0IFRQTVRfS0VZRURIQVNIX1NDSEVNRQoreworICBUUE1JX0FMR19LRVlF REhBU0hfU0NIRU1FX3Qgc2NoZW1lOworICBUUE1VX1NDSEVNRV9LRVlFREhBU0hfdCBkZXRhaWxz OworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVRfS0VZRURIQVNIX1NDSEVNRSBUUE1UX0tFWUVESEFT SF9TQ0hFTUVfdDsKKworLyogVFBNU19LRVlFREhBU0hfUEFSTVMgU3RydWN0dXJlICovCitzdHJ1 Y3QgVFBNU19LRVlFREhBU0hfUEFSTVMKK3sKKyAgVFBNVF9LRVlFREhBU0hfU0NIRU1FX3Qgc2No ZW1lOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVNfS0VZRURIQVNIX1BBUk1TIFRQTVNfS0VZRURI QVNIX1BBUk1TX3Q7CisKKy8qIFRQTVVfU1lNX0tFWV9CSVRTIFVuaW9uICovCit1bmlvbiBUUE1V X1NZTV9LRVlfQklUUworeworICBUUE1fS0VZX0JJVFNfdCBhZXM7CisgIFRQTV9LRVlfQklUU190 IGV4Y2x1c2l2ZU9yOworICBUUE1fS0VZX0JJVFNfdCBzbTQ7CisgIFRQTV9LRVlfQklUU190IGNh bWVsbGlhOworfTsKK3R5cGVkZWYgdW5pb24gVFBNVV9TWU1fS0VZX0JJVFMgVFBNVV9TWU1fS0VZ X0JJVFNfdDsKKworLyogVFBNVV9TWU1fTU9ERSBVbmlvbiAqLwordW5pb24gVFBNVV9TWU1fTU9E RQoreworICBUUE1JX0FMR19TWU1fTU9ERV90IGFlczsKKyAgVFBNSV9BTEdfU1lNX01PREVfdCBz bTQ7CisgIFRQTUlfQUxHX1NZTV9NT0RFX3QgY2FtZWxsaWE7CisgIFRQTUlfQUxHX1NZTV9NT0RF X3Qgc3ltOworfTsKK3R5cGVkZWYgdW5pb24gVFBNVV9TWU1fTU9ERSBUUE1VX1NZTV9NT0RFX3Q7 CisKKy8qIFRQTVRfU1lNX0RFRl9PQkpFQ1QgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNVF9TWU1f REVGX09CSkVDVAoreworICBUUE1JX0FMR19TWU1fT0JKRUNUX3QgYWxnb3JpdGhtOworICBUUE1V X1NZTV9LRVlfQklUU190IGtleUJpdHM7CisgIFRQTVVfU1lNX01PREVfdCBtb2RlOworfTsKK3R5 cGVkZWYgc3RydWN0IFRQTVRfU1lNX0RFRl9PQkpFQ1QgVFBNVF9TWU1fREVGX09CSkVDVF90Owor CisvKiBUUE1TX1NZTUNJUEhFUl9QQVJNUyBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1TX1NZTUNJ UEhFUl9QQVJNUworeworICBUUE1UX1NZTV9ERUZfT0JKRUNUX3Qgc3ltOworfTsKK3R5cGVkZWYg c3RydWN0IFRQTVNfU1lNQ0lQSEVSX1BBUk1TIFRQTVNfU1lNQ0lQSEVSX1BBUk1TX3Q7CisKKy8q IFRQTVVfQVNZTV9TQ0hFTUUgVW5pb24gKi8KK3VuaW9uIFRQTVVfQVNZTV9TQ0hFTUUKK3sKKyAg VFBNU19LRVlfU0NIRU1FX0VDREhfdCBlY2RoOworICBUUE1TX0tFWV9TQ0hFTUVfRUNNUVZfdCBl Y21xdjsKKyAgVFBNU19TSUdfU0NIRU1FX1JTQVNTQV90IHJzYXNzYTsKKyAgVFBNU19TSUdfU0NI RU1FX1JTQVBTU190IHJzYXBzczsKKyAgVFBNU19TSUdfU0NIRU1FX0VDRFNBX3QgZWNkc2E7Cisg IFRQTVNfU0lHX1NDSEVNRV9FQ0RBQV90IGVjZGFhOworICBUUE1TX1NJR19TQ0hFTUVfU00yX3Qg c20yOworICBUUE1TX1NJR19TQ0hFTUVfRUNTQ0hOT1JSX3QgZWNzY2hub3JyOworICBUUE1TX0VO Q19TQ0hFTUVfUlNBRVNfdCByc2FlczsKKyAgVFBNU19FTkNfU0NIRU1FX09BRVBfdCBvYWVwOwor ICBUUE1TX1NDSEVNRV9IQVNIX3QgYW55U2lnOworICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdbNF07 Cit9OwordHlwZWRlZiB1bmlvbiBUUE1VX0FTWU1fU0NIRU1FIFRQTVVfQVNZTV9TQ0hFTUVfdDsK KworLyogVFBNVF9SU0FfU0NIRU1FIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVRfUlNBX1NDSEVN RQoreworICBUUE1JX0FMR19SU0FfU0NIRU1FX3Qgc2NoZW1lOworICBUUE1VX0FTWU1fU0NIRU1F X3QgZGV0YWlsczsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1UX1JTQV9TQ0hFTUUgVFBNVF9SU0Ff U0NIRU1FX3Q7CisKKy8qIFRQTVNfUlNBX1BBUk1TIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVNf UlNBX1BBUk1TCit7CisgIFRQTVRfU1lNX0RFRl9PQkpFQ1RfdCBzeW1tZXRyaWM7CisgIFRQTVRf UlNBX1NDSEVNRV90IHNjaGVtZTsKKyAgVFBNX0tFWV9CSVRTX3Qga2V5Qml0czsKKyAgZ3J1Yl91 aW50MzJfdCBleHBvbmVudDsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX1JTQV9QQVJNUyBUUE1T X1JTQV9QQVJNU190OworCisvKiBUUE1UX0VDQ19TQ0hFTUUgU3RydWN0dXJlICovCitzdHJ1Y3Qg VFBNVF9FQ0NfU0NIRU1FCit7CisgIFRQTUlfQUxHX0VDQ19TQ0hFTUVfdCBzY2hlbWU7CisgIFRQ TVVfQVNZTV9TQ0hFTUVfdCBkZXRhaWxzOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVRfRUNDX1ND SEVNRSBUUE1UX0VDQ19TQ0hFTUVfdDsKKworLyogVFBNVV9LREZfU0NIRU1FIFVuaW9uICovCit1 bmlvbiBUUE1VX0tERl9TQ0hFTUUKK3sKKyAgVFBNU19TQ0hFTUVfTUdGMV90IG1nZjE7CisgIFRQ TVNfU0NIRU1FX0tERjFfU1A4MDBfNTZBX3Qga2RmMV9zcDgwMF81NmE7CisgIFRQTVNfU0NIRU1F X0tERjJfdCBrZGYyOworICBUUE1TX1NDSEVNRV9LREYxX1NQODAwXzEwOF90IGtkZjFfc3A4MDBf MTA4OworfTsKK3R5cGVkZWYgdW5pb24gVFBNVV9LREZfU0NIRU1FIFRQTVVfS0RGX1NDSEVNRV90 OworCisvKiBUUE1UX0tERl9TQ0hFTUUgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNVF9LREZfU0NI RU1FCit7CisgIFRQTUlfQUxHX0tERl90IHNjaGVtZTsKKyAgVFBNVV9LREZfU0NIRU1FX3QgZGV0 YWlsczsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1UX0tERl9TQ0hFTUUgVFBNVF9LREZfU0NIRU1F X3Q7CisKKy8qIFRQTVNfRUNDX1BBUk1TIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVNfRUNDX1BB Uk1TCit7CisgIFRQTVRfU1lNX0RFRl9PQkpFQ1RfdCBzeW1tZXRyaWM7CisgIFRQTVRfRUNDX1ND SEVNRV90IHNjaGVtZTsKKyAgVFBNSV9FQ0NfQ1VSVkVfdCBjdXJ2ZUlEOworICBUUE1UX0tERl9T Q0hFTUVfdCBrZGY7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNU19FQ0NfUEFSTVMgVFBNU19FQ0Nf UEFSTVNfdDsKKworLyogVFBNVF9BU1lNX1NDSEVNRSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1U X0FTWU1fU0NIRU1FCit7CisgIFRQTUlfQUxHX0FTWU1fU0NIRU1FX3Qgc2NoZW1lOworICBUUE1V X0FTWU1fU0NIRU1FX3QgZGV0YWlsczsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1UX0FTWU1fU0NI RU1FIFRQTVRfQVNZTV9TQ0hFTUVfdDsKKworLyogVFBNU19BU1lNX1BBUk1TIFN0cnVjdHVyZSAq Lworc3RydWN0IFRQTVNfQVNZTV9QQVJNUworeworICBUUE1UX1NZTV9ERUZfT0JKRUNUX3Qgc3lt bWV0cmljOworICBUUE1UX0FTWU1fU0NIRU1FX3Qgc2NoZW1lOworfTsKK3R5cGVkZWYgc3RydWN0 IFRQTVNfQVNZTV9QQVJNUyBUUE1TX0FTWU1fUEFSTVNfdDsKKworLyogVFBNVV9QVUJMSUNfUEFS TVMgVW5pb24gKi8KK3VuaW9uIFRQTVVfUFVCTElDX1BBUk1TCit7CisgIFRQTVNfS0VZRURIQVNI X1BBUk1TX3Qga2V5ZWRIYXNoRGV0YWlsOworICBUUE1TX1NZTUNJUEhFUl9QQVJNU190IHN5bURl dGFpbDsKKyAgVFBNU19SU0FfUEFSTVNfdCByc2FEZXRhaWw7CisgIFRQTVNfRUNDX1BBUk1TX3Qg ZWNjRGV0YWlsOworICBUUE1TX0FTWU1fUEFSTVNfdCBhc3ltRGV0YWlsOworfTsKK3R5cGVkZWYg dW5pb24gVFBNVV9QVUJMSUNfUEFSTVMgVFBNVV9QVUJMSUNfUEFSTVNfdDsKKworLyogVFBNVF9Q VUJMSUNfUEFSTVMgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNVF9QVUJMSUNfUEFSTVMgeworICAg IFRQTUlfQUxHX1BVQkxJQ190IHR5cGU7CisgICAgVFBNVV9QVUJMSUNfUEFSTVNfdCBwYXJhbWV0 ZXJzOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVRfUFVCTElDX1BBUk1TIFRQTVRfUFVCTElDX1BB Uk1TX3Q7CisKKy8qIFRQTTJCX1BVQkxJQ19LRVlfUlNBIFN0cnVjdHVyZSAqLworc3RydWN0IFRQ TTJCX1BVQkxJQ19LRVlfUlNBCit7CisgIGdydWJfdWludDE2X3Qgc2l6ZTsKKyAgZ3J1Yl91aW50 OF90IGJ1ZmZlcltUUE1fTUFYX1JTQV9LRVlfQllURVNdOworfTsKK3R5cGVkZWYgc3RydWN0IFRQ TTJCX1BVQkxJQ19LRVlfUlNBIFRQTTJCX1BVQkxJQ19LRVlfUlNBX3Q7CisKKy8qIFRQTTJCX0VD Q19QQVJBTUVURVIgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNMkJfRUNDX1BBUkFNRVRFUgorewor ICBncnViX3VpbnQxNl90IHNpemU7CisgIGdydWJfdWludDhfdCBidWZmZXJbVFBNX01BWF9FQ0Nf S0VZX0JZVEVTXTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE0yQl9FQ0NfUEFSQU1FVEVSIFRQTTJC X0VDQ19QQVJBTUVURVJfdDsKKworLyogVFBNU19FQ0NfUE9JTlQgU3RydWN0dXJlICovCitzdHJ1 Y3QgVFBNU19FQ0NfUE9JTlQKK3sKKyAgVFBNMkJfRUNDX1BBUkFNRVRFUl90IHg7CisgIFRQTTJC X0VDQ19QQVJBTUVURVJfdCB5OworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVNfRUNDX1BPSU5UIFRQ TVNfRUNDX1BPSU5UX3Q7CisKKy8qIFRQTVVfRU5DUllQVEVEX1NFQ1JFVCBVbmlvbiAqLwordW5p b24gVFBNVV9FTkNSWVBURURfU0VDUkVUCit7CisgIGdydWJfdWludDhfdCBlY2Nbc2l6ZW9mKFRQ TVNfRUNDX1BPSU5UX3QpXTsKKyAgZ3J1Yl91aW50OF90IHJzYVtUUE1fTUFYX1JTQV9LRVlfQllU RVNdOworICBncnViX3VpbnQ4X3Qgc3ltbWV0cmljW3NpemVvZihUUE0yQl9ESUdFU1RfdCldOwor ICBncnViX3VpbnQ4X3Qga2V5ZWRIYXNoW3NpemVvZihUUE0yQl9ESUdFU1RfdCldOworfTsKK3R5 cGVkZWYgdW5pb24gVFBNVV9FTkNSWVBURURfU0VDUkVUIFRQTVVfRU5DUllQVEVEX1NFQ1JFVF90 OworCisvKiBUUE0yQl9FTkNSWVBURURfU0VDUkVUIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTTJC X0VOQ1JZUFRFRF9TRUNSRVQKK3sKKyAgZ3J1Yl91aW50MTZfdCBzaXplOworICBncnViX3VpbnQ4 X3Qgc2VjcmV0W3NpemVvZihUUE1VX0VOQ1JZUFRFRF9TRUNSRVRfdCldOworfTsKK3R5cGVkZWYg c3RydWN0IFRQTTJCX0VOQ1JZUFRFRF9TRUNSRVQgVFBNMkJfRU5DUllQVEVEX1NFQ1JFVF90Owor CisvKiBUUE1VX1BVQkxJQ19JRCBVbmlvbiAqLwordW5pb24gVFBNVV9QVUJMSUNfSUQKK3sKKyAg VFBNMkJfRElHRVNUX3Qga2V5ZWRIYXNoOworICBUUE0yQl9ESUdFU1RfdCBzeW07CisgIFRQTTJC X1BVQkxJQ19LRVlfUlNBX3QgcnNhOworICBUUE1TX0VDQ19QT0lOVF90IGVjYzsKK307Cit0eXBl ZGVmIHVuaW9uIFRQTVVfUFVCTElDX0lEIFRQTVVfUFVCTElDX0lEX3Q7CisKKy8qIFRQTVRfUFVC TElDIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVRfUFVCTElDCit7CisgIFRQTUlfQUxHX1BVQkxJ Q190IHR5cGU7CisgIFRQTUlfQUxHX0hBU0hfdCBuYW1lQWxnOworICBUUE1BX09CSkVDVF90IG9i amVjdEF0dHJpYnV0ZXM7CisgIFRQTTJCX0RJR0VTVF90IGF1dGhQb2xpY3k7CisgIFRQTVVfUFVC TElDX1BBUk1TX3QgcGFyYW1ldGVyczsKKyAgVFBNVV9QVUJMSUNfSURfdCB1bmlxdWU7Cit9Owor dHlwZWRlZiBzdHJ1Y3QgVFBNVF9QVUJMSUMgVFBNVF9QVUJMSUNfdDsKKworLyogVFBNMkJfUFVC TElDIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTTJCX1BVQkxJQworeworICBncnViX3VpbnQxNl90 IHNpemU7CisgIFRQTVRfUFVCTElDX3QgcHVibGljQXJlYTsKK307Cit0eXBlZGVmIHN0cnVjdCBU UE0yQl9QVUJMSUMgVFBNMkJfUFVCTElDX3Q7CisKKy8qIFRQTVRfSEEgU3RydWN0dXJlICovCitz dHJ1Y3QgVFBNVF9IQQoreworICBUUE1JX0FMR19IQVNIX3QgaGFzaEFsZzsKKyAgVFBNVV9IQV90 IGRpZ2VzdDsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1UX0hBIFRQTVRfSEFfdDsKKworLyogVFBN MkJfREFUQSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE0yQl9EQVRBCit7CisgIGdydWJfdWludDE2 X3Qgc2l6ZTsKKyAgZ3J1Yl91aW50OF90IGJ1ZmZlcltzaXplb2YoVFBNVF9IQV90KV07Cit9Owor dHlwZWRlZiBzdHJ1Y3QgVFBNMkJfREFUQSBUUE0yQl9EQVRBX3Q7CisKKy8qIFRQTUFfTE9DQUxJ VFkgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNQV9MT0NBTElUWQoreworICBncnViX3VpbnQ4X3Qg VFBNX0xPQ19aRVJPOjE7CisgIGdydWJfdWludDhfdCBUUE1fTE9DX09ORToxOworICBncnViX3Vp bnQ4X3QgVFBNX0xPQ19UV086MTsKKyAgZ3J1Yl91aW50OF90IFRQTV9MT0NfVEhSRUU6MTsKKyAg Z3J1Yl91aW50OF90IFRQTV9MT0NfRk9VUjoxOworICBncnViX3VpbnQ4X3QgRXh0ZW5kZWQ6MzsK K307Cit0eXBlZGVmIHN0cnVjdCBUUE1BX0xPQ0FMSVRZIFRQTUFfTE9DQUxJVFlfdDsKKworLyog VFBNVV9OQU1FIFVuaW9uICovCit1bmlvbiBUUE1VX05BTUUKK3sKKyAgVFBNVF9IQV90IGRpZ2Vz dDsKKyAgVFBNX0hBTkRMRV90IGhhbmRsZTsKK307Cit0eXBlZGVmIHVuaW9uIFRQTVVfTkFNRSBU UE1VX05BTUVfdDsKKworLyogVFBNMkJfTkFNRSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE0yQl9O QU1FCit7CisgIGdydWJfdWludDE2X3Qgc2l6ZTsKKyAgZ3J1Yl91aW50OF90IG5hbWVbc2l6ZW9m KFRQTVVfTkFNRV90KV07Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNMkJfTkFNRSBUUE0yQl9OQU1F X3Q7CisKKy8qIFRQTVNfQ1JFQVRJT05fREFUQSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE1TX0NS RUFUSU9OX0RBVEEKK3sKKyAgVFBNTF9QQ1JfU0VMRUNUSU9OX3QgcGNyU2VsZWN0OworICBUUE0y Ql9ESUdFU1RfdCBwY3JEaWdlc3Q7CisgIFRQTUFfTE9DQUxJVFlfdCBsb2NhbGl0eTsKKyAgVFBN X0FMR19JRF90IHBhcmVudE5hbWVBbGc7CisgIFRQTTJCX05BTUVfdCBwYXJlbnROYW1lOworICBU UE0yQl9OQU1FX3QgcGFyZW50UXVhbGlmaWVkTmFtZTsKKyAgVFBNMkJfREFUQV90IG91dHNpZGVJ bmZvOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTVNfQ1JFQVRJT05fREFUQSBUUE1TX0NSRUFUSU9O X0RBVEFfdDsKKworLyogVFBNMkJfQ1JFQVRJT05fREFUQSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBU UE0yQl9DUkVBVElPTl9EQVRBCit7CisgIGdydWJfdWludDE2X3Qgc2l6ZTsKKyAgVFBNU19DUkVB VElPTl9EQVRBX3QgY3JlYXRpb25EYXRhOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTTJCX0NSRUFU SU9OX0RBVEEgVFBNMkJfQ1JFQVRJT05fREFUQV90OworCisvKiBUUE1UX1NZTV9ERUYgU3RydWN0 dXJlICovCitzdHJ1Y3QgVFBNVF9TWU1fREVGCit7CisgIFRQTUlfQUxHX1NZTV90IGFsZ29yaXRo bTsKKyAgVFBNVV9TWU1fS0VZX0JJVFNfdCBrZXlCaXRzOworICBUUE1VX1NZTV9NT0RFX3QgbW9k ZTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1UX1NZTV9ERUYgVFBNVF9TWU1fREVGX3Q7CisKKy8q IFRQTTJCX01BWF9CVUZGRVIgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNMkJfTUFYX0JVRkZFUgor eworICBncnViX3VpbnQxNl90IHNpemU7CisgIGdydWJfdWludDhfdCBidWZmZXJbVFBNX01BWF9E SUdFU1RfQlVGRkVSXTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE0yQl9NQVhfQlVGRkVSIFRQTTJC X01BWF9CVUZGRVJfdDsKKworLyogVFBNVF9US19IQVNIQ0hFQ0sgU3RydWN0dXJlICovCitzdHJ1 Y3QgVFBNVF9US19IQVNIQ0hFQ0sKK3sKKyAgVFBNX1NUX3QgdGFnOworICBUUE1JX1JIX0hJRVJB UkNIWV90IGhpZXJhcmNoeTsKKyAgVFBNMkJfRElHRVNUX3QgZGlnZXN0OworfTsKK3R5cGVkZWYg c3RydWN0IFRQTVRfVEtfSEFTSENIRUNLIFRQTVRfVEtfSEFTSENIRUNLX3Q7CisKKy8qIFRQTTJC X1NZTV9LRVkgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNMkJfU1lNX0tFWQoreworICBncnViX3Vp bnQxNl90IHNpemU7CisgIGdydWJfdWludDhfdCBidWZmZXJbVFBNX01BWF9TWU1fS0VZX0JZVEVT XTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE0yQl9TWU1fS0VZIFRQTTJCX1NZTV9LRVlfdDsKKwor LyogVFBNMkJfUFJJVkFURV9LRVlfUlNBIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTTJCX1BSSVZB VEVfS0VZX1JTQQoreworICBncnViX3VpbnQxNl90IHNpemU7CisgIGdydWJfdWludDhfdCBidWZm ZXJbVFBNX01BWF9SU0FfS0VZX0JZVEVTLzJdOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTTJCX1BS SVZBVEVfS0VZX1JTQSBUUE0yQl9QUklWQVRFX0tFWV9SU0FfdDsKKworLyogVFBNMkJfUFJJVkFU RV9WRU5ET1JfU1BFQ0lGSUMgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNMkJfUFJJVkFURV9WRU5E T1JfU1BFQ0lGSUMKK3sKKyAgZ3J1Yl91aW50MTZfdCBzaXplOworICBncnViX3VpbnQ4X3QgYnVm ZmVyW1RQTV9QUklWQVRFX1ZFTkRPUl9TUEVDSUZJQ19CWVRFU107Cit9OwordHlwZWRlZiBzdHJ1 Y3QgVFBNMkJfUFJJVkFURV9WRU5ET1JfU1BFQ0lGSUMgVFBNMkJfUFJJVkFURV9WRU5ET1JfU1BF Q0lGSUNfdDsKKworLyogVFBNMkJfUFJJVkFURV9WRU5ET1JfU1BFQ0lGSUMgVW5pb24gKi8KK3Vu aW9uIFRQTVVfU0VOU0lUSVZFX0NPTVBPU0lURQoreworICBUUE0yQl9QUklWQVRFX0tFWV9SU0Ff dCByc2E7CisgIFRQTTJCX0VDQ19QQVJBTUVURVJfdCBlY2M7CisgIFRQTTJCX1NFTlNJVElWRV9E QVRBX3QgYml0czsKKyAgVFBNMkJfU1lNX0tFWV90IHN5bTsKKyAgVFBNMkJfUFJJVkFURV9WRU5E T1JfU1BFQ0lGSUNfdCBhbnk7Cit9OwordHlwZWRlZiB1bmlvbiBUUE1VX1NFTlNJVElWRV9DT01Q T1NJVEUgVFBNVV9TRU5TSVRJVkVfQ09NUE9TSVRFX3Q7CisKKy8qIFRQTVRfU0VOU0lUSVZFIFN0 cnVjdHVyZSAqLworc3RydWN0IFRQTVRfU0VOU0lUSVZFCit7CisgIFRQTUlfQUxHX1BVQkxJQ190 IHNlbnNpdGl2ZVR5cGU7CisgIFRQTTJCX0FVVEhfdCBhdXRoVmFsdWU7CisgIFRQTTJCX0RJR0VT VF90IHNlZWRWYWx1ZTsKKyAgVFBNVV9TRU5TSVRJVkVfQ09NUE9TSVRFX3Qgc2Vuc2l0aXZlOwor fTsKK3R5cGVkZWYgc3RydWN0IFRQTVRfU0VOU0lUSVZFIFRQTVRfU0VOU0lUSVZFX3Q7CisKKy8q IFRQTTJCX1NFTlNJVElWRSBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE0yQl9TRU5TSVRJVkUKK3sK KyAgZ3J1Yl91aW50MTZfdCBzaXplOworICBUUE1UX1NFTlNJVElWRV90IHNlbnNpdGl2ZUFyZWE7 Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNMkJfU0VOU0lUSVZFIFRQTTJCX1NFTlNJVElWRV90Owor CisvKgorICogX1BSSVZBVEUgU3RydWN0dXJlCisgKgorICogQWx0aG91Z2ggJ19QUklWQVRFJyBp cyB0aGUgbmFtZSBkZWZpbmVkIGluIHRoZSBUUE0yIFNQRUMsIGl0IGlzIHRvbyBnZW5lcmljLAor ICogc28gaGVyZSB3ZSBhZGQgdGhlICdfX1RQTTJCJyBwcmVmaXggdG8gbWFrZSB0aGUgc3RydWN0 IHNwZWNpZmljIGZvciAnVFBNMkJfUFJJVkFURScuCisgKi8KK3N0cnVjdCBfX1RQTTJCX1BSSVZB VEUKK3sKKyAgVFBNMkJfRElHRVNUX3QgaW50ZWdyaXR5T3V0ZXI7CisgIFRQTTJCX0RJR0VTVF90 IGludGVncml0eUlubmVyOworICBUUE0yQl9TRU5TSVRJVkVfdCBzZW5zaXRpdmU7Cit9OwordHlw ZWRlZiBzdHJ1Y3QgX19UUE0yQl9QUklWQVRFIF9fVFBNMkJfUFJJVkFURV90OworCisvKiBUUE0y Ql9QUklWQVRFIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTTJCX1BSSVZBVEUKK3sKKyAgZ3J1Yl91 aW50MTZfdCBzaXplOworICBncnViX3VpbnQ4X3QgYnVmZmVyW3NpemVvZihfX1RQTTJCX1BSSVZB VEVfdCldOworfTsKK3R5cGVkZWYgc3RydWN0IFRQTTJCX1BSSVZBVEUgVFBNMkJfUFJJVkFURV90 OworCisvKiBUUE1MX0RJR0VTVF9WQUxVRVMgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNTF9ESUdF U1RfVkFMVUVTCit7CisgIGdydWJfdWludDMyX3QgY291bnQ7CisgIFRQTVRfSEFfdCBkaWdlc3Rz W1RQTV9OVU1fUENSX0JBTktTXTsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1MX0RJR0VTVF9WQUxV RVMgVFBNTF9ESUdFU1RfVkFMVUVTX3Q7CisKKy8qIFRQTTJCX01BWF9OVl9CVUZGRVIgU3RydWN0 dXJlICovCitzdHJ1Y3QgVFBNMkJfTUFYX05WX0JVRkZFUgoreworICBncnViX3VpbnQxNl90IHNp emU7CisgIGdydWJfdWludDhfdCBidWZmZXJbVFBNX01BWF9OVl9CVUZGRVJfU0laRV07Cit9Owor dHlwZWRlZiBzdHJ1Y3QgVFBNMkJfTUFYX05WX0JVRkZFUiBUUE0yQl9NQVhfTlZfQlVGRkVSX3Q7 CisKKy8qIFRQTVNfTlZfUFVCTElDIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVNfTlZfUFVCTElD Cit7CisgICAgVFBNSV9SSF9OVl9JTkRFWF90IG52SW5kZXg7CisgICAgVFBNSV9BTEdfSEFTSF90 IG5hbWVBbGc7CisgICAgVFBNQV9OVl90IGF0dHJpYnV0ZXM7CisgICAgVFBNMkJfRElHRVNUX3Qg YXV0aFBvbGljeTsKKyAgICBncnViX3VpbnQxNl90IGRhdGFTaXplOworfTsKK3R5cGVkZWYgc3Ry dWN0IFRQTVNfTlZfUFVCTElDIFRQTVNfTlZfUFVCTElDX3Q7CisKKy8qIFRQTTJCX05WX1BVQkxJ QyBTdHJ1Y3R1cmUgKi8KK3N0cnVjdCBUUE0yQl9OVl9QVUJMSUMKK3sKKyAgICBncnViX3VpbnQx Nl90IHNpemU7CisgICAgVFBNU19OVl9QVUJMSUNfdCBudlB1YmxpYzsKK307Cit0eXBlZGVmIHN0 cnVjdCBUUE0yQl9OVl9QVUJMSUMgVFBNMkJfTlZfUFVCTElDX3Q7CisKKy8qIFRQTVRfVEtfQ1JF QVRJT04gU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNVF9US19DUkVBVElPTgoreworICAgIFRQTV9T VF90IHRhZzsKKyAgICBUUE1JX1JIX0hJRVJBUkNIWV90IGhpZXJhcmNoeTsKKyAgICBUUE0yQl9E SUdFU1RfdCBkaWdlc3Q7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNVF9US19DUkVBVElPTiBUUE1U X1RLX0NSRUFUSU9OX3Q7CisKKy8qIFRQTVNfRU1QVFkgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBN U19FTVBUWSB7CisgIGdydWJfdWludDhfdCBlbXB0eVsxXTsgLyogYSBzdHJ1Y3R1cmUgd2l0aCBu byBtZW1iZXIgKi8KK307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX0VNUFRZIFRQTVNfRU1QVFlfdDsK KworLyogVFBNU19TSUdOQVRVUkVfUlNBIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVNfU0lHTkFU VVJFX1JTQSB7CisgIFRQTUlfQUxHX0hBU0hfdCBoYXNoOworICBUUE0yQl9QVUJMSUNfS0VZX1JT QV90IHNpZzsKK307Cit0eXBlZGVmIHN0cnVjdCBUUE1TX1NJR05BVFVSRV9SU0EgVFBNU19TSUdO QVRVUkVfUlNBX3Q7CisKKy8qIERlZmluaXRpb24gb2YgVHlwZXMgZm9yIFJTQSBTaWduYXR1cmUg Ki8KK3R5cGVkZWYgVFBNU19TSUdOQVRVUkVfUlNBX3QgVFBNU19TSUdOQVRVUkVfUlNBU1NBX3Q7 Cit0eXBlZGVmIFRQTVNfU0lHTkFUVVJFX1JTQV90IFRQTVNfU0lHTkFUVVJFX1JTQVBTU190Owor CisvKiBUUE1TX1NJR05BVFVSRV9FQ0MgU3RydWN0dXJlICovCitzdHJ1Y3QgVFBNU19TSUdOQVRV UkVfRUNDIHsKKyAgVFBNSV9BTEdfSEFTSF90IGhhc2g7CisgIFRQTTJCX0VDQ19QQVJBTUVURVJf dCBzaWduYXR1cmVSOworICBUUE0yQl9FQ0NfUEFSQU1FVEVSX3Qgc2lnbmF0dXJlUzsKK307Cit0 eXBlZGVmIHN0cnVjdCBUUE1TX1NJR05BVFVSRV9FQ0MgVFBNU19TSUdOQVRVUkVfRUNDX3Q7CisK Ky8qIERlZmluaXRpb24gb2YgVHlwZXMgZm9yIEVDQyBUUE1TX1NJR05BVFVSRV9FQ0MgKi8KK3R5 cGVkZWYgVFBNU19TSUdOQVRVUkVfRUNDX3QgVFBNU19TSUdOQVRVUkVfRUNEU0FfdDsKK3R5cGVk ZWYgVFBNU19TSUdOQVRVUkVfRUNDX3QgVFBNU19TSUdOQVRVUkVfRUNEQUFfdDsKK3R5cGVkZWYg VFBNU19TSUdOQVRVUkVfRUNDX3QgVFBNU19TSUdOQVRVUkVfU00yX3Q7Cit0eXBlZGVmIFRQTVNf U0lHTkFUVVJFX0VDQ190IFRQTVNfU0lHTkFUVVJFX0VDU0NITk9SUl90OworCisvKiBUUE1VX1NJ R05BVFVSRSBTdHJ1Y3R1cmUgKi8KK3VuaW9uIFRQTVVfU0lHTkFUVVJFIHsKKyAgVFBNU19TSUdO QVRVUkVfUlNBU1NBX3QgcnNhc3NhOworICBUUE1TX1NJR05BVFVSRV9SU0FQU1NfdCByc2Fwc3M7 CisgIFRQTVNfU0lHTkFUVVJFX0VDRFNBX3QgZWNkc2E7CisgIFRQTVNfU0lHTkFUVVJFX0VDREFB X3QgZWNkYWE7CisgIFRQTVNfU0lHTkFUVVJFX1NNMl90IHNtMjsKKyAgVFBNU19TSUdOQVRVUkVf RUNTQ0hOT1JSX3QgZWNzY2hub3JyOworICBUUE1UX0hBX3QgaG1hYzsKKyAgVFBNU19TQ0hFTUVf SEFTSF90IGFueTsKKyAgVFBNU19FTVBUWV90IG51bGw7Cit9OwordHlwZWRlZiB1bmlvbiBUUE1V X1NJR05BVFVSRSBUUE1VX1NJR05BVFVSRV90OworCisvKiBUUE1UX1NJR05BVFVSRSBTdHJ1Y3R1 cmUgKi8KK3N0cnVjdCBUUE1UX1NJR05BVFVSRSB7CisgIFRQTUlfQUxHX1NJR19TQ0hFTUVfdCBz aWdBbGc7CisgIFRQTVVfU0lHTkFUVVJFX3Qgc2lnbmF0dXJlOworfTsKK3R5cGVkZWYgc3RydWN0 IFRQTVRfU0lHTkFUVVJFIFRQTVRfU0lHTkFUVVJFX3Q7CisKK3N0YXRpYyBpbmxpbmUgVFBNSV9B TEdfSEFTSF90CitUUE1UX1NJR05BVFVSRV9nZXRfaGFzaF9hbGcgKFRQTVRfU0lHTkFUVVJFX3Qg KnNpZykKK3sKKyAgc3dpdGNoIChzaWctPnNpZ0FsZykKKyAgICB7CisgICAgY2FzZSBUUE1fQUxH X1JTQVNTQToKKyAgICAgIHJldHVybiBzaWctPnNpZ25hdHVyZS5yc2Fzc2EuaGFzaDsKKyAgICBj YXNlIFRQTV9BTEdfUlNBUFNTOgorICAgICAgcmV0dXJuIHNpZy0+c2lnbmF0dXJlLnJzYXBzcy5o YXNoOworICAgIGNhc2UgVFBNX0FMR19FQ0RTQToKKyAgICAgIHJldHVybiBzaWctPnNpZ25hdHVy ZS5lY2RzYS5oYXNoOworICAgIGNhc2UgVFBNX0FMR19FQ0RBQToKKyAgICAgIHJldHVybiBzaWct PnNpZ25hdHVyZS5lY2RhYS5oYXNoOworICAgIGNhc2UgVFBNX0FMR19TTTI6CisgICAgICByZXR1 cm4gc2lnLT5zaWduYXR1cmUuc20yLmhhc2g7CisgICAgY2FzZSBUUE1fQUxHX0VDU0NITk9SUjoK KyAgICAgIHJldHVybiBzaWctPnNpZ25hdHVyZS5lY3NjaG5vcnIuaGFzaDsKKyAgICBjYXNlIFRQ TV9BTEdfSE1BQzoKKyAgICAgIHJldHVybiBzaWctPnNpZ25hdHVyZS5obWFjLmhhc2hBbGc7Cisg ICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgIH0KKworICByZXR1cm4gVFBNX0FMR19OVUxM OworfQorCisvKiBUUE1UX1RLX1ZFUklGSUVEIFN0cnVjdHVyZSAqLworc3RydWN0IFRQTVRfVEtf VkVSSUZJRUQgeworICBUUE1fU1RfdCB0YWc7CisgIFRQTUlfUkhfSElFUkFSQ0hZX3QgaGllcmFy Y2h5OworICBUUE0yQl9ESUdFU1RfdCBkaWdlc3Q7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVFBNVF9U S19WRVJJRklFRCBUUE1UX1RLX1ZFUklGSUVEX3Q7CisKKyNlbmRpZiAvKiAhIEdSVUJfVFBNMl9J TlRFUk5BTF9TVFJVQ1RTX0hFQURFUiAqLwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi90c3My L3RzczJfdHlwZXMuaCBiL2dydWItY29yZS9saWIvdHNzMi90c3MyX3R5cGVzLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41YjFhNzk0N2QKLS0tIC9kZXYvbnVsbAorKysg Yi9ncnViLWNvcmUvbGliL3RzczIvdHNzMl90eXBlcy5oCkBAIC0wLDAgKzEsNDA0IEBACisvKgor ICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmlnaHQgKEMp IDIwMjIgTWljcm9zb2Z0IENvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDI0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVCIGlzIGZyZWUgc29mdHdhcmU6 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq CisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCBHUlVC LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNp Zm5kZWYgR1JVQl9UUE0yX0lOVEVSTkFMX1RZUEVTX0hFQURFUgorI2RlZmluZSBHUlVCX1RQTTJf SU5URVJOQUxfVFlQRVNfSEVBREVSIDEKKworI2luY2x1ZGUgPGdydWIvdHlwZXMuaD4KKworLyog VFBNMl9SQyBDb25zdGFudHMgKi8KK3R5cGVkZWYgZ3J1Yl91aW50MzJfdCBUUE1fUkNfdDsKKwor I2RlZmluZSBUUE1fUkNfMSAgICAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHgxMDApCisjZGVm aW5lIFRQTV9SQ18yICAgICAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDIwMCkKKyNkZWZpbmUg VFBNX1JDXzMgICAgICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MzAwKQorI2RlZmluZSBUUE1f UkNfNCAgICAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHg0MDApCisjZGVmaW5lIFRQTV9SQ181 ICAgICAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDUwMCkKKyNkZWZpbmUgVFBNX1JDXzYgICAg ICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4NjAwKQorI2RlZmluZSBUUE1fUkNfNyAgICAgICAg ICAgICAgICAgKChUUE1fUkNfdCkgMHg3MDApCisjZGVmaW5lIFRQTV9SQ184ICAgICAgICAgICAg ICAgICAoKFRQTV9SQ190KSAweDgwMCkKKyNkZWZpbmUgVFBNX1JDXzkgICAgICAgICAgICAgICAg ICgoVFBNX1JDX3QpIDB4OTAwKQorI2RlZmluZSBUUE1fUkNfQSAgICAgICAgICAgICAgICAgKChU UE1fUkNfdCkgMHhBMDApCisjZGVmaW5lIFRQTV9SQ19BU1lNTUVUUklDICAgICAgICAoKFRQTV9S Q190KSAweDA4MSkKKyNkZWZpbmUgVFBNX1JDX0FUVFJJQlVURVMgICAgICAgICgoVFBNX1JDX3Qp IDB4MDgyKQorI2RlZmluZSBUUE1fUkNfQVVUSF9DT05URVhUICAgICAgKChUUE1fUkNfdCkgMHgx NDUpCisjZGVmaW5lIFRQTV9SQ19BVVRIX0ZBSUwgICAgICAgICAoKFRQTV9SQ190KSAweDA4RSkK KyNkZWZpbmUgVFBNX1JDX0FVVEhfTUlTU0lORyAgICAgICgoVFBNX1JDX3QpIDB4MTI1KQorI2Rl ZmluZSBUUE1fUkNfQVVUSFNJWkUgICAgICAgICAgKChUUE1fUkNfdCkgMHgxNDQpCisjZGVmaW5l IFRQTV9SQ19BVVRIX1RZUEUgICAgICAgICAoKFRQTV9SQ190KSAweDEyNCkKKyNkZWZpbmUgVFBN X1JDX0FVVEhfVU5BVkFJTEFCTEUgICgoVFBNX1JDX3QpIDB4MTJGKQorI2RlZmluZSBUUE1fUkNf QiAgICAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHhCMDApCisjZGVmaW5lIFRQTV9SQ19CQURf QVVUSCAgICAgICAgICAoKFRQTV9SQ190KSAweDBBMikKKyNkZWZpbmUgVFBNX1JDX0JBRF9DT05U RVhUICAgICAgICgoVFBNX1JDX3QpIDB4MTUwKQorI2RlZmluZSBUUE1fUkNfQkFEX1RBRyAgICAg ICAgICAgKChUUE1fUkNfdCkgMHgwMUUpCisjZGVmaW5lIFRQTV9SQ19CSU5ESU5HICAgICAgICAg ICAoKFRQTV9SQ190KSAweDBBNSkKKyNkZWZpbmUgVFBNX1JDX0MgICAgICAgICAgICAgICAgICgo VFBNX1JDX3QpIDB4QzAwKQorI2RlZmluZSBUUE1fUkNfQ0FOQ0VMRUQgICAgICAgICAgKChUUE1f UkNfdCkgMHg5MDkpCisjZGVmaW5lIFRQTV9SQ19DT01NQU5EX0NPREUgICAgICAoKFRQTV9SQ190 KSAweDE0MykKKyNkZWZpbmUgVFBNX1JDX0NPTU1BTkRfU0laRSAgICAgICgoVFBNX1JDX3QpIDB4 MTQyKQorI2RlZmluZSBUUE1fUkNfQ09OVEVYVF9HQVAgICAgICAgKChUUE1fUkNfdCkgMHg5MDEp CisjZGVmaW5lIFRQTV9SQ19DUEhBU0ggICAgICAgICAgICAoKFRQTV9SQ190KSAweDE1MSkKKyNk ZWZpbmUgVFBNX1JDX0NVUlZFICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MEE2KQorI2RlZmlu ZSBUUE1fUkNfRCAgICAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHhEMDApCisjZGVmaW5lIFRQ TV9SQ19ESVNBQkxFRCAgICAgICAgICAoKFRQTV9SQ190KSAweDEyMCkKKyNkZWZpbmUgVFBNX1JD X0UgICAgICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4RTAwKQorI2RlZmluZSBUUE1fUkNfRUND X1BPSU5UICAgICAgICAgKChUUE1fUkNfdCkgMHgwQTcpCisjZGVmaW5lIFRQTV9SQ19FWENMVVNJ VkUgICAgICAgICAoKFRQTV9SQ190KSAweDEyMSkKKyNkZWZpbmUgVFBNX1JDX0VYUElSRUQgICAg ICAgICAgICgoVFBNX1JDX3QpIDB4MEEzKQorI2RlZmluZSBUUE1fUkNfRiAgICAgICAgICAgICAg ICAgKChUUE1fUkNfdCkgMHhGMDApCisjZGVmaW5lIFRQTV9SQ19GQUlMVVJFICAgICAgICAgICAo KFRQTV9SQ190KSAweDEwMSkKKyNkZWZpbmUgVFBNX1JDX0ggICAgICAgICAgICAgICAgICgoVFBN X1JDX3QpIDB4MDAwKQorI2RlZmluZSBUUE1fUkNfSEFORExFICAgICAgICAgICAgKChUUE1fUkNf dCkgMHgwOEIpCisjZGVmaW5lIFRQTV9SQ19IQVNIICAgICAgICAgICAgICAoKFRQTV9SQ190KSAw eDA4MykKKyNkZWZpbmUgVFBNX1JDX0hJRVJBUkNIWSAgICAgICAgICgoVFBNX1JDX3QpIDB4MDg1 KQorI2RlZmluZSBUUE1fUkNfSE1BQyAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHgxMTkpCisj ZGVmaW5lIFRQTV9SQ19JTklUSUFMSVpFICAgICAgICAoKFRQTV9SQ190KSAweDEwMCkKKyNkZWZp bmUgVFBNX1JDX0lOU1VGRklDSUVOVCAgICAgICgoVFBNX1JDX3QpIDB4MDlBKQorI2RlZmluZSBU UE1fUkNfSU5URUdSSVRZICAgICAgICAgKChUUE1fUkNfdCkgMHgwOUYpCisjZGVmaW5lIFRQTV9S Q19LREYgICAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDA4QykKKyNkZWZpbmUgVFBNX1JDX0tF WSAgICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MDlDKQorI2RlZmluZSBUUE1fUkNfS0VZX1NJ WkUgICAgICAgICAgKChUUE1fUkNfdCkgMHgwODcpCisjZGVmaW5lIFRQTV9SQ19MT0NBTElUWSAg ICAgICAgICAoKFRQTV9SQ190KSAweDkwNykKKyNkZWZpbmUgVFBNX1JDX0xPQ0tPVVQgICAgICAg ICAgICgoVFBNX1JDX3QpIDB4OTIxKQorI2RlZmluZSBUUE1fUkNfTUVNT1JZICAgICAgICAgICAg KChUUE1fUkNfdCkgMHg5MDQpCisjZGVmaW5lIFRQTV9SQ19NR0YgICAgICAgICAgICAgICAoKFRQ TV9SQ190KSAweDA4OCkKKyNkZWZpbmUgVFBNX1JDX01PREUgICAgICAgICAgICAgICgoVFBNX1JD X3QpIDB4MDg5KQorI2RlZmluZSBUUE1fUkNfTkVFRFNfVEVTVCAgICAgICAgKChUUE1fUkNfdCkg MHgxNTMpCisjZGVmaW5lIFRQTV9SQ19OX01BU0sgICAgICAgICAgICAoKFRQTV9SQ190KSAweEYw MCkKKyNkZWZpbmUgVFBNX1JDX05PTkNFICAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MDhGKQor I2RlZmluZSBUUE1fUkNfTk9fUkVTVUxUICAgICAgICAgKChUUE1fUkNfdCkgMHgxNTQpCisjZGVm aW5lIFRQTV9SQ19OT1RfVVNFRCAgICAgICAgICAoKFRQTV9SQ190KSAweDk3RikKKyNkZWZpbmUg VFBNX1JDX05WX0FVVEhPUklaQVRJT04gICgoVFBNX1JDX3QpIDB4MTQ5KQorI2RlZmluZSBUUE1f UkNfTlZfREVGSU5FRCAgICAgICAgKChUUE1fUkNfdCkgMHgxNEMpCisjZGVmaW5lIFRQTV9SQ19O Vl9MT0NLRUQgICAgICAgICAoKFRQTV9SQ190KSAweDE0OCkKKyNkZWZpbmUgVFBNX1JDX05WX1JB TkdFICAgICAgICAgICgoVFBNX1JDX3QpIDB4MTQ2KQorI2RlZmluZSBUUE1fUkNfTlZfUkFURSAg ICAgICAgICAgKChUUE1fUkNfdCkgMHg5MjApCisjZGVmaW5lIFRQTV9SQ19OVl9TSVpFICAgICAg ICAgICAoKFRQTV9SQ190KSAweDE0NykKKyNkZWZpbmUgVFBNX1JDX05WX1NQQUNFICAgICAgICAg ICgoVFBNX1JDX3QpIDB4MTRCKQorI2RlZmluZSBUUE1fUkNfTlZfVU5BVkFJTEFCTEUgICAgKChU UE1fUkNfdCkgMHg5MjMpCisjZGVmaW5lIFRQTV9SQ19OVl9VTklOSVRJQUxJWkVEICAoKFRQTV9S Q190KSAweDE0QSkKKyNkZWZpbmUgVFBNX1JDX09CSkVDVF9IQU5ETEVTICAgICgoVFBNX1JDX3Qp IDB4OTA2KQorI2RlZmluZSBUUE1fUkNfT0JKRUNUX01FTU9SWSAgICAgKChUUE1fUkNfdCkgMHg5 MDIpCisjZGVmaW5lIFRQTV9SQ19QICAgICAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDA0MCkK KyNkZWZpbmUgVFBNX1JDX1BBUkVOVCAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MTUyKQorI2Rl ZmluZSBUUE1fUkNfUENSICAgICAgICAgICAgICAgKChUUE1fUkNfdCkgMHgxMjcpCisjZGVmaW5l IFRQTV9SQ19QQ1JfQ0hBTkdFRCAgICAgICAoKFRQTV9SQ190KSAweDEyOCkKKyNkZWZpbmUgVFBN X1JDX1BPTElDWSAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MTI2KQorI2RlZmluZSBUUE1fUkNf UE9MSUNZX0NDICAgICAgICAgKChUUE1fUkNfdCkgMHgwQTQpCisjZGVmaW5lIFRQTV9SQ19QT0xJ Q1lfRkFJTCAgICAgICAoKFRQTV9SQ190KSAweDA5RCkKKyNkZWZpbmUgVFBNX1JDX1BQICAgICAg ICAgICAgICAgICgoVFBNX1JDX3QpIDB4MDkwKQorI2RlZmluZSBUUE1fUkNfUFJJVkFURSAgICAg ICAgICAgKChUUE1fUkNfdCkgMHgxMEIpCisjZGVmaW5lIFRQTV9SQ19SQU5HRSAgICAgICAgICAg ICAoKFRQTV9SQ190KSAweDA4RCkKKyNkZWZpbmUgVFBNX1JDX1JFQk9PVCAgICAgICAgICAgICgo VFBNX1JDX3QpIDB4MTMwKQorI2RlZmluZSBUUE1fUkNfUkVGRVJFTkNFX0gwICAgICAgKChUUE1f UkNfdCkgMHg5MTApCisjZGVmaW5lIFRQTV9SQ19SRUZFUkVOQ0VfSDEgICAgICAoKFRQTV9SQ190 KSAweDkxMSkKKyNkZWZpbmUgVFBNX1JDX1JFRkVSRU5DRV9IMiAgICAgICgoVFBNX1JDX3QpIDB4 OTEyKQorI2RlZmluZSBUUE1fUkNfUkVGRVJFTkNFX0gzICAgICAgKChUUE1fUkNfdCkgMHg5MTMp CisjZGVmaW5lIFRQTV9SQ19SRUZFUkVOQ0VfSDQgICAgICAoKFRQTV9SQ190KSAweDkxNCkKKyNk ZWZpbmUgVFBNX1JDX1JFRkVSRU5DRV9INSAgICAgICgoVFBNX1JDX3QpIDB4OTE1KQorI2RlZmlu ZSBUUE1fUkNfUkVGRVJFTkNFX0g2ICAgICAgKChUUE1fUkNfdCkgMHg5MTYpCisjZGVmaW5lIFRQ TV9SQ19SRUZFUkVOQ0VfUzAgICAgICAoKFRQTV9SQ190KSAweDkxOCkKKyNkZWZpbmUgVFBNX1JD X1JFRkVSRU5DRV9TMSAgICAgICgoVFBNX1JDX3QpIDB4OTE5KQorI2RlZmluZSBUUE1fUkNfUkVG RVJFTkNFX1MyICAgICAgKChUUE1fUkNfdCkgMHg5MUEpCisjZGVmaW5lIFRQTV9SQ19SRUZFUkVO Q0VfUzMgICAgICAoKFRQTV9SQ190KSAweDkxQikKKyNkZWZpbmUgVFBNX1JDX1JFRkVSRU5DRV9T NCAgICAgICgoVFBNX1JDX3QpIDB4OTFDKQorI2RlZmluZSBUUE1fUkNfUkVGRVJFTkNFX1M1ICAg ICAgKChUUE1fUkNfdCkgMHg5MUQpCisjZGVmaW5lIFRQTV9SQ19SRUZFUkVOQ0VfUzYgICAgICAo KFRQTV9SQ190KSAweDkxRSkKKyNkZWZpbmUgVFBNX1JDX1JFU0VSVkVEX0JJVFMgICAgICgoVFBN X1JDX3QpIDB4MEExKQorI2RlZmluZSBUUE1fUkNfUkVUUlkgICAgICAgICAgICAgKChUUE1fUkNf dCkgMHg5MjIpCisjZGVmaW5lIFRQTV9SQ19TICAgICAgICAgICAgICAgICAoKFRQTV9SQ190KSAw eDgwMCkKKyNkZWZpbmUgVFBNX1JDX1NDSEVNRSAgICAgICAgICAgICgoVFBNX1JDX3QpIDB4MDky KQorI2RlZmluZSBUUE1fUkNfU0VMRUNUT1IgICAgICAgICAgKChUUE1fUkNfdCkgMHgwOTgpCisj ZGVmaW5lIFRQTV9SQ19TRU5TSVRJVkUgICAgICAgICAoKFRQTV9SQ190KSAweDE1NSkKKyNkZWZp bmUgVFBNX1JDX1NFUVVFTkNFICAgICAgICAgICgoVFBNX1JDX3QpIDB4MTAzKQorI2RlZmluZSBU UE1fUkNfU0VTU0lPTl9IQU5ETEVTICAgKChUUE1fUkNfdCkgMHg5MDUpCisjZGVmaW5lIFRQTV9S Q19TRVNTSU9OX01FTU9SWSAgICAoKFRQTV9SQ190KSAweDkwMykKKyNkZWZpbmUgVFBNX1JDX1NJ R05BVFVSRSAgICAgICAgICgoVFBNX1JDX3QpIDB4MDlCKQorI2RlZmluZSBUUE1fUkNfU0laRSAg ICAgICAgICAgICAgKChUUE1fUkNfdCkgMHgwOTUpCisjZGVmaW5lIFRQTV9SQ19TVUNDRVNTICAg ICAgICAgICAoKFRQTV9SQ190KSAweDAwMCkKKyNkZWZpbmUgVFBNX1JDX1NZTU1FVFJJQyAgICAg ICAgICgoVFBNX1JDX3QpIDB4MDk2KQorI2RlZmluZSBUUE1fUkNfVEFHICAgICAgICAgICAgICAg KChUUE1fUkNfdCkgMHgwOTcpCisjZGVmaW5lIFRQTV9SQ19URVNUSU5HICAgICAgICAgICAoKFRQ TV9SQ190KSAweDkwQSkKKyNkZWZpbmUgVFBNX1JDX1RJQ0tFVCAgICAgICAgICAgICgoVFBNX1JD X3QpIDB4MEEwKQorI2RlZmluZSBUUE1fUkNfVE9PX01BTllfQ09OVEVYVFMgKChUUE1fUkNfdCkg MHgxMkUpCisjZGVmaW5lIFRQTV9SQ19UWVBFICAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDA4 QSkKKyNkZWZpbmUgVFBNX1JDX1VOQkFMQU5DRUQgICAgICAgICgoVFBNX1JDX3QpIDB4MTMxKQor I2RlZmluZSBUUE1fUkNfVVBHUkFERSAgICAgICAgICAgKChUUE1fUkNfdCkgMHgxMkQpCisjZGVm aW5lIFRQTV9SQ19WQUxVRSAgICAgICAgICAgICAoKFRQTV9SQ190KSAweDA4NCkKKyNkZWZpbmUg VFBNX1JDX1lJRUxERUQgICAgICAgICAgICgoVFBNX1JDX3QpIDB4OTA4KQorCisvKiBUUE1BX05W X3QgQ29uc3RhbnRzICovCit0eXBlZGVmIGdydWJfdWludDMyX3QgVFBNQV9OVl90OworCisjZGVm aW5lIFRQTUFfTlZfUFBXUklURSAgICAgICAgKChUUE1BX05WX3QpIDB4MDAwMDAwMDEpCisjZGVm aW5lIFRQTUFfTlZfT1dORVJXUklURSAgICAgKChUUE1BX05WX3QpIDB4MDAwMDAwMDIpCisjZGVm aW5lIFRQTUFfTlZfQVVUSFdSSVRFICAgICAgKChUUE1BX05WX3QpIDB4MDAwMDAwMDQpCisjZGVm aW5lIFRQTUFfTlZfUE9MSUNZV1JJVEUgICAgKChUUE1BX05WX3QpIDB4MDAwMDAwMDgpCisjZGVm aW5lIFRQTUFfTlZfVFBNMl9OVF9NQVNLICAgKChUUE1BX05WX3QpIDB4MDAwMDAwRjApCisjZGVm aW5lIFRQTUFfTlZfVFBNMl9OVF9TSElGVCAgKDQpCisjZGVmaW5lIFRQTUFfTlZfUkVTRVJWRUQx X01BU0sgKChUUE1BX05WX3QpIDB4MDAwMDAzMDApCisjZGVmaW5lIFRQTUFfTlZfUE9MSUNZX0RF TEVURSAgKChUUE1BX05WX3QpIDB4MDAwMDA0MDApCisjZGVmaW5lIFRQTUFfTlZfV1JJVEVMT0NL RUQgICAgKChUUE1BX05WX3QpIDB4MDAwMDA4MDApCisjZGVmaW5lIFRQTUFfTlZfV1JJVEVBTEwg ICAgICAgKChUUE1BX05WX3QpIDB4MDAwMDEwMDApCisjZGVmaW5lIFRQTUFfTlZfV1JJVEVERUZJ TkUgICAgKChUUE1BX05WX3QpIDB4MDAwMDIwMDApCisjZGVmaW5lIFRQTUFfTlZfV1JJVEVfU1RD TEVBUiAgKChUUE1BX05WX3QpIDB4MDAwMDQwMDApCisjZGVmaW5lIFRQTUFfTlZfR0xPQkFMTE9D SyAgICAgKChUUE1BX05WX3QpIDB4MDAwMDgwMDApCisjZGVmaW5lIFRQTUFfTlZfUFBSRUFEICAg ICAgICAgKChUUE1BX05WX3QpIDB4MDAwMTAwMDApCisjZGVmaW5lIFRQTUFfTlZfT1dORVJSRUFE ICAgICAgKChUUE1BX05WX3QpIDB4MDAwMjAwMDApCisjZGVmaW5lIFRQTUFfTlZfQVVUSFJFQUQg ICAgICAgKChUUE1BX05WX3QpIDB4MDAwNDAwMDApCisjZGVmaW5lIFRQTUFfTlZfUE9MSUNZUkVB RCAgICAgKChUUE1BX05WX3QpIDB4MDAwODAwMDApCisjZGVmaW5lIFRQTUFfTlZfUkVTRVJWRUQy X01BU0sgKChUUE1BX05WX3QpIDB4MDFGMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfTk9fREEgICAg ICAgICAgKChUUE1BX05WX3QpIDB4MDIwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfT1JERVJMWSAg ICAgICAgKChUUE1BX05WX3QpIDB4MDQwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfQ0xFQVJfU1RD TEVBUiAgKChUUE1BX05WX3QpIDB4MDgwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfUkVBRExPQ0tF RCAgICAgKChUUE1BX05WX3QpIDB4MTAwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfV1JJVFRFTiAg ICAgICAgKChUUE1BX05WX3QpIDB4MjAwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfUExBVEZPUk1D UkVBVEUgKChUUE1BX05WX3QpIDB4NDAwMDAwMDApCisjZGVmaW5lIFRQTUFfTlZfUkVBRF9TVENM RUFSICAgKChUUE1BX05WX3QpIDB4ODAwMDAwMDApCisKKy8qIFRQTV9BTEdfSURfdCBDb25zdGFu dHMgKi8KK3R5cGVkZWYgZ3J1Yl91aW50MTZfdCBUUE1fQUxHX0lEX3Q7CisKKyNkZWZpbmUgVFBN X0FMR19FUlJPUiAgICAgICAgICAoKFRQTV9BTEdfSURfdCkgMHgwMDAwKQorI2RlZmluZSBUUE1f QUxHX0FFUyAgICAgICAgICAgICgoVFBNX0FMR19JRF90KSAweDAwMDYpCisjZGVmaW5lIFRQTV9B TEdfQ0FNRUxMSUEgICAgICAgKChUUE1fQUxHX0lEX3QpIDB4MDAyNikKKyNkZWZpbmUgVFBNX0FM R19DQkMgICAgICAgICAgICAoKFRQTV9BTEdfSURfdCkgMHgwMDQyKQorI2RlZmluZSBUUE1fQUxH X0NGQiAgICAgICAgICAgICgoVFBNX0FMR19JRF90KSAweDAwNDMpCisjZGVmaW5lIFRQTV9BTEdf RUNCICAgICAgICAgICAgKChUUE1fQUxHX0lEX3QpIDB4MDA0NCkKKyNkZWZpbmUgVFBNX0FMR19F Q0MgICAgICAgICAgICAoKFRQTV9BTEdfSURfdCkgMHgwMDIzKQorI2RlZmluZSBUUE1fQUxHX0VD REFBICAgICAgICAgICgoVFBNX0FMR19JRF90KSAweDAwMUEpCisjZGVmaW5lIFRQTV9BTEdfRUNE U0EgICAgICAgICAgKChUUE1fQUxHX0lEX3QpIDB4MDAxOCkKKyNkZWZpbmUgVFBNX0FMR19FQ1ND SE5PUlIgICAgICAoKFRQTV9BTEdfSURfdCkgMHgwMDFDKQorI2RlZmluZSBUUE1fQUxHX0hNQUMg ICAgICAgICAgICgoVFBNX0FMR19JRF90KSAweDAwMDUpCisjZGVmaW5lIFRQTV9BTEdfS0RGMV9T UDgwMF8xMDggKChUUE1fQUxHX0lEX3QpIDB4MDAyMikKKyNkZWZpbmUgVFBNX0FMR19LREYxX1NQ ODAwXzU2QSAoKFRQTV9BTEdfSURfdCkgMHgwMDIwKQorI2RlZmluZSBUUE1fQUxHX0tERjIgICAg ICAgICAgICgoVFBNX0FMR19JRF90KSAweDAwMjEpCisjZGVmaW5lIFRQTV9BTEdfS0VZRURIQVNI ICAgICAgKChUUE1fQUxHX0lEX3QpIDB4MDAwOCkKKyNkZWZpbmUgVFBNX0FMR19NR0YxICAgICAg ICAgICAoKFRQTV9BTEdfSURfdCkgMHgwMDA3KQorI2RlZmluZSBUUE1fQUxHX05VTEwgICAgICAg ICAgICgoVFBNX0FMR19JRF90KSAweDAwMTApCisjZGVmaW5lIFRQTV9BTEdfUlNBICAgICAgICAg ICAgKChUUE1fQUxHX0lEX3QpIDB4MDAwMSkKKyNkZWZpbmUgVFBNX0FMR19SU0FTU0EgICAgICAg ICAoKFRQTV9BTEdfSURfdCkgMHgwMDE0KQorI2RlZmluZSBUUE1fQUxHX1JTQVBTUyAgICAgICAg ICgoVFBNX0FMR19JRF90KSAweDAwMTYpCisjZGVmaW5lIFRQTV9BTEdfU0hBMSAgICAgICAgICAg KChUUE1fQUxHX0lEX3QpIDB4MDAwNCkKKyNkZWZpbmUgVFBNX0FMR19TSEEyNTYgICAgICAgICAo KFRQTV9BTEdfSURfdCkgMHgwMDBCKQorI2RlZmluZSBUUE1fQUxHX1NIQTM4NCAgICAgICAgICgo VFBNX0FMR19JRF90KSAweDAwMEMpCisjZGVmaW5lIFRQTV9BTEdfU0hBNTEyICAgICAgICAgKChU UE1fQUxHX0lEX3QpIDB4MDAwRCkKKyNkZWZpbmUgVFBNX0FMR19TTTIgICAgICAgICAgICAoKFRQ TV9BTEdfSURfdCkgMHgwMDFCKQorI2RlZmluZSBUUE1fQUxHX1NNM18yNTYgICAgICAgICgoVFBN X0FMR19JRF90KSAweDAwMTIpCisjZGVmaW5lIFRQTV9BTEdfU000ICAgICAgICAgICAgKChUUE1f QUxHX0lEX3QpIDB4MDAxMykKKyNkZWZpbmUgVFBNX0FMR19TWU1DSVBIRVIgICAgICAoKFRQTV9B TEdfSURfdCkgMHgwMDI1KQorI2RlZmluZSBUUE1fQUxHX1hPUiAgICAgICAgICAgICgoVFBNX0FM R19JRF90KSAweDAwMEEpCisKKy8qIFRQTV9DQVBfdCBDb25zdGFudHMgKi8KK3R5cGVkZWYgZ3J1 Yl91aW50MzJfdCBUUE1fQ0FQX3Q7CisKKyNkZWZpbmUgVFBNX0NBUF9GSVJTVCAgICAgICAgICAg KChUUE1fQ0FQX3QpIDB4MDAwMDAwMDApCisjZGVmaW5lIFRQTV9DQVBfQUxHUyAgICAgICAgICAg ICgoVFBNX0NBUF90KSAweDAwMDAwMDAwKQorI2RlZmluZSBUUE1fQ0FQX0hBTkRMRVMgICAgICAg ICAoKFRQTV9DQVBfdCkgMHgwMDAwMDAwMSkKKyNkZWZpbmUgVFBNX0NBUF9DT01NQU5EUyAgICAg ICAgKChUUE1fQ0FQX3QpIDB4MDAwMDAwMDIpCisjZGVmaW5lIFRQTV9DQVBfUFBfQ09NTUFORFMg ICAgICgoVFBNX0NBUF90KSAweDAwMDAwMDAzKQorI2RlZmluZSBUUE1fQ0FQX0FVRElUX0NPTU1B TkRTICAoKFRQTV9DQVBfdCkgMHgwMDAwMDAwNCkKKyNkZWZpbmUgVFBNX0NBUF9QQ1JTICAgICAg ICAgICAgKChUUE1fQ0FQX3QpIDB4MDAwMDAwMDUpCisjZGVmaW5lIFRQTV9DQVBfVFBNX1BST1BF UlRJRVMgICgoVFBNX0NBUF90KSAweDAwMDAwMDA2KQorI2RlZmluZSBUUE1fQ0FQX1BDUl9QUk9Q RVJUSUVTICAoKFRQTV9DQVBfdCkgMHgwMDAwMDAwNykKKyNkZWZpbmUgVFBNX0NBUF9FQ0NfQ1VS VkVTICAgICAgKChUUE1fQ0FQX3QpIDB4MDAwMDAwMDgpCisjZGVmaW5lIFRQTV9DQVBfTEFTVCAg ICAgICAgICAgICgoVFBNX0NBUF90KSAweDAwMDAwMDA4KQorI2RlZmluZSBUUE1fQ0FQX1ZFTkRP Ul9QUk9QRVJUWSAoKFRQTV9DQVBfdCkgMHgwMDAwMDEwMCkKKworLyogVFBNX1BUX3QgQ29uc3Rh bnRzICovCit0eXBlZGVmIGdydWJfdWludDMyX3QgVFBNX1BUX3Q7CisKKyNkZWZpbmUgVFBNX1BU X05PTkUgICAgICAgICAgICAgKChUUE1fUFRfdCkgMHgwMDAwMDAwMCkKKyNkZWZpbmUgUFRfR1JP VVAgICAgICAgICAgICAgICAgKChUUE1fUFRfdCkgMHgwMDAwMDEwMCkKKyNkZWZpbmUgUFRfRklY RUQgICAgICAgICAgICAgICAgKChUUE1fUFRfdCkgKFBUX0dST1VQICogMSkpCisjZGVmaW5lIFRQ TV9QVF9GQU1JTFlfSU5ESUNBVE9SICgoVFBNX1BUX3QpIChQVF9GSVhFRCArIDApKQorI2RlZmlu ZSBUUE1fUFRfTEVWRUwgICAgICAgICAgICAoKFRQTV9QVF90KSAoUFRfRklYRUQgKyAxKSkKKyNk ZWZpbmUgVFBNX1BUX1JFVklTSU9OICAgICAgICAgKChUUE1fUFRfdCkgKFBUX0ZJWEVEICsgMikp CisjZGVmaW5lIFRQTV9QVF9EQVlfT0ZfWUVBUiAgICAgICgoVFBNX1BUX3QpIChQVF9GSVhFRCAr IDMpKQorI2RlZmluZSBUUE1fUFRfWUVBUiAgICAgICAgICAgICAoKFRQTV9QVF90KSAoUFRfRklY RUQgKyA0KSkKKyNkZWZpbmUgVFBNX1BUX1BDUl9DT1VOVCAgICAgICAgKChUUE1fUFRfdCkgKFBU X0ZJWEVEICsgMTgpKQorCisvKiBUUE1fU0VfdCBDb25zdGFudHMgKi8KK3R5cGVkZWYgZ3J1Yl91 aW50OF90IFRQTV9TRV90OworCisjZGVmaW5lIFRQTV9TRV9ITUFDICAgKChUUE1fU0VfdCkgMHgw MCkKKyNkZWZpbmUgVFBNX1NFX1BPTElDWSAoKFRQTV9TRV90KSAweDAxKQorI2RlZmluZSBUUE1f U0VfVFJJQUwgICgoVFBNX1NFX3QpIDB4MDMpCisKKy8qIFRQTUlfWUVTX05PX3QgQ29uc3RhbnRz ICovCit0eXBlZGVmIGdydWJfdWludDhfdCBUUE1JX1lFU19OT190OworCisjZGVmaW5lIFRQTV9O TyAgKChUUE1JX1lFU19OT190KTApCisjZGVmaW5lIFRQTV9ZRVMgKChUUE1JX1lFU19OT190KTEp CisKKy8qIFRQTV9TVF90IENvbnN0YW50cyAqLwordHlwZWRlZiBncnViX3VpbnQxNl90IFRQTV9T VF90OwordHlwZWRlZiBUUE1fU1RfdCBUUE1JX1NUX0NPTU1BTkRfVEFHX3Q7CisKKyNkZWZpbmUg VFBNX1NUX05PX1NFU1NJT05TICgoVFBNSV9TVF9DT01NQU5EX1RBR190KSAweDgwMDEpCisjZGVm aW5lIFRQTV9TVF9TRVNTSU9OUyAgICAoKFRQTUlfU1RfQ09NTUFORF9UQUdfdCkgMHg4MDAyKQor CisvKiBUUE1fSEFORExFX3QgVHlwZXMgKi8KK3R5cGVkZWYgZ3J1Yl91aW50MzJfdCBUUE1fSEFO RExFX3Q7CisKK3R5cGVkZWYgVFBNX0hBTkRMRV90IFRQTUlfUkhfSElFUkFSQ0hZX3Q7Cit0eXBl ZGVmIFRQTV9IQU5ETEVfdCBUUE1JX1JIX0xPQ0tPVVRfdDsKK3R5cGVkZWYgVFBNX0hBTkRMRV90 IFRQTUlfU0hfQVVUSF9TRVNTSU9OX3Q7Cit0eXBlZGVmIFRQTV9IQU5ETEVfdCBUUE1JX0RIX0NP TlRFWFRfdDsKK3R5cGVkZWYgVFBNX0hBTkRMRV90IFRQTUlfREhfT0JKRUNUX3Q7Cit0eXBlZGVm IFRQTV9IQU5ETEVfdCBUUE1JX0RIX0VOVElUWV90OwordHlwZWRlZiBUUE1fSEFORExFX3QgVFBN SV9TSF9QT0xJQ1lfdDsKK3R5cGVkZWYgVFBNX0hBTkRMRV90IFRQTUlfREhfUENSX3Q7Cit0eXBl ZGVmIFRQTV9IQU5ETEVfdCBUUE1JX1JIX05WX0FVVEhfdDsKK3R5cGVkZWYgVFBNX0hBTkRMRV90 IFRQTUlfUkhfTlZfSU5ERVhfdDsKKworLyogVFBNX0hUX3QgQ29uc3RhbnRzICovCit0eXBlZGVm IGdydWJfdWludDhfdCBUUE1fSFRfdDsKKyNkZWZpbmUgVFBNX0hUX1BFUk1BTkVOVCAgKChUUE1f SFRfdCkgMHg0MCkKKyNkZWZpbmUgVFBNX0hUX1BFUlNJU1RFTlQgKChUUE1fSFRfdCkgMHg4MSkK KworLyogVFBNX1JIX3QgQ29uc3RhbnRzICovCit0eXBlZGVmIFRQTV9IQU5ETEVfdCBUUE1fUkhf dDsKKworI2RlZmluZSBUUE1fUkhfRklSU1QgICAgICAgKChUUE1fUkhfdCkgMHg0MDAwMDAwMCkK KyNkZWZpbmUgVFBNX1JIX1NSSyAgICAgICAgICgoVFBNX1JIX3QpIDB4NDAwMDAwMDApCisjZGVm aW5lIFRQTV9SSF9PV05FUiAgICAgICAoKFRQTV9SSF90KSAweDQwMDAwMDAxKQorI2RlZmluZSBU UE1fUkhfUkVWT0tFICAgICAgKChUUE1fUkhfdCkgMHg0MDAwMDAwMikKKyNkZWZpbmUgVFBNX1JI X1RSQU5TUE9SVCAgICgoVFBNX1JIX3QpIDB4NDAwMDAwMDMpCisjZGVmaW5lIFRQTV9SSF9PUEVS QVRPUiAgICAoKFRQTV9SSF90KSAweDQwMDAwMDA0KQorI2RlZmluZSBUUE1fUkhfQURNSU4gICAg ICAgKChUUE1fUkhfdCkgMHg0MDAwMDAwNSkKKyNkZWZpbmUgVFBNX1JIX0VLICAgICAgICAgICgo VFBNX1JIX3QpIDB4NDAwMDAwMDYpCisjZGVmaW5lIFRQTV9SSF9OVUxMICAgICAgICAoKFRQTV9S SF90KSAweDQwMDAwMDA3KQorI2RlZmluZSBUUE1fUkhfVU5BU1NJR05FRCAgKChUUE1fUkhfdCkg MHg0MDAwMDAwOCkKKyNkZWZpbmUgVFBNX1JTX1BXICAgICAgICAgICgoVFBNX1JIX3QpIDB4NDAw MDAwMDkpCisjZGVmaW5lIFRQTV9SSF9MT0NLT1VUICAgICAoKFRQTV9SSF90KSAweDQwMDAwMDBB KQorI2RlZmluZSBUUE1fUkhfRU5ET1JTRU1FTlQgKChUUE1fUkhfdCkgMHg0MDAwMDAwQikKKyNk ZWZpbmUgVFBNX1JIX1BMQVRGT1JNICAgICgoVFBNX1JIX3QpIDB4NDAwMDAwMEMpCisjZGVmaW5l IFRQTV9SSF9QTEFURk9STV9OViAoKFRQTV9SSF90KSAweDQwMDAwMDBEKQorI2RlZmluZSBUUE1f UkhfQVVUSF8wMCAgICAgKChUUE1fUkhfdCkgMHg0MDAwMDAxMCkKKyNkZWZpbmUgVFBNX1JIX0FV VEhfRkYgICAgICgoVFBNX1JIX3QpIDB4NDAwMDAxMEYpCisjZGVmaW5lIFRQTV9SSF9MQVNUICAg ICAgICAoKFRQTV9SSF90KSAweDQwMDAwMTBGKQorCisvKiBUUE1fSENfdCBDb25zdGFudHMgKi8K K3R5cGVkZWYgVFBNX0hBTkRMRV90IFRQTV9IQ190OworI2RlZmluZSBUUE1fSFJfSEFORExFX01B U0sgICAoKFRQTV9IQ190KSAweDAwRkZGRkZGKQorI2RlZmluZSBUUE1fSFJfUkFOR0VfTUFTSyAg ICAoKFRQTV9IQ190KSAweEZGMDAwMDAwKQorI2RlZmluZSBUUE1fSFJfU0hJRlQgICAgICAgICAo KFRQTV9IQ190KSAyNCkKKyNkZWZpbmUgVFBNX0hSX1BFUlNJU1RFTlQgICAgKChUUE1fSENfdCkg KFRQTV9IVF9QRVJTSVNURU5UIDw8IFRQTV9IUl9TSElGVCkpCisjZGVmaW5lIFRQTV9IUl9QRVJN QU5FTlQgICAgICgoVFBNX0hDX3QpIChUUE1fSFRfUEVSTUFORU5UIDw8IFRQTV9IUl9TSElGVCkp CisjZGVmaW5lIFRQTV9QRVJTSVNURU5UX0ZJUlNUICgoVFBNX0hDX3QpIChUUE1fSFJfUEVSU0lT VEVOVCArIDApKQorI2RlZmluZSBUUE1fUEVSU0lTVEVOVF9MQVNUICAoKFRQTV9IQ190KSAoVFBN X1BFUlNJU1RFTlRfRklSU1QgKyAweDAwRkZGRkZGKSkKKyNkZWZpbmUgVFBNX1BFUk1BTkVOVF9G SVJTVCAgKChUUE1fSENfdCkgVFBNX1JIX0ZJUlNUKQorI2RlZmluZSBUUE1fUEVSTUFORU5UX0xB U1QgICAoKFRQTV9IQ190KSBUUE1fUkhfTEFTVCkKKworLyogVFBNIEhhbmRsZSBUeXBlIENoZWNr cyAqLworI2RlZmluZSBUUE1fSFRfSVNfUEVSTUFORU5UKEhBTkRMRSkgKCgoSEFORExFKSA+PiBU UE1fSFJfU0hJRlQpID09IFRQTV9IVF9QRVJNQU5FTlQpCisjZGVmaW5lIFRQTV9IVF9JU19QRVJT SVNURU5UKEhBTkRMRSkgKCgoSEFORExFKSA+PiBUUE1fSFJfU0hJRlQpID09IFRQTV9IVF9QRVJT SVNURU5UKQorCisvKiBUUE1fRUNDX0NVUlZFX3QgQ29uc3RhbnRzICovCit0eXBlZGVmIGdydWJf dWludDE2X3QgVFBNX0VDQ19DVVJWRV90OworCisjZGVmaW5lIFRQTV9FQ0NfTk9ORSAgICAgICgo VFBNX0VDQ19DVVJWRV90KSAweDAwMDApCisjZGVmaW5lIFRQTV9FQ0NfTklTVF9QMTkyICgoVFBN X0VDQ19DVVJWRV90KSAweDAwMDEpCisjZGVmaW5lIFRQTV9FQ0NfTklTVF9QMjI0ICgoVFBNX0VD Q19DVVJWRV90KSAweDAwMDIpCisjZGVmaW5lIFRQTV9FQ0NfTklTVF9QMjU2ICgoVFBNX0VDQ19D VVJWRV90KSAweDAwMDMpCisjZGVmaW5lIFRQTV9FQ0NfTklTVF9QMzg0ICgoVFBNX0VDQ19DVVJW RV90KSAweDAwMDQpCisjZGVmaW5lIFRQTV9FQ0NfTklTVF9QNTIxICgoVFBNX0VDQ19DVVJWRV90 KSAweDAwMDUpCisjZGVmaW5lIFRQTV9FQ0NfQk5fUDI1NiAgICgoVFBNX0VDQ19DVVJWRV90KSAw eDAwMTApCisjZGVmaW5lIFRQTV9FQ0NfQk5fUDYzOCAgICgoVFBNX0VDQ19DVVJWRV90KSAweDAw MTEpCisjZGVmaW5lIFRQTV9FQ0NfU00yX1AyNTYgICgoVFBNX0VDQ19DVVJWRV90KSAweDAwMjAp CisKKy8qIFRQTV9DQ190IENvbnN0YW50cyAqLwordHlwZWRlZiBncnViX3VpbnQzMl90IFRQTV9D Q190OworCisjZGVmaW5lIFRQTV9DQ19FdmljdENvbnRyb2wgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxMjApCisjZGVmaW5lIFRQTV9DQ19DcmVhdGVQcmltYXJ5ICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxMzEpCisjZGVmaW5lIFRQTV9DQ19DcmVhdGUgICAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNTMpCisjZGVmaW5lIFRQTV9DQ19GbHVzaENvbnRleHQgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNjUpCisjZGVmaW5lIFRQTV9DQ19SZWFkUHVibGljICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNzMpCisjZGVmaW5lIFRQTV9DQ19TdGFydEF1dGhTZXNzaW9uICgoVFBNX0NDX3QpIDB4MDAw MDAxNzYpCisjZGVmaW5lIFRQTV9DQ19Qb2xpY3lQQ1IgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxN2YpCisjZGVmaW5lIFRQTV9DQ19OVl9SZWFkICAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNGUpCisjZGVmaW5lIFRQTV9DQ19OVl9SZWFkUHVibGljICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNjkpCisjZGVmaW5lIFRQTV9DQ19HZXRDYXBhYmlsaXR5ICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxN2EpCisjZGVmaW5lIFRQTV9DQ19QQ1JfUmVhZCAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxN2UpCisjZGVmaW5lIFRQTV9DQ19Mb2FkICAgICAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNTcpCisjZGVmaW5lIFRQTV9DQ19Mb2FkRXh0ZXJuYWwgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNjcpCisjZGVmaW5lIFRQTV9DQ19VbnNlYWwgICAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxNWUpCisjZGVmaW5lIFRQTV9DQ19Qb2xpY3lHZXREaWdlc3QgICgoVFBNX0NDX3QpIDB4MDAw MDAxODkpCisjZGVmaW5lIFRQTV9DQ19IYXNoICAgICAgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxN2QpCisjZGVmaW5lIFRQTV9DQ19WZXJpZnlTaWduYXR1cmUgICgoVFBNX0NDX3QpIDB4MDAw MDAxNzcpCisjZGVmaW5lIFRQTV9DQ19Qb2xpY3lBdXRob3JpemUgICgoVFBNX0NDX3QpIDB4MDAw MDAxNmEpCisjZGVmaW5lIFRQTV9DQ19UZXN0UGFybXMgICAgICAgICgoVFBNX0NDX3QpIDB4MDAw MDAxOGEpCisKKy8qIEhhc2ggYWxnb3JpdGhtIHNpemVzICovCisjZGVmaW5lIFRQTV9TSEExX0RJ R0VTVF9TSVpFICAgIDIwCisjZGVmaW5lIFRQTV9TSEEyNTZfRElHRVNUX1NJWkUgIDMyCisjZGVm aW5lIFRQTV9TTTNfMjU2X0RJR0VTVF9TSVpFIDMyCisjZGVmaW5lIFRQTV9TSEEzODRfRElHRVNU X1NJWkUgIDQ4CisjZGVmaW5lIFRQTV9TSEE1MTJfRElHRVNUX1NJWkUgIDY0CisKKy8qIEVuY3J5 cHRpb24gYWxnb3JpdGhtIHNpemVzICovCisjZGVmaW5lIFRQTV9NQVhfU1lNX0JMT0NLX1NJWkUg MTYKKyNkZWZpbmUgVFBNX01BWF9TWU1fREFUQSAgICAgICAyNTYKKyNkZWZpbmUgVFBNX01BWF9F Q0NfS0VZX0JZVEVTICAxMjgKKyNkZWZpbmUgVFBNX01BWF9TWU1fS0VZX0JZVEVTICAzMgorI2Rl ZmluZSBUUE1fTUFYX1JTQV9LRVlfQllURVMgIDUxMgorCisvKiBCdWZmZXIgU2l6ZSBDb25zdGFu dHMgKi8KKyNkZWZpbmUgVFBNX01BWF9QQ1JTICAgICAgICAgICAgICAgICAgICAgIDI0CisjZGVm aW5lIFRQTV9OVU1fUENSX0JBTktTICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBUUE1fUENS X1NFTEVDVF9NQVggICAgICAgICAgICAgICAgKChUUE1fTUFYX1BDUlMgKyA3KSAvIDgpCisjZGVm aW5lIFRQTV9NQVhfRElHRVNUX0JVRkZFUiAgICAgICAgICAgICAxMDI0CisjZGVmaW5lIFRQTV9N QVhfVFBNX1BST1BFUlRJRVMgICAgICAgICAgICA4CisjZGVmaW5lIFRQTV9NQVhfTlZfQlVGRkVS X1NJWkUgICAgICAgICAgICAyMDQ4CisjZGVmaW5lIFRQTV9QUklWQVRFX1ZFTkRPUl9TUEVDSUZJ Q19CWVRFUyAxMjgwCisKKy8qIFRQTV9HRU5FUkFURURfdCBDb25zdGFudHMgKi8KK3R5cGVkZWYg Z3J1Yl91aW50MzJfdCBUUE1fR0VORVJBVEVEX3Q7CisKKyNkZWZpbmUgVFBNX0dFTkVSQVRFRF9W QUxVRSAoKFRQTV9HRU5FUkFURURfdCkgMHhmZjU0NDM0NykKKworLyogVFBNX0FMR19JRF90IFR5 cGVzICovCit0eXBlZGVmIFRQTV9BTEdfSURfdCBUUE1JX0FMR19QVUJMSUNfdDsKK3R5cGVkZWYg VFBNX0FMR19JRF90IFRQTUlfQUxHX0hBU0hfdDsKK3R5cGVkZWYgVFBNX0FMR19JRF90IFRQTUlf QUxHX0tFWUVESEFTSF9TQ0hFTUVfdDsKK3R5cGVkZWYgVFBNX0FMR19JRF90IFRQTUlfQUxHX0tE Rl90OwordHlwZWRlZiBUUE1fQUxHX0lEX3QgVFBNSV9BTEdfU1lNX09CSkVDVF90OwordHlwZWRl ZiBUUE1fQUxHX0lEX3QgVFBNSV9BTEdfU1lNX01PREVfdDsKK3R5cGVkZWYgVFBNX0FMR19JRF90 IFRQTUlfQUxHX1JTQV9ERUNSWVBUX3Q7Cit0eXBlZGVmIFRQTV9BTEdfSURfdCBUUE1JX0FMR19F Q0NfU0NIRU1FX3Q7Cit0eXBlZGVmIFRQTV9BTEdfSURfdCBUUE1JX0FMR19BU1lNX1NDSEVNRV90 OwordHlwZWRlZiBUUE1fQUxHX0lEX3QgVFBNSV9BTEdfUlNBX1NDSEVNRV90OwordHlwZWRlZiBU UE1fQUxHX0lEX3QgVFBNSV9BTEdfU1lNX3Q7Cit0eXBlZGVmIFRQTV9BTEdfSURfdCBUUE1JX0FM R19TSUdfU0NIRU1FX3Q7CisKKy8qIFRQTV9LRVlfQklUU190IFR5cGUgKi8KK3R5cGVkZWYgZ3J1 Yl91aW50MTZfdCBUUE1fS0VZX0JJVFNfdDsKKworLyogVFBNSV9FQ0NfQ1VSVkVfdCBUeXBlcyAq LwordHlwZWRlZiBUUE1fRUNDX0NVUlZFX3QgVFBNSV9FQ0NfQ1VSVkVfdDsKKworLyogVFBNSV9S SF9QUk9WSVNJT05fdCBUeXBlICovCit0eXBlZGVmIFRQTV9IQU5ETEVfdCBUUE1JX1JIX1BST1ZJ U0lPTl90OworCisvKiBUUE1JX1JIX1BST1ZJU0lPTl90IFR5cGUgKi8KK3R5cGVkZWYgVFBNX0hB TkRMRV90IFRQTUlfREhfUEVSU0lTVEVOVF90OworCisjZW5kaWYgLyogISBHUlVCX1RQTTJfSU5U RVJOQUxfVFlQRVNfSEVBREVSICovCi0tIAoyLjQzLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRl dmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1k ZXZlbAo=