From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17734 invoked by alias); 14 Mar 2012 17:26:39 -0000 Received: (qmail 17723 invoked by uid 22791); 14 Mar 2012 17:26:37 -0000 X-SWARE-Spam-Status: No, hits=2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_STOCKTIP,RCVD_IN_DNSWL_LOW,TW_BJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-ee0-f41.google.com (HELO mail-ee0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 14 Mar 2012 17:26:17 +0000 Received: by eeke53 with SMTP id e53so1273291eek.0 for ; Wed, 14 Mar 2012 10:26:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-system-of-record:x-gm-message-state; bh=OB0Gp3FcVtXjyyOgGKvJNSUXcTwzF85zm8RCIAb+17c=; b=GaKKvSCWttoVMJQjEA+0P00lRg6K2zw6WmDASKIpqMy2TsHG4dwdXK5cv3Ggxj84NN nJr8G14JY4WVk/wBIMPuUCMpfYN610IxLFAyETI7mUQuZoqkjkzrJ9y59sFhOOD5WE8U QVYK3X9xce3mHwoQJLaBFThKMthzLc8LiD2bWtW/9kRZ3+xF/35syB2uCLUKcst9lt+D G/ZPnnoCNRhArMgz7PKJb8vwz9Ek89jsDCNo2K1OwSmohkY8KmuRr973yIcU07rSImKI 3HpJMFzPyFQvlIaAWLCPgXH+K0zCgR2KOwJiRkQHI9PmK4JlvcCBbN1C0q4Gch/H5aVM hXCA== Received: by 10.229.136.19 with SMTP id p19mr1127526qct.133.1331745975147; Wed, 14 Mar 2012 10:26:15 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.136.19 with SMTP id p19mr1127521qct.133.1331745975025; Wed, 14 Mar 2012 10:26:15 -0700 (PDT) Received: by 10.224.182.136 with HTTP; Wed, 14 Mar 2012 10:26:15 -0700 (PDT) In-Reply-To: <871uovdvzf.fsf@fleche.redhat.com> References: <871uovdvzf.fsf@fleche.redhat.com> Date: Wed, 14 Mar 2012 17:26:00 -0000 Message-ID: Subject: Re: [RFC - Python Scripting] New method Value.referenced_value to dereference pointer as well as reference values (with docs) From: Siva Chandra To: gdb-patches@sourceware.org Cc: Tom Tromey Content-Type: multipart/mixed; boundary=00248c7119d1c5c0c904bb37459b X-System-Of-Record: true X-Gm-Message-State: ALoCoQl5fwEZoUWmx+SDGm+AGKxmH3X7d9eMfLQjvOd2VpPbY9ZwzMrvt7csYKu9vuoV5iEyh4uCT6okfYpgn++VyWMB8N9QMbUdEZVo+yrIkTPPI3dbIDWvGtXS7bGWAEMmBZUGN+tD6uQ6wl3ybEVw/DfrMiuyyA== 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: 2012-03/txt/msg00489.txt.bz2 --00248c7119d1c5c0c904bb37459b Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2062 Thank you Tom for the review. I have modified the test according to the example you have pointed. The new patch is attached. The changelogs are below. Code Changelog: 2012-03-14 Siva Chandra Python scripting: Add new method Value.referenced_value to gdb.Value which can dereference pointer as well as reference values. * NEWS: Add entry under 'Python scripting' about the new method Value.referenced_value on gdb.Value objects. * python/py-value.c (valpy_referenced_value): New function defining a new method on gdb.Value objects which can dereference pointer and reference values. * testsuite/gdb.python/py-value.cc: Add test case for testing the methodology exposing C++ values to Python. * testsuite/gdb.python/py-value-cc.exp: Add tests testing the methodology exposing C++ values to Python. * testsuite/gdb.python/Makefile.in: Add py-value-cc to EXECUTABLES. Docs Changelog: 2012-03-14 Siva Chandra * gdb.texinfo (Python API/Values From Inferior): Add description about the new method Value.referenced_value. Add description on how Value.dereference is different (and similar) to Value.referenced_value. OK to commit? If yes, I think someone should commit it for me. Thanks, Siva Chandra On Wed, Mar 14, 2012 at 9:18 PM, Tom Tromey wrote: >>>>>> "Siva" == Siva Chandra writes: > > Siva> I could not think of a better name than 'referenced_value' for this > Siva> method. > > Seems reasonable to me. > > Siva> About using prepare_for_testing, I notice that compilation fails with > Siva> this as gcc is being used to compile the test case and not g++. So, I > Siva> have not changed the exp file in this patch. > > You can do it by passing the "c++" option, e.g. from dispcxx.exp: > > if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} { > > The code bits are ok with this fixed. > > Tom --00248c7119d1c5c0c904bb37459b Content-Type: text/plain; charset=US-ASCII; name="value_referenced_value_patch_v3.txt" Content-Disposition: attachment; filename="value_referenced_value_patch_v3.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzsmz81d0 Content-length: 14445 ZGlmZiAtcnVwTiBzcmMvZ2RiL2RvYy9nZGIudGV4aW5mbyBzcmNfcmVmL2dk Yi9kb2MvZ2RiLnRleGluZm8KLS0tIHNyYy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTItMDMtMDggMDA6NTU6MzcuMDAwMDAwMDAwICswNTMwCisrKyBzcmNf cmVmL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMi0wMy0xNCAxNTo0MDo1NS44 OTA5ODM2MjggKzA1MzAKQEAgLTIyMTM3LDYgKzIyMTM3LDc5IEBAIGJhciA9 IGZvby5kZXJlZmVyZW5jZSAoKQogCiBUaGUgcmVzdWx0IEBjb2Rle2Jhcn0g d2lsbCBiZSBhIEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0IGhvbGRpbmcgdGhl CiB2YWx1ZSBwb2ludGVkIHRvIGJ5IEBjb2Rle2Zvb30uCisKK0Egc2ltaWxh ciBmdW5jdGlvbiBAY29kZXtWYWx1ZS5yZWZlcmVuY2VkX3ZhbHVlfSBleGlz dHMgd2hpY2ggYWxzbworcmV0dXJucyBAY29kZXtnZGIuVmFsdWV9IG9iamVj dHMgY29ycmVzb25kaW5nIHRvIHRoZSB2YWx1ZXMgcG9pbnRlZCB0bworYnkg cG9pbnRlciB2YWx1ZXMgKGFuZCBhZGRpdGlvbmFsbHksIHZhbHVlcyByZWZl cmVuY2VkIGJ5IHJlZmVyZW5jZQordmFsdWVzKS4gIEhvd2V2ZXIsIHRoZSBi ZWhhdmlvciBvZiBAY29kZXtWYWx1ZS5kZXJlZmVyZW5jZX0KK2RpZmZlcnMg ZnJvbSBAY29kZXtWYWx1ZS5yZWZlcmVuY2VkX3ZhbHVlfSBieSB0aGUgZmFj dCB0aGF0IHRoZQorYmVoYXZpb3Igb2YgQGNvZGV7VmFsdWUuZGVyZWZlcmVu Y2V9IGlzIGlkZW50aWNhbCB0byBhcHBseWluZyB0aGUgQwordW5hcnkgb3Bl cmF0b3IgYConIG9uIGEgZ2l2ZW4gdmFsdWUuICBGb3IgZXhhbXBsZSwgY29u c2lkZXIgYQorcmVmZXJlbmNlIHRvIGEgcG9pbnRlciBAY29kZXtwdHJyZWZ9 LCBkZWNsYXJlZCBpbiB5b3VyIENAdHsrK30gcHJvZ3JhbQorYXMKKworQHNt YWxsZXhhbXBsZQordHlwZWRlZiBpbnQgKmludHB0cjsKKy4uLgoraW50IHZh bCA9IDEwOworaW50cHRyIHB0ciA9ICZ2YWw7CitpbnRwdHIgJnB0cnJlZiA9 IHB0cjsKK0BlbmQgc21hbGxleGFtcGxlCisKK1Rob3VnaCBAY29kZXtwdHJy ZWZ9IGlzIGEgcmVmZXJlbmNlIHZhbHVlLCBvbmUgY2FuIGFwcGx5IHRoZSBt ZXRob2QKK0Bjb2Rle1ZhbHVlLmRlcmVmZXJlbmNlfSB0byB0aGUgQGNvZGV7 Z2RiLlZhbHVlfSBvYmplY3QgY29ycmVzcG9uZGluZwordG8gaXQgYW5kIG9i dGFpbiBhIEBjb2Rle2dkYi5WYWx1ZX0gd2hpY2ggaXMgaWRlbnRpY2FsIHRv IHRoYXQKK2NvcnJlc3BvbmRpbmcgdG8gQGNvZGV7dmFsfS4gIEhvd2V2ZXIs IGlmIHlvdSBhcHBseSB0aGUgbWV0aG9kCitAY29kZXtWYWx1ZS5yZWZlcmVu Y2VkX3ZhbHVlfSwgdGhlIHJlc3VsdCB3b3VsZCBiZSBhIEBjb2Rle2dkYi5W YWx1ZX0KK29iamVjdCBpZGVudGljYWwgdG8gdGhhdCBjb3JyZXNwb25kaW5n IHRvIEBjb2Rle3B0cn0uCisKK0BzbWFsbGV4YW1wbGUKK3B5X3B0cnJlZiA9 IGdkYi5wYXJzZV9hbmRfZXZhbCAoInB0cnJlZiIpCitweV92YWwgPSBweV9w dHJyZWYuZGVyZWZlcmVuY2UgKCkKK3B5X3B0ciA9IHB5X3B0cnJlZi5yZWZl cmVuY2VkX3ZhbHVlICgpCitAZW5kIHNtYWxsZXhhbXBsZQorCitUaGUgQGNv ZGV7Z2RiLlZhbHVlfSBvYmplY3QgQGNvZGV7cHlfdmFsfSBpcyBpZGVudGlj YWwgdG8gdGhhdAorY29ycmVzcG9uZGluZyB0byBAY29kZXt2YWx9LCBhbmQg QGNvZGV7cHlfcHRyfSBpcyBpZGVudGljYWwgdG8gdGhhdAorY29ycmVzcG9u ZGluZyB0byBAY29kZXtwdHJ9LiAgSW4gZ2VuZXJhbCwgQGNvZGV7VmFsdWUu ZGVyZWZlcmVuY2V9IGNhbgorYmUgYXBwbGllZCB3aGVuZXZlciB0aGUgQyB1 bmFyeSBvcGVyYXRvciBgKicgY2FuIGJlIGFwcGxpZWQKK3RvIHRoZSBjb3Jy ZXNwb25kaW5nIEMgdmFsdWUuICBGb3IgdGhvc2UgY2FzZXMgd2hlcmUgYXBw bHlpbmcgYm90aAorQGNvZGV7VmFsdWUuZGVyZWZlcmVuY2V9IGFuZCBAY29k ZXtWYWx1ZS5yZWZlcmVuY2VkX3ZhbHVlfSBpcyBhbGxvd2VkLAordGhlIHJl c3VsdHMgb2J0YWluZWQgbmVlZCBub3QgYmUgaWRlbnRpY2FsIChhcyB3ZSBo YXZlIHNlZW4gaW4gdGhlIGFib3ZlCitleGFtcGxlKS4gIFRoZSByZXN1bHRz IGFyZSBob3dldmVyIGlkZW50aWNhbCB3aGVuIGFwcGxpZWQgb24KK0Bjb2Rl e2dkYi5WYWx1ZX0gb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHBvaW50ZXJz IChAY29kZXtnZGIuVmFsdWV9CitvYmplY3RzIHdpdGggdHlwZSBjb2RlIEBj b2Rle1RZUEVfQ09ERV9QVFJ9KSBpbiBhIEMvQ0B0eysrfSBwcm9ncmFtLgor QGVuZCBkZWZ1bgorCitAZGVmdW4gVmFsdWUucmVmZXJlbmNlZF92YWx1ZSAo KQorRm9yIHBvaW50ZXIgb3IgcmVmZXJlbmNlIGRhdGEgdHlwZXMsIHRoaXMg bWV0aG9kIHJldHVybnMgYSBuZXcKK0Bjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0 IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZhbHVlIHJlZmVyZW5jZWQgYnkgdGhl Citwb2ludGVyL3JlZmVyZW5jZSB2YWx1ZS4gIEZvciBwb2ludGVyIGRhdGEg dHlwZXMsCitAY29kZXtWYWx1ZS5kZXJlZmVyZW5jZX0gYW5kIEBjb2Rle1Zh bHVlLnJlZmVyZW5jZWRfdmFsdWV9IHByb2R1Y2UKK2lkZW50aWNhbCByZXN1 bHRzLiAgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVzZSBtZXRob2RzIGlz IHRoYXQKK0Bjb2Rle1ZhbHVlLmRlcmVmZXJlbmNlfSBjYW5ub3QgZ2V0IHRo ZSB2YWx1ZXMgcmVmZXJlbmNlZCBieSByZWZlcmVuY2UKK3ZhbHVlcy4gIEZv ciBleGFtcGxlLCBjb25zaWRlciBhIHJlZmVyZW5jZSB0byBhbiBAY29kZXtp bnR9LCBkZWNsYXJlZAoraW4geW91ciBDQHR7Kyt9IHByb2dyYW0gYXMKKwor QHNtYWxsZXhhbXBsZQoraW50IHZhbCA9IDEwOworaW50ICZyZWYgPSB2YWw7 CitAZW5kIHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQKK3RoZW4gYXBwbHlp bmcgQGNvZGV7VmFsdWUuZGVyZWZlcmVuY2V9IHRvIHRoZSBAY29kZXtnZGIu VmFsdWV9IG9iamVjdAorY29ycmVzcG9uZGluZyB0byBAY29kZXtyZWZ9IHdp bGwgcmVzdWx0IGluIGFuIGVycm9yLCB3aGlsZSBhcHBseWluZworQGNvZGV7 VmFsdWUucmVmZXJlbmNlZF92YWx1ZX0gd2lsbCByZXN1bHQgaW4gYSBAY29k ZXtnZGIuVmFsdWV9IG9iamVjdAoraWRlbnRpY2FsIHRvIHRoYXQgY29ycmVz cG9uZGluZyB0byBAY29kZXt2YWx9LgorCitAc21hbGxleGFtcGxlCitweV9y ZWYgPSBnZGIucGFyc2VfYW5kX2V2YWwgKCJyZWYiKQorZXJfcmVmID0gcHlf cmVmLmRlcmVmZXJlbmNlICgpICAgICAgICMgUmVzdWx0cyBpbiBlcnJvcgor cHlfdmFsID0gcHlfcmVmLnJlZmVyZW5jZWRfdmFsdWUgKCkgICMgUmV0dXJu cyB0aGUgcmVmZXJlbmNlZCB2YWx1ZQorQGVuZCBzbWFsbGV4YW1wbGUKKwor VGhlIEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0IEBjb2Rle3B5X3ZhbH0gaXMg aWRlbnRpY2FsIHRvIHRoYXQKK2NvcnJlc3BvbmRpbmcgdG8gQGNvZGV7dmFs fS4KIEBlbmQgZGVmdW4KIAogQGRlZnVuIFZhbHVlLmR5bmFtaWNfY2FzdCAo dHlwZSkKZGlmZiAtcnVwTiBzcmMvZ2RiL05FV1Mgc3JjX3JlZi9nZGIvTkVX UwotLS0gc3JjL2dkYi9ORVdTCTIwMTItMDMtMDggMDA6NTU6MzYuMDAwMDAw MDAwICswNTMwCisrKyBzcmNfcmVmL2dkYi9ORVdTCTIwMTItMDMtMTMgMTY6 NTc6NTMuMjc4MTU4NDU1ICswNTMwCkBAIC0yMyw2ICsyMyw5IEBACiAgICAg IGZyYW1lIGluIG9yZGVyIHRvIGNvbXB1dGUgaXRzIHZhbHVlLCBhbmQgdGhl IGxhdHRlciBjb21wdXRlcyB0aGUKICAgICAgc3ltYm9sJ3MgdmFsdWUuCiAK KyAgKiogQSBuZXcgbWV0aG9kICdyZWZlcmVuY2VkX3ZhbHVlJyBvbiBnZGIu VmFsdWUgb2JqZWN0cyB3aGljaCBjYW4KKyAgICAgZGVyZWZlcmVuY2UgcG9p bnRlciBhcyB3ZWxsIGFzIEMrKyByZWZlcmVuY2UgdmFsdWVzLgorCiAqIEdE QnNlcnZlciBub3cgc3VwcG9ydHMgc3RkaW8gY29ubmVjdGlvbnMuCiAgIEUu Zy4gKGdkYikgdGFyZ2V0IHJlbW90ZSB8IHNzaCBteWhvc3QgZ2Ric2VydmVy IC0gaGVsbG8KIApkaWZmIC1ydXBOIHNyYy9nZGIvcHl0aG9uL3B5LXZhbHVl LmMgc3JjX3JlZi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKLS0tIHNyYy9nZGIv cHl0aG9uL3B5LXZhbHVlLmMJMjAxMi0wMy0wMiAwMjozNjo1NC4wMDAwMDAw MDAgKzA1MzAKKysrIHNyY19yZWYvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCTIw MTItMDMtMTQgMjI6NDI6MTcuMjk5ODMzMjkzICswNTMwCkBAIC0xOTIsNiAr MTkyLDQ3IEBAIHZhbHB5X2RlcmVmZXJlbmNlIChQeU9iamVjdCAqc2VsZiwg UHlPYmoKICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogR2l2ZW4gYSB2YWx1 ZSBvZiBhIHBvaW50ZXIgdHlwZSBvciBhIHJlZmVyZW5jZSB0eXBlLCByZXR1 cm4gdGhlIHZhbHVlCisgICByZWZlcmVuY2VkLiBUaGUgZGlmZmVyZW5jZSBi ZXR3ZWVuIHRoaXMgZnVuY3Rpb24gYW5kIHZhbHB5X2RlcmVmZXJlbmNlIGlz CisgICB0aGF0IHRoZSBsYXR0ZXIgYXBwbGllcyAqIHVuYXJ5IG9wZXJhdG9y IHRvIGEgdmFsdWUsIHdoaWNoIG5lZWQgbm90IGFsd2F5cworICAgcmVzdWx0 IGluIHRoZSB2YWx1ZSByZWZlcmVuY2VkLiBGb3IgZXhhbXBsZSwgZm9yIGEg dmFsdWUgd2hpY2ggaXMgYSByZWZlcmVuY2UKKyAgIHRvIGFuICdpbnQnIHBv aW50ZXIgKCdpbnQgKicpLCB2YWxweV9kZXJlZmVyZW5jZSB3aWxsIHJlc3Vs dCBpbiBhIHZhbHVlIG9mCisgICB0eXBlICdpbnQnIHdoaWxlIHZhbHB5X3Jl ZmVyZW5jZWRfdmFsdWUgd2lsbCByZXN1bHQgaW4gYSB2YWx1ZSBvZiB0eXBl CisgICAnaW50IConLiAgKi8KKworc3RhdGljIFB5T2JqZWN0ICoKK3ZhbHB5 X3JlZmVyZW5jZWRfdmFsdWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAq YXJncykKK3sKKyAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhj ZXB0OworICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKworICBUUllfQ0FU Q0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgIHsKKyAgICAgIHN0 cnVjdCB2YWx1ZSAqc2VsZl92YWwsICpyZXNfdmFsOworICAgICAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXBfdmFsdWVfZnJlZV90 b19tYXJrICh2YWx1ZV9tYXJrICgpKTsKKworICAgICAgc2VsZl92YWwgPSAo KHZhbHVlX29iamVjdCAqKSBzZWxmKS0+dmFsdWU7CisgICAgICBzd2l0Y2gg KFRZUEVfQ09ERSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoc2VsZl92 YWwpKSkpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBUWVBFX0NPREVfUFRS OgorICAgICAgICAgIHJlc192YWwgPSB2YWx1ZV9pbmQgKHNlbGZfdmFsKTsK KyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX0NPREVfUkVG OgorICAgICAgICAgIHJlc192YWwgPSBjb2VyY2VfcmVmIChzZWxmX3ZhbCk7 CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg ICAgZXJyb3IoXygiVHJ5aW5nIHRvIGdldCB0aGUgcmVmZXJlbmNlZCB2YWx1 ZSBmcm9tIGEgdmFsdWUgd2hpY2ggaXMgIgorICAgICAgICAgICAgICAgICAg Im5laXRoZXIgYSBwb2ludGVyIG5vciBhIHJlZmVyZW5jZS4iKSk7CisgICAg ICAgIH0KKworICAgICAgcmVzdWx0ID0gdmFsdWVfdG9fdmFsdWVfb2JqZWN0 IChyZXNfdmFsKTsKKyAgICAgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKKyAg ICB9CisgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOworCisg IHJldHVybiByZXN1bHQ7Cit9CisKIC8qIFJldHVybiAiJnZhbHVlIi4gICov CiBzdGF0aWMgUHlPYmplY3QgKgogdmFscHlfZ2V0X2FkZHJlc3MgKFB5T2Jq ZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQpAQCAtMTM3OSw2ICsxNDIwLDgg QEAgQ2FzdCB0aGUgdmFsdWUgdG8gdGhlIHN1cHBsaWVkIHR5cGUsIGFzIAog cmVpbnRlcnByZXRfY2FzdCBvcGVyYXRvci4iCiAgIH0sCiAgIHsgImRlcmVm ZXJlbmNlIiwgdmFscHlfZGVyZWZlcmVuY2UsIE1FVEhfTk9BUkdTLCAiRGVy ZWZlcmVuY2VzIHRoZSB2YWx1ZS4iIH0sCisgIHsgInJlZmVyZW5jZWRfdmFs dWUiLCB2YWxweV9yZWZlcmVuY2VkX3ZhbHVlLCBNRVRIX05PQVJHUywKKyAg ICAiUmV0dXJuIHRoZSB2YWx1ZSByZWZlcmVuY2VkIGJ5IGEgVFlQRV9DT0RF X1JFRiBvciBUWVBFX0NPREVfUFRSIHZhbHVlLiIgfSwKICAgeyAibGF6eV9z dHJpbmciLCAoUHlDRnVuY3Rpb24pIHZhbHB5X2xhenlfc3RyaW5nLAogICAg IE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCiAgICAgImxhenlfc3Ry aW5nIChbZW5jb2RpbmddICBbLCBsZW5ndGhdKSAtPiBsYXp5X3N0cmluZ1xu XApkaWZmIC1ydXBOIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFr ZWZpbGUuaW4gc3JjX3JlZi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFr ZWZpbGUuaW4KLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFr ZWZpbGUuaW4JMjAxMS0xMi0yMyAyMjozNjoxNi4wMDAwMDAwMDAgKzA1MzAK KysrIHNyY19yZWYvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL01ha2VmaWxl LmluCTIwMTItMDMtMTEgMDA6NDA6MzYuOTAyOTUzNTI5ICswNTMwCkBAIC01 LDcgKzUsNyBAQCBFWEVDVVRBQkxFUyA9IHB5LXR5cGUgcHktdmFsdWUgcHkt cHJldHR5CiAJcHktc3ltYm9sIHB5LW1pIHB5LWJyZWFrcG9pbnQgcHktaW5m ZXJpb3IgcHktaW5mdGhyZWFkIFwKIAlweS1zaGFyZWQgcHl0aG9uIGxpYi10 eXBlcyBweS1ldmVudHMgcHktZXZ0aHJlYWRzIHB5LWZyYW1lIFwKIAlweS1t aSBweS1wcC1tYWludCBweS1wcm9nc3BhY2UgcHktc2VjdGlvbi1zY3JpcHQg cHktb2JqZmlsZSBcCi0JcHktZmluaXNoLWJyZWFrcG9pbnQgcHktZmluaXNo LWJyZWFrcG9pbnQyCisJcHktZmluaXNoLWJyZWFrcG9pbnQgcHktZmluaXNo LWJyZWFrcG9pbnQyIHB5LXZhbHVlLWNjCiAKIE1JU0NFTExBTkVPVVMgPSBw eS1zaGFyZWQtc2wuc2wgcHktZXZlbnRzLXNobGliLnNvIHB5LWV2ZW50cy1z aGxpYi1ub2RlYnVnLnNvIAogCmRpZmYgLXJ1cE4gc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jYyBzcmNfcmVmL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jYwotLS0gc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jYwkxOTcwLTAxLTAxIDA1OjMwOjAw LjAwMDAwMDAwMCArMDUzMAorKysgc3JjX3JlZi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdmFsdWUuY2MJMjAxMi0wMy0xMyAxMjoyNDoyOC44NTgx OTAzOTIgKzA1MzAKQEAgLTAsMCArMSwzOSBAQAorLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29w eXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKK2NsYXNzIEEgeworfTsK KwordHlwZWRlZiBpbnQgKmludF9wdHI7CisKK2ludAorZnVuYyAoY29uc3Qg QSAmYSkKK3sKKyAgaW50IHZhbCA9IDEwOworICBpbnQgJmludF9yZWYgPSB2 YWw7CisgIGludF9wdHIgcHRyID0gJnZhbDsKKyAgaW50X3B0ciAmaW50X3B0 cl9yZWYgPSBwdHI7CisKKyAgcmV0dXJuIDA7IC8qIEJyZWFrIGhlcmUuICAq LworfQorCitpbnQKK21haW4gKCkKK3sKKyAgQSBvYmo7CisgIHJldHVybiBm dW5jIChvYmopOworfQpkaWZmIC1ydXBOIHNyYy9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdmFsdWUtY2MuZXhwIHNyY19yZWYvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmV4cAotLS0gc3JjL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5leHAJMTk3MC0wMS0wMSAw NTozMDowMC4wMDAwMDAwMDAgKzA1MzAKKysrIHNyY19yZWYvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNjLmV4cAkyMDEyLTAzLTE0IDIy OjMxOjAwLjc2OTYyODQwNSArMDUzMApAQCAtMCwwICsxLDQ4IEBACisjIENv cHlyaWdodCAoQykgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR0RCIHRlc3RzdWl0ZS4gIEl0IHRlc3RzIHRoZSBtZWNoYW5pc20K KyMgZXhwb3NpbmcgdmFsdWVzIHRvIFB5dGhvbi4KKworaWYgeyBbc2tpcF9j cGx1c190ZXN0c10gfSB7IGNvbnRpbnVlIH0KKworc2V0IHRlc3RmaWxlICJw eS12YWx1ZSIKK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmNjCitzZXQgYmlu ZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisKK2lmIHtb cHJlcGFyZV9mb3JfdGVzdGluZyAkdGVzdGZpbGUuZXhwICR0ZXN0ZmlsZSAk c3JjZmlsZSB7ZGVidWcgYysrfV19IHsKKyAgICByZXR1cm4gLTEKK30KKwor IyBTa2lwIGFsbCB0ZXN0cyBpZiBQeXRob24gc2NyaXB0aW5nIGlzIG5vdCBl bmFibGVkLgoraWYgeyBbc2tpcF9weXRob25fdGVzdHNdIH0geyBjb250aW51 ZSB9CisKK2lmICFbcnVudG9fbWFpbl0geworICAgcmV0dXJuIC0xCit9CisK K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCcmVhayBo ZXJlLiJdCitnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQnJlYWsgaGVy ZSIgIi4qQnJlYWsgaGVyZS4qIgorCitnZGJfdGVzdCAicHl0aG9uIHByaW50 IHN0cihnZGIucGFyc2VfYW5kX2V2YWwoXCJhXCIpLnR5cGUpIiAiY29uc3Qg QSAmIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBzdHIoZ2RiLnBhcnNlX2Fu ZF9ldmFsKFwiYVwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkudHlwZSkiICJjb25z dCBBIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBzdHIoZ2RiLnBhcnNlX2Fu ZF9ldmFsKFwiaW50X3JlZlwiKS50eXBlKSIgImludCAmIgorZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCBzdHIoZ2RiLnBhcnNlX2FuZF9ldmFsKFwiaW50X3Jl ZlwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkudHlwZSkiICJpbnQiCitnZGJfdGVz dCAicHl0aG9uIHByaW50IHN0cihnZGIucGFyc2VfYW5kX2V2YWwoXCJpbnRf cmVmXCIpLnJlZmVyZW5jZWRfdmFsdWUoKSkiICIxMCIKKworZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCBzdHIoZ2RiLnBhcnNlX2FuZF9ldmFsKFwiaW50X3B0 cl9yZWZcIikuZGVyZWZlcmVuY2UoKS50eXBlKSIgImludCIKK2dkYl90ZXN0 ICJweXRob24gcHJpbnQgc3RyKGdkYi5wYXJzZV9hbmRfZXZhbChcImludF9w dHJfcmVmXCIpLnJlZmVyZW5jZWRfdmFsdWUoKS50eXBlKSIgImludF9wdHIi CitnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cihnZGIucGFyc2VfYW5kX2V2 YWwoXCJpbnRfcHRyX3JlZlwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkuZGVyZWZl cmVuY2UoKSkiICIxMCIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgc3RyKGdk Yi5wYXJzZV9hbmRfZXZhbChcImludF9wdHJfcmVmXCIpLnJlZmVyZW5jZWRf dmFsdWUoKS5yZWZlcmVuY2VkX3ZhbHVlKCkpIiAiMTAiCg== --00248c7119d1c5c0c904bb37459b--