Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp6246805rwl; Wed, 22 Mar 2023 08:13:58 -0700 (PDT) X-Google-Smtp-Source: AK7set8Mqr1tGFaruHUZkDgRJqozPdHjUy+TxXX8FTUq2cYqVWRs10Wp3NBNijcTUGztJVhV6GjM X-Received: by 2002:a17:907:7629:b0:878:72d0:2817 with SMTP id jy9-20020a170907762900b0087872d02817mr6583184ejc.29.1679498038149; Wed, 22 Mar 2023 08:13:58 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1679498038; cv=pass; d=google.com; s=arc-20160816; b=U5OMvWaJNQEx33fkMr2PkP0HH455TbYBI3GfBbh4xKKEIPPXP7CZNmklZwByGfNdFF Yw/a9RygCf0Znfd39LiUOz3hychgw0Kc1FZ9n8M7eeFWN83937VACtH/cDzPbKsmsiYX aLKrC+s9upO7lbTDO/FRCKJ1tHpWbAIQ2Qyv7YZaiSA9De+QJX0IoYC7mJU0PqRhgdIX eJmGBKYhPYmBKz3lG5TIM2+TCrzWvmLK2sukJql2O8ZbPb/GjozZ/Il/mxjKZQyYAHuW vcgtm+imdKtyqjD7k0a0/c4a8Wy6RNmMF2ij3gqgfER+U93zpFB6wJtab/9Urewzk/zT /2yQ== 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-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=Z0OSr6DgEbCYoiRRbXIPWHEhyeHNiflcQJJ/iuHJByw=; b=XhkAgukLEd6djzMFr+8bD6jnxMlxes4OkFiH54eyeDZtcFvuMk7DRhQF+YOPxVq0/k lk0hTal8Xtml06b724bfaFxXiApkSbg4f79ylejdg9vkRsk0ghNcexbA/UfF3f04ATFN qKCBik+hddgy1CrwbPcGDwJaxytu2qn+6F2qHQN9Ynjv1cJFlxFOiZEe9+WKpweZZYey RY4em/Ixonv9QE05l9XutDZucavE3RUcZcQao2iuP0gOMGLQpiWgfRYlgpIC9WOfVqVP Xo5g8lr3clnJIjRmUmxCKmTs6iXQjm8XF4vs2RJ6aFzLMD1kJdsSHa9lKsp/AfTfYP0y zNRg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector1 header.b=U0q6zeBU; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i8-20020a1709061e4800b00931b738addasi13077949ejj.907.2023.03.22.08.13.32; Wed, 22 Mar 2023 08:13:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector1 header.b=U0q6zeBU; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231134AbjCVPEv (ORCPT + 99 others); Wed, 22 Mar 2023 11:04:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230193AbjCVPEs (ORCPT ); Wed, 22 Mar 2023 11:04:48 -0400 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on2045.outbound.protection.outlook.com [40.107.9.45]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9D1062FFE for ; Wed, 22 Mar 2023 08:04:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RLcv1X2k24moPZD2C1vxSzdTLBYpJgTSj2nugQ5Xo8riwVPZr/zBOSmeE9S9MhXE077lq4o/n0Fg0dKDDxkU2Pm5JtqvPjIIGvZnlbWb1qrUZuOJc660YzKDdbxNFAuGVrCUwAuEb53Z1+qtogi6CwLZKwbK5hISlfwxjFcTPofn8i2k2eevkcqF9zLx7HrUT4GRNI+26RXEegLCDBNhFHChFF/GUdLF9kmUhYHaUGVPCgq4qbM8/wmtVmcslFFopVTeiVHIkFxC5Mh8vwLDCo1xkO2SxMdcghRwRTJeXMosWHukIC4CQFQoRvCY6k4MnuQ9eXYucmLSbkgOGP9Ieg== 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=Z0OSr6DgEbCYoiRRbXIPWHEhyeHNiflcQJJ/iuHJByw=; b=JPsKcXOev8H7q5ZlAISoWbkIIJZPFIKSMKHSkIErcDDY3yMKSuqvERCwCwgCeenlIa6lxqY/0Mm0i6hrvzAhw+vGuZAB05ZOUEK6sEepdsM+6/0euGTAStUvczh7UQfoVj7xB5cq33PS9N4bp+x9NjSTiNPJC8ZL/QXMvLhWJUoejiuUS+3jIw6Z8IYB4Ecda3SL29WMopVcX/hxJ/AOHIPcdBUb7n9hQB0fZdqz90Y2SAZWXaG/W+JuX/s6hTuCqxGoK9cbRIuNbrxLXit6EfynOTA23NfpbyurHpP0dLu4wBEZvMA21ya6Ub6xUfsOi7Cm5Dh++y+QQL3SZ3rLkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z0OSr6DgEbCYoiRRbXIPWHEhyeHNiflcQJJ/iuHJByw=; b=U0q6zeBUFm+Kg7dXAdQoD7D8/FceA+dPbr+ppMdpJPolCc6CljB3YbAOEiMKn3+6CMwU+QVn6QhrgLPmyTJ9stPGtsql9cATVrSnGz9fy0bLONzuEXT89P8K74F+ezcEtGTrqw+SpydG77wAMAjfaz52S/YLDbRdY+r32s9onxJQ56AkbQ3jXMujTPXIJX3RyXtk3ckZKD4MKwYKIrbskFxiN22QAlyKAYOKvmAfsWO5f4YfLtMxjiCq7ifFSvj+7Dxst+b1Ij0mBz34ielYyHWIxB+qaBXqJRlVTqRtBzNUq0qRpEqP+SN+ZaJmIl3l0VIR6fTWEtITloEJ9B4cmQ== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by MR1P264MB2483.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:34::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 15:04:31 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::3943:154a:eccc:fe3a]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::3943:154a:eccc:fe3a%9]) with mapi id 15.20.6178.037; Wed, 22 Mar 2023 15:04:31 +0000 From: Christophe Leroy To: Josh Poimboeuf , "x86@kernel.org" CC: "linux-kernel@vger.kernel.org" , Peter Zijlstra , Mark Rutland , Jason Baron , Steven Rostedt , Ard Biesheuvel , Paolo Bonzini , Sean Christopherson , Sami Tolvanen , Nick Desaulniers , Will McVicker , Kees Cook , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v2 11/11] static_call: Remove DEFINE_STATIC_CALL_RET0() Thread-Topic: [PATCH v2 11/11] static_call: Remove DEFINE_STATIC_CALL_RET0() Thread-Index: AQHZXHLaeS3DODT4F0eHdEg00Wp6da8G5k+A Date: Wed, 22 Mar 2023 15:04:31 +0000 Message-ID: <692cf38b-4c13-f776-4b96-5161a4cae4ae@csgroup.eu> References: <8aab02492c2bf512c7ffe458e41acc1b930ed2dc.1679456900.git.jpoimboe@kernel.org> In-Reply-To: <8aab02492c2bf512c7ffe458e41acc1b930ed2dc.1679456900.git.jpoimboe@kernel.org> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|MR1P264MB2483:EE_ x-ms-office365-filtering-correlation-id: 18cc6560-c5c4-48ea-216f-08db2ae6bdad x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nHcRhXVBa4kZ4gDXywWlCwsxJPkiEs8YtEce9tWZ7vzNXhO5G41de+I4Xl+ow4jR7AHRilneLUjwuNtW/PToQsZWw2wzwBFwThjRuI0YysFFMbGDqD+qE6j9bDUT0CQXFP9T/kvS9SYacOxe12+HbOyp1Gspwth7Fg74qwVjyqwGTLTrbIAA02CXX3bHyHuwYpDDJOuoSMy0IlnqFSE9yPa/u8RwdT2WFdMNUuC20dmAlL9wUx9lw9pNrO490HE5wJlhEQG275mTO13IAwnqeA1/rDugy+edjkX2GTPiz/PqvAfLT5RA3ccZghmgVKLA5msqvdXhsVNy0vY/P6QAQCXC6VmbPciroWAo5TTRXH0FVei+FWXPUs9KLJ/n3lXkpExvrYJ/wMShsYx8UUwfUaDwm6FWansnM2AQ9B1WxFMVHHwBQ7d1cucoRCRxnAv4R3e4AYh6fqZymC3sW0V9lrtHDteBvElmBIqjlWVtZWT2jtwo0qLjDrCZqN7uhlr526O2vl9qMXBct/Irk1ynpmNc4MHTuM2wYeko8w8JxOglmduQdak0EvAD6bWm+orxZqDuRotyEF+kkxs/SGcHyFPdxHiMgO9ABZxJ5ahvdxOkMU3efb3ckuw0eIyHii6wk/RD3Xx354j/ZjlV/88VLm9oYuZrtVAFWG8LI0rSOCqYHHABRRikRwfjBy9Dz+bqXRaqJWvQOV56WO8Qrq2oQrSTtyejoCVPU/VInZBhkY/bc31jFPAGU/OauxlnmkbmmdtWtXSz4Usv7qQhMzaHOA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(396003)(39860400002)(346002)(366004)(376002)(451199018)(6512007)(38070700005)(6486002)(64756008)(110136005)(71200400001)(54906003)(2616005)(66574015)(36756003)(2906002)(66476007)(91956017)(186003)(8936002)(44832011)(66556008)(83380400001)(316002)(76116006)(26005)(5660300002)(478600001)(7416002)(30864003)(8676002)(66446008)(66946007)(4326008)(41300700001)(6506007)(31696002)(38100700002)(122000001)(31686004)(86362001)(43740500002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eEFwQUlYVXc4RmE4aEg0NjZQSnV2UFowTDlPcjdGMW9ycXRzYzEzTUJGd3Ji?= =?utf-8?B?enBFcjM5S3NCTzF6TVp2bjZJL3dmM3VERXRORjlZYUtTUW11eUg1a1phR1ZW?= =?utf-8?B?OS9yNmhyemtlQ1EvWjZEOTdFM0xRZ2dSMU5lSEtZUUZ5Nk5IN1QwWWlsUzFK?= =?utf-8?B?YWEvcktIcjQ1T3dUNzBEZGRwb2kwYWxhVXk3TGxzYXppVlFqVnEyK0dyNW5E?= =?utf-8?B?VTZoVVNpcldYRU5DSmxWZWhhMDdtUGx1MVA0dnNsWHN3YzBCRTY1ZkpQY1Nn?= =?utf-8?B?clBJeUFkY1BScDllbEgzaXJLVTFERTNFWElESi91dk9Ya0lNOVNKc3pZNnlo?= =?utf-8?B?TldVVzVXQ2JRMjQ2Vm5OZFNrd3NjZlZGZmU1cUw0eWhOWjU0NlM0MFBhV2ZZ?= =?utf-8?B?QTFneExCM0V2RDlTbCs2a2k1cnJwbmhXL3R6c0grYWd6NDF3ZVhybjIwOHFk?= =?utf-8?B?OXlDeXZaMlZHUm1pOERPVVRpakE1QTA2alNxMFpVVXRyeGt0bFFrRlpGR1pq?= =?utf-8?B?a3hYSXVpbjZ0ZDZMTXpTQnhycWtGNWFYd1J1ZUs0MXBIUFJ3S2FscW1BcGZW?= =?utf-8?B?ajlYSlRFT0RMN09BQW5DT2xuZDNCbEVNdjQrRmJ5bFh0LzVQUzVEZ29IOW15?= =?utf-8?B?VTFNY2lWNGFLMkJzbnZoSGJsVjBFQW5lUDdLQlZZSERJTTBkSU9mTnZIQ3Av?= =?utf-8?B?UG1lMy93cmZoMFdvWWRyL0k1cm9mMVJ6Q3N2UVA1aHpPRHNpdXErdXhxOWxm?= =?utf-8?B?T2Y0SzlXUGc5bG9BL1B4V0JxclJaamt2RXhveUFKYnZRSmhVcjM2VTk1TVQ2?= =?utf-8?B?TEQwekRRaExHT3lTbUtYbG1xWk1CQi9JL3owR2RTenlsTGNsUnAzNldyMkt0?= =?utf-8?B?ODNUOHp5VEFzSVhiaU9kMGc3TG85WFNHakRrU2ZVOWJmZ25Fc0RBdENTdWRT?= =?utf-8?B?elNoZVcwNDIwdmJVM0s4V1poRFFZdjl1QjRObHlQdTdTNHJSOEEyNFMzL0g1?= =?utf-8?B?RDVPSXpUQmRkTThMMmJXRy8rY1Jjek1ORVB6MVZodUVtS2ZtTVB2bTg5cm5x?= =?utf-8?B?bkE5ZFhDaDlocmpxbEZTYWU4bEV5NXlNK2NGbmNCS3YweFpKdHAxM0ZsYnFn?= =?utf-8?B?NTBqa2t2bm9RekdPK21zMVJ2SmkxRzlnbTF4YmhTRDFBQnZMY3llUTFUSDlw?= =?utf-8?B?VGNML2ZKZk9ZN2JmZmhOcWc3MGN3MjBXZk5BZENwK3Z2LzRiMXZIQ1ZsVVBB?= =?utf-8?B?ZXBXNDBiVkRaZ1AzelVOSXdrMS9pM0FvaXFFeUQzUW9ZS3gyS0REUnFmRk1U?= =?utf-8?B?dEVEWHY0ZVpwSnlnTmFWeGYxSkxGWmpQWERkVGNKNHkxS1RQT1kzbDVDdzhp?= =?utf-8?B?NWVjM21KWk9VcDVmTDhyQkJPSXloWXZBTXBDN1kyVGRReEhZSUZFU2NYTDVP?= =?utf-8?B?UjdJRitYOFhUTUo4UUxtWkJudklmVXdUR0luL0JGYWttaVlUeDBVZEFNSG9F?= =?utf-8?B?YXRxVXdNZkVZelRWbHhneE9qb1lJeWE2WSt0RVdGWEI0MVpqNUdmT25MM1pS?= =?utf-8?B?QjJoWjZyOHlLNGxYOURtVzVYZ0FpSDdTN0VKbXdWelJhMHZXWHUydEFiNE1q?= =?utf-8?B?bGZQUlhNYU9DWHNWOVdPS2FvcmZrRlpHY05hWGlZKysweGp5VlZOdzJjS09u?= =?utf-8?B?UTdqVWpZOTJjWTQ2SURoWW1aYnE2NTlzQWxXbmFoSExZSWw4dkp4cGVtZE5j?= =?utf-8?B?MVRKSzY1ZCtCQmpTdkZja1lFT3VMb2FpdU9SSkQvMk9nQnMvWnNaMDlZOFdl?= =?utf-8?B?RGZ2bmY3SDFzMDN6VFhkR0ZEZkowZGpWQW0veDUzaHQ2aW53MmNwZFpGNHFn?= =?utf-8?B?ci9WTTdYUCtrbEhuME0yYXZDWGRYd25CMUFqckFDNXNDMTVlWjhRT0xQL1py?= =?utf-8?B?QzlCRXFFSE0rc0lxQlZwcjM3SFNLKzR4VzdVN1JMMGxsYlNEZUdGY3c3T3Rh?= =?utf-8?B?eWdwclBaS2JpVHR1WGYwSTZCSDY0RzJiSFBPV0JrS3BydE4zK3hQNWV0bUhE?= =?utf-8?B?VXBEZjZHRk5SMktVYThkUGxTa3psK1JVOTJXejZtUFlLMVRDTzhmQ1Uwb1dq?= =?utf-8?Q?GXVz1Egh5Uh5iWRnA/P6CKhoe?= Content-Type: text/plain; charset="utf-8" Content-ID: <36BCFFE6199EA9429EFA43B8FB9E11F9@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 18cc6560-c5c4-48ea-216f-08db2ae6bdad X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2023 15:04:31.5985 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: e2NfoilB1DMc9oo/3nWnZxKHbHf8lK6iS5t/uHxE9T7VkPTR8oXzXXBZaAJOEekcoegtbHHNwebN1PN1O71KhVz2r7T8Pm/JHL9FGxnG/B8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB2483 X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 DQoNCkxlIDIyLzAzLzIwMjMgw6AgMDU6MDAsIEpvc2ggUG9pbWJvZXVmIGEgw6ljcml0wqA6DQo+ IE5VTEwgYW5kIFJFVDAgc3RhdGljIGNhbGxzIGFyZSBib3RoIHNsaWdodGx5IGRpZmZlcmVudCB3 YXlzIG9mIG5vcHBpbmcgYQ0KPiBzdGF0aWMgY2FsbC4gIEEgbm90LWluc2lnbmlmaWNhbnQgYW1v dW50IG9mIGNvZGUgYW5kIGNvbXBsZXhpdHkgaXMgc3BlbnQNCj4gbWFpbnRhaW5pbmcgdGhlbSBz ZXBhcmF0ZWx5LiAgSXQncyBhbHNvIHNvbWV3aGF0IHRyaWNreSBmb3IgdGhlIHVzZXIgd2hvDQo+ IGhhcyB0byB0cnkgdG8gcmVtZW1iZXIgdG8gdXNlIHRoZSBjb3JyZWN0IG9uZSBmb3IgdGhlIGdp dmVuIGZ1bmN0aW9uDQo+IHR5cGUuDQo+IA0KPiBTaW1wbGlmeSB0aGluZ3MgYWxsIGFyb3VuZCBi eSBqdXN0IGNvbWJpbmluZyB0aGVtLCBzdWNoIHRoYXQgTlVMTCBzdGF0aWMNCj4gY2FsbHMgYWx3 YXlzIHJldHVybiAwLg0KPiANCj4gV2hpbGUgaXQgZG9lc24ndCBuZWNlc3NhcmlseSBtYWtlIHNl bnNlIGZvciB2b2lkLXJldHVybiBmdW5jdGlvbnMgdG8NCj4gcmV0dXJuIDAsIGl0J3MgcHJldHR5 IG11Y2ggaGFybWxlc3MuICBUaGUgcmV0dXJuIHZhbHVlIHJlZ2lzdGVyIGlzDQo+IGFscmVhZHkg Y2FsbGVlLWNsb2JiZXJlZCwgYW5kIGFuIGV4dHJhICJ4b3IgJWVheCwgJWVheCIgc2hvdWxkbid0 IGFmZmVjdA0KPiBwZXJmb3JtYW5jZSAoa25vY2sgb24gd29vZCkuDQoNCkluIHRoZSBjYXNlIG9m IHBvd2VycGMsIHdoaWNoIGltcGxlbWVudHMgb3V0LW9mLWxpbmUgc3RhdGljIGNhbGxzIGZvciAN Cm5vdywgaXQgaXMgbW9yZSB0aGFuIGp1c3QgYW4gZXh0cmEgaW5zdHJ1Y3Rpb24uIEl0IHJlcXVp cmVzIGEganVtcCB0byANCnRoZSBjb3VwbGUgaW5zdHJ1Y3Rpb25zIHRoYXQgY2xlYXIgcmV0IHJl ZyBhbmQgcmV0cy4gRm9yIHRoZSA4eHggaXQgYWxzbyANCm1lYW5zIGNhY2hlIG1pc3MgYXMgdGhl IGNhY2hlIGxpbmVzIGFyZSAxNiBieXRlcy4gU28gd2hhdCB3YXMganVzdCBvbmUgDQpjeWNsZSBy ZXR1cm4gaW5zdHJ1Y3Rpb24gYmVjb21lcyBhIDMgY3ljbGVzICsgMSBjYWNoZSBtaXNzLiBJdCBp cyBub3QgYSANCnNob3ctc3RvcHBlciBmb3IgdGhhdCBjaGFuZ2UsIGJ1dCBJIHRoaW5rIGl0IHdh cyB3b3J0aCBtZW50aW9uaW5nLg0KDQo+IA0KPiBUaGlzICJkbyBub3RoaW5nIHJldHVybiAwIiBk ZWZhdWx0IHNob3VsZCB3b3JrIGZvciB0aGUgdmFzdCBtYWpvcml0eSBvZg0KPiBOVUxMIGNhc2Vz LiAgT3RoZXJ3aXNlIGl0IGNhbiBiZSBlYXNpbHkgb3ZlcnJpZGRlbiB3aXRoIGEgdXNlci1zcGVj aWZpZWQNCj4gZnVuY3Rpb24gd2hpY2ggcGFuaWNzIG9yIHJldHVybnMgMHhkZWFkYmVlZiBvciBk b2VzIHdoYXRldmVyIG9uZSB3YW50cy4NCj4gDQo+IFRoaXMgc2ltcGxpZmllcyB0aGUgc3RhdGlj IGNhbGwgY29kZSBhbmQgYWxzbyB0ZW5kcyB0byBoZWxwIHNpbXBsaWZ5DQo+IHVzZXJzJyBjb2Rl IGFzIHdlbGwuDQoNCkknZCBoYXZlIGV4cGVjdGVkIERFRklORV9TVEFUSUNfQ0FMTF9SRVQwKCkg dG8gcmVtYWluLCB0byBtYWtlIGl0IGNsZWFyIA0KdGhhdCBpdCByZXR1cm5zIDAuIEFzIHlvdSBl eHBsYWluZWQsIGl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgTlVMTCANCnJldHVybnMsIGJ1dCByZXR1 cm5pbmcgMCBpcyB2aXRhbCBmb3VyIFJFVDAgY2FzZXMuIFNvIEkgd291bGQgaGF2ZSANCmRyb3Bw ZWQgREVGSU5FX1NUQVRJQ19DQUxMX05VTEwoKSBhbmQgcmV0YWluZWQgREVGSU5FX1NUQVRJQ19D QUxMX1JFVDAoKS4NCg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSm9zaCBQb2ltYm9ldWYgPGpwb2lt Ym9lQGtlcm5lbC5vcmc+DQo+IC0tLQ0KPiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3RhdGlj X2NhbGwuaCAgICB8ICA0IC0tDQo+ICAgYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3N0YXRpY19j YWxsLmggIHwgIDEgLQ0KPiAgIGFyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMgICAgICAgICAgICAg ICB8ICAyICstDQo+ICAgYXJjaC9wb3dlcnBjL2tlcm5lbC9zdGF0aWNfY2FsbC5jICAgICAgIHwg IDcgKy0NCj4gICBhcmNoL3g4Ni9ldmVudHMvYW1kL2NvcmUuYyAgICAgICAgICAgICAgfCAgMiAr LQ0KPiAgIGFyY2gveDg2L2V2ZW50cy9jb3JlLmMgICAgICAgICAgICAgICAgICB8ICA1ICstDQo+ ICAgYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaCAgICAgIHwgIDMgKy0NCj4gICBh cmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGF0aWNfY2FsbC5oICAgICAgfCAxMyArLS0tDQo+ICAgYXJj aC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMgICAgICAgICAgIHwgIDYgLS0NCj4gICBhcmNoL3g4 Ni9rZXJuZWwvc3RhdGljX2NhbGwuYyAgICAgICAgICAgfCA4OSArKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICAgYXJjaC94ODYva3ZtL3g4Ni5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0NCj4gICBpbmNsdWRlL2xpbnV4L3N0YXRpY19jYWxsLmggICAgICAgICAgICAgfCA2NSArKysr Ky0tLS0tLS0tLS0tLS0NCj4gICBpbmNsdWRlL2xpbnV4L3N0YXRpY19jYWxsX3R5cGVzLmggICAg ICAgfCAgNCAtLQ0KPiAgIGtlcm5lbC9ldmVudHMvY29yZS5jICAgICAgICAgICAgICAgICAgICB8 IDE1ICsrLS0tDQo+ICAga2VybmVsL3NjaGVkL2NvcmUuYyAgICAgICAgICAgICAgICAgICAgIHwg MTAgKy0tDQo+ICAga2VybmVsL3N0YXRpY19jYWxsLmMgICAgICAgICAgICAgICAgICAgIHwgIDUg LS0NCj4gICB0b29scy9pbmNsdWRlL2xpbnV4L3N0YXRpY19jYWxsX3R5cGVzLmggfCAgNCAtLQ0K PiAgIDE3IGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDIwMCBkZWxldGlvbnMoLSkN Cj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N0YXRpY19jYWxsLmgg Yi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N0YXRpY19jYWxsLmgNCj4gaW5kZXggMDI2OTNiNDA0 YWZjLi5iMzQ4OWNhYzc3NDIgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v c3RhdGljX2NhbGwuaA0KPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N0YXRpY19jYWxs LmgNCj4gQEAgLTIyLDEwICsyMiw2IEBADQo+ICAgCSAgICAiLnR5cGUgIiBuYW1lICIsIEBmdW5j dGlvbgkJCQlcbiIJXA0KPiAgIAkgICAgIi5zaXplICIgbmFtZSAiLCAuIC0gIiBuYW1lICIJCQlc biIpDQo+ICAgDQo+IC0jZGVmaW5lIF9fQVJDSF9ERUZJTkVfU1RBVElDX0NBTExfTk9QX0NGSShu YW1lKQkJCVwNCj4gLQlHRU5fQ0ZJX1NZTShTVEFUSUNfQ0FMTF9OT1BfQ0ZJKG5hbWUpKTsJCQlc DQo+IC0JX19BUkNIX0RFRklORV9TVEFUSUNfQ0FMTF9DRkkoU1RBVElDX0NBTExfTk9QX0NGSV9T VFIobmFtZSksICIiKQ0KPiAtDQo+ICAgI2RlZmluZSBfX0FSQ0hfREVGSU5FX1NUQVRJQ19DQUxM X1JFVDBfQ0ZJKG5hbWUpCQkJXA0KPiAgIAlHRU5fQ0ZJX1NZTShTVEFUSUNfQ0FMTF9SRVQwX0NG SShuYW1lKSk7CQkJXA0KPiAgIAlfX0FSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX0NGSShTVEFUSUNf Q0FMTF9SRVQwX0NGSV9TVFIobmFtZSksICJtb3YgeDAsIHh6ciIpDQo+IGRpZmYgLS1naXQgYS9h cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3RhdGljX2NhbGwuaCBiL2FyY2gvcG93ZXJwYy9pbmNs dWRlL2FzbS9zdGF0aWNfY2FsbC5oDQo+IGluZGV4IDc0NDQzNTEyNzU3NC4uMGIxN2ZjNTUxMTU3 IDEwMDY0NA0KPiAtLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3RhdGljX2NhbGwuaA0K PiArKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc3RhdGljX2NhbGwuaA0KPiBAQCAtMjMs NyArMjMsNiBAQA0KPiAgICNkZWZpbmUgUFBDX1NDVF9EQVRBCQkyOAkJLyogT2Zmc2V0IG9mIGxh YmVsIDIgKi8NCj4gICANCj4gICAjZGVmaW5lIEFSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX1RSQU1Q KG5hbWUsIGZ1bmMpCV9fUFBDX1NDVChuYW1lLCAiYiAiICNmdW5jKQ0KPiAtI2RlZmluZSBBUkNI X0RFRklORV9TVEFUSUNfQ0FMTF9OT1BfVFJBTVAobmFtZSkJCV9fUFBDX1NDVChuYW1lLCAiYmxy IikNCj4gICAjZGVmaW5lIEFSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX1JFVDBfVFJBTVAobmFtZSkJ X19QUENfU0NUKG5hbWUsICJiIC4rMjAiKQ0KPiAgIA0KPiAgICNlbmRpZiAvKiBfQVNNX1BPV0VS UENfU1RBVElDX0NBTExfSCAqLw0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9p cnEuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMNCj4gaW5kZXggYzk1MzVmMjc2MGI1Li4z MjBlMWE0MWFiZDYgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMNCj4g KysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYw0KPiBAQCAtMjIwLDcgKzIyMCw3IEBAIHN0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBjYWxsX2RvX3NvZnRpcnEoY29uc3Qgdm9pZCAqc3Ap DQo+ICAgfQ0KPiAgICNlbmRpZg0KPiAgIA0KPiAtREVGSU5FX1NUQVRJQ19DQUxMX1JFVDAocHBj X2dldF9pcnEsICpwcGNfbWQuZ2V0X2lycSk7DQo+ICtERUZJTkVfU1RBVElDX0NBTExfTlVMTChw cGNfZ2V0X2lycSwgKnBwY19tZC5nZXRfaXJxKTsNCj4gICANCj4gICBzdGF0aWMgdm9pZCBfX2Rv X2lycShzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBvbGRzcCkNCj4gICB7DQo+ IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3N0YXRpY19jYWxsLmMgYi9hcmNoL3Bv d2VycGMva2VybmVsL3N0YXRpY19jYWxsLmMNCj4gaW5kZXggOGJmZTQ2NjU0ZTAxLi5kYjMxMTZi MmQ4YTggMTAwNjQ0DQo+IC0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3RhdGljX2NhbGwuYw0K PiArKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3N0YXRpY19jYWxsLmMNCj4gQEAgLTgsNyArOCw2 IEBAIHZvaWQgYXJjaF9zdGF0aWNfY2FsbF90cmFuc2Zvcm0odm9pZCAqc2l0ZSwgdm9pZCAqdHJh bXAsIHZvaWQgKmZ1bmMsIGJvb2wgdGFpbCkNCj4gICB7DQo+ICAgCWludCBlcnI7DQo+ICAgCWJv b2wgaXNfcmV0MCA9IChmdW5jID09IF9fc3RhdGljX2NhbGxfcmV0dXJuMCk7DQo+IC0JYm9vbCBp c19ub3AgPSAoZnVuYyA9PSBfX3N0YXRpY19jYWxsX25vcCk7DQo+ICAgCXVuc2lnbmVkIGxvbmcg dGFyZ2V0ID0gKHVuc2lnbmVkIGxvbmcpKGlzX3JldDAgPyB0cmFtcCArIFBQQ19TQ1RfUkVUMCA6 IGZ1bmMpOw0KPiAgIAlib29sIGlzX3Nob3J0ID0gaXNfb2Zmc2V0X2luX2JyYW5jaF9yYW5nZSgo bG9uZyl0YXJnZXQgLSAobG9uZyl0cmFtcCk7DQo+ICAgDQo+IEBAIC0xNywxNSArMTYsMTMgQEAg dm9pZCBhcmNoX3N0YXRpY19jYWxsX3RyYW5zZm9ybSh2b2lkICpzaXRlLCB2b2lkICp0cmFtcCwg dm9pZCAqZnVuYywgYm9vbCB0YWlsKQ0KPiAgIA0KPiAgIAltdXRleF9sb2NrKCZ0ZXh0X211dGV4 KTsNCj4gICANCj4gLQlpZiAoIWlzX25vcCAmJiAhaXNfc2hvcnQpIHsNCj4gKwlpZiAoIWlzX3No b3J0KSB7DQo+ICAgCQllcnIgPSBwYXRjaF9pbnN0cnVjdGlvbih0cmFtcCArIFBQQ19TQ1RfREFU QSwgcHBjX2luc3QodGFyZ2V0KSk7DQo+ICAgCQlpZiAoZXJyKQ0KPiAgIAkJCWdvdG8gb3V0Ow0K PiAgIAl9DQo+ICAgDQo+IC0JaWYgKGlzX25vcCkNCj4gLQkJZXJyID0gcGF0Y2hfaW5zdHJ1Y3Rp b24odHJhbXAsIHBwY19pbnN0KFBQQ19SQVdfQkxSKCkpKTsNCj4gLQllbHNlIGlmIChpc19zaG9y dCkNCj4gKwlpZiAoaXNfc2hvcnQpDQo+ICAgCQllcnIgPSBwYXRjaF9icmFuY2godHJhbXAsIHRh cmdldCwgMCk7DQo+ICAgCWVsc2UNCj4gICAJCWVyciA9IHBhdGNoX2luc3RydWN0aW9uKHRyYW1w LCBwcGNfaW5zdChQUENfUkFXX05PUCgpKSk7DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ldmVu dHMvYW1kL2NvcmUuYyBiL2FyY2gveDg2L2V2ZW50cy9hbWQvY29yZS5jDQo+IGluZGV4IDhjNDVi MTk4YjYyZi4uM2M1NDU1OTViZmViIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9ldmVudHMvYW1k L2NvcmUuYw0KPiArKysgYi9hcmNoL3g4Ni9ldmVudHMvYW1kL2NvcmUuYw0KPiBAQCAtMzMwLDcg KzMzMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhbWRfaXNfcGFpcl9ldmVudF9jb2RlKHN0cnVj dCBod19wZXJmX2V2ZW50ICpod2MpDQo+ICAgCX0NCj4gICB9DQo+ICAgDQo+IC1ERUZJTkVfU1RB VElDX0NBTExfUkVUMChhbWRfcG11X2JyYW5jaF9od19jb25maWcsICp4ODZfcG11Lmh3X2NvbmZp Zyk7DQo+ICtERUZJTkVfU1RBVElDX0NBTExfTlVMTChhbWRfcG11X2JyYW5jaF9od19jb25maWcs ICp4ODZfcG11Lmh3X2NvbmZpZyk7DQo+ICAgDQo+ICAgc3RhdGljIGludCBhbWRfY29yZV9od19j b25maWcoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQ0KPiAgIHsNCj4gZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2V2ZW50cy9jb3JlLmMgYi9hcmNoL3g4Ni9ldmVudHMvY29yZS5jDQo+IGluZGV4IGM5 NDUzNzUwMTA5MS4uZGZlYWVlZTM0YWNmIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9ldmVudHMv Y29yZS5jDQo+ICsrKyBiL2FyY2gveDg2L2V2ZW50cy9jb3JlLmMNCj4gQEAgLTk2LDcgKzk2LDcg QEAgREVGSU5FX1NUQVRJQ19DQUxMX05VTEwoeDg2X3BtdV9maWx0ZXIsICp4ODZfcG11LmZpbHRl cik7DQo+ICAgICogVGhpcyBvbmUgaXMgbWFnaWMsIGl0IHdpbGwgZ2V0IGNhbGxlZCBldmVuIHdo ZW4gUE1VIGluaXQgZmFpbHMgKGJlY2F1c2UNCj4gICAgKiB0aGVyZSBpcyBubyBQTVUpLCBpbiB3 aGljaCBjYXNlIGl0IHNob3VsZCBzaW1wbHkgcmV0dXJuIE5VTEwuDQo+ICAgICovDQo+IC1ERUZJ TkVfU1RBVElDX0NBTExfUkVUMCh4ODZfcG11X2d1ZXN0X2dldF9tc3JzLCAqeDg2X3BtdS5ndWVz dF9nZXRfbXNycyk7DQo+ICtERUZJTkVfU1RBVElDX0NBTExfTlVMTCh4ODZfcG11X2d1ZXN0X2dl dF9tc3JzLCAqeDg2X3BtdS5ndWVzdF9nZXRfbXNycyk7DQo+ICAgDQo+ICAgdTY0IF9fcmVhZF9t b3N0bHkgaHdfY2FjaGVfZXZlbnRfaWRzDQo+ICAgCQkJCVtQRVJGX0NPVU5UX0hXX0NBQ0hFX01B WF0NCj4gQEAgLTIxMjUsOSArMjEyNSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfaHdfcGVy Zl9ldmVudHModm9pZCkNCj4gICAJaWYgKCF4ODZfcG11LnJlYWQpDQo+ICAgCQl4ODZfcG11LnJl YWQgPSBfeDg2X3BtdV9yZWFkOw0KPiAgIA0KPiAtCWlmICgheDg2X3BtdS5ndWVzdF9nZXRfbXNy cykNCj4gLQkJeDg2X3BtdS5ndWVzdF9nZXRfbXNycyA9ICh2b2lkICopJl9fc3RhdGljX2NhbGxf cmV0dXJuMDsNCj4gLQ0KPiAgIAlpZiAoIXg4Nl9wbXUuc2V0X3BlcmlvZCkNCj4gICAJCXg4Nl9w bXUuc2V0X3BlcmlvZCA9IHg4Nl9wZXJmX2V2ZW50X3NldF9wZXJpb2Q7DQo+ICAgDQo+IGRpZmYg LS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5j bHVkZS9hc20va3ZtLXg4Ni1vcHMuaA0KPiBpbmRleCAyZjBiZmQ5MTA2MzcuLjZlMTI1OWVkMTAx NCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaA0KPiAr KysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oDQo+IEBAIC0xMCw4ICsxMCw3 IEBAIEJVSUxEX0JVR19PTigxKQ0KPiAgICAqDQo+ICAgICogS1ZNX1g4Nl9PUF9PUFRJT05BTCgp IGNhbiBiZSB1c2VkIGZvciB0aG9zZSBmdW5jdGlvbnMgdGhhdCBjYW4gaGF2ZQ0KPiAgICAqIGEg TlVMTCBkZWZpbml0aW9uLiAgS1ZNX1g4Nl9PUF9PUFRJT05BTF9SRVQwKCkgY2FuIGJlIHVzZWQg bGlrZXdpc2UNCj4gLSAqIHRvIG1ha2UgYSBkZWZpbml0aW9uIG9wdGlvbmFsLCBidXQgaW4gdGhp cyBjYXNlIHRoZSBkZWZhdWx0IHdpbGwNCj4gLSAqIGJlIF9fc3RhdGljX2NhbGxfcmV0dXJuMC4N Cj4gKyAqIHRvIG1ha2UgYSBkZWZpbml0aW9uIG9wdGlvbmFsLg0KPiAgICAqLw0KPiAgIEtWTV9Y ODZfT1AoY2hlY2tfcHJvY2Vzc29yX2NvbXBhdGliaWxpdHkpDQo+ICAgS1ZNX1g4Nl9PUChoYXJk d2FyZV9lbmFibGUpDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGF0aWNf Y2FsbC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhdGljX2NhbGwuaA0KPiBpbmRleCBhZmVh NmNlZWVkMjMuLjIxYWQ0ODk4OGY2ZSAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vc3RhdGljX2NhbGwuaA0KPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGF0aWNfY2Fs bC5oDQo+IEBAIC0yOSw4ICsyOSw3IEBADQo+ICAgICogICB1ZDEgJWVzcCwgJWVjeA0KPiAgICAq DQo+ICAgICogVGhhdCB0cmFpbGluZyAjVUQgcHJvdmlkZXMgYm90aCBhIHNwZWN1bGF0aW9uIHN0 b3AgYW5kIHNlcnZlcyBhcyBhIHVuaXF1ZQ0KPiAtICogMyBieXRlIHNpZ25hdHVyZSBpZGVudGlm eWluZyBzdGF0aWMgY2FsbCB0cmFtcG9saW5lcy4gQWxzbyBzZWUgdHJhbXBfdWRbXQ0KPiAtICog YW5kIF9fc3RhdGljX2NhbGxfZml4dXAoKS4NCj4gKyAqIDMgYnl0ZSBzaWduYXR1cmUgaWRlbnRp Znlpbmcgc3RhdGljIGNhbGwgdHJhbXBvbGluZXMuIEFsc28gc2VlIHRyYW1wX3VkW10uDQo+ICAg ICovDQo+ICAgI2RlZmluZSBfX0FSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX1RSQU1QKG5hbWUsIGlu c25zKQkJCVwNCj4gICAJYXNtKCIucHVzaHNlY3Rpb24gLnN0YXRpY19jYWxsLnRleHQsIFwiYXhc IgkJXG4iCVwNCj4gQEAgLTQ3LDE3ICs0Niw3IEBADQo+ICAgI2RlZmluZSBBUkNIX0RFRklORV9T VEFUSUNfQ0FMTF9UUkFNUChuYW1lLCBmdW5jKQkJCVwNCj4gICAJX19BUkNIX0RFRklORV9TVEFU SUNfQ0FMTF9UUkFNUChuYW1lLCAiLmJ5dGUgMHhlOTsgLmxvbmcgIiAjZnVuYyAiIC0gKC4gKyA0 KSIpDQo+ICAgDQo+IC0jaWZkZWYgQ09ORklHX1JFVEhVTksNCj4gLSNkZWZpbmUgQVJDSF9ERUZJ TkVfU1RBVElDX0NBTExfTk9QX1RSQU1QKG5hbWUpCQkJCVwNCj4gLQlfX0FSQ0hfREVGSU5FX1NU QVRJQ19DQUxMX1RSQU1QKG5hbWUsICJqbXAgX194ODZfcmV0dXJuX3RodW5rIikNCj4gLSNlbHNl DQo+IC0jZGVmaW5lIEFSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX05PUF9UUkFNUChuYW1lKQkJCQlc DQo+IC0JX19BUkNIX0RFRklORV9TVEFUSUNfQ0FMTF9UUkFNUChuYW1lLCAicmV0OyBpbnQzOyBu b3A7IG5vcDsgbm9wIikNCj4gLSNlbmRpZg0KPiAtDQo+ICAgI2RlZmluZSBBUkNIX0RFRklORV9T VEFUSUNfQ0FMTF9SRVQwX1RSQU1QKG5hbWUpCQkJXA0KPiAgIAlBUkNIX0RFRklORV9TVEFUSUNf Q0FMTF9UUkFNUChuYW1lLCBfX3N0YXRpY19jYWxsX3JldHVybjApDQo+ICAgDQo+IC1leHRlcm4g Ym9vbCBfX3N0YXRpY19jYWxsX2ZpeHVwKHZvaWQgKnRyYW1wLCB1OCBvcCwgdm9pZCAqZGVzdCk7 DQo+IC0NCj4gICAjZW5kaWYgLyogX0FTTV9TVEFUSUNfQ0FMTF9IICovDQo+IGRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYyBiL2FyY2gveDg2L2tlcm5lbC9hbHRlcm5h dGl2ZS5jDQo+IGluZGV4IGY2MTVlMGNiNmQ5My4uNDM4OGRjOTk0MmNhIDEwMDY0NA0KPiAtLS0g YS9hcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYw0KPiArKysgYi9hcmNoL3g4Ni9rZXJuZWwv YWx0ZXJuYXRpdmUuYw0KPiBAQCAtNjI0LDEyICs2MjQsNiBAQCB2b2lkIF9faW5pdF9vcl9tb2R1 bGUgbm9pbmxpbmUgYXBwbHlfcmV0dXJucyhzMzIgKnN0YXJ0LCBzMzIgKmVuZCkNCj4gICAJCWlm IChvcCA9PSBKTVAzMl9JTlNOX09QQ09ERSkNCj4gICAJCQlkZXN0ID0gYWRkciArIGluc24ubGVu Z3RoICsgaW5zbi5pbW1lZGlhdGUudmFsdWU7DQo+ICAgDQo+IC0JCWlmIChfX3N0YXRpY19jYWxs X2ZpeHVwKGFkZHIsIG9wLCBkZXN0KSB8fA0KPiAtCQkgICAgV0FSTl9PTkNFKGRlc3QgIT0gJl9f eDg2X3JldHVybl90aHVuaywNCj4gLQkJCSAgICAgICJtaXNzaW5nIHJldHVybiB0aHVuazogJXBT LSVwUzogJSpwaCIsDQo+IC0JCQkgICAgICBhZGRyLCBkZXN0LCA1LCBhZGRyKSkNCj4gLQkJCWNv bnRpbnVlOw0KPiAtDQo+ICAgCQlEUFJJTlRLKCJyZXR1cm4gdGh1bmsgYXQ6ICVwUyAoJXB4KSBs ZW46ICVkIHRvOiAlcFMiLA0KPiAgIAkJCWFkZHIsIGFkZHIsIGluc24ubGVuZ3RoLA0KPiAgIAkJ CWFkZHIgKyBpbnNuLmxlbmd0aCArIGluc24uaW1tZWRpYXRlLnZhbHVlKTsNCj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9zdGF0aWNfY2FsbC5jIGIvYXJjaC94ODYva2VybmVsL3N0YXRp Y19jYWxsLmMNCj4gaW5kZXggMjdjMDk1YzdmYzk2Li5kOTE0MTY3ZmJiNGUgMTAwNjQ0DQo+IC0t LSBhL2FyY2gveDg2L2tlcm5lbC9zdGF0aWNfY2FsbC5jDQo+ICsrKyBiL2FyY2gveDg2L2tlcm5l bC9zdGF0aWNfY2FsbC5jDQo+IEBAIC02LDEwICs2LDggQEANCj4gICANCj4gICBlbnVtIGluc25f dHlwZSB7DQo+ICAgCUNBTEwgPSAwLCAvKiBzaXRlIGNhbGwgKi8NCj4gLQlOT1AgPSAxLCAgLyog c2l0ZSBjb25kLWNhbGwgKi8NCj4gLQlKTVAgPSAyLCAgLyogdHJhbXAgLyBzaXRlIHRhaWwtY2Fs bCAqLw0KPiAtCVJFVCA9IDMsICAvKiB0cmFtcCAvIHNpdGUgY29uZC10YWlsLWNhbGwgKi8NCj4g LQlKQ0MgPSA0LA0KPiArCUpNUCA9IDEsICAvKiB0cmFtcCAvIHNpdGUgdGFpbC1jYWxsICovDQo+ ICsJSkNDID0gMiwNCj4gICB9Ow0KPiAgIA0KPiAgIC8qDQo+IEBAIC0yNCw4ICsyMiw2IEBAIHN0 YXRpYyBjb25zdCB1OCB0cmFtcF91ZFtdID0geyAweDBmLCAweGI5LCAweGNjIH07DQo+ICAgICov DQo+ICAgc3RhdGljIGNvbnN0IHU4IHhvcjVyYXhbXSA9IHsgMHgyZSwgMHgyZSwgMHgyZSwgMHgz MSwgMHhjMCB9Ow0KPiAgIA0KPiAtc3RhdGljIGNvbnN0IHU4IHJldGluc25bXSA9IHsgUkVUX0lO U05fT1BDT0RFLCAweGNjLCAweGNjLCAweGNjLCAweGNjIH07DQo+IC0NCj4gICBzdGF0aWMgdTgg X19pc19KY2ModTggKmluc24pIC8qIEpjYy5kMzIgKi8NCj4gICB7DQo+ICAgCXU4IHJldCA9IDA7 DQo+IEBAIC0zOSwxNyArMzUsNiBAQCBzdGF0aWMgdTggX19pc19KY2ModTggKmluc24pIC8qIEpj Yy5kMzIgKi8NCj4gICAJcmV0dXJuIHJldDsNCj4gICB9DQo+ICAgDQo+IC1leHRlcm4gdm9pZCBf X3N0YXRpY19jYWxsX3JldHVybih2b2lkKTsNCj4gLQ0KPiAtYXNtICgiLmdsb2JhbCBfX3N0YXRp Y19jYWxsX3JldHVyblxuXHQiDQo+IC0gICAgICIudHlwZSBfX3N0YXRpY19jYWxsX3JldHVybiwg QGZ1bmN0aW9uXG5cdCINCj4gLSAgICAgQVNNX0ZVTkNfQUxJR04gIlxuXHQiDQo+IC0gICAgICJf X3N0YXRpY19jYWxsX3JldHVybjpcblx0Ig0KPiAtICAgICBBTk5PVEFURV9OT0VOREJSDQo+IC0g ICAgIEFOTk9UQVRFX1JFVFBPTElORV9TQUZFDQo+IC0gICAgICJyZXQ7IGludDNcblx0Ig0KPiAt ICAgICAiLnNpemUgX19zdGF0aWNfY2FsbF9yZXR1cm4sIC4gLSBfX3N0YXRpY19jYWxsX3JldHVy biBcblx0Iik7DQo+IC0NCj4gICBzdGF0aWMgdm9pZCBfX3JlZiBfX3N0YXRpY19jYWxsX3RyYW5z Zm9ybSh2b2lkICppbnNuLCBlbnVtIGluc25fdHlwZSB0eXBlLA0KPiAgIAkJCQkJICB2b2lkICpm dW5jLCBib29sIG1vZGluaXQpDQo+ICAgew0KPiBAQCAtNTgsNyArNDMsNyBAQCBzdGF0aWMgdm9p ZCBfX3JlZiBfX3N0YXRpY19jYWxsX3RyYW5zZm9ybSh2b2lkICppbnNuLCBlbnVtIGluc25fdHlw ZSB0eXBlLA0KPiAgIAljb25zdCB2b2lkICpjb2RlOw0KPiAgIAl1OCBvcCwgYnVmWzZdOw0KPiAg IA0KPiAtCWlmICgodHlwZSA9PSBKTVAgfHwgdHlwZSA9PSBSRVQpICYmIChvcCA9IF9faXNfSmNj KGluc24pKSkNCj4gKwlpZiAodHlwZSA9PSBKTVAgJiYgKG9wID0gX19pc19KY2MoaW5zbikpKQ0K PiAgIAkJdHlwZSA9IEpDQzsNCj4gICANCj4gICAJc3dpdGNoICh0eXBlKSB7DQo+IEBAIC03Miwy OCArNTcsMTEgQEAgc3RhdGljIHZvaWQgX19yZWYgX19zdGF0aWNfY2FsbF90cmFuc2Zvcm0odm9p ZCAqaW5zbiwgZW51bSBpbnNuX3R5cGUgdHlwZSwNCj4gICANCj4gICAJCWJyZWFrOw0KPiAgIA0K PiAtCWNhc2UgTk9QOg0KPiAtCQljb2RlID0geDg2X25vcHNbNV07DQo+IC0JCWJyZWFrOw0KPiAt DQo+ICAgCWNhc2UgSk1QOg0KPiAgIAkJY29kZSA9IHRleHRfZ2VuX2luc24oSk1QMzJfSU5TTl9P UENPREUsIGluc24sIGZ1bmMpOw0KPiAgIAkJYnJlYWs7DQo+ICAgDQo+IC0JY2FzZSBSRVQ6DQo+ IC0JCWlmIChjcHVfZmVhdHVyZV9lbmFibGVkKFg4Nl9GRUFUVVJFX1JFVEhVTkspKQ0KPiAtCQkJ Y29kZSA9IHRleHRfZ2VuX2luc24oSk1QMzJfSU5TTl9PUENPREUsIGluc24sIHg4Nl9yZXR1cm5f dGh1bmspOw0KPiAtCQllbHNlDQo+IC0JCQljb2RlID0gJnJldGluc247DQo+IC0JCWJyZWFrOw0K PiAtDQo+ICAgCWNhc2UgSkNDOg0KPiAtCQlpZiAoIWZ1bmMpIHsNCj4gLQkJCWZ1bmMgPSBfX3N0 YXRpY19jYWxsX3JldHVybjsgLy9GSVhNRSB1c2UgX19zdGF0aWNfY2FsbF9ub3AoKT8NCj4gLQkJ CWlmIChjcHVfZmVhdHVyZV9lbmFibGVkKFg4Nl9GRUFUVVJFX1JFVEhVTkspKQ0KPiAtCQkJCWZ1 bmMgPSB4ODZfcmV0dXJuX3RodW5rOw0KPiAtCQl9DQo+IC0NCj4gICAJCWJ1ZlswXSA9IDB4MGY7 DQo+ICAgCQlfX3RleHRfZ2VuX2luc24oYnVmKzEsIG9wLCBpbnNuKzEsIGZ1bmMsIDUpOw0KPiAg IAkJY29kZSA9IGJ1ZjsNCj4gQEAgLTEyMiwxMiArOTAsMTAgQEAgc3RhdGljIHZvaWQgX19zdGF0 aWNfY2FsbF92YWxpZGF0ZSh1OCAqaW5zbiwgYm9vbCB0YWlsLCBib29sIHRyYW1wKQ0KPiAgIA0K PiAgIAlpZiAodGFpbCkgew0KPiAgIAkJaWYgKG9wY29kZSA9PSBKTVAzMl9JTlNOX09QQ09ERSB8 fA0KPiAtCQkgICAgb3Bjb2RlID09IFJFVF9JTlNOX09QQ09ERSB8fA0KPiAgIAkJICAgIF9faXNf SmNjKGluc24pKQ0KPiAgIAkJCXJldHVybjsNCj4gICAJfSBlbHNlIHsNCj4gICAJCWlmIChvcGNv ZGUgPT0gQ0FMTF9JTlNOX09QQ09ERSB8fA0KPiAtCQkgICAgIW1lbWNtcChpbnNuLCB4ODZfbm9w c1s1XSwgNSkgfHwNCj4gICAJCSAgICAhbWVtY21wKGluc24sIHhvcjVyYXgsIDUpKQ0KPiAgIAkJ CXJldHVybjsNCj4gICAJfQ0KPiBAQCAtMTM5LDY1ICsxMDUsMjIgQEAgc3RhdGljIHZvaWQgX19z dGF0aWNfY2FsbF92YWxpZGF0ZSh1OCAqaW5zbiwgYm9vbCB0YWlsLCBib29sIHRyYW1wKQ0KPiAg IAlCVUcoKTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgaW5saW5lIGVudW0gaW5zbl90eXBlIF9f c2NfaW5zbihib29sIG5vcCwgYm9vbCB0YWlsKQ0KPiAtew0KPiAtCS8qDQo+IC0JICogRW5jb2Rl IHRoZSBmb2xsb3dpbmcgdGFibGUgd2l0aG91dCBicmFuY2hlczoNCj4gLQkgKg0KPiAtCSAqCXRh aWwJbm9wCWluc24NCj4gLQkgKgktLS0tLSstLS0tLS0tKy0tLS0tLQ0KPiAtCSAqCSAgMCAgfCAg IDAgICB8ICBDQUxMDQo+IC0JICoJICAwICB8ICAgMSAgIHwgIE5PUA0KPiAtCSAqCSAgMSAgfCAg IDAgICB8ICBKTVANCj4gLQkgKgkgIDEgIHwgICAxICAgfCAgUkVUDQo+IC0JICovDQo+IC0JcmV0 dXJuIDIqdGFpbCArIG5vcDsNCj4gLX0NCj4gLQ0KPiAgIHZvaWQgYXJjaF9zdGF0aWNfY2FsbF90 cmFuc2Zvcm0odm9pZCAqc2l0ZSwgdm9pZCAqdHJhbXAsIHZvaWQgKmZ1bmMsIGJvb2wgdGFpbCkN Cj4gICB7DQo+IC0JYm9vbCBub3AgPSAoZnVuYyA9PSBfX3N0YXRpY19jYWxsX25vcCk7DQo+ICsJ ZW51bSBpbnNuX3R5cGUgaW5zbiA9IHRhaWwgPyBKTVAgOiBDQUxMOw0KPiAgIA0KPiAgIAltdXRl eF9sb2NrKCZ0ZXh0X211dGV4KTsNCj4gICANCj4gICAJaWYgKHRyYW1wKSB7DQo+ICAgCQlfX3N0 YXRpY19jYWxsX3ZhbGlkYXRlKHRyYW1wLCB0cnVlLCB0cnVlKTsNCj4gLQkJX19zdGF0aWNfY2Fs bF90cmFuc2Zvcm0odHJhbXAsIF9fc2NfaW5zbihub3AsIHRydWUpLCBmdW5jLCBmYWxzZSk7DQo+ ICsJCV9fc3RhdGljX2NhbGxfdHJhbnNmb3JtKHRyYW1wLCBpbnNuLCBmdW5jLCBmYWxzZSk7DQo+ ICAgCX0NCj4gICANCj4gICAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0hBVkVfU1RBVElDX0NBTExf SU5MSU5FKSAmJiBzaXRlKSB7DQo+ICAgCQlfX3N0YXRpY19jYWxsX3ZhbGlkYXRlKHNpdGUsIHRh aWwsIGZhbHNlKTsNCj4gLQkJX19zdGF0aWNfY2FsbF90cmFuc2Zvcm0oc2l0ZSwgX19zY19pbnNu KG5vcCwgdGFpbCksIGZ1bmMsIGZhbHNlKTsNCj4gKwkJX19zdGF0aWNfY2FsbF90cmFuc2Zvcm0o c2l0ZSwgaW5zbiwgZnVuYywgZmFsc2UpOw0KPiAgIAl9DQo+ICAgDQo+ICAgCW11dGV4X3VubG9j aygmdGV4dF9tdXRleCk7DQo+ICAgfQ0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKGFyY2hfc3RhdGlj X2NhbGxfdHJhbnNmb3JtKTsNCj4gLQ0KPiAtI2lmZGVmIENPTkZJR19SRVRIVU5LDQo+IC0vKg0K PiAtICogVGhpcyBpcyBjYWxsZWQgYnkgYXBwbHlfcmV0dXJucygpIHRvIGZpeCB1cCBzdGF0aWMg Y2FsbCB0cmFtcG9saW5lcywNCj4gLSAqIHNwZWNpZmljYWxseSBBUkNIX0RFRklORV9TVEFUSUNf Q0FMTF9OVUxMX1RSQU1QIHdoaWNoIGlzIHJlY29yZGVkIGFzDQo+IC0gKiBoYXZpbmcgYSByZXR1 cm4gdHJhbXBvbGluZS4NCj4gLSAqDQo+IC0gKiBUaGUgcHJvYmxlbSBpcyB0aGF0IHN0YXRpY19j YWxsKCkgaXMgYXZhaWxhYmxlIGJlZm9yZSBkZXRlcm1pbmluZw0KPiAtICogWDg2X0ZFQVRVUkVf UkVUSFVOSyBhbmQsIGJ5IGltcGxpY2F0aW9uLCBydW5uaW5nIGFsdGVybmF0aXZlcy4NCj4gLSAq DQo+IC0gKiBUaGlzIG1lYW5zIHRoYXQgX19zdGF0aWNfY2FsbF90cmFuc2Zvcm0oKSBhYm92ZSBj YW4gaGF2ZSBvdmVyd3JpdHRlbiB0aGUNCj4gLSAqIHJldHVybiB0cmFtcG9saW5lIGFuZCB3ZSBu b3cgbmVlZCB0byBmaXggdGhpbmdzIHVwIHRvIGJlIGNvbnNpc3RlbnQuDQo+IC0gKi8NCj4gLWJv b2wgX19zdGF0aWNfY2FsbF9maXh1cCh2b2lkICp0cmFtcCwgdTggb3AsIHZvaWQgKmRlc3QpDQo+ IC17DQo+IC0JaWYgKG1lbWNtcCh0cmFtcCs1LCB0cmFtcF91ZCwgMykpIHsNCj4gLQkJLyogTm90 IGEgdHJhbXBvbGluZSBzaXRlLCBub3Qgb3VyIHByb2JsZW0uICovDQo+IC0JCXJldHVybiBmYWxz ZTsNCj4gLQl9DQo+IC0NCj4gLQltdXRleF9sb2NrKCZ0ZXh0X211dGV4KTsNCj4gLQlpZiAob3Ag PT0gUkVUX0lOU05fT1BDT0RFIHx8IGRlc3QgPT0gJl9feDg2X3JldHVybl90aHVuaykNCj4gLQkJ X19zdGF0aWNfY2FsbF90cmFuc2Zvcm0odHJhbXAsIFJFVCwgTlVMTCwgdHJ1ZSk7DQo+IC0JbXV0 ZXhfdW5sb2NrKCZ0ZXh0X211dGV4KTsNCj4gLQ0KPiAtCXJldHVybiB0cnVlOw0KPiAtfQ0KPiAt I2VuZGlmDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0v eDg2LmMNCj4gaW5kZXggZmNmODQ1ZmM1NzcwLi4zMjQ2NzZkNzM4YzAgMTAwNjQ0DQo+IC0tLSBh L2FyY2gveDg2L2t2bS94ODYuYw0KPiArKysgYi9hcmNoL3g4Ni9rdm0veDg2LmMNCj4gQEAgLTkz MjEsOSArOTMyMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fb3BzX3VwZGF0ZShzdHJ1Y3Qg a3ZtX3g4Nl9pbml0X29wcyAqb3BzKQ0KPiAgICNkZWZpbmUgS1ZNX1g4Nl9PUChmdW5jKSBcDQo+ ICAgCVdBUk5fT04oIWt2bV94ODZfb3BzLmZ1bmMpOyBfX0tWTV9YODZfT1AoZnVuYykNCj4gICAj ZGVmaW5lIEtWTV9YODZfT1BfT1BUSU9OQUwgX19LVk1fWDg2X09QDQo+IC0jZGVmaW5lIEtWTV9Y ODZfT1BfT1BUSU9OQUxfUkVUMChmdW5jKSBcDQo+IC0Jc3RhdGljX2NhbGxfdXBkYXRlKGt2bV94 ODZfIyNmdW5jLCAodm9pZCAqKWt2bV94ODZfb3BzLmZ1bmMgPyA6IFwNCj4gLQkJCQkJICAgKHZv aWQgKilfX3N0YXRpY19jYWxsX3JldHVybjApOw0KPiArI2RlZmluZSBLVk1fWDg2X09QX09QVElP TkFMX1JFVDAoZnVuYykgX19LVk1fWDg2X09QDQo+ICAgI2luY2x1ZGUgPGFzbS9rdm0teDg2LW9w cy5oPg0KPiAgICN1bmRlZiBfX0tWTV9YODZfT1ANCj4gICANCj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvc3RhdGljX2NhbGwuaCBiL2luY2x1ZGUvbGludXgvc3RhdGljX2NhbGwuaA0KPiBp bmRleCBkNTI1NDEwN2NjZjQuLjYyNWIzMjE3NDgwZiAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9s aW51eC9zdGF0aWNfY2FsbC5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvc3RhdGljX2NhbGwuaA0K PiBAQCAtMTcsOSArMTcsNiBAQA0KPiAgICAqICAgREVDTEFSRV9TVEFUSUNfQ0FMTChuYW1lLCBm dW5jKTsNCj4gICAgKiAgIERFRklORV9TVEFUSUNfQ0FMTChuYW1lLCBmdW5jKTsNCj4gICAgKiAg IERFRklORV9TVEFUSUNfQ0FMTF9OVUxMKG5hbWUsIHR5cGVuYW1lKTsNCj4gLSAqICAgREVGSU5F X1NUQVRJQ19DQUxMX1JFVDAobmFtZSwgdHlwZW5hbWUpOw0KPiAtICoNCj4gLSAqICAgX19zdGF0 aWNfY2FsbF9yZXR1cm4wOw0KPiAgICAqDQo+ICAgICogICBzdGF0aWNfY2FsbChuYW1lKShhcmdz Li4uKTsNCj4gICAgKiAgIHN0YXRpY19jYWxsX3JvKG5hbWUpKGFyZ3MuLi4pOw0KPiBAQCAtNjUs MTkgKzYyLDI2IEBADQo+ICAgICoNCj4gICAgKiBOb3RlcyBvbiBOVUxMIGZ1bmN0aW9uIHBvaW50 ZXJzOg0KPiAgICAqDQo+IC0gKiAgIEEgc3RhdGljX2NhbGwoKSB0byBhIE5VTEwgZnVuY3Rpb24g cG9pbnRlciBpcyBhIE5PUC4NCj4gKyAqICAgQSBzdGF0aWNfY2FsbCgpIHRvIGEgTlVMTCBmdW5j dGlvbiBwb2ludGVyIGlzIGVxdWl2YWxlbnQgdG8gYSBjYWxsIHRvIGENCj4gKyAqICAgImRvIG5v dGhpbmcgcmV0dXJuIDAiIGZ1bmN0aW9uLg0KPiAgICAqDQo+ICAgICogICBBIE5VTEwgc3RhdGlj IGNhbGwgY2FuIGJlIHRoZSByZXN1bHQgb2Y6DQo+ICAgICoNCj4gICAgKiAgICAgREVDTEFSRV9T VEFUSUNfQ0FMTF9OVUxMKG15X3N0YXRpY19jYWxsLCB2b2lkICgqKShpbnQpKTsNCj4gICAgKg0K PiAtICogICBvciB1c2luZyBzdGF0aWNfY2FsbF91cGRhdGUoKSB3aXRoIGEgTlVMTCBmdW5jdGlv biBwb2ludGVyLiBJbiBib3RoIGNhc2VzDQo+IC0gKiAgIHRoZSBIQVZFX1NUQVRJQ19DQUxMIGlt cGxlbWVudGF0aW9uIHdpbGwgcGF0Y2ggdGhlIHRyYW1wb2xpbmUgd2l0aCBhIFJFVA0KPiAtKiAg ICBpbnN0cnVjdGlvbiwgaW5zdGVhZCBvZiBhbiBpbW1lZGlhdGUgdGFpbC1jYWxsIEpNUC4gSEFW RV9TVEFUSUNfQ0FMTF9JTkxJTkUNCj4gLSogICAgYXJjaGl0ZWN0dXJlcyBjYW4gcGF0Y2ggdGhl IHRyYW1wb2xpbmUgY2FsbCB0byBhIE5PUC4NCj4gKyAqICAgb3IgdXNpbmcgc3RhdGljX2NhbGxf dXBkYXRlKCkgd2l0aCBhIE5VTEwgZnVuY3Rpb24gcG9pbnRlci4NCj4gKyAqDQo+ICsgKiAgIFRo ZSAicmV0dXJuIDAiIGZlYXR1cmUgaXMgc3RyaWN0bHkgVUIgcGVyIHRoZSBDIHN0YW5kYXJkIChz aW5jZSBpdCBjYXN0cyBhDQo+ICsgKiAgIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYSBkaWZmZXJlbnQg c2lnbmF0dXJlKSBhbmQgcmVsaWVzIG9uIHRoZSBhcmNoaXRlY3R1cmUNCj4gKyAqICAgQUJJIHRv IG1ha2UgdGhpbmdzIHdvcmsuIEluIHBhcnRpY3VsYXIgaXQgcmVsaWVzIG9uIHRoZSByZXR1cm4g dmFsdWUNCj4gKyAqICAgcmVnaXN0ZXIgYmVpbmcgY2FsbGVlLWNsb2JiZXJlZCBmb3IgYWxsIGZ1 bmN0aW9uIGNhbGxzLg0KPiArICoNCj4gKyAqICAgSW4gcGFydGljdWxhciBUaGUgeDg2XzY0IGlt cGxlbWVudGF0aW9uIG9mIEhBVkVfU1RBVElDX0NBTExfSU5MSU5FDQo+ICsgKiAgIHJlcGxhY2Vz IHRoZSA1IGJ5dGUgQ0FMTCBpbnN0cnVjdGlvbiBhdCB0aGUgY2FsbHNpdGUgd2l0aCBhIDUgYnl0 ZSBjbGVhcg0KPiArICogICBvZiB0aGUgUkFYIHJlZ2lzdGVyLCBjb21wbGV0ZWx5IGVsaWRpbmcg YW55IGZ1bmN0aW9uIGNhbGwgb3ZlcmhlYWQuDQo+ICAgICoNCj4gLSAqICAgSW4gYWxsIGNhc2Vz LCBhbnkgYXJndW1lbnQgZXZhbHVhdGlvbiBpcyB1bmNvbmRpdGlvbmFsLiBVbmxpa2UgYSByZWd1 bGFyDQo+IC0gKiAgIGNvbmRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXIgY2FsbDoNCj4gKyAqICAg QW55IGFyZ3VtZW50IGV2YWx1YXRpb24gaXMgdW5jb25kaXRpb25hbC4gVW5saWtlIGEgcmVndWxh ciBjb25kaXRpb25hbA0KPiArICogICBmdW5jdGlvbiBwb2ludGVyIGNhbGw6DQo+ICAgICoNCj4g ICAgKiAgICAgaWYgKG15X2Z1bmNfcHRyKQ0KPiAgICAqICAgICAgICAgbXlfZnVuY19wdHIoYXJn MSkNCj4gQEAgLTg4LDI2ICs5Miw2IEBADQo+ICAgICoNCj4gICAgKiAgIGZ1bmMgPSBzdGF0aWNf Y2FsbF9xdWVyeShuYW1lKTsNCj4gICAgKg0KPiAtICoNCj4gLSAqIERFRklORV9TVEFUSUNfQ0FM TF9SRVQwIC8gX19zdGF0aWNfY2FsbF9yZXR1cm4wOg0KPiAtICoNCj4gLSAqICAgSnVzdCBsaWtl IGhvdyBERUZJTkVfU1RBVElDX0NBTExfTlVMTCgpIG9wdGltaXplcyB0aGUNCj4gLSAqICAgY29u ZGl0aW9uYWwgdm9pZCBmdW5jdGlvbiBjYWxsLCBERUZJTkVfU1RBVElDX0NBTExfUkVUMCAvDQo+ IC0gKiAgIF9fc3RhdGljX2NhbGxfcmV0dXJuMCBvcHRpbWl6ZSB0aGUgZG8gbm90aGluZyByZXR1 cm4gMCBmdW5jdGlvbi4NCj4gLSAqDQo+IC0gKiAgIFRoaXMgZmVhdHVyZSBpcyBzdHJpY3RseSBV QiBwZXIgdGhlIEMgc3RhbmRhcmQgKHNpbmNlIGl0IGNhc3RzIGEgZnVuY3Rpb24NCj4gLSAqICAg cG9pbnRlciB0byBhIGRpZmZlcmVudCBzaWduYXR1cmUpIGFuZCByZWxpZXMgb24gdGhlIGFyY2hp dGVjdHVyZSBBQkkgdG8NCj4gLSAqICAgbWFrZSB0aGluZ3Mgd29yay4gSW4gcGFydGljdWxhciBp dCByZWxpZXMgb24gQ2FsbGVyIFN0YWNrLWNsZWFudXAgYW5kIHRoZQ0KPiAtICogICB3aG9sZSBy ZXR1cm4gcmVnaXN0ZXIgYmVpbmcgY2xvYmJlcmVkIGZvciBzaG9ydCByZXR1cm4gdmFsdWVzLiBB bGwgbm9ybWFsDQo+IC0gKiAgIENERUNMIHN0eWxlIEFCSXMgY29uZm9ybS4NCj4gLSAqDQo+IC0g KiAgIEluIHBhcnRpY3VsYXIgdGhlIHg4Nl82NCBpbXBsZW1lbnRhdGlvbiByZXBsYWNlcyB0aGUg NSBieXRlIENBTEwNCj4gLSAqICAgaW5zdHJ1Y3Rpb24gYXQgdGhlIGNhbGxzaXRlIHdpdGggYSA1 IGJ5dGUgY2xlYXIgb2YgdGhlIFJBWCByZWdpc3RlciwNCj4gLSAqICAgY29tcGxldGVseSBlbGlk aW5nIGFueSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkLg0KPiAtICoNCj4gLSAqICAgTm90YWJseSBh cmd1bWVudCBzZXR1cCBpcyB1bmNvbmRpdGlvbmFsLg0KPiAtICoNCj4gLSAqDQo+ICAgICogRVhQ T1JUX1NUQVRJQ19DQUxMKCkgdnMgRVhQT1JUX1NUQVRJQ19DQUxMX1JPKCk6DQo+ICAgICoNCj4g ICAgKiAgIFRoZSBkaWZmZXJlbmNlIGlzIHRoZSByZWFkLW9ubHkgdmFyaWFudCBleHBvcnRzIHRo ZSB0cmFtcG9saW5lIGJ1dCBub3QgdGhlDQo+IEBAIC0xMzEsNyArMTE1LDYgQEAgc3RydWN0IHN0 YXRpY19jYWxsX2tleSB7DQo+ICAgI2VuZGlmDQo+ICAgfTsNCj4gICANCj4gLWV4dGVybiB2b2lk IF9fc3RhdGljX2NhbGxfbm9wKHZvaWQpOw0KPiAgIGV4dGVybiBsb25nIF9fc3RhdGljX2NhbGxf cmV0dXJuMCh2b2lkKTsNCj4gICANCj4gICAjZGVmaW5lIERFQ0xBUkVfU1RBVElDX0NBTEwobmFt ZSwgZnVuYykJCQkJCVwNCj4gQEAgLTE1MSwxMCArMTM0LDYgQEAgZXh0ZXJuIGxvbmcgX19zdGF0 aWNfY2FsbF9yZXR1cm4wKHZvaWQpOw0KPiAgIAlfX0RFRklORV9TVEFUSUNfQ0FMTF9UUkFNUChu YW1lLCBmdW5jKQ0KPiAgIA0KPiAgICNkZWZpbmUgREVGSU5FX1NUQVRJQ19DQUxMX05VTEwobmFt ZSwgdHlwZSkJCQkJXA0KPiAtCV9fREVGSU5FX1NUQVRJQ19DQUxMKG5hbWUsIHR5cGUsIF9fU1RB VElDX0NBTExfTk9QKG5hbWUpKTsJXA0KPiAtCV9fREVGSU5FX1NUQVRJQ19DQUxMX05PUF9UUkFN UChuYW1lKQ0KPiAtDQo+IC0jZGVmaW5lIERFRklORV9TVEFUSUNfQ0FMTF9SRVQwKG5hbWUsIHR5 cGUpCQkJCVwNCj4gICAJX19ERUZJTkVfU1RBVElDX0NBTEwobmFtZSwgdHlwZSwgX19TVEFUSUNf Q0FMTF9SRVQwKG5hbWUpKTsJXA0KPiAgIAlfX0RFRklORV9TVEFUSUNfQ0FMTF9SRVQwX1RSQU1Q KG5hbWUpDQo+ICAgDQo+IEBAIC0yMTIsOCArMTkxLDYgQEAgZXh0ZXJuIGxvbmcgX19zdGF0aWNf Y2FsbF9yZXR1cm4wKHZvaWQpOw0KPiAgICh7CQkJCQkJCQkJXA0KPiAgIAl0eXBlb2YoJlNUQVRJ Q19DQUxMX1RSQU1QKG5hbWUpKSBfX0YgPSAoZnVuYyk7CQkJXA0KPiAgIAlpZiAoIV9fRikJCQkJ CQkJXA0KPiAtCQlfX0YgPSBfX1NUQVRJQ19DQUxMX05PUChuYW1lKTsJCQkJXA0KPiAtCWVsc2Ug aWYgKF9fRiA9PSAodm9pZCAqKV9fc3RhdGljX2NhbGxfcmV0dXJuMCkJCQlcDQo+ICAgCQlfX0Yg PSBfX1NUQVRJQ19DQUxMX1JFVDAobmFtZSk7CQkJCVwNCj4gICAJX19zdGF0aWNfY2FsbF91cGRh dGUoJlNUQVRJQ19DQUxMX0tFWShuYW1lKSwJCQlcDQo+ICAgCQkJICAgICBTVEFUSUNfQ0FMTF9U UkFNUF9BRERSKG5hbWUpLCBfX0YpOwlcDQo+IEBAIC0yMjIsMTAgKzE5OSw4IEBAIGV4dGVybiBs b25nIF9fc3RhdGljX2NhbGxfcmV0dXJuMCh2b2lkKTsNCj4gICAjZGVmaW5lIHN0YXRpY19jYWxs X3F1ZXJ5KG5hbWUpCQkJCQkJXA0KPiAgICh7CQkJCQkJCQkJXA0KPiAgIAl2b2lkICpfX0YgPSAo UkVBRF9PTkNFKFNUQVRJQ19DQUxMX0tFWShuYW1lKS5mdW5jKSk7CQlcDQo+IC0JaWYgKF9fRiA9 PSBfX1NUQVRJQ19DQUxMX05PUChuYW1lKSkJCQkJXA0KPiArCWlmIChfX0YgPT0gX19TVEFUSUNf Q0FMTF9SRVQwKG5hbWUpKQkJCQlcDQo+ICAgCQlfX0YgPSBOVUxMOwkJCQkJCVwNCj4gLQllbHNl IGlmIChfX0YgPT0gX19TVEFUSUNfQ0FMTF9SRVQwKG5hbWUpKQkJCVwNCj4gLQkJX19GID0gX19z dGF0aWNfY2FsbF9yZXR1cm4wOwkJCQlcDQo+ICAgCV9fRjsJCQkJCQkJCVwNCj4gICB9KQ0KPiAg IA0KPiBAQCAtMjM2LDkgKzIxMSw2IEBAIGV4dGVybiBsb25nIF9fc3RhdGljX2NhbGxfcmV0dXJu MCh2b2lkKTsNCj4gICAjZGVmaW5lIF9fREVGSU5FX1NUQVRJQ19DQUxMX1RSQU1QKG5hbWUsIGZ1 bmMpCQkJCVwNCj4gICAJQVJDSF9ERUZJTkVfU1RBVElDX0NBTExfVFJBTVAobmFtZSwgZnVuYykN Cj4gICANCj4gLSNkZWZpbmUgX19ERUZJTkVfU1RBVElDX0NBTExfTk9QX1RSQU1QKG5hbWUpCQkJ CVwNCj4gLQlBUkNIX0RFRklORV9TVEFUSUNfQ0FMTF9OT1BfVFJBTVAobmFtZSkNCj4gLQ0KPiAg ICNkZWZpbmUgX19ERUZJTkVfU1RBVElDX0NBTExfUkVUMF9UUkFNUChuYW1lKQkJCQlcDQo+ICAg CUFSQ0hfREVGSU5FX1NUQVRJQ19DQUxMX1JFVDBfVFJBTVAobmFtZSkNCj4gICANCj4gQEAgLTI2 Miw3ICsyMzQsNiBAQCBleHRlcm4gdm9pZCBhcmNoX3N0YXRpY19jYWxsX3RyYW5zZm9ybSh2b2lk ICpzaXRlLCB2b2lkICp0cmFtcCwgdm9pZCAqZnVuYywgYm9vbA0KPiAgICNlbHNlIC8qICFDT05G SUdfSEFWRV9TVEFUSUNfQ0FMTCAqLw0KPiAgIA0KPiAgICNkZWZpbmUgX19ERUZJTkVfU1RBVElD X0NBTExfVFJBTVAobmFtZSwgZnVuYykNCj4gLSNkZWZpbmUgX19ERUZJTkVfU1RBVElDX0NBTExf Tk9QX1RSQU1QKG5hbWUpDQo+ICAgI2RlZmluZSBfX0RFRklORV9TVEFUSUNfQ0FMTF9SRVQwX1RS QU1QKG5hbWUpDQo+ICAgI2RlZmluZSBfX0VYUE9SVF9TVEFUSUNfQ0FMTF9UUkFNUChuYW1lKQ0K PiAgICNkZWZpbmUgX19FWFBPUlRfU1RBVElDX0NBTExfVFJBTVBfR1BMKG5hbWUpDQo+IEBAIC0z MDgsMjggKzI3OSwyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdGljX2NhbGxfZm9yY2VfcmVp bml0KHZvaWQpIHt9DQo+ICAgDQo+ICAgI2luY2x1ZGUgPGFzbS9zdGF0aWNfY2FsbC5oPg0KPiAg IA0KPiAtI2RlZmluZSBfX1NUQVRJQ19DQUxMX05PUChuYW1lKQkJU1RBVElDX0NBTExfTk9QX0NG SShuYW1lKQ0KPiAgICNkZWZpbmUgX19TVEFUSUNfQ0FMTF9SRVQwKG5hbWUpCVNUQVRJQ19DQUxM X1JFVDBfQ0ZJKG5hbWUpDQo+ICAgDQo+ICAgI2RlZmluZSBfX0RFQ0xBUkVfU1RBVElDX0NBTExf Q0ZJKG5hbWUsIGZ1bmMpCQkJCVwNCj4gLQlleHRlcm4gdHlwZW9mKGZ1bmMpIFNUQVRJQ19DQUxM X05PUF9DRkkobmFtZSk7CQlcDQo+ICAgCWV4dGVybiB0eXBlb2YoZnVuYykgU1RBVElDX0NBTExf UkVUMF9DRkkobmFtZSkNCj4gICANCj4gICAjZGVmaW5lIF9fREVGSU5FX1NUQVRJQ19DQUxMX0NG SShuYW1lKQkJCQkJXA0KPiAtCV9fQVJDSF9ERUZJTkVfU1RBVElDX0NBTExfTk9QX0NGSShuYW1l KTsJCQlcDQo+ICAgCV9fQVJDSF9ERUZJTkVfU1RBVElDX0NBTExfUkVUMF9DRkkobmFtZSkNCj4g ICANCj4gICAjZGVmaW5lIF9fRVhQT1JUX1NUQVRJQ19DQUxMX0NGSShuYW1lKQkJCQkJXA0KPiAt CUVYUE9SVF9TWU1CT0woU1RBVElDX0NBTExfTk9QX0NGSShuYW1lKSk7CQkJXA0KPiAgIAlFWFBP UlRfU1lNQk9MKFNUQVRJQ19DQUxMX1JFVDBfQ0ZJKG5hbWUpKQ0KPiAgIA0KPiAgICNkZWZpbmUg X19FWFBPUlRfU1RBVElDX0NBTExfQ0ZJX0dQTChuYW1lKQkJCQlcDQo+IC0JRVhQT1JUX1NZTUJP TF9HUEwoU1RBVElDX0NBTExfTk9QX0NGSShuYW1lKSk7CQlcDQo+ICAgCUVYUE9SVF9TWU1CT0xf R1BMKFNUQVRJQ19DQUxMX1JFVDBfQ0ZJKG5hbWUpKQ0KPiAgIA0KPiAgICNlbHNlIC8qICEgQ09O RklHX0NGSV9XSVRIT1VUX1NUQVRJQ19DQUxMICovDQo+ICAgDQo+IC0jZGVmaW5lIF9fU1RBVElD X0NBTExfTk9QKG5hbWUpCQkodm9pZCAqKV9fc3RhdGljX2NhbGxfbm9wDQo+ICAgI2RlZmluZSBf X1NUQVRJQ19DQUxMX1JFVDAobmFtZSkJKHZvaWQgKilfX3N0YXRpY19jYWxsX3JldHVybjANCj4g ICANCj4gICAjZGVmaW5lIF9fREVDTEFSRV9TVEFUSUNfQ0FMTF9DRkkobmFtZSwgZnVuYykNCj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RhdGljX2NhbGxfdHlwZXMuaCBiL2luY2x1ZGUv bGludXgvc3RhdGljX2NhbGxfdHlwZXMuaA0KPiBpbmRleCAyZTI0ODFjM2Y1NGUuLjcyNzMyYWY1 MWNiYSAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9zdGF0aWNfY2FsbF90eXBlcy5oDQo+ ICsrKyBiL2luY2x1ZGUvbGludXgvc3RhdGljX2NhbGxfdHlwZXMuaA0KPiBAQCAtMjIsMTAgKzIy LDYgQEANCj4gICAjZGVmaW5lIFNUQVRJQ19DQUxMX1RSQU1QKG5hbWUpCQlfX1BBU1RFKFNUQVRJ Q19DQUxMX1RSQU1QX1BSRUZJWCwgbmFtZSkNCj4gICAjZGVmaW5lIFNUQVRJQ19DQUxMX1RSQU1Q X1NUUihuYW1lKQlfX3N0cmluZ2lmeShTVEFUSUNfQ0FMTF9UUkFNUChuYW1lKSkNCj4gICANCj4g LSNkZWZpbmUgU1RBVElDX0NBTExfTk9QX0NGSV9QUkVGSVgJX19TQ05fXw0KPiAtI2RlZmluZSBT VEFUSUNfQ0FMTF9OT1BfQ0ZJKG5hbWUpCV9fUEFTVEUoU1RBVElDX0NBTExfTk9QX0NGSV9QUkVG SVgsIG5hbWUpDQo+IC0jZGVmaW5lIFNUQVRJQ19DQUxMX05PUF9DRklfU1RSKG5hbWUpCV9fc3Ry aW5naWZ5KFNUQVRJQ19DQUxMX05PUF9DRkkobmFtZSkpDQo+IC0NCj4gICAjZGVmaW5lIFNUQVRJ Q19DQUxMX1JFVDBfQ0ZJX1BSRUZJWAlfX1NDUl9fDQo+ICAgI2RlZmluZSBTVEFUSUNfQ0FMTF9S RVQwX0NGSShuYW1lKQlfX1BBU1RFKFNUQVRJQ19DQUxMX1JFVDBfQ0ZJX1BSRUZJWCwgbmFtZSkN Cj4gICAjZGVmaW5lIFNUQVRJQ19DQUxMX1JFVDBfQ0ZJX1NUUihuYW1lKQlfX3N0cmluZ2lmeShT VEFUSUNfQ0FMTF9SRVQwX0NGSShuYW1lKSkNCj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMv Y29yZS5jIGIva2VybmVsL2V2ZW50cy9jb3JlLmMNCj4gaW5kZXggZjc5ZmQ4Yjg3Zjc1Li41MmYx ZWRiODEyOGMgMTAwNjQ0DQo+IC0tLSBhL2tlcm5lbC9ldmVudHMvY29yZS5jDQo+ICsrKyBiL2tl cm5lbC9ldmVudHMvY29yZS5jDQo+IEBAIC02NzU3LDkgKzY3NTcsOSBAQCBzdGF0aWMgdm9pZCBw ZXJmX3BlbmRpbmdfdGFzayhzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkNCj4gICAjaWZkZWYg Q09ORklHX0dVRVNUX1BFUkZfRVZFTlRTDQo+ICAgc3RydWN0IHBlcmZfZ3Vlc3RfaW5mb19jYWxs YmFja3MgX19yY3UgKnBlcmZfZ3Vlc3RfY2JzOw0KPiAgIA0KPiAtREVGSU5FX1NUQVRJQ19DQUxM X1JFVDAoX19wZXJmX2d1ZXN0X3N0YXRlLCAqcGVyZl9ndWVzdF9jYnMtPnN0YXRlKTsNCj4gLURF RklORV9TVEFUSUNfQ0FMTF9SRVQwKF9fcGVyZl9ndWVzdF9nZXRfaXAsICpwZXJmX2d1ZXN0X2Ni cy0+Z2V0X2lwKTsNCj4gLURFRklORV9TVEFUSUNfQ0FMTF9SRVQwKF9fcGVyZl9ndWVzdF9oYW5k bGVfaW50ZWxfcHRfaW50ciwgKnBlcmZfZ3Vlc3RfY2JzLT5oYW5kbGVfaW50ZWxfcHRfaW50cik7 DQo+ICtERUZJTkVfU1RBVElDX0NBTExfTlVMTChfX3BlcmZfZ3Vlc3Rfc3RhdGUsICpwZXJmX2d1 ZXN0X2Nicy0+c3RhdGUpOw0KPiArREVGSU5FX1NUQVRJQ19DQUxMX05VTEwoX19wZXJmX2d1ZXN0 X2dldF9pcCwgKnBlcmZfZ3Vlc3RfY2JzLT5nZXRfaXApOw0KPiArREVGSU5FX1NUQVRJQ19DQUxM X05VTEwoX19wZXJmX2d1ZXN0X2hhbmRsZV9pbnRlbF9wdF9pbnRyLCAqcGVyZl9ndWVzdF9jYnMt PmhhbmRsZV9pbnRlbF9wdF9pbnRyKTsNCj4gICANCj4gICB2b2lkIHBlcmZfcmVnaXN0ZXJfZ3Vl c3RfaW5mb19jYWxsYmFja3Moc3RydWN0IHBlcmZfZ3Vlc3RfaW5mb19jYWxsYmFja3MgKmNicykN Cj4gICB7DQo+IEBAIC02NzgzLDEwICs2NzgzLDkgQEAgdm9pZCBwZXJmX3VucmVnaXN0ZXJfZ3Vl c3RfaW5mb19jYWxsYmFja3Moc3RydWN0IHBlcmZfZ3Vlc3RfaW5mb19jYWxsYmFja3MgKmNicykN Cj4gICAJCXJldHVybjsNCj4gICANCj4gICAJcmN1X2Fzc2lnbl9wb2ludGVyKHBlcmZfZ3Vlc3Rf Y2JzLCBOVUxMKTsNCj4gLQlzdGF0aWNfY2FsbF91cGRhdGUoX19wZXJmX2d1ZXN0X3N0YXRlLCAo dm9pZCAqKSZfX3N0YXRpY19jYWxsX3JldHVybjApOw0KPiAtCXN0YXRpY19jYWxsX3VwZGF0ZShf X3BlcmZfZ3Vlc3RfZ2V0X2lwLCAodm9pZCAqKSZfX3N0YXRpY19jYWxsX3JldHVybjApOw0KPiAt CXN0YXRpY19jYWxsX3VwZGF0ZShfX3BlcmZfZ3Vlc3RfaGFuZGxlX2ludGVsX3B0X2ludHIsDQo+ IC0JCQkgICAodm9pZCAqKSZfX3N0YXRpY19jYWxsX3JldHVybjApOw0KPiArCXN0YXRpY19jYWxs X3VwZGF0ZShfX3BlcmZfZ3Vlc3Rfc3RhdGUsIE5VTEwpOw0KPiArCXN0YXRpY19jYWxsX3VwZGF0 ZShfX3BlcmZfZ3Vlc3RfZ2V0X2lwLCBOVUxMKTsNCj4gKwlzdGF0aWNfY2FsbF91cGRhdGUoX19w ZXJmX2d1ZXN0X2hhbmRsZV9pbnRlbF9wdF9pbnRyLCBOVUxMKTsNCj4gICAJc3luY2hyb25pemVf cmN1KCk7DQo+ICAgfQ0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKHBlcmZfdW5yZWdpc3Rlcl9ndWVz dF9pbmZvX2NhbGxiYWNrcyk7DQo+IEBAIC0xMzc2Niw0ICsxMzc2NSw0IEBAIHN0cnVjdCBjZ3Jv dXBfc3Vic3lzIHBlcmZfZXZlbnRfY2dycF9zdWJzeXMgPSB7DQo+ICAgfTsNCj4gICAjZW5kaWYg LyogQ09ORklHX0NHUk9VUF9QRVJGICovDQo+ICAgDQo+IC1ERUZJTkVfU1RBVElDX0NBTExfUkVU MChwZXJmX3NuYXBzaG90X2JyYW5jaF9zdGFjaywgcGVyZl9zbmFwc2hvdF9icmFuY2hfc3RhY2tf dCk7DQo+ICtERUZJTkVfU1RBVElDX0NBTExfTlVMTChwZXJmX3NuYXBzaG90X2JyYW5jaF9zdGFj aywgcGVyZl9zbmFwc2hvdF9icmFuY2hfc3RhY2tfdCk7DQo+IGRpZmYgLS1naXQgYS9rZXJuZWwv c2NoZWQvY29yZS5jIGIva2VybmVsL3NjaGVkL2NvcmUuYw0KPiBpbmRleCBhODlkZTJhMmQ4Zjgu LmU2OTU0M2E4YjA5OCAxMDA2NDQNCj4gLS0tIGEva2VybmVsL3NjaGVkL2NvcmUuYw0KPiArKysg Yi9rZXJuZWwvc2NoZWQvY29yZS5jDQo+IEBAIC02ODIxLDcgKzY4MjEsNiBAQCBFWFBPUlRfU1lN Qk9MKHByZWVtcHRfc2NoZWR1bGUpOw0KPiAgICNpZiBkZWZpbmVkKENPTkZJR19IQVZFX1BSRUVN UFRfRFlOQU1JQ19DQUxMKQ0KPiAgICNpZm5kZWYgcHJlZW1wdF9zY2hlZHVsZV9keW5hbWljX2Vu YWJsZWQNCj4gICAjZGVmaW5lIHByZWVtcHRfc2NoZWR1bGVfZHluYW1pY19lbmFibGVkCXByZWVt cHRfc2NoZWR1bGUNCj4gLSNkZWZpbmUgcHJlZW1wdF9zY2hlZHVsZV9keW5hbWljX2Rpc2FibGVk CU5VTEwNCj4gICAjZW5kaWYNCj4gICBERUZJTkVfU1RBVElDX0NBTEwocHJlZW1wdF9zY2hlZHVs ZSwgcHJlZW1wdF9zY2hlZHVsZV9keW5hbWljX2VuYWJsZWQpOw0KPiAgIEVYUE9SVF9TVEFUSUNf Q0FMTF9STyhwcmVlbXB0X3NjaGVkdWxlKTsNCj4gQEAgLTY4OTQsNyArNjg5Myw2IEBAIEVYUE9S VF9TWU1CT0xfR1BMKHByZWVtcHRfc2NoZWR1bGVfbm90cmFjZSk7DQo+ICAgI2lmIGRlZmluZWQo Q09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDX0NBTEwpDQo+ICAgI2lmbmRlZiBwcmVlbXB0X3Nj aGVkdWxlX25vdHJhY2VfZHluYW1pY19lbmFibGVkDQo+ICAgI2RlZmluZSBwcmVlbXB0X3NjaGVk dWxlX25vdHJhY2VfZHluYW1pY19lbmFibGVkCXByZWVtcHRfc2NoZWR1bGVfbm90cmFjZQ0KPiAt I2RlZmluZSBwcmVlbXB0X3NjaGVkdWxlX25vdHJhY2VfZHluYW1pY19kaXNhYmxlZAlOVUxMDQo+ ICAgI2VuZGlmDQo+ICAgREVGSU5FX1NUQVRJQ19DQUxMKHByZWVtcHRfc2NoZWR1bGVfbm90cmFj ZSwgcHJlZW1wdF9zY2hlZHVsZV9ub3RyYWNlX2R5bmFtaWNfZW5hYmxlZCk7DQo+ICAgRVhQT1JU X1NUQVRJQ19DQUxMX1JPKHByZWVtcHRfc2NoZWR1bGVfbm90cmFjZSk7DQo+IEBAIC04NDkxLDEz ICs4NDg5LDExIEBAIEVYUE9SVF9TWU1CT0woX19jb25kX3Jlc2NoZWQpOw0KPiAgICNpZmRlZiBD T05GSUdfUFJFRU1QVF9EWU5BTUlDDQo+ICAgI2lmIGRlZmluZWQoQ09ORklHX0hBVkVfUFJFRU1Q VF9EWU5BTUlDX0NBTEwpDQo+ICAgI2RlZmluZSBjb25kX3Jlc2NoZWRfZHluYW1pY19lbmFibGVk CV9fY29uZF9yZXNjaGVkDQo+IC0jZGVmaW5lIGNvbmRfcmVzY2hlZF9keW5hbWljX2Rpc2FibGVk CSgodm9pZCAqKSZfX3N0YXRpY19jYWxsX3JldHVybjApDQo+IC1ERUZJTkVfU1RBVElDX0NBTExf UkVUMChjb25kX3Jlc2NoZWQsIF9fY29uZF9yZXNjaGVkKTsNCj4gK0RFRklORV9TVEFUSUNfQ0FM TF9OVUxMKGNvbmRfcmVzY2hlZCwgX19jb25kX3Jlc2NoZWQpOw0KPiAgIEVYUE9SVF9TVEFUSUNf Q0FMTF9STyhjb25kX3Jlc2NoZWQpOw0KPiAgIA0KPiAgICNkZWZpbmUgbWlnaHRfcmVzY2hlZF9k eW5hbWljX2VuYWJsZWQJX19jb25kX3Jlc2NoZWQNCj4gLSNkZWZpbmUgbWlnaHRfcmVzY2hlZF9k eW5hbWljX2Rpc2FibGVkCSgodm9pZCAqKSZfX3N0YXRpY19jYWxsX3JldHVybjApDQo+IC1ERUZJ TkVfU1RBVElDX0NBTExfUkVUMChtaWdodF9yZXNjaGVkLCBfX2NvbmRfcmVzY2hlZCk7DQo+ICtE RUZJTkVfU1RBVElDX0NBTExfTlVMTChtaWdodF9yZXNjaGVkLCBfX2NvbmRfcmVzY2hlZCk7DQo+ ICAgRVhQT1JUX1NUQVRJQ19DQUxMX1JPKG1pZ2h0X3Jlc2NoZWQpOw0KPiAgICNlbGlmIGRlZmlu ZWQoQ09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDX0tFWSkNCj4gICBzdGF0aWMgREVGSU5FX1NU QVRJQ19LRVlfRkFMU0Uoc2tfZHluYW1pY19jb25kX3Jlc2NoZWQpOw0KPiBAQCAtODY0Myw3ICs4 NjM5LDcgQEAgaW50IHNjaGVkX2R5bmFtaWNfbW9kZShjb25zdCBjaGFyICpzdHIpDQo+ICAgDQo+ ICAgI2lmIGRlZmluZWQoQ09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDX0NBTEwpDQo+ICAgI2Rl ZmluZSBwcmVlbXB0X2R5bmFtaWNfZW5hYmxlKGYpCXN0YXRpY19jYWxsX3VwZGF0ZShmLCBmIyNf ZHluYW1pY19lbmFibGVkKQ0KPiAtI2RlZmluZSBwcmVlbXB0X2R5bmFtaWNfZGlzYWJsZShmKQlz dGF0aWNfY2FsbF91cGRhdGUoZiwgZiMjX2R5bmFtaWNfZGlzYWJsZWQpDQo+ICsjZGVmaW5lIHBy ZWVtcHRfZHluYW1pY19kaXNhYmxlKGYpCXN0YXRpY19jYWxsX3VwZGF0ZShmLCBOVUxMKQ0KPiAg ICNlbGlmIGRlZmluZWQoQ09ORklHX0hBVkVfUFJFRU1QVF9EWU5BTUlDX0tFWSkNCj4gICAjZGVm aW5lIHByZWVtcHRfZHluYW1pY19lbmFibGUoZikJc3RhdGljX2tleV9lbmFibGUoJnNrX2R5bmFt aWNfIyNmLmtleSkNCj4gICAjZGVmaW5lIHByZWVtcHRfZHluYW1pY19kaXNhYmxlKGYpCXN0YXRp Y19rZXlfZGlzYWJsZSgmc2tfZHluYW1pY18jI2Yua2V5KQ0KPiBkaWZmIC0tZ2l0IGEva2VybmVs L3N0YXRpY19jYWxsLmMgYi9rZXJuZWwvc3RhdGljX2NhbGwuYw0KPiBpbmRleCAyMGJmMzRiYzNl MmEuLjA5MGVjZjVkMzRiNCAxMDA2NDQNCj4gLS0tIGEva2VybmVsL3N0YXRpY19jYWxsLmMNCj4g KysrIGIva2VybmVsL3N0YXRpY19jYWxsLmMNCj4gQEAgLTksMTEgKzksNiBAQCBsb25nIF9fc3Rh dGljX2NhbGxfcmV0dXJuMCh2b2lkKQ0KPiAgIH0NCj4gICBFWFBPUlRfU1lNQk9MX0dQTChfX3N0 YXRpY19jYWxsX3JldHVybjApOw0KPiAgIA0KPiAtdm9pZCBfX3N0YXRpY19jYWxsX25vcCh2b2lk KQ0KPiAtew0KPiAtfQ0KPiAtRVhQT1JUX1NZTUJPTF9HUEwoX19zdGF0aWNfY2FsbF9ub3ApOw0K PiAtDQo+ICAgI2lmIGRlZmluZWQoQ09ORklHX0hBVkVfU1RBVElDX0NBTEwpICYmICFkZWZpbmVk KENPTkZJR19IQVZFX1NUQVRJQ19DQUxMX0lOTElORSkNCj4gICB2b2lkIF9fc3RhdGljX2NhbGxf dXBkYXRlKHN0cnVjdCBzdGF0aWNfY2FsbF9rZXkgKmtleSwgdm9pZCAqdHJhbXAsIHZvaWQgKmZ1 bmMpDQo+ICAgew0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS9saW51eC9zdGF0aWNfY2Fs bF90eXBlcy5oIGIvdG9vbHMvaW5jbHVkZS9saW51eC9zdGF0aWNfY2FsbF90eXBlcy5oDQo+IGlu ZGV4IDJlMjQ4MWMzZjU0ZS4uNzI3MzJhZjUxY2JhIDEwMDY0NA0KPiAtLS0gYS90b29scy9pbmNs dWRlL2xpbnV4L3N0YXRpY19jYWxsX3R5cGVzLmgNCj4gKysrIGIvdG9vbHMvaW5jbHVkZS9saW51 eC9zdGF0aWNfY2FsbF90eXBlcy5oDQo+IEBAIC0yMiwxMCArMjIsNiBAQA0KPiAgICNkZWZpbmUg U1RBVElDX0NBTExfVFJBTVAobmFtZSkJCV9fUEFTVEUoU1RBVElDX0NBTExfVFJBTVBfUFJFRklY LCBuYW1lKQ0KPiAgICNkZWZpbmUgU1RBVElDX0NBTExfVFJBTVBfU1RSKG5hbWUpCV9fc3RyaW5n aWZ5KFNUQVRJQ19DQUxMX1RSQU1QKG5hbWUpKQ0KPiAgIA0KPiAtI2RlZmluZSBTVEFUSUNfQ0FM TF9OT1BfQ0ZJX1BSRUZJWAlfX1NDTl9fDQo+IC0jZGVmaW5lIFNUQVRJQ19DQUxMX05PUF9DRkko bmFtZSkJX19QQVNURShTVEFUSUNfQ0FMTF9OT1BfQ0ZJX1BSRUZJWCwgbmFtZSkNCj4gLSNkZWZp bmUgU1RBVElDX0NBTExfTk9QX0NGSV9TVFIobmFtZSkJX19zdHJpbmdpZnkoU1RBVElDX0NBTExf Tk9QX0NGSShuYW1lKSkNCj4gLQ0KPiAgICNkZWZpbmUgU1RBVElDX0NBTExfUkVUMF9DRklfUFJF RklYCV9fU0NSX18NCj4gICAjZGVmaW5lIFNUQVRJQ19DQUxMX1JFVDBfQ0ZJKG5hbWUpCV9fUEFT VEUoU1RBVElDX0NBTExfUkVUMF9DRklfUFJFRklYLCBuYW1lKQ0KPiAgICNkZWZpbmUgU1RBVElD X0NBTExfUkVUMF9DRklfU1RSKG5hbWUpCV9fc3RyaW5naWZ5KFNUQVRJQ19DQUxMX1JFVDBfQ0ZJ KG5hbWUpKQ0K