From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by sourceware.org (Postfix) with ESMTPS id 47E643857BBE for ; Fri, 12 Jan 2024 07:33:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 47E643857BBE Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 47E643857BBE Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=13.245.218.24 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705044794; cv=none; b=LrFY3WVBtc00Kd3wsj0ZDhYh24uBdhhCfJn2jf3Ak3jeXhC73KaUVx/aLelVukxrukwXtrg0g23sTAfSuXGW7wSmraHH8B2DjybL40Vd1hvKiaQgu6jJRbgFAkTMPKznJbRO6Zsxu2aJb4FWSQtJYAGFr2GWulUwUJuJDve6R4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705044794; c=relaxed/simple; bh=6uUrQgA3VvzbwyhhdbNAtbCqyTyHYwJUMZ5JSsuM5Ks=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=Wd5Km1adimJHaEI4b8zgo+pdQDfa/ia4UHdEVQPYSqJrNA1H1wsZP5Q4gIr25ay4jQ3VNFBfVnjV8zh7O2LjqdzIsk6ygS1GYWgQjhKnLRsomjnv/jMBTpXLDoc1tEkYBjAiYJxH9U/6e89nyY61L2oe7DsI0wJTFwMCZwfMy5Y= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp65t1705044762te75aipj Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 12 Jan 2024 15:32:40 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: 27H4dUct9tg9ZxvcOPQUGMiqlN8l4u2a3GjaCysbtT4CjVR6GJkt00+F8X9mm i1R95SEliO8dOyLNuf+KtqH3q75+BM57XW6x+prRv7sro4vahcNFIUjE2knewyr4kpwsWmu QAZy8nhKTp6nrT42WkTzIvE04TTjBkzFG2bg1/wXWGXpIX4F9WfvCqa1V431n9GQHGEhCWX 2ValQmWdlcz47UR38E6R6wxtlXPlVwrjq1wBt8NcQLjLwvwYZNdsTXlG/b2RfPdRWMBBleo P3H4m9FqgdPhDfpFJaD6vtK+xl6A2w+JMUqYZcCzTh0nz0sTmjPbuTXif1cvC33qihi3+b6 rcEEe6TsjnwQmsaon83YbVfNODlqjXBVH7S39sFwcJnmJaCD8HWkzxE+rA4I0AZL3HkJjLT +b0/scGyGtXAXZihnqSeUMy2I7NnrCAeEqrIPP41xzs= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 1998224505818784896 Date: Fri, 12 Jan 2024 15:32:40 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , cooper.joshua , jinma , cooper.qu Subject: Re: [PATCH v5] RISC-V: Rewrite some instructions using ASM targethook References: <20240112031840.1556-1-cooper.joshua@linux.alibaba.com>, <20240112032404.1874-1-cooper.joshua@linux.alibaba.com> X-Priority: 3 X-GUID: 930227CF-BA8C-48C3-BF19-D66E39BB48B4 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <687CC02BD9E5B3E7+202401121532399139936@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart135023354615_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart135023354615_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 b2suDQoNCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogSnVu IFNoYSAoSm9zaHVhKQ0KRGF0ZTogMjAyNC0wMS0xMiAxMToyNA0KVG86IGdj Yy1wYXRjaGVzDQpDQzogamltLndpbHNvbi5nY2M7IHBhbG1lcjsgYW5kcmV3 OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVl bGxuZXI7IGp1emhlLnpob25nOyBKdW4gU2hhIChKb3NodWEpOyBKaW4gTWE7 IFhpYW5taWFvIFF1DQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0MtVjogUmV3 cml0ZSBzb21lIGluc3RydWN0aW9ucyB1c2luZyBBU00gdGFyZ2V0aG9vaw0K VGhlcmUgYXJlIHNvbWUgeHRoZWFkdmVjdG9yIGluc3RydWN0aW9ucyB0aGF0 IGRpZmZlciBmcm9tIFJWVjEuMA0KYXBhcnQgZnJvbSBzaW1wbHkgYWRkaW5n ICJ0aC4iIHByZWZpeC4gRm9yIGV4YW1wbGUsIFJWVjEuMA0KbG9hZC9zdG9y ZSBpbnN0cnVjdGlvbnMgd2lsbCBoYXZlIFNFVyB3aGlsZSB4dGhlYWR2ZWN0 b3Igbm90Ow0KUlZWMS4wIHdpbGwgaGF2ZSAibyIgZm9yIGluZGV4ZWQtb3Jk ZXJlZCBzdG9yZSBpbnN0cnVjdGlvbnMgd2hpbGUNCnh0aGVhZHZlY290ciBu b3Q7IHh0aGVhZHZlY3RvciBhbmQgUlZWMS4wIGhhdmUgZGlmZmVyZW50DQp2 bnNybC92bnNyYS92Zm5jdnQgc3VmZml4ICh2di92eC92aSB2cyB3di93eC93 aSkuDQogDQpUbyBhZGRyZXNzIHRoaXMgaXNzdWUgd2l0aG91dCBkdXBsaWNh dGluZyBwYXR0ZXJucywgd2UgdXNlIEFTTQ0KdGFyZ2V0aG9vayB0byByZXdy aXRlIHRoZSB3aG9sZSBzdHJpbmcgb2YgdGhlIGluc3RydWN0aW9ucy4gV2UN CmlkZW50aWZ5IGRpZmZlcmVudCBpbnN0cnVjdGlvbnMgZnJvbSB0aGUgY29y cmVzcG9uZGluZyBhdHRyaWJ1dGUuDQogDQpnY2MvQ2hhbmdlTG9nOg0KIA0K KiBjb25maWcvcmlzY3YvdGhlYWQuY2MNCih0aF9hc21fb3V0cHV0X29wY29k ZSk6IFJld3JpdGUgc29tZSBpbnN0cnVjdGlvbnMuDQogDQpDby1hdXRob3Jl ZC1ieTogSmluIE1hIDxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT4NCkNvLWF1 dGhvcmVkLWJ5OiBYaWFubWlhbyBRdSA8Y29vcGVyLnF1QGxpbnV4LmFsaWJh YmEuY29tPg0KQ28tYXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8 Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1Pg0KLS0tDQpnY2MvY29uZmln L3Jpc2N2L3RoZWFkLmNjIHwgMjE1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystDQoxIGZpbGUgY2hhbmdlZCwgMjEzIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pDQogDQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9yaXNjdi90aGVhZC5jYyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQu Y2MNCmluZGV4IGRjM2FlZDM5MDRkLi5mYjA4OGViZmYwMiAxMDA2NDQNCi0t LSBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQuY2MNCisrKyBiL2djYy9jb25m aWcvcmlzY3YvdGhlYWQuY2MNCkBAIC0yNyw2ICsyNyw3IEBADQojaW5jbHVk ZSAiYmFja2VuZC5oIg0KI2luY2x1ZGUgInRyZWUuaCINCiNpbmNsdWRlICJy dGwuaCINCisjaW5jbHVkZSAiaW5zbi1hdHRyLmgiDQojaW5jbHVkZSAiZXhw bG93LmgiDQojaW5jbHVkZSAibWVtbW9kZWwuaCINCiNpbmNsdWRlICJlbWl0 LXJ0bC5oIg0KQEAgLTg5MCw4ICs4OTEsMjE4IEBAIHRoX2FzbV9vdXRwdXRf b3Bjb2RlIChGSUxFICphc21fb3V0X2ZpbGUsIGNvbnN0IGNoYXIgKnApDQp7 DQogICAvKiBXZSBuZWVkIHRvIGFkZCB0aC4gcHJlZml4IHRvIGFsbCB0aGUg eHRoZWFkdmVjdG9yDQogICAgICBpbnN0cnVjdGlvbnMgaGVyZS4qLw0KLSAg aWYgKGN1cnJlbnRfb3V0cHV0X2luc24gIT0gTlVMTCAmJiBwWzBdID09ICd2 JykNCi0gICAgZnB1dHMgKCJ0aC4iLCBhc21fb3V0X2ZpbGUpOw0KKyAgaWYg KGN1cnJlbnRfb3V0cHV0X2luc24gIT0gTlVMTCkNCisgICAgew0KKyAgICAg IGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9PSBU WVBFX1ZMREUgfHwNCisgICBnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1 dF9pbnNuKSA9PSBUWVBFX1ZTVEUgfHwNCisgICBnZXRfYXR0cl90eXBlIChj dXJyZW50X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZMREZGKQ0KKyB7DQorICAg aWYgKHN0cnN0ciAocCwgImU4IikgfHwgc3Ryc3RyIChwLCAiZTE2IikgfHwN CisgICAgICAgc3Ryc3RyIChwLCAiZTMyIikgfHwgc3Ryc3RyIChwLCAiZTY0 IikpDQorICAgICB7DQorICAgICAgIGdldF9hdHRyX3R5cGUgKGN1cnJlbnRf b3V0cHV0X2luc24pID09IFRZUEVfVlNURQ0KKyAgID8gZnB1dHMgKCJ0aC52 c2UiLCBhc21fb3V0X2ZpbGUpDQorICAgOiBmcHV0cyAoInRoLnZsZSIsIGFz bV9vdXRfZmlsZSk7DQorICAgICAgIGlmIChzdHJzdHIgKHAsICJlOCIpKQ0K KyByZXR1cm4gcCs0Ow0KKyAgICAgICBlbHNlDQorIHJldHVybiBwKzU7DQor ICAgICB9DQorIH0NCisNCisgICAgICBpZiAoZ2V0X2F0dHJfdHlwZSAoY3Vy cmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WTERTIHx8DQorICAgZ2V0X2F0 dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WU1RTKQ0K KyB7DQorICAgaWYgKHN0cnN0ciAocCwgInZsZTgiKSB8fCBzdHJzdHIgKHAs ICJ2c2U4IikgfHwNCisgICAgICAgc3Ryc3RyIChwLCAidmxlMTYiKSB8fCBz dHJzdHIgKHAsICJ2c2UxNiIpIHx8DQorICAgICAgIHN0cnN0ciAocCwgInZs ZTMyIikgfHwgc3Ryc3RyIChwLCAidnNlMzIiKSB8fA0KKyAgICAgICBzdHJz dHIgKHAsICJ2bGU2NCIpIHx8IHN0cnN0ciAocCwgInZzZTY0IikpDQorICAg ICB7DQorICAgICAgIGdldF9hdHRyX3R5cGUgKGN1cnJlbnRfb3V0cHV0X2lu c24pID09IFRZUEVfVlNUUw0KKyAgID8gZnB1dHMgKCJ0aC52c2UiLCBhc21f b3V0X2ZpbGUpDQorICAgOiBmcHV0cyAoInRoLnZsZSIsIGFzbV9vdXRfZmls ZSk7DQorICAgICAgIGlmIChzdHJzdHIgKHAsICJlOCIpKQ0KKyByZXR1cm4g cCs0Ow0KKyAgICAgICBlbHNlDQorIHJldHVybiBwKzU7DQorICAgICB9DQor ICAgZWxzZSBpZiAoc3Ryc3RyIChwLCAidmxzZTgiKSB8fCBzdHJzdHIgKHAs ICJ2c3NlOCIpIHx8DQorICAgIHN0cnN0ciAocCwgInZsc2UxNiIpIHx8IHN0 cnN0ciAocCwgInZzc2UxNiIpIHx8DQorICAgIHN0cnN0ciAocCwgInZsc2Uz MiIpIHx8IHN0cnN0ciAocCwgInZzc2UzMiIpIHx8DQorICAgIHN0cnN0ciAo cCwgInZsc2U2NCIpIHx8IHN0cnN0ciAocCwgInZzc2U2NCIpKQ0KKyAgICAg ew0KKyAgICAgICBnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNu KSA9PSBUWVBFX1ZTVFMNCisgICA/IGZwdXRzICgidGgudnNzZSIsIGFzbV9v dXRfZmlsZSkNCisgICA6IGZwdXRzICgidGgudmxzZSIsIGFzbV9vdXRfZmls ZSk7DQorICAgICAgIGlmIChzdHJzdHIgKHAsICJlOCIpKQ0KKyByZXR1cm4g cCs1Ow0KKyAgICAgICBlbHNlDQorIHJldHVybiBwKzY7DQorICAgICB9DQor IH0NCisNCisgICAgICBpZiAoZ2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRw dXRfaW5zbikgPT0gVFlQRV9WTERVWCB8fA0KKyAgIGdldF9hdHRyX3R5cGUg KGN1cnJlbnRfb3V0cHV0X2luc24pID09IFRZUEVfVkxET1gpDQorIHsNCisg ICBpZiAoc3Ryc3RyIChwLCAiZWkiKSkNCisgICAgIHsNCisgICAgICAgZnB1 dHMgKCJ0aC52bHhlIiwgYXNtX291dF9maWxlKTsNCisgICAgICAgaWYgKHN0 cnN0ciAocCwgImVpOCIpKQ0KKyByZXR1cm4gcCs3Ow0KKyAgICAgICBlbHNl DQorIHJldHVybiBwKzg7DQorICAgICB9DQorIH0NCisNCisgICAgICBpZiAo Z2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9W U1RVWCB8fA0KKyAgIGdldF9hdHRyX3R5cGUgKGN1cnJlbnRfb3V0cHV0X2lu c24pID09IFRZUEVfVlNUT1gpDQorIHsNCisgICBpZiAoc3Ryc3RyIChwLCAi ZWkiKSkNCisgICAgIHsNCisgICAgICAgZ2V0X2F0dHJfdHlwZSAoY3VycmVu dF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WU1RVWA0KKyA/IGZwdXRzICgidGgu dnN1eGUiLCBhc21fb3V0X2ZpbGUpDQorIDogZnB1dHMgKCJ0aC52c3hlIiwg YXNtX291dF9maWxlKTsNCisgICAgICAgaWYgKHN0cnN0ciAocCwgImVpOCIp KQ0KKyByZXR1cm4gcCs3Ow0KKyAgICAgICBlbHNlDQorIHJldHVybiBwKzg7 DQorICAgICB9DQorIH0NCisNCisgICAgICBpZiAoZ2V0X2F0dHJfdHlwZSAo Y3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WTFNFR0RFIHx8DQorICAg Z2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9W U1NFR1RFIHx8DQorICAgZ2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRf aW5zbikgPT0gVFlQRV9WTFNFR0RGRikNCisgew0KKyAgIGdldF9hdHRyX3R5 cGUgKGN1cnJlbnRfb3V0cHV0X2luc24pID09IFRZUEVfVlNTRUdURQ0KKyA/ IGZwdXRzICgidGgudnNzZWciLCBhc21fb3V0X2ZpbGUpDQorIDogZnB1dHMg KCJ0aC52bHNlZyIsIGFzbV9vdXRfZmlsZSk7DQorICAgYXNtX2ZwcmludGYg KGFzbV9vdXRfZmlsZSwgIiVjIiwgcFs1XSk7DQorICAgZnB1dHMgKCJlIiwg YXNtX291dF9maWxlKTsNCisgICBpZiAoc3Ryc3RyIChwLCAiZTgiKSkNCisg ICAgIHJldHVybiBwKzg7DQorICAgZWxzZQ0KKyAgICAgcmV0dXJuIHArOTsN CisgfQ0KKw0KKyAgICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50X291 dHB1dF9pbnNuKSA9PSBUWVBFX1ZMU0VHRFMgfHwNCisgICBnZXRfYXR0cl90 eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZTU0VHVFMpDQor IHsNCisgICBnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9 PSBUWVBFX1ZTU0VHVFMNCisgPyBmcHV0cyAoInRoLnZzc3NlZyIsIGFzbV9v dXRfZmlsZSkNCisgOiBmcHV0cyAoInRoLnZsc3NlZyIsIGFzbV9vdXRfZmls ZSk7DQorICAgYXNtX2ZwcmludGYgKGFzbV9vdXRfZmlsZSwgIiVjIiwgcFs2 XSk7DQorICAgZnB1dHMgKCJlIiwgYXNtX291dF9maWxlKTsNCisgICBpZiAo c3Ryc3RyIChwLCAiZTgiKSkNCisgICAgIHJldHVybiBwKzk7DQorICAgZWxz ZQ0KKyAgICAgcmV0dXJuIHArMTA7DQorIH0NCisNCisgICAgICBpZiAoZ2V0 X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WTFNF R0RVWCB8fA0KKyAgIGdldF9hdHRyX3R5cGUgKGN1cnJlbnRfb3V0cHV0X2lu c24pID09IFRZUEVfVkxTRUdET1gpDQorIHsNCisgICBmcHV0cyAoInRoLnZs eHNlZyIsIGFzbV9vdXRfZmlsZSk7DQorICAgYXNtX2ZwcmludGYgKGFzbV9v dXRfZmlsZSwgIiVjIiwgcFs3XSk7DQorICAgZnB1dHMgKCJlIiwgYXNtX291 dF9maWxlKTsNCisgICBpZiAoc3Ryc3RyIChwLCAiZWk4IikpDQorICAgICBy ZXR1cm4gcCsxMTsNCisgICBlbHNlDQorICAgICByZXR1cm4gcCsxMjsNCisg fQ0KKw0KKyAgICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1 dF9pbnNuKSA9PSBUWVBFX1ZTU0VHVFVYIHx8DQorICAgZ2V0X2F0dHJfdHlw ZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQRV9WU1NFR1RPWCkNCisg ew0KKyAgIGZwdXRzICgidGgudnN4c2VnIiwgYXNtX291dF9maWxlKTsNCisg ICBhc21fZnByaW50ZiAoYXNtX291dF9maWxlLCAiJWMiLCBwWzddKTsNCisg ICBmcHV0cyAoImUiLCBhc21fb3V0X2ZpbGUpOw0KKyAgIGlmIChzdHJzdHIg KHAsICJlaTgiKSkNCisgICAgIHJldHVybiBwKzExOw0KKyAgIGVsc2UNCisg ICAgIHJldHVybiBwKzEyOw0KKyB9DQorDQorICAgICAgaWYgKGdldF9hdHRy X3R5cGUgKGN1cnJlbnRfb3V0cHV0X2luc24pID09IFRZUEVfVk5TSElGVCkN Cisgew0KKyAgIGlmIChzdHJzdHIgKHAsICJ2bmN2dCIpKQ0KKyAgICAgew0K KyAgICAgICBmcHV0cyAoInRoLnZuY3Z0LngueC52IiwgYXNtX291dF9maWxl KTsNCisgICAgICAgcmV0dXJuIHArMTE7DQorICAgICB9DQorDQorICAgc3Ry c3RyIChwLCAidm5zcmwiKSA/IGZwdXRzICgidGgudm5zcmwudiIsIGFzbV9v dXRfZmlsZSkNCisgICAgICAgOiBmcHV0cyAoInRoLnZuc3JhLnYiLCBhc21f b3V0X2ZpbGUpOw0KKyAgIHJldHVybiBwKzc7DQorIH0NCisNCisgICAgICBp ZiAoZ2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikgPT0gVFlQ RV9WTkNMSVApDQorIHsNCisgICBpZiAoc3Ryc3RyIChwLCAidm5jbGlwdSIp KQ0KKyAgICAgew0KKyAgICAgICBmcHV0cyAoInRoLnZuY2xpcHUudiIsIGFz bV9vdXRfZmlsZSk7DQorICAgICAgIHJldHVybiBwKzk7DQorICAgICB9DQor ICAgZWxzZQ0KKyAgICAgew0KKyAgICAgICBmcHV0cyAoInRoLnZuY2xpcC52 IiwgYXNtX291dF9maWxlKTsNCisgICAgICAgcmV0dXJuIHArODsNCisgICAg IH0NCisgfQ0KKw0KKyAgICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50 X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZNUE9QKQ0KKyB7DQorICAgZnB1dHMg KCJ0aC52bXBvcGMiLCBhc21fb3V0X2ZpbGUpOw0KKyAgIHJldHVybiBwKzU7 DQorIH0NCisNCisgICAgICBpZiAoZ2V0X2F0dHJfdHlwZSAoY3VycmVudF9v dXRwdXRfaW5zbikgPT0gVFlQRV9WTUZGUykNCisgew0KKyAgIGZwdXRzICgi dGgudm1maXJzdCIsIGFzbV9vdXRfZmlsZSk7DQorICAgcmV0dXJuIHArNjsN CisgfQ0KKw0KKyAgICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50X291 dHB1dF9pbnNuKSA9PSBUWVBFX1ZGTkNWVEZUT0kgfHwNCisgICBnZXRfYXR0 cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZGTkNWVElU T0YpDQorIHsNCisgICBpZiAoc3Ryc3RyIChwLCAieHUiKSkNCisgICAgIHsN CisgICAgICAgZ2V0X2F0dHJfdHlwZSAoY3VycmVudF9vdXRwdXRfaW5zbikg PT0gVFlQRV9WRk5DVlRGVE9JDQorICAgID8gZnB1dHMgKCJ0aC52Zm5jdnQu eHUuZi52IiwgYXNtX291dF9maWxlKQ0KKyAgICA6IGZwdXRzICgidGgudmZu Y3Z0LmYueHUudiIsIGFzbV9vdXRfZmlsZSk7DQorICAgICAgIHJldHVybiBw KzEzOw0KKyB9DQorICAgZWxzZQ0KKyAgICAgew0KKyAgICAgICBnZXRfYXR0 cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZGTkNWVEZU T0kNCisgICAgPyBmcHV0cyAoInRoLnZmbmN2dC54LmYudiIsIGFzbV9vdXRf ZmlsZSkNCisgICAgOiBmcHV0cyAoInRoLnZmbmN2dC5mLngudiIsIGFzbV9v dXRfZmlsZSk7DQorICAgICAgIHJldHVybiBwKzEyOw0KKyAgICAgfQ0KKyB9 DQorDQorICAgICAgaWYgKGdldF9hdHRyX3R5cGUgKGN1cnJlbnRfb3V0cHV0 X2luc24pID09IFRZUEVfVkZOQ1ZURlRPRikNCisgew0KKyAgIGZwdXRzICgi dGgudmZuY3Z0LmYuZi52IiwgYXNtX291dF9maWxlKTsNCisgICByZXR1cm4g cCsxMjsNCisgfQ0KKw0KKyAgICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJy ZW50X291dHB1dF9pbnNuKSA9PSBUWVBFX1ZGUkVEVQ0KKyAgICYmIHN0cnN0 ciAocCwgInN1bSIpKQ0KKyB7DQorICAgZnB1dHMgKCJ0aC52ZnJlZHN1bSIs IGFzbV9vdXRfZmlsZSk7DQorICAgcmV0dXJuIHArOTsNCisgfQ0KKw0KKyAg ICAgIGlmIChnZXRfYXR0cl90eXBlIChjdXJyZW50X291dHB1dF9pbnNuKSA9 PSBUWVBFX1ZGV1JFRFUNCisgICAmJiBzdHJzdHIgKHAsICJzdW0iKSkNCisg ew0KKyAgIGZwdXRzICgidGgudmZ3cmVkc3VtIiwgYXNtX291dF9maWxlKTsN CisgICByZXR1cm4gcCsxMDsNCisgfQ0KKw0KKyAgICAgIGlmIChwWzBdID09 ICd2JykNCisgZnB1dHMgKCJ0aC4iLCBhc21fb3V0X2ZpbGUpOw0KKyAgICB9 DQogICByZXR1cm4gcDsNCn0NCi0tIA0KMi4xNy4xDQogDQogDQo= ------=_001_NextPart135023354615_=------