From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28007 invoked by alias); 10 Jan 2014 14:51:57 -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 27995 invoked by uid 89); 10 Jan 2014 14:51:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qa0-f53.google.com Received: from mail-qa0-f53.google.com (HELO mail-qa0-f53.google.com) (209.85.216.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 10 Jan 2014 14:51:53 +0000 Received: by mail-qa0-f53.google.com with SMTP id cm18so3535436qab.40 for ; Fri, 10 Jan 2014 06:51:51 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.224.29.4 with SMTP id o4mr7887352qac.43.1389365511076; Fri, 10 Jan 2014 06:51:51 -0800 (PST) Received: by 10.229.195.196 with HTTP; Fri, 10 Jan 2014 06:51:50 -0800 (PST) In-Reply-To: References: <87zjn47ref.fsf@fleche.redhat.com> Date: Fri, 10 Jan 2014 14:51:00 -0000 Message-ID: Subject: [PATCH 5/5] Fix for D demangling in GDB From: Iain Buclaw To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=001a11c1cdf2c056a004ef9edd08 X-IsSubscribed: yes X-SW-Source: 2014-01/txt/msg00280.txt.bz2 --001a11c1cdf2c056a004ef9edd08 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1026 On 10 January 2014 13:24, Iain Buclaw wrote: > On 9 January 2014 21:54, Tom Tromey wrote: >> The usual approach in cases like this is to do a "pure move" patch to >> move the functions to another file, followed by a second patch to >> implement the fixes. >> > > OK, I'll split it into two separate patches. > Couldn't find an easy way to move, then fix. So I did fix, then move. First change, fixes D demangling in GDB as per first post. 2014-01-10 Iain Buclaw gdb/ * d-lang.h (d_parse_symbol): Add declaration. * d-lang.c (extract_identifiers) (extract_type_info): Remove functions. (parse_call_convention, parse_attributes) (parse_function_types, parse_function_args) (parse_type, parse_identifier, call_convention_p) (d_parse_symbol): New functions. (d_demangle): Use d_parse_symbol to demangle D symbols. gdb/testsuite/ * gdb.dlang/demangle.exp: New file. --- --001a11c1cdf2c056a004ef9edd08 Content-Type: text/x-patch; charset=US-ASCII; name="dlang-p5a.patch" Content-Disposition: attachment; filename="dlang-p5a.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hq9kcgse0 Content-length: 49301 IGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEg KwogZ2RiL2QtbGFuZy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcy MiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBnZGIvZC1s YW5nLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIGdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICB8ICAgIDQgKwogZ2Ri L3Rlc3RzdWl0ZS9nZGIuZGxhbmcvZGVtYW5nbGUuZXhwIHwgIDIyMyArKysr KysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA4MjQgaW5zZXJ0aW9ucygrKSwg MTM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9kLWxhbmcuYyBi L2dkYi9kLWxhbmcuYwppbmRleCBlZmQwODEzLi5mNDVmYWU4IDEwMDY0NAot LS0gYS9nZGIvZC1sYW5nLmMKKysrIGIvZ2RiL2QtbGFuZy5jCkBAIC0yMywx MSArMjMsMTMgQEAKICNpbmNsdWRlICJ2YXJvYmouaCIKICNpbmNsdWRlICJk LWxhbmcuaCIKICNpbmNsdWRlICJjLWxhbmcuaCIKLSNpbmNsdWRlIDxzdHJp bmcuaD4KICNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgogI2luY2x1ZGUgImdk Yl9vYnN0YWNrLmgiCiAKLSNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUg InNhZmUtY3R5cGUuaCIKKworc3RhdGljIGNvbnN0IGNoYXIgKnBhcnNlX2Z1 bmN0aW9uX2FyZ3MgKHN0cnVjdCBvYnN0YWNrICosIGNvbnN0IGNoYXIgKik7 CitzdGF0aWMgY29uc3QgY2hhciAqcGFyc2VfdHlwZSAoc3RydWN0IG9ic3Rh Y2sgKiwgY29uc3QgY2hhciAqKTsKIAogLyogVGhlIG5hbWUgb2YgdGhlIHN5 bWJvbCB0byB1c2UgdG8gZ2V0IHRoZSBuYW1lIG9mIHRoZSBtYWluIHN1YnBy b2dyYW0uICAqLwogc3RhdGljIGNvbnN0IGNoYXIgRF9NQUlOW10gPSAiRCBt YWluIjsKQEAgLTUwLDE3NSArNTIsNjE5IEBAIGRfbWFpbl9uYW1lICh2b2lk KQogICByZXR1cm4gTlVMTDsKIH0KIAotLyogRXh0cmFjdCBpZGVudGlmaWVy cyBmcm9tIE1BTkdMRURfU1RSIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJVRi4K LSAgIFJldHVybiAxIG9uIHN1Y2Nlc3Mgb3IgMCBvbiBmYWlsdXJlLiAgKi8K LXN0YXRpYyBpbnQKLWV4dHJhY3RfaWRlbnRpZmllcnMgKGNvbnN0IGNoYXIg Km1hbmdsZWRfc3RyLCBzdHJ1Y3Qgb2JzdGFjayAqdGVtcGJ1ZikKKy8qIERl bWFuZ2xlIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24gZnJvbSBNQU5HTEUgYW5k IGFwcGVuZCBpdCB0byBURU1QQlVGLgorICAgUmV0dXJuIHRoZSByZW1haW5p bmcgc3RyaW5nIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBmYWlsdXJlLiAgKi8K K3N0YXRpYyBjb25zdCBjaGFyICoKK3BhcnNlX2NhbGxfY29udmVudGlvbiAo c3RydWN0IG9ic3RhY2sgKnRlbXBidWYsIGNvbnN0IGNoYXIgKm1hbmdsZSkK K3sKKyAgaWYgKG1hbmdsZSA9PSBOVUxMIHx8ICptYW5nbGUgPT0gJ1wwJykK KyAgICByZXR1cm4gbWFuZ2xlOworCisgIHN3aXRjaCAoKm1hbmdsZSkKKyAg ICB7CisgICAgY2FzZSAnRic6IC8qIChEKSAqLworICAgICAgbWFuZ2xlKys7 CisgICAgICBicmVhazsKKyAgICBjYXNlICdVJzogLyogKEMpICovCisgICAg ICBtYW5nbGUrKzsKKyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYs ICJleHRlcm4oQykgIik7CisgICAgICBicmVhazsKKyAgICBjYXNlICdXJzog LyogKFdpbmRvd3MpICovCisgICAgICBtYW5nbGUrKzsKKyAgICAgIG9ic3Rh Y2tfZ3Jvd19zdHIgKHRlbXBidWYsICJleHRlcm4oV2luZG93cykgIik7Cisg ICAgICBicmVhazsKKyAgICBjYXNlICdWJzogLyogKFBhc2NhbCkgKi8KKyAg ICAgIG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgImV4dGVybihQYXNjYWwpICIpOworICAgICAgYnJlYWs7CisgICAgY2Fz ZSAnUic6IC8qIChDKyspICovCisgICAgICBtYW5nbGUrKzsKKyAgICAgIG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJleHRlcm4oQysrKSAiKTsKKyAg ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm4gTlVMTDsK KyAgICB9CisKKyAgcmV0dXJuIG1hbmdsZTsKK30KKworLyogRGVtYW5nbGUg dGhlIEQgZnVuY3Rpb24gYXR0cmlidXRlcyBmcm9tIE1BTkdMRSBhbmQgYXBw ZW5kIGl0IHRvIFRFTVBCVUYuCisgICBSZXR1cm4gdGhlIHJlbWFpbmluZyBz dHJpbmcgb24gc3VjY2VzcyBvciBOVUxMIG9uIGZhaWx1cmUuICAqLworc3Rh dGljIGNvbnN0IGNoYXIgKgorcGFyc2VfYXR0cmlidXRlcyAoc3RydWN0IG9i c3RhY2sgKnRlbXBidWYsIGNvbnN0IGNoYXIgKm1hbmdsZSkKK3sKKyAgaWYg KG1hbmdsZSA9PSBOVUxMIHx8ICptYW5nbGUgPT0gJ1wwJykKKyAgICByZXR1 cm4gbWFuZ2xlOworCisgIHdoaWxlICgqbWFuZ2xlID09ICdOJykKKyAgICB7 CisgICAgICBtYW5nbGUrKzsKKyAgICAgIHN3aXRjaCAoKm1hbmdsZSkKKwl7 CisJY2FzZSAnYSc6IC8qIHB1cmUgKi8KKwkgIG1hbmdsZSsrOworCSAgb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInB1cmUgIik7CisJICBjb250aW51 ZTsKKwljYXNlICdiJzogLyogbm90aHJvdyAqLworCSAgbWFuZ2xlKys7CisJ ICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAibm90aHJvdyAiKTsKKwkg IGNvbnRpbnVlOworCWNhc2UgJ2MnOiAvKiByZWYgKi8KKwkgIG1hbmdsZSsr OworCSAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInJlZiAiKTsKKwkg IGNvbnRpbnVlOworCWNhc2UgJ2QnOiAvKiBAcHJvcGVydHkgKi8KKwkgIG1h bmdsZSsrOworCSAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIkBwcm9w ZXJ0eSAiKTsKKwkgIGNvbnRpbnVlOworCWNhc2UgJ2UnOiAvKiBAdHJ1c3Rl ZCAqLworCSAgbWFuZ2xlKys7CisJICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAiQHRydXN0ZWQgIik7CisJICBjb250aW51ZTsKKwljYXNlICdmJzog LyogQHNhZmUgKi8KKwkgIG1hbmdsZSsrOworCSAgb2JzdGFja19ncm93X3N0 ciAodGVtcGJ1ZiwgIkBzYWZlICIpOworCSAgY29udGludWU7CisJY2FzZSAn Zyc6CisJY2FzZSAnaCc6CisJICAvKiBpbm91dCBwYXJhbWV0ZXIgaXMgcmVw cmVzZW50ZWQgYXMgJ05nJy4KKwkgICAgIHZlY3RvciBwYXJhbWV0ZXIgaXMg cmVwcmVzZW50ZWQgYXMgJ05oJy4KKwkgICAgIElmIHdlIHNlZSB0aGlzLCB0 aGVuIHdlIGtub3cgd2UncmUgcmVhbGx5IGluIHRoZQorCSAgICAgcGFyYW1l dGVyIGxpc3QuICBSZXdpbmQgYW5kIGJyZWFrLiAgKi8KKwkgIG1hbmdsZS0t OworCX0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgcmV0dXJuIG1hbmdsZTsK K30KKworLyogRGVtYW5nbGUgdGhlIGZ1bmN0aW9uIHR5cGUgZnJvbSBNQU5H TEUgYW5kIGFwcGVuZCBpdCB0byBURU1QQlVGLgorICAgUmV0dXJuIHRoZSBy ZW1haW5pbmcgc3RyaW5nIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBvbiBmYWlsdXJl LiAgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK3BhcnNlX2Z1bmN0aW9uX3R5 cGUgKHN0cnVjdCBvYnN0YWNrICp0ZW1wYnVmLCBjb25zdCBjaGFyICptYW5n bGUpCit7CisgIHN0cnVjdCBvYnN0YWNrIG9iYXR0ciwgb2JhcmdzLCBvYnR5 cGU7CisgIGNoYXIgKmF0dHIsICphcmdzLCAqdHlwZTsKKyAgc2l6ZV90IHN6 YXR0ciwgc3phcmdzLCBzenR5cGU7CisKKyAgaWYgKG1hbmdsZSA9PSBOVUxM IHx8ICptYW5nbGUgPT0gJ1wwJykKKyAgICByZXR1cm4gbWFuZ2xlOworCisg IC8qIFRoZSBvcmRlciBvZiB0aGUgbWFuZ2xlZCBzdHJpbmcgaXM6CisgICAg IFR5cGVGdW5jdGlvbiA6OgorICAgICAgICBDYWxsQ29udmVudGlvbiBGdW5j QXR0cnMgQXJndW1lbnRzIEFyZ0Nsb3NlIFR5cGUKKworICAgICBUaGUgZGVt YW5nbGVkIHN0cmluZyBpcyByZS1vcmRlcmVkIGFzOgorICAgICAgICBDYWxs Q29udmVudGlvbiBUeXBlIEFyZ3VtZW50cyBGdW5jQXR0cnMKKyAgICovCisg IG9ic3RhY2tfaW5pdCAoJm9iYXR0cik7CisgIG9ic3RhY2tfaW5pdCAoJm9i YXJncyk7CisgIG9ic3RhY2tfaW5pdCAoJm9idHlwZSk7CisKKyAgLyogRnVu Y3Rpb24gY2FsbCBjb252ZW50aW9uLiAgKi8KKyAgbWFuZ2xlID0gcGFyc2Vf Y2FsbF9jb252ZW50aW9uICh0ZW1wYnVmLCBtYW5nbGUpOworCisgIC8qIEZ1 bmN0aW9uIGF0dHJpYnV0ZXMuICAqLworICBtYW5nbGUgPSBwYXJzZV9hdHRy aWJ1dGVzICgmb2JhdHRyLCBtYW5nbGUpOworICBzemF0dHIgPSBvYnN0YWNr X29iamVjdF9zaXplICgmb2JhdHRyKTsKKyAgYXR0ciA9IG9ic3RhY2tfZmlu aXNoICgmb2JhdHRyKTsKKworICAvKiBGdW5jdGlvbiBhcmd1bWVudHMuICAq LworICBtYW5nbGUgPSBwYXJzZV9mdW5jdGlvbl9hcmdzICgmb2JhcmdzLCBt YW5nbGUpOworICBzemFyZ3MgPSBvYnN0YWNrX29iamVjdF9zaXplICgmb2Jh cmdzKTsKKyAgYXJncyA9IG9ic3RhY2tfZmluaXNoICgmb2JhcmdzKTsKKwor ICAvKiBGdW5jdGlvbiByZXR1cm4gdHlwZS4gICovCisgIG1hbmdsZSA9IHBh cnNlX3R5cGUgKCZvYnR5cGUsIG1hbmdsZSk7CisgIHN6dHlwZSA9IG9ic3Rh Y2tfb2JqZWN0X3NpemUgKCZvYnR5cGUpOworICB0eXBlID0gb2JzdGFja19m aW5pc2ggKCZvYnR5cGUpOworCisgIC8qIEFwcGVuZCB0byBidWZmZXIgaW4g b3JkZXIuICovCisgIG9ic3RhY2tfZ3JvdyAodGVtcGJ1ZiwgdHlwZSwgc3p0 eXBlKTsKKyAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIigiKTsKKyAg b2JzdGFja19ncm93ICh0ZW1wYnVmLCBhcmdzLCBzemFyZ3MpOworICBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiKSAiKTsKKyAgb2JzdGFja19ncm93 ICh0ZW1wYnVmLCBhdHRyLCBzemF0dHIpOworCisgIG9ic3RhY2tfZnJlZSAo Jm9iYXR0ciwgTlVMTCk7CisgIG9ic3RhY2tfZnJlZSAoJm9iYXJncywgTlVM TCk7CisgIG9ic3RhY2tfZnJlZSAoJm9idHlwZSwgTlVMTCk7CisgIHJldHVy biBtYW5nbGU7Cit9CisKKy8qIERlbWFuZ2xlIHRoZSBhcmd1bWVudCBsaXN0 IGZyb20gTUFOR0xFIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJVRi4KKyAgIFJl dHVybiB0aGUgcmVtYWluaW5nIHN0cmluZyBvbiBzdWNjZXNzIG9yIE5VTEwg b24gZmFpbHVyZS4gICovCitzdGF0aWMgY29uc3QgY2hhciAqCitwYXJzZV9m dW5jdGlvbl9hcmdzIChzdHJ1Y3Qgb2JzdGFjayAqdGVtcGJ1ZiwgY29uc3Qg Y2hhciAqbWFuZ2xlKQoreworICBzaXplX3QgbiA9IDA7CisKKyAgd2hpbGUg KG1hbmdsZSAmJiAqbWFuZ2xlICE9ICdcMCcpCisgICAgeworICAgICAgc3dp dGNoICgqbWFuZ2xlKQorCXsKKwljYXNlICdYJzogLyogKHZhcmlhZGljIFQg dC4uLikgc3R5bGUuICAqLworCSAgbWFuZ2xlKys7CisJICBvYnN0YWNrX2dy b3dfc3RyICh0ZW1wYnVmLCAiLi4uIik7CisJICByZXR1cm4gbWFuZ2xlOwor CWNhc2UgJ1knOiAvKiAodmFyaWFkaWMgVCB0LCAuLi4pIHN0eWxlLiAgKi8K KwkgIG1hbmdsZSsrOworCSAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg IiwgLi4uIik7CisJICByZXR1cm4gbWFuZ2xlOworCWNhc2UgJ1onOiAvKiBO b3JtYWwgZnVuY3Rpb24uICAqLworCSAgbWFuZ2xlKys7CisJICByZXR1cm4g bWFuZ2xlOworCX0KKworICAgICAgaWYgKG4rKykKKwlvYnN0YWNrX2dyb3df c3RyICh0ZW1wYnVmLCAiLCAiKTsKKworICAgICAgaWYgKCptYW5nbGUgPT0g J00nKSAvKiBzY29wZShUKSAqLworCXsKKwkgIG1hbmdsZSsrOworCSAgb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgInNjb3BlICIpOworCX0KKworICAg ICAgc3dpdGNoICgqbWFuZ2xlKQorCXsKKwljYXNlICdKJzogLyogb3V0KFQp ICovCisJICBtYW5nbGUrKzsKKwkgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBi dWYsICJvdXQgIik7CisJICBicmVhazsKKwljYXNlICdLJzogLyogcmVmKFQp ICovCisJICBtYW5nbGUrKzsKKwkgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBi dWYsICJyZWYgIik7CisJICBicmVhazsKKwljYXNlICdMJzogLyogbGF6eShU KSAqLworCSAgbWFuZ2xlKys7CisJICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAibGF6eSAiKTsKKwkgIGJyZWFrOworCX0KKyAgICAgIG1hbmdsZSA9 IHBhcnNlX3R5cGUgKHRlbXBidWYsIG1hbmdsZSk7CisgICAgfQorICByZXR1 cm4gbWFuZ2xlOworfQorCisvKiBEZW1hbmdsZSB0aGUgdHlwZSBmcm9tIE1B TkdMRSBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYuCisgICBSZXR1cm4gdGhl IHJlbWFpbmluZyBzdHJpbmcgb24gc3VjY2VzcyBvciBOVUxMIG9uIGZhaWx1 cmUuICAqLworc3RhdGljIGNvbnN0IGNoYXIgKgorcGFyc2VfdHlwZSAoc3Ry dWN0IG9ic3RhY2sgKnRlbXBidWYsIGNvbnN0IGNoYXIgKm1hbmdsZSkKIHsK LSAgbG9uZyBpID0gMDsKKyAgaWYgKG1hbmdsZSA9PSBOVUxMIHx8ICptYW5n bGUgPT0gJ1wwJykKKyAgICByZXR1cm4gbWFuZ2xlOwogCi0gIHdoaWxlIChp c2RpZ2l0ICgqbWFuZ2xlZF9zdHIpKQorICBzd2l0Y2ggKCptYW5nbGUpCiAg ICAgewotICAgICAgY2hhciAqZW5kX3B0cjsKLQotICAgICAgaSA9IHN0cnRv bCAobWFuZ2xlZF9zdHIsICZlbmRfcHRyLCAxMCk7Ci0gICAgICBtYW5nbGVk X3N0ciA9IGVuZF9wdHI7Ci0gICAgICBpZiAoaSA8PSAwIHx8IHN0cmxlbiAo bWFuZ2xlZF9zdHIpIDwgaSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICBv YnN0YWNrX2dyb3cgKHRlbXBidWYsIG1hbmdsZWRfc3RyLCBpKTsKLSAgICAg IG1hbmdsZWRfc3RyICs9IGk7Ci0gICAgICBvYnN0YWNrX2dyb3dfc3RyICh0 ZW1wYnVmLCAiLiIpOworICAgIGNhc2UgJ08nOiAvKiBzaGFyZWQoVCkgKi8K KyAgICAgIG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgInNoYXJlZCgiKTsKKyAgICAgIG1hbmdsZSA9IHBhcnNlX3R5cGUg KHRlbXBidWYsIG1hbmdsZSk7CisgICAgICBvYnN0YWNrX2dyb3dfc3RyICh0 ZW1wYnVmLCAiKSIpOworICAgICAgcmV0dXJuIG1hbmdsZTsKKyAgICBjYXNl ICd4JzogLyogY29uc3QoVCkgKi8KKyAgICAgIG1hbmdsZSsrOworICAgICAg b2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImNvbnN0KCIpOworICAgICAg bWFuZ2xlID0gcGFyc2VfdHlwZSAodGVtcGJ1ZiwgbWFuZ2xlKTsKKyAgICAg IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICIpIik7CisgICAgICByZXR1 cm4gbWFuZ2xlOworICAgIGNhc2UgJ3knOiAvKiBpbW11dGFibGUoVCkgKi8K KyAgICAgIG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgImltbXV0YWJsZSgiKTsKKyAgICAgIG1hbmdsZSA9IHBhcnNlX3R5 cGUgKHRlbXBidWYsIG1hbmdsZSk7CisgICAgICBvYnN0YWNrX2dyb3dfc3Ry ICh0ZW1wYnVmLCAiKSIpOworICAgICAgcmV0dXJuIG1hbmdsZTsKKyAgICBj YXNlICdOJzoKKyAgICAgIG1hbmdsZSsrOworICAgICAgaWYgKCptYW5nbGUg PT0gJ2cnKSAvKiB3aWxkKFQpICovCisJeworCSAgbWFuZ2xlKys7CisJICBv YnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaW5vdXQoIik7CisJICBtYW5n bGUgPSBwYXJzZV90eXBlICh0ZW1wYnVmLCBtYW5nbGUpOworCSAgb2JzdGFj a19ncm93X3N0ciAodGVtcGJ1ZiwgIikiKTsKKwkgIHJldHVybiBtYW5nbGU7 CisJfQorICAgICAgZWxzZSBpZiAoKm1hbmdsZSA9PSAnaCcpIC8qIHZlY3Rv cihUKSAqLworCXsKKwkgIG1hbmdsZSsrOworCSAgLyogVGhlIGJhc2V0eXBl IGZvciB2ZWN0b3JzIGFyZSBhbHdheXMgc3RhdGljIGFycmF5cy4gICovCisJ ICBpZiAoKm1hbmdsZSAhPSAnRycpCisJICAgIHJldHVybiBOVUxMOworCSAg b2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIl9fdmVjdG9yKCIpOworCSAg bWFuZ2xlID0gcGFyc2VfdHlwZSAodGVtcGJ1ZiwgbWFuZ2xlKTsKKwkgIG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICIpIik7CisJICByZXR1cm4gbWFu Z2xlOworCX0KKyAgICAgIGVsc2UKKwlyZXR1cm4gTlVMTDsKKyAgICBjYXNl ICdBJzogLyogZHluYW1pYyBhcnJheSAoVFtdKSAqLworICAgICAgbWFuZ2xl Kys7CisgICAgICBtYW5nbGUgPSBwYXJzZV90eXBlICh0ZW1wYnVmLCBtYW5n bGUpOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIltdIik7 CisgICAgICByZXR1cm4gbWFuZ2xlOworICAgIGNhc2UgJ0cnOiAvKiBzdGF0 aWMgYXJyYXkgKFRbTl0pICovCisgICAgeworICAgICAgY29uc3QgY2hhciAq bnVtcHRyOworICAgICAgc2l6ZV90IG51bSA9IDA7CisgICAgICBtYW5nbGUr KzsKKworICAgICAgbnVtcHRyID0gbWFuZ2xlOworICAgICAgd2hpbGUgKElT RElHSVQgKCptYW5nbGUpKQorCXsKKwkgIG51bSsrOworCSAgbWFuZ2xlKys7 CisJfQorICAgICAgbWFuZ2xlID0gcGFyc2VfdHlwZSAodGVtcGJ1ZiwgbWFu Z2xlKTsKKyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJbIik7 CisgICAgICBvYnN0YWNrX2dyb3cgKHRlbXBidWYsIG51bXB0ciwgbnVtKTsK KyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJdIik7CisgICAg ICByZXR1cm4gbWFuZ2xlOworICAgIH0KKyAgICBjYXNlICdIJzogLyogYXNz b2NpYXRpdmUgYXJyYXkgKFRbVF0pICovCisgICAgeworICAgICAgc3RydWN0 IG9ic3RhY2sgb2J0eXBlOworICAgICAgY2hhciAqdHlwZTsKKyAgICAgIHNp emVfdCBzenR5cGU7CisgICAgICBtYW5nbGUrKzsKKworICAgICAgb2JzdGFj a19pbml0ICgmb2J0eXBlKTsKKyAgICAgIG1hbmdsZSA9IHBhcnNlX3R5cGUg KCZvYnR5cGUsIG1hbmdsZSk7CisgICAgICBzenR5cGUgPSBvYnN0YWNrX29i amVjdF9zaXplICgmb2J0eXBlKTsKKyAgICAgIHR5cGUgPSBvYnN0YWNrX2Zp bmlzaCAoJm9idHlwZSk7CisKKyAgICAgIG1hbmdsZSA9IHBhcnNlX3R5cGUg KHRlbXBidWYsIG1hbmdsZSk7CisgICAgICBvYnN0YWNrX2dyb3dfc3RyICh0 ZW1wYnVmLCAiWyIpOworICAgICAgb2JzdGFja19ncm93ICh0ZW1wYnVmLCB0 eXBlLCBzenR5cGUpOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgIl0iKTsKKworICAgICAgb2JzdGFja19mcmVlICgmb2J0eXBlLCBOVUxM KTsKKyAgICAgIHJldHVybiBtYW5nbGU7CisgICAgfQorICAgIGNhc2UgJ1An OiAvKiBwb2ludGVyIChUKikgKi8KKyAgICAgIG1hbmdsZSsrOworICAgICAg bWFuZ2xlID0gcGFyc2VfdHlwZSAodGVtcGJ1ZiwgbWFuZ2xlKTsKKyAgICAg IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICIqIik7CisgICAgICByZXR1 cm4gbWFuZ2xlOworICAgIGNhc2UgJ0knOiAvKiBpZGVudCBUICovCisgICAg Y2FzZSAnQyc6IC8qIGNsYXNzIFQgKi8KKyAgICBjYXNlICdTJzogLyogc3Ry dWN0IFQgKi8KKyAgICBjYXNlICdFJzogLyogZW51bSBUICovCisgICAgY2Fz ZSAnVCc6IC8qIHR5cGVkZWYgVCAqLworICAgICAgbWFuZ2xlKys7CisgICAg ICByZXR1cm4gZF9wYXJzZV9zeW1ib2wgKHRlbXBidWYsIG1hbmdsZSk7Cisg ICAgY2FzZSAnRCc6IC8qIGRlbGVnYXRlIFQgKi8KKyAgICAgIG1hbmdsZSsr OworICAgICAgbWFuZ2xlID0gcGFyc2VfZnVuY3Rpb25fdHlwZSAodGVtcGJ1 ZiwgbWFuZ2xlKTsKKyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYs ICJkZWxlZ2F0ZSIpOworICAgICAgcmV0dXJuIG1hbmdsZTsKKyAgICBjYXNl ICdCJzogLyogdHVwbGUgVCAqLworICAgICAgLyogVE9ETzogSGFuZGxlIHRo aXMuICAqLworICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvKiBGdW5jdGlv biB0eXBlcyAqLworICAgIGNhc2UgJ0YnOiBjYXNlICdVJzogY2FzZSAnVyc6 CisgICAgY2FzZSAnVic6IGNhc2UgJ1InOgorICAgICAgbWFuZ2xlID0gcGFy c2VfZnVuY3Rpb25fdHlwZSAodGVtcGJ1ZiwgbWFuZ2xlKTsKKyAgICAgIG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJmdW5jdGlvbiIpOworICAgICAg cmV0dXJuIG1hbmdsZTsKKworICAgIC8qIEJhc2ljIHR5cGVzICovCisgICAg Y2FzZSAnbic6CisgICAgICBtYW5nbGUrKzsKKyAgICAgIG9ic3RhY2tfZ3Jv d19zdHIgKHRlbXBidWYsICJub25lIik7CisgICAgICByZXR1cm4gbWFuZ2xl OworICAgIGNhc2UgJ3YnOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAidm9pZCIpOworICAgICAgcmV0dXJu IG1hbmdsZTsKKyAgICBjYXNlICdnJzoKKyAgICAgIG1hbmdsZSsrOworICAg ICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImJ5dGUiKTsKKyAgICAg IHJldHVybiBtYW5nbGU7CisgICAgY2FzZSAnaCc6CisgICAgICBtYW5nbGUr KzsKKyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1Ynl0ZSIp OworICAgICAgcmV0dXJuIG1hbmdsZTsKKyAgICBjYXNlICdzJzoKKyAgICAg IG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg InNob3J0Iik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAgIGNhc2UgJ3Qn OgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dyb3dfc3RyICh0 ZW1wYnVmLCAidXNob3J0Iik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAg IGNhc2UgJ2knOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dy b3dfc3RyICh0ZW1wYnVmLCAiaW50Iik7CisgICAgICByZXR1cm4gbWFuZ2xl OworICAgIGNhc2UgJ2snOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAidWludCIpOworICAgICAgcmV0dXJu IG1hbmdsZTsKKyAgICBjYXNlICdsJzoKKyAgICAgIG1hbmdsZSsrOworICAg ICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImxvbmciKTsKKyAgICAg IHJldHVybiBtYW5nbGU7CisgICAgY2FzZSAnbSc6CisgICAgICBtYW5nbGUr KzsKKyAgICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1bG9uZyIp OworICAgICAgcmV0dXJuIG1hbmdsZTsKKyAgICBjYXNlICdmJzoKKyAgICAg IG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg ImZsb2F0Iik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAgIGNhc2UgJ2Qn OgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dyb3dfc3RyICh0 ZW1wYnVmLCAiZG91YmxlIik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAg IGNhc2UgJ2UnOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dy b3dfc3RyICh0ZW1wYnVmLCAicmVhbCIpOworICAgICAgcmV0dXJuIG1hbmds ZTsKKworICAgIC8qIEltYWdpbmFyeSBhbmQgQ29tcGxleCB0eXBlcyAqLwor ICAgIGNhc2UgJ28nOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNr X2dyb3dfc3RyICh0ZW1wYnVmLCAiaWZsb2F0Iik7CisgICAgICByZXR1cm4g bWFuZ2xlOworICAgIGNhc2UgJ3AnOgorICAgICAgbWFuZ2xlKys7CisgICAg ICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaWRvdWJsZSIpOworICAg ICAgcmV0dXJuIG1hbmdsZTsKKyAgICBjYXNlICdqJzoKKyAgICAgIG1hbmds ZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImlyZWFs Iik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAgIGNhc2UgJ3EnOgorICAg ICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVm LCAiY2Zsb2F0Iik7CisgICAgICByZXR1cm4gbWFuZ2xlOworICAgIGNhc2Ug J3InOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0YWNrX2dyb3dfc3Ry ICh0ZW1wYnVmLCAiY2RvdWJsZSIpOworICAgICAgcmV0dXJuIG1hbmdsZTsK KyAgICBjYXNlICdjJzoKKyAgICAgIG1hbmdsZSsrOworICAgICAgb2JzdGFj a19ncm93X3N0ciAodGVtcGJ1ZiwgImNyZWFsIik7CisgICAgICByZXR1cm4g bWFuZ2xlOworCisgICAgLyogT3RoZXIgdHlwZXMgKi8KKyAgICBjYXNlICdi JzoKKyAgICAgIG1hbmdsZSsrOworICAgICAgb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgImJvb2wiKTsKKyAgICAgIHJldHVybiBtYW5nbGU7CisgICAg Y2FzZSAnYSc6CisgICAgICBtYW5nbGUrKzsKKyAgICAgIG9ic3RhY2tfZ3Jv d19zdHIgKHRlbXBidWYsICJjaGFyIik7CisgICAgICByZXR1cm4gbWFuZ2xl OworICAgIGNhc2UgJ3UnOgorICAgICAgbWFuZ2xlKys7CisgICAgICBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAid2NoYXIiKTsKKyAgICAgIHJldHVy biBtYW5nbGU7CisgICAgY2FzZSAndyc6CisgICAgICBtYW5nbGUrKzsKKyAg ICAgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJkY2hhciIpOworICAg ICAgcmV0dXJuIG1hbmdsZTsKKworICAgIGRlZmF1bHQ6IC8qIHVuaGFuZGxl ZCAqLworICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICBpZiAoKm1hbmds ZWRfc3RyID09ICdcMCcgfHwgaSA9PSAwKQotICAgIHJldHVybiAwOwotICBv YnN0YWNrX2JsYW5rICh0ZW1wYnVmLCAtMSk7Ci0gIHJldHVybiAxOwogfQog Ci0vKiBFeHRyYWN0IGFuZCBkZW1hbmdsZSB0eXBlIGZyb20gTUFOR0xFRF9T VFIgYW5kIGFwcGVuZCBpdCB0byBURU1QQlVGLgotICAgUmV0dXJuIDEgb24g c3VjY2VzcyBvciAwIG9uIGZhaWx1cmUuICAqLworLyogRXh0cmFjdCB0aGUg aWRlbnRpZmllciBmcm9tIE1BTkdMRSBhbmQgYXBwZW5kIGl0IHRvIFRFTVBC VUYuCisgICBSZXR1cm4gdGhlIHJlbWFpbmluZyBzdHJpbmcgb24gc3VjY2Vz cyBvciBOVUxMIG9uIGZhaWx1cmUuICAqLworc3RhdGljIGNvbnN0IGNoYXIg KgorcGFyc2VfaWRlbnRpZmllciAoc3RydWN0IG9ic3RhY2sgKnRlbXBidWYs IGNvbnN0IGNoYXIgKm1hbmdsZSkKK3sKKyAgaWYgKG1hbmdsZSA9PSBOVUxM IHx8ICptYW5nbGUgPT0gJ1wwJykKKyAgICByZXR1cm4gbWFuZ2xlOworCisg IGlmIChJU0RJR0lUICgqbWFuZ2xlKSkKKyAgICB7CisgICAgICBjaGFyICpl bmRwdHI7CisgICAgICBsb25nIGkgPSBzdHJ0b2wgKG1hbmdsZSwgJmVuZHB0 ciwgMTApOworCisgICAgICBpZiAoaSA8PSAwIHx8IHN0cmxlbiAoZW5kcHRy KSA8IGkpCisJcmV0dXJuIE5VTEw7CisKKyAgICAgIG1hbmdsZSA9IGVuZHB0 cjsKKworICAgICAgLyogTm8gc3VwcG9ydCBmb3IgZGVtYW5nbGluZyB0ZW1w bGF0ZXMuICAqLworICAgICAgaWYgKGkgPj0gNSAmJiBzdHJuY21wIChtYW5n bGUsICJfX1QiLCAzKSA9PSAwKQorCXJldHVybiBOVUxMOworCisgICAgICBp ZiAoc3RybmNtcCAobWFuZ2xlLCAiX19jdG9yIiwgaSkgPT0gMCkKKwl7CisJ ICAvKiBDb25zdHJ1Y3RvciBzeW1ib2wgZm9yIGEgY2xhc3Mvc3RydWN0LiAg Ki8KKwkgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ0aGlzIik7CisJ ICBtYW5nbGUgKz0gaTsKKwkgIHJldHVybiBtYW5nbGU7CisJfQorICAgICAg ZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlLCAiX19kdG9yIiwgaSkgPT0gMCkK Kwl7CisJICAvKiBEZXN0cnVjdG9yIHN5bWJvbCBmb3IgYSBjbGFzcy9zdHJ1 Y3QuICAqLworCSAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgIn50aGlz Iik7CisJICBtYW5nbGUgKz0gaTsKKwkgIHJldHVybiBtYW5nbGU7CisJfQor ICAgICAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlLCAiX19wb3N0YmxpdCIs IGkpID09IDApCisJeworCSAgLyogUG9zdGJsaXQgc3ltYm9sIGZvciBhIHN0 cnVjdC4gICovCisJICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAidGhp cyh0aGlzKSIpOworCSAgbWFuZ2xlICs9IGk7CisJICByZXR1cm4gbWFuZ2xl OworCX0KKyAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZSwgIl9faW5p dFoiLCBpKzEpID09IDApCisJeworCSAgLyogVGhlIHN0YXRpYyBpbml0aWFs aXNlciBmb3IgYSBnaXZlbiBzeW1ib2wuICAqLworCSAgb2JzdGFja19ncm93 X3N0ciAodGVtcGJ1ZiwgImluaXQkIik7CisJICBtYW5nbGUgKz0gaSArIDE7 CisJICByZXR1cm4gbWFuZ2xlOworCX0KKyAgICAgIGVsc2UgaWYgKHN0cm5j bXAgKG1hbmdsZSwgIl9fQ2xhc3NaIiwgaSsxKSA9PSAwKQorCXsKKwkgIC8q IFRoZSBjbGFzc2luZm8gc3ltYm9sIGZvciBhIGdpdmVuIGNsYXNzLiAgKi8K KwkgIG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjbGFzc2luZm8kIik7 CisJICBtYW5nbGUgKz0gaSArIDE7CisJICByZXR1cm4gbWFuZ2xlOworCX0K KyAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZSwgIl9fdnRibFoiLCBp KzEpID09IDApCisJeworCSAgLyogVGhlIHZ0YWJsZSBzeW1ib2wgZm9yIGEg Z2l2ZW4gY2xhc3MuICAqLworCSAgb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgInZ0YmwkIik7CisJICBtYW5nbGUgKz0gaSArIDE7CisJICByZXR1cm4g bWFuZ2xlOworCX0KKyAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZSwg Il9fSW50ZXJmYWNlWiIsIGkrMSkgPT0gMCkKKwl7CisJICAvKiBUaGUgaW50 ZXJmYWNlIHN5bWJvbCBmb3IgYSBnaXZlbiBjbGFzcy4gICovCisJICBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaW50ZXJmYWNlJCIpOworCSAgbWFu Z2xlICs9IGkgKyAxOworCSAgcmV0dXJuIG1hbmdsZTsKKwl9CisgICAgICBl bHNlIGlmIChzdHJuY21wIChtYW5nbGUsICJfX01vZHVsZUluZm9aIiwgaSsx KSA9PSAwKQorCXsKKwkgIC8qIFRoZSBNb2R1bGVJbmZvIHN5bWJvbCBmb3Ig YSBnaXZlbiBtb2R1bGUuICAqLworCSAgb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgIm1vZHVsZWluZm8kIik7CisJICBtYW5nbGUgKz0gaSArIDE7CisJ ICByZXR1cm4gbWFuZ2xlOworCX0KKyAgICAgIG9ic3RhY2tfZ3JvdyAodGVt cGJ1ZiwgbWFuZ2xlLCBpKTsKKyAgICAgIG1hbmdsZSArPSBpOworICAgIH0K KyAgZWxzZQorICAgIHJldHVybiBOVUxMOworCisgIHJldHVybiBtYW5nbGU7 Cit9CisKIHN0YXRpYyBpbnQKLWV4dHJhY3RfdHlwZV9pbmZvIChjb25zdCBj aGFyICptYW5nbGVkX3N0ciwgc3RydWN0IG9ic3RhY2sgKnRlbXBidWYpCitj YWxsX2NvbnZlbnRpb25fcCAoY29uc3QgY2hhciAqbWFuZ2xlKQogewotICBp ZiAoKm1hbmdsZWRfc3RyID09ICdcMCcpCi0gICAgcmV0dXJuIDA7Ci0gIHN3 aXRjaCAoKm1hbmdsZWRfc3RyKyspCisgIHNpemVfdCBpOworCisgIHN3aXRj aCAoKm1hbmdsZSkKICAgICB7Ci0gICAgICBjYXNlICdBJzogLyogZHluYW1p YyBhcnJheSAqLwotICAgICAgY2FzZSAnRyc6IC8qIHN0YXRpYyBhcnJheSAq LwotICAgICAgY2FzZSAnSCc6IC8qIGFzc29jaWF0aXZlIGFycmF5ICovCi0J aWYgKCFleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIsIHRlbXBidWYp KQotCSAgcmV0dXJuIDA7Ci0Jb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg IltdIik7Ci0JcmV0dXJuIDE7Ci0gICAgICBjYXNlICdQJzogLyogcG9pbnRl ciAqLwotCWlmICghZXh0cmFjdF90eXBlX2luZm8gKG1hbmdsZWRfc3RyLCB0 ZW1wYnVmKSkKLQkgIHJldHVybiAwOwotCW9ic3RhY2tfZ3Jvd19zdHIgKHRl bXBidWYsICIqIik7Ci0JcmV0dXJuIDE7Ci0gICAgICBjYXNlICdSJzogLyog cmVmZXJlbmNlICovCi0JaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xl ZF9zdHIsIHRlbXBidWYpKQotCSAgcmV0dXJuIDA7Ci0Jb2JzdGFja19ncm93 X3N0ciAodGVtcGJ1ZiwgIiYiKTsKLQlyZXR1cm4gMTsKLSAgICAgIGNhc2Ug J1onOiAvKiByZXR1cm4gdmFsdWUgKi8KLQlyZXR1cm4gZXh0cmFjdF90eXBl X2luZm8gKG1hbmdsZWRfc3RyLCB0ZW1wYnVmKTsKLSAgICAgIGNhc2UgJ0on OiAvKiBvdXQgKi8KLQlvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAib3V0 ICIpOwotCXJldHVybiBleHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIs IHRlbXBidWYpOwotICAgICAgY2FzZSAnSyc6IC8qIGlub3V0ICovCi0Jb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImlub3V0ICIpOwotCXJldHVybiBl eHRyYWN0X3R5cGVfaW5mbyAobWFuZ2xlZF9zdHIsIHRlbXBidWYpOwotICAg ICAgY2FzZSAnRSc6IC8qIGVudW0gKi8KLSAgICAgIGNhc2UgJ1QnOiAvKiB0 eXBlZGVmICovCi0gICAgICBjYXNlICdEJzogLyogZGVsZWdhdGUgKi8KLSAg ICAgIGNhc2UgJ0MnOiAvKiBjbGFzcyAqLwotICAgICAgY2FzZSAnUyc6IC8q IHN0cnVjdCAqLwotCXJldHVybiBleHRyYWN0X2lkZW50aWZpZXJzIChtYW5n bGVkX3N0ciwgdGVtcGJ1Zik7Ci0KLSAgICAgIC8qIGJhc2ljIHR5cGVzOiAq LwotICAgICAgY2FzZSAnbic6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYs ICJub25lIik7IHJldHVybiAxOwotICAgICAgY2FzZSAndic6IG9ic3RhY2tf Z3Jvd19zdHIgKHRlbXBidWYsICJ2b2lkIik7IHJldHVybiAxOwotICAgICAg Y2FzZSAnZyc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJieXRlIik7 IHJldHVybiAxOwotICAgICAgY2FzZSAnaCc6IG9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJ1Ynl0ZSIpOyByZXR1cm4gMTsKLSAgICAgIGNhc2UgJ3Mn OiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAic2hvcnQiKTsgcmV0dXJu IDE7Ci0gICAgICBjYXNlICd0Jzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1 ZiwgInVzaG9ydCIpOyByZXR1cm4gMTsKLSAgICAgIGNhc2UgJ2knOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiaW50Iik7IHJldHVybiAxOwotICAg ICAgY2FzZSAnayc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1aW50 Iik7IHJldHVybiAxOwotICAgICAgY2FzZSAnbCc6IG9ic3RhY2tfZ3Jvd19z dHIgKHRlbXBidWYsICJsb25nIik7IHJldHVybiAxOwotICAgICAgY2FzZSAn bSc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJ1bG9uZyIpOyByZXR1 cm4gMTsKLSAgICAgIGNhc2UgJ2YnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1w YnVmLCAiZmxvYXQiKTsgcmV0dXJuIDE7Ci0gICAgICBjYXNlICdkJzogb2Jz dGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImRvdWJsZSIpOyByZXR1cm4gMTsK LSAgICAgIGNhc2UgJ2UnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAi cmVhbCIpOyByZXR1cm4gMTsKLQotICAgICAgLyogaW1hZ2luYXJ5IGFuZCBj b21wbGV4OiAqLwotICAgICAgY2FzZSAnbyc6IG9ic3RhY2tfZ3Jvd19zdHIg KHRlbXBidWYsICJpZmxvYXQiKTsgcmV0dXJuIDE7Ci0gICAgICBjYXNlICdw Jzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1ZiwgImlkb3VibGUiKTsgcmV0 dXJuIDE7Ci0gICAgICBjYXNlICdqJzogb2JzdGFja19ncm93X3N0ciAodGVt cGJ1ZiwgImlyZWFsIik7IHJldHVybiAxOwotICAgICAgY2FzZSAncSc6IG9i c3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjZmxvYXQiKTsgcmV0dXJuIDE7 Ci0gICAgICBjYXNlICdyJzogb2JzdGFja19ncm93X3N0ciAodGVtcGJ1Ziwg ImNkb3VibGUiKTsgcmV0dXJuIDE7Ci0gICAgICBjYXNlICdjJzogb2JzdGFj a19ncm93X3N0ciAodGVtcGJ1ZiwgImNyZWFsIik7IHJldHVybiAxOwotCi0g ICAgICAvKiBvdGhlciB0eXBlczogKi8KLSAgICAgIGNhc2UgJ2InOiBvYnN0 YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiYml0Iik7IHJldHVybiAxOwotICAg ICAgY2FzZSAnYSc6IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICJjaGFy Iik7IHJldHVybiAxOwotICAgICAgY2FzZSAndSc6IG9ic3RhY2tfZ3Jvd19z dHIgKHRlbXBidWYsICJ3Y2hhciIpOyByZXR1cm4gMTsKLSAgICAgIGNhc2Ug J3cnOiBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiZGNoYXIiKTsgcmV0 dXJuIDE7Ci0KLSAgICAgIGRlZmF1bHQ6Ci0Jb2JzdGFja19ncm93X3N0ciAo dGVtcGJ1ZiwgInVua25vd24iKTsKLQlyZXR1cm4gMTsKKyAgICBjYXNlICdG JzogY2FzZSAnVSc6IGNhc2UgJ1YnOgorICAgIGNhc2UgJ1cnOiBjYXNlICdS JzoKKyAgICAgIHJldHVybiAxOworCisgICAgY2FzZSAnTSc6IC8qIFByZWZp eCBmb3IgZnVuY3Rpb25zIG5lZWRpbmcgJ3RoaXMnICovCisgICAgICBpID0g MTsKKyAgICAgIGlmIChtYW5nbGVbaV0gPT0gJ3gnKQorCWkrKzsKKworICAg ICAgc3dpdGNoIChtYW5nbGVbaV0pCisJeworCWNhc2UgJ0YnOiBjYXNlICdV JzogY2FzZSAnVic6CisJY2FzZSAnVyc6IGNhc2UgJ1InOgorCSAgcmV0dXJu IDE7CisJfQorCisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiAwOwogICAg IH0KIH0KIAorLyogRXh0cmFjdCBhbmQgZGVtYW5nbGUgdGhlIHN5bWJvbCBp biBNQU5HTEUgYW5kIGFwcGVuZCBpdCB0byBURU1QQlVGLgorICAgUmV0dXJu IHRoZSByZW1haW5pbmcgc2lnbmF0dXJlIG9uIHN1Y2Nlc3Mgb3IgTlVMTCBv biBmYWlsdXJlLiAgKi8KK2NvbnN0IGNoYXIgKgorZF9wYXJzZV9zeW1ib2wg KHN0cnVjdCBvYnN0YWNrICp0ZW1wYnVmLCBjb25zdCBjaGFyICptYW5nbGUp Cit7CisgIHNpemVfdCBuID0gMDsKKyAgZG8KKyAgICB7CisgICAgICBpZiAo bisrKQorCW9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICIuIik7CisKKyAg ICAgIG1hbmdsZSA9IHBhcnNlX2lkZW50aWZpZXIgKHRlbXBidWYsIG1hbmds ZSk7CisKKyAgICAgIGlmIChtYW5nbGUgJiYgY2FsbF9jb252ZW50aW9uX3Ag KG1hbmdsZSkpCisJeworCSAgY2hhciAqc2F2ZWQ7CisKKwkgIC8qIFNraXAg b3ZlciAndGhpcycgcGFyYW1ldGVyLiAgKi8KKwkgIGlmICgqbWFuZ2xlID09 ICdNJykKKwkgICAgbWFuZ2xlICs9IChtYW5nbGVbMV0gPT0gJ3gnKSA/IDIg OiAxOworCisJICAvKiBTa2lwIG92ZXIgY2FsbGluZyBjb252ZW50aW9uIGFu ZCBhdHRyaWJ1dGVzIGluIHF1YWxpZmllZCBuYW1lLiAgKi8KKwkgIHNhdmVk ID0gb2JzdGFja19uZXh0X2ZyZWUgKHRlbXBidWYpOworCSAgbWFuZ2xlID0g cGFyc2VfY2FsbF9jb252ZW50aW9uICh0ZW1wYnVmLCBtYW5nbGUpOworCSAg bWFuZ2xlID0gcGFyc2VfYXR0cmlidXRlcyAodGVtcGJ1ZiwgbWFuZ2xlKTsK KwkgIG9ic3RhY2tfbmV4dF9mcmVlICh0ZW1wYnVmKSA9IHNhdmVkOworCisJ ICBvYnN0YWNrX2dyb3dfc3RyICh0ZW1wYnVmLCAiKCIpOworCSAgbWFuZ2xl ID0gcGFyc2VfZnVuY3Rpb25fYXJncyAodGVtcGJ1ZiwgbWFuZ2xlKTsKKwkg IG9ic3RhY2tfZ3Jvd19zdHIgKHRlbXBidWYsICIpIik7CisKKwkgIC8qIERl bWFuZ2xlIHRoZSBmdW5jdGlvbiByZXR1cm4gdHlwZSBhcyBhIGtpbmQgb2Yg c2FuaXR5IHRlc3QuICAqLworCSAgaWYgKG1hbmdsZSAmJiAhSVNESUdJVCAo Km1hbmdsZSkpCisJICAgIHsKKwkgICAgICBzYXZlZCA9IG9ic3RhY2tfbmV4 dF9mcmVlICh0ZW1wYnVmKTsKKwkgICAgICBtYW5nbGUgPSBwYXJzZV90eXBl ICh0ZW1wYnVmLCBtYW5nbGUpOworCSAgICAgIG9ic3RhY2tfbmV4dF9mcmVl ICh0ZW1wYnVmKSA9IHNhdmVkOworCSAgICB9CisJfQorICAgIH0KKyAgd2hp bGUgKG1hbmdsZSAmJiBJU0RJR0lUICgqbWFuZ2xlKSk7CisKKyAgcmV0dXJu IG1hbmdsZTsKK30KKwogLyogSW1wbGVtZW50cyB0aGUgbGFfZGVtYW5nbGUg bGFuZ3VhZ2VfZGVmbiByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KIGNo YXIgKgogZF9kZW1hbmdsZSAoY29uc3QgY2hhciAqc3ltYm9sLCBpbnQgb3B0 aW9ucykKIHsKICAgc3RydWN0IG9ic3RhY2sgdGVtcGJ1ZjsKLSAgY2hhciAq b3V0X3N0cjsKLSAgdW5zaWduZWQgY2hhciBpc19mdW5jID0gMDsKKyAgY2hh ciAqcmVzdWx0OwogCi0gIGlmIChzeW1ib2wgPT0gTlVMTCkKKyAgaWYgKHN5 bWJvbCA9PSBOVUxMIHx8ICpzeW1ib2wgPT0gJ1wwJykKICAgICByZXR1cm4g TlVMTDsKICAgZWxzZSBpZiAoc3RyY21wIChzeW1ib2wsICJfRG1haW4iKSA9 PSAwKQogICAgIHJldHVybiB4c3RyZHVwICgiRCBtYWluIik7CiAKICAgb2Jz dGFja19pbml0ICgmdGVtcGJ1Zik7Ci0gIAotICBpZiAoc3ltYm9sWzBdID09 ICdfJyAmJiBzeW1ib2xbMV0gPT0gJ0QnKQotICAgIHsKLSAgICAgIHN5bWJv bCArPSAyOwotICAgICAgaXNfZnVuYyA9IDE7Ci0gICAgfQotICBlbHNlIGlm IChzdHJuY21wIChzeW1ib2wsICJfX0NsYXNzXyIsIDgpID09IDApCi0gICAg c3ltYm9sICs9IDg7Ci0gIGVsc2UgaWYgKHN0cm5jbXAgKHN5bWJvbCwgIl9f aW5pdF8iLCA3KSA9PSAwKQotICAgIHN5bWJvbCArPSA3OwotICBlbHNlIGlm IChzdHJuY21wIChzeW1ib2wsICJfX3Z0YmxfIiwgNykgPT0gMCkKLSAgICBz eW1ib2wgKz0gNzsKLSAgZWxzZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX19t b2RjdG9yXyIsIDEwKSA9PSAwKQotICAgIHN5bWJvbCArPSAxMDsKLSAgZWxz ZSBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX19tb2RkdG9yXyIsIDEwKSA9PSAw KQotICAgIHN5bWJvbCArPSAxMDsKLSAgZWxzZSBpZiAoc3RybmNtcCAoc3lt Ym9sLCAiX19Nb2R1bGVJbmZvXyIsIDEzKSA9PSAwKQotICAgIHN5bWJvbCAr PSAxMzsKKworICBpZiAoc3RybmNtcCAoc3ltYm9sLCAiX0QiLCAyKSA9PSAw KQorICAgIHN5bWJvbCArPSAyOwogICBlbHNlCiAgICAgewogICAgICAgb2Jz dGFja19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7CiAgICAgICByZXR1cm4gTlVM TDsKICAgICB9Ci0gIAotICBpZiAoIWV4dHJhY3RfaWRlbnRpZmllcnMgKHN5 bWJvbCwgJnRlbXBidWYpKQorCisgIGlmIChkX3BhcnNlX3N5bWJvbCAoJnRl bXBidWYsIHN5bWJvbCkgIT0gTlVMTCkKICAgICB7CisgICAgICBvYnN0YWNr X2dyb3dfc3RyMCAoJnRlbXBidWYsICIiKTsKKyAgICAgIHJlc3VsdCA9IHhz dHJkdXAgKG9ic3RhY2tfZmluaXNoICgmdGVtcGJ1ZikpOwogICAgICAgb2Jz dGFja19mcmVlICgmdGVtcGJ1ZiwgTlVMTCk7Ci0gICAgICByZXR1cm4gTlVM TDsKICAgICB9Ci0KLSAgb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICIo Iik7Ci0gIGlmIChpc19mdW5jID09IDEgJiYgKnN5bWJvbCA9PSAnRicpCisg IGVsc2UKICAgICB7Ci0gICAgICBzeW1ib2wrKzsKLSAgICAgIHdoaWxlICgq c3ltYm9sICE9ICdcMCcgJiYgKnN5bWJvbCAhPSAnWicpCi0JewotCSAgaWYg KGlzX2Z1bmMgPT0gMSkKLQkgICAgaXNfZnVuYysrOwotCSAgZWxzZQotCSAg ICBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgIiwgIik7Ci0JICBpZiAo IWV4dHJhY3RfdHlwZV9pbmZvIChzeW1ib2wsICZ0ZW1wYnVmKSkKLQkgICAg ewotCSAgICAgIG9ic3RhY2tfZnJlZSAoJnRlbXBidWYsIE5VTEwpOwotCSAg ICAgIHJldHVybiBOVUxMOwotCSAgIH0KLQl9Ci0gICAgIH0KLSAgb2JzdGFj a19ncm93X3N0cjAgKCZ0ZW1wYnVmLCAiKSIpOwotCi0gIC8qIERvZXNuJ3Qg ZGlzcGxheSB0aGUgcmV0dXJuIHR5cGUsIGJ1dCB3b3VsZG4ndCBiZSB0b28g aGFyZCB0byBkby4gICovCisgICAgICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVm LCBOVUxMKTsKKyAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICBvdXRf c3RyID0geHN0cmR1cCAob2JzdGFja19maW5pc2ggKCZ0ZW1wYnVmKSk7Ci0g IG9ic3RhY2tfZnJlZSAoJnRlbXBidWYsIE5VTEwpOwotICByZXR1cm4gb3V0 X3N0cjsKKyAgcmV0dXJuIHJlc3VsdDsKIH0KIAogLyogVGFibGUgbWFwcGlu ZyBvcGNvZGVzIGludG8gc3RyaW5ncyBmb3IgcHJpbnRpbmcgb3BlcmF0b3Jz CmRpZmYgLS1naXQgYS9nZGIvZC1sYW5nLmggYi9nZGIvZC1sYW5nLmgKaW5k ZXggNDU1YzgwOC4uYTFiNDQ1NiAxMDA2NDQKLS0tIGEvZ2RiL2QtbGFuZy5o CisrKyBiL2dkYi9kLWxhbmcuaApAQCAtNjIsNiArNjIsOCBAQCBleHRlcm4g Y2hhciAqZF9kZW1hbmdsZSAoY29uc3QgY2hhciAqbWFuZ2xlZCwgaW50IG9w dGlvbnMpOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5fZF90eXBl ICpidWlsdGluX2RfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CiAKK2V4dGVy biBjb25zdCBjaGFyICpkX3BhcnNlX3N5bWJvbCAoc3RydWN0IG9ic3RhY2sg KiwgY29uc3QgY2hhciAqKTsKKwogLyogRGVmaW5lZCBpbiBkLXZhbHByaW50 LmMgICovCiAKIGV4dGVybiB2b2lkIGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCmRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5kbGFuZy9kZW1hbmdsZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5kbGFuZy9kZW1hbmdsZS5leHAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyMzdjNQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmRsYW5nL2RlbWFuZ2xlLmV4cApA QCAtMCwwICsxLDIyMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisK KyMgVGVzdCBEIGRlbWFuZ2xpbmcuCisjIFRoZSB0ZXN0cyBoZXJlIGludGVu dGlvbmFsbHkgZG8gbm90IHJlcXVpcmUgYSBEIGNvbXBpbGVyLgorCitsb2Fk X2xpYiAiZC1zdXBwb3J0LmV4cCIKKworaWYgeyBbc2tpcF9kX3Rlc3RzXSB9 IHsgY29udGludWUgfQorCisjIyMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgdGVz dF9kZW1hbmdsaW5nIGFuZCB0ZXN0X2RlbWFuZ2xpbmdfZXhhY3QuCitwcm9j IHRlc3RfZGVtYW5nbGluZyB7dGVzdCByZXN1bHR9IHsKKyAgICBnZGJfdGVz dF9leGFjdCAibWFpbnRlbmFuY2UgZGVtYW5nbGUgJHRlc3QiICRyZXN1bHQg JHRlc3QKK30KKworIworIyAgVGVzdCBEIGRlbWFuZ2xlcgorIworCitwcm9j IHRlc3RfZF9kZW1hbmdsaW5nIHt9IHsKKworICAgIHRlc3RfZGVtYW5nbGlu ZyAiX0RtYWluIiAiRCBtYWluIgorCisgICAgdGVzdF9kZW1hbmdsaW5nICJf RDhkZW1hbmdsZTR0ZXN0RmFadiIgImRlbWFuZ2xlLnRlc3QoY2hhcikiCisg ICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RmJadiIgImRl bWFuZ2xlLnRlc3QoYm9vbCkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhk ZW1hbmdsZTR0ZXN0RmNadiIgImRlbWFuZ2xlLnRlc3QoY3JlYWwpIgorICAg IHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZkWnYiICJkZW1h bmdsZS50ZXN0KGRvdWJsZSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhk ZW1hbmdsZTR0ZXN0RmVadiIgImRlbWFuZ2xlLnRlc3QocmVhbCkiCisgICAg dGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RmZadiIgImRlbWFu Z2xlLnRlc3QoZmxvYXQpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVt YW5nbGU0dGVzdEZnWnYiICJkZW1hbmdsZS50ZXN0KGJ5dGUpIgorICAgIHRl c3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZoWnYiICJkZW1hbmds ZS50ZXN0KHVieXRlKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFu Z2xlNHRlc3RGaVp2IiAiZGVtYW5nbGUudGVzdChpbnQpIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZqWnYiICJkZW1hbmdsZS50 ZXN0KGlyZWFsKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xl NHRlc3RGa1p2IiAiZGVtYW5nbGUudGVzdCh1aW50KSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGbFp2IiAiZGVtYW5nbGUudGVz dChsb25nKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRl c3RGbVp2IiAiZGVtYW5nbGUudGVzdCh1bG9uZykiCisgICAgdGVzdF9kZW1h bmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rm5adiIgImRlbWFuZ2xlLnRlc3Qo bm9uZSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0 Rm9adiIgImRlbWFuZ2xlLnRlc3QoaWZsb2F0KSIKKyAgICB0ZXN0X2RlbWFu Z2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGcFp2IiAiZGVtYW5nbGUudGVzdChp ZG91YmxlKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRl c3RGcVp2IiAiZGVtYW5nbGUudGVzdChjZmxvYXQpIgorICAgIHRlc3RfZGVt YW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZyWnYiICJkZW1hbmdsZS50ZXN0 KGNkb3VibGUpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0 dGVzdEZzWnYiICJkZW1hbmdsZS50ZXN0KHNob3J0KSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGdFp2IiAiZGVtYW5nbGUudGVz dCh1c2hvcnQpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0 dGVzdEZ1WnYiICJkZW1hbmdsZS50ZXN0KHdjaGFyKSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGdlp2IiAiZGVtYW5nbGUudGVz dCh2b2lkKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRl c3RGd1p2IiAiZGVtYW5nbGUudGVzdChkY2hhcikiCisKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGT2FadiIgImRlbWFuZ2xlLnRl c3Qoc2hhcmVkKGNoYXIpKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRl bWFuZ2xlNHRlc3RGeGFadiIgImRlbWFuZ2xlLnRlc3QoY29uc3QoY2hhcikp IgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZ5YVp2 IiAiZGVtYW5nbGUudGVzdChpbW11dGFibGUoY2hhcikpIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZOZ2FadiIgImRlbWFuZ2xl LnRlc3QoaW5vdXQoY2hhcikpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4 ZGVtYW5nbGU0dGVzdEZPeGFadiIgImRlbWFuZ2xlLnRlc3Qoc2hhcmVkKGNv bnN0KGNoYXIpKSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmds ZTR0ZXN0Rk9OZ2FadiIgImRlbWFuZ2xlLnRlc3Qoc2hhcmVkKGlub3V0KGNo YXIpKSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0 RkFhWnYiICJkZW1hbmdsZS50ZXN0KGNoYXJcW1xdKSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGQUFhWnYiICJkZW1hbmdsZS50 ZXN0KGNoYXJcW1xdXFtcXSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhk ZW1hbmdsZTR0ZXN0RkFBQWFadiIgImRlbWFuZ2xlLnRlc3QoY2hhclxbXF1c W1xdXFtcXSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0 ZXN0Rkc0MmFadiIgImRlbWFuZ2xlLnRlc3QoY2hhclxbNDJcXSkiCisgICAg dGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rkc0Mkc0MmFadiIg ImRlbWFuZ2xlLnRlc3QoY2hhclxbNDJcXVxbNDJcXSkiCisgICAgdGVzdF9k ZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rkc0Mkc0Mkc0MmFadiIgImRl bWFuZ2xlLnRlc3QoY2hhclxbNDJcXVxbNDJcXVxbNDJcXSkiCisgICAgdGVz dF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkcxMjM0NTY3ODkwYVp2 IiAiZGVtYW5nbGUudGVzdChjaGFyXFsxMjM0NTY3ODkwXF0pIgorICAgIHRl c3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZIYWFadiIgImRlbWFu Z2xlLnRlc3QoY2hhclxbY2hhclxdKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcg Il9EOGRlbWFuZ2xlNHRlc3RGSEhhYWFadiIgImRlbWFuZ2xlLnRlc3QoY2hh clxbY2hhclxbY2hhclxdXF0pIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4 ZGVtYW5nbGU0dGVzdEZQYVp2IiAiZGVtYW5nbGUudGVzdChjaGFyKikiCisg ICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RlBQYVp2IiAi ZGVtYW5nbGUudGVzdChjaGFyKiopIgorICAgIHRlc3RfZGVtYW5nbGluZyAi X0Q4ZGVtYW5nbGU0dGVzdEZQUFBhWnYiICJkZW1hbmdsZS50ZXN0KGNoYXIq KiopIgorCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0 Rk5oRzhnWnYiICJkZW1hbmdsZS50ZXN0KF9fdmVjdG9yKGJ5dGVcWzhcXSkp IgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZOaEcx NmdadiIgImRlbWFuZ2xlLnRlc3QoX192ZWN0b3IoYnl0ZVxbMTZcXSkpIgor ICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZOaEczMmda diIgImRlbWFuZ2xlLnRlc3QoX192ZWN0b3IoYnl0ZVxbMzJcXSkpIgorICAg IHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZOaEc0c1p2IiAi ZGVtYW5nbGUudGVzdChfX3ZlY3RvcihzaG9ydFxbNFxdKSkiCisgICAgdGVz dF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzhzWnYiICJkZW1h bmdsZS50ZXN0KF9fdmVjdG9yKHNob3J0XFs4XF0pKSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGTmhHMTZzWnYiICJkZW1hbmds ZS50ZXN0KF9fdmVjdG9yKHNob3J0XFsxNlxdKSkiCisgICAgdGVzdF9kZW1h bmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzJpWnYiICJkZW1hbmdsZS50 ZXN0KF9fdmVjdG9yKGludFxbMlxdKSkiCisgICAgdGVzdF9kZW1hbmdsaW5n ICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzRpWnYiICJkZW1hbmdsZS50ZXN0KF9f dmVjdG9yKGludFxbNFxdKSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhk ZW1hbmdsZTR0ZXN0Rk5oRzhpWnYiICJkZW1hbmdsZS50ZXN0KF9fdmVjdG9y KGludFxbOFxdKSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmds ZTR0ZXN0Rk5oRzFsWnYiICJkZW1hbmdsZS50ZXN0KF9fdmVjdG9yKGxvbmdc WzFcXSkpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVz dEZOaEcybFp2IiAiZGVtYW5nbGUudGVzdChfX3ZlY3Rvcihsb25nXFsyXF0p KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGTmhH NGxadiIgImRlbWFuZ2xlLnRlc3QoX192ZWN0b3IobG9uZ1xbNFxdKSkiCisg ICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzJmWnYi ICJkZW1hbmdsZS50ZXN0KF9fdmVjdG9yKGZsb2F0XFsyXF0pKSIKKyAgICB0 ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGTmhHNGZadiIgImRl bWFuZ2xlLnRlc3QoX192ZWN0b3IoZmxvYXRcWzRcXSkpIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZOaEc4Zlp2IiAiZGVtYW5n bGUudGVzdChfX3ZlY3RvcihmbG9hdFxbOFxdKSkiCisgICAgdGVzdF9kZW1h bmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzFkWnYiICJkZW1hbmdsZS50 ZXN0KF9fdmVjdG9yKGRvdWJsZVxbMVxdKSkiCisgICAgdGVzdF9kZW1hbmds aW5nICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzJkWnYiICJkZW1hbmdsZS50ZXN0 KF9fdmVjdG9yKGRvdWJsZVxbMlxdKSkiCisgICAgdGVzdF9kZW1hbmdsaW5n ICJfRDhkZW1hbmdsZTR0ZXN0Rk5oRzRkWnYiICJkZW1hbmdsZS50ZXN0KF9f dmVjdG9yKGRvdWJsZVxbNFxdKSkiCisKKyAgICB0ZXN0X2RlbWFuZ2xpbmcg Il9EOGRlbWFuZ2xlNHRlc3RGSTVpZGVudFp2IiAiZGVtYW5nbGUudGVzdChp ZGVudCkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0 Rkk1aWRlbnQ0dGVzdFp2IiAiZGVtYW5nbGUudGVzdChpZGVudC50ZXN0KSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGQzVjbGFz c1p2IiAiZGVtYW5nbGUudGVzdChjbGFzcykiCisgICAgdGVzdF9kZW1hbmds aW5nICJfRDhkZW1hbmdsZTR0ZXN0RkM1Y2xhc3M0dGVzdFp2IiAiZGVtYW5n bGUudGVzdChjbGFzcy50ZXN0KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9E OGRlbWFuZ2xlNHRlc3RGUzZzdHJ1Y3RadiIgImRlbWFuZ2xlLnRlc3Qoc3Ry dWN0KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RG UzZzdHJ1Y3Q0dGVzdFp2IiAiZGVtYW5nbGUudGVzdChzdHJ1Y3QudGVzdCki CisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkU0ZW51 bVp2IiAiZGVtYW5nbGUudGVzdChlbnVtKSIKKyAgICB0ZXN0X2RlbWFuZ2xp bmcgIl9EOGRlbWFuZ2xlNHRlc3RGRTRlbnVtNHRlc3RadiIgImRlbWFuZ2xl LnRlc3QoZW51bS50ZXN0KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRl bWFuZ2xlNHRlc3RGVDd0eXBlZGVmWnYiICJkZW1hbmdsZS50ZXN0KHR5cGVk ZWYpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZU N3R5cGVkZWY0dGVzdFp2IiAiZGVtYW5nbGUudGVzdCh0eXBlZGVmLnRlc3Qp IgorCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Rkph WnYiICJkZW1hbmdsZS50ZXN0KG91dCBjaGFyKSIKKyAgICB0ZXN0X2RlbWFu Z2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGS2FadiIgImRlbWFuZ2xlLnRlc3Qo cmVmIGNoYXIpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0 dGVzdEZMYVp2IiAiZGVtYW5nbGUudGVzdChsYXp5IGNoYXIpIgorICAgIHRl c3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZNYVp2IiAiZGVtYW5n bGUudGVzdChzY29wZSBjaGFyKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9E OGRlbWFuZ2xlNHRlc3RGYVh2IiAiZGVtYW5nbGUudGVzdChjaGFyLi4uKSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGYVl2IiAi ZGVtYW5nbGUudGVzdChjaGFyLCAuLi4pIgorICAgIHRlc3RfZGVtYW5nbGlu ZyAiX0Q4ZGVtYW5nbGU0dGVzdEZhYVl2IiAiZGVtYW5nbGUudGVzdChjaGFy LCBjaGFyLCAuLi4pIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5n bGU0dGVzdEZhYVp2IiAiZGVtYW5nbGUudGVzdChjaGFyLCBjaGFyKSIKKwor ICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZERlphWnYi ICJkZW1hbmdsZS50ZXN0KGNoYXIoKSBkZWxlZ2F0ZSkiCisgICAgdGVzdF9k ZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRVWmFadiIgImRlbWFuZ2xl LnRlc3QoZXh0ZXJuKEMpIGNoYXIoKSBkZWxlZ2F0ZSkiCisgICAgdGVzdF9k ZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRXWmFadiIgImRlbWFuZ2xl LnRlc3QoZXh0ZXJuKFdpbmRvd3MpIGNoYXIoKSBkZWxlZ2F0ZSkiCisgICAg dGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRWWmFadiIgImRl bWFuZ2xlLnRlc3QoZXh0ZXJuKFBhc2NhbCkgY2hhcigpIGRlbGVnYXRlKSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRFJaYVp2 IiAiZGVtYW5nbGUudGVzdChleHRlcm4oQysrKSBjaGFyKCkgZGVsZWdhdGUp IgorCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkZa YVp2IiAiZGVtYW5nbGUudGVzdChjaGFyKCkgZnVuY3Rpb24pIgorICAgIHRl c3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZVWmFadiIgImRlbWFu Z2xlLnRlc3QoZXh0ZXJuKEMpIGNoYXIoKSBmdW5jdGlvbikiCisgICAgdGVz dF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RldaYVp2IiAiZGVtYW5n bGUudGVzdChleHRlcm4oV2luZG93cykgY2hhcigpIGZ1bmN0aW9uKSIKKyAg ICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGVlphWnYiICJk ZW1hbmdsZS50ZXN0KGV4dGVybihQYXNjYWwpIGNoYXIoKSBmdW5jdGlvbiki CisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RlJaYVp2 IiAiZGVtYW5nbGUudGVzdChleHRlcm4oQysrKSBjaGFyKCkgZnVuY3Rpb24p IgorCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRG TmFaYVp2IiAiZGVtYW5nbGUudGVzdChjaGFyKCkgcHVyZSBkZWxlZ2F0ZSki CisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRGTmJa YVp2IiAiZGVtYW5nbGUudGVzdChjaGFyKCkgbm90aHJvdyBkZWxlZ2F0ZSki CisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkRGTmNa YVp2IiAiZGVtYW5nbGUudGVzdChjaGFyKCkgcmVmIGRlbGVnYXRlKSIKKyAg ICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGREZOZFphWnYi ICJkZW1hbmdsZS50ZXN0KGNoYXIoKSBAcHJvcGVydHkgZGVsZWdhdGUpIgor ICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZERk5lWmFa diIgImRlbWFuZ2xlLnRlc3QoY2hhcigpIEB0cnVzdGVkIGRlbGVnYXRlKSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGREZOZlph WnYiICJkZW1hbmdsZS50ZXN0KGNoYXIoKSBAc2FmZSBkZWxlZ2F0ZSkiCisK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5hWmFa diIgImRlbWFuZ2xlLnRlc3QoY2hhcigpIHB1cmUgZnVuY3Rpb24pIgorICAg IHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZGTmJaYVp2IiAi ZGVtYW5nbGUudGVzdChjaGFyKCkgbm90aHJvdyBmdW5jdGlvbikiCisgICAg dGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkZOY1phWnYiICJk ZW1hbmdsZS50ZXN0KGNoYXIoKSByZWYgZnVuY3Rpb24pIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZGTmRaYVp2IiAiZGVtYW5n bGUudGVzdChjaGFyKCkgQHByb3BlcnR5IGZ1bmN0aW9uKSIKKyAgICB0ZXN0 X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5lWmFadiIgImRlbWFu Z2xlLnRlc3QoY2hhcigpIEB0cnVzdGVkIGZ1bmN0aW9uKSIKKyAgICB0ZXN0 X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5mWmFadiIgImRlbWFu Z2xlLnRlc3QoY2hhcigpIEBzYWZlIGZ1bmN0aW9uKSIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5hTmJaYVp2IiAiZGVtYW5n bGUudGVzdChjaGFyKCkgcHVyZSBub3Rocm93IGZ1bmN0aW9uKSIKKyAgICB0 ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5iTmFaYVp2IiAi ZGVtYW5nbGUudGVzdChjaGFyKCkgbm90aHJvdyBwdXJlIGZ1bmN0aW9uKSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGRk5kTmZO YVphWnYiICJkZW1hbmdsZS50ZXN0KGNoYXIoKSBAcHJvcGVydHkgQHNhZmUg cHVyZSBmdW5jdGlvbikiCisKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRl bWFuZ2xlNHRlc3Q2X192dGJsWiIgImRlbWFuZ2xlLnRlc3QudnRibCQiCisg ICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Nl9faW5pdFoi ICJkZW1hbmdsZS50ZXN0LmluaXQkIgorICAgIHRlc3RfZGVtYW5nbGluZyAi X0Q4ZGVtYW5nbGU0dGVzdDEyX19Nb2R1bGVJbmZvWiIgImRlbWFuZ2xlLnRl c3QubW9kdWxlaW5mbyQiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1h bmdsZTR0ZXN0N19fQ2xhc3NaIiAiZGVtYW5nbGUudGVzdC5jbGFzc2luZm8k IgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdDExX19J bnRlcmZhY2VaIiAiZGVtYW5nbGUudGVzdC5pbnRlcmZhY2UkIgorCisgICAg dGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0Nl9fY3Rvck1GWnYi ICJkZW1hbmdsZS50ZXN0LnRoaXMoKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcg Il9EOGRlbWFuZ2xlNHRlc3Q2X19kdG9yTUZadiIgImRlbWFuZ2xlLnRlc3Qu fnRoaXMoKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRl c3Q2X19wb3N0YmxpdE1GWnYiICJkZW1hbmdsZS50ZXN0LnRoaXModGhpcyki CisKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGSEFi YVp2IiAiZGVtYW5nbGUudGVzdChjaGFyXFtib29sXFtcXVxdKSIKKyAgICB0 ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RGSEc0MmNhWnYiICJk ZW1hbmdsZS50ZXN0KGNoYXJcW2NyZWFsXFs0MlxdXF0pIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q4ZGVtYW5nbGU0dGVzdEZBaVh2IiAiZGVtYW5nbGUu dGVzdChpbnRcW1xdLi4uKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRl bWFuZ2xlNHRlc3RGTEFpWHYiICJkZW1hbmdsZS50ZXN0KGxhenkgaW50XFtc XS4uLikiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0 RkFpWXYiICJkZW1hbmdsZS50ZXN0KGludFxbXF0sIC4uLikiCisgICAgdGVz dF9kZW1hbmdsaW5nICJfRDhkZW1hbmdsZTR0ZXN0RkxBaVl2IiAiZGVtYW5n bGUudGVzdChsYXp5IGludFxbXF0sIC4uLikiCisgICAgdGVzdF9kZW1hbmds aW5nICJfRDhkZW1hbmdsZTR0ZXN0RkxpbFp2IiAiZGVtYW5nbGUudGVzdChs YXp5IGludCwgbG9uZykiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1h bmdsZTR0ZXN0RkxsaVp2IiAiZGVtYW5nbGUudGVzdChsYXp5IGxvbmcsIGlu dCkiCisKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNHRlc3RQ RkxBaVlpIiAiZGVtYW5nbGUudGVzdCIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcg Il9EMWExYmkiICJhLmIiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDFhMWJQ RmlaaSIgImEuYiIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9ENHRlc3QzZm9v QWEiICJ0ZXN0LmZvbyIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9ENHRlc3Qy ZGdERmlZZCIgInRlc3QuZGciCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhk ZW1hbmdsZThkZW1hbmdsZUZBYVpBYSIgImRlbWFuZ2xlLmRlbWFuZ2xlKGNo YXJcW1xdKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9ENm9iamVjdDZPYmpl Y3Q4b3BBc3NpZ25GQzZPYmplY3RaaSIgIm9iamVjdC5PYmplY3Qub3BBc3Np Z24oT2JqZWN0KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9ENm9iamVjdDZP YmplY3Q4b3BFcXVhbHNGQzZPYmplY3RaaSIgIm9iamVjdC5PYmplY3Qub3BF cXVhbHMoT2JqZWN0KSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFu Z2xlNHRlc3RGTEM2T2JqZWN0TERGTGlaaVppIiAiZGVtYW5nbGUudGVzdChs YXp5IE9iamVjdCwgbGF6eSBpbnQobGF6eSBpbnQpIGRlbGVnYXRlKSIKKyAg ICB0ZXN0X2RlbWFuZ2xpbmcgIl9ENnBsdWdpbjhnZW5lcmF0ZUZpaVpBeWEi ICJwbHVnaW4uZ2VuZXJhdGUoaW50LCBpbnQpIgorICAgIHRlc3RfZGVtYW5n bGluZyAiX0Q4ZGVtYW5nbGUzZm5BRlp2M2ZuQk1GWnYiICJkZW1hbmdsZS5m bkEoKS5mbkIoKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xl NG1haW5GWnYxUzNmbkNGWnYiICJkZW1hbmdsZS5tYWluKCkuUy5mbkMoKSIK KyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EOGRlbWFuZ2xlNG1haW5GWnYxUzNm bkRNRlp2IiAiZGVtYW5nbGUubWFpbigpLlMuZm5EKCkiCisgICAgdGVzdF9k ZW1hbmdsaW5nICJfRDhkZW1hbmdsZTJmbkZOZ2laTmdpIiAiZGVtYW5nbGUu Zm4oaW5vdXQoaW50KSkiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDhkZW1h bmdsZTRtYWluRlp2NWxvY2FsTUZaaSIgImRlbWFuZ2xlLm1haW4oKS5sb2Nh bCgpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Qzc3RkNWFzY2lpOXVwcGVy Y2FzZXlBYSIgInN0ZC5hc2NpaS51cHBlcmNhc2UiCisgICAgdGVzdF9kZW1h bmdsaW5nICJfRDNzdGQ2c3RyZWFtOUJPTUVuZGlhbnlHNUUzc3RkNnN5c3Rl bTZFbmRpYW4iICJzdGQuc3RyZWFtLkJPTUVuZGlhbiIKKyAgICB0ZXN0X2Rl bWFuZ2xpbmcgIl9EM3N0ZDhpbnRlcm5hbDd1bmlfdGFiMTB1bmljb2RlTmtv eVMzc3RkOGludGVybmFsM3VuaTEyQ29kZXBvaW50U2V0IiAic3RkLmludGVy bmFsLnVuaV90YWIudW5pY29kZU5rbyIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcg Il9EMmdjMmdjMkdDNmFkZHJPZk1GUHZaUHYiICJnYy5nYy5HQy5hZGRyT2Yo dm9pZCopIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Qzc3RkN3Byb2Nlc3Mx MHNldENMT0VYRUNGaWJadiIgInN0ZC5wcm9jZXNzLnNldENMT0VYRUMoaW50 LCBib29sKSIKKyAgICB0ZXN0X2RlbWFuZ2xpbmcgIl9EM3N0ZDZkaWdlc3Qy bWQzTUQ1M3B1dE1GTmFOYk5lTUF4aFh2IiAic3RkLmRpZ2VzdC5tZC5NRDUu cHV0KHNjb3BlIGNvbnN0KHVieXRlKVxbXF0uLi4pIgorICAgIHRlc3RfZGVt YW5nbGluZyAiX0Qzc3RkNm1tZmlsZTZNbUZpbGUxM29wSW5kZXhBc3NpZ25N RmhtWmgiICJzdGQubW1maWxlLk1tRmlsZS5vcEluZGV4QXNzaWduKHVieXRl LCB1bG9uZykiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDNzdGQ3cHJvY2Vz czE4ZXNjYXBlU2hlbGxDb21tYW5kRnhBQWFYQXlhIiAic3RkLnByb2Nlc3Mu ZXNjYXBlU2hlbGxDb21tYW5kKGNvbnN0KGNoYXJcW1xdXFtcXSkuLi4pIgor ICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q0Y29yZTRzeW5jNW11dGV4NU11dGV4 Nl9fY3Rvck1GQzZPYmplY3RaQzRjb3JlNHN5bmM1bXV0ZXg1TXV0ZXgiICJj b3JlLnN5bmMubXV0ZXguTXV0ZXgudGhpcyhPYmplY3QpIgorICAgIHRlc3Rf ZGVtYW5nbGluZyAiX0Q2b2JqZWN0MTRUeXBlSW5mb19BcnJheThhcmdUeXBl c01GTmJOZkpDOFR5cGVJbmZvSkM4VHlwZUluZm9aaSIgIm9iamVjdC5UeXBl SW5mb19BcnJheS5hcmdUeXBlcyhvdXQgVHlwZUluZm8sIG91dCBUeXBlSW5m bykiCisgICAgdGVzdF9kZW1hbmdsaW5nICJfRDJydDZkbWFpbjIxMV9kX3J1 bl9tYWluVWlQUGFQVUFBYVppWmk3dHJ5RXhlY01GTURGWnZadiIgInJ0LmRt YWluMi5fZF9ydW5fbWFpbihpbnQsIGNoYXIqKiwgZXh0ZXJuKEMpIGludChj aGFyXFtcXVxbXF0pIGZ1bmN0aW9uKikudHJ5RXhlYyhzY29wZSB2b2lkKCkg ZGVsZWdhdGUpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Q2b2JqZWN0OUV4 Y2VwdGlvbjZfX2N0b3JNRk5hTmJOZkF5YUF5YW1DNm9iamVjdDlUaHJvd2Fi bGVaQzlFeGNlcHRpb24iICJvYmplY3QuRXhjZXB0aW9uLnRoaXMoaW1tdXRh YmxlKGNoYXIpXFtcXSwgaW1tdXRhYmxlKGNoYXIpXFtcXSwgdWxvbmcsIG9i amVjdC5UaHJvd2FibGUpIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0QzZ2Nj M2RlaDE3cGFyc2VfbHNkYV9oZWFkZXJGUFMzZ2NjNnVud2luZDdnZW5lcmlj MTVfVW53aW5kX0NvbnRleHRQaFBTM2djYzNkZWgxNmxzZGFfaGVhZGVyX2lu Zm9aUGgiICJnY2MuZGVoLnBhcnNlX2xzZGFfaGVhZGVyKGdjYy51bndpbmQu Z2VuZXJpYy5fVW53aW5kX0NvbnRleHQqLCB1Ynl0ZSosIGdjYy5kZWgubHNk YV9oZWFkZXJfaW5mbyopIgorICAgIHRlc3RfZGVtYW5nbGluZyAiX0Qzc3Rk NnNvY2tldDIzVW5rbm93bkFkZHJlc3NSZWZlcmVuY2U2X19jdG9yTUZQUzRj b3JlM3N5czVwb3NpeDNzeXM2c29ja2V0OHNvY2thZGRya1pDM3N0ZDZzb2Nr ZXQyM1Vua25vd25BZGRyZXNzUmVmZXJlbmNlIiAic3RkLnNvY2tldC5Vbmtu b3duQWRkcmVzc1JlZmVyZW5jZS50aGlzKGNvcmUuc3lzLnBvc2l4LnN5cy5z b2NrZXQuc29ja2FkZHIqLCB1aW50KSIKK30KKworcHJvYyBjYXRjaF9kZW1h bmdsaW5nX2Vycm9ycyB7Y29tbWFuZH0geworICAgIGlmIHtbY2F0Y2ggJGNv bW1hbmQgcmVzdWx0XX0geworCXB1dHMgIkVSUk9SOiBkZW1hbmdsZS5leHA6 IHdoaWxlIHJ1bm5pbmcgJGNvbW1hbmQ6ICRyZXN1bHQiCisgICAgfQorfQor CisjIFRlc3Qgc3VwcG9ydCBmb3IgZGlmZmVyZW50IGRlbWFuZ2xpbmcgc3R5 bGVzLiAgTm90ZSB0aGF0IHRoaXMgZG9lcworIyBub3QgZGVwZW5kIHVwb24g cnVubmluZyB0aGUgdGVzdCBwcm9ncmFtIGFuZCBkb2VzIG5vdCBkZXBlbmQg dXBvbgorIyBnZGIgYmVpbmcgYWJsZSB0byBsb29rdXAgYW55IEQgc3ltYm9s cy4gIEl0IHNpbXBseSBjYWxscyB0aGUKKyMgaW50ZXJuYWwgZGVtYW5nbGVy IHdpdGggc3ludGhlc2l6ZWQgc3RyaW5ncyBhbmQgdGVzdHMgdGhlIHJlc3Vs dHMuCisKKyMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KKworZ2RiX2V4aXQK K2dkYl9zdGFydAorCitpZiBbc2V0X2xhbmdfZF0geworICAgIGdkYl90ZXN0 X25vX291dHB1dCAic2V0IHdpZHRoIDAiCisKKyAgICAjIFVzaW5nIGNhdGNo X2RlbWFuZ2xpbmdfZXJyb3JzIHRoaXMgd2F5IGVuc3VyZXMgdGhhdCwgaWYg b25lIG9mCisgICAgIyB0aGUgZnVuY3Rpb25zIHJhaXNlcyBhIFRjbCBlcnJv ciwgdGhlbiBpdCdsbCBnZXQgcmVwb3J0ZWQsIGFuZAorICAgICMgdGhlIHJl c3Qgb2YgdGhlIGZ1bmN0aW9ucyB3aWxsIHN0aWxsIHJ1bi4KKyAgICBjYXRj aF9kZW1hbmdsaW5nX2Vycm9ycyB0ZXN0X2RfZGVtYW5nbGluZworCit9IGVs c2UgeworICAgIHdhcm5pbmcgIkQgZGVtYW5nbGluZyB0ZXN0cyBzdXBwcmVz c2VkLiIKK30K --001a11c1cdf2c056a004ef9edd08--