From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.0.36; helo=nam01-bn3-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-oln040092000036.outbound.protection.outlook.com [40.92.0.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 56AD722280C30 for ; Wed, 3 Jan 2018 00:48:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=A6/FJ02H4ZbJmkF4elMfbG7B9VN691932mg50zSGLyk=; b=LdPUrsqUYX84FHFhbvizhlXGthug8SJYaIGV/R4Km6wB5rk1Wc/BDPpsdMiAZF+ioNi/GMHNJH5Cpps8rHPawM7ribBjzgHTPKeKYFFC1oVk24WNNfD+j9+7/pSmbuDMRPyoh1iZHeRL3hfNuXxihuF0KqmMTLUSbsOiWjA7bEtq+PcPgIa2c1upY0p1bSKPWrGXTlwquAGbRNlG1KjntfjXKGbS/NpuV8nSYSdCsjOjHzcGzdyYi9Nu4nz5E2FxLoUtuDZPb9lPmIw8h5K+/809odJK5rzb1Q6M1qUpaV0EL3YETLyDB6+wi8LSbY94c5erg8tm8yMkCTEFM4bugw== Received: from SN1NAM01FT027.eop-nam01.prod.protection.outlook.com (10.152.64.59) by SN1NAM01HT100.eop-nam01.prod.protection.outlook.com (10.152.64.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.345.12; Wed, 3 Jan 2018 08:53:15 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com (10.152.64.53) by SN1NAM01FT027.mail.protection.outlook.com (10.152.65.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.345.12 via Frontend Transport; Wed, 3 Jan 2018 08:53:15 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) by CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) with mapi id 15.20.0366.009; Wed, 3 Jan 2018 08:53:15 +0000 From: Fan Jeff To: Paulo Alcantara , "edk2-devel@lists.01.org" CC: Laszlo Ersek , Eric Dong Thread-Topic: [edk2] [RFC v4 1/6] UefiCpuPkg/CpuExceptionHandlerLib/X64: Add stack trace support Thread-Index: AQHTgF8//set2CX1MEaPxZhJRMyKT6Nh3t++ Date: Wed, 3 Jan 2018 08:53:15 +0000 Message-ID: References: , In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:547679E581D36E0E9393203F5262279B81CF2F11BA66A33134329405E5BDA16E; UpperCasedChecksum:E05312C4A7DA8F0083CBA1CB888D5CC8BE3876CE778AA1ADFECAD190B8EB6FA1; SizeAsReceived:7306; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [yrl4D7VUYLbx5Dt+wC6PR5M5XgwXHcLR] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; SN1NAM01HT100; 6:jPYyubmLWwso+dvb42BBk5NqU7tf2YW1SdpS7QoB+pnuxJW04yw63zywQknDEpO5R2MzLKYzqp4vpS0CuUY5R3UdncSrrpN9/y0oZYNqmIjFFuDqgGTEq7oCnwG/iJh8XG3Y2vl9YydJT0z/PpDneHxdFYyxxd0iwgjP0hWnUHD1AmtpEdN8I9tfRkocApRY72bZG+bGfFfvtPaw7Gfn/K0xNEre0dLLXBVzIgyLsR1gyAzposQAPl/Qw+tY2DX5BdOQgyRnHTv9E6f24nyrXkrE0p3/y7bkI9QGJ8D0+1YPv7j7034ruGZGQgbARsQk8pJoSzgeIHuA4vVRZgAHX9iwlmu+paS4xA3H+j+Fbsw=; 5:mI0uN5fzZ1Y7f3pc7IoIN0/TjWe2H/ZXc6wq6OtrCeBCM3dCaLXMGDcQgnnycLOtu0xJsBOJHP0FbXiyI33yZnlmiZ15rKa5n+EJqL6/UcgqNl3YJqF6aqxEXA5VLpbg3EMvWTPIlQHSRtrjehtwJR/hNtM3J6Cj/cWuZnzInsc=; 24:CuB8loRSDQmpn5WH+GIfau6rwKOvPiY8OKEgw1ulLCCPIBvf+ObnVbnxkSzGsTNILD8x4SX7y7MrvsMKPSJJLMTVXD9NNIWvjVpgLb05L4Y=; 7:jramDRdlhiilF3KQ7DlvSdUYo1qXw3CK5lyGe6Ft9iYEBsPbYcHUiCJfoQkr+4iUjG4jT5hhE0aq1ALqyU1YRmxWo2CapH0g3cvHmTjJZjbQ3S1yFkcGO80iu/BVelCEYUNjjfoFnucetOi+VPnYnM8acYokZXLVqcnocNvMTV7d/E+A3wIM8dNB4hmQ/M8wsP6o5vHTVP6jJjQ6hkyexD+LR0naIdplWpcpv8/x8G+SuKdb3OMndOTJbVituQLN x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:SN1NAM01HT100; x-ms-traffictypediagnostic: SN1NAM01HT100: x-ms-office365-filtering-correlation-id: 4bdc6170-8cb1-4c68-7528-08d552876d72 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:SN1NAM01HT100; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SN1NAM01HT100; x-forefront-prvs: 0541031FF6 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:SN1NAM01HT100; H:CO2PR19MB0137.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bdc6170-8cb1-4c68-7528-08d552876d72 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jan 2018 08:53:15.1354 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM01HT100 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: =?UTF-8?B?562U5aSNOiBbUkZDIHY0IDEvNl0gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NDogQWRkIHN0YWNrIHRyYWNlIHN1cHBvcnQ=?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jan 2018 08:48:14 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="big5" Content-Transfer-Encoding: base64 UGF1bG8sDQoNCg0KDQpJIGRpZCBub3QgcmVjZWl2ZSB5b3VyICMwIHBhdGNoLiBTbywgSSByZXBs eSAjMSBoZXJlLg0KDQoNCg0KWW91ciBzZXJpYWwgb2YgcGF0Y2hlcyBzaG91bGQgd29yayBmb3Ig SUEzMi9YNjQgR0NDIGFuZCBJQTMyIE1TRlQuIEkgc3VnZ2VzdCB5b3UgY291bGQgcHVzaCB0aGlz IHNlcmlhbCBvZiBwYXRjaGVzIGFzIHNvb24gYXMgcGFzcyBVZWZpQ3B1UGtnIG93bmVyL3Jldmll d2Vyc6GmIHJldmlldyBhbmQgdmFsaWRhdGlvbiwNCg0KDQoNCkFuZCB0aGVuIEkgY291bGQgc2Vu ZCBteSB4NjQgTVNGVCBzdXBwb3J0IGxhdGVyLg0KDQoNCg0KVGhhbmtzIQ0KDQpKZWZmDQoNCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBlZGsyLWRldmVsIDxlZGsyLWRl dmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnPiBvbiBiZWhhbGYgb2YgUGF1bG8gQWxjYW50YXJhIDxw YXVsb0BwYXVsby5hYz4NClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMjksIDIwMTcgMTI6Mzk6MzQg UE0NClRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IExhc3psbyBFcnNlazsgRXJpYyBE b25nDQpTdWJqZWN0OiBbZWRrMl0gW1JGQyB2NCAxLzZdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9YNjQ6IEFkZCBzdGFjayB0cmFjZSBzdXBwb3J0DQoNClRoaXMgcGF0Y2ggYWRk cyBzdGFjayB0cmFjZSBzdXBwb3J0IGR1cmluZyBhIFg2NCBDUFUgZXhjZXB0aW9uLg0KDQpJdCB3 aWxsIGR1bXAgb3V0IGJhY2sgdHJhY2UsIHN0YWNrIGNvbnRlbnRzIGFzIHdlbGwgYXMgaW1hZ2Ug bW9kdWxlDQpuYW1lcyB0aGF0IHdlcmUgcGFydCBvZiB0aGUgY2FsbCBzdGFjay4NCg0KQ29udHJp YnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KQ2M6IEVy aWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCkNjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogUGF1bG8gQWxjYW50YXJhIDxwYXVsb0BwYXVsby5h Yz4NCi0tLQ0KIFVlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9B cmNoRXhjZXB0aW9uSGFuZGxlci5jIHwgMzc2ICsrKysrKysrKysrKysrKysrKystDQogMSBmaWxl IGNoYW5nZWQsIDM3NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0 IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNl cHRpb25IYW5kbGVyLmMgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KaW5kZXggMWRjZjQyNzdkZS4uMTliZmFhMzI5 YSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KQEAgLTE0LDYg KzE0LDExIEBADQoNCiAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQoNCisvLw0KKy8v IFVua25vd24gUERCIGZpbGUgbmFtZQ0KKy8vDQorR0xPQkFMX1JFTU9WRV9JRl9VTlJFRkVSRU5D RUQgQ09OU1QgQ0hBUjggKm1Vbmtub3duUGRiRmlsZU5hbWUgPSAiPz8/PyI7DQorDQogLyoqDQog ICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhh dCBDIGNvZGUgY2FuIGdlbmVyYXRlDQogICBleGNlcHRpb24gdGFibGVzLg0KQEAgLTM5OCw2ICs0 MDMsMzU3IEBAIER1bXBDcHVDb250ZXh0ICgNCiAgICAgKTsNCiB9DQoNCisvKioNCisgIEdldCBh YnNvbHV0ZSBwYXRoIGFuZCBmaWxlIG5hbWUgb2YgUERCIGZpbGUgaW4gUEUvQ09GRiBpbWFnZS4N CisNCisgIEBwYXJhbVtpbl0gIEltYWdlQmFzZSAgICAgICAgICAgIEJhc2UgYWRkcmVzcyBvZiBQ RS9DT0ZGIGltYWdlLg0KKyAgQHBhcmFtW291dF0gUGRiQWJzb2x1dGVGaWxlUGF0aCAgQWJzb2x1 dGUgcGF0aCBvZiBQREIgZmlsZS4NCisgIEBwYXJhbVtvdXRdIFBkYkZpbGVOYW1lICAgICAgICAg IEZpbGUgbmFtZSBvZiBQREIgZmlsZS4NCisqKi8NCitTVEFUSUMNCitWT0lEDQorR2V0UGRiRmls ZU5hbWUgKA0KKyAgSU4gIFVJTlROICAgIEltYWdlQmFzZSwNCisgIE9VVCBDSEFSOCAgICAqKlBk YkFic29sdXRlRmlsZVBhdGgsDQorICBPVVQgQ0hBUjggICAgKipQZGJGaWxlTmFtZQ0KKyAgKQ0K K3sNCisgIFZPSUQgICAqUGRiUG9pbnRlcjsNCisgIENIQVI4ICAqU3RyOw0KKw0KKyAgLy8NCisg IC8vIEdldCBQREIgZmlsZSBuYW1lIGZyb20gUEUvQ09GRiBpbWFnZQ0KKyAgLy8NCisgIFBkYlBv aW50ZXIgPSBQZUNvZmZMb2FkZXJHZXRQZGJQb2ludGVyICgoVk9JRCAqKUltYWdlQmFzZSk7DQor ICBpZiAoUGRiUG9pbnRlciA9PSBOVUxMKSB7DQorICAgIC8vDQorICAgIC8vIE5vIFBEQiBmaWxl IG5hbWUgZm91bmQuIFNldCBpdCB0byBhbiB1bmtub3duIGZpbGUgbmFtZS4NCisgICAgLy8NCisg ICAgKlBkYkZpbGVOYW1lID0gKENIQVI4ICopbVVua25vd25QZGJGaWxlTmFtZTsNCisgICAgaWYg KFBkYkFic29sdXRlRmlsZVBhdGggIT0gTlVMTCkgew0KKyAgICAgICpQZGJBYnNvbHV0ZUZpbGVQ YXRoID0gTlVMTDsNCisgICAgfQ0KKyAgfSBlbHNlIHsNCisgICAgLy8NCisgICAgLy8gR2V0IGZp bGUgbmFtZSBwb3J0aW9uIG91dCBvZiBQREIgZmlsZSBpbiBQRS9DT0ZGIGltYWdlDQorICAgIC8v DQorICAgIFN0ciA9IChDSEFSOCAqKSgoVUlOVE4pUGRiUG9pbnRlciArDQorICAgICAgICAgICAg ICAgICAgICBBc2NpaVN0ckxlbiAoKENIQVI4ICopUGRiUG9pbnRlcikgLSBzaXplb2YgKlN0cik7 DQorICAgIGZvciAoOyAqU3RyICE9ICcvJyAmJiAqU3RyICE9ICdcXCc7IFN0ci0tKSB7DQorICAg ICAgOw0KKyAgICB9DQorDQorICAgIC8vDQorICAgIC8vIFNldCBQREIgZmlsZSBuYW1lIChhbHNv IHNraXAgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3I6ICcvJyBvciAnXFwnKQ0KKyAgICAvLw0KKyAg ICAqUGRiRmlsZU5hbWUgPSBTdHIgKyAxOw0KKw0KKyAgICBpZiAoUGRiQWJzb2x1dGVGaWxlUGF0 aCAhPSBOVUxMKSB7DQorICAgICAgLy8NCisgICAgICAvLyBTZXQgYWJzb2x1dGUgZmlsZSBwYXRo IG9mIFBEQiBmaWxlDQorICAgICAgLy8NCisgICAgICAqUGRiQWJzb2x1dGVGaWxlUGF0aCA9IFBk YlBvaW50ZXI7DQorICAgIH0NCisgIH0NCit9DQorDQorLyoqDQorICBEdW1wIHN0YWNrIGNvbnRl bnRzLg0KKw0KKyAgQHBhcmFtW2luXSAgQ3VycmVudFJzcCAgICAgICAgIEN1cnJlbnQgc3RhY2sg cG9pbnRlciBhZGRyZXNzLg0KKyAgQHBhcmFtW2luXSAgVW53b3VuZFN0YWNrc0NvdW50ICBDb3Vu dCBvZiB1bndvdW5kIHN0YWNrIGZyYW1lcy4NCisqKi8NCitTVEFUSUMNCitWT0lEDQorRHVtcFN0 YWNrQ29udGVudHMgKA0KKyAgSU4gVUlOVDY0ICBDdXJyZW50UnNwLA0KKyAgSU4gSU5UTiAgICBV bndvdW5kU3RhY2tzQ291bnQNCisgICkNCit7DQorICAvLw0KKyAgLy8gQ2hlY2sgZm9yIHByb3Bl ciBzdGFjayBwb2ludGVyIGFsaWdubWVudA0KKyAgLy8NCisgIGlmICgoKFVJTlROKUN1cnJlbnRS c3AgJiAoQ1BVX1NUQUNLX0FMSUdOTUVOVCAtIDEpKSAhPSAwKSB7DQorICAgIEludGVybmFsUHJp bnRNZXNzYWdlICgiISEhISBVbmFsaWduZWQgc3RhY2sgcG9pbnRlci4gISEhIVxuIik7DQorICAg IHJldHVybjsNCisgIH0NCisNCisgIC8vDQorICAvLyBEdW1wIG91dCBzdGFjayBjb250ZW50cw0K KyAgLy8NCisgIEludGVybmFsUHJpbnRNZXNzYWdlICgiXG5TdGFjayBkdW1wOlxuIik7DQorICB3 aGlsZSAoVW53b3VuZFN0YWNrc0NvdW50LS0gPiAwKSB7DQorICAgIEludGVybmFsUHJpbnRNZXNz YWdlICgNCisgICAgICAiMHglMDE2bHg6ICUwMTZseCAlMDE2bHhcbiIsDQorICAgICAgQ3VycmVu dFJzcCwNCisgICAgICAqKFVJTlQ2NCAqKUN1cnJlbnRSc3AsDQorICAgICAgKihVSU5UNjQgKiko KFVJTlROKUN1cnJlbnRSc3AgKyA4KQ0KKyAgICAgICk7DQorDQorICAgIC8vDQorICAgIC8vIFBv aW50IHRvIG5leHQgc3RhY2sNCisgICAgLy8NCisgICAgQ3VycmVudFJzcCArPSBDUFVfU1RBQ0tf QUxJR05NRU5UOw0KKyAgfQ0KK30NCisNCisvKioNCisgIER1bXAgYWxsIGltYWdlIG1vZHVsZSBu YW1lcyBmcm9tIGNhbGwgc3RhY2suDQorDQorICBAcGFyYW1baW5dICBTeXN0ZW1Db250ZXh0ICBQ b2ludGVyIHRvIEVGSV9TWVNURU1fQ09OVEVYVC4NCisqKi8NCitTVEFUSUMNCitWT0lEDQorRHVt cEltYWdlTW9kdWxlTmFtZXMgKA0KKyAgSU4gRUZJX1NZU1RFTV9DT05URVhUICAgU3lzdGVtQ29u dGV4dA0KKyAgKQ0KK3sNCisgIEVGSV9TVEFUVVMgIFN0YXR1czsNCisgIFVJTlQ2NCAgICAgIFJp cDsNCisgIFVJTlROICAgICAgIEltYWdlQmFzZTsNCisgIFZPSUQgICAgICAgICpFbnRyeVBvaW50 Ow0KKyAgQ0hBUjggICAgICAgKlBkYkFic29sdXRlRmlsZVBhdGg7DQorICBDSEFSOCAgICAgICAq UGRiRmlsZU5hbWU7DQorICBVSU5UNjQgICAgICBSYnA7DQorICBVSU5UTiAgICAgICBMYXN0SW1h Z2VCYXNlOw0KKw0KKyAgLy8NCisgIC8vIFNldCBjdXJyZW50IFJJUCBhZGRyZXNzDQorICAvLw0K KyAgUmlwID0gU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5SaXA7DQorDQorICAvLw0K KyAgLy8gU2V0IGN1cnJlbnQgZnJhbWUgcG9pbnRlciBhZGRyZXNzDQorICAvLw0KKyAgUmJwID0g U3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5SYnA7DQorDQorICAvLw0KKyAgLy8gQ2hl Y2sgZm9yIHByb3BlciBmcmFtZSBwb2ludGVyIGFsaWdubWVudA0KKyAgLy8NCisgIGlmICgoKFVJ TlROKVJicCAmIChDUFVfU1RBQ0tfQUxJR05NRU5UIC0gMSkpICE9IDApIHsNCisgICAgSW50ZXJu YWxQcmludE1lc3NhZ2UgKCIhISEhIFVuYWxpZ25lZCBmcmFtZSBwb2ludGVyLiAhISEhXG4iKTsN CisgICAgcmV0dXJuOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIEdldCBpbml0aWFsIFBFL0NPRkYg aW1hZ2UgYmFzZSBhZGRyZXNzIGZyb20gY3VycmVudCBSSVANCisgIC8vDQorICBJbWFnZUJhc2Ug PSBQZUNvZmZTZWFyY2hJbWFnZUJhc2UgKFJpcCk7DQorICBpZiAoSW1hZ2VCYXNlID09IDApIHsN CisgICAgSW50ZXJuYWxQcmludE1lc3NhZ2UgKCIhISEhIENvdWxkIG5vdCBmaW5kIGltYWdlIG1v ZHVsZSBuYW1lcy4gISEhISIpOw0KKyAgICByZXR1cm47DQorICB9DQorDQorICAvLw0KKyAgLy8g U2V0IGxhc3QgUEUvQ09GRiBpbWFnZSBiYXNlIGFkZHJlc3MNCisgIC8vDQorICBMYXN0SW1hZ2VC YXNlID0gSW1hZ2VCYXNlOw0KKw0KKyAgLy8NCisgIC8vIEdldCBpbml0aWFsIFBFL0NPRkYgaW1h Z2UncyBlbnRyeSBwb2ludA0KKyAgLy8NCisgIFN0YXR1cyA9IFBlQ29mZkxvYWRlckdldEVudHJ5 UG9pbnQgKChWT0lEICopSW1hZ2VCYXNlLCAmRW50cnlQb2ludCk7DQorICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQorICAgIEVudHJ5UG9pbnQgPSBOVUxMOw0KKyAgfQ0KKw0KKyAgLy8NCisg IC8vIEdldCBmaWxlIG5hbWUgYW5kIGFic29sdXRlIHBhdGggb2YgaW5pdGlhbCBQREIgZmlsZQ0K KyAgLy8NCisgIEdldFBkYkZpbGVOYW1lIChJbWFnZUJhc2UsICZQZGJBYnNvbHV0ZUZpbGVQYXRo LCAmUGRiRmlsZU5hbWUpOw0KKw0KKyAgLy8NCisgIC8vIFByaW50IG91dCBpbml0aWFsIGltYWdl IG1vZHVsZSBuYW1lIChpZiBhbnkpDQorICAvLw0KKyAgaWYgKFBkYkFic29sdXRlRmlsZVBhdGgg IT0gTlVMTCkgew0KKyAgICBJbnRlcm5hbFByaW50TWVzc2FnZSAoDQorICAgICAgIlxuJWEgKElt YWdlQmFzZT0weCUwMTZseCwgRW50cnlQb2ludD0weCUwMTZseCk6XG4iLA0KKyAgICAgIFBkYkZp bGVOYW1lLA0KKyAgICAgIEltYWdlQmFzZSwNCisgICAgICAoVUlOVE4pRW50cnlQb2ludA0KKyAg ICAgICk7DQorICAgIEludGVybmFsUHJpbnRNZXNzYWdlICgiJWFcbiIsIFBkYkFic29sdXRlRmls ZVBhdGgpOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFdhbGsgdGhyb3VnaCBjYWxsIHN0YWNrIGFu ZCBmaW5kIG5leHQgbW9kdWxlIG5hbWVzDQorICAvLw0KKyAgZm9yICg7Oykgew0KKyAgICAvLw0K KyAgICAvLyBTZXQgUklQIHdpdGggcmV0dXJuIGFkZHJlc3MgZnJvbSBjdXJyZW50IHN0YWNrIGZy YW1lDQorICAgIC8vDQorICAgIFJpcCA9ICooVUlOVDY0ICopKChVSU5UTilSYnAgKyA4KTsNCisN CisgICAgLy8NCisgICAgLy8gSWYgUklQIGlzIHplcm8sIHRoZW4gc3RvcCB1bndpbmRpbmcgdGhl IHN0YWNrDQorICAgIC8vDQorICAgIGlmIChSaXAgPT0gMCkgew0KKyAgICAgIGJyZWFrOw0KKyAg ICB9DQorDQorICAgIC8vDQorICAgIC8vIFNlYXJjaCBmb3IgdGhlIHJlc3BlY3RpdmUgUEUvQ09G RiBpbWFnZSBiYXNlZCBvbiBSSVANCisgICAgLy8NCisgICAgSW1hZ2VCYXNlID0gUGVDb2ZmU2Vh cmNoSW1hZ2VCYXNlIChSaXApOw0KKyAgICBpZiAoSW1hZ2VCYXNlID09IDApIHsNCisgICAgICAv Lw0KKyAgICAgIC8vIFN0b3Agc3RhY2sgdHJhY2UNCisgICAgICAvLw0KKyAgICAgIGJyZWFrOw0K KyAgICB9DQorDQorICAgIC8vDQorICAgIC8vIElmIFJJUCBwb2ludHMgdG8gYW5vdGhlciBQRS9D T0ZGIGltYWdlLCB0aGVuIGZpbmQgaXRzIHJlc3BlY3RpdmUgUERCIGZpbGUNCisgICAgLy8gbmFt ZS4NCisgICAgLy8NCisgICAgaWYgKExhc3RJbWFnZUJhc2UgIT0gSW1hZ2VCYXNlKSB7DQorICAg ICAgLy8NCisgICAgICAvLyBHZXQgUEUvQ09GRiBpbWFnZSdzIGVudHJ5IHBvaW50DQorICAgICAg Ly8NCisgICAgICBTdGF0dXMgPSBQZUNvZmZMb2FkZXJHZXRFbnRyeVBvaW50ICgoVk9JRCAqKUlt YWdlQmFzZSwgJkVudHJ5UG9pbnQpOw0KKyAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN CisgICAgICAgIEVudHJ5UG9pbnQgPSBOVUxMOw0KKyAgICAgIH0NCisNCisgICAgICAvLw0KKyAg ICAgIC8vIEdldCBmaWxlIG5hbWUgYW5kIGFic29sdXRlIHBhdGggb2YgUERCIGZpbGUNCisgICAg ICAvLw0KKyAgICAgIEdldFBkYkZpbGVOYW1lIChJbWFnZUJhc2UsICZQZGJBYnNvbHV0ZUZpbGVQ YXRoLCAmUGRiRmlsZU5hbWUpOw0KKw0KKyAgICAgIC8vDQorICAgICAgLy8gUHJpbnQgb3V0IGlt YWdlIG1vZHVsZSBuYW1lIChpZiBhbnkpDQorICAgICAgLy8NCisgICAgICBpZiAoUGRiQWJzb2x1 dGVGaWxlUGF0aCAhPSBOVUxMKSB7DQorICAgICAgICBJbnRlcm5hbFByaW50TWVzc2FnZSAoDQor ICAgICAgICAgICIlYSAoSW1hZ2VCYXNlPTB4JTAxNmx4LCBFbnRyeVBvaW50PTB4JTAxNmx4KTpc biIsDQorICAgICAgICAgIFBkYkZpbGVOYW1lLA0KKyAgICAgICAgICBJbWFnZUJhc2UsDQorICAg ICAgICAgIChVSU5UTilFbnRyeVBvaW50DQorICAgICAgICAgICk7DQorICAgICAgICBJbnRlcm5h bFByaW50TWVzc2FnZSAoIiVhXG4iLCBQZGJBYnNvbHV0ZUZpbGVQYXRoKTsNCisgICAgICB9DQor DQorICAgICAgLy8NCisgICAgICAvLyBTYXZlIGxhc3QgUEUvQ09GRiBpbWFnZSBiYXNlIGFkZHJl c3MNCisgICAgICAvLw0KKyAgICAgIExhc3RJbWFnZUJhc2UgPSBJbWFnZUJhc2U7DQorICAgIH0N CisNCisgICAgLy8NCisgICAgLy8gVW53aW5kIHRoZSBzdGFjaw0KKyAgICAvLw0KKyAgICBSYnAg PSAqKFVJTlQ2NCAqKShVSU5UTilSYnA7DQorICB9DQorfQ0KKw0KKy8qKg0KKyAgRHVtcCBzdGFj ayB0cmFjZS4NCisNCisgIEBwYXJhbVtpbl0gIFN5c3RlbUNvbnRleHQgICAgICBQb2ludGVyIHRv IEVGSV9TWVNURU1fQ09OVEVYVC4NCisgIEBwYXJhbVtvdXRdIFVud291bmRTdGFja3NDb3VudCAg Q291bnQgb2YgdW53b3VuZCBzdGFjayBmcmFtZXMuDQorKiovDQorU1RBVElDDQorVk9JRA0KK0R1 bXBTdGFja1RyYWNlICgNCisgIElOICBFRklfU1lTVEVNX0NPTlRFWFQgICBTeXN0ZW1Db250ZXh0 LA0KKyAgT1VUIElOVE4gICAgICAgICAgICAgICAgICpVbndvdW5kU3RhY2tzQ291bnQNCisgICkN Cit7DQorICBVSU5UNjQgIFJpcDsNCisgIFVJTlQ2NCAgUmJwOw0KKyAgVUlOVE4gICBJbWFnZUJh c2U7DQorICBDSEFSOCAgICpQZGJGaWxlTmFtZTsNCisNCisgIC8vDQorICAvLyBTZXQgY3VycmVu dCBSSVAgYWRkcmVzcw0KKyAgLy8NCisgIFJpcCA9IFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4 dFg2NC0+UmlwOw0KKw0KKyAgLy8NCisgIC8vIFNldCBjdXJyZW50IGZyYW1lIHBvaW50ZXIgYWRk cmVzcw0KKyAgLy8NCisgIFJicCA9IFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dFg2NC0+UmJw Ow0KKw0KKyAgLy8NCisgIC8vIEdldCBpbml0aWFsIFBFL0NPRkYgaW1hZ2UgYmFzZSBhZGRyZXNz IGZyb20gY3VycmVudCBSSVANCisgIC8vDQorICBJbWFnZUJhc2UgPSBQZUNvZmZTZWFyY2hJbWFn ZUJhc2UgKFJpcCk7DQorICBpZiAoSW1hZ2VCYXNlID09IDApIHsNCisgICAgSW50ZXJuYWxQcmlu dE1lc3NhZ2UgKCIhISEhIENvdWxkIG5vdCBmaW5kIGJhY2t0cmFjZSBpbmZvcm1hdGlvbi4gISEh ISIpOw0KKyAgICByZXR1cm47DQorICB9DQorDQorICAvLw0KKyAgLy8gR2V0IFBEQiBmaWxlIG5h bWUgZnJvbSBpbml0aWFsIFBFL0NPRkYgaW1hZ2UNCisgIC8vDQorICBHZXRQZGJGaWxlTmFtZSAo SW1hZ2VCYXNlLCBOVUxMLCAmUGRiRmlsZU5hbWUpOw0KKw0KKyAgLy8NCisgIC8vIEluaXRpYWxp emUgY291bnQgb2YgdW53b3VuZCBzdGFja3MNCisgIC8vDQorICAqVW53b3VuZFN0YWNrc0NvdW50 ID0gMTsNCisNCisgIC8vDQorICAvLyBQcmludCBvdXQgYmFjayB0cmFjZQ0KKyAgLy8NCisgIElu dGVybmFsUHJpbnRNZXNzYWdlICgiXG5DYWxsIHRyYWNlOlxuIik7DQorDQorICBmb3IgKDs7KSB7 DQorICAgIC8vDQorICAgIC8vIFByaW50IHN0YWNrIGZyYW1lIGluIHRoZSBmb2xsb3dpbmcgZm9y bWF0Og0KKyAgICAvLw0KKyAgICAvLyAjIDxSSVA+IEAgPEltYWdlQmFzZT4rPFJlbE9mZnNldD4g KFJCUCkgaW4gWzxNb2R1bGVOYW1lPiB8ID8/Pz9dDQorICAgIC8vDQorICAgIEludGVybmFsUHJp bnRNZXNzYWdlICgNCisgICAgICAiJWQgMHglMDE2bHggQCAweCUwMTZseCsweCV4ICgweCUwMTZs eCkgaW4gJWFcbiIsDQorICAgICAgKlVud291bmRTdGFja3NDb3VudCAtIDEsDQorICAgICAgUmlw LA0KKyAgICAgIEltYWdlQmFzZSwNCisgICAgICBSaXAgLSBJbWFnZUJhc2UgLSAxLA0KKyAgICAg IFJicCwNCisgICAgICBQZGJGaWxlTmFtZQ0KKyAgICAgICk7DQorDQorICAgIC8vDQorICAgIC8v IFNldCBSSVAgd2l0aCByZXR1cm4gYWRkcmVzcyBmcm9tIGN1cnJlbnQgc3RhY2sgZnJhbWUNCisg ICAgLy8NCisgICAgUmlwID0gKihVSU5UNjQgKikoKFVJTlROKVJicCArIDgpOw0KKw0KKyAgICAv Lw0KKyAgICAvLyBJZiBSSVAgaXMgemVybywgdGhlbiBzdG9wIHVud2luZGluZyB0aGUgc3RhY2sN CisgICAgLy8NCisgICAgaWYgKFJpcCA9PSAwKSB7DQorICAgICAgYnJlYWs7DQorICAgIH0NCisN CisgICAgLy8NCisgICAgLy8gU2VhcmNoIGZvciB0aGUgcmVzcGVjdGl2ZSBQRS9DT0ZGIGltYWdl IGJhc2VkIG9uIFJJUA0KKyAgICAvLw0KKyAgICBJbWFnZUJhc2UgPSBQZUNvZmZTZWFyY2hJbWFn ZUJhc2UgKFJpcCk7DQorICAgIGlmIChJbWFnZUJhc2UgPT0gMCkgew0KKyAgICAgIC8vDQorICAg ICAgLy8gU3RvcCBzdGFjayB0cmFjZQ0KKyAgICAgIC8vDQorICAgICAgYnJlYWs7DQorICAgIH0N CisNCisgICAgLy8NCisgICAgLy8gR2V0IFBEQiBmaWxlIG5hbWUNCisgICAgLy8NCisgICAgR2V0 UGRiRmlsZU5hbWUgKEltYWdlQmFzZSwgTlVMTCwgJlBkYkZpbGVOYW1lKTsNCisNCisgICAgLy8N CisgICAgLy8gVW53aW5kIHRoZSBzdGFjaw0KKyAgICAvLw0KKyAgICBSYnAgPSAqKFVJTlQ2NCAq KShVSU5UTilSYnA7DQorDQorICAgIC8vDQorICAgIC8vIEluY3JlbWVudCBjb3VudCBvZiB1bndv dW5kIHN0YWNrcw0KKyAgICAvLw0KKyAgICAoKlVud291bmRTdGFja3NDb3VudCkrKzsNCisgIH0N Cit9DQorDQogLyoqDQogICBEaXNwbGF5IENQVSBpbmZvcm1hdGlvbi4NCg0KQEAgLTQxMCw5ICs3 NjYsMjUgQEAgRHVtcEltYWdlQW5kQ3B1Q29udGVudCAoDQogICBJTiBFRklfU1lTVEVNX0NPTlRF WFQgICBTeXN0ZW1Db250ZXh0DQogICApDQogew0KKyAgSU5UTiBVbndvdW5kU3RhY2tzQ291bnQ7 DQorDQorICAvLw0KKyAgLy8gRHVtcCBDUFUgY29udGV4dA0KKyAgLy8NCiAgIER1bXBDcHVDb250 ZXh0IChFeGNlcHRpb25UeXBlLCBTeXN0ZW1Db250ZXh0KTsNCisNCisgIC8vDQorICAvLyBEdW1w IHN0YWNrIHRyYWNlDQorICAvLw0KKyAgRHVtcFN0YWNrVHJhY2UgKFN5c3RlbUNvbnRleHQsICZV bndvdW5kU3RhY2tzQ291bnQpOw0KKw0KKyAgLy8NCisgIC8vIER1bXAgaW1hZ2UgbW9kdWxlIG5h bWVzDQorICAvLw0KKyAgRHVtcEltYWdlTW9kdWxlTmFtZXMgKFN5c3RlbUNvbnRleHQpOw0KKw0K ICAgLy8NCi0gIC8vIER1bXAgbW9kdWxlIGltYWdlIGJhc2UgYW5kIG1vZHVsZSBlbnRyeSBwb2lu dCBieSBSSVANCisgIC8vIER1bXAgc3RhY2sgY29udGVudHMNCiAgIC8vDQotICBEdW1wTW9kdWxl SW1hZ2VJbmZvIChTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRYNjQtPlJpcCk7DQorICBEdW1w U3RhY2tDb250ZW50cyAoU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5Sc3AsIFVud291 bmRTdGFja3NDb3VudCk7DQogfQ0KLS0NCjIuMTQuMw0KDQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnDQpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2VkazItZGV2ZWwNCg==