Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp4078963pxb; Sun, 24 Oct 2021 19:21:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3k/prHf0wLRVg/mLVqypRz/XBytNafC4brppTIPVgqAwlLLWBy/1Q+pUiKZ6haEtqbOK9 X-Received: by 2002:a17:902:7043:b0:13e:1007:3d6d with SMTP id h3-20020a170902704300b0013e10073d6dmr13592133plt.79.1635128466732; Sun, 24 Oct 2021 19:21:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1635128466; cv=pass; d=google.com; s=arc-20160816; b=clyzV4WXZeuwsuyE42gQJ1EFJUcEfttzPcMUr0HaNxM3A/dNfUHxhYhTEEdPUMeLb8 hAz9ZDH3ZToDbPgXPyNAWKM+79PyfeJiwvsFPTdVbCPvSln9AzWfDiJtJwhmptZvS4jN AAZA+dgPWAszaIdshbkoalwOhnaLryqLpVJQi2weEztsW8B07QXbnE9mrGkLc5AofkRr cEve1mvi0Hy6F0VitqDqXpCJPVRpVd4sT3zWBlOUQaMl6Vw/q2f9A6Wr7T47QO3pqWHv U46pUOpvuEr2Kex1MalobHL/gjKiVh+5lfBh84bxgbi0/B5YaIjcsB4pkNJfkdRA0ivf VTeg== 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=MeuYFGk8Z0fqsvZ8Sktwjmh/Ac/DM7FyKrJ5wdquOu0=; b=oYXsUqRYVTHGTtKR+XNn17961+6llNiJyC9SmAjJa9C5eWso+0KbFehCz4lxJgi6Pe M81xrNZwONQ5L+v1U690OKRk0mH0fZl+4EdCdlt+VLvSPB5cEfPaJPi5W2pOL48ychS0 cWMfFtvI7GBzBvV+xRNDkKkko3Ps72M8SEQJSE87/u5y2LOyi72kywePmWF0xuPiApSF nETx2ElbGDo69w63ASqISqvKnbM3tAF6jlkHl9yo201x+x0yDkyFder+IGz6qRo9MTit 0oPIohvP684u1TCohNEXRwMjBUlvPBcjQ+GJuu38eSdIWaD+X6wNrfrdPglpdOXrJwAp 8sTA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=n6Ziv54W; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a4si17919173pff.85.2021.10.24.19.20.33; Sun, 24 Oct 2021 19:21:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=n6Ziv54W; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231938AbhJYCPT (ORCPT + 99 others); Sun, 24 Oct 2021 22:15:19 -0400 Received: from mail-eopbgr80083.outbound.protection.outlook.com ([40.107.8.83]:8895 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231516AbhJYCPS (ORCPT ); Sun, 24 Oct 2021 22:15:18 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a+SOstqLYjmCUj7js1lzVk39nVHivXh5v5Kg8CLqj/2++Qmix73+8kS9kWzhhKaH8rNG96XtkO5GPMJoJVmUdgfsyrFtRs8utufUZUDIK/uQEoIem+T103BkGBu82qgbGb0CwWQuKEWC04Y060FJBGMiiJXcbySni/Lk+7P8WKsTFq74j8748cwrjGMwwY+Kn19KBwsGK6B6hvu85mWTaQ1Ghkl2sUt3SIDoNWyk8dwUW5B8faNdxdoO5XljTKPoT9pvX9R9RUacJ5wiqVf6T/cPUHhy8LdMHo2N04wfSFPQbPQhXFsPR8U3kZbi1Ckbn/m4qXl8myaTvpmtnwVIzQ== 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=MeuYFGk8Z0fqsvZ8Sktwjmh/Ac/DM7FyKrJ5wdquOu0=; b=Gdm3+tyD9gcaeUDNYVMfS4oyFUpI68egB5i590CahagKKVq88Lgv/8eOlbwbjUGzyGnfTuaamdn/AIxBXOCxUiEgAPH06fJk2X7C9ocwwXeF+68ksi7/6cH11rgYZ5PJFE9ZTNsOic9rLn6u3jpUFvVjkB+GHIlQTmSctdpEX5S4NbahkdSFChFCkzM2XiyAjL1Ea/ndkrWXqwVD229CMzE9RQdURsQEY5gB/C+TpG2Ne+2KEJoFvFEnzyUQZA67h/R2BJ5uEY4bwQ8lQfq3Y9Ieyc6CNzba09VDzWV9cxTpqkB7rZ3nCgNPasIY5W7XD6UcFG7G7SzK2pDcKWsgzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MeuYFGk8Z0fqsvZ8Sktwjmh/Ac/DM7FyKrJ5wdquOu0=; b=n6Ziv54WlVuX2/ZF28Rfo5H3FnIgqnzmSj7FtwBxPrlsINI8OjAeyuXaOQA5NFYeQWW2r/EuvvPl4vL8EamRuN+ogu0fFDNAyxWeM+PLv9ceRB6EZ2i1rdKydzC6UGUCH1HekolotK43L55lQJN9TeO+9b/w1WFvfOS/L+6Y6qg= Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AS8PR04MB8994.eurprd04.prod.outlook.com (2603:10a6:20b:42d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Mon, 25 Oct 2021 02:12:54 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::b059:46c6:685b:e0fc]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::b059:46c6:685b:e0fc%4]) with mapi id 15.20.4628.020; Mon, 25 Oct 2021 02:12:54 +0000 From: Richard Zhu To: "tharvey@gateworks.com" CC: Lucas Stach , Kishon Vijay Abraham I , "vkoul@kernel.org" , Rob Herring , "galak@kernel.crashing.org" , Shawn Guo , "linux-phy@lists.infradead.org" , Device Tree Mailing List , Linux ARM Mailing List , open list , Sascha Hauer , dl-linux-imx Subject: RE: [PATCH v3 0/9] add the imx8m pcie phy driver and imx8mm pcie support Thread-Topic: [PATCH v3 0/9] add the imx8m pcie phy driver and imx8mm pcie support Thread-Index: AQHXwf8T9WRZIWT4CUunBVSnJ63L4qvZhp6ggAD4IYCAAKk/cIABRTmAgABCoVCAAPyvgIAAhMLwgAEGQACAAA+SAIADuD4Q Date: Mon, 25 Oct 2021 02:12:54 +0000 Message-ID: References: <1634028078-2387-1-git-send-email-hongxing.zhu@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4ab4055c-f78f-4e9d-bc3a-08d9975cf471 x-ms-traffictypediagnostic: AS8PR04MB8994: x-ld-processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FHOXmFWjtLNx4UDxQw0xcz/M3TnUbt6KNEK+wIqqxiQs8wDMsbUgKg4OI4ebsDI8QxTCGhz8xEmxMbL5pabb6uomUTFcj6N3OeOQXv6wF9dqU6dxkhpjEZqKM7YANvVuG6Witt+wbvSTAZWJVljcgEka/EFkEekACblgMlU6UhJs7/7hP1buZtkz+oHgNnKUc9udtjrPwPOXeo9TkOCUS4j8+AT+fV/8NUD3jc997W1sa0fB6acAzlTkZCbTdzU1iVI9h4AS+akFjOk8veuyGWC+IqK+nfDBYb9j6Tt+R7MiLCy7hPngNW8iNCjfZguGoQn3n0HioHZqq5xjJLwwkHXYWnxUuG/9OT38CORjMVDoTwxlLmdLMu7aFJzc6RTlsoW9MJWsoShHoY5iaW9dAtzhs7dlL8ENrPbmRq7W0138ZnTFnbpTZfWrLshfoyuZiCE7Fb5fHmFa+eT0z/9dBLwaSpPnaCEJQKnMrsw21T8nfZxJP2yQXBl/Rw579+H9wBhsa+s36TRttqrerQh3aksYxSZObSSNlpgu2HedbupLWcO4ruXujpnIiD8TBFYmNY9iXnG0O1MRKxW0TuYeXl+Ma547wv5bJSQNU0lvV5v2FlZgTjWRk80FjUGUJjsUQOuE71dcL3or4Fc1BnLkTpXeJTQsVOwyBfy5T/0gXl696Mx0baLpvpl33zUsIDq/vvAMJ41G67DjFwDbMKFSkI9vQgOyKeTg6KgSAKyET98= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(7696005)(76116006)(186003)(86362001)(83380400001)(26005)(54906003)(64756008)(38070700005)(66556008)(122000001)(5660300002)(2906002)(6506007)(4326008)(66946007)(38100700002)(7416002)(66476007)(66446008)(508600001)(33656002)(55016002)(30864003)(6916009)(316002)(8676002)(53546011)(9686003)(52536014)(8936002)(71200400001)(32563001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QlY5SHczcnVqN003SUZYS1dEK1dNdHovTlVPVHlsa2l2Rjh1NU1nUi9Rc3py?= =?utf-8?B?dHE5Ym9BTWZQRkxvcVhvSFAwQjBnVll3QXJwa3l1Qkw3aHpWdSthb3BGK044?= =?utf-8?B?U2k0OGFOM244Qy9OOWkzUWF3N1ZsUFlLNDZpd1NaRk12b0pOcnArR1UwSm9p?= =?utf-8?B?SnIxQ2kvbG9RTHlSZ2xiM2FsTlhnNTdZcHVGTkMyQWZUM1JqZkNzZmp5em9u?= =?utf-8?B?TWhYTFlKVTduWm1QaDJTaTFwUEROY0c0SERLeDg5eEdkdnpxUFBtSmJGa3Jp?= =?utf-8?B?dGhJRXFFSGZObDA1ZUlDT1MyT0g2MWFXZVdvR1NjYnlzVHhhNjRUVmZ5SUoy?= =?utf-8?B?ZzVLYkN6L1FZRnZOcE5UNStmcWZFbkE2NWdoYVdwL2dTTDJwcTVWanh2b0Fn?= =?utf-8?B?Tm5qNzFEYzh1UEFYbnQzQjVHUFF4YlZRL1NUcDc3Qk9sTHU0SThlRWRiNlAv?= =?utf-8?B?bU8yZHFtbzVvaStiVG9RWTVVME53V1IxYVZGZTZwczdqbDdZb3lyV1RJc04x?= =?utf-8?B?RVR4d0UwYmlwQ1hSemFuZGhqcE1pUWlTZ1JQS3FQVEhSajM5VkdVNGgvNGZw?= =?utf-8?B?UGtDUGdseXVkTDRadi9SaUpnZmhKZE5WeTRnZm9SbGd5eGd5QmdIc2xzV2tL?= =?utf-8?B?aGIzTXlEc3ZPNWppMWtrb2J1cDVvNTh6amt4V2NzbnY3RVJMYjlPWkYxUGlG?= =?utf-8?B?MGd6REJEV1QzNkh6Z0xncmFMWGxJTVFqOTAvNCtCc2pnSk1vSVR3akludzR3?= =?utf-8?B?UGFvbG9ISXV3V1NXL2NzWVVKcmNOMlFLa2VsamN6Nnoxa25pZytYSlFTYTlT?= =?utf-8?B?M2lsMU9GeVRCb1V0eVdrbHRLNXpXeHRrY0dCdEppY3hVYmhGZkNrSFhkK0pV?= =?utf-8?B?UWd1SFhFL1lnbFJ5eTVNT0M4UTd4MWI3N0xkQ28vMUhra2VlbEJSeXNFSEEr?= =?utf-8?B?ODZKdzcxbFo0ZnpYUW1jVHVnMG5rZDdnSDFwZys1MENMVWFORWg5VTZYOXdQ?= =?utf-8?B?WVl5SjFmSEo4OHBiNmVmNXZPYzdXcU15SU85cEdjMnA2U3krdGo5bXhHWWE2?= =?utf-8?B?dHNxRGNZUGVlbWlIQTllQXRRQWYxS1hXV3NxODM2Rkd2VDlaZjRHU05RNmFS?= =?utf-8?B?ZnJNdVMvVEx2NW5TL09odHg2dFl6VE5icTI3dDVxbUU3MnZrNHFGdlQyQTFQ?= =?utf-8?B?SkZBc0haSTFhMGtRYlFJbCtRSEhkaXRpUU1UR2Q1RVdZeW9BL2MrZWF6bHIv?= =?utf-8?B?YTd6SzJ3U1BrNVh2b0ovSktHV2ZFeGJ4T2tyUG95TEpKNE13dHhqS1NHdXl5?= =?utf-8?B?RmpNNThDWm9QVXBIVlYybGtpSENjOHcyZEpzZTVDNU9rUC9kdjNuTU55RSts?= =?utf-8?B?dzM5K3I1LzUxeWxXV2RDTjd6dmhFQXM4WitoQkZwUHNTVFlVQmkrUTJpTDhx?= =?utf-8?B?elNLY3NKV3RvcGhjT2lmMXZVdHYyU3JmRjRBZ0Y3UmpRR21RZ0pkZ25UUkNq?= =?utf-8?B?VGVUNnU5SzRxMTVMZm5OWWU3Z0QvZmNOejN1WDh3dlNWc0Q2UTFOQmZObStW?= =?utf-8?B?bHp2RGdnOXM2RFlYejQ0Tytra051dGhkd09hQXZOU093TVFJOFFiUzBTcm45?= =?utf-8?B?TGI3U2R0S1IvUFhBanNDejVqMXc2NTZoNTFwbkZqbmRuYkNqUDdmbmJhWWFT?= =?utf-8?B?MkkyUklOZTdiUzlKS1BnanIwNWRJeDUyY2ROcXg0SzZCQmIxUms0QzFVWFli?= =?utf-8?B?UlkwN2JhRlE1cFZQSUhHWEUrV1ZaK0g1bm5oTEM1TG1CMG8zYWVQYkR6ODlm?= =?utf-8?B?UkdlK09KWURWaGpoSzlhQjRCWXkrUHE4aGhheWUzQ2RUbzQ4STFMU094YlZM?= =?utf-8?B?elk5RjVoMk9USTZVSnlzQU9FOFRIRWdMeHkzaisvU2kzMGNpZXJkS0x0d25o?= =?utf-8?B?SjRiRlQzZGRocldQY3hWSlBwZU5aZG5kT2hyZ1RPekpGZytHdW1QcEVlWXhn?= =?utf-8?B?Qy9JaDBncllJTUxUazNjL0lUL1pZM2N1WWtMc21Selk3UG15NWxkTzNZcHBJ?= =?utf-8?B?MUlFRE1Jd0hsTCtWalBTVFgzY0k1bTN5TFRwRzVpcnprNGpVMFFBZ2VwZktN?= =?utf-8?B?OUdvNEU5S1JZVXkxY2JGNnc2S0srRWxuUE1JanBqUDMxV1NYR25pVUJGNXQr?= =?utf-8?B?NUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ab4055c-f78f-4e9d-bc3a-08d9975cf471 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2021 02:12:54.2311 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ONHCKATasdF1ZyAcvcbWDEhkDPfGgxYb88qj98uPQQUsROiyc3l4DYpav4IzfX2uLuVLYsC7XNn3jtVu05i6bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8994 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRpbSBIYXJ2ZXkgPHRoYXJ2 ZXlAZ2F0ZXdvcmtzLmNvbT4NCj4gU2VudDogU2F0dXJkYXksIE9jdG9iZXIgMjMsIDIwMjEgMTI6 NTUgQU0NCj4gVG86IFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4NCj4gQ2M6IEx1 Y2FzIFN0YWNoIDxsLnN0YWNoQHBlbmd1dHJvbml4LmRlPjsgS2lzaG9uIFZpamF5IEFicmFoYW0g SQ0KPiA8a2lzaG9uQHRpLmNvbT47IHZrb3VsQGtlcm5lbC5vcmc7IFJvYiBIZXJyaW5nIDxyb2Jo QGtlcm5lbC5vcmc+Ow0KPiBnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnOyBTaGF3biBHdW8gPHNo YXduZ3VvQGtlcm5lbC5vcmc+Ow0KPiBsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZzsgRGV2 aWNlIFRyZWUgTWFpbGluZyBMaXN0DQo+IDxkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZz47IExp bnV4IEFSTSBNYWlsaW5nIExpc3QNCj4gPGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZz47IG9wZW4gbGlzdA0KPiA8bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZz47IFNhc2No YSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPjsNCj4gZGwtbGludXgtaW14IDxsaW51eC1p bXhAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAwLzldIGFkZCB0aGUgaW14OG0g cGNpZSBwaHkgZHJpdmVyIGFuZCBpbXg4bW0gcGNpZQ0KPiBzdXBwb3J0DQo+IA0KPiBPbiBGcmks IE9jdCAyMiwgMjAyMSBhdCA4OjU5IEFNIFRpbSBIYXJ2ZXkgPHRoYXJ2ZXlAZ2F0ZXdvcmtzLmNv bT4NCj4gd3JvdGU6DQo+ID4NCj4gPiBPbiBUaHUsIE9jdCAyMSwgMjAyMSBhdCA1OjQzIFBNIFJp Y2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4NCj4gd3JvdGU6DQo+ID4gPg0KPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBUaW0gSGFydmV5IDx0 aGFydmV5QGdhdGV3b3Jrcy5jb20+DQo+ID4gPiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAyMiwg MjAyMSAxMjoyNSBBTQ0KPiA+ID4gPiBUbzogUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAu Y29tPg0KPiA+ID4gPiBDYzogTHVjYXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+OyBL aXNob24gVmlqYXkgQWJyYWhhbSBJDQo+ID4gPiA+IDxraXNob25AdGkuY29tPjsgdmtvdWxAa2Vy bmVsLm9yZzsgUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz47DQo+ID4gPiA+IGdhbGFrQGtl cm5lbC5jcmFzaGluZy5vcmc7IFNoYXduIEd1byA8c2hhd25ndW9Aa2VybmVsLm9yZz47DQo+ID4g PiA+IGxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnOyBEZXZpY2UgVHJlZSBNYWlsaW5nIExp c3QNCj4gPiA+ID4gPGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnPjsgTGludXggQVJNIE1haWxp bmcgTGlzdA0KPiA+ID4gPiA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPjsg b3BlbiBsaXN0DQo+ID4gPiA+IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgU2FzY2hh IEhhdWVyDQo+ID4gPiA+IDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+OyBkbC1saW51eC1pbXggPGxp bnV4LWlteEBueHAuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDAvOV0gYWRk IHRoZSBpbXg4bSBwY2llIHBoeSBkcml2ZXIgYW5kDQo+ID4gPiA+IGlteDhtbSBwY2llIHN1cHBv cnQNCj4gPiA+ID4NCj4gPiA+ID4gT24gV2VkLCBPY3QgMjAsIDIwMjEgYXQgODozMiBQTSBSaWNo YXJkIFpodSA8aG9uZ3hpbmcuemh1QG54cC5jb20+DQo+ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPHNuaXBwZWQuLi4+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUmljaGFy ZCwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBXaGF0IGlzIHRoaXMgJ2ludmFsaWQgcmVzb3Vy Y2UnIGFib3V0PyBJIHNlZSB0aGF0IHdpdGggbXkNCj4gPiA+ID4gPiA+IGRvd25zdHJlYW0gSU1Y OE1NIFBDSWUgZHJpdmVyIGFzIHdlbGwgYW5kIGhhdmUgYmVlbiBhc2tlZA0KPiBhYm91dCBpdC4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gW1JpY2hhcmQgWmh1XSBIaSBUaW06DQo+ID4gPiA+ID4g VGhpcyBjb21wbGFpbiBpcyBjYXVzZWQgYnkgdGhlIGZvbGxvd2luZyBjb2RlcyBpbiBwY2llLWRl c2lnbndhcmUuYw0KPiBkcml2ZXIuDQo+ID4gPiA+ID4gSSdtIG5vdCBzdXJlIHRoYXQgd2h5IHRo ZXJlIGlzIG9ubHkgc2l6ZSBhc3NpZ25tZW50IGFmdGVyIHRoZQ0KPiA+ID4gPiA+IHJlcyB2YWxp ZCBjaGVjaywNCj4gPiA+ID4gYW5kIGRvIG5vdGhpbmcgaWYgdGhlIHJlcyBpcyBpbnZhbGlkLg0K PiA+ID4gPiA+IEl0IHNlZW1zIHRoYXQgaXQgaXMgYW4gZXhwZWN0ZWQgZGVzaWduIGxvZ2ljIHJl ZmVyIHRvIHRoZSBsYXRlciBjb2Rlcy4NCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKCFw Y2ktPmF0dV9iYXNlKSB7DQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHJlc291cmNlICpyZXMgPQ0KPiA+ID4gPiA+DQo+ID4gPiA+IHBsYXRmb3JtX2dldF9yZXNvdXJj ZV9ieW5hbWUocGRldiwgSU9SRVNPVVJDRV9NRU0sICJhdHUiKTsNCj4gPiA+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAocmVzKQ0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGNpLT5hdHVfc2l6ZSA9DQo+IHJlc291cmNlX3NpemUocmVzKTsNCj4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwY2ktPmF0dV9iYXNlID0NCj4gPiA+ID4gZGV2 bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoSVNfRVJSKHBjaS0+YXR1X2Jhc2UpKQ0KPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGNpLT5hdHVfYmFzZSA9DQo+IHBjaS0+ZGJpX2Jhc2UgKw0K PiA+ID4gPiBERUZBVUxUX0RCSV9BVFVfT0ZGU0VUOw0KPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaW5jZSB0aGUgZGVmYXVsdCBvZmZzZXQgaXMgdXNl ZCBvbiBpLk1YOE1NLCB0aGUgImF0dSIgaXMgbm90DQo+ID4gPiA+ID4gc3BlY2lmaWVkIGluDQo+ ID4gPiA+IGkuTVg4TU0gUENJZSBEVCBub2RlLCBzbyB0aGVyZSBpcyBubyByZWFsIHJlcyBhdCBh bGwuDQo+ID4gPiA+ID4gVGhlbiwgZGV2bV9pb3JlbWFwX3Jlc291cmNlKCkgd291bGQgY29tcGxh aW4gdGhlIGludmFsaWQgcmVzb3VyY2UuDQo+ID4gPiA+DQo+ID4gPiA+IEkgdGhpbmsgeW91IGFy ZSBzYXlpbmcgYSBjaGFuZ2Ugc2hvdWxkIGJlIG1hZGUgbGlrZSB0aGlzOg0KPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMNCj4g PiA+ID4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuYw0KPiA+ ID4gPiBpbmRleCBhOTQ1ZjBjMGU3M2QuLjMyNTRmNjBkMTcxMyAxMDA2NDQNCj4gPiA+ID4gLS0t IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMNCj4gPiA+ID4g KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmMNCj4gPiA+ ID4gQEAgLTY3MSwxMCArNjcxLDExIEBAIHZvaWQgZHdfcGNpZV9pYXR1X2RldGVjdChzdHJ1Y3Qg ZHdfcGNpZQ0KPiAqcGNpKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKCFwY2ktPmF0dV9i YXNlKSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXNvdXJjZSAq cmVzID0NCj4gPiA+ID4NCj4gPiA+ID4gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2 LA0KPiA+ID4gPiBJT1JFU09VUkNFX01FTSwgImF0dSIpOw0KPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICBpZiAocmVzKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAo cmVzKSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpLT5hdHVf c2l6ZSA9DQo+IHJlc291cmNlX3NpemUocmVzKTsNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgcGNpLT5hdHVfYmFzZSA9DQo+IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsDQo+ID4g PiA+IHJlcyk7DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChJU19FUlIocGNp LT5hdHVfYmFzZSkpDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNp LT5hdHVfYmFzZSA9DQo+ID4gPiA+IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7DQo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCFwY2ktPmF0dV9iYXNlIHx8DQo+ID4gPiA+ICsgSVNfRVJSKHBjaS0+YXR1 X2Jhc2UpKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaS0+YXR1 X2Jhc2UgPSBwY2ktPmRiaV9iYXNlDQo+ICsNCj4gPiA+ID4gREVGQVVMVF9EQklfQVRVX09GRlNF VDsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gc28gdGhhdCBp dCBsb29rcyBsaWtlIHRoaXM6DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBpZiAoIXBjaS0+YXR1 X2Jhc2UpIHsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc291cmNl ICpyZXMgPQ0KPiA+ID4gPg0KPiA+ID4gPiBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBk ZXYsDQo+ID4gPiA+IElPUkVTT1VSQ0VfTUVNLCAiYXR1Iik7DQo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChyZXMpIHsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwY2ktPmF0dV9zaXplID0NCj4gcmVzb3VyY2Vfc2l6ZShyZXMpOw0KPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaS0+YXR1X2Jhc2UgPQ0KPiA+ID4gPiBk ZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICB9DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGNpLT5hdHVf YmFzZSB8fA0KPiBJU19FUlIocGNpLT5hdHVfYmFzZSkpDQo+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGNpLT5hdHVfYmFzZSA9IHBjaS0+ZGJpX2Jhc2UNCj4gKw0KPiA+ ID4gPiBERUZBVUxUX0RCSV9BVFVfT0ZGU0VUOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgfQ0K PiA+ID4gPg0KPiA+ID4gPiBSaWdodD8NCj4gPiA+IFtSaWNoYXJkIFpodV0gWWVzLCBpdCBpcy4g VGhlIHJlcyBzaG91bGRuJ3QgYmUgcmVtYXBwZWQgaWYgaXQgaXMgaW52YWxpZA0KPiByZXNvdXJj ZSBtZW1vcnkuDQo+ID4NCj4gPiBPaywgSSB3aWxsIHN1Ym1pdCBhIHBhdGNoIGZvciB0aGF0Lg0K PiA+DQpbUmljaGFyZCBaaHVdIFRoYW5rcyBmb3IgeW91ciBoZWxwLiBQbGVhc2UgY2MgbWUsIGlm IHlvdSBpc3N1ZSB0aGF0IHBhdGNoLg0KDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IFsgICAgMS4zMTYzMDVdIGlteDZxLXBjaWUgMzM4MDAwMDAucGNpZTogaUFUVSB1 bnJvbGw6IGVuYWJsZWQNCj4gPiA+ID4gPiA+ID4gWyAgICAxLjMyMTc5OV0gaW14NnEtcGNpZSAz MzgwMDAwMC5wY2llOiBEZXRlY3RlZCBpQVRVIHJlZ2lvbnM6DQo+IDQNCj4gPiA+ID4gPiA+IG91 dGJvdW5kLCA0IGluYm91bmQNCj4gPiA+ID4gPiA+ID4gWyAgICAxLjQyOTgwM10gaW14NnEtcGNp ZSAzMzgwMDAwMC5wY2llOiBMaW5rIHVwDQo+ID4gPiA+ID4gPiA+IFsgICAgMS41MzQ0OTddIGlt eDZxLXBjaWUgMzM4MDAwMDAucGNpZTogTGluayB1cA0KPiA+ID4gPiA+ID4gPiBbICAgIDEuNTM4 ODcwXSBpbXg2cS1wY2llIDMzODAwMDAwLnBjaWU6IExpbmsgdXAsIEdlbjINCj4gPiA+ID4gPiA+ ID4gWyAgICAxLjU1MDM2NF0gaW14NnEtcGNpZSAzMzgwMDAwMC5wY2llOiBMaW5rIHVwDQo+ID4g PiA+ID4gPiA+IFsgICAgMS41NTA0ODddIGlteDZxLXBjaWUgMzM4MDAwMDAucGNpZTogUENJIGhv c3QgYnJpZGdlIHRvIGJ1cw0KPiA+ID4gPiAwMDAwOjAwDQo+ID4gPiA+ID4gPiA+IFsgICAgMS41 NjU1NDVdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2J1cyAwMC1mZl0NCj4g PiA+ID4gPiA+ID4gWyAgICAxLjU3MzgzNF0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNv dXJjZSBbaW8NCj4gMHgwMDAwLTB4ZmZmZl0NCj4gPiA+ID4gPiA+ID4gWyAgICAxLjU4MDA1NV0g cGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVtDQo+ID4gPiA+ID4gPiAweDE4 MDAwMDAwLTB4MWZlZmZmZmZdDQo+ID4gPiA+ID4gPiA+IFsgICAgMS41ODY5NjhdIHBjaSAwMDAw OjAwOjAwLjA6IFsxNmMzOmFiY2RdIHR5cGUgMDEgY2xhc3MNCj4gMHgwNjA0MDANCj4gPiA+ID4g PiA+ID4gWyAgICAxLjU5Mjk5N10gcGNpIDAwMDA6MDA6MDAuMDogcmVnIDB4MTA6IFttZW0NCj4g PiA+ID4gMHgwMDAwMDAwMC0weDAwMGZmZmZmXQ0KPiA+ID4gPiA+ID4gPiBbICAgIDEuNTk5Mjgy XSBwY2kgMDAwMDowMDowMC4wOiByZWcgMHgzODogW21lbQ0KPiA+ID4gPiAweDAwMDAwMDAwLTB4 MDAwMGZmZmYNCj4gPiA+ID4gPiA+IHByZWZdDQo+ID4gPiA+ID4gPiA+IFsgICAgMS42MDYwMzNd IHBjaSAwMDAwOjAwOjAwLjA6IHN1cHBvcnRzIEQxDQo+ID4gPiA+ID4gPiA+IFsgICAgMS42MTAw NTNdIHBjaSAwMDAwOjAwOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDENCj4gRDNob3QN Cj4gPiA+ID4gPiA+IEQzY29sZA0KPiA+ID4gPiA+ID4gPiBbICAgIDEuNjE4MjA2XSBwY2kgMDAw MDowMTowMC4wOiBbMTViNzo1MDAyXSB0eXBlIDAwIGNsYXNzDQo+IDB4MDEwODAyDQo+ID4gPiA+ ID4gPiA+IFsgICAgMS42MjQyOTNdIHBjaSAwMDAwOjAxOjAwLjA6IHJlZyAweDEwOiBbbWVtDQo+ ID4gPiA+IDB4MDAwMDAwMDAtMHgwMDAwM2ZmZg0KPiA+ID4gPiA+ID4gNjRiaXRdDQo+ID4gPiA+ ID4gPiA+IFsgICAgMS42MzExNzddIHBjaSAwMDAwOjAxOjAwLjA6IHJlZyAweDIwOiBbbWVtDQo+ ID4gPiA+IDB4MDAwMDAwMDAtMHgwMDAwMDBmZg0KPiA+ID4gPiA+ID4gNjRiaXRdDQo+ID4gPiA+ ID4gPiA+IFsgICAgMS42Mzg0MDldIHBjaSAwMDAwOjAxOjAwLjA6IDQuMDAwIEdiL3MgYXZhaWxh YmxlIFBDSWUNCj4gYmFuZHdpZHRoLA0KPiA+ID4gPiA+ID4gbGltaXRlZCBieSA1LjAgR1QvcyBQ Q0llIHgxIGxpbmsgYXQgMDAwMDowMDowMC4wIChjYXBhYmxlIG9mDQo+ID4gPiA+ID4gPiAzMS41 MDQgR2IvcyB3aXRoDQo+ID4gPiA+ID4gPiA4LjAgR1QvcyBQQ0llIHg0IGxpbmspDQo+ID4gPiA+ ID4gPiA+IFsgICAgMS42NjQ5MzFdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAwOiBhc3NpZ25lZCBb bWVtDQo+ID4gPiA+ID4gPiAweDE4MDAwMDAwLTB4MTgwZmZmZmZdDQo+ID4gPiA+ID4gPiA+IFsg ICAgMS42NzE3NDVdIHBjaSAwMDAwOjAwOjAwLjA6IEJBUiAxNDogYXNzaWduZWQgW21lbQ0KPiA+ ID4gPiA+ID4gMHgxODEwMDAwMC0weDE4MWZmZmZmXQ0KPiA+ID4gPiA+ID4gPiBbICAgIDEuNjc4 NjM0XSBwY2kgMDAwMDowMDowMC4wOiBCQVIgNjogYXNzaWduZWQgW21lbQ0KPiA+ID4gPiA+ID4g MHgxODIwMDAwMC0weDE4MjBmZmZmIHByZWZdDQo+ID4gPiA+ID4gPiA+IFsgICAgMS42ODU4NzNd IHBjaSAwMDAwOjAxOjAwLjA6IEJBUiAwOiBhc3NpZ25lZCBbbWVtDQo+ID4gPiA+ID4gPiAweDE4 MTAwMDAwLTB4MTgxMDNmZmYgNjRiaXRdDQo+ID4gPiA+ID4gPiA+IFsgICAgMS42OTMyMjJdIHBj aSAwMDAwOjAxOjAwLjA6IEJBUiA0OiBhc3NpZ25lZCBbbWVtDQo+ID4gPiA+ID4gPiAweDE4MTA0 MDAwLTB4MTgxMDQwZmYgNjRiaXRdDQo+ID4gPiA+ID4gPiA+IFsgICAgMS43MDA1NzddIHBjaSAw MDAwOjAwOjAwLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMS1mZl0NCj4gPiA+ID4gPiA+ID4gWyAg ICAxLjcwNTgxNF0gcGNpIDAwMDA6MDA6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0NCj4gPiA+ ID4gPiA+IDB4MTgxMDAwMDAtMHgxODFmZmZmZl0NCj4gPiA+ID4gPiA+ID4gWyAgICAxLjcxMjk3 Ml0gcGNpZXBvcnQgMDAwMDowMDowMC4wOiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUQ0KPiAyMTYN Cj4gPiA+ID4gPiA+ID4gIg0KPiA+ID4gPiA+ID4gPiBSZWdhcmRpbmcgdGhlIGxvZyB5b3UgcGFz dGVkLCBpdCBzZWVtcyB0aGF0IHRoZSBjbG9jayBpcyBub3QNCj4gPiA+ID4gPiA+ID4gZmVlZCB0 byBQSFkNCj4gPiA+ID4gPiA+IHByb3Blcmx5Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBBbnl3YXksIGxldCdzIHdhaXRpbmcgZm9yIHRoZSB2NCBzZXJpZXMsIHRoZW4gbWFrZSBhIHRy eS4NCj4gPiA+ID4gPiA+ID4gVGhhbmtzIGZvciB5b3VyDQo+ID4gPiA+ID4gPiBncmVhdCBoZWxw IHRvIG1ha2UgdGhlIGRvdWJsZSB0ZXN0cy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBNeSBib2FyZHMgZG8gbm90IHVzZSBDTEtSRVEjIHNvIEkgZG8gbm90IGhhdmUg dGhhdCBkZWZpbmVkIGluDQo+ID4gPiA+ID4gPiBwaW5tdXggYW5kIEkgZm91bmQgdGhhdCBpZiBJ IGFkZA0KPiA+ID4gPiA+ID4gTVg4TU1fSU9NVVhDX0kyQzRfU0NMX1BDSUUxX0NMS1JFUV9CDQo+ ID4gPiA+IFBDSWUNCj4gPiA+ID4gPiA+IHdvcmtzIG9uIG15IGJvYXJkIGJ1dCB0aGlzIGlzbid0 IGEgc29sdXRpb24ganVzdCBhIHdvcmstYXJvdW5kDQo+ID4gPiA+ID4gPiAoSSBoYXZlIGJvYXJk cyB0aGF0IHVzZSB0aGUgb25seSB0d28gcG9zc2libGUgcGlucyBmb3IgQ0xLUkVRDQo+ID4gPiA+ ID4gPiBhcyBvdGhlcg0KPiA+ID4gPiBmZWF0dXJlcykuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gU2ltaWxhcmx5IHlvdSB3aWxsIGZpbmQgb24gdGhlIGlteDhtbS1ldmsgaWYgeW91IGNvbW1l bnQgb3V0DQo+ID4gPiA+ID4gPiB0aGUgQ0xLUkVRICh3aGljaCBpc24ndCByZXF1aXJlZCkgdGhl IGlteDhtbWV2ayB3aWxsIGVuZCB1cA0KPiA+ID4gPiA+ID4gaGFuZ2luZyBsaWtlIG15DQo+ID4g PiA+IGJvYXJkczoNCj4gPiA+ID4gPiBbUmljaGFyZCBaaHVdIEhpIFRpbToNCj4gPiA+ID4gPiBS ZWdhcmRpbmcgdGhlIFNQRUMsIHRoZSBDTEtSRVEjIGlzIG1hbmRhdG9yeSByZXF1aXJlZCwgYW5k DQo+ID4gPiA+ID4gc2hvdWxkIGJlDQo+ID4gPiA+IGNvbmZpZ3VyZWQgYXMgYW4gb3BlbiBkcmFp biwgYWN0aXZlIGxvdyBzaWduYWwuDQo+ID4gPiA+ID4gQW5kIHRoaXMgc2lnbmFsIHNob3VsZCBi ZSBkcml2ZW4gbG93IGJ5IHRoZSBQQ0llIE0uMiBkZXZpY2UgdG8NCj4gPiA+ID4gPiByZXF1ZXN0 IHRoZQ0KPiA+ID4gPiBSRUYgY2xvY2sgYmUgYXZhaWxhYmxlKGFjdGl2ZSBsb3cpLg0KPiA+ID4g PiA+IFNvLCB0aGVyZSBpcyBzdWNoIGtpbmQgb2YgQ0xLUkVRIyBwaW4gZGVmaW5pdGlvbiBvbiBp Lk1YOE1NIEVWSw0KPiBib2FyZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFueXdheSwgSSB0aGlu ayB0aGUgZXh0ZXJuYWwgT1NDIGNpcmN1aXQgc2hvdWxkIGJlIGFsd2F5cw0KPiA+ID4gPiA+IHJ1 bm5pbmcgaWYgdGhlcmUgaXMNCj4gPiA+ID4gbm8gQ0xLUkVRIyBvbiB5b3VyIEhXIGJvYXJkIGRl c2lnbi4NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgd2F5IEkgdW5kZXJzdGFuZCBp dCBpcyBDTEtSRVEjIGFsbG93cyB0aGUgaG9zdCB0byBkaXNhYmxlIHRoZQ0KPiA+ID4gPiBSRUZD TEsgd2hlbiBub3QgbmVlZGVkIGZvciBwb3dlciBzYXZpbmdzIHNvIGl0IHdvdWxkIHNlZW0gb3B0 aW9uYWwNCj4gPiA+ID4gdG8gaW1wbGVtZW50IHRoYXQgYW5kIGlmIG5vdCBpbXBsZW1lbnRlZCBz aG91bGQgYmUgbGVmdCB1bmNvbm5lY3RlZCBvbg0KPiB0aGUgY2FyZC4NCj4gPiA+ID4NCj4gPiA+ IFtSaWNoYXJkIFpodV0gTm8sIG5vdCB0aGF0IHdheS4gUmVnYXJkaW5nIHRoZSBTUEVDLCB0aGlz IHNpZ25hbCBpcw0KPiBtYW5kYXRvcnkgcmVxdWlyZWQuDQo+ID4gPiBFc3BlY2lhbGx5IGZvciB0 aGUgTDFzcyB1c2FnZXMuIFRoaXMgc2lnbmFsIHdvdWxkIGJlIE9EKG9wZW4gZHJhaW4pLA0KPiA+ ID4gYmktZGlyZWN0aW9uYWwsIGFuZCBtaWdodCBiZSBkcml2ZW4gbG93L2hpZ2ggYnkgUkMgb3Ig RVAgYXV0b21hdGljYWxseSBpZg0KPiBMMXNzIG1vZGVzIGFyZSBlbmFibGVkLg0KPiA+ID4gWW91 IGNhbiBtYWtlIHJlZmVyZW5jZSB0byB0aGUNCj4gPiA+ICJFQ05fTDFfUE1fU3Vic3RhdGVzX3dp dGhfQ0xLUkVRXzMxX01heV8yMDEzX1JldjEwYSIsIG9yIHRoZQ0KPiBjaGFwdGVyIDUuNSBMMSBQ TSBTdWJzdGF0ZXMgb2YgIlBDSSBFeHByZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiwgUmV2LiA0LjAN Cj4gVmVyc2lvbiAxLjAiLg0KPiA+ID4NCj4gPg0KPiA+IENMS1JFUSBpcyBvbmx5IG1hbmRhdG9y eSBpZiB5b3Ugd2lzaCB0byBzdXBwb3J0IGNsb2NrIHBvd2VyDQo+ID4gbWFuYWdlbWVudC4gTWFu eSBib2FyZHMgd2l0aCBhIFBDSSBob3N0IGNvbnRyb2xsZXIgZG8gbm90IHN1cHBvcnQNCj4gPiB0 aGlzLg0KW1JpY2hhcmQgWmh1XSBPa2F5LCB1bmRlcnN0b29kLg0KDQo+ID4NCj4gPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tZXZrLmR0 c2kNCj4gPiA+ID4gPiA+IGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1tLWV2 ay5kdHNpDQo+ID4gPiA+ID4gPiBpbmRleCA1Y2U0M2RhYTBjOGIuLmYwMDIzYjQ4ZjQ3NSAxMDA2 NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDht bS1ldmsuZHRzaQ0KPiA+ID4gPiA+ID4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2Nh bGUvaW14OG1tLWV2ay5kdHNpDQo+ID4gPiA+ID4gPiBAQCAtNDQ4LDcgKzQ0OCw5IEBADQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICBwaW5jdHJsX3BjaWUwOiBwY2llMGdycCB7DQo+ ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgZnNsLHBpbnMgPSA8DQo+ID4gPiA+ID4gPiArLyoN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBNWDhNTV9JT01VWENfSTJDNF9TQ0xfUENJRTFfQ0xL UkVRX0IgICAgMHg2MQ0KPiA+ID4gPiA+ID4gKyovDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiBNWDhN TV9JT01VWENfU0FJMl9SWEZTX0dQSU80X0lPMjENCj4gPiA+ID4gPiA+IDB4NDENCj4gPiA+ID4g PiA+ICAgICAgICAgICAgICAgICA+Ow0KPiA+ID4gPiA+ID4gICAgICAgICB9Ow0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IEkgaGF2ZSBQQ0llIHdvcmtpbmcgd2l0aCBhIGRyaXZlciB0aGF0IEkg cG9ydGVkIGZyb20gTlhQJ3MNCj4gPiA+ID4gPiA+IGtlcm5lbCB3aGljaCBkaWZmZXJzIGZyb20g eW91ciBkcml2ZXIgaW4gdGhhdCB0aGUgUENJZSBQSFkgaXMNCj4gPiA+ID4gPiA+IG5vdCBhYnN0 cmFjdGVkIHRvIGl0cyBvd24gZHJpdmVyIHNvIEkgdGhpbmsgdGhpcyBoYXMgc29tZXRoaW5nDQo+ ID4gPiA+ID4gPiB0byBkbyB3aXRoIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgcGh5IGlzIHJlc2V0 IG9yIGluaXRpYWxpemVkPw0KPiA+ID4gPiA+ID4gVGhlIGNvbmZpZ3VyYXRpb24gb2YNCj4gPiA+ ID4gZ3ByMTQgYml0cyBsb29rcyBjb3JyZWN0IHRvIG1lLg0KPiA+ID4gPiA+IFtSaWNoYXJkIFpo dV0gVGhlIENMS1JFUSMgUElOIGRlZmluaXRpb24gc2hvdWxkbid0IGJlIG1hc2tlZC4NCj4gPiA+ ID4gPiBJbiB0aGUgTlhQJ3MgbG9jYWwgQlNQIGtlcm5lbCwgSSBqdXN0IGZvcmNlIENMS1JFUSMg bG93IHRvIGxldmVsDQo+ID4gPiA+ID4gdXAgdGhlIEhXDQo+ID4gPiA+IGNvbXBhdGliaWxpdHku DQo+ID4gPiA+ID4gVGhhdCdzIG1pZ2h0IHRoZSByZWFzb24gd2h5IHRoZSBQQ0llIHdvcmtzIG9u IHlvdXIgSFcgYm9hcmQNCj4gPiA+ID4gPiBhbHRob3VnaCB0aGUNCj4gPiA+ID4gQ0xLUkVRIyBQ SU4gaXMgbm90IGRlZmluZWQuDQo+ID4gPiA+ID4gVGhpcyBtZXRob2QgaXMgYSBsaXR0bGUgcnVk ZSBhbmQgdmlvbGF0ZSB0aGUgU1BFQywgYW5kIG5vdA0KPiA+ID4gPiA+IHJlY29tbWVuZGVkDQo+ ID4gPiA+IGFsdGhvdWdoIGl0IGxldmVscyB1cCB0aGUgSFcgY29tcGF0aWJpbGl0eS4NCj4gPiA+ ID4gPiBTbyBJIGRyb3AgdGhpcyBtZXRob2QgaW4gdGhpcyBzZXJpZXMuDQo+ID4gPiA+ID4NCj4g PiA+ID4NCj4gPiA+ID4gU29ycnksIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHlvdSBhcmUgc2F5 aW5nIGhlcmUuIElzIHRoZXJlIGENCj4gPiA+ID4gY2hhbmdlIHlvdSBhcmUgZ29pbmcgdG8gbWFr ZSB0byB2NCB0aGF0IHdpbGwgbWFrZSB0aGlzIHdvcmsgZm9yDQo+ID4gPiA+IHRoZSBldmsgYW5k IG15IGJvYXJkcz8gV2hhdCBpcyB0aGF0IGNoYW5nZSBleGFjdGx5Pw0KPiA+ID4gW1JpY2hhcmQg Wmh1XSBOby4gV2hhdCBJIHNhaWQgYWJvdmUgaXMgdGhhdCB0aGUgQ0xLUkVRIyBpcyBmb3JjZWQg dG8NCj4gPiA+IGJlIGxvdyBpbiBOWFAgbG9jYWwgQlNQIGtlcm5lbC4gSSBndWVzcyB0aGlzIG1p Z2h0IGJlIHRoZSByZWFzb24gd2h5IHlvdXINCj4gYm9hcmQgd29ya3MuDQo+ID4gPg0KPiA+ID4g QklUMTEgYW5kIEJJVDEwIG9mIElPTVVYQ19HUFIxNCBjYW4gYmUgdXNlZCB0byBmb3JjZSB0aGUg Q0xLUkVRIyB0bw0KPiBiZSBsb3cuDQo+ID4gPiBTZXQgQ0xLUkVRX09WRVJSSURFX0VOKGJpdDEw KSAxYjEsIHRoZW4gd3JpdGUgb25lIHplcm8gdG8NCj4gQ0xLUkVRX09WRVJSSURFKGJpdDExKS4N Cj4gPiA+DQo+ID4NCj4gPiBPaywgdGhhdCBtYWtlcyBzZW5zZS4gVGhvc2UgYml0cyBhcmUgbm90 IGV4cGxhaW5lZCB3ZWxsIGluIHRoZQ0KPiA+IElNWDhNTVJNLiBBcyBteSBib2FyZCdzIGV4dGVy bmFsIFJFRkNMSyBpcyBhbHdheXMgZW5hYmxlZCB0aGF0IG11c3QNCj4gPiBnYXRlIHRoZSBjbG9j ayBpbnRlcm5hbGx5IHRvIHRoZSBob3N0IGNvbnRyb2xsZXIgYmxvY2suDQo+ID4NCj4gPiBJIGNh biBjb25maXJtIHRoYXQgYXNzZXJ0aW5nIHRob3NlIEdQUjE0IGJpdHMgZG9lcyByZXNvbHZlIG15 IGlzc3VlOg0KPiA+DQo+ID4gI2RlZmluZSBJTVg4TU1fR1BSX1BDSUVfQ0xLUkVRX09WRVJSSURF X1ZBTCAgICBCSVQoMTEpDQo+ID4gI2RlZmluZSBJTVg4TU1fR1BSX1BDSUVfQ0xLUkVRX09WRVJS SURFX0VOICAgICBCSVQoMTApDQo+ID4NCj4gPiAgICAgICAgLyoNCj4gPiAgICAgICAgICogZm9y IGJvYXJkcyB0aGF0IGRvIG5vdCBjb25uZWN0IENMS1JFUSMsDQo+ID4gICAgICAgICAqIG92ZXJy aWRlIENMS1JFUSMgYW5kIGRyaXZlIGl0IGxvdyBpbnRlcm5hbGx5DQo+ID4gICAgICAgICAqLw0K PiA+ICAgICAgICByZWdtYXBfdXBkYXRlX2JpdHMoaW14OF9waHktPmlvbXV4Y19ncHIsIElPTVVY Q19HUFIxNCwNCj4gPg0KPiBJTVg4TU1fR1BSX1BDSUVfQ0xLUkVRX09WRVJSSURFX1ZBTCwgMCk7 DQo+ID4gICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbXg4X3BoeS0+aW9tdXhjX2dwciwgSU9N VVhDX0dQUjE0LA0KPiA+DQo+IElNWDhNTV9HUFJfUENJRV9DTEtSRVFfT1ZFUlJJREVfRU4sIDEp Ow0KW1JpY2hhcmQgWmh1XSByZWdtYXAgYml0cyBvcGVyYXRpb25zIHNob3VsZCBtYW5pcHVsYXRl IGFjY29yZGluZyBiaXRzLg0KVGhlIEJJVCgxMCkgYW5kIEJJVCgxMSkgc2hvdWxkIGJlIHRvdWNo ZWQgYWN0dWFsbHkuDQoNCj4gPg0KPiA+IFNob3VsZCB0aGlzIGJlIGFkZGVkIGFzIGEgJ2ZzbCxj bGtyZXEtdW5zdXBwb3J0ZWQnIGZsYWcgdGhhdCBuZWVkcyB0bw0KPiA+IGJlIHNldCB0cnVlIHRv IGltcGxlbWVudCB0aGUgYWJvdmUgY29kZT8NCj4gPg0KPiANCj4gUmljaGFyZCwNCj4gDQo+IFNv cnJ5IC0gc3Bva2UgdG9vIHNvb24uIE15IHRlc3Qgd2FzIGZsYXdlZCBhcyBJIHN0aWxsIHdhcyBw aW5tdXhpbmcgQ0xLUkVRIGluDQo+IG15IGR0IHRvIHdvcmsgYXJvdW5kIHRoZSBpc3N1ZSBhbmQg YWZ0ZXIgcmVtb3ZlZCB0aGUgYWJvdmUgZGlkIG5vdCByZXNvbHZlDQo+IG15IGlzc3VlLiBUaGUg c2V0dGluZyBvZiBPVkVSUklERV9FTiB3YXMgd3JvbmcgYWJvdmUgKHNob3VsZCBub3QgYmUgc2V0 IHRvDQo+ICcxJyBidXQgQklUKDEwKSBpbnN0ZWFkKSBidXQgdGhpcyBjb2RlIGFscmVhZHkgZXhp c3RzIGluDQo+IGlteDZfcGNpZV9lbmFibGVfcmVmX2NsayBhbmQgaXMgdXNlZCBmb3IgSU1YOE1N IHBlciB5b3VyIHBhdGNoIHNvIHRoaXMgaXMNCj4gbm90IHRoZSBpc3N1ZS4NCj4gDQo+IFdoYXQg bWFrZXMgbXkgYm9hcmQgd29yayBpcyB0byBjbGVhciBHUFIxNCBiaXQ5IChsaWtlIHRoZSBOWFAg a2VybmVsDQo+IGRvZXMpIHNvIEkgZG9uJ3QgdGhpbmsgdGhpcyBiaXQgZG9lcyB3aGF0IHdlIHRo aW5rIGl0IGRvZXMgKHNlbGVjdCBiZXR3ZWVuDQo+IGludGVybmFsIGFuZCBleHQgY2xrKS4gSSB0 aGluayBzZXR0aW5nIGl0IGVuYWJsZXMgY2xvY2sgZ2F0aW5nIHZpYSBDTEtSRVEjLg0KPiANCj4g VGhpcyBhbHNvIHBvaW50cyBvdXQgdGhhdCBwZXJoYXBzIHRoZSBDTEtSRVFfT1ZFUlJJREUgbG9n aWMgc2hvdWxkIGJlDQo+IG1vdmVkIHRvIHRoZSBuZXcgcGh5IGRyaXZlciBmb3IgSU1YOE1NLg0K W1JpY2hhcmQgWmh1XSBJdCBzb3VuZHMgcmVhc29uYWJsZSB0byBjb25zaWRlciB0byBmb3JjZSB0 aGUgQ0xLUkVRIyB0byBiZSBsb3cuDQpJIHdpbGwgdGhpbmsgYWJvdXQgdGhhdCBhbmQgYWRkIHRo aXMgaW4gbGF0ZXIgdjUgcGF0Y2gtc2V0IGlmIG5vYm9keSBoYXMgZGlmZmVyZW50IGNvbmNlcm5z Lg0KVGhhbmtzLg0KDQpCUg0KUmljaGFyZA0KIA0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiANCj4g VGltDQo=