From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18442 invoked by alias); 13 Oct 2017 10:58:48 -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 17713 invoked by uid 89); 13 Oct 2017 10:58:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=hanging, H*x:Release, H*UA:Release X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 13 Oct 2017 10:58:44 +0000 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v9DArptw075656 for ; Fri, 13 Oct 2017 06:58:43 -0400 Received: from smtp.notes.na.collabserv.com (smtp.notes.na.collabserv.com [192.155.248.75]) by mx0a-001b2d01.pphosted.com with ESMTP id 2djth5wwx5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 13 Oct 2017 06:58:42 -0400 Received: from localhost by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP for from ; Fri, 13 Oct 2017 10:58:37 -0000 Received: from us1a3-smtp03.a3.dal06.isc4sb.com (10.106.154.98) by smtp.notes.na.collabserv.com (10.106.227.123) with smtp.notes.na.collabserv.com ESMTP; Fri, 13 Oct 2017 10:58:35 -0000 Received: from us1a3-mail142.a3.dal06.isc4sb.com ([10.146.38.78]) by us1a3-smtp03.a3.dal06.isc4sb.com with ESMTP id 2017101310583487-344969 ; Fri, 13 Oct 2017 10:58:34 +0000 To: gdb-patches@sourceware.org, "Ulrich Weigand" Cc: "David Edelsohn" Subject: gcore support for AIX From: "Sangamesh Mallayya" Date: Fri, 13 Oct 2017 10:58:00 -0000 MIME-Version: 1.0 X-KeepSent: D02C9F55:62AB86A2-652581B8:003C2ECE; type=4; name=$KeepSent X-LLNOutbound: False X-Disclaimed: 64183 X-TNEFEvaluated: 1 Content-Type: multipart/mixed; boundary="=_mixed 003C49C0652581B8_=" x-cbid: 17101310-3815-0000-0000-000002E81963 X-IBM-SpamModules-Scores: BY=0; FL=0; FP=0; FZ=0; HX=0; KW=0; PH=0; SC=0.415652; ST=0; TS=0; UL=0; ISC=; MB=0.002043 X-IBM-SpamModules-Versions: BY=3.00007890; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000236; SDB=6.00930509; UDB=6.00468420; IPR=6.00710774; BA=6.00005636; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017523; XFM=3.00000015; UTC=2017-10-13 10:58:36 X-IBM-AV-DETECTION: SAVI=unsuspicious REMOTE=unsuspicious XFE=unused X-IBM-AV-VERSION: SAVI=2017-10-13 08:23:46 - 6.00007453 x-cbparentid: 17101310-3816-0000-0000-0000A4042CFD Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-10-13_03:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-SW-Source: 2017-10/txt/msg00348.txt.bz2 --=_mixed 003C49C0652581B8_= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="US-ASCII" Content-length: 1229 Hi All, I have came across a way to add gencore support for the AIX. Need to your input and suggestions on current implementation or is their=20 any other way this can be done ? Some background on the gencore command/API on AIX. AIX provides a gencore command and gencore api for generating a=20 core of a running program. If debugging a process through gdb, gdb uses ptrace to control the prcoess execution. In this case all threads of process must have stopped by gdb and gencore will hang if gencore command or API is used on the process which gdb is debugging.=20 In order to keep it from hanging, gdb would need to continue one thread in the process for as little as one instruction. If a thread is continued, then when it runs it will be resumed such that the core signal will be handled by that thread of the process and the core file will be written. In this implementation gencore api will be called through a separate gdb=20 thread which will be scheduled and gencore will be executed after a call to=20 "step_1_ext (0, 1, "1")" which will call step_1 to execute single=20 instruction. I am yet to try this patch on other linux system to check if the change=20 won't cause any issues their. Thanks, Sangamesh --=_mixed 003C49C0652581B8_= Content-Type: application/octet-stream; name="aix-gcore.patch" Content-Disposition: attachment; filename="aix-gcore.patch" Content-Transfer-Encoding: base64 Content-length: 7194 LS0tIC4vZ2RiL2NvbmZpZ3VyZV9vcmlnCTIwMTctMTAtMTAgMDM6NDk6MDkg LTA1MDAKKysrIC4vZ2RiL2NvbmZpZ3VyZQkyMDE3LTEwLTEwIDAzOjUyOjMw IC0wNTAwCkBAIC0xNDY3Miw2ICsxNDY3Miw3IEBACiBfQUNFT0YKIAogICAg ICAgZmkKKyAgICAgIExJQlM9IiRMSUJTIC1scHRocmVhZCIKICAgICAgIDs7 CiAgICBlc2FjCiAKLS0tIC4vZ2RiL2NvbmZpZ3VyZS5hY19vcmlnCTIwMTct MTAtMTAgMDM6NTA6MDMgLTA1MDAKKysrIC4vZ2RiL2NvbmZpZ3VyZS5hYwky MDE3LTEwLTEwIDAzOjUwOjQwIC0wNTAwCkBAIC0xNzgyLDYgKzE3ODIsNyBA QAogICAgICAgICAgIyB3aXRoIEFJWCA2LngpLgogICAgICAgICAgQUNfQ0hF Q0tfREVDTFMoZ2V0dGhyZHMsIFtdLCBbXSwgW1sjaW5jbHVkZSA8cHJvY2lu Zm8uaD5dXSkKICAgICAgIGZpCisgICAgICBMSUJTPSIkTElCUyAtbHB0aHJl YWQiCiAgICAgICA7OwogICAgZXNhYwogICAgQUNfU1VCU1QoQ09ORklHX0xE RkxBR1MpCi0tLSAuL2dkYi9nY29yZS5oX29yaWcJMjAxNy0xMC0xMCAwNDow MDoyNSAtMDUwMAorKysgLi9nZGIvZ2NvcmUuaAkyMDE3LTEwLTEwIDA2OjI1 OjU4IC0wNTAwCkBAIC0yMiw2ICsyMiwxOCBAQAogCiAjaW5jbHVkZSAiZ2Ri X2JmZC5oIgogCisjaWYgKEdEQl9PU0FCSV9ERUZBVUxUID09IEdEQl9PU0FC SV9BSVgpCisjaW5jbHVkZSA8Y29yZS5oPgorI2luY2x1ZGUgPHB0aHJlYWQu aD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGxpYmdlbi5o Pgorc3RydWN0IGFpeF9nZW5jb3JlX2FyZ3MgeworICAgIGNoYXIgKm5hbWU7 CisgICAgcGlkX3QgcGlkOyAKK307CitleHRlcm4gdm9pZCBzdGVwXzFfZXh0 IChpbnQsIGludCwgY2hhciAqKTsKKyNlbmRpZgorCiBleHRlcm4gZ2RiX2Jm ZF9yZWZfcHRyIGNyZWF0ZV9nY29yZV9iZmQgKGNvbnN0IGNoYXIgKmZpbGVu YW1lKTsKIGV4dGVybiB2b2lkIHdyaXRlX2djb3JlX2ZpbGUgKGJmZCAqb2Jm ZCk7CiBleHRlcm4gYmZkICpsb2FkX2NvcmVmaWxlIChjaGFyICpmaWxlbmFt ZSwgaW50IGZyb21fdHR5KTsKLS0tIC4vZ2RiL2djb3JlLmNfb3JpZwkyMDE3 LTEwLTEwIDA0OjI3OjQ3IC0wNTAwCisrKyAuL2dkYi9nY29yZS5jCTIwMTct MTAtMTIgMDg6MDE6NDUgLTA1MDAKQEAgLTEzNyw2ICsxMzcsMjIgQEAKICAg ICB0aHJvd19leGNlcHRpb24gKGV4Y2VwdCk7CiB9CiAKKy8qIEFJWCBnY29y ZSBoZWxwZXIgZnVuY3Rpb24gKi8KK3ZvaWQgKiBpc3N1ZV9nZW5jb3JlX2Fp eCAodm9pZCAqYXJncykKK3sKKyAgICBzdHJ1Y3QgY29yZWR1bXBpbmZvIGR1 bXBpbmZvOworICAgIGludCByYyA9IDA7CisKKyAgICBkdW1waW5mby5sZW5n dGggPSBzdHJsZW4oKChzdHJ1Y3QgYWl4X2dlbmNvcmVfYXJncyAqKWFyZ3Mp LT5uYW1lKTsKKyAgICBkdW1waW5mby5uYW1lID0gKChzdHJ1Y3QgYWl4X2dl bmNvcmVfYXJncyAqKWFyZ3MpLT5uYW1lOworICAgIGR1bXBpbmZvLmZsYWdz ID0gR0VOQ09SRV9WRVJTSU9OXzE7CisgICAgZHVtcGluZm8ucGlkID0gKChz dHJ1Y3QgYWl4X2dlbmNvcmVfYXJncyAqKWFyZ3MpLT5waWQ7CisgICAgcmMg PSBnZW5jb3JlKCZkdW1waW5mbyk7CisgICAgaWYgKHJjICE9IDApCisgICAg ICAgZnByaW50Zl9maWx0ZXJlZCAoZ2RiX3N0ZG91dCwgImdlbmNvcmUgZmFp bGVkXG4iKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKwogLyogZ2NvcmVfY29t bWFuZCAtLSBpbXBsZW1lbnRzIHRoZSAnZ2NvcmUnIGNvbW1hbmQuCiAgICBH ZW5lcmF0ZSBhIGNvcmUgZmlsZSBmcm9tIHRoZSBpbmZlcmlvciBwcm9jZXNz LiAgKi8KIApAQCAtMTQ1LDYgKzE2MSwxNSBAQAogewogICBnZGI6OnVuaXF1 ZV94bWFsbG9jX3B0cjxjaGFyPiBjb3JlZmlsZW5hbWU7CiAKKyAgI2lmIChH REJfT1NBQklfREVGQVVMVCA9PSBHREJfT1NBQklfQUlYKQorICBwdGhyZWFk X3QgZ2NvcmVfdDsKKyAgc3RydWN0IGFpeF9nZW5jb3JlX2FyZ3MgZ19hcmdz OworICBpbnQgcmMgPSAwOworICB0aW1lNjRfdCBsYXN0X21vZCA9IDA7Cisg IGNoYXIgKmRpciwgKmFpeF9jb3JlOworICBzdHJ1Y3Qgc3RhdDY0IHN0Owor ICAjZW5kaWYKKwogICAvKiBObyB1c2UgZ2VuZXJhdGluZyBhIGNvcmVmaWxl IHdpdGhvdXQgYSB0YXJnZXQgcHJvY2Vzcy4gICovCiAgIGlmICghdGFyZ2V0 X2hhc19leGVjdXRpb24pCiAgICAgbm9wcm9jZXNzICgpOwpAQCAtMTYyLDYg KzE4Nyw0OSBAQAogCQkgICAgICAiT3BlbmluZyBjb3JlZmlsZSAnJXMnIGZv ciBvdXRwdXQuXG4iLAogCQkgICAgICBjb3JlZmlsZW5hbWUuZ2V0ICgpKTsK IAorICAgI2lmIChHREJfT1NBQklfREVGQVVMVCA9PSBHREJfT1NBQklfQUlY KQorICAgYWl4X2NvcmUgPSBjb3JlZmlsZW5hbWUuZ2V0ICgpOworICAgZ19h cmdzLm5hbWUgPSBhaXhfY29yZTsKKyAgIGdfYXJncy5waWQgPSBwdGlkX2dl dF9waWQgKGluZmVyaW9yX3B0aWQpOworCisgICBtZW1zZXQgKCZzdCwgMCwg c2l6ZW9mKHN0KSk7IAorICAgaWYgKCFhY2Nlc3MgKGFpeF9jb3JlLCBXX09L KSkgeworICAgICAgIGlmICghc3RhdCAoYWl4X2NvcmUsICZzdCkpCisgICAg ICAgICAgIGxhc3RfbW9kID0gc3Quc3RfbXRpbWU7CisgICB9CisgICBkaXIg PSBkaXJuYW1lIChhaXhfY29yZSk7CisgICAvKiBDaGVjayBpZiBkaXJlY3Rv cnkgaGFzIHRoZSB3cml0ZSBwZXJtaXNzaW9uLiAqLworICAgaWYgKGRpciAm JiAhYWNjZXNzIChkaXIsIFdfT0spICYmICFTX0lTRElSKHN0LnN0X21vZGUp KSB7CisgICAgICAgcmMgPSBwdGhyZWFkX2NyZWF0ZSgmZ2NvcmVfdCwgTlVM TCwgaXNzdWVfZ2VuY29yZV9haXgsICZnX2FyZ3MpOworICAgICAgIGlmICgh cmMpIHsKKyAgICAgICAgICAgc3RlcF8xX2V4dCAoMCwgMSwgIjEiKTsKKyAg ICAgICAgICAgaWYgKCFhY2Nlc3MgKGFpeF9jb3JlLCBSX09LKSAmJiAhbGFz dF9tb2QpCisgICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJf c3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNhdmVkIGNv cmVmaWxlICclcycgXG4iLCBhaXhfY29yZSk7CisgICAgICAgICAgIGVsc2Ug aWYgKCFhY2Nlc3MgKGFpeF9jb3JlLCBSX09LKSAmJiBsYXN0X21vZCkgIHsK KyAgICAgICAgICAgICAgIHN0YXQoYWl4X2NvcmUsICZzdCk7CisgICAgICAg ICAgICAgICBpZiAoc3Quc3RfbXRpbWUgPj0gbGFzdF9tb2QpCisgICAgICAg ICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoZ2RiX3N0ZG91dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTYXZlZCBjb3JlZmlsZSAn JXMnIFxuIiwgYWl4X2NvcmUpOworICAgICAgICAgICAgICAgZWxzZQorICAg ICAgICAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKGdkYl9zdGRvdXQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGdl bmVyYXRlIGNvcmVcbiIpOworICAgICAgICAgICB9CisgICAgICAgICAgIGVs c2UKKyAgICAgICAgICAgLyogVGhlaXIgY2FuIGJlIGEgc2xpZ2h0IGRlbGF5 IGluIHNjaGVkdWxpbmcgZ2VuY29yZSBjYWxsIGFmdGVyIGdkYidzCisgICAg ICAgICAgICAgIHNpbmdsZSBzdGVwIGZvciBhbiBtdWx0aS10aHJlYWRlZCBw cm9ncmFtcywgYW5kIGFib3ZlIGNoZWNrcyBtaWdodAorICAgICAgICAgICAg ICBmYWlsLiBCdXQgZXZlbnR1YWxseSB3ZSB3aWxsIGJlIGhhdmluZyBhIGNv cmUgZmlsZSBnZW5lcmF0ZWQgZnJvbQorICAgICAgICAgICAgICB0aGUgZ2Vu Y29yZS4gU28gZGlzcGxheSBpbmZvcm1hdGl2ZSBtZXNzYWdlIHRoYXQgY29y ZSB3aWxsIGJlIAorICAgICAgICAgICAgICBjcmVhdGVkLiAqLworICAgICAg ICAgICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3Rkb3V0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAiY29yZWZpbGUgbWlnaHQgYmUgc2F2ZWQgYXMg JyVzJyBcbiIsIGFpeF9jb3JlKTsgCisgICAgICAgfQorICAgfQorICAgZWxz ZQorICAgICAgIGZwcmludGZfZmlsdGVyZWQgKGdkYl9zdGRvdXQsCisgICAg ICAgICAgICAgICAgICAgICAgICJDYW4ndCBvcGVuIDolcyBmb3Igd3JpdGlu ZyBcbiIsIGFpeF9jb3JlKTsKKyAgI2Vsc2UKKwogICAvKiBPcGVuIHRoZSBv dXRwdXQgZmlsZS4gICovCiAgIGdkYl9iZmRfcmVmX3B0ciBvYmZkIChjcmVh dGVfZ2NvcmVfYmZkIChjb3JlZmlsZW5hbWUuZ2V0ICgpKSk7CiAKQEAgLTE3 NSw2ICsyNDMsNyBAQAogICB1bmxpbmtfZmlsZS5rZWVwICgpOwogCiAgIGZw cmludGZfZmlsdGVyZWQgKGdkYl9zdGRvdXQsICJTYXZlZCBjb3JlZmlsZSAl c1xuIiwgY29yZWZpbGVuYW1lLmdldCAoKSk7CisgICNlbmRpZgogfQogCiBz dGF0aWMgdW5zaWduZWQgbG9uZwotLS0gLi9nZGIvaW5mY21kLmNfb3JpZwky MDE3LTEwLTEwIDA0OjA2OjMwIC0wNTAwCisrKyAuL2dkYi9pbmZjbWQuYwky MDE3LTEwLTEwIDA0OjA3OjAyIC0wNTAwCkBAIC0xMzYsNiArMTM2LDExIEBA CiAKIGludCBzdGFydHVwX3dpdGhfc2hlbGwgPSAxOwogCit2b2lkIHN0ZXBf MV9leHQgKGludCBza2lwLCBpbnQgaW5zdCwgY2hhciAqc3RyaW5nKQorewor ICAgIHN0ZXBfMSAoc2tpcCwgaW5zdCwgc3RyaW5nKTsKK30KKwogDAogLyog QWNjZXNzb3Igcm91dGluZXMuICAqLwogCi0tLSAuL2luY2x1ZGUvbGliaWJl cnR5Lmhfb3JpZwkyMDE3LTEwLTEwIDA2OjE1OjUxIC0wNTAwCisrKyAuL2lu Y2x1ZGUvbGliaWJlcnR5LmgJMjAxNy0xMC0xMCAwNjo0OToyNCAtMDUwMApA QCAtMTA1LDYgKzEwNSw3IEBACiAgICB0byBmaW5kIHRoZSBkZWNsYXJhdGlv biBzbyBwcm92aWRlIGEgZnVsbHkgcHJvdG90eXBlZCBvbmUuICBJZiBpdAog ICAgaXMgMSwgd2UgZm91bmQgaXQgc28gZG9uJ3QgcHJvdmlkZSBhbnkgZGVj bGFyYXRpb24gYXQgYWxsLiAgKi8KICNpZiAhSEFWRV9ERUNMX0JBU0VOQU1F CisjaWZuZGVmIF9BSVgKICNpZiBkZWZpbmVkIChfX0dOVV9MSUJSQVJZX18g KSB8fCBkZWZpbmVkIChfX2xpbnV4X18pIFwKICB8fCBkZWZpbmVkIChfX0Zy ZWVCU0RfXykgfHwgZGVmaW5lZCAoX19PcGVuQlNEX18pIHx8IGRlZmluZWQg KF9fTmV0QlNEX18pIFwKICB8fCBkZWZpbmVkIChfX0NZR1dJTl9fKSB8fCBk ZWZpbmVkIChfX0NZR1dJTjMyX18pIHx8IGRlZmluZWQgKF9fTUlOR1czMl9f KSBcCkBAIC0xMTcsNiArMTE4LDcgQEAKICNkZWZpbmUgYmFzZW5hbWUgYmFz ZW5hbWVfY2Fubm90X2JlX3VzZWRfd2l0aG91dF9hX3Byb3RvdHlwZQogI2Vu ZGlmCiAjZW5kaWYKKyNlbmRpZgogCiAvKiBBIHdlbGwtZGVmaW5lZCBiYXNl bmFtZSAoKSB0aGF0IGlzIGFsd2F5cyBjb21waWxlZCBpbi4gICovCiAK --=_mixed 003C49C0652581B8_= Content-Type: application/octet-stream; name="testings" Content-Disposition: attachment; filename="testings" Content-Transfer-Encoding: base64 Content-length: 5320 VGVzdGluZyB3aXRoIHNhbXBsZSBwcm9ncmFtCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKUmVhZGluZyBzeW1ib2xzIGZyb20gL3RtcC90ZXN0Li4u ZG9uZS4KKGdkYikgYnIgbWFpbgpCcmVha3BvaW50IDEgYXQgMHgxMDAwMDQw YzogZmlsZSB0ZXN0LmMsIGxpbmUgNC4KKGdkYikgZ2NvcmUKWW91IGNhbid0 IGRvIHRoYXQgd2l0aG91dCBhIHByb2Nlc3MgdG8gZGVidWcuCihnZGIpIHIK U3RhcnRpbmcgcHJvZ3JhbTogL3RtcC90ZXN0IAoKQnJlYWtwb2ludCAxLCBt YWluICgpIGF0IHRlc3QuYzo0CjQgICAgICAgICAgaW50IGkgPSAyOwooZ2Ri KSBkaXNhc3NlbWJsZSAKRHVtcCBvZiBhc3NlbWJsZXIgY29kZSBmb3IgZnVu Y3Rpb24gbWFpbjoKLi4uLi4uCiAgIDB4MTAwMDA0MDggPCsxNj46ICAgIG1y ICAgICAgcjMxLHIxCj0+IDB4MTAwMDA0MGMgPCsyMD46ICAgIGxpICAgICAg cjksMgogICAweDEwMDAwNDEwIDwrMjQ+OiAgICBzdHcgICAgIHI5LDU2KHIz MSkKLi4uLi4uCkVuZCBvZiBhc3NlbWJsZXIgZHVtcC4KKGdkYikgZ2NvcmUK U2F2ZWQgY29yZWZpbGUgJ2NvcmUuMTQ2ODAyMzgnIAoweDEwMDAwNDEwICAg ICAgNCAgICAgICAgICBpbnQgaSA9IDI7CihnZGIpIGRpc2Fzc2VtYmxlIApE dW1wIG9mIGFzc2VtYmxlciBjb2RlIGZvciBmdW5jdGlvbiBtYWluOgouLi4u Li4KICAgMHgxMDAwMDQwYyA8KzIwPjogICAgbGkgICAgICByOSwyCj0+IDB4 MTAwMDA0MTAgPCsyND46ICAgIHN0dyAgICAgcjksNTYocjMxKQogICAweDEw MDAwNDE0IDwrMjg+OiAgICBsaSAgICAgIHI5LDk3Ci4uLi4uLgpFbmQgb2Yg YXNzZW1ibGVyIGR1bXAuCihnZGIpIGdjb3JlIC90bXAvY29yZV90ZXN0ClNh dmVkIGNvcmVmaWxlICcvdG1wL2NvcmVfdGVzdCcgCjUgICAgICAgICAgY2hh ciBqID0gJ2EnOwooZ2RiKSBkaXNhc3NlbWJsZSAKRHVtcCBvZiBhc3NlbWJs ZXIgY29kZSBmb3IgZnVuY3Rpb24gbWFpbjoKLi4uLi4uCiAgIDB4MTAwMDA0 MTAgPCsyND46ICAgIHN0dyAgICAgcjksNTYocjMxKQo9PiAweDEwMDAwNDE0 IDwrMjg+OiAgICBsaSAgICAgIHI5LDk3CiAgIDB4MTAwMDA0MTggPCszMj46 ICAgIHN0YiAgICAgcjksNjAocjMxKQouLi4uLi4KRW5kIG9mIGFzc2VtYmxl ciBkdW1wLgooZ2RiKSBnY29yZSAvdG1wL3Rlc3RfZ2NvcmUvdApDYW4ndCBv cGVuIDovdG1wL3Rlc3RfZ2NvcmUvdCBmb3Igd3JpdGluZyAKKGdkYikgZ2Nv cmUgL3RtcC90ZXN0X2djb3JlLyAKQ2FuJ3Qgb3BlbiA6L3RtcC90ZXN0X2dj b3JlLyBmb3Igd3JpdGluZyAKKGdkYikgZ2NvcmUgL3RtcC90ZXN0X2djb3Jl L3QgICAgICAgICAgICAgPD0gQWZ0ZXIgY3JlYXRpbmcgdGhlIGRpcmVjdG9y eSAvdG1wL3Rlc3RfZ2NvcmUKU2F2ZWQgY29yZWZpbGUgJy90bXAvdGVzdF9n Y29yZS90JyAKMHgxMDAwMDQxOCAgICAgIDUgICAgICAgICAgY2hhciBqID0g J2EnOwooZ2RiKSBkaXNhc3NlbWJsZSAKRHVtcCBvZiBhc3NlbWJsZXIgY29k ZSBmb3IgZnVuY3Rpb24gbWFpbjoKLi4uLi4uCiAgIDB4MTAwMDA0MTQgPCsy OD46ICAgIGxpICAgICAgcjksOTcKPT4gMHgxMDAwMDQxOCA8KzMyPjogICAg c3RiICAgICByOSw2MChyMzEpCiAgIDB4MTAwMDA0MWMgPCszNj46ICAgIGxp ICAgICAgcjMsNjAKLi4uLi4uCkVuZCBvZiBhc3NlbWJsZXIgZHVtcC4KKGdk YikgZ2NvcmUgfi90ZXN0X2djb3JlClNhdmVkIGNvcmVmaWxlICcvL3Rlc3Rf Z2NvcmUnIAo2ICAgICAgICAgIHByaW50ZigiVmFsdWUgb2YgajolZCBqOiVj XG4iLCBpLCBqKTsKKGdkYikgZGlzYXNzZW1ibGUgCkR1bXAgb2YgYXNzZW1i bGVyIGNvZGUgZm9yIGZ1bmN0aW9uIG1haW46Ci4uLi4uLgogICAweDEwMDAw NDE4IDwrMzI+OiAgICBzdGIgICAgIHI5LDYwKHIzMSkKPT4gMHgxMDAwMDQx YyA8KzM2PjogICAgbGkgICAgICByMyw2MAogICAweDEwMDAwNDIwIDwrNDA+ OiAgICBibCAgICAgIDB4MTAwMDA0OWMgPHNsZWVwPgouLi4uLi4KRW5kIG9m IGFzc2VtYmxlciBkdW1wLgooZ2RiKSAKCgpydW5uaW5nIHByb2Nlc3MKLS0t LS0tLS0tLS0tLS0tClJlYWRpbmcgc3ltYm9scyBmcm9tIC90bXAvdGVzdC4u LmRvbmUuCkF0dGFjaGluZyB0byBwcm9ncmFtOiAvdG1wL3Rlc3QsIHByb2Nl c3MgMTQ4MTEyMDIKMHhkMDEyMGE1NCBpbiBuc2xlZXAgKCkgZnJvbSAvdXNy L2xpYi9saWJjLmEoc2hyLm8pCihnZGIpIGRpc2Fzc2VtYmxlIApEdW1wIG9m IGFzc2VtYmxlciBjb2RlIGZvciBmdW5jdGlvbiBuc2xlZXA6Ci4uLi4uLgog ICAweGQwMTIwYTUwIDwrNTkyPjogICBibCAgICAgIDB4ZDAxMjExMDAgPF9u c2xlZXA+Cj0+IDB4ZDAxMjBhNTQgPCs1OTY+OiAgIGwgICAgICAgcjIsMjAo cjEpCiAgIDB4ZDAxMjBhNTggPCs2MDA+OiAgIG1yLiAgICAgcjI4LHIzCi4u Li4uLgpFbmQgb2YgYXNzZW1ibGVyIGR1bXAuCihnZGIpIGdjb3JlClNhdmVk IGNvcmVmaWxlICdjb3JlLjE0ODExMjAyJyAKMHhkMDEyMGE1OCBpbiBuc2xl ZXAgKCkgZnJvbSAvdXNyL2xpYi9saWJjLmEoc2hyLm8pCihnZGIpIGRpc2Fz c2VtYmxlIApEdW1wIG9mIGFzc2VtYmxlciBjb2RlIGZvciBmdW5jdGlvbiBu c2xlZXA6Ci4uLi4uLgogICAweGQwMTIwYTU0IDwrNTk2PjogICBsICAgICAg IHIyLDIwKHIxKQo9PiAweGQwMTIwYTU4IDwrNjAwPjogICBtci4gICAgIHIy OCxyMwogICAweGQwMTIwYTVjIDwrNjA0PjogICBiZXEgICAgIDB4ZDAxMjBh MTAgPG5zbGVlcCs1Mjg+CgoKTXVsdGktdGhyZWRlZCBhcHBsaWNhdGlvbgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClJlYWRpbmcgc3ltYm9scyBmcm9t IC90bXAvdGguLi5kb25lLgooZ2RiKSBiciBtYWluCkJyZWFrcG9pbnQgMSBh dCAweDEwMDAwNDhjOiBmaWxlIHRoLmMsIGxpbmUgMzEuCihnZGIpIHIKU3Rh cnRpbmcgcHJvZ3JhbTogL3RtcC90aCAKW05ldyBUaHJlYWQgMV0KW1N3aXRj aGluZyB0byBUaHJlYWQgMV0KClRocmVhZCAyIGhpdCBCcmVha3BvaW50IDEs IG1haW4gKCkgYXQgdGguYzozMQozMSAgICAgICAgICBpbnQgcmMgPSAwOwoo Z2RiKSBzCjMzICAgICAgICAgIHJjID0gcHRocmVhZF9jcmVhdGUoJnRpZDEs IE5VTEwsIHRocmVhZF9mdW5jMSwgTlVMTCk7CihnZGIpIAp2YWx1ZSBvZiBp IGluIHRocmVhZDEgaXMgOjEKW05ldyBUaHJlYWQgMjU4XQozNCAgICAgICAg ICBpZiAocmMpCihnZGIpIGdjb3JlCmNvcmVmaWxlIG1pZ2h0IGJlIHNhdmVk IGFzICdjb3JlLjE0ODExMjA0JyAKMHgxMDAwMDRiNCAgICAgIDM0ICAgICAg ICAgIGlmIChyYykKKGdkYikgcwozNyAgICAgICAgICByYyA9IHB0aHJlYWRf Y3JlYXRlKCZ0aWQyLCBOVUxMLCB0aHJlYWRfZnVuYzIsIE5VTEwpOwooZ2Ri KSAKdmFsdWUgb2YgaSBpbiB0aHJlYWQyIGlzIDoyCltOZXcgVGhyZWFkIDUx NV0KMzggICAgICAgICAgaWYgKHJjKQooZ2RiKSAKNDAgICAgICAgICAgcHRo cmVhZF9qb2luKHRpZDEsIE5VTEwpOwooZ2RiKSBnY29yZQpTYXZlZCBjb3Jl ZmlsZSAnY29yZS4xNDgxMTIwNCcgCjB4MTAwMDA1MDAgICAgICA0MCAgICAg ICAgICBwdGhyZWFkX2pvaW4odGlkMSwgTlVMTCk7CgoKTXVsdGktdGhyZWRl ZCBydW5uaW5nIHByb2Nlc3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KQXR0YWNoaW5nIHRvIHByb2dyYW06IC90bXAvdGgsIHByb2Nlc3MgMTUy MDQ1MjQKW05ldyBUaHJlYWQgMV0KW05ldyBUaHJlYWQgMjU4XQpbTmV3IFRo cmVhZCA1MTVdCltTd2l0Y2hpbmcgdG8gVGhyZWFkIDI1OF0KMHhkMDU0NDA3 MCBpbiBfcF9uc2xlZXAgKCkgZnJvbSAvdXNyL2xpYi9saWJwdGhyZWFkcy5h KHNocl94cGc1Lm8pCihnZGIpIGdjb3JlCmNvcmVmaWxlIG1pZ2h0IGJlIHNh dmVkIGFzICdjb3JlLjE1MjA0NTI0JyAKMHhkMDU0NDA3NCBpbiBfcF9uc2xl ZXAgKCkgZnJvbSAvdXNyL2xpYi9saWJwdGhyZWFkcy5hKHNocl94cGc1Lm8p CihnZGIpIAoK --=_mixed 003C49C0652581B8_=--