From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 25C4424680 for ; Wed, 23 May 2018 10:30:40 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MvNEw7rwNOKK for ; Wed, 23 May 2018 10:30:39 -0400 (EDT) Received: from smtp45.i.mail.ru (smtp45.i.mail.ru [94.100.177.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 34AD824650 for ; Wed, 23 May 2018 10:30:36 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH 1/1] sql: IS is only applicable when dealing with NULL References: <1526642787.218420559@f261.i.mail.ru> <10ce4eb3-e380-3007-8811-78d6f4517e1b@tarantool.org> <1526659840.883327245@f345.i.mail.ru> From: Imeev Mergen Message-ID: <7283762e-ce01-fd16-a50b-26b6730711cc@tarantool.org> Date: Wed, 23 May 2018 17:30:33 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------C1E879452AE60058217E2925" Content-Language: en-US Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: Vladislav Shpilevoy , tarantool-patches@freelists.org This is a multi-part message in MIME format. --------------C1E879452AE60058217E2925 Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit On 05/19/2018 12:37 AM, Vladislav Shpilevoy wrote: > Hello. Thanks for the fixes! You did a huge work fixing the tests! > >>      > >>      > -%include { >>      > -  /* A routine to convert a binary TK_IS or TK_ISNOT >> expression into a >>      > -  ** unary TK_ISNULL or TK_NOTNULL expression. */ >> >>     3. I still can grep ISNULL token. NOTNULL too. They must be >> removed completely, but >>     very accurately. For example, TK_NULL, TK_ISNULL, TK_NOTNULL are >> not tokens, they >>     are identifiers for 'NULL', 'IS NULL', and 'IS NOT NULL'. But >> strings 'ISNULL' and >>     'NOTNULL' must be removed. For example, look >> extra/mkkeywordhash.c:196. Here all the >>     tokens are stored and their identifiers, so "NOTNULL" is >> reflected into TK_NOTNULL. >>     We must remove "NOTNULL". Same in parse.y:137, 213. >> >>     In treeview.c:475 NOTNULL must be replaced with "NOT NULL". Same >> in vdbeaux.c:1508. >> >>     Same about ISNULL. >> >> Partially done. Ones in parse.y used to generate identifiers to >> operations 'IS NULL' and 'IS NOT NULL' > > I see, but they now are unused by parser. Please, remove them. The > parser uses not "NOTNULL" or > "ISNULL" - it uses TK_ISNULL and TK_NOTNULL. Look at addopcodes.sh how > to add TK_... constants > with no adding them to parser. > > In the final patch you must not be able to grep "ISNULL" or "NOTNULL" > strings anywhere. > > By removal of these parser-unused things you will make the parser > slightly faster. > > > The rest of the patch is ok. Done. --------------C1E879452AE60058217E2925 Content-Type: text/plain; charset=UTF-8; name="patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.txt" Y29tbWl0IDFmZGU5ZTQ0M2QwNWFjZWRhYWJjOWFjMWYwMjcxNTdhOTRiZGExYzQKQXV0aG9y OiBNZXJnZW4gSW1lZXYgPGltZWV2bWFAZ21haWwuY29tPgpEYXRlOiAgIFdlZCBNYXkgMTYg MTY6Mzk6MjYgMjAxOCArMDMwMAoKICAgIHNxbDogSVMgaXMgb25seSBhcHBsaWNhYmxlIHdo ZW4gZGVhbGluZyB3aXRoIE5VTEwKICAgIAogICAgQWNjb3JkaW5nIHRvIEFOU0kgU3RhbmRh cmQgSVMvSVMgTk9UIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZQogICAgaWYgdmFsdWVzIGlz IG51bGwuIEF0IHRoZSBzYW1lIHRpbWUgaW4gU1FMaXRlMyBJUy9JUyBOT1QgaGF2ZSBhbgog ICAgYWRkaXRpb25hbCBmdW5jdGlvbiAtIGl0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGVxdWFs aXR5IG9mIHR3bwogICAgdmFsdWVzLiBUaGlzIGZlYXR1cmUgaXNuJ3QgY29tbW9uIGZvciBk aWZmZXJlbnQgdmVyc2lvbnMgb2YgU1FMCiAgICAob25seSBpbiBQTC9TUUwgcmlnaHQgb3Bl cmFuZCBjYW4gYmUgTk9ORSwgVFJVRSBvZiBGQUxTRSkgVGhpcwogICAgcGF0Y2ggcmVtb3Zl cyBkZXNjcmliZWQgZnVuY3Rpb24uCgpkaWZmIC0tZ2l0IGEvZXh0cmEvYWRkb3Bjb2Rlcy5z aCBiL2V4dHJhL2FkZG9wY29kZXMuc2gKaW5kZXggOTAyN2NjOC4uMDMwNDI1OSAxMDA3NTUK LS0tIGEvZXh0cmEvYWRkb3Bjb2Rlcy5zaAorKysgYi9leHRyYS9hZGRvcGNvZGVzLnNoCkBA IC0zMCwxMSArMzAsMTIgQEAgZG9uZSA8ICIkMSIKICMgSUxMRUdBTCAqbXVzdCogYmUgdGhl IGxhc3QgdHdvIHRva2VuIGNvZGVzIGFuZCB0aGV5IG11c3QgYmUgaW4gdGhhdCBvcmRlci4K IGV4dHJhcz0iICAgICAgICAgICAgXAogICAgIFRPX1RFWFQgICAgICAgICBcCisgICAgSVNO VUxMICAgICAgICAgIFwKKyAgICBOT1ROVUxMICAgICAgICAgXAogICAgIFRPX0JMT0IgICAg ICAgICBcCiAgICAgVE9fTlVNRVJJQyAgICAgIFwKICAgICBUT19JTlQgICAgICAgICAgXAog ICAgIFRPX1JFQUwgICAgICAgICBcCi0gICAgSVNOT1QgICAgICAgICAgIFwKICAgICBFTkRf T0ZfRklMRSAgICAgXAogICAgIFVOQ0xPU0VEX1NUUklORyBcCiAgICAgRlVOQ1RJT04gICAg ICAgIFwKZGlmZiAtLWdpdCBhL2V4dHJhL21ra2V5d29yZGhhc2guYyBiL2V4dHJhL21ra2V5 d29yZGhhc2guYwppbmRleCBjZjM0ODMxLi43Zjk3ZTRjIDEwMDY0NAotLS0gYS9leHRyYS9t a2tleXdvcmRoYXNoLmMKKysrIGIvZXh0cmEvbWtrZXl3b3JkaGFzaC5jCkBAIC0xODMsNyAr MTgzLDYgQEAgc3RhdGljIEtleXdvcmQgYUtleXdvcmRUYWJsZVtdID0gewogICB7ICJJTlRF UlNFQ1QiLCAgICAgICAgICAgICAgIlRLX0lOVEVSU0VDVCIsICAgQ09NUE9VTkQsICAgICAg ICAgdHJ1ZSAgfSwKICAgeyAiSU5UTyIsICAgICAgICAgICAgICAgICAgICJUS19JTlRPIiwg ICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCiAgIHsgIklTIiwgICAgICAgICAg ICAgICAgICAgICAiVEtfSVMiLCAgICAgICAgICBBTFdBWVMsICAgICAgICAgICB0cnVlICB9 LAotICB7ICJJU05VTEwiLCAgICAgICAgICAgICAgICAgIlRLX0lTTlVMTCIsICAgICAgQUxX QVlTLCAgICAgICAgICAgZmFsc2UgfSwKICAgeyAiSk9JTiIsICAgICAgICAgICAgICAgICAg ICJUS19KT0lOIiwgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCiAgIHsgIktF WSIsICAgICAgICAgICAgICAgICAgICAiVEtfS0VZIiwgICAgICAgICBBTFdBWVMsICAgICAg ICAgICBmYWxzZSB9LAogICB7ICJMRUZUIiwgICAgICAgICAgICAgICAgICAgIlRLX0pPSU5f S1ciLCAgICAgQUxXQVlTLCAgICAgICAgICAgdHJ1ZSAgfSwKQEAgLTE5Myw3ICsxOTIsNiBA QCBzdGF0aWMgS2V5d29yZCBhS2V5d29yZFRhYmxlW10gPSB7CiAgIHsgIk5BVFVSQUwiLCAg ICAgICAgICAgICAgICAiVEtfSk9JTl9LVyIsICAgICBBTFdBWVMsICAgICAgICAgICB0cnVl ICB9LAogICB7ICJOTyIsICAgICAgICAgICAgICAgICAgICAgIlRLX05PIiwgICAgICAgICAg RktFWSwgICAgICAgICAgICAgZmFsc2UgfSwKICAgeyAiTk9UIiwgICAgICAgICAgICAgICAg ICAgICJUS19OT1QiLCAgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCi0gIHsg Ik5PVE5VTEwiLCAgICAgICAgICAgICAgICAiVEtfTk9UTlVMTCIsICAgICBBTFdBWVMsICAg ICAgICAgICBmYWxzZSB9LAogICB7ICJOVUxMIiwgICAgICAgICAgICAgICAgICAgIlRLX05V TEwiLCAgICAgICAgQUxXQVlTLCAgICAgICAgICAgdHJ1ZSAgfSwKICAgeyAiT0YiLCAgICAg ICAgICAgICAgICAgICAgICJUS19PRiIsICAgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRy dWUgIH0sCiAgIHsgIk9GRlNFVCIsICAgICAgICAgICAgICAgICAiVEtfT0ZGU0VUIiwgICAg ICBBTFdBWVMsICAgICAgICAgICBmYWxzZSB9LApkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwv ZXhwci5jIGIvc3JjL2JveC9zcWwvZXhwci5jCmluZGV4IDFiNTE4MjMuLjFlZDhkMWMgMTAw NjQ0Ci0tLSBhL3NyYy9ib3gvc3FsL2V4cHIuYworKysgYi9zcmMvYm94L3NxbC9leHByLmMK QEAgLTI3MCw4ICsyNzAsNyBAQCBjb21wYXJpc29uQWZmaW5pdHkoRXhwciAqIHBFeHByKQog CWNoYXIgYWZmOwogCWFzc2VydChwRXhwci0+b3AgPT0gVEtfRVEgfHwgcEV4cHItPm9wID09 IFRLX0lOIHx8IHBFeHByLT5vcCA9PSBUS19MVCB8fAogCSAgICAgICBwRXhwci0+b3AgPT0g VEtfR1QgfHwgcEV4cHItPm9wID09IFRLX0dFIHx8IHBFeHByLT5vcCA9PSBUS19MRSB8fAot CSAgICAgICBwRXhwci0+b3AgPT0gVEtfTkUgfHwgcEV4cHItPm9wID09IFRLX0lTCi0JICAg ICAgIHx8IHBFeHByLT5vcCA9PSBUS19JU05PVCk7CisJICAgICAgIHBFeHByLT5vcCA9PSBU S19ORSk7CiAJYXNzZXJ0KHBFeHByLT5wTGVmdCk7CiAJYWZmID0gc3FsaXRlM0V4cHJBZmZp bml0eShwRXhwci0+cExlZnQpOwogCWlmIChwRXhwci0+cFJpZ2h0KSB7CkBAIC01NjQsOCAr NTYzLDYgQEAgZXhwclZlY3RvclJlZ2lzdGVyKFBhcnNlICogcFBhcnNlLAkvKiBQYXJzZSBj b250ZXh0ICovCiAgKgogICogVGhlIGNhbGxlciBtdXN0IHNhdGlzZnkgdGhlIGZvbGxvd2lu ZyBwcmVjb25kaXRpb25zOgogICoKLSAqICAgIGlmIHBFeHByLT5vcD09VEtfSVM6ICAgICAg b3A9PVRLX0VRIGFuZCBwNT09U1FMSVRFX05VTExFUQotICogICAgaWYgcEV4cHItPm9wPT1U S19JU05PVDogICBvcD09VEtfTkUgYW5kIHA1PT1TUUxJVEVfTlVMTEVRCiAgKiAgICBvdGhl cndpc2U6ICAgICAgICAgICAgICAgIG9wPT1wRXhwci0+b3AgYW5kIHA1PT0wCiAgKi8KIHN0 YXRpYyB2b2lkCkBAIC01OTEsMTEgKzU4OCw4IEBAIGNvZGVWZWN0b3JDb21wYXJlKFBhcnNl ICogcFBhcnNlLAkvKiBDb2RlIGdlbmVyYXRvciBjb250ZXh0ICovCiAJCXJldHVybjsKIAl9 CiAJYXNzZXJ0KHBFeHByLT5vcCA9PSBUS19FUSB8fCBwRXhwci0+b3AgPT0gVEtfTkUKLQkg ICAgICAgfHwgcEV4cHItPm9wID09IFRLX0lTIHx8IHBFeHByLT5vcCA9PSBUS19JU05PVAog CSAgICAgICB8fCBwRXhwci0+b3AgPT0gVEtfTFQgfHwgcEV4cHItPm9wID09IFRLX0dUCiAJ ICAgICAgIHx8IHBFeHByLT5vcCA9PSBUS19MRSB8fCBwRXhwci0+b3AgPT0gVEtfR0UpOwot CWFzc2VydChwRXhwci0+b3AgPT0gb3AgfHwgKHBFeHByLT5vcCA9PSBUS19JUyAmJiBvcCA9 PSBUS19FUSkKLQkgICAgICAgfHwgKHBFeHByLT5vcCA9PSBUS19JU05PVCAmJiBvcCA9PSBU S19ORSkpOwogCWFzc2VydChwNSA9PSAwIHx8IHBFeHByLT5vcCAhPSBvcCk7CiAJYXNzZXJ0 KHA1ID09IFNRTElURV9OVUxMRVEgfHwgcEV4cHItPm9wID09IG9wKTsKIApAQCAtMzg1NSwx MSArMzg0OSw2IEBAIHNxbGl0ZTNFeHByQ29kZVRhcmdldChQYXJzZSAqIHBQYXJzZSwgRXhw ciAqIHBFeHByLCBpbnQgdGFyZ2V0KQogCQkJcmV0dXJuIGluUmVnOwogCQl9CiAjZW5kaWYJ CQkJLyogU1FMSVRFX09NSVRfQ0FTVCAqLwotCWNhc2UgVEtfSVM6Ci0JY2FzZSBUS19JU05P VDoKLQkJb3AgPSAob3AgPT0gVEtfSVMpID8gVEtfRVEgOiBUS19ORTsKLQkJcDUgPSBTUUxJ VEVfTlVMTEVROwotCQkvKiBmYWxsLXRocm91Z2ggKi8KIAljYXNlIFRLX0xUOgogCWNhc2Ug VEtfTEU6CiAJY2FzZSBUS19HVDoKQEAgLTQ3NzUsMTMgKzQ3NjQsNiBAQCBzcWxpdGUzRXhw cklmVHJ1ZShQYXJzZSAqIHBQYXJzZSwgRXhwciAqIHBFeHByLCBpbnQgZGVzdCwgaW50IGp1 bXBJZk51bGwpCiAJCQkJCSAgIGp1bXBJZk51bGwpOwogCQkJYnJlYWs7CiAJCX0KLQljYXNl IFRLX0lTOgotCWNhc2UgVEtfSVNOT1Q6Ci0JCXRlc3RjYXNlKG9wID09IFRLX0lTKTsKLQkJ dGVzdGNhc2Uob3AgPT0gVEtfSVNOT1QpOwotCQlvcCA9IChvcCA9PSBUS19JUykgPyBUS19F USA6IFRLX05FOwotCQlqdW1wSWZOdWxsID0gU1FMSVRFX05VTExFUTsKLQkJLyogRmFsbCB0 aHJ1ICovCiAJY2FzZSBUS19MVDoKIAljYXNlIFRLX0xFOgogCWNhc2UgVEtfR1Q6CkBAIC00 OTI0LDYgKzQ5MDYsOSBAQCBzcWxpdGUzRXhwcklmRmFsc2UoUGFyc2UgKiBwUGFyc2UsIEV4 cHIgKiBwRXhwciwgaW50IGRlc3QsIGludCBqdW1wSWZOdWxsKQogCSAqLwogCWFzc2VydChw RXhwci0+b3AgIT0gVEtfSVNOVUxMIHx8IG9wID09IE9QX05vdE51bGwpOwogCWFzc2VydChw RXhwci0+b3AgIT0gVEtfTk9UTlVMTCB8fCBvcCA9PSBPUF9Jc051bGwpOworCisJb3AgPSAo KHBFeHByLT5vcCArIChUS19ORSAmIDEpKSBeIDEpIC0gKFRLX05FICYgMSk7CisKIAlhc3Nl cnQocEV4cHItPm9wICE9IFRLX05FIHx8IG9wID09IE9QX0VxKTsKIAlhc3NlcnQocEV4cHIt Pm9wICE9IFRLX0VRIHx8IG9wID09IE9QX05lKTsKIAlhc3NlcnQocEV4cHItPm9wICE9IFRL X0xUIHx8IG9wID09IE9QX0dlKTsKQEAgLTQ5NjAsMTMgKzQ5NDUsNiBAQCBzcWxpdGUzRXhw cklmRmFsc2UoUGFyc2UgKiBwUGFyc2UsIEV4cHIgKiBwRXhwciwgaW50IGRlc3QsIGludCBq dW1wSWZOdWxsKQogCQkJCQkgIGp1bXBJZk51bGwpOwogCQkJYnJlYWs7CiAJCX0KLQljYXNl IFRLX0lTOgotCWNhc2UgVEtfSVNOT1Q6Ci0JCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19J Uyk7Ci0JCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19JU05PVCk7Ci0JCW9wID0gKHBFeHBy LT5vcCA9PSBUS19JUykgPyBUS19ORSA6IFRLX0VROwotCQlqdW1wSWZOdWxsID0gU1FMSVRF X05VTExFUTsKLQkJLyogRmFsbCB0aHJ1ICovCiAJY2FzZSBUS19MVDoKIAljYXNlIFRLX0xF OgogCWNhc2UgVEtfR1Q6CkBAIC01MjI0LDcgKzUyMDIsNyBAQCBzcWxpdGUzRXhwckltcGxp ZXNFeHByKEV4cHIgKiBwRTEsIEV4cHIgKiBwRTIsIGludCBpVGFiKQogCSAgICApIHsKIAkJ cmV0dXJuIDE7CiAJfQotCWlmIChwRTItPm9wID09IFRLX05PVE5VTEwgJiYgcEUxLT5vcCAh PSBUS19JU05VTEwgJiYgcEUxLT5vcCAhPSBUS19JUykgeworCWlmIChwRTItPm9wID09IFRL X05PVE5VTEwgJiYgcEUxLT5vcCAhPSBUS19JU05VTEwpIHsKIAkJRXhwciAqcFggPSBzcWxp dGUzRXhwclNraXBDb2xsYXRlKHBFMS0+cExlZnQpOwogCQl0ZXN0Y2FzZShwWCAhPSBwRTEt PnBMZWZ0KTsKIAkJaWYgKHNxbGl0ZTNFeHByQ29tcGFyZShwWCwgcEUyLT5wTGVmdCwgaVRh YikgPT0gMCkKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL2ZrZXkuYyBiL3NyYy9ib3gvc3Fs L2ZrZXkuYwppbmRleCA2MGI0Nzg2Li5iZGJiZmUxIDEwMDY0NAotLS0gYS9zcmMvYm94L3Nx bC9ma2V5LmMKKysrIGIvc3JjL2JveC9zcWwvZmtleS5jCkBAIC0xMjk1LDcgKzEyOTUsNyBA QCBma0FjdGlvblRyaWdnZXIoUGFyc2UgKiBwUGFyc2UsCS8qIFBhcnNlIGNvbnRleHQgKi8K IAkJCSAqICAgIFdIRU4gTk9UKG9sZC5jb2wxIElTIG5ldy5jb2wxIEFORCAuLi4gQU5EIG9s ZC5jb2xOIElTIG5ldy5jb2xOKQogCQkJICovCiAJCQlpZiAocENoYW5nZXMpIHsKLQkJCQlw RXEgPSBzcWxpdGUzUEV4cHIocFBhcnNlLCBUS19JUywKKwkJCQlwRXEgPSBzcWxpdGUzUEV4 cHIocFBhcnNlLCBUS19FUSwKIAkJCQkJCSAgIHNxbGl0ZTNQRXhwcihwUGFyc2UsIFRLX0RP VCwKIAkJCQkJCQkJc3FsaXRlM0V4cHJBbGxvYwogCQkJCQkJCQkoZGIsIFRLX0lELApkaWZm IC0tZ2l0IGEvc3JjL2JveC9zcWwvcGFyc2UueSBiL3NyYy9ib3gvc3FsL3BhcnNlLnkKaW5k ZXggODcyNjQ3ZC4uZjQ0ODYxZiAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcWwvcGFyc2UueQor KysgYi9zcmMvYm94L3NxbC9wYXJzZS55CkBAIC0xMjYsNyArMTI2LDcgQEAgY21keCA6Oj0g Y21kLgogLy8gd2hpY2gga2VlcHMgcGFyc2VyIHRhYmxlcyBzbWFsbGVyLgogLy8KIC8vIFRo ZSB0b2tlbiB2YWx1ZXMgYXNzaWduZWQgdG8gdGhlc2Ugc3ltYm9scyBpcyBkZXRlcm1pbmVk IGJ5IHRoZSBvcmRlcgotLy8gaW4gd2hpY2ggbGVtb24gZmlyc3Qgc2VlcyB0aGVtLiAgSXQg bXVzdCBiZSB0aGUgY2FzZSB0aGF0IElTTlVMTC9OT1ROVUxMLAorLy8gaW4gd2hpY2ggbGVt b24gZmlyc3Qgc2VlcyB0aGVtLiAgSXQgbXVzdCBiZSB0aGUgY2FzZSB0aGF0CiAvLyBORS9F USwgR1QvTEUsIGFuZCBHRS9MVCBhcmUgc2VwYXJhdGVkIGJ5IG9ubHkgYSBzaW5nbGUgdmFs dWUuICBTZWUKIC8vIHRoZSBzcWxpdGUzRXhwcklmRmFsc2UoKSByb3V0aW5lIGZvciBhZGRp dGlvbmFsIGluZm9ybWF0aW9uIG9uIHRoaXMKIC8vIGNvbnN0cmFpbnQuCkBAIC0xMzQsNyAr MTM0LDcgQEAgY21keCA6Oj0gY21kLgogJWxlZnQgT1IuCiAlbGVmdCBBTkQuCiAlcmlnaHQg Tk9ULgotJWxlZnQgSVMgTUFUQ0ggTElLRV9LVyBCRVRXRUVOIElOIElTTlVMTCBOT1ROVUxM IE5FIEVRLgorJWxlZnQgSVMgTUFUQ0ggTElLRV9LVyBCRVRXRUVOIElOIE5FIEVRLgogJWxl ZnQgR1QgTEUgTFQgR0UuCiAlcmlnaHQgRVNDQVBFLgogJWxlZnQgQklUQU5EIEJJVE9SIExT SElGVCBSU0hJRlQuCkBAIC0yMTAsNyArMjEwLDcgQEAgY29sdW1ubmFtZShBKSA6Oj0gbm0o QSkgdHlwZXRva2VuKFkpLiB7c3FsaXRlM0FkZENvbHVtbihwUGFyc2UsJkEsJlkpO30KICVm YWxsYmFjayBJRAogICBBQk9SVCBBQ1RJT04gQUREIEFGVEVSIEFVVE9JTkNSRU1FTlQgQkVG T1JFIENBU0NBREUKICAgQ09ORkxJQ1QgREVGRVJSRUQgRU5EIEZBSUwKLSAgSUdOT1JFIElO SVRJQUxMWSBJTlNURUFEIElTTlVMTCBOTyBOT1ROVUxMICBNQVRDSCBQTEFOCisgIElHTk9S RSBJTklUSUFMTFkgSU5TVEVBRCBOTyAgTUFUQ0ggUExBTgogICBRVUVSWSBLRVkgT0ZGU0VU IFJBSVNFIFJFTEVBU0UgUkVQTEFDRSBSRVNUUklDVAogJWlmZGVmIFNRTElURV9PTUlUX0NP TVBPVU5EX1NFTEVDVAogICBJTlRFUlNFQ1QgCkBAIC0xMDMyLDM2ICsxMDMyLDkgQEAgZXhw cihBKSA6Oj0gZXhwcihBKSBsaWtlb3AoT1ApIGV4cHIoWSkgRVNDQVBFIGV4cHIoRSkuICBb TElLRV9LV10gIHsKICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAogfQogCi1leHBy KEEpIDo6PSBleHByKEEpIElTTlVMTHxOT1ROVUxMKEUpLiAgIHtzcGFuVW5hcnlQb3N0Zml4 KHBQYXJzZSxARSwmQSwmRSk7fQotZXhwcihBKSA6Oj0gZXhwcihBKSBOT1QgTlVMTChFKS4g e3NwYW5VbmFyeVBvc3RmaXgocFBhcnNlLFRLX05PVE5VTEwsJkEsJkUpO30KK2V4cHIoQSkg Ojo9IGV4cHIoQSkgSVMgTlVMTChFKS4gICB7c3BhblVuYXJ5UG9zdGZpeChwUGFyc2UsVEtf SVNOVUxMLCZBLCZFKTt9CitleHByKEEpIDo6PSBleHByKEEpIElTIE5PVCBOVUxMKEUpLiAg IHtzcGFuVW5hcnlQb3N0Zml4KHBQYXJzZSxUS19OT1ROVUxMLCZBLCZFKTt9CiAKLSVpbmNs dWRlIHsKLSAgLyogQSByb3V0aW5lIHRvIGNvbnZlcnQgYSBiaW5hcnkgVEtfSVMgb3IgVEtf SVNOT1QgZXhwcmVzc2lvbiBpbnRvIGEKLSAgKiogdW5hcnkgVEtfSVNOVUxMIG9yIFRLX05P VE5VTEwgZXhwcmVzc2lvbi4gKi8KLSAgc3RhdGljIHZvaWQgYmluYXJ5VG9VbmFyeUlmTnVs bChQYXJzZSAqcFBhcnNlLCBFeHByICpwWSwgRXhwciAqcEEsIGludCBvcCl7Ci0gICAgc3Fs aXRlMyAqZGIgPSBwUGFyc2UtPmRiOwotICAgIGlmKCBwQSAmJiBwWSAmJiBwWS0+b3A9PVRL X05VTEwgKXsKLSAgICAgIHBBLT5vcCA9ICh1OClvcDsKLSAgICAgIHNxbF9leHByX2ZyZWUo ZGIsIHBBLT5wUmlnaHQsIGZhbHNlKTsKLSAgICAgIHBBLT5wUmlnaHQgPSAwOwotICAgIH0K LSAgfQotfQotCi0vLyAgICBleHByMSBJUyBleHByMgotLy8gICAgZXhwcjEgSVMgTk9UIGV4 cHIyCi0vLwotLy8gSWYgZXhwcjIgaXMgTlVMTCB0aGVuIGNvZGUgYXMgVEtfSVNOVUxMIG9y IFRLX05PVE5VTEwuICBJZiBleHByMgotLy8gaXMgYW55IG90aGVyIGV4cHJlc3Npb24sIGNv ZGUgYXMgVEtfSVMgb3IgVEtfSVNOT1QuCi0vLyAKLWV4cHIoQSkgOjo9IGV4cHIoQSkgSVMg ZXhwcihZKS4gICAgIHsKLSAgc3BhbkJpbmFyeUV4cHIocFBhcnNlLFRLX0lTLCZBLCZZKTsK LSAgYmluYXJ5VG9VbmFyeUlmTnVsbChwUGFyc2UsIFkucEV4cHIsIEEucEV4cHIsIFRLX0lT TlVMTCk7Ci19Ci1leHByKEEpIDo6PSBleHByKEEpIElTIE5PVCBleHByKFkpLiB7Ci0gIHNw YW5CaW5hcnlFeHByKHBQYXJzZSxUS19JU05PVCwmQSwmWSk7Ci0gIGJpbmFyeVRvVW5hcnlJ Zk51bGwocFBhcnNlLCBZLnBFeHByLCBBLnBFeHByLCBUS19OT1ROVUxMKTsKLX0KIAogJWlu Y2x1ZGUgewogICAvKiBDb25zdHJ1Y3QgYW4gZXhwcmVzc2lvbiBub2RlIGZvciBhIHVuYXJ5 IHByZWZpeCBvcGVyYXRvcgpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvcmVzb2x2ZS5jIGIv c3JjL2JveC9zcWwvcmVzb2x2ZS5jCmluZGV4IDgyMzA2MmEuLjQ1ODMyNzYgMTAwNjQ0Ci0t LSBhL3NyYy9ib3gvc3FsL3Jlc29sdmUuYworKysgYi9zcmMvYm94L3NxbC9yZXNvbHZlLmMK QEAgLTgwMCw5ICs4MDAsNyBAQCByZXNvbHZlRXhwclN0ZXAoV2Fsa2VyICogcFdhbGtlciwg RXhwciAqIHBFeHByKQogCWNhc2UgVEtfTFQ6CiAJY2FzZSBUS19MRToKIAljYXNlIFRLX0dU OgotCWNhc2UgVEtfR0U6Ci0JY2FzZSBUS19JUzoKLQljYXNlIFRLX0lTTk9UOnsKKwljYXNl IFRLX0dFOnsKIAkJCWludCBuTGVmdCwgblJpZ2h0OwogCQkJaWYgKHBQYXJzZS0+ZGItPm1h bGxvY0ZhaWxlZCkKIAkJCQlicmVhazsKQEAgLTgyOSw4ICs4MjcsNiBAQCByZXNvbHZlRXhw clN0ZXAoV2Fsa2VyICogcFdhbGtlciwgRXhwciAqIHBFeHByKQogCQkJCXRlc3RjYXNlKHBF eHByLT5vcCA9PSBUS19MRSk7CiAJCQkJdGVzdGNhc2UocEV4cHItPm9wID09IFRLX0dUKTsK IAkJCQl0ZXN0Y2FzZShwRXhwci0+b3AgPT0gVEtfR0UpOwotCQkJCXRlc3RjYXNlKHBFeHBy LT5vcCA9PSBUS19JUyk7Ci0JCQkJdGVzdGNhc2UocEV4cHItPm9wID09IFRLX0lTTk9UKTsK IAkJCQl0ZXN0Y2FzZShwRXhwci0+b3AgPT0gVEtfQkVUV0VFTik7CiAJCQkJc3FsaXRlM0Vy cm9yTXNnKHBQYXJzZSwgInJvdyB2YWx1ZSBtaXN1c2VkIik7CiAJCQl9CmRpZmYgLS1naXQg YS9zcmMvYm94L3NxbC90cmVldmlldy5jIGIvc3JjL2JveC9zcWwvdHJlZXZpZXcuYwppbmRl eCAxZmY5NDljLi44NTA4NDBhIDEwMDY0NAotLS0gYS9zcmMvYm94L3NxbC90cmVldmlldy5j CisrKyBiL3NyYy9ib3gvc3FsL3RyZWV2aWV3LmMKQEAgLTQxMCwxMiArNDEwLDYgQEAgc3Fs aXRlM1RyZWVWaWV3RXhwcihUcmVlVmlldyAqIHBWaWV3LCBjb25zdCBFeHByICogcEV4cHIs IHU4IG1vcmVUb0ZvbGxvdykKIAljYXNlIFRLX0VROgogCQl6QmluT3AgPSAiRVEiOwogCQli cmVhazsKLQljYXNlIFRLX0lTOgotCQl6QmluT3AgPSAiSVMiOwotCQlicmVhazsKLQljYXNl IFRLX0lTTk9UOgotCQl6QmluT3AgPSAiSVNOT1QiOwotCQlicmVhazsKIAljYXNlIFRLX0FO RDoKIAkJekJpbk9wID0gIkFORCI7CiAJCWJyZWFrOwpAQCAtNDY5LDEwICs0NjMsMTAgQEAg c3FsaXRlM1RyZWVWaWV3RXhwcihUcmVlVmlldyAqIHBWaWV3LCBjb25zdCBFeHByICogcEV4 cHIsIHU4IG1vcmVUb0ZvbGxvdykKIAkJelVuaU9wID0gIk5PVCI7CiAJCWJyZWFrOwogCWNh c2UgVEtfSVNOVUxMOgotCQl6VW5pT3AgPSAiSVNOVUxMIjsKKwkJelVuaU9wID0gIklTIE5V TEwiOwogCQlicmVhazsKIAljYXNlIFRLX05PVE5VTEw6Ci0JCXpVbmlPcCA9ICJOT1ROVUxM IjsKKwkJelVuaU9wID0gIk5PVCBOVUxMIjsKIAkJYnJlYWs7CiAKIAljYXNlIFRLX1NQQU46 ewpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvdmRiZWF1eC5jIGIvc3JjL2JveC9zcWwvdmRi ZWF1eC5jCmluZGV4IGU2N2ZjYWUuLjgxOTVkY2IgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvc3Fs L3ZkYmVhdXguYworKysgYi9zcmMvYm94L3NxbC92ZGJlYXV4LmMKQEAgLTE0NDcsMTIgKzE0 NDcsNiBAQCBkaXNwbGF5UDRFeHByKFN0ckFjY3VtICogcCwgRXhwciAqIHBFeHByKQogCWNh c2UgVEtfRVE6CiAJCXpPcCA9ICJFUSI7CiAJCWJyZWFrOwotCWNhc2UgVEtfSVM6Ci0JCXpP cCA9ICJJUyI7Ci0JCWJyZWFrOwotCWNhc2UgVEtfSVNOT1Q6Ci0JCXpPcCA9ICJJU05PVCI7 Ci0JCWJyZWFrOwogCWNhc2UgVEtfQU5EOgogCQl6T3AgPSAiQU5EIjsKIAkJYnJlYWs7CkBA IC0xNTAyLDEwICsxNDk2LDEwIEBAIGRpc3BsYXlQNEV4cHIoU3RyQWNjdW0gKiBwLCBFeHBy ICogcEV4cHIpCiAJCXpPcCA9ICJOT1QiOwogCQlicmVhazsKIAljYXNlIFRLX0lTTlVMTDoK LQkJek9wID0gIklTTlVMTCI7CisJCXpPcCA9ICJJUyBOVUxMIjsKIAkJYnJlYWs7CiAJY2Fz ZSBUS19OT1ROVUxMOgotCQl6T3AgPSAiTk9UTlVMTCI7CisJCXpPcCA9ICJOT1QgTlVMTCI7 CiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL3doZXJl LmMgYi9zcmMvYm94L3NxbC93aGVyZS5jCmluZGV4IGI0OTdhNWIuLjZiMTNjY2EgMTAwNjQ0 Ci0tLSBhL3NyYy9ib3gvc3FsL3doZXJlLmMKKysrIGIvc3JjL2JveC9zcWwvd2hlcmUuYwpA QCAtMzE2LDExICszMTYsMTAgQEAgd2hlcmVTY2FuTmV4dChXaGVyZVNjYW4gKiBwU2NhbikK IAkJCQkJCQkJCWNvbnRpbnVlOwogCQkJCQkJCX0KIAkJCQkJCX0KLQkJCQkJCWlmICgocFRl cm0tPmVPcGVyYXRvciAmIChXT19FUSB8IFdPX0lTKSkgIT0gMAorCQkJCQkJaWYgKChwVGVy bS0+ZU9wZXJhdG9yICYgV09fRVEpICE9IDAKIAkJCQkJCSAgICAmJiAocFggPSBwVGVybS0+ cEV4cHItPnBSaWdodCktPm9wID09IFRLX0NPTFVNTgogCQkJCQkJICAgICYmIHBYLT5pVGFi bGUgPT0gcFNjYW4tPmFpQ3VyWzBdCiAJCQkJCQkgICAgJiYgcFgtPmlDb2x1bW4gPT0gcFNj YW4tPmFpQ29sdW1uWzBdKSB7Ci0JCQkJCQkJdGVzdGNhc2UocFRlcm0tPmVPcGVyYXRvciAm IFdPX0lTKTsKIAkJCQkJCQljb250aW51ZTsKIAkJCQkJCX0KIAkJCQkJCXBTY2FuLT5wV0Mg PSBwV0M7CkBAIC00MzQsMTEgKzQzMywxMCBAQCBzcWxpdGUzV2hlcmVGaW5kVGVybShXaGVy ZUNsYXVzZSAqIHBXQywJLyogVGhlIFdIRVJFIGNsYXVzZSB0byBiZSBzZWFyY2hlZCAqLwog CVdoZXJlU2NhbiBzY2FuOwogCiAJcCA9IHdoZXJlU2NhbkluaXQoJnNjYW4sIHBXQywgaUN1 ciwgaUNvbHVtbiwgb3AsIHBJZHgpOwotCW9wICY9IFdPX0VRIHwgV09fSVM7CisJb3AgJj0g V09fRVE7CiAJd2hpbGUgKHApIHsKIAkJaWYgKChwLT5wcmVyZXFSaWdodCAmIG5vdFJlYWR5 KSA9PSAwKSB7CiAJCQlpZiAocC0+cHJlcmVxUmlnaHQgPT0gMCAmJiAocC0+ZU9wZXJhdG9y ICYgb3ApICE9IDApIHsKLQkJCQl0ZXN0Y2FzZShwLT5lT3BlcmF0b3IgJiBXT19JUyk7CiAJ CQkJcmV0dXJuIHA7CiAJCQl9CiAJCQlpZiAocFJlc3VsdCA9PSAwKQpAQCAtNjI4LDcgKzYy Niw3IEBAIHRlcm1DYW5Ecml2ZUluZGV4KFdoZXJlVGVybSAqIHBUZXJtLAkvKiBXSEVSRSBj bGF1c2UgdGVybSB0byBjaGVjayAqLwogCWNoYXIgYWZmOwogCWlmIChwVGVybS0+bGVmdEN1 cnNvciAhPSBwU3JjLT5pQ3Vyc29yKQogCQlyZXR1cm4gMDsKLQlpZiAoKHBUZXJtLT5lT3Bl cmF0b3IgJiAoV09fRVEgfCBXT19JUykpID09IDApCisJaWYgKChwVGVybS0+ZU9wZXJhdG9y ICYgV09fRVEpID09IDApCiAJCXJldHVybiAwOwogCWlmICgocFRlcm0tPnByZXJlcVJpZ2h0 ICYgbm90UmVhZHkpICE9IDApCiAJCXJldHVybiAwOwpAQCAtNjM3LDcgKzYzNSw2IEBAIHRl cm1DYW5Ecml2ZUluZGV4KFdoZXJlVGVybSAqIHBUZXJtLAkvKiBXSEVSRSBjbGF1c2UgdGVy bSB0byBjaGVjayAqLwogCWFmZiA9IHBTcmMtPnBUYWItPmFDb2xbcFRlcm0tPnUubGVmdENv bHVtbl0uYWZmaW5pdHk7CiAJaWYgKCFzcWxpdGUzSW5kZXhBZmZpbml0eU9rKHBUZXJtLT5w RXhwciwgYWZmKSkKIAkJcmV0dXJuIDA7Ci0JdGVzdGNhc2UocFRlcm0tPnBFeHByLT5vcCA9 PSBUS19JUyk7CiAJcmV0dXJuIDE7CiB9CiAjZW5kaWYKQEAgLTIyMDAsOSArMjE5Nyw4IEBA IHdoZXJlTG9vcE91dHB1dEFkanVzdChXaGVyZUNsYXVzZSAqIHBXQywJLyogVGhlIFdIRVJF IGNsYXVzZSAqLwogCQkJCSAqIGd1ZXNzIGEgcmVhc29uYWJsZSB0cnV0aCBwcm9iYWJpbGl0 eS4KIAkJCQkgKi8KIAkJCQlwTG9vcC0+bk91dC0tOwotCQkJCWlmIChwVGVybS0+ZU9wZXJh dG9yICYgKFdPX0VRIHwgV09fSVMpKSB7CisJCQkJaWYgKHBUZXJtLT5lT3BlcmF0b3IgJiBX T19FUSkgewogCQkJCQlFeHByICpwUmlnaHQgPSBwVGVybS0+cEV4cHItPnBSaWdodDsKLQkJ CQkJdGVzdGNhc2UocFRlcm0tPnBFeHByLT5vcCA9PSBUS19JUyk7CiAJCQkJCWlmIChzcWxp dGUzRXhwcklzSW50ZWdlcihwUmlnaHQsICZrKQogCQkJCQkgICAgJiYgayA+PSAoLTEpICYm IGsgPD0gMSkgewogCQkJCQkJayA9IDEwOwpAQCAtMjM0MSw4ICsyMzM3LDcgQEAgd2hlcmVM b29wQWRkQnRyZWVJbmRleChXaGVyZUxvb3BCdWlsZGVyICogcEJ1aWxkZXIsCS8qIFRoZSBX aGVyZUxvb3AgZmFjdG9yeSAqLwogCX0gZWxzZSB7CiAJCWFzc2VydChwTmV3LT5uQnRtID09 IDApOwogCQlvcE1hc2sgPQotCQkgICAgV09fRVEgfCBXT19JTiB8IFdPX0dUIHwgV09fR0Ug fCBXT19MVCB8IFdPX0xFIHwgV09fSVNOVUxMIHwKLQkJICAgIFdPX0lTOworCQkgICAgV09f RVEgfCBXT19JTiB8IFdPX0dUIHwgV09fR0UgfCBXT19MVCB8IFdPX0xFIHwgV09fSVNOVUxM OwogCX0KIAlzdHJ1Y3Qgc3BhY2UgKnNwYWNlID0KIAkJc3BhY2VfYnlfaWQoU1FMSVRFX1BB R0VOT19UT19TUEFDRUlEKHBQcm9iZS0+dG51bSkpOwpAQCAtMjQwNCw4ICsyMzk5LDcgQEAg d2hlcmVMb29wQWRkQnRyZWVJbmRleChXaGVyZUxvb3BCdWlsZGVyICogcEJ1aWxkZXIsCS8q IFRoZSBXaGVyZUxvb3AgZmFjdG9yeSAqLwogCQkgKi8KIAkJaWYgKChwU3JjLT5mZy5qb2lu dHlwZSAmIEpUX0xFRlQpICE9IDAKIAkJICAgICYmICFFeHBySGFzUHJvcGVydHkocFRlcm0t PnBFeHByLCBFUF9Gcm9tSm9pbikKLQkJICAgICYmIChlT3AgJiAoV09fSVMgfCBXT19JU05V TEwpKSAhPSAwKSB7Ci0JCQl0ZXN0Y2FzZShlT3AgJiBXT19JUyk7CisJCSAgICAmJiAoZU9w ICYgV09fSVNOVUxMKSAhPSAwKSB7CiAJCQl0ZXN0Y2FzZShlT3AgJiBXT19JU05VTEwpOwog CQkJY29udGludWU7CiAJCX0KQEAgLTI0NTUsNyArMjQ0OSw3IEBAIHdoZXJlTG9vcEFkZEJ0 cmVlSW5kZXgoV2hlcmVMb29wQnVpbGRlciAqIHBCdWlsZGVyLAkvKiBUaGUgV2hlcmVMb29w IGZhY3RvcnkgKi8KIAkJCQkJCQkgKiBjaGFuZ2VzICJ4IElOICg/KSIgaW50byAieD0/Ii4K IAkJCQkJCQkgKi8KIAkJCX0KLQkJfSBlbHNlIGlmIChlT3AgJiAoV09fRVEgfCBXT19JUykp IHsKKwkJfSBlbHNlIGlmIChlT3AgJiBXT19FUSkgewogCQkJaW50IGlDb2wgPSBwUHJvYmUt PmFpQ29sdW1uW3NhdmVkX25FcV07CiAJCQlwTmV3LT53c0ZsYWdzIHw9IFdIRVJFX0NPTFVN Tl9FUTsKIAkJCWFzc2VydChzYXZlZF9uRXEgPT0gcE5ldy0+bkVxKTsKQEAgLTI1MjIsNyAr MjUxNiw3IEBAIHdoZXJlTG9vcEFkZEJ0cmVlSW5kZXgoV2hlcmVMb29wQnVpbGRlciAqIHBC dWlsZGVyLAkvKiBUaGUgV2hlcmVMb29wIGZhY3RvcnkgKi8KIAkJCXdoZXJlUmFuZ2VTY2Fu RXN0KHBQYXJzZSwgcEJ1aWxkZXIsIHBCdG0sIHBUb3AsIHBOZXcpOwogCQl9IGVsc2Ugewog CQkJaW50IG5FcSA9ICsrcE5ldy0+bkVxOwotCQkJYXNzZXJ0KGVPcCAmIChXT19JU05VTEwg fCBXT19FUSB8IFdPX0lOIHwgV09fSVMpKTsKKwkJCWFzc2VydChlT3AgJiAoV09fSVNOVUxM IHwgV09fRVEgfCBXT19JTikpOwogCiAJCQlhc3NlcnQocE5ldy0+bk91dCA9PSBzYXZlZF9u T3V0KTsKIAkJCWlmIChwVGVybS0+dHJ1dGhQcm9iIDw9IDAKQEAgLTI1NDEsMTAgKzI1MzUs OSBAQCB3aGVyZUxvb3BBZGRCdHJlZUluZGV4KFdoZXJlTG9vcEJ1aWxkZXIgKiBwQnVpbGRl ciwJLyogVGhlIFdoZXJlTG9vcCBmYWN0b3J5ICovCiAJCQkJCQkJICAgIEVQX3hJc1NlbGVj dCkpCiAJCQkJICAgICkgewogCQkJCQlFeHByICpwRXhwciA9IHBUZXJtLT5wRXhwcjsKLQkJ CQkJaWYgKChlT3AgJiAoV09fRVEgfCBXT19JU05VTEwgfCBXT19JUykpCisJCQkJCWlmICgo ZU9wICYgKFdPX0VRIHwgV09fSVNOVUxMKSkKIAkJCQkJICAgICE9IDApIHsKIAkJCQkJCXRl c3RjYXNlKGVPcCAmIFdPX0VRKTsKLQkJCQkJCXRlc3RjYXNlKGVPcCAmIFdPX0lTKTsKIAkJ CQkJCXRlc3RjYXNlKGVPcCAmIFdPX0lTTlVMTCk7CiAJCQkJCQlyYyA9IHdoZXJlRXF1YWxT Y2FuRXN0KHBQYXJzZSwKIAkJCQkJCQkJICAgICAgIHBCdWlsZGVyLApAQCAtMzI2NCw3ICsz MjU3LDcgQEAgd2hlcmVQYXRoU2F0aXNmaWVzT3JkZXJCeShXaGVyZUluZm8gKiBwV0luZm8s CS8qIFRoZSBXSEVSRSBjbGF1c2UgKi8KIAlvYkRvbmUgPSBNQVNLQklUKG5PcmRlckJ5KSAt IDE7CiAJb3JkZXJEaXN0aW5jdE1hc2sgPSAwOwogCXJlYWR5ID0gMDsKLQllcU9wTWFzayA9 IFdPX0VRIHwgV09fSVMgfCBXT19JU05VTEw7CisJZXFPcE1hc2sgPSBXT19FUSB8IFdPX0lT TlVMTDsKIAlpZiAod2N0cmxGbGFncyAmIFdIRVJFX09SREVSQllfTElNSVQpCiAJCWVxT3BN YXNrIHw9IFdPX0lOOwogCWZvciAoaUxvb3AgPSAwOyBpc09yZGVyRGlzdGluY3QgJiYgb2JT YXQgPCBvYkRvbmUgJiYgaUxvb3AgPD0gbkxvb3A7CkBAIC0zMzEyLDcgKzMzMDUsNyBAQCB3 aGVyZVBhdGhTYXRpc2ZpZXNPcmRlckJ5KFdoZXJlSW5mbyAqIHBXSW5mbywJLyogVGhlIFdI RVJFIGNsYXVzZSAqLwogCQkJCWlmIChqID49IHBMb29wLT5uTFRlcm0pCiAJCQkJCWNvbnRp bnVlOwogCQkJfQotCQkJaWYgKChwVGVybS0+ZU9wZXJhdG9yICYgKFdPX0VRIHwgV09fSVMp KSAhPSAwCisJCQlpZiAoKHBUZXJtLT5lT3BlcmF0b3IgJiBXT19FUSkgIT0gMAogCQkJICAg ICYmIHBPQkV4cHItPmlDb2x1bW4gPj0gMCkgewogCQkJCXN0cnVjdCBjb2xsICpjb2xsMSwg KmNvbGwyOwogCQkJCWJvb2wgdW51c2VkOwpAQCAtMzMyNCw3ICszMzE3LDYgQEAgd2hlcmVQ YXRoU2F0aXNmaWVzT3JkZXJCeShXaGVyZUluZm8gKiBwV0luZm8sCS8qIFRoZSBXSEVSRSBj bGF1c2UgKi8KIAkJCQkJCSAgICAgICZ1bnVzZWQpOwogCQkJCWlmIChjb2xsMSAhPSBjb2xs MikKIAkJCQkJY29udGludWU7Ci0JCQkJdGVzdGNhc2UocFRlcm0tPnBFeHByLT5vcCA9PSBU S19JUyk7CiAJCQl9CiAJCQlvYlNhdCB8PSBNQVNLQklUKGkpOwogCQl9CkBAIC0zMzU1LDcg KzMzNDcsNyBAQCB3aGVyZVBhdGhTYXRpc2ZpZXNPcmRlckJ5KFdoZXJlSW5mbyAqIHBXSW5m bywJLyogVGhlIFdIRVJFIGNsYXVzZSAqLwogCQkJCWlmIChqIDwgcExvb3AtPm5FcSAmJiBq ID49IHBMb29wLT5uU2tpcCkgewogCQkJCQl1MTYgZU9wID0gcExvb3AtPmFMVGVybVtqXS0+ ZU9wZXJhdG9yOwogCi0JCQkJCS8qIFNraXAgb3ZlciA9PSBhbmQgSVMgYW5kIElTTlVMTCB0 ZXJtcy4gIChBbHNvIHNraXAgSU4gdGVybXMgd2hlbgorCQkJCQkvKiBTa2lwIG92ZXIgPT0g YW5kIElTIE5VTEwgdGVybXMuICAoQWxzbyBza2lwIElOIHRlcm1zIHdoZW4KIAkJCQkJICog ZG9pbmcgV0hFUkVfT1JERVJCWV9MSU1JVCBwcm9jZXNzaW5nKS4KIAkJCQkJICoKIAkJCQkJ ICogSWYgdGhlIGN1cnJlbnQgdGVybSBpcyBhIGNvbHVtbiBvZiBhbiAoKD8sPykgSU4gKFNF TEVDVC4uLikpCkBAIC00MTA1LDkgKzQwOTcsOCBAQCB3aGVyZVNob3J0Q3V0KFdoZXJlTG9v cEJ1aWxkZXIgKiBwQnVpbGRlcikKIAlwTG9vcCA9IHBCdWlsZGVyLT5wTmV3OwogCXBMb29w LT53c0ZsYWdzID0gMDsKIAlwTG9vcC0+blNraXAgPSAwOwotCXBUZXJtID0gc3FsaXRlM1do ZXJlRmluZFRlcm0ocFdDLCBpQ3VyLCAtMSwgMCwgV09fRVEgfCBXT19JUywgMCk7CisJcFRl cm0gPSBzcWxpdGUzV2hlcmVGaW5kVGVybShwV0MsIGlDdXIsIC0xLCAwLCBXT19FUSwgMCk7 CiAJaWYgKHBUZXJtKSB7Ci0JCXRlc3RjYXNlKHBUZXJtLT5lT3BlcmF0b3IgJiBXT19JUyk7 CiAJCXBMb29wLT53c0ZsYWdzID0gV0hFUkVfQ09MVU1OX0VRIHwgV0hFUkVfSVBLIHwgV0hF UkVfT05FUk9XOwogCQlwTG9vcC0+YUxUZXJtWzBdID0gcFRlcm07CiAJCXBMb29wLT5uTFRl cm0gPSAxOwpAQCAtNDEyNCwxNSArNDExNSwxMyBAQCB3aGVyZVNob3J0Q3V0KFdoZXJlTG9v cEJ1aWxkZXIgKiBwQnVpbGRlcikKIAkJCSAgICB8fCBuSWR4Q29sID4gQXJyYXlTaXplKHBM b29wLT5hTFRlcm1TcGFjZSkKIAkJCSAgICApCiAJCQkJY29udGludWU7Ci0JCQlvcE1hc2sg PSBpbmRleF9pc191bmlxdWVfbm90X251bGwocElkeCkgPwotCQkJCSAoV09fRVEgfCBXT19J UykgOiBXT19FUTsKKwkJCW9wTWFzayA9IFdPX0VROwogCQkJZm9yIChqID0gMDsgaiA8IG5J ZHhDb2w7IGorKykgewogCQkJCXBUZXJtID0KIAkJCQkgICAgc3FsaXRlM1doZXJlRmluZFRl cm0ocFdDLCBpQ3VyLCBqLCAwLAogCQkJCQkJCSBvcE1hc2ssIHBJZHgpOwogCQkJCWlmIChw VGVybSA9PSAwKQogCQkJCQlicmVhazsKLQkJCQl0ZXN0Y2FzZShwVGVybS0+ZU9wZXJhdG9y ICYgV09fSVMpOwogCQkJCXBMb29wLT5hTFRlcm1bal0gPSBwVGVybTsKIAkJCX0KIAkJCWlm IChqICE9IG5JZHhDb2wpCmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC93aGVyZUludC5oIGIv c3JjL2JveC9zcWwvd2hlcmVJbnQuaAppbmRleCA5YTA5MjI5Li4wZGE1MDcxIDEwMDY0NAot LS0gYS9zcmMvYm94L3NxbC93aGVyZUludC5oCisrKyBiL3NyYy9ib3gvc3FsL3doZXJlSW50 LmgKQEAgLTUwNiw3ICs1MDYsNiBAQCB2b2lkIHNxbGl0ZTNXaGVyZVRhYkZ1bmNBcmdzKFBh cnNlICosIHN0cnVjdCBTcmNMaXN0X2l0ZW0gKiwgV2hlcmVDbGF1c2UgKik7CiAjZGVmaW5l IFdPX0dUICAgICAoV09fRVE8PChUS19HVC1US19FUSkpCiAjZGVmaW5lIFdPX0dFICAgICAo V09fRVE8PChUS19HRS1US19FUSkpCiAjZGVmaW5lIFdPX01BVENIICAweDAwNDAKLSNkZWZp bmUgV09fSVMgICAgIDB4MDA4MAogI2RlZmluZSBXT19JU05VTEwgMHgwMTAwCiAjZGVmaW5l IFdPX09SICAgICAweDAyMDAJLyogVHdvIG9yIG1vcmUgT1ItY29ubmVjdGVkIHRlcm1zICov CiAjZGVmaW5lIFdPX0FORCAgICAweDA0MDAJLyogVHdvIG9yIG1vcmUgQU5ELWNvbm5lY3Rl ZCB0ZXJtcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvd2hlcmVjb2RlLmMgYi9zcmMv Ym94L3NxbC93aGVyZWNvZGUuYwppbmRleCA4Nzg0MjVjLi40MTMxYWNhIDEwMDY0NAotLS0g YS9zcmMvYm94L3NxbC93aGVyZWNvZGUuYworKysgYi9zcmMvYm94L3NxbC93aGVyZWNvZGUu YwpAQCAtNDI2LDcgKzQyNiw3IEBAIHVwZGF0ZVJhbmdlQWZmaW5pdHlTdHIoRXhwciAqIHBS aWdodCwJLyogUkhTIG9mIGNvbXBhcmlzb24gKi8KICAqIFRoZSBjdXJyZW50IHZhbHVlIGZv ciB0aGUgY29uc3RyYWludCBpcyBsZWZ0IGluIGEgcmVnaXN0ZXIsIHRoZSBpbmRleAogICog b2Ygd2hpY2ggaXMgcmV0dXJuZWQuICBBbiBhdHRlbXB0IGlzIG1hZGUgc3RvcmUgdGhlIHJl c3VsdCBpbiBpVGFyZ2V0IGJ1dAogICogdGhpcyBpcyBvbmx5IGd1YXJhbnRlZWQgZm9yIFRL X0lTTlVMTCBhbmQgVEtfSU4gY29uc3RyYWludHMuICBJZiB0aGUKLSAqIGNvbnN0cmFpbnQg aXMgYSBUS19FUSBvciBUS19JUywgdGhlbiB0aGUgY3VycmVudCB2YWx1ZSBtaWdodCBiZSBs ZWZ0IGluCisgKiBjb25zdHJhaW50IGlzIGEgVEtfRVEsIHRoZW4gdGhlIGN1cnJlbnQgdmFs dWUgbWlnaHQgYmUgbGVmdCBpbgogICogc29tZSBvdGhlciByZWdpc3RlciBhbmQgaXQgaXMg dGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGNvbXBlbnNhdGUuCiAgKgogICogRm9y IGEgY29uc3RyYWludCBvZiB0aGUgZm9ybSBYPWV4cHIsIHRoZSBleHByZXNzaW9uIGlzIGV2 YWx1YXRlZCBpbgpAQCAtNDQ4LDcgKzQ0OCw3IEBAIGNvZGVFcXVhbGl0eVRlcm0oUGFyc2Ug KiBwUGFyc2UsCS8qIFRoZSBwYXJzaW5nIGNvbnRleHQgKi8KIAogCWFzc2VydChwTGV2ZWwt PnBXTG9vcC0+YUxUZXJtW2lFcV0gPT0gcFRlcm0pOwogCWFzc2VydChpVGFyZ2V0ID4gMCk7 Ci0JaWYgKHBYLT5vcCA9PSBUS19FUSB8fCBwWC0+b3AgPT0gVEtfSVMpIHsKKwlpZiAocFgt Pm9wID09IFRLX0VRKSB7CiAJCWlSZWcgPSBzcWxpdGUzRXhwckNvZGVUYXJnZXQocFBhcnNl LCBwWC0+cFJpZ2h0LCBpVGFyZ2V0KTsKIAl9IGVsc2UgaWYgKHBYLT5vcCA9PSBUS19JU05V TEwpIHsKIAkJaVJlZyA9IGlUYXJnZXQ7CkBAIC04NjcsOCArODY3LDcgQEAgY29kZUN1cnNv ckhpbnRDaGVja0V4cHIoV2Fsa2VyICogcFdhbGtlciwgRXhwciAqIHBFeHByKQogc3RhdGlj IGludAogY29kZUN1cnNvckhpbnRJc09yRnVuY3Rpb24oV2Fsa2VyICogcFdhbGtlciwgRXhw ciAqIHBFeHByKQogewotCWlmIChwRXhwci0+b3AgPT0gVEtfSVMKLQkgICAgfHwgcEV4cHIt Pm9wID09IFRLX0lTTlVMTCB8fCBwRXhwci0+b3AgPT0gVEtfSVNOT1QKKwlpZiAocEV4cHIt Pm9wID09IFRLX0lTTlVMTAogCSAgICB8fCBwRXhwci0+b3AgPT0gVEtfTk9UTlVMTCB8fCBw RXhwci0+b3AgPT0gVEtfQ0FTRSkgewogCQlwV2Fsa2VyLT5lQ29kZSA9IDE7CiAJfSBlbHNl IGlmIChwRXhwci0+b3AgPT0gVEtfRlVOQ1RJT04pIHsKQEAgLTE5MTcsNyArMTkxNiw3IEBA IHNxbGl0ZTNXaGVyZUNvZGVPbmVMb29wU3RhcnQoV2hlcmVJbmZvICogcFdJbmZvLAkvKiBD b21wbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCB0CiAJCVdoZXJlVGVybSAqcEFsdDsKIAkJaWYg KHBUZXJtLT53dEZsYWdzICYgKFRFUk1fVklSVFVBTCB8IFRFUk1fQ09ERUQpKQogCQkJY29u dGludWU7Ci0JCWlmICgocFRlcm0tPmVPcGVyYXRvciAmIChXT19FUSB8IFdPX0lTKSkgPT0g MCkKKwkJaWYgKChwVGVybS0+ZU9wZXJhdG9yICYgV09fRVEpID09IDApCiAJCQljb250aW51 ZTsKIAkJaWYgKChwVGVybS0+ZU9wZXJhdG9yICYgV09fRVFVSVYpID09IDApCiAJCQljb250 aW51ZTsKQEAgLTE5MzAsMTMgKzE5MjksMTIgQEAgc3FsaXRlM1doZXJlQ29kZU9uZUxvb3BT dGFydChXaGVyZUluZm8gKiBwV0luZm8sCS8qIENvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0 IHQKIAkJYXNzZXJ0KChwVGVybS0+cHJlcmVxUmlnaHQgJiBwTGV2ZWwtPm5vdFJlYWR5KSAh PSAwKTsKIAkJcEFsdCA9CiAJCSAgICBzcWxpdGUzV2hlcmVGaW5kVGVybShwV0MsIGlDdXIs IHBUZXJtLT51LmxlZnRDb2x1bW4sCi0JCQkJCSBub3RSZWFkeSwgV09fRVEgfCBXT19JTiB8 IFdPX0lTLCAwKTsKKwkJCQkJIG5vdFJlYWR5LCBXT19FUSB8IFdPX0lOLCAwKTsKIAkJaWYg KHBBbHQgPT0gMCkKIAkJCWNvbnRpbnVlOwogCQlpZiAocEFsdC0+d3RGbGFncyAmIChURVJN X0NPREVEKSkKIAkJCWNvbnRpbnVlOwogCQl0ZXN0Y2FzZShwQWx0LT5lT3BlcmF0b3IgJiBX T19FUSk7Ci0JCXRlc3RjYXNlKHBBbHQtPmVPcGVyYXRvciAmIFdPX0lTKTsKIAkJdGVzdGNh c2UocEFsdC0+ZU9wZXJhdG9yICYgV09fSU4pOwogCQlWZGJlTW9kdWxlQ29tbWVudCgodiwg ImJlZ2luIHRyYW5zaXRpdmUgY29uc3RyYWludCIpKTsKIAkJc0VBbHQgPSAqcEFsdC0+cEV4 cHI7CmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC93aGVyZWV4cHIuYyBiL3NyYy9ib3gvc3Fs L3doZXJlZXhwci5jCmluZGV4IDZiNjNiMmMuLmY2NGViNzIgMTAwNjQ0Ci0tLSBhL3NyYy9i b3gvc3FsL3doZXJlZXhwci5jCisrKyBiL3NyYy9ib3gvc3FsL3doZXJlZXhwci5jCkBAIC0x MzYsOCArMTM2LDcgQEAgYWxsb3dlZE9wKGludCBvcCkKIAlhc3NlcnQoVEtfTFQgPiBUS19F USAmJiBUS19MVCA8IFRLX0dFKTsKIAlhc3NlcnQoVEtfTEUgPiBUS19FUSAmJiBUS19MRSA8 IFRLX0dFKTsKIAlhc3NlcnQoVEtfR0UgPT0gVEtfRVEgKyA0KTsKLQlyZXR1cm4gb3AgPT0g VEtfSU4gfHwgKG9wID49IFRLX0VRICYmIG9wIDw9IFRLX0dFKSB8fCBvcCA9PSBUS19JU05V TEwKLQkgICAgfHwgb3AgPT0gVEtfSVM7CisJcmV0dXJuIG9wID09IFRLX0lOIHx8IChvcCA+ PSBUS19FUSAmJiBvcCA8PSBUS19HRSkgfHwgb3AgPT0gVEtfSVNOVUxMOwogfQogCiAvKgpA QCAtMjA0LDggKzIwMyw2IEBAIG9wZXJhdG9yTWFzayhpbnQgb3ApCiAJCWMgPSBXT19JTjsK IAl9IGVsc2UgaWYgKG9wID09IFRLX0lTTlVMTCkgewogCQljID0gV09fSVNOVUxMOwotCX0g ZWxzZSBpZiAob3AgPT0gVEtfSVMpIHsKLQkJYyA9IFdPX0lTOwogCX0gZWxzZSB7CiAJCWFz c2VydCgoV09fRVEgPDwgKG9wIC0gVEtfRVEpKSA8IDB4N2ZmZik7CiAJCWMgPSAodTE2KSAo V09fRVEgPDwgKG9wIC0gVEtfRVEpKTsKQEAgLTIxNyw3ICsyMTQsNiBAQCBvcGVyYXRvck1h c2soaW50IG9wKQogCWFzc2VydChvcCAhPSBUS19MRSB8fCBjID09IFdPX0xFKTsKIAlhc3Nl cnQob3AgIT0gVEtfR1QgfHwgYyA9PSBXT19HVCk7CiAJYXNzZXJ0KG9wICE9IFRLX0dFIHx8 IGMgPT0gV09fR0UpOwotCWFzc2VydChvcCAhPSBUS19JUyB8fCBjID09IFdPX0lTKTsKIAly ZXR1cm4gYzsKIH0KIApAQCAtODMzLDcgKzgyOSw3IEBAIHRlcm1Jc0VxdWl2YWxlbmNlKFBh cnNlICogcFBhcnNlLCBFeHByICogcEV4cHIpCiAJY29uc3QgY2hhciAqekNvbGwxLCAqekNv bGwyOwogCWlmICghT3B0aW1pemF0aW9uRW5hYmxlZChwUGFyc2UtPmRiLCBTUUxJVEVfVHJh bnNpdGl2ZSkpCiAJCXJldHVybiAwOwotCWlmIChwRXhwci0+b3AgIT0gVEtfRVEgJiYgcEV4 cHItPm9wICE9IFRLX0lTKQorCWlmIChwRXhwci0+b3AgIT0gVEtfRVEpCiAJCXJldHVybiAw OwogCWlmIChFeHBySGFzUHJvcGVydHkocEV4cHIsIEVQX0Zyb21Kb2luKSkKIAkJcmV0dXJu IDA7CkBAIC05MjAsOSArOTE2LDkgQEAgZXhwck1pZ2h0QmVJbmRleGVkKFNyY0xpc3QgKiBw RnJvbSwJLyogVGhlIEZST00gY2xhdXNlICovCiAJICogb24gdGhlIGZpcnN0IGVsZW1lbnQg b2YgdGhlIHZlY3Rvci4KIAkgKi8KIAlhc3NlcnQoVEtfR1QgKyAxID09IFRLX0xFICYmIFRL X0dUICsgMiA9PSBUS19MVCAmJiBUS19HVCArIDMgPT0gVEtfR0UpOwotCWFzc2VydChUS19J UyA8IFRLX0dFICYmIFRLX0lTTlVMTCA8IFRLX0dFICYmIFRLX0lOIDwgVEtfR0UpOwotCWFz c2VydChvcCA8PSBUS19HRSk7Ci0JaWYgKHBFeHByLT5vcCA9PSBUS19WRUNUT1IgJiYgKG9w ID49IFRLX0dUICYmIEFMV0FZUyhvcCA8PSBUS19HRSkpKSB7CisJYXNzZXJ0KFRLX0lOIDwg VEtfR0UpOworCWFzc2VydChvcCA8PSBUS19HRSB8fCBvcCA9PSBUS19JU05VTEwgfHwgb3Ag PT0gVEtfTk9UTlVMTCk7CisJaWYgKHBFeHByLT5vcCA9PSBUS19WRUNUT1IgJiYgKG9wID49 IFRLX0dUICYmIG9wIDw9IFRLX0dFKSkgewogCQlwRXhwciA9IHBFeHByLT54LnBMaXN0LT5h WzBdLnBFeHByOwogCX0KIApAQCAtMTA1MSw4ICsxMDQ3LDYgQEAgZXhwckFuYWx5emUoU3Jj TGlzdCAqIHBTcmMsCS8qIHRoZSBGUk9NIGNsYXVzZSAqLwogCQkJcFRlcm0tPnUubGVmdENv bHVtbiA9IGlDb2x1bW47CiAJCQlwVGVybS0+ZU9wZXJhdG9yID0gb3BlcmF0b3JNYXNrKG9w KSAmIG9wTWFzazsKIAkJfQotCQlpZiAob3AgPT0gVEtfSVMpCi0JCQlwVGVybS0+d3RGbGFn cyB8PSBURVJNX0lTOwogCQlpZiAocFJpZ2h0CiAJCSAgICAmJiBleHByTWlnaHRCZUluZGV4 ZWQocFNyYywgb3AsIHBUZXJtLT5wcmVyZXFSaWdodCwgcFJpZ2h0LAogCQkJCQkgICZpQ3Vy LCAmaUNvbHVtbikKQEAgLTEwNzYsOCArMTA3MCw2IEBAIGV4cHJBbmFseXplKFNyY0xpc3Qg KiBwU3JjLAkvKiB0aGUgRlJPTSBjbGF1c2UgKi8KIAkJCQkJcmV0dXJuOwogCQkJCXBOZXcg PSAmcFdDLT5hW2lkeE5ld107CiAJCQkJbWFya1Rlcm1Bc0NoaWxkKHBXQywgaWR4TmV3LCBp ZHhUZXJtKTsKLQkJCQlpZiAob3AgPT0gVEtfSVMpCi0JCQkJCXBOZXctPnd0RmxhZ3MgfD0g VEVSTV9JUzsKIAkJCQlwVGVybSA9ICZwV0MtPmFbaWR4VGVybV07CiAJCQkJcFRlcm0tPnd0 RmxhZ3MgfD0gVEVSTV9DT1BJRUQ7CiAKQEAgLTEyNTIsNyArMTI0NCw3IEBAIGV4cHJBbmFs eXplKFNyY0xpc3QgKiBwU3JjLAkvKiB0aGUgRlJPTSBjbGF1c2UgKi8KIAkgKiBUaGlzIGlz IG9ubHkgcmVxdWlyZWQgaWYgYXQgbGVhc3Qgb25lIHNpZGUgb2YgdGhlIGNvbXBhcmlzb24g b3BlcmF0aW9uCiAJICogaXMgbm90IGEgc3ViLXNlbGVjdC4KIAkgKi8KLQlpZiAocFdDLT5v cCA9PSBUS19BTkQgJiYgKHBFeHByLT5vcCA9PSBUS19FUSB8fCBwRXhwci0+b3AgPT0gVEtf SVMpCisJaWYgKHBXQy0+b3AgPT0gVEtfQU5EICYmIChwRXhwci0+b3AgPT0gVEtfRVEpCiAJ ICAgICYmIHNxbGl0ZTNFeHBySXNWZWN0b3IocEV4cHItPnBMZWZ0KQogCSAgICAmJiAoKHBF eHByLT5wTGVmdC0+ZmxhZ3MgJiBFUF94SXNTZWxlY3QpID09IDAKIAkJfHwgKHBFeHByLT5w UmlnaHQtPmZsYWdzICYgRVBfeElzU2VsZWN0KSA9PSAwKSkgewpkaWZmIC0tZ2l0IGEvdGVz dC9zcWwtdGFwL2FuYWx5emUxLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFwL2FuYWx5emUxLnRl c3QubHVhCmluZGV4IDVkOTFkOTYuLjMwOGY2YjkgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRh cC9hbmFseXplMS50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvYW5hbHl6ZTEudGVzdC5s dWEKQEAgLTY1LDcgKzY1LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4 ZWNzcWxfdGVzdCgKICAgICAiYW5hbHl6ZS0xLjciLAogICAgIFtbCi0gICAgICAgIFNFTEVD VCAqIEZST00gIl9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIE5PVCBOVUxMCisgICAgICAgIFNF TEVDVCAqIEZST00gIl9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIElTIE5PVCBOVUxMCiAgICAg XV0sIHsKICAgICAgICAgLS0gPGFuYWx5emUtMS43PgogICAgICAgICAtLSA8L2FuYWx5emUt MS43PgpAQCAtODQsNyArODQsNyBAQCB0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCiB0ZXN0OmRv X2V4ZWNzcWxfdGVzdCgKICAgICAiYW5hbHl6ZS0xLjkiLAogICAgIFtbCi0gICAgICAgIFNF TEVDVCAqIEZST00gIl9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIE5PVCBOVUxMCisgICAgICAg IFNFTEVDVCAqIEZST00gIl9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIElTIE5PVCBOVUxMCiAg ICAgXV0sIHsKICAgICAgICAgLS0gPGFuYWx5emUtMS45PgogICAgICAgICAtLSA8L2FuYWx5 emUtMS45PgpkaWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL2NzZS50ZXN0Lmx1YSBiL3Rlc3Qv c3FsLXRhcC9jc2UudGVzdC5sdWEKaW5kZXggMDRlZjY3My4uMzU0NGVmNiAxMDA3NTUKLS0t IGEvdGVzdC9zcWwtdGFwL2NzZS50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvY3NlLnRl c3QubHVhCkBAIC00Miw3ICs0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKIHRlc3Q6ZG9fZXhlY3Nx bF90ZXN0KAogICAgICJjc2UtMS4yIiwKICAgICBbWwotICAgICAgICBTRUxFQ1QgYiwgYiVi LCBiPT1iLCBiIT1iLCBiPGIsIGI8PWIsIGIgSVMgTlVMTCwgYiBOT1QgTlVMTCwgYiBGUk9N IHQxCisgICAgICAgIFNFTEVDVCBiLCBiJWIsIGI9PWIsIGIhPWIsIGI8YiwgYjw9YiwgYiBJ UyBOVUxMLCBiIElTIE5PVCBOVUxMLCBiIEZST00gdDEKICAgICBdXSwgewogICAgICAgICAt LSA8Y3NlLTEuMj4KICAgICAgICAgMTEsIDAsIDEsIDAsIDAsIDEsIDAsIDEsIDExLCAyMSwg MCwgMSwgMCwgMCwgMSwgMCwgMSwgMjEKQEAgLTE0Miw3ICsxNDIsNyBAQCB0ZXN0OmRvX2V4 ZWNzcWxfdGVzdCgKIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAgICJjc2UtMS44IiwKICAg ICBbWwotICAgICAgICBTRUxFQ1QgYSwgYSVhLCBhPT1hLCBhIT1hLCBhPGEsIGE8PWEsIGEg SVMgTlVMTCwgYSBOT1QgTlVMTCwgYSBGUk9NIHQxCisgICAgICAgIFNFTEVDVCBhLCBhJWEs IGE9PWEsIGEhPWEsIGE8YSwgYTw9YSwgYSBJUyBOVUxMLCBhIElTIE5PVCBOVUxMLCBhIEZS T00gdDEKICAgICBdXSwgewogICAgICAgICAtLSA8Y3NlLTEuOD4KICAgICAgICAgMSwgMCwg MSwgMCwgMCwgMSwgMCwgMSwgMSwgMiwgMCwgMSwgMCwgMCwgMSwgMCwgMSwgMgpkaWZmIC0t Z2l0IGEvdGVzdC9zcWwtdGFwL2VfZXhwci50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9lX2V4 cHIudGVzdC5sdWEKaW5kZXggZDBmNjg5NS4uMDk2YzU2ZCAxMDA3NTUKLS0tIGEvdGVzdC9z cWwtdGFwL2VfZXhwci50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvZV9leHByLnRlc3Qu bHVhCkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0g cmVxdWlyZSgic3FsdGVzdGVyIikKLXRlc3Q6cGxhbigxNDc1MCkKK3Rlc3Q6cGxhbigxMjQz NikKIAogLS0hLi90Y2x0ZXN0cnVubmVyLmx1YQogLS0gMjAxMCBKdWx5IDE2CkBAIC05Niw3 ICs5Niw3IEBAIG9wZXJhdGlvbnMgPSB7CiAgICAgeyIrIiwgIi0ifSwKICAgICB7Ijw8Iiwg Ij4+IiwgIiYiLCAifCJ9LAogICAgIHsiPCIsICI8PSIsICI+IiwgIj49In0sCi0gICAgeyI9 IiwgIj09IiwgIiE9IiwgIjw+IiwgIklTIiwgIklTIE5PVCIsICJMSUtFIiwgIkdMT0IifSwg LS0iTUFUQ0giLCAiUkVHRVhQIn0sCisgICAgeyI9IiwgIj09IiwgIiE9IiwgIjw+IiwgIkxJ S0UiLCAiR0xPQiJ9LCAtLSJNQVRDSCIsICJSRUdFWFAifSwKICAgICB7IkFORCJ9LAogICAg IHsiT1IifSwKIH0KQEAgLTUxMywyNiArNTEzLDYgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3Qo CiAgICAgfSkKIAogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci04LjEuMyIs Ci0gICAgW1sKLSAgICAgICAgU0VMRUNUIE5VTEwgSVMgICAgICdhYicKLSAgICBdXSwgewot ICAgICAgICAtLSA8ZV9leHByLTguMS4zPgotICAgICAgICAwCi0gICAgICAgIC0tIDwvZV9l eHByLTguMS4zPgotICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJlX2V4 cHItOC4xLjQiLAotICAgIFtbCi0gICAgICAgIFNFTEVDVCAnYWInIElTICAgICAnYWInCi0g ICAgXV0sIHsKLSAgICAgICAgLS0gPGVfZXhwci04LjEuND4KLSAgICAgICAgMQotICAgICAg ICAtLSA8L2VfZXhwci04LjEuND4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK ICAgICAiZV9leHByLTguMS41IiwKICAgICBbWwogICAgICAgICBTRUxFQ1QgTlVMTCA9PSAg ICAgTlVMTApAQCAtNTkzLDI2ICs1NzMsNiBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAg ICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAiZV9leHByLTguMS4xMSIsCi0g ICAgW1sKLSAgICAgICAgU0VMRUNUIE5VTEwgSVMgTk9UICdhYicKLSAgICBdXSwgewotICAg ICAgICAtLSA8ZV9leHByLTguMS4xMT4KLSAgICAgICAgMQotICAgICAgICAtLSA8L2VfZXhw ci04LjEuMTE+Ci0gICAgfSkKLQotdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhw ci04LjEuMTIiLAotICAgIFtbCi0gICAgICAgIFNFTEVDVCAnYWInIElTIE5PVCAnYWInCi0g ICAgXV0sIHsKLSAgICAgICAgLS0gPGVfZXhwci04LjEuMTI+Ci0gICAgICAgIDAKLSAgICAg ICAgLS0gPC9lX2V4cHItOC4xLjEyPgotICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0 KAogICAgICJlX2V4cHItOC4xLjEzIiwKICAgICBbWwogICAgICAgICBTRUxFQ1QgTlVMTCAh PSAgICAgTlVMTApAQCAtNjUyLDMxICs2MTIsNiBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK ICAgICAgICAgLS0gPC9lX2V4cHItOC4xLjE2PgogICAgIH0pCiAKLWZvciBuMSwgcmhzIGlu IGlwYWlycyhsaXRlcmFscykgZG8KLSAgICBmb3IgbjIsIGxocyBpbiBpcGFpcnMobGl0ZXJh bHMpIGRvCi0gICAgICAgIGxvY2FsIGVxID0gIiIKLSAgICAgICAgaWYgKChyaHMgfj0gIk5V TEwiKSBhbmQgKGxocyB+PSAiTlVMTCIpKSB0aGVuCi0gICAgICAgICAgICBlcSA9IHRlc3Q6 ZXhlY3NxbChzdHJpbmcuZm9ybWF0KCJTRUxFQ1QgJXMgPSAlcywgJXMgIT0gJXMiLCBsaHMs IHJocywgbGhzLCByaHMpKQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBlcSA9IHsgKChs aHMgPT0gIk5VTEwiKSBhbmQgKHJocyA9PSAiTlVMTCIpKSBhbmQgMSBvciAwLCAoKGxocyB+ PSAiTlVMTCIpIG9yIChyaHMgfj0gIk5VTEwiKSkgYW5kIDEgb3IgMH0KLSAgICAgICAgZW5k Ci0gICAgICAgIGxvY2FsIGxhYmVsID0gc3RyaW5nLmZvcm1hdCgiZV9leHByLTguMi4lcy4l cyIsIG4xLCBuMikKLSAgICAgICAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgICAgICAg ICBsYWJlbC4uIi4xIiwKLSAgICAgICAgICAgIHN0cmluZy5mb3JtYXQoW1sKLSAgICAgICAg ICAgICAgICBTRUxFQ1QgJXMgSVMgJXMsICVzIElTIE5PVCAlcwotICAgICAgICAgICAgXV0s IGxocywgcmhzLCBsaHMsIHJocyksIGVxKQotCi0gICAgICAgIHRlc3Q6ZG9fZXhlY3NxbF90 ZXN0KAotICAgICAgICAgICAgbGFiZWwuLiIuMiIsCi0gICAgICAgICAgICBzdHJpbmcuZm9y bWF0KFtbCi0gICAgICAgICAgICAgICAgU0VMRUNUICglcyBJUyAlcykgSVMgTlVMTCwgKCVz IElTIE5PVCAlcykgSVMgTlVMTAotICAgICAgICAgICAgXV0sIGxocywgcmhzLCBsaHMsIHJo cyksIHsKLSAgICAgICAgICAgICAgICAwLCAwCi0gICAgICAgICAgICB9KQotCi0gICAgZW5k Ci1lbmQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLS0gUnVuIHNvbWUgdGVzdHMgb24gdGhl IENPTExBVEUgInVuYXJ5IHBvc3RmaXggb3BlcmF0b3IiLgogLS0KQEAgLTgyOSwyOCArNzY0 LDkgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiAgICAgICAgIC0tIDwvZV9leHByLTkuMTM+ CiAgICAgfSkKIAotdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE0IiwK LSAgICBbWwotICAgICAgICBTRUxFQ1QgICdhYmNkJyBJUyAnQUJDRCcgIENPTExBVEUgInVu aWNvZGVfY2kiCi0gICAgXV0sIHsKLSAgICAgICAgLS0gPGVfZXhwci05LjE0PgotICAgICAg ICAxCi0gICAgICAgIC0tIDwvZV9leHByLTkuMTQ+Ci0gICAgfSkKLQotdGVzdDpkb19leGVj c3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE1IiwKLSAgICBbWwotICAgICAgICBTRUxFQ1Qg KCdhYmNkJyBJUyAnQUJDRCcpIENPTExBVEUgInVuaWNvZGVfY2kiCi0gICAgXV0sIHsKLSAg ICAgICAgLS0gPGVfZXhwci05LjE1PgotICAgICAgICAwCi0gICAgICAgIC0tIDwvZV9leHBy LTkuMTU+Ci0gICAgfSkKIAogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05 LjE2IiwKKyAgICAiZV9leHByLTkuMTQiLAogICAgIFtbCiAgICAgICAgIFNFTEVDVCAgJ2Fi Y2QnICE9ICdBQkNEJyAgICAgIENPTExBVEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAg LTg2MCw3ICs3NzYsNyBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0 OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAiZV9leHByLTkuMTciLAorICAgICJlX2V4cHItOS4x NSIsCiAgICAgW1sKICAgICAgICAgU0VMRUNUICgnYWJjZCcgIT0gJ0FCQ0QnKSAgICAgQ09M TEFURSAidW5pY29kZV9jaSIKICAgICBdXSwgewpAQCAtODcwLDcgKzc4Niw3IEBAIHRlc3Q6 ZG9fZXhlY3NxbF90ZXN0KAogICAgIH0pCiAKIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAg ICJlX2V4cHItOS4xOCIsCisgICAgImVfZXhwci05LjE2IiwKICAgICBbWwogICAgICAgICBT RUxFQ1QgICdhYmNkJyA8PiAnQUJDRCcgICAgICBDT0xMQVRFICJ1bmljb2RlX2NpIgogICAg IF1dLCB7CkBAIC04ODAsNyArNzk2LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiAgICAg fSkKIAogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE5IiwKKyAgICAi ZV9leHByLTkuMTciLAogICAgIFtbCiAgICAgICAgIFNFTEVDVCAoJ2FiY2QnIDw+ICdBQkNE JykgICAgIENPTExBVEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAgLTg5MCwyNyArODA2 LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiAgICAgfSkKIAogdGVzdDpkb19leGVjc3Fs X3Rlc3QoCi0gICAgImVfZXhwci05LjIwIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgICdh YmNkJyBJUyBOT1QgJ0FCQ0QnICBDT0xMQVRFICJ1bmljb2RlX2NpIgotICAgIF1dLCB7Ci0g ICAgICAgIC0tIDxlX2V4cHItOS4yMD4KLSAgICAgICAgMAotICAgICAgICAtLSA8L2VfZXhw ci05LjIwPgotICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJlX2V4cHIt OS4yMSIsCi0gICAgW1sKLSAgICAgICAgU0VMRUNUICgnYWJjZCcgSVMgTk9UICdBQkNEJykg Q09MTEFURSAidW5pY29kZV9jaSIKLSAgICBdXSwgewotICAgICAgICAtLSA8ZV9leHByLTku MjE+Ci0gICAgICAgIDEKLSAgICAgICAgLS0gPC9lX2V4cHItOS4yMT4KLSAgICB9KQotCi10 ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAiZV9leHByLTkuMjIiLAorICAgICJlX2V4cHIt OS4xOCIsCiAgICAgW1sKICAgICAgICAgU0VMRUNUICdiYmInIEJFVFdFRU4gJ0FBQScgQU5E ICdDQ0MnIENPTExBVEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAgLTkyMCw3ICs4MTYs NyBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxf dGVzdCgKLSAgICAiZV9leHByLTkuMjMiLAorICAgICJlX2V4cHItOS4xOSIsCiAgICAgW1sK ICAgICAgICAgU0VMRUNUICgnYmJiJyBCRVRXRUVOICdBQUEnIEFORCAnQ0NDJykgQ09MTEFU RSAidW5pY29kZV9jaSIKICAgICBdXSwgewpAQCAtMTUxMiwxMjggKzE0MDgsOTAgQEAgbG9j YWwgdGVzdF9jYXNlczEyID17CiAgICAgezE1LCAiY25hbWUifSwKICAgICB7MTYsICJ0Ymxu YW1lLmNuYW1lIn0sCiAKLSAgICB7MTgsICIrIEVYUFIifSwKLSAgICB7MTksICItIEVYUFIi fSwKLSAgICB7MjAsICJOT1QgRVhQUiJ9LAotICAgIHsyMSwgIn4gRVhQUiJ9LAotCi0gICAg ezIyLCAiRVhQUjEgfHwgRVhQUjIifSwKLSAgICB7MjMsICJFWFBSMSAqIEVYUFIyIn0sCi0g ICAgezI0LCAiRVhQUjEgLyBFWFBSMiJ9LAotICAgIHsyNSwgIkVYUFIxICUgRVhQUjIifSwK LSAgICB7MjYsICJFWFBSMSArIEVYUFIyIn0sCi0gICAgezI3LCAiRVhQUjEgLSBFWFBSMiJ9 LAotICAgIHsyOCwgIkVYUFIxIDw8IEVYUFIyIn0sCi0gICAgezI5LCAiRVhQUjEgPj4gRVhQ UjIifSwKLSAgICB7MzAsICJFWFBSMSAmIEVYUFIyIn0sCi0KLSAgICB7MzEsICJFWFBSMSB8 IEVYUFIyIn0sCi0gICAgezMyLCAiRVhQUjEgPCBFWFBSMiJ9LAotICAgIHszMywgIkVYUFIx IDw9IEVYUFIyIn0sCi0gICAgezM0LCAiRVhQUjEgPiBFWFBSMiJ9LAotICAgIHszNSwgIkVY UFIxID49IEVYUFIyIn0sCi0gICAgezM2LCAiRVhQUjEgPSBFWFBSMiJ9LAotICAgIHszNywg IkVYUFIxID09IEVYUFIyIn0sCi0gICAgezM4LCAiRVhQUjEgIT0gRVhQUjIifSwKLSAgICB7 MzksICJFWFBSMSA8PiBFWFBSMiJ9LAotICAgIHs0MCwgIkVYUFIxIElTIEVYUFIyIn0sCi0g ICAgezQxLCAiRVhQUjEgSVMgTk9UIEVYUFIyIn0sCi0gICAgezQyLCAiRVhQUjEgQU5EIEVY UFIyIn0sCi0gICAgezQzLCAiRVhQUjEgT1IgRVhQUjIifSwKLQotICAgIHs0NCwgImNvdW50 KCopIn0sCi0gICAgezQ1LCAiY291bnQoRElTVElOQ1QgRVhQUikifSwKLSAgICB7NDYsICJz dWJzdHIoRVhQUiwgMTAsIDIwKSJ9LAotICAgIHs0NywgImNoYW5nZXMoKSJ9LAotCi0gICAg ezQ4LCAiKCBFWFBSICkifSwKLQotICAgIHs0OSwgIkNBU1QgKCBFWFBSIEFTIGludGVnZXIg KSJ9LAotICAgIHs1MCwgIkNBU1QgKCBFWFBSIEFTICdhYmNkJyApIn0sCi0gICAgezUxLCAi Q0FTVCAoIEVYUFIgQVMgJ2FiJCAkY2QnICkifSwKLQotICAgIHs1MiwgIkVYUFIgQ09MTEFU RSBcInVuaWNvZGVfY2lcIiJ9LAotICAgIHs1MywgIkVYUFIgQ09MTEFURSBiaW5hcnkifSwK LQotICAgIHs1NCwgIkVYUFIxIExJS0UgRVhQUjIifSwKLSAgICB7NTUsICJFWFBSMSBMSUtF IEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezU2LCAiRVhQUjEgR0xPQiBFWFBSMiJ9LAot ICAgIHs1NywgIkVYUFIxIEdMT0IgRVhQUjIgRVNDQVBFIEVYUFIifSwKLSAgICB7NTgsICJF WFBSMSBSRUdFWFAgRVhQUjIifSwKLSAgICB7NTksICJFWFBSMSBSRUdFWFAgRVhQUjIgRVND QVBFIEVYUFIifSwKLSAgICB7NjAsICJFWFBSMSBNQVRDSCBFWFBSMiJ9LAotICAgIHs2MSwg IkVYUFIxIE1BVENIIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezYyLCAiRVhQUjEgTk9U IExJS0UgRVhQUjIifSwKLSAgICB7NjMsICJFWFBSMSBOT1QgTElLRSBFWFBSMiBFU0NBUEUg RVhQUiJ9LAotICAgIHs2NCwgIkVYUFIxIE5PVCBHTE9CIEVYUFIyIn0sCi0gICAgezY1LCAi RVhQUjEgTk9UIEdMT0IgRVhQUjIgRVNDQVBFIEVYUFIifSwKLSAgICB7NjYsICJFWFBSMSBO T1QgUkVHRVhQIEVYUFIyIn0sCi0gICAgezY3LCAiRVhQUjEgTk9UIFJFR0VYUCBFWFBSMiBF U0NBUEUgRVhQUiJ9LAotICAgIHs2OCwgIkVYUFIxIE5PVCBNQVRDSCBFWFBSMiJ9LAotICAg IHs2OSwgIkVYUFIxIE5PVCBNQVRDSCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotCi0gICAgezcw LCAiRVhQUiBJU05VTEwifSwKLSAgICB7NzEsICJFWFBSIE5PVE5VTEwifSwKLSAgICB7NzIs ICJFWFBSIE5PVCBOVUxMIn0sCi0KLSAgICB7NzMsICJFWFBSMSBJUyBFWFBSMiJ9LAotICAg IHs3NCwgIkVYUFIxIElTIE5PVCBFWFBSMiJ9LAotCi0gICAgezc1LCAiRVhQUiBOT1QgQkVU V0VFTiBFWFBSMSBBTkQgRVhQUjIifSwKLSAgICB7NzYsICJFWFBSIEJFVFdFRU4gRVhQUjEg QU5EIEVYUFIyIn0sCi0KLSAgICB7NzcsICJFWFBSIE5PVCBJTiAoU0VMRUNUIGNuYW1lIEZS T00gdGJsbmFtZSkifSwKLSAgICB7NzgsICJFWFBSIE5PVCBJTiAoMSkifSwKLSAgICB7Nzks ICJFWFBSIE5PVCBJTiAoMSwgMiwgMykifSwKLSAgICB7ODAsICJFWFBSIE5PVCBJTiB0Ymxu YW1lIn0sCi0gICAgezgyLCAiRVhQUiBJTiAoU0VMRUNUIGNuYW1lIEZST00gdGJsbmFtZSki fSwKLSAgICB7ODMsICJFWFBSIElOICgxKSJ9LAotICAgIHs4NCwgIkVYUFIgSU4gKDEsIDIs IDMpIn0sCi0gICAgezg1LCAiRVhQUiBJTiB0YmxuYW1lIn0sCi0gICAgezU3LCAiRVhQUjEg R0xPQiBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotICAgIHs1OCwgIkVYUFIxIFJFR0VYUCBFWFBS MiJ9LAotICAgIHs1OSwgIkVYUFIxIFJFR0VYUCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotICAg IHs2MCwgIkVYUFIxIE1BVENIIEVYUFIyIn0sCi0gICAgezYxLCAiRVhQUjEgTUFUQ0ggRVhQ UjIgRVNDQVBFIEVYUFIifSwKLSAgICB7NjIsICJFWFBSMSBOT1QgTElLRSBFWFBSMiJ9LAot ICAgIHs2MywgIkVYUFIxIE5PVCBMSUtFIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezY0 LCAiRVhQUjEgTk9UIEdMT0IgRVhQUjIifSwKLSAgICB7NjUsICJFWFBSMSBOT1QgR0xPQiBF WFBSMiBFU0NBUEUgRVhQUiJ9LAotICAgIHs2NiwgIkVYUFIxIE5PVCBSRUdFWFAgRVhQUjIi fSwKLSAgICB7NjcsICJFWFBSMSBOT1QgUkVHRVhQIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0g ICAgezY4LCAiRVhQUjEgTk9UIE1BVENIIEVYUFIyIn0sCi0gICAgezY5LCAiRVhQUjEgTk9U IE1BVENIIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0KLSAgICB7NzAsICJFWFBSIElTTlVMTCJ9 LAotICAgIHs3MSwgIkVYUFIgTk9UTlVMTCJ9LAotICAgIHs3MiwgIkVYUFIgTk9UIE5VTEwi fSwKLQotICAgIHs3MywgIkVYUFIxIElTIEVYUFIyIn0sCi0gICAgezc0LCAiRVhQUjEgSVMg Tk9UIEVYUFIyIn0sCi0KLSAgICB7NzUsICJFWFBSIE5PVCBCRVRXRUVOIEVYUFIxIEFORCBF WFBSMiJ9LAotICAgIHs3NiwgIkVYUFIgQkVUV0VFTiBFWFBSMSBBTkQgRVhQUjIifSwKLQot ICAgIHs3NywgIkVYUFIgTk9UIElOIChTRUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1lKSJ9LAot ICAgIHs3OCwgIkVYUFIgTk9UIElOICgxKSJ9LAotICAgIHs3OSwgIkVYUFIgTk9UIElOICgx LCAyLCAzKSJ9LAotICAgIHs4MCwgIkVYUFIgTk9UIElOIHRibG5hbWUifSwKLSAgICB7ODIs ICJFWFBSIElOIChTRUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1lKSJ9LAotICAgIHs4MywgIkVY UFIgSU4gKDEpIn0sCi0gICAgezg0LCAiRVhQUiBJTiAoMSwgMiwgMykifSwKLSAgICB7ODUs ICJFWFBSIElOIHRibG5hbWUifSwKLQotICAgIHs4NywgIkVYSVNUUyAoU0VMRUNUIGNuYW1l IEZST00gdGJsbmFtZSkifSwKLSAgICB7ODgsICJOT1QgRVhJU1RTIChTRUxFQ1QgY25hbWUg RlJPTSB0YmxuYW1lKSJ9LAotCi0gICAgezg5LCAiQ0FTRSBFWFBSIFdIRU4gRVhQUjEgVEhF TiBFWFBSMiBFTFNFIEVYUFIgRU5EIn0sCi0gICAgezkwLCAiQ0FTRSBFWFBSIFdIRU4gRVhQ UjEgVEhFTiBFWFBSMiBFTkQifSwKLSAgICB7OTEsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBU SEVOIEVYUFIyIFdIRU4gRVhQUiBUSEVOIEVYUFIxIEVMU0UgRVhQUjIgRU5EIn0sCi0gICAg ezkyLCAiQ0FTRSBFWFBSIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBXSEVOIEVYUFIgVEhFTiBF WFBSMSBFTkQifSwKLSAgICB7OTMsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBFTFNF IEVYUFIgRU5EIn0sCi0gICAgezk0LCAiQ0FTRSBXSEVOIEVYUFIxIFRIRU4gRVhQUjIgRU5E In0sCi0gICAgezk1LCAiQ0FTRSBXSEVOIEVYUFIxIFRIRU4gRVhQUjIgV0hFTiBFWFBSIFRI RU4gRVhQUjEgRUxTRSBFWFBSMiBFTkQifSwKLSAgICB7OTYsICJDQVNFIFdIRU4gRVhQUjEg VEhFTiBFWFBSMiBXSEVOIEVYUFIgVEhFTiBFWFBSMSBFTkQifSwKKyAgICB7MTcsICIrIEVY UFIifSwKKyAgICB7MTgsICItIEVYUFIifSwKKyAgICB7MTksICJOT1QgRVhQUiJ9LAorICAg IHsyMCwgIn4gRVhQUiJ9LAorCisgICAgezIxLCAiRVhQUjEgfHwgRVhQUjIifSwKKyAgICB7 MjIsICJFWFBSMSAqIEVYUFIyIn0sCisgICAgezIzLCAiRVhQUjEgLyBFWFBSMiJ9LAorICAg IHsyNCwgIkVYUFIxICUgRVhQUjIifSwKKyAgICB7MjUsICJFWFBSMSArIEVYUFIyIn0sCisg ICAgezI2LCAiRVhQUjEgLSBFWFBSMiJ9LAorICAgIHsyNywgIkVYUFIxIDw8IEVYUFIyIn0s CisgICAgezI4LCAiRVhQUjEgPj4gRVhQUjIifSwKKyAgICB7MjksICJFWFBSMSAmIEVYUFIy In0sCisKKyAgICB7MzAsICJFWFBSMSB8IEVYUFIyIn0sCisgICAgezMxLCAiRVhQUjEgPCBF WFBSMiJ9LAorICAgIHszMiwgIkVYUFIxIDw9IEVYUFIyIn0sCisgICAgezMzLCAiRVhQUjEg PiBFWFBSMiJ9LAorICAgIHszNCwgIkVYUFIxID49IEVYUFIyIn0sCisgICAgezM1LCAiRVhQ UjEgPSBFWFBSMiJ9LAorICAgIHszNiwgIkVYUFIxID09IEVYUFIyIn0sCisgICAgezM3LCAi RVhQUjEgIT0gRVhQUjIifSwKKyAgICB7MzgsICJFWFBSMSA8PiBFWFBSMiJ9LAorICAgIHsz OSwgIkVYUFIxIEFORCBFWFBSMiJ9LAorICAgIHs0MCwgIkVYUFIxIE9SIEVYUFIyIn0sCisK KyAgICB7NDEsICJjb3VudCgqKSJ9LAorICAgIHs0MiwgImNvdW50KERJU1RJTkNUIEVYUFIp In0sCisgICAgezQzLCAic3Vic3RyKEVYUFIsIDEwLCAyMCkifSwKKyAgICB7NDQsICJjaGFu Z2VzKCkifSwKKworICAgIHs0NSwgIiggRVhQUiApIn0sCisKKyAgICB7NDYsICJDQVNUICgg RVhQUiBBUyBpbnRlZ2VyICkifSwKKyAgICB7NDcsICJDQVNUICggRVhQUiBBUyAnYWJjZCcg KSJ9LAorICAgIHs0OCwgIkNBU1QgKCBFWFBSIEFTICdhYiQgJGNkJyApIn0sCisKKyAgICB7 NDksICJFWFBSIENPTExBVEUgXCJ1bmljb2RlX2NpXCIifSwKKyAgICB7NTAsICJFWFBSIENP TExBVEUgYmluYXJ5In0sCisKKyAgICB7NTEsICJFWFBSMSBMSUtFIEVYUFIyIn0sCisgICAg ezUyLCAiRVhQUjEgTElLRSBFWFBSMiBFU0NBUEUgRVhQUiJ9LAorICAgIHs1MywgIkVYUFIx IEdMT0IgRVhQUjIifSwKKyAgICB7NTQsICJFWFBSMSBHTE9CIEVYUFIyIEVTQ0FQRSBFWFBS In0sCisgICAgezU1LCAiRVhQUjEgUkVHRVhQIEVYUFIyIn0sCisgICAgezU2LCAiRVhQUjEg UkVHRVhQIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCisgICAgezU3LCAiRVhQUjEgTUFUQ0ggRVhQ UjIifSwKKyAgICB7NTgsICJFWFBSMSBNQVRDSCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAorICAg IHs1OSwgIkVYUFIxIE5PVCBMSUtFIEVYUFIyIn0sCisgICAgezYwLCAiRVhQUjEgTk9UIExJ S0UgRVhQUjIgRVNDQVBFIEVYUFIifSwKKyAgICB7NjEsICJFWFBSMSBOT1QgR0xPQiBFWFBS MiJ9LAorICAgIHs2MiwgIkVYUFIxIE5PVCBHTE9CIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCisg ICAgezYzLCAiRVhQUjEgTk9UIFJFR0VYUCBFWFBSMiJ9LAorICAgIHs2NCwgIkVYUFIxIE5P VCBSRUdFWFAgRVhQUjIgRVNDQVBFIEVYUFIifSwKKyAgICB7NjUsICJFWFBSMSBOT1QgTUFU Q0ggRVhQUjIifSwKKyAgICB7NjYsICJFWFBSMSBOT1QgTUFUQ0ggRVhQUjIgRVNDQVBFIEVY UFIifSwKKworICAgIHs2NywgIkVYUFIgSVMgTlVMTCJ9LAorICAgIHs2OCwgIkVYUFIgSVMg Tk9UIE5VTEwifSwKKworICAgIHs2OSwgIkVYUFIgTk9UIEJFVFdFRU4gRVhQUjEgQU5EIEVY UFIyIn0sCisgICAgezcwLCAiRVhQUiBCRVRXRUVOIEVYUFIxIEFORCBFWFBSMiJ9LAorCisg ICAgezcxLCAiRVhQUiBOT1QgSU4gKFNFTEVDVCBjbmFtZSBGUk9NIHRibG5hbWUpIn0sCisg ICAgezcyLCAiRVhQUiBOT1QgSU4gKDEpIn0sCisgICAgezczLCAiRVhQUiBOT1QgSU4gKDEs IDIsIDMpIn0sCisgICAgezc0LCAiRVhQUiBOT1QgSU4gdGJsbmFtZSJ9LAorICAgIHs3NSwg IkVYUFIgSU4gKFNFTEVDVCBjbmFtZSBGUk9NIHRibG5hbWUpIn0sCisgICAgezc2LCAiRVhQ UiBJTiAoMSkifSwKKyAgICB7NzcsICJFWFBSIElOICgxLCAyLCAzKSJ9LAorICAgIHs3OCwg IkVYUFIgSU4gdGJsbmFtZSJ9LAorCisgICAgezc5LCAiRVhJU1RTIChTRUxFQ1QgY25hbWUg RlJPTSB0YmxuYW1lKSJ9LAorICAgIHs4MCwgIk5PVCBFWElTVFMgKFNFTEVDVCBjbmFtZSBG Uk9NIHRibG5hbWUpIn0sCisKKyAgICB7ODEsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBUSEVO IEVYUFIyIEVMU0UgRVhQUiBFTkQifSwKKyAgICB7ODIsICJDQVNFIEVYUFIgV0hFTiBFWFBS MSBUSEVOIEVYUFIyIEVORCJ9LAorICAgIHs4MywgIkNBU0UgRVhQUiBXSEVOIEVYUFIxIFRI RU4gRVhQUjIgV0hFTiBFWFBSIFRIRU4gRVhQUjEgRUxTRSBFWFBSMiBFTkQifSwKKyAgICB7 ODQsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIFdIRU4gRVhQUiBUSEVOIEVY UFIxIEVORCJ9LAorICAgIHs4NSwgIkNBU0UgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIEVMU0Ug RVhQUiBFTkQifSwKKyAgICB7ODYsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBFTkQi fSwKKyAgICB7ODcsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBXSEVOIEVYUFIgVEhF TiBFWFBSMSBFTFNFIEVYUFIyIEVORCJ9LAorICAgIHs4OCwgIkNBU0UgV0hFTiBFWFBSMSBU SEVOIEVYUFIyIFdIRU4gRVhQUiBUSEVOIEVYUFIxIEVORCJ9LAogfQogCiBmb3IgXywgdmFs IGluIGlwYWlycyh0ZXN0X2Nhc2VzMTIpIGRvCmRpZmYgLS1naXQgYS90ZXN0L3NxbC10YXAv bHVhX3NxbC50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRlc3QubHVhCmluZGV4 IDE0NDRkMjEuLjM5NDkyMmEgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRl c3QubHVhCisrKyBiL3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRlc3QubHVhCkBAIC0xLDcgKzEs NyBAQAogIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0gcmVxdWlyZSgic3FsdGVz dGVyIikKIE5VTEwgPSByZXF1aXJlKCdtc2dwYWNrJykuTlVMTAotdGVzdDpwbGFuKDI1KQor dGVzdDpwbGFuKDI0KQogCiBsb2NhbCBmdW5jdGlvbiBmdW5jMShhKQogICAgIHJldHVybiBh CkBAIC0xMTgsMTYgKzExOCw2IEBAIGZvciBpID0gMSwgI2Zyb21fbHVhX3RvX3NxbCwgMSBk bwogICAgICAgICB7MX0pCiBlbmQKIAotbG9jYWwgZnVuY3Rpb24gYWxsd2F5c19uaWwoKQot ICAgIHJldHVybiBuaWwKLWVuZAotYm94LmludGVybmFsLnNxbF9jcmVhdGVfZnVuY3Rpb24o ImFsbHdheXNfbmlsIiwgYWxsd2F5c19uaWwpCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAot ICAgICJsdWFfc3FsLTIuNCIsCi0gICAgInNlbGVjdCBOVUxMIGlzIGFsbHdheXNfbmlsKCki LAotICAgIHsxfSkKLQogbG9jYWwgZnJvbV9sdWFfdG9fc3FsX2JhZCA9IHsKICAgICBbMV0g PSBOVUxMLAogICAgIFsyXSA9IDEyTEwsIC0tIGl0IGlzIHBvc3NpYmxlIHRvIHN1cHBvcnQg dGhpcyB0eXBlCmRpZmYgLS1naXQgYS90ZXN0L3NxbC10YXAvbWlubWF4Mi50ZXN0Lmx1YSBi L3Rlc3Qvc3FsLXRhcC9taW5tYXgyLnRlc3QubHVhCmluZGV4IDQ3OWIxNjYuLmFiNTZmMWEg MTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9taW5tYXgyLnRlc3QubHVhCisrKyBiL3Rlc3Qv c3FsLXRhcC9taW5tYXgyLnRlc3QubHVhCkBAIC01MjEsNyArNTIxLDcgQEAgdGVzdDpkb19l eGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICAibWlubWF4Mi0xMC41 IiwKICAgICBbWwotICAgICAgICBERUxFVEUgRlJPTSB0NiBXSEVSRSB4IE5PVCBOVUxMOwor ICAgICAgICBERUxFVEUgRlJPTSB0NiBXSEVSRSB4IElTIE5PVCBOVUxMOwogICAgICAgICBT RUxFQ1QgY291bnQoKikgRlJPTSB0NjsKICAgICBdXSwgewogICAgICAgICAtLSA8bWlubWF4 Mi0xMC41PgpkaWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL251bGwudGVzdC5sdWEgYi90ZXN0 L3NxbC10YXAvbnVsbC50ZXN0Lmx1YQppbmRleCBlZDlhMWFhLi5lZTMwOTYxIDEwMDc1NQot LS0gYS90ZXN0L3NxbC10YXAvbnVsbC50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvbnVs bC50ZXN0Lmx1YQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHRhcmFudG9vbAog dGVzdCA9IHJlcXVpcmUoInNxbHRlc3RlciIpCi10ZXN0OnBsYW4oMzcpCit0ZXN0OnBsYW4o NDUpCiAKIC0tIS4vdGNsdGVzdHJ1bm5lci5sdWEKIC0tIDIwMDEgU2VwdGVtYmVyIDE1CkBA IC00NzAsNCArNDcwLDkxIEBAIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogLS0gfSB7e30geCB0 d28ge30geCBpaX0KIAogCistLSBnaC0yMTM2OiAiSVMiIGlzIG9ubHkgYXBwbGljYWJsZSB3 aGVuIGRlYWxpbmcgd2l0aCBOVUxMCisKK3Rlc3Q6ZG9fZXhlY3NxbF90ZXN0KAorICAgICJu dWxsLTEwLjEiLAorICAgIFtbCisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgTlVMTDsK KyAgICBdXSwgeworICAgICAgICAtLSA8bnVsbC04LjE1PgorCisgICAgICAgIC0tIDwvbnVs bC04LjE1PgorICAgIH0pCisKK3Rlc3Q6ZG9fZXhlY3NxbF90ZXN0KAorICAgICJudWxsLTEw LjIiLAorICAgIFtbCisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgTk9UIE5VTEw7Cisg ICAgXV0sIHsKKyAgICAgICAgLS0gPG51bGwtOC4xNT4KKyAgICAgICAgMQorICAgICAgICAt LSA8L251bGwtOC4xNT4KKyAgICB9KQorCit0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKKyAgICAi bnVsbC0xMC4zIiwKKyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxMIElTIE5V TEw7CisgICAgXV0sIHsKKyAgICAgICAgLS0gPG51bGwtOC4xNT4KKyAgICAgICAgMQorICAg ICAgICAtLSA8L251bGwtOC4xNT4KKyAgICB9KQorCit0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK KyAgICAibnVsbC0xMC40IiwKKyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxM IElTIE5PVCBOVUxMOworICAgIF1dLCB7CisgICAgICAgIC0tIDxudWxsLTguMTU+CisKKyAg ICAgICAgLS0gPC9udWxsLTguMTU+CisgICAgfSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0 KAorICAgICJudWxsLTEwLjUiLAorICAgIFtbCisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEg SVMgMTsKKyAgICBdXSwKKyAgICB7CisgICAgLS0gPGluZGV4LTEuMz4KKyAgICAxLCAibmVh ciBcIjFcIjogc3ludGF4IGVycm9yIgorICAgIC0tIDxpbmRleC0xLjM+CisgICAgfSkKKwor dGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJudWxsLTEwLjYiLAorICAgIFtbCisgICAg ICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgTk9UIDE7CisgICAgXV0sCisgICAgeworICAgIC0t IDxpbmRleC0xLjM+CisgICAgMSwgIm5lYXIgXCIxXCI6IHN5bnRheCBlcnJvciIKKyAgICAt LSA8aW5kZXgtMS4zPgorICAgIH0pCisKK3Rlc3Q6ZG9fY2F0Y2hzcWxfdGVzdCgKKyAgICAi bnVsbC0xMC43IiwKKyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxMIElTIDE7 CisgICAgXV0sCisgICAgeworICAgIC0tIDxpbmRleC0xLjM+CisgICAgMSwgIm5lYXIgXCIx XCI6IHN5bnRheCBlcnJvciIKKyAgICAtLSA8aW5kZXgtMS4zPgorICAgIH0pCisKK3Rlc3Q6 ZG9fY2F0Y2hzcWxfdGVzdCgKKyAgICAibnVsbC0xMC44IiwKKyAgICBbWworICAgICAgICBT RUxFQ1QgMSBXSEVSRSBOVUxMIElTIE5PVCAxOworICAgIF1dLAorICAgIHsKKyAgICAtLSA8 aW5kZXgtMS4zPgorICAgIDEsICJuZWFyIFwiMVwiOiBzeW50YXggZXJyb3IiCisgICAgLS0g PGluZGV4LTEuMz4KKyAgICB9KQorCisKIHRlc3Q6ZmluaXNoX3Rlc3QoKQpkaWZmIC0tZ2l0 IGEvdGVzdC9zcWwtdGFwL3NlbGVjdEIudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvc2VsZWN0 Qi50ZXN0Lmx1YQppbmRleCA1NjZkYTE4Li45Mjg1M2RiIDEwMDc1NQotLS0gYS90ZXN0L3Nx bC10YXAvc2VsZWN0Qi50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvc2VsZWN0Qi50ZXN0 Lmx1YQpAQCAtNDk0LDcgKzQ5NCw3IEBAIGZvciBpaSA9IDMsIDYsIDEgZG8KICAgICAgICAg ICAgICAgU0VMRUNUIGEqMTAgKyAwLjEsIGYqMTAgKyAwLjEgRlJPTSB0MSBMRUZUIEpPSU4g dDIgT04gKGM9ZCkKICAgICAgICAgICAgICAgVU5JT04gQUxMCiAgICAgICAgICAgICAgIFNF TEVDVCBhKjEwMCwgYioxMDAgRlJPTSB0MQotICAgICAgICAgICAgKSBXSEVSRSB5K3ggTk9U IE5VTEwgT1JERVIgQlkgMTsKKyAgICAgICAgICAgICkgV0hFUkUgeSt4IElTIE5PVCBOVUxM IE9SREVSIEJZIDE7CiAgICAgICAgIF1dLCB7CiAgICAgICAgICAgICA2LCAxOCwgMzAsIDI2 MC4yLCA2MDAsIDE4MDAsIDMwMDAKICAgICAgICAgfSkKZGlmZiAtLWdpdCBhL3Rlc3Qvc3Fs LXRhcC9zdWJzZWxlY3QudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvc3Vic2VsZWN0LnRlc3Qu bHVhCmluZGV4IDM2ZGY5YTEuLjgwOWVjMTIgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9z dWJzZWxlY3QudGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3N1YnNlbGVjdC50ZXN0Lmx1 YQpAQCAtMTM1LDcgKzEzNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgXV0KICAgICAg ICAgcmV0dXJuIHRlc3Q6ZXhlY3NxbCBbWwogICAgICAgICAgICAgU0VMRUNUIHkgZnJvbSB0 MiAKLSAgICAgICAgICAgIFdIRVJFIHggPSAoU0VMRUNUIHN1bShiKSBGUk9NIHQxIHdoZXJl IGEgbm90bnVsbCkgLSAoU0VMRUNUIHN1bShhKSBGUk9NIHQxKQorICAgICAgICAgICAgV0hF UkUgeCA9IChTRUxFQ1Qgc3VtKGIpIEZST00gdDEgd2hlcmUgYSBpcyBub3QgbnVsbCkgLSAo U0VMRUNUIHN1bShhKSBGUk9NIHQxKQogICAgICAgICBdXQogICAgIGVuZCwgewogICAgICAg ICAtLSA8c3Vic2VsZWN0LTEuNT4KZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC90cmFuc2l0 aXZlMS50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC90cmFuc2l0aXZlMS50ZXN0Lmx1YQppbmRl eCBiZGI5ZTk3Li5lZDMyMzhmIDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvdHJhbnNpdGl2 ZTEudGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3RyYW5zaXRpdmUxLnRlc3QubHVhCkBA IC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0gcmVxdWly ZSgic3FsdGVzdGVyIikKLXRlc3Q6cGxhbigzMCkKK3Rlc3Q6cGxhbigyNikKIAogLS0hLi90 Y2x0ZXN0cnVubmVyLmx1YQogLS0gMjAxMyBBcHJpbCAxNwpAQCAtMTI0LDE5ICsxMjQsNiBA QCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxfdGVz dCgKLSAgICAidHJhbnNpdGl2ZTEtMzAyIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgKgot ICAgICAgICAgIEZST00gdDMwMSBDUk9TUyBKT0lOIHQzMDIKLSAgICAgICAgIFdIRVJFIHcg SVMgeSBBTkQgeSBJUyBOT1QgTlVMTAotICAgICAgICAgT1JERVIgQlkgdzsKLSAgICBdXSwg ewotICAgICAgICAtLSA8dHJhbnNpdGl2ZTEtMzAyPgotICAgICAgICAxLCAyLCAxLCAzLCAz LCA0LCAzLCA2LCA1LCA2LCA1LCA3Ci0gICAgICAgIC0tIDwvdHJhbnNpdGl2ZTEtMzAyPgot ICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAgICJ0cmFuc2l0aXZlMS0zMTAi LAogICAgIFtbCiAgICAgICAgIFNFTEVDVCAqCkBAIC0yMzQsMzYgKzIyMSw2IEBAIHRlc3Q6 ZG9fZXhlY3NxbF90ZXN0KAogICAgICAgICAtLSA8L3RyYW5zaXRpdmUxLTQwMD4KICAgICB9 KQogCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAidHJhbnNpdGl2ZTEtNDAxIiwKLSAg ICBbWwotICAgICAgICBTRUxFQ1QgJzEtcm93JyBGUk9NIHQ0MDEgTEVGVCBKT0lOIHQ0MDIg T04gYiBJUyBhIEpPSU4gdDQwMyBPTiBjPWE7Ci0gICAgXV0sIHsKLSAgICAgICAgLS0gPHRy YW5zaXRpdmUxLTQwMT4KLSAgICAgICAgIjEtcm93IgotICAgICAgICAtLSA8L3RyYW5zaXRp dmUxLTQwMT4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAidHJhbnNp dGl2ZTEtNDAyIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgJzEtcm93JyBGUk9NIHQ0MDEg TEVGVCBKT0lOIHQ0MDIgT04gYj1hIEpPSU4gdDQwMyBPTiBjIElTIGE7Ci0gICAgXV0sIHsK LSAgICAgICAgLS0gPHRyYW5zaXRpdmUxLTQwMj4KLSAgICAgICAgIjEtcm93IgotICAgICAg ICAtLSA8L3RyYW5zaXRpdmUxLTQwMj4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVz dCgKLSAgICAidHJhbnNpdGl2ZTEtNDAzIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgJzEt cm93JyBGUk9NIHQ0MDEgTEVGVCBKT0lOIHQ0MDIgT04gYiBJUyBhIEpPSU4gdDQwMyBPTiBj IElTIGE7Ci0gICAgXV0sIHsKLSAgICAgICAgLS0gPHRyYW5zaXRpdmUxLTQwMz4KLSAgICAg ICAgIjEtcm93IgotICAgICAgICAtLSA8L3RyYW5zaXRpdmUxLTQwMz4KLSAgICB9KQotCiAt LSBUaGUgZm9sbG93aW5nIGlzIGEgc2NyaXB0IGRpc3RpbGxlZCBmcm9tIHRoZSBYQk1DIHBy b2plY3Qgd2hlcmUgdGhlCiAtLSBidWcgd2FzIG9yaWdpbmFsbHkgZW5jb3VudGVyZWQuICBU aGUgY29ycmVjdCBhbnN3ZXIgaXMgYSBzaW5nbGUgcm93CiAtLSBvZiBvdXRwdXQuICBCZWZv cmUgdGhlIGJ1ZyB3YXMgZml4ZWQsIHplcm8gcm93cyB3ZXJlIGdlbmVyYXRlZC4KZGlmZiAt LWdpdCBhL3Rlc3Qvc3FsLXRhcC90eXBlcy50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC90eXBl cy50ZXN0Lmx1YQppbmRleCBjMTAyZWZkLi4xZGEyNTEyIDEwMDc1NQotLS0gYS90ZXN0L3Nx bC10YXAvdHlwZXMudGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3R5cGVzLnRlc3QubHVh CkBAIC0zMDYsNyArMzA2LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4 ZWNzcWxfdGVzdCgKICAgICAidHlwZXMtMi4zLjIiLAogICAgIFtbCi0gICAgICAgIFNFTEVD VCBhIElTTlVMTCBGUk9NIHQzOworICAgICAgICBTRUxFQ1QgYSBJUyBOVUxMIEZST00gdDM7 CiAgICAgXV0sIHsKICAgICAgICAgLS0gPHR5cGVzLTIuMy4yPgogICAgICAgICAxCmRpZmYg LS1naXQgYS90ZXN0L3NxbC10YXAvdHlwZXMyLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFwL3R5 cGVzMi50ZXN0Lmx1YQppbmRleCA2MTAzNTkzLi4wNjgxN2FhIDEwMDc1NQotLS0gYS90ZXN0 L3NxbC10YXAvdHlwZXMyLnRlc3QubHVhCisrKyBiL3Rlc3Qvc3FsLXRhcC90eXBlczIudGVz dC5sdWEKQEAgLTIwMSw3ICsyMDEsNyBAQCB0ZXN0X2Jvb2woInR5cGVzMi00LjI4IiwgIm8x PSc1MDAnIiwgIic1MDAuMCcgPiBvMSIsIDEpCiAtLSB0eXBlczItNS4qIC0gVGhlICdJTiAo eCwgeS4uLi4pJyBvcGVyYXRvciB3aXRoIG5vIGluZGV4LgogLS0gCiAtLSBDb21wYXJlIGxp dGVyYWxzIGFnYWluc3QgbGl0ZXJhbHMgKG5vIGFmZmluaXR5IGFwcGxpZWQpCi10ZXN0X2Jv b2woInR5cGVzMi01LjEiLCAiIiwgIihOVUxMIElOICgnMTAuMCcsIDIwKSkgSVNOVUxMIiwg MSkKK3Rlc3RfYm9vbCgidHlwZXMyLTUuMSIsICIiLCAiKE5VTEwgSU4gKCcxMC4wJywgMjAp KSBJUyBOVUxMIiwgMSkKIHRlc3RfYm9vbCgidHlwZXMyLTUuMiIsICIiLCAiMTAgSU4gKCcx MC4wJywgMjApIiwgMCkKIHRlc3RfYm9vbCgidHlwZXMyLTUuMyIsICIiLCAiJzEwJyBJTiAo JzEwLjAnLCAyMCkiLCAwKQogdGVzdF9ib29sKCJ0eXBlczItNS40IiwgIiIsICIxMCBJTiAo MTAuMCwgMjApIiwgMSkKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC93aGVyZTcudGVzdC5s dWEgYi90ZXN0L3NxbC10YXAvd2hlcmU3LnRlc3QubHVhCmluZGV4IDc1YmI3YjYuLjY2OTFk ZDAgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC93aGVyZTcudGVzdC5sdWEKKysrIGIvdGVz dC9zcWwtdGFwL3doZXJlNy50ZXN0Lmx1YQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDcwCiAgICAg ICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9S IChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycg QU5EIGYgR0xPQiAnbm9wcXIqJykKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBH TE9CICdzdHV2dyonKQpAQCAtNDY4LDcgKzQ2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0xMDcwCiAgICAgICAgICBPUiAoZz0n ZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj04OS4wIEFO RCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5 MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5E IDIwKSBBTkQgYSE9MTkpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAn bm9wcXIqJykKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyon KQpAQCAtNDg1LDExICs0ODUsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAg IE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj0y MjAKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCiAgICAgICAgICBP UiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgXV0pCkBAIC01MDQsMTEg KzUwNCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDMzIEFORCAzNSkgQU5EIGEhPTM0KQogICAgICAgICAgT1IgKGc9J2VkY2Jh enknIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTIyMAotICAgICAgICAg T1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkKICAgICAgICAgIE9SIChnPSdxcG9ubWxr JyBBTkQgZiBHTE9CICdwcXJzdConKQogICBdXSkKQEAgLTYyNCw3ICs2MjQsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDggQU5EIDEwKSBBTkQg YSE9OSkKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzQgQU5EIDM2KSBBTkQgYSE9MzUpCiAgICAgICAg ICBPUiBjPTE0MDE0CiAgICAgICAgICBPUiBiPTgyOApAQCAtNjQxLDcgKzY0MSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFO RCBhIT05KQotICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBhIT0zNSkKICAgICAg ICAgIE9SIGM9MTQwMTQKICAgICAgICAgIE9SIGI9ODI4CkBAIC03NDUsMTEgKzc0NSwxMSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTcyLjAg QU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVk JyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgYz0xMTAxMQogICAgICAgICAg T1IgYz0yMDAyMAotICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTEuMT4KQEAg LTc2MiwxMSArNzYyLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBj PTExMDExCiAgICAgICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQg ZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTku MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi4xMS4yPgpAQCAtNzc5LDE2ICs3NzksMTYgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAg ICAgICAgT1IgYj03OTIKICAgICAgICAgIE9SIGE9OTcKLSAgICAgICAgIE9SIChkPj04Ny4w IEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49ODEuMCBBTkQg ZDw4Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkxNgogICAgICAgICAgT1IgYT02 OQotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBjPTYwMDYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC04MDIsMTYgKzgwMiwxNiBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTgzLjAg QU5EIGQ8ODQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01MC4wIEFORCBk PDUxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4 NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBm IEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBiPTc5MgogICAgICAgICAgT1IgYT05Nwot ICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 OTE2CiAgICAgICAgICBPUiBhPTY5Ci0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9NjAwNgogICBdXSkKICAgICBlbmQsIHsK QEAgLTg3MCw3ICs4NzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEhPTQ4KQotICAgICAgICAgT1IgKGQ+PTQ4LjAg QU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBk PDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuMTQuMT4KQEAgLTg4NCw3ICs4ODQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEhPTQ4KQotICAg ICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTQuMj4KQEAgLTkzMCw3ICs5MzAsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9OTM4Ci0gICAgICAgICBPUiAo ZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3 LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRz cnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTk0NSw3 ICs5NDUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9OTM4Ci0gICAg ICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICBdXSkKICAgICBlbmQsIHsK QEAgLTk1OSwxMCArOTU5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj02OC4wIEFORCBkPDY5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgZj0nemFiY2RlZmdoJwogICAgICAgICAgT1IgYj0zMDgKLSAgICAgICAgIE9S IChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Ny cXBvbm0nIEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAx NSBBTkQgMTcpIEFORCBhIT0xNikKICAgICAgICAgIE9SIGI9NDQzCkBAIC05ODEsMTAgKzk4 MSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVS RSAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3ph YmNkZWZnaCcKICAgICAgICAgIE9SIGI9MzA4Ci0gICAgICAgICBPUiAoZD49MTYuMCBBTkQg ZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBH TE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTUgQU5EIDE3KSBBTkQg YSE9MTYpCiAgICAgICAgICBPUiBiPTQ0MwpAQCAtMTAwMyw5ICsxMDAzLDkgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ2LjAgQU5E IGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgotICAgICAgICAgT1Ig KGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01 Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE5CiAg IF1dKQogICAgIGVuZCwgewpAQCAtMTAxOSw5ICsxMDE5LDkgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgotICAgICAgICAgT1IgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBk PDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE5CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTQ2CiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYg R0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGE9NzMKQEAgLTEwNTYsNyArMTA1Niw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02 My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NgogICAgICAg ICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiBh PTczCkBAIC0xMTA2LDE1ICsxMTA2LDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYz0xMzAxMwotICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAg ICAgT1IgZj0nYmNkZWZnaGlqJwogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIChn PSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5E IGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMTI5LDE1 ICsxMTI5LDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0xMzAxMwot ICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAgT1IgZj0nYmNkZWZn aGlqJwogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQg ZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBB TkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsq JykKLSAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBhPTkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMTUzLDkgKzExNTMsOSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9Mzk5CiAg ICAgICAgICBPUiBjPTI4MDI4Ci0gICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdxcnN0 dSonKQotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjIuMT4KQEAgLTExNzAs OSArMTE3MCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgYj0zOTkKICAgICAgICAgIE9SIGM9MjgwMjgKLSAgICAgICAgIE9SIChkPj04 Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBB TkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsn IEFORCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTct Mi4yMi4yPgpAQCAtMTI2Niw3ICsxMjY2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSBjPTUwMDUKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykKICAg ICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICBdXSkKQEAg LTEyODIsNyArMTI4Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz01 MDA1Ci0gICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9MzcpCiAgICAgICAgICBPUiAo Zz0ncG9ubWxraicgQU5EIGYgR0xPQiAndnd4eXoqJykKICAgXV0pCkBAIC0xMjk3LDcgKzEy OTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdt bGtqaWhnJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NjQgQU5EIDY2KSBBTkQgYSE9NjUpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYg R0xPQiAncXJzdHUqJykKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWpr KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkKICAg ICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQpAQCAtMTQ4NCw3 ICsxNDg0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xMDEyCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA1NyBBTkQgNTkpIEFORCBhIT01OCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQotICAgICAgICAgT1IgKGQ+PTE5LjAg QU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBk PDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNkZSon IEFORCBmIEdMT0IgJ2FiY2QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNTAzLDcgKzE1 MDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTEwMTIKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDU3IEFORCA1OSkgQU5EIGEhPTU4KQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQg ZDwyMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9iY2RlKicgQU5E IGYgR0xPQiAnYWJjZConKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE1MjAsNyArMTUyMCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGY9J3JzdHV2d3h5eicKICAgICAgICAg IE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gOTAgQU5EIDkyKSBBTkQgYSE9OTEpCi0gICAgICAgICBPUiAoZD49OTguMCBB TkQgZDw5OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8 OTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4zMi4xPgpAQCAtMTUzNiw3ICsxNTM2LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgV0hFUkUgZj0ncnN0dXZ3eHl6JwogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFO RCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MCBBTkQgOTIp IEFORCBhIT05MSkKLSAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMyLjI+CkBA IC0xNTg4LDcgKzE1ODgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9 NzcKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0LjE+CkBAIC0xNjAyLDcg KzE2MDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NzcKLSAgICAg ICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBl bmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0LjI+CkBAIC0xNjE2LDggKzE2MTYsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAo ZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTg4 LjAgQU5EIGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFO RCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQg ZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjcg QU5EIDY5KSBBTkQgYSE9NjgpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkp IEFORCBhIT02OCkKICAgICAgICAgIE9SIGM9MzMwMzMKQEAgLTE2MzcsOCArMTYzNyw4IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00OTgKLSAgICAgICAgIE9SIChk Pj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49ODgu MCBBTkQgZDw4OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5E IGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OC4wIEFORCBk PDg5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBB TkQgNjkpIEFORCBhIT02OCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY3IEFORCA2OSkg QU5EIGEhPTY4KQogICAgICAgICAgT1IgYz0zMzAzMwpAQCAtMTY1Nyw3ICsxNjU3LDcgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTYu MCBBTkQgZDw3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Ni4wIEFORCBk PDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU4IEFO RCA2MCkgQU5EIGEhPTU5KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE2NzEsNyArMTY3MSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYuMCBB TkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 OCBBTkQgNjApIEFORCBhIT01OSkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjg2LDcgKzE2 ODYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MTA1OQotICAgICAg ICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBj PTQwMDQKICAgICAgICAgIE9SIGI9ODA2CiAgIF1dKQpAQCAtMTcwMiw3ICsxNzAyLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTEwNTkKLSAgICAgICAgIE9SIChk Pj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMu MCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz00MDA0CiAg ICAgICAgICBPUiBiPTgwNgogICBdXSkKQEAgLTE4MjMsNyArMTgyMyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03My4wIEFORCBk PDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzMuMCBBTkQgZDw3NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNSBBTkQgNykg QU5EIGEhPTYpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTgzNyw3ICsxODM3LDcgQEAgdGVz dDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTczLjAg QU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03My4wIEFORCBk PDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1IEFO RCA3KSBBTkQgYSE9NikKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xODUyLDEzICsxODUyLDEz IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGYgR0xPQiAnP2VmZ2gqJyBB TkQgZiBHTE9CICdkZWZnKicpCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdmZ2hp aionKQogICAgICAgICAgT1IgYj0yOTcKICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBP UiBiPTE3NgogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3Z3eHl6Kicp Ci0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGE9NjcKICAgICAgICAgIE9SIGM9MjYwMjYKICAgXV0pCkBAIC0xODc0LDEzICsx ODc0LDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGYgR0xPQiAnP2Vm Z2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwx NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9C ICdmZ2hpaionKQogICAgICAgICAgT1IgYj0yOTcKICAgICAgICAgIE9SIGI9MTEzCiAgICAg ICAgICBPUiBiPTE3NgogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3Z3 eHl6KicpCi0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9NjcKICAgICAgICAgIE9SIGM9MjYwMjYKICAgXV0pCkBAIC0xODk1 LDcgKzE4OTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDQgQU5EIDYpIEFORCBhIT01KQogICAgICAgICAgT1IgYT04MwogICAg ICAgICAgT1IgYj00NApAQCAtMTkxNSw3ICsxOTE1LDcgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0IEFORCA2KSBBTkQgYSE9NSkK ICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SIGI9NDQKQEAgLTE5MzUsNyArMTkzNSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDIu MCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MzUKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAg T1IgYj00ODcKQEAgLTE5NTQsNyArMTk1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj05MzUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMyIEFO RCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj00ODcKQEAgLTE5NzMsMTYgKzE5NzMs MTYgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05 NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjguMCBB TkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5E IGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAg ICBPUiBiPTY0MQogICAgICAgICAgT1IgYz0xNzAxNwogICAgICAgICAgT1IgYT04MgotICAg ICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5E IGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNDUuMT4KQEAgLTE5OTUsMTYgKzE5OTUsMTYgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBB TkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiBiPTY0MQogICAgICAgICAg T1IgYz0xNzAxNwogICAgICAgICAgT1IgYT04MgotICAgICAgICAgT1IgKGQ+PTY1LjAgQU5E IGQ8NjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYg R0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5E IGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDUuMj4KQEAgLTIw NTAsNyArMjA1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjEyCiAgICAg ICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnbm9wcXIqJykKICAgICAgICAgIE9S IGM9MjgwMjgKLSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ3LjE+CkBAIC0y MDY4LDcgKzIwNjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTIxMgogICAg ICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBP UiBjPTI4MDI4Ci0gICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40Ny4yPgpAQCAt MjA4MSw3ICsyMDgxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBhPTUxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBhIT0y OSkKICAgXV0pCkBAIC0yMDk2LDcgKzIwOTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGE9NTEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI4IEFO RCAzMCkgQU5EIGEhPTI5KQogICBdXSkKQEAgLTIxNTUsNyArMjE1NSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9MTQzCiAgICAgICAgICBPUiBhPTQ2CiAgICAgICAgICBP UiBiPTY2MAotICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5emEqJykKICAg ICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAg T1IgYj0zNTUKQEAgLTIxNzcsNyArMjE3Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGI9MTQzCiAgICAgICAgICBPUiBhPTQ2CiAgICAgICAgICBPUiBiPTY2MAotICAgICAg ICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo ZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5emEqJykKICAgICAgICAgIE9SIChnPSd2 dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj0zNTUKQEAgLTIy NTksOCArMjI1OSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj00NzMKICAgICAgICAgIE9SIGI9MTEwMAotICAgICAgICAgT1IgKGQ+ PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4w IEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQg ZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8 MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjAKICAgICAgICAgIE9S IGI9MTA4OQogICAgICAgICAgT1IgYj0zMzAKQEAgLTIyODAsOCArMjI4MCw4IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00NzMKICAg ICAgICAgIE9SIGI9MTEwMAotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGE9MjAKICAgICAgICAgIE9SIGI9MTA4OQogICAgICAgICAgT1Ig Yj0zMzAKQEAgLTIzNDQsNyArMjM0NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgKChhIEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9NzcpCi0gICAgICAgICBPUiAo ZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0 LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6YWJj ZGVmZycKICAgICAgICAgIE9SIGM9MTQwMTQKICAgICAgICAgIE9SIGE9MQpAQCAtMjM2Myw3 ICsyMzYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VF TiA3NiBBTkQgNzgpIEFORCBhIT03NykKLSAgICAgICAgIE9SIChkPj0yNC4wIEFORCBkPDI1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0neXphYmNkZWZnJwogICAgICAgICAg T1IgYz0xNDAxNAogICAgICAgICAgT1IgYT0xCkBAIC0yNDEyLDkgKzI0MTIsOSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NzQ4Ci0gICAgICAgICBPUiAoZD49MjAu MCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5E IGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBB TkQgZiBHTE9CICdwcXJzdConKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02MzAKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0y NDI5LDkgKzI0MjksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NzQ4 Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQotICAgICAgICAgT1Ig KGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTku MCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02MzAKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0yNTQ5LDExICsyNTQ5LDExIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj05LjAgQU5EIGQ8MTAuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OAogICAgICAgICAgT1IgYT02MgogICAgICAg ICAgT1IgYj03MjYKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQgYSE9NTEpCiAg ICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDU5IEFORCA2MSkgQU5EIGEhPTYwKQpAQCAtMjU2OSwxMSArMjU2 OSwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVS RSAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTgKICAg ICAgICAgIE9SIGE9NjIKICAgICAgICAgIE9SIGI9NzI2Ci0gICAgICAgICBPUiAoZD49MTAu MCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUw IEFORCA1MikgQU5EIGEhPTUxKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdM T0IgJ29wcXJzKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OSBBTkQgNjEpIEFORCBh IT02MCkKQEAgLTI2MzUsNyArMjYzNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgYj01MDkK ICAgICAgICAgIE9SIGI9OTI0Ci0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42 My4xPgpAQCAtMjY1NCw3ICsyNjU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig KGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiBiPTUwOQog ICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYz LjI+CkBAIC0yNjY3LDcgKzI2NjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQogICAg ICAgICAgT1IgKGYgR0xPQiAnP2RlZmcqJyBBTkQgZiBHTE9CICdjZGVmKicpCiAgICAgICAg ICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKQEAgLTI2ODcsNyArMjY4 Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xP QiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBB TkQgZiBHTE9CICd3eHl6YSonKQpAQCAtMjcxNSw3ICsyNzE1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYT00NQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdM T0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBhPTg1Ci0gICAgICAgICBPUiAoZD49NjUuMCBB TkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8 NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi42NS4xPgpAQCAtMjczNiw3ICsyNzM2LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgYT00NQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0Ig J3JzdHV2KicpCiAgICAgICAgICBPUiBhPTg1Ci0gICAgICAgICBPUiAoZD49NjUuMCBBTkQg ZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi42NS4yPgpAQCAtMjc4NCw3ICsyNzg0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBP UiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdM T0IgJz9tbm9wKicgQU5EIGYgR0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTI3LjAg QU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBk PDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMjgwMyw3ICsyODAzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoZz0n ZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9t bm9wKicgQU5EIGYgR0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8 MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjgxOCwxMiArMjgxOCwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+ PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4w IEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKICAgICAgICAgIE9SIGI9NjQ5CiAgICAgICAg ICBPUiBiPTIzMQotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NTgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yODM4LDEyICsyODM4LDEy IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J2dmZWRjYmEnIEFORCBm IEdMT0IgJ25vcHFyKicpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5EIGYgR0xPQiAnamts bSonKQogICAgICAgICAgT1IgYj02NDkKICAgICAgICAgIE9SIGI9MjMxCi0gICAgICAgICBP UiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4w IEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjkuMCBB TkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OAogICBdXSkK ICAgICBlbmQsIHsKQEAgLTI4NTgsNyArMjg1OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj05NzkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY5 LjE+CkBAIC0yODcyLDcgKzI4NzIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIGI9OTc5Ci0gICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42OS4yPgpAQCAt MjkyNCw3ICsyOTI0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj02NzEKICAg ICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAg T1IgYT05MQotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NyBBTkQgNDkpIEFORCBhIT00OCkKICAgICAg ICAgIE9SIGI9MTAwNAogICAgICAgICAgT1IgYj05NjAKQEAgLTI5NDcsNyArMjk0Nyw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAgICBPUiAoZz0nb25t bGtqaScgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGE9OTEKLSAgICAgICAg IE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNDcgQU5EIDQ5KSBBTkQgYSE9NDgpCiAgICAgICAgICBPUiBiPTEwMDQKICAg ICAgICAgIE9SIGI9OTYwCkBAIC0yOTY0LDcgKzI5NjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGI9NzYyCi0gICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5E IGEhPTU3KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI5NzksNyArMjk3OSw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03NjIKLSAgICAgICAgIE9SIChkPj05My4w IEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQg ZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYg QU5EIDU4KSBBTkQgYSE9NTcpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjk5MywxMyArMjk5 MywxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTQK ICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQotICAgICAg ICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIz LjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCi0g ICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43My4xPgpAQCAtMzAxMiwxMyArMzAx MiwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVS RSAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTQK ICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQotICAgICAg ICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIz LjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCi0g ICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43My4yPgpAQCAtMzAzNCw3ICszMDM0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J2loZ2ZlZGMnIEFORCBmIEdM T0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiBiPTE2OAogICAgICAgICAgT1IgYj0yNQotICAg ICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgXV0pCiAgICAgZW5kLCB7 CkBAIC0zMDUxLDcgKzMwNTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnYmNkZWYqJykKICAgICAgICAgIE9SIGI9MTY4CiAgICAg ICAgICBPUiBiPTI1Ci0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdvcHFycyonKQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTMwOTYsMTEgKzMwOTYsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBjPTMxMDMxCi0gICAgICAgICBPUiAoZD49MTAwLjAgQU5E IGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8 MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NyBB TkQgODkpIEFORCBhIT04OCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0KicgQU5EIGYg R0xPQiAncHFycyonKQogICAgICAgICAgT1IgYT00OQotICAgICAgICAgT1IgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBk PDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5E IGYgR0xPQiAna2xtbm8qJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMTE1LDExICszMTE1 LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMTAzMQotICAgICAg ICAgT1IgKGQ+PTEwMC4wIEFORCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTEwMC4wIEFORCBkPDEwMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBPUiAoZiBH TE9CICc/cXJzdConIEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAgICAgIE9SIGE9NDkKLSAg ICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2tsbW5vKicpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzEzNSw4ICszMTM1LDggQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBhPTgwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0IEFO RCA2KSBBTkQgYSE9NSkKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTk3MQogICAgICAgICAgT1IgYT02MAogICBdXSkKQEAgLTMxNTMs OCArMzE1Myw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgYT04MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNCBBTkQgNikgQU5EIGEh PTUpCi0gICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxMKQot ICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj05NzEKICAgICAgICAgIE9SIGE9NjAKICAgXV0pCkBAIC0zMTY5LDExICszMTY5LDEx IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODUu MCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRj YmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBB TkQgMzIpIEFORCBhIT0zMSkKICAgICAgICAgIE9SIGI9MTA4OQotICAgICAgICAgT1IgKGQ+ PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4w IEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuNzguMT4KQEAgLTMxODYsMTEgKzMxODYsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTg1LjAgQU5E IGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04NS4wIEFORCBkPDg2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYg R0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5E IGEhPTMxKQogICAgICAgICAgT1IgYj0xMDg5Ci0gICAgICAgICBPUiAoZD49NDMuMCBBTkQg ZDw0NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi43OC4yPgpAQCAtMzMwNCw3ICszMzA0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTk3OQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTMKICAgICAgICAgIE9SIGE9MTUKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDYgQU5EIDgpIEFORCBhIT03KQpAQCAtMzMyNyw3ICszMzI3LDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTk3OQotICAgICAgICAgT1Ig KGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4w IEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTMKICAgICAg ICAgIE9SIGE9MTUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYgQU5EIDgpIEFORCBhIT03 KQpAQCAtMzM1Myw3ICszMzUzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3Z3eHl6KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAzMSBBTkQgMzMpIEFORCBhIT0zMikKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQg ZiBHTE9CICdnaGlqayonKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5EIGEhPTc4KQog ICAgICAgICAgT1IgYj01MjgKICAgICAgICAgIE9SIGM9MzAwMzAKQEAgLTMzNzQsNyArMzM3 NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBH TE9CICd2d3h5eionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQg YSE9MzIpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsqJykK LSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA3NyBBTkQgNzkpIEFORCBhIT03OCkKICAgICAgICAgIE9SIGI9NTI4 CiAgICAgICAgICBPUiBjPTMwMDMwCkBAIC0zNTA1LDcgKzM1MDUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0qJykKICAg ICAgICAgIE9SIGM9MTAwMQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0Ig J2hpamtsKicpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAg ICAgICAgT1IgYz0zMzAzMwogICBdXSkKQEAgLTM1MjYsNyArMzUyNiw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdpamtsbSonKQog ICAgICAgICAgT1IgYz0xMDAxCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xP QiAnaGlqa2wqJykKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAg ICAgICAgICBPUiBjPTMzMDMzCiAgIF1dKQpAQCAtMzYxMCw3ICszNjEwLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgYj02NgogICAgICAgICAgT1IgYj01NTMKICAgICAgICAg IE9SIGE9NjQKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAg ICAgICBPUiBhPTYyCiAgICAgICAgICBPUiBiPTEwODEKQEAgLTM2MzMsNyArMzYzMyw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9NjYKICAgICAgICAgIE9SIGI9NTUzCiAg ICAgICAgICBPUiBhPTY0Ci0gICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dion KQogICAgICAgICAgT1IgYT02MgogICAgICAgICAgT1IgYj0xMDgxCkBAIC0zNjg4LDEwICsz Njg4LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0zNDAzNAotICAg ICAgICAgT1IgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02OC4wIEFORCBkPDY5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTQ0CiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykK LSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYz0zMTAzMQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2Fi Y2RlKicpCiAgICAgICAgICBPUiBiPTYxOQpAQCAtMzcxMCwxMCArMzcxMCwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9MzQwMzQKLSAgICAgICAgIE9SIChkPj02 OC4wIEFORCBkPDY5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjguMCBB TkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NAogICAgICAg ICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3h5emFiKicpCi0gICAgICAgICBPUiAo ZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEy LjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MzEwMzEK ICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAg ICAgT1IgYj02MTkKQEAgLTM3MzUsNyArMzczNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY1IEFORCA2NykgQU5E IGEhPTY2KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTcgQU5EIDk5KSBBTkQgYSE9OTgp Ci0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdrbG1ub3BxcnMnCiAgICAgICAgICBPUiAo Zz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTM3NTgsNyArMzc1OCw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDY1IEFORCA2NykgQU5EIGEhPTY2KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g OTcgQU5EIDk5KSBBTkQgYSE9OTgpCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdrbG1u b3BxcnMnCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykK QEAgLTM3NzksOSArMzc3OSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYT03MgogICAgICAgICAgT1IgYj05MTMKLSAgICAgICAgIE9S IChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMjEK LSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTQuMT4KQEAgLTM3OTYsOSArMzc5Niw5 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg YT03MgogICAgICAgICAgT1IgYj05MTMKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMjEKLSAgICAgICAgIE9SIChkPj0y LjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQg ZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuOTQuMj4KQEAgLTM5MTAsOSArMzkxMCw5IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj0yNQotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MSBBTkQgODMpIEFO RCBhIT04MikKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMyBBTkQgNSkgQU5EIGEhPTQpCiAgICAgICAg ICBPUiBiPTI4OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODUgQU5EIDg3KSBBTkQgYSE9 ODYpCkBAIC0zOTI5LDkgKzM5MjksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIGI9MjUKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODEgQU5EIDgzKSBBTkQgYSE9ODIpCi0gICAg ICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDMgQU5EIDUpIEFORCBhIT00KQogICAgICAgICAgT1IgYj0yODkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDg1IEFORCA4NykgQU5EIGEhPTg2KQpAQCAtMzk0OSwx MiArMzk0OSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGY9J2RlZmdoaWprbCcKICAgICAgICAgIE9SIGI9NDY1Ci0gICAgICAgICBP UiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9OTAw OQogICAgICAgICAgT1IgYj05OTAKICAgICAgICAgIE9SIGI9MTMyCiAgICAgICAgICBPUiBh PTM1Ci0gICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9ODEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDcxIEFORCA3MykgQU5E IGEhPTcyKQogICBdXSkKQEAgLTM5NzEsMTIgKzM5NzEsMTIgQEAgdGVzdDpkb190ZXN0KAog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSdkZWZnaGlqa2wnCiAgICAg ICAgICBPUiBiPTQ2NQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBjPTkwMDkKICAgICAgICAgIE9SIGI9OTkwCiAgICAgICAg ICBPUiBiPTEzMgogICAgICAgICAgT1IgYT0zNQotICAgICAgICAgT1IgKGQ+PTc4LjAgQU5E IGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFORCBhIT03MikKICAgXV0pCkBAIC0zOTkyLDcgKzM5 OTIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MjYwMjYKLSAgICAg ICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9 J2xtbm9wcXJzdCcKICAgICAgICAgIE9SIGE9NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTkgQU5EIDYxKSBBTkQgYSE9NjApCkBAIC00MDA5LDcgKzQwMDksNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFIGM9MjYwMjYKLSAgICAgICAgIE9SIChkPj05LjAgQU5E IGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05LjAgQU5EIGQ8MTAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKICAgICAg ICAgIE9SIGE9NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9 NjApCkBAIC00MDI2LDcgKzQwMjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKLSAgICAgICAgIE9SIChk Pj03LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcuMCBB TkQgZDw4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuMTAxLjE+CkBAIC00MDQwLDcgKzQwNDAsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05 OSkKLSAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTAxLjI+CkBAIC00MDU0LDEyICs0 MDU0LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0xMTAxMQotICAg ICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTYzMAogICAgICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEn IEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBhPTI0Ci0gICAgICAgICBPUiAo ZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk1 LjAgQU5EIGQ8OTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTQwNzQs MTIgKzQwNzQsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBjPTExMDEx Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NjMwCiAgICAgICAgICBPUiBjPTE5MDE5CiAgICAgICAgICBPUiAoZz0nZ2Zl ZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGE9MjQKLSAgICAgICAg IE9SIChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNTEgQU5EIDUzKSBBTkQgYSE9NTIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt NDI2NCw3ICs0MjY0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTQ5 OAotICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTEKICAgXV0pCiAgICAgZW5kLCB7CkBAIC00Mjc5LDcgKzQyNzksNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAoZD49 NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAg QU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTQ1MzMsNyArNDUzMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9NjMwCiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0Ig J2JjZGUqJykKICAgICAgICAgIE9SIGM9MzAwMwotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5E IGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMTE2LjE+CkBAIC00NTU0LDcgKzQ1NTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBiPTYzMAogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBH TE9CICdiY2RlKicpCiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9SIChkPj00OS4w IEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQg ZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjExNi4yPgpAQCAtNDU3NSw3ICs0NTc1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj0xNDMKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5E IGYgR0xPQiAnamtsbSonKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0Ig J3d4eXphKicpCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMTcuMT4KQEAg LTQ1OTYsNyArNDU5Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTQzCiAg ICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKICAgICAg ICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1Ig KGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x MC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMTE3LjI+CkBAIC00NjQxLDcgKzQ2NDEsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49My4wIEFO RCBkPDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9 MzYzCiAgICAgICAgICBPUiBiPTMzMApAQCAtNDY2Miw3ICs0NjYyLDcgQEAgdGVzdDpkb190 ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTMuMCBBTkQgZDw0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDUxCiAgICAgICAgICBPUiBiPTM2Mwog ICAgICAgICAgT1IgYj0zMzAKQEAgLTQ2ODQsNyArNDY4NCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3JzdHV2KicpCi0g ICAgICAgICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgZSBJ UyBOVUxMCiAgICAgICAgICBPUiBiPTc1OQpAQCAtNDcwMSw3ICs0NzAxLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0 dXYqJykKLSAgICAgICAgIE9SIChkPj02OC4wIEFORCBkPDY5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAg ICBPUiBlIElTIE5VTEwKICAgICAgICAgIE9SIGI9NzU5CkBAIC00NzQ4LDEwICs0NzQ4LDEw IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDM3Ci0gICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5E IGQ8ODMuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc1IEFORCA3NykgQU5E IGEhPTc2KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTQ3NjYsMTAgKzQ3NjYsMTAgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTEwMzcKLSAgICAgICAgIE9SIChkPj00 Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NDMgQU5EIDQ1KSBBTkQgYSE9NDQpCi0gICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQgYSE9NzYp CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNDg2MSw3ICs0ODYxLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGYgR0xPQiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCiAg ICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAg IE9SIGI9MjQyCi0gICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9MzUyCiAgICAgICAgICBPUiBhPTQ5CiAgICAgICAgICBPUiAo Zz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTQ4ODMsNyArNDg4Myw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xP QiAnaWprbConKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2ZnaGlq KicpCiAgICAgICAgICBPUiBiPTI0MgotICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1MgogICAgICAgICAgT1IgYT00OQog ICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCkBAIC00ODk5 LDE0ICs0ODk5LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj03MDQKICAgICAgICAgIE9SIGE9NwogICAgICAgICAgT1IgYT04CiAgICAgICAgICBP UiBhPTQ2CiAgICAgICAgICBPUiBiPTc0MAogICAgICAgICAgT1IgYj05OTMKLSAgICAgICAg IE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjEyNi4xPgpAQCAtNDkxOSwxNCArNDkxOSwxNCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg3LjAg QU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzA0CiAgICAg ICAgICBPUiBhPTcKICAgICAgICAgIE9SIGE9OAogICAgICAgICAgT1IgYT00NgogICAgICAg ICAgT1IgYj03NDAKICAgICAgICAgIE9SIGI9OTkzCi0gICAgICAgICBPUiAoZD49MzguMCBB TkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8 MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4xMjYuMj4KQEAgLTQ5OTksOCArNDk5OSw4IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTY1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNTAxNCw4 ICs1MDE0LDggQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAg V0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3 LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjUKICAg XV0pCiAgICAgZW5kLCB7CkBAIC01MDI5LDEwICs1MDI5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03MS4wIEFORCBkPDcyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBPUiAoZz0n eXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAgIE9SIChkPj01MC4wIEFO RCBkPDUxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1 MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNAogICBdXSkKICAgICBl bmQsIHsKQEAgLTUwNDYsMTAgKzUwNDYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAxMDAwMDAwPGIKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBB TkQgZiBHTE9CICdjZGVmZyonKQotICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTI0CiAgIF1dKQogICAgIGVuZCwgewpAQCAt NTA2OSw3ICs1MDY5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0zNgogICAg ICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIGE9MTQKLSAgICAgICAgIE9SIChkPj02MS4w IEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQg ZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NDAKICAgICAgICAg IE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAgICAgT1IgKGYg R0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicpCkBAIC01MDkxLDcgKzUwOTEsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTM2CiAgICAgICAgICBPUiBiPTgxNAog ICAgICAgICAgT1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ0MAogICAgICAgICAgT1IgKGc9J3h3dnV0c3In IEFORCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YWJjZConIEFO RCBmIEdMT0IgJ3phYmMqJykKQEAgLTUxNjMsNyArNTE2Myw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04MC4wIEFORCBkPDgxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT04MgogICBdXSkKICAgICBlbmQsIHsKQEAg LTUxNzcsNyArNTE3Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT04MgogICBdXSkKICAgICBlbmQsIHsKQEAgLTUxOTUsNyArNTE5NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MjQwMjQKICAgICAgICAgIE9SIGI9OTQ2CiAg ICAgICAgICBPUiBhPTE5Ci0gICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMzUu MT4KQEAgLTUyMTIsNyArNTIxMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9 MjQwMjQKICAgICAgICAgIE9SIGI9OTQ2CiAgICAgICAgICBPUiBhPTE5Ci0gICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMzUuMj4KQEAgLTUyNjUsNyArNTI2NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj03MDQK ICAgICAgICAgIE9SIGI9OTQ5Ci0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3eHl6 YSonKQogICAgICAgICAgT1IgYz0yNDAyNAogICAgICAgICAgT1IgYj01NTMKQEAgLTUyODUs NyArNTI4NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgYj03MDQKICAgICAgICAgIE9SIGI9OTQ5Ci0gICAgICAgICBPUiAoZD49NzIu MCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5E IGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBB TkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgYz0yNDAyNAogICAgICAgICAgT1Ig Yj01NTMKQEAgLTUzMDYsNyArNTMwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IChmIEdMT0IgJz9jZGVmKicgQU5EIGYgR0xPQiAnYmNkZSonKQogICAgICAgICAgT1IgKGc9 J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBiPTkwMgotICAg ICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTI1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykK ICAgICAgICAgIE9SIGY9J3phYmNkZWZnaCcKQEAgLTUzMjYsNyArNTMyNiw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgIFdIRVJFIChmIEdMT0IgJz9jZGVmKicgQU5EIGYgR0xPQiAnYmNk ZSonKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAg ICAgICAgICBPUiBiPTkwMgotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAx NiBBTkQgMTgpIEFORCBhIT0xNykKICAgICAgICAgIE9SIGY9J3phYmNkZWZnaCcKQEAgLTUz NDYsNyArNTM0Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9MjIKICAgICAg ICAgIE9SIGI9MzYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU3IEFORCA1OSkgQU5EIGEh PTU4KQotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MSBBTkQgODMpIEFORCBhIT04MikKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC01MzYzLDcgKzUzNjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSBhPTIyCiAgICAgICAgICBPUiBiPTM2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 NyBBTkQgNTkpIEFORCBhIT01OCkKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODEgQU5EIDgzKSBBTkQg YSE9ODIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNTM3OCw3ICs1Mzc4LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI1MwotICAgICAgICAgT1IgKGQ+PTYwLjAg QU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBk PDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuMTQwLjE+CkBAIC01MzkyLDcgKzUzOTIsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGI9MjUzCi0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2 MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi4xNDAuMj4KQEAgLTU0NDAsMTMgKzU0NDAsMTMgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYz0zMDAzMAogICAgICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNDQgQU5EIDQ2KSBBTkQgYSE9NDUpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQg ZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEKICAgICAgICAgIE9SIChn PSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MgogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBP UiBhPTEzCi0gICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDIuMT4KQEAgLTU0 NjIsMTMgKzU0NjIsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYz0zMDAzMAog ICAgICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDQgQU5EIDQ2KSBB TkQgYSE9NDUpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9MTEKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBH TE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKGc9J3V0c3Jx cG8nIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBhPTEzCi0gICAgICAgICBP UiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDIuMj4KQEAgLTU0ODUsNyArNTQ4NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDM5IEFORCA0MSkgQU5EIGEhPTQwKQogICAgICAgICAgT1IgYj0xMDQ1Ci0g ICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGY9J3V2d3h5emFiYycKICAgICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5EIGYg R0xPQiAneXphYionKQogICBdXSkKQEAgLTU1MDQsNyArNTUwNCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDM5IEFORCA0MSkgQU5EIGEhPTQwKQogICAgICAgICAgT1IgYj0xMDQ1Ci0gICAgICAgICBP UiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3V2 d3h5emFiYycKICAgICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5EIGYgR0xPQiAneXph YionKQogICBdXSkKQEAgLTU1MjcsNyArNTUyNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGY9J3d4eXphYmNkZScKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9S IGI9NTk3Ci0gICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDQuMT4KQEAgLTU1 NDgsNyArNTU0OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J3d4eXphYmNk ZScKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NTk3Ci0gICAgICAgICBP UiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDQuMj4KQEAgLTU1NjMsMTIgKzU1NjMsMTIgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTkx CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAg ICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4OSBBTkQgOTEpIEFORCBhIT05MCkKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBk PDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDIKLSAgICAgICAgIE9SIChk Pj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYu MCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiBiPTc4NAogICBdXSkKQEAg LTU1ODUsMTIgKzU1ODUsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBiPTkxCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYg R0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OSBBTkQgOTEpIEFORCBhIT05MCkKLSAgICAg ICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xMDIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAg ICBPUiBiPTc4NAogICBdXSkKQEAgLTU2MDksNyArNTYwOSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAg ICAgT1IgYj05OTAKICAgICAgICAgIE9SIGE9NTIKLSAgICAgICAgIE9SIChkPj0zOC4wIEFO RCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjE0Ni4xPgpAQCAtNTYyNiw3ICs1NjI2LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAg ICBPUiBiPTk5MAogICAgICAgICAgT1IgYT01MgotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5E IGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMTQ2LjI+CkBAIC01NjgyLDEwICs1NjgyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQogICAgICAg ICAgT1IgYj00MjEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEh PTIzKQotICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAgICAgT1Ig KGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0y NC4wIEFORCBkPDI1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBB TkQgZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5E IGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjIwMjIKICAgICAg ICAgIE9SIGI9ODI1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBh IT0xOCkKQEAgLTU3MDUsMTAgKzU3MDUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQgYSE9NjkpCiAgICAgICAgICBPUiBiPTQy MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCi0gICAg ICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3NycXBvbm0nIEFORCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49ODkuMCBB TkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8 MjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yMjAyMgogICAgICAgICAgT1IgYj04 MjUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE3IEFORCAxOSkgQU5EIGEhPTE4KQpAQCAt NTcyNSw3ICs1NzI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTQ4NAogICAgICAgICAgT1IgYj0xMDI2CiAgICAgICAgICBPUiBhPTkwCkBAIC01 NzQ0LDcgKzU3NDQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9NDg0CiAgICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGE9OTAKQEAgLTU3 NjQsOSArNTc2NCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYzw9MTAK LSAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xNTQKLSAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj04ODAKICAgICAgICAgIE9SIGE9NTUKICAgICAgICAgIE9S IGI9NzczCkBAIC01Nzg1LDkgKzU3ODUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGM8PTEwCi0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MTU0Ci0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3 OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAgICBPUiBhPTU1 CiAgICAgICAgICBPUiBiPTc3MwpAQCAtNTgzNyw3ICs1ODM3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTMzCiAgICAgICAgICBP UiBiPTEwNDUKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz0xMzAxMwogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBm IEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBiPTEyNApAQCAtNTg1Niw3ICs1ODU2LDcg QEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBh PTMzCiAgICAgICAgICBPUiBiPTEwNDUKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQx LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xMzAxMwogICAgICAgICAgT1IgKGc9 J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBiPTEyNApAQCAt NTk3NSw3ICs1OTc1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3l4d3Z1 dHMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAg ICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKLSAgICAg ICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xMDU2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNTk5Myw3ICs1OTkzLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2NkZWZnKicp CiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiAoZiBHTE9CICc/ZGVm ZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUy LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDU2CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtNjAwOCwxNCArNjAwOCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGE9NDcKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj00MTAKICAgICAgICAgIE9SIGI9NjgyCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA5OCBBTkQgMTAwKSBBTkQgYSE9OTkpCiAgICAgICAgICBPUiBmPSdoaWpr bG1ub3AnCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTY4Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MzIKICAgICAgICAgIE9SIGE9NzIKICAgXV0p CkBAIC02MDMxLDE0ICs2MDMxLDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgYT00NwotICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTQxMAogICAgICAgICAgT1IgYj02ODIKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKICAgICAgICAgIE9SIGY9J2hpamts bW5vcCcKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj0xNjgKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYT03MgogICBdXSkK QEAgLTYwNTUsNyArNjA1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj02MTYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI1IEFO RCAyNykgQU5EIGEhPTI2KQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjA3 MSw3ICs2MDcxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBiPTYxNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjUgQU5EIDI3KSBB TkQgYSE9MjYpCi0gICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGE9OTYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC02MDg1LDcgKzYw ODUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzUy CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjA5OSw3ICs2MDk5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTY2LjAgQU5EIGQ8Njcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02Ni4wIEFORCBkPDY3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1MgogICBdXSkKICAgICBlbmQsIHsK QEAgLTYxMTUsNyArNjExNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj03OTUKICAgICAgICAgIE9SIGM9MTMwMTMKLSAgICAgICAg IE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01 OTcKICAgXV0pCiAgICAgZW5kLCB7CkBAIC02MTMxLDcgKzYxMzEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9Nzk1CiAgICAgICAg ICBPUiBjPTEzMDEzCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NTk3CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjIzMiw3 ICs2MjMyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgZj0nY2RlZmdoaWprJwog ICAgICAgICAgT1IgKGYgR0xPQiAnP3N0dXYqJyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAg ICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9S IChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsK ICAgICAgICAgLS0gPHdoZXJlNy0yLjE2My4xPgpAQCAtNjI0OCw3ICs2MjQ4LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgV0hFUkUgZj0nY2RlZmdoaWprJwogICAgICAgICAgT1IgKGYg R0xPQiAnP3N0dXYqJyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAgICAgICBPUiAoZz0naWhn ZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj01OS4wIEFORCBk PDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjE2My4yPgpAQCAtNjI2MywxMCArNjI2MywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NjUKICAgICAgICAgIE9SIGM9 MTQwMTQKLSAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYT00NwogICAgICAgICAgT1IgYj0yMjAKLSAgICAgICAgIE9SIChkPj0z Ny4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBB TkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjE2NC4xPgpAQCAtNjI4MSwxMCArNjI4MSwxMCBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NjUKICAgICAg ICAgIE9SIGM9MTQwMTQKLSAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT00NwogICAgICAgICAgT1IgYj0yMjAKLSAgICAgICAg IE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE2NC4yPgpAQCAtNjMzOCwxMSArNjMzOCwxMSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTM2MwogICAgICAgICAgT1IgKGc9J3Rz cnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 OCBBTkQgNjApIEFORCBhIT01OSkKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAg ICAgICAgT1IgYT0zOQotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTY2LjE+ CkBAIC02MzU4LDExICs2MzU4LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9 MzYzCiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAnemFiY2QqJykKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDU4IEFORCA2MCkgQU5EIGEhPTU5KQotICAgICAgICAg T1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NDYuMCBBTkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBB TkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQg ZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFO RCBmIEdMT0IgJ2tsbW5vKicpCiAgICAgICAgICBPUiBhPTM5Ci0gICAgICAgICBPUiAoZD49 NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAg QU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4xNjYuMj4KQEAgLTYzNzYsNyArNjM3Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0zMDAzMAotICAgICAgICAgT1IgKGQ+PTUyLjAg QU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBk PDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg1MAogICAgICAgICAg T1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4KicpCiAgIF1dKQpAQCAtNjM5 Miw3ICs2MzkyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBjPTMwMDMw Ci0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9ODUwCiAgICAgICAgICBPUiAoZiBHTE9CICc/dnd4eSonIEFORCBmIEdMT0Ig J3V2d3gqJykKICAgXV0pCkBAIC02NDA3LDggKzY0MDcsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MjMuMCBBTkQgZDwyNC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj04MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTY0MjIsOCAr NjQyMiw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTIz LjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MS4w IEFORCBkPDkyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgwCiAgIF1d KQogICAgIGVuZCwgewpAQCAtNjQzOCw3ICs2NDM4LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA1OSBBTkQgNjEpIEFORCBhIT02MCkKLSAgICAg ICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj00NjIKICAgICAgICAgIE9SIGE9NTEKICAgICAgICAgIE9SIGI9MzQ0CkBAIC02NDU3LDcg KzY0NTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVO IDU5IEFORCA2MSkgQU5EIGEhPTYwKQotICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8Nzgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ2MgogICAgICAgICAgT1IgYT01MQog ICAgICAgICAgT1IgYj0zNDQKQEAgLTY1MDgsNyArNjUwOCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFIGI9MTc5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyIEFORCA0KSBB TkQgYSE9MykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQx KQotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA3MiBBTkQgNzQpIEFORCBhIT03MykKICAgXV0pCiAgICAg ZW5kLCB7CkBAIC02NTI1LDcgKzY1MjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVS RSBiPTE3OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMiBBTkQgNCkgQU5EIGEhPTMpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKLSAgICAgICAg IE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt NjU0MSw3ICs2NTQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTMzMwogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdM T0IgJ2JjZGVmKicpCi0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NDA3CiAgICAgICAgICBPUiBhPTUKICAgICAgICAgIE9S IGI9ODE3CkBAIC02NTYwLDcgKzY1NjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MzMzCiAgICAgICAgICBPUiAoZz0nbm1sa2pp aCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MDcKICAgICAgICAgIE9SIGE9NQog ICAgICAgICAgT1IgYj04MTcKQEAgLTY3MTMsNyArNjcxMyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAneHl6YWIq JykKICAgICAgICAgIE9SIGM9MzIwMzIKICAgICAgICAgIE9SIGI9Mjg5CkBAIC02NzMxLDcg KzY3MzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj0zLjAgQU5EIGQ8NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2pp aGdmZWQnIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBjPTMyMDMyCiAgICAg ICAgICBPUiBiPTI4OQpAQCAtNjc4NiwxMSArNjc4NiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAg ICAgIE9SIGI9OTAyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBh IT02NSkKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9S IGI9MjQyCiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykK LSAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgIF1dKQogICAgIGVu ZCwgewpAQCAtNjgwOSwxMSArNjgwOSwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiAoZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAgIE9SIGI9 OTAyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkKLSAg ICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIGI9MjQyCiAg ICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAg IE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt NjgzMiw3ICs2ODMyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03ODEKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDY2IEFORCA2OCkgQU5EIGEhPTY3KQogICAgICAgICAg T1IgZD4xZTEwCi0gICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xODAuMT4KQEAg LTY4NTAsNyArNjg1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NzgxCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAgICAgICAg IE9SIGQ+MWUxMAotICAgICAgICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTgwLjI+CkBA IC02ODY4LDcgKzY4NjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9C ICc/amtsbSonIEFORCBmIEdMT0IgJ2lqa2wqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDU3IEFORCA1OSkgQU5EIGEhPTU4KQogICAgICAgICAgT1IgYT03NgotICAgICAgICAgT1Ig KGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y My4wIEFORCBkPDI0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0namlo Z2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGI9MTc2CiAgIF1dKQpA QCAtNjg4OCw3ICs2ODg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xP QiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1NyBBTkQgNTkpIEFORCBhIT01OCkKICAgICAgICAgIE9SIGE9NzYKLSAgICAgICAgIE9S IChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2pp aGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBiPTE3NgogICBdXSkK QEAgLTY5MDYsNyArNjkwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdw b25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYg R0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicp CiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OCBBTkQgOTAp IEFORCBhIT04OSkKQEAgLTY5MjYsNyArNjkyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbm1s a2ppaCcgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBk PDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdM T0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA4OCBBTkQgOTApIEFORCBhIT04OSkKQEAgLTY5NDUsNyArNjk0NSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3RzcnFwb24n IEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBiPTI4NgotICAgICAgICAgT1Ig KGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z MS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkxCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgXV0pCkBA IC02OTYyLDcgKzY5NjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAg ICAgICAgT1IgYj0yODYKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj05MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDMg QU5EIDQ1KSBBTkQgYSE9NDQpCiAgIF1dKQpAQCAtNzA3MSw4ICs3MDcxLDggQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SIGI9NjQxCiAgICAgICAg ICBPUiAoZiBHTE9CICc/b3BxcionIEFORCBmIEdMT0IgJ25vcHEqJykKLSAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NS4wIEFORCBk PDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTgKICAgXV0pCiAgICAg ZW5kLCB7CkBAIC03MDkyLDggKzcwOTIsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBiPTIzNAogICAgICAgICAgT1IgYj02NDEKICAgICAgICAgIE9SIChmIEdMT0IgJz9vcHFy KicgQU5EIGYgR0xPQiAnbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT05OAogICBdXSkKICAgICBlbmQsIHsKQEAgLTcxMTQsOCAr NzExNCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQg ZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj02OQogICAgICAgICAgT1IgYj0xMDAx Ci0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAzMiBBTkQgMzQpIEFORCBhIT0zMykKICAgXV0pCkBAIC03MTM3LDggKzcxMzcsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAn cnN0dXYqJykKICAgICAgICAgIE9SIGI9NjkKICAgICAgICAgIE9SIGI9MTAwMQotICAgICAg ICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIz LjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdpaGdm ZWRjJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzIg QU5EIDM0KSBBTkQgYSE9MzMpCiAgIF1dKQpAQCAtNzE4OCw3ICs3MTg4LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMp CiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgp IEFORCBhIT01NykKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT02NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTcyMDcsNyAr NzIwNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDcyIEFO RCA3NCkgQU5EIGEhPTczKQogICAgICAgICAgT1IgYj0xNAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNTYgQU5EIDU4KSBBTkQgYSE9NTcpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQg ZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTku MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjYKICAgXV0pCiAgICAgZW5k LCB7CkBAIC03MjIyLDcgKzcyMjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT02NgogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBm IEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBhPTUxCkBAIC03MjQxLDcgKzcyNDEsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9MjMwMjMKLSAgICAgICAgIE9S IChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02Ngog ICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAg ICBPUiBhPTUxCkBAIC03Mjk1LDkgKzcyOTUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBmPSdlZmdoaWprbG0nCiAgICAgICAgICBPUiBhPTgKICAgICAgICAgIE9SIGE9ODAK LSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0yNTYKLSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE5My4xPgpA QCAtNzMxNiw5ICs3MzE2LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0nZWZn aGlqa2xtJwogICAgICAgICAgT1IgYT04CiAgICAgICAgICBPUiBhPTgwCi0gICAgICAgICBP UiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjU2 Ci0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xOTMuMj4KQEAgLTczMzEsNyAr NzMzMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04 MzYKICAgICAgICAgIE9SIChmIEdMT0IgJz9kZWZnKicgQU5EIGYgR0xPQiAnY2RlZionKQog ICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCkBAIC03MzUw LDcgKzczNTAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAg ICBXSEVSRSAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9ODM2CiAgICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYq JykKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdpamtsbSonKQpAQCAt NzM3NCw5ICs3Mzc0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNjIgQU5EIDY0KSBBTkQgYSE9NjMpCiAgICAgICAgICBPUiBjPTYwMDYKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQotICAgICAgICAgT1IgKGQ+ PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4w IEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA4OCBBTkQgOTApIEFORCBhIT04OSkKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjE5NS4xPgpAQCAtNzM5NCw5ICs3Mzk0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNjIgQU5EIDY0KSBBTkQgYSE9NjMpCiAgICAgICAgICBPUiBj PTYwMDYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQot ICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA4OCBBTkQgOTApIEFORCBhIT04OSkKLSAgICAgICAgIE9SIChk Pj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMu MCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjE5NS4yPgpAQCAtNzQxMyw3ICs3NDEzLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUp CiAgICAgICAgICBPUiBhPTEzCiAgICAgICAgICBPUiBiPTEyMQotICAgICAgICAgT1IgKGQ+ PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NC4w IEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAxMiBBTkQgMTQpIEFORCBhIT0xMykKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQg ZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgYj02NjAKQEAgLTc0MzUsNyArNzQzNSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE0IEFORCAxNikg QU5EIGEhPTE1KQogICAgICAgICAgT1IgYT0xMwogICAgICAgICAgT1IgYj0xMjEKLSAgICAg ICAgIE9SIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMTIgQU5EIDE0KSBBTkQgYSE9MTMpCiAgICAgICAgICBPUiAoZz0ndXRz cnFwbycgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGI9NjYwCkBAIC03NDU3 LDEwICs3NDU3LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDk1CiAgICAg ICAgICBPUiBiPTE1NwogICAgICAgICAgT1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBHTE9C ICd1dnd4KicpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAg ICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2hpamtsKicpCi0gICAgICAgICBP UiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x LjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nd3h5emFi Y2RlJwogICBdXSkKICAgICBlbmQsIHsKQEAgLTc0NzgsMTAgKzc0NzgsMTAgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj00OTUKICAgICAgICAgIE9SIGI9MTU3CiAgICAgICAg ICBPUiAoZiBHTE9CICc/dnd4eSonIEFORCBmIEdMT0IgJ3V2d3gqJykKLSAgICAgICAgIE9S IChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3l4 d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicg QU5EIGYgR0xPQiAnaGlqa2wqJykKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSd3eHl6YWJjZGUnCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtNzYwNCw3ICs3NjA0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J29ubWxramknIEFORCBmIEdMT0IgJ3l6YWJjKicpCiAgICAgICAgICBPUiBiPTg5MQogICAg ICAgICAgT1IgYT00MAotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjAxLjE+ CkBAIC03NjI0LDcgKzc2MjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0n b25tbGtqaScgQU5EIGYgR0xPQiAneXphYmMqJykKICAgICAgICAgIE9SIGI9ODkxCiAgICAg ICAgICBPUiBhPTQwCi0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMDEuMj4K QEAgLTc2MzcsMTMgKzc2MzcsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTMyCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAg ICAgT1IgYj00MjkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3l6YWJjKicpCiAg ICAgICAgICBPUiBjPTEwMDEwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MyBBTkQgODUp IEFORCBhIT04NCkKQEAgLTc2NTksMTMgKzc2NTksMTMgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTMyCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQg ZDw4OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODku MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGQ+ MWUxMAogICAgICAgICAgT1IgYj00MjkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0Ig J3l6YWJjKicpCiAgICAgICAgICBPUiBjPTEwMDEwCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA4MyBBTkQgODUpIEFORCBhIT04NCkKQEAgLTc3MjYsMTMgKzc3MjYsMTMgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBh IT0zNSkKLSAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAg ICBPUiBhPTgzCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0q JykKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gOTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKLSAgICAgICAg IE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x MDkyCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAg ICAgICAgIE9SIGI9MjUKQEAgLTc3NDksMTMgKzc3NDksMTMgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBhIT0zNSkKLSAg ICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBhPTgz CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAg ICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gOTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKLSAgICAgICAgIE9SIChkPj0x Mi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBB TkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDkyCiAgICAg ICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9S IGI9MjUKQEAgLTc3NzYsNyArNzc3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAgICAgT1IgYT01MAog ICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ29wcXJzKicpCi0gICAgICAg ICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMDUuMT4KQEAgLTc3OTQsNyArNzc5NCw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdm Z2hpaionKQogICAgICAgICAgT1IgYT01MAogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFO RCBmIEdMT0IgJ29wcXJzKicpCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4y MDUuMj4KQEAgLTc4MzYsNyArNzgzNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj04OTEKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgZj0nbm9wcXJzdHV2JwogICBdXSkKICAgICBlbmQsIHsKQEAg LTc4NTEsNyArNzg1MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj04 OTEKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgZj0nbm9wcXJzdHV2JwogICBdXSkKICAgICBlbmQsIHsKQEAgLTc5MjksOSAr NzkyOSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT03 NwotICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjEwLjE+CkBAIC03OTQ0LDkg Kzc5NDQsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 NzcKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjIxMC4yPgpAQCAtNzk1OSwx MSArNzk1OSwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTEKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyonKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCi0gICAgICAg ICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 OTkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC03OTc3LDExICs3OTc3LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02Ni4wIEFORCBk PDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjYuMCBBTkQgZDw2Ny4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMQogICAgICAgICAgT1IgKGc9 J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAxNCBBTkQgMTYpIEFORCBhIT0xNSkKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT05OQogICBdXSkKICAgICBlbmQsIHsK QEAgLTgwMDEsNyArODAwMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDYwIEFORCA2MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g OTAgQU5EIDkyKSBBTkQgYSE9OTEpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5IEFORCAx MSkgQU5EIGEhPTEwKQotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndHV2d3gqJykK ICAgICAgICAgIE9SIGI9ODAKICAgXV0pCkBAIC04MDIyLDcgKzgwMjIsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02MSkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkwIEFORCA5MikgQU5EIGEhPTkxKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gOSBBTkQgMTEpIEFORCBhIT0xMCkKLSAgICAgICAgIE9SIChk Pj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIu MCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tqaWhn ZmUnIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBiPTgwCiAgIF1dKQpAQCAt ODEzMyw3ICs4MTMzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYj0xMDE1 CiAgICAgICAgICBPUiBjPTE2MDE2CkBAIC04MTUzLDcgKzgxNTMsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49My4wIEFORCBkPDQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ29w cXJzKicpCiAgICAgICAgICBPUiBiPTEwMTUKICAgICAgICAgIE9SIGM9MTYwMTYKQEAgLTgx NzQsNyArODE3NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3l4 d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQg ZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjQxCiAgICAgICAgICBPUiBi PTc5NQogICBdXSkKQEAgLTgxOTAsNyArODE5MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0gICAgICAg ICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NjQxCiAgICAgICAgICBPUiBiPTc5NQogICBdXSkKQEAgLTgyMDYsOCArODIwNiw4IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgZj0nZmdoaWprbG1uJwotICAgICAgICAg T1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQu MCBBTkQgZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAg QU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4yMTguMT4KQEAgLTgyMjEsOCArODIyMSw4IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgZj0nZmdoaWprbG1uJwotICAgICAgICAgT1IgKGQ+ PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4w IEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQg ZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8 MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4yMTguMj4KQEAgLTgyNzMsMTEgKzgyNzMsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj04ODAKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDg5CiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA2OSBBTkQgNzEpIEFORCBhIT03MCkKICAgICAgICAgIE9SIGYgSVMgTlVMTApAQCAt ODI5NCwxMSArODI5NCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz Ci0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAg IE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x Mi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4MAot ICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTEwODkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY5IEFORCA3MSkgQU5EIGEh PTcwKQogICAgICAgICAgT1IgZiBJUyBOVUxMCkBAIC04Mzk2LDExICs4Mzk2LDExIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NzkyCiAg ICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAg IE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05MS4w IEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBBTkQg ZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwotICAgICAg ICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjIzLjE+CkBAIC04NDE4LDExICs4NDE4LDEx IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9 NzkyCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAg ICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Nzcu MCBBTkQgZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBB TkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQg ZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwot ICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjIzLjI+CkBAIC04NDM2LDcgKzg0 MzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NDI5Ci0gICAgICAg ICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChm IEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQogICAgICAgICAgT1IgKGc9J3Fw b25tbGsnIEFORCBmIEdMT0IgJ29wcXJzKicpCiAgICAgICAgICBPUiBiPTEwNzAKQEAgLTg0 NTQsNyArODQ1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00MjkK LSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGYgR0xPQiAnP2ZnaGkqJyBBTkQgZiBHTE9CICdlZmdoKicpCiAgICAgICAgICBP UiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGI9MTA3 MApAQCAtODY2OCw5ICs4NjY4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3NycXBvbm0nIEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA2NCBBTkQgNjYpIEFORCBhIT02NSkKICAgICAgICAgIE9SIGI9NjgyCi0gICAgICAgICBP UiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSds a2ppaGdmJyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5E IGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMjMxLjE+CkBAIC04Njg4LDkgKzg2ODgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDY0IEFORCA2NikgQU5EIGEhPTY1KQogICAgICAgICAgT1IgYj02 ODIKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicpCi0gICAgICAgICBP UiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMzEuMj4KQEAgLTg3MzcsMTQgKzg3MzcsMTQgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTU1 LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01NS4wIEFO RCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZnaGkn CiAgICAgICAgICBPUiBiPTI2NwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdM T0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndXZ3 eHkqJykKICAgICAgICAgIE9SIGE9ODIKICAgICAgICAgIE9SIGE9NTQKLSAgICAgICAgIE9S IChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDc4 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtODc1OCwxNCArODc1OCwxNCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTUuMCBBTkQgZDw1 Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAg IE9SIGI9MjY3CiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnYWJjZGUq JykKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAg ICAgICAgT1IgYT04MgogICAgICAgICAgT1IgYT01NAotICAgICAgICAgT1IgKGQ+PTE2LjAg QU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBk PDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNzgKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC04Nzc5LDkgKzg3NzksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKLSAgICAgICAgIE9SIChkPj0zNC4w IEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzQuMCBBTkQg ZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjIzNC4xPgpAQCAtODc5NCw5ICs4Nzk0LDkgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTkzLjAgQU5EIGQ8OTQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05My4wIEFORCBkPDk0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdoaWprbG1ub3AnCi0gICAgICAgICBP UiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMzQuMj4KQEAgLTg4MTMsNyArODgxMyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEh PTUyKQogICAgICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5E IDMzKSBBTkQgYSE9MzIpCi0gICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIDEwMDAwMDA8YgogICAgICAgICAgT1IgKGYgR0xPQiAn P3BxcnMqJyBBTkQgZiBHTE9CICdvcHFyKicpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcg QU5EIGYgR0xPQiAnbG1ub3AqJykKQEAgLTg4MzQsNyArODgzNCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQogICAg ICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQg YSE9MzIpCi0gICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIDEwMDAwMDA8YgogICAgICAgICAgT1IgKGYgR0xPQiAnP3BxcnMqJyBB TkQgZiBHTE9CICdvcHFyKicpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xP QiAnbG1ub3AqJykKQEAgLTg4NTQsNyArODg1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFIGI9MTAwMQogICAgICAgICAgT1IgYj0xNjgKICAgICAgICAgIE9SIChmIEdMT0Ig Jz9pamtsKicgQU5EIGYgR0xPQiAnaGlqayonKQotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5E IGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMjM2LjE+CkBAIC04ODcwLDcgKzg4NzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSBiPTEwMDEKICAgICAgICAgIE9SIGI9MTY4CiAgICAgICAgICBPUiAoZiBH TE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hpamsqJykKLSAgICAgICAgIE9SIChkPj04OS4w IEFORCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQg ZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjIzNi4yPgpAQCAtODk1Nyw3ICs4OTU3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEh PTg4KQogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFO RCA0OSkgQU5EIGEhPTQ4KQpAQCAtODk3NCw3ICs4OTc0LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4 KQogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFORCA0 OSkgQU5EIGEhPTQ4KQpAQCAtOTAzMCw3ICs5MDMwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj04OAogICAgICAgICAgT1IgZj0naGlqa2xtbm9wJwogICAgICAgICAgT1Ig Yj04MDYKLSAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj04OAogICBdXSkKICAgICBlbmQsIHsKQEAgLTkwNTEsNyArOTA1MSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9ODgKICAgICAgICAgIE9SIGY9J2hp amtsbW5vcCcKICAgICAgICAgIE9SIGI9ODA2Ci0gICAgICAgICBPUiAoZD49NDYuMCBBTkQg ZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgKICAgXV0pCiAgICAgZW5k LCB7CkBAIC05MDY2LDEwICs5MDY2LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj04MTcKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT0zNgogICAgICAgICAgT1IgYj05NjAKLSAgICAgICAgIE9S IChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zNzQK ICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiBiPTc3MwpAQCAtOTA4OCwxMCArOTA4 OCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9ODE3Ci0gICAgICAg ICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 MzYKICAgICAgICAgIE9SIGI9OTYwCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9Mzc0CiAgICAgICAgICBPUiBiPTkzOAog ICAgICAgICAgT1IgYj03NzMKQEAgLTkxNzUsMTIgKzkxNzUsMTIgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj0zOTkKICAgICAgICAgIE9SIGI9MTAwNAogICAgICAgICAgT1Ig Yz0xNjAxNgotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTY3MQogICAgICAgICAgT1IgYT0yNQogICAgICAgICAgT1IgYT0z MAogICAgICAgICAgT1IgYT04Ci0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI0NS4x PgpAQCAtOTE5NywxMiArOTE5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTM5OQogICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiBjPTE2MDE2Ci0gICAgICAg ICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NjcxCiAgICAgICAgICBPUiBhPTI1CiAgICAgICAgICBPUiBhPTMwCiAgICAgICAgICBPUiBh PTgKLSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjQ1LjI+CkBAIC05MjIwLDcgKzky MjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTU5NAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAgICAgICBPUiBiPTg2MQot ICAgICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTk0OQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3N0dXZ3 KicpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKQEAg LTkyNDEsNyArOTI0MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NTk0CiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOSBBTkQgNDEpIEFORCBhIT00MCkKICAgICAgICAg IE9SIGI9ODYxCi0gICAgICAgICBPUiAoZD49OTAuMCBBTkQgZDw5MS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9OTQ5CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYg R0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdj ZGVmZyonKQpAQCAtOTM4Nyw3ICs5Mzg3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAgICAgICAgIE9SIGI9MzQ0Ci0gICAg ICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yNTEuMT4KQEAgLTk0MDQsNyArOTQwNCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9C ICdtbm9wcSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9 NjcpCiAgICAgICAgICBPUiBiPTM0NAotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuMjUxLjI+CkBAIC05NDU1LDcgKzk0NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTI4CiAgICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj0zNjMKLSAgICAg ICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig YT02MAogICAgICAgICAgT1IgYj04MAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBm IEdMT0IgJ3Z3eHl6KicpCkBAIC05NDc2LDcgKzk0NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBhPTI4CiAgICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj0zNjMK LSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT02MAogICAgICAgICAgT1IgYj04MAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2on IEFORCBmIEdMT0IgJ3Z3eHl6KicpCkBAIC05NDkzLDcgKzk0OTMsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwz NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjYwCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtOTUwNyw3ICs5NTA3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwotICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTY2MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTk2MDMsMTEgKzk2MDMs MTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj04NTAKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj05MjQKLSAg ICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1 NQotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yNTcuMT4KQEAgLTk2MjYsMTEgKzk2MjYs MTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj04NTAKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj05MjQKLSAg ICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1 NQotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yNTcuMj4KQEAgLTk2NDMsNyArOTY0Myw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDYu MCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05ODIKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDgxIEFORCA4MykgQU5EIGEhPTgyKQogICAgICAgICAg T1IgYj0zNzQKQEAgLTk2NTksNyArOTY1OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj05ODIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgxIEFO RCA4MykgQU5EIGEhPTgyKQogICAgICAgICAgT1IgYj0zNzQKQEAgLTk2NzcsNyArOTY3Nyw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg KChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBPUiBiPTgxNAot ICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjU5LjE+CkBAIC05NjkyLDcgKzk2 OTIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAgT1IgYj04 MTQKLSAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI1OS4yPgpAQCAtOTcwNiw3 ICs5NzA2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0ncXBvbm1s aycgQU5EIGYgR0xPQiAnbm9wcXIqJykKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05OTMKICAgXV0pCiAgICAgZW5kLCB7 CkBAIC05NzIxLDcgKzk3MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTEy LjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk5MwogICBdXSkK ICAgICBlbmQsIHsKQEAgLTk3NDMsNyArOTc0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9MjQyCiAgICAgICAgICBPUiBhPTU5CiAgICAgICAgICBPUiBiPTEwNDUKLSAg ICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjYxLjE+CkBAIC05NzY0LDcgKzk3NjQsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTI0MgogICAgICAgICAgT1IgYT01OQog ICAgICAgICAgT1IgYj0xMDQ1Ci0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI2MS4y PgpAQCAtOTc4Miw4ICs5NzgyLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz0z MDAzCiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNkZSonIEFORCBmIEdMT0IgJ2FiY2QqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQotICAgICAg ICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEu MCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBB TkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NzEgQU5EIDczKSBBTkQgYSE9NzIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtOTgwMiw4ICs5 ODAyLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz0zMDAzCiAgICAgICAgICBP UiAoZiBHTE9CICc/YmNkZSonIEFORCBmIEdMT0IgJ2FiY2QqJykKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQotICAgICAgICAgT1IgKGQ+PTEuMCBB TkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwz NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzEgQU5EIDczKSBBTkQg YSE9NzIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtOTgyNiw3ICs5ODI2LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj0xMDIzCiAgICAgICAgICBPUiBhPTEwMAogICAgICAg ICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAo ZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3 LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi4yNjMuMT4KQEAgLTk4NDgsNyArOTg0OCw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTAyMwogICAgICAgICAgT1IgYT0xMDAKICAgICAg ICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAgICAgT1Ig KGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05 Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMjYzLjI+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1IgYT03OQotICAgICAgICAg T1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ2 MgogICBdXSkKICAgICBlbmQsIHsKQEAgLTk5MTEsNyArOTkxMSw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTMg QU5EIDk1KSBBTkQgYSE9OTQpCiAgICAgICAgICBPUiBhPTc5Ci0gICAgICAgICBPUiAoZD49 MzkuMCBBTkQgZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5LjAg QU5EIGQ8NDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDYyCiAgIF1d KQogICAgIGVuZCwgewpAQCAtOTkyNSw3ICs5OTI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE0NgogICAgICAgICAgT1IgMTAwMDAwMDxiCiAg ICAgICAgICBPUiBiPTk5CkBAIC05OTQyLDcgKzk5NDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTQ2CiAgICAgICAgICBPUiAxMDAwMDAwPGIK ICAgICAgICAgIE9SIGI9OTkKQEAgLTk5NjIsMTQgKzk5NjIsMTQgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgV0hFUkUgYj05MzUKICAgICAgICAgIE9SIGI9NDczCiAgICAgICAgICBPUiBh PTI4Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDYyIEFORCA2NCkgQU5EIGEhPTYzKQogICAgICAgICAg T1IgYT02MgogICAgICAgICAgT1IgYj02MTkKICAgICAgICAgIE9SIGE9ODIKLSAgICAgICAg IE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0x NDAxNAotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjY3LjE+CkBAIC05OTg1 LDE0ICs5OTg1LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9OTM1CiAgICAg ICAgICBPUiBiPTQ3MwogICAgICAgICAgT1IgYT0yOAotICAgICAgICAgT1IgKGQ+PTIwLjAg QU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBk PDIxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MiBB TkQgNjQpIEFORCBhIT02MykKICAgICAgICAgIE9SIGE9NjIKICAgICAgICAgIE9SIGI9NjE5 CiAgICAgICAgICBPUiBhPTgyCi0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MTQwMTQKLSAgICAgICAgIE9SIChkPj00My4w IEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQg ZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjI2Ny4yPgpAQCAtMTAxNjYsNyArMTAxNjYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBHTE9CICdiY2RlZion KQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTc1CiAgICAgICAgICBPUiBiPTk2MAogICAgICAgICAgT1IgKGc9J3RzcnFw b24nIEFORCBmIEdMT0IgJ3l6YWJjKicpCkBAIC0xMDE4OCw3ICsxMDE4OCw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2Jj ZGVmKicpCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9NzUKICAgICAgICAgIE9SIGI9OTYwCiAgICAgICAgICBPUiAoZz0n dHNycXBvbicgQU5EIGYgR0xPQiAneXphYmMqJykKQEAgLTEwMjQxLDggKzEwMjQxLDggQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMwogICAgICAgICAgT1IgYj03NDgKICAg ICAgICAgIE9SIGI9NDA3Ci0gICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTk3OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTUgQU5EIDE3KSBB TkQgYSE9MTYpCiAgIF1dKQpAQCAtMTAyNjEsOCArMTAyNjEsOCBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBPUiBiPTc0OAogICAgICAgICAgT1IgYj00 MDcKLSAgICAgICAgIE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 OTc5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNSBBTkQgMTcpIEFORCBhIT0xNikKICAg XV0pCkBAIC0xMDM0OCw3ICsxMDM0OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9OTc5CiAgICAgICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYg QU5EIDU4KSBBTkQgYSE9NTcpCi0gICAgICAgICBPUiAoZD49NDEuMCBBTkQgZDw0Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTM5CiAgICAgICAgICBPUiBhPTg3CiAgIF1d KQpAQCAtMTAzNjgsNyArMTAzNjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTk3OQogICAgICAgICAgT1IgYj0yNzUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFO RCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTUzOQogICAgICAgICAgT1IgYT04NwogICBdXSkK QEAgLTEwNDI3LDcgKzEwNDI3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBhIT04MSkK ICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQotICAg ICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA0OSBBTkQgNTEpIEFORCBhIT01MCkKICAgICAgICAgIE9SIChnPSdp aGdmZWRjJyBBTkQgZiBHTE9CICdiY2RlZionKQogICBdXSkKQEAgLTEwNDQ0LDcgKzEwNDQ0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBhIT04MSkKICAgICAgICAgIE9SIChmIEdM T0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQotICAgICAgICAgT1IgKGQ+PTQyLjAg QU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBk PDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0OSBB TkQgNTEpIEFORCBhIT01MCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9C ICdiY2RlZionKQogICBdXSkKQEAgLTEwNTI5LDE1ICsxMDUyOSwxNSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzIyCi0gICAgICAgICBPUiAoZD49 MTkuMCBBTkQgZDwyMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAg QU5EIGQ8MjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdmZWRjYmF6 JyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBm IEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBiPTQzMgogICAgICAgICAgT1IgYj01NQog ICAgICAgICAgT1IgYT01MwotICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hp amsqJykKICAgICAgICAgIE9SIGI9MjUKICAgXV0pCkBAIC0xMDU1MiwxNSArMTA1NTIsMTUg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zOC4w IEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTMyMgotICAg ICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIChnPSdv bm1sa2ppJyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgYj00MzIKICAgICAg ICAgIE9SIGI9NTUKICAgICAgICAgIE9SIGE9NTMKLSAgICAgICAgIE9SIChkPj03NC4wIEFO RCBkPDc1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3 NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2lqa2wqJyBB TkQgZiBHTE9CICdoaWprKicpCiAgICAgICAgICBPUiBiPTI1CiAgIF1dKQpAQCAtMTA2MTcs NyArMTA2MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9CICc/cHFy cyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU5IEFO RCA2MSkgQU5EIGEhPTYwKQogICAgICAgICAgT1IgYj03NTEKLSAgICAgICAgIE9SIChkPj03 My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBB TkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjI4NC4xPgpAQCAtMTA2MzgsNyArMTA2MzgsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIq JykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU5IEFORCA2MSkgQU5EIGEhPTYwKQogICAg ICAgICAgT1IgYj03NTEKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4NC4y PgpAQCAtMTA2NTEsNyArMTA2NTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9OTI3CiAgICAgICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgYj0z OTYKQEAgLTEwNjczLDcgKzEwNjczLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgIFdIRVJFIChkPj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTkyNwogICAgICAgICAgT1IgYj0yNzUKICAgICAgICAgIE9SIGI9 Mzk2CkBAIC0xMDY5OCwxNCArMTA2OTgsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTcx OAogICAgICAgICAgT1IgZj0ndnd4eXphYmNkJwotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5E IGQ8OTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYg R0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz91dnd4KicgQU5EIGYgR0xP QiAndHV2dyonKQotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAg ICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICAgICAgICAg T1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBHTE9CICdqa2xtKicpCi0gICAgICAgICBPUiAo ZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEx LjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi4yODYuMT4KQEAgLTEwNzIxLDE0ICsxMDcyMSwxNCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbG1u b3AqJykKICAgICAgICAgIE9SIGI9NzE4CiAgICAgICAgICBPUiBmPSd2d3h5emFiY2QnCi0g ICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGYg R0xPQiAnP3V2d3gqJyBBTkQgZiBHTE9CICd0dXZ3KicpCi0gICAgICAgICBPUiAoZD49MjIu MCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5E IGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY2 IEFORCA2OCkgQU5EIGEhPTY3KQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdM T0IgJ2prbG1uKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0Ig J2prbG0qJykKLSAgICAgICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4Ni4yPgpAQCAt MTA3NDYsNyArMTA3NDYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTg2MQog ICAgICAgICAgT1IgYj0xMDgxCiAgICAgICAgICBPUiBiPTU3MgotICAgICAgICAgT1IgKGQ+ PTQuMCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFO RCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTEKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDk5IEFORCAxMDEpIEFORCBhIT0xMDApCiAgICAgICAgICBPUiBh PTg5CkBAIC0xMDc2OCw3ICsxMDc2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9ODYxCiAgICAgICAgICBPUiBiPTEwODEKICAgICAgICAgIE9SIGI9NTcyCi0gICAgICAg ICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xMQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKICAgICAg ICAgIE9SIGE9ODkKQEAgLTEwNzg4LDkgKzEwNzg4LDkgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYj0yMzEKICAgICAgICAgIE9SIGI9Mzg4CiAgICAgICAgICBPUiBkPDAuMAot ICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTEwNDUKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4OC4xPgpA QCAtMTA4MDYsOSArMTA4MDYsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTIz MQogICAgICAgICAgT1IgYj0zODgKICAgICAgICAgIE9SIGQ8MC4wCi0gICAgICAgICBPUiAo ZD49MzkuMCBBTkQgZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5 LjAgQU5EIGQ8NDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA0NQot ICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjg4LjI+CkBAIC0xMDgyMiw3ICsx MDgyMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj01MjgKLSAgICAg ICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj03NjIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMDgzNyw3ICsxMDgzNyw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj01My4w IEFORCBkPDU0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQg ZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NjIKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0xMDg4MSwxMSArMTA4ODEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQotICAg ICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAg IE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00 LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjI5MS4xPgpAQCAtMTA4OTgsMTEgKzEwODk4LDExIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01Mi4w IEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NzYuMCBBTkQg ZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NiBBTkQgOTgp IEFORCBhIT05NykKLSAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yOTEuMj4KQEAgLTEwOTE5LDcg KzEwOTE5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz02MDA2CiAgICAgICAg ICBPUiBiPTIzMQogICAgICAgICAgT1IgYj0yMTIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFO RCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwz Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBm IEdMT0IgJ2tsbW5vKicpCiAgICAgICAgICBPUiBjPTMwMDMwCiAgICAgICAgICBPUiAoZz0n b25tbGtqaScgQU5EIGYgR0xPQiAnYWJjZGUqJykKQEAgLTEwOTM5LDcgKzEwOTM5LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz02MDA2CiAgICAgICAgICBPUiBiPTIzMQog ICAgICAgICAgT1IgYj0yMTIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2tsbW5v KicpCiAgICAgICAgICBPUiBjPTMwMDMwCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5E IGYgR0xPQiAnYWJjZGUqJykKQEAgLTExMDMxLDExICsxMTAzMSwxMSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdtbGtqaWhnJyBB TkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgYT0zCi0gICAgICAgICBPUiAoZD49 NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAg QU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9v cHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQogICAgICAgICAgT1IgYj00OTgKICAgICAgICAg IE9SIGE9MTAwCi0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAg ICAgICAgT1IgYT02OQogICBdXSkKQEAgLTExMDUyLDExICsxMTA1MiwxMSBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdtbGtqaWhn JyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgYT0zCi0gICAgICAgICBPUiAo ZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYz LjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0Ig Jz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQogICAgICAgICAgT1IgYj00OTgKICAgICAg ICAgIE9SIGE9MTAwCi0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdyc3R1dionKQog ICAgICAgICAgT1IgYT02OQogICBdXSkKQEAgLTExMDczLDcgKzExMDczLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0naWhnZmVk YycgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9MzAwCi0gICAgICAgICBP UiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 LjAgQU5EIGQ8OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OAogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQgYSE9NTYpCiAgICAgICAgICBP UiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZGVmZ2gqJykKQEAgLTExMDgxLDcgKzExMDgx LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgZj0nZ2hpamts bW5vJwotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjk2LjE+CkBAIC0xMTA5 Niw3ICsxMTA5Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAg ICBPUiBiPTMwMAotICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NTgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU1IEFORCA1Nykg QU5EIGEhPTU2KQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2RlZmdo KicpCkBAIC0xMTEwNCw3ICsxMTEwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9MjM0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkK ICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKLSAgICAgICAgIE9SIChkPj0yNi4wIEFORCBk PDI3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjI5Ni4yPgpAQCAtMTExMjUsNyArMTExMjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49NDUuMCBB TkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8 NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9naGlqKicg QU5EIGYgR0xPQiAnZmdoaSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1 KSBBTkQgYSE9NTQpCiAgIF1dKQpAQCAtMTExNDgsNyArMTExNDgsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49 NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAg QU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9n aGlqKicgQU5EIGYgR0xPQiAnZmdoaSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMg QU5EIDU1KSBBTkQgYSE9NTQpCiAgIF1dKQpAQCAtMTEzOTksNyArMTEzOTksNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8 NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQg ZiBHTE9CICd4eXphYionKQogICAgICAgICAgT1IgYT02OAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCkBAIC0xMTQxNSw3ICsxMTQxNSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Ny4w IEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDcuMCBBTkQg ZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFO RCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBhPTY4CiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAxNCBBTkQgMTYpIEFORCBhIT0xNSkKQEAgLTExNDMxLDcgKzExNDMxLDcgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEw LjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMC4wIEFO RCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicg QU5EIGYgR0xPQiAnbG1ub3AqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMTQ0NSw3ICsx MTQ0NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J2xramloZ2YnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MTE0NjIsMTAgKzExNDYyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9MzIK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2KQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gOTIgQU5EIDk0KSBBTkQgYSE9OTMpCi0gICAgICAgICBPUiAo ZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2 LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9NzAwNwog ICAgICAgICAgT1IgYj05NjgKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMw Ni4xPgpAQCAtMTE0ODEsMTAgKzExNDgxLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdI RVJFIGE9MzIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2 KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTIgQU5EIDk0KSBBTkQgYSE9OTMpCi0gICAg ICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGM9NzAwNwogICAgICAgICAgT1IgYj05NjgKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBk PDE5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjMwNi4yPgpAQCAtMTE1NjcsMTIgKzExNTY3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NwogICAgICAgICAgT1IgYj0xMzUKICAg ICAgICAgIE9SIGY9J2JjZGVmZ2hpaicKICAgICAgICAgIE9SIGI9OTI0Ci0gICAgICAgICBP UiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4zMDkuMT4KQEAgLTExNTg1LDEyICsxMTU4NSwxMiBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYwLjAg QU5EIGQ8NjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAgICAg ICAgIE9SIGI9MTM1CiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiBi PTkyNAotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzA5LjI+CkBAIC0xMTYz Miw3ICsxMTYzMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJF VFdFRU4gMzQgQU5EIDM2KSBBTkQgYSE9MzUpCi0gICAgICAgICBPUiAoZD49NTAuMCBBTkQg ZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM1IEFORCAz NykgQU5EIGEhPTM2KQogICAgICAgICAgT1IgYT00OQogICAgICAgICAgT1IgYT0zOApAQCAt MTE2NTUsNyArMTE2NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDM0IEFORCAzNikgQU5EIGEhPTM1KQotICAgICAgICAgT1IgKGQ+PTUwLjAg QU5EIGQ8NTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MC4wIEFORCBk PDUxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNSBB TkQgMzcpIEFORCBhIT0zNikKICAgICAgICAgIE9SIGE9NDkKICAgICAgICAgIE9SIGE9MzgK QEAgLTExNzYxLDggKzExNzYxLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAgICAgICAgICBPUiBmPSdsbW5vcHFy c3QnCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAg ICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI8MAogICAg ICAgICAgT1IgYj0yMzEKICAgICAgICAgIE9SIGE9MTQKQEAgLTExNzgyLDggKzExNzgyLDgg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBB TkQgYSE9MTEpCiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChkPj02NC4wIEFO RCBkPDY1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI8MAogICAgICAgICAgT1IgYj0yMzEKICAgICAg ICAgIE9SIGE9MTQKQEAgLTExODAxLDEzICsxMTgwMSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9OTA1CiAgICAgICAgICBPUiBm PSdoaWprbG1ub3AnCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5P VCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAg ICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChm IEdMT0IgJz9tbm9wKicgQU5EIGYgR0xPQiAnbG1ubyonKQogICAgICAgICAgT1IgYj04MTcK LSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkK ICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMxNS4xPgpAQCAtMTE4MjIsMTMg KzExODIyLDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgYj05MDUKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKLSAgICAgICAgIE9S IChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAg QU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFO RCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycg QU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBH TE9CICd3eHl6YSonKQogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9C ICdsbW5vKicpCiAgICAgICAgICBPUiBiPTgxNwotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5E IGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMzE1LjI+CkBAIC0xMTg0Myw3ICsxMTg0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J2hnZmVkY2InIEFORCBm IEdMT0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBiPTMxMQotICAgICAgICAgT1IgKGQ+PTYx LjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFO RCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ4CiAgICAgICAg ICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQpAQCAtMTE4NjYsNyArMTE4NjYsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChn PSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj0zMTEKLSAg ICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYT00OAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2Kicp CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAndnd4eXoqJykKQEAgLTEx ODg3LDE0ICsxMTg4NywxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTA3MAogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3Z3 eHl6KicpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT0yMgotICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGY9J3R1dnd4eXphYicKICAgICAgICAgIE9SIGE9NzIKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQpAQCAtMTE5MTAsMTQgKzExOTEw LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDcw CiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAndnd4eXoqJykKLSAgICAg ICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y Mi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIyCi0g ICAgICAgICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAg ICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0n dHV2d3h5emFiJwogICAgICAgICAgT1IgYT03MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTMgQU5EIDU1KSBBTkQgYSE9NTQpCkBAIC0xMTkzMyw3ICsxMTkzMyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04LjAgQU5EIGQ8 OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTguMCBBTkQgZDw5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAn cXJzdHUqJykKICAgICAgICAgIE9SIGE9MjEKICAgICAgICAgIE9SIGI9MTAyNgpAQCAtMTE5 NTEsNyArMTE5NTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBhPTIxCiAg ICAgICAgICBPUiBiPTEwMjYKQEAgLTEyMDA3LDcgKzEyMDA3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTQyCiAgICAgICAgICBPUiBiPTYzOAogICBd XSkKQEAgLTEyMDIyLDcgKzEyMDIyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NTQyCiAgICAgICAgICBPUiBiPTYzOAogICBdXSkKQEAgLTEyMDQxLDcg KzEyMDQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xMDcwCiAgICAgICAg ICBPUiBhPTkxCiAgICAgICAgICBPUiBiPTEwMTUKLSAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwx My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBm IEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MSBBTkQgOTMpIEFO RCBhIT05MikKICAgXV0pCkBAIC0xMjA2MCw3ICsxMjA2MCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGI9MTA3MAogICAgICAgICAgT1IgYT05MQogICAgICAgICAgT1IgYj0x MDE1Ci0gICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gOTEgQU5EIDkzKSBBTkQgYSE9OTIpCiAgIF1dKQpAQCAtMTIxOTYs NyArMTIxOTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTQzMgogICAgICAg ICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBPUiBhPTU4Ci0gICAgICAgICBPUiAoZD49NDUu MCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5E IGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzcKICAgICAgICAg IE9SIGI9NjA1CiAgIF1dKQpAQCAtMTIyMTgsNyArMTIyMTgsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBiPTQzMgogICAgICAgICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBP UiBhPTU4Ci0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NzcKICAgICAgICAgIE9SIGI9NjA1CiAgIF1dKQpAQCAtMTIyMzMs NyArMTIyMzMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NTgzCiAgICAgICAgICBPUiBhPTYyCiAgIF1dKQpAQCAtMTIyNDgsNyArMTIyNDgsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg5LjAg QU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTgzCiAgICAg ICAgICBPUiBhPTYyCiAgIF1dKQpAQCAtMTIyNjUsMTEgKzEyMjY1LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4g ODQgQU5EIDg2KSBBTkQgYSE9ODUpCiAgICAgICAgICBPUiBmPSdwcXJzdHV2d3gnCi0gICAg ICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0y NzgKICAgICAgICAgIE9SIGE9MTAKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkK ICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAg ICAgT1IgZj0ndXZ3eHl6YWJjJwpAQCAtMTIyODcsMTEgKzEyMjg3LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4g ODQgQU5EIDg2KSBBTkQgYSE9ODUpCiAgICAgICAgICBPUiBmPSdwcXJzdHV2d3gnCi0gICAg ICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0y NzgKICAgICAgICAgIE9SIGE9MTAKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkK ICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAg ICAgT1IgZj0ndXZ3eHl6YWJjJwpAQCAtMTIzNTgsNyArMTIzNTgsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAg ICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGE9NgotICAgICAgICAgT1Ig KGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x Ny4wIEFORCBkPDE4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2Mgog ICBdXSkKICAgICBlbmQsIHsKQEAgLTEyMzc3LDcgKzEyMzc3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCiAgICAg ICAgICBPUiBmPSdhYmNkZWZnaGknCiAgICAgICAgICBPUiBhPTYKLSAgICAgICAgIE9SIChk Pj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTcu MCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NjIKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0xMjQxOSw3ICsxMjQxOSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03Mi4wIEFORCBkPDczLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02OTMKICAgICAgICAgIE9SIChnPSdoZ2Zl ZGNiJyBBTkQgZiBHTE9CICdpamtsbSonKQogICAgICAgICAgT1IgYj05NjgKQEAgLTEyNDM5 LDcgKzEyNDM5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTY5MwogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2lqa2xtKicp CiAgICAgICAgICBPUiBiPTk2OApAQCAtMTI0NjEsNyArMTI0NjEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MzIwMzIKICAgICAg ICAgIE9SIGI9ODE0Ci0gICAgICAgICBPUiAoZD49OTAuMCBBTkQgZDw5MS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBhPTc4CiAgICAgICAgICBP UiBhPTM3CkBAIC0xMjQ3OSw3ICsxMjQ3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMjAzMgogICAgICAgICAgT1IgYj04MTQK LSAgICAgICAgIE9SIChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTAuMCBBTkQgZDw5MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj04MTQKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGE9MzcKQEAgLTEy NDk4LDcgKzEyNDk4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0xOTAKICAg ICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAg T1IgYj05MjQKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj03NTkKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBH TE9CICdiY2RlZionKQogICBdXSkKQEAgLTEyNTE2LDcgKzEyNTE2LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgV0hFUkUgYj0xOTAKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQg ZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChkPj00 MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBB TkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NTkKICAgICAg ICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICBdXSkKQEAgLTEy NTgzLDcgKzEyNTgzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3NycXBv bm0nIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5E IGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIgQU5EIDQpIEFO RCBhIT0zKQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzM1LjE+CkBAIC0x MjYwNCw3ICsxMjYwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdzcnFw b25tJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFO RCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyIEFORCA0KSBB TkQgYSE9MykKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMzNS4yPgpAQCAt MTI2MTcsNyArMTI2MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDEzIEFORCAxNSkgQU5EIGEhPTE0KQogICAgICAgICAgT1Ig Yj02MzgKICAgICAgICAgIE9SIGI9NDk1CkBAIC0xMjYzNyw3ICsxMjYzNyw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03MC4wIEFO RCBkPDcxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzAuMCBBTkQgZDw3 MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTMgQU5E IDE1KSBBTkQgYSE9MTQpCiAgICAgICAgICBPUiBiPTYzOAogICAgICAgICAgT1IgYj00OTUK QEAgLTEyNjU4LDkgKzEyNjU4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBjPTgwMDgKLSAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MzAwCiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykK ICAgICAgICAgIE9SIGE9NDEKQEAgLTEyNjgwLDkgKzEyNjgwLDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCiAgICAgICBXSEVSRSBjPTgwMDgKLSAgICAgICAgIE9SIChkPj0zOS4wIEFORCBk PDQwLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAx LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MzAwCiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5E IGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGE9NDEKQEAgLTEyNzA5LDcgKzEyNzA5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj00ODQKICAgICAgICAgIE9SIGI9 MTkwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFORCBhIT05NikKLSAg ICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBiPTEw MjMKICAgXV0pCkBAIC0xMjczMiw3ICsxMjczMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9NDg0CiAgICAgICAgICBPUiBiPTE5MAogICAgICAgICAgT1IgKChhIEJFVFdF RU4gOTUgQU5EIDk3KSBBTkQgYSE9OTYpCi0gICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9C ICdqa2xtbionKQogICAgICAgICAgT1IgYj0xMDIzCiAgIF1dKQpAQCAtMTI3NTAsNyArMTI3 NTAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0naWhnZmVkYycgQU5EIGYg R0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGE9MzQKICAgICAgICAgIE9SIGY9J3JzdHV2 d3h5eicKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj03MjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMjc2Nyw3ICsxMjc2 Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdpaGdmZWRjJyBBTkQgZiBH TE9CICdlZmdoaSonKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgZj0ncnN0dXZ3 eHl6JwotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTcyOQogICBdXSkKICAgICBlbmQsIHsKQEAgLTEyNzgxLDcgKzEyNzgx LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0z Ny4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMDQK ICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAg ICAgT1IgZyBJUyBOVUxMCkBAIC0xMjc5Nyw3ICsxMjc5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0zNy4wIEFORCBkPDM4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiAoZz0ncXBv bm1saycgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIGcgSVMgTlVMTApAQCAt MTI4MTUsMTEgKzEyODE1LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYT03MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzYgQU5E IDM4KSBBTkQgYSE9MzcpCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUy KQogICAgICAgICAgT1IgYT05Ci0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTQ0CiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBPUiAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnYWJjZGUqJykKQEAgLTEyODM4LDExICsxMjgzOCwxMSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9 NzMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM2IEFORCAzOCkgQU5EIGEhPTM3KQotICAg ICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA1MSBBTkQgNTMpIEFORCBhIT01MikKICAgICAgICAgIE9SIGE9OQot ICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NAog ICAgICAgICAgT1IgYT0yMwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0Ig J2FiY2RlKicpCkBAIC0xMjg2OCw3ICsxMjg2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1Ig YT0xMwogICAgICAgICAgT1IgYT0xNQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTM2CiAgIF1dKQogICAgIGVuZCwgewpA QCAtMTI4OTEsNyArMTI4OTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAgICAgIE9SIGE9MTMKICAgICAg ICAgIE9SIGE9MTUKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT0zNgogICBdXSkKICAgICBlbmQsIHsKQEAgLTEyOTA3LDEw ICsxMjkwNywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9OTM4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NyBBTkQgNTkpIEFO RCBhIT01OCkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTI0NQotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzQzLjE+ CkBAIC0xMjkyNSwxMCArMTI5MjUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTkzOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTcgQU5EIDU5KSBBTkQgYSE9NTgpCi0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0yNDUKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBk PDM2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjM0My4yPgpAQCAtMTI5NDgsOSArMTI5NDgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDk1IEFORCA5NykgQU5EIGEhPTk2KQogICAgICAgICAgT1IgYz0y NTAyNQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0NC4xPgpAQCAtMTI5NzAsOSArMTI5NzAsOSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFO RCBhIT0zMSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk1IEFORCA5NykgQU5EIGEhPTk2 KQogICAgICAgICAgT1IgYz0yNTAyNQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0NC4yPgpAQCAt MTMwMjcsNyArMTMwMjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA4NSBBTkQgODcpIEFORCBhIT04NikKLSAgICAgICAgIE9SIChk Pj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMu MCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J25tbGtq aWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTMwNDks NyArMTMwNDksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAy MCBBTkQgMjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA4NSBBTkQgODcpIEFORCBhIT04NikKLSAgICAgICAgIE9SIChkPj03My4w IEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQg ZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFO RCBmIEdMT0IgJ2JjZGVmKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTMxMDAsMTIgKzEz MTAwLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj05ODIKLSAgICAg ICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0yMzQKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAg IE9SIGY9J3Fyc3R1dnd4eScKLSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIGI9NDQwCiAgICAg ICAgICBPUiBiPTQ1NApAQCAtMTMxMjIsMTIgKzEzMTIyLDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwogICAgICAgV0hFUkUgYj05ODIKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SIGM9MTUw MTUKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGY9J3Fyc3R1dnd4eScKLSAgICAg ICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj04MTQKICAgICAgICAgIE9SIGI9NDQwCiAgICAgICAgICBPUiBiPTQ1NApAQCAtMTMxNDMs MTIgKzEzMTQzLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz03MDA3CiAgICAgICAgICBPUiBiPTQyOQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MjUgQU5EIDI3KSBBTkQgYSE9MjYpCiAgICAgICAgICBPUiBiPTIzMQotICAgICAgICAgT1Ig KGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y Ni4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIyMDIy CiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMTMxNjMsMTIgKzEzMTYz LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz03MDA3 CiAgICAgICAgICBPUiBiPTQyOQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjUgQU5EIDI3 KSBBTkQgYSE9MjYpCiAgICAgICAgICBPUiBiPTIzMQotICAgICAgICAgT1IgKGQ+PTI2LjAg QU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBk PDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIyMDIyCiAgICAgICAg ICBPUiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMTMxODQsNyArMTMxODQsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MTcwMTcKLSAgICAgICAgIE9SIChkPj02 Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjIuMCBB TkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g ODggQU5EIDkwKSBBTkQgYSE9ODkpCiAgICAgICAgICBPUiBiPTc4NAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCkBAIC0xMzIwNCw3ICsxMzIwNCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0xNzAxNwotICAgICAgICAg T1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA4OCBBTkQgOTApIEFORCBhIT04OSkKICAgICAgICAgIE9SIGI9Nzg0CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykKQEAgLTEzMjU4LDcg KzEzMjU4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xNTQKICAgICAgICAg IE9SIGE9MzAKICAgICAgICAgIE9SIGM9MzAwMwotICAgICAgICAgT1IgKGQ+PTg4LjAgQU5E IGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/eXphYionIEFO RCBmIEdMT0IgJ3h5emEqJykKICAgICAgICAgIE9SIGI9NTY0CiAgICAgICAgICBPUiBiPTU1 CkBAIC0xMzI4MCw3ICsxMzI4MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 MTU0CiAgICAgICAgICBPUiBhPTMwCiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9S IChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xP QiAnP3l6YWIqJyBBTkQgZiBHTE9CICd4eXphKicpCiAgICAgICAgICBPUiBiPTU2NAogICAg ICAgICAgT1IgYj01NQpAQCAtMTMyOTksNyArMTMyOTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NTIKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDY2IEFORCA2OCkgQU5EIGEhPTY3KQotICAgICAgICAgT1IgKGQ+PTU0LjAg QU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFORCBk PDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuMzUzLjE+CkBAIC0xMzMxNCw3ICsxMzMxNCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT01MgogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCi0gICAgICAgICBPUiAoZD49 NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAg QU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4zNTMuMj4KQEAgLTEzMzU1LDE0ICsxMzM1NSwxNCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzMuMCBB TkQgZDw3NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8 NzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjEwMjEKICAgICAgICAg IE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgZj0n emFiY2RlZmdoJwogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVm KicpCiAgICAgICAgICBPUiBiPTc4MQogICAgICAgICAgT1IgYT02NAotICAgICAgICAgT1Ig KGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x MS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMzU1LjE+CkBAIC0xMzM3NSwxNCArMTMzNzUsMTQgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTcz LjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03My4wIEFO RCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIxMDIxCiAgICAg ICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnbm9wcXIqJykKICAgICAgICAgIE9S IGY9J3phYmNkZWZnaCcKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdi Y2RlZionKQogICAgICAgICAgT1IgYj03ODEKICAgICAgICAgIE9SIGE9NjQKLSAgICAgICAg IE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM1NS4yPgpAQCAtMTMzOTYsNyArMTMzOTYsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdsa2ppaGdmJyBBTkQgZiBH TE9CICdwcXJzdConKQotICAgICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTM0CiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5E IGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9C ICdrbG1ubyonKQpAQCAtMTM0MTcsNyArMTM0MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQotICAgICAg ICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTM0CiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnaWprbG0qJykKICAg ICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdrbG1ubyonKQpAQCAtMTM0NDAs NyArMTM0NDAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0ncXBvbm1saycg QU5EIGYgR0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0KicgQU5E IGYgR0xPQiAncHFycyonKQogICAgICAgICAgT1IgYT00NQotICAgICAgICAgT1IgKGQ+PTgx LjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFO RCBkPDgyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuMzU3LjE+CkBAIC0xMzQ1Niw3ICsxMzQ1Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQog ICAgICAgICAgT1IgKGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAg ICAgICBPUiBhPTQ1Ci0gICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zNTcuMj4K QEAgLTEzNDY5LDcgKzEzNDY5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAg IE9SIGI9MTY1CiAgICAgICAgICBPUiBiPTgzNgpAQCAtMTM0ODUsNyArMTM0ODUsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTMu MCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUzLjAgQU5E IGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdubWxramloJyBB TkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgYj0xNjUKICAgICAgICAgIE9SIGI9 ODM2CkBAIC0xMzUzNSw5ICsxMzUzNSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj00NDAKICAgICAgICAgIE9SIGE9MTkKLSAgICAg ICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yz0yMjAyMgotICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTkyCiAgICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGI9 NjA4CkBAIC0xMzU1NSw5ICsxMzU1NSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00NDAKICAgICAgICAgIE9SIGE9MTkKLSAgICAg ICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yz0yMjAyMgotICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTkyCiAgICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGI9 NjA4CkBAIC0xMzU3Nyw3ICsxMzU3Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9ODgKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3eHl6YSonKQog ICAgICAgICAgT1IgYz0yMzAyMwotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU2CiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAxMyBBTkQgMTUpIEFORCBhIT0xNCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9yc3R1Kicg QU5EIGYgR0xPQiAncXJzdConKQpAQCAtMTM1OTksNyArMTM1OTksNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTg4CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYg R0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj02 Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBB TkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01NgogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTMgQU5EIDE1KSBBTkQgYSE9MTQpCiAgICAgICAgICBPUiAo ZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKQEAgLTEzNjE3LDcgKzEzNjE3 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05 Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykKICAgICAgICAgIE9SIGE9NzQKICAgICAgICAg IE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd1dnd4eSonKQpAQCAtMTM2MzQsNyArMTM2 MzQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVS RSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQogICAgICAgICAgT1IgYT03NAogICAgICAg ICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5KicpCkBAIC0xMzc4OCw3ICsx Mzc4OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGYgR0xPQiAnP2pr bG0qJyBBTkQgZiBHTE9CICdpamtsKicpCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3 OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTU3CiAgICAgICAgICBPUiBiPTEw MjYKICAgXV0pCkBAIC0xMzgwNCw3ICsxMzgwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgKGYgR0xPQiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCi0gICAg ICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTU3CiAgICAgICAgICBPUiBiPTEwMjYKICAgXV0pCkBAIC0xMzk3Niw3ICsxMzk3Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9NjMKICAgICAgICAgIE9SIGE9NjkK ICAgICAgICAgIE9SIGI9MzMzCi0gICAgICAgICBPUiAoZD49Ni4wIEFORCBkPDcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0xMzUKICAgICAgICAgIE9SIGI9MjUKICAgICAgICAg IE9SIGI9MTAzNwpAQCAtMTM5OTgsNyArMTM5OTgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICBXSEVSRSBhPTYzCiAgICAgICAgICBPUiBhPTY5CiAgICAgICAgICBPUiBiPTMzMwotICAg ICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49Ni4wIEFORCBkPDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MTM1CiAgICAgICAgICBPUiBiPTI1CiAgICAgICAgICBPUiBiPTEwMzcKQEAgLTE0MDE4LDcg KzE0MDE4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0nZWRjYmF6 eScgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMTMKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQxKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTMgQU5EIDU1KSBBTkQgYSE9NTQpCkBAIC0xNDAzNiw3ICsxNDAzNiw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3d4eXph KicpCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFO RCBhIT00MSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0 KQpAQCAtMTQwNTQsNyArMTQwNTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9MTAyNgotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzc0LjE+CkBA IC0xNDA2OCw3ICsxNDA2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg Yj0xMDI2Ci0gICAgICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zNzQuMj4KQEAgLTE0 MDkxLDcgKzE0MDkxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0xMAogICAg ICAgICAgT1IgZj0nbW5vcHFyc3R1JwogICAgICAgICAgT1IgYj05NDYKLSAgICAgICAgIE9S IChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsK ICAgICAgICAgLS0gPHdoZXJlNy0yLjM3NS4xPgpAQCAtMTQxMTQsNyArMTQxMTQsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTEwCiAgICAgICAgICBPUiBmPSdtbm9wcXJz dHUnCiAgICAgICAgICBPUiBiPTk0NgotICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05NS4wIEFORCBkPDk2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuMzc1LjI+CkBAIC0xNDEyNyw3ICsxNDEyNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYz0yMzAyMwogICAgICAgICAgT1IgYj00NjIKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDE3IEFORCAxOSkgQU5EIGEhPTE4KQpAQCAtMTQxNDMsNyAr MTQxNDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9 MjMwMjMKICAgICAgICAgIE9SIGI9NDYyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBB TkQgMTkpIEFORCBhIT0xOCkKQEAgLTE0MTY1LDEwICsxNDE2NSwxMCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTE4CiAgICAgICAgICBPUiBjPTI0MDI0CiAgICAgICAgICBP UiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj0z OC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBB TkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2on IEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBjPTE5MDE5Ci0gICAgICAgICBP UiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDQ0IEFORCA0NikgQU5EIGEhPTQ1KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0 MTg4LDEwICsxNDE4OCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTE4CiAg ICAgICAgICBPUiBjPTI0MDI0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xP QiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAg ICAgICAgICBPUiBjPTE5MDE5Ci0gICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0NikgQU5EIGEh PTQ1KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0MjA1LDkgKzE0MjA1LDkgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5E IGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIwCi0gICAgICAgICBPUiAo ZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0 LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTIxCiAg ICAgICAgICBPUiBhPTEwCiAgICAgICAgICBPUiBiPTc5MgpAQCAtMTQyMjMsOSArMTQyMjMs OSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTE1 LjAgQU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjAKLSAg ICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0xMjEKICAgICAgICAgIE9SIGE9MTAKICAgICAgICAgIE9SIGI9NzkyCkBAIC0xNDMw MywxMCArMTQzMDMsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIGE9 NDYKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM4MS4xPgpAQCAtMTQzMTks MTAgKzE0MzE5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAg ICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBhPTQ2 Ci0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zODEuMj4KQEAgLTE0MzM3LDcg KzE0MzM3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDk3IEFORCA5OSkgQU5EIGEhPTk4KQotICAgICAgICAgT1IgKGQ+PTE4 LjAgQU5EIGQ8MTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFO RCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNTYKICAgICAg ICAgIE9SIGI9MTQ2CiAgIF1dKQpAQCAtMTQzNTQsNyArMTQzNTQsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdpaGdmZWRjJyBB TkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTcgQU5EIDk5 KSBBTkQgYSE9OTgpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MTA1NgogICAgICAgICAgT1IgYj0xNDYKICAgXV0pCkBA IC0xNDM3NSw3ICsxNDM3NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MzYK ICAgICAgICAgIE9SIGI9NzM3CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMp IEFORCBhIT0yMikKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT03NQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0Mzk1LDcg KzE0Mzk1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0zNgogICAgICAgICAg T1IgYj03MzcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIy KQotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTc1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ0MTEsOCArMTQ0MTEsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9 OTAwOQogICAgICAgICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElT IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzE1CiAgICAgICAgICBPUiBiPTYxOQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkgQU5EIGEhPTk5KQpAQCAtMTQ0MzAsOCAr MTQ0MzAsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGM9OTAwOQogICAgICAgICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+PTk1LjAg QU5EIGQ8OTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBk PDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5Ni4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzE1CiAgICAgICAgICBPUiBiPTYx OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkgQU5EIGEhPTk5KQpAQCAt MTQ0NDcsNyArMTQ0NDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDExIEFORCAxMykgQU5EIGEhPTEyKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNzQgQU5EIDc2KSBBTkQgYSE9NzUpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAzOSBBTkQgNDEpIEFORCBhIT00MCkKQEAgLTE0NDU2LDcgKzE0NDU2LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdi Y2RlKicpCiAgICAgICAgICBPUiBiPTMwMAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjQg QU5EIDI2KSBBTkQgYSE9MjUpCi0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5NSkgQU5EIGEh PTk0KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0NDcwLDcgKzE0NDcwLDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTYxLjAgQU5E IGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02MS4wIEFORCBkPDYy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMSBBTkQg MTMpIEFORCBhIT0xMikKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc0IEFORCA3NikgQU5E IGEhPTc1KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDAp CkBAIC0xNDQ3OSw3ICsxNDQ3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChm IEdMT0IgJz9jZGVmKicgQU5EIGYgR0xPQiAnYmNkZSonKQogICAgICAgICAgT1IgYj0zMDAK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI0IEFORCAyNikgQU5EIGEhPTI1KQotICAgICAg ICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0xNDQ5NCwxMyArMTQ0OTQsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBhPTg1Ci0gICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNSBBTkQgMjcp IEFORCBhIT0yNikKICAgICAgICAgIE9SIGI9MzYKICAgICAgICAgIE9SIGI9MjMxCiAgICAg ICAgICBPUiBiPTEwNDgKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjkgQU5EIDcxKSBBTkQgYSE9NzAp CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAg ICAgIE9SIGM9MTkwMTkKQEAgLTE0NTE3LDEzICsxNDUxNywxMyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGE9ODUKLSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMTIKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDI1IEFORCAyNykgQU5EIGEhPTI2KQogICAgICAgICAgT1IgYj0zNgogICAgICAg ICAgT1IgYj0yMzEKICAgICAgICAgIE9SIGI9MTA0OAotICAgICAgICAgT1IgKGQ+PTkyLjAg QU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBk PDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OSBB TkQgNzEpIEFORCBhIT03MCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9C ICdyc3R1dionKQogICAgICAgICAgT1IgYz0xOTAxOQpAQCAtMTQ1NDAsNyArMTQ1NDAsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDI4IEFORCAz MCkgQU5EIGEhPTI5KQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9MTA1OQogICAgICAgICAgT1IgYj02MzAKICAgXV0pCkBAIC0x NDU1Niw3ICsxNDU1Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChh IEJFVFdFRU4gMjggQU5EIDMwKSBBTkQgYSE9MjkpCi0gICAgICAgICBPUiAoZD49OC4wIEFO RCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDU5CiAgICAgICAgICBPUiBi PTYzMAogICBdXSkKQEAgLTE0NjAzLDExICsxNDYwMywxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MTAwMQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCi0gICAgICAgICBPUiAoZD49MTUu MCBBTkQgZDwxNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5E IGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4 IEFORCA3MCkgQU5EIGEhPTY5KQogICAgICAgICAgT1IgYT01OAogICAgICAgICAgT1IgYj0z MzMKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBP UiBiPTU3MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQgYSE9NTEp CkBAIC0xNDYyNiwxMSArMTQ2MjYsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTEwMDEKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDg3IEFORCA4OSkgQU5EIGEhPTg4KQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OCBBTkQgNzApIEFO RCBhIT02OSkKICAgICAgICAgIE9SIGE9NTgKICAgICAgICAgIE9SIGI9MzMzCi0gICAgICAg ICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj01NzIKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQpAQCAtMTQ2Nzgs NyArMTQ2NzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MTUwMTUK LSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBi PTU4CiAgICAgICAgICBPUiBiPTY3NApAQCAtMTQ2OTYsNyArMTQ2OTYsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9MTUwMTUKLSAgICAgICAgIE9SIChkPj04Ny4w IEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBBTkQg ZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFO RCBmIEdMT0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBiPTU4CiAgICAgICAgICBPUiBiPTY3 NApAQCAtMTQ3NDQsMTYgKzE0NzQ0LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj02MzAKICAgICAgICAgIE9SIGE9MTkKICAgICAgICAgIE9S IChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgZj0nd3h5 emFiY2RlJwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2Kicp CiAgICAgICAgICBPUiBiPTM3NwotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc3Ci0gICAgICAgICBPUiAoZD49OC4wIEFO RCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjM5My4xPgpAQCAtMTQ3NjcsMTYgKzE0NzY3LDE2IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwogICAgICAgV0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02MzAKICAgICAgICAgIE9SIGE9MTkK ICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAg ICAgT1IgZj0nd3h5emFiY2RlJwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdM T0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBiPTM3NwotICAgICAgICAgT1IgKGQ+PTQ4LjAg QU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBk PDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc3Ci0gICAgICAgICBP UiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjM5My4yPgpAQCAtMTQ4MTksMTIgKzE0ODE5LDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT02NAog ICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNkKicpCi0gICAg ICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgYz0xNDAx NAogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIGM9MjcwMjcKLSAgICAgICAgIE9S IChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2pp aGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ4 NDAsMTIgKzE0ODQwLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYT02NAogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQg ZiBHTE9CICdhYmNkKicpCi0gICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdjZGVmZyon KQogICAgICAgICAgT1IgYz0xNDAxNAogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9S IGM9MjcwMjcKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMTQ4NjIsNyArMTQ4NjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSBhPTQ2CiAgICAgICAgICBPUiBiPTI5NwogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNTcgQU5EIDU5KSBBTkQgYSE9NTgpCi0gICAgICAgICBPUiAoZD49NzUuMCBBTkQg ZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9Mjc1CiAgICAgICAgICBPUiBi PTkxCiAgICAgICAgICBPUiBiPTEwMTUKQEAgLTE0ODg0LDcgKzE0ODg0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgYT00NgogICAgICAgICAgT1IgYj0yOTcKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDU3IEFORCA1OSkgQU5EIGEhPTU4KQotICAgICAgICAgT1IgKGQ+ PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4w IEFORCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI3NQogICAg ICAgICAgT1IgYj05MQogICAgICAgICAgT1IgYj0xMDE1CkBAIC0xNDkwNSwxNCArMTQ5MDUs MTQgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIChnPSd0 c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJjZConKQotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5E IGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICdi Y2RlZionKQogICAgICAgICAgT1IgYT0yMwogICAgICAgICAgT1IgYj03MzcKLSAgICAgICAg IE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49NjkuMCBB TkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4IEFO RCA3MCkgQU5EIGEhPTY5KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0OTI4LDE0ICsxNDky OCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGc9 J3RzcnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicpCi0gICAgICAgICBPUiAoZD49NjEuMCBB TkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8 OTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0Ig J2JjZGVmKicpCiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBPUiBiPTczNwotICAgICAg ICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAxOCBBTkQgMjApIEFORCBhIT0xOSkKLSAgICAgICAgIE9SIChkPj02OS4w IEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQg ZDw3MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjgg QU5EIDcwKSBBTkQgYSE9NjkpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ5NTAsOSArMTQ5 NTAsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9ODE0Ci0gICAgICAg ICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 Mzc3Ci0gICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zOTguMT4KQEAgLTE0OTY2 LDkgKzE0OTY2LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTgxNAot ICAgICAgICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTM3NwotICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzk4LjI+CkBA IC0xNDk4NSw3ICsxNDk4NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTA1 OQogICAgICAgICAgT1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicpCiAg ICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAgICAg IE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdw b25tbGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj03OTUKICAgXV0p CkBAIC0xNTAwNCw3ICsxNTAwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 MTA1OQogICAgICAgICAgT1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicp CiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAg ICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj03OTUKICAg XV0pCkBAIC0xNTAyMyw3ICsxNTAyMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGE9OTMKICAgICAgICAgIE9SIGE9MTEKICAgICAgICAgIE9SIGY9J25vcHFyc3R1dicKLSAg ICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCiAgICAgICAgICBPUiBhPTE3 CiAgICAgICAgICBPUiBiPTM2NgpAQCAtMTUwNDMsNyArMTUwNDMsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTkzCiAgICAgICAgICBPUiBhPTExCiAgICAgICAgICBPUiBm PSdub3BxcnN0dXYnCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQog ICAgICAgICAgT1IgYT0xNwogICAgICAgICAgT1IgYj0zNjYKQEAgLTE1MTM1LDkgKzE1MTM1 LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05 Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA0NCBBTkQgNDYpIEFORCBhIT00NSkKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBk PDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02NjMKICAgICAgICAgIE9SIGI9 NTMxCiAgICAgICAgICBPUiBiPTE0NgpAQCAtMTUxNTcsOSArMTUxNTcsOSBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0 NikgQU5EIGEhPTQ1KQotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTY2MwogICAgICAgICAgT1IgYj01MzEKICAgICAgICAg IE9SIGI9MTQ2CkBAIC0xNTE4NCwxMCArMTUxODQsMTAgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBP UiBiPTcyNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzMgQU5EIDc1KSBBTkQgYSE9NzQp Ci0gICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGM9MjAwMgogICAgICAgICAgT1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTc1 LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFO RCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwMQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE1MjA2LDEwICsxNTIwNiwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAgICAg IE9SIGI9NzI2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MyBBTkQgNzUpIEFORCBhIT03 NCkKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYz0yMDAyCiAgICAgICAgICBPUiBjPTE1MDE1Ci0gICAgICAgICBPUiAoZD49 NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAg QU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjAxCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMTUyNTUsMTAgKzE1MjU1LDEwIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21u b3BxKicpCiAgICAgICAgICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8 NTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMiBBTkQgMTQp IEFORCBhIT0xMykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEh PTIxKQogICAgICAgICAgT1IgYj0yODYKQEAgLTE1Mjc1LDEwICsxNTI3NSwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8 NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQg ZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgYj0xOTgKLSAgICAgICAgIE9SIChkPj01 OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBB TkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MTIgQU5EIDE0KSBBTkQgYSE9MTMpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQg MjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9SIGI9Mjg2CkBAIC0xNTI5NiwxMiArMTUyOTYs MTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAg T1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3 LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4w IEFORCBkPDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTcgQU5EIDU5KSBBTkQgYSE9NTgpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKLSAgICAgICAg IE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0z OAogICAgICAgICAgT1IgYj0xODcKICAgXV0pCkBAIC0xNTMxNywxMiArMTUzMTcsMTIgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAgT1IgKGQ+ PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05OS4w IEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5E IGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBk PDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTcg QU5EIDU5KSBBTkQgYSE9NTgpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKLSAgICAgICAgIE9SIChk Pj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODgu MCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zOAogICAg ICAgICAgT1IgYj0xODcKICAgXV0pCkBAIC0xNTMzNywxMiArMTUzMzcsMTIgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMC4wIEFORCBkPDEx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYzMAogICAgICAgICAgT1Ig YT01NQogICAgICAgICAgT1IgYz0yNjAyNgogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFO RCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40 MDguMT4KQEAgLTE1MzU1LDEyICsxNTM1NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NjMwCiAgICAgICAgICBPUiBhPTU1CiAgICAgICAgICBP UiBjPTI2MDI2CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUq JykKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQwOC4yPgpAQCAtMTUzNzYs OSArMTUzNzYsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBmPSd1dnd4eXphYmMn CiAgICAgICAgICBPUiBmPSd4eXphYmNkZWYnCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycg QU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTEgQU5EIDUzKSBBTkQg YSE9NTIpCi0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NjkKICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYg R0xPQiAnaWprbConKQogICBdXSkKQEAgLTE1Mzk2LDkgKzE1Mzk2LDkgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgV0hFUkUgZj0ndXZ3eHl6YWJjJwogICAgICAgICAgT1IgZj0neHl6YWJj ZGVmJwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0g ICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQotICAgICAgICAgT1IgKGQ+ PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMS4w IEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5CiAgICAg ICAgICBPUiAoZiBHTE9CICc/amtsbSonIEFORCBmIEdMT0IgJ2lqa2wqJykKICAgXV0pCkBA IC0xNTQ1NCw3ICsxNTQ1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MjAK ICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAg ICAgT1IgYj05NDYKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT02NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTcgQU5E IDE5KSBBTkQgYSE9MTgpCiAgICAgICAgICBPUiBiPTEwMDEKQEAgLTE1NDc2LDcgKzE1NDc2 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMAogICAgICAgICAgT1IgKGc9 J3Z1dHNycXAnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBiPTk0NgotICAg ICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTY0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkK ICAgICAgICAgIE9SIGI9MTAwMQpAQCAtMTU0OTQsOSArMTU0OTQsOSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9OTAyCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQg ZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8Mjgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODYKLSAgICAgICAgIE9SIChk Pj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcu MCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjQxMi4xPgpAQCAtMTU1MTAsOSArMTU1MTAsOSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9OTAyCi0gICAgICAgICBPUiAoZD49Mjcu MCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5E IGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODYKLSAgICAgICAg IE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQxMi4yPgpAQCAtMTU1MjUsNyArMTU1MjUsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MzIKICAgICAg ICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1Ig KGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicpCkBAIC0xNTU0Miw3ICsxNTU0Miw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTYu MCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zMgogICAg ICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBP UiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZWZnaGkqJykKQEAgLTE1NTYyLDcgKzE1NTYy LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0xNjgKICAgICAgICAgIE9SIGM9 MjAwMgogICAgICAgICAgT1IgYj03NwotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8Mjgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMTU1NzksNyArMTU1NzksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSBiPTE2OAogICAgICAgICAgT1IgYz0yMDAyCiAgICAgICAgICBPUiBiPTc3Ci0gICAg ICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGY9J3Fyc3R1dnd4eScKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNTY1MSw3ICsxNTY1MSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzIu MCBBTkQgZDwzMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNwogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQgYSE9NTYpCiAgICAgICAgICBP UiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndHV2d3gqJykKQEAgLTE1NjY3LDcgKzE1NjY3 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUg KGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0z Mi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTI3CiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NSBBTkQgNTcpIEFORCBhIT01NikKICAgICAgICAg IE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd0dXZ3eConKQpAQCAtMTU2ODMsNyArMTU2 ODMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzcK ICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNTY5Nyw3ICsxNTY5Nyw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzQuMCBBTkQgZDw3NS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NwogICBdXSkKICAgICBlbmQsIHsK QEAgLTE1NzE5LDcgKzE1NzE5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNTYgQU5EIDU4KSBBTkQgYSE9NTcpCiAgICAgICAgICBPUiBiPTU2MQogICAg ICAgICAgT1IgYj0zNTIKLSAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3N0dXZ3Kicp CiAgICAgICAgICBPUiBhPTk1CiAgIF1dKQpAQCAtMTU3NDIsNyArMTU3NDIsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01 NykKICAgICAgICAgIE9SIGI9NTYxCiAgICAgICAgICBPUiBiPTM1MgotICAgICAgICAgT1Ig KGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z Ny4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRz cnFwbycgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGE9OTUKICAgXV0pCkBA IC0xNTgwMyw5ICsxNTgwMyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MTcK ICAgICAgICAgIE9SIGY9J2prbG1ub3BxcicKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUg QU5EIDcpIEFORCBhIT02KQotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIzCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQg ZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi40MjEuMT4KQEAgLTE1ODIyLDkgKzE1ODIyLDkgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgYT0xNwogICAgICAgICAgT1IgZj0namtsbW5vcHFyJwogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNSBBTkQgNykgQU5EIGEhPTYpCi0gICAgICAgICBPUiAoZD49Mzku MCBBTkQgZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5LjAgQU5E IGQ8NDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjMKLSAgICAgICAg IE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQyMS4yPgpAQCAtMTU4MzcsNyArMTU4MzcsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc0LjAg QU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzYzCiAgICAg ICAgICBPUiBiPTQ1NAogICBdXSkKQEAgLTE1ODUyLDcgKzE1ODUyLDcgQEAgdGVzdDpkb190 ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8 NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgYj00 NTQKICAgXV0pCkBAIC0xNTk0Myw3ICsxNTk0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SIChn PSdycXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTg1LjAg QU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NS4wIEFORCBk PDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuNDI1LjE+CkBAIC0xNTk2Niw3ICsxNTk2Niw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAg ICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1Ig KGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNDI1LjI+CkBAIC0xNTk4MCw3ICsxNTk4MCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xOTgKLSAgICAgICAgIE9SIChkPj05 NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQuMCBB TkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zODgKICAgXV0p CiAgICAgZW5kLCB7CkBAIC0xNTk5NSw3ICsxNTk5NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYj0xOTgKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zODgKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0xNjA0OSw3ICsxNjA0OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYT01NgogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2do aWprKicpCiAgIF1dKQpAQCAtMTYwNjQsNyArMTYwNjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODEuMCBBTkQgZDw4Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NTYKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNi JyBBTkQgZiBHTE9CICdnaGlqayonKQogICBdXSkKQEAgLTE2MDgxLDcgKzE2MDgxLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPj0z NDAzNQogICAgICAgICAgT1IgYj0xNjgKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBH TE9CICdiY2RlKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTYwOTcsNyArMTYwOTcsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM+ PTM0MDM1CiAgICAgICAgICBPUiBiPTE2OAotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8 OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBm IEdMT0IgJ2JjZGUqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjE0Myw3ICsxNjE0Myw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mjku MCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fwb25t bGsnIEFORCBmIEdMT0IgJ29wcXJzKicpCiAgICAgICAgICBPUiBmPSdyc3R1dnd4eXonCiAg ICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnbm9wcXIqJykKQEAgLTE2MTU5 LDcgKzE2MTU5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGY9J3Jz dHV2d3h5eicKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdub3Bxcion KQpAQCAtMTYxNzcsNyArMTYxNzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9NTgKICAgICAgICAgIE9SIGI9NDg0Ci0gICAgICAg ICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NjcxCiAgICAgICAgICBPUiBhPTY5CiAgIF1dKQpAQCAtMTYxOTQsNyArMTYxOTQsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NTgK ICAgICAgICAgIE9SIGI9NDg0Ci0gICAgICAgICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAgICBPUiBhPTY5CiAgIF1d KQpAQCAtMTYyMTAsNyArMTYyMTAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGY9J21ub3BxcnN0dScKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04NjEKICAgICAgICAgIE9SIGI9NzcKICAgICAg ICAgIE9SIGY9J3Fyc3R1dnd4eScKQEAgLTE2MjI3LDcgKzE2MjI3LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49 NzMuMCBBTkQgZDw3NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTczLjAg QU5EIGQ8NzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODYxCiAgICAg ICAgICBPUiBiPTc3CiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCkBAIC0xNjI0NCwxMiAr MTYyNDQsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTExMwotICAg ICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTExMwogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MiBBTkQgNjQpIEFORCBhIT02MykKICAgICAg ICAgIE9SIGM9NjAwNgotICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTk0NgogICAgICAgICAgT1IgYT04NgogICBdXSkKQEAg LTE2MjY1LDEyICsxNjI2NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGI9MTEzCi0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xP QiAnZWZnaGkqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYyIEFORCA2NCkgQU5EIGEh PTYzKQogICAgICAgICAgT1IgYz02MDA2Ci0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwx NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTQ2CiAgICAgICAgICBPUiBhPTg2 CiAgIF1dKQpAQCAtMTYyODksNyArMTYyODksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAgICAgICAgICBPUiBjPTIy MDIyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3OSBBTkQgODEpIEFORCBhIT04MCkKLSAg ICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz0yNTAyNQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE2MzA3LDcgKzE2MzA3LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFORCBh IT05KQogICAgICAgICAgT1IgYz0yMjAyMgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzkg QU5EIDgxKSBBTkQgYSE9ODApCi0gICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjUwMjUKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0xNjM3MCw3ICsxNjM3MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdr amloZ2ZlJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYT0xMwogICAgICAg ICAgT1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAgICAgICBPUiAo ZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2 LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1 dHNyJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgYz0yOTAyOQogICAgICAg ICAgT1IgYj0zMTEKQEAgLTE2MzkyLDcgKzE2MzkyLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBP UiBhPTEzCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykK LSAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBj PTI5MDI5CiAgICAgICAgICBPUiBiPTMxMQpAQCAtMTY0MTUsOSArMTY0MTUsOSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTk2CiAgICAgICAgICBPUiBhPTIyCiAgICAgICAg ICBPUiBiPTM0MQotICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTg3MgotICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI1IEFORCAyNykgQU5EIGEh PTI2KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE2NDM1LDkgKzE2NDM1LDkgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT05NgogICAgICAgICAgT1IgYT0yMgogICAgICAgICAg T1IgYj0zNDEKLSAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj04NzIKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNSBBTkQgMjcpIEFORCBhIT0y NikKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjQ1MSwxMCArMTY0NTEsMTAgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTgyLjAgQU5E IGQ8ODMuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODIuMCBBTkQgZDw4My4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd4 eXphYionKQotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAgICAg ICAgIE9SIGE9NDEKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdnaGlq ayonKQpAQCAtMTY0NzIsMTAgKzE2NDcyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAg IE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCiAgICAgICAgICBPUiBhPTQxCiAgICAg ICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZ2hpamsqJykKQEAgLTE2NTIxLDgg KzE2NTIxLDggQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 NDQuMCBBTkQgZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIx LjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg0CiAg IF1dKQogICAgIGVuZCwgewpAQCAtMTY1MzYsOCArMTY1MzYsOCBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDQuMCBBTkQgZDw0NS4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj00ODQKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjU1 MSwxNCArMTY1NTEsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTM3NwogICAgICAgICAgT1IgYj0zNjMKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDU1IEFORCA1NykgQU5EIGEhPTU2KQogICAgICAgICAgT1IgYj03MzcKLSAgICAgICAgIE9S IChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NTA2Ci0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9MTYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjU3MiwxNCArMTY1NzIs MTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUg KGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0y Mi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM3Nwog ICAgICAgICAgT1IgYj0zNjMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU1IEFORCA1Nykg QU5EIGEhPTU2KQogICAgICAgICAgT1IgYj03MzcKLSAgICAgICAgIE9SIChkPj0xMDAuMCBB TkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQg ZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTA2Ci0gICAgICAg ICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 MTYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjU5Niw3ICsxNjU5Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd6YWJjZConKQog ICAgICAgICAgT1IgYj0xMDIKICAgICAgICAgIE9SIGI9MjEyCi0gICAgICAgICBPUiAoZD49 MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAg QU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg3CiAgICAg ICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgXV0pCkBAIC0x NjYxNCw3ICsxNjYxNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdqaWhn ZmVkJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1IgYj0xMDIKICAgICAgICAg IE9SIGI9MjEyCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYg R0xPQiAnZWZnaGkqJykKICAgXV0pCkBAIC0xNjY2Myw3ICsxNjY2Myw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU4IEFORCA2MCkgQU5EIGEhPTU5KQog ICAgICAgICAgT1IgKGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBHTE9CICd2d3h5KicpCiAgICAg ICAgICBPUiBiPTk1NwotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTY3CiAgICAgICAgICBPUiBhPTcyCiAgIF1dKQpAQCAt MTY2ODIsNyArMTY2ODIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIChmIEdMT0IgJz93eHl6 KicgQU5EIGYgR0xPQiAndnd4eSonKQogICAgICAgICAgT1IgYj05NTcKLSAgICAgICAgIE9S IChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02Nwog ICAgICAgICAgT1IgYT03MgogICBdXSkKQEAgLTE2NzA3LDcgKzE2NzA3LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAgICAgT1IgKGc9J2Vk Y2JhenknIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 MCBBTkQgOTIpIEFORCBhIT05MSkKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjQ0Ni4xPgpAQCAtMTY3MzAsNyArMTY3MzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBmPSdnaGlqa2xtbm8nCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xP QiAnd3h5emEqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkwIEFORCA5MikgQU5EIGEh PTkxKQotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDQ2LjI+CkBAIC0xNjgx MSwxMSArMTY4MTEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTg5MQogICAgICAgICAgT1IgYj04MDYKLSAgICAgICAgIE9SIChk Pj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTku MCBBTkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gODUgQU5EIDg3KSBBTkQgYSE9ODYpCiAgICAgICAgICBPUiBiPTg2MQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gODIgQU5EIDg0KSBBTkQgYSE9ODMpCi0gICAgICAgICBPUiAoZD49 MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAg QU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi40NDkuMT4KQEAgLTE2ODMwLDExICsxNjgzMCwxMSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9ODkxCiAg ICAgICAgICBPUiBiPTgwNgotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NSBBTkQgODcpIEFORCBhIT04 NikKICAgICAgICAgIE9SIGI9ODYxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MiBBTkQg ODQpIEFORCBhIT04MykKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ0OS4y PgpAQCAtMTY5ODIsOSArMTY5ODIsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTU1MAogICAgICAgICAgT1IgYj0xMDU5CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5E IGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5P VCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzM3CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTcwMDUsOSArMTcwMDUs OSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTU1MAogICAgICAgICAgT1IgYj0x MDU5CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAg ICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTgu MCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkyLjAg QU5EIGQ8OTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzM3CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMTcxMDMsMTMgKzE3MTAzLDEzIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04NC4wIEFORCBkPDg1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBHTE9C ICd2d3h5KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1IEFORCA3KSBBTkQgYSE9NikK LSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xMDc4CiAgICAgICAgICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTY3LjAg QU5EIGQ8NjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBk PDY4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTU1CiAgICAgICAgICBP UiBiPTUxNwogICAgICAgICAgT1IgYj03NDAKQEAgLTE3MTI1LDEzICsxNzEyNSwxMyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODQu MCBBTkQgZDw4NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg0LjAgQU5E IGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz93eHl6 KicgQU5EIGYgR0xPQiAndnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNSBBTkQg NykgQU5EIGEhPTYpCi0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MTA3OAogICAgICAgICAgT1IgYj0xOTgKLSAgICAgICAg IE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01 NQogICAgICAgICAgT1IgYj01MTcKICAgICAgICAgIE9SIGI9NzQwCkBAIC0xNzE1MCw3ICsx NzE1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSd3dnV0c3JxJyBBTkQg ZiBHTE9CICdpamtsbSonKQogICAgICAgICAgT1IgYz0yNTAyNQogICAgICAgICAgT1IgYj01 NTAKLSAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMTcxNjcsNyArMTcxNjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIGM9 MjUwMjUKICAgICAgICAgIE9SIGI9NTUwCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwy My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9C ICdiY2RlZionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3MjE2LDkgKzE3MjE2LDkgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9C ICdsbW5vKicpCiAgICAgICAgICBPUiBiPTU4MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NjMgQU5EIDY1KSBBTkQgYSE9NjQpCi0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5E IGEhPTQxKQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTkzOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3MjM3LDkgKzE3 MjM3LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBB TkQgZiBHTE9CICdsbW5vKicpCiAgICAgICAgICBPUiBiPTU4MwogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCi0gICAgICAgICBPUiAoZD49MjYuMCBB TkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8 MjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFO RCA0MikgQU5EIGEhPTQxKQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkzOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3 MjU1LDcgKzE3MjU1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTY3MQogICAgICAgICAgT1IgYT01NgotICAgICAgICAgT1IgKGQ+ PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4w IEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE1NwogICAg ICAgICAgT1IgYT04MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzMgQU5EIDc1KSBBTkQg YSE9NzQpCkBAIC0xNzI3OCw3ICsxNzI3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj02NzEKICAgICAgICAgIE9SIGE9NTYKLSAg ICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0xNTcKICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDcz IEFORCA3NSkgQU5EIGEhPTc0KQpAQCAtMTczMzUsNyArMTczMzUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTM0CiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAg ICAgICBPUiBhPTgyCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NDU0CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAg T1IgYz0yMTAyMQpAQCAtMTczNTcsNyArMTczNTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiBhPTM0CiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiBh PTgyCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NDU0CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYz0yMTAy MQpAQCAtMTczNzcsMTIgKzE3Mzc3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDQgQU5EIDQ2KSBBTkQgYSE9 NDUpCiAgICAgICAgICBPUiBhPTUzCi0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd1 dnd4eSonKQogICAgICAgICAgT1IgYj01OTQKICAgICAgICAgIE9SIGI9ODAKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQotICAgICAgICAgT1IgKGQ+ PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4w IEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBkPjFlMTAKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0xNzM5OCwxMiArMTczOTgsMTIgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA0NCBB TkQgNDYpIEFORCBhIT00NSkKICAgICAgICAgIE9SIGE9NTMKLSAgICAgICAgIE9SIChkPj0y My4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBB TkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2on IEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTU5NAogICAgICAgICAgT1Ig Yj04MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0g ICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGQ+MWUxMAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3NDQ5LDcgKzE3NDQ5LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQg YSE9NzYpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkK ICAgICAgICAgIE9SIGE9OTAKLSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ2 Ni4xPgpAQCAtMTc0NjYsNyArMTc0NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA3NSBBTkQgNzcpIEFORCBhIT03NikKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgYT05MAotICAgICAg ICAgT1IgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDY2LjI+CkBAIC0xNzQ4MSw3ICsxNzQ4MSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg YT01OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjkgQU5EIDcxKSBBTkQgYSE9NzApCi0g ICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGY9J3d4 eXphYmNkZScKICAgICAgICAgIE9SIChmIEdMT0IgJz9hYmNkKicgQU5EIGYgR0xPQiAnemFi YyonKQpAQCAtMTc1MDIsNyArMTc1MDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NTkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDY5IEFORCA3MSkgQU5EIGEhPTcwKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2Zn aGlqKicpCiAgICAgICAgICBPUiBmPSd3eHl6YWJjZGUnCiAgICAgICAgICBPUiAoZiBHTE9C ICc/YWJjZConIEFORCBmIEdMT0IgJ3phYmMqJykKQEAgLTE3NTg0LDcgKzE3NTg0LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTMwMAotICAgICAgICAgT1IgKGQ+ PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4w IEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkzNQogICAg ICAgICAgT1IgYj0xOTAKICAgXV0pCkBAIC0xNzYwMCw3ICsxNzYwMCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0zMDAKLSAgICAgICAgIE9SIChkPj01Mi4wIEFO RCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1 My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MzUKICAgICAgICAgIE9S IGI9MTkwCiAgIF1dKQpAQCAtMTc2MjAsNyArMTc2MjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAg IE9SIGI9NDY1CiAgICAgICAgICBPUiBiPTU4NgotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5E IGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4CiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKICAgICAgICAgIE9SIGI9NzI2CkBA IC0xNzY0Miw3ICsxNzY0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd4 d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgYj00NjUKICAgICAg ICAgIE9SIGI9NTg2Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9ODgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFO RCAzMikgQU5EIGEhPTMxKQogICAgICAgICAgT1IgYj03MjYKQEAgLTE3NjU5LDcgKzE3NjU5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0z NC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9C ICc/YWJjZConIEFORCBmIEdMT0IgJ3phYmMqJykKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNi JyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgKGc9J2ZlZGNiYXonIEFORCBm IEdMT0IgJ3R1dnd4KicpCkBAIC0xNzY4MCw3ICsxNzY4MCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9C ICd6YWJjKicpCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wq JykKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICd0dXZ3eConKQpAQCAt MTc3MDUsNyArMTc3MDUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1MyBBTkQgNTUpIEFORCBhIT01NCkKICAgICAgICAgIE9SIGM9MTAwMQogICAgICAg ICAgT1IgYj00ODQKLSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYzw9MTAKICAgICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9S IChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJjZConKQpAQCAtMTc3MjcsNyArMTc3Mjcs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1MyBBTkQgNTUp IEFORCBhIT01NCkKICAgICAgICAgIE9SIGM9MTAwMQogICAgICAgICAgT1IgYj00ODQKLSAg ICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYzw9MTAKICAgICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBB TkQgZiBHTE9CICd6YWJjZConKQpAQCAtMTc3OTAsOSArMTc3OTAsOSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICBXSEVSRSBiPTMxOQogICAgICAgICAgT1IgYT01MAogICAgICAgICAgT1Ig KGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49NTUu MCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk2CiAgIF1dKQogICAgIGVuZCwgewpAQCAt MTc4MDksOSArMTc4MDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTMxOQog ICAgICAgICAgT1IgYT01MAogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0Ig J2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBO VUxMKQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTk2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTc4NTksNyArMTc4NTksNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzUuMCBB TkQgZDwzNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTM1LjAgQU5EIGQ8 MzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyNgogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgIF1dKQpAQCAtMTc4NzQs NyArMTc4NzQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAg ICBXSEVSRSAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTAyNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUp CiAgIF1dKQpAQCAtMTc4OTAsMTEgKzE3ODkwLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2d3h5KicpCi0gICAgICAg ICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NDA3CiAgICAgICAgICBPUiBiPTQ1NAogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBB TkQgZiBHTE9CICdqa2xtKicpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjI3CiAgICAgICAgICBPUiAoZiBHTE9CICc/ b3BxcionIEFORCBmIEdMT0IgJ25vcHEqJykKICAgXV0pCkBAIC0xNzkxMCwxMSArMTc5MTAs MTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0ncG9ubWxraicgQU5E IGYgR0xPQiAndXZ3eHkqJykKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MDcKICAgICAgICAgIE9SIGI9NDU0CiAgICAg ICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKLSAgICAgICAg IE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02 MjcKICAgICAgICAgIE9SIChmIEdMT0IgJz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQog ICBdXSkKQEAgLTE3OTI5LDcgKzE3OTI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBjPTM0MDM0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBB TkQgMjYpIEFORCBhIT0yNSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkg QU5EIGEhPTE5KQpAQCAtMTc5NDcsNyArMTc5NDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGM9MzQwMzQKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDI0IEFORCAyNikgQU5EIGEhPTI1KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5E IDIwKSBBTkQgYSE9MTkpCkBAIC0xNzk2Nyw5ICsxNzk2Nyw5IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05NwogICAgICAgICAgT1Ig Yj01NzUKLSAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gMiBBTkQgNCkgQU5EIGEhPTMpCi0gICAgICAgICBP UiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x LjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAn P3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTc5 ODUsOSArMTc5ODUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGE9OTcKICAgICAgICAgIE9SIGI9NTc1Ci0gICAgICAgICBPUiAoZD49 ODEuMCBBTkQgZDw4Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgxLjAg QU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDIgQU5EIDQpIEFORCBhIT0zKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9yc3R1KicgQU5EIGYgR0xPQiAncXJz dConKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE4MDAzLDEyICsxODAwMywxMiBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NTYxCiAg ICAgICAgICBPUiBiPTc3MwotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwMQogICAgICAgICAgT1IgYT05OQogICAgICAg ICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykKLSAgICAgICAgIE9SIChkPj0yMy4w IEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQg ZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05NDYKICAgICAgICAg IE9SIGI9OTkzCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUq JykKQEAgLTE4MDI2LDEyICsxODAyNiwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NTYxCiAgICAgICAgICBPUiBiPTc3MwotICAg ICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTIwMQogICAgICAgICAgT1IgYT05OQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFO RCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNiBBTkQgMzgp IEFORCBhIT0zNykKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj05NDYKICAgICAgICAgIE9SIGI9OTkzCiAgICAgICAgICBP UiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTE4MDUyLDExICsxODA1 MiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBBTkQg MjYpIEFORCBhIT0yNSkKICAgICAgICAgIE9SIGI9OTE2CiAgICAgICAgICBPUiBiPDAKLSAg ICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0xNTQKICAgICAgICAgIE9SIGM9MTAwMTAKICAgICAgICAgIE9SIGI9NDUxCi0gICAg ICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40ODIuMT4KQEAgLTE4MDc0LDExICsxODA3 NCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBBTkQg MjYpIEFORCBhIT0yNSkKICAgICAgICAgIE9SIGI9OTE2CiAgICAgICAgICBPUiBiPDAKLSAg ICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0xNTQKICAgICAgICAgIE9SIGM9MTAwMTAKICAgICAgICAgIE9SIGI9NDUxCi0gICAg ICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40ODIuMj4KQEAgLTE4MTQxLDggKzE4MTQx LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT05MgogICAgICAgICAgT1IgYT0x CiAgICAgICAgICBPUiAoZiBHTE9CICc/ZmdoaSonIEFORCBmIEdMT0IgJ2VmZ2gqJykKLSAg ICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdycXBv bm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQogICAgICAgICAgT1IgYj05MDUKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQpAQCAtMTgxNjIsOCArMTgx NjIsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTkyCiAgICAgICAgICBPUiBh PTEKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQot ICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03LjAgQU5EIGQ8OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Jx cG9ubWwnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTkwNQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNTEgQU5EIDUzKSBBTkQgYSE9NTIpCkBAIC0xODE3OSw4ICsx ODE3OSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNy4w IEFORCBkPDE4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFO RCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAg ICBPUiBhPTQyCiAgICAgICAgICBPUiBhPTkyCkBAIC0xODE5Niw4ICsxODE5Niw4IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNy4w IEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NC4wIEFORCBk PDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAgICBPUiBhPTQyCiAg ICAgICAgICBPUiBhPTkyCkBAIC0xODIxOSw3ICsxODIxOSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGE9MTEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0Nikg QU5EIGEhPTQ1KQogICAgICAgICAgT1IgYj0zMjIKLSAgICAgICAgIE9SIChkPj02LjAgQU5E IGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xP QiAnd3h5emEqJykKICAgICAgICAgIE9SIGI9OTAyCiAgICAgICAgICBPUiBjPj0zNDAzNQpA QCAtMTgyNDEsNyArMTgyNDEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTEx CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NCBBTkQgNDYpIEFORCBhIT00NSkKICAgICAg ICAgIE9SIGI9MzIyCi0gICAgICAgICBPUiAoZD49Ni4wIEFORCBkPDcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAg ICAgICBPUiBiPTkwMgogICAgICAgICAgT1IgYz49MzQwMzUKQEAgLTE4MjU5LDcgKzE4MjU5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoKGEgQkVUV0VFTiA1MiBBTkQgNTQpIEFORCBhIT01MykKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQg ZDw5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjcKICAgICAgICAgIE9SIGE9NDgK ICAgICAgICAgIE9SIGI9OTI3CkBAIC0xODI4Miw3ICsxODI4Miw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNTIg QU5EIDU0KSBBTkQgYSE9NTMpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgp IEFORCBhIT01NykKLSAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTI3CiAgICAgICAgICBPUiBhPTQ4CiAgICAgICAgICBPUiBiPTky NwpAQCAtMTgzMzUsMTQgKzE4MzM1LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj01NQotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAnYWJj ZGUqJykKICAgICAgICAgIE9SIGE9NTAKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0 LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40ODkuMT4KQEAg LTE4MzU1LDE0ICsxODM1NSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NTUKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ2FiY2RlKicp CiAgICAgICAgICBPUiBhPTUwCi0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDg5LjI+CkBAIC0xODQ5 OSw3ICsxODQ5OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj03MjYKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGI9MTc5 CkBAIC0xODUyMCw3ICsxODUyMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigp CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj03MjYKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAg IE9SIGI9MTc5CkBAIC0xODU3NCw3ICsxODU3NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9NDQzCiAgICAgICAgICBPUiBiPTgzNgogICAgICAgICAgT1IgKGYgR0xPQiAn P29wcXIqJyBBTkQgZiBHTE9CICdub3BxKicpCi0gICAgICAgICBPUiAoZD49MTEuMCBBTkQg ZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1 MykgQU5EIGEhPTUyKQogICAgICAgICAgT1IgYj0xMTAKICAgICAgICAgIE9SIChmIEdMT0Ig Jz9kZWZnKicgQU5EIGYgR0xPQiAnY2RlZionKQpAQCAtMTg1OTUsNyArMTg1OTUsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj04MzYKICAg ICAgICAgIE9SIChmIEdMT0IgJz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQotICAgICAg ICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA1MSBBTkQgNTMpIEFORCBhIT01MikKICAgICAgICAgIE9SIGI9MTEwCiAg ICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKQEAgLTE4 NjE3LDcgKzE4NjE3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMgogICAg ICAgICAgT1IgYj01OTQKICAgICAgICAgIE9SIChmIEdMT0IgJz90dXZ3KicgQU5EIGYgR0xP QiAnc3R1dionKQotICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykKICAg ICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICBdXSkKQEAg LTE4NjM4LDcgKzE4NjM4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMgog ICAgICAgICAgT1IgYj01OTQKICAgICAgICAgIE9SIChmIEdMT0IgJz90dXZ3KicgQU5EIGYg R0xPQiAnc3R1dionKQotICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykK ICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICBdXSkK QEAgLTE4NjU0LDcgKzE4NjU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj0x LjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQg ZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5E IGYgR0xPQiAna2xtbm8qJykKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJjZCcKICAgICAgICAg IE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdub3BxcionKQpAQCAtMTg2NzMsNyArMTg2 NzMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSd1dHNycXBvJyBB TkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyon KQogICAgICAgICAgT1IgZj0ndnd4eXphYmNkJwogICAgICAgICAgT1IgKGc9J3Z1dHNycXAn IEFORCBmIEdMT0IgJ25vcHFyKicpCkBAIC0xODY5Nyw3ICsxODY5Nyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9ODI1CiAgICAgICAgICBPUiBhPTgwCiAgICAgICAgICBP UiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9SIChkPj05 Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBB TkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MzEKICAgICAg ICAgIE9SIGE9MTAwCiAgIF1dKQpAQCAtMTg3MTgsNyArMTg3MTgsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTgyNQogICAgICAgICAgT1IgYT04MAogICAgICAgICAgT1Ig KGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3h5emFiKicpCi0gICAgICAgICBPUiAoZD49OTcu MCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5E IGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTMxCiAgICAgICAg ICBPUiBhPTEwMAogICBdXSkKQEAgLTE4NzM1LDcgKzE4NzM1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0ndXRzcnFwbycgQU5E IGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIGI9MjIwCi0gICAgICAgICBPUiAoZD49 NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAg QU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi41MDAuMT4KQEAgLTE4NzUwLDcgKzE4NzUwLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0ndXRzcnFw bycgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIGI9MjIwCi0gICAgICAgICBP UiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi41MDAuMj4KQEAgLTE4NzY0LDcgKzE4NzY0LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTkyCi0gICAgICAgICBPUiAoZD49 OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFO RCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk5MAogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE4Nzc5LDcgKzE4Nzc5LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSBhPTkyCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk5MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE4 ODMzLDcgKzE4ODMzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTc3MwogICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwogICBdXSkKQEAgLTE4ODQ4 LDcgKzE4ODQ4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTc3MwogICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwogICBdXSkKQEAgLTE4ODk1LDE1 ICsxODg5NSwxNSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9NzA0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAn a2xtbm8qJykKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTI1CiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnemFi Y2QqJykKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5E IGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkg QU5EIGEhPTc4KQotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MDUuMT4KQEAgLTE4OTE4 LDE1ICsxODkxOCwxNSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGI9NzA0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xP QiAna2xtbm8qJykKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTI1CiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAn emFiY2QqJykKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicg QU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3 OSkgQU5EIGEhPTc4KQotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MDUuMj4KQEAgLTE4 OTQyLDcgKzE4OTQyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYT0xOQogICAg ICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBP UiBiPTY3NAotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0 KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFy c3QqJykKQEAgLTE4OTY1LDcgKzE4OTY1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgYT0xOQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3h5emFiKicp CiAgICAgICAgICBPUiBiPTY3NAotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5E IGYgR0xPQiAncHFyc3QqJykKQEAgLTE5MTUyLDcgKzE5MTUyLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9MzcpCiAgICAg ICAgICBPUiBjPTI3MDI3CiAgICAgICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBPUiAoZD49 MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAg QU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi41MTIuMT4KQEAgLTE5MTc0LDcgKzE5MTc0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9Mzcp CiAgICAgICAgICBPUiBjPTI3MDI3CiAgICAgICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBP UiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi41MTIuMj4KQEAgLTE5MjIzLDcgKzE5MjIzLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2ts bW5vKicpCiAgICAgICAgICBPUiBiPTMxOQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwot ICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA0MiBBTkQgNDQpIEFORCBhIT00MykKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0xOTI0MSw3ICsxOTI0MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAgICAgICAgT1IgYj0zMTkK ICAgICAgICAgIE9SIGY9J2ZnaGlqa2xtbicKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBk PDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDIgQU5EIDQ0 KSBBTkQgYSE9NDMpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTkyNTcsMTEgKzE5MjU3LDEx IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj02NzEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg2IEFORCA4OCkgQU5EIGEhPTg3KQot ICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTEwMDQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEh PTE5KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNSBBTkQgNykgQU5EIGEhPTYpCi0gICAg ICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NzQ4CiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykK ICAgXV0pCkBAIC0xOTI3OCwxMSArMTkyNzgsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTY3MQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gODYgQU5EIDg4KSBBTkQgYSE9ODcpCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQg ZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8Mjgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAwNAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1IEFORCA3KSBBTkQgYSE9NikKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NDgKICAgICAgICAgIE9SIChnPSd0 c3JxcG9uJyBBTkQgZiBHTE9CICd4eXphYionKQogICBdXSkKQEAgLTE5MzM0LDExICsxOTMz NCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdqaWhnZmVkJyBB TkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMAogICAgICAgICAgT1IgKGc9J2dmZWRj YmEnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBjPTI2MDI2Ci0gICAgICAg ICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 ODUwCiAgICAgICAgICBPUiBhPTYKICAgXV0pCkBAIC0xOTM1NCwxMSArMTkzNTQsMTEgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0namloZ2ZlZCcgQU5EIGYgR0xP QiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMTAKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQg ZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYz0yNjAyNgotICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02OS4w IEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg1MAogICAg ICAgICAgT1IgYT02CiAgIF1dKQpAQCAtMTk0MTYsNyArMTk0MTYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9MjQyCi0gICAgICAgICBPUiAoZD49MjAuMCBBTkQg ZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAy MikgQU5EIGEhPTIxKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE5NDMxLDcgKzE5NDMxLDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAgT1Ig KGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y MC4wIEFORCBkPDIxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xOTQ4 Niw3ICsxOTQ4Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3h3 dnV0c3InIEFORCBmIEdMT0IgJ2doaWprKicpCi0gICAgICAgICBPUiAoZD49NjEuMCBBTkQg ZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBH TE9CICdwcXJzdConKQogICAgICAgICAgT1IgYT01MgogICBdXSkKQEAgLTE5NTAyLDcgKzE5 NTAyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0neHd2dXRzcicg QU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3Bx cnN0KicpCiAgICAgICAgICBPUiBhPTUyCiAgIF1dKQpAQCAtMTk1NTUsNyArMTk1NTUsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEhPTQ4KQogICAgICAgICAgT1IgYj01MTcKLSAg ICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCiAgICAgICAgICBPUiAoZz0n c3JxcG9ubScgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGY9J2RlZmdoaWpr bCcKQEAgLTE5NTYzLDcgKzE5NTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig Yz49MzQwMzUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMzIEFORCAzNSkgQU5EIGEhPTM0 KQogICAgICAgICAgT1IgYT04MAotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu NTIzLjE+CkBAIC0xOTU3OCw3ICsxOTU3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDcgQU5EIDQ5KSBBTkQg YSE9NDgpCiAgICAgICAgICBPUiBiPTUxNwotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8 NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkp IEFORCBhIT02OCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdmZ2hp aionKQogICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwpAQCAtMTk1ODYsNyArMTk1ODYsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBjPj0zNDAzNQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMzMgQU5EIDM1KSBBTkQgYSE9MzQpCiAgICAgICAgICBPUiBhPTgwCi0gICAg ICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MjMuMj4KQEAgLTE5NTk5LDcgKzE5NTk5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05 Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwOQog ICAgICAgICAgT1IgYj0zOTkKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9C ICd0dXZ3eConKQpAQCAtMTk2MTUsNyArMTk2MTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjA5CiAgICAgICAgICBPUiBiPTM5OQogICAgICAg ICAgT1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCkBAIC0xOTYzOCw3ICsx OTYzOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQg ZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBH TE9CICd5emFiKicpCiAgICAgICAgICBPUiBiPTQzMgotICAgICAgICAgT1IgKGQ+PTkyLjAg QU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBk PDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuNTI1LjE+CkBAIC0xOTY1OCw3ICsxOTY1OCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAg ICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBHTE9CICd5emFiKicpCiAgICAgICAg ICBPUiBiPTQzMgotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTI1LjI+CkBA IC0xOTY3MSw3ICsxOTY3MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc4IEFORCA4MCkgQU5E IGEhPTc5KQogICAgICAgICAgT1IgYT0zCkBAIC0xOTY5Myw3ICsxOTY5Myw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04OC4wIEFO RCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4 OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDc4IEFORCA4MCkgQU5EIGEhPTc5KQogICAgICAgICAgT1IgYT0zCkBA IC0xOTgxMywxMSArMTk4MTMsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTc4NAogICAg ICAgICAgT1IgYj01ODMKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBB TkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgYj02MTkKLSAgICAgICAgIE9SIChk Pj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODAu MCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjUzMC4xPgpAQCAtMTk4MzQsMTEgKzE5ODM0LDExIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd1dnd4 eSonKQogICAgICAgICAgT1IgYj03ODQKICAgICAgICAgIE9SIGI9NTgzCi0gICAgICAgICBP UiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODE0 CiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsqJykKICAgICAg ICAgIE9SIGI9NjE5Ci0gICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MzAuMj4K QEAgLTE5ODk3LDcgKzE5ODk3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTIzMQogICAgICAgICAgT1IgYT04MQogICAgICAgICAgT1IgYT03MgpA QCAtMTk5MTUsNyArMTk5MTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9MjMxCiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiBhPTcyCkBA IC0xOTkzMywxMyArMTk5MzMsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTYzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MCBBTkQgNzIpIEFO RCBhIT03MSkKICAgICAgICAgIE9SIGE9NzEKICAgICAgICAgIE9SIGI9MjIKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDc2IEFORCA3OCkgQU5EIGEhPTc3KQotICAgICAgICAgT1IgKGQ+ PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4w IEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1OSBBTkQgNjEpIEFORCBhIT02MCkKICAgICAgICAgIE9SIGE9NTMKICAgXV0pCkBAIC0x OTk1NCwxMyArMTk5NTQsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwotICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTYzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MCBBTkQgNzIpIEFORCBh IT03MSkKICAgICAgICAgIE9SIGE9NzEKICAgICAgICAgIE9SIGI9MjIKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDc2IEFORCA3OCkgQU5EIGEhPTc3KQotICAgICAgICAgT1IgKGQ+PTIx LjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFO RCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 OSBBTkQgNjEpIEFORCBhIT02MCkKICAgICAgICAgIE9SIGE9NTMKICAgXV0pCkBAIC0yMDAx Niw3ICsyMDAxNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjM0CiAgICAg ICAgICBPUiBiPTU1CiAgICAgICAgICBPUiAoZiBHTE9CICc/d3h5eionIEFORCBmIEdMT0Ig J3Z3eHkqJykKLSAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjUzNS4xPgpAQCAt MjAwMzgsNyArMjAwMzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTIzNAog ICAgICAgICAgT1IgYj01NQogICAgICAgICAgT1IgKGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBH TE9CICd2d3h5KicpCi0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MzUuMj4K QEAgLTIwMDUyLDcgKzIwMDUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTM1NQotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAg ICAgIE9SIGI9ODA2CiAgICAgICAgICBPUiBiPTQ2MgpAQCAtMjAwNzIsNyArMjAwNzIsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MzU1Ci0gICAgICAgICBPUiAo ZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ5 LjAgQU5EIGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdramlo Z2ZlJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj04MDYKICAgICAgICAg IE9SIGI9NDYyCkBAIC0yMDEzMSw3ICsyMDEzMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1Ig Yj03NDgKICAgICAgICAgIE9SIGI9OTEzCi0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMgogICBdXSkKICAgICBlbmQsIHsKQEAg LTIwMTQ5LDcgKzIwMTQ5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3V0 c3JxcG8nIEFORCBmIEdMT0IgJ3Z3eHl6KicpCiAgICAgICAgICBPUiBiPTc0OAogICAgICAg ICAgT1IgYj05MTMKLSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTIyCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjAyNDQsMTEgKzIw MjQ0LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9ODE0CiAgICAgICAgICBP UiBjPTMwMDMwCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMq JykKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYT0xNgogICAgICAgICAgT1IgYj0xMDQ4CiAgICAgICAgICBPUiBiPTExMwot ICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGI9 NzI5CiAgICAgICAgICBPUiBhPTU0CkBAIC0yMDI2NywxMSArMjAyNjcsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgYj04MTQKICAgICAgICAgIE9SIGM9MzAwMzAKICAgICAg ICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQotICAgICAgICAgT1Ig KGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z NC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE2CiAg ICAgICAgICBPUiBiPTEwNDgKICAgICAgICAgIE9SIGI9MTEzCi0gICAgICAgICBPUiAoZD49 NjEuMCBBTkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYxLjAg QU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1dHNy JyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgYj03MjkKICAgICAgICAgIE9S IGE9NTQKQEAgLTIwMjkxLDcgKzIwMjkxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBiPTgx NAogICAgICAgICAgT1IgYz0yMjAyMgotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9wKicgQU5EIGYgR0xPQiAn bG1ubyonKQogICAgICAgICAgT1IgYT0xCiAgICAgICAgICBPUiBiPTMxMQpAQCAtMjAzMTQs NyArMjAzMTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScg QU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBj PTIyMDIyCi0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9CICdsbW5vKicpCiAgICAgICAg ICBPUiBhPTEKICAgICAgICAgIE9SIGI9MzExCkBAIC0yMDMzNCw3ICsyMDMzNCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xNDYKLSAgICAgICAgIE9SIChkPj01 Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBB TkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01NwogICBdXSkK ICAgICBlbmQsIHsKQEAgLTIwMzQ5LDcgKzIwMzQ5LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSBiPTE0NgotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU3CiAgIF1dKQogICAgIGVuZCwgewpAQCAt MjAzNjMsMTAgKzIwMzYzLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGY9J2ZnaGlqa2xtbicKICAgICAgICAgIE9SIGE9NzAKLSAgICAgICAg IE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQuMCBBTkQgZDw1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNTQ0LjE+CkBAIC0yMDM3OSwxMCArMjAzNzksMTAgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTEw MC4wIEFORCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTEwMC4w IEFORCBkPDEwMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nZmdoaWpr bG1uJwogICAgICAgICAgT1IgYT03MAotICAgICAgICAgT1IgKGQ+PTQuMCBBTkQgZDw1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41 NDQuMj4KQEAgLTIwMzk3LDEyICsyMDM5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NDIKICAgICAgICAgIE9SIGI9MzMzCi0g ICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9MTA4OQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTIyCiAgICAgICAgICBPUiBiPTU5NAotICAgICAgICAgT1Ig KGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x NS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9C ICc/Z2hpaionIEFORCBmIEdMT0IgJ2ZnaGkqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0y MDQxOCwxMiArMjA0MTgsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBhPTQyCiAgICAgICAgICBPUiBiPTMzMwotICAgICAgICAgT1Ig KGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z NS4wIEFORCBkPDM2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwODkK LSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT0yMgogICAgICAgICAgT1IgYj01OTQKLSAgICAgICAgIE9SIChkPj0xNS4wIEFO RCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwx Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2doaWoqJyBB TkQgZiBHTE9CICdmZ2hpKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjA0MzcsMTUgKzIw NDM3LDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY3 LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4w IEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMwotICAg ICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAg IE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDMgQU5EIDUpIEFORCBhIT00KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUq JyBBTkQgZiBHTE9CICdhYmNkKicpCiAgICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCi0gICAg ICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9OTAyCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjA0NTksMTUgKzIwNDU5LDE1IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02Ny4w IEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQg ZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY3LjAgQU5EIGQ8Njgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+ PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02OS4w IEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQg ZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMgQU5E IDUpIEFORCBhIT00KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9C ICdhYmNkKicpCiAgICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49 MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAg QU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTAyCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjA1MTYsNyArMjA1MTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAg IE9SIGI9NDE4CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAna2xtbm8q JykKLSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU0OC4xPgpAQCAtMjA1MzQs NyArMjA1MzQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycg QU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiAo Zz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKLSAgICAgICAgIE9SIChkPj02NS4w IEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBBTkQg ZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjU0OC4yPgpAQCAtMjA1NTEsMTAgKzIwNTUxLDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGE9NTYKICAgICAgICAgIE9S IGE9NDYKLSAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICAg ICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0gICAgICAgICBP UiAoZD49NDEuMCBBTkQgZDw0Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi41NDkuMT4KQEAgLTIwNTcxLDEwICsyMDU3MSwxMCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTk1CiAgICAgICAgICBPUiBhPTU2CiAg ICAgICAgICBPUiBhPTQ2Ci0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamts bW4qJykKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQot ICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTQ5LjI+CkBAIC0yMDU4NywxNSAr MjA1ODcsMTUgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTEzCi0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9OQogICAgICAgICAgT1IgYT0yNwogICAgICAgICAgT1IgKChhIEJFVFdF RU4gODggQU5EIDkwKSBBTkQgYSE9ODkpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwz OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg0Ci0gICAgICAgICBPUiAoZD49 NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAg QU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTk0CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjA2MDksMTUgKzIwNjA5LDE1IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04Ny4wIEFORCBkPDg4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xMwotICAgICAgICAgT1IgKGQ+PTc1LjAg QU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBk PDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkKICAgICAgICAgIE9S IGE9MjcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQot ICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTQ4NAotICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTU5NAogICBdXSkKICAgICBlbmQsIHsKQEAgLTIwNjk5LDEy ICsyMDY5OSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9Nzk1CiAgICAgICAgICBPUiBiPTY3MQotICAgICAgICAgT1IgKGQ+PTM4 LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFO RCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3 MSBBTkQgNzMpIEFORCBhIT03MikKLSAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9C ICdwcXJzKicpCiAgICAgICAgICBPUiBiPTMyMgotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5E IGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTM0MDM0CiAgICAgICAgICBP UiBiPTQxMAogICBdXSkKQEAgLTIwNzIxLDEyICsyMDcyMSwxMiBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9Nzk1CiAgICAgICAgICBP UiBiPTY3MQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFORCBhIT03MikKLSAgICAg ICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAgICAgICBPUiBiPTMy MgotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBjPTM0MDM0CiAgICAgICAgICBPUiBiPTQxMAogICBdXSkKQEAgLTIwNzQzLDEw ICsyMDc0MywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGM9MTMwMTMKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9C ICdxcnN0dSonKQotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAg ICAgICAgIE9SIGI9NDcKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2Kicp CiAgICAgICAgICBPUiBiPTgyOAogICBdXSkKQEAgLTIwNzYzLDEwICsyMDc2MywxMCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9MTMw MTMKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdxcnN0dSonKQotICAg ICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAgICAgIE9SIGI9NDcK LSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBi PTgyOAogICBdXSkKQEAgLTIwODc1LDEyICsyMDg3NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODA2CiAgICAgICAgICBPUiBhPTQ3CiAgICAg ICAgICBPUiBkPDAuMAogICAgICAgICAgT1IgYj05ODIKLSAgICAgICAgIE9SIChkPj0yLjAg QU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYg R0xPQiAnamtsbW4qJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk3IEFORCA5OSkgQU5E IGEhPTk4KQogICAgICAgICAgT1IgZSBJUyBOVUxMCkBAIC0yMDg5OCwxMiArMjA4OTgsMTIg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMi4w IEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgwNgogICAg ICAgICAgT1IgYT00NwogICAgICAgICAgT1IgZDwwLjAKICAgICAgICAgIE9SIGI9OTgyCi0g ICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA5NyBBTkQgOTkpIEFORCBhIT05OCkKICAgICAgICAgIE9SIGUgSVMgTlVMTApAQCAt MjA5NTMsMTEgKzIwOTUzLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xMDU2Ci0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI5Ci0gICAgICAgICBPUiAoZD49OS4wIEFORCBk PDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIyMAogICAgICAgICAgT1IgYj00 OTgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQpAQCAt MjA5NzMsMTEgKzIwOTczLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKLSAgICAgIFdIRVJFIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xMDU2Ci0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI5Ci0gICAgICAgICBPUiAoZD49OS4wIEFORCBk PDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIyMAogICAgICAgICAgT1IgYj00 OTgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQpAQCAt MjEwNzEsNyArMjEwNzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTEwCiAg ICAgICAgICBPUiBiPTE5MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFO RCBhIT05KQotICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQogICAgICAgICAgT1Ig Yj0zODUKQEAgLTIxMDk0LDcgKzIxMDk0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYT0xMAogICAgICAgICAgT1IgYj0xOTAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgg QU5EIDEwKSBBTkQgYSE9OSkKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3Bx KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkKICAg ICAgICAgIE9SIGI9Mzg1CkBAIC0yMTE1MiwxMCArMjExNTIsMTAgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1KSBBTkQgYSE9MzQpCiAgICAg ICAgICBPUiBjPTMzMDMzCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAn c3R1dncqJykKLSAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgZyBJUyBOVUxMCiAgICAgICAgICBPUiBiPTIyMAotICAgICAgICAg T1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwg ewogICAgICAgICAtLSA8d2hlcmU3LTIuNTY1LjE+CkBAIC0yMTE3NSwxMCArMjExNzUsMTAg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1KSBB TkQgYSE9MzQpCiAgICAgICAgICBPUiBjPTMzMDMzCiAgICAgICAgICBPUiAoZz0ndXRzcnFw bycgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgy LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZyBJUyBOVUxMCiAgICAgICAgICBPUiBi PTIyMAotICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTY1LjI+CkBAIC0yMTI1 Niw3ICsyMTI1Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJF VFdFRU4gMzAgQU5EIDMyKSBBTkQgYSE9MzEpCi0gICAgICAgICBPUiAoZD49NS4wIEFORCBk PDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjU2OC4xPgpAQCAtMjEyNzAsNyArMjEyNzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQotICAgICAg ICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NS4wIEFORCBkPDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi41NjguMj4KQEAgLTIxMzEzLDcgKzIxMzEzLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEg QkVUV0VFTiAwIEFORCAyKSBBTkQgYSE9MSkKICAgICAgICAgIE9SIGI9MTEwMAotICAgICAg ICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTQyMQogICAgICAgICAgT1IgYj00NjUKICAgICAgICAgIE9SIGI9ODk0CkBAIC0yMTMzNSw3 ICsyMTMzNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgKChhIEJFVFdFRU4gMCBBTkQgMikgQU5EIGEhPTEpCiAgICAgICAgICBPUiBi PTExMDAKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00MjEKICAgICAgICAgIE9SIGI9NDY1CiAgICAgICAgICBPUiBiPTg5 NApAQCAtMjEzNTksNyArMjEzNTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0naWhnZmVkYycgQU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAgICAgIE9SIGI9NDEwCiAg ICAgICAgICBPUiBiPTg1OAotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTcx LjE+CkBAIC0yMTM3Niw3ICsyMTM3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYj00MTAK ICAgICAgICAgIE9SIGI9ODU4Ci0gICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41 NzEuMj4KQEAgLTIxNDIyLDkgKzIxNDIyLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYT01NAogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicp CiAgICAgICAgICBPUiBhPTkKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdo aWprKicpCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41NzMuMT4KQEAgLTIx NDQyLDkgKzIxNDQyLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT01NAogICAg ICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBP UiBhPTkKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdoaWprKicpCi0gICAg ICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41NzMuMj4KQEAgLTIxNTI4LDcgKzIxNTI4 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj01NTMKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIyKQogICAgICAgICAgT1IgKGc9J29ubWxr amknIEFORCBmIEdMT0IgJ3d4eXphKicpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9C ICdqa2xtbionKQogICAgICAgICAgT1IgYj01ODMKICAgICAgICAgIE9SIGE9NTYKQEAgLTIx NTQ3LDcgKzIxNTQ3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj01NTMKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIyKQogICAgICAgICAg T1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3d4eXphKicpCi0gICAgICAgICBPUiAoZD49 NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU5LjAg QU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhn JyBBTkQgZiBHTE9CICdqa2xtbionKQogICAgICAgICAgT1IgYj01ODMKICAgICAgICAgIE9S IGE9NTYKQEAgLTIxNTY0LDcgKzIxNTY0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSBhPTgzCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQog ICAgICAgICAgT1IgYT0xCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFO RCBhIT0xOCkKQEAgLTIxNTgzLDcgKzIxNTgzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBhPTgzCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaCon KQogICAgICAgICAgT1IgYT0xCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkp IEFORCBhIT0xOCkKQEAgLTIxNjM0LDcgKzIxNjM0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYj05MjQKICAgICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9SIGE9NjMKLSAg ICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjE2NTEsNyArMjE2NTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBi PTkyNAogICAgICAgICAgT1IgYT05MgogICAgICAgICAgT1IgYT02MwotICAgICAgICAgT1Ig KGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02 MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZmVk Y2JheicgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yMTY2 OSw3ICsyMTY2OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJj ZCcKICAgICAgICAgIE9SIGI9MTkwCiAgICAgICAgICBPUiAoZiBHTE9CICc/bW5vcConIEFO RCBmIEdMT0IgJ2xtbm8qJykKLSAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04OAogICAgICAgICAgT1IgYj01OAogICBdXSkK QEAgLTIxNjg4LDcgKzIxNjg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0n dnd4eXphYmNkJwogICAgICAgICAgT1IgYj0xOTAKICAgICAgICAgIE9SIChmIEdMT0IgJz9t bm9wKicgQU5EIGYgR0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8 NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4CiAgICAgICAgICBPUiBiPTU4 CiAgIF1dKQpAQCAtMjE3MDUsMTIgKzIxNzA1LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj00OTUKICAgICAgICAgIE9SIGM9MjQw MjQKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xMDAxCiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAn emFiY2QqJykKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAgICAgT1IgYj01MzEKLSAgICAg ICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xMDg5CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjE3MjYsMTIgKzIxNzI2LDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00OTUK ICAgICAgICAgIE9SIGM9MjQwMjQKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDAxCiAgICAgICAgICBPUiAoZz0ndHNy cXBvbicgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAg ICAgT1IgYj01MzEKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMDg5CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjE3NDUs OCArMjE3NDUsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NDEuMCBBTkQgZDw0Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsK ICAgICAgICAgLS0gPHdoZXJlNy0yLjU4Mi4xPgpAQCAtMjE3NTksOCArMjE3NTksOCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDgu MCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQxLjAgQU5E IGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00OC4wIEFORCBkPDQ5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDEuMCBBTkQgZDw0Mi4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjU4Mi4yPgpAQCAtMjE3NzYsNyArMjE3NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSAoKGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFORCBhIT03MikKICAgICAgICAg IE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gODAgQU5EIDgyKSBBTkQgYSE9ODEpCi0gICAgICAgICBPUiAoZD49NTIuMCBB TkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8 NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkxIEFO RCA5MykgQU5EIGEhPTkyKQogICAgICAgICAgT1IgZD4xZTEwCiAgICAgICAgICBPUiBiPTIy CkBAIC0yMTc5Nyw3ICsyMTc5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDcxIEFORCA3MykgQU5EIGEhPTcyKQogICAgICAgICAgT1IgKGc9J3l4d3Z1 dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBB TkQgODIpIEFORCBhIT04MSkKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTEgQU5EIDkzKSBBTkQgYSE9 OTIpCiAgICAgICAgICBPUiBkPjFlMTAKICAgICAgICAgIE9SIGI9MjIKQEAgLTIxODkyLDgg KzIxODkyLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTQg QU5EIDk2KSBBTkQgYSE9OTUpCiAgICAgICAgICBPUiBiPTg1OAogICAgICAgICAgT1IgYj04 MDYKLSAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCi0g ICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTg2LjE+CkBAIC0yMTkwOSw4ICsyMTkw OSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDk0IEFORCA5 NikgQU5EIGEhPTk1KQogICAgICAgICAgT1IgYj04NTgKICAgICAgICAgIE9SIGI9ODA2Ci0g ICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAg ICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU4Ni4yPgpAQCAtMjE5MjUsMTAgKzIxOTI1LDEw IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Zj0ndnd4eXphYmNkJwogICAgICAgICAgT1IgYT03MgotICAgICAgICAgT1IgKGQ+PTM3LjAg QU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBk PDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkzNQotICAgICAgICAg T1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAu MCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAg QU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MTMwMTMKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0yMTk0NCwxMCArMjE5NDQsMTAgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSd2d3h5emFiY2QnCiAg ICAgICAgICBPUiBhPTcyCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAoZD49NDAuMCBBTkQg ZDw0MS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8Mzcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xMzAxMwogICBdXSkKICAgICBlbmQsIHsK QEAgLTIxOTYzLDcgKzIxOTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBjPTUwMDUKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBB TkQgZiBHTE9CICdrbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAnc3R1 dncqJykKICAgICAgICAgIE9SIGI9MTQzCiAgICAgICAgICBPUiBhPTY4CkBAIC0yMTk4Myw3 ICsyMTk4Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgYz01MDA1CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAn a2xtbm8qJykKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAg ICAgICBPUiBiPTE0MwogICAgICAgICAgT1IgYT02OApAQCAtMjIwMDEsOSArMjIwMDEsOSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01LjAgQU5E IGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFO RCBmIEdMT0IgJ2doaWprKicpCi0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc2IEFORCA3OCkgQU5EIGEh PTc3KQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAg ICAgICAgICBPUiBhPTk5CkBAIC0yMjAyMCw5ICsyMjAyMCw5IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01LjAgQU5EIGQ8Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZ2hpamsq JykKLSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9NzcpCiAgICAgICAgICBP UiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIGE9OTkK QEAgLTIyMDQxLDcgKzIyMDQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAg ICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGI9OTcxCiAg ICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTIyMDU5 LDcgKzIyMDU5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1IgKGQ+ PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4w IEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2dXRz cicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGI9OTcxCiAgICAgICAgICBP UiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTIyMTE0LDcgKzIyMTE0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgZj0nbm9wcXJzdHV2JwogICAgICAg ICAgT1IgYj05OTMKICAgICAgICAgIE9SIGE9NzYKLSAgICAgICAgIE9SIChkPj03OS4wIEFO RCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4 MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yMDAyMAogICAgICAgICAg T1IgYT0yNgogICAgICAgICAgT1IgYj0xMDQ4CkBAIC0yMjEzNyw3ICsyMjEzNyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGY9J25vcHFyc3R1dicKICAgICAgICAgIE9SIGI9 OTkzCiAgICAgICAgICBPUiBhPTc2Ci0gICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjAwMjAKICAgICAgICAgIE9SIGE9MjYK ICAgICAgICAgIE9SIGI9MTA0OApAQCAtMjIxNTksMTEgKzIyMTU5LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj03ODEKICAgICAg ICAgIE9SIGI9NjcxCi0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5P VCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAgICAg ICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTM4NQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBm IEdMT0IgJ2ZnaGlqKicpCiAgIF1dKQpAQCAtMjIxODAsMTEgKzIyMTgwLDExIEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03ODEKICAg ICAgICAgIE9SIGI9NjcxCi0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBk IE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAg ICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTM4NQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFO RCBmIEdMT0IgJ2ZnaGlqKicpCiAgIF1dKQpAQCAtMjIyMDUsNyArMjIyMDUsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTgyNQogICAgICAgICAgT1IgYj03MDQKICAgICAg ICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQotICAgICAgICAgT1Ig KGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTku MCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTggQU5EIDYwKSBBTkQgYSE9NTkpCiAgICAgICAgICBPUiBhPTc2CiAgICAgICAgICBP UiBjPTMyMDMyCkBAIC0yMjIyOCw3ICsyMjIyOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9ODI1CiAgICAgICAgICBPUiBiPTcwNAogICAgICAgICAgT1IgKGc9J21sa2pp aGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFO RCBhIT01OSkKICAgICAgICAgIE9SIGE9NzYKICAgICAgICAgIE9SIGM9MzIwMzIKQEAgLTIy Mjc1LDcgKzIyMjc1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTg2OQogICAgICAgICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+ PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ny4w IEFORCBkPDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuNTk2LjE+CkBAIC0yMjI5MCw3ICsyMjI5MCw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj04NjkKICAg ICAgICAgIE9SIGE9MzQKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU5Ni4y PgpAQCAtMjIzODQsOSArMjIzODQsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9NDQzCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9ODM5Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd4 eXphYionKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ25vcHFyKicp CiAgICAgICAgICBPUiBjPTcwMDcKQEAgLTIyNDAzLDkgKzIyNDAzLDkgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTQ0MwotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDEx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgzOQotICAgICAgICAgT1Ig KGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01 MS4wIEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nb25t bGtqaScgQU5EIGYgR0xPQiAneHl6YWIqJykKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBB TkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYz03MDA3CkBAIC0yMjQyMywxMCAr MjI0MjMsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAg IE9SIGE9MjEKLSAgICAgICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVM TCkKLSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBmPSd6YWJjZGVmZ2gnCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTA2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAx NCBBTkQgMTYpIEFORCBhIT0xNSkKICAgICAgICAgIE9SIGI9ODgKQEAgLTIyNDQ1LDEwICsy MjQ0NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIChmIEdMT0IgJz9yc3R1KicgQU5EIGYgR0xPQiAncXJzdConKQogICAgICAgICAg T1IgYT0yMQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGY9J3phYmNkZWZnaCcKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj01MDYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE0 IEFORCAxNikgQU5EIGEhPTE1KQogICAgICAgICAgT1IgYj04OApAQCAtMjI0NjUsMTQgKzIy NDY1LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NDEuMCBBTkQgZDw0Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0n YmNkZWZnaGlqJwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQgYSE9 NjkpCi0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAg T1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBiPTc2 MgotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAneXphYmMqJykKICAgXV0pCiAgICAg ZW5kLCB7CkBAIC0yMjQ4NiwxNCArMjI0ODYsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1 bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA2OCBBTkQgNzApIEFORCBhIT02OSkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBk PDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdM T0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamts bW4qJykKICAgICAgICAgIE9SIGI9NzYyCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9C ICd5emFiYyonKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTIyNTA3LDkgKzIyNTA3LDkgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTg1 LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04NS4wIEFO RCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHkn Ci0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MDIuMT4KQEAgLTIyNTIyLDkg KzIyNTIyLDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAg V0hFUkUgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBm PSdxcnN0dXZ3eHknCi0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MDIuMj4K QEAgLTIyNTM3LDggKzIyNTM3LDggQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9MjEKICAgICAgICAgIE9SIGI8MAogICAgICAgICAgT1IgZj0nYmNkZWZnaGlqJwpA QCAtMjI1NTUsOCArMjI1NTUsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQot ICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYT0yMQogICAgICAgICAgT1IgYjwwCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCkBA IC0yMjU3Myw5ICsyMjU3Myw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBP UiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA2 NwogICAgICAgICAgT1IgYj0yMzEKICAgICAgICAgIE9SIGI9MTEzCkBAIC0yMjU5NCw5ICsy MjU5NCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J2hnZmVkY2InIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49NDAuMCBB TkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8 NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA2NwogICAgICAgICAg T1IgYj0yMzEKICAgICAgICAgIE9SIGI9MTEzCkBAIC0yMjY1NSw3ICsyMjY1NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yNi4w IEFORCBkPDI3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MjYuMCBBTkQg ZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zMDgKICAgICAgICAg IE9SIGM8PTEwCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnaGlqa2wq JykKQEAgLTIyNjc3LDcgKzIyNjc3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTMwOAogICAgICAgICAgT1IgYzw9MTAKICAgICAgICAgIE9SIChn PSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdoaWprbConKQpAQCAtMjI3MDAsMTQgKzIyNzAwLDE0 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTUgQU5E IDk3KSBBTkQgYSE9OTYpCi0gICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTkzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0 MyBBTkQgNDUpIEFORCBhIT00NCkKICAgICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5E IGYgR0xPQiAneXphYionKQogICAgICAgICAgT1IgYj02NjMKICAgICAgICAgIE9SIChnPSdp aGdmZWRjJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgYj04NjkKLSAgICAg ICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xMjEKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yMjcyMiwxNCArMjI3MjIsMTQgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFO RCBhIT05NikKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj05OTMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFORCA0 NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBHTE9C ICd5emFiKicpCiAgICAgICAgICBPUiBiPTY2MwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMn IEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiBiPTg2OQotICAgICAgICAgT1Ig KGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00 My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEyMQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTIyODE0LDkgKzIyODE0LDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj04OTQKICAgICAgICAgIE9SIGE9MzEKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDg0IEFORCA4NikgQU5EIGEhPTg1KQotICAgICAgICAgT1IgKGQ+PTkyLjAg QU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBk PDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk0Ci0gICAgICAgICBP UiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1IgYT0yMQogICAgICAg ICAgT1IgYj0xMDAxCkBAIC0yMjgzNyw5ICsyMjgzNyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIGI9ODk0CiAgICAgICAgICBPUiBhPTMxCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4NCBBTkQgODYpIEFORCBhIT04NSkKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBk PDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT05NAotICAgICAgICAgT1IgKGQ+ PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4w IEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAgICAgICAgIE9SIGE9MjEKICAgICAgICAgIE9S IGI9MTAwMQpAQCAtMjI5NjAsMTAgKzIyOTYwLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgKGYgR0xPQiAnP29wcXIqJyBBTkQgZiBHTE9CICdub3BxKicpCi0gICAg ICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NTIwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0IEFORCA2KSBBTkQgYSE9NSkKLSAg ICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAgICAgICBPUiAoZz0n ZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGE9MjEKQEAgLTIy OTgwLDEwICsyMjk4MCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChm IEdMT0IgJz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTQ3 LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFO RCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTUyMAogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNCBBTkQgNikgQU5EIGEhPTUpCi0gICAgICAgICBPUiAoZD49 NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAg QU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDMxIEFORCAzMykgQU5EIGEhPTMyKQogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBm IEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBhPTIxCkBAIC0yMzAwNSw3ICsyMzAwNSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiBhPTU3 CiAgICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQg ZDwxMDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEw MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjYxNS4xPgpAQCAtMjMwMjQsNyArMjMwMjQsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBiPTQxOAogICAgICAgICAgT1IgYT01NwogICAgICAgICAgT1IgZj0n bW5vcHFyc3R1JwotICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MTUuMj4K QEAgLTIzMDQxLDEyICsyMzA0MSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0ncG9ubWxraicgQU5EIGYgR0xPQiAndnd4eXoqJykKICAgICAgICAgIE9SIGI9NDE4CiAg ICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAgICAgICAg IE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01 OTQKICAgICAgICAgIE9SIGE9MjEKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGE9 OTEKLSAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYxNi4xPgpAQCAtMjMwNjMs MTIgKzIzMDYzLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdwb25tbGtq JyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgYj00MTgKICAgICAgICAgIE9S IChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdzdHV2dyonKQotICAgICAgICAgT1IgKGQ+PTQz LjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFO RCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTU5NAogICAgICAg ICAgT1IgYT0yMQogICAgICAgICAgT1IgYT03OAogICAgICAgICAgT1IgYT05MQotICAgICAg ICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjE2LjI+CkBAIC0yMzExMSwxMCArMjMxMTEs MTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mi4w IEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI2CiAgICAg ICAgICBPUiBiPTY2MwotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTI1CiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAg IF1dKQpAQCAtMjMxMjksMTAgKzIzMTI5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTcyNgogICAgICAgICAgT1IgYj02NjMKLSAgICAgICAgIE9SIChk Pj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMu MCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNQogICAg ICAgICAgT1IgZj0ncXJzdHV2d3h5JwogICBdXSkKQEAgLTIzMTQ5LDcgKzIzMTQ5LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTgw NgogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAg ICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDEwIEFORCAxMikgQU5EIGEhPTExKQogICAgICAgICAgT1IgYj0yNzUK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgwIEFORCA4MikgQU5EIGEhPTgxKQpAQCAtMjMx NjcsNyArMjMxNjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGI9ODA2CiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xP QiAnZWZnaGkqJykKLSAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAg ICAgICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODAgQU5EIDgyKSBB TkQgYSE9ODEpCkBAIC0yMzI5MSw4ICsyMzI5MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9NzE4CiAgICAgICAgICBPUiBhPTQKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElT IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MjMu MT4KQEAgLTIzMzExLDggKzIzMzExLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig Yj03MTgKICAgICAgICAgIE9SIGE9NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYgQU5E IDU4KSBBTkQgYSE9NTcpCi0gICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBk IE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyMy4yPgpAQCAt MjM0MjAsMTIgKzIzNDIwLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj05OTAKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDEgQU5EIDQzKSBBTkQgYSE9NDIpCiAgICAgICAg ICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAgICAgICAgIE9SIChk Pj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODYu MCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MzEKLSAg ICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGYgR0xPQiAnP2hpamsqJyBBTkQgZiBHTE9CICdnaGlqKicpCiAgICAgICAgICBPUiBm PSdxcnN0dXZ3eHknCiAgIF1dKQpAQCAtMjM0NDEsMTIgKzIzNDQxLDEyIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj05OTAKLSAgICAgICAgIE9SIChkPj05Ny4wIEFO RCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5 OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDEgQU5E IDQzKSBBTkQgYSE9NDIpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAn ZmdoaWoqJykKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj01MzEKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2hpamsqJyBBTkQgZiBHTE9C ICdnaGlqKicpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAgIF1dKQpAQCAtMjM0NjUs MTIgKzIzNDY1LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdqaWhnZmVk JyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgYj02MjcKICAgICAgICAgIE9S IChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd2d3h5eionKQotICAgICAgICAgT1IgKGQ+PTM4 LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4wIEFO RCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8Nzku MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAo ZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkz LjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6YWJj ZGVmZycKLSAgICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyOC4xPgpAQCAtMjM0 ODcsMTIgKzIzNDg3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdqaWhn ZmVkJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgYj02MjcKICAgICAgICAg IE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd2d3h5eionKQotICAgICAgICAgT1IgKGQ+ PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4w IEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQg ZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8 NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBP UiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6 YWJjZGVmZycKLSAgICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyOC4yPgpAQCAt MjM2NzcsOSArMjM2NzcsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTAwMQotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjM0LjE+ CkBAIC0yMzY5Miw5ICsyMzY5Miw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigp CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKLSAgICAgIFdIRVJFIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj0xMDAxCi0gICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42 MzQuMj4KQEAgLTIzNzkwLDcgKzIzNzkwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgKGYgR0xPQiAnP3N0dXYqJyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAgICAgICBPUiBi PTc1MQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0g ICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9NjcKICAgICAgICAgIE9SIGI9MTAyCiAgIF1dKQpAQCAtMjM4MDgsNyArMjM4MDgs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZiBHTE9CICc/c3R1dionIEFORCBm IEdMT0IgJ3JzdHUqJykKICAgICAgICAgIE9SIGI9NzUxCiAgICAgICAgICBPUiAoZz0nZ2Zl ZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBk PDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NwogICAgICAgICAgT1IgYj0x MDIKICAgXV0pCkBAIC0yMzgyMywxMiArMjM4MjMsMTIgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI1NgogICAgICAgICAgT1IgYz03MDA3CiAgICAg ICAgICBPUiBjPTI2MDI2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFO RCBhIT04MSkKLSAgICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT02NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTIzODQyLDEyICsy Mzg0MiwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MjU2CiAgICAgICAgICBPUiBjPTcwMDcKICAgICAgICAgIE9SIGM9MjYwMjYKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDgwIEFORCA4MikgQU5EIGEhPTgxKQotICAgICAgICAgT1IgKGQ+ PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NC4w IEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTY2CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjM4NjgsOSArMjM4NjgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBiPTMzCiAgICAgICAgICBPUiBiPTgxNwogICAgICAgICAgT1IgKGc9J3Bv bm1sa2onIEFORCBmIEdMT0IgJ3R1dnd4KicpCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQg ZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBH TE9CICdlZmdoaSonKQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjM5LjE+ CkBAIC0yMzg5MCw5ICsyMzg5MCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 MzMKICAgICAgICAgIE9SIGI9ODE3CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYg R0xPQiAndHV2d3gqJykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicp Ci0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MzkuMj4KQEAgLTIzOTEzLDcg KzIzOTEzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT00OQogICAgICAgICAg T1IgYT01MwogICAgICAgICAgT1IgYT01NgotICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8 ODQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hl cmU3LTIuNjQwLjE+CkBAIC0yMzkzNCw3ICsyMzkzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIGE9NDkKICAgICAgICAgIE9SIGE9NTMKICAgICAgICAgIE9SIGE9NTYKLSAg ICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY0MC4yPgpAQCAtMjQwMTksNyArMjQw MTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYg R0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGI9NTA5CiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBk PDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdM T0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMjQw MzgsNyArMjQwMzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9u bScgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGI9NTA5CiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKLSAgICAgICAgIE9SIChkPj00 OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBB TkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24n IEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgIF1d KQpAQCAtMjQwNTYsNyArMjQwNTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBh PTIzCiAgICAgICAgICBPUiBhPTQzCiAgICAgICAgICBPUiBjPTE5MDE5Ci0gICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MTgw MTgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDA3Myw3ICsyNDA3Myw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIGE9MjMKICAgICAgICAgIE9SIGE9NDMKICAgICAgICAgIE9S IGM9MTkwMTkKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz0xODAxOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTI0MDg4LDcg KzI0MDg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTM2Ci0gICAg ICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MjMxCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjQxMDMsNyArMjQxMDMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MzYKLSAgICAgICAgIE9SIChkPj0yMi4w IEFORCBkPDIzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjIuMCBBTkQg ZDwyMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMzEKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yNDE0NywxNCArMjQxNDcsMTQgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQyMQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsn IEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTcwNAogICAgICAgICAgT1Ig YT05MAogICAgICAgICAgT1IgYT03OAogICAgICAgICAgT1IgMTAwMDAwMDxiCi0gICAgICAg ICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdpaGdmZWRjJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQpCiAgIF1dKQpAQCAtMjQxNjksMTQgKzI0MTY5LDE0 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mjgu MCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MjEKICAg ICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAg T1IgYj03MDQKICAgICAgICAgIE9SIGE9OTAKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAg IE9SIDEwMDAwMDA8YgotICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQogICBdXSkK QEAgLTI0MjYwLDcgKzI0MjYwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoKGEgQkVUV0VFTiA5NCBBTkQgOTYpIEFORCBhIT05NSkKLSAgICAgICAgIE9SIChkPj03 OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzguMCBB TkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMgogICBdXSkK ICAgICBlbmQsIHsKQEAgLTI0Mjc1LDcgKzI0Mjc1LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA5NCBBTkQgOTYpIEFORCBhIT05NSkKLSAgICAg ICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0yMgogICBdXSkKICAgICBlbmQsIHsKQEAgLTI0MjkxLDkgKzI0MjkxLDkgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI3NQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNTcgQU5EIDU5KSBBTkQgYSE9NTgpCi0gICAgICAgICBP UiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdy cXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5E IGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdpamtsbW5vcHEnCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjQzMDksOSArMjQzMDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9Mjc1CiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA1NyBBTkQgNTkpIEFORCBhIT01OCkKLSAgICAgICAgIE9SIChkPj05Mi4w IEFORCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQg ZDw5My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFO RCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2lqa2xtbm9wcScKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yNDM5OSw3ICsyNDM5OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz0xMjAxMgogICAgICAgICAgT1IgYT0xNgogICAgICAgICAgT1Ig YT0xNQpAQCAtMjQ0MjEsNyArMjQ0MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rp b24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM9MTIwMTIKICAgICAgICAgIE9SIGE9MTYKICAgICAgICAgIE9S IGE9MTUKQEAgLTI0NDQ5LDggKzI0NDQ5LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAgIE9SIGI9NTM5Ci0gICAg ICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTI0NDcwLDggKzI0NDcwLDggQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAgIE9S IGI9NTM5Ci0gICAgICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT0yMQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI0NTYxLDkgKzI0NTYxLDkgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI0 MgogICAgICAgICAgT1IgYj05MDUKLSAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2lq a2xtKicpCi0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9MjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY3IEFORCA2OSkg QU5EIGEhPTY4KQogICAgICAgICAgT1IgYj0xMTAwCkBAIC0yNDU4Myw5ICsyNDU4Myw5IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0y NDIKICAgICAgICAgIE9SIGI9OTA1Ci0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdp amtsbSonKQotICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTI0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkp IEFORCBhIT02OCkKICAgICAgICAgIE9SIGI9MTEwMApAQCAtMjQ2MDcsNyArMjQ2MDcsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTcyCiAgICAgICAgICBPUiBiPTM3Nwog ICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNkKicpCi0gICAg ICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NDc2CiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykK ICAgXV0pCkBAIC0yNDYyNiw3ICsyNDYyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGE9NzIKICAgICAgICAgIE9SIGI9Mzc3CiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNk ZSonIEFORCBmIEdMT0IgJ2FiY2QqJykKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NzYKICAgICAgICAgIE9SIChnPSd5 eHd2dXRzJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICBdXSkKQEAgLTI0NjQzLDEwICsyNDY0 MywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9MjQ1CiAgICAgICAgICBPUiBiPTYzOAotICAgICAgICAgT1IgKGQ+PTYyLjAgQU5E IGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYg R0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIGY9J29wcXJzdHV2dycKLSAgICAgICAgIE9S IChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MTcK ICAgICAgICAgIE9SIGE9ODUKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9C ICdtbm9wcSonKQpAQCAtMjQ2NjQsMTAgKzI0NjY0LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0yNDUKICAgICAgICAgIE9SIGI9 NjM4Ci0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAg T1IgZj0nb3BxcnN0dXZ3JwotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgxNwogICAgICAgICAgT1IgYT04NQogICAgICAg ICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicpCkBAIC0yNDc0Niw3ICsy NDc0Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4g NTUgQU5EIDU3KSBBTkQgYSE9NTYpCi0gICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM8PTEwCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA3NSBBTkQgNzcpIEFORCBhIT03NikKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBB TkQgZiBHTE9CICd1dnd4eSonKQpAQCAtMjQ3NjYsNyArMjQ3NjYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDU1IEFORCA1NykgQU5EIGEhPTU2 KQotICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBjPD0xMAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQg YSE9NzYpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndXZ3eHkqJykK QEAgLTI0ODM5LDcgKzI0ODM5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCiAgICAgICAgICBPUiBhPTQ0CiAgICAg ICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnbW5vcHEqJykKLSAgICAgICAgIE9S IChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEw OTIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDg2MSw3ICsyNDg2MSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQog ICAgICAgICAgT1IgYT00NAogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0Ig J21ub3BxKicpCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMDkyCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjQ5MjEs MTQgKzI0OTIxLDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYT0xMgogICAgICAgICAgT1IgYj05MzUKLSAgICAgICAgIE9SIChkPj04 Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBB TkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDcwCiAgICAg ICAgICBPUiBhPTI0CiAgICAgICAgICBPUiBhPTk1CiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAyNyBBTkQgMjkpIEFORCBhIT0yOCkKICAgICAgICAgIE9SIGE9NDAKICAgICAgICAgIE9S IGI9OTM1Ci0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42NjcuMT4KQEAgLTI0 OTQzLDE0ICsyNDk0MywxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGE9MTIKICAgICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAo ZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3 LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA3MAog ICAgICAgICAgT1IgYT0yNAogICAgICAgICAgT1IgYT05NQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMjcgQU5EIDI5KSBBTkQgYSE9MjgpCiAgICAgICAgICBPUiBhPTQwCiAgICAgICAg ICBPUiBiPTkzNQotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjY3LjI+CkBA IC0yNDk2OCw3ICsyNDk2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjA5 CiAgICAgICAgICBPUiBiPTM3NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzYgQU5EIDc4 KSBBTkQgYSE9NzcpCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGM9MjIwMjIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDk4 Nyw3ICsyNDk4Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjA5CiAgICAg ICAgICBPUiBiPTM3NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQg YSE9NzcpCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGM9MjIwMjIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNTA0Nyw5ICsy NTA0Nyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj05OQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlq KicpCi0gICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIE5PVCBOVUxMKQot ICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xLjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2 LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi42NzAuMT4KQEAgLTI1MDY0LDkgKzI1MDY0LDkgQEAgdGVz dDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTk5CiAg ICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAgICAgICAg IE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00Ni4w IEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQg ZDw5OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjY3MC4yPgpAQCAtMjUwODAsNyArMjUwODAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGE9MwotICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYj04MTQKICAg ICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdiY2RlZionKQpAQCAtMjUxMDEs NyArMjUxMDEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MwotICAg ICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTM1NQogICAgICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBB TkQgZiBHTE9CICdiY2RlZionKQpAQCAtMjUxMjEsOCArMjUxMjEsOCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFO RCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYp IEFORCBhIT02NSkKQEAgLTI1MTQxLDggKzI1MTQxLDggQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj0zNjMKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9C ICdmZ2hpaionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjQgQU5EIDY2KSBBTkQgYSE9 NjUpCkBAIC0yNTE5OCw4ICsyNTE5OCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGE9NzkKICAgICAgICAgIE9SIGI9MjAxCiAgICAgICAgICBPUiBiPTk5Ci0gICAgICAgICBP UiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4w IEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTkuMCBB TkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NAogICAgICAg ICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAgICAgICBP UiBhPTg5CkBAIC0yNTIxOCw4ICsyNTIxOCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdI RVJFIGE9NzkKICAgICAgICAgIE9SIGI9MjAxCiAgICAgICAgICBPUiBiPTk5Ci0gICAgICAg ICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y MS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTku MCBBTkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NAogICAg ICAgICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAgICAg ICBPUiBhPTg5CkBAIC0yNTI3OSw3ICsyNTI3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd0dXZ3 eConKQogICAgICAgICAgT1IgZj0na2xtbm9wcXJzJwogICAgICAgICAgT1IgZj0nbG1ub3Bx cnN0JwpAQCAtMjUyOTUsNyArMjUyOTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rp b24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndHV2d3gqJykK ICAgICAgICAgIE9SIGY9J2tsbW5vcHFycycKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcK QEAgLTI1MzkzLDcgKzI1MzkzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBiPTcwNwogICAg ICAgICAgT1IgYj0zNjMKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBB TkQgZiBHTE9CICd5emFiYyonKQogICBdXSkKQEAgLTI1NDE0LDcgKzI1NDE0LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWpr KicpCiAgICAgICAgICBPUiBiPTcwNwogICAgICAgICAgT1IgYj0zNjMKLSAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcK ICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd5emFiYyonKQogICBdXSkK QEAgLTI1NDI5LDcgKzI1NDI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTIKICAgICAgICAgIE9SIGE9ODQKICAgICAgICAgIE9SIGI9Mzk5CkBA IC0yNTQ1MSw3ICsyNTQ1MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKLSAgICAgIFdIRVJFIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYT0yCiAgICAgICAgICBPUiBhPTg0CiAgICAgICAgICBPUiBiPTM5OQpAQCAt MjU0NzgsNyArMjU0NzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAzOCBBTkQgNDApIEFORCBhIT0zOSkKICAgICAgICAgIE9SIGM9MzAwMwogICAgICAg ICAgT1IgYT0xOQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0yNTQ5Nyw3ICsyNTQ5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM4IEFORCA0MCkgQU5EIGEhPTM5KQogICAgICAg ICAgT1IgYz0zMDAzCiAgICAgICAgICBPUiBhPTE5Ci0gICAgICAgICBPUiAoZD49NDYuMCBB TkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8 NDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFO RCAyMikgQU5EIGEhPTIxKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI1NTEzLDEwICsyNTUx MywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9NjUyCiAgICAgICAgICBPUiBhPTgzCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyCiAgICAgICAgICBPUiBi PTMwMAotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjgyLjE+CkBAIC0yNTUz MSwxMCArMjU1MzEsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSBiPTY1MgogICAgICAgICAgT1IgYT04MwotICAgICAgICAgT1IgKGQ+ PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4w IEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMgogICAg ICAgICAgT1IgYj0zMDAKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY4Mi4y PgpAQCAtMjU1OTQsMTQgKzI1NTk0LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGI9MjA5CiAgICAgICAgICBPUiBiPTE5OAogICAgICAgICAgT1IgYT01MgotICAgICAgICAg T1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBkPDAu MAogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAg ICAgICBPUiAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hpamsqJykKICAgICAgICAg IE9SIGI9MTY4Ci0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGY9J3V2d3h5emFiYycKLSAgICAgICAgIE9SIChkPj00Mi4wIEFO RCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0 My4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjY4NC4xPgpAQCAtMjU2MTcsMTQgKzI1NjE3LDE0IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgIFdIRVJFIGI9MjA5CiAgICAgICAgICBPUiBiPTE5OAogICAgICAgICAgT1Ig YT01MgotICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBkPDAuMAogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0Ig J2prbG1uKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hp amsqJykKICAgICAgICAgIE9SIGI9MTY4Ci0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwy NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3V2d3h5emFiYycKLSAgICAgICAg IE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY4NC4yPgpAQCAtMjU2NDUsNyArMjU2NDUsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAn Z2hpamsqJykKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdpamtsbSon KQogICAgICAgICAgT1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu Njg1LjE+CkBAIC0yNTY2Niw3ICsyNTY2Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKGc9 J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBhPTE0Ci0gICAg ICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42ODUuMj4KQEAgLTI1Nzk1LDEwICsyNTc5 NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGM9MjcwMjcKICAgICAgICAgIE9SIGI9OTY4Ci0gICAgICAgICBPUiAoZD49NTEuMCBB TkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8 NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBP UiBiPTkyNAotICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBjPTE0MDE0CiAgICAgICAgICBPUiBiPTEwMDEKICAgXV0pCkBAIC0y NTgxNSwxMCArMjU4MTUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBjPTI3MDI3CiAgICAgICAgICBPUiBiPTk2OAotICAgICAgICAg T1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj01MS4wIEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4 NwogICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xNDAxNAogICAgICAgICAgT1IgYj0xMDAx CiAgIF1dKQpAQCAtMjU4MzcsNyArMjU4MzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgICAgICAgIE9SIChn PSdnZmVkY2JhJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgKGYgR0xPQiAn P3V2d3gqJyBBTkQgZiBHTE9CICd0dXZ3KicpCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQg ZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDQzCiAgICAgICAgICBPUiBi PTU2NAogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCkBA IC0yNTg2MCw3ICsyNTg2MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEn IEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/dXZ3eConIEFO RCBmIEdMT0IgJ3R1dncqJykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NDMKICAgICAgICAgIE9SIGI9NTY0CiAgICAg ICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncnN0dXYqJykKQEAgLTI1OTEwLDcg KzI1OTEwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J2tqaWhnZmUnIEFO RCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiBiPTUzMQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gOTMgQU5EIDk1KSBBTkQgYSE9OTQpCi0gICAgICAgICBPUiAoZD49My4wIEFO RCBkPDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjY5Mi4xPgpAQCAtMjU5MjYsNyArMjU5MjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAg IE9SIGI9NTMxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05 NCkKLSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjkyLjI+CkBAIC0yNTk2NywxMCAr MjU5NjcsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAyNCBBTkQgMjYpIEFORCBhIT0yNSkKLSAgICAgICAgIE9SIChkPj04My4w IEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQg ZDwyMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc4NAogICAgICAgICAgT1IgYj03 MTgKICAgICAgICAgIE9SIGE9MTgKQEAgLTI1OTkwLDEwICsyNTk5MCwxMCBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjAuMCBBTkQg ZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI0IEFORCAy NikgQU5EIGEhPTI1KQotICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiBiPTcxOAogICAgICAgICAgT1IgYT0x OApAQCAtMjYwMTYsMTEgKzI2MDE2LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGI9NDczCiAgICAgICAgICBPUiBiPTY0OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDYg QU5EIDQ4KSBBTkQgYSE9NDcpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEwMAogICAgICAgICAgT1IgYj0xMDEyCiAg ICAgICAgICBPUiBhPTcyCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTc2CiAgICAgICAgICBPUiBiPTM1NQogICBdXSkK QEAgLTI2MDM4LDExICsyNjAzOCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBi PTQ3MwogICAgICAgICAgT1IgYj02NDkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ2IEFO RCA0OCkgQU5EIGEhPTQ3KQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMDAKICAgICAgICAgIE9SIGI9MTAxMgogICAg ICAgICAgT1IgYT03MgotICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTE3NgogICAgICAgICAgT1IgYj0zNTUKICAgXV0pCkBA IC0yNjA1NywxMyArMjYwNTcsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBmPSdjZGVmZ2hpamsnCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwy MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFORCAzMikg QU5EIGEhPTMxKQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAg ICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY5Ni4xPgpAQCAtMjYwNzYsMTMgKzI2 MDc2LDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0n Y2RlZmdoaWprJwotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKLSAg ICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2doaWprKicpCi0gICAgICAgICBPUiAoZD49 OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkxLjAg QU5EIGQ8OTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi42OTYuMj4KQEAgLTI2MDk3LDcgKzI2MDk3LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0nbWxramlo ZycgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBP UiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4 CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAg ICAgIE9SIGY9J2RlZmdoaWprbCcKQEAgLTI2MTE3LDcgKzI2MTE3LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0nbWxramloZycg QU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAo ZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIy LjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAgICAg IE9SIGY9J2RlZmdoaWprbCcKQEAgLTI2MTM2LDcgKzI2MTM2LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA3IEFORCA5KSBBTkQgYSE9OCkKLSAg ICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj05MDIKICAgICAgICAgIE9SIGI9MjUKICAgXV0pCkBAIC0yNjE1Miw3ICsyNjE1Miw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNyBBTkQg OSkgQU5EIGEhPTgpCi0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9OTAyCiAgICAgICAgICBPUiBiPTI1CiAgIF1dKQpAQCAt MjYxNjgsNyArMjYxNjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChn PSd0c3JxcG9uJyBBTkQgZiBHTE9CICdhYmNkZSonKQotICAgICAgICAgT1IgKGQ+PTU1LjAg QU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFORCBk PDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OCBB TkQgNzApIEFORCBhIT02OSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc0IEFORCA3Nikg QU5EIGEhPTc1KQogICAgICAgICAgT1IgYj0xMDkyCkBAIC0yNjE4Niw3ICsyNjE4Niw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J3RzcnFwb24nIEFORCBmIEdM T0IgJ2FiY2RlKicpCi0gICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzQgQU5EIDc2KSBBTkQgYSE9NzUpCiAgICAgICAg ICBPUiBiPTEwOTIKQEAgLTI2MzI1LDcgKzI2MzI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj03NwogICAgICAgICAgT1IgYj05MjcKICAgICAgICAgIE9SIGE9OTkKLSAg ICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4KicpCiAgIF1dKQogICAgIGVu ZCwgewpAQCAtMjYzNDcsNyArMjYzNDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBiPTc3CiAgICAgICAgICBPUiBiPTkyNwogICAgICAgICAgT1IgYT05OQotICAgICAgICAg T1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBH TE9CICc/dnd4eSonIEFORCBmIEdMT0IgJ3V2d3gqJykKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0yNjM2MSw4ICsyNjM2MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCi0g ICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTExCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMpIEFORCBhIT0yMikK ICAgXV0pCkBAIC0yNjM3Nyw4ICsyNjM3Nyw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTExCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMpIEFO RCBhIT0yMikKICAgXV0pCkBAIC0yNjQyMSwxMyArMjY0MjEsMTMgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00NC4wIEFORCBkPDQ1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NCBBTkQgNTYpIEFO RCBhIT01NSkKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKICAgICAgICAgIE9SIChmIEdM T0IgJz9sbW5vKicgQU5EIGYgR0xPQiAna2xtbionKQogICAgICAgICAgT1IgKGc9J2loZ2Zl ZGMnIEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiBhPTIzCi0gICAgICAgICBP UiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi43MDYuMT4KQEAgLTI2NDQwLDEzICsyNjQ0MCwxMyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ0LjAg QU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDU0IEFORCA1NikgQU5EIGEhPTU1KQogICAgICAgICAgT1IgZj0nbG1ub3BxcnN0JwogICAg ICAgICAgT1IgKGYgR0xPQiAnP2xtbm8qJyBBTkQgZiBHTE9CICdrbG1uKicpCiAgICAgICAg ICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGE9 MjMKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjcwNi4yPgpAQCAtMjY0NjIs NyArMjY0NjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTgzNgogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gODkgQU5EIDkxKSBBTkQgYSE9OTApCiAgICAgICAgICBPUiBi PTYwNQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAg IE9SIGI9NzU5CiAgICAgICAgICBPUiAoZiBHTE9CICc/emFiYyonIEFORCBmIEdMT0IgJ3l6 YWIqJykKQEAgLTI2NDg1LDcgKzI2NDg1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgYj04MzYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkw KQogICAgICAgICAgT1IgYj02MDUKLSAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3N0 dXZ3KicpCiAgICAgICAgICBPUiBiPTc1OQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMq JyBBTkQgZiBHTE9CICd5emFiKicpCkBAIC0yNjUwNSw4ICsyNjUwNSw4IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01MS4wIEFORCBk PDUyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu NzA4LjE+CkBAIC0yNjUxOSw4ICsyNjUxOSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzA4LjI+CkBAIC0yNjYw NCw3ICsyNjYwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdubWxramlo JyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNiBBTkQgOCkgQU5EIGEhPTcpCi0gICAgICAgICBPUiAoZD49NzUuMCBB TkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8 NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAgICAgICAgIE9S IGE9MjgKICAgXV0pCkBAIC0yNjYyMiw3ICsyNjYyMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAg T1IgYT0zNAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNiBBTkQgOCkgQU5EIGEhPTcpCi0g ICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9NjcKICAgICAgICAgIE9SIGE9MjgKICAgXV0pCkBAIC0yNjY0MCw3ICsyNjY0MCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9C ICdwcXJzdConKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NjggQU5EIDcwKSBBTkQgYSE9NjkpCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKICAgICAgICAgIE9S IChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKGYgR0xP QiAnP2hpamsqJyBBTkQgZiBHTE9CICdnaGlqKicpCkBAIC0yNjY2Myw3ICsyNjY2Myw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdw cXJzdConKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjgg QU5EIDcwKSBBTkQgYSE9NjkpCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKICAgICAgICAgIE9SIChn PSd1dHNycXBvJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKGYgR0xPQiAn P2hpamsqJyBBTkQgZiBHTE9CICdnaGlqKicpCkBAIC0yNjY4NSw3ICsyNjY4NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3Fw b25tbGsnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2 OSBBTkQgNzEpIEFORCBhIT03MCkKLSAgICAgICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NwogICBdXSkKICAgICBlbmQsIHsKQEAg LTI2NzAxLDcgKzI2NzAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFyc3QqJykKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDY5IEFORCA3MSkgQU5EIGEhPTcwKQotICAgICAgICAg T1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ3 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjY3ODAsNyArMjY3ODAsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGM9MzEwMzEKLSAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwx My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBm IEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFO RCBhIT02NykKICAgICAgICAgIE9SIGI9MjU2CkBAIC0yNjgwMyw3ICsyNjgwMyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMTAzMQotICAgICAgICAgT1IgKGQ+ PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4w IEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncG9ubWxr aicgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY2IEFO RCA2OCkgQU5EIGEhPTY3KQogICAgICAgICAgT1IgYj0yNTYKQEAgLTI2ODMzLDcgKzI2ODMz LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yCiAgICAgICAgICBPUiBhPTUx CiAgICAgICAgICBPUiBiPTI4NgotICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgwCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MjY4NTUsNyArMjY4NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTIKICAg ICAgICAgIE9SIGE9NTEKICAgICAgICAgIE9SIGI9Mjg2Ci0gICAgICAgICBPUiAoZD49OTYu MCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5E IGQ8OTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODAKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yNjg3MSw3ICsyNjg3MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj04NDcKICAgICAgICAgIE9SIGY9J2Vm Z2hpamtsbScKLSAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzE4LjE+CkBAIC0yNjg4 Niw3ICsyNjg4Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYj04NDcKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAgICAg IE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNzE4LjI+CkBAIC0yNjkzMSw3ICsyNjkzMSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEh PTMyKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAg ICAgICAgICBPUiBhPTQzCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI5CiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcg QU5EIGYgR0xPQiAnb3BxcnMqJykKICAgXV0pCkBAIC0yNjk1MCw3ICsyNjk1MCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEh PTMyKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAg ICAgICAgICBPUiBhPTQzCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI5CiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcg QU5EIGYgR0xPQiAnb3BxcnMqJykKICAgXV0pCkBAIC0yNzAwNiw3ICsyNzAwNiw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDAgQU5EIDQyKSBB TkQgYSE9NDEpCi0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM8PTEwCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYg R0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGE9MzUKQEAgLTI3MDE1LDcgKzI3MDE1LDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT03MwogICAgICAgICAgT1IgYj03MzcK ICAgICAgICAgIE9SIGM9MTgwMTgKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjcyMi4xPgpAQCAtMjcwMjksNyArMjcwMjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAg ICAgIFdIRVJFICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQxKQotICAgICAgICAg T1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPD0x MAogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAg ICAgICBPUiBhPTM1CkBAIC0yNzAzOCw3ICsyNzAzOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIGE9NzMKICAgICAgICAgIE9SIGI9NzM3CiAgICAgICAgICBPUiBjPTE4MDE4 Ci0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43MjIuMj4KQEAgLTI3MDUyLDcg KzI3MDUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VF TiAwIEFORCAyKSBBTkQgYSE9MSkKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3Jz dHV2KicpCiAgICAgICAgICBPUiBiPTc2MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzkg QU5EIDQxKSBBTkQgYSE9NDApCkBAIC0yNzA3MCw3ICsyNzA3MCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMCBBTkQgMikgQU5EIGEhPTEpCi0g ICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj03 NjIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM5IEFORCA0MSkgQU5EIGEhPTQwKQpAQCAt MjcwOTMsNyArMjcwOTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTk3OQog ICAgICAgICAgT1IgYT0zNgogICAgICAgICAgT1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBH TE9CICd1dnd4KicpCi0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGE9NTUKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQg ZiBHTE9CICdyc3R1dionKQogICBdXSkKQEAgLTI3MTE0LDcgKzI3MTE0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj05NzkKICAgICAgICAgIE9SIGE9MzYKICAgICAgICAg IE9SIChmIEdMT0IgJz92d3h5KicgQU5EIGYgR0xPQiAndXZ3eConKQotICAgICAgICAgT1Ig KGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01 MC4wIEFORCBkPDUxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU1CiAg ICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgXV0pCkBA IC0yNzE2Myw3ICsyNzE2Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj0xMDA0CiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5E IGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTU2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjcxNzks NyArMjcxNzksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAg ICAgIFdIRVJFIGI9MTAwNAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0Ig J2prbG1uKicpCi0gICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYT01NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTI3MjAyLDcgKzI3MjAy LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj05MjQKICAgICAgICAgIE9SIChn PSdsa2ppaGdmJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MAotICAg ICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzI3LjE+CkBAIC0yNzIyNCw3ICsyNzIy NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9OTI0CiAgICAgICAgICBPUiAo Zz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGE9NTAKLSAg ICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjcyNy4yPgpAQCAtMjcyOTksMTIgKzI3 Mjk5LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgKChhIEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiBi PTYwNQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDcyIEFORCA3NCkgQU5EIGEhPTczKQogICAgICAgICAgT1IgZj0n aWprbG1ub3BxJwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODYgQU5EIDg4KSBBTkQgYSE9 ODcpCi0gICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGM9OTAwOQogICAgICAgICAgT1IgYj0zNzQKICAgXV0pCkBAIC0yNzMyMSwx MiArMjczMjEsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSAoKGEgQkVUV0VFTiA3MiBBTkQgNzQpIEFORCBhIT03MykKICAgICAgICAg IE9SIGI9NjA1Ci0gICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBP UiBmPSdpamtsbW5vcHEnCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgpIEFO RCBhIT04NykKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz05MDA5CiAgICAgICAgICBPUiBiPTM3NAogICBdXSkKQEAgLTI3 Mzc5LDcgKzI3Mzc5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAg ICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAg T1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdiY2RlKicpCi0gICAgICAgICBPUiAo ZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1 LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi43MzIuMT4KQEAgLTI3Mzk2LDcgKzI3Mzk2LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIChnPSdmZWRjYmF6 JyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBB TkQgZiBHTE9CICdiY2RlKicpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43 MzIuMj4KQEAgLTI3NDA5LDcgKzI3NDA5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NiBBTkQgOTgpIEFORCBhIT05NykKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0yNzQyMyw3ICsyNzQyMyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTYgQU5EIDk4KSBBTkQg YSE9OTcpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjc0MzgsNyArMjc0MzgsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MTc2Ci0gICAgICAgICBPUiAoZD49MjUu MCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5E IGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI3 IEFORCAyOSkgQU5EIGEhPTI4KQogICAgICAgICAgT1IgYj02MTkKICAgICAgICAgIE9SIGI9 NTk3CkBAIC0yNzQ0Niw3ICsyNzQ0Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGE9MjcKICAgICAgICAgIE9SIGI9OTEKICAgICAgICAgIE9SIGE9NzcKLSAgICAgICAgIE9S IChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsK ICAgICAgICAgLS0gPHdoZXJlNy0yLjczNC4xPgpAQCAtMjc0NjAsNyArMjc0NjAsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MTc2Ci0gICAgICAgICBPUiAoZD49 MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAg QU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDI3IEFORCAyOSkgQU5EIGEhPTI4KQogICAgICAgICAgT1IgYj02MTkKICAgICAgICAgIE9S IGI9NTk3CkBAIC0yNzQ2OCw3ICsyNzQ2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGE9MjcKICAgICAgICAgIE9SIGI9OTEKICAgICAgICAgIE9SIGE9NzcKLSAgICAgICAg IE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjczNC4yPgpAQCAtMjc1MjEsNyArMjc1MjEsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTM3CiAgICAgICAgICBPUiBiPTEwNTYK ICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAg ICAgT1IgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAy MwogICBdXSkKICAgICBlbmQsIHsKQEAgLTI3NTQxLDcgKzI3NTQxLDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICAgT1IgYT0zNwogICAgICAgICAgT1IgYj0xMDU2CiAgICAgICAgICBP UiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj00 LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQuMCBBTkQg ZDw1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMjMKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yNzU5NiwxMCArMjc1OTYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYj0xMDgxCiAgICAgICAgICBPUiBiPTU0MgogICAgICAgICAgT1IgKGc9J21s a2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCi0gICAgICAgICBPUiAoZD49NDcuMCBBTkQg ZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODI4Ci0gICAgICAgICBPUiAo ZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTY0 LjAgQU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFO RCBkPDY4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjQuMCBBTkQg ZDw2NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xOAogICBdXSkKICAg ICBlbmQsIHsKQEAgLTI3NjE2LDEwICsyNzYxNiwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICBXSEVSRSBiPTEwODEKICAgICAgICAgIE9SIGI9NTQyCiAgICAgICAgICBPUiAoZz0nbWxr amloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBk PDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MjgKLSAgICAgICAgIE9SIChk Pj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NjQu MCBBTkQgZDw2NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5E IGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBk PDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE4CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMjc2MzUsNyArMjc2MzUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9S IGE9MTQKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYz0yNzAyNwogICAgICAgICAgT1IgYT00NwogICBdXSkKQEAgLTI3NjUy LDcgKzI3NjUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBmPSdhYmNkZWZnaGknCiAgICAgICAgICBPUiBhPTE0Ci0gICAgICAgICBP UiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9Mjcw MjcKICAgICAgICAgIE9SIGE9NDcKICAgXV0pCkBAIC0yNzY3MSwxMSArMjc2NzEsMTEgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MzcKICAgICAgICAgIE9SIGE9MzcKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKLSAgICAgICAg IE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjUgQU5EIDY3KSBBTkQgYSE9NjYpCiAgICAgICAgICBPUiBhPTkxCiAgICAg ICAgICBPUiBiPTc3Ci0gICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDAuMT4K QEAgLTI3NjkyLDExICsyNzY5MiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTczNwogICAgICAgICAgT1IgYT0zNwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTggQU5E IDEwMCkgQU5EIGEhPTk5KQotICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NSBBTkQgNjcpIEFORCBhIT02 NikKICAgICAgICAgIE9SIGE9OTEKICAgICAgICAgIE9SIGI9NzcKLSAgICAgICAgIE9SIChk Pj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQu MCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjc0MC4yPgpAQCAtMjc3ODIsMTAgKzI3NzgyLDEwIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJj ZConKQogICAgICAgICAgT1IgYT0yNAogICAgICAgICAgT1IgZiBJUyBOVUxMCi0gICAgICAg ICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcu MCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xMjAxMgot ICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzQzLjE+CkBAIC0yNzgwMSwxMCAr Mjc4MDEsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J3RzcnFwb24nIEFO RCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBhPTI0CiAgICAgICAgICBPUiBmIElT IE5VTEwKLSAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBjPTEyMDEyCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDMuMj4K QEAgLTI3ODE4LDcgKzI3ODE4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBhPTk0Ci0gICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAg ICAgT1IgYj03OTIKICAgICAgICAgIE9SIGE9NzcKQEAgLTI3ODM4LDcgKzI3ODM4LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTk0Ci0gICAgICAgICBPUiAoZD49 NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc0LjAg QU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNi JyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj03OTIKICAgICAgICAgIE9S IGE9NzcKQEAgLTI3ODU4LDE0ICsyNzg1OCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQotICAgICAgICAg T1IgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE0 CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OSBBTkQgOTEpIEFORCBhIT05MCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2KQotICAgICAgICAgT1Ig KGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y Ny4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEyMQot ICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDUuMT4KQEAgLTI3ODc5LDE0ICsyNzg3OSwx NCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDUxIEFO RCA1MykgQU5EIGEhPTUyKQotICAgICAgICAgT1IgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4 OSBBTkQgOTEpIEFORCBhIT05MCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAx NykgQU5EIGEhPTE2KQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTEyMQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8 NjQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43 NDUuMj4KQEAgLTI3OTI5LDE1ICsyNzkyOSwxNSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQog ICAgICAgICAgT1IgYj0yNjcKICAgICAgICAgIE9SIGM9MTkwMTkKICAgICAgICAgIE9SIGE9 NDIKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiAoZiBHTE9CICc/c3R1dionIEFO RCBmIEdMT0IgJ3JzdHUqJykKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQogICAgICAg ICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBHTE9CICdqa2xtKicpCiAgIF1dKQpAQCAt Mjc5NTIsMTUgKzI3OTUyLDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKLSAgICAgIFdIRVJFIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMzIgQU5EIDM0KSBBTkQgYSE9MzMpCiAgICAgICAgICBP UiBiPTI2NwogICAgICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgYT00MgogICAgICAg ICAgT1IgYj05MzgKICAgICAgICAgIE9SIChmIEdMT0IgJz9zdHV2KicgQU5EIGYgR0xPQiAn cnN0dSonKQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVM TCkKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCiAgICAgICAgICBPUiAoZiBH TE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKICAgXV0pCkBAIC0yODA1MiwxMyAr MjgwNTIsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0xMDU2CiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA5MSBBTkQgOTMpIEFORCBhIT05MikKICAgICAgICAgIE9SIGI9 MTA3OAotICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBjPTMxMDMxCiAgICAgICAgICBPUiBiPTg2OQogICAgICAgICAgT1IgKGc9 J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBiPTI0NQogICAg ICAgICAgT1IgYT05MgotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTg4MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTI4MDc1 LDEzICsyODA3NSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEwNTYKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDkxIEFORCA5MykgQU5EIGEhPTkyKQogICAgICAgICAg T1IgYj0xMDc4Ci0gICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM9MzEwMzEKICAgICAgICAgIE9SIGI9ODY5CiAgICAgICAgICBP UiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGI9MjQ1 CiAgICAgICAgICBPUiBhPTkyCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgwCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MjgwOTcsMTQgKzI4MDk3LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj0xMDc4CiAgICAgICAgICBPUiBjPTI4MDI4Ci0gICAgICAg ICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00 MC4wIEFORCBkPDQxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mzgu MCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAn P3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAgICAgICBPUiAoZz0nbWxramloZycg QU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE3IEFORCAx OSkgQU5EIGEhPTE4KQogICAgICAgICAgT1IgYz05MDA5CiAgICAgICAgICBPUiBhPTE3Ci0g ICAgICAgICBPUiAoZD49MzkuMCBBTkQgZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NTEuMT4KQEAgLTI4MTE5LDE0ICsy ODExOSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGI9MTA3OAogICAgICAgICAgT1IgYz0yODAyOAotICAgICAgICAgT1IgKGQ+PTQw LjAgQU5EIGQ8NDEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zOC4wIEFO RCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0 MS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8Mzku MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9yc3R1KicgQU5E IGYgR0xPQiAncXJzdConKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0Ig J2prbG1uKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0x OCkKICAgICAgICAgIE9SIGM9OTAwOQogICAgICAgICAgT1IgYT0xNwotICAgICAgICAgT1Ig KGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z OS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNzUxLjI+CkBAIC0yODEzOSwxNCArMjgxMzksMTQgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTU3 LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01Ny4wIEFO RCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgogICAgICAg ICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBm PSd0dXZ3eHl6YWInCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEhPTMyKQog ICAgICAgICAgT1IgYj0xMDM0Ci0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43 NTIuMT4KQEAgLTI4MTU5LDE0ICsyODE1OSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NzYyCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5E IGYgR0xPQiAnZ2hpamsqJykKICAgICAgICAgIE9SIGY9J3R1dnd4eXphYicKLSAgICAgICAg IE9SIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAgICAgICBPUiBiPTEwMzQKLSAg ICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1Mi4yPgpAQCAtMjgyMTgsMTEgKzI4 MjE4LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGM9MTEwMTEKICAgICAgICAg IE9SIGE9MTQKICAgICAgICAgIE9SIGM9MTYwMTYKLSAgICAgICAgIE9SIChkPj0yMS4wIEFO RCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwy Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBm IEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCi0gICAgICAgICBP UiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4w IEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTYuMCBB TkQgZDw5Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MTYKICAgXV0p CiAgICAgZW5kLCB7CkBAIC0yODIzOSwxMSArMjgyMzksMTEgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgV0hFUkUgYz0xMTAxMQogICAgICAgICAgT1IgYT0xNAogICAgICAgICAgT1IgYz0x NjAxNgotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAg IE9SIGY9J2prbG1ub3BxcicKLSAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTkxNgogICBdXSkKICAgICBlbmQsIHsKQEAgLTI4MjY0LDcg KzI4MjY0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0xNAogICAgICAgICAg T1IgYj02MDgKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSon KQotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTEyMQogICAgICAgICAgT1IgYj0zMzMKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQpAQCAtMjgyODcsNyArMjgyODcsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTE0CiAgICAgICAgICBPUiBiPTYwOAogICAgICAg ICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3V2d3h5KicpCi0gICAgICAgICBPUiAo ZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2 LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTIxCiAg ICAgICAgICBPUiBiPTMzMwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTMgQU5EIDk1KSBB TkQgYSE9OTQpCkBAIC0yODM0MCw3ICsyODM0MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAgICAg ICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NTcuMT4KQEAgLTI4MzU0LDcgKzI4MzU0LDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0neHd2dXRzcicgQU5EIGYg R0xPQiAnZWZnaGkqJykKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1Ny4y PgpAQCAtMjgzNzUsNyArMjgzNzUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBj PTEwMDEKICAgICAgICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5E IGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1 OC4xPgpAQCAtMjgzOTYsNyArMjgzOTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBjPTEwMDEKICAgICAgICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScg QU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y Ljc1OC4yPgpAQCAtMjg0ODksOCArMjg0ODksOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NzgxCiAgICAgICAgICBPUiAoZiBHTE9C ICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKLSAgICAgICAgIE9SIChkPj01Ni4wIEFO RCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwx MDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9C ICdiY2RlZionKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZn KicpCiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCkBAIC0yODUxMSw4ICsyODUxMSw4IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03 ODEKICAgICAgICAgIE9SIChmIEdMT0IgJz9wcXJzKicgQU5EIGYgR0xPQiAnb3BxcionKQot ICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZz0nbm1s a2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcK QEAgLTI4NTM1LDcgKzI4NTM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03 MTgKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAg ICAgICAgT1IgYT01MAotICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFO RCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBiPTEwMjMKQEAgLTI4NTU1LDcgKzI4 NTU1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9S IChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MAot ICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTM2MwogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2lqa2xt KicpCiAgICAgICAgICBPUiBiPTEwMjMKQEAgLTI4NTcyLDcgKzI4NTcyLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTEwODEKLSAgICAgICAgIE9SIChkPj01NS4w IEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQg ZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NzMKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgYj01 ODYKQEAgLTI4NTkxLDcgKzI4NTkxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSBiPTEwODEKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj00NzMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFO RCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgYj01ODYKQEAgLTI4NjEwLDggKzI4NjEw LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZiBHTE9CICc/aWprbCon IEFORCBmIEdMT0IgJ2hpamsqJykKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzY0LjE+ CkBAIC0yODYyNSw4ICsyODYyNSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgKGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdoaWprKicpCi0gICAgICAgICBPUiAo ZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTEz LjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFO RCBkPDU5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQg ZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjc2NC4yPgpAQCAtMjg2NDQsNyArMjg2NDQsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYg R0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICds bW5vcConKQotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjg2 NjMsNyArMjg2NjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTQ3CiAgICAg ICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAgICAgIE9S IChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTg0 LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFO RCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3Qn CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjg3MTcsMTYgKzI4NzE3LDE2IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBk PDY0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgYj0xNTQKLSAg ICAgICAgIE9SIChkPj0yNC4wIEFORCBkPDI1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYT0yMgotICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTUyCiAgICAgICAgICBPUiBhPTIxCi0gICAgICAgICBPUiAoZD49 NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcwLjAg QU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi43NjcuMT4KQEAgLTI4NzM5LDE2ICsyODczOSwxNiBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8 MTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02OTYKICAgICAgICAgIE9SIGI9MTU0 Ci0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGE9MjIKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgYT0yMQotICAgICAgICAgT1Ig KGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNzY3LjI+CkBAIC0yODc2Nyw3ICsyODc2Nyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NTIwCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAyMyBBTkQgMjUpIEFORCBhIT0yNCkKICAgICAgICAgIE9SIGI9NDA3Ci0gICAgICAgICBP UiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM+PTM0 MDM1CiAgICAgICAgICBPUiBiPTEzNQogICBdXSkKQEAgLTI4Nzg4LDcgKzI4Nzg4LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDIzIEFORCAyNSkgQU5EIGEhPTI0KQogICAgICAgICAgT1IgYj00MDcKLSAgICAgICAg IE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz49 MzQwMzUKICAgICAgICAgIE9SIGI9MTM1CiAgIF1dKQpAQCAtMjg4MDMsNyArMjg4MDMsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NDMuMCBBTkQgZDw0NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQzLjAg QU5EIGQ8NDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzA3CiAgICAg ICAgICBPUiBiPTE0CiAgICAgICAgICBPUiBiPTEwODkKQEAgLTI4ODIwLDcgKzI4ODIwLDcg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00My4w IEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTcwNwogICAg ICAgICAgT1IgYj0xNAogICAgICAgICAgT1IgYj0xMDg5CkBAIC0yODkwOCw3ICsyODkwOCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT04NwotICAgICAgICAgT1Ig KGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00 Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4Nwog ICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgIF1dKQpA QCAtMjg5MjQsNyArMjg5MjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGE9ODcKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00ODcKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9C ICdtbm9wcSonKQogICBdXSkKQEAgLTI4OTQ0LDkgKzI4OTQ0LDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj02MDgKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBh PTY3Ci0gICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9MTA1OQotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE4CiAgICAgICAgICBPUiBiPTQwNwogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCkBAIC0yODk2Nyw5ICsy ODk2Nyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NjA4CiAgICAgICAgICBP UiBiPTgxNAogICAgICAgICAgT1IgYT02NwotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8 NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNTkKLSAgICAgICAgIE9SIChk Pj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTgu MCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xOAogICAg ICAgICAgT1IgYj00MDcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDEwIEFORCAxMikgQU5E IGEhPTExKQpAQCAtMjkwMjAsOSArMjkwMjAsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSBiPTIyMAogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZn KicpCiAgICAgICAgICBPUiBiPTM2MwotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8Njcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAn ZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjkwMzksOSArMjkwMzksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSBiPTIyMAogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0Ig J2NkZWZnKicpCiAgICAgICAgICBPUiBiPTM2MwotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5E IGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYg R0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEp CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjkwNTYsMTEgKzI5MDU2LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj00OTgKLSAgICAgICAgIE9SIChkPj01LjAgQU5E IGQ8Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4MAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjAgQU5EIDYyKSBBTkQgYSE9NjEpCiAgICAgICAgICBPUiBiPTgyOAotICAg ICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTExMwogICBdXSkKICAgICBlbmQsIHsKQEAgLTI5MDc1LDExICsyOTA3NSwxMSBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAoZD49 NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5E IGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04ODAKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDYwIEFORCA2MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgYj04 MjgKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xMTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yOTA5NCw3ICsyOTA5NCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDU5Ci0gICAgICAgICBP UiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTYw CiAgICAgICAgICBPUiAoZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAg ICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9wcSonKQpAQCAtMjkxMTMs NyArMjkxMTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MTA1OQot ICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTk2MAogICAgICAgICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQgZiBHTE9CICdx cnN0KicpCiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbW5vcHEqJykK QEAgLTI5MTY2LDcgKzI5MTY2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMjEgQU5EIDIzKSBBTkQgYSE9MjIpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA4NiBBTkQgODgpIEFORCBhIT04NykKICAgICAgICAgIE9SIGM9MjMwMjMKLSAgICAgICAg IE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzc5LjE+CkBAIC0yOTE4Niw3ICsyOTE4Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykg QU5EIGEhPTIyKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODYgQU5EIDg4KSBBTkQgYSE9 ODcpCiAgICAgICAgICBPUiBjPTIzMDIzCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwx MDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjc3OS4yPgpAQCAtMjkyMDMsNyArMjkyMDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZiBHTE9CICc/cXJzdConIEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDggQU5EIDEwKSBBTkQgYSE9OSkKICAgICAgICAgIE9SIGY9 J2FiY2RlZmdoaScKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj04NjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yOTIyMSw3 ICsyOTIyMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0 KicgQU5EIGYgR0xPQiAncHFycyonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQg MTApIEFORCBhIT05KQogICAgICAgICAgT1IgZj0nYWJjZGVmZ2hpJwotICAgICAgICAgT1Ig KGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05 Mi4wIEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg2OQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTI5MjcxLDEwICsyOTI3MSwxMCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTEwMzcKICAgICAgICAgIE9SIGI9MTMyCiAgICAgICAgICBP UiBjPTEwMDEKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbm9wcXIqJykKLSAgICAgICAgIE9S IChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tq aWhnZmUnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBhPTMyCiAgIF1dKQpA QCAtMjkyOTMsMTAgKzI5MjkzLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 MTAzNwogICAgICAgICAgT1IgYj0xMzIKICAgICAgICAgIE9SIGM9MTAwMQotICAgICAgICAg T1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAu MCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAg QU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2Jh JyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTku MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAn cXJzdHUqJykKICAgICAgICAgIE9SIGE9MzIKICAgXV0pCkBAIC0yOTMxMyw3ICsyOTMxMyw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg YT0yNAogICAgICAgICAgT1IgYj05MjcKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT03CiAgICAgICAgICBPUiBiPTQ2Mgog ICAgICAgICAgT1IgYj02MDgKQEAgLTI5MzM1LDcgKzI5MzM1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTI0CiAgICAgICAgICBP UiBiPTkyNwotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTcKICAgICAgICAgIE9SIGI9NDYyCiAgICAgICAgICBPUiBiPTYw OApAQCAtMjkzODcsMTYgKzI5Mzg3LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0zNgogICAgICAgICAgT1IgKGYgR0xPQiAnP2VmZ2gqJyBBTkQg ZiBHTE9CICdkZWZnKicpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAn Y2RlZmcqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ2IEFORCA0OCkgQU5EIGEhPTQ3 KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCi0gICAg ICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgKGc9J2pp aGdmZWQnIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQg ZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8Nzgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI2IEFORCAy OCkgQU5EIGEhPTI3KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI5NDEwLDE2ICsyOTQxMCwx NiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYw LjAgQU5EIGQ8NjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzYKICAg ICAgICAgIE9SIChmIEdMT0IgJz9lZmdoKicgQU5EIGYgR0xPQiAnZGVmZyonKQogICAgICAg ICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA0NiBBTkQgNDgpIEFORCBhIT00NykKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDMxIEFORCAzMykgQU5EIGEhPTMyKQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8 OTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xP QiAnZWZnaGkqJykKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd2d3h5 eionKQotICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNiBBTkQgMjgpIEFORCBhIT0yNykKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yOTQ0MCw3ICsyOTQ0MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9MzAwCiAgICAgICAgICBPUiBhPTQxCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTMzCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKICAgXV0pCkBAIC0yOTQ2Miw3ICsyOTQ2Miw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MzAwCiAgICAgICAgICBPUiBhPTQxCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAg IE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTMzCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKICAgXV0pCkBA IC0yOTQ3OCw3ICsyOTQ3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg KChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQgYSE9NjkpCi0gICAgICAgICBPUiAoZD49NzEu MCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcxLjAgQU5E IGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk0 IEFORCA5NikgQU5EIGEhPTk1KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQg ZiBHTE9CICdiY2RlKicpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAn bW5vcHEqJykKQEAgLTI5NTAxLDcgKzI5NTAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSAoKGEgQkVUV0VFTiA2OCBBTkQgNzApIEFORCBhIT02OSkKLSAgICAgICAg IE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gOTQgQU5EIDk2KSBBTkQgYSE9OTUpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBB TkQgZiBHTE9CICdtbm9wcSonKQpAQCAtMjk1NTcsNyArMjk1NTcsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTczNwogICAgICAgICAgT1IgYj0yMDEKICAgICAgICAgIE9S IGE9NwotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAg IE9SIGI9OTU3CiAgIF1dKQpAQCAtMjk1NzYsNyArMjk1NzYsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBiPTczNwogICAgICAgICAgT1IgYj0yMDEKICAgICAgICAgIE9SIGE9 NwotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9S IGI9OTU3CiAgIF1dKQpAQCAtMjk2MjksNyArMjk2MjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDUuMCBBTkQgZDw0Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTc5CiAgICAgICAgICBPUiBiPTEwODEKICAg ICAgICAgIE9SIGI9Mzc3CkBAIC0yOTY0OSw3ICsyOTY0OSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00NS4wIEFORCBkPDQ2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNzkKICAgICAgICAgIE9SIGI9MTA4MQog ICAgICAgICAgT1IgYj0zNzcKQEAgLTI5Nzg5LDcgKzI5Nzg5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTI1LjAgQU5EIGQ8MjYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yNS4wIEFORCBkPDI2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTUwOQogICAgICAgICAgT1IgYj0xMDA0 CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBhIT0yOSkKQEAgLTI5 ODA4LDcgKzI5ODA4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwot ICAgICAgV0hFUkUgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTUwOQogICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiAyOCBBTkQgMzApIEFORCBhIT0yOSkKQEAgLTI5ODU1LDcgKzI5ODU1LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk1LjAgQU5E IGQ8OTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05NS4wIEFORCBkPDk2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZnaGknCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjk4NjksNyArMjk4NjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTUuMCBBTkQgZDw5Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yOTkxOCw3ICsyOTkxOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgZj0nbG1ub3BxcnN0JwotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGE9NzEKICAgXV0pCkBA IC0yOTkzNCw3ICsyOTkzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg Zj0nbG1ub3BxcnN0JwotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGE9NzEKICAgXV0pCkBAIC0yOTk1 MCw3ICsyOTk1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj01MzEK LSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gOTUgQU5EIDk3KSBBTkQgYSE9OTYpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzMiBBTkQgMzQpIEFORCBhIT0zMykKICAgICAgICAgIE9SIGI9NDQKQEAg LTI5OTcxLDcgKzI5OTcxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBi PTUzMQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFORCBhIT05NikKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj00 NApAQCAtMjk5OTMsNyArMjk5OTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIChmIEdMT0IgJz9lZmdoKicgQU5EIGYgR0xPQiAnZGVm ZyonKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0g ICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGY9J2prbG1ub3BxcicKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDAwOSw3ICszMDAw OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCiAgICAgICAgICBPUiAo Zz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykKLSAgICAgICAgIE9SIChkPj04OS4w IEFORCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQg ZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0namtsbW5vcHFyJwog ICBdXSkKICAgICBlbmQsIHsKQEAgLTMwMDI3LDcgKzMwMDI3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAg ICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncXJz dHUqJykKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAg ICBPUiBiPTgwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02 MSkKQEAgLTMwMDQ4LDcgKzMwMDQ4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig KGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBhPTQ3CiAg ICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAgICAg IE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBiPTgwCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02MSkKQEAgLTMwMDY2LDE0 ICszMDA2NiwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NDgKLSAg ICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0xMDE1CiAgICAgICAgICBPUiBhPTU3CiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xt bionIEFORCBmIEdMT0IgJ2prbG0qJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFO RCA0OSkgQU5EIGEhPTQ4KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkg QU5EIGEhPTk5KQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3l6YWJj KicpCi0gICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xNjUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDA4OCwxNCArMzAwODgsMTQg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTQ4Ci0gICAgICAgICBPUiAo ZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1 LjAgQU5EIGQ8NTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAxNQog ICAgICAgICAgT1IgYT01NwogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBH TE9CICdqa2xtKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NyBBTkQgNDkpIEFORCBh IT00OCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkK ICAgICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd5emFiYyonKQotICAgICAg ICAgT1IgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTY1 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzAxODYsNyArMzAxODYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAg ICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAg T1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTk0NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1 KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBiPTEyNApAQCAtMzAyMDksNyArMzAyMDksNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFO RCBhIT05NCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eCon KQogICAgICAgICAgT1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk0NgogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBiPTEyNApAQCAtMzAyMjYs OCArMzAyMjYsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8 NTMuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdrbG1u byonKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTMwMjQyLDggKzMwMjQyLDggQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA4OCBBTkQgOTApIEFORCBh IT04OSkKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0zMDI5Myw3ICszMDI5Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3phYmNk KicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/bW5vcConIEFORCBmIEdMT0IgJ2xtbm8qJykK LSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNzkgQU5EIDgxKSBBTkQgYSE9ODApCiAgICAgICAgICBPUiAo Zz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0Ig Jz9rbG1uKicgQU5EIGYgR0xPQiAnamtsbSonKQpAQCAtMzAzMTMsNyArMzAzMTMsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdq aWhnZmVkJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP21u b3AqJyBBTkQgZiBHTE9CICdsbW5vKicpCi0gICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc5IEFORCA4MSkg QU5EIGEhPTgwKQogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3d4eXph KicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykK QEAgLTMwMzMxLDEwICszMDMzMSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAg ICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAo ZD49NjQuMCBBTkQgZDw2NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY0 LjAgQU5EIGQ8NjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVk Y2JhJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYT01OQogICBdXSkKQEAg LTMwMzQ5LDEwICszMDM0OSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAg T1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49 NjQuMCBBTkQgZDw2NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAg QU5EIGQ8NjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2Jh JyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYT01OQogICBdXSkKQEAgLTMw Mzc1LDggKzMwMzc1LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0nZ2hpamts bW5vJwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAg ICAgICAgICBPUiBmPSdnaGlqa2xtbm8nCi0gICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2 NS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQg SVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDgxCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MzAzOTgsOCArMzAzOTgsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdnaGlq a2xtbm8nCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNCBBTkQgMTYpIEFORCBhIT0xNSkK ICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBk PDY1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwODEKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0zMDQxNiwxMCArMzA0MTYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKChh IEJFVFdFRU4gMzAgQU5EIDMyKSBBTkQgYSE9MzEpCiAgICAgICAgICBPUiBhPTk2CiAgICAg ICAgICBPUiBiPTM1NQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTU5NwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTIg QU5EIDk0KSBBTkQgYSE9OTMpCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9sbW5vKicgQU5EIGYgR0xPQiAn a2xtbionKQogICAgICAgICAgT1IgYj0xNjgKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBB TkQgZiBHTE9CICdwcXJzdConKQpAQCAtMzA0MzgsMTAgKzMwNDM4LDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQog ICAgICAgICAgT1IgYT05NgogICAgICAgICAgT1IgYj0zNTUKLSAgICAgICAgIE9SIChkPj04 MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODEuMCBB TkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OTcKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDkyIEFORCA5NCkgQU5EIGEhPTkzKQotICAgICAgICAgT1Ig KGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 OC4wIEFORCBkPDg5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9C ICc/bG1ubyonIEFORCBmIEdMT0IgJ2tsbW4qJykKICAgICAgICAgIE9SIGI9MTY4CiAgICAg ICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncHFyc3QqJykKQEAgLTMwNDU3LDkg KzMwNDU3LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTk1NwotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIGE9NDAK QEAgLTMwNDc1LDkgKzMwNDc1LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwotICAgICAgV0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTk1NwotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAg ICAgIE9SIGE9NDAKQEAgLTMwNDk3LDkgKzMwNDk3LDkgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYT0zNgogICAgICAgICAgT1IgYT03NQogICAgICAgICAgT1IgYj0xNzkKLSAg ICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3N0dXZ3KicpCi0gICAgICAgICBPUiAoZD49 NjUuMCBBTkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAg QU5EIGQ8NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUwCiAgICAg ICAgICBPUiBhPTYyCiAgIF1dKQpAQCAtMzA1MTgsOSArMzA1MTgsOSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTM2CiAgICAgICAgICBPUiBhPTc1CiAgICAgICAgICBPUiBi PTE3OQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAgICAgICAg IE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04 NTAKICAgICAgICAgIE9SIGE9NjIKICAgXV0pCkBAIC0zMDU0MCw3ICszMDU0MCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NjYKICAgICAgICAgIE9SIGI9NDg3CiAgICAg ICAgICBPUiBhPTEKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYz01MDA1CiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBP UiBjPTUwMDUKQEAgLTMwNTYzLDcgKzMwNTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICAgT1IgYT02NgogICAgICAgICAgT1IgYj00ODcKICAgICAgICAgIE9SIGE9MQotICAgICAg ICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBj PTUwMDUKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGM9NTAwNQpAQCAtMzA2MTMs MTMgKzMwNjEzLDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gOTAgQU5EIDkyKSBBTkQgYSE9OTEpCiAgICAgICAgICBPUiBiPTMx OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA5IEFORCAxMSkgQU5EIGEhPTEwKQogICAgICAgICAgT1Ig YT0yMQotICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODE3LjE+CkBAIC0zMDYz MiwxMyArMzA2MzIsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwot ICAgICAgV0hFUkUgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA5MCBBTkQgOTIpIEFORCBhIT05MSkKICAgICAgICAgIE9SIGI9 MzE5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMSBBTkQgMzMpIEFORCBhIT0zMikKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDkgQU5EIDExKSBBTkQgYSE9MTApCiAgICAgICAgICBP UiBhPTIxCi0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44MTcuMj4KQEAgLTMw NjUxLDEzICszMDY1MSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9Mzk2CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndXZ3 eHkqJykKICAgICAgICAgIE9SIGI9MTAxMgogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4q JyBBTkQgZiBHTE9CICdqa2xtKicpCiAgICAgICAgICBPUiBiPTc4NAotICAgICAgICAgT1Ig KGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02 MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk3OQog ICAgICAgICAgT1IgYzw9MTAKICAgICAgICAgIE9SIGI9OTEzCkBAIC0zMDY3NCwxMyArMzA2 NzQsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hF UkUgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM5 NgogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAg ICAgICBPUiBiPTEwMTIKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5EIGYgR0xP QiAnamtsbSonKQogICAgICAgICAgT1IgYj03ODQKLSAgICAgICAgIE9SIChkPj02MC4wIEFO RCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2 MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05NzkKICAgICAgICAgIE9S IGM8PTEwCiAgICAgICAgICBPUiBiPTkxMwpAQCAtMzA3NjMsNyArMzA3NjMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTEwMTIKICAgICAgICAgIE9SIGY9J3h5emFiY2Rl ZicKICAgICAgICAgIE9SIGI9NjgyCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTct Mi44MjEuMT4KQEAgLTMwNzgyLDcgKzMwNzgyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICAgT1IgYj0xMDEyCiAgICAgICAgICBPUiBmPSd4eXphYmNkZWYnCiAgICAgICAgICBPUiBi PTY4MgotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODIxLjI+CkBAIC0zMDc5 Niw3ICszMDc5Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05Ngot ICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODIyLjE+CkBAIC0zMDgxMCw3ICsz MDgxMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT05NgotICAgICAg ICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODIyLjI+CkBAIC0zMDgyNCw3ICszMDgyNCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT0yCi0gICAgICAgICBPUiAo ZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEx LjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjMKICAg ICAgICAgIE9SIGI9MTA5MgogICAgICAgICAgT1IgYz0xOTAxOQpAQCAtMzA4NDcsNyArMzA4 NDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MgotICAgICAgICAg T1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIz CiAgICAgICAgICBPUiBiPTEwOTIKICAgICAgICAgIE9SIGM9MTkwMTkKQEAgLTMwODY5LDEz ICszMDg2OSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9OTkzCiAgICAgICAgICBPUiBjPTE3MDE3Ci0gICAgICAgICBPUiAoZD49ODUuMCBBTkQg ZDw4Ni4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8Mzgu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MzMzCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzA4ODksMTMgKzMw ODg5LDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05 OTMKICAgICAgICAgIE9SIGM9MTcwMTcKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2 LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0zMzMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDkxMSw4ICszMDkxMSw4 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj0zMzAKICAgICAgICAgIE9SIGE9NzMKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYy LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgyOAogICAgICAgICAgT1IgYj0zNjMKICAgICAg ICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQpAQCAtMzA5MzAsOCAr MzA5MzAsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGI9MzMwCiAgICAgICAgICBPUiBhPTczCi0gICAgICAgICBPUiAoZD49NjEuMCBB TkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8 NDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MjgKICAgICAgICAgIE9SIGI9MzYz CiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnbG1ub3AqJykKQEAgLTMw OTQ5LDcgKzMwOTQ5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAg ICAgIE9SIGE9NDEKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj04MjUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDk2NSw3 ICszMDk2NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBP UiBhPTQxCi0gICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9ODI1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzA5ODAsNyArMzA5 ODAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ2 IEFORCA0OCkgQU5EIGEhPTQ3KQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkwNQogICAgICAgICAgT1IgYj0xNzYKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkwKQpAQCAtMzEwMDIs NyArMzEwMDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDQ2IEFORCA0OCkgQU5EIGEhPTQ3KQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8 MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkwNQogICAgICAgICAgT1IgYj0x NzYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkwKQpAQCAt MzExMDksOSArMzExMDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNDAgQU5EIDQyKSBBTkQgYSE9NDEpCi0gICAgICAgICBP UiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02My4w IEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzIuMCBBTkQg ZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8 NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSd6YWJjZGVmZ2gnCiAgICAg ICAgICBPUiBiPTg2MQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3Bx cnN0KicpCkBAIC0zMTEzMiw5ICszMTEzMiw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQg YSE9MTkpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkK LSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYz LjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3phYmNk ZWZnaCcKICAgICAgICAgIE9SIGI9ODYxCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5E IGYgR0xPQiAncHFyc3QqJykKQEAgLTMxMTU1LDcgKzMxMTU1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTU3NQogICAgICAgICAg T1IgKGYgR0xPQiAnP25vcHEqJyBBTkQgZiBHTE9CICdtbm9wKicpCi0gICAgICAgICBPUiAo ZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcz LjAgQU5EIGQ8NzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDE4CiAg ICAgICAgICBPUiAoZiBHTE9CICc/cXJzdConIEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAg ICAgIE9SIGI9NzkyCkBAIC0zMTE3Niw3ICszMTE3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj01NzUKICAgICAgICAgIE9SIChm IEdMT0IgJz9ub3BxKicgQU5EIGYgR0xPQiAnbW5vcConKQotICAgICAgICAgT1IgKGQ+PTcz LjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFO RCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQxOAogICAgICAg ICAgT1IgKGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAgICAgICBP UiBiPTc5MgpAQCAtMzExOTksOSArMzExOTksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTkxMwogICAgICAgICAgT1IgYj0yNTMKICAgICAgICAgIE9SIGI9MTk4Ci0gICAg ICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGE9MTcKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjgzMy4xPgpAQCAtMzEy MTgsOSArMzEyMTgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTkxMwogICAg ICAgICAgT1IgYj0yNTMKICAgICAgICAgIE9SIGI9MTk4Ci0gICAgICAgICBPUiAoZD49Mjcu MCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5E IGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTcKLSAgICAgICAg IE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjgzMy4yPgpAQCAtMzEyMzgsOCArMzEyMzgsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTczCiAgICAgICAgICBPUiBiPTYyNwog ICAgICAgICAgT1IgYz01MDA1Ci0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0yNjcKICAgICAgICAgIE9SIGI9ODcyCiAgICAgICAgICBP UiBhPTI3CkBAIC0zMTI2MSw4ICszMTI2MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGE9NzMKICAgICAgICAgIE9SIGI9NjI3CiAgICAgICAgICBPUiBjPTUwMDUKLSAgICAg ICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y OC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI2Nwog ICAgICAgICAgT1IgYj04NzIKICAgICAgICAgIE9SIGE9MjcKQEAgLTMxMzE5LDcgKzMxMzE5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYj0x MDM3CiAgICAgICAgICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTI1CiAgIF1dKQogICAgIGVuZCwgewpA QCAtMzEzMzcsNyArMzEzMzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTMy CiAgICAgICAgICBPUiBiPTEwMzcKICAgICAgICAgIE9SIGI9MTk4Ci0gICAgICAgICBPUiAo ZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEz LjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjUKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0zMTM1NiwxMSArMzEzNTYsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj0zMjIKICAgICAgICAgIE9SIGI9NDY1CiAgICAgICAgICBPUiAo Zz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKLSAgICAgICAgIE9SIChkPj0zOC4w IEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4wIEFORCBk PDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5E IGEhPTc4KQogICAgICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicp Ci0gICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NDU0CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzEzNzksMTEgKzMxMzc5LDEx IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MzIyCiAgICAgICAgICBPUiBiPTQ2 NQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAg ICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcu MCBBTkQgZDw4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA3NyBBTkQgNzkpIEFORCBhIT03OCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQg ZiBHTE9CICdtbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ1NAogICBdXSkKICAgICBlbmQsIHsKQEAgLTMx NDAwLDcgKzMxNDAwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj05MjQKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDM1IEFORCAzNykgQU5EIGEhPTM2KQogICAgICAgICAg T1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQgYSE9NCkKICAgICAg ICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1Ig Yj04MDMKQEAgLTMxNDE5LDcgKzMxNDE5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgYj05MjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM1IEFORCAzNykgQU5EIGEhPTM2 KQogICAgICAgICAgT1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQg YSE9NCkKICAgICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICdhYmNkZSonKQog ICAgICAgICAgT1IgYj04MDMKQEAgLTMxNDQzLDcgKzMxNDQzLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYT00NQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdM T0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBhPTI3Ci0gICAgICAgICBPUiAoZD49NzcuMCBB TkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8 NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUwCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA1NSBBTkQgNTcpIEFORCBhIT01NikKICAgXV0pCkBAIC0zMTQ2Niw3 ICszMTQ2Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NDUKICAgICAgICAg IE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgYT0y NwotICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTg1MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQg YSE9NTYpCiAgIF1dKQpAQCAtMzE0ODMsOSArMzE0ODMsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NzUxCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA5NiBBTkQgOTgpIEFORCBhIT05NykKLSAgICAgICAgIE9SIChkPj03MS4w IEFORCBkPDcyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQg ZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFO RCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDM2IEFORCAzOCkgQU5EIGEhPTM3KQogICBdXSkKQEAgLTMxNTAyLDkgKzMxNTAyLDkgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTc1 MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTYgQU5EIDk4KSBBTkQgYSE9OTcpCi0gICAg ICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTU2 LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFO RCBkPDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTg5CiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykKICAgXV0pCkBAIC0zMTU5 Myw3ICszMTU5Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0yMTIKICAgICAgICAgIE9SIGY9J2NkZWZnaGlqaycKICAgXV0pCkBAIC0zMTYwOCw3 ICszMTYwOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAg IFdIRVJFIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVS RSAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0yMTIKICAgICAgICAgIE9SIGY9J2NkZWZnaGlqaycKICAgXV0pCkBAIC0zMTYyNSw5ICsz MTYyNSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj02ODUKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1 dionKQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTUyMAotICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTUzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 MSBBTkQgOTMpIEFORCBhIT05MikKICAgICAgICAgIE9SIGI9OTM4CkBAIC0zMTY0Nyw5ICsz MTY0Nyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAg V0hFUkUgYj02ODUKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1 dionKQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTUyMAotICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTUzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 MSBBTkQgOTMpIEFORCBhIT05MikKICAgICAgICAgIE9SIGI9OTM4CkBAIC0zMTY3MCw3ICsz MTY3MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9NTgzCiAgICAgICAgICBP UiBiPTg5NAogICAgICAgICAgT1IgYz0yNjAyNgotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5E IGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuODQ1LjE+CkBAIC0zMTY4Niw3ICszMTY4Niw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFIGI9NTgzCiAgICAgICAgICBPUiBiPTg5NAogICAgICAgICAgT1IgYz0y NjAyNgotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODQ1LjI+CkBAIC0zMTcz NSw3ICszMTczNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J25vcHFyc3R1 dicKICAgICAgICAgIE9SIGI9MjY0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMyBBTkQg MzUpIEFORCBhIT0zNCkKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg0Ny4x PgpAQCAtMzE3NTYsNyArMzE3NTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBm PSdub3BxcnN0dXYnCiAgICAgICAgICBPUiBiPTI2NAogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMzMgQU5EIDM1KSBBTkQgYSE9MzQpCi0gICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1 OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi44NDcuMj4KQEAgLTMxODAxLDcgKzMxODAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTIwOQogICAgICAgICAgT1IgYj04 MDYKLSAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0zMTgxNyw3ICszMTgxNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0yMDkKICAgICAgICAgIE9SIGI9ODA2Ci0gICAg ICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MzE4NjEsNyArMzE4NjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYT00NQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5Kicp CiAgICAgICAgICBPUiBhPTY5CkBAIC0zMTg3OSw3ICszMTg3OSw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00LjAgQU5EIGQ8NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ1CiAgICAgICAgICBPUiAoZz0na2ppaGdm ZScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAgICAgIE9SIGE9NjkKQEAgLTMxODk4LDkg KzMxODk4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPTkwMDkKLSAg ICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0gICAgICAgICBPUiAoZD49 OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFO RCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicg QU5EIGYgR0xPQiAncHFyc3QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMTkxNSw5ICsz MTkxNSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz05MDA5Ci0gICAg ICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTku MCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQg ZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2xramloZ2YnIEFO RCBmIEdMT0IgJ3BxcnN0KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzE5MzIsMTMgKzMx OTMyLDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05OAotICAgICAg ICAgT1IgKGQ+PTEwMC4wIEFORCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ3 CiAgICAgICAgICBPUiBjPTI0MDI0CiAgICAgICAgICBPUiBhPTI3CiAgICAgICAgICBPUiAo Zz0ncG9ubWxraicgQU5EIGYgR0xPQiAndHV2d3gqJykKLSAgICAgICAgIE9SIChkPj0yMC4w IEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQg ZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjg1My4xPgpAQCAtMzE5NTIsMTMgKzMxOTUyLDEzIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT05OAotICAgICAgICAgT1IgKGQ+PTEwMC4wIEFO RCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8 NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiBjPTI0 MDI0CiAgICAgICAgICBPUiBhPTI3CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYg R0xPQiAndHV2d3gqJykKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg1My4y PgpAQCAtMzIwMDQsNyArMzIwMDQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGM9MTIwMTIKLSAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTYgQU5EIDE4KSBBTkQgYSE9MTcpCiAg ICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgXV0pCkBA IC0zMjAyMCw3ICszMjAyMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg Yz0xMjAxMgotICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykKICAgICAg ICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICBdXSkKQEAgLTMy MDM5LDcgKzMyMDM5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAn P25vcHEqJyBBTkQgZiBHTE9CICdtbm9wKicpCiAgICAgICAgICBPUiBiPTQyOQogICAgICAg ICAgT1IgZj0namtsbW5vcHFyJwotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3NyBBTkQgNzkpIEFORCBh IT03OCkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjA1Nyw3ICszMjA1Nyw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9ub3BxKicgQU5EIGYgR0xPQiAnbW5v cConKQogICAgICAgICAgT1IgYj00MjkKICAgICAgICAgIE9SIGY9J2prbG1ub3BxcicKLSAg ICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNzcgQU5EIDc5KSBBTkQgYSE9NzgpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzIyMjQsNyArMzIyMjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9MjMxCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGE9MzgKICAgICAgICAgIE9SIGE9NAogICAgICAgICAgT1IgYj03 ODQKQEAgLTMyMjQxLDcgKzMyMjQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSBiPTIzMQotICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yNC4wIEFORCBkPDI1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTM4CiAgICAgICAgICBPUiBhPTQKICAgICAgICAgIE9SIGI9 Nzg0CkBAIC0zMjI2MSw3ICszMjI2MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGE9MjYKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQog ICAgICAgICAgT1IgYT04MQotICAgICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI4IEFORCAzMCkgQU5EIGEhPTI5KQog ICAgICAgICAgT1IgYj0yNzUKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9C ICdqa2xtbionKQpAQCAtMzIyODQsNyArMzIyODQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiBhPTI2CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJz dHUqJykKICAgICAgICAgIE9SIGE9ODEKLSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBh IT0yOSkKICAgICAgICAgIE9SIGI9Mjc1CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5E IGYgR0xPQiAnamtsbW4qJykKQEAgLTMyMzMxLDcgKzMyMzMxLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODUKICAgICAgICAgIE9SIGYgSVMgTlVMTAog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDkgQU5EIDUxKSBBTkQgYSE9NTApCkBAIC0zMjMz OSw3ICszMjMzOSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTU0CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQotICAgICAgICAgT1IgKGQ+PTI1 LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFO RCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuODY1LjE+CkBAIC0zMjM1Miw3ICszMjM1Miw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00LjAgQU5EIGQ8 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTg1CiAgICAgICAgICBPUiBmIElTIE5V TEwKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ5IEFORCA1MSkgQU5EIGEhPTUwKQpAQCAt MzIzNjAsNyArMzIzNjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTE1NAog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDAgQU5EIDQyKSBBTkQgYSE9NDEpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA4NyBBTkQgODkpIEFORCBhIT04OCkKLSAgICAgICAgIE9SIChk Pj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUu MCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjg2NS4yPgpAQCAtMzIzODAsNyArMzIzODAsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiAxMDAwMDAwPGIKICAgICAgICAgIE9SIGE9MjQKICAg ICAgICAgIE9SIGI9MTA4OQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnaGlqa2wq JykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjQwMSw3ICszMjQwMSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIDEwMDAwMDA8YgogICAgICAgICAgT1IgYT0yNAogICAgICAg ICAgT1IgYj0xMDg5Ci0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdoaWprbConKQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTMyNDE1LDcgKzMyNDE1LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTE2LjAgQU5EIGQ8MTcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNi4wIEFORCBkPDE3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFO RCBhIT04MSkKICAgICAgICAgIE9SIGI9MzYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMz IEFORCAzNSkgQU5EIGEhPTM0KQpAQCAtMzI0MzEsNyArMzI0MzEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTYuMCBBTkQgZDwx Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgwIEFORCA4Mikg QU5EIGEhPTgxKQogICAgICAgICAgT1IgYj0zNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MzMgQU5EIDM1KSBBTkQgYSE9MzQpCkBAIC0zMjQ0NywxNCArMzI0NDcsMTQgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5E IGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjYwMjYKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDM3IEFORCAzOSkgQU5EIGEhPTM4KQogICAgICAgICAgT1IgYT01NgogICAgICAg ICAgT1IgYj01MDYKICAgICAgICAgIE9SIGI9NzgxCi0gICAgICAgICBPUiAoZD49MjguMCBB TkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8 MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi44NjguMT4KQEAgLTMyNDY3LDE0ICszMjQ2NywxNCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5 OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yNjAyNgogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMzcgQU5EIDM5KSBBTkQgYSE9MzgpCiAgICAgICAgICBPUiBhPTU2CiAgICAgICAgICBP UiBiPTUwNgogICAgICAgICAgT1IgYj03ODEKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBk PDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjg2OC4yPgpAQCAtMzI1ODksMTMgKzMyNTg5LDEzIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01OS4wIEFORCBkPDYwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQg YSE9MTUpCiAgICAgICAgICBPUiBiPTgzOQogICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwot ICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnaWprbG0qJykKLSAgICAgICAgIE9SIChk Pj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIu MCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVk Y2InIEFORCBmIEdMT0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBiPTQ5OAogICBdXSkKQEAg LTMyNjEwLDEzICszMjYxMCwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDE0IEFORCAxNikgQU5EIGEhPTE1KQogICAgICAgICAg T1IgYj04MzkKICAgICAgICAgIE9SIGY9J2RlZmdoaWprbCcKLSAgICAgICAgIE9SIChkPj05 NS4wIEFORCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBB TkQgZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcn IEFORCBmIEdMT0IgJ2lqa2xtKicpCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdo aWprbConKQogICAgICAgICAgT1IgYj00OTgKICAgXV0pCkBAIC0zMjYzNCw3ICszMjYzNCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9MjU2CiAgICAgICAgICBPUiBjPTE5 MDE5CiAgICAgICAgICBPUiBhPTU0Ci0gICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDk4CiAgICAgICAgICBPUiBiPTc3CiAg IF1dKQpAQCAtMzI2NTIsNyArMzI2NTIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVS RSBiPTI1NgogICAgICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgYT01NAotICAgICAg ICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTQ5OAogICAgICAgICAgT1IgYj03NwogICBdXSkKQEAgLTMyNjcyLDcgKzMyNjcyLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIGE9NzQKICAg ICAgICAgIE9SIGI9MTEzCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00OTUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0z MjY5MSw3ICszMjY5MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NTg2CiAg ICAgICAgICBPUiBhPTc0CiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+PTk5 LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBB TkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDk1CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMzI3MDcsNyArMzI3MDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9MTIKICAgICAgICAgIE9SIGE9 NTAKLSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMzI3MjMsNyArMzI3MjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MTIKICAgICAgICAgIE9SIGE9NTAKLSAg ICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzI3MzgsMTEgKzMyNzM4LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj0zMDgKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAg ICAgICAgICBPUiBhPTgzCiAgICAgICAgICBPUiBjPTIzMDIzCi0gICAgICAgICBPUiAoZD49 NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU3LjAg QU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdm JyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYT01OAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMTcgQU5EIDE5KSBBTkQgYSE9MTgpCkBAIC0zMjc2MSwxMSArMzI3NjEs MTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTMwOAotICAgICAgICAg T1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n bm1sa2ppaCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKICAgICAgICAgIE9SIGE9ODMKICAgICAg ICAgIE9SIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicp CiAgICAgICAgICBPUiBhPTU4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkp IEFORCBhIT0xOCkKQEAgLTMyNzg1LDEwICszMjc4NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NDc2CiAgICAgICAgICBPUiBh PTI2Ci0gICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzYyCiAgICAgICAgICBPUiBiPTE1NwotICAgICAgICAgT1IgKGQ+PTE3 LjAgQU5EIGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNy4wIEFO RCBkPDE4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcg QU5EIGYgR0xPQiAnY2RlZmcqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjgwNCwxMCAr MzI4MDQsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAg ICBXSEVSRSBiPTQ3NgogICAgICAgICAgT1IgYT0yNgotICAgICAgICAgT1IgKGQ+PTg3LjAg QU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ny4wIEFORCBk PDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgogICAgICAgICAg T1IgYj0xNTcKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMzI4MjEsNyArMzI4MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzcuMCBBTkQgZDw3OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g OTMgQU5EIDk1KSBBTkQgYSE9OTQpCiAgICAgICAgICBPUiBiPTI3OApAQCAtMzI4MzEsNyAr MzI4MzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MiBB TkQgODQpIEFORCBhIT04MykKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9C ICd1dnd4eSonKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4eXph KicpCi0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44NzguMT4KQEAgLTMyODQ0 LDcgKzMyODQ0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQog ICAgICAgICAgT1IgYj0yNzgKQEAgLTMyODU0LDcgKzMyODU0LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODIgQU5EIDg0KSBBTkQgYSE9ODMpCiAgICAg ICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAgICAgIE9S IChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTcy LjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Mi4wIEFO RCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuODc4LjI+CkBAIC0zMjg2OCw5ICszMjg2OCw5IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMjQKLSAgICAgICAgIE9SIChkPj05Mi4wIEFO RCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5 My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDEgQU5E IDQzKSBBTkQgYSE9NDIpCi0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzU5CiAgICAgICAgICBPUiAoZiBHTE9CICc/bm9w cSonIEFORCBmIEdMT0IgJ21ub3AqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ1IEFO RCA0NykgQU5EIGEhPTQ2KQpAQCAtMzI4ODgsOSArMzI4ODgsOSBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGI9MTI0Ci0gICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5 My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQxIEFORCA0Mykg QU5EIGEhPTQyKQotICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTc1OQogICAgICAgICAgT1IgKGYgR0xPQiAnP25vcHEqJyBB TkQgZiBHTE9CICdtbm9wKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NSBBTkQgNDcp IEFORCBhIT00NikKQEAgLTMyOTUxLDcgKzMyOTUxLDcgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSd4eXphYmNkZWYnCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzI5NjUsNyArMzI5NjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGY9J3h5emFiY2RlZicKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjk4 MiwxMiArMzI5ODIsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj00ODcKICAg ICAgICAgIE9SIGI9MzU1CiAgICAgICAgICBPUiBjPTkwMDkKLSAgICAgICAgIE9SIChkPj04 LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQg ZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMiBB TkQgMzQpIEFORCBhIT0zMykKICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAyNCBBTkQgMjYpIEFORCBhIT0yNSkKICAgICAgICAgIE9SIGE9OTAKLSAgICAg ICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBmPSdub3Bx cnN0dXYnCiAgIF1dKQpAQCAtMzMwMDUsMTIgKzMzMDA1LDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFIGI9NDg3CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYz05 MDA5Ci0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMzIgQU5EIDM0KSBBTkQgYSE9MzMpCiAgICAgICAgICBPUiBi PTExMwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjQgQU5EIDI2KSBBTkQgYSE9MjUpCiAg ICAgICAgICBPUiBhPTkwCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdqa2xtbion KQogICAgICAgICAgT1IgZj0nbm9wcXJzdHV2JwogICBdXSkKQEAgLTMzMDI1LDcgKzMzMDI1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0z NC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI3NQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTMzMDM5LDcgKzMzMDM5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTM0LjAgQU5EIGQ8MzUu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI3NQogICBdXSkKICAgICBlbmQsIHsK QEAgLTMzMDk5LDcgKzMzMDk5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSAoZiBHTE9CICc/dXZ3eConIEFORCBmIEdMT0IgJ3R1dncq JykKICAgICAgICAgIE9SIGI9ODE0Ci0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTct Mi44ODUuMT4KQEAgLTMzMTE0LDcgKzMzMTE0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZiBHTE9CICc/dXZ3eConIEFORCBmIEdM T0IgJ3R1dncqJykKICAgICAgICAgIE9SIGI9ODE0Ci0gICAgICAgICBPUiAoZD49NTQuMCBB TkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8 NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi44ODUuMj4KQEAgLTMzMTg5LDcgKzMzMTg5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj0yNTMKICAgICAgICAgIE9SIChmIEdMT0IgJz9wcXJzKicgQU5E IGYgR0xPQiAnb3BxcionKQogICAgICAgICAgT1IgYj0yODYKLSAgICAgICAgIE9SIChkPj0x MC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBB TkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjg4OC4xPgpAQCAtMzMyMDYsNyArMzMyMDYsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiBiPTI1MwogICAgICAgICAgT1IgKGYgR0xPQiAnP3BxcnMq JyBBTkQgZiBHTE9CICdvcHFyKicpCiAgICAgICAgICBPUiBiPTI4NgotICAgICAgICAgT1Ig KGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x MC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuODg4LjI+CkBAIC0zMzIxOSw3ICszMzIxOSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xNS4w IEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTUuMCBBTkQg ZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFO RCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNiBBTkQgMjgp IEFORCBhIT0yNykKICAgICAgICAgIE9SIGI9NDIxCkBAIC0zMzIzOSw3ICszMzIzOSw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0x NS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTUuMCBB TkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEn IEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNiBBTkQg MjgpIEFORCBhIT0yNykKICAgICAgICAgIE9SIGI9NDIxCkBAIC0zMzI5Nyw3ICszMzI5Nyw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9C ICdmZ2hpaionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNCBBTkQgNikgQU5EIGEhPTUp CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAg ICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBl bmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg5MS4xPgpAQCAtMzMzMTQsNyArMzMzMTQs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xP QiAnZmdoaWoqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQgQU5EIDYpIEFORCBhIT01 KQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAg ICAgICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44OTEuMj4KQEAgLTMzMzMyLDcgKzMzMzMy LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj00MzIKICAgICAgICAgIE9SIGI9 NDEwCiAgICAgICAgICBPUiBhPTg2Ci0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjM4CiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIGI9MTkwCkBAIC0zMzM1 Myw3ICszMzM1Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDMyCiAgICAg ICAgICBPUiBiPTQxMAogICAgICAgICAgT1IgYT04NgotICAgICAgICAgT1IgKGQ+PTg5LjAg QU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBk PDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYzOAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNTggQU5EIDYwKSBBTkQgYSE9NTkpCiAgICAgICAgICBPUiBiPTE5 MApAQCAtMzM0MzgsNyArMzM0MzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFICgoYSBCRVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQotICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02OS4w IEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFw bycgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAgICAgIE9SIGE9NDYKICAgICAgICAgIE9S IGI9MTg3CkBAIC0zMzQ1Nyw3ICszMzQ1Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgKChhIEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCi0gICAgICAgICBP UiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1 dHNycXBvJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYT00NgogICAgICAg ICAgT1IgYj0xODcKQEAgLTMzNDc1LDEwICszMzQ3NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTkKICAgICAgICAgIE9SIGM9MzAwMwotICAg ICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTMwMAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIGM+PTM0MDM1CkBAIC0z MzQ5NSwxMCArMzM0OTUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTk5CiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9SIChkPj01Ny4w IEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcuMCBBTkQg ZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zMDAKICAgICAgICAg IE9SIGI9NzE4CiAgICAgICAgICBPUiBjPj0zNDAzNQpAQCAtMzM1NTksNyArMzM1NTksNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9 MjkwMjkKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAgICAgIE9SIChkPj00OC4w IEFORCBkPDQ5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDguMCBBTkQg ZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNgogICAgICAgICAg T1IgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCiAgIF1dKQpAQCAtMzM1 NzYsNyArMzM1NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGM9MjkwMjkKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAg ICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig YT0yNgogICAgICAgICAgT1IgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicp CiAgIF1dKQpAQCAtMzM3NTIsOCArMzM3NTIsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSBiPTEwNjcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEh PTU0KQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0g ICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAg ICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01 MjAKICAgICAgICAgIE9SIGI9Mzk5CiAgICAgICAgICBPUiBiPTIwOQpAQCAtMzM3NzQsOCAr MzM3NzQsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEwNjcKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQogICAgICAgICAgT1IgKGc9 J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBPUiAoZD49MTguMCBB TkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8 NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SIGI9Mzk5 CiAgICAgICAgICBPUiBiPTIwOQpAQCAtMzM3OTMsMTAgKzMzNzkzLDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03OS4wIEFORCBk PDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01NwogICAgICAgICAgT1IgYj01 NQotICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9S IChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMCBBTkQgMikgQU5EIGEhPTEpCkBAIC0zMzgxMywxMCArMzM4MTMsMTAgQEAgdGVz dDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTc5LjAg QU5EIGQ8ODAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03OS4wIEFORCBk PDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU3CiAgICAgICAgICBP UiBiPTU1Ci0gICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEhPTIxKQogICAgICAg ICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAwIEFORCAyKSBBTkQgYSE9MSkKQEAgLTMzODY5LDggKzMzODY5LDggQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTUx LjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00NS4wIEFO RCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTEuMCBBTkQgZDw1 Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzQ4CiAgICAgICAgICBPUiBi PTIwOQogICAgICAgICAgT1IgYT0xMDAKQEAgLTMzODg2LDggKzMzODg2LDggQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5E IGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTEuMCBBTkQgZDw1Mi4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzQ4CiAgICAgICAgICBPUiBiPTIwOQog ICAgICAgICAgT1IgYT0xMDAKQEAgLTMzOTU0LDcgKzMzOTU0LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCiAgICAg ICAgICBPUiAoZiBHTE9CICc/eHl6YSonIEFORCBmIEdMT0IgJ3d4eXoqJykKICAgICAgICAg IE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+ PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Mi4w IEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc4CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA5MCBBTkQgOTIpIEFORCBhIT05MSkKICAgXV0pCkBAIC0z Mzk3NCw3ICszMzk3NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDYzIEFORCA2NSkgQU5EIGEhPTY0KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3h5emEq JyBBTkQgZiBHTE9CICd3eHl6KicpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYg R0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT03OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTAg QU5EIDkyKSBBTkQgYSE9OTEpCiAgIF1dKQpAQCAtMzQwMjMsNyArMzQwMjMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTI1MwogICAgICAgICAgT1IgYT04MAogICAgICAg ICAgT1IgYT04NwotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTExLjE+CkBA IC0zNDA0Miw3ICszNDA0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjUz CiAgICAgICAgICBPUiBhPTgwCiAgICAgICAgICBPUiBhPTg3Ci0gICAgICAgICBPUiAoZD49 MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAg QU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi45MTEuMj4KQEAgLTM0MDU1LDEwICszNDA1NSwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDIuMCBB TkQgZDw0My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQyLjAgQU5EIGQ8 NDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODI1CiAgICAgICAgICBP UiBhPTEwMAotICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTYwCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzQwNzIsMTAgKzM0 MDcyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04 MjUKICAgICAgICAgIE9SIGE9MTAwCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjAKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0zNDA4OSwxMiArMzQwODksMTIgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTg4MwotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBO VUxMKQotICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 ODEKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQog ICAgICAgICAgT1IgZj0nbW5vcHFyc3R1JwpAQCAtMzQxMTAsMTIgKzM0MTEwLDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05NC4w IEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTQuMCBBTkQg ZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04ODMKLSAgICAgICAg IE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49My4wIEFORCBkPDQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4w IEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQg ZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiAoZiBHTE9CICc/ ZmdoaSonIEFORCBmIEdMT0IgJ2VmZ2gqJykKICAgICAgICAgIE9SIGY9J21ub3BxcnN0dScK QEAgLTM0MTM1LDcgKzM0MTM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgICAgICAgICBPUiBiPTY2MwogICAg ICAgICAgT1IgYj05MDUKLSAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj04ODMKICAgICAgICAgIE9SIGM9MjIwMjIKICAgICAg ICAgIE9SIGI9NjM4CkBAIC0zNDE1NSw3ICszNDE1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDE0IEFORCAxNikgQU5EIGEhPTE1KQogICAgICAgICAg T1IgYj02NjMKICAgICAgICAgIE9SIGI9OTA1Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQg ZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCiAgICAgICAgICBPUiBj PTIyMDIyCiAgICAgICAgICBPUiBiPTYzOApAQCAtMzQyMTcsMTAgKzM0MjE3LDEwIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd1dnd4 eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQpCiAg ICAgICAgICBPUiBhPTI1Ci0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBmPSdvcHFyc3R1dncnCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzQyNDAsMTAgKzM0MjQwLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBhPTI1Ci0gICAgICAg ICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NS4w IEFORCBkPDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFO RCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdvcHFyc3R1dncn Ci0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9OTM4CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzQyNTgsNyArMzQyNTgsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBH TE9CICdmZ2hpaionKQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTE3LjE+ CkBAIC0zNDI3Miw3ICszNDI3Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49 MTUuMCBBTkQgZDwxNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAg QU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi45MTcuMj4KQEAgLTM0MjkwLDcgKzM0MjkwLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYj0xMTAKICAgICAgICAg IE9SIGI9Mjk3Ci0gICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYwIEFORCA2MikgQU5EIGEhPTYxKQogICAg ICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAgICAgT1IgYj00NzMKQEAgLTM0MzEyLDcg KzM0MzEyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0zMgogICAgICAgICAg T1IgYj0xMTAKICAgICAgICAgIE9SIGI9Mjk3Ci0gICAgICAgICBPUiAoZD49MTMuMCBBTkQg ZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYwIEFORCA2 MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAgICAgT1Ig Yj00NzMKQEAgLTM0MzI5LDE0ICszNDMyOSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9OTA1CiAgICAgICAgICBPUiBhPTk3CiAgICAgICAgICBP UiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgICAgICAgIE9SIGM9Mjcw MjcKICAgICAgICAgIE9SIGY9J2JjZGVmZ2hpaicKLSAgICAgICAgIE9SIChkPj01NC4wIEFO RCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwy Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQgNDApIEFO RCBhIT0zOSkKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZn aConKQogICBdXSkKQEAgLTM0MzUxLDE0ICszNDM1MSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTA1CiAgICAgICAgICBPUiBhPTk3CiAgICAg ICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgICAgICAgIE9S IGM9MjcwMjcKICAgICAgICAgIE9SIGY9J2JjZGVmZ2hpaicKLSAgICAgICAgIE9SIChkPj01 NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjUuMCBB TkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8 NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQg NDApIEFORCBhIT0zOSkKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xP QiAnZWZnaConKQogICBdXSkKQEAgLTM0NDEwLDcgKzM0NDEwLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj04MjgKICAgICAgICAgIE9SIGE9ODgKICAgICAgICAgIE9SIChn PSd0c3JxcG9uJyBBTkQgZiBHTE9CICd4eXphYionKQotICAgICAgICAgT1IgKGQ+PTYwLjAg QU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBk PDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuOTIxLjE+CkBAIC0zNDQzMiw3ICszNDQzMiw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGI9ODI4CiAgICAgICAgICBPUiBhPTg4CiAgICAgICAgICBPUiAo Zz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9SIChkPj02MC4w IEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQg ZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjkyMS4yPgpAQCAtMzQ0NDUsMTAgKzM0NDQ1LDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBk PDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTcuMCBBTkQgZDwxOC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdM T0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBiPTM2NgotICAgICAgICAgT1IgKGQ+PTI4LjAg QU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBk PDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTE2MDE2CiAgICAgICAg ICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGM9 OTAwOQpAQCAtMzQ0NjQsMTAgKzM0NDY0LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3h5emFiKicpCiAg ICAgICAgICBPUiBiPTM2NgotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTE2MDE2CiAgICAgICAgICBPUiAoZz0nZWRjYmF6 eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGM9OTAwOQpAQCAtMzQ1MTcs NyArMzQ1MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9ODYxCiAgICAgICAgICBPUiAoZiBHTE9CICc/eHl6YSonIEFORCBmIEdM T0IgJ3d4eXoqJykKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj02ODIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFO RCA5NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1IgYj0yODYKQEAgLTM0NTM1LDcgKzM0NTM1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSBiPTg2MQogICAgICAgICAgT1IgKGYgR0xPQiAnP3h5emEqJyBBTkQgZiBHTE9CICd3eHl6 KicpCi0gICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NjgyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFO RCBhIT05NCkKICAgICAgICAgIE9SIGI9Mjg2CkBAIC0zNDYyMSw3ICszNDYyMSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTAxNQogICAgICAgICAgT1IgKGc9J3Fwb25t bGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTkxNgotICAgICAgICAg T1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5 CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgXV0p CkBAIC0zNDY0Miw3ICszNDY0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 MTAxNQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAg ICAgICAgICBPUiBiPTkxNgotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicg QU5EIGYgR0xPQiAnZmdoaWoqJykKICAgXV0pCkBAIC0zNDY2MSw3ICszNDY2MSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJj JwogICAgICAgICAgT1IgYj00OTgKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02MwogICAgICAgICAgT1IgZj0nbW5vcHFy c3R1JwogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2lqa2xtKicpCkBA IC0zNDY4NCw3ICszNDY4NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MQog ICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwogICAgICAgICAgT1IgYj00OTgKLSAgICAgICAg IE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02 MwogICAgICAgICAgT1IgZj0nbW5vcHFyc3R1JwogICAgICAgICAgT1IgKGc9J21sa2ppaGcn IEFORCBmIEdMT0IgJ2lqa2xtKicpCkBAIC0zNDc3NSw3ICszNDc3NSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9MTA3OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjEg QU5EIDIzKSBBTkQgYSE9MjIpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xP QiAnaWprbG0qJykKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj00MjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNDc5Myw3 ICszNDc5Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTA3OAogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMjEgQU5EIDIzKSBBTkQgYSE9MjIpCiAgICAgICAgICBPUiAo Zz0nbWxramloZycgQU5EIGYgR0xPQiAnaWprbG0qJykKLSAgICAgICAgIE9SIChkPj0yMC4w IEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQg ZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MjkKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0zNDgwNyw3ICszNDgwNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0yNjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg1 IEFORCA4NykgQU5EIGEhPTg2KQogICAgICAgICAgT1IgYj0xMDQ4CkBAIC0zNDgyNCw3ICsz NDgyNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0y NjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg1IEFORCA4NykgQU5EIGEhPTg2KQogICAg ICAgICAgT1IgYj0xMDQ4CkBAIC0zNDg3Myw3ICszNDg3Myw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01Ni4wIEFORCBkPDU3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04NTgKICAgICAgICAgIE9SIGE9NTgKICAg ICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd4eXphYionKQpAQCAtMzQ4OTQs NyArMzQ4OTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAg ICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9ODU4CiAgICAgICAgICBPUiBhPTU4CiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5E IGYgR0xPQiAneHl6YWIqJykKQEAgLTM0OTk2LDggKzM0OTk2LDggQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGYgR0xPQiAnP3l6YWIqJyBBTkQgZiBHTE9CICd4eXphKicpCiAg ICAgICAgICBPUiBhPTU5CiAgICAgICAgICBPUiBiPTQ0Ci0gICAgICAgICBPUiAoZD49MTQu MCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU5LjAgQU5E IGQ8NjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjkzNy4xPgpAQCAtMzUwMTcsOCArMzUwMTcsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5emEqJykKICAgICAg ICAgIE9SIGE9NTkKICAgICAgICAgIE9SIGI9NDQKLSAgICAgICAgIE9SIChkPj0xNC4wIEFO RCBkPDE1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuOTM3LjI+CkBAIC0zNTAzMiw3ICszNTAzMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj01NjQKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9MzMwCiAgICAg ICAgICBPUiBhPTQ3CkBAIC0zNTA1MCw3ICszNTA1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYj01NjQKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9MzMwCiAg ICAgICAgICBPUiBhPTQ3CkBAIC0zNTA5NywxMiArMzUwOTcsMTIgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTkyNAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNiBBTkQgOCkgQU5EIGEhPTcpCi0gICAgICAgICBPUiAoZD49MzYu MCBBTkQgZDwzNy4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQwLjAgQU5E IGQ8NDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xMDAKICAgICAgICAgIE9SIGM9 MTUwMTUKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NDAuMT4KQEAgLTM1MTE3LDEyICszNTEx NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIGI9OTI0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2IEFORCA4KSBBTkQgYSE9NykK LSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTEwMAogICAgICAgICAgT1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8 ODMuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjk0MC4y PgpAQCAtMzUxMzUsOSArMzUxMzUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTQxLjE+CkBAIC0zNTE1MCw5ICszNTE1MCw5 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDQu MCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5E IGQ8MzcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi45NDEuMj4KQEAgLTM1MjEyLDcgKzM1MjEyLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBhPTk2Ci0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5 eionKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2ZnaGkqJyBBTkQgZiBHTE9CICdlZmdoKicp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKQEAgLTM1 MjM1LDcgKzM1MjM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTk2 Ci0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1Ig KGYgR0xPQiAnP2ZnaGkqJyBBTkQgZiBHTE9CICdlZmdoKicpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKQEAgLTM1MjYzLDcgKzM1MjYzLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03NzMKICAgICAgICAgIE9SIGE9MQogICAg ICAgICAgT1IgYj03MjYKLSAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NyBBTkQgODkpIEFORCBhIT04 OCkKICAgICAgICAgIE9SIGI9MTEwCiAgIF1dKQpAQCAtMzUyODQsNyArMzUyODQsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTc3MwogICAgICAgICAgT1IgYT0xCiAgICAg ICAgICBPUiBiPTcyNgotICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4 KQogICAgICAgICAgT1IgYj0xMTAKICAgXV0pCkBAIC0zNTMwNiw3ICszNTMwNiw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdiY2Rl ZionKQogICAgICAgICAgT1IgYT00NAogICAgICAgICAgT1IgYT0zNgotICAgICAgICAgT1Ig KGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndnV0 c3JxcCcgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIGI9NzE1CiAgICAgICAg ICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTM1MzI5LDcgKzM1 MzI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBm IEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiBhPTQ0CiAgICAgICAgICBPUiBhPTM2Ci0g ICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgYj03 MTUKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdxcnN0dSonKQpAQCAt MzUzNDcsMTEgKzM1MzQ3LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMyBBTkQgNSkgQU5EIGEhPTQpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01NykKLSAgICAgICAgIE9S IChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAg QU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFO RCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcg QU5EIGYgR0xPQiAneXphYmMqJykKICAgICAgICAgIE9SIGE9MjQKLSAgICAgICAgIE9SIChk Pj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk5 LjAgQU5EIGQ8MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9C ICc/YmNkZSonIEFORCBmIEdMT0IgJ2FiY2QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0z NTM2NywxMSArMzUzNjcsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQgYSE9NCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1Ig KGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01 NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTUuMCBB TkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1LjAgQU5E IGQ8NTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBB TkQgZiBHTE9CICd5emFiYyonKQogICAgICAgICAgT1IgYT0yNAotICAgICAgICAgT1IgKGQ+ PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTku MCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0Ig Jz9iY2RlKicgQU5EIGYgR0xPQiAnYWJjZConKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTM1 NDI2LDcgKzM1NDI2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYT0yOAogICAg ICAgICAgT1IgYj05MjcKICAgICAgICAgIE9SIGI9NTIwCi0gICAgICAgICBPUiAoZD49NTMu MCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5E IGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjM4CiAgICAgICAg ICBPUiBmPSd2d3h5emFiY2QnCiAgIF1dKQpAQCAtMzU0NDQsNyArMzU0NDQsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBhPTI4CiAgICAgICAgICBPUiBiPTkyNwogICAgICAg ICAgT1IgYj01MjAKLSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj02MzgKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJjZCcKICAg XV0pCkBAIC0zNTQ2MSwxMSArMzU0NjEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2Rl ZmcqJykKICAgICAgICAgIE9SIGI9MTAyNgotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwy LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICds bW5vcConKQogICAgICAgICAgT1IgYj0zNTUKICAgICAgICAgIE9SIGI9NjQxCi0gICAgICAg ICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NDkuMT4KQEAgLTM1NDgwLDExICszNTQ4MCwx MSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IChnPSdubWxramloJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgYj0xMDI2 Ci0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTM1 NQogICAgICAgICAgT1IgYj02NDEKLSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y Ljk0OS4yPgpAQCAtMzU1MDIsNyArMzU1MDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTY0MQogICAgICAgICAgT1IgYT0zCiAgICAgICAgICBPUiBhPTM1Ci0gICAgICAg ICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9 J29wcXJzdHV2dycKICAgICAgICAgIE9SIGE9NDEKICAgICAgICAgIE9SIGE9ODMKQEAgLTM1 NTI1LDcgKzM1NTI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj02NDEKICAg ICAgICAgIE9SIGE9MwogICAgICAgICAgT1IgYT0zNQotICAgICAgICAgT1IgKGQ+PTgxLjAg QU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBk PDgyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdvcHFyc3R1dncnCiAg ICAgICAgICBPUiBhPTQxCiAgICAgICAgICBPUiBhPTgzCkBAIC0zNTU0OCw3ICszNTU0OCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SIGI9 MTQ2CiAgICAgICAgICBPUiBiPTEwOTIKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYx LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjk1MS4xPgpAQCAtMzU1NjYsNyArMzU1NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiBjPTE1MDE1CiAgICAgICAgICBPUiBiPTE0NgogICAgICAgICAgT1IgYj0xMDky Ci0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NTEuMj4KQEAgLTM1NTg0LDEy ICszNTU4NCwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdoaWprbG1ub3An CiAgICAgICAgICBPUiBhPTY1CiAgICAgICAgICBPUiBmPSdpamtsbW5vcHEnCi0gICAgICAg ICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGcg SVMgTlVMTAogICAgICAgICAgT1IgYT0yNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzgg QU5EIDQwKSBBTkQgYSE9MzkpCiAgICAgICAgICBPUiBhPTkKLSAgICAgICAgIE9SIChkPj0z Mi4wIEFORCBkPDMzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzIuMCBB TkQgZDwzMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjk1Mi4xPgpAQCAtMzU2MDcsMTIgKzM1NjA3LDEyIEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKICAgICAgICAgIE9SIGE9NjUK ICAgICAgICAgIE9SIGY9J2lqa2xtbm9wcScKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBk PDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZyBJUyBOVUxMCiAgICAgICAgICBP UiBhPTI2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQgNDApIEFORCBhIT0zOSkK ICAgICAgICAgIE9SIGE9OQotICAgICAgICAgT1IgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTUy LjI+CkBAIC0zNTY5OCw3ICszNTY5OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYz0zMDAzCi0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGE9OTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNTcxMyw3 ICszNTcxMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMDAzCi0g ICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9OTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNTcyNywxMCArMzU3MjcsMTAgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQy LjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Mi4wIEFO RCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicg QU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAy MykgQU5EIGEhPTIyKQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTczNwogICBdXSkKICAgICBlbmQsIHsKQEAgLTM1NzQ0 LDEwICszNTc0NCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMjEgQU5EIDIzKSBBTkQgYSE9MjIpCi0gICAgICAgICBPUiAoZD49MTIuMCBB TkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8 MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzM3CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMzU4MjUsMTAgKzM1ODI1LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjAp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgpIEFORCBhIT04NykKLSAgICAg ICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0yNDUKICAgICAgICAgIE9SIGI9NTI4CiAgICAgICAgICBPUiBiPTM2NgpAQCAtMzU4NDgs MTAgKzM1ODQ4LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAg ICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA4NiBBTkQgODgpIEFORCBhIT04NykKLSAgICAgICAgIE9SIChkPj0zOC4wIEFO RCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNDUKICAgICAgICAgIE9S IGI9NTI4CiAgICAgICAgICBPUiBiPTM2NgpAQCAtMzU4NzEsNyArMzU4NzEsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MTAwLjAg QU5EIGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTAwLjAgQU5E IGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4 IEFORCAxMCkgQU5EIGEhPTkpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgp IEFORCBhIT04NykKICAgICAgICAgIE9SIGI9MTQ2CkBAIC0zNTg5Myw3ICszNTg5Myw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0x MDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMDAu MCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDggQU5EIDEwKSBBTkQgYSE9OSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg2IEFO RCA4OCkgQU5EIGEhPTg3KQogICAgICAgICAgT1IgYj0xNDYKQEAgLTM2MDE4LDcgKzM2MDE4 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTYzOAotICAgICAgICAg T1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n Z2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGI9MTY1CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKQEAgLTM2MDQwLDcg KzM2MDQwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTYzOAotICAg ICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGI9MTY1 CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKQEAgLTM2 MDYxLDEyICszNjA2MSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGY9J29wcXJzdHV2dycKICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SIGE9 OTMKICAgICAgICAgIE9SIGI9ODU4Ci0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd2 d3h5eionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTM2MDgwLDEyICszNjA4MCwxMiBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTIu MCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5E IGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J29wcXJzdHV2dycK ICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SIGE9OTMKICAgICAgICAgIE9SIGI9ODU4 Ci0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd2d3h5eionKQogICBdXSkKICAgICBl bmQsIHsKQEAgLTM2MTI5LDcgKzM2MTI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1MCBBTkQgNTIpIEFORCBhIT01MSkKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0zNjE0Myw3ICszNjE0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQg YSE9NTEpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzYxOTMsNyArMzYxOTMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdmZWRj YmF6JyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj03NDgKLSAgICAgICAg IE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjkgQU5EIDcxKSBBTkQgYSE9NzApCiAgICAgICAgICBPUiBiPTUzMQogICAg ICAgICAgT1IgYj0xMDkyCkBAIC0zNjIxMiw3ICszNjIxMiw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J2ZlZGNiYXonIEFORCBm IEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBiPTc0OAotICAgICAgICAgT1IgKGQ+PTk3 LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFO RCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2 OSBBTkQgNzEpIEFORCBhIT03MCkKICAgICAgICAgIE9SIGI9NTMxCiAgICAgICAgICBPUiBi PTEwOTIKQEAgLTM2MjI5LDcgKzM2MjI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAgICAg ICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAgICAg IE9SIGE9NTAKQEAgLTM2MjQ3LDcgKzM2MjQ3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1 bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAg ICAgICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAg ICAgIE9SIGE9NTAKQEAgLTM2MjY4LDEwICszNjI2OCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSBhPTI0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQgMjQpIEFO RCBhIT0yMykKICAgICAgICAgIE9SIGI9NDg3Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQg ZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDEzIEFORCAx NSkgQU5EIGEhPTE0KQogICAgICAgICAgT1IgYj0xMzIKLSAgICAgICAgIE9SIChkPj01NC4w IEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQg ZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03OTUKICAgICAgICAg IE9SIGI9NzM3CiAgIF1dKQpAQCAtMzYyODksMTAgKzM2Mjg5LDEwIEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgIFdIRVJFIGE9MjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAy NCkgQU5EIGEhPTIzKQogICAgICAgICAgT1IgYj00ODcKLSAgICAgICAgIE9SIChkPj05Ni4w IEFORCBkPDk3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTYuMCBBTkQg ZDw5Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTMg QU5EIDE1KSBBTkQgYSE9MTQpCiAgICAgICAgICBPUiBiPTEzMgotICAgICAgICAgT1IgKGQ+ PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4w IEFORCBkPDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc5NQogICAg ICAgICAgT1IgYj03MzcKICAgXV0pCkBAIC0zNjMwNyw3ICszNjMwNyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04OC4wIEFORCBk PDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgYz0x NjAxNgogICAgICAgICAgT1IgYj0xMDc4CkBAIC0zNjMyNSw3ICszNjMyNSw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04OC4wIEFO RCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4 OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1Ig Yz0xNjAxNgogICAgICAgICAgT1IgYj0xMDc4CkBAIC0zNjM0Nyw3ICszNjM0Nyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE5IEFORCAyMSkgQU5EIGEh PTIwKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MyBBTkQgNzUpIEFORCBhIT03NCkKLSAgICAgICAg IE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzYzNjUsNyArMzYzNjUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxOSBBTkQgMjEpIEFORCBhIT0yMCkKICAg ICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNzMgQU5EIDc1KSBBTkQgYSE9NzQpCi0gICAgICAgICBPUiAoZD49 MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAg QU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NgogICBdXSkK ICAgICBlbmQsIHsKQEAgLTM2NDI1LDEwICszNjQyNSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdnaGlqa2xt bm8nCi0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NzUuMT4KQEAgLTM2NDQx LDEwICszNjQ0MSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdnaGlqa2xtbm8nCi0gICAgICAgICBPUiAoZD49 MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAg QU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi45NzUuMj4KQEAgLTM2NDYxLDcgKzM2NDYxLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5Kicp CiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAg ICAgICAgIE9SIGI9OTEKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj03NwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFO RCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xP QiAncHFyc3QqJykKQEAgLTM2NDgxLDcgKzM2NDgxLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBP UiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAgICAgICAgIE9SIGI9 OTEKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj03NwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2 d3h5KicpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncHFyc3QqJykK QEAgLTM2NDk3LDEyICszNjQ5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj02OTMKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9NTIKICAgICAgICAgIE9SIGI9Mzc3CiAgIF1dKQpAQCAtMzY1MTcsMTIgKzM2NTE3 LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFO RCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5MwotICAgICAg ICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAg QU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFO RCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQg ZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAg T1IgYj0zNzcKICAgXV0pCkBAIC0zNjU0NCw3ICszNjU0NCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGI9MTAwNAogICAgICAgICAgT1IgYj04NzIKICAgICAgICAgIE9SIGE9 OTUKLSAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xNzYKICAgICAgICAgIE9SIGI9MzAwCiAgIF1dKQpAQCAtMzY1NjYsNyAr MzY1NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTEwMDQKICAgICAgICAg IE9SIGI9ODcyCiAgICAgICAgICBPUiBhPTk1Ci0gICAgICAgICBPUiAoZD49MjcuMCBBTkQg ZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8Mjgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTc2CiAgICAgICAgICBPUiBi PTMwMAogICBdXSkKQEAgLTM2NTkwLDcgKzM2NTkwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBP UiAoZiBHTE9CICc/aGlqayonIEFORCBmIEdMT0IgJ2doaWoqJykKICAgICAgICAgIE9SIGI9 OTI3Ci0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NzkuMT4KQEAgLTM2NjEy LDcgKzM2NjEyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J25tbGtqaWgn IEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/aGlqayonIEFO RCBmIEdMT0IgJ2doaWoqJykKICAgICAgICAgIE9SIGI9OTI3Ci0gICAgICAgICBPUiAoZD49 NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAg QU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi45NzkuMj4KQEAgLTM2NjI3LDcgKzM2NjI3LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBmPSdmZ2hpamts bW4nCiAgICAgICAgICBPUiBiPTEwNzgKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwogICBdXSkKICAg ICBlbmQsIHsKQEAgLTM2NjQzLDcgKzM2NjQzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSdmZ2hpamtsbW4nCiAgICAgICAgICBP UiBiPTEwNzgKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwogICBdXSkKICAgICBlbmQsIHsKQEAgLTM2 NzM0LDcgKzM2NzM0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0zNjMKICAg ICAgICAgIE9SIGI9NjMwCiAgICAgICAgICBPUiBiPTkzNQotICAgICAgICAgT1IgKGQ+PTIw LjAgQU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFO RCBkPDIxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScg QU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGY9J3l6YWJjZGVmZycKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDM3IEFORCAzOSkgQU5EIGEhPTM4KQpAQCAtMzY3NTMsNyAr MzY3NTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTM2MwogICAgICAgICAg T1IgYj02MzAKICAgICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQg ZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBH TE9CICdkZWZnaConKQogICAgICAgICAgT1IgZj0neXphYmNkZWZnJwogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMzcgQU5EIDM5KSBBTkQgYSE9MzgpCkBAIC0zNjc2OSw5ICszNjc2OSw5 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcu MCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00MAotICAg ICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBmPSdhYmNkZWZnaGknCiAgICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgKGc9J3Z1 dHNycXAnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCkBAIC0zNjc5Miw5ICszNjc5Miw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05Ny4w IEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00MAotICAgICAgICAg T1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdh YmNkZWZnaGknCiAgICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgKGc9J3Z1dHNycXAn IEFORCBmIEdMT0IgJ3Fyc3R1KicpCkBAIC0zNjg0NSwxMSArMzY4NDUsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5E IGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ni4wIEFORCBkPDk3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTczCiAgICAgICAgICBPUiBi PTcyOQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9MzIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNjg2MywxMSArMzY4NjMsMTEgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTk2 LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ni4wIEFO RCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTczCiAgICAgICAg ICBPUiBiPTcyOQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9MzIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNjg4Niw3ICszNjg4Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM4IEFORCA0MCkg QU5EIGEhPTM5KQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3h5emFi KicpCiAgICAgICAgICBPUiBiPTQ4NAotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuOTg3LjE+CkBAIC0zNjkwNCw3ICszNjkwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDM4IEFORCA0MCkgQU5EIGEhPTM5KQogICAgICAgICAgT1Ig KGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBiPTQ4NAot ICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTg3LjI+CkBAIC0zNjkxNywxNiAr MzY5MTcsMTYgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVS RSAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTM1Ci0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MjA5CiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgYz0y NzAyNwogICAgICAgICAgT1IgYj0xMDI2CiAgICAgICAgICBPUiBjPTYwMDYKICAgICAgICAg IE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQotICAgICAgICAgT1IgKGQ+ PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4w IEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuOTg4LjE+CkBAIC0zNjkzOSwxNiArMzY5MzksMTYgQEAgdGVz dDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTk5LjAg QU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTkuMCBBTkQg ZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTM1Ci0gICAgICAg ICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MjA5CiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgYz0yNzAyNwogICAgICAgICAg T1IgYj0xMDI2CiAgICAgICAgICBPUiBjPTYwMDYKICAgICAgICAgIE9SIChnPSdwb25tbGtq JyBBTkQgZiBHTE9CICd1dnd4eSonKQotICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuOTg4LjI+CkBAIC0zNjk2MSwxMSArMzY5NjEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxOCBBTkQgMjApIEFORCBhIT0x OSkKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdub3BxcionKQogICAg ICAgICAgT1IgYT05NwotICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykK ICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAg ICAgT1IgYj02NzQKQEAgLTM2OTgzLDExICszNjk4MywxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEh PTE5KQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAg ICAgICAgICBPUiBhPTk3Ci0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIz KQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAg ICAgICBPUiBiPTY3NApAQCAtMzcwMDcsNyArMzcwMDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9Mjk3CiAgICAgICAgICBPUiBh PTgzCi0gICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDE2IEFORCAxOCkgQU5EIGEhPTE3KQogICBdXSkKICAg ICBlbmQsIHsKQEAgLTM3MDIzLDcgKzM3MDIzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTI5NwogICAgICAgICAgT1IgYT04Mwot ICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0zNzA3Nyw4ICszNzA3Nyw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTkyLjE+CkBAIC0zNzA5MSw4 ICszNzA5MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAg IFdIRVJFIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02 My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuOTkyLjI+CkBAIC0zNzE3OSwxMCArMzcxNzksMTAgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTQx CiAgICAgICAgICBPUiBiPTk5MAotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYwNQogICAgICAgICAgT1IgKGc9J3NycXBv bm0nIEFORCBmIEdMT0IgJ2NkZWZnKicpCi0gICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwz Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9C ICdxcnN0dSonKQogICAgICAgICAgT1IgYj05NjgKICAgICAgICAgIE9SIGE9NjYKQEAgLTM3 MjAwLDEwICszNzIwMCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGE9NDEKICAgICAgICAgIE9SIGI9OTkwCi0gICAgICAgICBPUiAo ZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2 LjAgQU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjA1CiAg ICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAg IE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTk2OAogICAg ICAgICAgT1IgYT02NgpAQCAtMzcyMjMsOCArMzcyMjMsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZ2hpamsqJykKICAgICAgICAg IE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGc9 J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49MTcuMCBB TkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8 MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0Ig J2FiY2RlKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOSBBTkQgNDEpIEFORCBhIT00 MCkKICAgXV0pCkBAIC0zNzI0Myw4ICszNzI0Myw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1Ig KGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoZz0nbm1s a2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBk PDE4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAnYWJj ZGUqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM5IEFORCA0MSkgQU5EIGEhPTQwKQog ICBdXSkKQEAgLTM3NDIxLDcgKzM3NDIxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYT0yMwogICAgICAgICAgT1IgKGYgR0xPQiAnP2RlZmcqJyBBTkQgZiBHTE9CICdjZGVm KicpCiAgICAgICAgICBPUiBkPDAuMAotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAgIGVuZCwgewpA QCAtMzc0MzksNyArMzc0MzksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTIz CiAgICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKICAg ICAgICAgIE9SIGQ8MC4wCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTEKICAgXV0pCiAgICAgZW5kLCB7Cg== --------------C1E879452AE60058217E2925--