From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7711 invoked by alias); 4 Apr 2013 13:30:31 -0000 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 Received: (qmail 7700 invoked by uid 89); 4 Apr 2013 13:30:30 -0000 X-Spam-SWARE-Status: No, score=-4.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_DB,TW_FW autolearn=ham version=3.3.1 Received: from mail-oa0-f44.google.com (HELO mail-oa0-f44.google.com) (209.85.219.44) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 04 Apr 2013 13:30:26 +0000 Received: by mail-oa0-f44.google.com with SMTP id h1so2746650oag.17 for ; Thu, 04 Apr 2013 06:30:25 -0700 (PDT) X-Received: by 10.60.101.232 with SMTP id fj8mr4248864oeb.28.1365082225033; Thu, 04 Apr 2013 06:30:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Thu, 4 Apr 2013 06:29:44 -0700 (PDT) In-Reply-To: <515B1DF7.3090705@redhat.com> References: <514BF736.3070706@mentor.com> <514C3C85.4000704@codesourcery.com> <514EEBFF.8090705@redhat.com> <5154378D.60302@redhat.com> <515B1DF7.3090705@redhat.com> From: Hui Zhu Date: Thu, 04 Apr 2013 18:42:00 -0000 Message-ID: Subject: Re: [PATCH] Fix dprintf work not right if it is pending To: Keith Seitz Cc: Hui Zhu , gdb-patches ml Content-Type: multipart/mixed; boundary=089e0111b3081cd20f04d988f9bc X-Virus-Found: No X-SW-Source: 2013-04/txt/msg00106.txt.bz2 --089e0111b3081cd20f04d988f9bc Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1323 On Wed, Apr 3, 2013 at 2:05 AM, Keith Seitz wrote: > On 03/29/2013 12:42 AM, Hui Zhu wrote: > >>>> + breakpoint_re_set_default (b); >>>> + >>>> + if (b->extra_string != NULL) >>>> + update_dprintf_command_list (b); >>>> +} >>>> + >>> >>> >>> >>> This will update the command list every time breakpoints are reset and >>> could >>> be limited to only those needing updating. Is there perhaps a reason to >>> always do this? >> >> >> I think it need, because it need to generate different commands with >> different status for example: >> if (target_can_run_breakpoint_commands ()) >> printf_line = xstrprintf ("agent-printf %s", dprintf_args); >> > > I'm not understanding this example. How is this likely to change whenever > breakpoints are reset? Is there perhaps a way to add a test to demonstrate > this requirement? If the target that GDB connect to is changed (for example, we set dprintf and used it with local host target. Then we changed to use a remote target), GDB need set different commands of dprintfs. The code that I post is from function update_dprintf_command_list. I updated dprintf-pending.exp for this test. > > Otherwise, this patch looks good to me, and recommend that a maintainer give > this a final review. > Thanks for your help. > Keith Best, Hui --089e0111b3081cd20f04d988f9bc Content-Type: text/plain; charset=US-ASCII; name="dprintf-pending.txt" Content-Disposition: attachment; filename="dprintf-pending.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hf3yoeai0 Content-length: 997 LS0tIGEvZ2RiL2JyZWFrcG9pbnQuYworKysgYi9nZGIvYnJlYWtwb2ludC5j CkBAIC0xMjk2Myw2ICsxMjk2MywxNyBAQCBia3B0X3JlX3NldCAoc3RydWN0 IGJyZWFrcG9pbnQgKmIpCiAgIGJyZWFrcG9pbnRfcmVfc2V0X2RlZmF1bHQg KGIpOwogfQogCisvKiBEcHJpbnRmIGJyZWFrcG9pbnRfb3BzIG1ldGhvZHMu ICAqLworCitzdGF0aWMgdm9pZAorZHByaW50Zl9yZV9zZXQgKHN0cnVjdCBi cmVha3BvaW50ICpiKQoreworICBicmVha3BvaW50X3JlX3NldF9kZWZhdWx0 IChiKTsKKworICBpZiAoYi0+ZXh0cmFfc3RyaW5nICE9IE5VTEwpCisgICAg dXBkYXRlX2RwcmludGZfY29tbWFuZF9saXN0IChiKTsKK30KKwogc3RhdGlj IGludAogYmtwdF9pbnNlcnRfbG9jYXRpb24gKHN0cnVjdCBicF9sb2NhdGlv biAqYmwpCiB7CkBAIC0xNjAwMSw3ICsxNjAxMiw3IEBAIGluaXRpYWxpemVf YnJlYWtwb2ludF9vcHMgKHZvaWQpCiAKICAgb3BzID0gJmRwcmludGZfYnJl YWtwb2ludF9vcHM7CiAgICpvcHMgPSBia3B0X2Jhc2VfYnJlYWtwb2ludF9v cHM7Ci0gIG9wcy0+cmVfc2V0ID0gYmtwdF9yZV9zZXQ7CisgIG9wcy0+cmVf c2V0ID0gZHByaW50Zl9yZV9zZXQ7CiAgIG9wcy0+cmVzb3VyY2VzX25lZWRl ZCA9IGJrcHRfcmVzb3VyY2VzX25lZWRlZDsKICAgb3BzLT5wcmludF9pdCA9 IGJrcHRfcHJpbnRfaXQ7CiAgIG9wcy0+cHJpbnRfbWVudGlvbiA9IGJrcHRf cHJpbnRfbWVudGlvbjsK --089e0111b3081cd20f04d988f9bc Content-Type: text/plain; charset=US-ASCII; name="dprintf-pending-test.txt" Content-Disposition: attachment; filename="dprintf-pending-test.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hf3yoecx1 Content-length: 8313 LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9NYWtlZmlsZS5pbgorKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL01ha2VmaWxlLmluCkBAIC0xMCw3 ICsxMCw4IEBAIEVYRUNVVEFCTEVTID0gYTItcnVuIGFkdmFuY2UgYWxsLXR5 cGVzIGEKIAljYWxsLXN0cnMgY2FsbGV4aXQgY2FsbGZ1bmNzIGNhbGxmd21h bGwgY2hhcnNldCBjaGVja3BvaW50IFwKIAljaG5nLXN5bXMgY29kZV9lbGlt MSBjb2RlX2VsaW0yIGNvbW1hbmRzIGNvbXBpbGVyIGNvbXBsZXggXAogCWNv bmRicmVhayBjb25zZWN1dGl2ZSBjb25zdHZhcnMgY29yZW1ha2VyIGN1cnNh bCBjdmV4cHIgXAotCWRieC10ZXN0IGRlbCBkaXNhc20tZW5kLWN1IGRpc3Bs YXkgZHVtcCBkdXAtc2VjdCBkdXAtc2VjdC5kZWJ1ZyBcCisJZGJ4LXRlc3Qg ZGVsIGRpc2FzbS1lbmQtY3UgZGlzcGxheSBkcHJpbnRmLXBlbmRpbmcgZHVt cCBkdXAtc2VjdCBcCisJZHVwLXNlY3QuZGVidWcgXAogCWR1cC1zZWN0LnN0 cmlwcGVkIGVuZGluZy1ydW4gZXhlY2QtcHJvZyBleHBhbmQtcHN5bXRhYnMg ZXhwcnMgXAogCWZpbGVpbyBmaW5kIGZpbmlzaCBmaXhzZWN0aW9uIGZsb2F0 IGZvbGwtZXhlYyBmb2xsLWZvcmsgZm9sbC12Zm9yayBcCiAJZnJhbWUtYXJn cyBmcmVlYnBjbWQgZnVsbG5hbWUgZnVuY2FyZ3MgZ2NvcmUgXApAQCAtNDQs NyArNDUsNyBAQCBFWEVDVVRBQkxFUyA9IGEyLXJ1biBhZHZhbmNlIGFsbC10 eXBlcyBhCiAJd2NoYXIgd2hhdGlzIHdoYXRpcy1leHAgY2F0Y2gtc3lzY2Fs bCBcCiAJcHIxMDE3OSBnbnVfdmVjdG9yCiAKLU1JU0NFTExBTkVPVVMgPSBj b3JlbW1hcC5kYXRhIC4uL2Zvb2Jhci5iYXogZml4c2VjdHNoci5zbCBcCitN SVNDRUxMQU5FT1VTID0gY29yZW1tYXAuZGF0YSBkcHJpbnRmLXBlbmRzaHIu c2wgLi4vZm9vYmFyLmJheiBmaXhzZWN0c2hyLnNsIFwKIAlwZW5kc2hyLnNs IHNocmVsb2MxLnNsIHNocmVsb2MyLnNsIHR3aWNlLXRtcC5jIFwKIAlzaHIx LnNsIHNocjIuc2wgc29saWJfc2wuc2wgc29saWIxLnNsIHNvbGliMi5zbCBc CiAJdW5sb2Fkc2hyLnNsIHVubG9hZHNocjIuc2wgd2F0Y2hwb2ludC1zb2xp Yi1zaHIuc2wgXAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvZHByaW50Zi1wZW5kaW5nLmMKQEAgLTAsMCArMSwzMSBAQAor LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisK KyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgayA9IDA7CisKK2V4dGVybiB2 b2lkIHBlbmRmdW5jIChpbnQgeCk7CisKK2ludCBtYWluKCkKK3sKKyAgcGVu ZGZ1bmMgKDMpOyAvKiBicmVhayBtYWluIGhlcmUgKi8KKyAgcGVuZGZ1bmMg KDQpOworICBrID0gMTsKKyAgcGVuZGZ1bmMgKDMpOworICByZXR1cm4gMDsK K30KLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2RwcmludGYtcGVuZGluZy5leHAKQEAgLTAsMCArMSwxMDQgQEAKKyMgICBD b3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworbG9hZF9saWIgZ2Ric2VydmVyLXN1cHBv cnQuZXhwCisKK2lmIHtbc2tpcF9zaGxpYl90ZXN0c119IHsKKyAgICByZXR1 cm4gMAorfQorCitzZXQgdGVzdGZpbGUgImRwcmludGYtcGVuZGluZyIKK3Nl dCBsaWJmaWxlICJkcHJpbnRmLXBlbmRzaHIiCitzZXQgc3JjZmlsZSAkdGVz dGZpbGUuYworc2V0IGxpYnNyYyAgJHNyY2Rpci8kc3ViZGlyLyRsaWJmaWxl LmMKK3NldCBiaW5maWxlICRvYmpkaXIvJHN1YmRpci8kdGVzdGZpbGUKK3Nl dCBsaWJfc2wgICRvYmpkaXIvJHN1YmRpci8kbGliZmlsZS5zbAorCitzZXQg bGliX29wdHMgIGRlYnVnCitzZXQgZXhlY19vcHRzIFtsaXN0IGRlYnVnIHNo bGliPSRsaWJfc2xdCisKK2lmIHsgW2dldF9jb21waWxlcl9pbmZvXSB9IHsK KyAgICByZXR1cm4gLTEKK30KKworaWYgeyBbZ2RiX2NvbXBpbGVfc2hsaWIg JGxpYnNyYyAkbGliX3NsICRsaWJfb3B0c10gIT0gIiIKKyAgICAgfHwgW2dk Yl9jb21waWxlICRzcmNkaXIvJHN1YmRpci8kc3JjZmlsZSAkYmluZmlsZSBl eGVjdXRhYmxlICRleGVjX29wdHNdICE9ICIifSB7CisgICAgdW50ZXN0ZWQg IkNvdWxkIG5vdCBjb21waWxlIGVpdGhlciAkbGlic3JjIG9yICRzcmNkaXIv JHN1YmRpci8kc3JjZmlsZS4iCisgICAgcmV0dXJuIC0xCit9CisKKyMgU3Rh cnQgd2l0aCBhIGZyZXNoIGdkYi4KKworZ2RiX2V4aXQKK2dkYl9zdGFydAor Z2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisKK2dkYl90 ZXN0X211bHRpcGxlICJkcHJpbnRmIHBlbmRmdW5jMSwgXCJ4PSVkXFxuXCIs IHgiICJzZXQgcGVuZGluZyBkcHJpbnRmIiB7CisgICAgIC1yZSAiLipNYWtl IGRwcmludGYgcGVuZGluZy4qeSBvciBcXFxbblxcXF0uICQiIHsKKwkgICAg Z2RiX3Rlc3QgInkiICJEcHJpbnRmLipwZW5kZnVuYzEuKnBlbmRpbmcuIiAi c2V0IHBlbmRpbmcgZHByaW50ZiAod2l0aG91dCBzeW1ib2xzKSIKKyAgICAg fQorfQorCitnZGJfdGVzdCAiaW5mbyBicmVhayIgXAorICAgICJOdW0gICAg IFR5cGVcWyBcXStEaXNwIEVuYiBBZGRyZXNzXFsgXF0rV2hhdC4qCitcWzAt OVxdK1xbXHQgXF0rZHByaW50Zi4qa2VlcCB5LipQRU5ESU5HLipwZW5kZnVu YzEuKiIgXAorInNpbmdsZSBwZW5kaW5nIGRwcmludGYgaW5mbyAod2l0aG91 dCBzeW1ib2xzKSIKKworZ2RiX2xvYWQgJHtiaW5maWxlfQorZ2RiX2xvYWRf c2hsaWJzICRsaWJfc2wKKworZ2RiX3J1bl9jbWQKKworZ2RiX3Rlc3QgIiIg Ii4qeD0zLip4PTQuKng9My4qIiAicnVuIHRvIHJlc29sdmVkIGRwcmludGYg KHdpdGhvdXQgc3ltYm9scykiCisKKyMgUmVzdGFydCB3aXRoIGEgZnJlc2gg Z2RiLgorCitnZGJfZXhpdAorZ2RiX3N0YXJ0CitnZGJfcmVpbml0aWFsaXpl X2RpciAkc3JjZGlyLyRzdWJkaXIKKworZ2RiX2xvYWQgJHtiaW5maWxlfQor Z2RiX2xvYWRfc2hsaWJzICRsaWJfc2wKKworIworIyBUZXN0IHNldHRpbmcs IHF1ZXJ5aW5nLCBhbmQgbW9kaWZ5aW5nIHBlbmRpbmcgYnJlYWtwb2ludHMK KyMKKworZ2RiX3Rlc3RfbXVsdGlwbGUgImRwcmludGYgcGVuZGZ1bmMxLCBc Ing9JWRcXG5cIiwgeCIgInNldCBwZW5kaW5nIGRwcmludGYiIHsKKyAgICAg LXJlICIuKk1ha2UgZHByaW50ZiBwZW5kaW5nLip5IG9yIFxcXFtuXFxcXS4g JCIgeworCSAgICBnZGJfdGVzdCAieSIgIkRwcmludGYuKnBlbmRmdW5jMS4q cGVuZGluZy4iICJzZXQgcGVuZGluZyBkcHJpbnRmIgorICAgICB9Cit9CisK K2dkYl90ZXN0ICJpbmZvIGJyZWFrIiBcCisgICAgIk51bSAgICAgVHlwZVxb IFxdK0Rpc3AgRW5iIEFkZHJlc3NcWyBcXStXaGF0LioKK1xbMC05XF0rXFtc dCBcXStkcHJpbnRmLiprZWVwIHkuKlBFTkRJTkcuKnBlbmRmdW5jMS4qIiBc Cisic2luZ2xlIHBlbmRpbmcgZHByaW50ZiBpbmZvIgorCitnZGJfcnVuX2Nt ZAorCitnZGJfdGVzdCAiIiAiLip4PTMuKng9NC4qeD0zLioiICJydW4gdG8g cmVzb2x2ZWQgZHByaW50ZiIKKworaWYgeyBbc2tpcF9nZGJzZXJ2ZXJfdGVz dHNdIH0geworICAgIHJldHVybiAwCit9CisKKyMgR2V0IHdhcm5pbmcgb3Ig bm8gb3V0cHV0IGlzIE9LLgorZ2RiX3Rlc3QgInNldCBkcHJpbnRmLXN0eWxl IGFnZW50IiAiLioiICJTZXQgZHByaW50ZiBzdHlsZSB0byBhZ2VudCIKKwor Z2Ric2VydmVyX3J1biAiIgorCitnZGJfdGVzdCAiaW5mbyBicmVhayIgIi4q YWdlbnQtcHJpbnRmIFwieD0lZFxcXFxuXCIsIHgiIFwKKyJzaW5nbGUgcGVu ZGluZyBkcHJpbnRmIGluZm8gd2l0aCBhZ2VudC1wcmludGYiCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLXBl bmRzaHIuYwpAQCAtMCwwICsxLDI4IEBACisvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmln aHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+ CisKK3ZvaWQgcGVuZGZ1bmMxIChpbnQgeCkKK3sKKyAgaW50IHkgPSB4ICsg NDsKK30KKwordm9pZCBwZW5kZnVuYyAoaW50IHgpCit7CisgIHBlbmRmdW5j MSAoeCk7Cit9Cg== --089e0111b3081cd20f04d988f9bc--