From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13414 invoked by alias); 15 Nov 2007 23:55:54 -0000 Received: (qmail 13390 invoked by uid 22791); 15 Nov 2007 23:55:51 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 15 Nov 2007 23:55:47 +0000 Received: from zps75.corp.google.com (zps75.corp.google.com [172.25.146.75]) by smtp-out.google.com with ESMTP id lAFNth5c014321 for ; Thu, 15 Nov 2007 15:55:43 -0800 Received: from ug-out-1314.google.com (ugeo2.prod.google.com [10.66.166.2]) by zps75.corp.google.com with ESMTP id lAFNtfXc008636 for ; Thu, 15 Nov 2007 15:55:42 -0800 Received: by ug-out-1314.google.com with SMTP id o2so530647uge for ; Thu, 15 Nov 2007 15:55:41 -0800 (PST) Received: by 10.67.115.19 with SMTP id s19mr224833ugm.1195170941520; Thu, 15 Nov 2007 15:55:41 -0800 (PST) Received: by 10.67.21.14 with HTTP; Thu, 15 Nov 2007 15:55:41 -0800 (PST) Message-ID: Date: Thu, 15 Nov 2007 23:55:00 -0000 From: "Douglas Evans" To: gdb-patches@sourceware.org Subject: RFC: example fix to pr 2360 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4732_6357092.1195170941516" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-11/txt/msg00314.txt.bz2 ------=_Part_4732_6357092.1195170941516 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 451 To make things more concrete to what I was refering to in http://sourceware.org/ml/gdb/2007-11/msg00138.html I've filed pr 2360, and attached is an example fix. I'm not sufficiently happy with it that I'd submit it RFA, but that's mostly because of perceived objections to the use of xfullpath. Maybe the thing to do is write a canonicalizer like what is done in cli-cmds.c:cd_command (and presumably move it to a more generic place). Suggestions? ------=_Part_4732_6357092.1195170941516 Content-Type: text/x-patch; name=gdb-071115-hashline-1.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f91xspde0 Content-Disposition: attachment; filename=gdb-071115-hashline-1.patch Content-length: 14462 MjAwNy0xMS0xNSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCUZp eCBQUiAyMzYwLgoJKiBidWlsZHN5bS5oIChzdHJ1Y3Qgc3ViZmlsZSk6IE5l dyBtZW1iZXIgYGNvbXBhcmFibGVfbmFtZScuCgkqIGJ1aWxkc3ltLmMgKHN0 YXJ0X3N1YmZpbGUpOiBSZWNvcmQgY29tcGFyYWJsZV9uYW1lLCB1c2UgaXQg d2hlbgoJY29tcGFyaW5nIG5ldyBzdWJmaWxlcy4KCShlbmRfc3ltdGFiKTog RnJlZSBjb21wYXJhYmxlX25hbWUuCgkoY2Fub25pY2FsaXplX3N1YmZpbGVf cGF0aCk6IE5ldyBmbi4KCgkqIGdkYi5iYXNlL2hhc2hsaW5lMS5leHA6IE5l dyBmaWxlLgoJKiBnZGIuYmFzZS9oYXNobGluZTIuZXhwOiBOZXcgZmlsZS4K CSogZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cDogTmV3IGZpbGUuCgpJbmRleDog YnVpbGRzeW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv Y3ZzL3NyYy9zcmMvZ2RiL2J1aWxkc3ltLmgsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMTgKZGlmZiAtdSAtcCAtcjEuMTggYnVpbGRzeW0uaAotLS0gYnVp bGRzeW0uaAkxNSBOb3YgMjAwNyAyMjo1NDoyMiAtMDAwMAkxLjE4CisrKyBi dWlsZHN5bS5oCTE1IE5vdiAyMDA3IDIzOjM3OjExIC0wMDAwCkBAIC02Myw2 ICs2Myw3IEBAIHN0cnVjdCBzdWJmaWxlCiAgICAgc3RydWN0IHN1YmZpbGUg Km5leHQ7CiAgICAgY2hhciAqbmFtZTsKICAgICBjaGFyICpkaXJuYW1lOwor ICAgIGNoYXIgKmNvbXBhcmFibGVfbmFtZTsKICAgICBzdHJ1Y3QgbGluZXRh YmxlICpsaW5lX3ZlY3RvcjsKICAgICBpbnQgbGluZV92ZWN0b3JfbGVuZ3Ro OwogICAgIGVudW0gbGFuZ3VhZ2UgbGFuZ3VhZ2U7CkluZGV4OiBidWlsZHN5 bS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9nZGIvYnVpbGRzeW0uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41 NwpkaWZmIC11IC1wIC1yMS41NyBidWlsZHN5bS5jCi0tLSBidWlsZHN5bS5j CTE1IE5vdiAyMDA3IDIyOjU0OjIyIC0wMDAwCTEuNTcKKysrIGJ1aWxkc3lt LmMJMTUgTm92IDIwMDcgMjM6Mzc6MTEgLTAwMDAKQEAgLTY4LDYgKzY4LDcg QEAgc3RhdGljIHN0cnVjdCBwZW5kaW5nICpmcmVlX3BlbmRpbmdzOwogCiBz dGF0aWMgaW50IGhhdmVfbGluZV9udW1iZXJzOwogDAorc3RhdGljIGNoYXIg KmNhbm9uaWNhbGl6ZV9zdWJmaWxlX3BhdGggKGNvbnN0IGNoYXIgKnBhdGgp Owogc3RhdGljIGludCBjb21wYXJlX2xpbmVfbnVtYmVycyAoY29uc3Qgdm9p ZCAqbG4xcCwgY29uc3Qgdm9pZCAqbG4ycCk7CiAMCiAKQEAgLTUxNywzMyAr NTE4LDMxIEBAIHZvaWQKIHN0YXJ0X3N1YmZpbGUgKGNoYXIgKm5hbWUsIGNo YXIgKmRpcm5hbWUpCiB7CiAgIHN0cnVjdCBzdWJmaWxlICpzdWJmaWxlOwor ICBjaGFyICpjb21wYXJhYmxlX25hbWU7CisKKyAgLyogQ3JlYXRlIGEgdmVy c2lvbiBvZiBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWF0Y2ggZGlmZmVy ZW50IHNwZWxsaW5ncy4KKyAgICAgUFIgMjM2MCAqLworICB7CisgICAgY2hh ciAqcCA9IG5hbWU7CisgICAgaWYgKCEgSVNfQUJTT0xVVEVfUEFUSCAobmFt ZSkKKwkmJiBkaXJuYW1lICE9IE5VTEwpCisgICAgICBwID0gY29uY2F0IChk aXJuYW1lLCBTTEFTSF9TVFJJTkcsIG5hbWUsIE5VTEwpOworICAgIGNvbXBh cmFibGVfbmFtZSA9IGNhbm9uaWNhbGl6ZV9zdWJmaWxlX3BhdGggKHApOwor ICAgIGlmIChwICE9IG5hbWUpCisgICAgICB4ZnJlZSAocCk7CisgIH0KIAog ICAvKiBTZWUgaWYgdGhpcyBzdWJmaWxlIGlzIGFscmVhZHkga25vd24gYXMg YSBzdWJmaWxlIG9mIHRoZSBjdXJyZW50CiAgICAgIG1haW4gc291cmNlIGZp bGUuICAqLwogCiAgIGZvciAoc3ViZmlsZSA9IHN1YmZpbGVzOyBzdWJmaWxl OyBzdWJmaWxlID0gc3ViZmlsZS0+bmV4dCkKICAgICB7Ci0gICAgICBjaGFy ICpzdWJmaWxlX25hbWU7Ci0KLSAgICAgIC8qIElmIE5BTUUgaXMgYW4gYWJz b2x1dGUgcGF0aCwgYW5kIHRoaXMgc3ViZmlsZSBpcyBub3QsIHRoZW4KLQkg YXR0ZW1wdCB0byBjcmVhdGUgYW4gYWJzb2x1dGUgcGF0aCB0byBjb21wYXJl LiAgKi8KLSAgICAgIGlmIChJU19BQlNPTFVURV9QQVRIIChuYW1lKQotCSAg JiYgIUlTX0FCU09MVVRFX1BBVEggKHN1YmZpbGUtPm5hbWUpCi0JICAmJiBz dWJmaWxlLT5kaXJuYW1lICE9IE5VTEwpCi0Jc3ViZmlsZV9uYW1lID0gY29u Y2F0IChzdWJmaWxlLT5kaXJuYW1lLCBTTEFTSF9TVFJJTkcsCi0JCQkgICAg ICAgc3ViZmlsZS0+bmFtZSwgTlVMTCk7Ci0gICAgICBlbHNlCi0Jc3ViZmls ZV9uYW1lID0gc3ViZmlsZS0+bmFtZTsKLQotICAgICAgaWYgKEZJTEVOQU1F X0NNUCAoc3ViZmlsZV9uYW1lLCBuYW1lKSA9PSAwKQorICAgICAgaWYgKEZJ TEVOQU1FX0NNUCAoc3ViZmlsZS0+Y29tcGFyYWJsZV9uYW1lLCBjb21wYXJh YmxlX25hbWUpID09IDApCiAJewogCSAgY3VycmVudF9zdWJmaWxlID0gc3Vi ZmlsZTsKLQkgIGlmIChzdWJmaWxlX25hbWUgIT0gc3ViZmlsZS0+bmFtZSkK LQkgICAgeGZyZWUgKHN1YmZpbGVfbmFtZSk7CisJICB4ZnJlZSAoY29tcGFy YWJsZV9uYW1lKTsKIAkgIHJldHVybjsKIAl9Ci0gICAgICBpZiAoc3ViZmls ZV9uYW1lICE9IHN1YmZpbGUtPm5hbWUpCi0JeGZyZWUgKHN1YmZpbGVfbmFt ZSk7CiAgICAgfQogCiAgIC8qIFRoaXMgc3ViZmlsZSBpcyBub3Qga25vd24u ICBBZGQgYW4gZW50cnkgZm9yIGl0LiBNYWtlIGFuIGVudHJ5CkBAIC01NjAs NiArNTU5LDcgQEAgc3RhcnRfc3ViZmlsZSAoY2hhciAqbmFtZSwgY2hhciAq ZGlybmFtZQogICBzdWJmaWxlLT5uYW1lID0gKG5hbWUgPT0gTlVMTCkgPyBO VUxMIDogc2F2ZXN0cmluZyAobmFtZSwgc3RybGVuIChuYW1lKSk7CiAgIHN1 YmZpbGUtPmRpcm5hbWUgPQogICAgIChkaXJuYW1lID09IE5VTEwpID8gTlVM TCA6IHNhdmVzdHJpbmcgKGRpcm5hbWUsIHN0cmxlbiAoZGlybmFtZSkpOwor ICBzdWJmaWxlLT5jb21wYXJhYmxlX25hbWUgPSBjb21wYXJhYmxlX25hbWU7 CiAKICAgLyogSW5pdGlhbGl6ZSBsaW5lLW51bWJlciByZWNvcmRpbmcgZm9y IHRoaXMgc3ViZmlsZS4gICovCiAgIHN1YmZpbGUtPmxpbmVfdmVjdG9yID0g TlVMTDsKQEAgLTYxNSw2ICs2MTUsMTYgQEAgc3RhcnRfc3ViZmlsZSAoY2hh ciAqbmFtZSwgY2hhciAqZGlybmFtZQogICAgIH0KIH0KIAorLyogU3Vicm91 dGluZSBvZiBzdGFydF9zdWJmaWxlIHRvIGNhbm9uaWNhbGl6ZSBhIHBhdGgg Zm9yIGNvbXBhcmlzb24gcHVycG9zZXMuCisgICBIZXJlIHdlIGNhcmUgdGhh dCBtdWx0aXBsZSBzcGVsbGluZ3Mgb2YgdGhlIHNhbWUgcGF0aCBtYXAgdG8g dGhlIHNhbWUKKyAgIGZpbGUuICBTcGFjZSBmb3IgdGhlIHJlc3VsdCBpcyBh bGxvY2F0ZWQgd2l0aCBtYWxsb2MuICAqLworCitzdGF0aWMgY2hhciAqCitj YW5vbmljYWxpemVfc3ViZmlsZV9wYXRoIChjb25zdCBjaGFyICpwYXRoKQor eworICByZXR1cm4geGZ1bGxwYXRoIChwYXRoKTsKK30KKwogLyogRm9yIHN0 YWJzIHJlYWRlcnMsIHRoZSBmaXJzdCBOX1NPIHN5bWJvbCBpcyBhc3N1bWVk IHRvIGJlIHRoZQogICAgc291cmNlIGZpbGUgbmFtZSwgYW5kIHRoZSBzdWJm aWxlIHN0cnVjdCBpcyBpbml0aWFsaXplZCB1c2luZyB0aGF0CiAgICBhc3N1 bXB0aW9uLiAgSWYgYW5vdGhlciBOX1NPIHN5bWJvbCBpcyBsYXRlciBzZWVu LCBpbW1lZGlhdGVseQpAQCAtMTAzOSw2ICsxMDQ5LDEwIEBAIGVuZF9zeW10 YWIgKENPUkVfQUREUiBlbmRfYWRkciwgc3RydWN0IG8KIAl7CiAJICB4ZnJl ZSAoKHZvaWQgKikgc3ViZmlsZS0+ZGlybmFtZSk7CiAJfQorICAgICAgaWYg KHN1YmZpbGUtPmNvbXBhcmFibGVfbmFtZSAhPSBOVUxMKQorCXsKKwkgIHhm cmVlICgodm9pZCAqKSBzdWJmaWxlLT5jb21wYXJhYmxlX25hbWUpOworCX0K ICAgICAgIGlmIChzdWJmaWxlLT5saW5lX3ZlY3RvciAhPSBOVUxMKQogCXsK IAkgIHhmcmVlICgodm9pZCAqKSBzdWJmaWxlLT5saW5lX3ZlY3Rvcik7Cklu ZGV4OiB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUxLmV4cAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiB0ZXN0c3VpdGUvZ2RiLmJhc2Uv aGFzaGxpbmUxLmV4cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNo bGluZTEuZXhwCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAt MDAwMAorKysgdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMS5leHAJMTUg Tm92IDIwMDcgMjM6Mzc6MTEgLTAwMDAKQEAgLTAsMCArMSw1OCBAQAorIyBD b3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgZ2RiIHRlc3RzdWl0ZS4KKworIyBUZXN0IGxvYWRpbmcgb2YgbGluZSBu dW1iZXIgaW5mb3JtYXRpb24gd2l0aCBhYnNvbHV0ZSBwYXRoIGluICNsaW5l LCBidWcgMjM2MC4KKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisgICAgc3Ry YWNlICR0cmFjZWxldmVsCit9CisKK3NldCBwcm1zX2lkIDIzNjAKK3NldCBi dWdfaWQgMAorCisjIHNyY2ZpbGUgaXMgaW4gb2JqZGlyIGJlY2F1c2Ugd2Ug bmVlZCB0byBtYWNoaW5lIGdlbmVyYXRlIGl0IGluIG9yZGVyCisjIHRvIGdl dCBjb3JyZWN0IHRoZSBjb3JyZWN0IHBhdGggaW4gdGhlICNsaW5lIGRpcmVj dGl2ZS4KKworc2V0IHRlc3RmaWxlICJoYXNobGluZTEiCitzZXQgc3JjZmls ZSAiJHt0ZXN0ZmlsZX0uYyIKK3NldCBiaW5maWxlICIke29iamRpcn0vJHtz dWJkaXJ9LyR7dGVzdGZpbGV9IgorCitzZXQgZmQgW29wZW4gJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IHddCitwdXRzICRmZCAiI2xpbmUgMiBc Iltwd2RdLyR7c3ViZGlyfS8ke3NyY2ZpbGV9XCIiCitwdXRzICRmZCAiaW50 IG1haW4gKCkgeyByZXR1cm4gMDsgfSAvKiBzZXQgYnJlYWtwb2ludCBoZXJl ICovIgorY2xvc2UgJGZkCisKKyMgVGhlIGNob2ljZSBvZiBwYXRoIG5hbWUg Zm9yIHRoZSBzb3VyY2UgZmlsZSBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8K KyMgdHJpZ2dlciB0aGUgYnVnLiAgVXNpbmcgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke3NyY2ZpbGV9IGhlcmUgd29uJ3QgdHJpZ2dlcgorIyB0aGUgYnVnLgor aWYgeyBbZ2RiX2NvbXBpbGUgIi4vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIk e2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworICAg IHVudGVzdGVkIGhhc2hsaW5lMS5leHAKKyAgICByZXR1cm4gLTEKK30KKwor Z2RiX2V4aXQKK2dkYl9zdGFydAorZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNy Y2Rpci8kc3ViZGlyCitnZGJfbG9hZCAke2JpbmZpbGV9CisKK3NldCBicF9s b2NhdGlvbiBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQg aGVyZSIgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9XQorCisjIFRy eSB0byBzZXQgYSBicmVha3BvaW50IG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBs b2NhdGlvbi4KKworZ2RiX3Rlc3QgImJyZWFrICRzcmNmaWxlOiRicF9sb2Nh dGlvbiIgXAorICAgICJCcmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmls ZSwgbGluZS4qIiBcCisgICAgInNldCBicmVha3BvaW50IgpJbmRleDogdGVz dHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMi5leHAKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5l Mi5leHAKZGlmZiAtTiB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4 cAotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysr IHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTIuZXhwCTE1IE5vdiAyMDA3 IDIzOjM3OjExIC0wMDAwCkBAIC0wLDAgKzEsNTYgQEAKKyMgQ29weXJpZ2h0 IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0 ZXN0c3VpdGUuCisKKyMgVGVzdCBsb2FkaW5nIG9mIGxpbmUgbnVtYmVyIGlu Zm9ybWF0aW9uIHdpdGggYW4gYWJzb2x1dGUgcGF0aCB3aXRoIGV4dHJhCisj IC8ncyBpbiAjbGluZSwgYnVnIDIzNjAuCisKK2lmICR0cmFjZWxldmVsIHRo ZW4geworICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorfQorCitzZXQgcHJtc19p ZCAyMzYwCitzZXQgYnVnX2lkIDAKKworIyBzcmNmaWxlIGlzIGluIG9iamRp ciBiZWNhdXNlIHdlIG5lZWQgdG8gbWFjaGluZSBnZW5lcmF0ZSBpdCBpbiBv cmRlcgorIyB0byBnZXQgY29ycmVjdCB0aGUgY29ycmVjdCBwYXRoIGluIHRo ZSAjbGluZSBkaXJlY3RpdmUuCisKK3NldCB0ZXN0ZmlsZSAiaGFzaGxpbmUy Igorc2V0IHNyY2ZpbGUgIiR7dGVzdGZpbGV9LmMiCitzZXQgYmluZmlsZSAi JHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfSIKKworc2V0IGZkIFtv cGVuICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSB3XQorcHV0cyAk ZmQgIiNsaW5lIDIgXCIvLy9bcHdkXS8ke3N1YmRpcn0vJHtzcmNmaWxlfVwi IgorcHV0cyAkZmQgImludCBtYWluICgpIHsgcmV0dXJuIDA7IH0gLyogc2V0 IGJyZWFrcG9pbnQgaGVyZSAqLyIKK2Nsb3NlICRmZAorCitpZiB7IFtnZGJf Y29tcGlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHti aW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1 bnRlc3RlZCBoYXNobGluZTEuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dk Yl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNk aXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQorCitzZXQgYnBfbG9j YXRpb24gW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVha3BvaW50IGhl cmUiICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfV0KKworIyBUcnkg dG8gc2V0IGEgYnJlYWtwb2ludCBvbiB0aGUgc3BlY2lmaWVkIGZpbGUgbG9j YXRpb24uCisKK2dkYl90ZXN0ICJicmVhayAkc3JjZmlsZTokYnBfbG9jYXRp b24iIFwKKyAgICAiQnJlYWtwb2ludC4qYXQuKiBmaWxlIC4qJHNyY2ZpbGUs IGxpbmUuKiIgXAorICAgICJzZXQgYnJlYWtwb2ludCIKSW5kZXg6IHRlc3Rz dWl0ZS9nZGIuYmFzZS9oYXNobGluZTMuZXhwCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTMu ZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMy5leHAK LS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0 ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cAkxNSBOb3YgMjAwNyAy MzozNzoxMSAtMDAwMApAQCAtMCwwICsxLDU1IEBACisjIENvcHlyaWdodCAy MDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisj CisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVz dHN1aXRlLgorCisjIFRlc3QgbG9hZGluZyBvZiBsaW5lIG51bWJlciBpbmZv cm1hdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGggaW4gI2xpbmUsIGJ1ZyAyMzYw LgorCitpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKyAgICBzdHJhY2UgJHRyYWNl bGV2ZWwKK30KKworc2V0IHBybXNfaWQgMjM2MAorc2V0IGJ1Z19pZCAwCisK KyMgc3JjZmlsZSBpcyBpbiBvYmpkaXIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1h Y2hpbmUgZ2VuZXJhdGUgaXQgaW4gb3JkZXIKKyMgdG8gZ2V0IGNvcnJlY3Qg dGhlIGNvcnJlY3QgcGF0aCBpbiB0aGUgI2xpbmUgZGlyZWN0aXZlLgorCitz ZXQgdGVzdGZpbGUgImhhc2hsaW5lMyIKK3NldCBzcmNmaWxlICIke3Rlc3Rm aWxlfS5jIgorc2V0IGJpbmZpbGUgIiR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0 ZXN0ZmlsZX0iCisKK3NldCBmZCBbb3BlbiAke29iamRpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0gd10KK3B1dHMgJGZkICIjbGluZSAyIFwiLi8ke3N1YmRp cn0vJHtzcmNmaWxlfVwiIgorcHV0cyAkZmQgImludCBtYWluICgpIHsgcmV0 dXJuIDA7IH0gLyogc2V0IGJyZWFrcG9pbnQgaGVyZSAqLyIKK2Nsb3NlICRm ZAorCitpZiB7IFtnZGJfY29tcGlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8k e3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAh PSAiIiB9IHsKKyAgICB1bnRlc3RlZCBoYXNobGluZTEuZXhwCisgICAgcmV0 dXJuIC0xCit9CisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRp YWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxl fQorCitzZXQgYnBfbG9jYXRpb24gW2dkYl9nZXRfbGluZV9udW1iZXIgInNl dCBicmVha3BvaW50IGhlcmUiICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNm aWxlfV0KKworIyBUcnkgdG8gc2V0IGEgYnJlYWtwb2ludCBvbiB0aGUgc3Bl Y2lmaWVkIGZpbGUgbG9jYXRpb24uCisKK2dkYl90ZXN0ICJicmVhayAkc3Jj ZmlsZTokYnBfbG9jYXRpb24iIFwKKyAgICAiQnJlYWtwb2ludC4qYXQuKiBm aWxlIC4qJHNyY2ZpbGUsIGxpbmUuKiIgXAorICAgICJzZXQgYnJlYWtwb2lu dCIK ------=_Part_4732_6357092.1195170941516--