From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10407 invoked by alias); 2 Nov 2018 18:38:48 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 10128 invoked by uid 89); 2 Nov 2018 18:38:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=mabi X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0062.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.62) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 02 Nov 2018 18:38:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UydldS1spm1U9ZAGTVesJSejJjinezwKVlJ8TcmfCtE=; b=XiOj1zNUQAo/3BcxEVuunt3p676wt1tNKNGIGFD5bwu1cnvPyk0XqgqmJuBPjx9nqfWATYbAPQTk+/GGPxOKUKb0ggU0G+NmYu7IUNRCipvLJS+HdgT3BQWKfwJ3ZVS2SQQaHq+XfL1Vb5JglWhLkJ48JT5WQ5M+jBzatgIDHOY= Received: from AM5PR0801MB1714.eurprd08.prod.outlook.com (10.169.246.148) by AM5PR0801MB2068.eurprd08.prod.outlook.com (10.168.158.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.26; Fri, 2 Nov 2018 18:38:36 +0000 Received: from AM5PR0801MB1714.eurprd08.prod.outlook.com ([fe80::b410:aaa9:dbb9:4e64]) by AM5PR0801MB1714.eurprd08.prod.outlook.com ([fe80::b410:aaa9:dbb9:4e64%7]) with mapi id 15.20.1294.024; Fri, 2 Nov 2018 18:38:36 +0000 From: Sudakshina Das To: "gcc-patches@gcc.gnu.org" CC: nd , James Greenhalgh , Richard Earnshaw , Marcus Shawcroft Subject: [PATCH, GCC, AARCH64, 5/6] Enable BTI : Add new pass for BTI. Date: Fri, 02 Nov 2018 18:38:00 -0000 Message-ID: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Sudi.Das@arm.com; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) Content-Type: multipart/mixed; boundary="_002_f99c29180d71271f6a70156f8d02486barmcom_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2018-11/txt/msg00115.txt.bz2 --_002_f99c29180d71271f6a70156f8d02486barmcom_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Content-length: 2827 SGkNCg0KVGhpcyBwYXRjaCBpcyBwYXJ0IG9mIGEgc2VyaWVzIHRoYXQgZW5h YmxlcyBBUk12OC41LUEgaW4gR0NDIGFuZA0KYWRkcyBCcmFuY2ggVGFyZ2V0 IElkZW50aWZpY2F0aW9uIE1lY2hhbmlzbS4NCihodHRwczovL2RldmVsb3Bl ci5hcm0uY29tL3Byb2R1Y3RzL2FyY2hpdGVjdHVyZS9jcHUtYXJjaGl0ZWN0 dXJlL2EtcHJvZmlsZS9leHBsb3JhdGlvbi10b29scykNCg0KVGhpcyBwYXRj aCBhZGRzIGEgbmV3IHBhc3MgY2FsbGVkICJidGkiIHdoaWNoIGlzIHRyaWdn ZXJlZCBieSB0aGUNCmNvbW1hbmQgbGluZSBhcmd1bWVudCAtbWJyYW5jaC1w cm90ZWN0aW9uIHdoZW5ldmVyICJidGkiIGlzIHR1cm5lZCBvbi4NCg0KVGhl IHBhc3MgaXRlcmF0ZXMgdGhyb3VnaCB0aGUgaW5zdHJ1Y3Rpb25zIGFuZCBh ZGRzIGFwcHJvcHJpYXRlZCBCVEkgDQppbnN0cnVjdGlvbnMgYmFzZWQgb24g dGhlIGZvbGxvd2luZzoNCiAgICAqIEFkZCBhIG5ldyAiQlRJIEMiIGF0IHRo ZSBiZWdpbm5pbmcgb2YgYSBmdW5jdGlvbiwgdW5sZXNzIGl0cyBhbHJlYWR5 DQogICAgICBwcm90ZWN0ZWQgYnkgYSAiUEFDSUFTUC9QQUNJQlNQIi4gV2Ug ZXhlbXB0IHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUNCiAgICAgIG9ubHkgY2Fs bGVkIGRpcmVjdGx5Lg0KICAgICogQWRkIGEgbmV3ICJCVEkgSiIgZm9yIGV2 ZXJ5IHRhcmdldCBvZiBhbiBpbmRpcmVjdCBqdW1wLCBqdW1wIHRhYmxlDQog ICAgICB0YXJnZXRzLCBub24tbG9jYWwgZ290byB0YXJnZXRzIG9yIGxhYmVs cyB0aGF0IG1pZ2h0IGJlIHJlZmVyZW5jZWQNCiAgICAgIGJ5IHZhcmlhYmxl cywgY29uc3RhbnQgcG9vbHMsIGV0YyAoTk9URV9JTlNOX0RFTEVURURfTEFC RUwpDQoNClNpbmNlIHdlIGhhdmUgYWxyZWFkeSBjaGFuZ2VkIHRoZSB1c2Ug b2YgaW5kaXJlY3QgdGFpbCBjYWxscyB0byBvbmx5IHgxNiANCmFuZCB4MTcs IHdlIGRvIG5vdCBoYXZlIHRvIHVzZSAiQlRJIEpDIi4NCihjaGVjayBwYXRj aCAzLzYpLg0KDQpCb290c3RyYXBwZWQgYW5kIHJlZ3Jlc3Npb24gdGVzdGVk IHdpdGggYWFyY2g2NC1ub25lLWxpbnV4LWdudS4gQWRkZWQgDQpuZXcgdGVz dHMuDQpJcyB0aGlzIG9rIGZvciB0cnVuaz8NCg0KVGhhbmtzDQpTdWRpDQoN CioqKiBnY2MvQ2hhbmdlTG9nICoqKg0KDQoyMDE4LXh4LXh4ICBTdWRha3No aW5hIERhcyAgPHN1ZGkuZGFzQGFybS5jb20+DQoJICAgIFJhbWFuYSBSYWRo YWtyaXNobmFuICA8cmFtYW5hLnJhZGhha3Jpc2huYW5AYXJtLmNvbT4NCg0K CSogY29uZmlnLmdjYyAoYWFyY2g2NCotKi0qKTogQWRkIGFhcmNoNjQtYnRp LWluc2VydC5vLg0KCSogZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuaDog VXBkYXRlIGNvbW1lbnQgZm9yDQoJVFJBTVBPTElORV9TSVpFLg0KCSogY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jIChhYXJjaDY0X2FzbV90cmFtcG9saW5l X3RlbXBsYXRlKToNCglVcGRhdGUgaWYgYnRpIGlzIGVuYWJsZWQuDQoJKiBj b25maWcvYWFyY2g2NC9hYXJjaDY0LWJ0aS1pbnNlcnQuYzogTmV3IGZpbGUu DQoJKiBjb25maWcvYWFyY2g2NC9hYXJjaDY0LXBhc3Nlcy5kZWYgKElOU0VS VF9QQVNTX0JFRk9SRSk6IEluc2VydA0KCWJ0aSBwYXNzLg0KCSogY29uZmln L2FhcmNoNjQvYWFyY2g2NC1wcm90b3MuaCAobWFrZV9wYXNzX2luc2VydF9i dGkpOg0KCURlY2xhcmUgdGhlIG5ldyBidGkgcGFzcy4NCgkqIGNvbmZpZy9h YXJjaDY0L2FhcmNoNjQubWQgKGJ0aV9ub3ApOiBEZWZpbmUuDQoJKiBjb25m aWcvYWFyY2g2NC90LWFhcmNoNjQ6IEFkZCBydWxlIGZvciBhYXJjaDY0LWJ0 aS1pbnNlcnQuby4NCg0KKioqIGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nICoq Kg0KDQoyMDE4LXh4LXh4ICBTdWRha3NoaW5hIERhcyAgPHN1ZGkuZGFzQGFy bS5jb20+DQoNCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9idGktMS5jOiBOZXcg dGVzdC4NCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9idGktMi5jOiBOZXcgdGVz dC4NCgkqIGxpYi90YXJnZXQtc3VwcG9ydHMuZXhwDQoJKGNoZWNrX2VmZmVj dGl2ZV90YXJnZXRfYWFyY2g2NF9idGlfaHcpOiBBZGQgbmV3IGNoZWNrIGZv cg0KCUJUSSBody4NCg0K --_002_f99c29180d71271f6a70156f8d02486barmcom_ Content-Type: text/x-patch; name="rb10090.patch" Content-Description: rb10090.patch Content-Disposition: attachment; filename="rb10090.patch"; size=15813; creation-date="Fri, 02 Nov 2018 18:38:36 GMT"; modification-date="Fri, 02 Nov 2018 18:38:36 GMT" Content-ID: <3778BA68AF30A0439ECD8643D46D11BC@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 21436 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcuZ2NjIGIvZ2NjL2NvbmZpZy5nY2MN CmluZGV4IGIxMDg2OTdjZmM3YjFjOWM2ZGMxZjMwY2NhNmZkMTE1ODE4MmMy OWUuLjNlNzdmOWRmNmFkNmNhNTVmY2NjYTUwMzg3ZWFiNGIyNTAxYWY2NDcg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnLmdjYw0KKysrIGIvZ2NjL2NvbmZp Zy5nY2MNCkBAIC0zMTcsNyArMzE3LDcgQEAgYWFyY2g2NCotKi0qKQ0KIAlj X3RhcmdldF9vYmpzPSJhYXJjaDY0LWMubyINCiAJY3h4X3RhcmdldF9vYmpz PSJhYXJjaDY0LWMubyINCiAJZF90YXJnZXRfb2Jqcz0iYWFyY2g2NC1kLm8i DQotCWV4dHJhX29ianM9ImFhcmNoNjQtYnVpbHRpbnMubyBhYXJjaC1jb21t b24ubyBjb3J0ZXgtYTU3LWZtYS1zdGVlcmluZy5vIGFhcmNoNjQtc3BlY3Vs YXRpb24ubyBmYWxrb3ItdGFnLWNvbGxpc2lvbi1hdm9pZGFuY2UubyINCisJ ZXh0cmFfb2Jqcz0iYWFyY2g2NC1idWlsdGlucy5vIGFhcmNoLWNvbW1vbi5v IGNvcnRleC1hNTctZm1hLXN0ZWVyaW5nLm8gYWFyY2g2NC1zcGVjdWxhdGlv bi5vIGZhbGtvci10YWctY29sbGlzaW9uLWF2b2lkYW5jZS5vIGFhcmNoNjQt YnRpLWluc2VydC5vIg0KIAl0YXJnZXRfZ3RmaWxlcz0iXCQoc3JjZGlyKS9j b25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmMiDQogCXRhcmdldF9o YXNfdGFyZ2V0bV9jb21tb249eWVzDQogCTs7DQpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtYnRpLWluc2VydC5jIGIvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FhcmNoNjQtYnRpLWluc2VydC5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uZWZkNTc2MjBkODgwMzMwMmUwM2NhNjQzYjlmMjQ5 NWUxODhkYzE5Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtYnRpLWluc2VydC5jDQpAQCAtMCwwICsxLDE5NSBA QA0KKy8qIEJyYW5jaCBUYXJnZXQgSWRlbnRpZmljYXRpb24gZm9yIEFBcmNo NjQgYXJjaGl0ZWN0dXJlLg0KKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisgICBDb250cmlidXRlZCBi eSBBcm0gTHRkLg0KKw0KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4N CisNCisgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdA0KKyAgIHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQ0KKyAgIGFueSBs YXRlciB2ZXJzaW9uLg0KKw0KKyAgIEdDQyBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQNCisgICBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCisgICBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorDQorICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UNCisgICBhbG9uZyB3aXRoIEdDQzsgc2Vl IHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQ0KKyAgIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQorDQorI2RlZmluZSBJTl9U QVJHRVRfQ09ERSAxDQorDQorI2luY2x1ZGUgImNvbmZpZy5oIg0KKyNkZWZp bmUgSU5DTFVERV9TVFJJTkcNCisjaW5jbHVkZSAic3lzdGVtLmgiDQorI2lu Y2x1ZGUgImNvcmV0eXBlcy5oIg0KKyNpbmNsdWRlICJiYWNrZW5kLmgiDQor I2luY2x1ZGUgInRhcmdldC5oIg0KKyNpbmNsdWRlICJydGwuaCINCisjaW5j bHVkZSAidHJlZS5oIg0KKyNpbmNsdWRlICJtZW1tb2RlbC5oIg0KKyNpbmNs dWRlICJnaW1wbGUuaCINCisjaW5jbHVkZSAidG1fcC5oIg0KKyNpbmNsdWRl ICJzdHJpbmdwb29sLmgiDQorI2luY2x1ZGUgImF0dHJpYnMuaCINCisjaW5j bHVkZSAiZW1pdC1ydGwuaCINCisjaW5jbHVkZSAiZ2ltcGxpZnkuaCINCisj aW5jbHVkZSAiZ2ltcGxlLWl0ZXJhdG9yLmgiDQorI2luY2x1ZGUgImR1bXBm aWxlLmgiDQorI2luY2x1ZGUgInJ0bC1pdGVyLmgiDQorI2luY2x1ZGUgImNm Z3J0bC5oIg0KKyNpbmNsdWRlICJ0cmVlLXBhc3MuaCINCisjaW5jbHVkZSAi Y2dyYXBoLmgiDQorDQorbmFtZXNwYWNlIHsNCisNCitjb25zdCBwYXNzX2Rh dGEgcGFzc19kYXRhX2luc2VydF9idGkgPQ0KK3sNCisgIFJUTF9QQVNTLCAv KiB0eXBlLiAgKi8NCisgICJidGkiLCAvKiBuYW1lLiAgKi8NCisgIE9QVEdS T1VQX05PTkUsIC8qIG9wdGluZm9fZmxhZ3MuICAqLw0KKyAgVFZfTUFDSF9E RVAsIC8qIHR2X2lkLiAgKi8NCisgIDAsIC8qIHByb3BlcnRpZXNfcmVxdWly ZWQuICAqLw0KKyAgMCwgLyogcHJvcGVydGllc19wcm92aWRlZC4gICovDQor ICAwLCAvKiBwcm9wZXJ0aWVzX2Rlc3Ryb3llZC4gICovDQorICAwLCAvKiB0 b2RvX2ZsYWdzX3N0YXJ0LiAgKi8NCisgIDAsIC8qIHRvZG9fZmxhZ3NfZmlu aXNoLiAgKi8NCit9Ow0KKw0KKy8qIENoZWNrIGlmIFggKG9yIGFueSBzdWIt cnR4IG9mIFgpIGlzIGEgUEFDSUFTUC9QQUNJQlNQIGluc3RydWN0aW9uLiAg Ki8NCitzdGF0aWMgYm9vbA0KK2FhcmNoNjRfcGFjX2luc25fcCAocnR4IHgp DQorew0KKyAgaWYgKCFJTlNOX1AgKHgpKQ0KKyAgICByZXR1cm4geDsNCisN CisgIHN1YnJ0eF92YXJfaXRlcmF0b3I6OmFycmF5X3R5cGUgYXJyYXk7DQor ICBGT1JfRUFDSF9TVUJSVFhfVkFSIChpdGVyLCBhcnJheSwgUEFUVEVSTiAo eCksIEFMTCkNCisgICAgew0KKyAgICAgIHJ0eCBzdWIgPSAqaXRlcjsNCisg ICAgICBpZiAoc3ViICYmIEdFVF9DT0RFIChzdWIpID09IFVOU1BFQykNCisJ ew0KKwkgIGludCB1bnNwZWNfdmFsID0gWElOVCAoc3ViLCAxKTsNCisJICBz d2l0Y2ggKHVuc3BlY192YWwpDQorCSAgICB7DQorCSAgICBjYXNlIFVOU1BF Q19QQUNJQVNQOg0KKwkgICAgY2FzZSBVTlNQRUNfUEFDSUJTUDoNCisJICAg ICAgcmV0dXJuIHRydWU7DQorDQorCSAgICBkZWZhdWx0Og0KKwkgICAgICBy ZXR1cm4gZmFsc2U7DQorCSAgICB9DQorCSAgaXRlci5za2lwX3N1YnJ0eGVz ICgpOw0KKwl9DQorICAgIH0NCisgIHJldHVybiBmYWxzZTsNCit9DQorDQor LyogSW5zZXJ0IHRoZSBCVEkgaW5zdHJ1Y3Rpb24uICAqLw0KKy8qIFRoaXMg aXMgaW1wbGVtZW50ZWQgYXMgYSBsYXRlIFJUTCBwYXNzIHRoYXQgcnVucyBi ZWZvcmUgYnJhbmNoDQorICAgc2hvcnRlbmluZyBhbmQgZG9lcyB0aGUgZm9s bG93aW5nLiAgKi8NCitzdGF0aWMgdW5zaWduZWQgaW50DQorcmVzdF9vZl9p bnNlcnRfYnRpICh2b2lkKQ0KK3sNCisgIHRpbWV2YXJfcHVzaCAoVFZfTUFD SF9ERVApOw0KKw0KKyAgcnR4IGJ0aV9pbnNuOw0KKyAgcnR4X2luc24gKmlu c247DQorICBiYXNpY19ibG9jayBiYjsNCisNCisgIC8qIEV4ZW1wdCBmdW5j dGlvbiB0aGF0IGFyZSBvbmx5IGNhbGxlZCBkaXJlY3RseS4gICovDQorICBp ZiAoIWNncmFwaF9ub2RlOjpnZXQgKGNmdW4tPmRlY2wpLT5vbmx5X2NhbGxl ZF9kaXJlY3RseV9wICgpKQ0KKyAgICB7DQorICAgICAgYmIgPSBFTlRSWV9C TE9DS19QVFJfRk9SX0ZOIChjZnVuKS0+bmV4dF9iYjsNCisgICAgICBpbnNu ID0gQkJfSEVBRCAoYmIpOw0KKyAgICAgIGlmICghYWFyY2g2NF9wYWNfaW5z bl9wIChnZXRfZmlyc3Rfbm9ubm90ZV9pbnNuICgpKSkNCisJew0KKwkgIGJ0 aV9pbnNuID0gZ2VuX2J0aV9ub3AgKEdFTl9JTlQgKElOU05fQlRJX0MpKTsN CisJICBlbWl0X2luc25fYmVmb3JlIChidGlfaW5zbiwgaW5zbik7DQorCX0N CisgICAgfQ0KKw0KKyAgYmIgPSAwOw0KKyAgRk9SX0VBQ0hfQkJfRk4gKGJi LCBjZnVuKQ0KKyAgICB7DQorICAgICAgZm9yIChpbnNuID0gQkJfSEVBRCAo YmIpOyBpbnNuICE9IE5FWFRfSU5TTiAoQkJfRU5EIChiYikpOw0KKwkgICBp bnNuID0gTkVYVF9JTlNOIChpbnNuKSkNCisJew0KKwkgIGlmICgoTEFCRUxf UCAoaW5zbikNCisJICAgICAgICYmIChMQUJFTF9QUkVTRVJWRV9QIChpbnNu KQ0KKwkJICAgfHwgYmItPmZsYWdzICYgQkJfTk9OX0xPQ0FMX0dPVE9fVEFS R0VUKSkNCisJICAgICAgfHwgKE5PVEVfUCAoaW5zbikNCisJCSAgJiYgTk9U RV9LSU5EIChpbnNuKSA9PSBOT1RFX0lOU05fREVMRVRFRF9MQUJFTCkpDQor CSAgICB7DQorCSAgICAgIGJ0aV9pbnNuID0gZ2VuX2J0aV9ub3AgKEdFTl9J TlQgKElOU05fQlRJX0opKTsNCisJICAgICAgZW1pdF9pbnNuX2FmdGVyIChi dGlfaW5zbiwgaW5zbik7DQorCSAgICAgIGNvbnRpbnVlOw0KKwkgICAgfQ0K Kw0KKwkgIGlmIChKVU1QX1AgKGluc24pKQ0KKwkgICAgew0KKwkgICAgICBy dHggdGFyZ2V0ID0gSlVNUF9MQUJFTCAoaW5zbik7DQorCSAgICAgIGlmICh0 YXJnZXQgPT0gTlVMTF9SVFggfHwgQU5ZX1JFVFVSTl9QICh0YXJnZXQpKQ0K KwkJY29udGludWU7DQorDQorCSAgICAgIC8qIENoZWNrIHRoZSBqdW1wIGlz IGEgc3dpdGNoIHRhYmxlLiAgKi8NCisJICAgICAgcnR4X2luc24gKmxhYmVs ID0gYXNfYTxydHhfaW5zbiAqPiAodGFyZ2V0KTsNCisJICAgICAgcnR4X2lu c24gKnRhYmxlID0gbmV4dF9pbnNuIChsYWJlbCk7DQorCSAgICAgIGlmICh0 YWJsZSA9PSBOVUxMX1JUWCB8fCAhSlVNUF9UQUJMRV9EQVRBX1AgKHRhYmxl KSkNCisJCWNvbnRpbnVlOw0KKw0KKwkgICAgICAvKiBGb3IgdGhlIGluZGly ZWN0IGp1bXAgZmluZCBvdXQgYWxsIHBsYWNlcyBpdCBqdW1wcyBhbmQgaW5z ZXJ0DQorCQkgYSBCVEkgaW5zdHJ1Y3Rpb24gdGhlcmUuICAqLw0KKwkgICAg ICBlZGdlX2l0ZXJhdG9yIGVpOw0KKwkgICAgICBlZGdlIGU7DQorCSAgICAg IGJhc2ljX2Jsb2NrIGRlc3RfYmxrOw0KKw0KKwkgICAgICBGT1JfRUFDSF9F REdFIChlLCBlaSwgYmItPnN1Y2NzKQ0KKwkJew0KKwkJICBydHhfaW5zbiAq aW5zbjsNCisNCisJCSAgZGVzdF9ibGsgPSBlLT5kZXN0Ow0KKwkJICBpbnNu ID0gQkJfSEVBRCAoZGVzdF9ibGspOw0KKwkJICBnY2NfYXNzZXJ0IChMQUJF TF9QIChpbnNuKSk7DQorCQkgIGJ0aV9pbnNuID0gZ2VuX2J0aV9ub3AgKEdF Tl9JTlQgKElOU05fQlRJX0opKTsNCisJCSAgZW1pdF9pbnNuX2FmdGVyIChi dGlfaW5zbiwgaW5zbik7DQorCQl9DQorCSAgICAgIGNvbnRpbnVlOw0KKwkg ICAgfQ0KKw0KKwl9DQorICAgIH0NCisNCisgIHRpbWV2YXJfcG9wIChUVl9N QUNIX0RFUCk7DQorICByZXR1cm4gMDsNCit9DQorDQorDQorY2xhc3MgcGFz c19pbnNlcnRfYnRpIDogcHVibGljIHJ0bF9vcHRfcGFzcw0KK3sNCitwdWJs aWM6DQorICBwYXNzX2luc2VydF9idGkgKGdjYzo6Y29udGV4dCAqY3R4dCkN CisgICAgOiBydGxfb3B0X3Bhc3MgKHBhc3NfZGF0YV9pbnNlcnRfYnRpLCBj dHh0KQ0KKyAge30NCisNCisgIC8qIG9wdF9wYXNzIG1ldGhvZHM6ICovDQor ICB2aXJ0dWFsIGJvb2wgZ2F0ZSAoZnVuY3Rpb24gKikNCisgICAgew0KKyAg ICAgIHJldHVybiBhYXJjaDY0X2J0aV9lbmFibGVkICgpOw0KKyAgICB9DQor DQorICB2aXJ0dWFsIHVuc2lnbmVkIGludCBleGVjdXRlIChmdW5jdGlvbiAq KQ0KKyAgICB7DQorICAgICAgcmV0dXJuIHJlc3Rfb2ZfaW5zZXJ0X2J0aSAo KTsNCisgICAgfQ0KKw0KK307IC8vIGNsYXNzIHBhc3NfaW5zZXJ0X2J0aQ0K Kw0KK30gLy8gYW5vbiBuYW1lc3BhY2UNCisNCitydGxfb3B0X3Bhc3MgKg0K K21ha2VfcGFzc19pbnNlcnRfYnRpIChnY2M6OmNvbnRleHQgKmN0eHQpDQor ew0KKyAgcmV0dXJuIG5ldyBwYXNzX2luc2VydF9idGkgKGN0eHQpOw0KK30N CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1wYXNz ZXMuZGVmIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcGFzc2VzLmRl Zg0KaW5kZXggMzk4MmI2ZWE2MjkwMzc5ZTZlY2FjODA0NmViYjI3YTE0ZDIz NDJmMC4uZDNlMzE2ZjQwNmVjYjAxMTk3ODdhNjdhZDFjNjJmYWZhYWY5OWE4 OCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXBh c3Nlcy5kZWYNCisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXBh c3Nlcy5kZWYNCkBAIC0yMSwzICsyMSw0IEBADQogSU5TRVJUX1BBU1NfQUZU RVIgKHBhc3NfcmVncmVuYW1lLCAxLCBwYXNzX2ZtYV9zdGVlcmluZyk7DQog SU5TRVJUX1BBU1NfQkVGT1JFIChwYXNzX3Jlb3JkZXJfYmxvY2tzLCAxLCBw YXNzX3RyYWNrX3NwZWN1bGF0aW9uKTsNCiBJTlNFUlRfUEFTU19BRlRFUiAo cGFzc19tYWNoaW5lX3Jlb3JnLCAxLCBwYXNzX3RhZ19jb2xsaXNpb25fYXZv aWRhbmNlKTsNCitJTlNFUlRfUEFTU19CRUZPUkUgKHBhc3Nfc2hvcnRlbl9i cmFuY2hlcywgMSwgcGFzc19pbnNlcnRfYnRpKTsNCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1wcm90b3MuaCBiL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oDQppbmRleCA5MTNiNjNlZmI1 ZWVjM2M3YjYwMGQ5ZmIxOGI0YTZjNWU0MWQxZmM1Li4xNzY3MzU2YzVlZjJj ODJkMzM3YWNjMTQyNjBkMmQzOGI0NDhhNmYyIDEwMDY0NA0KLS0tIGEvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgNCisrKyBiL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oDQpAQCAtNDAxLDYgKzQw MSwxNSBAQCBlbnVtIGFhcmNoNjRfa2V5X3R5cGUgew0KIA0KIGV4dGVybiBl bnVtIGFhcmNoNjRfa2V5X3R5cGUgYWFyY2g2NF9yYV9zaWduX2tleTsNCiAN CisvKiBFbnVtIGZvciBISU5UIHZhbHVlcyBmb3IgQlRJIGluc3RydWN0aW9u cy4gICovDQorZW51bSBidGlfaW5zbl90eXBlDQorew0KKyAgSU5TTl9CVElf Tk9BUkcJPSAzMiwNCisgIElOU05fQlRJX0MJCT0gMzQsDQorICBJTlNOX0JU SV9KCQk9IDM2LA0KKyAgSU5TTl9CVElfSkMJCT0gMzgNCit9Ow0KKw0KIGV4 dGVybiBzdHJ1Y3QgdHVuZV9wYXJhbXMgYWFyY2g2NF90dW5lX3BhcmFtczsN CiANCiB2b2lkIGFhcmNoNjRfcG9zdF9jZmlfc3RhcnRwcm9jICh2b2lkKTsN CkBAIC02MzcsNiArNjQ2LDcgQEAgZXh0ZXJuIHZvaWQgYWFyY2g2NF9kX3Rh cmdldF92ZXJzaW9ucyAodm9pZCk7DQogcnRsX29wdF9wYXNzICptYWtlX3Bh c3NfZm1hX3N0ZWVyaW5nIChnY2M6OmNvbnRleHQgKik7DQogcnRsX29wdF9w YXNzICptYWtlX3Bhc3NfdHJhY2tfc3BlY3VsYXRpb24gKGdjYzo6Y29udGV4 dCAqKTsNCiBydGxfb3B0X3Bhc3MgKm1ha2VfcGFzc190YWdfY29sbGlzaW9u X2F2b2lkYW5jZSAoZ2NjOjpjb250ZXh0ICopOw0KK3J0bF9vcHRfcGFzcyAq bWFrZV9wYXNzX2luc2VydF9idGkgKGdjYzo6Y29udGV4dCAqY3R4dCk7DQog DQogcG9seV91aW50NjQgYWFyY2g2NF9yZWdtb2RlX25hdHVyYWxfc2l6ZSAo bWFjaGluZV9tb2RlKTsNCiANCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQu aA0KaW5kZXggMzQ5MzhiNDI3MWQxNjc4NzNkNjg5Y2M4ZTRjMmJlOWEwMDk4 MTQzNC4uMDlkNzZiNTczN2I1NTJhYmNlYmEzNjYzNDU5NDA1MDc3MGY0ZTZj YyAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmgN CisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmgNCkBAIC05MjQs NyArOTI0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QNCiANCiAjZGVmaW5lIFJFVFVS Tl9BRERSX1JUWCBhYXJjaDY0X3JldHVybl9hZGRyDQogDQotLyogMyBpbnNu cyArIHBhZGRpbmcgKyAyIHBvaW50ZXItc2l6ZWQgZW50cmllcy4gICovDQor LyogQlRJIGMgKyAzIGluc25zICsgMiBwb2ludGVyLXNpemVkIGVudHJpZXMu ICAqLw0KICNkZWZpbmUgVFJBTVBPTElORV9TSVpFCShUQVJHRVRfSUxQMzIg PyAyNCA6IDMyKQ0KIA0KIC8qIFRyYW1wb2xpbmVzIGNvbnRhaW4gZHdvcmRz LCBzbyBtdXN0IGJlIGR3b3JkIGFsaWduZWQuICAqLw0KZGlmZiAtLWdpdCBh L2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMgYi9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC5jDQppbmRleCBmNjBjZjlkNWIwMjM1MDMwMTNkZDBh YzNlMTNlMGQwZTg4M2E2NmUzLi4xMmE1NWE2NDBkZTRmZGM1ZGYyMWQzMTNj N2VhNjg0MWYxZGFmM2YyIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQuYw0KKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNo NjQuYw0KQEAgLTgwNDksMTggKzgwNDksMzMgQEAgYWFyY2g2NF9yZXR1cm5f YWRkciAoaW50IGNvdW50LCBydHggZnJhbWUgQVRUUklCVVRFX1VOVVNFRCkN CiBzdGF0aWMgdm9pZA0KIGFhcmNoNjRfYXNtX3RyYW1wb2xpbmVfdGVtcGxh dGUgKEZJTEUgKmYpDQogew0KKyAgaW50IG9mZnNldDEgPSAxNjsNCisgIGlu dCBvZmZzZXQyID0gMjA7DQorDQorICBpZiAoYWFyY2g2NF9idGlfZW5hYmxl ZCAoKSkNCisgICAgew0KKyAgICAgIGFzbV9mcHJpbnRmIChmLCAiXHRoaW50 XHQzNFxuIik7DQorICAgICAgb2Zmc2V0MSAtPSA0Ow0KKyAgICAgIG9mZnNl dDIgLT0gNDsNCisgICAgfQ0KKw0KICAgaWYgKFRBUkdFVF9JTFAzMikNCiAg ICAgew0KLSAgICAgIGFzbV9mcHJpbnRmIChmLCAiXHRsZHJcdHclZCwgLisx NlxuIiwgSVAxX1JFR05VTSAtIFIwX1JFR05VTSk7DQotICAgICAgYXNtX2Zw cmludGYgKGYsICJcdGxkclx0dyVkLCAuKzE2XG4iLCBTVEFUSUNfQ0hBSU5f UkVHTlVNIC0gUjBfUkVHTlVNKTsNCisgICAgICBhc21fZnByaW50ZiAoZiwg Ilx0bGRyXHR3JWQsIC4rJWRcbiIsIElQMV9SRUdOVU0gLSBSMF9SRUdOVU0s IG9mZnNldDEpOw0KKyAgICAgIGFzbV9mcHJpbnRmIChmLCAiXHRsZHJcdHcl ZCwgLislZFxuIiwgU1RBVElDX0NIQUlOX1JFR05VTSAtIFIwX1JFR05VTSwN CisJCSAgIG9mZnNldDEpOw0KICAgICB9DQogICBlbHNlDQogICAgIHsNCi0g ICAgICBhc21fZnByaW50ZiAoZiwgIlx0bGRyXHQlcywgLisxNlxuIiwgcmVn X25hbWVzIFtJUDFfUkVHTlVNXSk7DQotICAgICAgYXNtX2ZwcmludGYgKGYs ICJcdGxkclx0JXMsIC4rMjBcbiIsIHJlZ19uYW1lcyBbU1RBVElDX0NIQUlO X1JFR05VTV0pOw0KKyAgICAgIGFzbV9mcHJpbnRmIChmLCAiXHRsZHJcdCVz LCAuKyVkXG4iLCByZWdfbmFtZXMgW0lQMV9SRUdOVU1dLCBvZmZzZXQxKTsN CisgICAgICBhc21fZnByaW50ZiAoZiwgIlx0bGRyXHQlcywgLislZFxuIiwg cmVnX25hbWVzIFtTVEFUSUNfQ0hBSU5fUkVHTlVNXSwNCisJCSAgIG9mZnNl dDIpOw0KICAgICB9DQogICBhc21fZnByaW50ZiAoZiwgIlx0YnJcdCVzXG4i LCByZWdfbmFtZXMgW0lQMV9SRUdOVU1dKTsNCi0gIGFzc2VtYmxlX2FsaWdu ZWRfaW50ZWdlciAoNCwgY29uc3QwX3J0eCk7DQorDQorICBpZiAoIWFhcmNo NjRfYnRpX2VuYWJsZWQgKCkpDQorICAgIGFzc2VtYmxlX2FsaWduZWRfaW50 ZWdlciAoNCwgY29uc3QwX3J0eCk7DQorDQogICBhc3NlbWJsZV9hbGlnbmVk X2ludGVnZXIgKFBPSU5URVJfQllURVMsIGNvbnN0MF9ydHgpOw0KICAgYXNz ZW1ibGVfYWxpZ25lZF9pbnRlZ2VyIChQT0lOVEVSX0JZVEVTLCBjb25zdDBf cnR4KTsNCiB9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQubWQgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZA0KaW5k ZXggM2NhNmQ2MWU3ZTI4Yjc4MGY5NGJmNTA4MGIxMjZkYWM2MGZlMDUyNC4u MzA2OTNjZTgzZmVhMWNjYzZlZTVlNGFhZDFmMGYwY2Q5YjQ0ZjQ3YSAxMDA2 NDQNCi0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kDQorKysg Yi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZA0KQEAgLTI0MCw2ICsy NDAsNyBAQA0KICAgICBVTlNQRUNWX0JMT0NLQUdFCQk7IFJlcHJlc2VudCBh IGJsb2NrYWdlDQogICAgIFVOU1BFQ1ZfUFJPQkVfU1RBQ0tfUkFOR0UJOyBS ZXByZXNlbnQgc3RhY2sgcmFuZ2UgcHJvYmluZy4NCiAgICAgVU5TUEVDVl9T UEVDVUxBVElPTl9CQVJSSUVSIDsgUmVwcmVzZW50IHNwZWN1bGF0aW9uIGJh cnJpZXIuDQorICAgIFVOU1BFQ1ZfQlRJX05PUAkJOyBSZXByZXNlbnQgYSBC VEkgaW5zdHJ1Y3Rpb24uDQogICBdDQogKQ0KIA0KQEAgLTY3MjAsNiArNjcy MSw0MCBAQA0KICAgWyhzZXRfYXR0ciAidHlwZSIgImNzZWwiKV0NCiApDQog DQorKGRlZmluZV9pbnNuICJidGlfbm9wIg0KKyAgWyh1bnNwZWNfdm9sYXRp bGUgWyhtYXRjaF9vcGVyYW5kOlNJIDAgImNvbnN0X2ludF9vcGVyYW5kIild DQorICAgIFVOU1BFQ1ZfQlRJX05PUCldDQorICAiIg0KKyAgew0KKyAgIGNo YXIgYnVmWzEwMF07DQorICAgYnRpX2luc25fdHlwZSB2YWwgPSAoYnRpX2lu c25fdHlwZSkgSU5UVkFMIChvcGVyYW5kc1swXSk7DQorICAgc3dpdGNoICh2 YWwpDQorICAgIHsNCisgICAgICBjYXNlIElOU05fQlRJX05PQVJHOg0KKwlz bnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1ZiksICJoaW50XHQlZCAvLyAlcyIs IHZhbCwgImJ0aSIpOw0KKwlicmVhazsNCisNCisgICAgICBjYXNlIElOU05f QlRJX0M6DQorCXNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgImhpbnRc dCVkIC8vICVzIiwgdmFsLCAiYnRpIGMiKTsNCisJYnJlYWs7DQorDQorICAg ICAgY2FzZSBJTlNOX0JUSV9KOg0KKwlzbnByaW50ZiAoYnVmLCBzaXplb2Yg KGJ1ZiksICJoaW50XHQlZCAvLyAlcyIsIHZhbCwgImJ0aSBqIik7DQorCWJy ZWFrOw0KKw0KKyAgICAgIGNhc2UgSU5TTl9CVElfSkM6DQorCXNucHJpbnRm IChidWYsIHNpemVvZiAoYnVmKSwgImhpbnRcdCVkIC8vICVzIiwgdmFsLCAi YnRpIGpjIik7DQorCWJyZWFrOw0KKw0KKyAgICAgIGRlZmF1bHQ6DQorCWdj Y191bnJlYWNoYWJsZSAoKTsNCisgICAgfQ0KKyAgICBvdXRwdXRfYXNtX2lu c24gKGJ1Ziwgb3BlcmFuZHMpOw0KKyAgICByZXR1cm4gIiI7DQorICAgfQ0K KyAgWyhzZXRfYXR0ciAidHlwZSIgIm5vX2luc24iKV0NCispDQorDQogOzsg SGVscGVyIGZvciBhYXJjaDY0LmMgY29kZS4NCiAoZGVmaW5lX2V4cGFuZCAi c2V0X2Nsb2JiZXJfY2MiDQogICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9v cGVyYW5kIDApDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L3Qt YWFyY2g2NCBiL2djYy9jb25maWcvYWFyY2g2NC90LWFhcmNoNjQNCmluZGV4 IGU5MWRjY2VhOTk1NGMyYzM4N2ZiMTExZDFiMzU3ZGQyYzIyMGZmMGEuLmEy MDQ4NTQ3YmU1NmViYThhNDdjMjJjOWQyYjk0ZTc4NzM2NDgyOGYgMTAwNjQ0 DQotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvdC1hYXJjaDY0DQorKysgYi9n Y2MvY29uZmlnL2FhcmNoNjQvdC1hYXJjaDY0DQpAQCAtOTEsNiArOTEsMTUg QEAgZmFsa29yLXRhZy1jb2xsaXNpb24tYXZvaWRhbmNlLm86IFwNCiAJJChD T01QSUxFUikgLWMgJChBTExfQ09NUElMRVJGTEFHUykgJChBTExfQ1BQRkxB R1MpICQoSU5DTFVERVMpIFwNCiAJCSQoc3JjZGlyKS9jb25maWcvYWFyY2g2 NC9mYWxrb3ItdGFnLWNvbGxpc2lvbi1hdm9pZGFuY2UuYw0KIA0KK2FhcmNo NjQtYnRpLWluc2VydC5vOiAkKHNyY2RpcikvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC1idGktaW5zZXJ0LmMgXA0KKyAgICAkKENPTkZJR19IKSAkKFNZU1RF TV9IKSAkKFRNX0gpICQoUkVHU19IKSBpbnNuLWNvbmZpZy5oICQoUlRMX0JB U0VfSCkgXA0KKyAgICBkb21pbmFuY2UuaCBjZmcuaCBjZmdhbmFsLmggJChC QVNJQ19CTE9DS19IKSAkKElOU05fQVRUUl9IKSAkKFJFQ09HX0gpIFwNCisg ICAgb3V0cHV0LmggaGFzaC1tYXAuaCAkKERGX0gpICQoT0JTVEFDS19IKSAk KFRBUkdFVF9IKSAkKFJUTF9IKSBcDQorICAgICQoQ09OVEVYVF9IKSAkKFRS RUVfUEFTU19IKSByZWdyZW5hbWUuaCBcDQorICAgICQoc3JjZGlyKS9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oDQorCSQoQ09NUElMRVIpIC1j ICQoQUxMX0NPTVBJTEVSRkxBR1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xV REVTKSBcDQorCQkkKHNyY2RpcikvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1i dGktaW5zZXJ0LmMNCisNCiBjb21tYT0sDQogTVVMVElMSUJfT1BUSU9OUyAg ICA9ICQoc3Vic3QgJChjb21tYSksLywgJChwYXRzdWJzdCAlLCBtYWJpPSUs ICQoc3Vic3QgJChjb21tYSksJChjb21tYSltYWJpPSwkKFRNX01VTFRJTElC X0NPTkZJRykpKSkNCiBNVUxUSUxJQl9ESVJOQU1FUyAgID0gJChzdWJzdCAk KGNvbW1hKSwgLCQoVE1fTVVMVElMSUJfQ09ORklHKSkNCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idGktMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnRpLTEuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3NWQwMWE1NDExYTE5ZGFiY2RiNTZi Nzc3ZTVkODdkOTcwM2E4NDgNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J0aS0xLmMNCkBAIC0wLDAg KzEsNTkgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIC1PcyB0 byBjcmVhdGUganVtcCB0YWJsZS4gICovDQorLyogeyBkZy1vcHRpb25zICIt T3MgLW1icmFuY2gtcHJvdGVjdGlvbj1zdGFuZGFyZCIgfSAqLw0KKw0KK2V4 dGVybiBpbnQgZjEgKHZvaWQpOw0KK2V4dGVybiBpbnQgZjIgKHZvaWQpOw0K K2V4dGVybiBpbnQgZjMgKHZvaWQpOw0KK2V4dGVybiBpbnQgZjQgKHZvaWQp Ow0KK2V4dGVybiBpbnQgZjUgKHZvaWQpOw0KK2V4dGVybiBpbnQgZjYgKHZv aWQpOw0KK2V4dGVybiBpbnQgZjcgKHZvaWQpOw0KK2V4dGVybiBpbnQgZjgg KHZvaWQpOw0KK2V4dGVybiBpbnQgZjkgKHZvaWQpOw0KK2V4dGVybiBpbnQg ZjEwICh2b2lkKTsNCisNCitpbnQgKCpwdHIpICh2b2lkKTsNCisNCitpbnQN CitmX2p1bXBfdGFibGUgKGludCB5LCBpbnQgbikNCit7DQorICBpbnQgaTsN CisgIGZvciAoaSA9IDA7IGkgPCBuIDtpICsrKQ0KKyAgew0KKyAgICBzd2l0 Y2ggKHkpDQorICAgICAgew0KKyAgICAgIGNhc2UgMCA6IHB0ciA9IGYxOyBi cmVhazsNCisgICAgICBjYXNlIDEgOiBwdHIgPSBmMjsgYnJlYWs7DQorICAg ICAgY2FzZSAyIDogcHRyID0gZjM7IGJyZWFrOw0KKyAgICAgIGNhc2UgMyA6 IHB0ciA9IGY0OyBicmVhazsNCisgICAgICBjYXNlIDQgOiBwdHIgPSBmNTsg YnJlYWs7DQorICAgICAgY2FzZSA1IDogcHRyID0gZjY7IGJyZWFrOw0KKyAg ICAgIGNhc2UgNiA6IHB0ciA9IGY3OyBicmVhazsNCisgICAgICBjYXNlIDcg OiBwdHIgPSBmODsgYnJlYWs7DQorICAgICAgY2FzZSA4IDogcHRyID0gZjk7 IGJyZWFrOw0KKyAgICAgIGNhc2UgOSA6IHB0ciA9IGYxMDsgYnJlYWs7DQor ICAgICAgZGVmYXVsdDogYnJlYWs7DQorICAgICAgfQ0KKyAgICB5ICs9IHB0 ciAoKTsNCisgIH0NCisgIHJldHVybiAoeSA9PSAwKT8geSsxOjQ7DQorfQ0K Ky8qIGZfanVtcF90YWJsZSBzaG91bGQgaGF2ZSBQQUNJQVNQIGFuZCBBVVRJ QVNQLiAgKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgImhpbnRcdDI1IiAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAiaGludFx0MjkiIDEgfSB9ICovDQorDQoraW50 DQorZl9sYWJlbF9hZGRyZXNzICgpDQorew0KKyAgc3RhdGljIHZvaWQgKiBh ZGRyID0gJiZsYWIxOw0KKyAgZ290byAqYWRkcjsNCitsYWIxOg0KKyAgYWRk ciA9ICYmbGFiMjsNCisgIHJldHVybiAxOw0KK2xhYjI6DQorICBhZGRyID0g JiZsYWIxOw0KKyAgcmV0dXJuIDI7DQorfQ0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyAiaGludFx0MzQiIDEgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJoaW50XHQzNiIg MTIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvYnRpLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L2J0aS0yLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l NTBlZWYxNWM4OTM2ZDAwNzE2YzU4MmU5MGIyMzVhZGQ1ZGE5MTM2DQotLS0g L2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9idGktMi5jDQpAQCAtMCwwICsxLDM0IEBADQorLyogeyBkZy1kbyBy dW4gfSAqLw0KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFh cmNoNjRfYnRpX2h3IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYnJhbmNo LXByb3RlY3Rpb249c3RhbmRhcmQiIH0gKi8NCisNCisjaW5jbHVkZTxzdGRp by5oPg0KKw0KK3R5cGVkZWYgaW50IEZQIChpbnQpOw0KKw0KK2ludA0KK2Yx IChGUCBmcCwgaW50IG4pDQorew0KKyAgcmV0dXJuIChmcCkgKG4pOw0KK30N CisNCitpbnQNCitmMiAoaW50IG4sIEZQIGZwKQ0KK3sNCisgIHJldHVybiAo ZnApIChuKTsNCit9DQorDQoraW50IF9fYXR0cmlidXRlX18gKChub2lubGlu ZSkpDQorZnVuYyAoaW50IHgpDQorew0KKyAgcmV0dXJuIHgrMTsNCit9DQor DQoraW50IG1haW4gKCkNCit7DQorICBpbnQgcyA9IDA7DQorICBzICs9IGYx IChmdW5jLCAxMCk7DQorICBzICs9IGYyIChzLCBmdW5jKTsNCisgIHByaW50 ZiAoIlM6ICVkXG4iLCBzKTsNCisgIHJldHVybiAhKHMgPT0gMjMpOw0KK30N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9y dHMuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4 cA0KaW5kZXggZmQ3NGMwNGQwOTJiMGUyMzQxYjg1ZWVmYmViYjFmMGRmOTQy MzQ5Mi4uNjVmZjE2ODE3ZjVmODgyNTUxNDhiYjY5ZDcwMTg5NzU0NjUxOTdk YyAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBw b3J0cy5leHANCisrKyBiL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBw b3J0cy5leHANCkBAIC00MjcwLDYgKzQyNzAsMjIgQEAgcHJvYyBjaGVja19l ZmZlY3RpdmVfdGFyZ2V0X2FybV9uZW9udjJfaHcgeyB9IHsNCiAgICAgfSBb YWRkX29wdGlvbnNfZm9yX2FybV9uZW9udjIgIiJdXQ0KIH0NCiANCisjIElE X0FBNjRQRlIxX0VMMS5CVCB1c2luZyBiaXRzWzM6MF0gPT0gMSBpbXBsaWVz IEJUSSBpbXBsaW1lbnRlZC4NCitwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJn ZXRfYWFyY2g2NF9idGlfaHcgeyB9IHsNCisgICAgaWYgeyAhW2lzdGFyZ2V0 IGFhcmNoNjQqLSotKl0gfSB7DQorCXJldHVybiAwDQorICAgIH0NCisgICAg cmV0dXJuIFtjaGVja19ydW50aW1lIGFhcmNoNjRfYnRpX2h3X2F2YWlsYWJs ZSB7DQorCWludA0KKwltYWluICh2b2lkKQ0KKwl7DQorCSAgaW50IGE7DQor CSAgYXNtIHZvbGF0aWxlICgibXJzICUwLCBpZF9hYTY0cGZyMV9lbDEiIDog Ij1yIiAoYSkpOw0KKwkgIHJldHVybiAhKChhICYgMHhmKSA9PSAxKTsNCisJ fQ0KKyAgICB9ICItTzIiIF0NCit9DQorDQogIyBSZXR1cm4gMSBpZiB0aGUg dGFyZ2V0IHN1cHBvcnRzIHRoZSBBUk12OC4xIEFkdi5TSU1EIGV4dGVuc2lv biwgMA0KICMgb3RoZXJ3aXNlLiAgVGhlIHRlc3QgaXMgdmFsaWQgZm9yIEFB cmNoNjQgYW5kIEFSTS4gIFJlY29yZCB0aGUgY29tbWFuZA0KICMgbGluZSBv cHRpb25zIG5lZWRlZC4NCg0K --_002_f99c29180d71271f6a70156f8d02486barmcom_--