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 79B99C4332F for ; Mon, 12 Dec 2022 20:30:44 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4pRN-0001e0-9b; Mon, 12 Dec 2022 15:30:21 -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 1p4pRG-0001dC-AE for qemu-devel@nongnu.org; Mon, 12 Dec 2022 15:30:14 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p4pRB-00032W-Vv for qemu-devel@nongnu.org; Mon, 12 Dec 2022 15:30:12 -0500 Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BCGwXd3002236; Mon, 12 Dec 2022 20:30:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=AE/N0okmf0wrmk6F6K6gMb5IT8YgSIzdPqMPAPJTEHQ=; b=GrRYGiAXXv262NEuT5q0LtRIXkgHs1JBKXSRnQDIW9IDsaBYBc1eIzlAizxvuT/MPDyv ViKhdcPur7u+oQGsfc17RL5khFaxXOrty+P2T1Gkmd129dwG9+q4gOQHuBq/cNuzmF8K k9bBf5KCTvGOiBVWsuYHh1pt9b3eCna9YOQ962WA5QnncRWRn9fD9Kms6AClBnRNIYeF p73fUApvGh6pg+qgPJXJIgPG9jvcO6a2oiH87J7w5OvoMrquk5ojJ8ar4O29PL/mOTjO g0HjDgEpZWFA0tEnZwfrT87khwg7QOJnq/f1uazdhZsYoptATRJPOQbhUZPFTg2CwfMP rQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3mcj5buuf6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Dec 2022 20:30:07 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2BCJhHgH034764; Mon, 12 Dec 2022 20:30:06 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2044.outbound.protection.outlook.com [104.47.66.44]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3mcgj4kf7t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Dec 2022 20:30:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TfmVrBkD8X/MiRSKYBVjHfAoGR5QzTEqJkUgGUnNn448Nmrn3QNPtYUfgiZyPMDhAOGG4mJC1kTUba5nPqHKc7oXuEg1Ug8RjcdQxy6vAObmbRDnuXXOW/NdlewB9iR537gQ8TFuex80vZwwEEmOrX3ennjpfZ5SLnCWla7xr2+XxbQGzt7kKo8WP+bra8dpGIX1zBSrBYpOafhVUzn/ht7rZz8imLAamOVJftboxRq6bDUBsftpOAqOhn7+X14hCUrSxfbJAgrbzu0rNSlzbPV0oPUk4DgVX1VwE4PZyQho+Jkns7KXCgwNL4J7uaZfGJQ4/6A8VTrIOLFK5bsPTQ== 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=AE/N0okmf0wrmk6F6K6gMb5IT8YgSIzdPqMPAPJTEHQ=; b=eQEOvzj0M6X7frKxqi7VHb5mMHalN39kmEd55mMXOc5kOtTjQLZgkCBnEuph1zaOqXB/wXBaK9zRi0FOLk1cXd8EM87PgaM7TkC15ky9cSLjiYki0OE43/nrYUte8Cf9RBIUSZikGk/Ybgu3nWUOV0P/TemEGtzlHeYMKhoDbq5oTNj9V73mWcNAas+P0f3ZrI7QxEU14F+30guz4/M3fGQp9dnIAkJkSDNIL7DGfP878bzp4XMAoJPMHDQWaJtoxJv/AyEeUUAfj9T5lEbGJCt/5EPuT2z/Ypl1hrVCJ9+t9KEfalXO8PQJ251Duegu4ROskKz2catZT59S4yt7/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AE/N0okmf0wrmk6F6K6gMb5IT8YgSIzdPqMPAPJTEHQ=; b=q/jDNamggHk0o2giAOgV9oUOz9c6fYKab12haOc4O7XoFvM1I82EAas0molBHHMMBmY7OWrylqwlNmeDyL8YpMJ+cRLpzxwjGcEcL8fSRrWWCHV2wOJfWKnYdrf53VAEHLvIjOhCt+Fn80uiHZ0fO+Stn8aH4p1DvdUpa0uDdxQ= Received: from BYAPR10MB3255.namprd10.prod.outlook.com (2603:10b6:a03:156::22) by IA1PR10MB6832.namprd10.prod.outlook.com (2603:10b6:208:424::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.19; Mon, 12 Dec 2022 20:30:03 +0000 Received: from BYAPR10MB3255.namprd10.prod.outlook.com ([fe80::4636:bc4:6c76:2486]) by BYAPR10MB3255.namprd10.prod.outlook.com ([fe80::4636:bc4:6c76:2486%4]) with mapi id 15.20.5880.019; Mon, 12 Dec 2022 20:30:03 +0000 From: John Johnson To: =?utf-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= CC: "qemu-devel@nongnu.org" Subject: Re: [PATCH v1 02/24] vfio-user: add VFIO base abstract class Thread-Topic: [PATCH v1 02/24] vfio-user: add VFIO base abstract class Thread-Index: AQHY86IVYyUZEASaLkWOegqZ6HB9165l6IyAgAUBNQA= Date: Mon, 12 Dec 2022 20:30:02 +0000 Message-ID: <1009AF0A-FB79-4744-A197-3B89675484F1@oracle.com> References: <37937d3d-5505-91b9-e671-154caa21667e@redhat.com> In-Reply-To: <37937d3d-5505-91b9-e671-154caa21667e@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR10MB3255:EE_|IA1PR10MB6832:EE_ x-ms-office365-filtering-correlation-id: 46f312fc-2025-42cd-a22c-08dadc7fa5f6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pdp+N4+sEc+dfnThGcWF/P9ZLGeMCg0SrDrwL9Z20azR5t3NgRcRZpmhA1FM6LWQQQ8UZSwpQWvPlyw0yG+JCC7PygUkpsrryUy0LVb/eEt8Jma+LvU8lLTeS9QzJiZt9vQ73xhh49losmXuECnURG9eptY6UhOT9tR0zGnbuZ4FBdSFoDaW6TW9fzblxJMJuX0kWMDhMB+Wns7z0sUwMERNHP4vje94c/J+FlCKh/QLhVrKC478nj+YOkGMHeGkve+HWpApblNu4UisOofMt74Xmf9dqht2OROWX16PQmE6hhvivR1kFI7/h7HJ6l+FBqo6nf7g4TAvrAG8iU7PQCjHYdarNwOSenHMmLvQsrBVC0RagEciuM05mjkV03Qw+/+G5RolNGToBXsgwwvis+Re/xLkMNVp1uvHlaSYnFHb/nCOOZ8ZK6pfUOwW1fOUGe6SfaPOLUYLQUVq33Zx7w/Ygg0v3tw2MwG7RliZcgx41HV2Jyoe/RdiyJteho2gCOsMJD23Fs87Mks1mg/ff3yKAlwF3XqCini8Ccqu/Kl+6/byL0ZWcm7eUP6Kdcam9LPaxn2vn2MnHrPUwnIi4+1kR1yQqiUlT5L48j2JfaCNaM+694tPqE/GBDGqi090s/sHvokPfzOUZyvCP2wgISfmT3ijngHKK/XYiXVVUrDVert42SaBB94P1qR/p+VmsJbUAFFOziV2bgjY8zILIhUKjvcOEPHxXUtt2wf02+w= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB3255.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(376002)(396003)(346002)(136003)(39860400002)(366004)(451199015)(38070700005)(38100700002)(122000001)(33656002)(6486002)(86362001)(6916009)(316002)(71200400001)(478600001)(5660300002)(66446008)(2906002)(8936002)(76116006)(66476007)(30864003)(66946007)(64756008)(66556008)(41300700001)(4326008)(83380400001)(8676002)(66574015)(6506007)(53546011)(186003)(6512007)(26005)(2616005)(36756003)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dDhzWFFIVnZkRDd1a3FqMW9IV3VGWkZPdmFvaUVic3QzRXZlRkVJN3RNTFF5?= =?utf-8?B?T2NkTkl4dlRYZHNrNCtYTGxMUXVuYUR2MHQzZ3g3cHU4SXl4QlFiZVptK3lY?= =?utf-8?B?RmFnU1Z2VmtlNnpHTTlCZ3luQ2lpT2gwVnBZRkpXUmZYSjFxU0pwb1B2ZXVL?= =?utf-8?B?N2RWZGYxWEtQOEk5dWhNYUNhdVovaDJFaUZVV3p6a2dRVHBDMXN3TlJ5bUdw?= =?utf-8?B?cVIrUUc2TUZsSUNZaXpJaS9yRW1xUDE1K2ZNTUFaRjRXVE5zY0ljaEpvUzNF?= =?utf-8?B?VVd3cEI2a3BDZTUreE0xdzlPempuVTYxd0Mva0NGRGlsZjJ6NkdTZm8zYUtK?= =?utf-8?B?MXp2UTZ5OHVJdFB1UkE4VzBOV1Nxei9DTUpSeHhmNlJNRXBLU2pNbVhuOE1h?= =?utf-8?B?aHBzRWZpdVJiazdURi9mazdQZ2ozTVppeTRxQW5yQ2pnYi93QUZBY09vSEJT?= =?utf-8?B?czI4blNTeHFoMnFpY2RidzVvZEIxb3FmZGxUeWJMUkJGbVhEUC9mTUZhRTVO?= =?utf-8?B?UVdWNmMyZGVUNkZKTU1JQkV0Z21SNnQ5MEVsTlcvdTRmazRleFdZT0N6UXd0?= =?utf-8?B?cDV0aXpaNVFERk5RNktTbzJVS1llRlR0UUxhSlFrWWVJWnMrdG9rdmVOTFhD?= =?utf-8?B?Vm8yKzFVSi9OUGRrbUFtMldHQmlUT2MrUzR1Tm1uMUY2eE5iN2UxU2N2L3RT?= =?utf-8?B?MENMVjc1WXROZjIweVIzRHNJNXZFZ2VqUGxqSmIzTEh3cUl4YWNVRWdRVmVs?= =?utf-8?B?bG1mQTdaZFBKbTFKMDg3djBnZzk3Um1ULzJ6alkwT25NdzJXTnFobnpjSlVu?= =?utf-8?B?SThVSk1CRHh0aWQyTmhmMm1xd3hxZ2szNklONHIzcHJINThQUWFGd1JKQVJG?= =?utf-8?B?OFBqK3RpWGIva0Iyayt1dXBZV0RudmFvMklkdEtTVm5wN2pPSmFvRHB6c3Y5?= =?utf-8?B?OXpMcUFJTFoxNjZ4b2hZVWViMVRNTWt5R2p4UG15S2dPMU1NSThoenRhL0Zu?= =?utf-8?B?bW9OY2ZDdjcvdlhvNDhrYUpORzh3bFNQMHhhbzJaVy9Od1RCNFZrbUlzU2xu?= =?utf-8?B?MmdBSlN6L3Q1a1BvdXNXQ0NWZ3hla2hETVRRUWhXeUYyM1RNZGUzSk9UYU9s?= =?utf-8?B?WVYzOWYyVThaZWFDd0ZoWnhNS085WmQ1T3BjbEtqM1QrVm5KTkFXMVZwcnVt?= =?utf-8?B?RlZncGQ5aFBYVUVZSDl4WUgwTmI1QldsTjhxQjRONGVPa28rWFJxajhENktn?= =?utf-8?B?QjByNzVoeGFFZ1ZBUVJzUHNpZFFsaXlJTWdCcVFtd2VIMzlkQlNTZmYyb0JI?= =?utf-8?B?Umo4Zm9neC81YTZRVHVubjBxcS9SR1ZQcFl1c3R0bGxkTFB4bVltVkxXT0Vw?= =?utf-8?B?VzcrUEJuUDNHRXZ1SGlNVEJ0c0FHY0dOZUFZNk5POTBCNy9MNVFTaXVNMENm?= =?utf-8?B?cllyWjlQQjIwWTJIVzE3SUk2ZERQRHkzNDN6M29MTTMvbzViQlltSWVTaEZn?= =?utf-8?B?cVRpbDA3R3p4N3VON0FtLzMyWmlzRE5oMXc5QldBN1Z2QXhZTm0zSUlqbVlE?= =?utf-8?B?bzZTMGR4M2pKa0crMFFYbVMrNXRLbDNVZXc2ZmxkZHZEaTFRV2J5amYxbjc2?= =?utf-8?B?Y2J5NFJtK0pqaCtzb2dHakZYekdWSTBKdS8xZktYbERtcnpDeWo4ODcvLzhB?= =?utf-8?B?OTZHQ3VHcnltREMwTmFaOWxKWG9UVFYvd3hEOU1paU1Gbi84U01vdjV3c2VJ?= =?utf-8?B?ZE0vOHAzTWJsOTUwbEhwYXVSTFZmLzVxSXk3WGxlaXc4OUxFQkpaZXdWTHVt?= =?utf-8?B?TmQ0Z0dyNHhGaXMrRWluYlZGZU9vbU5OTVBRdC9oK2haZHhmWUcwS2RKMklV?= =?utf-8?B?S3dwNGtnT0RnMEJrYlZKUnVUNzE1RzRmNk12YndQNG1CVFBtWVBkbTRYN25a?= =?utf-8?B?VVpReUljTS92NEJscTN1Qzh6TFpNblIxanVvZFpheG93dDd1T283VTNwbnY3?= =?utf-8?B?czlCMDlTRkdvSVlLQ01iZGV2R1lTWGpEeExVZnhDdWdSS2N4ZWl1V0ZXVmhB?= =?utf-8?B?ZjFnc3VabnV4aStnTXVYVnZOTzA4Uk9zaS9vQlVBQzBqd2FzS1J5VWpRb1ll?= =?utf-8?B?RWRXTDJHZTJGekRkZzhBVmk4cUt0TzRkMWxyLytudkxkdVNkV2pRQjhqK2Vu?= =?utf-8?B?ckE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3255.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46f312fc-2025-42cd-a22c-08dadc7fa5f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2022 20:30:02.9551 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /19igXHlpq9fFDfA37ug3q0CJ+NvEwACxkJ1WM33YJKtsuHiY8aY1BqegXKQespdAu3TaYPhjl/NXcW/3TIHN8h5AbGr2zY/EUf23ca+2wY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6832 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-12_02,2022-12-12_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212120181 X-Proofpoint-GUID: ilwxwtNDL9-_MmQHKDQsEsNpYuCLrgzO X-Proofpoint-ORIG-GUID: ilwxwtNDL9-_MmQHKDQsEsNpYuCLrgzO Received-SPF: pass client-ip=205.220.177.32; envelope-from=john.g.johnson@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org DQoJSSBjYW4gbG9vayBpbnRvIHVzaW5nIG9yZGVyZmlsZQ0KDQoJCQkJSkoNCg0KDQo+IE9uIERl YyA5LCAyMDIyLCBhdCA4OjA0IEFNLCBDw6lkcmljIExlIEdvYXRlciA8Y2xnQHJlZGhhdC5jb20+ IHdyb3RlOg0KPiANCj4gSGVsbG8gSm9obiwNCj4gDQo+IE9uIDExLzkvMjIgMDA6MTMsIEpvaG4g Sm9obnNvbiB3cm90ZToNCj4+IEFkZCBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGJvdGggdGhlIGtl cm5lbCBkcml2ZXINCj4+IGFuZCB1c2VyIHNvY2tldCBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSB0 byBzaGFyZSBjb2RlLg0KPj4gU2lnbmVkLW9mZi1ieTogSm9obiBHIEpvaG5zb24gPGpvaG4uZy5q b2huc29uQG9yYWNsZS5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBFbGVuYSBVZmltdHNldmEgPGVs ZW5hLnVmaW10c2V2YUBvcmFjbGUuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSmFnYW5uYXRoYW4g UmFtYW4gPGphZy5yYW1hbkBvcmFjbGUuY29tPg0KPiANCj4gSSB3b3VsZCBoZWxwIHRoZSByZWFk ZXIgaWYgdGhlIGhlYWRlciBmaWxlcyBjYW1lIGZpcnN0LiBZb3UgY291bGQgdXNlIDoNCj4gDQo+ ICBbZGlmZl0NCj4gCW9yZGVyRmlsZSA9IC9wYXRoL3RvL3FlbXUvc2NyaXB0cy9naXQub3JkZXJm aWxlDQo+IA0KPiANCj4gSSB3b3VsZCBzaW1wbHkgdXNlICdLZXJuZWwnIGluc3RlYWQgb2YgJ0tl cm4nIGluIHRoZSB0eXBlIGRlZmluaXRpb24uDQo+IEEgcGFydCBmcm9tIHRoYXQsDQo+IA0KPiBS ZXZpZXdlZC1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNsZ0ByZWRoYXQuY29tPg0KPiANCj4gVGhh bmtzLA0KPiANCj4gQy4NCj4gDQo+PiAtLS0NCj4+ICBody92ZmlvL3BjaS5jIHwgMTA2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ ICBody92ZmlvL3BjaS5oIHwgIDE2ICsrKysrKystLQ0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgNzgg aW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pDQo+PiBkaWZmIC0tZ2l0IGEvaHcvdmZpby9w Y2kuYyBiL2h3L3ZmaW8vcGNpLmMNCj4+IGluZGV4IDkzOWRjYzMuLjYwYWNkZTUgMTAwNjQ0DQo+ PiAtLS0gYS9ody92ZmlvL3BjaS5jDQo+PiArKysgYi9ody92ZmlvL3BjaS5jDQo+PiBAQCAtMjM1 LDcgKzIzNSw3IEBAIHN0YXRpYyB2b2lkIHZmaW9faW50eF91cGRhdGUoVkZJT1BDSURldmljZSAq dmRldiwgUENJSU5UeFJvdXRlICpyb3V0ZSkNCj4+ICAgIHN0YXRpYyB2b2lkIHZmaW9faW50eF9y b3V0aW5nX25vdGlmaWVyKFBDSURldmljZSAqcGRldikNCj4+ICB7DQo+PiAtICAgIFZGSU9QQ0lE ZXZpY2UgKnZkZXYgPSBWRklPX1BDSShwZGV2KTsNCj4+ICsgICAgVkZJT1BDSURldmljZSAqdmRl diA9IFZGSU9fUENJX0JBU0UocGRldik7DQo+PiAgICAgIFBDSUlOVHhSb3V0ZSByb3V0ZTsNCj4+ ICAgICAgICBpZiAodmRldi0+aW50ZXJydXB0ICE9IFZGSU9fSU5UX0lOVHgpIHsNCj4+IEBAIC00 NjcsNyArNDY3LDcgQEAgc3RhdGljIHZvaWQgdmZpb191cGRhdGVfa3ZtX21zaV92aXJxKFZGSU9N U0lWZWN0b3IgKnZlY3RvciwgTVNJTWVzc2FnZSBtc2csDQo+PiAgc3RhdGljIGludCB2ZmlvX21z aXhfdmVjdG9yX2RvX3VzZShQQ0lEZXZpY2UgKnBkZXYsIHVuc2lnbmVkIGludCBuciwNCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1TSU1lc3NhZ2UgKm1zZywgSU9IYW5k bGVyICpoYW5kbGVyKQ0KPj4gIHsNCj4+IC0gICAgVkZJT1BDSURldmljZSAqdmRldiA9IFZGSU9f UENJKHBkZXYpOw0KPj4gKyAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0gVkZJT19QQ0lfQkFTRShw ZGV2KTsNCj4+ICAgICAgVkZJT01TSVZlY3RvciAqdmVjdG9yOw0KPj4gICAgICBpbnQgcmV0Ow0K Pj4gIEBAIC01NjEsNyArNTYxLDcgQEAgc3RhdGljIGludCB2ZmlvX21zaXhfdmVjdG9yX3VzZShQ Q0lEZXZpY2UgKnBkZXYsDQo+PiAgICBzdGF0aWMgdm9pZCB2ZmlvX21zaXhfdmVjdG9yX3JlbGVh c2UoUENJRGV2aWNlICpwZGV2LCB1bnNpZ25lZCBpbnQgbnIpDQo+PiAgew0KPj4gLSAgICBWRklP UENJRGV2aWNlICp2ZGV2ID0gVkZJT19QQ0kocGRldik7DQo+PiArICAgIFZGSU9QQ0lEZXZpY2Ug KnZkZXYgPSBWRklPX1BDSV9CQVNFKHBkZXYpOw0KPj4gICAgICBWRklPTVNJVmVjdG9yICp2ZWN0 b3IgPSAmdmRldi0+bXNpX3ZlY3RvcnNbbnJdOw0KPj4gICAgICAgIHRyYWNlX3ZmaW9fbXNpeF92 ZWN0b3JfcmVsZWFzZSh2ZGV2LT52YmFzZWRldi5uYW1lLCBucik7DQo+PiBAQCAtMTEwOSw3ICsx MTA5LDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyB2ZmlvX3ZnYV9vcHMgPSB7DQo+ PiAgICovDQo+PiAgc3RhdGljIHZvaWQgdmZpb19zdWJfcGFnZV9iYXJfdXBkYXRlX21hcHBpbmco UENJRGV2aWNlICpwZGV2LCBpbnQgYmFyKQ0KPj4gIHsNCj4+IC0gICAgVkZJT1BDSURldmljZSAq dmRldiA9IFZGSU9fUENJKHBkZXYpOw0KPj4gKyAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0gVkZJ T19QQ0lfQkFTRShwZGV2KTsNCj4+ICAgICAgVkZJT1JlZ2lvbiAqcmVnaW9uID0gJnZkZXYtPmJh cnNbYmFyXS5yZWdpb247DQo+PiAgICAgIE1lbW9yeVJlZ2lvbiAqbW1hcF9tciwgKnJlZ2lvbl9t ciwgKmJhc2VfbXI7DQo+PiAgICAgIFBDSUlPUmVnaW9uICpyOw0KPj4gQEAgLTExNTUsNyArMTE1 NSw3IEBAIHN0YXRpYyB2b2lkIHZmaW9fc3ViX3BhZ2VfYmFyX3VwZGF0ZV9tYXBwaW5nKFBDSURl dmljZSAqcGRldiwgaW50IGJhcikNCj4+ICAgKi8NCj4+ICB1aW50MzJfdCB2ZmlvX3BjaV9yZWFk X2NvbmZpZyhQQ0lEZXZpY2UgKnBkZXYsIHVpbnQzMl90IGFkZHIsIGludCBsZW4pDQo+PiAgew0K Pj4gLSAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0gVkZJT19QQ0kocGRldik7DQo+PiArICAgIFZG SU9QQ0lEZXZpY2UgKnZkZXYgPSBWRklPX1BDSV9CQVNFKHBkZXYpOw0KPj4gICAgICB1aW50MzJf dCBlbXVfYml0cyA9IDAsIGVtdV92YWwgPSAwLCBwaHlzX3ZhbCA9IDAsIHZhbDsNCj4+ICAgICAg ICBtZW1jcHkoJmVtdV9iaXRzLCB2ZGV2LT5lbXVsYXRlZF9jb25maWdfYml0cyArIGFkZHIsIGxl bik7DQo+PiBAQCAtMTE4OCw3ICsxMTg4LDcgQEAgdWludDMyX3QgdmZpb19wY2lfcmVhZF9jb25m aWcoUENJRGV2aWNlICpwZGV2LCB1aW50MzJfdCBhZGRyLCBpbnQgbGVuKQ0KPj4gIHZvaWQgdmZp b19wY2lfd3JpdGVfY29uZmlnKFBDSURldmljZSAqcGRldiwNCj4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwsIGludCBsZW4pDQo+PiAgew0K Pj4gLSAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0gVkZJT19QQ0kocGRldik7DQo+PiArICAgIFZG SU9QQ0lEZXZpY2UgKnZkZXYgPSBWRklPX1BDSV9CQVNFKHBkZXYpOw0KPj4gICAgICB1aW50MzJf dCB2YWxfbGUgPSBjcHVfdG9fbGUzMih2YWwpOw0KPj4gICAgICAgIHRyYWNlX3ZmaW9fcGNpX3dy aXRlX2NvbmZpZyh2ZGV2LT52YmFzZWRldi5uYW1lLCBhZGRyLCB2YWwsIGxlbik7DQo+PiBAQCAt Mjg0NSw3ICsyODQ1LDcgQEAgc3RhdGljIHZvaWQgdmZpb191bnJlZ2lzdGVyX3JlcV9ub3RpZmll cihWRklPUENJRGV2aWNlICp2ZGV2KQ0KPj4gICAgc3RhdGljIHZvaWQgdmZpb19yZWFsaXplKFBD SURldmljZSAqcGRldiwgRXJyb3IgKiplcnJwKQ0KPj4gIHsNCj4+IC0gICAgVkZJT1BDSURldmlj ZSAqdmRldiA9IFZGSU9fUENJKHBkZXYpOw0KPj4gKyAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0g VkZJT19QQ0lfQkFTRShwZGV2KTsNCj4+ICAgICAgVkZJT0RldmljZSAqdmJhc2VkZXYgPSAmdmRl di0+dmJhc2VkZXY7DQo+PiAgICAgIFZGSU9EZXZpY2UgKnZiYXNlZGV2X2l0ZXI7DQo+PiAgICAg IFZGSU9Hcm91cCAqZ3JvdXA7DQo+PiBAQCAtMzE2OSw3ICszMTY5LDcgQEAgZXJyb3I6DQo+PiAg ICBzdGF0aWMgdm9pZCB2ZmlvX2luc3RhbmNlX2ZpbmFsaXplKE9iamVjdCAqb2JqKQ0KPj4gIHsN Cj4+IC0gICAgVkZJT1BDSURldmljZSAqdmRldiA9IFZGSU9fUENJKG9iaik7DQo+PiArICAgIFZG SU9QQ0lEZXZpY2UgKnZkZXYgPSBWRklPX1BDSV9CQVNFKG9iaik7DQo+PiAgICAgIFZGSU9Hcm91 cCAqZ3JvdXAgPSB2ZGV2LT52YmFzZWRldi5ncm91cDsNCj4+ICAgICAgICB2ZmlvX2Rpc3BsYXlf ZmluYWxpemUodmRldik7DQo+PiBAQCAtMzE4OSw3ICszMTg5LDcgQEAgc3RhdGljIHZvaWQgdmZp b19pbnN0YW5jZV9maW5hbGl6ZShPYmplY3QgKm9iaikNCj4+ICAgIHN0YXRpYyB2b2lkIHZmaW9f ZXhpdGZuKFBDSURldmljZSAqcGRldikNCj4+ICB7DQo+PiAtICAgIFZGSU9QQ0lEZXZpY2UgKnZk ZXYgPSBWRklPX1BDSShwZGV2KTsNCj4+ICsgICAgVkZJT1BDSURldmljZSAqdmRldiA9IFZGSU9f UENJX0JBU0UocGRldik7DQo+PiAgICAgICAgdmZpb191bnJlZ2lzdGVyX3JlcV9ub3RpZmllcih2 ZGV2KTsNCj4+ICAgICAgdmZpb191bnJlZ2lzdGVyX2Vycl9ub3RpZmllcih2ZGV2KTsNCj4+IEBA IC0zMjA4LDcgKzMyMDgsNyBAQCBzdGF0aWMgdm9pZCB2ZmlvX2V4aXRmbihQQ0lEZXZpY2UgKnBk ZXYpDQo+PiAgICBzdGF0aWMgdm9pZCB2ZmlvX3BjaV9yZXNldChEZXZpY2VTdGF0ZSAqZGV2KQ0K Pj4gIHsNCj4+IC0gICAgVkZJT1BDSURldmljZSAqdmRldiA9IFZGSU9fUENJKGRldik7DQo+PiAr ICAgIFZGSU9QQ0lEZXZpY2UgKnZkZXYgPSBWRklPX1BDSV9CQVNFKGRldik7DQo+PiAgICAgICAg dHJhY2VfdmZpb19wY2lfcmVzZXQodmRldi0+dmJhc2VkZXYubmFtZSk7DQo+PiAgQEAgLTMyNDgs NyArMzI0OCw3IEBAIHBvc3RfcmVzZXQ6DQo+PiAgc3RhdGljIHZvaWQgdmZpb19pbnN0YW5jZV9p bml0KE9iamVjdCAqb2JqKQ0KPj4gIHsNCj4+ICAgICAgUENJRGV2aWNlICpwY2lfZGV2ID0gUENJ X0RFVklDRShvYmopOw0KPj4gLSAgICBWRklPUENJRGV2aWNlICp2ZGV2ID0gVkZJT19QQ0kob2Jq KTsNCj4+ICsgICAgVkZJT1BDSURldmljZSAqdmRldiA9IFZGSU9fUENJX0JBU0Uob2JqKTsNCj4+ ICAgICAgICBkZXZpY2VfYWRkX2Jvb3RpbmRleF9wcm9wZXJ0eShvYmosICZ2ZGV2LT5ib290aW5k ZXgsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib290aW5kZXgiLCBO VUxMLA0KPj4gQEAgLTMyNjUsMjQgKzMyNjUsMTIgQEAgc3RhdGljIHZvaWQgdmZpb19pbnN0YW5j ZV9pbml0KE9iamVjdCAqb2JqKQ0KPj4gICAgICBwY2lfZGV2LT5jYXBfcHJlc2VudCB8PSBRRU1V X1BDSV9DQVBfRVhQUkVTUzsNCj4+ICB9DQo+PiAgLXN0YXRpYyBQcm9wZXJ0eSB2ZmlvX3BjaV9k ZXZfcHJvcGVydGllc1tdID0gew0KPj4gLSAgICBERUZJTkVfUFJPUF9QQ0lfSE9TVF9ERVZBRERS KCJob3N0IiwgVkZJT1BDSURldmljZSwgaG9zdCksDQo+PiAtICAgIERFRklORV9QUk9QX1NUUklO Rygic3lzZnNkZXYiLCBWRklPUENJRGV2aWNlLCB2YmFzZWRldi5zeXNmc2RldiksDQo+PiArc3Rh dGljIFByb3BlcnR5IHZmaW9fcGNpX2Jhc2VfZGV2X3Byb3BlcnRpZXNbXSA9IHsNCj4+ICAgICAg REVGSU5FX1BST1BfT05fT0ZGX0FVVE8oIngtcHJlLWNvcHktZGlydHktcGFnZS10cmFja2luZyIs IFZGSU9QQ0lEZXZpY2UsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZiYXNlZGV2 LnByZV9jb3B5X2RpcnR5X3BhZ2VfdHJhY2tpbmcsDQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9OX09GRl9BVVRPX09OKSwNCj4+IC0gICAgREVGSU5FX1BST1BfT05fT0ZGX0FVVE8o ImRpc3BsYXkiLCBWRklPUENJRGV2aWNlLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkaXNwbGF5LCBPTl9PRkZfQVVUT19PRkYpLA0KPj4gLSAgICBERUZJTkVfUFJPUF9VSU5UMzIo InhyZXMiLCBWRklPUENJRGV2aWNlLCBkaXNwbGF5X3hyZXMsIDApLA0KPj4gLSAgICBERUZJTkVf UFJPUF9VSU5UMzIoInlyZXMiLCBWRklPUENJRGV2aWNlLCBkaXNwbGF5X3lyZXMsIDApLA0KPj4g ICAgICBERUZJTkVfUFJPUF9VSU5UMzIoIngtaW50eC1tbWFwLXRpbWVvdXQtbXMiLCBWRklPUENJ RGV2aWNlLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgaW50eC5tbWFwX3RpbWVvdXQsIDEx MDApLA0KPj4gLSAgICBERUZJTkVfUFJPUF9CSVQoIngtdmdhIiwgVkZJT1BDSURldmljZSwgZmVh dHVyZXMsDQo+PiAtICAgICAgICAgICAgICAgICAgICBWRklPX0ZFQVRVUkVfRU5BQkxFX1ZHQV9C SVQsIGZhbHNlKSwNCj4+IC0gICAgREVGSU5FX1BST1BfQklUKCJ4LXJlcSIsIFZGSU9QQ0lEZXZp Y2UsIGZlYXR1cmVzLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgVkZJT19GRUFUVVJFX0VOQUJM RV9SRVFfQklULCB0cnVlKSwNCj4+IC0gICAgREVGSU5FX1BST1BfQklUKCJ4LWlnZC1vcHJlZ2lv biIsIFZGSU9QQ0lEZXZpY2UsIGZlYXR1cmVzLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgVkZJ T19GRUFUVVJFX0VOQUJMRV9JR0RfT1BSRUdJT05fQklULCBmYWxzZSksDQo+PiAgICAgIERFRklO RV9QUk9QX0JPT0woIngtZW5hYmxlLW1pZ3JhdGlvbiIsIFZGSU9QQ0lEZXZpY2UsDQo+PiAgICAg ICAgICAgICAgICAgICAgICAgdmJhc2VkZXYuZW5hYmxlX21pZ3JhdGlvbiwgZmFsc2UpLA0KPj4g ICAgICBERUZJTkVfUFJPUF9CT09MKCJ4LW5vLW1tYXAiLCBWRklPUENJRGV2aWNlLCB2YmFzZWRl di5ub19tbWFwLCBmYWxzZSksDQo+PiBAQCAtMzI5MSw4ICszMjc5LDYgQEAgc3RhdGljIFByb3Bl cnR5IHZmaW9fcGNpX2Rldl9wcm9wZXJ0aWVzW10gPSB7DQo+PiAgICAgIERFRklORV9QUk9QX0JP T0woIngtbm8ta3ZtLWludHgiLCBWRklPUENJRGV2aWNlLCBub19rdm1faW50eCwgZmFsc2UpLA0K Pj4gICAgICBERUZJTkVfUFJPUF9CT09MKCJ4LW5vLWt2bS1tc2kiLCBWRklPUENJRGV2aWNlLCBu b19rdm1fbXNpLCBmYWxzZSksDQo+PiAgICAgIERFRklORV9QUk9QX0JPT0woIngtbm8ta3ZtLW1z aXgiLCBWRklPUENJRGV2aWNlLCBub19rdm1fbXNpeCwgZmFsc2UpLA0KPj4gLSAgICBERUZJTkVf UFJPUF9CT09MKCJ4LW5vLWdlZm9yY2UtcXVpcmtzIiwgVkZJT1BDSURldmljZSwNCj4+IC0gICAg ICAgICAgICAgICAgICAgICBub19nZWZvcmNlX3F1aXJrcywgZmFsc2UpLA0KPj4gICAgICBERUZJ TkVfUFJPUF9CT09MKCJ4LW5vLWt2bS1pb2V2ZW50ZmQiLCBWRklPUENJRGV2aWNlLCBub19rdm1f aW9ldmVudGZkLA0KPj4gICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSwNCj4+ICAgICAgREVG SU5FX1BST1BfQk9PTCgieC1uby12ZmlvLWlvZXZlbnRmZCIsIFZGSU9QQ0lEZXZpY2UsIG5vX3Zm aW9faW9ldmVudGZkLA0KPj4gQEAgLTMzMDMsMTAgKzMyODksNiBAQCBzdGF0aWMgUHJvcGVydHkg dmZpb19wY2lfZGV2X3Byb3BlcnRpZXNbXSA9IHsNCj4+ICAgICAgICAgICAgICAgICAgICAgICAg IHN1Yl92ZW5kb3JfaWQsIFBDSV9BTllfSUQpLA0KPj4gICAgICBERUZJTkVfUFJPUF9VSU5UMzIo IngtcGNpLXN1Yi1kZXZpY2UtaWQiLCBWRklPUENJRGV2aWNlLA0KPj4gICAgICAgICAgICAgICAg ICAgICAgICAgc3ViX2RldmljZV9pZCwgUENJX0FOWV9JRCksDQo+PiAtICAgIERFRklORV9QUk9Q X1VJTlQzMigieC1pZ2QtZ21zIiwgVkZJT1BDSURldmljZSwgaWdkX2dtcywgMCksDQo+PiAtICAg IERFRklORV9QUk9QX1VOU0lHTkVEX05PREVGQVVMVCgieC1udi1ncHVkaXJlY3QtY2xpcXVlIiwg VkZJT1BDSURldmljZSwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG52 X2dwdWRpcmVjdF9jbGlxdWUsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBxZGV2X3Byb3BfbnZfZ3B1ZGlyZWN0X2NsaXF1ZSwgdWludDhfdCksDQo+PiAgICAgIERFRklO RV9QUk9QX09GRl9BVVRPX1BDSUJBUigieC1tc2l4LXJlbG9jYXRpb24iLCBWRklPUENJRGV2aWNl LCBtc2l4X3JlbG8sDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRkZfQVVU T1BDSUJBUl9PRkYpLA0KPj4gICAgICAvKg0KPj4gQEAgLTMzMTcsMjggKzMyOTksMjUgQEAgc3Rh dGljIFByb3BlcnR5IHZmaW9fcGNpX2Rldl9wcm9wZXJ0aWVzW10gPSB7DQo+PiAgICAgIERFRklO RV9QUk9QX0VORF9PRl9MSVNUKCksDQo+PiAgfTsNCj4+ICAtc3RhdGljIHZvaWQgdmZpb19wY2lf ZGV2X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCB2b2lkICpkYXRhKQ0KPj4gK3N0YXRp YyB2b2lkIHZmaW9fcGNpX2Jhc2VfZGV2X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCB2 b2lkICpkYXRhKQ0KPj4gIHsNCj4+ICAgICAgRGV2aWNlQ2xhc3MgKmRjID0gREVWSUNFX0NMQVNT KGtsYXNzKTsNCj4+ICAgICAgUENJRGV2aWNlQ2xhc3MgKnBkYyA9IFBDSV9ERVZJQ0VfQ0xBU1Mo a2xhc3MpOw0KPj4gIC0gICAgZGMtPnJlc2V0ID0gdmZpb19wY2lfcmVzZXQ7DQo+PiAtICAgIGRl dmljZV9jbGFzc19zZXRfcHJvcHMoZGMsIHZmaW9fcGNpX2Rldl9wcm9wZXJ0aWVzKTsNCj4+IC0g ICAgZGMtPmRlc2MgPSAiVkZJTy1iYXNlZCBQQ0kgZGV2aWNlIGFzc2lnbm1lbnQiOw0KPj4gKyAg ICBkZXZpY2VfY2xhc3Nfc2V0X3Byb3BzKGRjLCB2ZmlvX3BjaV9iYXNlX2Rldl9wcm9wZXJ0aWVz KTsNCj4+ICsgICAgZGMtPmRlc2MgPSAiVkZJTyBQQ0kgYmFzZSBkZXZpY2UiOw0KPj4gICAgICBz ZXRfYml0KERFVklDRV9DQVRFR09SWV9NSVNDLCBkYy0+Y2F0ZWdvcmllcyk7DQo+PiAtICAgIHBk Yy0+cmVhbGl6ZSA9IHZmaW9fcmVhbGl6ZTsNCj4+ICAgICAgcGRjLT5leGl0ID0gdmZpb19leGl0 Zm47DQo+PiAgICAgIHBkYy0+Y29uZmlnX3JlYWQgPSB2ZmlvX3BjaV9yZWFkX2NvbmZpZzsNCj4+ ICAgICAgcGRjLT5jb25maWdfd3JpdGUgPSB2ZmlvX3BjaV93cml0ZV9jb25maWc7DQo+PiAgfQ0K Pj4gIC1zdGF0aWMgY29uc3QgVHlwZUluZm8gdmZpb19wY2lfZGV2X2luZm8gPSB7DQo+PiAtICAg IC5uYW1lID0gVFlQRV9WRklPX1BDSSwNCj4+ICtzdGF0aWMgY29uc3QgVHlwZUluZm8gdmZpb19w Y2lfYmFzZV9kZXZfaW5mbyA9IHsNCj4+ICsgICAgLm5hbWUgPSBUWVBFX1ZGSU9fUENJX0JBU0Us DQo+PiAgICAgIC5wYXJlbnQgPSBUWVBFX1BDSV9ERVZJQ0UsDQo+PiAtICAgIC5pbnN0YW5jZV9z aXplID0gc2l6ZW9mKFZGSU9QQ0lEZXZpY2UpLA0KPj4gLSAgICAuY2xhc3NfaW5pdCA9IHZmaW9f cGNpX2Rldl9jbGFzc19pbml0LA0KPj4gLSAgICAuaW5zdGFuY2VfaW5pdCA9IHZmaW9faW5zdGFu Y2VfaW5pdCwNCj4+IC0gICAgLmluc3RhbmNlX2ZpbmFsaXplID0gdmZpb19pbnN0YW5jZV9maW5h bGl6ZSwNCj4+ICsgICAgLmluc3RhbmNlX3NpemUgPSAwLA0KPj4gKyAgICAuYWJzdHJhY3QgPSB0 cnVlLA0KPj4gKyAgICAuY2xhc3NfaW5pdCA9IHZmaW9fcGNpX2Jhc2VfZGV2X2NsYXNzX2luaXQs DQo+PiAgICAgIC5pbnRlcmZhY2VzID0gKEludGVyZmFjZUluZm9bXSkgew0KPj4gICAgICAgICAg eyBJTlRFUkZBQ0VfUENJRV9ERVZJQ0UgfSwNCj4+ICAgICAgICAgIHsgSU5URVJGQUNFX0NPTlZF TlRJT05BTF9QQ0lfREVWSUNFIH0sDQo+PiBAQCAtMzM0Niw2ICszMzI1LDQ4IEBAIHN0YXRpYyBj b25zdCBUeXBlSW5mbyB2ZmlvX3BjaV9kZXZfaW5mbyA9IHsNCj4+ICAgICAgfSwNCj4+ICB9Ow0K Pj4gICtzdGF0aWMgUHJvcGVydHkgdmZpb19wY2lfZGV2X3Byb3BlcnRpZXNbXSA9IHsNCj4+ICsg ICAgREVGSU5FX1BST1BfUENJX0hPU1RfREVWQUREUigiaG9zdCIsIFZGSU9QQ0lEZXZpY2UsIGhv c3QpLA0KPj4gKyAgICBERUZJTkVfUFJPUF9TVFJJTkcoInN5c2ZzZGV2IiwgVkZJT1BDSURldmlj ZSwgdmJhc2VkZXYuc3lzZnNkZXYpLA0KPj4gKyAgICBERUZJTkVfUFJPUF9PTl9PRkZfQVVUTygi ZGlzcGxheSIsIFZGSU9QQ0lEZXZpY2UsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRpc3BsYXksIE9OX09GRl9BVVRPX09GRiksDQo+PiArICAgIERFRklORV9QUk9QX1VJTlQzMigi eHJlcyIsIFZGSU9QQ0lEZXZpY2UsIGRpc3BsYXlfeHJlcywgMCksDQo+PiArICAgIERFRklORV9Q Uk9QX1VJTlQzMigieXJlcyIsIFZGSU9QQ0lEZXZpY2UsIGRpc3BsYXlfeXJlcywgMCksDQo+PiAr ICAgIERFRklORV9QUk9QX0JJVCgieC12Z2EiLCBWRklPUENJRGV2aWNlLCBmZWF0dXJlcywNCj4+ ICsgICAgICAgICAgICAgICAgICAgIFZGSU9fRkVBVFVSRV9FTkFCTEVfVkdBX0JJVCwgZmFsc2Up LA0KPj4gKyAgICBERUZJTkVfUFJPUF9CSVQoIngtcmVxIiwgVkZJT1BDSURldmljZSwgZmVhdHVy ZXMsDQo+PiArICAgICAgICAgICAgICAgICAgICBWRklPX0ZFQVRVUkVfRU5BQkxFX1JFUV9CSVQs IHRydWUpLA0KPj4gKyAgICBERUZJTkVfUFJPUF9CSVQoIngtaWdkLW9wcmVnaW9uIiwgVkZJT1BD SURldmljZSwgZmVhdHVyZXMsDQo+PiArICAgICAgICAgICAgICAgICAgICBWRklPX0ZFQVRVUkVf RU5BQkxFX0lHRF9PUFJFR0lPTl9CSVQsIGZhbHNlKSwNCj4+ICsgICAgREVGSU5FX1BST1BfQk9P TCgieC1uby1nZWZvcmNlLXF1aXJrcyIsIFZGSU9QQ0lEZXZpY2UsDQo+PiArICAgICAgICAgICAg ICAgICAgICAgbm9fZ2Vmb3JjZV9xdWlya3MsIGZhbHNlKSwNCj4+ICsgICAgREVGSU5FX1BST1Bf VUlOVDMyKCJ4LWlnZC1nbXMiLCBWRklPUENJRGV2aWNlLCBpZ2RfZ21zLCAwKSwNCj4+ICsgICAg REVGSU5FX1BST1BfVU5TSUdORURfTk9ERUZBVUxUKCJ4LW52LWdwdWRpcmVjdC1jbGlxdWUiLCBW RklPUENJRGV2aWNlLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnZf Z3B1ZGlyZWN0X2NsaXF1ZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHFkZXZfcHJvcF9udl9ncHVkaXJlY3RfY2xpcXVlLCB1aW50OF90KSwNCj4+ICsgICAgREVGSU5F X1BST1BfRU5EX09GX0xJU1QoKSwNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIHZmaW9f cGNpX2Rldl9jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFzcywgdm9pZCAqZGF0YSkNCj4+ICt7 DQo+PiArICAgIERldmljZUNsYXNzICpkYyA9IERFVklDRV9DTEFTUyhrbGFzcyk7DQo+PiArICAg IFBDSURldmljZUNsYXNzICpwZGMgPSBQQ0lfREVWSUNFX0NMQVNTKGtsYXNzKTsNCj4+ICsNCj4+ ICsgICAgZGMtPnJlc2V0ID0gdmZpb19wY2lfcmVzZXQ7DQo+PiArICAgIGRldmljZV9jbGFzc19z ZXRfcHJvcHMoZGMsIHZmaW9fcGNpX2Rldl9wcm9wZXJ0aWVzKTsNCj4+ICsgICAgZGMtPmRlc2Mg PSAiVkZJTy1iYXNlZCBQQ0kgZGV2aWNlIGFzc2lnbm1lbnQiOw0KPj4gKyAgICBwZGMtPnJlYWxp emUgPSB2ZmlvX3JlYWxpemU7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBUeXBlSW5m byB2ZmlvX3BjaV9kZXZfaW5mbyA9IHsNCj4+ICsgICAgLm5hbWUgPSBUWVBFX1ZGSU9fUENJLA0K Pj4gKyAgICAucGFyZW50ID0gVFlQRV9WRklPX1BDSV9CQVNFLA0KPj4gKyAgICAuaW5zdGFuY2Vf c2l6ZSA9IHNpemVvZihWRklPS2VyblBDSURldmljZSksDQo+PiArICAgIC5jbGFzc19pbml0ID0g dmZpb19wY2lfZGV2X2NsYXNzX2luaXQsDQo+PiArICAgIC5pbnN0YW5jZV9pbml0ID0gdmZpb19p bnN0YW5jZV9pbml0LA0KPj4gKyAgICAuaW5zdGFuY2VfZmluYWxpemUgPSB2ZmlvX2luc3RhbmNl X2ZpbmFsaXplLA0KPj4gK307DQo+PiArDQo+PiAgc3RhdGljIFByb3BlcnR5IHZmaW9fcGNpX2Rl dl9ub2hvdHBsdWdfcHJvcGVydGllc1tdID0gew0KPj4gICAgICBERUZJTkVfUFJPUF9CT09MKCJy YW1mYiIsIFZGSU9QQ0lEZXZpY2UsIGVuYWJsZV9yYW1mYiwgZmFsc2UpLA0KPj4gICAgICBERUZJ TkVfUFJPUF9FTkRfT0ZfTElTVCgpLA0KPj4gQEAgLTMzNjIsMTIgKzMzODMsMTMgQEAgc3RhdGlj IHZvaWQgdmZpb19wY2lfbm9ob3RwbHVnX2Rldl9jbGFzc19pbml0KE9iamVjdENsYXNzICprbGFz cywgdm9pZCAqZGF0YSkNCj4+ICBzdGF0aWMgY29uc3QgVHlwZUluZm8gdmZpb19wY2lfbm9ob3Rw bHVnX2Rldl9pbmZvID0gew0KPj4gICAgICAubmFtZSA9IFRZUEVfVkZJT19QQ0lfTk9IT1RQTFVH LA0KPj4gICAgICAucGFyZW50ID0gVFlQRV9WRklPX1BDSSwNCj4+IC0gICAgLmluc3RhbmNlX3Np emUgPSBzaXplb2YoVkZJT1BDSURldmljZSksDQo+PiArICAgIC5pbnN0YW5jZV9zaXplID0gc2l6 ZW9mKFZGSU9LZXJuUENJRGV2aWNlKSwNCj4+ICAgICAgLmNsYXNzX2luaXQgPSB2ZmlvX3BjaV9u b2hvdHBsdWdfZGV2X2NsYXNzX2luaXQsDQo+PiAgfTsNCj4+ICAgIHN0YXRpYyB2b2lkIHJlZ2lz dGVyX3ZmaW9fcGNpX2Rldl90eXBlKHZvaWQpDQo+PiAgew0KPj4gKyAgICB0eXBlX3JlZ2lzdGVy X3N0YXRpYygmdmZpb19wY2lfYmFzZV9kZXZfaW5mbyk7DQo+PiAgICAgIHR5cGVfcmVnaXN0ZXJf c3RhdGljKCZ2ZmlvX3BjaV9kZXZfaW5mbyk7DQo+PiAgICAgIHR5cGVfcmVnaXN0ZXJfc3RhdGlj KCZ2ZmlvX3BjaV9ub2hvdHBsdWdfZGV2X2luZm8pOw0KPj4gIH0NCj4+IGRpZmYgLS1naXQgYS9o dy92ZmlvL3BjaS5oIGIvaHcvdmZpby9wY2kuaA0KPj4gaW5kZXggN2MyMzZhNS4uN2M1YzhlYyAx MDA2NDQNCj4+IC0tLSBhL2h3L3ZmaW8vcGNpLmgNCj4+ICsrKyBiL2h3L3ZmaW8vcGNpLmgNCj4+ IEBAIC0xMTUsOCArMTE1LDEzIEBAIHR5cGVkZWYgc3RydWN0IFZGSU9NU0lYSW5mbyB7DQo+PiAg ICAgIHVuc2lnbmVkIGxvbmcgKnBlbmRpbmc7DQo+PiAgfSBWRklPTVNJWEluZm87DQo+PiAgLSNk ZWZpbmUgVFlQRV9WRklPX1BDSSAidmZpby1wY2kiDQo+PiAtT0JKRUNUX0RFQ0xBUkVfU0lNUExF X1RZUEUoVkZJT1BDSURldmljZSwgVkZJT19QQ0kpDQo+PiArLyoNCj4+ICsgKiBUWVBFX1ZGSU9f UENJX0JBU0UgaXMgYW4gYWJzdHJhY3QgdHlwZSB1c2VkIHRvIHNoYXJlIGNvZGUNCj4+ICsgKiBi ZXR3ZWVuIFZGSU8gaW1wbGVtZW50YXRpb25zIHRoYXQgdXNlIGEga2VybmVsIGRyaXZlcg0KPj4g KyAqIHdpdGggdGhvc2UgdGhhdCB1c2UgdXNlciBzb2NrZXRzLg0KPj4gKyAqLw0KPj4gKyNkZWZp bmUgVFlQRV9WRklPX1BDSV9CQVNFICJ2ZmlvLXBjaS1iYXNlIg0KPj4gK09CSkVDVF9ERUNMQVJF X1NJTVBMRV9UWVBFKFZGSU9QQ0lEZXZpY2UsIFZGSU9fUENJX0JBU0UpDQo+PiAgICBzdHJ1Y3Qg VkZJT1BDSURldmljZSB7DQo+PiAgICAgIFBDSURldmljZSBwZGV2Ow0KPj4gQEAgLTE3Nyw2ICsx ODIsMTMgQEAgc3RydWN0IFZGSU9QQ0lEZXZpY2Ugew0KPj4gICAgICBOb3RpZmllciBpcnFjaGlw X2NoYW5nZV9ub3RpZmllcjsNCj4+ICB9Ow0KPj4gICsjZGVmaW5lIFRZUEVfVkZJT19QQ0kgInZm aW8tcGNpIg0KPj4gK09CSkVDVF9ERUNMQVJFX1NJTVBMRV9UWVBFKFZGSU9LZXJuUENJRGV2aWNl LCBWRklPX1BDSSkNCj4+ICsNCj4+ICtzdHJ1Y3QgVkZJT0tlcm5QQ0lEZXZpY2Ugew0KPj4gKyAg ICBWRklPUENJRGV2aWNlIGRldmljZTsNCj4+ICt9Ow0KPj4gKw0KPj4gIC8qIFVzZSB1aW4zMl90 IGZvciB2ZW5kb3IgJiBkZXZpY2Ugc28gUENJX0FOWV9JRCBleHBhbmRzIGFuZCBjYW5ub3QgbWF0 Y2ggaHcgKi8NCj4+ICBzdGF0aWMgaW5saW5lIGJvb2wgdmZpb19wY2lfaXMoVkZJT1BDSURldmlj ZSAqdmRldiwgdWludDMyX3QgdmVuZG9yLCB1aW50MzJfdCBkZXZpY2UpDQo+PiAgew0KPiANCg0K