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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 60B18E9413F for ; Sat, 7 Oct 2023 03:58:13 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8697F86CDB; Sat, 7 Oct 2023 05:57:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=matrox.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=matrox0.onmicrosoft.com header.i=@matrox0.onmicrosoft.com header.b="XBqivrLA"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5FBC086D3F; Sat, 7 Oct 2023 03:14:29 +0200 (CEST) Received: from CAN01-YQB-obe.outbound.protection.outlook.com (mail-yqbcan01on2062b.outbound.protection.outlook.com [IPv6:2a01:111:f403:7052::62b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5C25C86CDB for ; Sat, 7 Oct 2023 03:14:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=matrox.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=agendin@matrox.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CO964RNWXQO2Zi8dbQ4H7LI/g6Ia5P0nvNLF439mEwtlJ905lrpEs86YzMsaoYBzfp4ptdFK5PORh+ufsqErR+R39RsfsLmyfFBD+9CeXv6fIB3aPumlvtBiR54vMZ/LnlhyFcZaMPx74bfxx1GA8JJFeOkPplj35fqJO/9M5FiPNTRxZ/0wFMxpTja0w2/9zqfBUue2b1Ytp+HAc1JEMuhQxAqGlQ8stL6YCw7WFiSAuGFiPuuoMaShXUzIQeC2yvsEFePKZ+6a9nqkAlaBzisBHpt7TKfb4mHnBT4POLVscRy6sKUCMCi/HNeyaeB43yNBUfkFKOyC3f/WZ6t7cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=V2Ctnlx7vvdPyYndrcOeLUhBI9wVz59NsMqLE58uOrU=; b=bu7KEv5k+2DutCkxJHPOisWb06DSrpeJ9fmWsubjZa8I0X2AO0Dz7D9FJT0TXBOqfExpSny7Q36TEnkHPjEhaoQiRg4m6AgAKyKev2cHaU2T7oKDFoNB6mShg14adJ09p6AHNY1EeXNacVcGnNijM26JMWKlw2VT0XfRft/4rNpTqW7x8tET18sOSVPpk1LxPVt0fCaeaBqvmZr8Dt7KbPBI7ObCBKDUnutHA2rKnA9hDgihlIr6PxzeUAtG0x7Ft42HgBJG6vNJQ1qX5vTQu5b5CnsEU6l44Xydx5gX1bHFk/eF65uFdd+B5/a36X+j/7xYyU6BxjuVoQU1Co6Gbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=matrox.com; dmarc=pass action=none header.from=matrox.com; dkim=pass header.d=matrox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matrox0.onmicrosoft.com; s=selector1-matrox0-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V2Ctnlx7vvdPyYndrcOeLUhBI9wVz59NsMqLE58uOrU=; b=XBqivrLADzgIUdwOq1A+p5MWszPvP6eb6dvdwfeBpMDnOHfv2/KVbVSYS7P/fYuttAf3+2E0kX1w5IqXp6lifXBbrahoN6gt+pLSKRbCcX3Ruh0jejNm0PKomuXC+i7+HahdQlB2HUhLFxMSU3nDfCAhH8vqOTJpeGKXU02xMAc= Received: from YT3PR01MB5626.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:60::18) by YQBPR0101MB9216.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:60::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.38; Sat, 7 Oct 2023 01:14:22 +0000 Received: from YT3PR01MB5626.CANPRD01.PROD.OUTLOOK.COM ([fe80::8342:9266:7d61:ca95]) by YT3PR01MB5626.CANPRD01.PROD.OUTLOOK.COM ([fe80::8342:9266:7d61:ca95%6]) with mapi id 15.20.6838.033; Sat, 7 Oct 2023 01:14:22 +0000 From: Alexander Gendin To: "u-boot@lists.denx.de" CC: Tom Rini Subject: [PATCH] cmd: mbr: Allow 4 MBR partitions without need for extended Thread-Topic: [PATCH] cmd: mbr: Allow 4 MBR partitions without need for extended Thread-Index: AQHZ+LuaIJ+N2iPFQEm55z9dUBEUHQ== Date: Sat, 7 Oct 2023 01:14:22 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=matrox.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: YT3PR01MB5626:EE_|YQBPR0101MB9216:EE_ x-ms-office365-filtering-correlation-id: 37b35ec5-f88b-42a8-f47b-08dbc6d2bd5d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7uXJv+4bdFWe/AFY2c+ZQNP55vAz41euZp3OrgPxTyuGXio8yxB5dlLxxMDLpWAW3ki2UI/gTnUf8i9GeuikPDFh4sAWbbOGdvkJ/rlqmdgt9RrUh5zWzlb1NBXtlg54ODA5x8Tm8hC+d/ftGFiAhPl1Hf6Zc/wwYEpQDC1YF+y+3Pvddn3E2l50k7+L0iwgUpdoA4UAc/iM4cu4eG/OSlTaMk1u8WhQ+BOGr9DKStoZD+ujZyveshjF0xVz56C6h9CIjJoSJnLpYlI9PjV9Lzsw7HC+1lnbTvy6s1UsFZib58F2Q8m9skHnI01AzwnaE3KM+sbDVf1NVXCMue99jN7VTHSH9B3BamRZGyO4XVJLVbwnSuJcOrN3FmmVt/rSVKFzzXYQN7FEdkHOvf1KO04qCIBA/jQuWlGLBhVdY+eqy9l1xDj3Eu/twEtVkWkPhqGUs0QiNIodHUOKOaIhQ0I9W9mSPopDID7wwVFdpFNEXKeoFtyHA2B0LtUIvFUAal0ShWojH/OHdGo/nZrzthGpDMvSdZEiXobLvQYHR3pj2MYajeKHPzUA4EEmX3FVLxmOc9+khQabzp9imoIPK/H7LKnarsFLSUASVMphuNl2d8YKjsuOMbUp6gS2y3pEyq6Hsf3rpCRuI5VQgwqYuQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT3PR01MB5626.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230031)(7916004)(346002)(136003)(396003)(376002)(39850400004)(366004)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(316002)(71200400001)(6506007)(6486002)(478600001)(6512007)(122000001)(38070700005)(86362001)(2906002)(66946007)(38100700002)(91956017)(33716001)(26005)(9686003)(83380400001)(66556008)(30864003)(41300700001)(64756008)(8936002)(6916009)(66446008)(76116006)(5660300002)(66476007)(4326008)(8676002)(579004)(559001)(505234007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UmM1KzllYm1NMWtPK3VBdVpVSXlySGhncGxKYkNrSm5CS3dnY3l3OGphK2N6?= =?utf-8?B?TEJFZ2ZwNTR1eVVrOEQ4YWQ4dzhUNmUvZkxmaklPOTF6OTVWR0ovSVcxTmlm?= =?utf-8?B?bm9aaVEyYVQ2MDNmcTV4TWEvNE1oMXVUMU1CdjFwQlRIU1N1bkhFTW1vV3J1?= =?utf-8?B?UmlOalRaR1pkeEpUdHppTkNuTnJQTjl3RDBrNWdnN0VQdDBuUzV6NlFwaUdK?= =?utf-8?B?RVpQNDNGWnNQd2NxTUx1MlVYTTJzMURBanJKVVBleUgwVG8rQjZiQUZTak5h?= =?utf-8?B?Mm5vakxlRHJsUzdMdjdILzRwR1RaZU82MG5Hd29PNi9GbkxyRUxDNkhDWVFY?= =?utf-8?B?ZmhoMDduQlErckRWNk9IZm11U1JVbDRmMU5uOFgzSDdLRW1OWEpKZlc1bkxs?= =?utf-8?B?Q0NEaTNQV3p0NjhhRmtnY2E4clh6cEZYLy9iRkpqcXZCRjBEdEVHY0Q3UU5X?= =?utf-8?B?QWVnT0Fqb1NGblJUVy9tMHU2bzlENzlvdkFPenl6cWJXckcyZ20wdjZDVFVM?= =?utf-8?B?Q0YyMWt5aWI1ek5Qd2U4YTVYeHRobFNqaHkyUzg5YmYvRDlCOE9SVi84RHpq?= =?utf-8?B?S1Nna1lqcUJCTjlqL1Vwa0FXL2xndTk2S3RLTVNOcldvQmVjem5oTFRiMUJ0?= =?utf-8?B?WWRYZDZJdDAzZ0ZoMHcwckRFcU5RTmIrc0U5ajNJa2MxNDc5ZmtBRk1yeVQ0?= =?utf-8?B?VmhOY0pLeXhiOEdza3FCYTc1WGpLVWFjamFiVExqVzlYQ01iTWlOUmJ1Z0pT?= =?utf-8?B?YkVzdjJXYThYbVlBNk51Z0tSNzhZbTF3SzFWKzAwSjhkUHMyUUtGVUJEWGxh?= =?utf-8?B?ejBJZ3ZaUldqQXM2ZzArQjRFM3o5bFFyeWFnQjgycU9FUWtYMEhkQXZUdW1I?= =?utf-8?B?MFV6UVNhQjVTcStXNFBocVZtMCtvWFB4S1RsaGFUcmpUbkJhYlRSb0Vvendk?= =?utf-8?B?VVcwdndad1paNVJiamNUNklaNWRUQWFQTU9hSGxjWlBMU1AyUWdZUDRpbExx?= =?utf-8?B?ejdubExWby92eFQ5YWxVckNUNWtGWnNQQ2prL1BtbzU4d2k2NFlNNDhLemM5?= =?utf-8?B?eExBSHhXMTJhbzhmL050T24ySDcwQ21NajV6YjhQNEFGc1lCdnZUSFF5T2Zi?= =?utf-8?B?OHRRdFVLSU1yK0lPbVZ5ZzVwSWZnUnVaNW9zMXpaN0RHYTNBTmc4c1dUSDJt?= =?utf-8?B?ZXozeWNlWnVkNWFPdWEweGhUY2NmazNuQk9rTjFLK2lTdUVFNnNCZDJjZU56?= =?utf-8?B?WjdQNG02YmZkeldmbHR5aW5UWVV3Uk1xRk5SU1p0ZGhJMEhZZjRkbEZDMHp6?= =?utf-8?B?TWJzc0tiM2Q1RlpaWU1jVUgvS0pGNU1VTzYyeHYxRW9IQW0zT0VNdkhDcDJR?= =?utf-8?B?WncraXVTK0JuZ2g5ZXlQV05Xd0xOZ0I1S2RmZjRnd0JsREhQRWFuNUZFUUdH?= =?utf-8?B?dXJ5SnZPeTZMUEdzQ3F5dm4wMnhWcStHY01LQW1SaFppT1c3aVNzYmo0azAr?= =?utf-8?B?cllua08zR3lyRFNTd0hhTExOQWEySTl2VEV3ZEZRT1A2UlkvY2pKaGhnb3BC?= =?utf-8?B?ZHNLNjFNNmJMZXJ2TnJLUUQ0TGpZbDVUcmtrYXBBRDlTZFJ1T2hZWGpCWTZm?= =?utf-8?B?c0JPdHovV3BrUmRnVlMwcGpORzVzQjlZa253SUpPZ2M2UkNtQUh2TlNNcjVQ?= =?utf-8?B?SXliNE5PTEVnc0FlejhvdlN0Uy9vWmxUT3NiTFVXOGk5eVJJU1l5RzFjRjI0?= =?utf-8?B?UmRRV1N5Rml0b29tQm1mR3lrTXkyNWJLKzhzZ0xjS0hXU0V1dXZkQjNYUmk4?= =?utf-8?B?Zm9qWlRzengyMC9tT1plZ0w3QzluOWc0RjBHWXRZSFN4aWE3clJ2Q2Jnczkv?= =?utf-8?B?eEFmeWlNa1dLTnZUdlVhS0ZQRGNNbEpmaytZb0N6anFpQkdqbjkvK3hWRWQ0?= =?utf-8?B?WGNWRDNPUVI4MnkxQ2U5ODYzMGo0eEx1SGRJSVlTN1Q3U1Z4VThaaDBNcGov?= =?utf-8?B?aStiTmlCUXRDUWpBSzc2aUsyMXNrbWpVSGc0bC8zTzk4TFNsM2diMnhCdE04?= =?utf-8?B?bmRqQThiRTV5LysydGtiZmFTTGM0UGVGd2NxMWdnMFVwQnhUemNzL1FPaVg1?= =?utf-8?Q?lMWTH6ouCfrD+WpnK7QUNRRlc?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: matrox.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YT3PR01MB5626.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 37b35ec5-f88b-42a8-f47b-08dbc6d2bd5d X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2023 01:14:22.5285 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 09c2e324-8cf7-459c-b6b4-e23db24b9d4a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GVua8iN8MnGdJkQrjnjqYO7yJHLFJ3F2Sre7SSvkdGqo1feAUdTA7SqaOceIEvf5Uk83Y44FA027Rb6GvoQVBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB9216 X-Mailman-Approved-At: Sat, 07 Oct 2023 05:57:57 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Q3VycmVudCBjb2RlIGFsbG93cyB1cCB0byAzIE1CUiBwYXJ0aXRpb25zIHdpdGhvdXQgZXh0ZW5k ZWQgb25lLg0KSWYgbW9yZSB0aGFuIDMgcGFydGl0aW9ucyBhcmUgcmVxdWlyZWQsIHRoZW4gZXh0 ZW5kZWQgcGFydGl0aW9uKHMpDQptdXN0IGJlIHVzZWQuDQpUaGlzIGNvbW1pdCBhbGxvd3MgdXAg dG8gNCBwcmltYXJ5IE1CUiBwYXJ0aXRpb25zIHdpdGhvdXQgdGhlDQpuZWVkIGZvciBleHRlbmRl ZCBwYXJ0aXRpb24uDQoNCkFkZCBtYnIgdGVzdCB1bml0LiBJbiBvcmRlciB0byB1c2UgdGhlIHRl c3QsIG1tYzEuaW1nIGZpbGUgb2Ygc2l6ZQ0KMTIgTWlCIG9yIGdyZWF0ZXIgaXMgcmVxdWlyZWQg aW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHUtYm9vdC4NClJ1bm5pbmcgbWJyIHRlc3QgaXMgb25s eSBzdXBwb3J0ZWQgaW4gc2FuZGJveCBtb2RlLg0KDQpTaWduZWQtb2ZmLWJ5OiBBbGV4IEdlbmRp biA8YWdlbmRpbkBtYXRyb3guY29tPg0KLS0tDQogZGlzay9wYXJ0X2Rvcy5jICAgICAgIHwgICAy ICstDQogaW5jbHVkZS90ZXN0L3N1aXRlcy5oIHwgICAxICsNCiB0ZXN0L2NtZC9NYWtlZmlsZSAg ICAgfCAgIDEgKw0KIHRlc3QvY21kL21ici5jICAgICAgICB8IDQ0MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCiB0ZXN0L2NtZF91dC5jICAgICAgICAgfCAgIDQg Kw0KIDUgZmlsZXMgY2hhbmdlZCwgNDQ3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9jbWQvbWJyLmMNCg0KZGlmZiAtLWdpdCBhL2Rpc2svcGFy dF9kb3MuYyBiL2Rpc2svcGFydF9kb3MuYw0KaW5kZXggMzMzNzQzODQzNy4uNTY3ZWFkNzUxMSAx MDA2NDQNCi0tLSBhL2Rpc2svcGFydF9kb3MuYw0KKysrIGIvZGlzay9wYXJ0X2Rvcy5jDQpAQCAt NDY2LDcgKzQ2Niw3IEBAIGludCBsYXlvdXRfbWJyX3BhcnRpdGlvbnMoc3RydWN0IGRpc2tfcGFy dGl0aW9uICpwLCBpbnQgY291bnQsDQogCQkJZXh0ID0gJnBbaV07DQogCX0NCiANCi0JaWYgKGNv dW50IDwgNCkNCisJaWYgKGNvdW50IDw9IDQpDQogCQlyZXR1cm4gMDsNCiANCiAJaWYgKCFleHQp IHsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Rlc3Qvc3VpdGVzLmggYi9pbmNsdWRlL3Rlc3Qvc3Vp dGVzLmgNCmluZGV4IDFjN2RjNjU5NjYuLjUxYWNiZTQ3YjIgMTAwNjQ0DQotLS0gYS9pbmNsdWRl L3Rlc3Qvc3VpdGVzLmgNCisrKyBiL2luY2x1ZGUvdGVzdC9zdWl0ZXMuaA0KQEAgLTQ1LDYgKzQ1 LDcgQEAgaW50IGRvX3V0X2ZvbnQoc3RydWN0IGNtZF90YmwgKmNtZHRwLCBpbnQgZmxhZywgaW50 IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSk7DQogaW50IGRvX3V0X2xpYihzdHJ1Y3QgY21kX3Ri bCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqY29uc3QgYXJndltdKTsNCiBpbnQg ZG9fdXRfbG9hZG0oc3RydWN0IGNtZF90YmwgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNo YXIgKmNvbnN0IGFyZ3ZbXSk7DQogaW50IGRvX3V0X2xvZyhzdHJ1Y3QgY21kX3RibCAqY21kdHAs IGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSk7DQoraW50IGRvX3V0X21i cihzdHJ1Y3QgY21kX3RibCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqY29uc3Qg YXJndltdKTsNCiBpbnQgZG9fdXRfbWVtKHN0cnVjdCBjbWRfdGJsICpjbWR0cCwgaW50IGZsYWcs IGludCBhcmdjLCBjaGFyICpjb25zdCBhcmd2W10pOw0KIGludCBkb191dF9vcHRlZShzdHJ1Y3Qg Y21kX3RibCAqY21kdHAsIGludCBmbGFnLCBpbnQgYXJnYywgY2hhciAqY29uc3QgYXJndltdKTsN CiBpbnQgZG9fdXRfb3ZlcmxheShzdHJ1Y3QgY21kX3RibCAqY21kdHAsIGludCBmbGFnLCBpbnQg YXJnYywNCmRpZmYgLS1naXQgYS90ZXN0L2NtZC9NYWtlZmlsZSBiL3Rlc3QvY21kL01ha2VmaWxl DQppbmRleCA2ZTNkN2U5MTllLi4yZjI1MWUwN2I0IDEwMDY0NA0KLS0tIGEvdGVzdC9jbWQvTWFr ZWZpbGUNCisrKyBiL3Rlc3QvY21kL01ha2VmaWxlDQpAQCAtMjMsNiArMjMsNyBAQCBvYmotJChD T05GSUdfQ01EX1BJTk1VWCkgKz0gcGlubXV4Lm8NCiBvYmotJChDT05GSUdfQ01EX1BXTSkgKz0g cHdtLm8NCiBvYmotJChDT05GSUdfQ01EX1NFQU1BKSArPSBzZWFtYS5vDQogaWZkZWYgQ09ORklH X1NBTkRCT1gNCitvYmotJChDT05GSUdfQ01EX01CUikgKz0gbWJyLm8NCiBvYmotJChDT05GSUdf Q01EX1JFQUQpICs9IHJ3Lm8NCiBvYmotJChDT05GSUdfQ01EX1NFVEVYUFIpICs9IHNldGV4cHIu bw0KIG9iai0kKENPTkZJR19BUk1fRkZBX1RSQU5TUE9SVCkgKz0gYXJtZmZhLm8NCmRpZmYgLS1n aXQgYS90ZXN0L2NtZC9tYnIuYyBiL3Rlc3QvY21kL21ici5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMC4uYmVkY2VmMDYzOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVz dC9jbWQvbWJyLmMNCkBAIC0wLDAgKzEsNDQwIEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjArDQorLyoNCisgKiBUZXN0cyBmb3IgbWJyIGNvbW1hbmQNCisgKg0KKyAqIENv cHlyaWdodCAyMDIzIE1hdHJveCBWaWRlbw0KKyAqIFdyaXR0ZW4gYnkgQWxleCBHZW5kaW4gPGFn ZW5kaW5AbWF0cm94LmNvbT4NCisgKi8NCisNCisjaW5jbHVkZSA8Y29tbW9uLmg+DQorI2luY2x1 ZGUgPGNvbnNvbGUuaD4NCisjaW5jbHVkZSA8bWFwbWVtLmg+DQorI2luY2x1ZGUgPHBhcnQuaD4N CisjaW5jbHVkZSA8YXNtL2dsb2JhbF9kYXRhLmg+DQorI2luY2x1ZGUgPHRlc3Qvc3VpdGVzLmg+ DQorI2luY2x1ZGUgPHRlc3QvdXQuaD4NCisNCitERUNMQVJFX0dMT0JBTF9EQVRBX1BUUjsNCisv Kg0KKyAqIFRlc3QgcmVxdWlyZW1lbnRzOg0KKyAqIG1tYzEuaW1nIC0gRmlsZSBzaXplIG5lZWRz IHRvIGJlIGF0IGxlYXN0IDEyIE1pQg0KKyAqDQorICogQ29tbWFuZCB0byBjcmVhdGUgbW1jMS5p bWc6DQorICogJCBkZCBpZj0vZGV2L3plcm8gb2Y9bW1jMS5pbWcgYnM9MTJNIGNvdW50PTENCisg Kg0KKyAqIFBsYWNlIG1tYzEuaW1nIGludG8gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHNhbmRib3hl ZCB1LWJvb3QNCisgKg0KKyAqIFRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHk6DQorICogJCAuL3Ut Ym9vdCAtVGMgJ3V0IG1icicNCisgKi8NCisNCitzdGF0aWMgY2hhciAqIG1icl9wYXJ0c19oZWFk ZXIgPSAic2V0ZW52IG1icl9wYXJ0cyAnIjsNCitzdGF0aWMgY2hhciAqIG1icl9wYXJ0c19wMSA9 ICJ1dWlkX2Rpc2s9MHgxMjM0NTY3ODtuYW1lPXAxLHN0YXJ0PThNLGJvb3RhYmxlLHNpemU9MU0s aWQ9MHgwZSI7DQorc3RhdGljIGNoYXIgKiBtYnJfcGFydHNfcDIgPSAiO25hbWU9cDIsc2l6ZT0x TSxpZD0weDBlIjsNCitzdGF0aWMgY2hhciAqIG1icl9wYXJ0c19wMyA9ICI7bmFtZT1wMyxzaXpl PTFNLGlkPTB4MGUiOw0KK3N0YXRpYyBjaGFyICogbWJyX3BhcnRzX3A0ID0gIjtuYW1lPXA0LHNp emU9MU0saWQ9MHgwZSI7DQorc3RhdGljIGNoYXIgKiBtYnJfcGFydHNfcDUgPSAiO25hbWU9W2V4 dF0sc2l6ZT0yTSxpZD0weDA1O25hbWU9cDUsc2l6ZT0xTSxpZD0weDBlIjsNCitzdGF0aWMgY2hh ciAqIG1icl9wYXJ0c190YWlsID0gIiciOw0KKw0KKy8qDQorICogT25lIE1CUiBwYXJ0aXRpb24N CiswMDAwMDFiMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDc4IDU2IDM0IDEyIDAwIDAwIDgw IDA1ICB8Li4uLi4uLi54VjQuLi4uLnwNCiswMDAwMDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAg NDAgIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDAwICB8Li4uJSQuLkAuLi4uLi4uLnwNCiswMDAwMDFk MCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICB8Li4u Li4uLi4uLi4uLi4uLnwNCiswMDAwMDFlMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICB8Li4uLi4uLi4uLi4uLi4uLnwNCiswMDAwMDFmMCAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4u Li5VLnwNCisqLw0KK3N0YXRpYyB1bnNpZ25lZCBtYnJfY21wX3N0YXJ0ID0gMHgxQjg7DQorc3Rh dGljIHVuc2lnbmVkIG1icl9jbXBfc2l6ZSA9IDB4NDg7DQorc3RhdGljIHVuc2lnbmVkIGNoYXIg bWJyX3BhcnRzX3JlZl9wMVtdID0gew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4NzgsIDB4NTYsIDB4MzQsIDB4MTIsIDB4MDAsIDB4MDAsIDB4ODAs IDB4MDUsDQorMHgwNSwgMHgwMSwgMHgwZSwgMHgyNSwgMHgyNCwgMHgwMSwgMHgwMCwgMHg0MCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCisweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KKzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsDQorMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg1NSwgMHhhYQ0K K307DQorDQorLyoNCisgKiBUd28gTUJSIHBhcnRpdGlvbnMNCiswMDAwMDFiMCAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgIDc4IDU2IDM0IDEyIDAwIDAwIDgwIDA1ICB8Li4uLi4uLi54VjQuLi4u LnwNCiswMDAwMDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAgNDAgIDAwIDAwIDAwIDA4IDAwIDAw IDAwIDI1ICB8Li4uJSQuLkAuLi4uLi4uJXwNCiswMDAwMDFkMCAgMjUgMDEgMGUgNDYgMDUgMDEg MDAgNDggIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDAwICB8JS4uRi4uLkguLi4uLi4uLnwNCiswMDAw MDFlMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICB8 Li4uLi4uLi4uLi4uLi4uLnwNCiswMDAwMDFmMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDAw IDAwIDAwIDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4uLi5VLnwNCisqLw0KK3N0YXRpYyB1 bnNpZ25lZCBjaGFyIG1icl9wYXJ0c19yZWZfcDJbXSA9IHsNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4LCAweDU2LCAweDM0LCAweDEyLCAweDAw LCAweDAwLCAweDgwLCAweDA1LA0KKzB4MDUsIDB4MDEsIDB4MGUsIDB4MjUsIDB4MjQsIDB4MDEs IDB4MDAsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MjUsDQorMHgyNSwgMHgwMSwgMHgwZSwgMHg0NiwgMHgwNSwgMHgwMSwgMHgwMCwgMHg0OCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCisweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KKzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4NTUsIDB4YWENCit9Ow0KKw0KKy8qDQorICogVGhyZWUgTUJSIHBhcnRpdGlvbnMNCiswMDAw MDFiMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDc4IDU2IDM0IDEyIDAwIDAwIDgwIDA1ICB8 Li4uLi4uLi54VjQuLi4uLnwNCiswMDAwMDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAgNDAgIDAw IDAwIDAwIDA4IDAwIDAwIDAwIDI1ICB8Li4uJSQuLkAuLi4uLi4uJXwNCiswMDAwMDFkMCAgMjUg MDEgMGUgNDYgMDUgMDEgMDAgNDggIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDQ2ICB8JS4uRi4uLkgu Li4uLi4uRnwNCiswMDAwMDFlMCAgMDYgMDEgMGUgNjYgMjUgMDEgMDAgNTAgIDAwIDAwIDAwIDA4 IDAwIDAwIDAwIDAwICB8Li4uZiUuLlAuLi4uLi4uLnwNCiswMDAwMDFmMCAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4uLi5VLnwN CisqLw0KK3N0YXRpYyB1bnNpZ25lZCBjaGFyIG1icl9wYXJ0c19yZWZfcDNbXSA9IHsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc4LCAweDU2LCAw eDM0LCAweDEyLCAweDAwLCAweDAwLCAweDgwLCAweDA1LA0KKzB4MDUsIDB4MDEsIDB4MGUsIDB4 MjUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MjUsDQorMHgyNSwgMHgwMSwgMHgwZSwgMHg0NiwgMHgwNSwgMHgwMSwg MHgwMCwgMHg0OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0 NiwNCisweDA2LCAweDAxLCAweDBlLCAweDY2LCAweDI1LCAweDAxLCAweDAwLCAweDUwLCAweDAw LCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KKzB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4NTUsIDB4YWENCit9Ow0KKw0KKy8qDQorICogRm91ciBNQlIgcGFy dGl0aW9ucw0KKzAwMDAwMWIwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgNzggNTYgMzQgMTIg MDAgMDAgODAgMDUgIHwuLi4uLi4uLnhWNC4uLi4ufA0KKzAwMDAwMWMwICAwNSAwMSAwZSAyNSAy NCAwMSAwMCA0MCAgMDAgMDAgMDAgMDggMDAgMDAgMDAgMjUgIHwuLi4lJC4uQC4uLi4uLi4lfA0K KzAwMDAwMWQwICAyNSAwMSAwZSA0NiAwNSAwMSAwMCA0OCAgMDAgMDAgMDAgMDggMDAgMDAgMDAg NDYgIHwlLi5GLi4uSC4uLi4uLi5GfA0KKzAwMDAwMWUwICAwNiAwMSAwZSA2NiAyNSAwMSAwMCA1 MCAgMDAgMDAgMDAgMDggMDAgMDAgMDAgNjYgIHwuLi5mJS4uUC4uLi4uLi5mfA0KKzAwMDAwMWYw ICAyNiAwMSAwZSA4NyAwNiAwMSAwMCA1OCAgMDAgMDAgMDAgMDggMDAgMDAgNTUgYWEgIHwmLi4u Li4uWC4uLi4uLlUufA0KKyovDQorc3RhdGljIHVuc2lnbmVkIGNoYXIgbWJyX3BhcnRzX3JlZl9w NFtdID0gew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4NzgsIDB4NTYsIDB4MzQsIDB4MTIsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDUsDQorMHgwNSwg MHgwMSwgMHgwZSwgMHgyNSwgMHgyNCwgMHgwMSwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyNSwNCisweDI1LCAweDAxLCAweDBlLCAweDQ2 LCAweDA1LCAweDAxLCAweDAwLCAweDQ4LCAweDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAw eDAwLCAweDAwLCAweDQ2LA0KKzB4MDYsIDB4MDEsIDB4MGUsIDB4NjYsIDB4MjUsIDB4MDEsIDB4 MDAsIDB4NTAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NjYs DQorMHgyNiwgMHgwMSwgMHgwZSwgMHg4NywgMHgwNiwgMHgwMSwgMHgwMCwgMHg1OCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg1NSwgMHhhYQ0KK307DQorDQorLyoNCisg KiBGaXZlIE1CUiBwYXJ0aXRpb25zDQorMDAwMDAxYjAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICA3OCA1NiAzNCAxMiAwMCAwMCA4MCAwNSAgfC4uLi4uLi4ueFY0Li4uLi58DQorMDAwMDAxYzAg IDA1IDAxIDBlIDI1IDI0IDAxIDAwIDQwICAwMCAwMCAwMCAwOCAwMCAwMCAwMCAyNSAgfC4uLiUk Li5ALi4uLi4uLiV8DQorMDAwMDAxZDAgIDI1IDAxIDBlIDQ2IDA1IDAxIDAwIDQ4ICAwMCAwMCAw MCAwOCAwMCAwMCAwMCA0NiAgfCUuLkYuLi5ILi4uLi4uLkZ8DQorMDAwMDAxZTAgIDA2IDAxIDBl IDY2IDI1IDAxIDAwIDUwICAwMCAwMCAwMCAwOCAwMCAwMCAwMCA2NiAgfC4uLmYlLi5QLi4uLi4u LmZ8DQorMDAwMDAxZjAgIDI2IDAxIDA1IGE3IDI2IDAxIDAwIDU4ICAwMCAwMCAwMCAxMCAwMCAw MCA1NSBhYSAgfCYuLi4mLi5YLi4uLi4uVS58DQorKi8NCitzdGF0aWMgdW5zaWduZWQgY2hhciBt YnJfcGFydHNfcmVmX3A1W10gPSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHg3OCwgMHg1NiwgMHgzNCwgMHgxMiwgMHgwMCwgMHgwMCwgMHg4MCwg MHgwNSwNCisweDA1LCAweDAxLCAweDBlLCAweDI1LCAweDI0LCAweDAxLCAweDAwLCAweDQwLCAw eDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAweDI1LA0KKzB4MjUsIDB4 MDEsIDB4MGUsIDB4NDYsIDB4MDUsIDB4MDEsIDB4MDAsIDB4NDgsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsDQorMHgwNiwgMHgwMSwgMHgwZSwgMHg2Niwg MHgyNSwgMHgwMSwgMHgwMCwgMHg1MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgw MCwgMHgwMCwgMHg2NiwNCisweDI2LCAweDAxLCAweDA1LCAweGE3LCAweDI2LCAweDAxLCAweDAw LCAweDU4LCAweDAwLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCAweDAwLCAweDU1LCAweGFhDQor fTsNCitzdGF0aWMgdW5zaWduZWQgZWJyX2NtcF9zdGFydCA9IDB4MUI4Ow0KK3N0YXRpYyB1bnNp Z25lZCBlYnJfY21wX3NpemUgPSAweDQ4Ow0KKy8qDQorICogRUJSDQorMDBiMDAxYjAgIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4NyAgfC4uLi4uLi4uLi4u Li4uLi58DQorMDBiMDAxYzAgIDA3IDAxIDBlIGE3IDI2IDAxIDAwIDA4ICAwMCAwMCAwMCAwOCAw MCAwMCAwMCAwMCAgfC4uLi4mLi4uLi4uLi4uLi58DQorMDBiMDAxZDAgIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgfC4uLi4uLi4uLi4uLi4uLi58DQor MDBiMDAxZTAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAgfC4uLi4uLi4uLi4uLi4uLi58DQorMDBiMDAxZjAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICAwMCAwMCAwMCAwMCAwMCAwMCA1NSBhYSAgfC4uLi4uLi4uLi4uLi4uVS58DQorKi8NCitzdGF0 aWMgdW5zaWduZWQgY2hhciBlYnJfcGFydHNfcmVmX3A1W10gPSB7DQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHg4NywNCisweDA3LCAweDAxLCAweDBlLCAweGE3LCAweDI2LCAw eDAxLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KKzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQorMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCisweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDU1LCAweGFhDQorfTsNCisNCitzdGF0aWMgdm9pZCBpbml0X2J1ZmZlcnMoY2hhciAq cmIsIHNpemVfdCByYl9zaXplLCBjaGFyICptYnJfd2IsIHNpemVfdCBtYnJfd2Jfc2l6ZSwNCisJ CQljaGFyICplYnJfd2IsIHNpemVfdCBlYnJfd2Jfc2l6ZSwgdW5zaWduZWQgc2VlZCkNCit7DQor CW1lbXNldChyYiwgMCwgcmJfc2l6ZSk7DQorCXdoaWxlIChtYnJfd2Jfc2l6ZS0tKSB7DQorCQkq bWJyX3diKysgPSBzZWVkOw0KKwkJc2VlZCAqPSA0MzsNCisJCXNlZWQgKz0gMTcgKyBtYnJfd2Jf c2l6ZS80Ow0KKwl9DQorCXdoaWxlIChlYnJfd2Jfc2l6ZS0tKSB7DQorCQkqZWJyX3diKysgPSBz ZWVkOw0KKwkJc2VlZCAqPSA0MzsNCisJCXNlZWQgKz0gMTcgKyBlYnJfd2Jfc2l6ZS80Ow0KKwl9 DQorfQ0KKw0KK3N0YXRpYyB1bnNpZ25lZCBidWlsZF9tYnJfcGFydHMoY2hhciAqYnVmLCBzaXpl X3QgYnVmX3NpemUsIHVuc2lnbmVkIG51bV9wYXJ0cykNCit7DQorCXNpemVfdCBieXRlc19yZW1h aW5pbmcsIGN1cl9zdHJfc2l6ZTsNCisJY2hhciAqIGN1cl9idWY7DQorDQorCWlmICgwID09IG51 bV9wYXJ0cyB8fCA1IDwgbnVtX3BhcnRzIHx8IE5VTEwgPT0gYnVmKQ0KKwkJcmV0dXJuIDE7DQor DQorCWN1cl9idWYgPSBidWY7DQorCSpjdXJfYnVmID0gJ1wwJzsNCisJYnl0ZXNfcmVtYWluaW5n ID0gYnVmX3NpemU7DQorDQorCWN1cl9zdHJfc2l6ZSA9IHNpemVvZihtYnJfcGFydHNfaGVhZGVy KTsNCisJaWYgKDEgKyBjdXJfc3RyX3NpemUgPiBieXRlc19yZW1haW5pbmcpDQorCQlyZXR1cm4g MTsNCisJc3RyY2F0KGN1cl9idWYsIG1icl9wYXJ0c19oZWFkZXIpOw0KKwlieXRlc19yZW1haW5p bmcgLT0gY3VyX3N0cl9zaXplOw0KKw0KKwlpZiAoMSA8PSBudW1fcGFydHMpIHsNCisJCWN1cl9z dHJfc2l6ZSA9IHNpemVvZihtYnJfcGFydHNfcDEpOw0KKwkJaWYgKDEgKyBjdXJfc3RyX3NpemUg PiBieXRlc19yZW1haW5pbmcpDQorCQkJcmV0dXJuIDE7DQorCQlzdHJjYXQoY3VyX2J1ZiwgbWJy X3BhcnRzX3AxKTsNCisJCWJ5dGVzX3JlbWFpbmluZyAtPSBjdXJfc3RyX3NpemU7DQorDQorCQlp ZiAoMiA8PSBudW1fcGFydHMpIHsNCisJCQljdXJfc3RyX3NpemUgPSBzaXplb2YobWJyX3BhcnRz X3AyKTsNCisJCQlpZiAoMSArIGN1cl9zdHJfc2l6ZSA+IGJ5dGVzX3JlbWFpbmluZykNCisJCQkJ cmV0dXJuIDE7DQorCQkJc3RyY2F0KGN1cl9idWYsIG1icl9wYXJ0c19wMik7DQorCQkJYnl0ZXNf cmVtYWluaW5nIC09IGN1cl9zdHJfc2l6ZTsNCisNCisJCQlpZiAoMyA8PSBudW1fcGFydHMpIHsN CisJCQkJY3VyX3N0cl9zaXplID0gc2l6ZW9mKG1icl9wYXJ0c19wMyk7DQorCQkJCWlmICgxICsg Y3VyX3N0cl9zaXplID4gYnl0ZXNfcmVtYWluaW5nKQ0KKwkJCQkJcmV0dXJuIDE7DQorCQkJCXN0 cmNhdChjdXJfYnVmLCBtYnJfcGFydHNfcDMpOw0KKwkJCQlieXRlc19yZW1haW5pbmcgLT0gY3Vy X3N0cl9zaXplOw0KKw0KKwkJCQlpZiAoNCA9PSBudW1fcGFydHMpIHsNCisJCQkJCWN1cl9zdHJf c2l6ZSA9IHNpemVvZihtYnJfcGFydHNfcDQpOw0KKwkJCQkJaWYgKDEgKyBjdXJfc3RyX3NpemUg PiBieXRlc19yZW1haW5pbmcpDQorCQkJCQkJcmV0dXJuIDE7DQorCQkJCQlzdHJjYXQoY3VyX2J1 ZiwgbWJyX3BhcnRzX3A0KTsNCisJCQkJCWJ5dGVzX3JlbWFpbmluZyAtPSBjdXJfc3RyX3NpemU7 DQorDQorCQkJCX0NCisJCQllbHNlIGlmICg1ID09IG51bV9wYXJ0cykgew0KKwkJCQljdXJfc3Ry X3NpemUgPSBzaXplb2YobWJyX3BhcnRzX3A1KTsNCisJCQkJaWYgKDEgKyBjdXJfc3RyX3NpemUg PiBieXRlc19yZW1haW5pbmcpDQorCQkJCQlyZXR1cm4gMTsNCisJCQkJc3RyY2F0KGN1cl9idWYs IG1icl9wYXJ0c19wNSk7DQorCQkJCWJ5dGVzX3JlbWFpbmluZyAtPSBjdXJfc3RyX3NpemU7DQor DQorCQkJfQ0KKwkJCWVsc2UgaWYgKDUgPCBudW1fcGFydHMpDQorCQkJCXJldHVybiAxOw0KKwkJ CX0NCisJCX0NCisJfQ0KKw0KKwljdXJfc3RyX3NpemUgPSBzaXplb2YobWJyX3BhcnRzX3RhaWwp Ow0KKwlpZiAoMSArIGN1cl9zdHJfc2l6ZSA+IGJ5dGVzX3JlbWFpbmluZykNCisJCXJldHVybiAx Ow0KKwlzdHJjYXQoY3VyX2J1ZiwgbWJyX3BhcnRzX3RhaWwpOw0KKw0KKwlyZXR1cm4gMDsNCit9 DQorDQorc3RhdGljIGludCBtYnJfdGVzdF9ydW4oc3RydWN0IHVuaXRfdGVzdF9zdGF0ZSAqdXRz KQ0KK3sNCisJc3RydWN0IGJsa19kZXNjICptbWNfZGV2X2Rlc2M7DQorCXVuc2lnbmVkIGNoYXIg bWJyX3didWZbNTEyXSwgZWJyX3didWZbNTEyXSwgcmJ1Zls1MTJdOw0KKwljaGFyIG1icl9wYXJ0 c19idWZbMjU2XTsNCisJdWxvbmcgbWJyX3dhLCBlYnJfd2EsIHJhLCBlYnJfYmxrLCBtYnJfcGFy dHNfbWF4Ow0KKw0KKwltYnJfcGFydHNfbWF4ID0gMiArIHNpemVvZignXDAnKQ0KKwkJKyBzdHJs ZW4obWJyX3BhcnRzX2hlYWRlcikNCisJCSsgc3RybGVuKG1icl9wYXJ0c19wMSkNCisJCSsgc3Ry bGVuKG1icl9wYXJ0c19wMikNCisJCSsgc3RybGVuKG1icl9wYXJ0c19wMykNCisJCSsgc3RybGVu KG1icl9wYXJ0c19wNCkNCisJCSsgc3RybGVuKG1icl9wYXJ0c19wNSkNCisJCSsgc3RybGVuKG1i cl9wYXJ0c190YWlsKTsNCisJdXRfYXNzZXJ0ZihzaXplb2YobWJyX3BhcnRzX2J1ZikgPj0gbWJy X3BhcnRzX21heCwgIkJ1ZmZlciBhdmFpbDogJWxkOyBidWZmZXIgcmVxOiAlbGRcbiIsDQorCQlz aXplb2YobWJyX3BhcnRzX2J1ZiksIG1icl9wYXJ0c19tYXgpOw0KKw0KKwltYnJfd2EgPSBtYXBf dG9fc3lzbWVtKG1icl93YnVmKTsNCisJZWJyX3dhID0gbWFwX3RvX3N5c21lbShlYnJfd2J1Zik7 DQorCXJhID0gbWFwX3RvX3N5c21lbShyYnVmKTsNCisJZWJyX2JsayA9ICh1bG9uZykweEIwMDAw MCAvIDB4MjAwOw0KKw0KKwkvKiBNYWtlIHN1cmUgbW1jMSBleGlzdHMgKi8NCisJdXRfYXNzZXJ0 ZXEoMSwgYmxrX2dldF9kZXZpY2VfYnlfc3RyKCJtbWMiLCAiMSIsICZtbWNfZGV2X2Rlc2MpKTsN CisJdXRfYXNzZXJ0b2soY29uc29sZV9yZWNvcmRfcmVzZXRfZW5hYmxlKCkpOw0KKwl1dF9hc3Nl cnRvayhydW5fY29tbWFuZGYoIm1tYyBkZXYgMSIpKTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJz d2l0Y2ggdG8gcGFydGl0aW9ucyAjMCwgT0siKTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJtbWMx IGlzIGN1cnJlbnQgZGV2aWNlIik7DQorCXV0X2Fzc2VydG9rKHV0X2NoZWNrX2NvbnNvbGVfZW5k KHV0cykpOw0KKw0KKwkvKiBNYWtlIHN1cmUgbW1jMSBpcyAxMisgTWlCIGluIHNpemUgKi8NCisJ dXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJtbWMgcmVhZCAweCVseCAweCVseCAxIiwgcmEsICh1 bG9uZykweEJGRkUwMCAvIDB4MjAwKSk7DQorDQorCS8qIFRlc3Qgb25lIE1CUiBwYXJ0aXRpb24g Ki8NCisJaW5pdF9idWZmZXJzKHJidWYsIHNpemVvZihyYnVmKSwgbWJyX3didWYsIHNpemVvZiht YnJfd2J1ZiksIGVicl93YnVmLCBzaXplb2YoZWJyX3didWYpLCBfX0xJTkVfXyk7DQorCXV0X2Fz c2VydG9rKGJ1aWxkX21icl9wYXJ0cyhtYnJfcGFydHNfYnVmLCBzaXplb2YobWJyX3BhcnRzX2J1 ZiksIDEpKTsNCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJ3cml0ZSBtbWMgMTowIDB4JWx4 IDAgMSIsIG1icl93YSkpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1jIDE6 MCAweCVseCAwIDEiLCByYSkpOw0KKwl1dF9hc3NlcnRvayhtZW1jbXAobWJyX3didWYsIHJidWYs IDUxMikpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoIndyaXRlIG1tYyAxOjAgMHglbHgg MHglbHggMSIsIGVicl93YSwgZWJyX2JsaykpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYo InJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVicl9ibGspKTsNCisJdXRfYXNzZXJ0 b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJdXRfYXNzZXJ0b2soY29uc29sZV9y ZWNvcmRfcmVzZXRfZW5hYmxlKCkpOw0KKwl1dF9hc3NlcnRmKDAgPT0gcnVuX2NvbW1hbmRmKG1i cl9wYXJ0c19idWYpLCAiSW52YWxpZCBwYXJ0aXRpb25zIHN0cmluZzogJXNcbiIsIG1icl9wYXJ0 c19idWYpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoIm1iciB3cml0ZSBtbWMgMSIpKTsN CisJdXRfYXNzZXJ0X25leHRsaW5lKCJNQlI6IHdyaXRlIHN1Y2Nlc3MhIik7DQorCXV0X2Fzc2Vy dG9rKHJ1bl9jb21tYW5kZigibWJyIHZlcmlmeSBtbWMgMSIpKTsNCisJdXRfYXNzZXJ0X25leHRs aW5lKCJNQlI6IHZlcmlmeSBzdWNjZXNzISIpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYo InJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVicl9ibGspKTsNCisJdXRfYXNzZXJ0 b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJdXRfYXNzZXJ0b2sodXRfY2hlY2tf Y29uc29sZV9lbmQodXRzKSk7DQorCS8qDQorCTAwMDAwMWIwICAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAgNzggNTYgMzQgMTIgMDAgMDAgODAgMDUgIHwuLi4uLi4uLnhWNC4uLi4ufA0KKwkwMDAw MDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAgNDAgIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDAwICB8 Li4uJSQuLkAuLi4uLi4uLnwNCisJMDAwMDAxZDAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgfC4uLi4uLi4uLi4uLi4uLi58DQorCTAwMDAwMWUwICAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIHwuLi4uLi4u Li4uLi4uLi4ufA0KKwkwMDAwMDFmMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIDAwIDAwIDAw IDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4uLi5VLnwNCisJKi8NCisJdXRfYXNzZXJ0b2so cnVuX2NvbW1hbmRmKCJyZWFkIG1tYyAxOjAgMHglbHggMCAxIiwgcmEpKTsNCisJZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IG1icl9jbXBfc2l6ZTsgaSsrKSB7DQorCQl1dF9hc3NlcnRmKHJidWZb bWJyX2NtcF9zdGFydCArIGldID09IG1icl9wYXJ0c19yZWZfcDFbaV0sDQorCQkJIjFQIE1CUisw eCUwNFg6IGV4cGVjdGVkIDB4JTAyWCwgYWN0dWFsOiAweCUwMlhcbiIsDQorCQkJbWJyX2NtcF9z dGFydCArIGksIG1icl9wYXJ0c19yZWZfcDFbaV0sIHJidWZbbWJyX2NtcF9zdGFydCArIGldKTsN CisJfQ0KKw0KKwkvKiBUZXN0IHR3byBNQlIgcGFydGl0aW9ucyAqLw0KKwlpbml0X2J1ZmZlcnMo cmJ1Ziwgc2l6ZW9mKHJidWYpLCBtYnJfd2J1Ziwgc2l6ZW9mKG1icl93YnVmKSwgZWJyX3didWYs IHNpemVvZihlYnJfd2J1ZiksIF9fTElORV9fKTsNCisJdXRfYXNzZXJ0b2soYnVpbGRfbWJyX3Bh cnRzKG1icl9wYXJ0c19idWYsIHNpemVvZihtYnJfcGFydHNfYnVmKSwgMikpOw0KKwl1dF9hc3Nl cnRvayhydW5fY29tbWFuZGYoIndyaXRlIG1tYyAxOjAgMHglbHggMCAxIiwgbWJyX3dhKSk7DQor CXV0X2Fzc2VydG9rKHJ1bl9jb21tYW5kZigicmVhZCBtbWMgMTowIDB4JWx4IDAgMSIsIHJhKSk7 DQorCXV0X2Fzc2VydG9rKG1lbWNtcChtYnJfd2J1ZiwgcmJ1ZiwgNTEyKSk7DQorCXV0X2Fzc2Vy dG9rKHJ1bl9jb21tYW5kZigid3JpdGUgbW1jIDE6MCAweCVseCAweCVseCAxIiwgZWJyX3dhLCBl YnJfYmxrKSk7DQorCXV0X2Fzc2VydG9rKHJ1bl9jb21tYW5kZigicmVhZCBtbWMgMTowIDB4JWx4 IDB4JWx4IDEiLCByYSwgZWJyX2JsaykpOw0KKwl1dF9hc3NlcnRvayhtZW1jbXAoZWJyX3didWYs IHJidWYsIDUxMikpOw0KKwl1dF9hc3NlcnRvayhjb25zb2xlX3JlY29yZF9yZXNldF9lbmFibGUo KSk7DQorCXV0X2Fzc2VydGYoMCA9PSBydW5fY29tbWFuZGYobWJyX3BhcnRzX2J1ZiksICJJbnZh bGlkIHBhcnRpdGlvbnMgc3RyaW5nOiAlc1xuIiwgbWJyX3BhcnRzX2J1Zik7DQorCXV0X2Fzc2Vy dG9rKHJ1bl9jb21tYW5kZigibWJyIHdyaXRlIG1tYyAxIikpOw0KKwl1dF9hc3NlcnRfbmV4dGxp bmUoIk1CUjogd3JpdGUgc3VjY2VzcyEiKTsNCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJt YnIgdmVyaWZ5IG1tYyAxIikpOw0KKwl1dF9hc3NlcnRfbmV4dGxpbmUoIk1CUjogdmVyaWZ5IHN1 Y2Nlc3MhIik7DQorCXV0X2Fzc2VydG9rKHJ1bl9jb21tYW5kZigicmVhZCBtbWMgMTowIDB4JWx4 IDB4JWx4IDEiLCByYSwgZWJyX2JsaykpOw0KKwl1dF9hc3NlcnRvayhtZW1jbXAoZWJyX3didWYs IHJidWYsIDUxMikpOw0KKwl1dF9hc3NlcnRvayh1dF9jaGVja19jb25zb2xlX2VuZCh1dHMpKTsN CisJLyoNCisJMDAwMDAxYjAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICA3OCA1NiAzNCAxMiAw MCAwMCA4MCAwNSAgfC4uLi4uLi4ueFY0Li4uLi58DQorCTAwMDAwMWMwICAwNSAwMSAwZSAyNSAy NCAwMSAwMCA0MCAgMDAgMDAgMDAgMDggMDAgMDAgMDAgMjUgIHwuLi4lJC4uQC4uLi4uLi4lfA0K KwkwMDAwMDFkMCAgMjUgMDEgMGUgNDYgMDUgMDEgMDAgNDggIDAwIDAwIDAwIDA4IDAwIDAwIDAw IDAwICB8JS4uRi4uLkguLi4uLi4uLnwNCisJMDAwMDAxZTAgIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgfC4uLi4uLi4uLi4uLi4uLi58DQorCTAwMDAw MWYwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAgMDAgMDAgMDAgMDAgMDAgNTUgYWEgIHwu Li4uLi4uLi4uLi4uLlUufA0KKwkqLw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQg bW1jIDE6MCAweCVseCAwIDEiLCByYSkpOw0KKwlmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWJy X2NtcF9zaXplOyBpKyspIHsNCisJCXV0X2Fzc2VydGYocmJ1ZlttYnJfY21wX3N0YXJ0ICsgaV0g PT0gbWJyX3BhcnRzX3JlZl9wMltpXSwNCisJCQkiMlAgTUJSKzB4JTA0WDogZXhwZWN0ZWQgMHgl MDJYLCBhY3R1YWw6IDB4JTAyWFxuIiwNCisJCQltYnJfY21wX3N0YXJ0ICsgaSwgbWJyX3BhcnRz X3JlZl9wMltpXSwgcmJ1ZlttYnJfY21wX3N0YXJ0ICsgaV0pOw0KKwl9DQorDQorCS8qIFRlc3Qg dGhyZWUgTUJSIHBhcnRpdGlvbnMgKi8NCisJaW5pdF9idWZmZXJzKHJidWYsIHNpemVvZihyYnVm KSwgbWJyX3didWYsIHNpemVvZihtYnJfd2J1ZiksIGVicl93YnVmLCBzaXplb2YoZWJyX3didWYp LCBfX0xJTkVfXyk7DQorCXV0X2Fzc2VydG9rKGJ1aWxkX21icl9wYXJ0cyhtYnJfcGFydHNfYnVm LCBzaXplb2YobWJyX3BhcnRzX2J1ZiksIDMpKTsNCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRm KCJ3cml0ZSBtbWMgMTowIDB4JWx4IDAgMSIsIG1icl93YSkpOw0KKwl1dF9hc3NlcnRvayhydW5f Y29tbWFuZGYoInJlYWQgbW1jIDE6MCAweCVseCAwIDEiLCByYSkpOw0KKwl1dF9hc3NlcnRvayht ZW1jbXAobWJyX3didWYsIHJidWYsIDUxMikpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYo IndyaXRlIG1tYyAxOjAgMHglbHggMHglbHggMSIsIGVicl93YSwgZWJyX2JsaykpOw0KKwl1dF9h c3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVi cl9ibGspKTsNCisJdXRfYXNzZXJ0b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJ dXRfYXNzZXJ0b2soY29uc29sZV9yZWNvcmRfcmVzZXRfZW5hYmxlKCkpOw0KKwl1dF9hc3NlcnRm KDAgPT0gcnVuX2NvbW1hbmRmKG1icl9wYXJ0c19idWYpLCAiSW52YWxpZCBwYXJ0aXRpb25zIHN0 cmluZzogJXNcbiIsIG1icl9wYXJ0c19idWYpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYo Im1iciB3cml0ZSBtbWMgMSIpKTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJNQlI6IHdyaXRlIHN1 Y2Nlc3MhIik7DQorCXV0X2Fzc2VydG9rKHJ1bl9jb21tYW5kZigibWJyIHZlcmlmeSBtbWMgMSIp KTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJNQlI6IHZlcmlmeSBzdWNjZXNzISIpOw0KKwl1dF9h c3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVi cl9ibGspKTsNCisJdXRfYXNzZXJ0b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJ dXRfYXNzZXJ0b2sodXRfY2hlY2tfY29uc29sZV9lbmQodXRzKSk7DQorCS8qDQorCTAwMDAwMWIw ICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgNzggNTYgMzQgMTIgMDAgMDAgODAgMDUgIHwuLi4u Li4uLnhWNC4uLi4ufA0KKwkwMDAwMDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAgNDAgIDAwIDAw IDAwIDA4IDAwIDAwIDAwIDI1ICB8Li4uJSQuLkAuLi4uLi4uJXwNCisJMDAwMDAxZDAgIDI1IDAx IDBlIDQ2IDA1IDAxIDAwIDQ4ICAwMCAwMCAwMCAwOCAwMCAwMCAwMCA0NiAgfCUuLkYuLi5ILi4u Li4uLkZ8DQorCTAwMDAwMWUwICAwNiAwMSAwZSA2NiAyNSAwMSAwMCA1MCAgMDAgMDAgMDAgMDgg MDAgMDAgMDAgMDAgIHwuLi5mJS4uUC4uLi4uLi4ufA0KKwkwMDAwMDFmMCAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4uLi5VLnwN CisJKi8NCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJyZWFkIG1tYyAxOjAgMHglbHggMCAx IiwgcmEpKTsNCisJZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1icl9jbXBfc2l6ZTsgaSsrKSB7 DQorCQl1dF9hc3NlcnRmKHJidWZbbWJyX2NtcF9zdGFydCArIGldID09IG1icl9wYXJ0c19yZWZf cDNbaV0sDQorCQkJIjNQIE1CUisweCUwNFg6IGV4cGVjdGVkIDB4JTAyWCwgYWN0dWFsOiAweCUw MlhcbiIsDQorCQkJbWJyX2NtcF9zdGFydCArIGksIG1icl9wYXJ0c19yZWZfcDNbaV0sIHJidWZb bWJyX2NtcF9zdGFydCArIGldKTsNCisJfQ0KKw0KKwkvKiBUZXN0IGZvdXIgTUJSIHBhcnRpdGlv bnMgKi8NCisJaW5pdF9idWZmZXJzKHJidWYsIHNpemVvZihyYnVmKSwgbWJyX3didWYsIHNpemVv ZihtYnJfd2J1ZiksIGVicl93YnVmLCBzaXplb2YoZWJyX3didWYpLCBfX0xJTkVfXyk7DQorCXV0 X2Fzc2VydG9rKGJ1aWxkX21icl9wYXJ0cyhtYnJfcGFydHNfYnVmLCBzaXplb2YobWJyX3BhcnRz X2J1ZiksIDQpKTsNCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJ3cml0ZSBtbWMgMTowIDB4 JWx4IDAgMSIsIG1icl93YSkpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1j IDE6MCAweCVseCAwIDEiLCByYSkpOw0KKwl1dF9hc3NlcnRvayhtZW1jbXAobWJyX3didWYsIHJi dWYsIDUxMikpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoIndyaXRlIG1tYyAxOjAgMHgl bHggMHglbHggMSIsIGVicl93YSwgZWJyX2JsaykpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFu ZGYoInJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVicl9ibGspKTsNCisJdXRfYXNz ZXJ0b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJdXRfYXNzZXJ0b2soY29uc29s ZV9yZWNvcmRfcmVzZXRfZW5hYmxlKCkpOw0KKwl1dF9hc3NlcnRmKDAgPT0gcnVuX2NvbW1hbmRm KG1icl9wYXJ0c19idWYpLCAiSW52YWxpZCBwYXJ0aXRpb25zIHN0cmluZzogJXNcbiIsIG1icl9w YXJ0c19idWYpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoIm1iciB3cml0ZSBtbWMgMSIp KTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJNQlI6IHdyaXRlIHN1Y2Nlc3MhIik7DQorCXV0X2Fz c2VydG9rKHJ1bl9jb21tYW5kZigibWJyIHZlcmlmeSBtbWMgMSIpKTsNCisJdXRfYXNzZXJ0X25l eHRsaW5lKCJNQlI6IHZlcmlmeSBzdWNjZXNzISIpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFu ZGYoInJlYWQgbW1jIDE6MCAweCVseCAweCVseCAxIiwgcmEsIGVicl9ibGspKTsNCisJdXRfYXNz ZXJ0b2sobWVtY21wKGVicl93YnVmLCByYnVmLCA1MTIpKTsNCisJdXRfYXNzZXJ0b2sodXRfY2hl Y2tfY29uc29sZV9lbmQodXRzKSk7DQorCS8qDQorCTAwMDAwMWIwICAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAgNzggNTYgMzQgMTIgMDAgMDAgODAgMDUgIHwuLi4uLi4uLnhWNC4uLi4ufA0KKwkw MDAwMDFjMCAgMDUgMDEgMGUgMjUgMjQgMDEgMDAgNDAgIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDI1 ICB8Li4uJSQuLkAuLi4uLi4uJXwNCisJMDAwMDAxZDAgIDI1IDAxIDBlIDQ2IDA1IDAxIDAwIDQ4 ICAwMCAwMCAwMCAwOCAwMCAwMCAwMCA0NiAgfCUuLkYuLi5ILi4uLi4uLkZ8DQorCTAwMDAwMWUw ICAwNiAwMSAwZSA2NiAyNSAwMSAwMCA1MCAgMDAgMDAgMDAgMDggMDAgMDAgMDAgNjYgIHwuLi5m JS4uUC4uLi4uLi5mfA0KKwkwMDAwMDFmMCAgMjYgMDEgMGUgODcgMDYgMDEgMDAgNTggIDAwIDAw IDAwIDA4IDAwIDAwIDU1IGFhICB8Ji4uLi4uLlguLi4uLi5VLnwNCisJKi8NCisJdXRfYXNzZXJ0 b2socnVuX2NvbW1hbmRmKCJyZWFkIG1tYyAxOjAgMHglbHggMCAxIiwgcmEpKTsNCisJZm9yICh1 bnNpZ25lZCBpID0gMDsgaSA8IG1icl9jbXBfc2l6ZTsgaSsrKSB7DQorCQl1dF9hc3NlcnRmKHJi dWZbbWJyX2NtcF9zdGFydCArIGldID09IG1icl9wYXJ0c19yZWZfcDRbaV0sDQorCQkJIjRQIE1C UisweCUwNFg6IGV4cGVjdGVkIDB4JTAyWCwgYWN0dWFsOiAweCUwMlhcbiIsDQorCQkJbWJyX2Nt cF9zdGFydCArIGksIG1icl9wYXJ0c19yZWZfcDRbaV0sIHJidWZbbWJyX2NtcF9zdGFydCArIGld KTsNCisJfQ0KKw0KKwkvKiBUZXN0IGZpdmUgTUJSIHBhcnRpdGlvbnMgKi8NCisJaW5pdF9idWZm ZXJzKHJidWYsIHNpemVvZihyYnVmKSwgbWJyX3didWYsIHNpemVvZihtYnJfd2J1ZiksIGVicl93 YnVmLCBzaXplb2YoZWJyX3didWYpLCBfX0xJTkVfXyk7DQorCXV0X2Fzc2VydG9rKGJ1aWxkX21i cl9wYXJ0cyhtYnJfcGFydHNfYnVmLCBzaXplb2YobWJyX3BhcnRzX2J1ZiksIDUpKTsNCisJdXRf YXNzZXJ0b2socnVuX2NvbW1hbmRmKCJ3cml0ZSBtbWMgMTowIDB4JWx4IDAgMSIsIG1icl93YSkp Ow0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1jIDE6MCAweCVseCAwIDEiLCBy YSkpOw0KKwl1dF9hc3NlcnRvayhtZW1jbXAobWJyX3didWYsIHJidWYsIDUxMikpOw0KKwl1dF9h c3NlcnRvayhydW5fY29tbWFuZGYoIndyaXRlIG1tYyAxOjAgMHglbHggMHglbHggMSIsIGVicl93 YSwgZWJyX2JsaykpOw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1jIDE6MCAw eCVseCAweCVseCAxIiwgcmEsIGVicl9ibGspKTsNCisJdXRfYXNzZXJ0b2sobWVtY21wKGVicl93 YnVmLCByYnVmLCA1MTIpKTsNCisJdXRfYXNzZXJ0b2soY29uc29sZV9yZWNvcmRfcmVzZXRfZW5h YmxlKCkpOw0KKwl1dF9hc3NlcnRmKDAgPT0gcnVuX2NvbW1hbmRmKG1icl9wYXJ0c19idWYpLCAi SW52YWxpZCBwYXJ0aXRpb25zIHN0cmluZzogJXNcbiIsIG1icl9wYXJ0c19idWYpOw0KKwl1dF9h c3NlcnRmKDAgPT0gcnVuX2NvbW1hbmRmKCJtYnIgd3JpdGUgbW1jIDEiKSwgIkludmFsaWQgcGFy dGl0aW9ucyBzdHJpbmc6ICVzXG4iLCBtYnJfcGFydHNfYnVmKTsNCisJdXRfYXNzZXJ0X25leHRs aW5lKCJNQlI6IHdyaXRlIHN1Y2Nlc3MhIik7DQorCXV0X2Fzc2VydG9rKHJ1bl9jb21tYW5kZigi bWJyIHZlcmlmeSBtbWMgMSIpKTsNCisJdXRfYXNzZXJ0X25leHRsaW5lKCJNQlI6IHZlcmlmeSBz dWNjZXNzISIpOw0KKwl1dF9hc3NlcnRvayh1dF9jaGVja19jb25zb2xlX2VuZCh1dHMpKTsNCisJ LyoNCisJMDAwMDAxYjAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICA3OCA1NiAzNCAxMiAwMCAw MCA4MCAwNSAgfC4uLi4uLi4ueFY0Li4uLi58DQorCTAwMDAwMWMwICAwNSAwMSAwZSAyNSAyNCAw MSAwMCA0MCAgMDAgMDAgMDAgMDggMDAgMDAgMDAgMjUgIHwuLi4lJC4uQC4uLi4uLi4lfA0KKwkw MDAwMDFkMCAgMjUgMDEgMGUgNDYgMDUgMDEgMDAgNDggIDAwIDAwIDAwIDA4IDAwIDAwIDAwIDQ2 ICB8JS4uRi4uLkguLi4uLi4uRnwNCisJMDAwMDAxZTAgIDA2IDAxIDBlIDY2IDI1IDAxIDAwIDUw ICAwMCAwMCAwMCAwOCAwMCAwMCAwMCA2NiAgfC4uLmYlLi5QLi4uLi4uLmZ8DQorCTAwMDAwMWYw ICAyNiAwMSAwNSBhNyAyNiAwMSAwMCA1OCAgMDAgMDAgMDAgMTAgMDAgMDAgNTUgYWEgIHwmLi4u Ji4uWC4uLi4uLlUufA0KKwkqLw0KKwl1dF9hc3NlcnRvayhydW5fY29tbWFuZGYoInJlYWQgbW1j IDE6MCAweCVseCAwIDEiLCByYSkpOw0KKwlmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWJyX2Nt cF9zaXplOyBpKyspIHsNCisJCXV0X2Fzc2VydGYocmJ1ZlttYnJfY21wX3N0YXJ0ICsgaV0gPT0g bWJyX3BhcnRzX3JlZl9wNVtpXSwNCisJCQkiNVAgTUJSKzB4JTA0WDogZXhwZWN0ZWQgMHglMDJY LCBhY3R1YWw6IDB4JTAyWFxuIiwNCisJCQltYnJfY21wX3N0YXJ0ICsgaSwgbWJyX3BhcnRzX3Jl Zl9wNVtpXSwgcmJ1ZlttYnJfY21wX3N0YXJ0ICsgaV0pOw0KKwl9DQorCS8qDQorCTAwYjAwMWIw ICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODcgIHwuLi4u Li4uLi4uLi4uLi4ufA0KKwkwMGIwMDFjMCAgMDcgMDEgMGUgYTcgMjYgMDEgMDAgMDggIDAwIDAw IDAwIDA4IDAwIDAwIDAwIDAwICB8Li4uLiYuLi4uLi4uLi4uLnwNCisJMDBiMDAxZDAgIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgfC4uLi4uLi4uLi4u Li4uLi58DQorCTAwYjAwMWUwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIHwuLi4uLi4uLi4uLi4uLi4ufA0KKwkwMGIwMDFmMCAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIDAwIDAwIDAwIDAwIDAwIDAwIDU1IGFhICB8Li4uLi4uLi4uLi4uLi5VLnwN CisJKi8NCisJdXRfYXNzZXJ0b2socnVuX2NvbW1hbmRmKCJyZWFkIG1tYyAxOjAgMHglbHggMHgl bHggMSIsIHJhLCBlYnJfYmxrKSk7DQorCWZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBlYnJfY21w X3NpemU7IGkrKykgew0KKwkJdXRfYXNzZXJ0ZihyYnVmW2Vicl9jbXBfc3RhcnQgKyBpXSA9PSBl YnJfcGFydHNfcmVmX3A1W2ldLA0KKwkJCSI1UCBFQlIrMHglMDRYOiBleHBlY3RlZCAweCUwMlgs IGFjdHVhbDogMHglMDJYXG4iLA0KKwkJCWVicl9jbXBfc3RhcnQgKyBpLCBlYnJfcGFydHNfcmVm X3A1W2ldLCByYnVmW2Vicl9jbXBfc3RhcnQgKyBpXSk7DQorCX0NCisNCisJcmV0dXJuIDA7DQor fQ0KKw0KKy8qIERlY2xhcmUgbWJyIHRlc3QgKi8NCitVTklUX1RFU1QobWJyX3Rlc3RfcnVuLCBV VF9URVNURl9DT05TT0xFX1JFQywgbWJyX3Rlc3QpOw0KKw0KK2ludCBkb191dF9tYnIoc3RydWN0 IGNtZF90YmwgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkN Cit7DQorCXN0cnVjdCB1bml0X3Rlc3QgKnRlc3RzID0gVU5JVF9URVNUX1NVSVRFX1NUQVJUKG1i cl90ZXN0KTsNCisJY29uc3QgaW50IG5fZW50cyA9IFVOSVRfVEVTVF9TVUlURV9DT1VOVChtYnJf dGVzdCk7DQorDQorCXJldHVybiBjbWRfdXRfY2F0ZWdvcnkoIm1iciIsICJtYnJfdGVzdF8iLCB0 ZXN0cywgbl9lbnRzLCBhcmdjLCBhcmd2KTsNCit9DQpkaWZmIC0tZ2l0IGEvdGVzdC9jbWRfdXQu YyBiL3Rlc3QvY21kX3V0LmMNCmluZGV4IDBmNTY0MDllODAuLjEyM2RiN2NjN2QgMTAwNjQ0DQot LS0gYS90ZXN0L2NtZF91dC5jDQorKysgYi90ZXN0L2NtZF91dC5jDQpAQCAtODYsNiArODYsMTAg QEAgc3RhdGljIHN0cnVjdCBjbWRfdGJsIGNtZF91dF9zdWJbXSA9IHsNCiAjZW5kaWYNCiAjaWZk ZWYgQ09ORklHX1VUX0xPRw0KIAlVX0JPT1RfQ01EX01LRU5UKGxvZywgQ09ORklHX1NZU19NQVhB UkdTLCAxLCBkb191dF9sb2csICIiLCAiIiksDQorI2VuZGlmDQorI2lmIGRlZmluZWQoQ09ORklH X1NBTkRCT1gpICYmIGRlZmluZWQoQ09ORklHX0NNRF9NQlIpICYmIGRlZmluZWQoQ09ORklHX0NN RF9NTUMpIFwNCisgICAgICAgICYmIGRlZmluZWQoQ09ORklHX01NQ19TQU5EQk9YKSAmJiBkZWZp bmVkKENPTkZJR19NTUNfV1JJVEUpDQorCVVfQk9PVF9DTURfTUtFTlQobWJyLCBDT05GSUdfU1lT X01BWEFSR1MsIDEsIGRvX3V0X21iciwgIiIsICIiKSwNCiAjZW5kaWYNCiAJVV9CT09UX0NNRF9N S0VOVChtZW0sIENPTkZJR19TWVNfTUFYQVJHUywgMSwgZG9fdXRfbWVtLCAiIiwgIiIpLA0KICNp ZiBkZWZpbmVkKENPTkZJR19TQU5EQk9YKSAmJiBkZWZpbmVkKENPTkZJR19DTURfU0VURVhQUikN Ci0tIA0KMi40MS4wDQo=