Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4109320yba; Tue, 7 May 2019 12:15:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqyFpq/O5n6I2zR3PXAz4GVCb9ayc+4nGgNP5IuT9AmRk+LM0ekMLUd0cvPOSsFFCMZTHFQp X-Received: by 2002:a63:c64c:: with SMTP id x12mr41561331pgg.379.1557256501592; Tue, 07 May 2019 12:15:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557256501; cv=none; d=google.com; s=arc-20160816; b=pHKld7USGeXb22Dds8F8bTkTLs8ZRA6FH1jOszbm3lxiN+WSFORcOXGA6xmbVHkPTL 7T5j+ns8GsurCCZLBjqswWnzdp4n6S6qOnt9inKOWKOnJPczRbC7d5z93rFGHqwk2sjl xE10Eh9l+8/5tuEw4nJofjWfYd7giVNaTKm85qBk3pmlrY7wM5PwLBz7vaQbyqGLLVIg h2ETNTAw4q5RHfyttu8WaGpGTP4a/wNGfALXKkdZKtZW+PNqmKLMyOUqp0f/PjKo4xqZ /CfUUt+ZpK4w/JURHS8bgSles4dZ2n5l3EAi/3axI+qsieRoP4NYOyrJ/6kZkIrR2EyS fMmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=OETcERvdxEccn4uxMv/L2c7hJBriL+YRSBY062rstiU=; b=N/YWMf0Y+CPHK7mFuBp84Ww9CkYeqmCU5NloqpPrQZ24tmg3N6H4OSxJto5SSij7Wc bKlEVALEbgpWvsw/26wPTNbUnmsEeayqywlxKNLSOLQBoAdQoBsVi9NdXoGmF+0GWtZl qUBWcuPuAtmmyIdKlvVoEEOcSoL6uEZi/JzUrgzAQ0uni1e8j7zUmkdGbmsx8dJ4Z5aO HGvqV+K8bHMSgfTEq2oZN6oHmNdJUUZgevcKy4Ow9GaEqQi7zwjhsQcDmUYQSOHI1lgJ coovtDTw5gb2AEi0BY98CZXzp7fEBk5mAujaB99DFH4Y7UEmUO361eg2Zo20llfXgcdD /cEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@Sony.onmicrosoft.com header.s=selector1-Sony-onmicrosoft-com header.b=OWMlIy5B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w8si19178687plz.301.2019.05.07.12.14.45; Tue, 07 May 2019 12:15:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@Sony.onmicrosoft.com header.s=selector1-Sony-onmicrosoft-com header.b=OWMlIy5B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726568AbfEGTNw (ORCPT + 99 others); Tue, 7 May 2019 15:13:52 -0400 Received: from mail-eopbgr800095.outbound.protection.outlook.com ([40.107.80.95]:6422 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726276AbfEGTNv (ORCPT ); Tue, 7 May 2019 15:13:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Sony.onmicrosoft.com; s=selector1-Sony-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OETcERvdxEccn4uxMv/L2c7hJBriL+YRSBY062rstiU=; b=OWMlIy5Bfxy8+2fxU1Hi/v6r8c1ChBdI3sL4uPdCZDUiMyG5nyH3FyfJJuioEWDWvT/fcJNrS+d4jwtNXNMmWKu2CBmk1Qw0vb4DD/BCtoe0MbtfFItEdR/w3H/yNKnPF34SlEVDFdIEtwQ8o300lpGgCQ0TbsqDoJo4dPtwPTk= Received: from MWHPR13CA0016.namprd13.prod.outlook.com (2603:10b6:300:16::26) by DM5PR13MB1401.namprd13.prod.outlook.com (2603:10b6:3:11c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1878.15; Tue, 7 May 2019 19:13:35 +0000 Received: from BL2NAM02FT048.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::206) by MWHPR13CA0016.outlook.office365.com (2603:10b6:300:16::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1878.18 via Frontend Transport; Tue, 7 May 2019 19:13:34 +0000 Authentication-Results: spf=permerror (sender IP is 160.33.194.229) smtp.mailfrom=sony.com; google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=sony.com; Received-SPF: PermError (protection.outlook.com: domain of sony.com used an invalid SPF mechanism) Received: from usculsndmail02v.am.sony.com (160.33.194.229) by BL2NAM02FT048.mail.protection.outlook.com (10.152.76.109) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1856.11 via Frontend Transport; Tue, 7 May 2019 19:13:34 +0000 Received: from usculsndmail12v.am.sony.com (usculsndmail12v.am.sony.com [146.215.230.103]) by usculsndmail02v.am.sony.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id x47JDWsZ024534; Tue, 7 May 2019 19:13:32 GMT Received: from USCULXHUB01V.am.sony.com (usculxhub01v.am.sony.com [146.215.231.15]) by usculsndmail12v.am.sony.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id x47JDU9f012737; Tue, 7 May 2019 19:13:30 GMT Received: from USCULXMSG01.am.sony.com ([fe80::b09d:6cb6:665e:d1b5]) by USCULXHUB01V.am.sony.com ([146.215.231.15]) with mapi id 14.03.0439.000; Tue, 7 May 2019 15:13:30 -0400 From: To: , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: RE: [PATCH v2 12/17] kunit: tool: add Python wrappers for running KUnit tests Thread-Topic: [PATCH v2 12/17] kunit: tool: add Python wrappers for running KUnit tests Thread-Index: AQHVAHJhoNqUCvrlqkWNVYoBnpR0L6ZX7y8AgAB264CAADSlgIAAKamAgAAhmQCAAEBZgIAA4H+AgABHUoCAAzbVgIABZW4AgAEcg3A= Date: Tue, 7 May 2019 19:13:14 +0000 Message-ID: References: <20190501230126.229218-1-brendanhiggins@google.com> <20190501230126.229218-13-brendanhiggins@google.com> <20190502110220.GD12416@kroah.com> <1a5f3c44-9fa9-d423-66bf-45255a90c468@gmail.com> <052fa196-4ea9-8384-79b7-fe6bacc0ee82@gmail.com> <63f63c7c-6185-5e64-b338-6a5e7fb9e27c@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [146.215.228.6] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:160.33.194.229;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(1496009)(136003)(396003)(39860400002)(376002)(346002)(2980300002)(448002)(51444003)(189003)(199004)(13464003)(55674003)(126002)(356004)(336012)(50466002)(7736002)(37786003)(246002)(6666004)(305945005)(55846006)(486006)(186003)(316002)(426003)(72206003)(8676002)(436003)(54906003)(33656002)(966005)(229853002)(476003)(2876002)(4326008)(14444005)(446003)(11346002)(110136005)(6246003)(3846002)(102836004)(6116002)(86152003)(55016002)(6306002)(2906002)(5660300002)(53546011)(7406005)(85326001)(7416002)(23676004)(7696005)(26005)(8936002)(47776003)(478600001)(76176011)(70586007)(86362001)(70206006)(66066001)(2486003)(5001870100001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR13MB1401;H:usculsndmail02v.am.sony.com;FPR:;SPF:PermError;LANG:en;PTR:mail.sonyusa.com,mail02.sonyusa.com;MX:1;A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4a588ed9-b19c-4f12-e016-08d6d32019ba X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:DM5PR13MB1401; X-MS-TrafficTypeDiagnostic: DM5PR13MB1401: X-MS-Exchange-PUrlCount: 3 X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-Forefront-PRVS: 0030839EEE X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: vSzy8IZrS9bO85wOMSB0Lev7xvGIqUpuDKE1CToyQILnnoycswVpzKBL+9JssNF6pU9sOEJlcJMYQlEJ1ahZ5bwkGP/IRwVh+Jm60ql/CM0DfwovFcS3RPkV/6pRAZxXjMY0ktCgXxHIIcdNiytKWO5IkyZT7ABXlVS6fU+pqovKZ1GUMgk6KZZPwaY9pUQr7JYVM1aazjZAGhBlssA0JCtkC3Rk64yqRSsqMDck2jn5wc7ulTeCcVyuZBq+HQ2laU6Pu4NymV+1bqCAzWhK2WjeRA5QOsAXA6HNMpQKFX/bEVU1xu+9X//I3FwP9lay+aVgvzAgCWuZrd9rcYOZPcJ56Cx9B0kegb4u6jej498ZFMsJuhjA5FY+rySc5ahZXcox3HnMajbxI5Rz5/XuIziYMHsnGbSLmHA5Et+drBE= X-OriginatorOrg: sony.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2019 19:13:34.2144 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a588ed9-b19c-4f12-e016-08d6d32019ba X-MS-Exchange-CrossTenant-Id: 66c65d8a-9158-4521-a2d8-664963db48e4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=66c65d8a-9158-4521-a2d8-664963db48e4;Ip=[160.33.194.229];Helo=[usculsndmail02v.am.sony.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR13MB1401 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGVyZSBpcyBhIGJpdCBvZiBpbmxpbmUgY29tbWVudGFyeSBvbiB0aGUgVEFQMTMvVEFQMTQgZGlz Y3Vzc2lvbi4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCcmVuZGFu IEhpZ2dpbnMgDQo+IA0KPiA+IE9uIDUvMy8xOSA0OjE0IFBNLCBCcmVuZGFuIEhpZ2dpbnMgd3Jv dGU6DQo+ID4gPj4gT24gNS8yLzE5IDEwOjM2IFBNLCBCcmVuZGFuIEhpZ2dpbnMgd3JvdGU6DQo+ ID4gPiBJbiBhbnkgY2FzZSwgaXQgc291bmRzIGxpa2UgeW91IGFuZCBHcmVnIGFyZSBpbiBhZ3Jl ZW1lbnQgb24gdGhlIGNvcmUNCj4gPiA+IGxpYnJhcmllcyBnZW5lcmF0aW5nIHRoZSBvdXRwdXQg aW4gVEFQMTMsIHNvIEkgd29uJ3QgYXJndWUgdGhhdCBwb2ludA0KPiA+ID4gZnVydGhlci4NCj4g PiA+DQo+ID4gPiAjIyBBbmFseXNpcyBvZiB1c2luZyBUQVAxMw0KPiA+DQo+ID4gSSBoYXZlIG5l dmVyIGxvb2tlZCBhdCBUQVAgdmVyc2lvbiAxMyBpbiBhbnkgZGVwdGggYXQgYWxsLCBzbyBkbyBu b3QgY29uc2lkZXINCj4gPiBtZSB0byBiZSBhbnkgc29ydCBvZiBleHBlcnQuDQo+ID4NCj4gPiBN eSBlbnRpcmUgVEFQIGtub3dsZWRnZSBpcyBiYXNlZCBvbjoNCj4gPg0KPiA+ICAgaHR0cHM6Ly90 ZXN0YW55dGhpbmcub3JnL3RhcC12ZXJzaW9uLTEzLXNwZWNpZmljYXRpb24uaHRtbA0KPiA+DQo+ ID4gYW5kIHRoZSBwdWxsIHJlcXVlc3QgdG8gY3JlYXRlIHRoZSBUQVAgdmVyc2lvbiAxNCBzcGVj aWZpY2F0aW9uOg0KPiA+DQo+ID4gICAgaHR0cHM6Ly9naXRodWIuY29tL1Rlc3RBbnl0aGluZy90 ZXN0YW55dGhpbmcuZ2l0aHViLmlvL3B1bGwvMzYvZmlsZXMNCj4gPg0KPiA+IFlvdSBjYW4gc2Vl IHRoZSBmdWxsIHZlcnNpb24gMTQgZG9jdW1lbnQgaW4gdGhlIHN1Ym1pdHRlcidzIHJlcG86DQo+ ID4NCj4gPiAgICQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3MvdGVzdGFueXRo aW5nLmdpdGh1Yi5pby5naXQNCj4gPiAgICQgY2QgdGVzdGFueXRoaW5nLmdpdGh1Yi5pbw0KPiA+ ICAgJCBnaXQgY2hlY2tvdXQgdGFwMTQNCj4gPiAgICQgbHMgdGFwLXZlcnNpb24tMTQtc3BlY2lm aWNhdGlvbi5tZA0KPiA+DQo+ID4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGUgdGhlIHZlcnNpb24g MTQgc3BlY2lmaWNhdGlvbiBpcyBub3QgdHJ5aW5nIHRvDQo+ID4gYWRkIG5ldyBmZWF0dXJlcywg YnV0IGluc3RlYWQgY2FwdHVyZSB3aGF0IGlzIGFscmVhZHkgaW1wbGVtZW50ZWQgaW4NCj4gPiB0 aGUgd2lsZC4NCj4gPg0KPiA+DQo+ID4gPiBPbmUgb2YgbXkgZWFybGllciBjb25jZXJucyB3YXMg dGhhdCBUQVAxMyBpcyBhIGJpdCBvdmVyIGNvbnN0cmFpbmVkDQo+ID4gPiBmb3Igd2hhdCBJIHdv dWxkIGxpa2UgdG8gb3V0cHV0IGZyb20gdGhlIEtVbml0IGNvcmUuIEl0IG9ubHkgYWxsb3dzDQo+ ID4gPiBkYXRhIHRvIGJlIG91dHB1dCBhcyBlaXRoZXI6DQo+ID4gPiAgLSB0ZXN0IG51bWJlcg0K PiA+ID4gIC0gb2svbm90IG9rIHdpdGggc2luZ2xlIGxpbmUgZGVzY3JpcHRpb24NCj4gPiA+ICAt IGRpcmVjdGl2ZQ0KPiA+ID4gIC0gZGlhZ25vc3RpY3MNCj4gPiA+ICAtIFlBTUwgYmxvY2sNCj4g PiA+DQo+ID4gPiBUaGUgdGVzdCBudW1iZXIgbXVzdCBiZWNvbWUgYmVmb3JlIGEgc2V0IG9mIG9r L25vdCBvayBsaW5lcywgYW5kIGRvZXMNCj4gPiA+IG5vdCBjb250YWluIGFueSBhZGRpdGlvbmFs IGluZm9ybWF0aW9uLiBPbmUgYW5ub3lpbmcgdGhpbmcgYWJvdXQgdGhpcw0KPiA+ID4gaXMgaXQg ZG9lc24ndCBwcm92aWRlIGFueSBraW5kIG9mIG5lc3Rpbmcgb3IgZ3JvdXBpbmcuDQo+ID4NCj4g PiBHcmVnJ3MgcmVzcG9uc2UgbWVudGlvbnMga3Rlc3QgKD8pIGFscmVhZHkgZG9lcyBuZXN0aW5n Lg0KPiANCj4gSSB0aGluayB3ZSBhcmUgdGFsa2luZyBhYm91dCBrc2VsZnRlc3QuDQo+IA0KPiA+ IFZlcnNpb24gMTQgYWxsb3dzIG5lc3RpbmcgdGhyb3VnaCBzdWJ0ZXN0cy4gIEkgaGF2ZSBub3Qg bG9va2VkIGF0IHdoYXQNCj4gPiBrdGVzdCBkb2VzLCBzbyBJIGRvIG5vdCBrbm93IGlmIGl0IHVz ZXMgc3VidGVzdCwgb3Igc29tZXRoaW5nIGVsc2UuDQo+IA0KPiBPaCBuaWNlISBUaGF0IGlzIG5l dyBpbiB2ZXJzaW9uIDE0LiBJIGNhbiB1c2UgdGhhdC4NCg0KV2UgaGF2ZSBydW4gaW50byB0aGUg cHJvYmxlbSBvZiBzdWJ0ZXN0cyAob3IgbmVzdGVkIHRlc3RzLCBib3RoIHVzaW5nDQpUQVAxMykg aW4gRnVlZ28uICBJIHJlY2FsbCB0aGF0IHRoaXMgaXNzdWUgY2FtZSB1cCBpbiBrc2VsZnRlc3Qs IGFuZCBJIGJlbGlldmUNCndlIGRpc2N1c3NlZCBhIHNvbHV0aW9uLCBidXQgSSBkb24ndCByZWNh bGwgd2hhdCBpdCB3YXMuDQoNCkNhbiBzb21lb25lIHJlbWluZCBtZSB3aGF0IGtzZWxmdGVzdCBk b2VzIHRvIGhhbmRsZSBuZXN0ZWQgdGVzdHMNCihpbiB0ZXJtcyBvZiBUQVAxMyBvdXRwdXQpPw0K DQo+IA0KPiA+ID4gVGhlcmUgaXMgb25lIG9rL25vdCBvayBsaW5lIHBlciB0ZXN0IGFuZCBpdCBt YXkgaGF2ZSBhIHNob3J0DQo+ID4gPiBkZXNjcmlwdGlvbiBvZiB0aGUgdGVzdCBpbW1lZGlhdGVs eSBhZnRlciAnb2snIG9yICdub3Qgb2snOyB0aGlzIGlzDQo+ID4gPiBwcm9ibGVtYXRpYyBiZWNh dXNlIGl0IHdhbnRzIHRoZSBmaXJzdCB0aGluZyB5b3Ugc2F5IGFib3V0IGEgdGVzdCB0bw0KPiA+ ID4gYmUgYWZ0ZXIgeW91IGtub3cgd2hldGhlciBpdCBwYXNzZXMgb3Igbm90Lg0KPiA+DQo+ID4g SSB0aGluayB5b3UgY291bGQgb3V0cHV0IGEgZGlhZ25vc3RpYyBsaW5lIHRoYXQgc2F5cyBhIHRl c3QgaXMgc3RhcnRpbmcuDQo+ID4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gbWUgYmVjYXVzZSBwcmlu dGsoKSBlcnJvcnMgYW5kIHdhcm5pbmdzIHRoYXQgYXJlDQo+ID4gcmVsYXRlZCB0byBhIHRlc3Qg Y2FuIGJlIG91dHB1dCBieSBhIHN1YnN5c3RlbSBvdGhlciB0aGFuIHRoZSBzdWJzeXN0ZW0NCj4g PiB0aGF0IEkgYW0gdGVzdGluZy4gIElmIHRoZXJlIGlzIG5vIG1hcmtlciBhdCB0aGUgc3RhcnQg b2YgdGhlIHRlc3QNCj4gPiB0aGVuIHRoZXJlIGlzIG5vIHdheSB0byBhdHRyaWJ1dGUgdGhlIHBy aW50aygpcyB0byB0aGUgdGVzdC4NCj4gDQo+IEkgYWdyZWUuDQoNClRoaXMgaXMgYSBzaWduaWZp Y2FudCBwcm9ibGVtLiAgSW4gRnVlZ28gd2Ugb3V0cHV0IGVhY2ggbGluZSB3aXRoIGEgdGVzdCBp ZCBwcmVmaXgsDQp3aGljaCBnb2VzIGFnYWluc3QgdGhlIHNwZWMsIGJ1dCBoZWxwcyBzb2x2ZSB0 aGlzLiAgVGVzdCBvdXRwdXQgc2hvdWxkIGJlDQprZXB0IHNlcGFyYXRlIGZyb20gc3lzdGVtIG91 dHB1dCwgYnV0IGlmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHRoZXJlIGFyZSBubw0KY2hhbm5l bHMgaW4gcHJpbmt0IHRvIHVzZSB0byBrZWVwIGRpZmZlcmVudCBkYXRhIHN0cmVhbXMgc2VwYXJh dGUuDQoNCkhvdyBkb2VzIGtzZWxmdGVzdCBkZWFsIHdpdGggdGhpcyBub3c/DQoNCj4gDQo+IFRl Y2huaWNhbGx5IGNvbmZvcm1zIHdpdGggdGhlIHNwZWMsIGFuZCBrc2VsZnRlc3QgZG9lcyB0aGF0 LCBidXQgaXMNCj4gYWxzbyBub3QgcGFydCBvZiB0aGUgc3BlYy4gV2VsbCwgaXQgKmlzKiBzcGVj aWZpZWQgaWYgeW91IHVzZQ0KPiBzdWJ0ZXN0cy4gSSB0aGluayB0aGUgcmlnaHQgYXBwcm9hY2gg aXMgdG8gbWFrZSBlYWNoDQo+ICJrdW5pdF9tb2R1bGUvdGVzdCBzdWl0ZSIgYSB0ZXN0LCBhbmQg YWxsIHRoZSB0ZXN0IGNhc2VzIHdpbGwgYmUNCj4gc3VidGVzdHMuDQo+IA0KPiA+ID4gRGlyZWN0 aXZlcyBhcmUganVzdCBhIHdheSB0byBzcGVjaWZ5IHNraXBwZWQgdGVzdHMgYW5kIFRPRE9zLg0K PiA+ID4NCj4gPiA+IERpYWdub3N0aWNzIHNlZW0gdXNlZnVsLCBpdCBsb29rcyBsaWtlIHlvdSBj YW4gcHV0IHdoYXRldmVyDQo+ID4gPiBpbmZvcm1hdGlvbiBpbiB0aGVtIGFuZCBwcmludCB0aGVt IG91dCBhdCBhbnl0aW1lLiBJdCBsb29rcyBsaWtlIGEgbG90DQo+ID4gPiBvZiBrc2VsZnRlc3Rz IGVtaXQgYSBsb3Qgb2YgZGF0YSB0aGlzIHdheS4NCj4gPiA+DQo+ID4gPiBUaGUgWUFNTCBibG9j ayBzZWVtcyB0byBiZSB0aGUgd2F5IHRoYXQgdGhleSBwcmVmZXIgdXNlcnMgdG8gZW1pdCBkYXRh DQo+ID4gPiBiZXlvbmQgbnVtYmVyIG9mIHRlc3RzIHJ1biBhbmQgd2hldGhlciBhIHRlc3QgcGFz c2VkIG9yIGZhaWxlZC4gSQ0KPiA+ID4gY291bGQgZXhwcmVzcyBtb3N0IHRoaW5ncyBJIHdhbnQg dG8gZXhwcmVzcyBpbiB0ZXJtcyBvZiBZQU1MLCBidXQgaXQNCj4gPiA+IGlzIG5vdCB0aGUgbmlj ZXN0IGZvcm1hdCBmb3IgZGlzcGxheWluZyBhIGxvdCBvZiBkYXRhIGxpa2UNCj4gPiA+IGV4cGVj dGF0aW9ucywgbWlzc2VkIGZ1bmN0aW9uIGNhbGxzLCBhbmQgb3RoZXIgdGhpbmdzIHdoaWNoIGhh dmUgYQ0KPiA+ID4gbmF0dXJhbCBjb25jaXNlIHJlcHJlc2VudGF0aW9uLiBOZXZlcnRoZWxlc3Ms IFlBTUwgcmVhZGFiaWxpdHkgaXMNCj4gPiA+IG1vc3RseSBhIHByb2JsZW0gd2hvIHdvbid0IGJl IHVzaW5nIHRoZSB3cmFwcGVyIHNjcmlwdHMuDQo+ID4NCj4gPiBUaGUgZXhhbXBsZXMgaW4gc3Bl Y2lmaWNhdGlvbiBWMTMgYW5kIFYxNCBsb29rIHZlcnkgc2ltcGxlIGFuZCB2ZXJ5DQo+ID4gcmVh ZGFibGUgdG8gbWUuICAoQW5kIEkgYW0gbm90IGEgZmFuIG9mIFlBTUwuKQ0KPiA+DQo+ID4NCj4g PiA+IE15IGJpZ2dlc3QNCj4gPiA+IHByb2JsZW0gd2l0aCB0aGUgWUFNTCBibG9jayBpcyB0aGF0 IHlvdSBjYW4gb25seSBoYXZlIG9uZSwgYW5kIFRBUA0KPiA+ID4gc3BlY2lmaWVzIHRoYXQgaXQg bXVzdCBjb21lIGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nIG9rL25vdCBvayBsaW5lLA0KPiA+ID4g d2hpY2ggYWdhaW4gaGFzIHRoZSBpc3N1ZSB0aGF0IHlvdSBoYXZlIHRvIGhvbGQgb24gdG8gYSBs b3Qgb2YNCj4gPiA+IGRpYWdub3N0aWMgZGF0YSBsb25nZXIgdGhhbiB5b3UgaWRlYWxseSB3b3Vs ZC4gQW5vdGhlciBkb3duc2lkZSBpcw0KPiA+ID4gdGhhdCBJIG5vdyBoYXZlIHRvIHdyaXRlIGEg WUFNTCBzZXJpYWxpemVyIGZvciB0aGUga2VybmVsLg0KPiA+DQo+ID4gSWYgYSB0ZXN0IGdlbmVy YXRlcyBkaWFnbm9zdGljIGRhdGEsIHRoZW4gSSB3b3VsZCBleHBlY3QgdGhhdCB0byBiZQ0KPiA+ IHRoZSBkaXJlY3QgcmVzdWx0IG9mIGEgdGVzdCBmYWlsdXJlLiAgU28gdGhlIHRlc3QgY2FuIG91 dHB1dCB0aGUNCj4gPiAibm90IG9rIiBsaW5lLCB0aGVuIGltbWVkaWF0ZWx5IG91dHB1dCB0aGUg WUFNTCBibG9jay4gIEkgZG8gbm90DQo+ID4gc2VlIGEgbmVlZCBmb3Igc3Rhc2hpbmcgWUFNTCBv dXRwdXQgYWhlYWQgb2YgdGltZS4NCj4gPg0KPiA+IElmIGRpYWdub3N0aWMgZGF0YSBpcyBnZW5l cmF0ZWQgYmVmb3JlIHRoZSB0ZXN0IGNhbiBkZXRlcm1pbmUNCj4gPiBzdWNjZXNzIG9yIGZhaWx1 cmUsIHRoZW4gaXQgY2FuIGJlIG91dHB1dCBhcyBkaWFnbm9zdGljIGRhdGENCj4gPiBpbnN0ZWFk IG9mIHN0YXNoaW5nIGl0IGZvciBsYXRlci4NCj4gDQo+IENvb2wsIHRoYXQncyB3aGF0IEkgYW0g dGhpbmtpbmcgSSBhbSBnb2luZyB0byBkbyAtIEkganVzdCB3YW50ZWQgdG8NCj4gbWFrZSBzdXJl IHBlb3BsZSB3ZXJlIG9rYXkgd2l0aCB0aGlzIGFwcHJvYWNoLiBJIG1lYW4sIEkgdGhpbmsgdGhh dCBpcw0KPiB3aGF0IGtzZWxmdGVzdCBkb2VzLg0KDQpJTUhPIHRoZSBkaWFnbm9zdGljIGRhdGEg ZG9lcyBub3QgaGF2ZSB0byBiZSBpbiBZQU1MLiAgVGhhdCdzIG9ubHkNCmlmIHRoZXJlJ3MgYSB3 ZWxsLWtub3duIHNjaGVtYSBmb3IgdGhlIGRpYWdub3N0aWMgZGF0YSwgdG8gbWFrZSB0aGUNCmRh dGEgbWFjaGluZS1yZWFkYWJsZS4gICBUQVAxMyBzcGVjaWZpY2FsbHkgYXZvaWRlZCBkZWZpbmlu ZyBzdWNoIGENCnNjaGVtYS4gIEkgbmVlZCB0byBsb29rIGF0IFRBUDE0IGFuZCBzZWUgaWYgdGhl eSBoYXZlIGRlZmluZWQgc29tZXRoaW5nLg0KKFRoYW5rcyBmb3IgYnJpbmdpbmcgdGhhdCB0byBt eSBhdHRlbnRpb24uKQ0KDQpUaGUgaW1wb3J0YW50IHBhcnQsIHNpbmNlIHRoZXJlIGFyZSBubyBz dGFydCBhbmQgZW5kIGRlbGltaXRlcnMgZm9yIGVhY2gNCnRlc3RjYXNlLCBpcyB0byBzdHJ1Y3R1 cmUgb3V0cHV0IChpbmNsdWRpbmcgZnJvbSB1bnJlbGF0ZWQgc3ViLXN5c3RlbXMNCmFmZmVjdGVk IGJ5IHRoZSB0ZXN0KSB0byBlaXRoZXIgb2NjdXIgYWxsIGJlZm9yZSBvciBhbGwgYWZ0ZXIgdGhl IHRlc3QgbGluZS4NCk90aGVyd2lzZSBpdCdzIGltcG9zc2libGUgdG8gc2Vuc2libHkgcGFyc2Ug dGhlIGRpYWdub3N0aWMgZGF0YSBhbmQgYXNzb2NpYXRlIGl0DQp3aXRoIGEgdGVzdC4gIChUaGF0 IGlzLCB0aGUgVEFQIGxpbmVzIGJlY29tZSB0aGUgZGVsaW1pdGVycyBiZXR3ZWVuIGVhY2ggdGVz dGNhc2Uncw0Kb3V0cHV0IGFuZCBkYXRhKS4gIFRoaXMgaXMgYSBwcmV0dHkgYmlnIHdlYWtuZXNz IG9mIFRBUDEzLiAgU2luY2UgdGhlIFRBUCBsaW5lDQpoYXMgdGhlIHRlc3QgcmVzdWx0LCBpdCB1 c3VhbGx5IG1lYW5zIHRoYXQgdGhlIHN1YnN5c3RlbSBvdXRwdXQgZm9yIHRoZSB0ZXN0DQppcyBl bWl0dGVkICpiZWZvcmUqIHRoZSBUQVAgbGluZS4gIEl0J3MgcHJlZmVyYWJsZSwgaW4gb3JkZXIg dG8ga2VlcCB0aGUNCmRhdGEgdG9nZXRoZXIsIHRoYXQgdGhlIGRpYWdub3N0aWMgZGF0YSBhbHNv IGJlIGVtaXR0ZWQgYmVmb3JlIHRoZSBUQVANCmxpbmUuDQoNCj4gDQo+IFdlIGNhbiBob2xkIG9m ZiBvbiB0aGUgWUFNTCBzdHVmZiBmb3Igbm93IHRoZW4uDQo+IA0KPiA+ID4gIyMgSGVyZSBpcyB3 aGF0IEkgcHJvcG9zZSBmb3IgdGhpcyBwYXRjaHNldDoNCj4gPiA+DQo+ID4gPiAgLSBQcmludCBv dXQgdGVzdCBudW1iZXIgcmFuZ2UgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRlc3Qgc3VpdGUu DQo+ID4gPiAgLSBQcmludCBvdXQgbG9nIGxpbmVzIGFzIHNvb24gYXMgdGhleSBoYXBwZW4gYXMg ZGlhZ25vc3RpY3MuDQo+ID4gPiAgLSBQcmludCBvdXQgdGhlIGxpbmVzIHRoYXQgc3RhdGUgd2hl dGhlciBhIHRlc3QgcGFzc2VzIG9yIGZhaWxzIGFzIGENCj4gPiA+IG9rL25vdCBvayBsaW5lLg0K PiA+ID4NCj4gPiA+IFRoaXMgd291bGQgYmUgdGVjaG5pY2FsbHkgY29uZm9ybWluZyB3aXRoIFRB UDEzIGFuZCBpcyBjb25zaXN0ZW50IHdpdGgNCj4gPiA+IHdoYXQgc29tZSBrc2VsZnRlc3RzIGhh dmUgZG9uZS4NCj4gPiA+DQo+ID4gPiAjIyBUbyBiZSBkb25lIGluIGEgZnV0dXJlIHBhdGNoc2V0 Og0KPiA+ID4NCj4gPiA+IEFkZCBhIFlBTUwgc2VyaWFsaXplciBhbmQgcHJpbnQgb3V0IHNvbWUg bG9ncyBjb250YWluaW5nIHN0cnVjdHVyZWQNCj4gPiA+IGRhdGEgKGxpa2UgZXhwZWN0YXRpb24g ZmFpbHVyZXMsIHVuZXhwZWN0ZWQgZnVuY3Rpb24gY2FsbHMsIGV0YykgaW4NCj4gPiA+IFlBTUwg YmxvY2tzLg0KPiA+DQo+ID4gWUFNTCBzZXJpYWxpemVyIHNvdW5kcyBsaWtlIG5vdCBuZWVkZWQg Y29tcGxleGl0eS4NCkkgYWdyZWUsIGZvciBub3cuDQoNCkkgdGhpbmsgaWYgd2Ugc3RhcnQgdG8g c2VlIHNvbWUgcGF0dGVybnMgZm9yIHNvbWUgZGF0YSB0aGF0IG1hbnkgdGVzdHMNCm91dHB1dCwg d2UgbWlnaHQgd2FudCAoYXMgYSBrZXJuZWwgY29tbXVuaXR5KSB0byBkZWZpbmUgYSBZQU1MDQpz Y2hlbWEgZm9yIHRoZSBrc2VsZnRlc3Qgb3V0cHV0LiAgQnV0IEkgdGhpbmsgdGhhdCdzIGJpdGlu ZyBvZmYgdG9vIG11Y2gNCnJpZ2h0IG5vdy4gIElNSE8gd2Ugd291bGQgd2FudCBhbnkgWUFNTCBz Y2hlbWEgd2UgZGVmaW5lIHRvDQpjb3ZlciBtb3JlIHRoYW4ganVzdCB1bml0IHRlc3RzLCBzbyB0 aGUgam9iIG9mIGRlZmluaW5nIHRoYXQgd291bGQgYmUNCnByZXR0eSBiaWcuDQoNClRoaXMgd291 bGQgYmUgYSBnb29kIGRpc2N1c3Npb24gdG8gaGF2ZSBhdCBhIHRlc3RpbmcgbWljcm8tY29uZmVy ZW5jZQ0Kb3Igc3VtbWl0LiA6LSkNCg0KPiA+DQo+ID4gPg0KPiA+ID4gRG9lcyB0aGlzIHNvdW5k IHJlYXNvbmFibGU/IEkgd2lsbCBnbyBhaGVhZCBhbmQgc3RhcnQgd29ya2luZyBvbiB0aGlzLA0K PiA+ID4gYnV0IGZlZWwgZnJlZSB0byBnaXZlIG1lIGZlZWRiYWNrIG9uIHRoZSBvdmVyYWxsIGlk ZWEgaW4gdGhlIG1lYW50aW1lLg0KDQpTb3VuZHMgZ29vZC4gIFRoYW5rcyBmb3Igd29ya2luZyBv biB0aGlzLg0KIC0tIFRpbQ0KDQo=