From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web10.3303.1584667702473980261 for ; Thu, 19 Mar 2020 18:28:22 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=03487a74f0=abner.chang@hpe.com) Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02K1QwYS014597; Fri, 20 Mar 2020 01:28:22 GMT Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0b-002e3701.pphosted.com with ESMTP id 2yvm62r07h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Mar 2020 01:28:21 +0000 Received: from G2W6311.americas.hpqcorp.net (g2w6311.austin.hp.com [16.197.64.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g4t3425.houston.hpe.com (Postfix) with ESMTPS id 23F249D; Fri, 20 Mar 2020 01:28:20 +0000 (UTC) Received: from G9W8666.americas.hpqcorp.net (16.220.49.25) by G2W6311.americas.hpqcorp.net (16.197.64.53) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 20 Mar 2020 01:28:19 +0000 Received: from G1W8106.americas.hpqcorp.net (16.193.72.61) by G9W8666.americas.hpqcorp.net (16.220.49.25) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 20 Mar 2020 01:28:19 +0000 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (15.241.52.10) by G1W8106.americas.hpqcorp.net (16.193.72.61) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 20 Mar 2020 01:28:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TEShsTtOxUxbRU4yS/PhoLMmUghuh4KxyfNUFb8zaJiiQTXrp566gMp8lE1cvvHV6WAwPebz3TJaP64idqspUP0DecA7+BY341OyLwHW6cgkbO6MrhatiGMgeb6bABA3vX7p3sGrDXgAA5ma7pwA2LuH9SSo546OggyvdbAlFc6J196fNHXxrApV5FFwjWvcKlPfi1huxUf2XhapFCQRKINxSITBarQCGEItGLSv7gh+/jhTKVegbKWAJwEkH7rOpMiMOA+4Oz8KmbVlGy+2sG7VJcAyeY90lFwprQRtZqVLepu2YSLQhxiRGxmZtGxEAbbcW2KHiscIK4DiU84v5w== 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-SenderADCheck; bh=TZgnHOJEmJ9pzG/mgObEuyCyT9E+0ylMs3fVAqTr2WU=; b=cZ+8kjlH+kkaetVu59eeV9WVpufGJkVUJt8YajqdGxNeGIjrfFq6R0by3acb0PckGHjP1xXFhJ4LYXCKV6YMWmrN/fRPse3snjy8yjk70PmWM9Mi1iym/kgXEqJpjzMib9S0jibeJKx9roZp0j8ldHoANO5Bls3B8Xl5WJZlUyjy6XOpkrlmkrkvCwZATztdJxKFmP7nHSwlt6jbwIf1LNaWRij7pd+3XmHDV0baYicJ0oVQXY3eUe1QypBc+py+XqZQMUoGGwpDjk/VvivkaB6krQjMy4d5fDx3aIQD1RJAGOOBGKdE2toxWm4SZHC6TScJmjzC1aSMHzcJAvqTMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from TU4PR8401MB0429.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:770a::14) by TU4PR8401MB0734.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:770e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.18; Fri, 20 Mar 2020 01:28:16 +0000 Received: from TU4PR8401MB0429.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b0b5:c067:8f22:a402]) by TU4PR8401MB0429.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b0b5:c067:8f22:a402%6]) with mapi id 15.20.2835.017; Fri, 20 Mar 2020 01:28:16 +0000 From: "Abner Chang" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "Bi, Dandan" CC: Leif Lindholm , "Gao, Liming" , Ard Biesheuvel , Laszlo Ersek , "Schaefer, Daniel (DualStudy)" , "Chen, Gilbert" Subject: Re: [edk2-devel] [edk2/master PATCH DxeIplHandoffLib v1] MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl Thread-Topic: [edk2-devel] [edk2/master PATCH DxeIplHandoffLib v1] MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl Thread-Index: AQHV/ZvQf/DojHJI50G/1gGePOb/m6hPPiewgAFsQACAAATScA== Date: Fri, 20 Mar 2020 01:28:16 +0000 Message-ID: References: <20200309102740.8591-1-abner.chang@hpe.com> <3C0D5C461C9E904E8F62152F6274C0BB40D7A9FA@SHSMSX104.ccr.corp.intel.com> <3C0D5C461C9E904E8F62152F6274C0BB40D806BE@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [1.34.113.40] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 18754d7b-d838-4dbf-2381-08d7cc6df753 x-ms-traffictypediagnostic: TU4PR8401MB0734: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3044; x-forefront-prvs: 03484C0ABF x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39860400002)(136003)(396003)(376002)(366004)(346002)(199004)(8676002)(81166006)(52536014)(66556008)(7696005)(66946007)(81156014)(110136005)(66476007)(5660300002)(478600001)(76116006)(55016002)(19627235002)(966005)(9686003)(33656002)(186003)(316002)(30864003)(53546011)(6506007)(2906002)(8936002)(54906003)(4326008)(71200400001)(86362001)(66446008)(64756008)(26005)(213903007);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR8401MB0734;H:TU4PR8401MB0429.NAMPRD84.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1; received-spf: None (protection.outlook.com: hpe.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ECHkkeWk315e8MhboWHVfLZXY9YiDnEWmEacTzAc1VyA+M5wBCJ1ob8Wznu29UwDBYaiyRYl+QCfbcO5aLpTjMmknFs6za4Ov+cCdKSCN6xWvXXrdtanGqS4IoK/wZRp+4h7VSfEoDTZyVBVKZbjm04MSryugSf3zmGnxcILiVvXNlz08nD4a7pwtxVrvAGeKZHnHp94C1PC+thX4tOwMfBOvjSALhwOv/llOd8mIygBWorOecWx2fmx+lHlPI+n2NM+qZA0GLNmhu2iu3GTV3N1xARJgicfH1JHQU9h+xiKFiR86Mg1KLuR5+MQyCp+KCtMwu239KLgCuss+eTahHkT4a5RxvI0s8N1iirw6jHdgzyaYYpfKwgQa0FySDELDhd9/KRokEOoX5T78JTNnYZ4Ie0iTOv2YPcSGiYW6hNwNM0c04SF4QNHhoIdGuOtPJ+va39kAWJ6jsMVIHE6eOjBWZrFpcWwTx47sIv0Vt3rclwGLdqdy4N8i4O1JTJ8pRCRAdaq8Gul/tZz5EPhu/pdyxgDNdffbzMDyXJHqoR2dVdWVuWTULlK5eFCO+Es3v3SywBF4mTI6myucUpubw== x-ms-exchange-antispam-messagedata: kMxBIVLwgNYReUFkiRfxfBtEMW8xCsEguwPgQYbZHCTau+zncCRzQVS7jpRBEbuQ5UqmYHDlkLFqykOEdyXsQ7ARjUe2fVasMvlbfuKSnY554S270PMK6fRx/zq9xEDJjbBSEl/tyiv2BbtDvvCn8A== X-MS-Exchange-CrossTenant-Network-Message-Id: 18754d7b-d838-4dbf-2381-08d7cc6df753 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2020 01:28:16.7537 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uUbYujsD9vX94zyl/if/GEu7XpWJRno5m16SNe2j5aZgqMEQH7qhlit1vxe8fCSjRDgyCFwaiX5J5rLnOmUw/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR8401MB0734 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.645 definitions=2020-03-19_10:2020-03-19,2020-03-19 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 impostorscore=0 adultscore=0 mlxscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003200005 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCBb bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tXQ0KPiBTZW50OiBGcmlkYXksIE1hcmNo IDIwLCAyMDIwIDk6MDAgQU0NCj4gVG86IENoYW5nLCBBYm5lciAoSFBTIFNXL0ZXIFRlY2hub2xv Z2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQmks IERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbA0KPiBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFp bmMuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsNCj4gQXJkIEJpZXNo ZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBMYXN6bG8gRXJzZWsNCj4gPGxlcnNl a0ByZWRoYXQuY29tPjsgU2NoYWVmZXIsIERhbmllbCAoRHVhbFN0dWR5KQ0KPiA8ZGFuaWVsLnNj aGFlZmVyQGhwZS5jb20+OyBDaGVuLCBHaWxiZXJ0IDxnaWxiZXJ0LmNoZW5AaHBlLmNvbT4NCj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbZWRrMi9tYXN0ZXIgUEFUQ0ggRHhlSXBsSGFuZG9m ZkxpYiB2MV0NCj4gTWRlUGtnL0R4ZUlwbEhhbmRvZmZMaWJOdWxsTGliOiBBYnN0cmFjdCBEeGVJ cGwNCj4gDQo+IEFibmVyLA0KPiANCj4gSWYgdGhlIEFSTS9BQVJDSDY0L1JJU0NWNjQgY29udGVu dCByZXF1aXJlZCBieSBEeGVJcGwgd2VyZSBhZGRlZCB0bw0KPiBNZGVQa2cgb3IgTWRlTW9kdWxl UGtnIGNvdWxkIHdlIHJlbW92ZSB0aGUgbmVlZCBmb3IgdGhpcyBuZXcgbGliIGNsYXNzPw0KVGhh dCBpcyBubyBwcm9ibGVtIEkgY2FuIHNlZSBub3cgaWYgRHhlSXBsIGhhcyBubyBhbnkgZGVwZW5k ZW5jeSB3aXRoIHByb2Nlc3NvciBhcmNoaXRlY3R1cmUgcGFja2FnZS4NCj4gDQo+IFdoYXQgUklT Q1Y2NCBjb250ZW50IG5lZWRzIHRvIGJlIGFkZGVkIHRvIE1kZVBrZy9NZGVNb2R1bGVQa2cgc28g YWxsDQpGb3IgUklTQy1WLCB3ZSBsZXZlcmFnZSBvcGVuIHNvdXJjZSBSSVNDLVYgb3BlbnNiaSBs aWJyYXJ5IGluIGVkazIgcG9ydC4gV2Ugc3dpdGNoIHRvIFNNb2RlIChTdXBlcnZpc29yIG1vZGUg dGhyb3VnaCBPcGVuU0JJIGluIER4ZUlwbCApIGZvciBleGVjdXRpbmcgRFhFIHBoYXNlLCB3ZSBh bHNvIG5lZWQgdG8gYWNjZXNzIHRvIG9wZW5zYmkgc3RydWN0dXJlIHdoaWNoIGlzIGRlZmluZWQg aW4gUmlzY1ZQa2cuDQoNCj4gQ1BVcyBhcmUgc3VwcG9ydGVkIHRoZSBzYW1lIHdheT8NCkZvciBS SVNDLVYgcHJvY2Vzc29ycz8gWWVzLg0KPiANCj4gVGhhbmtzLA0KPiANCj4gTWlrZQ0KPiANCj4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IENoYW5nLCBBYm5lciAoSFBT IFNXL0ZXIFRlY2hub2xvZ2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+DQo+ID4gU2VudDogV2Vk bmVzZGF5LCBNYXJjaCAxOCwgMjAyMCA4OjIyIFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBCaSwgRGFuZGFuDQo+ID4gPGRhbmRhbi5iaUBpbnRlbC5jb20+DQo+ID4gQ2M6IExlaWYg TGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5j b20+OyBBcmQNCj4gPiBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTGFz emxvIEVyc2VrDQo+ID4gPGxlcnNla0ByZWRoYXQuY29tPjsgU2NoYWVmZXIsIERhbmllbCAoRHVh bFN0dWR5KQ0KPiA+IDxkYW5pZWwuc2NoYWVmZXJAaHBlLmNvbT47IENoZW4sIEdpbGJlcnQgPGdp bGJlcnQuY2hlbkBocGUuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW2VkazIv bWFzdGVyIFBBVENIIER4ZUlwbEhhbmRvZmZMaWIgdjFdDQo+ID4gTWRlUGtnL0R4ZUlwbEhhbmRv ZmZMaWJOdWxsTGliOg0KPiA+IEFic3RyYWN0IER4ZUlwbA0KPiA+DQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+IFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiBPZg0KPiA+ID4gRGFu ZGFuIEJpDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgTWFyY2ggMTksIDIwMjAgMTE6MDkgQU0NCj4g PiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQ2hhbmcsIEFibmVyIChIUFMgU1cvRlcNCj4g PiBUZWNobm9sb2dpc3QpDQo+ID4gPiA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+IENjOiBM ZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IEtpbm5leSwNCj4gPiBNaWNoYWVsIEQN Cj4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ID4gPGxp bWluZy5nYW9AaW50ZWwuY29tPjsgQXJkDQo+ID4gPiBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZl bEBsaW5hcm8ub3JnPjsgTGFzemxvIEVyc2VrDQo+ID4gPGxlcnNla0ByZWRoYXQuY29tPjsNCj4g PiA+IFNjaGFlZmVyLCBEYW5pZWwgKER1YWxTdHVkeSkNCj4gPiA8ZGFuaWVsLnNjaGFlZmVyQGhw ZS5jb20+OyBDaGVuLCBHaWxiZXJ0DQo+ID4gPiA8Z2lsYmVydC5jaGVuQGhwZS5jb20+DQo+ID4g PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyL21hc3RlciBQQVRDSA0KPiA+IER4ZUlw bEhhbmRvZmZMaWIgdjFdDQo+ID4gPiBNZGVQa2cvRHhlSXBsSGFuZG9mZkxpYk51bGxMaWI6IEFi c3RyYWN0IER4ZUlwbA0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBbbWFpbHRvOmRldmVsQGVk azIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gQWJuZXIgQ2hhbmcNCj4gPiA+ID4g U2VudDogTW9uZGF5LCBNYXJjaCAxNiwgMjAyMCAxMDoxNyBBTQ0KPiA+ID4gPiBUbzogQmksIERh bmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47DQo+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g PiA+ID4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsgS2lubmV5LA0KPiA+ IE1pY2hhZWwgRA0KPiA+ID4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExp bWluZw0KPiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEFyZA0KPiA+ID4gPiBCaWVzaGV1dmVs IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTGFzemxvDQo+ID4gRXJzZWsNCj4gPiA+ID4g PGxlcnNla0ByZWRoYXQuY29tPjsgU2NoYWVmZXIsIERhbmllbCAoRHVhbFN0dWR5KQ0KPiA+ID4g PiA8ZGFuaWVsLnNjaGFlZmVyQGhwZS5jb20+OyBDaGVuLCBHaWxiZXJ0DQo+ID4gPGdpbGJlcnQu Y2hlbkBocGUuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyL21h c3RlciBQQVRDSA0KPiA+IER4ZUlwbEhhbmRvZmZMaWIgdjFdDQo+ID4gPiA+IE1kZVBrZy9EeGVJ cGxIYW5kb2ZmTGliTnVsbExpYjogQWJzdHJhY3QgRHhlSXBsDQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBG cm9tOiBCaSwgRGFuZGFuIFttYWlsdG86ZGFuZGFuLmJpQGludGVsLmNvbV0NCj4gPiA+ID4gPiBT ZW50OiBNb25kYXksIE1hcmNoIDE2LCAyMDIwIDk6MzEgQU0NCj4gPiA+ID4gPiBUbzogQ2hhbmcs IEFibmVyIChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KQ0KPiA+IDxhYm5lci5jaGFuZ0BocGUuY29t PjsNCj4gPiA+ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+IENjOiBMZWlmIExp bmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IEtpbm5leSwNCj4gPiBNaWNoYWVsIEQNCj4gPiA+ ID4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+IDxsaW1p bmcuZ2FvQGludGVsLmNvbT47DQo+ID4gPiA+ID4gQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1 dmVsQGxpbmFyby5vcmc+Ow0KPiA+IExhc3psbyBFcnNlaw0KPiA+ID4gPiA+IDxsZXJzZWtAcmVk aGF0LmNvbT47IFNjaGFlZmVyLCBEYW5pZWwgKER1YWxTdHVkeSkNCj4gPiA+ID4gPiA8ZGFuaWVs LnNjaGFlZmVyQGhwZS5jb20+OyBDaGVuLCBHaWxiZXJ0DQo+ID4gPGdpbGJlcnQuY2hlbkBocGUu Y29tPg0KPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi9tYXN0ZXIgUEFUQ0ggRHhlSXBsSGFu ZG9mZkxpYg0KPiA+IHYxXQ0KPiA+ID4gPiA+IE1kZVBrZy9EeGVJcGxIYW5kb2ZmTGliTnVsbExp YjogQWJzdHJhY3QgRHhlSXBsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBBYm5lciwNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IFNvbWUgY29tbWVudHMgYXMgYmVsb3cuDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiAxLiBGb3IgdGhlIHBhdGNoIGl0c2VsZg0KPiA+ID4gPiA+IGEpICBpdCBpbnRyb2R1Y2Vz IGEgbmV3IGxpYnJhcnkgY2xhc3MsIHNvIGJlc2lkZXMNCj4gPiB0aGUgaW5zdGFuY2UsIHdlDQo+ ID4gPiA+ID4gYWxzbyBuZWVkIHRvIGFkZCB0aGUgaGVhZGVyIGZpbGUgKHB1YmxpYw0KPiA+IGlu dGVyZmFjZSBkZWZpbml0aW9ucykgaW4NCj4gPiA+ID4gPiB0aGUgaW5jbHVkZS9saWJyYXJ5IGRp cmVjdG9yeSBhbmQgZGVmaW5lIHRoZQ0KPiA+IGxpYnJhcnkgY2xhc3MgaW4gZGVjIGZpbGUuDQo+ ID4gPiA+ID4gYikgIEVGSUFQSSBrZXl3b3JkIHNob3VsZCBiZSBhZGRlZCB3aXRoIHRoZQ0KPiA+ IHB1YmxpYyBBUEkgZGVmaW5pdGlvbiAoDQo+ID4gPiA+ID4gSGFuZE9mZlRvRHhlQ29yZSkuDQo+ ID4gPiA+IE9rLiAgV2lsbCByZXNlbmQgdGhlIHBhdGNoLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gMi4gVGhpcyBwYXRoIGlzIGp1c3QgdG8gYWRkIGFuIGVtcHR5IGluc3RhbmNlIGZv cg0KPiA+IG5vdy4NCj4gPiA+ID4gPiBBYm5lciwgd2lsbCB5b3UgYWxzbyBhZGQgb3RoZXIgaW5z dGFuY2VzIGZvcg0KPiA+IG90aGVyIEFyY2hzIGFuZCB1cGRhdGUNCj4gPiA+ID4gPiBEeGVJcGwg dG8gY29uc3VtZSB0aGUgbmV3IGxpYnJhcnk/DQo+ID4gPiA+IFRoZSBwdXJwb3NlIG9mIHRoaXMg Y2hhbmdlIGlzIHRvIGFic3RyYWN0IGFyY2ggZnJvbQ0KPiA+IER4ZUlwbCBtb2R1bGUNCj4gPiA+ ID4gdW5kZXIgTWRlTW9kdWxlUGtnIGFuZCByZW1vdmUgdGhlIGRlcGVuZGVuY2llcyB3aXRoDQo+ ID4gYXJjaCBwYWNrYWdlDQo+ID4gPiBmcm9tDQo+ID4gPiA+IE1kZU1vZHVsZVBrZy5jaS55YW1s Lg0KPiA+ID4gPiBZZXMsIEkgYWxyZWFkeSBhZGRlZCBhbiBpbnN0YW5jZSBmb3IgUklTQy1WIGFu ZA0KPiA+IHJldmlzZWQgRHhlSXBsIHRvDQo+ID4gPiA+IGNvbnN1bWUgbmV3IGxpYiAqb25seSog Zm9yIFJJU0NWNjQgYXJjaCwgIHRoaXMNCj4gPiBjaGFuZ2Ugd2lsbCBiZSBpbiB0aGUNCj4gPiA+ ID4gc2V0IG9mIFJJU0MtViBlZGsyIHBhdGNoZXMuIFRoZSBwYXRjaCB5b3UgYXJlDQo+ID4gcmV2 aWV3aW5nIG5vdyBpcyB0aGUNCj4gPiA+ID4gcHJlcmVxdWlzaXRlIGZvciBSSVNDLVYgZWRrMiBw b3J0Lg0KPiA+ID4gPg0KPiA+ID4gPiA+IEFuZCBmb3IgcGxhdGZvcm0sIGl0J3MgaW5jb21wYXRp YmxlIGNoYW5nZSB0byB1c2UNCj4gPiBuZXcgYWRkZWQgbGlicmFyeQ0KPiA+ID4gPiBpbnN0YW5j ZS4NCj4gPiA+ID4gPiBTbyBpdCdzIGJldHRlciByZXZpZXcgaXQgaW4gVGlhbm9Db3JlIERlc2ln bg0KPiA+IE1lZXRpbmcgZmlyc3RseS4NCj4gPiA+ID4gSXQgd2lsbCBzdGF5IHRoZSBzYW1lIGZv ciBYODYsIEFSTSBtYXkgaGF2ZSB0byB1c2UNCj4gPiB0aGlzIE5VTEwgaW5zdGFuY2UNCj4gPiA+ ID4gYW5kIHJlbW92ZSB0aGUgZGVwZW5kZW5jaWVzIGZyb20NCj4gPiBNZGVNb2R1bGVQa2cuY2ku eWFtbCBhcyB3ZWxsLg0KPiA+ID4gPiBIb3dldmVyLCBJIGNhbid0IHNwZWFrIGZvciBBUk0gYmVj YXVzZSB0aGUNCj4gPiBkZXBlbmRlbmNlIHdpdGggQVJNDQo+ID4gPiBwYWNrYWdlDQo+ID4gPiA+ IGluIE1kZU1vZHVsZVBrZyBoYXMgYmVlbiBpbiBNZGVNb2R1bGVQa2cuY2kueWFtbA0KPiA+IHdo ZW4gZWRrMiBDSSB3YXMNCj4gPiA+ID4gaW50cm9kdWNlZCAobXkgZ3Vlc3MsIG5vdCBzdXJlIHRo ZSBoaXN0b3J5KS4NCj4gPiBSSVNDVjY0IGlzIGEgbmV3IGFyY2ggYW5kDQo+ID4gPiA+IHdhcyBy ZXF1ZXN0ZWQgdG8gYmUgZGVjb3VwbGVkIGZyb20gTWRlTW9kdWxlUGtnLg0KPiA+IFRoaXMgY2hh bmdlIGRvbid0DQo+ID4gPiA+IGJyaW5nIGluY29tcGF0aWJsZSBpc3N1ZSB0aG91Z2guIEFSTSBh cmNoIGNhbiBzdGlsbA0KPiA+IHN0YXkgdGhlIHNhbWUgYXMNCj4gPiA+ID4gaXQgaXMgaW4gZWRr MiBub3cuDQo+ID4gPiBBYm5lciwNCj4gPiA+IFNvIHlvdSB3aWxsIG9ubHkgYW5kIG9uZSBpbnN0 YW5jZSB1c2VkIGZvciBSSVNDVjY0LA0KPiA+IG5vIGluc3RhbmNlIGZvciBvdGhlcg0KPiA+ID4g YXJjaHMuDQo+ID4gWWVzLg0KPiA+DQo+ID4gPiBIYW5kT2ZmVG9EeGVDb3JlIGxvZ2ljIGluIER4 ZUxvYWRGdW5jLmMgZm9yIElBMzIgYW5kDQo+ID4gWDY0IHdpbGwga2VlcCBzYW1lDQo+ID4gPiB3 aXRoIGJlZm9yZSwgZG8gbm90IGxldmVyYWdlIG5ldyBEeGVJcGxIYW5kb2ZmTGliDQo+ID4gVGhl biB0aGVyZSBpcyBubw0KPiA+ID4gaW5jb21wYXRpYmxlIGNvbmNlcm4gZm9yIElBMzIgYW5kIFg2 NCwgaXMgdGhhdA0KPiA+IGNvcnJlY3Q/DQo+ID4gTm8sIG5vIGltcGFjdHMgb24gYXJjaGl0ZWN0 dXJlcyBvdGhlciB0aGFuIFJJU0MtVi4gIFg4NiBkb2Vzbid0IGhhdmUNCj4gPiB0byBjaGFuZ2Ug YmVjYXVzZSB0aGVyZSBpcyBubyBwYWNrYWdlIGRlcGVuZGVuY3kgaXNzdWVzIHdoZW4gZWRrMiBD SQ0KPiA+IHRlc3RpbmcuDQo+ID4gQVJNIHN0aWxsIGhhdmUgcHJvYmxlbSBpZiB0aGV5IGtlZXAg dGhlIHNhbWUgd2F5LCBob3dldmVyIHRoZXkgYXJlDQo+ID4gZ29vZCBiZWNhdXNlIENJIHBhY2th Z2UgdGVzdCBoYXMgYW4gZXhjZXB0aW9uIGZvciBBUk0gaW4NCj4gPiBNZGVNb2R1bGVQa2cuY2ku eWFtbC4NCj4gPg0KPiA+IEkgd2lsbCBnZXQgb24gVGlhbm9Db3JlIGRlc2lnbiBtZWV0aW5nIHRv bW9ycm93IGFuZCBoYXZlIGEgc2hvcnQNCj4gPiBwcmVzZW50YXRpb24gb2YgdGhpcyBjaGFuZ2Uu IEZZSS4NCj4gPg0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+IERhbmRhbg0KPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ ID4gPiBEYW5kYW4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiA+ID4gPiBGcm9tOiBBYm5lciBDaGFuZyBbbWFpbHRvOmFibmVyLmNoYW5nQGhwZS5jb21dDQo+ ID4gPiA+ID4gPiBTZW50OiBNb25kYXksIE1hcmNoIDksIDIwMjAgNjoyOCBQTQ0KPiA+ID4gPiA+ ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gPiBDYzogYWJuZXIuY2hhbmdA aHBlLmNvbTsgTGVpZiBMaW5kaG9sbQ0KPiA+IDxsZWlmQG51dmlhaW5jLmNvbT47DQo+ID4gPiA+ ID4gPiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ IEdhbywgTGltaW5nDQo+ID4gPiA+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBBcmQgQmll c2hldXZlbA0KPiA+ID4gPiA+ID4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBMYXN6bG8g RXJzZWsNCj4gPiA8bGVyc2VrQHJlZGhhdC5jb20+OyBCaSwNCj4gPiA+ID4gPiA+IERhbmRhbiA8 ZGFuZGFuLmJpQGludGVsLmNvbT47IERhbmllbCBTY2hhZWZlcg0KPiA+ID4gPiA+ID4gPGRhbmll bC5zY2hhZWZlckBocGUuY29tPjsgR2lsYmVydCBDaGVuDQo+ID4gPGdpbGJlcnQuY2hlbkBocGUu Y29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDogW2VkazIvbWFzdGVyIFBBVENIIER4ZUlwbEhhbmRv ZmZMaWINCj4gPiB2MV0NCj4gPiA+ID4gPiA+IE1kZVBrZy9EeGVJcGxIYW5kb2ZmTGliTnVsbExp YjogQWJzdHJhY3QgRHhlSXBsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQlo6MjU4MzoNCj4g PiA+ID4gPiA+IElOVkFMSUQgVVJJIFJFTU9WRUQNCj4gPiA+ID4gPiA+IGUub3JnX3Nob3ctNUZi dWcuY2dpLTNGaWQtDQo+ID4gPiA+ID4gM0QyNTgzJmQ9RHdJRkFnJmM9QzViOHpSUU8xbWlHbUJl VloyTEZXZyZyPV8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4g U042RlpCTjRWZ2k0VWxrc2t6NnFVM05ZUk8wM25IcDlQN1o1cTU5QTNFJm09WVFSN05YX2t4eg0K PiA+IDRCUFJFVA0KPiA+ID4gPiA+IHA1bk5MV1dPSw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4NCj4gPiBOT2lta29zdEV6ZHJ2eXZQa0Emcz03d3l5QU9pdHAySXZNS3Yx OXRscGJKeHQybTBibl9ac1I0DQo+ID4gUjdsbFlJMTljJg0KPiA+ID4gPiA+IGU9DQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gQ3VycmVudCBEeGVJcGwgaGFzIGJpbmRpbmdzIGZvciBkaWZmZXJl bnQNCj4gPiBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJlcywNCj4gPiA+ID4gPiA+IHRoaXMgcmVzdWx0 cyBpbiBNZGVNb2R1bGVQa2cgaGFzIHRoZSBkZXBlbmRlbmNlDQo+ID4gd2l0aCBwcm9jZXNzb3IN Cj4gPiA+ID4gPiA+IGFyY2hpdGVjdHVyZSBwYWNrYWdlcyBzdWNoIGFzIEFybVBrZyBvcg0KPiA+ IFJpc2NWUGtnLiBUaGlzIGFsc28gbGVhZHMNCj4gPiA+ID4gPiA+IENJIHRlc3RpbmcgdG8gZXJy b3IgZHVyaW5nIHBhY2thZ2UgZGVwZW5kZW5jeQ0KPiA+IGNoZWNrLiBQcm92aWRlIGENCj4gPiA+ ID4gPiA+IGRlZmF1bHQgRHhlSXBsSGFuZG9mZiBsaWJyYXJ5IHRvIGFic3RyYWN0DQo+ID4gcHJv Y2Vzc29yIGFyY2hpdGVjdHVyZQ0KPiA+ID4gPiA+ID4gZnJvbSBEeGVJcGwgZHJpdmVyLCBwbGF0 Zm9ybSBjYW4gcHJvdmlkZSBpdHMNCj4gPiBvd24gbGlicmFyeSBpbnN0YW5jZQ0KPiA+ID4gPiA+ ID4gZm9yIHRoZSBwcm9jZXNzb3INCj4gPiA+ID4gPiBhcmNoaXRlY3R1cmUtIHNwZWNpZmljIGlt cGxlbWVudGF0aW9uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEFi bmVyIENoYW5nDQo+ID4gPGFibmVyLmNoYW5nQGhwZS5jb20+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPg0KPiA+ID4gPiA+ID4g Q2M6IE1pY2hhZWwgRCBLaW5uZXkNCj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ ID4gPiA+ID4gPiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gPiA+ ID4gPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4g PiA+ID4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiA+ID4gPiA+ IENjOiBEYW5kYW4gQmkgPGRhbmRhbi5iaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogRGFu aWVsIFNjaGFlZmVyIDxkYW5pZWwuc2NoYWVmZXJAaHBlLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBH aWxiZXJ0IENoZW4gPGdpbGJlcnQuY2hlbkBocGUuY29tPg0KPiA+ID4gPiA+ID4gLS0tDQo+ID4g PiA+ID4gPiAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gPiB8ICAyICsrDQo+ID4g PiA+ID4gPiAgLi4uL0R4ZUlwbEhhbmRvZmZMaWJOdWxsLmluZg0KPiA+IHwgMzAgKysrKysrKysr KysrKysrKysNCj4gPiA+ID4gPiA+ICAuLi4vRHhlSXBsSGFuZG9mZkxpYk51bGwuYw0KPiA+IHwg MzMgKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ID4gIC4uLi9EeGVJcGxIYW5kb2ZmTGli TnVsbC51bmkNCj4gPiB8IDE0ICsrKysrKysrDQo+ID4gPiA+ID4gPiAgNCBmaWxlcyBjaGFuZ2Vk LCA3OSBpbnNlcnRpb25zKCspICBjcmVhdGUgbW9kZQ0KPiA+IDEwMDY0NA0KPiA+ID4gPiA+ID4N Cj4gPiA+DQo+ID4gTWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhlSXBsSGFuZG9mZkxpYk51bGwvRHhl SXBsSGFuZG9mZg0KPiA+IExpYk51bGwuaW5mDQo+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAw NjQ0DQo+ID4gPiA+ID4gPg0KPiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUlwbEhhbmRvZmZM aWJOdWxsL0R4ZUlwbEhhbmRvZmYNCj4gPiBMaWJOdWxsLmMNCj4gPiA+ID4gPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5 L0R4ZUlwbEhhbmRvZmZMaWJOdWxsL0R4ZUlwbEhhbmRvZmYNCj4gPiBMaWJOdWxsLnVuaQ0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvTWRlTW9kdWxl UGtnLmRzYw0KPiA+ID4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRzYyBpbmRl eA0KPiA+IGY3ZGJiMjdjZTIuLjZlYjkyMmRmYWENCj4gPiA+ID4gPiA+IDEwMDY0NA0KPiA+ID4g PiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kc2MNCj4gPiA+ID4gPiA+ICsr KyBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZHNjDQo+ID4gPiA+ID4gPiBAQCAtMyw2ICsz LDcgQEANCj4gPiA+ID4gPiA+ICAjICMgKEMpIENvcHlyaWdodCAyMDE0IEhld2xldHQtUGFja2Fy ZA0KPiA+IERldmVsb3BtZW50IENvbXBhbnksDQo+ID4gPiA+ID4gPiBMLlAuPEJSPiAjIENvcHly aWdodCAoYykgMjAwNyAtIDIwMTksIEludGVsDQo+ID4gQ29ycG9yYXRpb24uIEFsbA0KPiA+ID4g PiA+ID4gcmlnaHRzIHJlc2VydmVkLjxCUj4rIyBDb3B5cmlnaHQgKGMpIDIwMjAsDQo+ID4gSGV3 bGV0dCBQYWNrYXJkDQo+ID4gPiA+ID4gPiBFbnRlcnByaXNlDQo+ID4gPiA+ID4gRGV2ZWxvcG1l bnQgTFAuIEFsbCByaWdodHMNCj4gPiA+ID4gPiA+IHJlc2VydmVkLjxCUj4gIyAjICAgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOg0KPiA+IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICNAQCAt DQo+ID4gPiA+ID4gPiAzMjEsNiArMzIyLDcgQEANCj4gPiA+ID4gPiA+DQo+ID4gTWRlTW9kdWxl UGtnL0xpYnJhcnkvQmFzZUJtcFN1cHBvcnRMaWIvQmFzZUJtcFN1cHBvcnRMaQ0KPiA+IGIuaW5m DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+IE1kZU1vZHVsZVBr Zy9MaWJyYXJ5L0Rpc3BsYXlVcGRhdGVQcm9ncmVzc0xpYkdyYXBoaWNzL0QNCj4gPiBpc3BsYXlV cGRhdGVQDQo+ID4gPiA+ID4gPiByb2dyZXNzTGliR3JhcGhpY3MuaW5mDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0Rpc3Bs YXlVcGRhdGVQcm9ncmVzc0xpYlRleHQvRGlzcGwNCj4gPiBheVVwZGF0ZVByb2dyDQo+ID4gPiA+ ID4gPiBlc3NMaWJUZXh0LmluZisNCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+IE1kZU1vZHVsZVBr Zy9MaWJyYXJ5L0R4ZUlwbEhhbmRvZmZMaWJOdWxsL0R4ZUlwbEhhbmRvZmYNCj4gPiBMaWJOdWxs LmluZg0KPiA+ID4gPiA+ID4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRHhlLmlu Zg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiBNZGVNb2R1bGVQ a2cvQXBwbGljYXRpb24vQm9vdE1hbmFnZXJNZW51QXBwL0Jvb3RNYW5hZ2VyDQo+ID4gTWVudUFw DQo+ID4gPiA+ID4gPiBwLmluZmRpZmYgLS1naXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4g YS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJcGxIYW5kbw0K PiA+IGZmTGliTnVsbC5pbmYNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gYi9NZGVNb2R1bGVQ a2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJcGxIYW5kbw0KPiA+IGZmTGliTnVs bC5pbmYNCj4gPiA+ID4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiBpbmRl eCAwMDAwMDAwMDAwLi5iNzIxMDY1NmI3DQo+ID4gPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4g PiA+ID4gPiArKysNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gYi9NZGVNb2R1bGVQa2cvTGli cmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJcGxIYW5kbw0KPiA+IGZmTGliTnVsbC5pbmYN Cj4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMzAgQEANCj4gPiA+ID4gPiA+ICsjIyBAZmlsZSsjICBO dWxsIERYRSBJUEwgaGFuZG9mZiB0byBEWEUgQ29yZQ0KPiA+IExpYnJhcnkNCj4gPiA+ID4gPiA+ ICtpbnN0YW5jZS4rIysjDQo+ID4gPiA+ID4gPiBDb3B5cmlnaHQgKGMpIDIwMjAsIEhld2xldHQg UGFja2FyZCBFbnRlcnByaXNlDQo+ID4gRGV2ZWxvcG1lbnQgTFAuIEFsbA0KPiA+ID4gPiA+ID4g cmlnaHRzIHJlc2VydmVkLjxCUj4rIysjICBTUERYLUxpY2Vuc2UtDQo+ID4gSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLQ0KPiA+ID4gPiA+ID4gUGF0ZW50KyMrIyMrK1tEZWZpbmVzXSsgIElORl9W RVJTSU9ODQo+ID4gPSAweDAwMDEwMDFiKw0KPiA+ID4gPiA+ID4gQkFTRV9OQU1FICAgICAgICAg ICAgICAgICAgICAgID0NCj4gPiBEeGVJcGxIYW5kb2ZmTGliTnVsbCsgIE1PRFVMRV9VTklfRklM RQ0KPiA+ID4gPiA+ID4gPSBEeGVJcGxIYW5kb2ZmTGliTnVsbC51bmkrICBGSUxFX0dVSUQNCj4g PiA9IDVjMTg4MTJkLTM2ODQtDQo+ID4gPiA0MDkzLQ0KPiA+ID4gPiA+ID4gYmM3NS1mYzg0NmE1 OTUzNTMrICBNT0RVTEVfVFlQRQ0KPiA+ID0gQkFTRSsNCj4gPiA+IFZFUlNJT05fU1RSSU5HDQo+ ID4gPiA+ID4gPiA9IDEuMCsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9DQo+ID4g RHhlSXBsSGFuZG9mZkxpYisrIysjIFRoZSBmb2xsb3dpbmcNCj4gPiA+ID4gPiA+IGluZm9ybWF0 aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90DQo+ID4gcmVxdWlyZWQgYnkgdGhlIGJ1 aWxkDQo+ID4gPiB0b29scy4rIysjDQo+ID4gPiA+ID4gPiBWQUxJRF9BUkNISVRFQ1RVUkVTICAg ICAgICAgICA9DQo+ID4gUklTQ1Y2NCsjKytbU291cmNlc10rDQo+ID4gPiA+ID4gPiBEeGVJcGxI YW5kb2ZmTGliTnVsbC5jKytbUGFja2FnZXNdKw0KPiA+IE1kZVBrZy9NZGVQa2cuZGVjK2RpZmYg LS1naXQNCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhl SXBsSGFuZG9mZkxpYk51bGwvRHhlSXBsSGFuZG8NCj4gPiBmZkxpYk51bGwuYw0KPiA+ID4gPiA+ ID4NCj4gPiA+DQo+ID4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVs bC9EeGVJcGxIYW5kbw0KPiA+IGZmTGliTnVsbC5jDQo+ID4gPiA+ID4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+ID4gPiA+ID4gaW5kZXggMDAwMDAwMDAwMC4uYzgzOTIyY2I2ZQ0KPiA+ID4g PiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4NCj4gPiBiL01k ZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUlwbEhhbmRvZmZMaWJOdWxsL0R4ZUlwbEhhbmRvDQo+ID4g ZmZMaWJOdWxsLmMNCj4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMzMgQEANCj4gPiA+ID4gPiA+ICsv KiogQGZpbGUrICBOVUxMIGluc3RhbmNlIG9mIERYRSBJUEwgaGFuZG9mZg0KPiA+IHRvIERYRSBD b3JlDQo+ID4gPiA+ID4gPiArTGlicmFyeS4rKw0KPiA+ID4gPiA+ID4gQ29weXJpZ2h0IChjKSAy MDIwLCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZQ0KPiA+IERldmVsb3BtZW50IExQLiBBbGwN Cj4gPiA+ID4gPiA+IHJpZ2h0cyByZXNlcnZlZC48QlI+KysgIFNQRFgtTGljZW5zZS0NCj4gPiBJ ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtDQo+ID4gPiA+ID4gPiBQYXRlbnQrKyoqLysrI2luY2x1 ZGUgPFBpUGVpLmg+KyNpbmNsdWRlDQo+ID4gPiA+IDxMaWJyYXJ5L0RlYnVnTGliLmg+KysvKior DQo+ID4gPiA+ID4gPiBUcmFuc2ZlcnMgY29udHJvbCB0byBEeGVDb3JlLisrICAgVGhpcyBmdW5j dGlvbg0KPiA+IHBlcmZvcm1zIGEgQ1BVDQo+ID4gPiA+IGFyY2hpdGVjdHVyZQ0KPiA+ID4gPiA+ ID4gc3BlY2lmaWMgb3BlcmF0aW9ucyB0byBleGVjdXRlKyAgIHRoZSBlbnRyeQ0KPiA+IHBvaW50 IG9mIER4ZUNvcmUgd2l0aCB0aGUNCj4gPiA+ID4gPiA+IHBhcmFtZXRlcnMgb2YgSG9iTGlzdC4r ICAgSXQgYWxzbyBpbnN0YWxscw0KPiA+IEVGSV9FTkRfT0ZfUEVJX1BQSSB0byBzaWduYWwNCj4g PiA+IHRoZQ0KPiA+ID4gPiA+ID4gZW5kIG9mIFBFSSBwaGFzZS4rKyAgIEBwYXJhbSBEeGVDb3Jl RW50cnlQb2ludA0KPiA+IFRoZSBlbnRyeSBwb2ludA0KPiA+ID4gb2YNCj4gPiA+ID4gPiA+IER4 ZUNvcmUuKyAgIEBwYXJhbSBIb2JMaXN0DQo+ID4gVGhlIHN0YXJ0IG9mIEhvYkxpc3QgcGFzc2Vk IHRvDQo+ID4gPiA+ID4gPiBEeGVDb3JlLisrKiovK1ZPSUQrSGFuZE9mZlRvRHhlQ29yZSAoKyAg SU4NCj4gPiA+ID4gRUZJX1BIWVNJQ0FMX0FERFJFU1MNCj4gPiA+ID4gPiA+IER4ZUNvcmVFbnRy eVBvaW50LCsgIElOIEVGSV9QRUlfSE9CX1BPSU5URVJTDQo+ID4gSG9iTGlzdCsgICkreysNCj4g PiA+IERFQlVHDQo+ID4gPiA+ID4gPiAoKERFQlVHX0lORk8sICJObyBpbXBsZW1lbnRhdGlvbiBv ZiBEWEUgSVBMDQo+ID4gaGFuZG9mZiB0byBEWEUgQ29yZQ0KPiA+ID4gPiA+ID4gbGlicmFyeS5c clxuIikpOysgIEFTU0VSVCAoRkFMU0UpOyt9K2RpZmYgLS1naXQNCj4gPiA+ID4gPiA+DQo+ID4g PiA+DQo+ID4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJ cGxIYW5kbw0KPiA+IGZmTGliTnVsbC51bmkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gYi9N ZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJcGxIYW5kbw0KPiA+ IGZmTGliTnVsbC51bmkNCj4gPiA+ID4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ ID4gPiBpbmRleCAwMDAwMDAwMDAwLi41YTg5NzNkNmU1DQo+ID4gPiA+ID4gPiAtLS0gL2Rldi9u dWxsDQo+ID4gPiA+ID4gPiArKysNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gYi9NZGVNb2R1 bGVQa2cvTGlicmFyeS9EeGVJcGxIYW5kb2ZmTGliTnVsbC9EeGVJcGxIYW5kbw0KPiA+IGZmTGli TnVsbC51bmkNCj4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMTQgQEANCj4gPiA+ID4gPiA+ICsvLyAv KiogQGZpbGUrLy8gTnVsbCBEWEUgSVBMIGhhbmRvZmYgdG8gRFhFDQo+ID4gQ29yZSBMaWJyYXJ5 DQo+ID4gPiA+ID4gPiAraW5zdGFuY2UuKy8vKy8vDQo+ID4gPiA+ID4gPiBDb3B5cmlnaHQgKGMp IDIwMjAsIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlDQo+ID4gRGV2ZWxvcG1lbnQgTFAuIEFs bA0KPiA+ID4gPiA+ID4gcmlnaHRzIHJlc2VydmVkLjxCUj4rLy8rLy8gU1BEWC1MaWNlbnNlLQ0K PiA+IElkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS0NCj4gPiA+ID4gPiBQYXRlbnQrLy8rLy8NCj4g PiA+ID4gPiA+ICoqLysrKyNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVA0KPiA+ICNsYW5ndWFn ZSBlbi1VUyAiTnVsbA0KPiA+ID4gPiBEWEUNCj4gPiA+ID4gPiA+IElQTCBoYW5kb2ZmIHRvIERY RSBDb3JlIExpYnJhcnkNCj4gPiBpbnN0YW5jZS4iKysjc3RyaW5nDQo+ID4gPiA+ID4gPiBTVFJf TU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ICJOdWxsIERY RSBJUEwNCj4gPiA+IGhhbmRvZmYNCj4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+IERYRSBDb3JlIExp YnJhcnkgaW5zdGFuY2UuIistLQ0KPiA+ID4gPiA+ID4gMi4yNS4wDQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IA0KPiA+DQoNCg==