From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.7.71; helo=nam03-co1-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-oln040092007071.outbound.protection.outlook.com [40.92.7.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A92A021A10969 for ; Sat, 25 Nov 2017 05:30:52 -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=8fmlA2z1NuncMezvFzJkmMeOBv8yAk3Rdg8Eeo34nm0=; b=U9KL2yah6hVNbErBkdzS8PhFlI6wWbhhzXr90vJP+CJk/8bMj5DiIAq1NJcjGDy6DChUnNQV0YDylsMP692nK2It9L0zLFZ8yBcF5fGNnvAYaX129hVBnEwmgYa6+yaq8m2+JHNPriBvzkfYW/aV0FqAe/H88VBDzNDJqNOMmEE8dchNQO0e1CtRq7ql+sgFxM3USn87fE8xF27FqS17ANAzE2Ayy4IOEpOCDqUr2Kqd6Iv4S9A3JkTikNene/XcsPuXgjGTQ8VijgOBWiVaiZvhFdNL4RPLjMwVHti7Uy4UFXDsPk2PpQpxWzroCuJFZYRRfLnA4eLHPDTSeSJXjQ== Received: from DM3NAM03FT012.eop-NAM03.prod.protection.outlook.com (10.152.82.51) by DM3NAM03HT182.eop-NAM03.prod.protection.outlook.com (10.152.83.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.239.4; Sat, 25 Nov 2017 13:35:05 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com (10.152.82.57) by DM3NAM03FT012.mail.protection.outlook.com (10.152.82.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.239.4 via Frontend Transport; Sat, 25 Nov 2017 13:35:05 +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.0260.006; Sat, 25 Nov 2017 13:35:00 +0000 From: Fan Jeff To: Jian J Wang , "edk2-devel@lists.01.org" CC: Michael Kinney , Jiewen Yao , Eric Dong , Star Zeng Thread-Topic: [edk2] [PATCH v2 7/8] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTY25b6vND0IfFkEWDSUPnvVM4XKMlHJIB Date: Sat, 25 Nov 2017 13:35:00 +0000 Message-ID: References: <20171122084548.6564-1-jian.j.wang@intel.com>, <20171122084548.6564-8-jian.j.wang@intel.com> In-Reply-To: <20171122084548.6564-8-jian.j.wang@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:0522003B686460F5D12B30B36918C437E32957B93422AA8C5D340ADAACE5839F; UpperCasedChecksum:948FBFC813791BDA83B8E5F27A1B6F4B3F8CBAFA3F7CB1DD4F44FB96510FB074; SizeAsReceived:7336; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [f0sS2UgOFjMt8EYS8IIVCZlO1wCd6PP0] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM3NAM03HT182; 6:GIXhrh1K/F9KIGmXBZDQJ36ESyCR93kGdgCV95OyKC8hC2gzwcoZnnyy9oEwLMV2HEU9yq8+cKdazy4FhHdeqg1ssAR1J7fJfoepy8bhyoxKdBWs3cFOao+kJDIZ/mBmxQbaowF3rYmDxHXxMGImIxWpkIUYqmkWrYrvQVa5v7bxi4hfO29T8VrDhYCEIsJpkrSMWjIB5la3WPmcgoOVB5UFQ9PwxORarM5eYC9IIBzSOI8MnjISSuZd0miaehi5I4c1e3aJd3vtluMk/D/qAoV+IUWb3/L0vZ6YSmwWygJlxpcC9vqYXBKuNajfd4VMJ4rHAwduAXo6y8AjusaMt0a1hJ6gEeYuH/p/Dqn4+vE=; 5:iXb/DLyvmckfJELkTi2+eNF5k+/HJfrAX+xWiJ40SSYtJItOEK9PIerW/BtfY8DO07pvXmHljre4yLAk1maTvCa7B71rwJSKvYX5m5bLaDlyOMiypwGiPcN38HitgH/o+OnEDN9cCn4ea+3Sjlu2pGG7VtBpGd957bfuWiVCWX8=; 24:NreHALgPJYIMmFVHRQAr0yspnLBWt9feydDyz7J//G2NB1jdBEzqrzbscKQJYNxai4MgTForWsU47AxZViXNdEYJ9HvZ56/SFrOOTGYdNfU=; 7:Ld08qBYNm3JCNoZXKuYqcMWUFti5ENPo531Hs0kHevw89K1V22NDcT982hK6fj3ZGmeKpNsOSBPe6A/XiN8ArNwEzbDR8l27f9OfKKnNfIF/JHl4T2ukUSGs8XF6mdEpWBJElIyEZ7XhtjjndiAUHB5Ce+IFEsiz/i2UF44hUPpHCEfPcr9HUSfPKNTWRMzawCEfj2ROFlF3l0NvWkbd3HGwzMqalayc/635hbSK7SNG3EDbQ95noa8OaRgUfN6/ x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:DM3NAM03HT182; x-ms-traffictypediagnostic: DM3NAM03HT182: x-ms-office365-filtering-correlation-id: d4742910-505e-46ba-9513-08d5340953b4 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:DM3NAM03HT182; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DM3NAM03HT182; x-forefront-prvs: 0502983C0E x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:DM3NAM03HT182; 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: d4742910-505e-46ba-9513-08d5340953b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2017 13:35:00.5236 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3NAM03HT182 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggdjIgNy84XSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Nov 2017 13:30:52 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="big5" Content-Transfer-Encoding: base64 SmlhbiwNCg0KDQoNCkVGSUFQSSBpcyBub3QgcmVxdWlyZWQgZm9yIEFyY2hTZXR1cEV4Y3BldGlv blN0YWNrKCkuDQoNCg0KDQpSZXZpZXdlZC1ieTogSmVmZiBGYW4gPHZhbmplZmZfOTE5QGhvdG1h aWwuY29tPg0KDQoNCg0KSmVmZg0KDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCkZyb206IGVkazItZGV2ZWwgPGVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmc+IG9u IGJlaGFsZiBvZiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KU2VudDogV2Vk bmVzZGF5LCBOb3ZlbWJlciAyMiwgMjAxNyA0OjQ1OjQ3IFBNDQpUbzogZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmcNCkNjOiBNaWNoYWVsIEtpbm5leTsgSmlld2VuIFlhbzsgRXJpYyBEb25nOyBTdGFy IFplbmcNClN1YmplY3Q6IFtlZGsyXSBbUEFUQ0ggdjIgNy84XSBVZWZpQ3B1UGtnL0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KDQo+IHYyOg0KPiAgICBh LiBNb3ZlIGNvbW1vbiBUU1Mgc3RydWN0dXJlIGFuZCBBUEkgZGVmaW5pdGlvbnMgdG8gQmFzZUxp Yi5oDQo+ICAgIGIuIEFkZCBFWENFUFRJT05fU1RBQ0tfU1dJVENIX0RBVEEgdG8gY29udmVyeSBk YXRhIHVzZWQgdG8gc2V0dXAgc3RhY2sNCj4gICAgICAgc3dpdGNoLiBUaGlzIGNhbiBhdm9pZCBh bGxvY2F0aW5nIG1lbW9yeSBmb3IgaXQgaW4gdGhpcyBsaWJyYXJ5Lg0KPiAgICBjLiBBZGQgZ2xv YmFscyB0byByZXNlcnZlIG1lbW9yeSBmb3Igc3RhY2sgc3dpdGNoIGluaXRpYWxpemVkIGluIGVh cmx5DQo+ICAgICAgIHBoYXNlIG9mIERYRSBjb3JlLg0KPiAgICBkLiBSZW1vdmUgdGhlIGZpbHRl ciBjb2RlIHVzZWQgdG8gZXhjbHVkZSBib290IG1vZGVzIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydA0K PiAgICAgICBtZW1vcnkgYWxsb2NhdGlvbiBiZWNhdXNlIHRob3NlIG1lbW9yeSBjYW4gcGFzc2Vk IGluIGJ5IHBhcmFtZXRlciBub3cuDQo+ICAgIGUuIFJlbW92ZSB0aGUgbmFzbSBtYWNybyB0byBk ZWZpbmUgZXhjZXB0aW9uIGhhbmRsZXIgb25lIGJ5IG9uZSBhbmQgYWRkIGENCj4gICAgICAgZnVu Y3Rpb24gdG8gcmV0dXJuIHRoZSBzdGFydCBhZGRyZXNzIG9mIGVhY2ggaGFuZGxlci4NCg0KSWYg U3RhY2sgR3VhcmQgaXMgZW5hYmxlZCBhbmQgdGhlcmUncyByZWFsbHkgYSBzdGFjayBvdmVyZmxv dyBoYXBwZW5lZCBkdXJpbmcNCmJvb3QsIGEgUGFnZSBGYXVsdCBleGNlcHRpb24gd2lsbCBiZSB0 cmlnZ2VyZWQuIEJlY2F1c2UgdGhlIHN0YWNrIGlzIG91dCBvZg0KdXNhZ2UsIHRoZSBleGNlcHRp b24gaGFuZGxlciwgd2hpY2ggc2hhcmVzIHRoZSBzdGFjayB3aXRoIG5vcm1hbCBVRUZJIGRyaXZl ciwNCmNhbm5vdCBiZSBleGVjdXRlZCBhbmQgY2Fubm90IGR1bXAgdGhlIHByb2Nlc3NvciBpbmZv cm1hdGlvbi4NCg0KV2l0aG91dCB0aG9zZSBpbmZvcm1hdGlvbiwgaXQncyB2ZXJ5IGRpZmZpY3Vs dCBmb3IgdGhlIEJJT1MgZGV2ZWxvcGVycyBsb2NhdGUNCnRoZSByb290IGNhdXNlIG9mIHN0YWNr IG92ZXJmbG93LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNrLCB0aGUgZGV2ZWxvcGVyDQpj YW5ub3QgZXZlbnQgdXNlIHNpbmdsZSBzdGVwIHRvIGRlYnVnIHRoZSBVRUZJIGRyaXZlciB3aXRo IEpUQUcgZGVidWdnZXIuDQoNCkluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgZXhjZXB0aW9uIGhh bmRsZXIgdG8gZXhlY3V0ZSBub3JtYWxseSBhZnRlciBzdGFjaw0Kb3ZlcmZsb3cuIFdlIG5lZWQg c2VwYXJhdGUgc3RhY2tzIGZvciBleGNlcHRpb24gaGFuZGxlcnMgaW4gY2FzZSBvZiB1bnVzYWJs ZQ0Kc3RhY2suDQoNCklBIHByb2Nlc3NvciBhbGxvd3MgdG8gc3dpdGNoIHRvIGEgbmV3IHN0YWNr IGR1cmluZyBoYW5kbGluZyBpbnRlcnJ1cHQgYW5kDQpleGNlcHRpb24uIEJ1dCBYNjQgYW5kIElB MzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMgdG8gbWFrZSBpdC4gWDY0IHByb3ZpZGVzDQppbnRl cnJ1cHQgc3RhY2sgdGFibGUgKElTVCkgdG8gYWxsb3cgbWF4aW11bSA3IGRpZmZlcmVudCBleGNl cHRpb25zIHRvIGhhdmUNCm5ldyBzdGFjayBmb3IgaXRzIGhhbmRsZXIuIElBMzIgZG9lc24ndCBo YXZlIElTVCBtZWNoYW5pc20gYW5kIGNhbiBvbmx5IHVzZQ0KdGFzayBnYXRlIHRvIGRvIGl0IHNp bmNlIHRhc2sgc3dpdGNoIGFsbG93cyB0byBsb2FkIGEgbmV3IHN0YWNrIHRocm91Z2ggaXRzDQp0 YXNrLXN0YXRlIHNlZ21lbnQgKFRTUykuDQoNCkNjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRl bC5jb20+DQpDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KQ2M6IEppZXdlbiBZ YW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KQ2M6IE1pY2hhZWwgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NClN1Z2dlc3RlZC1ieTogQXllbGxldCBXb2xtYW4gPGF5ZWxsZXQu d29sbWFuQGludGVsLmNvbT4NCkNvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0 aW9uIEFncmVlbWVudCAxLjENClNpZ25lZC1vZmYtYnk6IEppYW4gSiBXYW5nIDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+DQotLS0NCiAuLi4vQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRp b25Db21tb24uaCAgICB8ICA1MCArKysNCiAuLi4vRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYgICAgICAgICAgICAgICAgICB8ICAgNiArDQogLi4uL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9EeGVFeGNlcHRpb24uYyAgfCAgNTMgKystDQogLi4uL0lhMzIvQXJjaEV4Y2VwdGlv bkhhbmRsZXIuYyAgICAgICAgICAgICAgICAgICAgfCAxNjcgKysrKysrKysrDQogLi4uL0lhMzIv QXJjaEludGVycnVwdERlZnMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKw0KIC4uLi9J YTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20gICAgICAgICAgICAgICAgIHwgMzk4ICsrKysr KysrKysrKysrKysrKysrKw0KIC4uLi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAg ICAgICAgICAgICAgIHwgICAxICsNCiAuLi4vU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYgICAgICAgICAgICAgICB8ICAgMSArDQogLi4uL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIu aW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KIC4uLi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRs ZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgMTMzICsrKysrKysNCiAuLi4vQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaCB8ICAgMyArDQogMTEgZmlsZXMgY2hh bmdlZCwgODIwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRp b25Uc3NFbnRyeUFzbS5uYXNtDQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaCBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQppbmRleCA3 NDBhNTg4MjhiLi4zMDMzNDEwNWQyIDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCisrKyBiL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQpA QCAtNDgsNiArNDgsMzIgQEANCiAgICAgMHhiMjFkOTE0OCwgMHg5MjExLCAweDRkOGYsIHsgMHhh ZCwgMHhkMywgMHg2NiwgMHhiMSwgMHg4OSwgMHhjOSwgMHgyYywgMHg4MyB9IFwNCiAgIH0NCg0K KyNkZWZpbmUgQ1BVX1NUQUNLX1NXSVRDSF9FWENFUFRJT05fTlVNQkVSIFwNCisgIEZpeGVkUGNk R2V0U2l6ZSAoUGNkQ3B1U3RhY2tTd2l0Y2hFeGNlcHRpb25MaXN0KQ0KKw0KKyNkZWZpbmUgQ1BV X1NUQUNLX1NXSVRDSF9FWENFUFRJT05fTElTVCBcDQorICBGaXhlZFBjZEdldFB0ciAoUGNkQ3B1 U3RhY2tTd2l0Y2hFeGNlcHRpb25MaXN0KQ0KKw0KKyNkZWZpbmUgQ1BVX0tOT1dOX0dPT0RfU1RB Q0tfU0laRSBcDQorICBGaXhlZFBjZEdldDMyIChQY2RDcHVLbm93bkdvb2RTdGFja1NpemUpDQor DQorI2RlZmluZSBDUFVfVFNTX0dEVF9TSVpFIChTSVpFXzJLQiArIENQVV9UU1NfREVTQ19TSVpF ICsgQ1BVX1RTU19TSVpFKQ0KKw0KKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAg IDB4OQ0KKyNkZWZpbmUgSUEzMl9HRFRfQUxJR05NRU5UICAgICAgICAgIDgNCisNCit0eXBlZGVm IHN0cnVjdCB7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9wOw0KKyAgVUlO VE4gICAgICAgICAgICAgICAgICAgICBTdGFja1NpemU7DQorICBVSU5UOCAgICAgICAgICAgICAg ICAgICAgICpFeGNlcHRpb25zOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBFeGNlcHRp b25OdW1iZXI7DQorICBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICpJZHRUYWJsZTsNCisgIElB MzJfU0VHTUVOVF9ERVNDUklQVE9SICAgKkdkdFRhYmxlOw0KKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICBHZHRTaXplOw0KKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAqVHNzRGVzYzsN CisgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgKlRzczsNCit9IEVYQ0VQVElPTl9TVEFDS19T V0lUQ0hfREFUQTsNCisNCiAvLw0KIC8vIFJlY29yZCBleGNlcHRpb24gaGFuZGxlciBpbmZvcm1h dGlvbg0KIC8vDQpAQCAtMjg4LDUgKzMxNCwyOSBAQCBDb21tb25FeGNlcHRpb25IYW5kbGVyV29y a2VyICgNCiAgIElOIEVYQ0VQVElPTl9IQU5ETEVSX0RBVEEgICAgICAqRXhjZXB0aW9uSGFuZGxl ckRhdGENCiAgICk7DQoNCisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBzcGVjaWZp YyBleGNlcHRpb25zLg0KKw0KKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURUIHRhYmxl IGJhc2UuDQorKiovDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK0FyY2hTZXR1cEV4Y3BldGlvblN0 YWNrICgNCisgIElOIEVYQ0VQVElPTl9TVEFDS19TV0lUQ0hfREFUQSAgICAgICpTdGFja1N3aXRj aERhdGENCisgICk7DQorDQorLyoqDQorICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9u IGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUgY2FuIGdlbmVyYXRlDQorICBleGNlcHRp b24gdGFibGVzLiBUaGUgdGVtcGxhdGUgaXMgb25seSBmb3IgZXhjZXB0aW9ucyB1c2luZyB0YXNr IGdhdGUgaW5zdGVhZA0KKyAgb2YgaW50ZXJydXB0IGdhdGUuDQorDQorICBAcGFyYW0gQWRkcmVz c01hcCAgUG9pbnRlciB0byBhIGJ1ZmZlciB3aGVyZSB0aGUgYWRkcmVzcyBtYXAgaXMgcmV0dXJu ZWQuDQorKiovDQorVk9JRA0KK0VGSUFQSQ0KK0FzbUdldFRzc1RlbXBsYXRlTWFwICgNCisgIE9V VCBFWENFUFRJT05fSEFORExFUl9URU1QTEFURV9NQVAgICpBZGRyZXNzTWFwDQorICApOw0KKw0K ICNlbmRpZg0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0K aW5kZXggZjRhOGQwMWM4MC4uNThlNTVhOGEyZSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5m DQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVF eGNlcHRpb25IYW5kbGVyTGliLmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMy XQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5k bGVyQXNtLm5hc20NCisgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9F eGNlcHRpb25IYW5kbGVyQXNtLlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAg SWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQpAQCAtNDcsNiArNDgsMTEgQEANCiAgIFBlaUR4ZVNt bUNwdUV4Y2VwdGlvbi5jDQogICBEeGVFeGNlcHRpb24uYw0KDQorW1BjZF0NCisgIGdFZmlNZGVN b2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTdGFja0d1YXJkDQorICBnVWVmaUNwdVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrU3dpdGNoRXhjZXB0aW9uTGlzdA0KKyAgZ1VlZmlDcHVQ a2dUb2tlblNwYWNlR3VpZC5QY2RDcHVLbm93bkdvb2RTdGFja1NpemUNCisNCiBbUGFja2FnZXNd DQogICBNZGVQa2cvTWRlUGtnLmRlYw0KICAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMN CmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9E eGVFeGNlcHRpb24uYyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L0R4ZUV4Y2VwdGlvbi5jDQppbmRleCAzMWZlYmVjOTc2Li5jMGIyYzYxNWFhIDEwMDY0NA0KLS0t IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9u LmMNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4 Y2VwdGlvbi5jDQpAQCAtMjUsNiArMjUsMTAgQEAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg IG1FbmFibGVkSW50ZXJydXB0TnVtID0gMDsNCg0KIEVYQ0VQVElPTl9IQU5ETEVSX0RBVEEgICAg ICBtRXhjZXB0aW9uSGFuZGxlckRhdGE7DQoNCitVSU5UOCAgICAgICAgICAgICAgICAgICAgICAg bU5ld1N0YWNrW0NQVV9TVEFDS19TV0lUQ0hfRVhDRVBUSU9OX05VTUJFUiAqDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfS05PV05fR09PRF9TVEFDS19TSVpFXSA9 IHswfTsNCitVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgbU5ld0dkdFtDUFVfVFNTX0dEVF9T SVpFXSA9IHswfTsNCisNCiAvKioNCiAgIENvbW1vbiBleGNlcHRpb24gaGFuZGxlci4NCg0KQEAg LTYzLDEwICs2NywzNCBAQCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMgKA0KICAgSU4g RUZJX1ZFQ1RPUl9IQU5ET0ZGX0lORk8gICAgICAgKlZlY3RvckluZm8gT1BUSU9OQUwNCiAgICkN CiB7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgRVhD RVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBICAgICAgIFN0YWNrU3dpdGNoRGF0YTsNCisgIElBMzJf REVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICBJZHRyOw0KKyAgSUEzMl9ERVNDUklQVE9SICAg ICAgICAgICAgICAgICAgIEdkdHI7DQorDQogICBtRXhjZXB0aW9uSGFuZGxlckRhdGEuUmVzZXJ2 ZWRWZWN0b3JzICAgICAgICAgID0gbVJlc2VydmVkVmVjdG9yc0RhdGE7DQogICBtRXhjZXB0aW9u SGFuZGxlckRhdGEuRXh0ZXJuYWxJbnRlcnJ1cHRIYW5kbGVyID0gbUV4dGVybmFsSW50ZXJydXB0 SGFuZGxlclRhYmxlOw0KICAgSW5pdGlhbGl6ZVNwaW5Mb2NrICgmbUV4Y2VwdGlvbkhhbmRsZXJE YXRhLkRpc3BsYXlNZXNzYWdlU3BpbkxvY2spOw0KLSAgcmV0dXJuIEluaXRpYWxpemVDcHVFeGNl cHRpb25IYW5kbGVyc1dvcmtlciAoVmVjdG9ySW5mbywgJm1FeGNlcHRpb25IYW5kbGVyRGF0YSk7 DQorICBTdGF0dXMgPSBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnNXb3JrZXIgKFZlY3Rv ckluZm8sICZtRXhjZXB0aW9uSGFuZGxlckRhdGEpOw0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1 cykgJiYgUGNkR2V0Qm9vbCAoUGNkQ3B1U3RhY2tHdWFyZCkpIHsNCisgICAgQXNtUmVhZElkdHIg KCZJZHRyKTsNCisgICAgQXNtUmVhZEdkdHIgKCZHZHRyKTsNCisNCisgICAgU3RhY2tTd2l0Y2hE YXRhLlN0YWNrVG9wID0gKFVJTlROKW1OZXdTdGFjazsNCisgICAgU3RhY2tTd2l0Y2hEYXRhLlN0 YWNrU2l6ZSA9IENQVV9LTk9XTl9HT09EX1NUQUNLX1NJWkU7DQorICAgIFN0YWNrU3dpdGNoRGF0 YS5FeGNlcHRpb25zID0gQ1BVX1NUQUNLX1NXSVRDSF9FWENFUFRJT05fTElTVDsNCisgICAgU3Rh Y2tTd2l0Y2hEYXRhLkV4Y2VwdGlvbk51bWJlciA9IENQVV9TVEFDS19TV0lUQ0hfRVhDRVBUSU9O X05VTUJFUjsNCisgICAgU3RhY2tTd2l0Y2hEYXRhLklkdFRhYmxlID0gKElBMzJfSURUX0dBVEVf REVTQ1JJUFRPUiAqKUlkdHIuQmFzZTsNCisgICAgU3RhY2tTd2l0Y2hEYXRhLkdkdFRhYmxlID0g KElBMzJfU0VHTUVOVF9ERVNDUklQVE9SICopbU5ld0dkdDsNCisgICAgU3RhY2tTd2l0Y2hEYXRh LkdkdFNpemUgPSBzaXplb2YgKG1OZXdHZHQpOw0KKyAgICBTdGFja1N3aXRjaERhdGEuVHNzRGVz YyA9IChJQTMyX1RTU19ERVNDUklQVE9SICopKG1OZXdHZHQgKyBHZHRyLkxpbWl0ICsgMSk7DQor ICAgIFN0YWNrU3dpdGNoRGF0YS5Uc3MgPSAoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgKikobU5l d0dkdCArIEdkdHIuTGltaXQgKyAxICsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDUFVfVFNTX0RFU0NfU0laRSk7DQorICAgIFN0YXR1cyA9 IEluaXRpYWxpemVDcHVFeGNlcHRpb25TdGFja1N3aXRjaEhhbmRsZXJzICgNCisgICAgICAgICAg ICAgICAmU3RhY2tTd2l0Y2hEYXRhDQorICAgICAgICAgICAgICAgKTsNCisgIH0NCisgIHJldHVy biBTdGF0dXM7DQogfQ0KDQogLyoqDQpAQCAtMTk3LDMgKzIyNSwyNiBAQCBSZWdpc3RlckNwdUlu dGVycnVwdEhhbmRsZXIgKA0KIHsNCiAgIHJldHVybiBSZWdpc3RlckNwdUludGVycnVwdEhhbmRs ZXJXb3JrZXIgKEludGVycnVwdFR5cGUsIEludGVycnVwdEhhbmRsZXIsICZtRXhjZXB0aW9uSGFu ZGxlckRhdGEpOw0KIH0NCisNCisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBnaXZl biBleGNlcHRpb25zLiBUaGlzIGlzIHJlcXVpcmVkIGJ5DQorICBQY2RDcHVTdGFja0d1YXJkIGZl YXR1cmUuDQorDQorICBOb3RlOiBGb3IgSUEzMiBwcm9jZXNzb3IsIFN0YWNrU3dpdGNoRGF0YSBp cyBhIHJlcXVpcmVkIHBhcmFtZXRlci4NCisNCisgIEBwYXJhbVtpbl0gU3RhY2tTd2l0Y2hEYXRh ICAgICAgUG9pbnRlciB0byBkYXRhIHJlcXVpcmVkIGZvciBzZXR1cGluZyB1cA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFjayBzd2l0Y2guDQorDQorICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgICAgICAgIFRoZSBleGNlcHRpb25zIGhhdmUgYmVlbiBzdWNjZXNzZnVs bHkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQuDQorICBA cmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFN0YWNrU3dpdGNoRGF0YSBjb250YWlucyBp bnZhbGlkIGNvbnRlbnQuDQorDQorKiovDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK0luaXRpYWxp emVDcHVFeGNlcHRpb25TdGFja1N3aXRjaEhhbmRsZXJzICgNCisgIElOIFZPSUQgICAgICAgKlN0 YWNrU3dpdGNoRGF0YSBPUFRJT05BTA0KKyAgKQ0KK3sNCisgIHJldHVybiBBcmNoU2V0dXBFeGNw ZXRpb25TdGFjayAoU3RhY2tTd2l0Y2hEYXRhKTsNCit9DQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxl ci5jIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNo RXhjZXB0aW9uSGFuZGxlci5jDQppbmRleCBmMmMzOWViMTkzLi4wYWFmNzk0Nzk1IDEwMDY0NA0K LS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNo RXhjZXB0aW9uSGFuZGxlci5jDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCkBAIC0xMDcsNiArMTA3LDE3 MyBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KICAgU3lzdGVtQ29udGV4dC5TeXN0 ZW1Db250ZXh0SWEzMi0+RXhjZXB0aW9uRGF0YSA9IFJlc2VydmVkVmVjdG9yc1tFeGNlcHRpb25U eXBlXS5FeGNlcHRpb25EYXRhOw0KIH0NCg0KKy8qKg0KKyAgU2V0dXAgc2VwYXJhdGUgc3RhY2sg Zm9yIGdpdmVuIGV4Y2VwdGlvbnMuDQorDQorICBAcGFyYW1baW5dIFN0YWNrU3dpdGNoRGF0YSAg ICAgICAgUG9pbnRlciB0byBkYXRhIHJlcXVpcmVkIGZvciBzZXR1cGluZyB1cA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrIHN3aXRjaC4NCisgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgICAgVGhlIGV4Y2VwdGlvbnMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxs eQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplZC4NCisgIEBy ZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgU3RhY2tTd2l0Y2hEYXRhIGNvbnRhaW5zIGlu dmFsaWQgY29udGVudC4NCisNCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorQXJjaFNldHVw RXhjcGV0aW9uU3RhY2sgKA0KKyAgSU4gRVhDRVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBICAgKlN0 YWNrU3dpdGNoRGF0YQ0KKyAgKQ0KK3sNCisgIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICAgICAg ICAgICBHZHRyOw0KKyAgSUEzMl9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgIElkdHI7DQor ICBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgKklkdFRhYmxlOw0KKyAgSUEzMl9U U1NfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICpUc3NEZXNjOw0KKyAgSUEzMl9UQVNLX1NUQVRF X1NFR01FTlQgICAgICAgICAgICpUc3M7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RhY2tUb3A7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k ZXg7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yOw0KKyAgVUlO VE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQorICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR2R0U2l6ZTsNCisgIEVYQ0VQVElPTl9IQU5ETEVSX1RFTVBM QVRFX01BUCAgICBUZW1wbGF0ZU1hcDsNCisNCisgIGlmIChTdGFja1N3aXRjaERhdGEgPT0gTlVM TCB8fA0KKyAgICAgIFN0YWNrU3dpdGNoRGF0YS0+U3RhY2tUb3AgPT0gMCB8fA0KKyAgICAgIFN0 YWNrU3dpdGNoRGF0YS0+U3RhY2tTaXplID09IDAgfHwNCisgICAgICBTdGFja1N3aXRjaERhdGEt PkV4Y2VwdGlvbnMgPT0gTlVMTCB8fA0KKyAgICAgIFN0YWNrU3dpdGNoRGF0YS0+RXhjZXB0aW9u TnVtYmVyID09IDAgfHwNCisgICAgICBTdGFja1N3aXRjaERhdGEtPkdkdFRhYmxlID09IE5VTEwg fHwNCisgICAgICBTdGFja1N3aXRjaERhdGEtPklkdFRhYmxlID09IE5VTEwgfHwNCisgICAgICBT dGFja1N3aXRjaERhdGEtPlRzc0Rlc2MgPT0gTlVMTCB8fA0KKyAgICAgIFN0YWNrU3dpdGNoRGF0 YS0+VHNzID09IE5VTEwpIHsNCisgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCisg IH0NCisNCisgIC8vDQorICAvLyBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciB0aGF0IHRo ZSBHRFQgdGFibGUsIG5vIG1hdHRlciB0aGUgZXhpc3RpbmcNCisgIC8vIG9uZSBvciBuZXdseSBh bGxvY2F0ZWQsIGhhcyBlbm91Z2ggc3BhY2UgdG8gaG9sZCBkZXNjcmlwdG9ycyBmb3IgZXhjZXB0 aW9uDQorICAvLyB0YXNrLXN0YXRlIHNlZ21lbnRzLg0KKyAgLy8NCisgIGlmICgoKFVJTlROKVN0 YWNrU3dpdGNoRGF0YS0+R2R0VGFibGUgJiAoSUEzMl9HRFRfQUxJR05NRU5UIC0gMSkpICE9IDAp IHsNCisgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCisgIH0NCisNCisgIGlmICgo VUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5Uc3NEZXNjIDwgKFVJTlROKShTdGFja1N3aXRjaERhdGEt PkdkdFRhYmxlKSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAgfQ0K Kw0KKyAgaWYgKChVSU5UTilTdGFja1N3aXRjaERhdGEtPlRzc0Rlc2MgPj0NCisgICAgICAgICAg KChVSU5UTikoU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSkgKyBTdGFja1N3aXRjaERhdGEtPkdk dFNpemUpKSB7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQor ICBHZHRTaXplID0gKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYyAtDQorICAgICAgICAg ICAgKFVJTlROKShTdGFja1N3aXRjaERhdGEtPkdkdFRhYmxlKSArDQorICAgICAgICAgICAgc2l6 ZW9mIChJQTMyX1RTU19ERVNDUklQVE9SKSAqDQorICAgICAgICAgICAgKFN0YWNrU3dpdGNoRGF0 YS0+RXhjZXB0aW9uTnVtYmVyICsgMSk7DQorICBpZiAoR2R0U2l6ZSA+IFN0YWNrU3dpdGNoRGF0 YS0+R2R0U2l6ZSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAgfQ0K Kw0KKyAgLy8NCisgIC8vIEluaXRpYWxpemUgbmV3IEdEVCB0YWJsZSBhbmQvb3IgSURUIHRhYmxl LCBpZiBhbnkNCisgIC8vDQorICBBc21SZWFkSWR0ciAoJklkdHIpOw0KKyAgQXNtUmVhZEdkdHIg KCZHZHRyKTsNCisgIGlmICgoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSAhPSBHZHRy LkJhc2UpIHsNCisgICAgQ29weU1lbSAoU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSwgKFZPSUQg KilHZHRyLkJhc2UsIEdkdHIuTGltaXQgKyAxKTsNCisgICAgR2R0ci5CYXNlID0gKFVJTlROKVN0 YWNrU3dpdGNoRGF0YS0+R2R0VGFibGU7DQorICAgIEdkdHIuTGltaXQgPSAoVUlOVDE2KVN0YWNr U3dpdGNoRGF0YS0+R2R0U2l6ZSAtIDE7DQorICB9DQorDQorICBpZiAoKFVJTlROKVN0YWNrU3dp dGNoRGF0YS0+SWR0VGFibGUgIT0gSWR0ci5CYXNlKSB7DQorICAgIElkdHIuQmFzZSA9IChVSU5U TilTdGFja1N3aXRjaERhdGEtPklkdFRhYmxlOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIEZpeHVw IGN1cnJlbnQgdGFzayBkZXNjcmlwdG9yLiBUYXNrLXN0YXRlIHNlZ21lbnQgZm9yIGN1cnJlbnQg dGFzayB3aWxsDQorICAvLyBiZSBmaWxsZWQgYnkgcHJvY2Vzc29yIGR1cmluZyB0YXNrIHN3aXRj aGluZy4NCisgIC8vDQorICBUc3NEZXNjID0gU3RhY2tTd2l0Y2hEYXRhLT5Uc3NEZXNjOw0KKyAg VHNzICAgICA9IFN0YWNrU3dpdGNoRGF0YS0+VHNzOw0KKw0KKyAgVHNzQmFzZSA9IChVSU5UTilU c3M7DQorICBUc3NEZXNjLT5CaXRzLkxpbWl0TG93ICAgPSBzaXplb2YoSUEzMl9UQVNLX1NUQVRF X1NFR01FTlQpIC0gMTsNCisgIFRzc0Rlc2MtPkJpdHMuQmFzZUxvdyAgICA9IChVSU5UMTYpVHNz QmFzZTsNCisgIFRzc0Rlc2MtPkJpdHMuQmFzZU1pZCAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAx Nik7DQorICBUc3NEZXNjLT5CaXRzLlR5cGUgICAgICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCisg IFRzc0Rlc2MtPkJpdHMuUCAgICAgICAgICA9IDE7DQorICBUc3NEZXNjLT5CaXRzLkxpbWl0SGln aCAgPSAwOw0KKyAgVHNzRGVzYy0+Qml0cy5CYXNlSGlnaCAgID0gKFVJTlQ4KShUc3NCYXNlID4+ IDI0KTsNCisNCisgIC8vDQorICAvLyBGaXh1cCBleGNlcHRpb24gdGFzayBkZXNjcmlwdG9yIGFu ZCB0YXNrLXN0YXRlIHNlZ21lbnQNCisgIC8vDQorICBBc21HZXRUc3NUZW1wbGF0ZU1hcCAoJlRl bXBsYXRlTWFwKTsNCisgIFN0YWNrVG9wID0gU3RhY2tTd2l0Y2hEYXRhLT5TdGFja1RvcCAtIENQ VV9TVEFDS19BTElHTk1FTlQ7DQorICBTdGFja1RvcCA9IChVSU5UTilBTElHTl9QT0lOVEVSIChT dGFja1RvcCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7DQorICBJZHRUYWJsZSA9IFN0YWNrU3dpdGNo RGF0YS0+SWR0VGFibGU7DQorICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBTdGFja1N3aXRjaERh dGEtPkV4Y2VwdGlvbk51bWJlcjsgKytJbmRleCkgew0KKyAgICBUc3NEZXNjICs9IDE7DQorICAg IFRzcyAgICAgKz0gMTsNCisNCisgICAgLy8NCisgICAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3IN CisgICAgLy8NCisgICAgVHNzQmFzZSA9IChVSU5UTilUc3M7DQorDQorICAgIFRzc0Rlc2MtPkJp dHMuTGltaXRMb3cgID0gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQorICAg IFRzc0Rlc2MtPkJpdHMuQmFzZUxvdyAgID0gKFVJTlQxNilUc3NCYXNlOw0KKyAgICBUc3NEZXNj LT5CaXRzLkJhc2VNaWQgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAxNik7DQorICAgIFRzc0Rlc2Mt PkJpdHMuVHlwZSAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQorICAgIFRzc0Rlc2MtPkJpdHMu UCAgICAgICAgID0gMTsNCisgICAgVHNzRGVzYy0+Qml0cy5MaW1pdEhpZ2ggPSAwOw0KKyAgICBU c3NEZXNjLT5CaXRzLkJhc2VIaWdoICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQorDQorICAg IC8vDQorICAgIC8vIEZpeHVwIFRTUw0KKyAgICAvLw0KKyAgICBWZWN0b3IgPSBTdGFja1N3aXRj aERhdGEtPkV4Y2VwdGlvbnNbSW5kZXhdOw0KKyAgICBUc3MtPkVJUCAgICA9IChVSU5UMzIpKFRl bXBsYXRlTWFwLkV4Y2VwdGlvblN0YXJ0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBW ZWN0b3IgKiBUZW1wbGF0ZU1hcC5FeGNlcHRpb25TdHViSGVhZGVyU2l6ZSk7DQorICAgIFRzcy0+ RUZMQUdTID0gMHgyOw0KKyAgICBUc3MtPkVTUCAgICA9IFN0YWNrVG9wOw0KKyAgICBUc3MtPkNS MyAgICA9IEFzbVJlYWRDcjMgKCk7DQorICAgIFRzcy0+RVMgICAgID0gQXNtUmVhZEVzICgpOw0K KyAgICBUc3MtPkNTICAgICA9IEFzbVJlYWRDcyAoKTsNCisgICAgVHNzLT5TUyAgICAgPSBBc21S ZWFkU3MgKCk7DQorICAgIFRzcy0+RFMgICAgID0gQXNtUmVhZERzICgpOw0KKyAgICBUc3MtPkZT ICAgICA9IEFzbVJlYWRGcyAoKTsNCisgICAgVHNzLT5HUyAgICAgPSBBc21SZWFkR3MgKCk7DQor DQorICAgIFN0YWNrVG9wICAgLT0gU3RhY2tTd2l0Y2hEYXRhLT5TdGFja1NpemU7DQorDQorICAg IC8vDQorICAgIC8vIFVwZGF0ZSBJRFQgdG8gdXNlIFRhc2sgR2F0ZSBmb3IgZ2l2ZW4gZXhjZXB0 aW9uDQorICAgIC8vDQorICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRMb3cgID0gMDsN CisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlNlbGVjdG9yICAgPSAoVUlOVDE2KSgoVUlOVE4p VHNzRGVzYyAtIEdkdHIuQmFzZSk7DQorICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5SZXNlcnZl ZF8wID0gMDsNCisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLkdhdGVUeXBlICAgPSBJQTMyX0lE VF9HQVRFX1RZUEVfVEFTSzsNCisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldEhpZ2gg PSAwOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFB1Ymxpc2ggR0RUDQorICAvLw0KKyAgQXNtV3Jp dGVHZHRyICgmR2R0cik7DQorDQorICAvLw0KKyAgLy8gTG9hZCBjdXJyZW50IHRhc2sNCisgIC8v DQorICBBc21Xcml0ZVRyICgoVUlOVDE2KSgoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5Uc3NEZXNj IC0gR2R0ci5CYXNlKSk7DQorDQorICAvLw0KKyAgLy8gUHVibGlzaCBJRFQNCisgIC8vDQorICBB c21Xcml0ZUlkdHIgKCZJZHRyKTsNCisNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCit9DQorDQog LyoqDQogICBEaXNwbGF5IHByb2Nlc3NvciBjb250ZXh0Lg0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVm cy5oIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNo SW50ZXJydXB0RGVmcy5oDQppbmRleCBhOGQzNTU2YTgwLi5kOWRlZDU5NzdmIDEwMDY0NA0KLS0t IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50 ZXJydXB0RGVmcy5oDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCkBAIC00MSw0ICs0MSwxMiBAQCB0eXBlZGVm IHN0cnVjdCB7DQogICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZU RVJfU1RVQl9TSVpFXTsNCiB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCg0KKyNkZWZpbmUgQ1BV X1RTU19ERVNDX1NJWkUgXA0KKyAgKHNpemVvZiAoSUEzMl9UU1NfREVTQ1JJUFRPUikgKiBcDQor ICAgKFBjZEdldFNpemUgKFBjZENwdVN0YWNrU3dpdGNoRXhjZXB0aW9uTGlzdCkgKyAxKSkNCisN CisjZGVmaW5lIENQVV9UU1NfU0laRSBcDQorICAoc2l6ZW9mIChJQTMyX1RBU0tfU1RBVEVfU0VH TUVOVCkgKiBcDQorICAgKFBjZEdldFNpemUgKFBjZENwdVN0YWNrU3dpdGNoRXhjZXB0aW9uTGlz dCkgKyAxKSkNCisNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0Vu dHJ5QXNtLm5hc20NCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42MmJj ZWRlYTFhDQotLS0gL2Rldi9udWxsDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCkBAIC0wLDAgKzEs Mzk4IEBADQorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA7DQorOyBDb3B5cmlnaHQgKGMpIDIwMTcs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCis7IFRoaXMgcHJv Z3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCis7IGFyZSBsaWNlbnNlZCBhbmQg bWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0Qg TGljZW5zZQ0KKzsgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KKzsgaHR0cDovL29wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCis7DQorOyBUSEUgUFJPR1JBTSBJUyBE SVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIiBCQVNJUywNCis7 IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF UiBFWFBSRVNTIE9SIElNUExJRUQuDQorOw0KKzsgTW9kdWxlIE5hbWU6DQorOw0KKzsgICBFeGNl cHRpb25Uc3NFbnRyeUFzbS5Bc20NCis7DQorOyBBYnN0cmFjdDoNCis7DQorOyAgIElBMzIgQ1BV IEV4Y2VwdGlvbiBIYW5kbGVyIHdpdGggU2VwYXJhdGUgU3RhY2sNCis7DQorOyBOb3RlczoNCis7 DQorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKzsNCis7IElBMzIgVFNTIE1lbW9yeSBMYXlv dXQgRGVzY3JpcHRpb24NCis7DQorc3RydWMgSUEzMl9UU1MNCisgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuRVNQMDogICAgcmVzZCAx DQorICAuU1MwOiAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisgIC5F U1AxOiAgICByZXNkIDENCisgIC5TUzE6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KKyAgLkVTUDI6ICAgIHJlc2QgMQ0KKyAgLlNTMjogICAgIHJlc3cgMQ0KKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQorICAuX0NSMzogICAgcmVzZCAxDQorICAuRUlQOiAgICAg cmVzZCAxDQorICAuRUZMQUdTOiAgcmVzZCAxDQorICAuX0VBWDogICAgcmVzZCAxDQorICAuX0VD WDogICAgcmVzZCAxDQorICAuX0VEWDogICAgcmVzZCAxDQorICAuX0VCWDogICAgcmVzZCAxDQor ICAuX0VTUDogICAgcmVzZCAxDQorICAuX0VCUDogICAgcmVzZCAxDQorICAuX0VTSTogICAgcmVz ZCAxDQorICAuX0VESTogICAgcmVzZCAxDQorICAuX0VTOiAgICAgcmVzdyAxDQorICAgICAgICAg ICAgICAgICAgICByZXN3IDENCisgIC5fQ1M6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAg ICAgIHJlc3cgMQ0KKyAgLl9TUzogICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVz dyAxDQorICAuX0RTOiAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisg IC5fRlM6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLl9HUzog ICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuTERUOiAgICAgcmVz dyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAgIHJl c3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorZW5kc3RydWMNCisNCis7DQorOyBD b21tb25FeGNlcHRpb25IYW5kbGVyKCkNCis7DQorZXh0ZXJuIEFTTV9QRlgoQ29tbW9uRXhjZXB0 aW9uSGFuZGxlcikNCisNCitTRUNUSU9OIC5kYXRhDQorDQorU0VDVElPTiAudGV4dA0KKw0KK0FM SUdOICAgOA0KKw0KKzsNCis7IEV4Y2VwdGlvbiBoYW5kbGVyIHN0dWIgdGFibGUNCis7DQorQXNt RXhjZXB0aW9uRW50cnlCZWdpbjoNCislYXNzaWduIFZlY3RvciAwDQorJXJlcCAgMzINCisNCitE b0lyZXQlW1ZlY3Rvcl06DQorICAgIGlyZXRkDQorQVNNX1BGWChFeGNlcHRpb25UYXNrU3d0aWNo RW50cnklW1ZlY3Rvcl0pOg0KKyAgICBkYiAgICAgIDB4NmEgICAgICAgIDsgcHVzaCAgI1ZlY3Rv ck51bQ0KKyAgICBkYiAgICAgICVbVmVjdG9yXQ0KKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChD b21tb25UYXNrU3d0aWNoRW50cnlQb2ludCkNCisgICAgY2FsbCAgICBlYXgNCisgICAgbW92ICAg ICBlc3AsIGVheCAgICA7IFJlc3RvcmUgc3RhY2sgdG9wDQorICAgIGptcCAgICAgRG9JcmV0JVtW ZWN0b3JdDQorDQorJWFzc2lnbiBWZWN0b3IgVmVjdG9yKzENCislZW5kcmVwDQorQXNtRXhjZXB0 aW9uRW50cnlFbmQ6DQorDQorOw0KKzsgQ29tbW9uIHBhcnQgb2YgZXhjZXB0aW9uIGhhbmRsZXIN Cis7DQorZ2xvYmFsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpDQorQVNNX1BG WChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCk6DQorICAgIDsNCisgICAgOyBTdGFjazoNCisg ICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQIC0gOA0KKyAgICA7ICsgICAgICAg VFNTIEJhc2UgICAgICArDQorICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCAt IDQNCisgICAgOyArICAgICAgQ1BVSUQuRURYICAgICAgKw0KKyAgICA7ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0rIDwtLSBFQlANCisgICAgOyArICAgICAgICAgRUlQICAgICAgICAgKw0KKyAgICA7 ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgKyA0DQorICAgIDsgKyAgICBWZWN0b3Ig TnVtYmVyICAgICsNCisgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgOA0K KyAgICA7ICsgICAgRXJyb3IgQ29kZSAgICAgICArDQorICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCisgICAgOw0KKw0KKyAgICBtb3YgICAgIGVicCwgZXNwICAgICAgICAgICAgICAgICAg ICA7IFN0YWNrIGZyYW1lDQorDQorOyBVc2UgQ1BVSUQgdG8gZGV0ZXJtaW5lIGlmIEZYU0FWRS9G WFJFU1RPUiBhbmQgREUgYXJlIHN1cHBvcnRlZA0KKyAgICBtb3YgICAgIGVheCwgMQ0KKyAgICBj cHVpZA0KKyAgICBwdXNoICAgIGVkeA0KKw0KKzsgR2V0IFRTUyBiYXNlIG9mIGludGVycnVwdGVk IHRhc2sgdGhyb3VnaCBQcmV2aW91c1Rhc2tMaW5rIGZpZWxkIGluDQorOyBjdXJyZW50IFRTUyBi YXNlDQorICAgIHN1YiAgICAgZXNwLCA4DQorICAgIHNnZHQgICAgW2VzcCArIDJdDQorICAgIG1v diAgICAgZWF4LCBbZXNwICsgNF0gICAgICAgICAgICAgIDsgR0RUIGJhc2UNCisgICAgYWRkICAg ICBlc3AsIDgNCisNCisgICAgeG9yICAgICBlYngsIGVieA0KKyAgICBzdHIgICAgIGJ4ICAgICAg ICAgICAgICAgICAgICAgICAgICA7IEN1cnJlbnQgVFINCisNCisgICAgbW92ICAgICBlY3gsIFtl YXggKyBlYnggKyAyXQ0KKyAgICBzaGwgICAgIGVjeCwgOA0KKyAgICBtb3YgICAgIGNsLCBbZWF4 ICsgZWJ4ICsgN10NCisgICAgcm9yICAgICBlY3gsIDggICAgICAgICAgICAgICAgICAgICAgOyBl Y3ggPSBDdXJyZW50IFRTUyBiYXNlDQorICAgIHB1c2ggICAgZWN4ICAgICAgICAgICAgICAgICAg ICAgICAgIDsga2VlcCBpdCBpbiBzdGFjayBmb3IgbGF0ZXIgdXNlDQorDQorICAgIG1vdnp4ICAg ZWJ4LCB3b3JkIFtlY3hdICAgICAgICAgICAgIDsgUHJldmlvdXMgVGFzayBMaW5rDQorICAgIG1v diAgICAgZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCisgICAgc2hsICAgICBlY3gsIDgNCisgICAgbW92 ICAgICBjbCwgW2VheCArIGVieCArIDddDQorICAgIHJvciAgICAgZWN4LCA4ICAgICAgICAgICAg ICAgICAgICAgIDsgZWN4ID0gUHJldmlvdXMgVFNTIGJhc2UNCisNCis7DQorOyBBbGlnbiBzdGFj ayB0byBtYWtlIHN1cmUgdGhhdCBFRklfRlhfU0FWRV9TVEFURV9JQTMyIG9mIEVGSV9TWVNURU1f Q09OVEVYVF9JQTMyDQorOyBpcyAxNi1ieXRlIGFsaWduZWQNCis7DQorICAgIGFuZCAgICAgZXNw LCAweGZmZmZmZmYwDQorICAgIHN1YiAgICAgZXNwLCAxMg0KKw0KKzs7IFVJTlQzMiAgRWRpLCBF c2ksIEVicCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQorICAgIHB1c2ggICAgZHdvcmQgW2Vj eCArIElBMzJfVFNTLl9FQVhdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9F Q1hdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FRFhdDQorICAgIHB1c2gg ICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FU1BdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlBd DQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQorICAgIHB1c2ggICAg ZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQorDQorOzsgVUlOVDMyICBHcywgRnMsIEVzLCBE cywgQ3MsIFNzOw0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX1NTXQ0K KyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0NTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0RTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0VTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0ZTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVh eCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0dTXQ0KKyAgICBwdXNoICAgIGVheA0KKw0KKzs7IFVJ TlQzMiAgRWlwOw0KKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQorDQor OzsgVUlOVDMyICBHZHRyWzJdLCBJZHRyWzJdOw0KKyAgICBzdWIgICAgIGVzcCwgOA0KKyAgICBz aWR0ICAgIFtlc3BdDQorICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCisgICAgeGNoZyAgICBl YXgsIFtlc3BdDQorICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCisgICAgbW92ICAgICBbZXNwKzRd LCBlYXgNCisNCisgICAgc3ViICAgICBlc3AsIDgNCisgICAgc2dkdCAgICBbZXNwXQ0KKyAgICBt b3YgICAgIGVheCwgW2VzcCArIDJdDQorICAgIHhjaGcgICAgZWF4LCBbZXNwXQ0KKyAgICBhbmQg ICAgIGVheCwgMHhGRkZGDQorICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQorDQorOzsgVUlOVDMy ICBMZHRyLCBUcjsNCisgICAgbW92ICAgICBlYXgsIGVieCAgICA7IGVieCBzdGlsbCBrZWVwcyBz ZWxlY3RvciBvZiBpbnRlcnJ1cHRlZCB0YXNrDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4 ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5MRFRdDQorICAgIHB1c2ggICAgZWF4DQorDQor OzsgVUlOVDMyICBFRmxhZ3M7DQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVG TEFHU10NCisNCis7OyBVSU5UMzIgIENyMCwgQ3IxLCBDcjIsIENyMywgQ3I0Ow0KKyAgICBtb3Yg ICAgIGVheCwgY3I0DQorICAgIHB1c2ggICAgZWF4ICAgICAgICAgICAgIDsgcHVzaCBjcjQgZmly c3RseQ0KKw0KKyAgICBtb3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNwdWlkLmVkeA0KKyAgICB0 ZXN0ICAgIGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0 DQorICAgIGp6ICAgICAgLjENCisgICAgb3IgICAgICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0 Lk9TRlhTUg0KKy4xOg0KKyAgICB0ZXN0ICAgIGVkeCwgQklUMiAgICAgICA7IFRlc3QgZm9yIERl YnVnZ2luZyBFeHRlbnNpb25zIHN1cHBvcnQNCisgICAganogICAgICAuMg0KKyAgICBvciAgICAg IGVheCwgQklUMyAgICAgICA7IFNldCBDUjQuREUNCisuMjoNCisgICAgbW92ICAgICBjcjQsIGVh eA0KKw0KKyAgICBtb3YgICAgIGVheCwgY3IzDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAg ICAgZWF4LCBjcjINCisgICAgcHVzaCAgICBlYXgNCisgICAgeG9yICAgICBlYXgsIGVheA0KKyAg ICBwdXNoICAgIGVheA0KKyAgICBtb3YgICAgIGVheCwgY3IwDQorICAgIHB1c2ggICAgZWF4DQor DQorOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwgRHI3Ow0KKyAgICBtb3YgICAg IGVheCwgZHI3DQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4LCBkcjYNCisgICAg cHVzaCAgICBlYXgNCisgICAgbW92ICAgICBlYXgsIGRyMw0KKyAgICBwdXNoICAgIGVheA0KKyAg ICBtb3YgICAgIGVheCwgZHIyDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4LCBk cjENCisgICAgcHVzaCAgICBlYXgNCisgICAgbW92ICAgICBlYXgsIGRyMA0KKyAgICBwdXNoICAg IGVheA0KKw0KKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0ZTsNCis7OyBDbGVhciBU UyBiaXQgaW4gQ1IwIHRvIGF2b2lkIERldmljZSBOb3QgQXZhaWxhYmxlIEV4Y2VwdGlvbiAoI05N KQ0KKzs7IHdoZW4gZXhlY3V0aW5nIGZ4c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQorICAgIHRl c3QgICAgZWR4LCBCSVQyNCAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydC4NCisg ICAgICAgICAgICAgICAgICAgICAgICA7IGVkeCBzdGlsbCBjb250YWlucyByZXN1bHQgZnJvbSBD UFVJRCBhYm92ZQ0KKyAgICBqeiAgICAgIC4zDQorICAgIGNsdHMNCisgICAgc3ViICAgICBlc3As IDUxMg0KKyAgICBtb3YgICAgIGVkaSwgZXNwDQorICAgIGRiICAgICAgMHhmLCAweGFlLCAweDcg O2Z4c2F2ZSBbZWRpXQ0KKy4zOg0KKw0KKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCisgICAg cHVzaCAgICBkd29yZCBbZWJwICsgOF0NCisNCis7OyBVRUZJIGNhbGxpbmcgY29udmVudGlvbiBm b3IgSUEzMiByZXF1aXJlcyB0aGF0IERpcmVjdGlvbiBmbGFnIGluIEVGTEFHcyBpcyBjbGVhcg0K KyAgICBjbGQNCisNCis7OyBjYWxsIGludG8gZXhjZXB0aW9uIGhhbmRsZXINCisgICAgbW92ICAg ICBlc2ksIGVjeCAgICAgICAgICAgIDsgS2VlcCBUU1MgYmFzZSB0byBhdm9pZCBvdmVyd3JpdGUN CisgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCisNCis7 OyBQcmVwYXJlIHBhcmFtZXRlciBhbmQgY2FsbA0KKyAgICBtb3YgICAgIGVkeCwgZXNwDQorICAg IHB1c2ggICAgZWR4ICAgICAgICAgICAgICAgICA7IEVGSV9TWVNURU1fQ09OVEVYVA0KKyAgICBw dXNoICAgIGR3b3JkIFtlYnAgKyA0XSAgICAgOyBFRklfRVhDRVBUSU9OX1RZUEUgKHZlY3RvciBu dW1iZXIpDQorDQorICAgIDsNCisgICAgOyBDYWxsIEV4dGVybmFsIEV4Y2VwdGlvbiBIYW5kbGVy DQorICAgIDsNCisgICAgY2FsbCAgICBlYXgNCisgICAgYWRkICAgICBlc3AsIDggICAgICAgICAg ICAgIDsgUmVzdG9yZSBzdGFjayBiZWZvcmUgY2FsbGluZw0KKyAgICBtb3YgICAgIGVjeCwgZXNp ICAgICAgICAgICAgOyBSZXN0b3JlIFRTUyBiYXNlDQorDQorOzsgVUlOVDMyICBFeGNlcHRpb25E YXRhOw0KKyAgICBhZGQgICAgIGVzcCwgNA0KKw0KKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNh dmVTdGF0ZTsNCisgICAgbW92ICAgICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCisgICAg dGVzdCAgICBlZHgsIEJJVDI0ICAgICAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9y dA0KKyAgICBqeiAgICAgIC40DQorICAgIG1vdiAgICAgZXNpLCBlc3ANCisgICAgZGIgICAgICAw eGYsIDB4YWUsIDB4ZSAgOyBmeHJzdG9yIFtlc2ldDQorLjQ6DQorICAgIGFkZCAgICAgZXNwLCA1 MTINCisNCis7OyBVSU5UMzIgIERyMCwgRHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQorOzsgU2tp cCByZXN0b3JhdGlvbiBvZiBEUnggcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZGVidWdnZXJzDQorOzsg dGhhdCBzZXQgYnJlYWtwb2ludHMgaW4gaW50ZXJydXB0L2V4Y2VwdGlvbiBjb250ZXh0DQorICAg IGFkZCAgICAgZXNwLCA0ICogNg0KKw0KKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBD cjQ7DQorICAgIHBvcCAgICAgZWF4DQorICAgIG1vdiAgICAgY3IwLCBlYXgNCisgICAgYWRkICAg ICBlc3AsIDQgICAgOyBub3QgZm9yIENyMQ0KKyAgICBwb3AgICAgIGVheA0KKyAgICBtb3YgICAg IGNyMiwgZWF4DQorICAgIHBvcCAgICAgZWF4DQorICAgIG1vdiAgICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9DUjNdLCBlYXgNCisgICAgcG9wICAgICBlYXgNCisgICAgbW92ICAgICBjcjQsIGVh eA0KKw0KKzs7IFVJTlQzMiAgRUZsYWdzOw0KKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5FRkxBR1NdDQorICAgIG1vdiAgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZM QUdTXQ0KKyAgICBidHIgICAgIGVieCwgOSAgICAgIDsgRG8gJ2NsaScNCisgICAgbW92ICAgICBk d29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXSwgZWJ4DQorDQorOzsgVUlOVDMyICBMZHRyLCBU cjsNCis7OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQorOzsgQmVzdCBub3QgbGV0IGFueW9u ZSBtZXNzIHdpdGggdGhlc2UgcGFydGljdWxhciByZWdpc3RlcnMuLi4NCisgICAgYWRkICAgICBl c3AsIDI0DQorDQorOzsgVUlOVDMyICBFaXA7DQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLkVJUF0NCisNCis7OyBVSU5UMzIgIEdzLCBGcywgRXMsIERzLCBDcywgU3M7DQorOzsg Tk9URSAtIG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNvdWxkIGhhbmcgdGhlIGRlYnVnZ2Vy Li4uICBXZQ0KKzs7ICAgICAgICBjb3VsZCBhdHRlbXB0IHRvIGluc3VsYXRlIG91cnNlbHZlcyBh Z2FpbnN0IHRoaXMgcG9zc2liaWxpdHksDQorOzsgICAgICAgIGJ1dCB0aGF0IHBvc2VzIHJpc2tz IGFzIHdlbGwuDQorOzsNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX0dTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX0ZTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX0VTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX0RTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX0NTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEz Ml9UU1MuX1NTXSwgYXgNCisNCis7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVzcCwgRWJ4LCBF ZHgsIEVjeCwgRWF4Ow0KKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0K KyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KKyAgICBhZGQgICAgIGVz cCwgNCAgIDsgbm90IGZvciBlYnANCisgICAgYWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3IgZXNw DQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQorICAgIHBvcCAgICAg ZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FRFhdDQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FQ1hdDQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQor DQorOyBTZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2VyIHRvIGFibGUgdG8gZ28g YmFjayB0byB0aGUgRUlQDQorOyB3aGVyZSB0aGUgZXhjZXB0aW9uIGlzIHRyaWdnZXJlZC4NCisN Cis7OyBDcmVhdGUgcmV0dXJuIGNvbnRleHQgZm9yIGlyZXRkIGluIHN0dWIgZnVuY3Rpb24NCisg ICAgbW92ICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xk IHN0YWNrIHBvaW50ZXINCisgICAgbW92ICAgIGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJ UF0NCisgICAgbW92ICAgIFtlYXggLSAweGNdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBj cmVhdGUgRUlQIGluIG9sZCBzdGFjaw0KKyAgICBtb3Z6eCAgZWJ4LCB3b3JkIFtlY3ggKyBJQTMy X1RTUy5fQ1NdDQorICAgIG1vdiAgICBbZWF4IC0gMHg4XSwgZWJ4ICAgICAgICAgICAgICAgICAg ICAgIDsgY3JlYXRlIENTIGluIG9sZCBzdGFjaw0KKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4 ICsgSUEzMl9UU1MuRUZMQUdTXQ0KKyAgICBidHMgICAgZWJ4LCA4DQorICAgIG1vdiAgICBbZWF4 IC0gMHg0XSwgZWJ4ICAgICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIGVmbGFncyBpbiBvbGQg c3RhY2sNCisgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYnggICAg OyB1cGRhdGUgZWZsYWdzIGluIG9sZCBUU1MNCisgICAgbW92ICAgIGVheCwgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50ZXINCisgICAgc3ViICAg IGVheCwgMHhjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBtaW51cyAxMiBieXRlDQor ICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVheCAgICAgIDsgU2V0IG5l dyBzdGFjayBwb2ludGVyDQorDQorOzsgUmVwbGFjZSB0aGUgRUlQIG9mIGludGVycnVwdGVkIHRh c2sgd2l0aCBzdHViIGZ1bmN0aW9uDQorICAgIG1vdiAgICBlYXgsIEFTTV9QRlgoU2luZ2xlU3Rl cFN0dWJGdW5jdGlvbikNCisgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdLCBl YXgNCisNCisgICAgbW92ICAgICBlY3gsIFtlYnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAg OyBHZXQgY3VycmVudCBUU1MgYmFzZQ0KKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FU1BdICAgICA7IFJldHVybiBjdXJyZW50IHN0YWNrIHRvcA0KKyAgICBtb3YgICAg IGVzcCwgZWJwDQorDQorICAgIHJldA0KKw0KK2dsb2JhbCBBU01fUEZYKFNpbmdsZVN0ZXBTdHVi RnVuY3Rpb24pDQorQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKToNCis7DQorOyB3ZSBu ZWVkIGNsZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZQ0KKzsgeDg3IEZQVS9NTVgvU1NFL1NT RTIvU1NFMy9TU1NFMy9TU0U0IGluc3RydWN0aW9ucy4NCis7DQorICAgIGNsdHMNCisgICAgaXJl dGQNCisNCitnbG9iYWwgQVNNX1BGWChBc21HZXRUc3NUZW1wbGF0ZU1hcCkNCitBU01fUEZYKEFz bUdldFRzc1RlbXBsYXRlTWFwKToNCisgICAgcHVzaCAgICBlYnAgICAgICAgICAgICAgICAgIDsg QyBwcm9sb2cNCisgICAgbW92ICAgICBlYnAsIGVzcA0KKyAgICBwdXNoYWQNCisNCisgICAgbW92 IGVieCwgZHdvcmQgW2VicCArIDB4OF0NCisgICAgbW92IGR3b3JkIFtlYnhdLCAgICAgICBBU01f UEZYKEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTApDQorICAgIG1vdiBkd29yZCBbZWJ4ICsgMHg0 XSwgKEFzbUV4Y2VwdGlvbkVudHJ5RW5kIC0gQXNtRXhjZXB0aW9uRW50cnlCZWdpbikgLyAzMg0K KyAgICBtb3YgZHdvcmQgW2VieCArIDB4OF0sIDANCisNCisgICAgcG9wYWQNCisgICAgcG9wICAg ICBlYnANCisgICAgcmV0DQorDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVy TGliLmluZg0KaW5kZXggNzU0NDMyODhhOS4uNGMwZDQzNTEzNiAxMDA2NDQNCi0tLSBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuaW5mDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291 cmNlcy5JYTMyXQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNl cHRpb25IYW5kbGVyQXNtLm5hc20NCisgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0K ICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRs ZXIuYw0KICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQ ZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KaW5kZXggZDcwYTk5YzEwMC4uZTVjMDNjMTZj OSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmlu Zg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMyXQ0KICAgSWEzMi9FeGNlcHRpb25I YW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCisgIElhMzIv RXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMN CiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAgSWEzMi9BcmNoSW50ZXJydXB0RGVm cy5oDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KaW5kZXgg NjM0ZmZjYjIxZC4uNTZiODc1YjdjOCAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQorKysg Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRp b25IYW5kbGVyTGliLmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMyXQ0KICAg SWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNt Lm5hc20NCisgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9FeGNlcHRp b25IYW5kbGVyQXNtLlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAgSWEzMi9B cmNoSW50ZXJydXB0RGVmcy5oDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIu Yw0KaW5kZXggNjVmMGNmZjY4MC4uMjE0YWFmY2MxMyAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5j DQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJj aEV4Y2VwdGlvbkhhbmRsZXIuYw0KQEAgLTExMiw2ICsxMTIsMTM5IEBAIEFyY2hSZXN0b3JlRXhj ZXB0aW9uQ29udGV4dCAoDQogICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRYNjQtPkV4Y2Vw dGlvbkRhdGEgPSBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0YTsN CiB9DQoNCisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBnaXZlbiBleGNlcHRpb25z Lg0KKw0KKyAgQHBhcmFtW2luXSBTdGFja1N3aXRjaERhdGEgICAgICBQb2ludGVyIHRvIGRhdGEg cmVxdWlyZWQgZm9yIHNldHVwaW5nIHVwDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YWNrIHN3aXRjaC4NCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg VGhlIGV4Y2VwdGlvbnMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseQ0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbml0aWFsaXplZC4NCisgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICAgU3RhY2tTd2l0Y2hEYXRhIGNvbnRhaW5zIGludmFsaWQgY29udGVudC4NCisNCisq Ki8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KKyAg SU4gRVhDRVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBICAgICAgICAqU3RhY2tTd2l0Y2hEYXRhDQor ICApDQorew0KKyAgSUEzMl9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgIEdkdHI7DQorICBJ QTMyX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgSWR0cjsNCisgIElBMzJfSURUX0dBVEVf REVTQ1JJUFRPUiAgICAgICAgICAqSWR0VGFibGU7DQorICBJQTMyX1RTU19ERVNDUklQVE9SICAg ICAgICAgICAgICAgKlRzc0Rlc2M7DQorICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICAg ICAgKlRzczsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsN CisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCisgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0KKyAgVUlOVE4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdkdFNpemU7DQorDQorICBpZiAoU3RhY2tTd2l0Y2hEYXRhID09IE5V TEwgfHwNCisgICAgICBTdGFja1N3aXRjaERhdGEtPlN0YWNrVG9wID09IDAgfHwNCisgICAgICBT dGFja1N3aXRjaERhdGEtPlN0YWNrU2l6ZSA9PSAwIHx8DQorICAgICAgU3RhY2tTd2l0Y2hEYXRh LT5FeGNlcHRpb25zID09IE5VTEwgfHwNCisgICAgICBTdGFja1N3aXRjaERhdGEtPkV4Y2VwdGlv bk51bWJlciA9PSAwIHx8DQorICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSA9PSBOVUxM IHx8DQorICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5JZHRUYWJsZSA9PSBOVUxMIHx8DQorICAgICAg U3RhY2tTd2l0Y2hEYXRhLT5Uc3NEZXNjID09IE5VTEwgfHwNCisgICAgICBTdGFja1N3aXRjaERh dGEtPlRzcyA9PSBOVUxMKSB7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQor ICB9DQorDQorICAvLw0KKyAgLy8gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdGhhdCB0 aGUgR0RUIHRhYmxlLCBubyBtYXR0ZXIgdGhlIGV4aXN0aW5nDQorICAvLyBvbmUgb3IgbmV3bHkg YWxsb2NhdGVkLCBoYXMgZW5vdWdoIHNwYWNlIHRvIGhvbGQgZGVzY3JpcHRvcnMgZm9yIGV4Y2Vw dGlvbg0KKyAgLy8gdGFzay1zdGF0ZSBzZWdtZW50cy4NCisgIC8vDQorICBpZiAoKChVSU5UTilT dGFja1N3aXRjaERhdGEtPkdkdFRhYmxlICYgKElBMzJfR0RUX0FMSUdOTUVOVCAtIDEpKSAhPSAw KSB7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQorICBpZiAo KFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYyA8IChVSU5UTikoU3RhY2tTd2l0Y2hEYXRh LT5HZHRUYWJsZSkpIHsNCisgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCisgIH0N CisNCisgIGlmICgoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5Uc3NEZXNjID49DQorICAgICAgICAg ICgoVUlOVE4pKFN0YWNrU3dpdGNoRGF0YS0+R2R0VGFibGUpICsgU3RhY2tTd2l0Y2hEYXRhLT5H ZHRTaXplKSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAgfQ0KKw0K KyAgR2R0U2l6ZSA9IChVSU5UTilTdGFja1N3aXRjaERhdGEtPlRzc0Rlc2MgLQ0KKyAgICAgICAg ICAgIChVSU5UTikoU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSkgKw0KKyAgICAgICAgICAgIHNp emVvZiAoSUEzMl9UU1NfREVTQ1JJUFRPUik7DQorICBpZiAoR2R0U2l6ZSA+IFN0YWNrU3dpdGNo RGF0YS0+R2R0U2l6ZSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAg fQ0KKw0KKyAgLy8NCisgIC8vIEluaXRpYWxpemUgbmV3IEdEVCB0YWJsZSBhbmQvb3IgSURUIHRh YmxlLCBpZiBhbnkNCisgIC8vDQorICBBc21SZWFkSWR0ciAoJklkdHIpOw0KKyAgQXNtUmVhZEdk dHIgKCZHZHRyKTsNCisgIGlmICgoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSAhPSBH ZHRyLkJhc2UpIHsNCisgICAgQ29weU1lbSAoU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSwgKFZP SUQgKilHZHRyLkJhc2UsIEdkdHIuTGltaXQgKyAxKTsNCisgICAgR2R0ci5CYXNlID0gKFVJTlRO KVN0YWNrU3dpdGNoRGF0YS0+R2R0VGFibGU7DQorICAgIEdkdHIuTGltaXQgPSAoVUlOVDE2KUdk dFNpemUgLSAxOw0KKyAgfQ0KKw0KKyAgaWYgKChVSU5UTilTdGFja1N3aXRjaERhdGEtPklkdFRh YmxlICE9IElkdHIuQmFzZSkgew0KKyAgICBJZHRyLkJhc2UgPSAoVUlOVE4pU3RhY2tTd2l0Y2hE YXRhLT5JZHRUYWJsZTsNCisgIH0NCisNCisgIC8vDQorICAvLyBGaXh1cCBjdXJyZW50IHRhc2sg ZGVzY3JpcHRvci4gVGFzay1zdGF0ZSBzZWdtZW50IGZvciBjdXJyZW50IHRhc2sgd2lsbA0KKyAg Ly8gYmUgZmlsbGVkIGJ5IHByb2Nlc3NvciBkdXJpbmcgdGFzayBzd2l0Y2hpbmcuDQorICAvLw0K KyAgVHNzRGVzYyA9IFN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYzsNCisgIFRzcyAgICAgPSBTdGFj a1N3aXRjaERhdGEtPlRzczsNCisNCisgIFRzc0Jhc2UgPSAoVUlOVE4pVHNzOw0KKyAgVHNzRGVz Yy0+Qml0cy5MaW1pdExvdyAgID0gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAtIDE7 DQorICBUc3NEZXNjLT5CaXRzLkJhc2VMb3cgICAgPSAoVUlOVDE2KVRzc0Jhc2U7DQorICBUc3NE ZXNjLT5CaXRzLkJhc2VNaWRsICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KKyAgVHNzRGVz Yy0+Qml0cy5UeXBlICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQorICBUc3NEZXNjLT5CaXRz LlAgICAgICAgICAgPSAxOw0KKyAgVHNzRGVzYy0+Qml0cy5MaW1pdEhpZ2ggID0gMDsNCisgIFRz c0Rlc2MtPkJpdHMuQmFzZU1pZGggICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQorICBUc3NE ZXNjLT5CaXRzLkJhc2VIaWdoICAgPSAoVUlOVDMyKShUc3NCYXNlID4+IDMyKTsNCisNCisgIC8v DQorICAvLyBGaXh1cCBleGNlcHRpb24gdGFzayBkZXNjcmlwdG9yIGFuZCB0YXNrLXN0YXRlIHNl Z21lbnQNCisgIC8vDQorICBTdGFja1RvcCA9IFN0YWNrU3dpdGNoRGF0YS0+U3RhY2tUb3AgLSBD UFVfU1RBQ0tfQUxJR05NRU5UOw0KKyAgU3RhY2tUb3AgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAo U3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOw0KKyAgSWR0VGFibGUgPSBTdGFja1N3aXRj aERhdGEtPklkdFRhYmxlOw0KKyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgU3RhY2tTd2l0Y2hE YXRhLT5FeGNlcHRpb25OdW1iZXI7ICsrSW5kZXgpIHsNCisgICAgLy8NCisgICAgLy8gRml4dXAg SVNUDQorICAgIC8vDQorICAgIFRzcy0+SVNUW0luZGV4XSA9IFN0YWNrVG9wOw0KKyAgICBTdGFj a1RvcCAtPSBTdGFja1N3aXRjaERhdGEtPlN0YWNrU2l6ZTsNCisNCisgICAgLy8NCisgICAgLy8g U2V0IHRoZSBJU1QgZmllbGQgdG8gZW5hYmxlIGNvcnJlc3BvbmRpbmcgSVNUDQorICAgIC8vDQor ICAgIElkdFRhYmxlW1N0YWNrU3dpdGNoRGF0YS0+RXhjZXB0aW9uc1tJbmRleF1dLkJpdHMuUmVz ZXJ2ZWRfMCA9IChVSU5UOCkoSW5kZXggKyAxKTsNCisgIH0NCisNCisgIC8vDQorICAvLyBQdWJs aXNoIEdEVA0KKyAgLy8NCisgIEFzbVdyaXRlR2R0ciAoJkdkdHIpOw0KKw0KKyAgLy8NCisgIC8v IExvYWQgY3VycmVudCB0YXNrDQorICAvLw0KKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoKFVJTlRO KVN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYyAtIEdkdHIuQmFzZSkpOw0KKw0KKyAgLy8NCisgIC8v IFB1Ymxpc2ggSURUDQorICAvLw0KKyAgQXNtV3JpdGVJZHRyICgmSWR0cik7DQorDQorICByZXR1 cm4gRUZJX1NVQ0NFU1M7DQorfQ0KKw0KIC8qKg0KICAgRGlzcGxheSBDUFUgaW5mb3JtYXRpb24u DQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvQXJjaEludGVycnVwdERlZnMuaCBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQppbmRleCA5MDY0ODAxMzRhLi5j ODhiZTQ2Mjg2IDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQpAQCAtNDMs NCArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQogICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHVi SGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCiB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFU QTsNCg0KKyNkZWZpbmUgQ1BVX1RTU19ERVNDX1NJWkUgc2l6ZW9mIChJQTMyX1RTU19ERVNDUklQ VE9SKQ0KKyNkZWZpbmUgQ1BVX1RTU19TSVpFICAgICAgc2l6ZW9mIChJQTMyX1RBU0tfU1RBVEVf U0VHTUVOVCkNCisNCiAjZW5kaWYNCi0tDQoyLjE0LjEud2luZG93cy4xDQoNCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRldmVsIG1haWxpbmcg bGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxt YW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K