Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp32653pxb; Wed, 30 Mar 2022 22:07:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqm83k60GkoZHLsOuTCeYzmwweasc8ZjvZQ4J8L/r/DSny62Tov8c+5jY52vxR3EnYE/MN X-Received: by 2002:a17:90b:1e08:b0:1c7:585c:9034 with SMTP id pg8-20020a17090b1e0800b001c7585c9034mr3940297pjb.184.1648703250876; Wed, 30 Mar 2022 22:07:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1648703250; cv=pass; d=google.com; s=arc-20160816; b=NvVMEgyCNAzHfDZ1GBSygc3+svJUoIC33MjcrXWuFyokQMDyruzTG8d3avMoVVduOO x0DDC6FeIts9hOZiJojt/X1vsaECLcbq61LwYZdRlpHn4QZrUJhpSIs9Gprz2xHoDApe 0htlMpFEcX2VviC+95sdw5ToaUdwBMNOnghq9LLawFmry6eHuLSQDvIYFCfnJy91hsCL yFCswU2x5E1FtaerFBwuy7a0/m/6Cz2O1uRaenrvOJuMAm5AQ74hBcYuBWmeJFPidcxC lMqsHo5gAwVrCS6lhTSHhZqR6EBoEDfZlxMulnUWricxBFIk/ATuu2N1KzCNuUyJYya7 pRSA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence: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=GolzeVuSB1y3bnS0IvKfWOlFg7p+uPq3ljKuY2VtQtA=; b=m2Nde7nkuI6KG9/QEkiod4KHAgpsd2HVgbB9jv6TbxARuqpzRStuQBnTQch0R4JTmx UpG/iUH7bToSO1z/vi+4GzesDvIeIMXwfkGkgKk2Lr6gZjM55bz/vgYbxetZoAfW/djj 8uJYIPT/jPIdDsmsknTWw9/B53dS3bnu27sR6VE24BdFFmMypaovknQHn3yebSJ0OOBp ehkMN2L1MWUn2RDQfliBSmm88U30P+o2kTeo7NJSOolfXfc+93DEuCcFdb7SiuGuADSf 265T5YzE75ZmYabwQMTy4dDumSC4L2QfO3o857w1sSx5VMBEA/dCI+JHeWQVUqDv8yzC vZlA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@aspeedtech.com header.s=selector1 header.b=2d4taDoh; arc=pass (i=1 spf=pass spfdomain=aspeedtech.com dkim=pass dkdomain=aspeedtech.com dmarc=pass fromdomain=aspeedtech.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id l21-20020a170902d35500b00153b2d1659asi22213316plk.418.2022.03.30.22.07.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Mar 2022 22:07:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@aspeedtech.com header.s=selector1 header.b=2d4taDoh; arc=pass (i=1 spf=pass spfdomain=aspeedtech.com dkim=pass dkdomain=aspeedtech.com dmarc=pass fromdomain=aspeedtech.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 69A4928182D; Wed, 30 Mar 2022 20:41:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229557AbiCaCsv (ORCPT + 99 others); Wed, 30 Mar 2022 22:48:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229457AbiCaCst (ORCPT ); Wed, 30 Mar 2022 22:48:49 -0400 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2104.outbound.protection.outlook.com [40.107.255.104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 479D0F460D; Wed, 30 Mar 2022 19:46:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZDSqXBrna443PxppEVP21XFaThq9kf9b6armrTPAWWwcEmVAGxLY0gee+QI4vmzpkJk3Aw5MrclUrGuaLg0uvSTgJtpF5dUz1aw7fDribScVwm/lCZ4myiK89Rk0eBIXZqH1JjnWsb3rITeU3w+cOsfZhgbJaEEnHlwyNd2j3M3LI1Vc91BDXlxTEZwRyfAjtezmRVwgZgBXrrocduDcZ3Qef9wpSTZ97FNnDt0ed4x2xu9atNWAsQf7y1PWmBhUxAjQfevEfTOThWzLma9eOEEqzY38Q3O68VFyeU5IeYhBPY0hWu94YpboQiJA9Un+qwEKA/7D/iDmJeHZoXU+jQ== 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=GolzeVuSB1y3bnS0IvKfWOlFg7p+uPq3ljKuY2VtQtA=; b=ky1LHdWH04g/ac2HPTE9LJ+5rI0zJqVGGEVHPrR2VgrgiD//ah9P5Eg6zy/3gV8QMPHS6HXkvYzDjLRrxwlhl7f7jMHeohwjc0t21qHMXhyiOtd592FNGeIUUgxewUwi5udAqTtT4nnD/c+vpxOwGAuIDS6vt2MkUMEz6/0CTzKnOeAm/MCU517pXB9m/vHiNALb5nAlly1uhMy8E8j8qf/tTxKPXR+pN4314MlHATlfZ31jQYOwP3OIe0uccqG0qhrS09uskK7NyHdyFPmzevq/uyFfz716HVT2hZodlUN/bnvYneeo5Lx1d2r3qG1CqA9/6+ZZCFVHm9pBVw090g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GolzeVuSB1y3bnS0IvKfWOlFg7p+uPq3ljKuY2VtQtA=; b=2d4taDohHWMx5q5f35D8cOVWhcREct/KNLqCU5eXfE3Fz3OXvbiOKLhokCZHGsAP7lRfvNG9BnP+uPGU4dXhPUIkdb22D7QCw3hsIrSEqZidUgXqm6T5fZKUbWmSMw2xphfUH6wmAquOzoareej8mbDjWMK55XAoHjFMNj9eWbKJq5rgIm2tLhOXxNdpveGxIiSJfnqzTnGdOa+ynyeVetSMA/fYE8ZzkJwKhYcqMmza06BXRQhUBMEqSd4xUHtzTBUazHt/UfBLrvpEkBRttZ+Kj6zh+0sm29B2TKm2ICYZpXo5RrhxmdPlSPKkzqYm47o0amMt1OFCBvSIRHY1MQ== Received: from HK0PR06MB2786.apcprd06.prod.outlook.com (2603:1096:203:5b::22) by SI2PR06MB4441.apcprd06.prod.outlook.com (2603:1096:4:15f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Thu, 31 Mar 2022 02:46:51 +0000 Received: from HK0PR06MB2786.apcprd06.prod.outlook.com ([fe80::38d7:bb1c:a4f0:a327]) by HK0PR06MB2786.apcprd06.prod.outlook.com ([fe80::38d7:bb1c:a4f0:a327%7]) with mapi id 15.20.5102.025; Thu, 31 Mar 2022 02:46:51 +0000 From: Chin-Ting Kuo To: =?utf-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= , "linux-spi@vger.kernel.org" , "linux-mtd@lists.infradead.org" CC: Mark Brown , Tudor Ambarus , Pratyush Yadav , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , "linux-aspeed@lists.ozlabs.org" , Joel Stanley , Andrew Jeffery , "devicetree@vger.kernel.org" , Rob Herring , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Tao Ren Subject: RE: [PATCH v4 08/11] spi: aspeed: Calibrate read timings Thread-Topic: [PATCH v4 08/11] spi: aspeed: Calibrate read timings Thread-Index: AQHYQDBlhRJ1CVqB1EKLdmJgf4F2MKzX0z/AgAAL1gCAAObB4A== Date: Thu, 31 Mar 2022 02:46:51 +0000 Message-ID: References: <20220325100849.2019209-1-clg@kaod.org> <20220325100849.2019209-9-clg@kaod.org> <0ec477b5-e404-536f-ff60-39f43208c3cc@kaod.org> In-Reply-To: <0ec477b5-e404-536f-ff60-39f43208c3cc@kaod.org> Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a6684237-40ff-420e-115f-08da12c0b568 x-ms-traffictypediagnostic: SI2PR06MB4441:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LsWPUaDk5YenEU2bXMdWsjz5FwgTQ3HNMwOre+v06BrmpDGzax6Q+t4J9g9VIB29gWwhzAcT8kUhbGamkuscahXE7MC02i8Kv5wqKGV1j2PTq1iaLFbpOFiv5wTgk5exJISbz7+ICTdEKsFZSI9zmvhVCq0Tl2RI9Rhephw66Mk9wo6I6eAHxk9BNFwBlepl/CXSNu/Kxnt9iV7HS8cRO4gSazChJCXY+kxR3InXIDU2nR+TBgzhNLSL9SdFXIadPz/x8gsKaf6GvqauuJgFIdSwgsc0kW0En+ePJUchdg7A8zKeLVAJqDV4R53a56TmO+qcKQGzA/vp16xFjgZTG8jKKef7KSiocSMJxTGo+2ypg1cyTFbZT51TkNnxiJjDYkKlpytwThv0/UffTuKemY1vU5EN0+5Y2bdka1LUVlGaM+7+dKMLKb7ur3pp1kD8NYfrrH2wetNm3usD75k3XDydgmJ7TSQ4c5Nb05YucKL7RoQwDeZcK2aklgltPcr86SC9Ub1DU/ZimVzsK+Qw09XimVOC3PmiSD1Gm/+asOpbsObkpzo8PgyyDSy5s747BU717OIwOZcuGBmzkH99fkL0CX0ABBcVE+KhHV5tRY+8DKqH9t0oR5lYZ83hv5NWXR9+J61ldzJlCygNHu9Ym/Kb6x0Oqv8WuCQg533KpJEx3uJuZD/u9/N6keVls4CPUIyWodpY6tBKbT6A8intNKmQACRyi6vd6ww3K7Msf8M9EqqjgBUCpJ21pvjVefjkm9yqjLstGTTZCA09MZtAP/3ey9pISalwzizCBCjInSCcugaDit3zmpSx/Pth/8rzCURHhiTxML4gQrtdTY1XxQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR06MB2786.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(376002)(346002)(39850400004)(136003)(396003)(366004)(2906002)(7696005)(6506007)(53546011)(9686003)(30864003)(66574015)(86362001)(26005)(186003)(38100700002)(33656002)(508600001)(66946007)(316002)(5660300002)(66476007)(64756008)(66556008)(55016003)(66446008)(966005)(8676002)(7416002)(38070700005)(71200400001)(122000001)(54906003)(83380400001)(52536014)(8936002)(76116006)(110136005)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?djF6R2FieDdUQTBEQ0Y5MDFFdW85dnF4L3d2MWtUOEtvenZzd2FRbGdvU0dR?= =?utf-8?B?b0pVVitTVmMxZ25WNWNkZXNvM2lqcHhrVUMxUFNaMW0yOGw5anR5cStVem9E?= =?utf-8?B?Z2RpQm04REFuMVFNaVRIUU1ISmNZOC9nYktvQitpdnpiSTZGdjQzaldZV2ZF?= =?utf-8?B?dVpQOXNlN0kvbjQrYzl1NFZoMG5EQnJmMjlpMjk2dm1NcmNvbmErWWJSNG04?= =?utf-8?B?RWNTSnpmSDJJNTkzb1M4YzF6M1l2c09qeXozU3k4MzBJRm5oaVVMRHdzeC9m?= =?utf-8?B?WmNaWEFhREd5LzFrT09uQ2dndVd3MXdsZlFVYUhHN294YWl2SGlxZzl1YlVr?= =?utf-8?B?UGU3WEczd2M2VDRxNmhLd0xoZm0weXhYWG5ydmxvZ0Y5VkZKcHB6dFd1QWNB?= =?utf-8?B?cTBiSjd2RTljV2srdlBGdGR6cTBHbHVmVXdJZEgwaVJ3emdsclVaNTNva2Ni?= =?utf-8?B?ck5EU3VCWkZwRVJEdm50c2grSUlmNmpST0FIbThtaTZJdVRXU2UxVmlhS1Va?= =?utf-8?B?S04vT24vajlTaHA3UGwyVy9iZ1FoUXRDeFFVT0ZKUSs0aFB0c21ORG5tZWZY?= =?utf-8?B?L1FDUyt1c1lSYnhGcFQxV1JJaWNJNWxyQWY4aWpHak84WUxONERMUWQ1bndn?= =?utf-8?B?ZHEwV3d0YkdvdnRCU01ScVJBYlJndE1nQmRwOUFtbkFtWEJDMWtGWU9SVXAy?= =?utf-8?B?NEt6cmVqT2VmODZzd3V2QlRLMkxrQVJLcWltS3pTTDQyRWtUVkphLzJBK0gw?= =?utf-8?B?RUxVbndORGVsL1RyVTFtS1IxYmRxR0pWMTY1LzJYbm1ZQkdNZEowbWdSOEw3?= =?utf-8?B?S0lWWGhuRDhDWUJWbnJFQy9FR1NMQjZlZktUM3Z0MlltdkFXakp1ZTFRNkdO?= =?utf-8?B?M0ZtbUJ0L1lFcGVpcFd6NFdtWkVYYzlMRGI1MWJSckR1d3pJb0doN3I0eTZp?= =?utf-8?B?d3ZNSHpmRGIwelRYTkpIOW9tWEVGU3R3UTQyQmtVNDlRYkx1b09iNjdlUDlU?= =?utf-8?B?VmVWWC9JZlFtMG9CU25Yek5XM080YXZiMXJvT3Y3blRLY1dCdlpjZGJLaCtV?= =?utf-8?B?dXQrd0duTFFtRXN6MVFpTkN1WFRwYldLRlBhTEZmOWpWOWJ4Qk0zQkdhT3JP?= =?utf-8?B?T3dyS0RNS0dwK1huZGNscW41b0tkbkhjZHZhd3hKNVZEdlI5bWpnNlBNWWNC?= =?utf-8?B?N2g1QVRBVnJseUlNZ3FjSGhLL2pKZ3Exb0xZUFNLK2tuWVl0cTdHOGg1T3R2?= =?utf-8?B?cDlMV1hlSkZqdTVGY01DTWp0ZUViU0RwUS9waHpuTlEyU3dscE1jWUFqWVZw?= =?utf-8?B?dDkwTytWakZqakptekt2SjNkSnVFREVqaFZSNjJ0bXg5aTRoanZzRGdZb1BY?= =?utf-8?B?WC93c2U1aGxEZ0pEWDluRzUvRWN6cUpsL2RRYURMOERxNE82amN4TGlzaE9y?= =?utf-8?B?azBJVG5IUmNFazY0TURJT25oU0hhMjBlNDI0cytxbDdQZlJ2T0I4dlFjZGZQ?= =?utf-8?B?Vm0wUDB2Z1RidU5wNXAyelZQU2tHcGl4azZNVjEyR0o2UW4yYk9JY0xqOHBV?= =?utf-8?B?djA2WTNHNGNuQm5PUXFyVk1Rb0dodkh6U3JTamF1SHJwOG1kNXl5Ky9YWE1a?= =?utf-8?B?YktYajRaTElXSjhwdzZlTGZoQi8vdnFpanFvYmp4QklWUVhDVWg0VHF5Wnlt?= =?utf-8?B?enJ1Q0w0RCtqd0dTTHN2N2hLclJMVnNRbUFpMDJJbjRtYkUxUXRGb1l1Z0cw?= =?utf-8?B?TTFuWXFHSkY3dGZaWXFnampuM0xFMVE1Nm05d3AxaTlvcmZ2eW5MbStZRTlw?= =?utf-8?B?cTJWMTlFbkh0NVZHUFFiRDZjYUYyT1ZNb200S09yVEd0SW9qbEJoeTBvSlkv?= =?utf-8?B?N0RBcElkSVQxaFBDSU11SVFmblUzUTBzV0hYeWh2cG9tWHpVc3ZoZ1hqU1E4?= =?utf-8?B?VzJsZG1ZSGFZa3N0elNIUTMyR3dPMi9DZWR3RnFkaXR3emF4c0pKY1ZvNkJJ?= =?utf-8?B?aE9rOVBYUnFsVVJSYlc2OUo1d2NhOVRMMmljUlJ0VFJaVU9YYnFYNXR5WnJV?= =?utf-8?B?U1BWQXhwdnA1OHA3UTdvZXhaSWpZZElmd2FPb0haYStnbXpXMHdnaHNCRVVI?= =?utf-8?B?UWZseVY3dkorUTgvRStrZTloY3ltWXlod2tENGk2bU44U3RRTlB3UXZMdW9z?= =?utf-8?B?V1NWSmdGZTIzQ3pxeGg5bXR0K0NmQmk5ZWw0MjE1K3JYS0hQbm01Q3hjeWZn?= =?utf-8?B?RUVmMzRaYWk4Sy9oNy9FbDc2dFNZUFRFWUM4UG9tM1UyTWVTSFhNK2RTV3RT?= =?utf-8?B?NnAzV0hLZDUyMHQvN3VwZm92SHFvM3pYUFZBTEtXdmVkN29MTjhQaHl4S0FB?= =?utf-8?Q?wBeBQftbL4ePKEBc=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HK0PR06MB2786.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6684237-40ff-420e-115f-08da12c0b568 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2022 02:46:51.1457 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wtKUY29NP4/z/TiIOIGrj7voUANlH4VZez0YGrPLrSj4wR3Lndv/nFASPnB/K/xanCC3HRAM9jJ8jywOejPZxzvWuftpiSqPhXBdXYmBYeY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SI2PR06MB4441 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQ8OpZHJpYywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDw6lk cmljIExlIEdvYXRlciA8Y2xnQGthb2Qub3JnPg0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDMw LCAyMDIyIDg6MTUgUE0NCj4gVG86IENoaW4tVGluZyBLdW8gPGNoaW4tdGluZ19rdW9AYXNwZWVk dGVjaC5jb20+OyBsaW51eC1zcGlAdmdlci5rZXJuZWwub3JnOw0KPiBsaW51eC1tdGRAbGlzdHMu aW5mcmFkZWFkLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0IDA4LzExXSBzcGk6IGFzcGVl ZDogQ2FsaWJyYXRlIHJlYWQgdGltaW5ncw0KPiANCj4gT24gMy8zMC8yMiAxMzo1MywgQ2hpbi1U aW5nIEt1byB3cm90ZToNCj4gPiBIaSBDw6lkcmljIExlLA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC5v cmc+DQo+ID4+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjUsIDIwMjIgNjowOSBQTQ0KPiA+PiBUbzog bGludXgtc3BpQHZnZXIua2VybmVsLm9yZzsgbGludXgtbXRkQGxpc3RzLmluZnJhZGVhZC5vcmcN Cj4gPj4gU3ViamVjdDogW1BBVENIIHY0IDA4LzExXSBzcGk6IGFzcGVlZDogQ2FsaWJyYXRlIHJl YWQgdGltaW5ncw0KPiA+Pg0KPiA+PiBUbyBhY2NvbW1vZGF0ZSB0aGUgZGlmZmVyZW50IHJlc3Bv bnNlIHRpbWUgb2YgU1BJIHRyYW5zZmVycyBvbg0KPiA+PiBkaWZmZXJlbnQgYm9hcmRzIGFuZCBk aWZmZXJlbnQgU1BJIE5PUiBkZXZpY2VzLCB0aGUgQXNwZWVkDQo+ID4+IGNvbnRyb2xsZXJzIHBy b3ZpZGUgYSBzZXQgb2YgUmVhZCBUaW1pbmcgQ29tcGVuc2F0aW9uIHJlZ2lzdGVycyB0bw0KPiA+ PiB0dW5lIHRoZSB0aW1pbmcgZGVsYXlzIGRlcGVuZGluZyBvbiB0aGUgZnJlcXVlbmN5IGJlaW5n IHVzZWQuIFRoZQ0KPiA+PiBBU1QyNjAwIFNvQyBoYXMgb25lIG9mIHRoZXNlIHJlZ2lzdGVycyBw ZXIgZGV2aWNlLiBPbiB0aGUgQVNUMjUwMCBhbmQNCj4gPj4gQVNUMjQwMCBTb0NzLCB0aGUgdGlt aW5nIHJlZ2lzdGVyIGlzIHNoYXJlZCBieSBhbGwgZGV2aWNlcyB3aGljaCBpcw0KPiBwcm9ibGVt YXRpYyB0byBnZXQgZ29vZCByZXN1bHRzIG90aGVyIHRoYW4gZm9yIG9uZSBkZXZpY2UuDQo+ID4+ DQo+ID4+IFRoZSBhbGdvcml0aG0gZmlyc3QgcmVhZHMgYSBnb2xkZW4gYnVmZmVyIGF0IGxvdyBz cGVlZCBhbmQgdGhlbg0KPiA+PiBwZXJmb3JtcyByZWFkcyB3aXRoIGRpZmZlcmVudCBjbG9ja3Mg YW5kIGRlbGF5IGN5Y2xlIHNldHRpbmdzIHRvIGZpbmQNCj4gPj4gYSBicmVha2luZyBwb2ludC4g VGhpcyBzZWxlY3RzIGEgZGVmYXVsdCBnb29kIGZyZXF1ZW5jeSBmb3IgdGhlIENFeCBjb250cm9s DQo+IHJlZ2lzdGVyLg0KPiA+PiBUaGUgY3VycmVudCBzZXR0aW5ncyBhcmUgYSBiaXQgb3B0aW1p c3RpYyBhcyB3ZSBwaWNrIHRoZSBmaXJzdCBkZWxheQ0KPiA+PiBnaXZpbmcgZ29vZCByZXN1bHRz LiBBIHNhZmVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGRldGVybWluZSBhbg0KPiA+PiBpbnRlcnZh bCBhbmQgY2hvb3NlIHRoZSBtaWRkbGUgdmFsdWUuDQo+ID4+DQo+ID4+IENhbGlicmF0aW9uIGlz IHBlcmZvcm1lZCB3aGVuIHRoZSBkaXJlY3QgbWFwcGluZyBmb3IgcmVhZHMgaXMgY3JlYXRlZC4N Cj4gPj4gU2luY2UgdGhlIHVuZGVybHlpbmcgc3BpLW5vciBvYmplY3QgbmVlZHMgdG8gYmUgaW5p dGlhbGl6ZWQgdG8gY3JlYXRlDQo+ID4+IHRoZSBzcGlfbWVtIG9wZXJhdGlvbiBmb3IgZGlyZWN0 IG1hcHBpbmcsIHdlIHNob3VsZCBiZSBmaW5lLiBIYXZpbmcgYQ0KPiA+PiBzcGVjaWZpYyBBUEkg d291bGQgY2xhcmlmeSB0aGUgcmVxdWlyZW1lbnRzIHRob3VnaC4NCj4gPj4NCj4gPj4gQ2M6IFBy YXR5dXNoIFlhZGF2IDxwLnlhZGF2QHRpLmNvbT4NCj4gPj4gUmV2aWV3ZWQtYnk6IEpvZWwgU3Rh bmxleSA8am9lbEBqbXMuaWQuYXU+DQo+ID4+IFRlc3RlZC1ieTogSm9lbCBTdGFubGV5IDxqb2Vs QGptcy5pZC5hdT4NCj4gPj4gVGVzdGVkLWJ5OiBUYW8gUmVuIDxyZW50YW8uYnVwdEBnbWFpbC5j b20+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC5vcmc+ DQo+ID4+IC0tLQ0KPiA+PiAgIGRyaXZlcnMvc3BpL3NwaS1hc3BlZWQtc21jLmMgfCAyODENCj4g Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4gICAxIGZpbGUgY2hh bmdlZCwgMjgxIGluc2VydGlvbnMoKykNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3BpL3NwaS1hc3BlZWQtc21jLmMNCj4gPj4gYi9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNtYy5j IGluZGV4DQo+ID4+IDdmMzA2ZGE3YzQ0ZS4uNjYwNDUxNjY3YTM5IDEwMDY0NA0KPiA+PiAtLS0g YS9kcml2ZXJzL3NwaS9zcGktYXNwZWVkLXNtYy5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvc3BpL3Nw aS1hc3BlZWQtc21jLmMNCj4gPj4gQEAgLTMzLDYgKzMzLDggQEANCj4gPj4gICAjZGVmaW5lICAg Q1RSTF9JT19BRERSRVNTXzRCCQlCSVQoMTMpCS8qIEFTVDI0MDAgU1BJIG9ubHkNCj4gKi8NCj4g Pj4gICAjZGVmaW5lICAgQ1RSTF9JT19EVU1NWV9TRVQoZHVtbXkpCQkJCQlcDQo+ID4+ICAgCSgo KCgoZHVtbXkpID4+IDIpICYgMHgxKSA8PCAxNCkgfCAoKChkdW1teSkgJiAweDMpIDw8IDYpKQ0K PiA+PiArI2RlZmluZSAgIENUUkxfRlJFUV9TRUxfU0hJRlQJCTgNCj4gPj4gKyNkZWZpbmUgICBD VFJMX0ZSRVFfU0VMX01BU0sJCUdFTk1BU0soMTEsDQo+ID4+IENUUkxfRlJFUV9TRUxfU0hJRlQp DQo+ID4+ICAgI2RlZmluZSAgIENUUkxfQ0VfU1RPUF9BQ1RJVkUJCUJJVCgyKQ0KPiA+PiAgICNk ZWZpbmUgICBDVFJMX0lPX01PREVfQ01EX01BU0sJCUdFTk1BU0soMSwgMCkNCj4gPj4gICAjZGVm aW5lICAgQ1RSTF9JT19NT0RFX05PUk1BTAkJMHgwDQo+ID4+IEBAIC00NSw2ICs0Nyw5IEBADQo+ ID4+ICAgLyogQ0V4IEFkZHJlc3MgRGVjb2RpbmcgUmFuZ2UgUmVnaXN0ZXIgKi8NCj4gPj4gICAj ZGVmaW5lIENFMF9TRUdNRU5UX0FERFJfUkVHCQkweDMwDQo+ID4+DQo+ID4+ICsvKiBDRXggUmVh ZCB0aW1pbmcgY29tcGVuc2F0aW9uIHJlZ2lzdGVyICovDQo+ID4+ICsjZGVmaW5lIENFMF9USU1J TkdfQ09NUEVOU0FUSU9OX1JFRwkweDk0DQo+ID4+ICsNCj4gPj4gICBlbnVtIGFzcGVlZF9zcGlf Y3RsX3JlZ192YWx1ZSB7DQo+ID4+ICAgCUFTUEVFRF9TUElfQkFTRSwNCj4gPj4gICAJQVNQRUVE X1NQSV9SRUFELA0KPiA+PiBAQCAtNzAsMTAgKzc1LDE1IEBAIHN0cnVjdCBhc3BlZWRfc3BpX2Rh dGEgew0KPiA+PiAgIAlib29sCWhhc3R5cGU7DQo+ID4+ICAgCXUzMgltb2RlX2JpdHM7DQo+ID4+ ICAgCXUzMgl3ZTA7DQo+ID4+ICsJdTMyCXRpbWluZzsNCj4gPj4gKwl1MzIJaGNsa19tYXNrOw0K PiA+PiArCXUzMgloZGl2X21heDsNCj4gPj4NCj4gPj4gICAJdTMyICgqc2VnbWVudF9zdGFydCko c3RydWN0IGFzcGVlZF9zcGkgKmFzcGksIHUzMiByZWcpOw0KPiA+PiAgIAl1MzIgKCpzZWdtZW50 X2VuZCkoc3RydWN0IGFzcGVlZF9zcGkgKmFzcGksIHUzMiByZWcpOw0KPiA+PiAgIAl1MzIgKCpz ZWdtZW50X3JlZykoc3RydWN0IGFzcGVlZF9zcGkgKmFzcGksIHUzMiBzdGFydCwgdTMyIGVuZCk7 DQo+ID4+ICsJaW50ICgqY2FsaWJyYXRlKShzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwLCB1 MzIgaGRpdiwNCj4gPj4gKwkJCSBjb25zdCB1OCAqZ29sZGVuX2J1ZiwgdTggKnRlc3RfYnVmKTsN Cj4gPj4gICB9Ow0KPiA+Pg0KPiA+PiAgICNkZWZpbmUgQVNQRUVEX1NQSV9NQVhfTlVNX0NTCTUN Cj4gPj4gQEAgLTUxNyw2ICs1MjcsOCBAQCBzdGF0aWMgaW50IGFzcGVlZF9zcGlfY2hpcF9hZGp1 c3Rfd2luZG93KHN0cnVjdA0KPiA+PiBhc3BlZWRfc3BpX2NoaXAgKmNoaXAsDQo+ID4+ICAgCXJl dHVybiAwOw0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gK3N0YXRpYyBpbnQgYXNwZWVkX3NwaV9kb19j YWxpYnJhdGlvbihzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpjaGlwKTsNCj4gPj4gKw0KPiA+PiAg IHN0YXRpYyBpbnQgYXNwZWVkX3NwaV9kaXJtYXBfY3JlYXRlKHN0cnVjdCBzcGlfbWVtX2Rpcm1h cF9kZXNjDQo+ICpkZXNjKSAgew0KPiA+PiAgIAlzdHJ1Y3QgYXNwZWVkX3NwaSAqYXNwaSA9DQo+ ID4+IHNwaV9jb250cm9sbGVyX2dldF9kZXZkYXRhKGRlc2MtPm1lbS0+c3BpLT5tYXN0ZXIpOw0K PiA+PiBAQCAtNTY1LDYgKzU3Nyw4IEBAIHN0YXRpYyBpbnQgYXNwZWVkX3NwaV9kaXJtYXBfY3Jl YXRlKHN0cnVjdA0KPiA+PiBzcGlfbWVtX2Rpcm1hcF9kZXNjICpkZXNjKQ0KPiA+PiAgIAljaGlw LT5jdGxfdmFsW0FTUEVFRF9TUElfUkVBRF0gPSBjdGxfdmFsOw0KPiA+PiAgIAl3cml0ZWwoY2hp cC0+Y3RsX3ZhbFtBU1BFRURfU1BJX1JFQURdLCBjaGlwLT5jdGwpOw0KPiA+Pg0KPiA+PiArCXJl dCA9IGFzcGVlZF9zcGlfZG9fY2FsaWJyYXRpb24oY2hpcCk7DQo+ID4+ICsNCj4gPj4gICAJZGV2 X2luZm8oYXNwaS0+ZGV2LCAiQ0UlZCByZWFkIGJ1c3dpZHRoOiVkIFsweCUwOHhdXG4iLA0KPiA+ PiAgIAkJIGNoaXAtPmNzLCBvcC0+ZGF0YS5idXN3aWR0aCwNCj4gY2hpcC0+Y3RsX3ZhbFtBU1BF RURfU1BJX1JFQURdKTsNCj4gPj4NCj4gPj4gQEAgLTgxMiw2ICs4MjYsMjQ5IEBAIHN0YXRpYyB1 MzINCj4gPj4gYXNwZWVkX3NwaV9zZWdtZW50X2FzdDI2MDBfcmVnKHN0cnVjdA0KPiA+PiBhc3Bl ZWRfc3BpICphc3BpLA0KPiA+PiAgIAkJKChlbmQgLSAxKSAmIEFTVDI2MDBfU0VHX0FERFJfTUFT Syk7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiArLyoNCj4gPj4gKyAqIFJlYWQgdGltaW5nIGNvbXBl bnNhdGlvbiBzZXF1ZW5jZXMgICovDQo+ID4+ICsNCj4gPj4gKyNkZWZpbmUgQ0FMSUJSQVRFX0JV Rl9TSVpFIFNaXzE2Sw0KPiA+PiArDQo+ID4+ICtzdGF0aWMgYm9vbCBhc3BlZWRfc3BpX2NoZWNr X3JlYWRzKHN0cnVjdCBhc3BlZWRfc3BpX2NoaXAgKmNoaXAsDQo+ID4+ICsJCQkJICAgY29uc3Qg dTggKmdvbGRlbl9idWYsIHU4ICp0ZXN0X2J1Zikgew0KPiA+PiArCWludCBpOw0KPiA+PiArDQo+ ID4+ICsJZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsNCj4gPj4gKwkJbWVtY3B5X2Zyb21pbyh0 ZXN0X2J1ZiwgY2hpcC0+YWhiX2Jhc2UsIENBTElCUkFURV9CVUZfU0laRSk7DQo+ID4+ICsJCWlm IChtZW1jbXAodGVzdF9idWYsIGdvbGRlbl9idWYsIENBTElCUkFURV9CVUZfU0laRSkgIT0gMCkg eyAjaWYNCj4gPj4gK2RlZmluZWQoVkVSQk9TRV9ERUJVRykNCj4gPj4gKwkJCXByaW50X2hleF9k dW1wX2J5dGVzKERFVklDRV9OQU1FICIgIGZhaWw6ICIsDQo+ID4+IERVTVBfUFJFRklYX05PTkUs DQo+ID4+ICsJCQkJCSAgICAgdGVzdF9idWYsIDB4MTAwKTsNCj4gPj4gKyNlbmRpZg0KPiA+PiAr CQkJcmV0dXJuIGZhbHNlOw0KPiA+PiArCQl9DQo+ID4+ICsJfQ0KPiA+PiArCXJldHVybiB0cnVl Ow0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICsjZGVmaW5lIEZSRUFEX1RQQVNTKGkpCSgoKGkpIC8g MikgfCAoKChpKSAmIDEpID8gMCA6IDgpKQ0KPiA+PiArDQo+ID4+ICsvKg0KPiA+PiArICogVGhl IHRpbWluZyByZWdpc3RlciBpcyBzaGFyZWQgYnkgYWxsIGRldmljZXMuIE9ubHkgdXBkYXRlIGZv ciBDRTAuDQo+ID4+ICsgKi8NCj4gPj4gK3N0YXRpYyBpbnQgYXNwZWVkX3NwaV9jYWxpYnJhdGUo c3RydWN0IGFzcGVlZF9zcGlfY2hpcCAqY2hpcCwgdTMyIGhkaXYsDQo+ID4+ICsJCQkJY29uc3Qg dTggKmdvbGRlbl9idWYsIHU4ICp0ZXN0X2J1Zikgew0KPiA+PiArCXN0cnVjdCBhc3BlZWRfc3Bp ICphc3BpID0gY2hpcC0+YXNwaTsNCj4gPj4gKwljb25zdCBzdHJ1Y3QgYXNwZWVkX3NwaV9kYXRh ICpkYXRhID0gYXNwaS0+ZGF0YTsNCj4gPj4gKwlpbnQgaTsNCj4gPj4gKwlpbnQgZ29vZF9wYXNz ID0gLTEsIHBhc3NfY291bnQgPSAwOw0KPiA+PiArCXUzMiBzaGlmdCA9IChoZGl2IC0gMSkgPDwg MjsNCj4gPj4gKwl1MzIgbWFzayA9IH4oMHhmdSA8PCBzaGlmdCk7DQo+ID4+ICsJdTMyIGZyZWFk X3RpbWluZ192YWwgPSAwOw0KPiA+PiArDQo+ID4+ICsJLyogVHJ5IEhDTEsgZGVsYXkgMC4uNSwg ZWFjaCBvbmUgd2l0aC93aXRob3V0IGRlbGF5IGFuZCBsb29rIGZvciBhDQo+ID4+ICsJICogZ29v ZCBwYWlyLg0KPiA+PiArCSAqLw0KPiA+PiArCWZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7DQo+ ID4+ICsJCWJvb2wgcGFzczsNCj4gPj4gKw0KPiA+PiArCQlpZiAoY2hpcC0+Y3MgPT0gMCkgew0K PiA+PiArCQkJZnJlYWRfdGltaW5nX3ZhbCAmPSBtYXNrOw0KPiA+PiArCQkJZnJlYWRfdGltaW5n X3ZhbCB8PSBGUkVBRF9UUEFTUyhpKSA8PCBzaGlmdDsNCj4gPj4gKwkJCXdyaXRlbChmcmVhZF90 aW1pbmdfdmFsLCBhc3BpLT5yZWdzICsgZGF0YS0+dGltaW5nKTsNCj4gPj4gKwkJfQ0KPiA+PiAr CQlwYXNzID0gYXNwZWVkX3NwaV9jaGVja19yZWFkcyhjaGlwLCBnb2xkZW5fYnVmLCB0ZXN0X2J1 Zik7DQo+ID4+ICsJCWRldl9kYmcoYXNwaS0+ZGV2LA0KPiA+PiArCQkJIiAgKiBbJTA4eF0gJWQg SENMSyBkZWxheSwgJWRucyBESSBkZWxheSA6ICVzIiwNCj4gPj4gKwkJCWZyZWFkX3RpbWluZ192 YWwsIGkgLyAyLCAoaSAmIDEpID8gMCA6IDQsDQo+ID4+ICsJCQlwYXNzID8gIlBBU1MiIDogIkZB SUwiKTsNCj4gPj4gKwkJaWYgKHBhc3MpIHsNCj4gPj4gKwkJCXBhc3NfY291bnQrKzsNCj4gPj4g KwkJCWlmIChwYXNzX2NvdW50ID09IDMpIHsNCj4gPj4gKwkJCQlnb29kX3Bhc3MgPSBpIC0gMTsN Cj4gPj4gKwkJCQlicmVhazsNCj4gPj4gKwkJCX0NCj4gPj4gKwkJfSBlbHNlIHsNCj4gPj4gKwkJ CXBhc3NfY291bnQgPSAwOw0KPiA+PiArCQl9DQo+ID4+ICsJfQ0KPiA+PiArDQo+ID4+ICsJLyog Tm8gZ29vZCBzZXR0aW5nIGZvciB0aGlzIGZyZXF1ZW5jeSAqLw0KPiA+PiArCWlmIChnb29kX3Bh c3MgPCAwKQ0KPiA+PiArCQlyZXR1cm4gLTE7DQo+ID4+ICsNCj4gPj4gKwkvKiBXZSBoYXZlIGF0 IGxlYXN0IG9uZSBwYXNzIG9mIG1hcmdpbiwgbGV0J3MgdXNlIGZpcnN0IHBhc3MgKi8NCj4gPj4g KwlpZiAoY2hpcC0+Y3MgPT0gMCkgew0KPiA+PiArCQlmcmVhZF90aW1pbmdfdmFsICY9IG1hc2s7 DQo+ID4+ICsJCWZyZWFkX3RpbWluZ192YWwgfD0gRlJFQURfVFBBU1MoZ29vZF9wYXNzKSA8PCBz aGlmdDsNCj4gPj4gKwkJd3JpdGVsKGZyZWFkX3RpbWluZ192YWwsIGFzcGktPnJlZ3MgKyBkYXRh LT50aW1pbmcpOw0KPiA+PiArCX0NCj4gPj4gKwlkZXZfZGJnKGFzcGktPmRldiwgIiAqIC0+IGdv b2QgaXMgcGFzcyAlZCBbMHglMDh4XSIsDQo+ID4+ICsJCWdvb2RfcGFzcywgZnJlYWRfdGltaW5n X3ZhbCk7DQo+ID4+ICsJcmV0dXJuIDA7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK3N0YXRpYyBi b29sIGFzcGVlZF9zcGlfY2hlY2tfY2FsaWJfZGF0YShjb25zdCB1OCAqdGVzdF9idWYsIHUzMiBz aXplKSB7DQo+ID4+ICsJY29uc3QgdTMyICp0YjMyID0gKGNvbnN0IHUzMiAqKXRlc3RfYnVmOw0K PiA+PiArCXUzMiBpLCBjbnQgPSAwOw0KPiA+PiArDQo+ID4+ICsJLyogV2UgY2hlY2sgaWYgd2Ug aGF2ZSBlbm91Z2ggd29yZHMgdGhhdCBhcmUgbmVpdGhlciBhbGwgMA0KPiA+PiArCSAqIG5vciBh bGwgMSdzIHNvIHRoZSBjYWxpYnJhdGlvbiBjYW4gYmUgY29uc2lkZXJlZCB2YWxpZC4NCj4gPj4g KwkgKg0KPiA+PiArCSAqIEkgdXNlIGFuIGFyYml0cmFyeSB0aHJlc2hvbGQgZm9yIG5vdyBvZiA2 NA0KPiA+PiArCSAqLw0KPiA+PiArCXNpemUgPj49IDI7DQo+ID4+ICsJZm9yIChpID0gMDsgaSA8 IHNpemU7IGkrKykgew0KPiA+PiArCQlpZiAodGIzMltpXSAhPSAwICYmIHRiMzJbaV0gIT0gMHhm ZmZmZmZmZikNCj4gPj4gKwkJCWNudCsrOw0KPiA+PiArCX0NCj4gPj4gKwlyZXR1cm4gY250ID49 IDY0Ow0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgY29uc3QgdTMyIGFzcGVlZF9zcGlf aGNsa19kaXZzW10gPSB7DQo+ID4+ICsJMHhmLCAvKiBIQ0xLICovDQo+ID4+ICsJMHg3LCAvKiBI Q0xLLzIgKi8NCj4gPj4gKwkweGUsIC8qIEhDTEsvMyAqLw0KPiA+PiArCTB4NiwgLyogSENMSy80 ICovDQo+ID4+ICsJMHhkLCAvKiBIQ0xLLzUgKi8NCj4gPj4gK307DQo+ID4+ICsNCj4gPj4gKyNk ZWZpbmUgQVNQRUVEX1NQSV9IQ0xLX0RJVihpKSBcDQo+ID4+ICsJKGFzcGVlZF9zcGlfaGNsa19k aXZzWyhpKSAtIDFdIDw8IENUUkxfRlJFUV9TRUxfU0hJRlQpDQo+ID4+ICsNCj4gPj4gK3N0YXRp YyBpbnQgYXNwZWVkX3NwaV9kb19jYWxpYnJhdGlvbihzdHJ1Y3QgYXNwZWVkX3NwaV9jaGlwICpj aGlwKSB7DQo+ID4+ICsJc3RydWN0IGFzcGVlZF9zcGkgKmFzcGkgPSBjaGlwLT5hc3BpOw0KPiA+ PiArCWNvbnN0IHN0cnVjdCBhc3BlZWRfc3BpX2RhdGEgKmRhdGEgPSBhc3BpLT5kYXRhOw0KPiA+ PiArCXUzMiBhaGJfZnJlcSA9IGFzcGktPmNsa19mcmVxOw0KPiA+PiArCXUzMiBtYXhfZnJlcSA9 IGNoaXAtPmNsa19mcmVxOw0KPiA+PiArCXUzMiBjdGxfdmFsOw0KPiA+PiArCXU4ICpnb2xkZW5f YnVmID0gTlVMTDsNCj4gPj4gKwl1OCAqdGVzdF9idWYgPSBOVUxMOw0KPiA+PiArCWludCBpLCBy YywgYmVzdF9kaXYgPSAtMTsNCj4gPj4gKw0KPiA+PiArCWRldl9kYmcoYXNwaS0+ZGV2LCAiY2Fs Y3VsYXRlIHRpbWluZyBjb21wZW5zYXRpb24gLSBBSEIgZnJlcTogJWQgTUh6IiwNCj4gPj4gKwkJ YWhiX2ZyZXEgLyAxMDAwMDAwKTsNCj4gPj4gKw0KPiA+PiArCS8qDQo+ID4+ICsJICogdXNlIHRo ZSByZWxhdGVkIGxvdyBmcmVxdWVuY3kgdG8gZ2V0IGNoZWNrIGNhbGlicmF0aW9uIGRhdGENCj4g Pj4gKwkgKiBhbmQgZ2V0IGdvbGRlbiBkYXRhLg0KPiA+PiArCSAqLw0KPiA+PiArCWN0bF92YWwg PSBjaGlwLT5jdGxfdmFsW0FTUEVFRF9TUElfUkVBRF0gJiBkYXRhLT5oY2xrX21hc2s7DQo+ID4+ ICsJd3JpdGVsKGN0bF92YWwsIGNoaXAtPmN0bCk7DQo+ID4+ICsNCj4gPj4gKwl0ZXN0X2J1ZiA9 IGt6YWxsb2MoQ0FMSUJSQVRFX0JVRl9TSVpFICogMiwgR0ZQX0tFUk5FTCk7DQo+ID4+ICsJaWYg KCF0ZXN0X2J1ZikNCj4gPj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4+ICsNCj4gPj4gKwlnb2xk ZW5fYnVmID0gdGVzdF9idWYgKyBDQUxJQlJBVEVfQlVGX1NJWkU7DQo+ID4+ICsNCj4gPj4gKwlt ZW1jcHlfZnJvbWlvKGdvbGRlbl9idWYsIGNoaXAtPmFoYl9iYXNlLCBDQUxJQlJBVEVfQlVGX1NJ WkUpOw0KPiA+PiArCWlmICghYXNwZWVkX3NwaV9jaGVja19jYWxpYl9kYXRhKGdvbGRlbl9idWYs IENBTElCUkFURV9CVUZfU0laRSkpIHsNCj4gPj4gKwkJZGV2X2luZm8oYXNwaS0+ZGV2LCAiQ2Fs aWJyYXRpb24gYXJlYSB0b28gdW5pZm9ybSwgdXNpbmcgbG93IHNwZWVkIik7DQo+ID4+ICsJCWdv dG8gbm9fY2FsaWI7DQo+ID4+ICsJfQ0KPiA+PiArDQo+ID4+ICsjaWYgZGVmaW5lZChWRVJCT1NF X0RFQlVHKQ0KPiA+PiArCXByaW50X2hleF9kdW1wX2J5dGVzKERFVklDRV9OQU1FICIgIGdvb2Q6 ICIsIERVTVBfUFJFRklYX05PTkUsDQo+ID4+ICsJCQkgICAgIGdvbGRlbl9idWYsIDB4MTAwKTsN Cj4gPj4gKyNlbmRpZg0KPiA+PiArDQo+ID4+ICsJLyogTm93IHdlIGl0ZXJhdGUgdGhlIEhDTEsg ZGl2aWRlcnMgdW50aWwgd2UgZmluZCBvdXIgYnJlYWtpbmcgcG9pbnQgKi8NCj4gPj4gKwlmb3Ig KGkgPSBBUlJBWV9TSVpFKGFzcGVlZF9zcGlfaGNsa19kaXZzKTsgaSA+IGRhdGEtPmhkaXZfbWF4 IC0gMTsgaS0tKSB7DQo+ID4+ICsJCXUzMiB0diwgZnJlcTsNCj4gPj4gKw0KPiA+PiArCQlmcmVx ID0gYWhiX2ZyZXEgLyBpOw0KPiA+PiArCQlpZiAoZnJlcSA+IG1heF9mcmVxKQ0KPiA+PiArCQkJ Y29udGludWU7DQo+ID4+ICsNCj4gPj4gKwkJLyogU2V0IHRoZSB0aW1pbmcgKi8NCj4gPj4gKwkJ dHYgPSBjaGlwLT5jdGxfdmFsW0FTUEVFRF9TUElfUkVBRF0gfCBBU1BFRURfU1BJX0hDTEtfRElW KGkpOw0KPiA+PiArCQl3cml0ZWwodHYsIGNoaXAtPmN0bCk7DQo+ID4+ICsJCWRldl9kYmcoYXNw aS0+ZGV2LCAiVHJ5aW5nIEhDTEsvJWQgWyUwOHhdIC4uLiIsIGksIHR2KTsNCj4gPj4gKwkJcmMg PSBkYXRhLT5jYWxpYnJhdGUoY2hpcCwgaSwgZ29sZGVuX2J1ZiwgdGVzdF9idWYpOw0KPiA+PiAr CQlpZiAocmMgPT0gMCkNCj4gPj4gKwkJCWJlc3RfZGl2ID0gaTsNCj4gPj4gKwl9DQo+ID4+ICsN Cj4gPj4gKwkvKiBOb3RoaW5nIGZvdW5kID8gKi8NCj4gPj4gKwlpZiAoYmVzdF9kaXYgPCAwKSB7 DQo+ID4+ICsJCWRldl93YXJuKGFzcGktPmRldiwgIk5vIGdvb2QgZnJlcXVlbmN5LCB1c2luZyBk dW1iIHNsb3ciKTsNCj4gPj4gKwl9IGVsc2Ugew0KPiA+PiArCQlkZXZfZGJnKGFzcGktPmRldiwg IkZvdW5kIGdvb2QgcmVhZCB0aW1pbmdzIGF0IEhDTEsvJWQiLA0KPiA+PiBiZXN0X2Rpdik7DQo+ ID4+ICsNCj4gPj4gKwkJLyogUmVjb3JkIHRoZSBmcmVxICovDQo+ID4+ICsJCWZvciAoaSA9IDA7 IGkgPCBBU1BFRURfU1BJX01BWDsgaSsrKQ0KPiA+PiArCQkJY2hpcC0+Y3RsX3ZhbFtpXSA9IChj aGlwLT5jdGxfdmFsW2ldICYgZGF0YS0+aGNsa19tYXNrKSB8DQo+ID4+ICsJCQkJQVNQRUVEX1NQ SV9IQ0xLX0RJVihiZXN0X2Rpdik7DQo+ID4+ICsJfQ0KPiA+PiArDQo+ID4+ICtub19jYWxpYjoN Cj4gPg0KPiA+IC0gTWF5YmUsIGlmIHRoZSBjYWxpYnJhdGlvbiBwcm9jZXNzIGlzIG5vdCBleGVj dXRlZCwgdGhlIGZyZXF1ZW5jeSBzZXR0aW5nDQo+IGNhbGN1bGF0ZWQgZnJvbSBtYXhfZnJlcXVl bmN5IGluIHRoZSBkZXZpY2UgdHJlZSBjYW4gYmUgZmlsbGVkIGluIEZNQzEwDQo+IGluc3RlYWQg b2YgdXNpbmcgZHVtYiBzbG93IG9uZSwgMTIuNU1IeiwgYWx3YXlzLg0KPiANCj4gSW5kZWVkLg0K PiANCj4gPiAgIEZvciBleGFtcGxlLCBleGNlcHQgZm9yIHVuaWZvcm0gY29udGVudCBjYXNlLCB0 aGUgY2FsaWJyYXRpb24gcHJvY2VzcyB3aWxsDQo+IGJlIGlnbm9yZWQgd2hlbiBTUEkgY2xvY2sg ZnJlcXVlbmN5IGluIHRoZSBkZXZpY2UgdHJlZSBpcyBzbWFsbGVyIHRoYW4gNDBNSHouDQo+ID4g LSBUaGUgZnVuY3Rpb24sIGFzcGVlZF8yNjAwX3NwaV9jbGtfYmFzaWNfc2V0dGluZywgaW4gWzJd IGNhbiBiZSBhZGRlZCB0bw0KPiBzdXBwb3J0IGxvd2VyIFNQSSBjbG9jayBmcmVxdWVuY3ksIGUu Zy4sIDRNSHouDQo+ID4gICBGb3IgQVNUMjYwMCwgU1BJIGNsb2NrIGZyZXF1ZW5jeSBjYW4gYmUg Y2FsY3VsYXRlZCBieQ0KPiBIQ0xLLyhGTUMxMFsyNzoyNF0gKyBGTUMxMFsxMTo4XSkuDQo+IA0K PiBDb3VsZCB5b3UgcGxlYXNlIHNlbmQgcGF0Y2hlcyBvbiB0b3Agb2YgdGhpcyBzZXJpZXMgPyBI ZXJlIGFyZSB0aGUgYnJhbmNoZXMgOg0KPiANCg0KT2YgY291cnNlLiBIb3cgZG8gSSBwcm92aWRl IHlvdSB0aGUgcGF0Y2g/IEJ5IHByaXZhdGUgbWFpbCBvciBzZW5kIGEgUFI/DQpCZXNpZGVzLCBJ IG1heSBhZGQgYSBuZXcgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoaXMgcGFydCBkdWUgdG8gZGlm ZmVyZW5jZSBiZXR3ZWVuIEFTVDI1MDAgYW5kIEFTVDI2MDAuDQoNClRoYW5rcy4NCg0KQ2hpbi1U aW5nDQoNCj4gICAgaHR0cHM6Ly9naXRodWIuY29tL2xlZ29hdGVyL2xpbnV4L2NvbW1pdHMvb3Bl bmJtYy01LjE1DQo+ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9sZWdvYXRlci9saW51eC9jb21taXRz L2FzcGVlZCAgICAgICAgIChtYWlubGluZSkNCj4gDQo+IEkgY2FuIGluY2x1ZGUgdGhlbSB3aGVu IEkgcmVzZW5kIGEgdjUuDQo+IA0KPiBUaGFua3MsDQo+IA0KPiBDLg0KPiANCj4gDQo+ID4NCj4g Pj4gKwl3cml0ZWwoY2hpcC0+Y3RsX3ZhbFtBU1BFRURfU1BJX1JFQURdLCBjaGlwLT5jdGwpOw0K PiA+PiArCWtmcmVlKHRlc3RfYnVmKTsNCj4gPj4gKwlyZXR1cm4gMDsNCj4gPj4gK30NCj4gPj4g Kw0KPiA+PiArI2RlZmluZSBUSU1JTkdfREVMQVlfREkJCUJJVCgzKQ0KPiA+PiArI2RlZmluZSBU SU1JTkdfREVMQVlfSENZQ0xFX01BWAk1DQo+ID4+ICsjZGVmaW5lIFRJTUlOR19SRUdfQVNUMjYw MChjaGlwKQkJCQlcDQo+ID4+ICsJKChjaGlwKS0+YXNwaS0+cmVncyArIChjaGlwKS0+YXNwaS0+ ZGF0YS0+dGltaW5nICsJXA0KPiA+PiArCSAoY2hpcCktPmNzICogNCkNCj4gPj4gKw0KPiA+PiAr c3RhdGljIGludCBhc3BlZWRfc3BpX2FzdDI2MDBfY2FsaWJyYXRlKHN0cnVjdCBhc3BlZWRfc3Bp X2NoaXANCj4gPj4gKypjaGlwLCB1MzINCj4gPj4gaGRpdiwNCj4gPj4gKwkJCQkJY29uc3QgdTgg KmdvbGRlbl9idWYsIHU4ICp0ZXN0X2J1Zikgew0KPiA+PiArCXN0cnVjdCBhc3BlZWRfc3BpICph c3BpID0gY2hpcC0+YXNwaTsNCj4gPj4gKwlpbnQgaGN5Y2xlOw0KPiA+PiArCXUzMiBzaGlmdCA9 IChoZGl2IC0gMikgPDwgMzsNCj4gPj4gKwl1MzIgbWFzayA9IH4oMHhmdSA8PCBzaGlmdCk7DQo+ ID4+ICsJdTMyIGZyZWFkX3RpbWluZ192YWwgPSAwOw0KPiA+PiArDQo+ID4+ICsJZm9yIChoY3lj bGUgPSAwOyBoY3ljbGUgPD0gVElNSU5HX0RFTEFZX0hDWUNMRV9NQVg7IGhjeWNsZSsrKSB7DQo+ ID4+ICsJCWludCBkZWxheV9uczsNCj4gPj4gKwkJYm9vbCBwYXNzID0gZmFsc2U7DQo+ID4+ICsN Cj4gPj4gKwkJZnJlYWRfdGltaW5nX3ZhbCAmPSBtYXNrOw0KPiA+PiArCQlmcmVhZF90aW1pbmdf dmFsIHw9IGhjeWNsZSA8PCBzaGlmdDsNCj4gPj4gKw0KPiA+PiArCQkvKiBubyBESSBpbnB1dCBk ZWxheSBmaXJzdCAgKi8NCj4gPj4gKwkJd3JpdGVsKGZyZWFkX3RpbWluZ192YWwsIFRJTUlOR19S RUdfQVNUMjYwMChjaGlwKSk7DQo+ID4+ICsJCXBhc3MgPSBhc3BlZWRfc3BpX2NoZWNrX3JlYWRz KGNoaXAsIGdvbGRlbl9idWYsIHRlc3RfYnVmKTsNCj4gPj4gKwkJZGV2X2RiZyhhc3BpLT5kZXYs DQo+ID4+ICsJCQkiICAqIFslMDh4XSAlZCBIQ0xLIGRlbGF5LCBESSBkZWxheSBub25lIDogJXMi LA0KPiA+PiArCQkJZnJlYWRfdGltaW5nX3ZhbCwgaGN5Y2xlLCBwYXNzID8gIlBBU1MiIDogIkZB SUwiKTsNCj4gPj4gKwkJaWYgKHBhc3MpDQo+ID4+ICsJCQlyZXR1cm4gMDsNCj4gPj4gKw0KPiA+ PiArCQkvKiBBZGQgREkgaW5wdXQgZGVsYXlzICAqLw0KPiA+PiArCQlmcmVhZF90aW1pbmdfdmFs ICY9IG1hc2s7DQo+ID4+ICsJCWZyZWFkX3RpbWluZ192YWwgfD0gKFRJTUlOR19ERUxBWV9ESSB8 IGhjeWNsZSkgPDwgc2hpZnQ7DQo+ID4+ICsNCj4gPj4gKwkJZm9yIChkZWxheV9ucyA9IDA7IGRl bGF5X25zIDwgMHgxMDsgZGVsYXlfbnMrKykgew0KPiA+PiArCQkJZnJlYWRfdGltaW5nX3ZhbCAm PSB+KDB4ZiA8PCAoNCArIHNoaWZ0KSk7DQo+ID4+ICsJCQlmcmVhZF90aW1pbmdfdmFsIHw9IGRl bGF5X25zIDw8ICg0ICsgc2hpZnQpOw0KPiA+PiArDQo+ID4+ICsJCQl3cml0ZWwoZnJlYWRfdGlt aW5nX3ZhbCwgVElNSU5HX1JFR19BU1QyNjAwKGNoaXApKTsNCj4gPj4gKwkJCXBhc3MgPSBhc3Bl ZWRfc3BpX2NoZWNrX3JlYWRzKGNoaXAsIGdvbGRlbl9idWYsIHRlc3RfYnVmKTsNCj4gPj4gKwkJ CWRldl9kYmcoYXNwaS0+ZGV2LA0KPiA+PiArCQkJCSIgICogWyUwOHhdICVkIEhDTEsgZGVsYXks IERJIGRlbGF5ICVkLiVkbnMgOiAlcyIsDQo+ID4+ICsJCQkJZnJlYWRfdGltaW5nX3ZhbCwgaGN5 Y2xlLCAoZGVsYXlfbnMgKyAxKSAvIDIsDQo+ID4+ICsJCQkJKGRlbGF5X25zICsgMSkgJiAxID8g NSA6IDUsIHBhc3MgPyAiUEFTUyIgOiAiRkFJTCIpOw0KPiA+PiArCQkJLyoNCj4gPj4gKwkJCSAq IFRPRE86IFRoaXMgaXMgb3B0aW1pc3RpYy4gV2Ugc2hvdWxkIGxvb2sNCj4gPj4gKwkJCSAqIGZv ciBhIHdvcmtpbmcgaW50ZXJ2YWwgYW5kIHNhdmUgdGhlIG1pZGRsZQ0KPiA+PiArCQkJICogdmFs dWUgaW4gdGhlIHJlYWQgdGltaW5nIHJlZ2lzdGVyLg0KPiA+PiArCQkJICovDQo+ID4+ICsJCQlp ZiAocGFzcykNCj4gPj4gKwkJCQlyZXR1cm4gMDsNCj4gPj4gKwkJfQ0KPiA+PiArCX0NCj4gPj4g Kw0KPiA+PiArCS8qIE5vIGdvb2Qgc2V0dGluZyBmb3IgdGhpcyBmcmVxdWVuY3kgKi8NCj4gPj4g KwlyZXR1cm4gLTE7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gICAvKg0KPiA+PiAgICAqIFBsYXRm b3JtIGRlZmluaXRpb25zDQo+ID4+ICAgICovDQo+ID4+IEBAIC04MjAsNiArMTA3NywxMCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9zcGlfZGF0YQ0KPiA+PiBhc3QyNDAwX2ZtY19kYXRh ID0gew0KPiA+PiAgIAkuaGFzdHlwZSAgICAgICA9IHRydWUsDQo+ID4+ICAgCS53ZTAJICAgICAg ID0gMTYsDQo+ID4+ICAgCS5jdGwwCSAgICAgICA9IENFMF9DVFJMX1JFRywNCj4gPj4gKwkudGlt aW5nCSAgICAgICA9IENFMF9USU1JTkdfQ09NUEVOU0FUSU9OX1JFRywNCj4gPj4gKwkuaGNsa19t YXNrICAgICA9IDB4ZmZmZmYwZmYsDQo+ID4+ICsJLmhkaXZfbWF4ICAgICAgPSAxLA0KPiA+PiAr CS5jYWxpYnJhdGUgICAgID0gYXNwZWVkX3NwaV9jYWxpYnJhdGUsDQo+ID4+ICAgCS5zZWdtZW50 X3N0YXJ0ID0gYXNwZWVkX3NwaV9zZWdtZW50X3N0YXJ0LA0KPiA+PiAgIAkuc2VnbWVudF9lbmQg ICA9IGFzcGVlZF9zcGlfc2VnbWVudF9lbmQsDQo+ID4+ICAgCS5zZWdtZW50X3JlZyAgID0gYXNw ZWVkX3NwaV9zZWdtZW50X3JlZywNCj4gPj4gQEAgLTgzMCw2ICsxMDkxLDEwIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYXNwZWVkX3NwaV9kYXRhDQo+ID4+IGFzdDI0MDBfc3BpX2RhdGEgPSB7DQo+ ID4+ICAgCS5oYXN0eXBlICAgICAgID0gZmFsc2UsDQo+ID4+ICAgCS53ZTAJICAgICAgID0gMCwN Cj4gPj4gICAJLmN0bDAJICAgICAgID0gMHgwNCwNCj4gPj4gKwkudGltaW5nCSAgICAgICA9IDB4 MTQsDQo+ID4+ICsJLmhjbGtfbWFzayAgICAgPSAweGZmZmZmMGZmLA0KPiA+PiArCS5oZGl2X21h eCAgICAgID0gMSwNCj4gPj4gKwkuY2FsaWJyYXRlICAgICA9IGFzcGVlZF9zcGlfY2FsaWJyYXRl LA0KPiA+PiAgIAkvKiBObyBzZWdtZW50IHJlZ2lzdGVycyAqLw0KPiA+PiAgIH07DQo+ID4+DQo+ ID4+IEBAIC04MzgsNiArMTEwMywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9zcGlf ZGF0YQ0KPiA+PiBhc3QyNTAwX2ZtY19kYXRhID0gew0KPiA+PiAgIAkuaGFzdHlwZSAgICAgICA9 IHRydWUsDQo+ID4+ICAgCS53ZTAJICAgICAgID0gMTYsDQo+ID4+ICAgCS5jdGwwCSAgICAgICA9 IENFMF9DVFJMX1JFRywNCj4gPj4gKwkudGltaW5nCSAgICAgICA9IENFMF9USU1JTkdfQ09NUEVO U0FUSU9OX1JFRywNCj4gPj4gKwkuaGNsa19tYXNrICAgICA9IDB4ZmZmZmYwZmYsDQo+ID4+ICsJ LmhkaXZfbWF4ICAgICAgPSAxLA0KPiA+PiArCS5jYWxpYnJhdGUgICAgID0gYXNwZWVkX3NwaV9j YWxpYnJhdGUsDQo+ID4+ICAgCS5zZWdtZW50X3N0YXJ0ID0gYXNwZWVkX3NwaV9zZWdtZW50X3N0 YXJ0LA0KPiA+PiAgIAkuc2VnbWVudF9lbmQgICA9IGFzcGVlZF9zcGlfc2VnbWVudF9lbmQsDQo+ ID4+ICAgCS5zZWdtZW50X3JlZyAgID0gYXNwZWVkX3NwaV9zZWdtZW50X3JlZywNCj4gPj4gQEAg LTg0OCw2ICsxMTE3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NwaV9kYXRhDQo+ ID4+IGFzdDI1MDBfc3BpX2RhdGEgPSB7DQo+ID4+ICAgCS5oYXN0eXBlICAgICAgID0gZmFsc2Us DQo+ID4+ICAgCS53ZTAJICAgICAgID0gMTYsDQo+ID4+ICAgCS5jdGwwCSAgICAgICA9IENFMF9D VFJMX1JFRywNCj4gPj4gKwkudGltaW5nCSAgICAgICA9IENFMF9USU1JTkdfQ09NUEVOU0FUSU9O X1JFRywNCj4gPj4gKwkuaGNsa19tYXNrICAgICA9IDB4ZmZmZmYwZmYsDQo+ID4+ICsJLmhkaXZf bWF4ICAgICAgPSAxLA0KPiA+PiArCS5jYWxpYnJhdGUgICAgID0gYXNwZWVkX3NwaV9jYWxpYnJh dGUsDQo+ID4+ICAgCS5zZWdtZW50X3N0YXJ0ID0gYXNwZWVkX3NwaV9zZWdtZW50X3N0YXJ0LA0K PiA+PiAgIAkuc2VnbWVudF9lbmQgICA9IGFzcGVlZF9zcGlfc2VnbWVudF9lbmQsDQo+ID4+ICAg CS5zZWdtZW50X3JlZyAgID0gYXNwZWVkX3NwaV9zZWdtZW50X3JlZywNCj4gPj4gQEAgLTg1OSw2 ICsxMTMyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNwZWVkX3NwaV9kYXRhDQo+ID4+IGFz dDI2MDBfZm1jX2RhdGEgPSB7DQo+ID4+ICAgCS5tb2RlX2JpdHMgICAgID0gU1BJX1JYX1FVQUQg fCBTUElfUlhfUVVBRCwNCj4gPj4gICAJLndlMAkgICAgICAgPSAxNiwNCj4gPj4gICAJLmN0bDAJ ICAgICAgID0gQ0UwX0NUUkxfUkVHLA0KPiA+PiArCS50aW1pbmcJICAgICAgID0gQ0UwX1RJTUlO R19DT01QRU5TQVRJT05fUkVHLA0KPiA+PiArCS5oY2xrX21hc2sgICAgID0gMHhmMGZmZjBmZiwN Cj4gPj4gKwkuaGRpdl9tYXggICAgICA9IDIsDQo+ID4+ICsJLmNhbGlicmF0ZSAgICAgPSBhc3Bl ZWRfc3BpX2FzdDI2MDBfY2FsaWJyYXRlLA0KPiA+PiAgIAkuc2VnbWVudF9zdGFydCA9IGFzcGVl ZF9zcGlfc2VnbWVudF9hc3QyNjAwX3N0YXJ0LA0KPiA+PiAgIAkuc2VnbWVudF9lbmQgICA9IGFz cGVlZF9zcGlfc2VnbWVudF9hc3QyNjAwX2VuZCwNCj4gPj4gICAJLnNlZ21lbnRfcmVnICAgPSBh c3BlZWRfc3BpX3NlZ21lbnRfYXN0MjYwMF9yZWcsDQo+ID4+IEBAIC04NzAsNiArMTE0NywxMCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFzcGVlZF9zcGlfZGF0YQ0KPiA+PiBhc3QyNjAwX3NwaV9k YXRhID0gew0KPiA+PiAgIAkubW9kZV9iaXRzICAgICA9IFNQSV9SWF9RVUFEIHwgU1BJX1JYX1FV QUQsDQo+ID4+ICAgCS53ZTAJICAgICAgID0gMTYsDQo+ID4+ICAgCS5jdGwwCSAgICAgICA9IENF MF9DVFJMX1JFRywNCj4gPj4gKwkudGltaW5nCSAgICAgICA9IENFMF9USU1JTkdfQ09NUEVOU0FU SU9OX1JFRywNCj4gPj4gKwkuaGNsa19tYXNrICAgICA9IDB4ZjBmZmYwZmYsDQo+ID4+ICsJLmhk aXZfbWF4ICAgICAgPSAyLA0KPiA+PiArCS5jYWxpYnJhdGUgICAgID0gYXNwZWVkX3NwaV9hc3Qy NjAwX2NhbGlicmF0ZSwNCj4gPj4gICAJLnNlZ21lbnRfc3RhcnQgPSBhc3BlZWRfc3BpX3NlZ21l bnRfYXN0MjYwMF9zdGFydCwNCj4gPj4gICAJLnNlZ21lbnRfZW5kICAgPSBhc3BlZWRfc3BpX3Nl Z21lbnRfYXN0MjYwMF9lbmQsDQo+ID4+ICAgCS5zZWdtZW50X3JlZyAgID0gYXNwZWVkX3NwaV9z ZWdtZW50X2FzdDI2MDBfcmVnLA0KPiA+PiAtLQ0KPiA+PiAyLjM0LjENCj4gPg0KPiA+DQo+ID4g QmVzdCBXaXNoZXMsDQo+ID4gQ2hpbi1UaW5nDQoNCg==