From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9913 invoked by alias); 21 Sep 2011 21:12:34 -0000 Received: (qmail 9905 invoked by uid 22791); 21 Sep 2011 21:12:31 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_RG X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Sep 2011 21:12:13 +0000 Received: from wpaz5.hot.corp.google.com (wpaz5.hot.corp.google.com [172.24.198.69]) by smtp-out.google.com with ESMTP id p8LLCCc2003240 for ; Wed, 21 Sep 2011 14:12:12 -0700 Received: from vws7 (vws7.prod.google.com [10.241.21.135]) by wpaz5.hot.corp.google.com with ESMTP id p8LLC4Na012374 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Wed, 21 Sep 2011 14:12:11 -0700 Received: by vws7 with SMTP id 7so2854781vws.21 for ; Wed, 21 Sep 2011 14:12:11 -0700 (PDT) Received: by 10.52.66.111 with SMTP id e15mr1151794vdt.29.1316639531316; Wed, 21 Sep 2011 14:12:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.66.111 with SMTP id e15mr1151786vdt.29.1316639531216; Wed, 21 Sep 2011 14:12:11 -0700 (PDT) Received: by 10.220.183.70 with HTTP; Wed, 21 Sep 2011 14:12:11 -0700 (PDT) In-Reply-To: References: <20110909183636.444932461B1@ruffy.mtv.corp.google.com> <201109131839.49816.pedro@codesourcery.com> <201109132015.04463.pedro@codesourcery.com> Date: Wed, 21 Sep 2011 21:46:00 -0000 Message-ID: Subject: Re: [RFA, doc RFA] Add gdb.add_command_alias From: Doug Evans To: Pedro Alves , Eli Zaretskii , gdb-patches Content-Type: multipart/mixed; boundary=20cf3078137e8e2ebd04ad7a0785 X-System-Of-Record: true 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: 2011-09/txt/msg00402.txt.bz2 --20cf3078137e8e2ebd04ad7a0785 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 999 How about this version? It depends on a patch to libiberty. I'll wait before that gets resolved before checking in of course. I can think of one doc issue. For command syntax in an @item existing usage would say to write something like @item alias [-a] -f @var{from} -t @var{to} instead of what I've written: @item alias [-a] -f FROM -t TO But I don't know how to properly refer to -f from in subsequent text except as @samp{-f FROM} which is why I wrote what I wrote. Suggestions welcome. 2011-09-21 Doug Evans Add new "alias" command. * NEWS: Mention new command. * command.h (valid_user_defined_cmd_name_p): Declare. * cli/cli-decode.c (valid_user_defined_cmd_name_p): New function. * cli/cli-cmds.c (alias_command): New function. (init_cli_cmds): Add new command. doc/ * gdb.texinfo (Extending GDB): Document alias command. testsuite/ * gdb.base/alias.exp: Add tests for alias command. --20cf3078137e8e2ebd04ad7a0785 Content-Type: text/plain; charset=US-ASCII; name="gdb-110921-alias-1.patch.txt" Content-Disposition: attachment; filename="gdb-110921-alias-1.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsut5u0a0 Content-length: 20525 MjAxMS0wOS0yMSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCUFk ZCBuZXcgImFsaWFzIiBjb21tYW5kLgoJKiBORVdTOiBNZW50aW9uIG5ldyBj b21tYW5kLgoJKiBjb21tYW5kLmggKHZhbGlkX3VzZXJfZGVmaW5lZF9jbWRf bmFtZV9wKTogRGVjbGFyZS4KCSogY2xpL2NsaS1kZWNvZGUuYyAodmFsaWRf dXNlcl9kZWZpbmVkX2NtZF9uYW1lX3ApOiBOZXcgZnVuY3Rpb24uCgkqIGNs aS9jbGktY21kcy5jIChhbGlhc19jb21tYW5kKTogTmV3IGZ1bmN0aW9uLgoJ KGluaXRfY2xpX2NtZHMpOiBBZGQgbmV3IGNvbW1hbmQuCgoJZG9jLwoJKiBn ZGIudGV4aW5mbyAoRXh0ZW5kaW5nIEdEQik6IERvY3VtZW50IGFsaWFzIGNv bW1hbmQuCgoJdGVzdHN1aXRlLwoJKiBnZGIuYmFzZS9hbGlhcy5leHA6IEFk ZCB0ZXN0cyBmb3IgYWxpYXMgY29tbWFuZC4KCkluZGV4OiBORVdTCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv TkVXUyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NTMKZGlmZiAtdSAtcCAt cjEuNDUzIE5FV1MKLS0tIE5FV1MJMTUgU2VwIDIwMTEgMTI6Mjc6MTggLTAw MDAJMS40NTMKKysrIE5FV1MJMjEgU2VwIDIwMTEgMjA6MTY6MDIgLTAwMDAK QEAgLTczLDcgKzczLDggQEAKICAgdGhlIGZpcnN0IGNvbm5lY3Rpb24gaXMg bWFkZS4gIFRoZSBsaXN0ZW5pbmcgcG9ydCB1c2VkIGJ5IEdEQnNlcnZlciB3 aWxsCiAgIGJlY29tZSBhdmFpbGFibGUgYWZ0ZXIgdGhhdC4KIAotKiBOZXcg Y29tbWFuZHMgImluZm8gbWFjcm9zIiwgYW5kICJpbmZvIGRlZmluaXRpb25z IiBoYXZlIGJlZW4gYWRkZWQuCisqIE5ldyBjb21tYW5kcyAiaW5mbyBtYWNy b3MiLCBhbmQgImluZm8gZGVmaW5pdGlvbnMiLAorICBhbmQgImFsaWFzIiBo YXZlIGJlZW4gYWRkZWQuCiAKICogQ2hhbmdlZCBjb21tYW5kcwogCkluZGV4 OiBjb21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9jb21tYW5kLmgsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuNzQKZGlmZiAtdSAtcCAtcjEuNzQgY29tbWFuZC5oCi0tLSBjb21t YW5kLmgJMTQgRmViIDIwMTEgMjM6NDE6MzMgLTAwMDAJMS43NAorKysgY29t bWFuZC5oCTIxIFNlcCAyMDExIDIwOjE2OjAyIC0wMDAwCkBAIC0xMDYsNiAr MTA2LDggQEAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQ7CiAKIC8qIEZvcndh cmQtZGVjbGFyYXRpb25zIG9mIHRoZSBlbnRyeS1wb2ludHMgb2YgY2xpL2Ns aS1kZWNvZGUuYy4gICovCiAKK2V4dGVybiBpbnQgdmFsaWRfdXNlcl9kZWZp bmVkX2NtZF9uYW1lX3AgKGNvbnN0IGNoYXIgKm5hbWUpOworCiBleHRlcm4g c3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmFkZF9jbWQgKGNoYXIgKiwgZW51 bSBjb21tYW5kX2NsYXNzLAogCQkJCQkgdm9pZCAoKmZ1bikgKGNoYXIgKiwg aW50KSwgY2hhciAqLAogCQkJCQkgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KiopOwpJbmRleDogY2xpL2NsaS1jbWRzLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9jbGkvY2xpLWNtZHMu Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTUKZGlmZiAtdSAtcCAtcjEu MTE1IGNsaS1jbWRzLmMKLS0tIGNsaS9jbGktY21kcy5jCTQgQXVnIDIwMTEg MTk6MTA6MTMgLTAwMDAJMS4xMTUKKysrIGNsaS9jbGktY21kcy5jCTIxIFNl cCAyMDExIDIwOjE2OjAyIC0wMDAwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5j bHVkZSAiZGVmcy5oIgogI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICNpbmNs dWRlICJhcmNoLXV0aWxzLmgiCisjaW5jbHVkZSAiZHluLXN0cmluZy5oIgog I2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCiAjaW5jbHVkZSAicmVh ZGxpbmUvdGlsZGUuaCIKICNpbmNsdWRlICJjb21wbGV0ZXIuaCIKQEAgLTEy NzIsNiArMTI3MywxMzQgQEAgYXByb3Bvc19jb21tYW5kIChjaGFyICpzZWFy Y2hzdHIsIGludCBmcgogICAgICAgZXJyb3IgKF8oIkVycm9yIGluIHJlZ3Vs YXIgZXhwcmVzc2lvbjogJXMiKSwgZXJyKTsKICAgICB9CiB9CisKKy8qIE1h a2UgYW4gYWxpYXMgb2YgYW4gZXhpc3RpbmcgY29tbWFuZC4gICovCisKK3N0 YXRpYyB2b2lkCithbGlhc19jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJv bV90dHkpCit7CisgIGludCBpOworICBpbnQgYWJicmV2X2ZsYWcgPSAwOwor ICBjaGFyICoqYXJndiwgKipmcm9tX2FyZ3YsICoqdG9fYXJndjsKKyAgY2hh ciAqZnJvbSA9IE5VTEw7CisgIGNoYXIgKnRvID0gTlVMTDsKKyAgc3RhdGlj IGNvbnN0IGNoYXIgdXNhZ2VbXSA9ICJVc2FnZTogYWxpYXMgWy1hXSAtZiBG Uk9NIC10IFRPIjsKKworICBpZiAoYXJncyA9PSBOVUxMKQorICAgIGVycm9y IChfKHVzYWdlKSk7CisgIAorICBhcmd2ID0gZ2RiX2J1aWxkYXJndiAoYXJn cyk7CisgIG1ha2VfY2xlYW51cF9mcmVlYXJndiAoYXJndik7CisKKyAgZm9y IChpID0gMDsgYXJndltpXSAhPSBOVUxMOyArK2kpCisgICAgeworICAgICAg aWYgKHN0cmNtcCAoYXJndltpXSwgIi1hIikgPT0gMCkKKwlhYmJyZXZfZmxh ZyA9IDE7CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItZiIp ID09IDApCisJeworCSAgaWYgKGZyb20gIT0gTlVMTCB8fCBhcmd2W2kgKyAx XSA9PSBOVUxMKQorCSAgICBlcnJvciAoXyh1c2FnZSkpOworCSAgZnJvbSA9 IGFyZ3ZbKytpXTsKKwl9CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3Zb aV0sICItdCIpID09IDApCisJeworCSAgaWYgKHRvICE9IE5VTEwgfHwgYXJn dltpICsgMV0gPT0gTlVMTCkKKwkgICAgZXJyb3IgKF8odXNhZ2UpKTsKKwkg IHRvID0gYXJndlsrK2ldOworCX0KKyAgICAgIGVsc2UKKwllcnJvciAoXyh1 c2FnZSkpOworICAgIH0KKworICBpZiAoZnJvbSA9PSBOVUxMKQorICAgIGVy cm9yIChfKHVzYWdlKSk7CisgIGlmICh0byA9PSBOVUxMKQorICAgIGVycm9y IChfKHVzYWdlKSk7CisKKyAgZnJvbV9hcmd2ID0gZ2RiX2J1aWxkYXJndiAo ZnJvbSk7CisgIG1ha2VfY2xlYW51cF9mcmVlYXJndiAoZnJvbV9hcmd2KTsK KyAgdG9fYXJndiA9IGdkYl9idWlsZGFyZ3YgKHRvKTsKKyAgbWFrZV9jbGVh bnVwX2ZyZWVhcmd2ICh0b19hcmd2KTsKKworICBpZiAoZnJvbV9hcmd2WzBd ID09IE5VTEwpCisgICAgZXJyb3IgKF8oIkVtcHR5IEZST00gY29tbWFuZC4i KSk7CisgIGlmICh0b19hcmd2WzBdID09IE5VTEwpCisgICAgZXJyb3IgKF8o IkVtcHR5IFRPIGNvbW1hbmQuIikpOworCisgIGZvciAoaSA9IDA7IHRvX2Fy Z3ZbaV0gIT0gTlVMTDsgKytpKQorICAgIHsKKyAgICAgIGlmICghIHZhbGlk X3VzZXJfZGVmaW5lZF9jbWRfbmFtZV9wICh0b19hcmd2W2ldKSkKKwl7CisJ ICBpZiAoaSA9PSAwKQorCSAgICBlcnJvciAoXygiSW52YWxpZCBjb21tYW5k IG5hbWU6ICVzIiksIHRvX2FyZ3ZbaV0pOworCSAgZWxzZQorCSAgICBlcnJv ciAoXygiSW52YWxpZCBjb21tYW5kIGVsZW1lbnQgbmFtZTogJXMiKSwgdG9f YXJndltpXSk7CisJfQorICAgIH0KKworICAvKiBJZiBUTyBpcyBvbmUgd29y ZCwgaXQgaXMgYW4gYWxpYXMgZm9yIHRoZSBlbnRpcmUgRlJPTSBjb21tYW5k LgorICAgICBFeGFtcGxlOiBhbGlhcyAtdCBzcGUgLWYgInNldCBwcmludCBl bGVtZW50cyIuCisKKyAgICAgT3RoZXJ3aXNlIEZST00gYW5kIFRPIG11c3Qg aGF2ZSB0aGUgc2FtZSBudW1iZXIgb2Ygd29yZHMsCisgICAgIGFuZCBldmVy eSB3b3JkIGV4Y2VwdCB0aGUgbGFzdCBtdXN0IG1hdGNoOyBhbmQgdGhlIGxh c3Qgd29yZCBvZgorICAgICBUTyBpcyBtYWRlIGFuIGFsaWFzIG9mIHRoZSBs YXN0IHdvcmQgb2YgRlJPTS4KKyAgICAgRXhhbXBsZTogYWxpYXMgLXQgInNl dCBwciBlbG1zIiAtZiAic2V0IHAgZWxlbSIKKyAgICAgTm90ZSB0aGF0IHVu YW1iaWd1b3VzIGFiYnJldmlhdGlvbnMgYXJlIGFsbG93ZWQuICAqLworCisg IGlmICh0b19hcmd2WzFdID09IE5VTEwpCisgICAgeworICAgICAgLyogYWRk X2NtZCByZXF1aXJlcyAqd2UqIGFsbG9jYXRlIHNwYWNlIGZvciBuYW1lLCBo ZW5jZSB0aGUgeHN0cmR1cC4gICovCisgICAgICBhZGRfY29tX2FsaWFzICh4 c3RyZHVwICh0b19hcmd2WzBdKSwgZnJvbSwgY2xhc3NfYWxpYXMsIGFiYnJl dl9mbGFnKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBpbnQgaTsK KyAgICAgIGR5bl9zdHJpbmdfdCBmcm9tX3ByZWZpeCwgdG9fcHJlZml4Owor ICAgICAgY2hhciAqZnJvbV9wcmVmaXhfY3N0ciwgKnRvX3ByZWZpeF9jc3Ry OworICAgICAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNfZnJvbSwgKmNf dG87CisgICAgICBpbnQgYXJnYyA9IGNvdW50YXJndiAoZnJvbV9hcmd2KTsK KworICAgICAgaWYgKGNvdW50YXJndiAodG9fYXJndikgIT0gYXJnYykKKwll cnJvciAoXygiTWlzbWF0Y2hlZCBjb21tYW5kIGxlbmd0aCBiZXR3ZWVuIEZS T00gYW5kIFRPLiIpKTsKKyAgICAgIGNfZnJvbSA9IGxvb2t1cF9jbWRfMSAo JiBmcm9tLCBjbWRsaXN0LCBOVUxMLCAxKTsKKyAgICAgIGlmIChjX2Zyb20g PT0gTlVMTCB8fCBjX2Zyb20gPT0gKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50 ICopIC0xKQorCWVycm9yIChfKCJJbnZhbGlkIEZST00gY29tbWFuZDogJXMi KSwgZnJvbSk7CisKKyAgICAgIC8qIENyZWF0ZSBjb3BpZXMgb2YgRlJPTSBh bmQgVE8gd2l0aG91dCB0aGUgbGFzdCB3b3JkLAorCSBhbmQgdXNlIHRoYXQg dG8gdmVyaWZ5IHRoZSBsZWFkaW5nIGVsZW1lbnRzIG1hdGNoLiAgKi8KKyAg ICAgIGZyb21fcHJlZml4ID0gZHluX3N0cmluZ19uZXcgKDEwKTsKKyAgICAg IG1ha2VfY2xlYW51cCAoKG1ha2VfY2xlYW51cF9mdHlwZSAqKSBkeW5fc3Ry aW5nX2RlbGV0ZSwgZnJvbV9wcmVmaXgpOworICAgICAgdG9fcHJlZml4ID0g ZHluX3N0cmluZ19uZXcgKDEwKTsKKyAgICAgIG1ha2VfY2xlYW51cCAoKG1h a2VfY2xlYW51cF9mdHlwZSAqKSBkeW5fc3RyaW5nX2RlbGV0ZSwgdG9fcHJl Zml4KTsKKworICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ2MgLSAxOyArK2kp CisJeworCSAgaWYgKGkgPiAwKQorCSAgICBkeW5fc3RyaW5nX2FwcGVuZF9j aGFyIChmcm9tX3ByZWZpeCwgJyAnKTsKKwkgIGR5bl9zdHJpbmdfYXBwZW5k X2NzdHIgKGZyb21fcHJlZml4LCBmcm9tX2FyZ3ZbaV0pOworCX0KKyAgICAg IGZyb21fcHJlZml4X2NzdHIgPSBkeW5fc3RyaW5nX2J1ZiAoZnJvbV9wcmVm aXgpOworICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ2MgLSAxOyArK2kpCisJ eworCSAgaWYgKGkgPiAwKQorCSAgICBkeW5fc3RyaW5nX2FwcGVuZF9jaGFy ICh0b19wcmVmaXgsICcgJyk7CisJICBkeW5fc3RyaW5nX2FwcGVuZF9jc3Ry ICh0b19wcmVmaXgsIHRvX2FyZ3ZbaV0pOworCX0KKyAgICAgIHRvX3ByZWZp eF9jc3RyID0gZHluX3N0cmluZ19idWYgKHRvX3ByZWZpeCk7CisKKyAgICAg IGNfZnJvbSA9IGxvb2t1cF9jbWRfMSAoJiBmcm9tX3ByZWZpeF9jc3RyLCBj bWRsaXN0LCBOVUxMLCAxKTsKKyAgICAgIC8qIFdlJ3ZlIGFscmVhZHkgdHJp ZWQgdG8gbG9vayB1cCBGUk9NLiAgKi8KKyAgICAgIGdkYl9hc3NlcnQgKGNf ZnJvbSAhPSBOVUxMICYmIGNfZnJvbSAhPSAoc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKikgLTEpOworICAgICAgZ2RiX2Fzc2VydCAoY19mcm9tLT5wcmVm aXhsaXN0ICE9IE5VTEwpOworICAgICAgY190byA9IGxvb2t1cF9jbWRfMSAo JiB0b19wcmVmaXhfY3N0ciwgY21kbGlzdCwgTlVMTCwgMSk7CisgICAgICBp ZiAoY190byAhPSBjX2Zyb20pCisJZXJyb3IgKF8oIkZST00gYW5kIFRPIGNv bW1hbmQgcHJlZml4ZXMgZG8gbm90IG1hdGNoLiIpKTsKKworICAgICAgLyog YWRkX2NtZCByZXF1aXJlcyAqd2UqIGFsbG9jYXRlIHNwYWNlIGZvciBuYW1l LCBoZW5jZSB0aGUgeHN0cmR1cC4gICovCisgICAgICBhZGRfYWxpYXNfY21k ICh4c3RyZHVwICh0b19hcmd2W2FyZ2MgLSAxXSksIGZyb21fYXJndlthcmdj IC0gMV0sCisJCSAgICAgY2xhc3NfYWxpYXMsIGFiYnJldl9mbGFnLCBjX2Zy b20tPnByZWZpeGxpc3QpOworICAgIH0KK30KIAwKIC8qIFByaW50IGEgbGlz dCBvZiBmaWxlcyBhbmQgbGluZSBudW1iZXJzIHdoaWNoIGEgdXNlciBtYXkg Y2hvb3NlIGZyb20KICAgIGluIG9yZGVyIHRvIGxpc3QgYSBmdW5jdGlvbiB3 aGljaCB3YXMgc3BlY2lmaWVkIGFtYmlndW91c2x5IChhcwpAQCAtMTY3NCw0 ICsxODAzLDE5IEBAIFdoZW4gJ29uJywgZWFjaCBjb21tYW5kIGlzIGRpc3Bs YXllZCBhcyAKIAkJCSAgIE5VTEwsCiAJCQkgICBOVUxMLAogCQkJICAgJnNl dGxpc3QsICZzaG93bGlzdCk7CisKKyAgYyA9IGFkZF9jb20gKCJhbGlhcyIs IGNsYXNzX3N1cHBvcnQsIGFsaWFzX2NvbW1hbmQsIF8oIlwKK0RlZmluZSBh IG5ldyBjb21tYW5kIHRoYXQgaXMgYW4gYWxpYXMgb2YgYW4gZXhpc3Rpbmcg Y29tbWFuZC5cblwKK1VzYWdlOiBhbGlhcyBbLWFdIC1mIEZST00gLXQgVE9c blwKK0ZST00gaXMgdGhlIGNvbW1hbmQgdG8gYWxpYXMgZnJvbS5cblwKK1RP IGlzIHRoZSBuZXcgY29tbWFuZCBiZWluZyBkZWZpbmVkLlxuXAorXCItZiBG Uk9NXCIgYW5kIFwiLXQgVE9cIiBtYXkgYXBwZWFyIGluIGVpdGhlciBvcmRl ci5cblwKK0lmIFwiLWFcIiBpcyBzcGVjaWZpZWQsIHRoZSBjb21tYW5kIGlz IGFuIGFiYnJldmlhdGlvbixcblwKK2FuZCB3aWxsIG5vdCBhcHBlYXIgaW4g aGVscCBjb21tYW5kIGxpc3Qgb3V0cHV0LlxuXAorXG5cCitFeGFtcGxlczpc blwKK01ha2UgXCJzcGVcIiBhbiBhbGlhcyBvZiBcInNldCBwcmludCBlbGVt ZW50c1wiOlxuXAorICBhbGlhcyAtZiBcInNldCBwcmludCBlbGVtZW50c1wi IC10IHNwZVxuXAorTWFrZSBcImVsbXNcIiBhbiBhbGlhcyBvZiBcImVsZW1l bnRzXCIgaW4gdGhlIFwic2V0IHByaW50XCIgY29tbWFuZDpcblwKKyAgYWxp YXMgLWYgXCJzZXQgcHJpbnQgZWxlbWVudHNcIiAtdCBcInNldCBwcmludCBl bG1zXCIiKSk7CiB9CkluZGV4OiBjbGkvY2xpLWRlY29kZS5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvY2xp L2NsaS1kZWNvZGUuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45NwpkaWZm IC11IC1wIC1yMS45NyBjbGktZGVjb2RlLmMKLS0tIGNsaS9jbGktZGVjb2Rl LmMJOCBTZXAgMjAxMSAxNzoyMDo0MyAtMDAwMAkxLjk3CisrKyBjbGkvY2xp LWRlY29kZS5jCTIxIFNlcCAyMDExIDIwOjE2OjAyIC0wMDAwCkBAIC0xMjYs NyArMTI2LDYgQEAgc2V0X2NtZF9jb21wbGV0ZXIgKHN0cnVjdCBjbWRfbGlz dF9lbGVtZQogICBjbWQtPmNvbXBsZXRlciA9IGNvbXBsZXRlcjsgLyogT2su ICAqLwogfQogCi0KIC8qIEFkZCBlbGVtZW50IG5hbWVkIE5BTUUuCiAgICBT cGFjZSBmb3IgTkFNRSBhbmQgRE9DIG11c3QgYmUgYWxsb2NhdGVkIGJ5IHRo ZSBjYWxsZXIuCiAgICBDTEFTUyBpcyB0aGUgdG9wIGxldmVsIGNhdGVnb3J5 IGludG8gd2hpY2ggY29tbWFuZHMgYXJlIGJyb2tlbiBkb3duCkBAIC0xMTM4 LDYgKzExMzcsMzEgQEAgZmluZF9jb21tYW5kX25hbWVfbGVuZ3RoIChjb25z dCBjaGFyICp0ZQogICByZXR1cm4gcCAtIHRleHQ7CiB9CiAKKy8qIFJldHVy biBUUlVFIGlmIE5BTUUgaXMgYSB2YWxpZCB1c2VyLWRlZmluZWQgY29tbWFu ZCBuYW1lLgorICAgVGhpcyBpcyBhIHN0cmljdGVyIHN1YnNldCBvZiBhbGwg Z2RiIGNvbW1hbmRzLAorICAgc2VlIGZpbmRfY29tbWFuZF9uYW1lX2xlbmd0 aC4gICovCisKK2ludAordmFsaWRfdXNlcl9kZWZpbmVkX2NtZF9uYW1lX3Ag KGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIGNvbnN0IGNoYXIgKnA7CisKKyAg LyogQWxhcyAiNDIiIGlzIGEgbGVnaXRpbWF0ZSB1c2VyLWRlZmluZWQgY29t bWFuZC4KKyAgICAgSW4gdGhlIGludGVyZXN0cyBvZiBub3QgYnJlYWtpbmcg YW55dGhpbmcgd2UgcHJlc2VydmUgdGhhdC4gICovCisKKyAgZm9yIChwID0g bmFtZTsgKnAgIT0gJ1wwJzsgKytwKQorICAgIHsKKyAgICAgIGlmIChpc2Fs bnVtICgqcCkKKwkgIHx8ICpwID09ICctJworCSAgfHwgKnAgPT0gJ18nKQor CTsgLyogT2suICAqLworICAgICAgZWxzZQorCXJldHVybiBGQUxTRTsKKyAg ICB9CisKKyAgcmV0dXJuIFRSVUU7Cit9CisKIC8qIFRoaXMgcm91dGluZSB0 YWtlcyBhIGxpbmUgb2YgVEVYVCBhbmQgYSBDTElTVCBpbiB3aGljaCB0byBz dGFydCB0aGUKICAgIGxvb2t1cC4gIFdoZW4gaXQgcmV0dXJucyBpdCB3aWxs IGhhdmUgaW5jcmVtZW50ZWQgdGhlIHRleHQgcG9pbnRlciBwYXN0CiAgICB0 aGUgc2VjdGlvbiBvZiB0ZXh0IGl0IG1hdGNoZWQsIHNldCAqUkVTVUxUX0xJ U1QgdG8gcG9pbnQgdG8gdGhlIGxpc3QgaW4KSW5kZXg6IGRvYy9nZGIudGV4 aW5mbwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Ny Yy9zcmMvZ2RiL2RvYy9nZGIudGV4aW5mbyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS44NjIKZGlmZiAtdSAtcCAtcjEuODYyIGdkYi50ZXhpbmZvCi0tLSBk b2MvZ2RiLnRleGluZm8JMTYgU2VwIDIwMTEgMDk6MDc6MDEgLTAwMDAJMS44 NjIKKysrIGRvYy9nZGIudGV4aW5mbwkyMSBTZXAgMjAxMSAyMDoxNjowMiAt MDAwMApAQCAtMjAzMjEsMTEgKzIwMzIxLDEyIEBAIERpc3BsYXlzIHdoZXRo ZXIgdGhlIGRlYnVnZ2VyIGlzIG9wZXJhdGkKIEBjaGFwdGVyIEV4dGVuZGlu ZyBAdmFsdWV7R0RCTn0KIEBjaW5kZXggZXh0ZW5kaW5nIEdEQgogCi1AdmFs dWV7R0RCTn0gcHJvdmlkZXMgdHdvIG1lY2hhbmlzbXMgZm9yIGV4dGVuc2lv bi4gIFRoZSBmaXJzdCBpcyBiYXNlZAotb24gY29tcG9zaXRpb24gb2YgQHZh bHVle0dEQk59IGNvbW1hbmRzLCBhbmQgdGhlIHNlY29uZCBpcyBiYXNlZCBv biB0aGUKLVB5dGhvbiBzY3JpcHRpbmcgbGFuZ3VhZ2UuCitAdmFsdWV7R0RC Tn0gcHJvdmlkZXMgdGhyZWUgbWVjaGFuaXNtcyBmb3IgZXh0ZW5zaW9uLiAg VGhlIGZpcnN0IGlzIGJhc2VkCitvbiBjb21wb3NpdGlvbiBvZiBAdmFsdWV7 R0RCTn0gY29tbWFuZHMsIHRoZSBzZWNvbmQgaXMgYmFzZWQgb24gdGhlCitQ eXRob24gc2NyaXB0aW5nIGxhbmd1YWdlLCBhbmQgdGhlIHRoaXJkIGlzIGRl ZmluaW5nIG5ldyBhbGlhc2VzIG9mCitleGlzdGluZyBjb21tYW5kcy4KIAot VG8gZmFjaWxpdGF0ZSB0aGUgdXNlIG9mIHRoZXNlIGV4dGVuc2lvbnMsIEB2 YWx1ZXtHREJOfSBpcyBjYXBhYmxlCitUbyBmYWNpbGl0YXRlIHRoZSB1c2Ug b2YgdGhlIGZpcnN0IHR3byBleHRlbnNpb25zLCBAdmFsdWV7R0RCTn0gaXMg Y2FwYWJsZQogb2YgZXZhbHVhdGluZyB0aGUgY29udGVudHMgb2YgYSBmaWxl LiAgV2hlbiBkb2luZyBzbywgQHZhbHVle0dEQk59CiBjYW4gcmVjb2duaXpl IHdoaWNoIHNjcmlwdGluZyBsYW5ndWFnZSBpcyBiZWluZyB1c2VkIGJ5IGxv b2tpbmcgYXQKIHRoZSBmaWxlbmFtZSBleHRlbnNpb24uICBGaWxlcyB3aXRo IGFuIHVucmVjb2duaXplZCBmaWxlbmFtZSBleHRlbnNpb24KQEAgLTIwMzYw LDYgKzIwMzYxLDcgQEAgRGlzcGxheSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0 aGUgQGNvZGV7cwogQG1lbnUKICogU2VxdWVuY2VzOjogICAgICAgICAgQ2Fu bmVkIFNlcXVlbmNlcyBvZiBDb21tYW5kcwogKiBQeXRob246OiAgICAgICAg ICAgICBTY3JpcHRpbmcgQHZhbHVle0dEQk59IHVzaW5nIFB5dGhvbgorKiBB bGlhc2VzOjogICAgICAgICAgICBDcmVhdGluZyBuZXcgc3BlbGxpbmdzIG9m IGV4aXN0aW5nIGNvbW1hbmRzCiBAZW5kIG1lbnUKIAogQG5vZGUgU2VxdWVu Y2VzCkBAIC0yNDA1OCw2ICsyNDA2MCw5MCBAQCBzdWJzdGl0dXRlX3Byb21w dCAoYGBmcmFtZTogXGYsCiBAZW5kIHNtYWxsZXhhbXBsZQogQGVuZCB0YWJs ZQogCitAbm9kZSBBbGlhc2VzCitAc2VjdGlvbiBDcmVhdGluZyBuZXcgc3Bl bGxpbmdzIG9mIGV4aXN0aW5nIGNvbW1hbmRzCisKK0l0IGlzIG9mdGVuIHVz ZWZ1bCB0byBkZWZpbmUgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZiBleGlzdGlu ZyBjb21tYW5kcy4KK0ZvciBleGFtcGxlLCBpZiBhIG5ldyBAdmFsdWV7R0RC Tn0gY29tbWFuZCBkZWZpbmVkIGluIFB5dGhvbiBoYXMKK2EgbG9uZyBuYW1l IHRvIHR5cGUsIGl0IGlzIGhhbmR5IHRvIGhhdmUgYW4gYWJicmV2aWF0ZWQg dmVyc2lvbiBvZiBpdAordGhhdCBpbnZvbHZlcyBsZXNzIHR5cGluZy4KKwor QHZhbHVle0dEQk59IGl0c2VsZiB1c2VzIGFsaWFzZXMuICBGb3IgZXhhbXBs ZSBAc2FtcHtzfSBpcyBhbiBhbGlhcworb2YgdGhlIEBzYW1we3N0ZXB9IGNv bW1hbmQgZXZlbiB0aG91Z2ggaXQgaXMgb3RoZXJ3aXNlIGFuIGFtYmlndW91 cworYWJicmV2aWF0aW9uIG9mIG90aGVyIGNvbW1hbmRzIGxpa2UgQHNhbXB7 c2V0fSBhbmQgQHNhbXB7c2hvd30uCisKK0FsaWFzZXMgYXJlIGFsc28gdXNl ZCB0byBwcm92aWRlIHNob3J0ZW5lZCBvciBtb3JlIGNvbW1vbiB2ZXJzaW9u cworb2YgbXVsdGktd29yZCBjb21tYW5kcy4gIEZvciBleGFtcGxlLCBAdmFs dWV7R0RCTn0gcHJvdmlkZXMgdGhlCitAc2FtcHt0dHl9IGFsaWFzIG9mIHRo ZSBAc2FtcHtzZXQgaW5mZXJpb3ItdHR5fSBjb21tYW5kLgorCitEZWZpbmUg YSBuZXcgYWxpYXMgd2l0aCB0aGUgQHNhbXB7YWxpYXN9IGNvbW1hbmQuCisK K0B0YWJsZSBAY29kZQorCitAa2luZGV4IGFsaWFzCitAaXRlbSBhbGlhcyBb LWFdIC1mIEZST00gLXQgVE8KKworQGVuZCB0YWJsZQorCitAc2FtcHstZiBG Uk9NfSBhbmQgQHNhbXB7LXQgVE99IG1heSBiZSBzcGVjaWZpZWQgaW4gZWl0 aGVyIG9yZGVyLgorCitUaGUgQHNhbXB7LWYgRlJPTX0gb3B0aW9uIHNwZWNp ZmllcyB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjb21tYW5kCit0aGF0IGlz IGJlaW5nIGFsaWFzZWQuCisKK1RoZSBAc2FtcHstdCBUT30gb3B0aW9uIHNw ZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgbmV3IGFsaWFzLgorCitUaGUgQHNh bXB7LWF9IG9wdGlvbiBzcGVjaWZpZXMgdGhhdCB0aGUgbmV3IGFsaWFzIGlz IGFuIGFiYnJldmlhdGlvbgorb2YgdGhlIEBzYW1we0ZST019IGNvbW1hbmQs IGFuZCB3aWxsIG5vdCBhcHBlYXIgaW4gaGVscCBjb21tYW5kIGxpc3RzLgor CitIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGUgc2hvd2luZyBob3cgdG8gbWFr ZSBhbiBhYmJyZXZpYXRpb24KK29mIGEgY29tbWFuZCBzbyB0aGF0IHRoZXJl IGlzIGxlc3MgdG8gdHlwZS4KK1N1cHBvc2UgeW91IHdlcmUgdGlyZWQgb2Yg dHlwaW5nIEBzYW1we2Rpc2FzfSwgdGhlIGN1cnJlbnQKK3Nob3J0ZXN0IHVu YW1iaWd1b3VzIGFiYnJldmlhdGlvbiBvZiB0aGUgQHNhbXB7ZGlzYXNzZW1i bGV9IGNvbW1hbmQKK2FuZCB5b3Ugd2FudGVkIGFuIGV2ZW4gc2hvcnRlciB2 ZXJzaW9uIG5hbWVkIEBzYW1we2RpfS4KK1RoZSBmb2xsb3dpbmcgd2lsbCBh Y2NvbXBsaXNoIHRoaXMuCisKK0BzbWFsbGV4YW1wbGUKKyhnZGIpIGFsaWFz IC1mIGRpc2FzIC10IGRpCitAZW5kIHNtYWxsZXhhbXBsZQorCitOb3RlIHRo YXQgYWxpYXNlcyBhcmUgZGlmZmVyZW50IHRoYW4gdXNlci1kZWZpbmVkIGNv bW1hbmRzLgorV2l0aCBhIHVzZXItZGVmaW5lZCBjb21tYW5kLCB5b3UgYWxz byBuZWVkIHRvIHdyaXRlIGRvY3VtZW50YXRpb24KK2ZvciBpdCB3aXRoIHRo ZSBAc2FtcHtkb2N1bWVudH0gY29tbWFuZC4KK0FuIGFsaWFzIGF1dG9tYXRp Y2FsbHkgcGlja3MgdXAgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGV4aXN0 aW5nIGNvbW1hbmQuCisKK0hlcmUgaXMgYW4gZXhhbXBsZSB3aGVyZSB3ZSBt YWtlIEBzYW1we2VsbXN9IGFuIGFiYnJldmlhdGlvbiBvZgorQHNhbXB7ZWxl bWVudHN9IGluIHRoZSBAc2FtcHtzZXQgcHJpbnQgZWxlbWVudHN9IGNvbW1h bmQuCitUaGlzIGlzIHRvIHNob3cgdGhhdCB5b3UgY2FuIG1ha2UgYW4gYWJi cmV2aWF0aW9uIG9mIGFueSBwYXJ0CitvZiBhIGNvbW1hbmQuCisKK0BzbWFs bGV4YW1wbGUKKyhnZGIpIGFsaWFzIC1mICJzZXQgcHJpbnQgZWxlbWVudHMi IC10ICJzZXQgcHJpbnQgZWxtcyIKKyhnZGIpIGFsaWFzIC1mICJzaG93IHBy aW50IGVsZW1lbnRzIiAtdCAic2hvdyBwcmludCBlbG1zIgorKGdkYikgc2V0 IHAgZWxtcyAyMAorKGdkYikgc2hvdyBwIGVsbXMKK0xpbWl0IG9uIHN0cmlu ZyBjaGFycyBvciBhcnJheSBlbGVtZW50cyB0byBwcmludCBpcyAyMDAuCitA ZW5kIHNtYWxsZXhhbXBsZQorCitOb3RlIHRoYXQgaWYgeW91IGFyZSBkZWZp bmluZyBhbiBhbGlhcyBvZiBhIEBzYW1we3NldH0gY29tbWFuZCwKK3lvdSBh bHNvIG5lZWQgdG8gZGVmaW5lIHRoZSBhbGlhcyBvZiB0aGUgY29ycmVzcG9u ZGluZyBAc2FtcHtzaG93fQorY29tbWFuZCwgaWYgZGVzaXJlZC4KKworVW5h bWJpZ3VvdXNseSBhYmJyZXZpYXRlZCBjb21tYW5kcyBhcmUgYWxsb3dlZCBp biBAc2FtcHtGUk9NfSBhbmQKK0BzYW1we1RPfSwganVzdCBhcyB0aGV5IGFy ZSBub3JtYWxseS4KKworQHNtYWxsZXhhbXBsZQorKGdkYikgYWxpYXMgLWYg InNldCBwIGVsZSIgLXQgInNldCBwciBlbG1zIgorQGVuZCBzbWFsbGV4YW1w bGUKKworRmluYWxseSwgaGVyZSBpcyBhbiBleGFtcGxlIHNob3dpbmcgdGhl IGNyZWF0aW9uIG9mIGEgb25lIHdvcmQKK2FsaWFzIGZvciBhIG1vcmUgY29t cGxleCBjb21tYW5kLgorVGhpcyBjcmVhdGVzIGFsaWFzIEBzYW1we3NwZX0g b2YgdGhlIGNvbW1hbmQgQHNhbXB7c2V0IHByaW50IGVsZW1lbnRzfS4KKwor QHNtYWxsZXhhbXBsZQorKGdkYikgYWxpYXMgLWYgInNldCBwcmludCBlbGVt ZW50cyIgLXQgc3BlCisoZ2RiKSBzcGUgMjAKK0BlbmQgc21hbGxleGFtcGxl CisKIEBub2RlIEludGVycHJldGVycwogQGNoYXB0ZXIgQ29tbWFuZCBJbnRl cnByZXRlcnMKIEBjaW5kZXggY29tbWFuZCBpbnRlcnByZXRlcnMKSW5kZXg6 IHRlc3RzdWl0ZS9nZGIuYmFzZS9hbGlhcy5leHAKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1aXRlL2dkYi5iYXNlL2FsaWFzLmV4 cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuYmFzZS9hbGlhcy5leHAKLS0tIC9k ZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0ZXN0c3Vp dGUvZ2RiLmJhc2UvYWxpYXMuZXhwCTIxIFNlcCAyMDExIDIwOjE2OjAzIC0w MDAwCkBAIC0wLDAgKzEsNTIgQEAKKyMgVGVzdCB0aGUgYWxpYXMgY29tbWFu ZC4KKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK2dkYl9leGl0CitnZGJfc3Rh cnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorCitw cm9jIHRlc3RfYWJicmV2X25vdF9wcmVzZW50IHsgYWxpYXNfbmFtZSB9IHsK KyAgICBnbG9iYWwgZ2RiX3Byb21wdAorICAgIHNldCBhbGlhc19wcmVzZW50 IDAKKyAgICBzZXQgdGVzdF9uYW1lICJhYmJyZXYgJGFsaWFzX25hbWUgbm90 IHByZXNlbnQgaW4gaGVscCBjb21tYW5kIGxpc3QiCisgICAgZ2RiX3Rlc3Rf bXVsdGlwbGUgImhlbHAgYWxpYXNlcyIgJHRlc3RfbmFtZSB7CisJLXJlICJc W1xyXG5cXSRhbGlhc19uYW1lIFxbXlxyXG5cXSoiIHsKKwkgICAgc2V0IGFs aWFzX3ByZXNlbnQgMQorCSAgICBleHBfY29udGludWUKKwl9CisJLXJlICIu KiRnZGJfcHJvbXB0ICQiIHsKKwkgICAgaWYgeyAhJGFsaWFzX3ByZXNlbnQg fSB0aGVuIHsKKwkJcGFzcyAkdGVzdF9uYW1lCisJICAgIH0gZWxzZSB7CisJ CWZhaWwgJHRlc3RfbmFtZQorCSAgICB9CisJfQorICAgIH0KK30KKworZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJhbGlhcyAtYSAtZiBzZXQgLXQgc2V0MiIKK2dk Yl90ZXN0X25vX291dHB1dCAic2V0MiBwcmludCBlbGVtZW50cyA0MiIKK2dk Yl90ZXN0ICJzaG93IHByaW50IGVsZW1lbnRzIiAiTGltaXQgLiogaXMgNDJc Wy5cXSIKK3Rlc3RfYWJicmV2X25vdF9wcmVzZW50IHNldDIKKworZ2RiX3Rl c3Rfbm9fb3V0cHV0ICJhbGlhcyAtZiBcInNldCBwIGVsZW1cIiAtdCBzcGUi CitnZGJfdGVzdF9ub19vdXRwdXQgInNwZSA0MyIKK2dkYl90ZXN0ICJzaG93 IHByaW50IGVsZW1lbnRzIiAiTGltaXQgLiogaXMgNDNcWy5cXSIKKworZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJhbGlhcyAtZiBcInNldCBwIGVsZW1cIiAtdCBc InNldCBwciBlbG0yXCIiCitnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwciBl bG0yIDQ0IgorZ2RiX3Rlc3QgInNob3cgcHJpbnQgZWxlbWVudHMiICJMaW1p dCAuKiBpcyA0NFxbLlxdIgorZ2RiX3Rlc3QgImhlbHAgc2V0IHByaW50IiAi c2V0IHByaW50IGVsbTIgLioiCg== --20cf3078137e8e2ebd04ad7a0785--