From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11671 invoked by alias); 8 Apr 2008 22:24:36 -0000 Received: (qmail 11656 invoked by uid 22791); 8 Apr 2008 22:24:34 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 08 Apr 2008 22:23:58 +0000 Received: from zps36.corp.google.com (zps36.corp.google.com [172.25.146.36]) by smtp-out.google.com with ESMTP id m38MN65k018539 for ; Tue, 8 Apr 2008 23:23:06 +0100 Received: from el-out-1112.google.com (elfn30.prod.google.com [10.126.190.30]) by zps36.corp.google.com with ESMTP id m38MMgCL024568 for ; Tue, 8 Apr 2008 15:23:05 -0700 Received: by el-out-1112.google.com with SMTP id n30so13838879elf.10 for ; Tue, 08 Apr 2008 15:23:05 -0700 (PDT) Received: by 10.114.194.1 with SMTP id r1mr8265615waf.40.1207693384820; Tue, 08 Apr 2008 15:23:04 -0700 (PDT) Received: by 10.115.107.18 with HTTP; Tue, 8 Apr 2008 15:23:04 -0700 (PDT) Message-ID: Date: Wed, 09 Apr 2008 13:33:00 -0000 From: "Doug Evans" To: "GDB Patches" Subject: Re: [RFA] patch for DW_AT_comp_dir/DW_AT_name vs .debug_line inconsistencies Cc: ARistovski@qnx.com In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_25498_676119.1207693384811" References: 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: 2008-04/txt/msg00160.txt.bz2 ------=_Part_25498_676119.1207693384811 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 592 On Mon, Apr 7, 2008 at 10:41 PM, Doug Evans wrote: > I have an occasion to revisit this: > http://sourceware.org/ml/gdb-patches/2007-11/msg00314.html > > Or in a different form: > http://sourceware.org/ml/gdb-patches/2008-01/msg00103.html > > When we last left our story, watching for a single path mismatch of > the main source file only seemed ok. That's what this patch does. > It's just a minor revision of > http://sourceware.org/ml/gdb-patches/2008-01/msg00103.html While reading end_symtab I was inspired to try again for a debug-format independent solution. ------=_Part_25498_676119.1207693384811 Content-Type: text/plain; name=gdb-080408-buildsym-1.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fet1egmf0 Content-Disposition: attachment; filename=gdb-080408-buildsym-1.patch.txt Content-length: 14006 MjAwOC0wNC0wOCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog YnVpbGRzeW0uYyAod2F0Y2hfbWFpbl9zb3VyY2VfZmlsZV9sb3NzYWdlKTog TmV3IGZuLgoJKGVuZF9zeW10YWIpOiBDYWxsIGl0LgoKCSogZ2RiLmJhc2Uv aGFzaGxpbmUxLmV4cDogTmV3IHRlc3RjYXNlLgoJKiBnZGIuYmFzZS9oYXNo bGluZTIuZXhwOiBOZXcgdGVzdGNhc2UuCgkqIGdkYi5iYXNlL2hhc2hsaW5l Mi5leHA6IE5ldyB0ZXN0Y2FzZS4KCkluZGV4OiBidWlsZHN5bS5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv YnVpbGRzeW0uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41OQpkaWZmIC11 IC1wIC11IC1wIC1yMS41OSBidWlsZHN5bS5jCi0tLSBidWlsZHN5bS5jCTEg SmFuIDIwMDggMjI6NTM6MDkgLTAwMDAJMS41OQorKysgYnVpbGRzeW0uYwk4 IEFwciAyMDA4IDIyOjE2OjA2IC0wMDAwCkBAIC04ODksNiArODg5LDgxIEBA IHN0YXJ0X3N5bXRhYiAoY2hhciAqbmFtZSwgY2hhciAqZGlybmFtZSwKICAg c3RhcnRfc3ViZmlsZSAobmFtZSwgZGlybmFtZSk7CiB9CiAKKy8qIFN1YnJv dXRpbmUgb2YgZW5kX3N5bXRhYiB0byBzaW1wbGlmeSBpdC4KKyAgIExvb2sg Zm9yIGEgc3ViZmlsZSB0aGF0IG1hdGNoZXMgdGhlIG1haW4gc291cmNlIGZp bGUncyBiYXNlbmFtZS4KKyAgIElmIHRoZXJlIGlzIG9ubHkgb25lLCBhbmQg aWYgdGhlIG1haW4gc291cmNlIGZpbGUgZG9lc24ndCBoYXZlIGFueQorICAg c3ltYm9sIG9yIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uLCB0aGVuIGNvcHkg dGhpcyBmaWxlJ3Mgc3ltdGFiIGFuZAorICAgbGluZV92ZWN0b3IgdG8gdGhl IG1haW4gc291cmNlIGZpbGUncyBzdWJmaWxlIGFuZCBkaXNjYXJkIHRoZSBv dGhlciBzdWJmaWxlLgorICAgVGhpcyBjYW4gaGFwcGVuIGJlY2F1c2Ugb2Yg YSBjb21waWxlciBidWcgb3IgZnJvbSB0aGUgdXNlciBwbGF5aW5nIGdhbWVz CisgICB3aXRoICNsaW5lIG9yIGZyb20gdGhpbmdzIGxpa2UgYSBkaXN0cmli dXRlZCBidWlsZCBzeXN0ZW0gdGhhdCBtYW5pcHVsYXRlcworICAgdGhlIGRl YnVnIGluZm8uICAqLworCitzdGF0aWMgdm9pZAord2F0Y2hfbWFpbl9zb3Vy Y2VfZmlsZV9sb3NzYWdlICgpCit7CisgIHN0cnVjdCBzdWJmaWxlICptYWlu c3ViLCAqc3ViZmlsZTsKKworICAvKiBGaW5kIHRoZSBtYWluIHNvdXJjZSBm aWxlLgorICAgICBUaGlzIGxvb3AgY291bGQgYmUgZWxpbWluYXRlZCBpZiBz dGFydF9zeW10YWIgc2F2ZWQgaXQgZm9yIHVzLiAgKi8KKyAgbWFpbnN1YiA9 IE5VTEw7CisgIGZvciAoc3ViZmlsZSA9IHN1YmZpbGVzOyBzdWJmaWxlOyBz dWJmaWxlID0gc3ViZmlsZS0+bmV4dCkKKyAgICB7CisgICAgICAvKiBUaGUg bWFpbiBzdWJmaWxlIGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIGxhc3Qgb25l LiAgKi8KKyAgICAgIGlmIChzdWJmaWxlLT5uZXh0ID09IE5VTEwpCisJbWFp bnN1YiA9IHN1YmZpbGU7CisgICAgfQorCisgIC8qIElmIHRoZSBtYWluIHNv dXJjZSBmaWxlIGRvZXNuJ3QgaGF2ZSBhbnkgbGluZSBudW1iZXIgb3Igc3lt Ym9sIGluZm8sCisgICAgIGxvb2sgZm9yIGFuIGFsaWFzIGluIGFub3RoZXIg c3ViZmlsZS4KKyAgICAgV2UgaGF2ZSB0byB3YXRjaCBmb3IgbWFpbnN1YiA9 PSBOVUxMIGhlcmUuICBJdCdzIGEgcXVpcmsgb2YgZW5kX3N5bXRhYiwKKyAg ICAgaXQgY2FuIHJldHVybiBOVUxMIHNvIHRoZXJlIG1heSBub3QgYmUgYSBt YWluIHN1YmZpbGUuICAqLworCisgIGlmIChtYWluc3ViCisgICAgICAmJiBt YWluc3ViLT5saW5lX3ZlY3RvciA9PSBOVUxMCisgICAgICAmJiBtYWluc3Vi LT5zeW10YWIgPT0gTlVMTCkKKyAgICB7CisgICAgICBjb25zdCBjaGFyICpt YWluYmFzZSA9IGxiYXNlbmFtZSAobWFpbnN1Yi0+bmFtZSk7CisgICAgICBp bnQgbnJfbWF0Y2hlcyA9IDA7CisgICAgICBzdHJ1Y3Qgc3ViZmlsZSAqcHJl dnN1YjsKKyAgICAgIHN0cnVjdCBzdWJmaWxlICptYWluc3ViX2FsaWFzID0g TlVMTDsKKyAgICAgIHN0cnVjdCBzdWJmaWxlICpwcmV2X21haW5zdWJfYWxp YXMgPSBOVUxMOworCisgICAgICBwcmV2c3ViID0gTlVMTDsKKyAgICAgIGZv ciAoc3ViZmlsZSA9IHN1YmZpbGVzOworCSAgIC8qIFN0b3AgYmVmb3JlIHdl IGdldCB0byB0aGUgbGFzdCBvbmUuICAqLworCSAgIHN1YmZpbGUtPm5leHQ7 CisJICAgc3ViZmlsZSA9IHN1YmZpbGUtPm5leHQpCisJeworCSAgaWYgKHN0 cmNtcCAobGJhc2VuYW1lIChzdWJmaWxlLT5uYW1lKSwgbWFpbmJhc2UpID09 IDApCisJICAgIHsKKwkgICAgICArK25yX21hdGNoZXM7CisJICAgICAgbWFp bnN1Yl9hbGlhcyA9IHN1YmZpbGU7CisJICAgICAgcHJldl9tYWluc3ViX2Fs aWFzID0gcHJldnN1YjsKKwkgICAgfQorCSAgcHJldnN1YiA9IHN1YmZpbGU7 CisJfQorCisgICAgICBpZiAobnJfbWF0Y2hlcyA9PSAxKQorCXsKKwkgIGdk Yl9hc3NlcnQgKG1haW5zdWJfYWxpYXMgIT0gTlVMTCAmJiBtYWluc3ViX2Fs aWFzICE9IG1haW5zdWIpOworCisJICAvKiBGb3VuZCBhIG1hdGNoIGZvciB0 aGUgbWFpbiBzb3VyY2UgZmlsZS4KKwkgICAgIENvcHkgaXRzIGxpbmVfdmVj dG9yIGFuZCBzeW10YWIgdG8gdGhlIG1haW4gc3ViZmlsZQorCSAgICAgYW5k IHRoZW4gZGlzY2FyZCBpdC4gICovCisKKwkgIG1haW5zdWItPmxpbmVfdmVj dG9yID0gbWFpbnN1Yl9hbGlhcy0+bGluZV92ZWN0b3I7CisJICBtYWluc3Vi LT5saW5lX3ZlY3Rvcl9sZW5ndGggPSBtYWluc3ViX2FsaWFzLT5saW5lX3Zl Y3Rvcl9sZW5ndGg7CisJICBtYWluc3ViLT5zeW10YWIgPSBtYWluc3ViX2Fs aWFzLT5zeW10YWI7CisKKwkgIGlmIChwcmV2X21haW5zdWJfYWxpYXMgPT0g TlVMTCkKKwkgICAgc3ViZmlsZXMgPSBtYWluc3ViX2FsaWFzLT5uZXh0Owor CSAgZWxzZQorCSAgICBwcmV2X21haW5zdWJfYWxpYXMtPm5leHQgPSBtYWlu c3ViX2FsaWFzLT5uZXh0OworCSAgeGZyZWUgKG1haW5zdWJfYWxpYXMpOwor CX0KKyAgICB9Cit9CisKIC8qIEZpbmlzaCB0aGUgc3ltYm9sIGRlZmluaXRp b25zIGZvciBvbmUgbWFpbiBzb3VyY2UgZmlsZSwgY2xvc2Ugb2ZmCiAgICBh bGwgdGhlIGxleGljYWwgY29udGV4dHMgZm9yIHRoYXQgZmlsZSAoY3JlYXRp bmcgc3RydWN0IGJsb2NrJ3MgZm9yCiAgICB0aGVtKSwgdGhlbiBtYWtlIHRo ZSBzdHJ1Y3Qgc3ltdGFiIGZvciB0aGF0IGZpbGUgYW5kIHB1dCBpdCBpbiB0 aGUKQEAgLTEwMTAsNiArMTA4NSwxMSBAQCBlbmRfc3ltdGFiIChDT1JFX0FE RFIgZW5kX2FkZHIsIHN0cnVjdCBvCiAgIGlmIChvYmpmaWxlLT5zZi0+c3lt X3JlYWRfbGluZXRhYmxlICE9IE5VTEwpCiAgICAgb2JqZmlsZS0+c2YtPnN5 bV9yZWFkX2xpbmV0YWJsZSAoKTsKIAorICAvKiBIYW5kbGUgdGhlIGNhc2Ug d2hlcmUgdGhlIGRlYnVnIGluZm8gc3BlY2lmaWVzIGEgZGlmZmVyZW50IHBh dGgKKyAgICAgZm9yIHRoZSBtYWluIHNvdXJjZSBmaWxlLiAgSXQgY2FuIGNh dXNlIHVzIHRvIGxvc2UgdHJhY2sgb2YgaXRzCisgICAgIGxpbmUgbnVtYmVy IGluZm9ybWF0aW9uLiAgKi8KKyAgd2F0Y2hfbWFpbl9zb3VyY2VfZmlsZV9s b3NzYWdlICgpOworCiAgIC8qIE5vdyBjcmVhdGUgdGhlIHN5bXRhYiBvYmpl Y3RzIHByb3Blciwgb25lIGZvciBlYWNoIHN1YmZpbGUuICAqLwogICAvKiAo VGhlIG1haW4gZmlsZSBpcyB0aGUgbGFzdCBvbmUgb24gdGhlIGNoYWluLikg ICovCiAKSW5kZXg6IHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTEuZXhw Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9n ZGIuYmFzZS9oYXNobGluZTEuZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5i YXNlL2hhc2hsaW5lMS5leHAKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAw OjAwOjAwIC0wMDAwCisrKyB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUx LmV4cAk4IEFwciAyMDA4IDIyOjE2OjA2IC0wMDAwCkBAIC0wLDAgKzEsNTcg QEAKKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuCisKKyMgVGVzdCBsb2FkaW5nIG9m IGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIHdpdGggYWJzb2x1dGUgcGF0aCBp biAjbGluZSwgYnVnIDIzNjAuCisKK2lmICR0cmFjZWxldmVsIHRoZW4gewor ICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorfQorCitzZXQgcHJtc19pZCAyMzYw CitzZXQgYnVnX2lkIDAKKworIyBzcmNmaWxlIGlzIGluIG9iamRpciBiZWNh dXNlIHdlIG5lZWQgdG8gbWFjaGluZSBnZW5lcmF0ZSBpdCBpbiBvcmRlcgor IyB0byBnZXQgdGhlIGNvcnJlY3QgcGF0aCBpbiB0aGUgI2xpbmUgZGlyZWN0 aXZlLgorCitzZXQgdGVzdGZpbGUgImhhc2hsaW5lMSIKK3NldCBzcmNmaWxl ICIke3Rlc3RmaWxlfS5jIgorc2V0IGJpbmZpbGUgIiR7b2JqZGlyfS8ke3N1 YmRpcn0vJHt0ZXN0ZmlsZX0iCisKK3NldCBmZCBbb3BlbiAke29iamRpcn0v JHtzdWJkaXJ9LyR7c3JjZmlsZX0gd10KK3B1dHMgJGZkICIjbGluZSAyIFwi W3B3ZF0vJHtzdWJkaXJ9LyR7c3JjZmlsZX1cIiIKK3B1dHMgJGZkICJpbnQg bWFpbiAoKSB7IHJldHVybiAwOyB9IC8qIHNldCBicmVha3BvaW50IGhlcmUg Ki8iCitjbG9zZSAkZmQKKworIyBUaGUgY2hvaWNlIG9mIHBhdGggbmFtZSBm b3IgdGhlIHNvdXJjZSBmaWxlIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byB0 cmlnZ2VyCisjIHRoZSBidWcuICBVc2luZyAke29iamRpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0gaGVyZSB3b24ndCB0cmlnZ2VyIHRoZSBidWcuCitpZiB7 IFtnZGJfY29tcGlsZSAiLi8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7Ymlu ZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnfV0gIT0gIiIgfSB7CisgICAgdW50 ZXN0ZWQgaGFzaGxpbmUxLmV4cAorICAgIHJldHVybiAtMQorfQorCitnZGJf ZXhpdAorZ2RiX3N0YXJ0CitnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGly LyRzdWJkaXIKK2dkYl9sb2FkICR7YmluZmlsZX0KKworc2V0IGJwX2xvY2F0 aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWtwb2ludCBoZXJl IiAke29iamRpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX1dCisKKyMgVHJ5IHRv IHNldCBhIGJyZWFrcG9pbnQgb24gdGhlIHNwZWNpZmllZCBmaWxlIGxvY2F0 aW9uLgorCitnZGJfdGVzdCAiYnJlYWsgJHNyY2ZpbGU6JGJwX2xvY2F0aW9u IiBcCisgICAgIkJyZWFrcG9pbnQuKmF0LiogZmlsZSAuKiRzcmNmaWxlLCBs aW5lLioiIFwKKyAgICAic2V0IGJyZWFrcG9pbnQiCkluZGV4OiB0ZXN0c3Vp dGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4cAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiB0ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4 cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuYmFzZS9oYXNobGluZTIuZXhwCi0t LSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgdGVz dHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMi5leHAJOCBBcHIgMjAwOCAyMjox NjowNiAtMDAwMApAQCAtMCwwICsxLDU2IEBACisjIENvcHlyaWdodCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVzdHN1 aXRlLgorCisjIFRlc3QgbG9hZGluZyBvZiBsaW5lIG51bWJlciBpbmZvcm1h dGlvbiB3aXRoIGFuIGFic29sdXRlIHBhdGggd2l0aCBleHRyYQorIyAvJ3Mg aW4gI2xpbmUsIGJ1ZyAyMzYwLgorCitpZiAkdHJhY2VsZXZlbCB0aGVuIHsK KyAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKK30KKworc2V0IHBybXNfaWQgMjM2 MAorc2V0IGJ1Z19pZCAwCisKKyMgc3JjZmlsZSBpcyBpbiBvYmpkaXIgYmVj YXVzZSB3ZSBuZWVkIHRvIG1hY2hpbmUgZ2VuZXJhdGUgaXQgaW4gb3JkZXIK KyMgdG8gZ2V0IHRoZSBjb3JyZWN0IHBhdGggaW4gdGhlICNsaW5lIGRpcmVj dGl2ZS4KKworc2V0IHRlc3RmaWxlICJoYXNobGluZTIiCitzZXQgc3JjZmls ZSAiJHt0ZXN0ZmlsZX0uYyIKK3NldCBiaW5maWxlICIke29iamRpcn0vJHtz dWJkaXJ9LyR7dGVzdGZpbGV9IgorCitzZXQgZmQgW29wZW4gJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IHddCitwdXRzICRmZCAiI2xpbmUgMiBc Ii8vL1twd2RdLyR7c3ViZGlyfS8ke3NyY2ZpbGV9XCIiCitwdXRzICRmZCAi aW50IG1haW4gKCkgeyByZXR1cm4gMDsgfSAvKiBzZXQgYnJlYWtwb2ludCBo ZXJlICovIgorY2xvc2UgJGZkCisKK2lmIHsgW2dkYl9jb21waWxlICIke29i amRpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVj dXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworICAgIHVudGVzdGVkIGhhc2hs aW5lMS5leHAKKyAgICByZXR1cm4gLTEKK30KKworZ2RiX2V4aXQKK2dkYl9z dGFydAorZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCitn ZGJfbG9hZCAke2JpbmZpbGV9CisKK3NldCBicF9sb2NhdGlvbiBbZ2RiX2dl dF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgaGVyZSIgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9XQorCisjIFRyeSB0byBzZXQgYSBicmVh a3BvaW50IG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBsb2NhdGlvbi4KKworZ2Ri X3Rlc3QgImJyZWFrICRzcmNmaWxlOiRicF9sb2NhdGlvbiIgXAorICAgICJC cmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmlsZSwgbGluZS4qIiBcCisg ICAgInNldCBicmVha3BvaW50IgpJbmRleDogdGVzdHN1aXRlL2dkYi5iYXNl L2hhc2hsaW5lMy5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls ZTogdGVzdHN1aXRlL2dkYi5iYXNlL2hhc2hsaW5lMy5leHAKZGlmZiAtTiB0 ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cAotLS0gL2Rldi9udWxs CTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIHRlc3RzdWl0ZS9nZGIu YmFzZS9oYXNobGluZTMuZXhwCTggQXByIDIwMDggMjI6MTY6MDYgLTAwMDAK QEAgLTAsMCArMSw1NSBAQAorIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0ZS4KKworIyBU ZXN0IGxvYWRpbmcgb2YgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gd2l0aCBy ZWxhdGl2ZSBwYXRoIGluICNsaW5lLCBidWcgMjM2MC4KKworaWYgJHRyYWNl bGV2ZWwgdGhlbiB7CisgICAgc3RyYWNlICR0cmFjZWxldmVsCit9CisKK3Nl dCBwcm1zX2lkIDIzNjAKK3NldCBidWdfaWQgMAorCisjIHNyY2ZpbGUgaXMg aW4gb2JqZGlyIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWNoaW5lIGdlbmVyYXRl IGl0IGluIG9yZGVyCisjIHRvIGdldCB0aGUgY29ycmVjdCBwYXRoIGluIHRo ZSAjbGluZSBkaXJlY3RpdmUuCisKK3NldCB0ZXN0ZmlsZSAiaGFzaGxpbmUz Igorc2V0IHNyY2ZpbGUgIiR7dGVzdGZpbGV9LmMiCitzZXQgYmluZmlsZSAi JHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfSIKKworc2V0IGZkIFtv cGVuICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSB3XQorcHV0cyAk ZmQgIiNsaW5lIDIgXCIuLyR7c3ViZGlyfS8ke3NyY2ZpbGV9XCIiCitwdXRz ICRmZCAiaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfSAvKiBzZXQgYnJlYWtw b2ludCBoZXJlICovIgorY2xvc2UgJGZkCisKK2lmIHsgW2dkYl9jb21waWxl ICIke29iamRpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9 IiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworICAgIHVudGVzdGVk IGhhc2hsaW5lMS5leHAKKyAgICByZXR1cm4gLTEKK30KKworZ2RiX2V4aXQK K2dkYl9zdGFydAorZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3Vi ZGlyCitnZGJfbG9hZCAke2JpbmZpbGV9CisKK3NldCBicF9sb2NhdGlvbiBb Z2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgaGVyZSIgJHtv YmpkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9XQorCisjIFRyeSB0byBzZXQg YSBicmVha3BvaW50IG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBsb2NhdGlvbi4K KworZ2RiX3Rlc3QgImJyZWFrICRzcmNmaWxlOiRicF9sb2NhdGlvbiIgXAor ICAgICJCcmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmlsZSwgbGluZS4q IiBcCisgICAgInNldCBicmVha3BvaW50Igo= ------=_Part_25498_676119.1207693384811--