From nobody Mon May 15 17:06:48 2023 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKm4j0VFYz4Bqc4 for ; Mon, 15 May 2023 17:07:01 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2126.outbound.protection.outlook.com [40.107.117.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKm4h1xkgz3l0R; Mon, 15 May 2023 17:07:00 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Authentication-Results: mx1.freebsd.org; none ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hbQ28ZFm3YcAvt7RNs6/Cqe2NA4dRV6o1WIrU+/NDUhM5k/fzFMoDp2LIWNq1R8MQFIKWl9DO70sbDAUOuXtr9MNLmqkVG6F8887+ZQGlIFDcpDRwUvUsI67M3+O3DMlD5C1sp9Pw0SDezSFbBI0AfhiXngrVG1+wBdmPP44j92OpApp3W+4l1oGFg69eQd80YDJjSnBdckn+XRbgy+u+/MtDPUZkjJxAfQKhAPeCoSHWO8tj69S8/br3hpkgnAZePNvEeUkU+p9nVPkRdFlIyPg8mokrz7LFGmZAHYPFpp4wt7AJ3E6mLzBqAup/MZNtMxYNSRN3LuXnqWV1A6Upw== 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=Ni5Fv/8NIAiBU55I3q6kZ3Pqob4ac8D3xFWJwk8HMgs=; b=YqeT3AIdnHXUjQdC2+7pDPRJ8Eh4U35IKfEb6HhLEC5tO5rZsaV43OH1VOf/03sVzWTr9FzBfJeS+ujvbyc6XFWi4+itnx2rDgUOH/c8bzOOtJM+JNjRbqNTihoG2s1siR8tvFXYN2xr6ki/mx10t9UGjM2qD4CKYwjpT6A7rjA2mT5ugX/iC53fIdElkoORfH1FqqLqqZWgHJ9FxrsELq2R/TuLbBR+yRXut44ahVgIRGbZxACFxUy/HY/qsTp6VrLzmr6tpqZlC1QnOXBwGZqIWVokRm4niAC1j5jxINuz1Kli3tfgUuV5tLImBF4yICJnk/RYnZYkKrbT/VTUFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ni5Fv/8NIAiBU55I3q6kZ3Pqob4ac8D3xFWJwk8HMgs=; b=A8aATnI7nBaoMWA5xIUeQEVrKn90rec2emtuAlFbDT+sfUe1x4a20hcpoJHLDQ2BonNT0cLNPs6vjEsTINEKMA5++OeQ2lelH7o0cdWVJI+1YhtDMjfhFaaSh4MX1kF+MItS7+SKt11ttK+UIBA1v87Vx4xAnnrM1GGjKeD/Qyg= Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM (2603:1096:301:75::14) by PSBP153MB0373.APCP153.PROD.OUTLOOK.COM (2603:1096:301:b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.4; Mon, 15 May 2023 17:06:53 +0000 Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::3636:5810:fb12:6d71]) by PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::3636:5810:fb12:6d71%7]) with mapi id 15.20.6433.001; Mon, 15 May 2023 17:06:52 +0000 From: Souradeep Chakrabarti To: Kyle Evans CC: Wei Hu , "freebsd-hackers@FreeBSD.org" Subject: RE: [EXTERNAL] Re: enabling same PPI interrupt to all CPU in ARM64 SMP Thread-Topic: [EXTERNAL] Re: enabling same PPI interrupt to all CPU in ARM64 SMP Thread-Index: AdmBrWHu4SCK2cRnRnyy6MBGajO35QDM7LrAAATdMgAAXrUlgAAe4ZoAAAUxoMAADULwAAAGs2kg Date: Mon, 15 May 2023 17:06:48 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=579a9a93-7e36-413a-9714-245856ac89e3;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2023-05-15T17:05:57Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PSAP153MB0536:EE_|PSBP153MB0373:EE_ x-ms-office365-filtering-correlation-id: 3fa18755-299b-45ce-b1d3-08db5566c560 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fz3Cykqit9P4ZsFbnhMIsLIavY0/jDAQlDTW38yuWNzU+waBVYa80+j3nfdE753eI+AiuMTK+KtCYp859bNQlOAZc5Rnnw+Zrja/Qn35e8PDufsz6KuUc7fp5kXJhAFHvMETQ9V2n6MopsxhP0/3qU1v9x5v5IK3T3QuR6a8DVveN7UmzfJgZVEQYRNl9PVs3YjCx3MufVdbwI5BI4DjiAdEp5vFsd3LWzSPApA7/AY9gHKkpHKdZ2RcrFx1JkPUr+1FlJDgqlHoxAbX0kbslADIGyQLMrMSes5n//OLx7mmeAOPxzv0OAyRPfg9bhGp+3OKnPrzvo852UHsosNaCgl4fCzPHY5s0LlIwTbjis9W043O63LkdUznTouXFEve/gHkc+RbwmfIX1EXExHId8B71+3LIFZ6nOzF3VJEFWQWzGsN9ILTnqBv5XJi5N8wTB0cllaazZywJVfpFvKr6G2kzuAhzb93R0sdnfPi5CODKHB86GAwO1e0kT2oRyL/gYf1Y+a3NdE72hX+SBdC4jxZZbeLAYHshnWbgg3BnqbP0KxwcbKkJGcmZJrej5Z2y81KVkznOTVGoiRXhxt+lM62nYTeG4pGo9xMb+JpSygIdodCTTUxsLpt1eF5eatGMfC0xTqgDrIBDcl1qRHI3HpiUGpb4uaEwtiZUlrW0hMqqI9zQGXZ+6dzea+XaA6b x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PSAP153MB0536.APCP153.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(376002)(136003)(366004)(39860400002)(346002)(451199021)(10290500003)(6666004)(8676002)(71200400001)(478600001)(41300700001)(55016003)(4326008)(450100002)(122000001)(786003)(82950400001)(66946007)(6916009)(66556008)(82960400001)(76116006)(66446008)(316002)(64756008)(66476007)(54906003)(8936002)(38100700002)(186003)(8990500004)(9686003)(38070700005)(6506007)(2906002)(26005)(83380400001)(33656002)(966005)(86362001)(7696005)(5660300002)(52536014)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dVlpQ0EranlOamlaZ2F1QmlDTHBJNGJkNktHL0RIVzhoS1g2cjVmb2ovZng2?= =?utf-8?B?NEN4RDJHWW9OUStGMjFOQlpkWnF3ZUNOcGRZb1BhMDJzVUxIcEtjcDM4TUdo?= =?utf-8?B?Y3pJWGFBSXRYNzd4UGV3eGFQUlFJL0ZYMmlqVFR5SmxRclk0YzlqUWl2QU1z?= =?utf-8?B?SmFNQW9KZ0JrcXp5UitiUHp0amtZTU1aR0I5ckxPWXlvVnVNUDZEcnpueXpX?= =?utf-8?B?MlB3Z0ZEbzVpMFM5a1V5S2Z4bTVGbE1zK0xndEN4U2I1VkRsNnVXeXRBMUhV?= =?utf-8?B?Y1ZXOC8wcUNzNzBCK0M0UFFpUkNaTXlVMWMrR083ZFRId1BqaTV3ekk4WFZp?= =?utf-8?B?WVZXYm1tSFhEUEZ0TXZHMzBKUXhnUGlVNmxJdzZDV0JtQVlUNHN1L2lHTFBl?= =?utf-8?B?SU84dWVCWTZkdThDOFlCQ2lNaGUzRkhsdWhQU2tBWGpTdHpsbTdvVDd3VUFG?= =?utf-8?B?OFJRakdyUnZCTFhEU0JUOFJneStQQWVQVWJvczBRNDBiRWUxZjhSdlV0UkJu?= =?utf-8?B?OXJsTTNMcklEMi9ucW1QUDdsanF5NmU2MjRNdkdqU1ErS3ZQRm9uejRxT2FU?= =?utf-8?B?Wk8rZnBkVVEvM2NoSXN1dVYwZk51dWdpenQxVG9MR1UxQjcxS20ydENOUHBp?= =?utf-8?B?UWhYQlNzNkw5ZGVpcVd6aFJvWEFmelNXVkhETW5TRTMzUDlZc1BRcFNFM3oz?= =?utf-8?B?ZTVZMVlieUEyWHBjVVYyYWZHdlVTLzV6cjBnV2RTaVAvZVhNcDYrczdLS1Rs?= =?utf-8?B?TUh2TE5vZVo1dG1Ob3haVzlCc09yd3BwaXJQYzY2bDVUckR6NERxa0Y2S3dS?= =?utf-8?B?VDk2bXF6dGh6QzZzY2xFcjFMbHpmR25oTXQrMTBjeFhKNjYvaytDWE51Mkcz?= =?utf-8?B?dGRaemdEUFFzcUdyUjdJeWJtTFlTYkp6UlNrUXR5MlhwS3ZNdmNwWEhhVnVz?= =?utf-8?B?bDBpWlhEdnhpUXgraWg4YnUrbEtOODZWbHcyRzRsMHM4KzlHSWVsakF0TEY1?= =?utf-8?B?eTJ4bXo4bnpBazh4WksyblpYY3dQeHhjQVBDcloveDVPL2d0L0IzVG4yTGFC?= =?utf-8?B?VWtXSUIzazFLM1g1Qi95Q3I0aDFidzdzOGVFY0hnNlpQK0dJK0FCVCtvdlh6?= =?utf-8?B?akYySndBeHFmM1p6dmhsQ2RZL0lSMStxUlE3RGdBakdoeXVURXd2bGY1Si9n?= =?utf-8?B?c2JXbGljbmF0RjNrbTUvZzk1bWFONjRQY3B0WjNndUhLSncybTN1WVdDVXVp?= =?utf-8?B?eVVSOGhIK0puZUlQenA0RlNIa1YwWkY4MEFKbG03ZHpSZU5OY3dZdDlGdkRP?= =?utf-8?B?T1I0dFpqcVFYa1hOcjJkYklySHJSNnBlOVl2dXFFVkU2QnFPTEVXY3ZMc3NM?= =?utf-8?B?aTB4b0pGWG1iRUZNVmpwNU4zUWFtODdDQkJIWGhmcVluWm14OUd6S1FqSU5X?= =?utf-8?B?T3hxNjF3SEhjeFdqSW1NbVRqL0tyOWljRlJiZ1RWaWpKN1cxZ0RvZkltOEFw?= =?utf-8?B?di9CYVFBeVIyVVBFMlpnU01QcURiTEtXdkkrR2YyREVXV2F6VGVJaEpWR0o0?= =?utf-8?B?VFN1T3prV1A0TEZEVGg4cWk5S091WFJ1b214SmxQSE40QjdXaW1NV20rNm1l?= =?utf-8?B?SEtKRjBpdVduaTVmeDRlQ2tHRHZRbHFaSUF5MTYzMS91Tk5vUFpvTk94OWo1?= =?utf-8?B?SjRXTXlSaDBkek5GQ3l0UkxENExXekhRbUs1WVRwWmpJaDUxcnA5MUlUVjBt?= =?utf-8?B?MTRUWnJ0NVhRQXU3bHdQWFlleTRxMGdaaE5DWHB5TzUwVWt0VW9VRWVxNDVT?= =?utf-8?B?TEFtUisyZkxtUU5hZHNURkpKb051dDhzZVZUWHVOZ2YyK1FUdkJVRFlXNlh0?= =?utf-8?B?aUtjeUF2SmZ4SnJkNU5wRjcxbC9XQkRXaklFS3hSbDUrM1R3YmxkYkdjYnFr?= =?utf-8?B?ZklSMHlNQVN5RlFDQTYyNWpLQlJQSnVnTFU3RU93VXh4QVdMOURXM2ZCZHps?= =?utf-8?B?NFJDMVhpa1FVN08zWnp2ck9DOU5GUWJXbkhYYmFReUdyV1VsbDNRRnBEZ3BE?= =?utf-8?Q?rNDbjn?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PSAP153MB0536.APCP153.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 3fa18755-299b-45ce-b1d3-08db5566c560 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 17:06:48.9277 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: R3FtjE3YI6tRz5n5uzFZWfEwMmORk7vBw/4OOdfM46R/RhU8UKcl9d4jil8gOTCPFxiaH73bOV1quJRO0u6Uv+2wz1De8Jf9ruLNmWuaGD4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSBP153MB0373 X-Rspamd-Queue-Id: 4QKm4h1xkgz3l0R X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N DQoNCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogS3lsZSBFdmFucyA8a2V2 YW5zQGZyZWVic2Qub3JnPg0KPlNlbnQ6IE1vbmRheSwgTWF5IDE1LCAyMDIzIDc6MjQgUE0NCj5U bzogU291cmFkZWVwIENoYWtyYWJhcnRpIDxzY2hha3JhYmFydGlAbWljcm9zb2Z0LmNvbT4NCj5D YzogV2VpIEh1IDx3ZWhAbWljcm9zb2Z0LmNvbT47IGZyZWVic2QtaGFja2Vyc0BGcmVlQlNELm9y Zw0KPlN1YmplY3Q6IFJlOiBbRVhURVJOQUxdIFJlOiBlbmFibGluZyBzYW1lIFBQSSBpbnRlcnJ1 cHQgdG8gYWxsIENQVSBpbiBBUk02NCBTTVANCj4NCj5PbiBNb24sIE1heSAxNSwgMjAyMyBhdCAy OjQx4oCvQU0gU291cmFkZWVwIENoYWtyYWJhcnRpDQo+PHNjaGFrcmFiYXJ0aUBtaWNyb3NvZnQu Y29tPiB3cm90ZToNCj4+DQo+Pg0KPj4NCj4+DQo+PiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4+ID5Gcm9tOiBLeWxlIEV2YW5zIDxrZXZhbnNAZnJlZWJzZC5vcmc+DQo+PiA+U2VudDog TW9uZGF5LCBNYXkgMTUsIDIwMjMgMTA6MzYgQU0NCj4+ID5UbzogU291cmFkZWVwIENoYWtyYWJh cnRpIDxzY2hha3JhYmFydGlAbWljcm9zb2Z0LmNvbT4NCj4+ID5DYzogV2VpIEh1IDx3ZWhAbWlj cm9zb2Z0LmNvbT47IGZyZWVic2QtaGFja2Vyc0BGcmVlQlNELm9yZw0KPj4gPlN1YmplY3Q6IFJl OiBbRVhURVJOQUxdIFJlOiBlbmFibGluZyBzYW1lIFBQSSBpbnRlcnJ1cHQgdG8gYWxsIENQVSBp bg0KPj4gPkFSTTY0IFNNUA0KPj4gPg0KPj4gPk9uIFN1biwgTWF5IDE0LCAyMDIzIGF0IDk6NTni gK9BTSBTb3VyYWRlZXAgQ2hha3JhYmFydGkNCj4+ID48c2NoYWtyYWJhcnRpQG1pY3Jvc29mdC5j b20+IHdyb3RlOg0KPj4gPj4NCj4+ID4+DQo+PiA+Pg0KPj4gPj4NCj4+ID4+ID4tLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4gPj4gPkZyb206IEt5bGUgRXZhbnMgPGtldmFuc0BmcmVlYnNk Lm9yZz4NCj4+ID4+ID5TZW50OiBGcmlkYXksIE1heSAxMiwgMjAyMyAxMDo0MCBQTQ0KPj4gPj4g PlRvOiBTb3VyYWRlZXAgQ2hha3JhYmFydGkgPHNjaGFrcmFiYXJ0aUBtaWNyb3NvZnQuY29tPg0K Pj4gPj4gPkNjOiBXZWkgSHUgPHdlaEBtaWNyb3NvZnQuY29tPjsgZnJlZWJzZC1oYWNrZXJzQEZy ZWVCU0Qub3JnDQo+PiA+PiA+U3ViamVjdDogW0VYVEVSTkFMXSBSZTogZW5hYmxpbmcgc2FtZSBQ UEkgaW50ZXJydXB0IHRvIGFsbCBDUFUgaW4NCj4+ID4+ID5BUk02NCBTTVANCj4+ID4+ID4NCj4+ ID4+ID5PbiBGcmksIE1heSAxMiwgMjAyMyBhdCA5OjUx4oCvQU0gU291cmFkZWVwIENoYWtyYWJh cnRpDQo+PiA+PiA+PHNjaGFrcmFiYXJ0aUBtaWNyb3NvZnQuY29tPiB3cm90ZToNCj4+ID4+ID4+ DQo+PiA+PiA+Pg0KPj4gPj4gPj4NCj4+ID4+ID4+DQo+PiA+PiA+PiA+LS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+ID4+ID4+ID5Gcm9tOiBTb3VyYWRlZXAgQ2hha3JhYmFydGkNCj4+ID4+ ID4+ID5TZW50OiBNb25kYXksIE1heSA4LCAyMDIzIDY6MzkgUE0NCj4+ID4+ID4+ID5UbzogS3ls ZSBFdmFucyA8a2V2YW5zQGZyZWVic2Qub3JnPg0KPj4gPj4gPj4gPkNjOiBXZWkgSHUgPHdlaEBt aWNyb3NvZnQuY29tPjsgZnJlZWJzZC1oYWNrZXJzQEZyZWVCU0Qub3JnDQo+PiA+PiA+PiA+U3Vi amVjdDogZW5hYmxpbmcgc2FtZSBQUEkgaW50ZXJydXB0IHRvIGFsbCBDUFUgaW4gQVJNNjQgU01Q DQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+SGkgLA0KPj4gPj4gPj4gPg0KPj4gPj4gPj4gPldoaWxl IHVzaW5nIFNNUCBpbiBBUk02NCBIeXBlci1WIHdlIGFyZSBnZXR0aW5nIHN0dWNrIGluIGJvb3QN Cj4+ID4+ID4+ID5pZiB0aGVyZSBpcyBhIGludGVycnVwdCBmb3IgVk1CdXMgY29taW5nIHRvIENQ VTEgYW5kIFZNQnVzDQo+PiA+PiA+PiA+aW50ZXJydXB0IGhhbmRsZXIgaXMgbm90IGdldHRpbmcg dGhhdCBpbnRlcnJ1cHQuDQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+SW4gQVJNNjQgSHlwZXItViB3 ZSBhcmUgdXNpbmcgSVJRMTggZm9yIFZNQnVzIGFuZCBpdCBpcyBhIFBQSSBpbnRlcnJ1cHQuDQo+ PiA+PiA+PiA+DQo+PiA+PiA+PiA+QnV0IEh5cGV2LVYgaG9zdCBzZW5kcyBpbnRlcnJ1cHQgdG8g dGhpcyBJUlEgMTggZm9yIGJvdGggQ1BVMA0KPj4gPj4gPj4gPmFuZA0KPj4gPj4gPj4gPkNQVTEg aW4gMkNQVSBzeXN0ZW0uDQo+PiA+PiA+PiA+VGhpcyBpcyBiYXNlZCBvbiB0aGUgY29ycmVzcG9u ZGluZyBWTUJ1cyBjaGFubmVsIHdoaWNoIGFzc2lnbmVkDQo+PiA+PiA+PiA+d2l0aCB0aGUNCj4+ ID5DUFUuDQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+Tm93IFZNQnVzIElTUiBpcyBnZXR0aW5nIHRo ZSBpbnRlcnJ1cHQgaW4gQ1BVMCBidXQgbm90IGdldHRpbmcgZnJvbQ0KPkNQVTEuDQo+PiA+PiA+ PiA+QW55IGlkZWEsIGhvdyB3ZSBjYW4gdXNlIHRoZSBzYW1lIFBQSSAxOCBmb3IgYWxsIHRoZSBD UFUgY29yZXM/DQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+QW55IGhlbHAgd2lsbCBiZSBhcHByZWNp YXRlZCwgYXMgdGhpcyBpcyBibG9ja2luZyB0aGUNCj4+ID4+ID4+ID5lbmFibGVtZW50IG9mIEZy ZWVCU0QgaW4gQXp1cmUgQVJNNjQuDQo+PiA+PiA+PiBbU291cmFkZWVwXQ0KPj4gPj4gPj4gQ2Fu IHNvbWVvbmUgcGxlYXNlIGhlbHAgbWUgaXQuDQo+PiA+PiA+Pg0KPj4gPj4gPg0KPj4gPj4gPkxv b2tpbmcgYXQgbGVhc3QgYXQgdGhlIEdJQyBpbXBsZW1lbnRhdGlvbiwgaXQgbG9va3MgbGlrZSB0 aGlzIGlzIGEga25vd24NCj5saW1pdGF0aW9uOg0KPj4gPj4gPg0KPj4gPj4gPiA4NzUgICAgICAg ICAvKg0KPj4gPj4gPiA4NzYgICAgICAgICAgKiBYWFggLSBJbiBjYXNlIHRoYXQgcGVyIENQVSBp bnRlcnJ1cHQgaXMgZ29pbmcgdG8gYmUNCj4+ID4+ID5lbmFibGVkIGluIHRpbWUNCj4+ID4+ID4g ODc3ICAgICAgICAgICogICAgICAgd2hlbiBTTVAgaXMgYWxyZWFkeSBzdGFydGVkLCB3ZSBuZWVk IHNvbWUgSVBJDQo+PiA+PiA+Y2FsbCB3aGljaA0KPj4gPj4gPiA4NzggICAgICAgICAgKiAgICAg ICBlbmFibGVzIGl0IG9uIG90aGVycyBDUFVzLiBGdXJ0aGVyLCBpdCdzIG1vcmUNCj4+ID4+ID5j b21wbGljYXRlZCBhcw0KPj4gPj4gPiA4NzkgICAgICAgICAgKiAgICAgICBwaWNfZW5hYmxlX3Nv dXJjZSgpIGFuZCBwaWNfZGlzYWJsZV9zb3VyY2UoKQ0KPj4gPj4gPnNob3VsZCBhY3Qgb24NCj4+ ID4+ID4gODgwICAgICAgICAgICogICAgICAgcGVyIENQVSBiYXNpcyBvbmx5LiBUaHVzLCBpdCBz aG91bGQgYmUgc29sdmVkDQo+PiA+PiA+aGVyZSBzb21laG93Lg0KPj4gPj4gPiA4ODEgICAgICAg ICAgKi8NCj4+ID4+ID4gODgyICAgICAgICAgaWYgKGlzcmMtPmlzcmNfZmxhZ3MgJiBJTlRSX0lT UkNGX1BQSSkNCj4+ID4+ID4gODgzICAgICAgICAgICAgICAgICBDUFVfU0VUKFBDUFVfR0VUKGNw dWlkKSwgJmlzcmMtPmlzcmNfY3B1KTsNCj4+ID4+ID4NCj4+ID4+ID5JIHRoaW5rIHdlIG5lZWQg c29tZXRoaW5nIC9saWtlLyB0aGlzOg0KPj4gPj4gPmh0dHBzOi8vcGVvLw0KPj4gPj4NCj4+DQo+ Pj5wbGUuZnIlMkYmZGF0YT0wNSU3QzAxJTdDc2NoYWtyYWJhcnRpJTQwbWljcm9zb2Z0LmNvbSU3 QzM5ZDdjNTA4NDliDQo+PiA+NjQNCj4+ID4+DQo+Pg0KPj4+ZWFmNzBiNjA4ZGI1NTAyMGZhZSU3 QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzANCj4lDQo+PiA+N0M2Mzgx DQo+PiA+Pg0KPj4NCj4+Pjk3MjM5NjE1NTQ0MTEzJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5 SldJam9pTUM0d0xqQXdNREFpTA0KPkMNCj4+ID5KUUlqb2lWMg0KPj4gPj4NCj4+DQo+Pj5sdU16 SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJTdDJTdDJTdDJnNkYXRhPWRY VnYNCj5uSQ0KPj4gPkhoTjkNCj4+ID4+ID5tZHdpUGtTSkt3TXlFS1lpNVN5R091dGE1ekNaMXlz Q1ElM0QmcmVzZXJ2ZWQ9MA0KPj4gPj4NCj4+DQo+Pj5lZWJzZC5vcmclMkZ+a2V2YW5zJTJGcHBp LmRpZmYmZGF0YT0wNSU3QzAxJTdDc2NoYWtyYWJhcnRpJTQwbWljcm9zbw0KPj4gPj5mDQo+PiA+ PiA+dC5jDQo+Pg0KPj5vbSU3Q2M1YzNkMjU0YjlkODQxZTlhZTliMDhkYjUzMGJiM2QyJTdDNzJm OTg4YmY4NmYxNDFhZjkxYWIyZDcNCj5jDQo+PiA+Pg0KPj4NCj4+PmQwMTFkYjQ3JTdDMSU3QzAl N0M2MzgxOTUwODIwMjc3NDQ3MDYlN0NVbmtub3duJTdDVFdGcGJHWnMNCj5iDQo+PiA+Mw0KPj4g Pj4NCj4+DQo+Pj5kOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2 SWsxaGFXd2lMQ0pYVkNJNk1uMCUzDQo+RA0KPj4gPj4NCj4+DQo+Pj4lN0MzMDAwJTdDJTdDJTdD JnNkYXRhPVN3b1Iydkh4aDZRUWh3cE9nRmNROTM3OG5EVm92aGRFS0VYbw0KPkUNCj4+ID5vDQo+ PiA+PiA+Z1BLc2MlM0QmcmVzZXJ2ZWQ9MCwgdGhvdWdoIGl0IHN0aWxsIGhhcyB0aGUgY2F2ZWF0 IHRoYXQgUFBJcw0KPj4gPj4gPmVmZmVjdGl2ZWx5IGNhbm5vdCBiZSBmdWxseSBzZXR1cCBiZWZv cmUgU0lfU1VCX1NNUC4NCj4+ID4+ID5TbywgaXQncyBsaWtlbHkgYWxtb3N0IGEgTk9QIGZvciBl eGlzdGluZyBwbGF0Zm9ybXMgKHdpbGwgZW1pdCBhDQo+PiA+PiA+d2FybmluZyB3aXRoIGJvb3R2 ZXJib3NlIGZvciBhcm12OCB0aW1lcnMpIGJ1dCBtaWdodCBkbyB0aGUgdHJpY2sgZm9yIHlvdS4N Cj4+ID4+IFtTb3VyYWRlZXBdDQo+PiA+PiBUaGFua3MgZm9yIHRoZSBjaGFuZ2UgYnV0IGl0IGRp ZCBub3Qgc29sdmUgdGhlIHByb2JsZW0uIFN0aWxsIHRoZQ0KPj4gPj4gaW50ZXJydXB0IGhhbmRs ZXIgdm1idXNfaGFuZGxlX2ludHIoc3RydWN0IHRyYXBmcmFtZSAqdHJhcF9mcmFtZSksDQo+PiA+ PiBpcyBub3QNCj4+ID5nZXR0aW5nIGNhbGxlZCBmb3IgdGhlIENQVSAxLg0KPj4gPj4gSXQgaXMg b25seSBnZXR0aW5nIGNhbGxlZCBmb3IgQ1BVIDAgYWxsIHRoZSB0aW1lIGluIEFSTTY0IGJ1dCBp bg0KPj4gPj4geDg2IGl0IGlzIGdldHRpbmcgY2FsbGVkIGZvciBib3RoIENQVTEgYW5kIENQVTAu DQo+PiA+DQo+PiA+SW50ZXJlc3RpbmchIEkgZG8gc2VlIG9uZSBwcm9ibGVtIHdpdGggdGhlIHBh dGNoIChhbmQgc29tZSBjb3NtZXRpYw0KPj4gPmlzc3Vlcyk6IHdlIHJlYWxseSBuZWVkIHRvIHRh a2UgdGhlIGdpY19tdHggaW4gZ2ljX3YzX3NldHVwX3BlcmlwaCgpDQo+PiA+cmlnaHQgdXAgZnJv bnQgYmVjYXVzZSBDUFVfU0VUKCkgd29uJ3QgbmVjZXNzYXJpbHkgYmUgYXRvbWljLiBUaGF0J3MN Cj4+ID5ub3QgdGhlIHByb2JsZW0sIHRob3VnaCBmb3Igb3RoZXIgcmVhc29ucywgYnV0IGFsc28g YmVjYXVzZS4uLg0KPj4gPg0KPj4gPj4gRnJvbSBEREIgSSBoYXZlIGNvbGxlY3RlZCB0aGlzIGRh dGEgaW4gYXJtNjQuIGlycTE4IGlzIGZvciB2bWJ1cy4NCj4+ID4+IGRiPiBzaG93IGlycXMNCj4+ ID4+IC4uLg0KPj4gPj4gaXJxMTggIDxnaWMwLHAyPjogY3B1IDAzIGNudCA0MTENCj4+ID4+IC4u Li4NCj4+ID4+DQo+PiA+DQo+PiA+VGhhdCB3b3VsZCBzZWVtIHRvIGluZGljYXRlIHRoYXQgYm90 aCBDUFVzIGhhdmUgc2V0IGl0IHVwLCBidXQgaXQNCj4+ID5vY2N1cnMgdG8gbWUgdGhhdCBlbmFi bGVfaW50ciBhbHNvIG5lZWRzIHRoZSBzYW1lIHRyZWF0bWVudC4gTGV0J3MNCj4+ID53aXBlIGdp Y192My5jIGJhY2sgdG8gYSBjbGVhbiBzbGF0ZSBhbmQgdHJ5IGEgdjIgb2YgdGhlIHBhdGNoOg0K Pj4gPmh0dHBzOi8vcGVvLw0KPj4NCj4+cGxlLmZyJTJGJmRhdGE9MDUlN0MwMSU3Q3NjaGFrcmFi YXJ0aSU0MG1pY3Jvc29mdC5jb20lN0NiZWI3ODU1OGJlZjANCj40DQo+Pg0KPj5jNzI4MjE2MDhk YjU1NGJlMGY4JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCUNCj43 QzYzODENCj4+DQo+Pjk3NTU2NzQwMjcwOTcxJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJ am9pTUM0d0xqQXdNREFpTEMNCj5KUUlqb2lWMg0KPj4NCj4+bHVNeklpTENKQlRpSTZJazFoYVd3 aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCU3QyU3QyU3QyZzZGF0YT1JWHpNYnYNCj5xTHFZDQo+PiA+ dTZncUxzTjBwTmJHcTNndkRSVW9YOWJZbjlVQjdOWFJVJTNEJnJlc2VydmVkPTANCj4+ID5lZWJz ZC5vcmclMkZ+a2V2YW5zJTJGcHBpLQ0KPj4NCj4+djIuZGlmZiZkYXRhPTA1JTdDMDElN0NzY2hh a3JhYmFydGklNDBtaWNyb3NvZnQuY29tJTdDMzlkN2M1MDg0OWI2NGUNCj5hDQo+Pg0KPj5mNzBi NjA4ZGI1NTAyMGZhZSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAl N0MNCj42DQo+Pg0KPj4zODE5NzIzOTYxNTU0NDExMyU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhl eUpXSWpvaU1DNHdMakF3TUQNCj5BaQ0KPj4NCj4+TENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsx aGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlN0MlN0Mmc2RhDQo+dA0KPj4NCj4+YT1RTERt OFgxeXV1R095Mk9lZVl4c25GJTJGTmV1Y2VBb2d3NTE2MVU3Wkg2JTJCcyUzRCZyZXNlcnZlZD0N Cj4wDQo+PiA+DQo+PiA+Rm9yIG5vdyB3ZSBqdXN0IHByZXRlbmQgdGhhdCB3ZSB3b24ndCBiZSBk aXNhYmxpbmcgYW55IFBQSXMgYXMgYSBwcm9vZi1vZi0NCj5jb25jZXB0Lg0KPj4gPg0KPj4gW1Nv dXJhZGVlcF0NCj4+IFRoaXMgaXMgY2F1c2luZyBwYW5pYyBkdXJpbmcgYm9vdDoNCj4+IHBtdTA6 IE1BRFQ6IGNwdSAwIChtcGlkciAwKSBpcnEgMCBsZXZlbC10cmlnZ2VyZWQNCj4+IHBtdTA6IE1B RFQ6IGNwdSAxIChtcGlkciAxKSBpcnEgMCBsZXZlbC10cmlnZ2VyZWQNCj4+IHBhbmljOiBnaWNf djNfZW5hYmxlX2ludHJfaW1wbDogVW5zdXBwb3J0ZWQgSVJRIDAgY3B1aWQgPSAwIHRpbWUgPSAx DQo+PiBLREI6IHN0YWNrIGJhY2t0cmFjZToNCj4+IGRiX3RyYWNlX3NlbGYoKSBhdCBkYl90cmFj ZV9zZWxmDQo+PiBkYl90cmFjZV9zZWxmX3dyYXBwZXIoKSBhdCBkYl90cmFjZV9zZWxmX3dyYXBw ZXIrMHgzMA0KPj4gdnBhbmljKCkgYXQgdnBhbmljKzB4MTNjDQo+PiBwYW5pYygpIGF0IHBhbmlj KzB4NDQNCj4+IGdpY192M19lbmFibGVfaW50cl9pbXBsKCkgYXQgZ2ljX3YzX2VuYWJsZV9pbnRy X2ltcGwrMHhlYw0KPj4gaW50cl9zZXR1cF9pcnEoKSBhdCBpbnRyX3NldHVwX2lycSsweDM2OA0K Pj4gYnVzX3NldHVwX2ludHIoKSBhdCBidXNfc2V0dXBfaW50cisweDk0DQo+PiBwbXVfYXR0YWNo KCkgYXQgcG11X2F0dGFjaCsweDY0DQo+PiBwbXVfYWNwaV9hdHRhY2goKSBhdCBwbXVfYWNwaV9h dHRhY2grMHg5NA0KPj4gZGV2aWNlX2F0dGFjaCgpIGF0IGRldmljZV9hdHRhY2grMHgzZjgNCj4+ IGRldmljZV9wcm9iZV9hbmRfYXR0YWNoKCkgYXQgZGV2aWNlX3Byb2JlX2FuZF9hdHRhY2grMHg3 Yw0KPj4gYnVzX2dlbmVyaWNfbmV3X3Bhc3MoKSBhdCBidXNfZ2VuZXJpY19uZXdfcGFzcysweGZj DQo+PiBidXNfZ2VuZXJpY19uZXdfcGFzcygpIGF0IGJ1c19nZW5lcmljX25ld19wYXNzKzB4YWMN Cj4+IGJ1c19nZW5lcmljX25ld19wYXNzKCkgYXQgYnVzX2dlbmVyaWNfbmV3X3Bhc3MrMHhhYw0K Pj4gYnVzX3NldF9wYXNzKCkgYXQgYnVzX3NldF9wYXNzKzB4NGMNCj4+IG1pX3N0YXJ0dXAoKSBh dCBtaV9zdGFydHVwKzB4MWZjDQo+PiB2aXJ0ZG9uZSgpIGF0IHZpcnRkb25lKzB4NzANCj4+IEtE QjogZW50ZXI6IHBhbmljDQo+PiBbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0NCj4+IFN0b3Bw ZWQgYXQgICAgICBrZGJfZW50ZXIrMHg0NDogc3RyICAgICB4enIsIFt4MTksICMzMzI4XQ0KPj4g RGV0YWlscyBvZiB0aGUgbG9nIEkgaGF2ZSBwYXN0ZWQgaGVyZToNCj4+IGh0dHBzOi8vcGFzdC8N Cj4+DQo+ZWJpbi5jb20lMkZlUU41Um50RCZkYXRhPTA1JTdDMDElN0NzY2hha3JhYmFydGklNDBt aWNyb3NvZnQuY29tJTdDYg0KPmViNw0KPj4NCj44NTU4YmVmMDRjNzI4MjE2MDhkYjU1NGJlMGY4 JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclNw0KPkMxJTdDDQo+Pg0KPjAlN0M2 MzgxOTc1NTY3NDAyNzA5NzElN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpB DQo+d01EQWlMQ0oNCj4+DQo+UUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1u MCUzRCU3QzMwMDAlN0MlN0MlN0Mmc2RhdGE9DQo+S1lmdw0KPj4gZDhub2t3cWZWenZTTWZlbGd2 MVRyZ01QWXR6QXRHOU4lMkZQQ1JVTVElM0QmcmVzZXJ2ZWQ9MA0KPg0KPkkgdGhpbmsgeW91IGZl dGNoZWQgYSBicm9rZW4gdmVyc2lvbiBvZiB0aGUgcGF0Y2ggLS0gdGhlcmUgd2FzIG1heWJlIGFu IGhvdXIgd2hlcmUNCj5JIGtlcHQgcmVwbGFjaW5nIGl0IGJlY2F1c2UgSSBmb3VuZCBhIHByb2Js ZW0gYW5kIGZpeGVkIGl0LCBidXQgY3JlYXRlZCBhbm90aGVyIG9uZSB0bw0KPmZpeCB0aGF0IEkg ZGlzY292ZXJlZCBvbiBzb21lIGhhcmR3YXJlIEkgdGVzdGVkIG9uLiBJJ3ZlIHJlLXVwbG9hZGVk IHRoZSBjb3JyZWN0IGRpZmYNCj5hdA0KPmh0dHBzOi8vcGVvcGxlLmZyLw0KPmVlYnNkLm9yZyUy Rn5rZXZhbnMlMkZwcGktDQo+djMuZGlmZiZkYXRhPTA1JTdDMDElN0NzY2hha3JhYmFydGklNDBt aWNyb3NvZnQuY29tJTdDYmViNzg1NThiZWYwNGM3DQo+MjgyMTYwOGRiNTU0YmUwZjglN0M3MmY5 ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDDQo+NjM4MTk3NTU2NzQwMjcw OTcxJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNRA0KPkFpTENKUUlq b2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlN0MlN0Mm c2QNCj5hdGE9TEglMkZWN3RYRXhHc01EUlZMbFpBRXE3MlhHUUY2dlI2WiUyQm4wVGRvVTR1ZWcl M0QmcmVzZXJ2ZWQ9MA0KPiwgd2hpY2ggY2FuJ3QgaGl0IHRoZSBwYW5pYyBiZWNhdXNlIGlycSA8 PSBHSUNfTEFTVF9QUEkgYWxsIHJldHVybiBlYXJseSAodGhlIHZlcnNpb24NCj55b3UgaGF2ZSwg dGhlIGZpcnN0IGJyYW5jaCBpbiBnaWNfdjNfZW5hYmxlX2ludHJfaW1wbCB3YXMgcHJvYmFibHkg YW4gaW5jb3JyZWN0IGBpZg0KPihpc3JjLT5pc3JjX2ZsYWdzICYgSU5UUl9JU1JDRl9QUEkpYA0K Pg0KW1NvdXJhZGVlcF0gSXQgaGFzIHdvcmtlZCEgVGhhbmtzIGEgbG90LiBXZSBzaG91bGQgZ2V0 IGl0IGNvbW1pdHRlZCBpbiBzcmMuDQpCZWZvcmUgSSBjb21taXQgdGhlIFNNUCByZWxhdGVkIGNo YW5nZXMgZm9yIEh5cGVyLVYgZHJpdmVyLg0KPlRoYW5rcywNCj4NCj5LeWxlIEV2YW5zDQo=