From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.3209.1632879137953768052 for ; Tue, 28 Sep 2021 18:32:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=zqle3iHN; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: zhichao.gao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10121"; a="211922225" X-IronPort-AV: E=Sophos;i="5.85,331,1624345200"; d="scan'208";a="211922225" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2021 18:32:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,330,1624345200"; d="scan'208";a="479019263" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga007.fm.intel.com with ESMTP; 28 Sep 2021 18:32:16 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 28 Sep 2021 18:32:16 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 28 Sep 2021 18:32:16 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 28 Sep 2021 18:32:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I+S+5AVot1AxQIHFOMsKt8sQgC4SosrnSQ+HgJue2qEs/q6Yyvb1Y8CoTkDcbp1/gyteUCZD1AmFhwQi4jI+BYclEiDcOL6fWGYiSl7CVVQJLwTEMJ4kgGxz4NngGEWmYyXAqcLmsnNMAPVlaLL7eZN+l4hRGFqqV22mrcXxYAVxoKtjIqyJwnv7wj2f753uN1oQtzP97HJRPxKcFZvGb1q0d61VBi3xHHpi9zeIY7djue83lxh4Bv0jzK0GPLD4RzzxZUl9T8BlSOKF11M1jnu7DAA1URrDne/BGrtYBpvC6vRma/UpNcdMsD/PFXMVMPF0FWk6LVDcS5RF8SMSAA== 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; bh=Rt94h/pgyRFc9fKanW3VPEEoeyq9lRX8UDc7LMqgE0w=; b=OBjMkPY0jzG7V9n3WXYcZ2iz2cQSbhNzjADjzChdCphvZwOcOTsuMSchJ2ic6ZcIa5Ffg2V+1mkyKT2VKMLxChmv2QBe1LlAP27NZMssVw/g8Q3PEcZ7t86MVl79k6hQnle5uJPFOb7+o86QbDeQuAvcbXeZ0sgN5S79wqqS2MJ9HmT25AM2DFCwumj9b3/Vz68n4yJJtnyl5s+DbKWX8era2Iw8zOG1s3iVnyF/9/RFdKwHOF4+4t+hycVPOO6qs34piOgQ18clLtU7pc4wAVh+QNrTMz5G/90Hi6nxGeMvOm/EZ6vt37/E39rW5eP8MoT1hdYSho3zBpx6MIoQJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rt94h/pgyRFc9fKanW3VPEEoeyq9lRX8UDc7LMqgE0w=; b=zqle3iHNeXyhFRG9HA0HpCAefwzxuGKY6yuGbb6Gn0PU+/IjFJUS6Z1wtFvGWnlkVsDU6UY9GdpLhBGylM7GsZ/6hKx95Dg7Q8lAXDV8pKp9yxqPfZIIOMMkYshiBdCh8R2wyGZT0p2Ven6D+JDfCum4WbFeNG+fzGWa8v+RIsQ= Received: from DM4PR11MB5277.namprd11.prod.outlook.com (2603:10b6:5:388::23) by DM5PR11MB1964.namprd11.prod.outlook.com (2603:10b6:3:111::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.18; Wed, 29 Sep 2021 01:32:15 +0000 Received: from DM4PR11MB5277.namprd11.prod.outlook.com ([fe80::fcab:50dd:7598:3b40]) by DM4PR11MB5277.namprd11.prod.outlook.com ([fe80::fcab:50dd:7598:3b40%4]) with mapi id 15.20.4544.022; Wed, 29 Sep 2021 01:32:15 +0000 From: "Gao, Zhichao" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Wang, Jian J" , "Ni, Ray" Subject: Re: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Thread-Topic: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Thread-Index: AQHXs27BJjwYrtOnXEOmUFepIXsuNau44hQwgAAJ+ACAAVB84A== Date: Wed, 29 Sep 2021 01:32:15 +0000 Message-ID: References: <16A89C34DEA6347B.26412@groups.io> <00d201d7b429$75911460$60b33d20$@byosoft.com.cn> In-Reply-To: <00d201d7b429$75911460$60b33d20$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5e982554-061e-4d67-097d-08d982e8f7da x-ms-traffictypediagnostic: DM5PR11MB1964: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:119; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GS2AlwmTcz5OaMApyyFJLQOAxc7s7YzgXREojgdEzAzyOzMTRmx6MIXyCG0xVZ+cC4BMlzEPTwMU6soVI3RXmnBGECJcWKgs/tfAtYvMrO8rzEpJOa9+zsoH2t43Kg+dLYj9cx0U/llZPUlq9NesgV6BjaX8I4J4nhxwmY64AFnxab2oRY5hEzaYn66WbSVjIt6RdULgnRF2LlVeKGKUTyxQT2GMv3migrmEGkxXZXOZD0HysIGicJQ0qTTDwSLojpCFIz76cXVCgkUUqG9yx7+/5X7+8zoJP/aW3EnSNdrwU+NyBIOTWHDJYF7HY65by6a23kJMsZK0kHl3pwP5X/ztMiOSYr55ylpt3AhvDIuPIeXabxJr8QYzSMarwHBC32nbJXI9CRmC1DwWiAwqEXoVJMRyYApUPoNJ/QOkAkzqNhGAiM1qTRmvK+Z3e6M1WrqiQOcvJLVYtz+jD0znOrAOL0FLQEpUqnNhjDNFM6nMLRqow+jZzlIoi5WvNPY0SzUYFCsJ4bEZ6eSfshp4ygs9NuXaDrG4fevUmKXSKMegChEmWvkiFs6+G8y85vVq/J7nTAzmR225Mo9Wsxp9F6XgvjAGgHv2QE7lSzEuk26URmqykK1swtmCrhA7J/tKSMlLzWv+ZQlQIMpocDIEHI0GRwO+Sh2UWsXPawCEXjB5FuMsk2N4bUmB6ZqgToB7xUaqNWvT6EfyRaJbOytdZqB9xQ8UnxHg0tz7kbZQB3wYqEBEOvAc0JF+wiwJBbURc/1Ht1q1VPyzva7Lw87gW9MpDMAnNdvsXOlMsIf2aNsIzhp83tUNV/x884qXuDfCLeh9m3q0Xbaqm4ChKDt5jQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5277.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(84040400005)(83380400001)(76116006)(66556008)(2906002)(66946007)(9686003)(55016002)(7696005)(5660300002)(52536014)(107886003)(64756008)(186003)(33656002)(66476007)(38100700002)(508600001)(38070700005)(966005)(86362001)(66446008)(110136005)(71200400001)(54906003)(8676002)(4326008)(122000001)(316002)(26005)(8936002)(53546011)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NkdFWnpKaCtKS3p1MWdoWjVrYnBDMlFlVlI5K2tjek9oY3Z5dWRzMlNrc25w?= =?utf-8?B?R0NRYzZmVXE2ODc3RDI4SWpZbFhVR3RRU2kzTFZnUDNKQ3JSaXRTZ1RCMnps?= =?utf-8?B?OVIySU85ZlhaSTU3Tnh2YzRlR3M1a0FnTXBaUWVUb2dJYnBYUVljTzhrSlox?= =?utf-8?B?aTdXUHpISmJxUGJkQzFWRitWWVlWeWRIR1NSNmhScUh5amdzYTRETXZ2cDVt?= =?utf-8?B?VHliNlIyOGpKYjFGL1ZZMHJDMnlhMWd1M0NVdXdzYVZubVFBNVFSTGNGd0ZS?= =?utf-8?B?OVRRc01kcEo4aXNybTRzWUVkL09DVzc3bGI3Z1pvNmlxU2dzTnhjK3ZDMmtW?= =?utf-8?B?alZXcW50UG9MZDdUUlJ1WUp1WEVYa3l5SEdUSThDdlR2K2hwMGxOSmJWL3lE?= =?utf-8?B?MHEyUExsbTd6Z0c4UUR5NWowZk1jWkwvVmNtSGtGa1NZSE4va3cyNUlGcGZO?= =?utf-8?B?ekp5Y1VGR0dpbVhRUENNQ3JCOVNzVUpxVlcyRDR1YVltS25WTEpabDg0NHov?= =?utf-8?B?WTZJYU52TWRBekZBT2IzYWN3TDNia0J1cHYyQUlKNUpGeFJwZWVYYkw2aU5o?= =?utf-8?B?aUpFdUQvRDBkQXNPdGJUWGdpUU1sQWV2ZFIxOTBibFh3V2NCaE9lVXNkT0JC?= =?utf-8?B?aUVmYUo5TmpqWXhZbzd6L3ArU1VRc1lqRTlrZmNEY3RNdms2a05mV0IyRUlh?= =?utf-8?B?WFA0Wkk4d28xTGhUVVNyMjdkVGw1TGpiSXVXcWtkRnlTTyszNTZ0cXEveGt3?= =?utf-8?B?ckswUzdSQ05rVDE4UUhSV1FmNHdyMGZQbGd5cEZmL3BQTVhQekdwcUJnc2Yz?= =?utf-8?B?QVlkbzVRWVRvOXdlY3ZiaGhrUThPSFZQakx4NVFEZXZtMjE0eHRxbXhmcVdm?= =?utf-8?B?L2lRUVJtTjVVa2htczFwa0x6UjZ2Zm96aXF0SmpXK0dMMER2NWdDWi81T3Rl?= =?utf-8?B?M2E5cFlkQTNXM0VScTZTUDlCcExqQ0pDMWpZcWpJNXN2NXc5QjkzRU1hMnM5?= =?utf-8?B?VkluY0pvTlprOEgxc3d0eFIwWTNucGo0cjFhMDNWbzFTQkRhM1hjSGtBMFZk?= =?utf-8?B?UGtiSDJ2cnVLNmxrZ3B5OTBuZDFINWNFOGJ3M3A4Q0tGMm5xSGRKNlBBZG85?= =?utf-8?B?cHIyTnNNb3pmK3hQQ0RsUTJyWk9GSjlXdzNUbytzeGw2VWw0bytoNFdiNU9O?= =?utf-8?B?KzhNenN4cXZYRVorMkNMTDdiL3dJUU0vMDloWjZCbkhGOXB0YWR1SFVrVFpH?= =?utf-8?B?NDRkS2tPS1c3NnBQM0kzRHI0QkI1eVlCRlpVbmFyd2Nsa0o0Yk5za1lvM3Zx?= =?utf-8?B?ZmVkOVNjM0xidFpLOC9vbm5xYUhidjdjTmY2YmVSTkk5bXUvUi9jamhNOEFV?= =?utf-8?B?V1FOKzZHSDFUSlNvMmZRd1h6VXVRWG5pWllWSUcrQjZMQ20zT3F6ZU1sVjJ2?= =?utf-8?B?WkVpaFVTcVc5aE9GdUI5SmlBWHJHR0ZrNmo5cEE3T0lzUzRxSzZVaFZDbm03?= =?utf-8?B?V1ozYXJxTWtHUXhtNmVhbjdzeEQ5andJbEZ6b0oyOEFQbUlWS1lnSEc1QTlr?= =?utf-8?B?aXR6MG9QdW93UXB3cUVZS2JxL1NxVXJDVUxVa2U2YWZ4b3puTWppbS85WEZS?= =?utf-8?B?Vm96cGRleU1mNU4zVFZnQXdOOUNmNVZ0ZW5GbmY0blM1SC93MkcyVElQZFJj?= =?utf-8?B?SkNUcjEzNkhoVXRXMTN3TmdzbmxVeTRIZ2FxZDZHd3QxUUUvdGlsOGgycTFt?= =?utf-8?Q?0ZQvkoWIHTgsrp4RMcXp7cN+VJR2/NqhNEfIBgW?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5277.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e982554-061e-4d67-097d-08d982e8f7da X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2021 01:32:15.1114 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: FEE26uAwr7jyRRF4jCkyoNCOzX0nfyRspRlzbC/SpTb/8rkfOhahus65CYfBG1RBGYGPG2Ao7cdgpVaX3R/+lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1964 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBoYXZlIGNyZWF0ZWQgdGhlIFBSIGF0OiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvcHVsbC8yMDE5Lg0KSXQgc2hvd3MgYWxsIHRoZSBjaGVja3MgYXJlIHBhc3NlZC4gQ2FuIHlv dSBoZWxwIHRvIGFkZCB5b3VyICdwdXNoJyBsYWJlbCBhbmQgcmVvcGVuIGl0Pw0KDQpUaGFua3Ms DQpaaGljaGFvDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gZ2Fv bGltaW5nDQo+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAyOCwgMjAyMSAxOjI3IFBNDQo+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5j b20+DQo+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IE5pLCBSYXkg PHJheS5uaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRD SCBWM10NCj4gTWRlTW9kdWxlUGtnL0Jvb3RNYW5hZ2VyTWVudUFwcDogTGltaXQgc3RyaW5nIGRy YXdpbmcgd2l0aGluIG9uZSBsaW5lDQo+IA0KPiBJIGFtIG9rIGZvciB0aGlzIGNoYW5nZS4gUmV2 aWV3ZWQtYnk6IExpbWluZyBHYW8NCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gDQo+ ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+IOWPkeS7tuS6ujogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiDku6PooaggR2FvLA0KPiBaaGljaGFvDQo+ID4g 5Y+R6YCB5pe26Ze0OiAyMDIx5bm0OeaciDI45pelIDEzOjE4DQo+ID4g5pS25Lu25Lq6OiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ ID4g5oqE6YCBOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IExpbWluZyBH YW8NCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTmksIFJheSA8cmF5Lm5pQGludGVs LmNvbT4NCj4gPiDkuLvpopg6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYzXQ0KPiBNZGVNb2R1 bGVQa2cvQm9vdE1hbmFnZXJNZW51QXBwOg0KPiA+IExpbWl0IHN0cmluZyBkcmF3aW5nIHdpdGhp biBvbmUgbGluZQ0KPiA+DQo+ID4gSGkgTGltaW5nL1JheSwNCj4gPg0KPiA+IEkgaGF2ZSB1cGRh dGVkIHRoZSBjb21taXQgbWVzc2FnZSBhbmQgdGhlIEJaIGNvbW1lbnRzLiBEbyB5b3UgYWdyZWUN Cj4gdG8NCj4gPiBtZXJnZSB0aGUgY29kZT8NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBaaGljaGFv DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBHYW8s DQo+ID4gPiBaaGljaGFvDQo+ID4gPiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAyNywgMjAyMSAz OjEwIFBNDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IExpbWluZyBHYW8NCj4gPiA+IDxnYW9saW1p bmdAYnlvc29mdC5jb20uY24+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gU3Vi amVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCBWM10NCj4gTWRlTW9kdWxlUGtnL0Jvb3RNYW5hZ2Vy TWVudUFwcDoNCj4gPiA+IExpbWl0IHN0cmluZyBkcmF3aW5nIHdpdGhpbiBvbmUgbGluZQ0KPiA+ ID4NCj4gPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNn aT9pZD0zNTkwDQo+ID4gPg0KPiA+ID4gTGltaXQgdGhlIGRyYXcgYm94IGFsd2F5cyB3aXRoaW4g dGhlIHNjcmVlbidzIGNvbHVtbiBhbmQgcm93Lg0KPiA+ID4gTGltaXQgdGhlIHN0cmluZyBkcmF3 aW5nIHdpdGhpbiBvbmUgbGluZS5Gb3IgdGhlIGluY29tcGxldGVkIHN0cmluZw0KPiA+ID4gdGhl DQo+IGxhc3QgMw0KPiA+ID4gY2hhcmFjdGVycyBpbiBvbmUgbGluZSB3b3VsZGJlIHJlcGxhY2Vk IHdpdGggIi4uLiIuDQo+ID4gPg0KPiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+DQo+ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu Pg0KPiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYt Ynk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+UmV2aWV3ZWQtYnk6IFJheQ0K PiA+ID4gTmkgPHJheS5uaUBpbnRlbC5jb20+IC0tLVYyOkRyb3AgdGhlIGNoYW5nZSBpbiBVZWZp Qm9vdE1hbmFnZXJMaWIgaW4NCj4gPiBWMS5BZGQNCj4gPiA+IHRoZSBsaW1pdGF0aW9uIGluIEJv b3RNYW5hZ2VyTWVudUFwcCBpbnN0ZWFkLlYzOlVwZGF0ZSB0aGUgY29tbWl0DQo+ID4gPiBtZXNz YWdlIG9ubHkuDQo+ID4gPiAgLi4uL0Jvb3RNYW5hZ2VyTWVudUFwcC9Cb290TWFuYWdlck1lbnUu YyAgICAgIHwgNzINCj4gPiA+ICsrKysrKysrKysrKysrKysrKy0NCj4gPiA+ICAxIGZpbGUgY2hh bmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZm IC0tZ2l0DQo+ID4gPg0KPiBhL01kZU1vZHVsZVBrZy9BcHBsaWNhdGlvbi9Cb290TWFuYWdlck1l bnVBcHAvQm9vdE1hbmFnZXJNZW51Lg0KPiA+ID4gYw0KPiA+ID4NCj4gYi9NZGVNb2R1bGVQa2cv QXBwbGljYXRpb24vQm9vdE1hbmFnZXJNZW51QXBwL0Jvb3RNYW5hZ2VyTWVudS4NCj4gPiA+IGMN Cj4gPiA+IGluZGV4IDllNzI5MDc0ZWMuLmQ0YmRlYmEwNzMgMTAwNjQ0DQo+ID4gPiAtLS0NCj4g PiA+DQo+IGEvTWRlTW9kdWxlUGtnL0FwcGxpY2F0aW9uL0Jvb3RNYW5hZ2VyTWVudUFwcC9Cb290 TWFuYWdlck1lbnUuDQo+ID4gPiBjDQo+ID4gPiArKysNCj4gPiA+DQo+IGIvTWRlTW9kdWxlUGtn L0FwcGxpY2F0aW9uL0Jvb3RNYW5hZ2VyTWVudUFwcC9Cb290TWFuYWdlck1lbnUuDQo+ID4gPiBj DQo+ID4gPiBAQCAtMSw3ICsxLDcgQEANCj4gPiA+ICAvKiogQGZpbGUgICBUaGUgYXBwbGljYXRp b24gdG8gc2hvdyB0aGUgQm9vdCBNYW5hZ2VyIE1lbnUuIC1Db3B5cmlnaHQNCj4gPiAoYykNCj4g PiA+IDIwMTEgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+K0NvcHlyaWdodA0KPiA+ID4gKGMpDQo+IDIwMTEgLQ0KPiA+ID4gMjAyMSwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjoNCj4gPiA+IEJTRC0yLUNsYXVzZS1QYXRlbnQgICoqL0BAIC00NSw5ICs0NSw1NiBAQCBQ cmludFN0cmluZ0F0ICgNCj4gPiA+ICAgIElOIENIQVIxNiAgICAqU3RyaW5nICAgKSB7KyAgVUlO VE4gICAgICAgICBTY3JlZW5XaWR0aDsrDQo+ID4gVUlOVE4NCj4gPiA+IFNjcmVlblJvd3M7KyAg Q0hBUjE2ICAgICAgICAqVHVybmNhdGVTdHJpbmc7KyAgRUZJX1NUQVRVUw0KPiA+IFN0YXR1czsr ICBVSU5UTg0KPiA+ID4gU2hvd2luZ0xlbmd0aDsgICAgZ1NULT5Db25PdXQtPlNldEN1cnNvclBv c2l0aW9uIChnU1QtPkNvbk91dCwNCj4gPiBDb2x1bW4sDQo+ID4gPiBSb3cpOy0gIHJldHVybiBQ cmludCAoTCIlcyIsIFN0cmluZyk7KysgIGdTVC0+Q29uT3V0LT5RdWVyeU1vZGUgKCsNCj4gPiA+ IGdTVC0+Q29uT3V0LCsgICAgICAgICAgICAgICAgIGdTVC0+Q29uT3V0LT5Nb2RlLT5Nb2RlLCsN Cj4gPiA+ICZTY3JlZW5XaWR0aCwrDQo+ID4gJlNjcmVlblJvd3MrICAgICAgICAgICAgICAgICAp OysrICBpZiAoQ29sdW1uID4NCj4gPiA+IChTY3JlZW5XaWR0aCAtIDEpIHx8IFJvdyA+IChTY3Jl ZW5Sb3dzIC0gMSkpIHsrICAgIHJldHVybiAwOysgIH0rKyAgaWYNCj4gPiAoKFN0ckxlbg0KPiA+ ID4gKFN0cmluZykgKyBDb2x1bW4pID4gKFNjcmVlbldpZHRoIC0gMSkpIHsrICAgIC8vKyAgICAv LyB8ICAgICAgLQ0KPiA+IFNjcmVlbldpZHRoIC0gICAgICAgfCsNCj4gPiA+IC8vIC4uLkNvbHVt bi4uLi4uLi4uLi4uLi4uLi4uLi4uLisgICAgLy8gVHVybmNhdGVTdHJpbmcgbGVuZ3RoIHNob3Vs ZA0KPiBsZWF2ZSBvbmUNCj4gPiA+IGNoYXJhY3RlciBmb3IgZHJhdyBib3ggYW5kKyAgICAvLyBy ZXF1aXJlIG9uZSBjaGFyYWN0ZXIgZm9yIHN0cmluZyBlbmQuKw0KPiA+IC8vKw0KPiA+ID4gU2hv d2luZ0xlbmd0aCA9IFNjcmVlbldpZHRoIC0gQ29sdW1uIC0gMTsrICAgIFR1cm5jYXRlU3RyaW5n ID0NCj4gPiBBbGxvY2F0ZVBvb2wNCj4gPiA+ICgoU2hvd2luZ0xlbmd0aCArIDEpICogc2l6ZW9m IChDSEFSMTYpKTsrKyAgICBpZiAoVHVybmNhdGVTdHJpbmcgPT0NCj4gTlVMTCkNCj4gPiB7Kw0K PiA+ID4gcmV0dXJuIDA7KyAgICB9KysgICAgU3RhdHVzID0gU3RybkNweVMgKFR1cm5jYXRlU3Ry aW5nLCBTaG93aW5nTGVuZ3RoICsNCj4gPiAxLA0KPiA+ID4gU3RyaW5nLCBTaG93aW5nTGVuZ3Ro IC0gMyk7KysgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgeysNCj4gRnJlZVBvb2wNCj4gPiA+ IChUdXJuY2F0ZVN0cmluZyk7KyAgICAgIHJldHVybiAwOysgICAgfSsrICAgICooVHVybmNhdGVT dHJpbmcgKw0KPiA+IFNob3dpbmdMZW5ndGggLSAzKQ0KPiA+ID4gPSBMJy4nOysgICAgKihUdXJu Y2F0ZVN0cmluZyArIFNob3dpbmdMZW5ndGggLSAyKSA9IEwnLic7Kw0KPiA+ICooVHVybmNhdGVT dHJpbmcgKw0KPiA+ID4gU2hvd2luZ0xlbmd0aCAtIDEpID0gTCcuJzsrICAgICooVHVybmNhdGVT dHJpbmcgKyBTaG93aW5nTGVuZ3RoKSAgICAgPQ0KPiA+IEwnXDAnOysNCj4gPiA+IFNob3dpbmdM ZW5ndGggPSBQcmludCAoTCIlcyIsIFR1cm5jYXRlU3RyaW5nKTsrICAgIEZyZWVQb29sDQo+ID4g PiAoVHVybmNhdGVTdHJpbmcpOysgICAgcmV0dXJuIFNob3dpbmdMZW5ndGg7KyAgfSBlbHNlIHsr ICAgIHJldHVybiBQcmludA0KPiA+IChMIiVzIiwNCj4gPiA+IFN0cmluZyk7KyAgfSB9ICAvKipA QCAtNjgsNyArMTE1LDIyIEBAIFByaW50Q2hhckF0ICgNCj4gPiA+ICAgIENIQVIxNiAgICAgICBD aGFyYWN0ZXIgICApIHsrICBVSU5UTiAgICAgICAgIFNjcmVlbldpZHRoOysNCj4gPiBVSU5UTg0K PiA+ID4gU2NyZWVuUm93czsrICAgZ1NULT5Db25PdXQtPlNldEN1cnNvclBvc2l0aW9uIChnU1Qt PkNvbk91dCwgQ29sdW1uLA0KPiA+ID4gUm93KTsrKyAgZ1NULT5Db25PdXQtPlF1ZXJ5TW9kZSAo Kw0KPiA+IGdTVC0+Q29uT3V0LCsgICAgICAgICAgICAgICAgIGdTVC0NCj4gPiA+ID5Db25PdXQt Pk1vZGUtPk1vZGUsKyAgICAgICAgICAgICAgICAgJlNjcmVlbldpZHRoLCsNCj4gPiA+ICZTY3Jl ZW5Sb3dzKyAgICAgICAgICAgICAgICAgKTsrKyAgaWYgKENvbHVtbiA+IChTY3JlZW5XaWR0aCAt IDEpIHx8DQo+ID4gUm93ID4NCj4gPiA+IChTY3JlZW5Sb3dzIC0gMSkpIHsrICAgIHJldHVybiAw OysgIH0rICAgcmV0dXJuIFByaW50IChMIiVjIiwNCj4gQ2hhcmFjdGVyKTsgfQ0KPiA+IEBAIC0N Cj4gPiA+IDE5Myw3ICsyNTUsMTEgQEAgSW5pdGlhbGl6ZUJvb3RNZW51U2NyZWVuICgNCj4gPiA+ ICAgICBNYXhQcmludFJvd3MgPSBSb3cgLSA2OyAgIFVuU2VsZWN0YWJsZUl0bWVzID0NCj4gPiBU SVRMRV9UT0tFTl9DT1VOVCArIDIgKw0KPiA+ID4gSEVMUF9UT0tFTl9DT1VOVCArIDI7LSAgQm9v dE1lbnVEYXRhLT5NZW51U2NyZWVuLldpZHRoID0NCj4gPiA+IE1heFN0cldpZHRoICsgODsrICBp ZiAoTWF4U3RyV2lkdGggKyA4ID4gQ29sdW1uKSB7KyAgICBCb290TWVudURhdGEtDQo+ID4gPiA+ TWVudVNjcmVlbi5XaWR0aCA9IENvbHVtbjsrICB9IGVsc2UgeysgICAgQm9vdE1lbnVEYXRhLQ0K PiA+ID4gPk1lbnVTY3JlZW4uV2lkdGggPSBNYXhTdHJXaWR0aCArIDg7KyAgfSAgIGlmDQo+ID4g KEJvb3RNZW51RGF0YS0+SXRlbUNvdW50DQo+ID4gPiArIFVuU2VsZWN0YWJsZUl0bWVzID4gTWF4 UHJpbnRSb3dzKSB7ICAgICBCb290TWVudURhdGEtDQo+ID4gPiA+TWVudVNjcmVlbi5IZWlnaHQg PSBNYXhQcmludFJvd3M7ICAgICBCb290TWVudURhdGEtDQo+ID4gPiA+U2Nyb2xsQmFyQ29udHJv bC5IYXNTY3JvbGxCYXIgPSBUUlVFOy0tDQo+ID4gPiAyLjMxLjEud2luZG93cy4xDQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPiAtPS09LT0tPS09LT0NCj4gPiA+IEdyb3Vwcy5pbyBMaW5rczog WW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4NCj4gPiA+IFZpZXcv UmVwbHkgT25saW5lICgjODExNTMpOg0KPiA+IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZl bC9tZXNzYWdlLzgxMTUzDQo+ID4gPiBNdXRlIFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlv L210Lzg1ODk1MDIyLzE3Njg3NTYNCj4gPiA+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsy Lmdyb3Vwcy5pbw0KPiA+ID4gVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9k ZXZlbC91bnN1Yg0KPiA+IFt6aGljaGFvLmdhb0BpbnRlbC5jb21dDQo+ID4gPiAtPS09LT0tPS09 LT0NCj4gPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KPiANCg0K