From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.44]) by mx.groups.io with SMTP id smtpd.web11.1233.1676514087525223450 for ; Wed, 15 Feb 2023 18:21:28 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@ami.com header.s=selector1 header.b=kglc8bkC; spf=pass (domain: ami.com, ip: 40.107.101.44, mailfrom: richardho@ami.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gHb2PSMCsHGLkxKgyVl25B+s1A67UVRwb1r9ztndHTdnApiPX0Nyp3lTH/s96XfPFWtpquYe0xAmzslr2Phl6m9EQYDBynqeDnK5WLrkxzJqmL7pnx/aOb6wxxg2qG8I6KuIdyG0Cy2zYM82kcS5HrnXwGB0FDBDbBXskwxgtjhRU70qmpb1a335ADJ3eRA/4bnc6gc9ohQ6mZ1kqp0QWXQXUblPNkPUiQgoXf5607hCpxXdK74HZtEcefQ8oINaDAb83MIKX8ILdJ3RJ0gGq2dQkiehkBbmzaqeqG5T5sozCgsAdIbYCCgp5D+w0lqn7r0yddcoyxX43kTUsTCang== 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=04fwvVxa0jVTMugvMQC0trRqdHezN+nU7iVRuB1b5Mw=; b=ZIh22dyfzO6+VelJtL8/ovzIWHZO6qFu2LgORdzi9rgqesYCPUyq9jGvrCXqA0GuHJ6sDG44VsMnL+4ecQ2iAHGW+YetWckycpllR5m3Kh5aymUORT1zg/W/UXhYTI7uJx5pjcV0dQxzPpoKXn1lMusr30aUSAtmJ8FzihiEbBf6n/yWcPs16XWJ2Jmx6Xi1+F84OpHv7c8Qptfii0m1ArzUunQY1Bcc4BOpcKCI74pBVWyMtQotvlC8l9z4jw5nWBBsI+wzpuwglPIZTMK6aeQWwEWN55+esLpaM4zzYQnlvdHhGUBVveexTCcMj2+gs3Kiien9EIeDFIlh3lBAVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ami.com; dmarc=pass action=none header.from=ami.com; dkim=pass header.d=ami.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ami.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=04fwvVxa0jVTMugvMQC0trRqdHezN+nU7iVRuB1b5Mw=; b=kglc8bkCYL4czxWZsGFgy7cAdVRuHTDO1PpZtMQBN7J48ylxk8ApnJVpqQazwSsFonGPNgEKQrG9v05nYrvGFUdV1whNtEmlBwdkKAFmeaLUB8eV4D59DV6f81cvUnAmtETyNlEM+EPF3C0cKPIcclXv1dyvXy2ffwvVvD0W1IY= Received: from CY8PR10MB6441.namprd10.prod.outlook.com (2603:10b6:930:63::16) by CY8PR10MB7314.namprd10.prod.outlook.com (2603:10b6:930:7b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.6; Thu, 16 Feb 2023 02:21:23 +0000 Received: from CY8PR10MB6441.namprd10.prod.outlook.com ([fe80::7b59:85c6:a3d0:1921]) by CY8PR10MB6441.namprd10.prod.outlook.com ([fe80::7b59:85c6:a3d0:1921%4]) with mapi id 15.20.6111.012; Thu, 16 Feb 2023 02:21:23 +0000 From: =?UTF-8?B?UmljaGFyZEhvIFvkvZXmmI7lv6Bd?= To: Michael Brown , "devel@edk2.groups.io" CC: Andrew Fish , Leif Lindholm , Michael D Kinney , Michael Kubacki , Zhiguang Liu , Liming Gao , =?utf-8?B?VG9ueSBMbyAo576F6YeR5p2+KQ==?= , Dos Hsieh , Felix Polyudov , Srini Narayana , Harikrishna Doppalapudi Subject: Re: [edk2-devel] [PATCH v3 1/3] UsbNetworkPkg/UsbRndis: Add USB RNDIS devices support Thread-Topic: [EXTERNAL] Re: [edk2-devel] [PATCH v3 1/3] UsbNetworkPkg/UsbRndis: Add USB RNDIS devices support Thread-Index: AQHZQP99HxARPPSj3U2dRdISNKOiy67PzTQAgAEH4ZA= Date: Thu, 16 Feb 2023 02:21:22 +0000 Message-ID: References: <20230215053622.3746-1-richardho@ami.com> <01020186549a20fd-079f978d-fbaf-4a60-b4a3-5d09c64f3f15-000000@eu-west-1.amazonses.com> In-Reply-To: <01020186549a20fd-079f978d-fbaf-4a60-b4a3-5d09c64f3f15-000000@eu-west-1.amazonses.com> Accept-Language: zh-TW, 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=ami.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY8PR10MB6441:EE_|CY8PR10MB7314:EE_ x-ms-office365-filtering-correlation-id: cb91b1f1-c9f8-48b9-12a5-08db0fc47f40 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zhFczcfSlr1g6CZVjD03VKqk4uYiyvadjz7BfymNw8Gq4t2wLxYq+2JJyTxJh1+UU44b6pzRwRnnWXdN4kthnIOMBTqM8s2DIwU1iPBRUC8PPD7Y7lmRTfPUUGfVLaX2UMg4bog7IMwOwKi3MVGOkf8F11KYPsfdWNNqqF7bx55toFqKhi8uGrt6CC3IuddUsCy77lgeHOJa3r2++Wqdpk1F0FVhxK28syIfLbb05OFEBcDLGTnSn28p9dCDOtXbbTVQLzWiOQxyq6w0ryBv5RxWs9g3rN22rE6OScUH+OPhC85yNYsVQ/zCGdqjvz5u1+LajULzoRS7/029jSaEwsSbiTDheOv6O54EXVTxZgloFuIPgB+VGySLCjb4OEsYNDZVYE26TnA7Yt02ZPLHqx1qRxyb11iaAOuHPPHVaJOtoEbsUwQ++22zHL95YxsR/UXeaRRwTd+HnrM5KIv5EXIFUdROhW2Ln6p9wUUe4li2G7NIEfM2fAYN7TDs8LicPCFjdEL83pzozQJ4QmE6di1s/0EuCwhqpqgnlHf/cXRHxOzEtEbyOOENynSM3/B0sVzzkjX1Ftym79CqwRA9fBf6aBI612Jqm2lHX9eJkTA0V+CsTd2myCDUlBGnx0KgUQmnxCf5DHDVWsqi4KoX5bXUw87HjFbrbEDfJyPStzvouaOJHpeElZe8g3/alF/bTSdRLyrUQK3zYFY4iWl+nw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR10MB6441.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(346002)(136003)(376002)(396003)(366004)(39850400004)(451199018)(53546011)(83380400001)(55016003)(64756008)(8676002)(66946007)(66556008)(66476007)(66446008)(76116006)(4326008)(8936002)(85182001)(52536014)(5660300002)(38070700005)(26005)(186003)(9686003)(478600001)(6506007)(7696005)(71200400001)(54906003)(41300700001)(316002)(110136005)(38100700002)(2906002)(86362001)(122000001)(33656002)(40140700001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bjdNZ00yTksrYmM4Q0dRVmNOWER5dG9GZkVHNnFsVlh4bDBWSFJ4SkJrRWRF?= =?utf-8?B?b0pvTEkxMEFGWlpNK095dC9aRXIzYjluVGZkNUN6VDlOczFBVkUwVUljcDdN?= =?utf-8?B?djlGTlhqb3BlTXZiczlhRWZ1UTN3N0JsZ2V0ak9nL29nM0tvOXpHRkNleEI1?= =?utf-8?B?bHNrMm5IRldvU0p3SUt6ODNwMGZMUmxQV2h5SnZUaDVMblo3eUlJWGdVYkdi?= =?utf-8?B?a0ZPNHJOQjY0SnR6dm1VeTVkMGh5cFlLYVZTR2pzbWNoczZKUTh0NXhzNEY5?= =?utf-8?B?NVJHR3ZpcmcvbkdQV0c2RXRaTnMzeGszK3NDeFl2STc2NzVFem9LOHFwbXgz?= =?utf-8?B?bGhScE1tNWs2R0VJeG1keDlQdFpJV0RVb2R6ZXVCVThKQXdPR2wrOXcyUS8x?= =?utf-8?B?TzA5cU1vekF0UTZOUGx2ZUlLMTEyOVcyRWpwb3R0eGlwK1U0NjdVSE9CeDFz?= =?utf-8?B?NUNySGRSQ3RuTkFodEJtUUhpbHkrUVVVVy90bkRUL2pveXB4NFpDV0E5RDQr?= =?utf-8?B?QVNoZVpOQnV5cFYyRFNESVpra3VSekQ0a1RnN0JxL3hRRVp0TXlOUzY5L25V?= =?utf-8?B?NWE1MWNhbklxcHA5eUVXajBHUUNoYUFJMnVlc3F1SDFqTHBHZitoamlBa2p5?= =?utf-8?B?TGpTV29XejVvQlZFWXJyQVJmMlZVdDUxeU81VDdwUHJEOTV1TlRsS3lBd3JN?= =?utf-8?B?R3UyU0VWQkJMUWR2ZElUd1Z5N00wZ3FBSjBtTmhjKzZHR014VmF4REtVc0di?= =?utf-8?B?NW1haHNMbUI3Sk1JanN0V2s0c1BLcjgrYU5BNVRZTjM1TmhsN2g1R3YxQS82?= =?utf-8?B?OVFNWTZKd1VVbGM3ZXczWG1wSkkrLzlEN2ZGZEJhWXEyZkR2cUc0SWpza0Uz?= =?utf-8?B?RENHc1hkUXNxV2lQVHd2cUxyV0hxcEM5SFMwUlRIaEIvQVgrWk5PVldtb1ha?= =?utf-8?B?NW1TaW9GUmJwdzM0dmtzeER0QS85UlhObHVGOXF4emNUNFNDRWVGYlFrdXlD?= =?utf-8?B?SVpRcXVwMVdBdDlQaXRZY3N6aU16TVc0cXMvVjBNLy9wV1BVT3dodnVzVFhW?= =?utf-8?B?WkdUb1VQRng3bE9HSkdPdGtPazRNcGNPRTd1L0ZxSzIydUNxL2RNMk1lYjhT?= =?utf-8?B?SkhuRXB5TndqSitSLzVBbHgvV1BFUlJjNnllclhTWnNHVWxzaXUzVjdtT1lK?= =?utf-8?B?ZlZPN2QzVWNLdnRlU1I4VWVPR0tJdFpBdDBENDlDOEgvaGVOcFpkc2JCVlFN?= =?utf-8?B?U1RkNndWbzhEODNqcEUrOWtNZnNNR2tvK08zUkVDdnJlSUprbHBPVkNUMy9p?= =?utf-8?B?M3RnTjcwekVBaUhNQnppTk16aXczUXUwd0J3M3phelMwRDJoQTI1VG9IdVEz?= =?utf-8?B?Q3YrRlhzb3dLVUtlMXlkREMwZGlrYlVvOE5BZStZWmFrY0xvV0hZbXBVd1BI?= =?utf-8?B?WmRCT29MQzViRXowSlF0bitpUk9wZ3FvVjBibmpWQ3ZsRjFWblJVUnMzaEpt?= =?utf-8?B?bXJvSDVCQlB0ZzRuby9YYXhzKzdHNnJZNHlzWUJuU01sOVB5VFNjOHFPWG9u?= =?utf-8?B?elUxUVpJMVI5WXVteVFoZ2hRdTRKb1dVQml2a0hwOWNLSXIxYjdsaEpDRk1k?= =?utf-8?B?MUUyUHFSS3BGOWtKM2tad25TZjlGQzZuMFZaR3VtVElEWkxkNjZpaTRVSFJo?= =?utf-8?B?R1BMbjdBMENlU09MRHJaUDRxYmRQdjd3cFR3azJyc0F6eThRMlJna21yQlZu?= =?utf-8?B?SCtEN3E2NG1DUlBodzVRK1dFSy9NVGVpOTloR3BuWUdsTkNvS1BNVER6U0J3?= =?utf-8?B?SXptdytNMnViU2tTSm5OQXBPZzBkK29POEhia25JNXlLS3ZZd29ST3hPcXdl?= =?utf-8?B?UnZuWnhNazIrSzdzcklyU0wwUkJsSmNJWVJJNUd3NEtyUmZwSlB5UkRTOC9u?= =?utf-8?B?SHgrOHRCU1dweU1OODlvK05hSDdRQzhHYUdhM1paMUMrR3NmMm5kZFRFbm53?= =?utf-8?B?ek0rQTFPVkVZeWttaFNPbVN1YjhwVkZOVnBLVjNmOUNGTlh5ZlFRdzlmelFO?= =?utf-8?B?Kzc1K2VZZU1UZUhIR0ZOcmxIcnRRQ05FL3pYa3NjSlZIWG1mb2kxOEQ1STNW?= =?utf-8?Q?hNohaRQCR3NhMCH6BcK6SD8O6?= MIME-Version: 1.0 X-OriginatorOrg: ami.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY8PR10MB6441.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb91b1f1-c9f8-48b9-12a5-08db0fc47f40 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2023 02:21:22.5500 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 27e97857-e15f-486c-b58e-86c2b3040f93 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aE9HwMqK1smon9T2s8Ys9c4TltDDasG5T3+aZgtodVO8cwjQ4xsjmeCvdqoBSf5A0TYVtNdqKIfLFsu3FrxuLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB7314 Content-Language: zh-TW Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWljaGFlbCwNCg0KSWYgc2VsZWN0IEVuYWJsZVJhdGVMaW1pdGluZyAgdG8gVFJVRSBhbmQg dXNlIHRoZSBYODYgc3lzdGVtLiBJdCB3aWxsIGJlIGhhbmcgd2hlbiBQWEUgYm9vdC4NCkNvdWxk IHlvdSBoZWxwIHRvIGNoZWNrPw0KDQpUaGFua3MsDQpSaWNoYXJkDQoNCi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQpGcm9tOiBNaWNoYWVsIEJyb3duIDxtY2IzMEBpcHhlLm9yZz4NClNlbnQ6 IDIwMjPlubQy5pyIMTXml6UgNjoyNCBQTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBSaWNo YXJkIEhvICjkvZXmmI7lv6ApIDxSaWNoYXJkSG9AYW1pLmNvbT4NCkNjOiBBbmRyZXcgRmlzaCA8 YWZpc2hAYXBwbGUuY29tPjsgTGVpZiBMaW5kaG9sbSA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNv bT47IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTWljaGFl bCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT47IFpoaWd1YW5nIExpdSA8 emhpZ3VhbmcubGl1QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNv bS5jbj47IFRvbnkgTG8gKOe+hemHkeadvikgPFRvbnlMb0BhbWkuY29tPg0KU3ViamVjdDogW0VY VEVSTkFMXSBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MyAxLzNdIFVzYk5ldHdvcmtQa2cvVXNi Um5kaXM6IEFkZCBVU0IgUk5ESVMgZGV2aWNlcyBzdXBwb3J0DQoNCg0KKipDQVVUSU9OOiBUaGUg ZS1tYWlsIGJlbG93IGlzIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlLiBQbGVhc2UgZXhlcmNpc2Ug Y2F1dGlvbiBiZWZvcmUgb3BlbmluZyBhdHRhY2htZW50cywgY2xpY2tpbmcgbGlua3MsIG9yIGZv bGxvd2luZyBndWlkYW5jZS4qKg0KDQpPbiAxNS8wMi8yMDIzIDA1OjM2LCBSaWNoYXJkSG8gW+S9 leaYjuW/oF0gdmlhIGdyb3Vwcy5pbyB3cm90ZToNCk9uIDE1LzAyLzIwMjMgMDU6MzYsIFJpY2hh cmRIbyBb5L2V5piO5b+gXSB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KT24gMTUvMDIvMjAyMyAwNToz NiwgUmljaGFyZEhvIFvkvZXmmI7lv6BdIHZpYSBncm91cHMuaW8gd3JvdGU6DQpPbiAxNS8wMi8y MDIzIDA1OjM2LCBSaWNoYXJkSG8gW+S9leaYjuW/oF0gdmlhIGdyb3Vwcy5pbyB3cm90ZToNCk9u IDE1LzAyLzIwMjMgMDU6MzYsIFJpY2hhcmRIbyBb5L2V5piO5b+gXSB2aWEgZ3JvdXBzLmlvIHdy b3RlOg0KPiArICBpZiAoTmljLT5SYXRlTGltaXRpbmdFbmFibGUgPT0gVFJVRSkgew0KPiArICAg IFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KPiArICAgICAgICAgICAgICAgICAgICBFVlRf VElNRVIgfCBFVlRfTk9USUZZX1NJR05BTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgVFBMX0NB TExCQUNLLA0KPiArICAgICAgICAgICAgICAgICAgICBVbmRpUmF0ZUxpbWl0ZXJDYWxsYmFjaywN Cj4gKyAgICAgICAgICAgICAgICAgICAgTmljLA0KPiArICAgICAgICAgICAgICAgICAgICAmTmlj LT5SYXRlTGltaXRlcg0KPiArICAgICAgICAgICAgICAgICAgICApOw0KPiArICAgIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAgIGdvdG8gRXJyb3JDcmVhdGVFdmVudDsNCj4gKyAg ICB9DQo+ICsNCj4gKyAgICBTdGF0dXMgPSBnQlMtPlNldFRpbWVyICgNCj4gKyAgICAgICAgICAg ICAgICAgICAgTmljLT5SYXRlTGltaXRlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgVGltZXJQ ZXJpb2RpYywNCj4gKyAgICAgICAgICAgICAgICAgICAgUGNkR2V0MzIgKFJhdGVMaW1pdGluZ0Zh Y3RvcikgKiAxMDAwMA0KPiArICAgICAgICAgICAgICAgICAgICApOw0KPiArICAgIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAgIGdvdG8gRXJyb3JTZXRUaW1lcjsNCj4gKyAgICB9 DQo+ICsgIH0NCj4gKw0KPiArICBpZiAoTmljLT5Vc2JFdGgtPlVzYkV0aFVuZGkuVXNiRXRoVW5k aVN0YXJ0ICE9IE5VTEwpIHsNCj4gKyAgICBTdGF0dXMgPSBOaWMtPlVzYkV0aC0+VXNiRXRoVW5k aS5Vc2JFdGhVbmRpU3RhcnQgKENkYiwgTmljKTsNCj4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0 dXMpKSB7DQo+ICsgICAgICBnb3RvIEVycm9yVW5kaVN0YXJ0Ow0KPiArICAgIH0NCj4gKyAgfQ0K PiArDQo+ICsgIE5pYy0+U3RhdGUgICAgID0gUFhFX1NUQVRGTEFHU19HRVRfU1RBVEVfU1RBUlRF RDsNCj4gKyAgQ2RiLT5TdGF0RmxhZ3MgPSBQWEVfU1RBVEZMQUdTX0NPTU1BTkRfQ09NUExFVEU7 ICBDZGItPlN0YXRDb2RlICA9DQo+ICsgUFhFX1NUQVRDT0RFX1NVQ0NFU1M7ICByZXR1cm47DQo+ ICsNCj4gK0Vycm9yVW5kaVN0YXJ0Og0KPiArICBnQlMtPlNldFRpbWVyICgmTmljLT5SYXRlTGlt aXRlciwgVGltZXJDYW5jZWwsIDApOw0KPiArRXJyb3JTZXRUaW1lcjoNCj4gKyAgZ0JTLT5DbG9z ZUV2ZW50ICgmTmljLT5SYXRlTGltaXRlcik7DQo+ICtFcnJvckNyZWF0ZUV2ZW50Og0KPiArICBD ZGItPlN0YXRGbGFncyA9IFBYRV9TVEFURkxBR1NfQ09NTUFORF9GQUlMRUQ7DQo+ICsgIENkYi0+ U3RhdENvZGUgID0gUFhFX1NUQVRDT0RFX0RFVklDRV9GQUlMVVJFOyB9DQoNClRoYW5rIHlvdSBm b3IgaW5jb3Jwb3JhdGluZyB0aGUgcG9sbGluZyByYXRlIGxpbWl0aW5nIGZlYXR1cmUuDQoNClRo ZXJlIGlzIGEgYnVnIGluIHRoZSBhYm92ZSBjb2RlOiBpZiBSYXRlTGltaXRpbmdFbmFibGU9PUZB TFNFIGFuZCB0aGVuIGFuIGVycm9yIG9jY3VycyBpbiBVc2JFdGhVbmRpU3RhcnQoKSwgdGhlIGVy cm9yIGhhbmRsaW5nIGNvZGUgd2lsbCBjYWxsDQpTZXRUaW1lcigpIGFuZCBDbG9zZUV2ZW50KCkg b24gYW4gZXZlbnQgdGhhdCB3YXMgbmV2ZXIgY3JlYXRlZC4NCg0KVGhlIHNpbXBsZXN0IGZpeCBp cyB0byBtb3ZlIHRoZSBjb25kaXRpb25hbCBjaGVjayBmb3IgUmF0ZUxpbWl0aW5nRW5hYmxlPT1G QUxTRSBzbyB0aGF0IHRoZSBldmVudCBpcyBhbHdheXMgY3JlYXRlZCBldmVuIGlmIGl0IHdpbGwg bm90IGJlIHVzZWQ6DQoNCiAgIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KICAgICAgICAg ICAgICAgICAgIEVWVF9USU1FUiB8IEVWVF9OT1RJRllfU0lHTkFMLA0KICAgICAgICAgICAgICAg ICAgIFRQTF9DQUxMQkFDSywNCiAgICAgICAgICAgICAgICAgICBVbmRpUmF0ZUxpbWl0ZXJDYWxs YmFjaywNCiAgICAgICAgICAgICAgICAgICBOaWMsDQogICAgICAgICAgICAgICAgICAgJk5pYy0+ UmF0ZUxpbWl0ZXINCiAgICAgICAgICAgICAgICAgICApOw0KICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KICAgICBnb3RvIEVycm9yQ3JlYXRlRXZlbnQ7DQogICB9DQoNCiAgIGlmIChOaWMt PlJhdGVMaW1pdGluZ0VuYWJsZSA9PSBUUlVFKSB7DQogICAgIFN0YXR1cyA9IGdCUy0+U2V0VGlt ZXIgKA0KICAgICAgICAgICAgICAgICAgICAgTmljLT5SYXRlTGltaXRlciwNCiAgICAgICAgICAg ICAgICAgICAgIFRpbWVyUGVyaW9kaWMsDQogICAgICAgICAgICAgICAgICAgICBQY2RHZXQzMiAo UmF0ZUxpbWl0aW5nRmFjdG9yKSAqIDEwMDAwDQogICAgICAgICAgICAgICAgICAgICApOw0KICAg ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQogICAgICAgZ290byBFcnJvclNldFRpbWVyOw0K ICAgICB9DQogICB9DQoNCj4gKyAgaWYgKE5pYy0+UmF0ZUxpbWl0aW5nRW5hYmxlID09IFRSVUUp IHsNCj4gKyAgICBnQlMtPlNldFRpbWVyICgmTmljLT5SYXRlTGltaXRlciwgVGltZXJDYW5jZWws IDApOw0KPiArICAgIGdCUy0+Q2xvc2VFdmVudCAoJk5pYy0+UmF0ZUxpbWl0ZXIpOyAgfQ0KDQou Li4gYW5kIHRoaXMgY29uZGl0aW9uYWwgY2hlY2sgbWF5IHRoZW4gYWxzbyBiZSByZW1vdmVkLg0K DQo+ICsgIGlmICgoTmljLT5SYXRlTGltaXRpbmdDcmVkaXRDb3VudCA9PSAwKSAmJiAoTmljLT5S YXRlTGltaXRpbmdFbmFibGUgPT0gVFJVRSkpIHsNCj4gKyAgICByZXR1cm4gUFhFX1NUQVRDT0RF X05PX0RBVEE7DQo+ICsgIH0NCj4gKw0KPiArICBTdGF0dXMgPSBOaWMtPlVzYkV0aC0+VXNiRXRo UmVjZWl2ZSAoQ2RiLCBOaWMtPlVzYkV0aCwgKFZPSUQNCj4gKyAqKUJ1bGtJbkRhdGEsICZEYXRh TGVuZ3RoKTsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICBOaWMtPlJlY2VpdmVT dGF0dXMgPSAwOw0KPiArICAgIGlmIChOaWMtPlJhdGVMaW1pdGluZ0VuYWJsZSA9PSBUUlVFKSB7 DQo+ICsgICAgICBPcmlnaW5hbFRwbCA9IGdCUy0+UmFpc2VUUEwgKFRQTF9OT1RJRlkpOw0KPiAr ICAgICAgaWYgKE5pYy0+UmF0ZUxpbWl0aW5nQ3JlZGl0Q291bnQgIT0gMCkgew0KPiArICAgICAg ICBOaWMtPlJhdGVMaW1pdGluZ0NyZWRpdENvdW50LS07DQo+ICsgICAgICB9DQo+ICsNCj4gKyAg ICAgIGdCUy0+UmVzdG9yZVRQTCAoT3JpZ2luYWxUcGwpOw0KPiArICAgIH0NCg0KVGhlIGNoZWNr IGZvciBSYXRlTGltaXRpbmdDcmVkaXRDb3VudCE9MCBpcyByZWR1bmRhbnQ6IGlmIFJhdGVMaW1p dGluZ0NyZWRpdENvdW50IGlzIHplcm8gdGhlbiB5b3UgY2Fubm90IHJlYWNoIHRoYXQgcG9pbnQg aW4gdGhlIGNvZGUgYW55d2F5Lg0KDQo+ICtbUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc1BhdGNoYWJs ZUluTW9kdWxlLCBQY2RzRHluYW1pYywgUGNkc0R5bmFtaWNFeF0NCj4gKyAgIyMgU3VwcG9ydCBy YXRlIGxpbWl0aW5nDQo+ICsNCj4gK2dVc2JOZXR3b3JrUGtnVG9rZW5TcGFjZUd1aWQuRW5hYmxl UmF0ZUxpbWl0aW5nfEZBTFNFfEJPT0xFQU58MHgwMDAxMA0KPiArMDAxDQoNCkkgd291bGQgc3Vn Z2VzdCB0aGF0IHRoZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSBUUlVFLg0KDQpUaGUgZG93bnNp ZGUgb2Ygc2V0dGluZyB0aGUgZGVmYXVsdCB2YWx1ZSB0byBUUlVFIGlzIHRoYXQgdGhlIG92ZXJh bGwgdGhyb3VnaHB1dCB3aWxsIGJlIHNsb3dlciAoYXMgcmVwb3J0ZWQgYnkgeW91KS4NCg0KVGhl IGRvd25zaWRlIG9mIHNldHRpbmcgdGhlIGRlZmF1bHQgdmFsdWUgdG8gRkFMU0UgaXMgdGhhdCB0 aGUgc3lzdGVtIHdpbGwgbG9jayB1cCBjb21wbGV0ZWx5IChhcyByZXBvcnRlZCBieSBtZSBhbmQg b3RoZXJzKS4NCg0KU2V0dGluZyB0byBUUlVFIGJ5IGRlZmF1bHQgaXMgdGhlcmVmb3JlIGxlc3Mg aGFybWZ1bCBvdmVyYWxsLg0KDQpUaGFua3MsDQoNCk1pY2hhZWwNCg0KLVRoZSBpbmZvcm1hdGlv biBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBiZSBjb25maWRlbnRpYWwgYW5kIHByb3By aWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMgKEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBp cyBpbnRlbmRlZCB0byBiZSByZWFkIG9ubHkgYnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRv IHdob20gaXQgaXMgYWRkcmVzc2VkIG9yIGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVy IG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBv biBub3RpY2UgdGhhdCBhbnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZv cm0sIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIFBsZWFzZSBwcm9tcHRseSBub3RpZnkgdGhlIHNl bmRlciBieSByZXBseSBlLW1haWwgb3IgYnkgdGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5k IHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0K