From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id C68803858D33; Wed, 25 Jan 2023 14:47:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C68803858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,245,1669104000"; d="diff'?scan'208";a="94725293" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 25 Jan 2023 06:47:25 -0800 IronPort-SDR: bWfBjieHlYlTR3icMZOebbEEeA7WS5uYbq8e1E5GSvaQpX62lWfATmlVyfm5xwNeM/btk9koQI c58c9u8EDknpFxJPVTCT4wDyNvm9C6zGBzlcCzFddbL4nGnlGKjpOOYU8BS8OJmc2vsQrz6Pfc Kgej5P8pgkAEyiwmG7VYyLIZj6iQ1q73Xns9sYXHIM6lcsoSo17eCkhGP9R9+b0yP4aeRIhle0 gOhLKNHMCQyD7A83nT6WqTBdudx5OMgvopnxAAIk0VWv5/P6NMBV7Rn0qVh8KE+jxTQFO7Udx8 360= Content-Type: multipart/mixed; boundary="------------ixFCYN4AM34I2lJKzRjZVy3t" Message-ID: Date: Wed, 25 Jan 2023 15:47:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [Patch][v2] OpenMP/Fortran: Partially fix non-rect loop nests [PR107424] Content-Language: en-US To: Jakub Jelinek CC: gcc-patches , fortran References: <18c3aed8-71dd-9b7f-6c7c-da529876d3f5@codesourcery.com> From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------ixFCYN4AM34I2lJKzRjZVy3t Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi Jakub, hi all, updated patch included, i.e. avoiding 'count' for 'j' when a 'j.0' would do (i.e. only local var without the different step calculation). I also now reject if there is a non-unit step on the loop using an outer var. Eventually still to be done: replace the 'sorry' by working code, i.e. implement the suggestions to handle some/all non-unit iteration steps as proposed in this thread. On 20.01.23 18:39, Jakub Jelinek wrote: > I think instead of non-unity etc. it is better to talk about constant > step 1 or -1. I concur. > The actual problem with non-simple loops for non-rectangular loops is > both in case it is an inner loop which uses some outer loop's iterator, > or if it is outer loop whose iterator is used, both of those cases > will not be handled properly. I have now added a check for the other case as well. Just to confirm, the following is fine, isn't it? !$omp simd collapse(4) do i =3D 1, 10, 2 do outer_var =3D 1, 10 ! step =3D + 1 do j =3D 1, 10, 2 do inner_var =3D 1, outer_var ! step =3D 1 i.e. both the inner_var and outer_var have 'step =3D 1', even if other loops in the 'collapse' have step !=3D 1. I think it should be fine. OK mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------ixFCYN4AM34I2lJKzRjZVy3t Content-Type: text/x-patch; charset="UTF-8"; name="omp-non-rect.diff" Content-Disposition: attachment; filename="omp-non-rect.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IFBhcnRpYWxseSBmaXggbm9uLXJlY3QgbG9vcCBuZXN0cyBbUFIx MDc0MjRdCgpUaGlzIHBhdGNoIGVuc3VyZXMgdGhhdCBsb29wIGJvdW5kcyBkZXBlbmRpbmcg b24gb3V0ZXIgbG9vcCB2YXJzIHVzZSB0aGUKcHJvcGVyIFRSRUVfVkVDIGZvcm1hdC4gSXQg YWRkaXRpb25hbGx5IGdpdmVzIGEgc29ycnkgaWYgc3VjaCBhbiBvdXRlcgp2YXIgaGFzIGEg bm9uLW9uZS9ub24tbWludXMtb25lIGluY3JlbWVudCBhcyBjdXJyZW50bHkgYSBjb3VudCB2 YXJpYWJsZQppcyB1c2VkIGluIHRoaXMgY2FzZSAoc2VlIFBSKS4KCkZpbmFsbHksIGl0IGF2 b2lkcyAnY291bnQnIGFuZCBqdXN0IHVzZXMgYSBsb2NhbCBsb29wIHZhcmlhYmxlIGlmIHRo ZQpzdGVwIGluY3JlbWVudCBpcyArLy0xLgoKCVBSIGZvcnRyYW4vMTA3NDI0CgpnY2MvZm9y dHJhbi9DaGFuZ2VMb2c6CgoJKiB0cmFucy1vcGVubXAuY2MgKHN0cnVjdCBkb3Zhcl9pbml0 X2QpOiBBZGQgJ3N5bScgYW5kCgknbm9uX3VuaXRfaW5jcicgbWVtYmVycy4KCShnZmNfbm9u cmVjdF9sb29wX2V4cHIpOiBOZXcuCgkoZ2ZjX3RyYW5zX29tcF9kbyk6IENhbGwgaXQ7IHVz ZSBub3JtYWwgbG9vcCBib3VuZHMKCWZvciB1bml0IHN0cmlkZSAtIGFuZCBvbmx5IGNyZWF0 ZSBsb2NhbCBsb29wIHZhci4KCmxpYmdvbXAvQ2hhbmdlTG9nOgoKCSogdGVzdHN1aXRlL2xp YmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0xLmY5MDogTmV3IHRlc3QuCgkq IHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMWEuZjkw OiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3Vs YXItbG9vcC0yLmY5MDogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v bm9uLXJlY3Rhbmd1bGFyLWxvb3AtMy5mOTA6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGli Z29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTQuZjkwOiBOZXcgdGVzdC4KCSog dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC01LmY5MDog TmV3IHRlc3QuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdmb3J0cmFuLmRnL2dv YWNjL3ByaXZhdGl6YXRpb24tMS1jb21wdXRlLWxvb3AuZjkwOiBVcGRhdGUgZGctbm90ZS4K CSogZ2ZvcnRyYW4uZGcvZ29hY2MvcHJpdmF0aXphdGlvbi0xLXJvdXRpbmVfZ2FuZy1sb29w LmY5MDogTGlrZXdpc2UuCgogZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAg ICAgICAgICAgICAgICAgfCAyMzggKysrKysrLS0KIC4uLi9nb2FjYy9wcml2YXRpemF0aW9u LTEtY29tcHV0ZS1sb29wLmY5MCAgICAgICAgIHwgICA2ICstCiAuLi4vZ29hY2MvcHJpdmF0 aXphdGlvbi0xLXJvdXRpbmVfZ2FuZy1sb29wLmY5MCAgICB8ICAgMyArLQogLi4uL2xpYmdv bXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0xLmY5MCAgICAgfCA2MzcgKysrKysr KysrKysrKysrKysrKysrCiAuLi4vbGliZ29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1s b29wLTFhLmY5MCAgICB8IDM3NCArKysrKysrKysrKysKIC4uLi9saWJnb21wLmZvcnRyYW4v bm9uLXJlY3Rhbmd1bGFyLWxvb3AtMi5mOTAgICAgIHwgMjQzICsrKysrKysrCiAuLi4vbGli Z29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTMuZjkwICAgICB8IDE4NiArKysr KysKIC4uLi9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNC5mOTAgICAg IHwgMTg4ICsrKysrKwogLi4uL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9v cC01LmY5MCAgICAgfCAgMjggKwogOSBmaWxlcyBjaGFuZ2VkLCAxODU0IGluc2VydGlvbnMo KyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLW9w ZW5tcC5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwppbmRleCA4NzIxM2RlMDkx OC4uY2NlZTllMTY2NDggMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5j YworKysgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKQEAgLTUxMTYsMTAgKzUxMTYs MTM1IEBAIGdmY190cmFuc19vbXBfY3JpdGljYWwgKGdmY19jb2RlICpjb2RlKQogfQogCiB0 eXBlZGVmIHN0cnVjdCBkb3Zhcl9pbml0X2QgeworICBnZmNfc3ltYm9sICpzeW07CiAgIHRy ZWUgdmFyOwogICB0cmVlIGluaXQ7CisgIGJvb2wgbm9uX3VuaXRfaXRlcjsKIH0gZG92YXJf aW5pdDsKIAorc3RhdGljIGJvb2wKK2dmY19ub25yZWN0X2xvb3BfZXhwciAoc3RtdGJsb2Nr X3QgKnBibG9jaywgZ2ZjX3NlICpzZXAsIGludCBsb29wX24sCisJCSAgICAgICBnZmNfY29k ZSAqY29kZSwgZ2ZjX2V4cHIgKmV4cHIsIHZlYzxkb3Zhcl9pbml0PiAqaW5pdHMsCisJCSAg ICAgICBpbnQgc2ltcGxlLCBnZmNfZXhwciAqY3Vycl9sb29wX3ZhcikKK3sKKyAgaW50IGk7 CisgIGZvciAoaSA9IDA7IGkgPCBsb29wX247IGkrKykKKyAgICB7CisgICAgICBnY2NfYXNz ZXJ0IChjb2RlLT5leHQuaXRlcmF0b3ItPnZhci0+ZXhwcl90eXBlID09IEVYUFJfVkFSSUFC TEUpOworICAgICAgaWYgKGdmY19maW5kX3N5bV9pbl9leHByIChjb2RlLT5leHQuaXRlcmF0 b3ItPnZhci0+c3ltdHJlZS0+bi5zeW0sIGV4cHIpKQorCWJyZWFrOworICAgICAgY29kZSA9 IGNvZGUtPmJsb2NrLT5uZXh0OworICAgIH0KKyAgaWYgKGkgPj0gbG9vcF9uKQorICAgIHJl dHVybiBmYWxzZTsKKworICAvKiBDYW5vbmljIGZvcm1hdDogVFJFRV9WRUMgd2l0aCBbdmFy LCBtdWx0aXBsaWVyLCBvZmZzZXRdLiAgKi8KKyAgZ2ZjX3N5bWJvbCAqdmFyID0gY29kZS0+ ZXh0Lml0ZXJhdG9yLT52YXItPnN5bXRyZWUtPm4uc3ltOworCisgIHRyZWUgdHJlZV92YXIg PSBOVUxMX1RSRUU7CisgIHRyZWUgYTEgPSBpbnRlZ2VyX29uZV9ub2RlOworICB0cmVlIGEy ID0gaW50ZWdlcl96ZXJvX25vZGU7CisKKyAgaWYgKCFzaW1wbGUpCisgICAgeworICAgICAg LyogRklYTUU6IEhhbmRsZSBub24tdW5pdCBpdGVyIHN0ZXBzLCBjZi4gUFIgZm9ydHJhbi8x MDc0MjQuICAqLworICAgICAgc29ycnlfYXQgKGdmY19nZXRfbG9jYXRpb24gKCZjdXJyX2xv b3BfdmFyLT53aGVyZSksCisJCSJub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3Rl cCBvdGhlciB0aGFuIGNvbnN0YW50IDEgIgorCQkib3IgLTEgZm9yICVxcyIsIGN1cnJfbG9v cF92YXItPnN5bXRyZWUtPm4uc3ltLT5uYW1lKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAg ICB9CisKKyAgZG92YXJfaW5pdCAqZGk7CisgIHVuc2lnbmVkIGl4OworICBGT1JfRUFDSF9W RUNfRUxUICgqaW5pdHMsIGl4LCBkaSkKKyAgICBpZiAoZGktPnN5bSA9PSB2YXIgJiYgIWRp LT5ub25fdW5pdF9pdGVyKQorICAgICAgeworCXRyZWVfdmFyID0gZGktPmluaXQ7CisJZ2Nj X2Fzc2VydCAoREVDTF9QICh0cmVlX3ZhcikpOworCWJyZWFrOworICAgICAgfQorICAgIGVs c2UgaWYgKGRpLT5zeW0gPT0gdmFyKQorICAgICAgeworCS8qIEZJWE1FOiBIYW5kbGUgbm9u LXVuaXQgaXRlciBzdGVwcywgY2YuIFBSIGZvcnRyYW4vMTA3NDI0LiAgKi8KKwlzb3JyeV9h dCAoZ2ZjX2dldF9sb2NhdGlvbiAoJmNvZGUtPmxvYyksCisJCSJub24tcmVjdGFuZ3VsYXIg bG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgIgorCQkib3IgLTEg Zm9yICVxcyIsIHZhci0+bmFtZSk7CisJaW5mb3JtIChnZmNfZ2V0X2xvY2F0aW9uICgmZXhw ci0+d2hlcmUpLCAiVXNlZCBoZXJlIik7CisJcmV0dXJuIGZhbHNlOworICAgICAgfQorICBp ZiAodHJlZV92YXIgPT0gTlVMTF9UUkVFKQorICAgIHRyZWVfdmFyID0gdmFyLT5iYWNrZW5k X2RlY2w7CisKKyAgaWYgKGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFKQorICAg IGdjY19hc3NlcnQgKGV4cHItPnN5bXRyZWUtPm4uc3ltID09IHZhcik7CisgIGVsc2UgaWYg KGV4cHItPmV4cHJfdHlwZSAhPSBFWFBSX09QCisJICAgfHwgKGV4cHItPnZhbHVlLm9wLm9w ICE9IElOVFJJTlNJQ19USU1FUworCSAgICAgICAmJiBleHByLT52YWx1ZS5vcC5vcCAhPSBJ TlRSSU5TSUNfUExVUworCSAgICAgICAmJiBleHByLT52YWx1ZS5vcC5vcCAhPSBJTlRSSU5T SUNfTUlOVVMpKQorICAgIGdjY191bnJlYWNoYWJsZSAoKTsKKyAgZWxzZQorICAgIHsKKyAg ICAgIGdmY19zZSBzZTsKKyAgICAgIGdmY19leHByICpldCA9IE5VTEwsICplbyA9IE5VTEws ICplID0gZXhwcjsKKyAgICAgIGlmIChleHByLT52YWx1ZS5vcC5vcCAhPSBJTlRSSU5TSUNf VElNRVMpCisJeworCSAgaWYgKGdmY19maW5kX3N5bV9pbl9leHByICh2YXIsIGV4cHItPnZh bHVlLm9wLm9wMSkpCisJICAgIHsKKwkgICAgICBlID0gZXhwci0+dmFsdWUub3Aub3AxOwor CSAgICAgIGVvID0gZXhwci0+dmFsdWUub3Aub3AyOworCSAgICB9CisJICBlbHNlCisJICAg IHsKKwkgICAgICBlbyA9IGV4cHItPnZhbHVlLm9wLm9wMTsKKwkgICAgICBlID0gZXhwci0+ dmFsdWUub3Aub3AyOworCSAgICB9CisJfQorICAgICAgaWYgKGUtPnZhbHVlLm9wLm9wID09 IElOVFJJTlNJQ19USU1FUykKKwl7CisJICBpZiAoZS0+dmFsdWUub3Aub3AxLT5leHByX3R5 cGUgPT0gRVhQUl9WQVJJQUJMRQorCSAgICAgICYmIGUtPnZhbHVlLm9wLm9wMS0+c3ltdHJl ZS0+bi5zeW0gPT0gdmFyKQorCSAgICBldCA9IGUtPnZhbHVlLm9wLm9wMjsKKwkgIGVsc2UK KwkgICAgeworCSAgICAgIGV0ID0gZS0+dmFsdWUub3Aub3AxOworCSAgICAgIGdjY19hc3Nl cnQgKGUtPnZhbHVlLm9wLm9wMi0+ZXhwcl90eXBlID09IEVYUFJfVkFSSUFCTEUKKwkJCSAg JiYgZS0+dmFsdWUub3Aub3AyLT5zeW10cmVlLT5uLnN5bSA9PSB2YXIpOworCSAgICB9CisJ fQorICAgICAgZWxzZQorCWdjY19hc3NlcnQgKGUtPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklB QkxFICYmIGUtPnN5bXRyZWUtPm4uc3ltID09IHZhcik7CisgICAgICBpZiAoZXQgIT0gTlVM TCkKKwl7CisJICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxMKTsKKwkgIGdmY19jb252X2V4cHJf dmFsICgmc2UsIGV0KTsKKwkgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKHBibG9jaywgJnNl LnByZSk7CisJICBhMSA9IHNlLmV4cHI7CisJfQorICAgICAgaWYgKGVvICE9IE5VTEwpCisJ eworCSAgZ2ZjX2luaXRfc2UgKCZzZSwgTlVMTCk7CisJICBnZmNfY29udl9leHByX3ZhbCAo JnNlLCBlbyk7CisJICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChwYmxvY2ssICZzZS5wcmUp OworCSAgYTIgPSBzZS5leHByOworCSAgaWYgKGV4cHItPnZhbHVlLm9wLm9wID09IElOVFJJ TlNJQ19NSU5VUyAmJiBleHByLT52YWx1ZS5vcC5vcDIgPT0gZW8pCisJICAgIC8qIG91dGVy LXZhciAtIGEyLiAgKi8KKwkgICAgYTIgPSBmb2xkX2J1aWxkMSAoTkVHQVRFX0VYUFIsIFRS RUVfVFlQRSAoYTIpLCBhMik7CisJICBlbHNlIGlmIChleHByLT52YWx1ZS5vcC5vcCA9PSBJ TlRSSU5TSUNfTUlOVVMpCisJICAgIC8qIGEyIC0gb3V0ZXItdmFyLiAgKi8KKwkgICAgYTEg PSBmb2xkX2J1aWxkMSAoTkVHQVRFX0VYUFIsIFRSRUVfVFlQRSAoYTEpLCBhMSk7CisJfQor ICAgICAgYTEgPSBERUNMX1AgKGExKSA/IGExIDogZ2ZjX2V2YWx1YXRlX25vdyAoYTEsIHBi bG9jayk7CisgICAgICBhMiA9IERFQ0xfUCAoYTIpID8gYTIgOiBnZmNfZXZhbHVhdGVfbm93 IChhMiwgcGJsb2NrKTsKKyAgICB9CisKKyAgZ2ZjX2luaXRfc2UgKHNlcCwgTlVMTCk7Cisg IHNlcC0+ZXhwciA9IG1ha2VfdHJlZV92ZWMgKDMpOworICBUUkVFX1ZFQ19FTFQgKHNlcC0+ ZXhwciwgMCkgPSB0cmVlX3ZhcjsKKyAgVFJFRV9WRUNfRUxUIChzZXAtPmV4cHIsIDEpID0g Zm9sZF9jb252ZXJ0IChUUkVFX1RZUEUgKHRyZWVfdmFyKSwgYTEpOworICBUUkVFX1ZFQ19F TFQgKHNlcC0+ZXhwciwgMikgPSBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAodHJlZV92YXIp LCBhMik7CisKKyAgcmV0dXJuIHRydWU7Cit9CiAKIHN0YXRpYyB0cmVlCiBnZmNfdHJhbnNf b21wX2RvIChnZmNfY29kZSAqY29kZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpw YmxvY2ssCkBAIC01MTI3LDcgKzUyNTIsNyBAQCBnZmNfdHJhbnNfb21wX2RvIChnZmNfY29k ZSAqY29kZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpwYmxvY2ssCiB7CiAgIGdm Y19zZSBzZTsKICAgdHJlZSBkb3Zhciwgc3RtdCwgZnJvbSwgdG8sIHN0ZXAsIHR5cGUsIGlu aXQsIGNvbmQsIGluY3IsIG9yaWdfZGVjbHM7Ci0gIHRyZWUgY291bnQgPSBOVUxMX1RSRUUs IGN5Y2xlX2xhYmVsLCB0bXAsIG9tcF9jbGF1c2VzOworICB0cmVlIGxvY2FsX2RvdmFyID0g TlVMTF9UUkVFLCBjeWNsZV9sYWJlbCwgdG1wLCBvbXBfY2xhdXNlczsKICAgc3RtdGJsb2Nr X3QgYmxvY2s7CiAgIHN0bXRibG9ja190IGJvZHk7CiAgIGdmY19vbXBfY2xhdXNlcyAqY2xh dXNlcyA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlczsKQEAgLTUyMTQsNTIgKzUzMzksNzIgQEAg Z2ZjX3RyYW5zX29tcF9kbyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19leGVjX29wIG9wLCBzdG10 YmxvY2tfdCAqcGJsb2NrLAogICAgICAgZ2ZjX2luaXRfc2UgKCZzZSwgTlVMTCk7CiAgICAg ICBnZmNfY29udl9leHByX2xocyAoJnNlLCBjb2RlLT5leHQuaXRlcmF0b3ItPnZhcik7CiAg ICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChwYmxvY2ssICZzZS5wcmUpOwotICAgICAg ZG92YXIgPSBzZS5leHByOworICAgICAgbG9jYWxfZG92YXIgPSBkb3Zhcl9kZWNsID0gZG92 YXIgPSBzZS5leHByOwogICAgICAgdHlwZSA9IFRSRUVfVFlQRSAoZG92YXIpOwogICAgICAg Z2NjX2Fzc2VydCAoVFJFRV9DT0RFICh0eXBlKSA9PSBJTlRFR0VSX1RZUEUpOwogCiAgICAg ICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxMKTsKLSAgICAgIGdmY19jb252X2V4cHJfdmFsICgm c2UsIGNvZGUtPmV4dC5pdGVyYXRvci0+c3RhcnQpOworICAgICAgZ2ZjX2NvbnZfZXhwcl92 YWwgKCZzZSwgY29kZS0+ZXh0Lml0ZXJhdG9yLT5zdGVwKTsKICAgICAgIGdmY19hZGRfYmxv Y2tfdG9fYmxvY2sgKHBibG9jaywgJnNlLnByZSk7Ci0gICAgICBmcm9tID0gZ2ZjX2V2YWx1 YXRlX25vdyAoc2UuZXhwciwgcGJsb2NrKTsKKyAgICAgIHN0ZXAgPSBnZmNfZXZhbHVhdGVf bm93IChzZS5leHByLCBwYmxvY2spOwogCi0gICAgICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxM KTsKLSAgICAgIGdmY19jb252X2V4cHJfdmFsICgmc2UsIGNvZGUtPmV4dC5pdGVyYXRvci0+ ZW5kKTsKLSAgICAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKHBibG9jaywgJnNlLnByZSk7 Ci0gICAgICB0byA9IGdmY19ldmFsdWF0ZV9ub3cgKHNlLmV4cHIsIHBibG9jayk7CisgICAg ICBpZiAoaW50ZWdlcl9vbmVwIChzdGVwKSkKKwlzaW1wbGUgPSAxOworICAgICAgZWxzZSBp ZiAodHJlZV9pbnRfY3N0X2VxdWFsIChzdGVwLCBpbnRlZ2VyX21pbnVzX29uZV9ub2RlKSkK KwlzaW1wbGUgPSAtMTsKIAogICAgICAgZ2ZjX2luaXRfc2UgKCZzZSwgTlVMTCk7Ci0gICAg ICBnZmNfY29udl9leHByX3ZhbCAoJnNlLCBjb2RlLT5leHQuaXRlcmF0b3ItPnN0ZXApOwot ICAgICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAocGJsb2NrLCAmc2UucHJlKTsKLSAgICAg IHN0ZXAgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBwYmxvY2spOwotICAgICAgZG92 YXJfZGVjbCA9IGRvdmFyOworICAgICAgaWYgKCFjbGF1c2VzLT5ub25fcmVjdGFuZ3VsYXIK KwkgIHx8ICFnZmNfbm9ucmVjdF9sb29wX2V4cHIgKHBibG9jaywgJnNlLCBpLCBvcmlnX2Nv ZGUtPmJsb2NrLT5uZXh0LAorCQkJCSAgICAgY29kZS0+ZXh0Lml0ZXJhdG9yLT5zdGFydCwg JmluaXRzLCBzaW1wbGUsCisJCQkJICAgICBjb2RlLT5leHQuaXRlcmF0b3ItPnZhcikpCisJ eworCSAgZ2ZjX2NvbnZfZXhwcl92YWwgKCZzZSwgY29kZS0+ZXh0Lml0ZXJhdG9yLT5zdGFy dCk7CisJICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrIChwYmxvY2ssICZzZS5wcmUpOworCSAg aWYgKCFERUNMX1AgKHNlLmV4cHIpKQorCSAgICBzZS5leHByID0gZ2ZjX2V2YWx1YXRlX25v dyAoc2UuZXhwciwgcGJsb2NrKTsKKwl9CisgICAgICBmcm9tID0gc2UuZXhwcjsKIAotICAg ICAgLyogU3BlY2lhbCBjYXNlIHNpbXBsZSBsb29wcy4gICovCi0gICAgICBpZiAoVkFSX1Ag KGRvdmFyKSkKKyAgICAgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOworICAgICAgaWYgKCFj bGF1c2VzLT5ub25fcmVjdGFuZ3VsYXIKKwkgIHx8ICFnZmNfbm9ucmVjdF9sb29wX2V4cHIg KHBibG9jaywgJnNlLCBpLCBvcmlnX2NvZGUtPmJsb2NrLT5uZXh0LAorCQkJCSAgICAgY29k ZS0+ZXh0Lml0ZXJhdG9yLT5lbmQsICZpbml0cywgc2ltcGxlLAorCQkJCSAgICAgY29kZS0+ ZXh0Lml0ZXJhdG9yLT52YXIpKQogCXsKLQkgIGlmIChpbnRlZ2VyX29uZXAgKHN0ZXApKQot CSAgICBzaW1wbGUgPSAxOwotCSAgZWxzZSBpZiAodHJlZV9pbnRfY3N0X2VxdWFsIChzdGVw LCBpbnRlZ2VyX21pbnVzX29uZV9ub2RlKSkKLQkgICAgc2ltcGxlID0gLTE7CisJICBnZmNf Y29udl9leHByX3ZhbCAoJnNlLCBjb2RlLT5leHQuaXRlcmF0b3ItPmVuZCk7CisJICBnZmNf YWRkX2Jsb2NrX3RvX2Jsb2NrIChwYmxvY2ssICZzZS5wcmUpOworCSAgaWYgKCFERUNMX1Ag KHNlLmV4cHIpKQorCSAgICBzZS5leHByID0gZ2ZjX2V2YWx1YXRlX25vdyAoc2UuZXhwciwg cGJsb2NrKTsKIAl9Ci0gICAgICBlbHNlCisgICAgICB0byA9IHNlLmV4cHI7CisKKyAgICAg IGlmICghREVDTF9QIChkb3ZhcikpCiAJZG92YXJfZGVjbAogCSAgPSBnZmNfdHJhbnNfb21w X3ZhcmlhYmxlIChjb2RlLT5leHQuaXRlcmF0b3ItPnZhci0+c3ltdHJlZS0+bi5zeW0sCiAJ CQkJICAgIGZhbHNlKTsKLQorICAgICAgaWYgKHNpbXBsZSAmJiAhREVDTF9QIChkb3Zhcikp CisJeworCSAgY29uc3QgY2hhciAqbmFtZSA9IGNvZGUtPmV4dC5pdGVyYXRvci0+dmFyLT5z eW10cmVlLT5uLnN5bS0+bmFtZTsKKwkgIGxvY2FsX2RvdmFyID0gZ2ZjX2NyZWF0ZV92YXIg KHR5cGUsIG5hbWUpOworCSAgZG92YXJfaW5pdCBlID0ge2NvZGUtPmV4dC5pdGVyYXRvci0+ dmFyLT5zeW10cmVlLT5uLnN5bSwKKwkJCSAgZG92YXIsIGxvY2FsX2RvdmFyLCBmYWxzZX07 CisJICBpbml0cy5zYWZlX3B1c2ggKGUpOworCX0KICAgICAgIC8qIExvb3AgYm9keS4gICov CiAgICAgICBpZiAoc2ltcGxlKQogCXsKLQkgIFRSRUVfVkVDX0VMVCAoaW5pdCwgaSkgPSBi dWlsZDJfdiAoTU9ESUZZX0VYUFIsIGRvdmFyLCBmcm9tKTsKKwkgIFRSRUVfVkVDX0VMVCAo aW5pdCwgaSkgPSBidWlsZDJfdiAoTU9ESUZZX0VYUFIsIGxvY2FsX2RvdmFyLCBmcm9tKTsK IAkgIC8qIFRoZSBjb25kaXRpb24gc2hvdWxkIG5vdCBiZSBmb2xkZWQuICAqLwogCSAgVFJF RV9WRUNfRUxUIChjb25kLCBpKSA9IGJ1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBzaW1w bGUgPiAwCiAJCQkJCSAgICAgICA/IExFX0VYUFIgOiBHRV9FWFBSLAotCQkJCQkgICAgICAg bG9naWNhbF90eXBlX25vZGUsIGRvdmFyLCB0byk7CisJCQkJCSAgICAgICBsb2dpY2FsX3R5 cGVfbm9kZSwgbG9jYWxfZG92YXIsCisJCQkJCSAgICAgICB0byk7CiAJICBUUkVFX1ZFQ19F TFQgKGluY3IsIGkpID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgUExVU19F WFBSLAotCQkJCQkJICAgIHR5cGUsIGRvdmFyLCBzdGVwKTsKKwkJCQkJCSAgICB0eXBlLCBs b2NhbF9kb3Zhciwgc3RlcCk7CiAJICBUUkVFX1ZFQ19FTFQgKGluY3IsIGkpID0gZm9sZF9i dWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwKIAkJCQkJCSAgICBNT0RJRllfRVhQUiwKLQkJ CQkJCSAgICB0eXBlLCBkb3ZhciwKKwkJCQkJCSAgICB0eXBlLCBsb2NhbF9kb3ZhciwKIAkJ CQkJCSAgICBUUkVFX1ZFQ19FTFQgKGluY3IsIGkpKTsKIAkgIGlmIChvcmlnX2RlY2xzICYm ICFjbGF1c2VzLT5vcmRlcmVkYykKIAkgICAgb3JpZ19kZWNscyA9IE5VTEw7CkBAIC01Mjgw LDI0ICs1NDI1LDI3IEBAIGdmY190cmFuc19vbXBfZG8gKGdmY19jb2RlICpjb2RlLCBnZmNf ZXhlY19vcCBvcCwgc3RtdGJsb2NrX3QgKnBibG9jaywKIAkgIHRtcCA9IGZvbGRfYnVpbGQy X2xvYyAoaW5wdXRfbG9jYXRpb24sIFRSVU5DX0RJVl9FWFBSLCB0eXBlLCB0bXAsCiAJCQkJ IHN0ZXApOwogCSAgdG1wID0gZ2ZjX2V2YWx1YXRlX25vdyAodG1wLCBwYmxvY2spOwotCSAg Y291bnQgPSBnZmNfY3JlYXRlX3ZhciAodHlwZSwgImNvdW50Iik7Ci0JICBUUkVFX1ZFQ19F TFQgKGluaXQsIGkpID0gYnVpbGQyX3YgKE1PRElGWV9FWFBSLCBjb3VudCwKKwkgIGxvY2Fs X2RvdmFyID0gZ2ZjX2NyZWF0ZV92YXIgKHR5cGUsICJjb3VudCIpOworCSAgVFJFRV9WRUNf RUxUIChpbml0LCBpKSA9IGJ1aWxkMl92IChNT0RJRllfRVhQUiwgbG9jYWxfZG92YXIsCiAJ CQkJCSAgICAgYnVpbGRfaW50X2NzdCAodHlwZSwgMCkpOwogCSAgLyogVGhlIGNvbmRpdGlv biBzaG91bGQgbm90IGJlIGZvbGRlZC4gICovCiAJICBUUkVFX1ZFQ19FTFQgKGNvbmQsIGkp ID0gYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIExUX0VYUFIsCiAJCQkJCSAgICAgICBs b2dpY2FsX3R5cGVfbm9kZSwKLQkJCQkJICAgICAgIGNvdW50LCB0bXApOworCQkJCQkgICAg ICAgbG9jYWxfZG92YXIsIHRtcCk7CiAJICBUUkVFX1ZFQ19FTFQgKGluY3IsIGkpID0gZm9s ZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgUExVU19FWFBSLAotCQkJCQkJICAgIHR5 cGUsIGNvdW50LAorCQkJCQkJICAgIHR5cGUsIGxvY2FsX2RvdmFyLAogCQkJCQkJICAgIGJ1 aWxkX2ludF9jc3QgKHR5cGUsIDEpKTsKIAkgIFRSRUVfVkVDX0VMVCAoaW5jciwgaSkgPSBm b2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLAotCQkJCQkJICAgIE1PRElGWV9FWFBS LCB0eXBlLCBjb3VudCwKKwkJCQkJCSAgICBNT0RJRllfRVhQUiwgdHlwZSwKKwkJCQkJCSAg ICBsb2NhbF9kb3ZhciwKIAkJCQkJCSAgICBUUkVFX1ZFQ19FTFQgKGluY3IsIGkpKTsKIAog CSAgLyogSW5pdGlhbGl6ZSBET1ZBUi4gICovCi0JICB0bXAgPSBmb2xkX2J1aWxkMl9sb2Mg KGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsIHR5cGUsIGNvdW50LCBzdGVwKTsKKwkgIHRt cCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwgdHlwZSwg bG9jYWxfZG92YXIsCisJCQkJIHN0ZXApOwogCSAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChp bnB1dF9sb2NhdGlvbiwgUExVU19FWFBSLCB0eXBlLCBmcm9tLCB0bXApOwotCSAgZG92YXJf aW5pdCBlID0ge2RvdmFyLCB0bXB9OworCSAgZG92YXJfaW5pdCBlID0ge2NvZGUtPmV4dC5p dGVyYXRvci0+dmFyLT5zeW10cmVlLT5uLnN5bSwKKwkJCSAgZG92YXIsIHRtcCwgdHJ1ZX07 CiAJICBpbml0cy5zYWZlX3B1c2ggKGUpOwogCSAgaWYgKGNsYXVzZXMtPm9yZGVyZWRjKQog CSAgICB7CkBAIC01MzEyLDcgKzU0NjAsNyBAQCBnZmNfdHJhbnNfb21wX2RvIChnZmNfY29k ZSAqY29kZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpwYmxvY2ssCiAgICAgICBp ZiAoZG92YXJfZm91bmQgPT0gMwogCSAgJiYgb3AgPT0gRVhFQ19PTVBfU0lNRAogCSAgJiYg Y29sbGFwc2UgPT0gMQotCSAgJiYgIXNpbXBsZSkKKwkgICYmIGxvY2FsX2RvdmFyICE9IGRv dmFyKQogCXsKIAkgIGZvciAodG1wID0gb21wX2NsYXVzZXM7IHRtcDsgdG1wID0gT01QX0NM QVVTRV9DSEFJTiAodG1wKSkKIAkgICAgaWYgKE9NUF9DTEFVU0VfQ09ERSAodG1wKSA9PSBP TVBfQ0xBVVNFX0xJTkVBUgpAQCAtNTMzMSwxMSArNTQ3OSwxMSBAQCBnZmNfdHJhbnNfb21w X2RvIChnZmNfY29kZSAqY29kZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpwYmxv Y2ssCiAJICAgICAgT01QX0NMQVVTRV9MSU5FQVJfTk9fQ09QWUlOICh0bXApID0gMTsKIAkg ICAgICBPTVBfQ0xBVVNFX0RFQ0wgKHRtcCkgPSBkb3Zhcl9kZWNsOwogCSAgICAgIG9tcF9j bGF1c2VzID0gZ2ZjX3RyYW5zX2FkZF9jbGF1c2UgKHRtcCwgb21wX2NsYXVzZXMpOworCSAg ICAgIGlmIChsb2NhbF9kb3ZhciAhPSBkb3ZhcikKKwkJZG92YXJfZm91bmQgPSAzOwogCSAg ICB9Ci0JICBpZiAoIXNpbXBsZSkKLQkgICAgZG92YXJfZm91bmQgPSAzOwogCX0KLSAgICAg IGVsc2UgaWYgKCFkb3Zhcl9mb3VuZCAmJiAhc2ltcGxlKQorICAgICAgZWxzZSBpZiAoIWRv dmFyX2ZvdW5kICYmIGxvY2FsX2RvdmFyICE9IGRvdmFyKQogCXsKIAkgIHRtcCA9IGJ1aWxk X29tcF9jbGF1c2UgKGlucHV0X2xvY2F0aW9uLCBPTVBfQ0xBVVNFX1BSSVZBVEUpOwogCSAg T01QX0NMQVVTRV9ERUNMICh0bXApID0gZG92YXJfZGVjbDsKQEAgLTUzNDYsNyArNTQ5NCw3 IEBAIGdmY190cmFuc19vbXBfZG8gKGdmY19jb2RlICpjb2RlLCBnZmNfZXhlY19vcCBvcCwg c3RtdGJsb2NrX3QgKnBibG9jaywKIAkgIHRyZWUgYyA9IE5VTEw7CiAKIAkgIHRtcCA9IE5V TEw7Ci0JICBpZiAoIXNpbXBsZSkKKwkgIGlmIChsb2NhbF9kb3ZhciAhPSBkb3ZhcikKIAkg ICAgewogCSAgICAgIC8qIElmIGRvdmFyIGlzIGxhc3Rwcml2YXRlLCBidXQgZGlmZmVyZW50 IGNvdW50ZXIgaXMgdXNlZCwKIAkJIGRvdmFyICs9IHN0ZXAgbmVlZHMgdG8gYmUgYWRkZWQg dG8KQEAgLTUzNTYsMjEgKzU1MDQsMTkgQEAgZ2ZjX3RyYW5zX29tcF9kbyAoZ2ZjX2NvZGUg KmNvZGUsIGdmY19leGVjX29wIG9wLCBzdG10YmxvY2tfdCAqcGJsb2NrLAogCSAgICAgIGlm IChjbGF1c2VzLT5vcmRlcmVkYykKIAkJewogCQkgIGlmIChjbGF1c2VzLT5jb2xsYXBzZSA8 PSAxIHx8IGkgPj0gY2xhdXNlcy0+Y29sbGFwc2UpCi0JCSAgICB0bXAgPSBjb3VudDsKKwkJ ICAgIHRtcCA9IGxvY2FsX2RvdmFyOwogCQkgIGVsc2UKIAkJICAgIHRtcCA9IGZvbGRfYnVp bGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIFBMVVNfRVhQUiwKLQkJCQkJICAgdHlwZSwgY291 bnQsIGJ1aWxkX29uZV9jc3QgKHR5cGUpKTsKKwkJCQkJICAgdHlwZSwgbG9jYWxfZG92YXIs CisJCQkJCSAgIGJ1aWxkX29uZV9jc3QgKHR5cGUpKTsKIAkJICB0bXAgPSBmb2xkX2J1aWxk Ml9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsIHR5cGUsCiAJCQkJCSB0bXAsIHN0 ZXApOwogCQkgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIFBMVVNf RVhQUiwgdHlwZSwKIAkJCQkJIGZyb20sIHRtcCk7CiAJCX0KIAkgICAgICBlbHNlCi0JCXsK LQkJICB0bXAgPSBnZmNfZXZhbHVhdGVfbm93IChzdGVwLCBwYmxvY2spOwotCQkgIHRtcCA9 IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIFBMVVNfRVhQUiwgdHlwZSwKLQkJ CQkJIGRvdmFyLCB0bXApOwotCQl9CisJCXRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRf bG9jYXRpb24sIFBMVVNfRVhQUiwgdHlwZSwKKwkJCQkgICAgICAgZG92YXIsIHN0ZXApOwog CSAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1PRElGWV9F WFBSLCB0eXBlLAogCQkJCSAgICAgZG92YXIsIHRtcCk7CiAJICAgICAgZm9yIChjID0gb21w X2NsYXVzZXM7IGMgOyBjID0gT01QX0NMQVVTRV9DSEFJTiAoYykpCkBAIC01NDA1LDkgKzU1 NTEsOSBAQCBnZmNfdHJhbnNfb21wX2RvIChnZmNfY29kZSAqY29kZSwgZ2ZjX2V4ZWNfb3Ag b3AsIHN0bXRibG9ja190ICpwYmxvY2ssCiAJCSAgICBicmVhazsKIAkJICB9CiAJICAgIH0K LQkgIGdjY19hc3NlcnQgKHNpbXBsZSB8fCBjICE9IE5VTEwpOworCSAgZ2NjX2Fzc2VydCAo bG9jYWxfZG92YXIgPT0gZG92YXIgfHwgYyAhPSBOVUxMKTsKIAl9Ci0gICAgICBpZiAoIXNp bXBsZSkKKyAgICAgIGlmIChsb2NhbF9kb3ZhciAhPSBkb3ZhcikKIAl7CiAJICBpZiAob3Ag IT0gRVhFQ19PTVBfU0lNRCB8fCBkb3Zhcl9mb3VuZCA9PSAxKQogCSAgICB0bXAgPSBidWls ZF9vbXBfY2xhdXNlIChpbnB1dF9sb2NhdGlvbiwgT01QX0NMQVVTRV9QUklWQVRFKTsKQEAg LTU0MjAsNyArNTU2Niw3IEBAIGdmY190cmFuc19vbXBfZG8gKGdmY19jb2RlICpjb2RlLCBn ZmNfZXhlY19vcCBvcCwgc3RtdGJsb2NrX3QgKnBibG9jaywKIAkgICAgfQogCSAgZWxzZQog CSAgICB0bXAgPSBidWlsZF9vbXBfY2xhdXNlIChpbnB1dF9sb2NhdGlvbiwgT01QX0NMQVVT RV9MQVNUUFJJVkFURSk7Ci0JICBPTVBfQ0xBVVNFX0RFQ0wgKHRtcCkgPSBjb3VudDsKKwkg IE9NUF9DTEFVU0VfREVDTCAodG1wKSA9IGxvY2FsX2RvdmFyOwogCSAgb21wX2NsYXVzZXMg PSBnZmNfdHJhbnNfYWRkX2NsYXVzZSAodG1wLCBvbXBfY2xhdXNlcyk7CiAJfQogCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL3ByaXZhdGl6YXRpb24t MS1jb21wdXRlLWxvb3AuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9w cml2YXRpemF0aW9uLTEtY29tcHV0ZS1sb29wLmY5MAppbmRleCAxMzc3MmMxODVjZS4uYWQ1 ZTExYWJmOTEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2Mv cHJpdmF0aXphdGlvbi0xLWNvbXB1dGUtbG9vcC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb2FjYy9wcml2YXRpemF0aW9uLTEtY29tcHV0ZS1sb29wLmY5MApAQCAt NDcsOCArNDcsMTAgQEAgY29udGFpbnMKICAgICAgICBlbmQgZG8KICAgICBlbmQgZG8KICAg ICAhJGFjYyBlbmQgcGFyYWxsZWwKLSAgICAhIHsgZGctbm90ZSB7dmFyaWFibGUgJ2NvdW50 XC5bMC05XSsnIGRlY2xhcmVkIGluIGJsb2NrIGlzbid0IGNhbmRpZGF0ZSBmb3IgYWRqdXN0 aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJlc3NhYmxlfSAiIiB7 IHRhcmdldCAqLSotKiB9IGxfY29tcHV0ZSRjX2NvbXB1dGUgfQotICAgICEgeyBkZy1ub3Rl IHt2YXJpYWJsZSAnY291bnRcLlswLTldKycgaW4gJ3ByaXZhdGUnIGNsYXVzZSBpc24ndCBj YW5kaWRhdGUgZm9yIGFkanVzdGluZyBPcGVuQUNDIHByaXZhdGl6YXRpb24gbGV2ZWw6IG5v dCBhZGRyZXNzYWJsZX0gIiIgeyB0YXJnZXQgKi0qLSogfSBsX2xvb3AkY19sb29wIH0KKyAg ICAhIHsgZGctbm90ZSB7dmFyaWFibGUgJ2lcLlswLTldKycgZGVjbGFyZWQgaW4gYmxvY2sg aXNuJ3QgY2FuZGlkYXRlIGZvciBhZGp1c3RpbmcgT3BlbkFDQyBwcml2YXRpemF0aW9uIGxl dmVsOiBub3QgYWRkcmVzc2FibGV9ICIiIHsgdGFyZ2V0ICotKi0qIH0gbF9jb21wdXRlJGNf Y29tcHV0ZSB9CisgICAgISB7IGRnLW5vdGUge3ZhcmlhYmxlICdqXC5bMC05XSsnIGRlY2xh cmVkIGluIGJsb2NrIGlzbid0IGNhbmRpZGF0ZSBmb3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJp dmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJlc3NhYmxlfSAiIiB7IHRhcmdldCAqLSotKiB9 IGxfY29tcHV0ZSRjX2NvbXB1dGUgfQorICAgICEgeyBkZy1ub3RlIHt2YXJpYWJsZSAnaVwu WzAtOV0rJyBpbiAncHJpdmF0ZScgY2xhdXNlIGlzbid0IGNhbmRpZGF0ZSBmb3IgYWRqdXN0 aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJlc3NhYmxlfSAiIiB7 IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xvb3AgfQorICAgICEgeyBkZy1ub3RlIHt2YXJp YWJsZSAnalwuWzAtOV0rJyBpbiAncHJpdmF0ZScgY2xhdXNlIGlzbid0IGNhbmRpZGF0ZSBm b3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJlc3Nh YmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xvb3AgfQogICAgICEgeyBkZy1u b3RlIHt2YXJpYWJsZSAnaScgaW4gJ3ByaXZhdGUnIGNsYXVzZSBpc24ndCBjYW5kaWRhdGUg Zm9yIGFkanVzdGluZyBPcGVuQUNDIHByaXZhdGl6YXRpb24gbGV2ZWw6IG5vdCBhZGRyZXNz YWJsZX0gIiIgeyB0YXJnZXQgKi0qLSogfSBsX2xvb3AkY19sb29wIH0KICAgICAhIHsgZGct bm90ZSB7dmFyaWFibGUgJ2onIGluICdwcml2YXRlJyBjbGF1c2UgaXNuJ3QgY2FuZGlkYXRl IGZvciBhZGp1c3RpbmcgT3BlbkFDQyBwcml2YXRpemF0aW9uIGxldmVsOiBub3QgYWRkcmVz c2FibGV9ICIiIHsgdGFyZ2V0ICotKi0qIH0gbF9sb29wJGNfbG9vcCB9CiAgICAgISB7IGRn LW5vdGUge3ZhcmlhYmxlICdhJyBpbiAncHJpdmF0ZScgY2xhdXNlIGlzbid0IGNhbmRpZGF0 ZSBmb3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJl c3NhYmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xvb3AgfQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9wcml2YXRpemF0aW9uLTEtcm91 dGluZV9nYW5nLWxvb3AuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9w cml2YXRpemF0aW9uLTEtcm91dGluZV9nYW5nLWxvb3AuZjkwCmluZGV4IDY4NzhkODU2OTE5 Li5jNWMyZjJiOTg0NSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b2FjYy9wcml2YXRpemF0aW9uLTEtcm91dGluZV9nYW5nLWxvb3AuZjkwCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2MvcHJpdmF0aXphdGlvbi0xLXJvdXRpbmVfZ2Fu Zy1sb29wLmY5MApAQCAtNDYsNyArNDYsOCBAQCBjb250YWlucwogICAgICAgICAgIHkgPSBh CiAgICAgICAgZW5kIGRvCiAgICAgZW5kIGRvCi0gICAgISB7IGRnLW5vdGUge3ZhcmlhYmxl ICdjb3VudFwuWzAtOV0rJyBpbiAncHJpdmF0ZScgY2xhdXNlIGlzbid0IGNhbmRpZGF0ZSBm b3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90IGFkZHJlc3Nh YmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xvb3AgfQorICAgICEgeyBkZy1u b3RlIHt2YXJpYWJsZSAnaVwuWzAtOV0rJyBpbiAncHJpdmF0ZScgY2xhdXNlIGlzbid0IGNh bmRpZGF0ZSBmb3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBsZXZlbDogbm90 IGFkZHJlc3NhYmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xvb3AgfQorICAg ICEgeyBkZy1ub3RlIHt2YXJpYWJsZSAnalwuWzAtOV0rJyBpbiAncHJpdmF0ZScgY2xhdXNl IGlzbid0IGNhbmRpZGF0ZSBmb3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlvbiBs ZXZlbDogbm90IGFkZHJlc3NhYmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRjX2xv b3AgfQogICAgICEgeyBkZy1ub3RlIHt2YXJpYWJsZSAnaScgaW4gJ3ByaXZhdGUnIGNsYXVz ZSBpc24ndCBjYW5kaWRhdGUgZm9yIGFkanVzdGluZyBPcGVuQUNDIHByaXZhdGl6YXRpb24g bGV2ZWw6IG5vdCBhZGRyZXNzYWJsZX0gIiIgeyB0YXJnZXQgKi0qLSogfSBsX2xvb3AkY19s b29wIH0KICAgICAhIHsgZGctbm90ZSB7dmFyaWFibGUgJ2onIGluICdwcml2YXRlJyBjbGF1 c2UgaXNuJ3QgY2FuZGlkYXRlIGZvciBhZGp1c3RpbmcgT3BlbkFDQyBwcml2YXRpemF0aW9u IGxldmVsOiBub3QgYWRkcmVzc2FibGV9ICIiIHsgdGFyZ2V0ICotKi0qIH0gbF9sb29wJGNf bG9vcCB9CiAgICAgISB7IGRnLW5vdGUge3ZhcmlhYmxlICdhJyBpbiAncHJpdmF0ZScgY2xh dXNlIGlzbid0IGNhbmRpZGF0ZSBmb3IgYWRqdXN0aW5nIE9wZW5BQ0MgcHJpdmF0aXphdGlv biBsZXZlbDogbm90IGFkZHJlc3NhYmxlfSAiIiB7IHRhcmdldCAqLSotKiB9IGxfbG9vcCRj X2xvb3AgfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFu L25vbi1yZWN0YW5ndWxhci1sb29wLTEuZjkwIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTEuZjkwCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kZjc0NzYzZDlkNwotLS0gL2Rldi9udWxsCisrKyBi L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9v cC0xLmY5MApAQCAtMCwwICsxLDYzNyBAQAorISB7IGRnLWRvIHJ1biB9CishIHsgZGctYWRk aXRpb25hbC1vcHRpb25zICItbXNzZTIiIHsgdGFyZ2V0IHNzZTJfcnVudGltZSB9IH0KKyEg eyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXZ4IiB7IHRhcmdldCBhdnhfcnVudGltZSB9 IH0KKworISBQUiBmb3J0cmFuLzEwNzQyNAorCishIE5vbnJlY3Rhbmd1bGFyIGxvb3AgbmVz dHMgY2hlY2tzCisKKyEgU2VlIFBSIG9yIG5vbi1yZWN0YW5ndWxhci1sb29wLTFhLmY5MCBm b3IgdGhlIGNvbW1lbnRlZCB0ZXN0cworISBIaW50OiBUaG9zZSB1c2Ugc3RlcCBmb3IgbG9v cCB2YXJzIHBhcnQgb2Ygbm9ucmVjdGFuZ3VsYXIgbG9vcCBuZXN0cworCittb2R1bGUgbQor ICBpbXBsaWNpdCBub25lICh0eXBlLCBleHRlcm5hbCkKK2NvbnRhaW5zCisKKyEgVGhlICdr JyBsb29wIHVzZXMgaSBvciBqIGFzIHN0YXJ0IHZhbHVlCishIGJ1dCBhIGNvbnN0YW50IGVu ZCB2YWx1ZSBzdWNoIHRoYXQgJ2xhc3Rwcml2YXRlJworISBzaG91bGQgYmUgd2VsbC1kZWZp bmVkCitzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQorICBpbnRlZ2VyIDo6 IG4sbSxwLCBpLGosaworCisgIG4gPSAxMQorICBtID0gMjMKKyAgcCA9IDI3CisKKyAgISBV c2UgJ2knIG9yICdqJywgdW5pdCBzdGVwIG9uICdpJyBvciBvbiAnaicgLT4gNCBsb29wcwor ICAhIFRoZW4gc2FtZSwgZXhjZXB0IHVzZSBub24tdW5pdCBzdGVwIGZvciAnaycKKworISAg ISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorISAgZG8gaSA9IDEsIG4K KyEgICAgZG8gaiA9IDEsIG0sIDIKKyEgICAgICBkbyBrID0gaiAtIDQxLCBwCishICAgICAg ICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCishICAgICAgZW5kIGRv CishICAgIGVuZCBkbworISAgZW5kIGRvCishICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3Rv cAorCishICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCishICBkbyBp ID0gMSwgbiwgMgorISAgICBkbyBqID0gMSwgbQorISAgICAgIGRvIGsgPSBpIC0gNDEsIHAK KyEgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyEgICAg ICBlbmQgZG8KKyEgICAgZW5kIGRvCishICBlbmQgZG8KKyEgIGlmIChrIC89IHAgKyAxKSBl cnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQor ICBkbyBpID0gMSwgbiwgMgorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaiAtIDQx LCBwCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIHRoZW4KKyAgICAgICAg ICBwcmludCAqLCBpLCBqLCBrLHAsICIgLT4gaSwgaiwgaywgcCAgIChrIDwgMSAtIDQxIC5v ci4gayA+IHApIgorICAgICAgICAgIGVycm9yIHN0b3AKKyAgICAgICAgZW5kIGlmCisgICAg ICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJv ciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBk byBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBrID0gaSAtIDQxLCBw CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAg IGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9y IHN0b3AKKworICAhIFNhbWUgYnV0ICdwcml2YXRlJyBmb3IgYWxsIChpLGopIHZhcnMKKwor ISAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikK KyEgIGRvIGkgPSAxLCBuCishICAgIGRvIGogPSAxLCBtLCAyCishICAgICAgZG8gayA9IGog LSA0MSwgcAorISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3Rv cAorISAgICAgIGVuZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworISAgaWYgKGsgLz0g cCArIDEpIGVycm9yIHN0b3AKKyEKKyEgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHBy aXZhdGUoaykgcHJpdmF0ZShpLGopCishICBkbyBpID0gMSwgbiwgMgorISAgICBkbyBqID0g MSwgbQorISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyEgICAgICAgIGlmIChrIDwgMSAtIDQx IC5vci4gayA+IHApIGVycm9yIHN0b3AKKyEgICAgICBlbmQgZG8KKyEgICAgZW5kIGRvCish ICBlbmQgZG8KKyEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2lt ZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IDEs IG4sIDIKKyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGogLSA0MSwgcAorICAgICAg ICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8K KyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisK KyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikK KyAgZG8gaSA9IDEsIG4KKyAgICBkbyBqID0gMSwgbSwgMgorICAgICAgZG8gayA9IGkgLSA0 MSwgcAorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisg ICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBl cnJvciBzdG9wCisKKyAgISBTYW1lIC0gYnV0IHdpdGggbGFzdHByaXZhdGUoaSxqKQorCish ICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGks aikKKyEgIGRvIGkgPSAxLCBuCishICAgIGRvIGogPSAxLCBtLCAyCishICAgICAgZG8gayA9 IGogLSA0MSwgcAorISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Ig c3RvcAorISAgICAgIGVuZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworISAgaWYgKGsg Lz0gcCArIDEpIGVycm9yIHN0b3AKKyEgIGlmIChpIC89IG4gKyAxIC5vci4gaiAvPSBtICsg MikgZXJyb3Igc3RvcAorCishICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRl KGspIGxhc3Rwcml2YXRlKGksaikKKyEgIGRvIGkgPSAxLCBuLCAyCishICAgIGRvIGogPSAx LCBtCishICAgICAgZG8gayA9IGkgLSA0MSwgcAorISAgICAgICAgaWYgKGsgPCAxIC0gNDEg Lm9yLiBrID4gcCkgZXJyb3Igc3RvcAorISAgICAgIGVuZCBkbworISAgICBlbmQgZG8KKyEg IGVuZCBkbworISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyEgIGlmIChpIC89IG4g KyAyIC5vci4gaiAvPSBtICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQgY29sbGFw c2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbiwg MgorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaiAtIDQxLCBwCisgICAgICAgIGlm IChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAg IGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyAgaWYg KGkgLz0gbiArIDIgLm9yLiBqIC89IG0gKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2lt ZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCisgIGRvIGkg PSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIKKyAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyAg ICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5k IGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3Rv cAorICBpZiAoaSAvPSBuICsgMSAub3IuIGogLz0gbSArIDIpIGVycm9yIHN0b3AKK2VuZCBz dWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQorCisKKyEgU2FtZSBidXQgd2l0 aCBkbyBzaW1kCitzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX2RvX3NpbWRfMQorICBp bnRlZ2VyIDo6IG4sbSxwLCBpLGosaworCisgIG4gPSAxMQorICBtID0gMjMKKyAgcCA9IDI3 CisKKyAgISBVc2UgJ2knIG9yICdqJywgdW5pdCBzdGVwIG9uICdpJyBvciBvbiAnaicgLT4g NCBsb29wcworICAhIFRoZW4gc2FtZSwgZXhjZXB0IHVzZSBub24tdW5pdCBzdGVwIGZvciAn aycKKworISAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0 ZShrKQorISAgZG8gaSA9IDEsIG4KKyEgICAgZG8gaiA9IDEsIG0sIDIKKyEgICAgICBkbyBr ID0gaiAtIDQxLCBwCishICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJv ciBzdG9wCishICAgICAgZW5kIGRvCishICAgIGVuZCBkbworISAgZW5kIGRvCishICBpZiAo ayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCishICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNv bGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCishICBkbyBpID0gMSwgbiwgMgorISAgICBkbyBq ID0gMSwgbQorISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyEgICAgICAgIGlmIChrIDwgMSAt IDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyEgICAgICBlbmQgZG8KKyEgICAgZW5kIGRv CishICBlbmQgZG8KKyEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAg cGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBpID0g MSwgbiwgMgorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaiAtIDQxLCBwCisgICAg ICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBk bworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AK KworICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGsp CisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIKKyAgICAgIGRvIGsgPSBpIC0g NDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAor ICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkg ZXJyb3Igc3RvcAorCisgICEgU2FtZSBidXQgJ3ByaXZhdGUnIGZvciBhbGwgKGksaikgdmFy cworCishICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRl KGspIHByaXZhdGUoaSxqKQorISAgZG8gaSA9IDEsIG4KKyEgICAgZG8gaiA9IDEsIG0sIDIK KyEgICAgICBkbyBrID0gaiAtIDQxLCBwCishICAgICAgICBpZiAoayA8IDEgLSA0MSAub3Iu IGsgPiBwKSBlcnJvciBzdG9wCishICAgICAgZW5kIGRvCishICAgIGVuZCBkbworISAgZW5k IGRvCishICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCishICAhJG9tcCBwYXJhbGxl bCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorISAg ZG8gaSA9IDEsIG4sIDIKKyEgICAgZG8gaiA9IDEsIG0KKyEgICAgICBkbyBrID0gaSAtIDQx LCBwCishICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCish ICAgICAgZW5kIGRvCishICAgIGVuZCBkbworISAgZW5kIGRvCishICBpZiAoayAvPSBwICsg MSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFwc2UoMykg bGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8g aiA9IDEsIG0KKyAgICAgIGRvIGsgPSBqIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0g NDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisg IGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFs bGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCisg IGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIKKyAgICAgIGRvIGsgPSBpIC0gNDEs IHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAg ICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJy b3Igc3RvcAorCisgICEgU2FtZSAtIGJ1dCB3aXRoIGxhc3Rwcml2YXRlKGksaikKKworISAg ISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0 cHJpdmF0ZShpLGopCishICBkbyBpID0gMSwgbgorISAgICBkbyBqID0gMSwgbSwgMgorISAg ICAgIGRvIGsgPSBqIC0gNDEsIHAKKyEgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+ IHApIGVycm9yIHN0b3AKKyEgICAgICBlbmQgZG8KKyEgICAgZW5kIGRvCishICBlbmQgZG8K KyEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCishICBpZiAoaSAvPSBuICsgMSAub3Iu IGogLz0gbSArIDIpIGVycm9yIHN0b3AKKworISAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBj b2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCishICBkbyBpID0g MSwgbiwgMgorISAgICBkbyBqID0gMSwgbQorISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyEg ICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyEgICAgICBl bmQgZG8KKyEgICAgZW5kIGRvCishICBlbmQgZG8KKyEgIGlmIChrIC89IHAgKyAxKSBlcnJv ciBzdG9wCishICBpZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0b3AK KworICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGsp IGxhc3Rwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4sIDIKKyAgICBkbyBqID0gMSwgbQor ICAgICAgZG8gayA9IGogLSA0MSwgcAorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsg PiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisg IGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisgIGlmIChpIC89IG4gKyAyIC5vci4gaiAv PSBtICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFw c2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbgor ICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBrID0gaSAtIDQxLCBwCisgICAgICAgIGlm IChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAg IGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyAgaWYg KGkgLz0gbiArIDEgLm9yLiBqIC89IG0gKyAyKSBlcnJvciBzdG9wCitlbmQgc3Vicm91dGlu ZSBsYXN0cHJpdmF0ZV9jaGVja19kb19zaW1kXzEKKworCisKKyEgU2FtZSBidXQgd2l0aCBk bworc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVja19kb18xCisgIGludGVnZXIgOjogbixt LHAsIGksaixrCisKKyAgbiA9IDExCisgIG0gPSAyMworICBwID0gMjcKKworICAhIFVzZSAn aScgb3IgJ2onLCB1bml0IHN0ZXAgb24gJ2knIG9yIG9uICdqJyAtPiA0IGxvb3BzCisgICEg VGhlbiBzYW1lLCBleGNlcHQgdXNlIG5vbi11bml0IHN0ZXAgZm9yICdrJworCishICAhJG9t cCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorISAgZG8gaSA9IDEs IG4KKyEgICAgZG8gaiA9IDEsIG0sIDIKKyEgICAgICBkbyBrID0gaiAtIDQxLCBwCishICAg ICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCishICAgICAgZW5k IGRvCishICAgIGVuZCBkbworISAgZW5kIGRvCishICBpZiAoayAvPSBwICsgMSkgZXJyb3Ig c3RvcAorCishICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShr KQorISAgZG8gaSA9IDEsIG4sIDIKKyEgICAgZG8gaiA9IDEsIG0KKyEgICAgICBkbyBrID0g aSAtIDQxLCBwCishICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBz dG9wCishICAgICAgZW5kIGRvCishICAgIGVuZCBkbworISAgZW5kIGRvCishICBpZiAoayAv PSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMp IGxhc3Rwcml2YXRlKGspCisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8gaiA9IDEsIG0KKyAg ICAgIGRvIGsgPSBqIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4g cCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBp ZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxh cHNlKDMpIGxhc3Rwcml2YXRlKGspCisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0s IDIKKyAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9y LiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBk bworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEgU2FtZSBidXQgJ3ByaXZh dGUnIGZvciBhbGwgKGksaikgdmFycworCishICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBz ZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyEgIGRvIGkgPSAxLCBuCishICAg IGRvIGogPSAxLCBtLCAyCishICAgICAgZG8gayA9IGogLSA0MSwgcAorISAgICAgICAgaWYg KGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorISAgICAgIGVuZCBkbworISAg ICBlbmQgZG8KKyEgIGVuZCBkbworISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKwor ISAgISRvbXAgcGFyYWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0 ZShpLGopCishICBkbyBpID0gMSwgbiwgMgorISAgICBkbyBqID0gMSwgbQorISAgICAgIGRv IGsgPSBpIC0gNDEsIHAKKyEgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVy cm9yIHN0b3AKKyEgICAgICBlbmQgZG8KKyEgICAgZW5kIGRvCishICBlbmQgZG8KKyEgIGlm IChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgcGFyYWxsZWwgZG8gY29sbGFw c2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCisgIGRvIGkgPSAxLCBuLCAyCisg ICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsgPSBqIC0gNDEsIHAKKyAgICAgICAgaWYgKGsg PCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5k IGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21w IHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQor ICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBrID0gaSAtIDQx LCBwCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAg ICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVy cm9yIHN0b3AKKworICAhIFNhbWUgLSBidXQgd2l0aCBsYXN0cHJpdmF0ZShpLGopCisKKyEg ICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2 YXRlKGksaikKKyEgIGRvIGkgPSAxLCBuCishICAgIGRvIGogPSAxLCBtLCAyCishICAgICAg ZG8gayA9IGogLSA0MSwgcAorISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkg ZXJyb3Igc3RvcAorISAgICAgIGVuZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworISAg aWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyEgIGlmIChpIC89IG4gKyAxIC5vci4gaiAv PSBtICsgMikgZXJyb3Igc3RvcAorCishICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgz KSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCishICBkbyBpID0gMSwgbiwgMgor ISAgICBkbyBqID0gMSwgbQorISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyEgICAgICAgIGlm IChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyEgICAgICBlbmQgZG8KKyEg ICAgZW5kIGRvCishICBlbmQgZG8KKyEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCish ICBpZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0b3AKKworICAhJG9t cCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShp LGopCisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsgPSBq IC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3Rv cAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsg MSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9y IHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShr KSBsYXN0cHJpdmF0ZShpLGopCisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIK KyAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBr ID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbwor ICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMSAub3IuIGog Lz0gbSArIDIpIGVycm9yIHN0b3AKK2VuZCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNr X2RvXzEKKworCisKK3N1YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfMgorICBpbnRlZ2Vy IDo6IG4sbSxwLCBpLGosayxsbAorCisgIG4gPSAxMQorICBtID0gMjMKKyAgcCA9IDI3CisK KyEgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUocCkK KyEgIGRvIGkgPSAxLCBuCishICAgIGRvIGogPSAxLCBtLDIKKyEgICAgICBkbyBrID0gMSwg aiArIDQxCishICAgICAgICBkbyBsbCA9IDEsIHAsIDIKKyEgICAgICAgICAgaWYgKGsgPiAy MyArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyEgICAgICAgIGVuZCBkbworISAgICAg IGVuZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworISAgaWYgKGxsIC89IDI5KSBlcnJv ciBzdG9wCisKKyEgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUocCkKKyEg IGRvIGkgPSAxLCBuCishICAgIGRvIGogPSAxLCBtLDIKKyEgICAgICBkbyBrID0gMSwgaiAr IDQxCishICAgICAgICBkbyBsbCA9IDEsIHAsIDIKKyEgICAgICAgICAgaWYgKGsgPiAyMyAr IDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyEgICAgICAgIGVuZCBkbworISAgICAgIGVu ZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworISAgaWYgKGxsIC89IDI5KSBlcnJvciBz dG9wCisKKyEgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKKyEgIGRv IGkgPSAxLCBuLDIKKyEgICAgZG8gaiA9IDEsIG0KKyEgICAgICBkbyBrID0gMSwgaSArIDQx CishICAgICAgICBpZiAoayA+IDExICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAorISAg ICAgIGVuZCBkbworISAgICBlbmQgZG8KKyEgIGVuZCBkbworIWlmIChrIC89IDUzKSB0aGVu CishICBwcmludCAqLCBrLCA1MworISAgZXJyb3Igc3RvcAorIWVuZGlmCisKKyEkb21wIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKK2RvIGkgPSAxLCBuLDIKKyAgZG8gaiA9 IDEsIG0KKyAgICBkbyBrID0gMSwgaiArIDQxCisgICAgICBpZiAoayA+IDIzICsgNDEgLm9y LiBrIDwgMSkgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZCBkbworaWYg KGsgLz0gNjUpIHRoZW4KKyAgcHJpbnQgKiwgaywgNjUKKyAgZXJyb3Igc3RvcAorZW5kaWYK KworCishJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCitkbyBpID0gMSwg bgorICBkbyBqID0gMSwgbSwyCisgICAgZG8gayA9IDEsIGkgKyA0MQorICAgICAgaWYgKGsg PiAxMSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICBlbmQgZG8KKyAgZW5kIGRv CitlbmQgZG8KK2lmIChrIC89IDUzKSB0aGVuCisgIHByaW50ICosIGssIDUzCisgIGVycm9y IHN0b3AKK2VuZGlmCisKKyEgLSBTYW1lIGJ1dCB3aXRob3V0ICdwcml2YXRlJzoKKyEhJG9t cCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCishZG8gaSA9IDEsIG4KKyEgIGRv IGogPSAxLCBtLDIKKyEgICAgZG8gayA9IDEsIGogKyA0MQorISAgICAgIGlmIChrID4gMjMg KyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCishICAgIGVuZCBkbworISAgZW5kIGRvCish ZW5kIGRvCishaWYgKGsgLz0gNjUpIHRoZW4KKyEgIHByaW50ICosIGssIDY1CishICBlcnJv ciBzdG9wCishZW5kaWYKKworCishISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0 ZShrKQorIWRvIGkgPSAxLCBuLDIKKyEgIGRvIGogPSAxLCBtCishICAgIGRvIGsgPSAxLCBp ICsgNDEKKyEgICAgICBpZiAoayA+IDExICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAor ISAgICBlbmQgZG8KKyEgIGVuZCBkbworIWVuZCBkbworIWlmIChrIC89IDUzKSB0aGVuCish ICBwcmludCAqLCBrLCA1MworISAgZXJyb3Igc3RvcAorIWVuZGlmCisKKyEkb21wIHNpbWQg Y29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKK2RvIGkgPSAxLCBuLDIKKyAgZG8gaiA9IDEs IG0KKyAgICBkbyBrID0gMSwgaiArIDQxCisgICAgICBpZiAoayA+IDIzICsgNDEgLm9yLiBr IDwgMSkgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZCBkbworaWYgKGsg Lz0gNjUpIHRoZW4KKyAgcHJpbnQgKiwgaywgNjUKKyAgZXJyb3Igc3RvcAorZW5kaWYKKwor CishJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCitkbyBpID0gMSwgbgor ICBkbyBqID0gMSwgbSwyCisgICAgZG8gayA9IDEsIGkgKyA0MQorICAgICAgaWYgKGsgPiAx MSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICBlbmQgZG8KKyAgZW5kIGRvCitl bmQgZG8KK2lmIChrIC89IDUzKSB0aGVuCisgIHByaW50ICosIGssIDUzCisgIGVycm9yIHN0 b3AKK2VuZGlmCisKKyEgLSBhbGwgd2l0aCBsYXN0cHJpdmF0ZQorISEkb21wIHNpbWQgY29s bGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSwgaikKKyFkbyBpID0gMSwg bgorISAgZG8gaiA9IDEsIG0sMgorISAgICBkbyBrID0gMSwgaiArIDQxCishICAgICAgaWYg KGsgPiAyMyArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyEgICAgZW5kIGRvCishICBl bmQgZG8KKyFlbmQgZG8KKyFpZiAoayAvPSA2NSkgdGhlbgorISAgcHJpbnQgKiwgaywgNjUK KyEgIGVycm9yIHN0b3AKKyFlbmRpZgorCisKKyEhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxh c3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksIGopCishZG8gaSA9IDEsIG4sMgorISAgZG8g aiA9IDEsIG0KKyEgICAgZG8gayA9IDEsIGkgKyA0MQorISAgICAgIGlmIChrID4gMTEgKyA0 MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCishICAgIGVuZCBkbworISAgZW5kIGRvCishZW5k IGRvCishaWYgKGsgLz0gNTMpIHRoZW4KKyEgIHByaW50ICosIGssIDUzCishICBlcnJvciBz dG9wCishZW5kaWYKKworISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBs YXN0cHJpdmF0ZShpLCBqKQorZG8gaSA9IDEsIG4sMgorICBkbyBqID0gMSwgbQorICAgIGRv IGsgPSAxLCBqICsgNDEKKyAgICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsgPCAxKSBlcnJv ciBzdG9wCisgICAgZW5kIGRvCisgIGVuZCBkbworZW5kIGRvCitpZiAoayAvPSA2NSkgdGhl bgorICBwcmludCAqLCBrLCA2NQorICBlcnJvciBzdG9wCitlbmRpZgorCisKKyEkb21wIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSwgaikKK2RvIGkg PSAxLCBuCisgIGRvIGogPSAxLCBtLDIKKyAgICBkbyBrID0gMSwgaSArIDQxCisgICAgICBp ZiAoayA+IDExICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBl bmQgZG8KK2VuZCBkbworaWYgKGsgLz0gNTMpIHRoZW4KKyAgcHJpbnQgKiwgaywgNTMKKyAg ZXJyb3Igc3RvcAorZW5kaWYKKworZW5kCitlbmQgbW9kdWxlIG0KKworcHJvZ3JhbSBtYWlu CisgIHVzZSBtCisgIGltcGxpY2l0IG5vbmUgKHR5cGUsIGV4dGVybmFsKQorICBjYWxsIGxh c3Rwcml2YXRlX2NoZWNrX3NpbWRfMQorICBjYWxsIGxhc3Rwcml2YXRlX2NoZWNrX2RvX3Np bWRfMQorICBjYWxsIGxhc3Rwcml2YXRlX2NoZWNrX2RvXzEKKyAgY2FsbCBsYXN0cHJpdmF0 ZV9jaGVja18yCitlbmQKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Zm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0xYS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMWEuZjkwCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43N2FhODg3OTQyZQotLS0gL2Rldi9u dWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFu Z3VsYXItbG9vcC0xYS5mOTAKQEAgLTAsMCArMSwzNzQgQEAKKyEgeyBkZy1kbyBjb21waWxl IH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tc3NlMiIgeyB0YXJnZXQgc3NlMl9y dW50aW1lIH0gfQorISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1hdngiIHsgdGFyZ2V0 IGF2eF9ydW50aW1lIH0gfQorCishIFBSIGZvcnRyYW4vMTA3NDI0CisKKyEgTm9ucmVjdGFu Z3VsYXIgbG9vcCBuZXN0cyBjaGVja3MKKworISA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorISBOT1RFOiBUaGUgdGVzdGNhc2Vz IGFyZSBmcm9tIG5vbi1yZWN0YW5ndWxhci1sb29wLTEuZjkwLAorISBidXQgY29tbWVudGVk IHRoZXJlLiBGZWVsIGZyZWUgdG8gcmVtb3ZlIHRoaXMKKyEgZmlsZSArIHVuY29tbWVudCB0 aGVtIGluIG5vbi1yZWN0YW5ndWxhci1sb29wLTEuZjkwCishIE90aGVyd2lzZSwgeW91IG5l ZWQgdG8gY2hhbmdlIGl0IHRvICdkZy1kbyBydW4nIQorISA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCittb2R1bGUgbQorICBp bXBsaWNpdCBub25lICh0eXBlLCBleHRlcm5hbCkKK2NvbnRhaW5zCisKKyEgVGhlICdrJyBs b29wIHVzZXMgaSBvciBqIGFzIHN0YXJ0IHZhbHVlCishIGJ1dCBhIGNvbnN0YW50IGVuZCB2 YWx1ZSBzdWNoIHRoYXQgJ2xhc3Rwcml2YXRlJworISBzaG91bGQgYmUgd2VsbC1kZWZpbmVk CitzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQorICBpbnRlZ2VyIDo6IG4s bSxwLCBpLGosaworCisgIG4gPSAxMQorICBtID0gMjMKKyAgcCA9IDI3CisKKyAgISBVc2Ug J2knIG9yICdqJywgdW5pdCBzdGVwIG9uICdpJyBvciBvbiAnaicgLT4gNCBsb29wcworICAh IFRoZW4gc2FtZSwgZXhjZXB0IHVzZSBub24tdW5pdCBzdGVwIGZvciAnaycKKworICAhJG9t cCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCisgIGRvIGkgPSAxLCBuCisgICAg ZG8gaiA9IDEsIG0sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDog bm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFu dCAxIG9yIC0xIGZvciAnaiciIH0KKyAgICAgIGRvIGsgPSBqIC0gNDEsIHAgICEgeyBkZy1u b3RlICJVc2VkIGhlcmUiIH0KKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkg ZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAo ayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFz dHByaXZhdGUoaykKKyAgZG8gaSA9IDEsIG4sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwg dW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3Ro ZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaSciIH0KKyAgICBkbyBqID0gMSwgbQor ICAgICAgZG8gayA9IGkgLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAg ICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQg ZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9w CisKKyAgISBTYW1lIGJ1dCAncHJpdmF0ZScgZm9yIGFsbCAoaSxqKSB2YXJzCisKKyAgISRv bXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8g aSA9IDEsIG4KKyAgICBkbyBqID0gMSwgbSwgMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1 bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhl ciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQorICAgICAgZG8gayA9IGogLSA0 MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0 MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAg ZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBj b2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4s IDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1 bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZv ciAnaSciIH0KKyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcCAgISB7 IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsg PiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisg IGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISBTYW1lIC0gYnV0IHdpdGggbGFz dHByaXZhdGUoaSxqKQorCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUo aykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAy ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxh ciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3Ig J2onIiB9CisgICAgICBkbyBrID0gaiAtIDQxLCBwICAhIHsgZGctbm90ZSAiVXNlZCBoZXJl IiB9CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAg ICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVy cm9yIHN0b3AKKyAgaWYgKGkgLz0gbiArIDEgLm9yLiBqIC89IG0gKyAyKSBlcnJvciBzdG9w CisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0 ZShpLGopCisgIGRvIGkgPSAxLCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1w bGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRo YW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9CisgICAgZG8gaiA9IDEsIG0KKyAgICAg IGRvIGsgPSBpIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KKyAgICAgICAg aWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisg ICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorICBp ZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0b3AKKworZW5kIHN1YnJv dXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfc2ltZF8xCisKKworISBTYW1lIGJ1dCB3aXRoIGRv IHNpbWQKK3N1YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfZG9fc2ltZF8xCisgIGludGVn ZXIgOjogbixtLHAsIGksaixrCisKKyAgbiA9IDExCisgIG0gPSAyMworICBwID0gMjcKKwor ICAhIFVzZSAnaScgb3IgJ2onLCB1bml0IHN0ZXAgb24gJ2knIG9yIG9uICdqJyAtPiA0IGxv b3BzCisgICEgVGhlbiBzYW1lLCBleGNlcHQgdXNlIG5vbi11bml0IHN0ZXAgZm9yICdrJwor CisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykK KyAgZG8gaSA9IDEsIG4KKyAgICBkbyBqID0gMSwgbSwgMiAgISB7IGRnLW1lc3NhZ2UgInNv cnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3Rl cCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQorICAgICAgZG8gayA9 IGogLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8 IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQg ZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAg cGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBpID0g MSwgbiwgMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVj dGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3Ig LTEgZm9yICdpJyIgfQorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaSAtIDQxLCBw ICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5v ci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQg ZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKworICAhIFNhbWUgYnV0ICdwcml2 YXRlJyBmb3IgYWxsIChpLGopIHZhcnMKKworICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNv bGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbgor ICAgIGRvIGogPSAxLCBtLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50 ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29u c3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9CisgICAgICBkbyBrID0gaiAtIDQxLCBwICAhIHsg ZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+ IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAg aWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1k IGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwg biwgMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFu Z3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEg Zm9yICdpJyIgfQorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaSAtIDQxLCBwICAh IHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4g ayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8K KyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKworICAhIFNhbWUgLSBidXQgd2l0aCBs YXN0cHJpdmF0ZShpLGopCisKKyAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgz KSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCisgIGRvIGkgPSAxLCBuCisgICAg ZG8gaiA9IDEsIG0sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDog bm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFu dCAxIG9yIC0xIGZvciAnaiciIH0KKyAgICAgIGRvIGsgPSBqIC0gNDEsIHAgICEgeyBkZy1u b3RlICJVc2VkIGhlcmUiIH0KKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkg ZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAo ayAvPSBwICsgMSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMSAub3IuIGogLz0gbSAr IDIpIGVycm9yIHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMp IGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4sIDIgICEg eyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxv b3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaSci IH0KKyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcCAgISB7IGRnLW5v dGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBl cnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChr IC89IHAgKyAxKSBlcnJvciBzdG9wCisgIGlmIChpIC89IG4gKyAyIC5vci4gaiAvPSBtICsg MSkgZXJyb3Igc3RvcAorCitlbmQgc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVja19kb19z aW1kXzEKKworCisKKyEgU2FtZSBidXQgd2l0aCBkbworc3Vicm91dGluZSBsYXN0cHJpdmF0 ZV9jaGVja19kb18xCisgIGludGVnZXIgOjogbixtLHAsIGksaixrCisKKyAgbiA9IDExCisg IG0gPSAyMworICBwID0gMjcKKworICAhIFVzZSAnaScgb3IgJ2onLCB1bml0IHN0ZXAgb24g J2knIG9yIG9uICdqJyAtPiA0IGxvb3BzCisgICEgVGhlbiBzYW1lLCBleGNlcHQgdXNlIG5v bi11bml0IHN0ZXAgZm9yICdrJworCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMp IGxhc3Rwcml2YXRlKGspCisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIgICEg eyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxv b3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaici IH0KKyAgICAgIGRvIGsgPSBqIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0K KyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAg ZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Ig c3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGsp CisgIGRvIGkgPSAxLCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50 ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29u c3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9CisgICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsg PSBpIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KKyAgICAgICAgaWYgKGsg PCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5k IGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEgU2Ft ZSBidXQgJ3ByaXZhdGUnIGZvciBhbGwgKGksaikgdmFycworCisgICEkb21wIHBhcmFsbGVs IGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorICBkbyBpID0g MSwgbgorICAgIGRvIGogPSAxLCBtLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1w bGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRo YW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9CisgICAgICBkbyBrID0gaiAtIDQxLCBw ICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5v ci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQg ZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBk byBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IDEs IG4sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rh bmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0x IGZvciAnaSciIH0KKyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcCAg ISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3Iu IGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRv CisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISBTYW1lIC0gYnV0IHdpdGgg bGFzdHByaXZhdGUoaSxqKQorCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxh c3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4KKyAgICBkbyBq ID0gMSwgbSwgMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24t cmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEg b3IgLTEgZm9yICdqJyIgfQorICAgICAgZG8gayA9IGogLSA0MSwgcCAgISB7IGRnLW5vdGUg IlVzZWQgaGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJv ciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89 IHAgKyAxKSBlcnJvciBzdG9wCisgIGlmIChpIC89IG4gKyAxIC5vci4gaiAvPSBtICsgMikg ZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2 YXRlKGspIGxhc3Rwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4sIDIgICEgeyBkZy1tZXNz YWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3 aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaSciIH0KKyAgICBk byBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQg aGVyZSIgfQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9w CisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAx KSBlcnJvciBzdG9wCisgIGlmIChpIC89IG4gKyAyIC5vci4gaiAvPSBtICsgMSkgZXJyb3Ig c3RvcAorCitlbmQgc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVja19kb18xCisKKworCitz dWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrXzIKKyAgaW50ZWdlciA6OiBuLG0scCwgaSxq LGssbGwKKworICBuID0gMTEKKyAgbSA9IDIzCisgIHAgPSAyNworCisgICEkb21wIHBhcmFs bGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUocCkKKyAgZG8gaSA9IDEsIG4K KyAgICBkbyBqID0gMSwgbSwyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50 ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29u c3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9CisgICAgICBkbyBrID0gMSwgaiArIDQxICAhIHsg ZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICAgIGRvIGxsID0gMSwgcCwgMgorICAgICAg ICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCisgICAgICAgIGVu ZCBkbworICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAobGwgLz0g MjkpIGVycm9yIHN0b3AKKworICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRl KHApCisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sMiAgISB7IGRnLW1lc3NhZ2Ug InNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGgg c3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQorICAgICAgZG8g ayA9IDEsIGogKyA0MSAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgICBkbyBs bCA9IDEsIHAsIDIKKyAgICAgICAgICBpZiAoayA+IDIzICsgNDEgLm9yLiBrIDwgMSkgZXJy b3Igc3RvcAorICAgICAgICBlbmQgZG8KKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBl bmQgZG8KKyAgaWYgKGxsIC89IDI5KSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xs YXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBpID0gMSwgbiwyICAhIHsgZGctbWVzc2Fn ZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0 aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9CisgICAgZG8g aiA9IDEsIG0KKyAgICAgIGRvIGsgPSAxLCBpICsgNDEgICEgeyBkZy1ub3RlICJVc2VkIGhl cmUiIH0KKyAgICAgICAgaWYgKGsgPiAxMSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AK KyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KK2lmIChrIC89IDUzKSB0aGVu CisgIHByaW50ICosIGssIDUzCisgIGVycm9yIHN0b3AKK2VuZGlmCisKKyEgLSBTYW1lIGJ1 dCB3aXRob3V0ICdwcml2YXRlJzoKKyEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZh dGUoaykKK2RvIGkgPSAxLCBuCisgIGRvIGogPSAxLCBtLDIgICEgeyBkZy1tZXNzYWdlICJz b3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0 ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KKyAgICBkbyBrID0g MSwgaiArIDQxICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICBpZiAoayA+IDIz ICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2Vu ZCBkbworaWYgKGsgLz0gNjUpIHRoZW4KKyAgcHJpbnQgKiwgaywgNjUKKyAgZXJyb3Igc3Rv cAorZW5kaWYKKworCishJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCitk byBpID0gMSwgbiwyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5v bi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQg MSBvciAtMSBmb3IgJ2knIiB9CisgIGRvIGogPSAxLCBtCisgICAgZG8gayA9IDEsIGkgKyA0 MSAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQorICAgICAgaWYgKGsgPiAxMSArIDQxIC5v ci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICBlbmQgZG8KKyAgZW5kIGRvCitlbmQgZG8KK2lm IChrIC89IDUzKSB0aGVuCisgIHByaW50ICosIGssIDUzCisgIGVycm9yIHN0b3AKK2VuZGlm CisKKyEgLSBhbGwgd2l0aCBsYXN0cHJpdmF0ZQorISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBs YXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLCBqKQorZG8gaSA9IDEsIG4KKyAgZG8gaiA9 IDEsIG0sMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVj dGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3Ig LTEgZm9yICdqJyIgfQorICAgIGRvIGsgPSAxLCBqICsgNDEgICEgeyBkZy1ub3RlICJVc2Vk IGhlcmUiIH0KKyAgICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9w CisgICAgZW5kIGRvCisgIGVuZCBkbworZW5kIGRvCitpZiAoayAvPSA2NSkgdGhlbgorICBw cmludCAqLCBrLCA2NQorICBlcnJvciBzdG9wCitlbmRpZgorCisKKyEkb21wIHNpbWQgY29s bGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSwgaikKK2RvIGkgPSAxLCBu LDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1 bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZv ciAnaSciIH0KKyAgZG8gaiA9IDEsIG0KKyAgICBkbyBrID0gMSwgaSArIDQxICAhIHsgZGct bm90ZSAiVXNlZCBoZXJlIiB9CisgICAgICBpZiAoayA+IDExICsgNDEgLm9yLiBrIDwgMSkg ZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZCBkbworaWYgKGsgLz0gNTMp IHRoZW4KKyAgcHJpbnQgKiwgaywgNTMKKyAgZXJyb3Igc3RvcAorZW5kaWYKKworZW5kCitl bmQgbW9kdWxlIG0KKworcHJvZ3JhbSBtYWluCisgIHVzZSBtCisgIGltcGxpY2l0IG5vbmUg KHR5cGUsIGV4dGVybmFsKQorICBjYWxsIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQorICBj YWxsIGxhc3Rwcml2YXRlX2NoZWNrX2RvX3NpbWRfMQorICBjYWxsIGxhc3Rwcml2YXRlX2No ZWNrX2RvXzEKKyAgY2FsbCBsYXN0cHJpdmF0ZV9jaGVja18yCitlbmQKZGlmZiAtLWdpdCBh L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9v cC0yLmY5MCBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFu Z3VsYXItbG9vcC0yLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMGNlYTYxZTVmMGQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMi5mOTAKQEAgLTAsMCArMSwy NDMgQEAKKyEgeyBkZy1kbyBydW4gfQorISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZk dW1wLXRyZWUtb3JpZ2luYWwgLWZjaGVjaz1hbGwiIH0KKworISBQUiBmb3J0cmFuLzEwNzQy NAorCishIE5vbnJlY3Rhbmd1bGFyIGxvb3AgbmVzdHMgY2hlY2tzCisKKyEgVmFsaWQgcGF0 dGVybnMgYXJlOgorISAgKDEpICBhMiAtIHZhci1vdXRlcgorISAgKDIpICBhMSAqIHZhci1v dXRlcgorISAgKDMpICBhMSAqIHZhci1vdXRlciArIGEyCishICAoNCkgIGEyICsgYTEgKiB2 YXItb3V0ZXIKKyEgICg1KSAgYTEgKiB2YXItb3V0ZXIgLSBhMgorISAgKDYpICBhMiAtIGEx ICogdmFyLW91dGVyCishICAoNykgIHZhci1vdXRlciAqIGExCishICAoOCkgIHZhci1vdXRl ciAqIGExICsgYTIKKyEgICg5KSAgYTIgKyB2YXItb3V0ZXIgKiBhMQorISAoMTApICB2YXIt b3V0ZXIgKiBhMSAtIGEyCishICgxMSkgIGEyIC0gdmFyLW91dGVyICogYTEKKworbW9kdWxl IG0KK2NvbnRhaW5zCisKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg ImZvciBcXChvbmVfdHdvX2lubmVyID0gb25lX3R3b19vdXRlciBcXCogLTEgXFwrIG9uZV9h Mjsgb25lX3R3b19pbm5lciA8PSBvbmVfdHdvX291dGVyIFxcKiB0d29fYTEgXFwrIDA7IG9u ZV90d29faW5uZXIgPSBvbmVfdHdvX2lubmVyIFxcKyAxXFwpIiAxIG9yaWdpbmFsIH0gfQor CishICAoMSkgIGEyIC0gdmFyLW91dGVyCishICAoMikgIGExICogdmFyLW91dGVyCitzdWJy b3V0aW5lIG9uZV90d28oKQorICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgOjogb25lX2Ey CisgIGludGVnZXIgOjogdHdvX2ExCisgIGludGVnZXIgOjogb25lX3R3b19vdXRlciwgb25l X3R3b19pbm5lcgorICBpbnRlZ2VyIDo6IGksIGoKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUg OjogdmFyKDosOikKKworICBvbmVfYTIgPSAxMworICB0d29fYTEgPSA1CisgIGFsbG9jYXRl KHZhcigxOjEwLCBvbmVfYTIgLSAxMDp0d29fYTEgKiAxMCksICYKKyAgICAgICAgICAgc291 cmNlPTApCisgIGlmIChzaXplKHZhcikgPD0gNCkgZXJyb3Igc3RvcAorCisgICEkb21wIHNp bWQgY29sbGFwc2UoMikKKyAgZG8gb25lX3R3b19vdXRlciA9IDEsIDEwCisgICAgZG8gb25l X3R3b19pbm5lciA9IG9uZV9hMiAtIG9uZV90d29fb3V0ZXIsIHR3b19hMSAqIG9uZV90d29f b3V0ZXIKKyAgICAgICEkb21wIGF0b21pYyB1cGRhdGUKKyAgICAgIHZhcihvbmVfdHdvX291 dGVyLG9uZV90d29faW5uZXIpID0gdmFyKG9uZV90d29fb3V0ZXIsb25lX3R3b19pbm5lcikg KyAyCisgICAgZW5kIGRvCisgIGVuZCBkbworCisgIGRvIGkgPSAxLCAxMAorICAgIGRvIGog PSBvbmVfYTIgLSBpLCB0d29fYTEgKiBpCisgICAgICBpZiAodmFyKGksaikgLz0gMikgZXJy b3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZAorCisKKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwodGhyZWVfZm91cl9pbm5lciA9IHRocmVl X2ZvdXJfb3V0ZXIgXFwqIHRocmVlX2ExIFxcKyB0aHJlZV9hMjsgdGhyZWVfZm91cl9pbm5l ciA8PSB0aHJlZV9mb3VyX291dGVyIFxcKiBmb3VyX2ExIFxcKyBmb3VyX2EyOyB0aHJlZV9m b3VyX2lubmVyID0gdGhyZWVfZm91cl9pbm5lciBcXCsgMVxcKSIgMSBvcmlnaW5hbCB9IH0K KworISAgKDMpICBhMSAqIHZhci1vdXRlciArIGEyCishICAoNCkgIGEyICsgYTEgKiB2YXIt b3V0ZXIKK3N1YnJvdXRpbmUgdGhyZWVfZm91cigpCisgIGltcGxpY2l0IG5vbmUKKyAgaW50 ZWdlciA6OiB0aHJlZV9hMSwgdGhyZWVfYTIKKyAgaW50ZWdlciA6OiBmb3VyX2ExLCBmb3Vy X2EyCisgIGludGVnZXIgOjogdGhyZWVfZm91cl9vdXRlciwgdGhyZWVfZm91cl9pbm5lcgor ICBpbnRlZ2VyIDo6IGksIGoKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmFyKDosOikK KworICB0aHJlZV9hMSA9IDIKKyAgdGhyZWVfYTIgPSAzCisgIGZvdXJfYTEgPSAzCisgIGZv dXJfYTIgPSA1CisgIGFsbG9jYXRlKHZhcigxOjEwLCB0aHJlZV9hMSAqIDEgKyB0aHJlZV9h Mjpmb3VyX2EyICsgZm91cl9hMSAqIDEwKSwgJgorICAgICAgICAgICBzb3VyY2U9MCkKKyAg aWYgKHNpemUodmFyKSA8PSA0KSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBz ZSgyKQorICBkbyB0aHJlZV9mb3VyX291dGVyID0gMSwgMTAKKyAgICBkbyB0aHJlZV9mb3Vy X2lubmVyID0gdGhyZWVfYTEgKiB0aHJlZV9mb3VyX291dGVyICsgdGhyZWVfYTIsIGZvdXJf YTIgKyBmb3VyX2ExICogdGhyZWVfZm91cl9vdXRlcgorICAgICAgISRvbXAgYXRvbWljIHVw ZGF0ZQorICAgICAgdmFyKHRocmVlX2ZvdXJfb3V0ZXIsIHRocmVlX2ZvdXJfaW5uZXIpID0g dmFyKHRocmVlX2ZvdXJfb3V0ZXIsIHRocmVlX2ZvdXJfaW5uZXIpICsgMgorICAgIGVuZCBk bworICBlbmQgZG8KKyAgZG8gaSA9IDEsIDEwCisgICAgZG8gaiA9IHRocmVlX2ExICogaSAr IHRocmVlX2EyLCBmb3VyX2EyICsgZm91cl9hMSAqIGkKKyAgICAgIGlmICh2YXIoaSxqKSAv PSAyKSBlcnJvciBzdG9wCisgICAgZW5kIGRvCisgIGVuZCBkbworZW5kCisKKworISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChmaXZlX3NpeF9pbm5lciA9 IGZpdmVfc2l4X291dGVyIFxcKiBmaXZlX2ExIFxcKyBEXFwuXFswLTlcXSs7IGZpdmVfc2l4 X2lubmVyIDw9IGZpdmVfc2l4X291dGVyIFxcKiBEXFwuXFswLTlcXSsgXFwrIHNpeF9hMjsg Zml2ZV9zaXhfaW5uZXIgPSBmaXZlX3NpeF9pbm5lciBcXCsgMVxcKSIgMSBvcmlnaW5hbCB9 IH0KKworISAgKDUpICBhMSAqIHZhci1vdXRlciAtIGEyCishICAoNikgIGEyIC0gYTEgKiB2 YXItb3V0ZXIKK3N1YnJvdXRpbmUgZml2ZV9zaXgoKQorICBpbXBsaWNpdCBub25lCisgIGlu dGVnZXIgOjogZml2ZV9hMSwgZml2ZV9hMgorICBpbnRlZ2VyIDo6IHNpeF9hMSwgc2l4X2Ey CisgIGludGVnZXIgOjogZml2ZV9zaXhfb3V0ZXIsIGZpdmVfc2l4X2lubmVyCisgIGludGVn ZXIgOjogaSwgagorICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIoOiw6KQorCisgIGZp dmVfYTEgPSAyCisgIGZpdmVfYTIgPSAtMworICBzaXhfYTEgPSAzCisgIHNpeF9hMiA9IDIw CisgIGFsbG9jYXRlKHZhcigxOjEwLCBmaXZlX2ExICogMSAtIGZpdmVfYTI6c2l4X2EyIC0g c2l4X2ExICogMSksICYKKyAgICAgICAgICAgc291cmNlPTApCisgIGlmIChzaXplKHZhcikg PD0gNCkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQgY29sbGFwc2UoMikKKyAgZG8gZml2 ZV9zaXhfb3V0ZXIgPSAxLCAxMAorICAgIGRvIGZpdmVfc2l4X2lubmVyID0gZml2ZV9hMSAq IGZpdmVfc2l4X291dGVyIC0gZml2ZV9hMiwgc2l4X2EyIC0gc2l4X2ExICogZml2ZV9zaXhf b3V0ZXIKKyAgICAgICEkb21wIGF0b21pYyB1cGRhdGUKKyAgICAgIHZhcihmaXZlX3NpeF9v dXRlciwgZml2ZV9zaXhfaW5uZXIpID0gdmFyKGZpdmVfc2l4X291dGVyLCBmaXZlX3NpeF9p bm5lcikgKyAyCisgICAgZW5kIGRvCisgIGVuZCBkbworCisgIGRvIGkgPSAxLCAxMAorICAg IGRvIGogPSBmaXZlX2ExICogaSAtIGZpdmVfYTIsIHNpeF9hMiAtIHNpeF9hMSAqIGkKKyAg ICAgIGlmICh2YXIoaSxqKSAvPSAyKSBlcnJvciBzdG9wCisgICAgZW5kIGRvCisgIGVuZCBk bworZW5kCisKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBc XChzZXZlbl9laWdodF9pbm5lciA9IHNldmVuX2VpZ2h0X291dGVyIFxcKiBzZXZlbl9hMSBc XCsgMDsgc2V2ZW5fZWlnaHRfaW5uZXIgPD0gc2V2ZW5fZWlnaHRfb3V0ZXIgXFwqIGVpZ2h0 X2ExIFxcKyBlaWdodF9hMjsgc2V2ZW5fZWlnaHRfaW5uZXIgPSBzZXZlbl9laWdodF9pbm5l ciBcXCsgMVxcKSIgMSBvcmlnaW5hbCB9IH0KKworISAgKDcpICB2YXItb3V0ZXIgKiBhMQor ISAgKDgpICB2YXItb3V0ZXIgKiBhMSArIGEyCitzdWJyb3V0aW5lIHNldmVuX2VpZ2h0KCkK KyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyIDo6IHNldmVuX2ExCisgIGludGVnZXIgOjog ZWlnaHRfYTEsIGVpZ2h0X2EyCisgIGludGVnZXIgOjogc2V2ZW5fZWlnaHRfb3V0ZXIsIHNl dmVuX2VpZ2h0X2lubmVyCisgIGludGVnZXIgOjogaSwgagorICBpbnRlZ2VyLCBhbGxvY2F0 YWJsZSA6OiB2YXIoOiw6KQorCisgIHNldmVuX2ExID0gMworICBlaWdodF9hMSA9IDIKKyAg ZWlnaHRfYTIgPSAtNAorICBhbGxvY2F0ZSh2YXIoMToxMCwgMSAqIHNldmVuX2ExIDogMTAg KiBlaWdodF9hMSArIGVpZ2h0X2EyKSwgJgorICAgICAgICAgICBzb3VyY2U9MCkKKyAgaWYg KHNpemUodmFyKSA8PSA0KSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgy KQorICBkbyBzZXZlbl9laWdodF9vdXRlciA9IDEsIDEwCisgICAgZG8gc2V2ZW5fZWlnaHRf aW5uZXIgPSBzZXZlbl9laWdodF9vdXRlciAqIHNldmVuX2ExLCBzZXZlbl9laWdodF9vdXRl ciAqIGVpZ2h0X2ExICsgZWlnaHRfYTIKKyAgICAgICEkb21wIGF0b21pYyB1cGRhdGUKKyAg ICAgIHZhcihzZXZlbl9laWdodF9vdXRlciwgc2V2ZW5fZWlnaHRfaW5uZXIpID0gdmFyKHNl dmVuX2VpZ2h0X291dGVyLCBzZXZlbl9laWdodF9pbm5lcikgKyAyCisgICAgZW5kIGRvCisg IGVuZCBkbworCisgIGRvIGkgPSAxLCAxMAorICAgIGRvIGogPSBpICogc2V2ZW5fYTEsIGkg KiBlaWdodF9hMSArIGVpZ2h0X2EyCisgICAgICBpZiAodmFyKGksaikgLz0gMikgZXJyb3Ig c3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZAorCisKKyEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwobmluZV90ZW5faW5uZXIgPSBuaW5lX3Rlbl9v dXRlciBcXCogbmluZV9hMSBcXCsgbmluZV9hMjsgbmluZV90ZW5faW5uZXIgPD0gbmluZV90 ZW5fb3V0ZXIgXFwqIHRlbl9hMSBcXCsgRFxcLlxbMC05XF0rOyBuaW5lX3Rlbl9pbm5lciA9 IG5pbmVfdGVuX2lubmVyIFxcKyAxXFwpIiAxIG9yaWdpbmFsIH0gfQorCishICAoOSkgIGEy ICsgdmFyLW91dGVyICogYTEKKyEgKDEwKSAgdmFyLW91dGVyICogYTEgLSBhMgorc3Vicm91 dGluZSBuaW5lX3RlbigpCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciA6OiBuaW5lX2Ex LCBuaW5lX2EyCisgIGludGVnZXIgOjogdGVuX2ExLCB0ZW5fYTIKKyAgaW50ZWdlciA6OiBu aW5lX3Rlbl9vdXRlciwgbmluZV90ZW5faW5uZXIKKyAgaW50ZWdlciA6OiBpLCBqCisgIGlu dGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZhcig6LDopCisKKyAgbmluZV9hMSA9IDMKKyAgbmlu ZV9hMiA9IDUKKyAgdGVuX2ExID0gMgorICB0ZW5fYTIgPSAzCisgIGFsbG9jYXRlKHZhcigx OjEwLCBuaW5lX2EyICsgMSAqIG5pbmVfYTE6MTAgKiB0ZW5fYTEgLSB0ZW5fYTIpLCAmCisg ICAgICAgICAgIHNvdXJjZT0wKQorICBpZiAoc2l6ZSh2YXIpIDw9IDQpIGVycm9yIHN0b3AK KworICAhJG9tcCBzaW1kIGNvbGxhcHNlKDIpCisgIGRvIG5pbmVfdGVuX291dGVyID0gMSwg MTAKKyAgICBkbyBuaW5lX3Rlbl9pbm5lciA9IG5pbmVfYTIgKyBuaW5lX3Rlbl9vdXRlciAq IG5pbmVfYTEsIG5pbmVfdGVuX291dGVyICogdGVuX2ExIC0gdGVuX2EyCisgICAgICAhJG9t cCBhdG9taWMgdXBkYXRlCisgICAgICB2YXIobmluZV90ZW5fb3V0ZXIsIG5pbmVfdGVuX2lu bmVyKSA9IHZhcihuaW5lX3Rlbl9vdXRlciwgbmluZV90ZW5faW5uZXIpICsgMgorICAgIGVu ZCBkbworICBlbmQgZG8KKworICBkbyBpID0gMSwgMTAKKyAgICBkbyBqID0gbmluZV9hMiAr IGkgKiBuaW5lX2ExLCBpICogdGVuX2ExIC0gdGVuX2EyCisgICAgICBpZiAodmFyKGksaikg Lz0gMikgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZAorCisKKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoZWxldmVuX2lubmVyID0g ZWxldmVuX291dGVyIFxcKiBEXFwuXFswLTlcXSsgXFwrIGVsZXZlbl9hMjsgZWxldmVuX2lu bmVyIDw9IDEwOyBlbGV2ZW5faW5uZXIgPSBlbGV2ZW5faW5uZXIgXFwrIDFcXCkiIDEgb3Jp Z2luYWwgfSB9CisKKyEgKDExKSAgYTIgLSB2YXItb3V0ZXIgKiBhMQorCitzdWJyb3V0aW5l IGVsZXZlbigpCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciA6OiBlbGV2ZW5fYTEsIGVs ZXZlbl9hMgorICBpbnRlZ2VyIDo6IGVsZXZlbl9vdXRlciwgZWxldmVuX2lubmVyCisgIGlu dGVnZXIgOjogaSwgagorICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIoOiw6KQorCisg IGVsZXZlbl9hMSA9IDIKKyAgZWxldmVuX2EyID0gMworICBhbGxvY2F0ZSh2YXIoMToxMCwg ZWxldmVuX2EyIC0gMTAgKiBlbGV2ZW5fYTEgOiAxMCksICYKKyAgICAgICAgICAgc291cmNl PTApCisgIGlmIChzaXplKHZhcikgPD0gNCkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQg Y29sbGFwc2UoMikKKyAgZG8gZWxldmVuX291dGVyID0gMSwgMTAKKyAgICBkbyBlbGV2ZW5f aW5uZXIgPSBlbGV2ZW5fYTIgLSBlbGV2ZW5fb3V0ZXIgKiBlbGV2ZW5fYTEsIDEwCisgICAg ICAhJG9tcCBhdG9taWMgdXBkYXRlCisgICAgICB2YXIoZWxldmVuX291dGVyLCBlbGV2ZW5f aW5uZXIpID0gdmFyKGVsZXZlbl9vdXRlciwgZWxldmVuX2lubmVyKSArIDIKKyAgICBlbmQg ZG8KKyAgZW5kIGRvCisKKyAgZG8gaSA9IDEsIDEwCisgICAgZG8gaiA9IGVsZXZlbl9hMiAt IGkgKiBlbGV2ZW5fYTEsIDEwCisgICAgICBpZiAodmFyKGksaikgLz0gMikgZXJyb3Igc3Rv cAorICAgIGVuZCBkbworICBlbmQgZG8KK2VuZAorZW5kIG1vZHVsZSBtCisKK3Byb2dyYW0g bWFpbgordXNlIG0KK2ltcGxpY2l0IG5vbmUKK2NhbGwgb25lX3R3bygpCitjYWxsIHRocmVl X2ZvdXIoKQorY2FsbCBmaXZlX3NpeCgpCitjYWxsIHNldmVuX2VpZ2h0KCkKK2NhbGwgbmlu ZV90ZW4oKQorY2FsbCBlbGV2ZW4oKQorZW5kCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMy5mOTAgYi9saWJn b21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMy5m OTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEzM2Q0ODQzMmQ4 Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFu L25vbi1yZWN0YW5ndWxhci1sb29wLTMuZjkwCkBAIC0wLDAgKzEsMTg2IEBACishIHsgZGct YWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorISBQUiBmb3J0 cmFuLzEwNzQyNAorCittb2R1bGUgbQorY29udGFpbnMKK3N1YnJvdXRpbmUgZm9vIChhdiwg YXZvLCBhMCwgYTBvLCBhMSwgYTIsIGEzLCBhNCkKK2ltcGxpY2l0IG5vbmUKKworaW50ZWdl ciwgdmFsdWUgOjogYXYKK2ludGVnZXIsIHZhbHVlLCBvcHRpb25hbCA6OiBhdm8KK2ludGVn ZXIgOjogYTAKK2ludGVnZXIsIG9wdGlvbmFsIDo6IGEwbworaW50ZWdlciwgcG9pbnRlciA6 OiBhMQoraW50ZWdlciwgcG9pbnRlciwgb3B0aW9uYWwgOjogYTIKK2ludGVnZXIsIGFsbG9j YXRhYmxlIDo6IGEzCitpbnRlZ2VyLCBhbGxvY2F0YWJsZSwgb3B0aW9uYWwgOjogYTQKK2lu dGVnZXIgOjogYTUKK2ludGVnZXIsIHBvaW50ZXIgOjogYTYKK2ludGVnZXIsIGFsbG9jYXRh YmxlIDo6IGE3CitpbnRlZ2VyIDo6IGFycigyMCwxMCksIHJlZigyMCwxMCkKKworaW50ZWdl ciA6OiBqLCBpCisKK2FsbG9jYXRlKGE2LCBhNykKKworcmVmID0gNDQKK2RvIGkgPSAxLCAx MAorICBkbyBqID0gaSwgMjAKKyAgICByZWYoaiwgaSkgPSBqICsgMTAwICogaQorICBlbmQg ZG8KK2VuZCBkbworCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9y IFxcKGF2ID0gMTsgYXYgPD0gMTA7IGF2ID0gYXYgXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9 IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoaiA9IGF2 IFxcKiAxIFxcKyAwOyBqIDw9IDIwOyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0g fQorISAtPiBubyB0ZW1wIHZhcgorYXJyID0gNDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikK K2RvIGF2ID0gMSwgMTAKKyAgZG8gaiA9IGF2LCAyMAorICAgIGFycihqLCBhdikgPSBqICsg MTAwICogYXYKKyAgZW5kIGRvCitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJv ciBzdG9wCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwo YXZvID0gMTsgYXZvIDw9IDEwOyBhdm8gPSBhdm8gXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9 IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoaiA9IGF2 byBcXCogMSBcXCsgMDsgaiA8PSAyMDsgaiA9IGogXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9 IH0KKyEgLT4gbm8gdGVtcCB2YXIKK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIp CitkbyBhdm8gPSAxLCAxMAorICBkbyBqID0gYXZvLCAyMAorICAgIGFycihqLCBhdm8pID0g aiArIDEwMCAqIGF2bworICBlbmQgZG8KK2VuZCBkbworaWYgKGFueSAocmVmIC89IGFycikp IGVycm9yIHN0b3AKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZv ciBcXChhMFxcLlxbMC05XF0rID0gMTsgYTBcXC5cWzAtOVxdKyA8PSAxMDsgYTBcXC5cWzAt OVxdKyA9IGEwXFwuXFswLTlcXSsgXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoaiA9IGEwXFwuXFswLTlc XSsgXFwqIDEgXFwrIDA7IGogPD0gMjA7IGogPSBqIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIg fSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiXFwqYTAgPSBhMFxc LlxbMC05XF0rOyIgMSAib3JpZ2luYWwiIH0gfQorYXJyID0gNDQKKyEkb21wIHNpbWQgY29s bGFwc2UoMikKK2RvIGEwID0gMSwgMTAKKyAgZG8gaiA9IGEwLCAyMAorICAgIGFycihqLCBh MCkgPSBqICsgMTAwICogYTAKKyAgZW5kIGRvCitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBh cnIpKSBlcnJvciBzdG9wCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICJmb3IgXFwoYTBvXFwuXFswLTlcXSsgPSAxOyBhMG9cXC5cWzAtOVxdKyA8PSAxMDsgYTBv XFwuXFswLTlcXSsgPSBhMG9cXC5cWzAtOVxdKyBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0g fQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChqID0gYTBv XFwuXFswLTlcXSsgXFwqIDEgXFwrIDA7IGogPD0gMjA7IGogPSBqIFxcKyAxXFwpIiAxICJv cmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiXFwq YTBvID0gYTBvXFwuXFswLTlcXSs7IiAxICJvcmlnaW5hbCIgfSB9CithcnIgPSA0NAorISRv bXAgc2ltZCBjb2xsYXBzZSgyKQorZG8gYTBvID0gMSwgMTAKKyAgZG8gaiA9IGEwbywgMjAK KyAgICBhcnIoaiwgYTBvKSA9IGogKyAxMDAgKiBhMG8KKyAgZW5kIGRvCitlbmQgZG8KK2lm IChhbnkgKHJlZiAvPSBhcnIpKSBlcnJvciBzdG9wCisKKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoYTFcXC5cWzAtOVxdKyA9IDE7IGExXFwuXFswLTlc XSsgPD0gMTA7IGExXFwuXFswLTlcXSsgPSBhMVxcLlxbMC05XF0rIFxcKyAxXFwpIiAxICJv cmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9y IFxcKGogPSBhMVxcLlxbMC05XF0rIFxcKiAxIFxcKyAwOyBqIDw9IDIwOyBqID0gaiBcXCsg MVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIlxcKlxcKmExID0gYTFcXC5cWzAtOVxdKzsiIDEgIm9yaWdpbmFsIiB9IH0KK2Fy ciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitkbyBhMSA9IDEsIDEwCisgIGRvIGog PSBhMSwgMjAKKyAgICBhcnIoaiwgYTEpID0gaiArIDEwMCAqIGExCisgIGVuZCBkbworZW5k IGRvCitpZiAoYW55IChyZWYgLz0gYXJyKSkgZXJyb3Igc3RvcAorCishIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGEyXFwuXFswLTlcXSsgPSAxOyBhMlxc LlxbMC05XF0rIDw9IDEwOyBhMlxcLlxbMC05XF0rID0gYTJcXC5cWzAtOVxdKyBcXCsgMVxc KSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgImZvciBcXChqID0gYTJcXC5cWzAtOVxdKyBcXCogMSBcXCsgMDsgaiA8PSAyMDsgaiA9 IGogXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJcXCpcXCphMiA9IGEyXFwuXFswLTlcXSs7IiAxICJvcmlnaW5hbCIg fSB9CithcnIgPSA0NAorISRvbXAgc2ltZCBjb2xsYXBzZSgyKQorZG8gYTIgPSAxLCAxMAor ICBkbyBqID0gYTIsIDIwCisgICAgYXJyKGosIGEyKSA9IGogKyAxMDAgKiBhMgorICBlbmQg ZG8KK2VuZCBkbworaWYgKGFueSAocmVmIC89IGFycikpIGVycm9yIHN0b3AKKworISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChhM1xcLlxbMC05XF0rID0g MTsgYTNcXC5cWzAtOVxdKyA8PSAxMDsgYTNcXC5cWzAtOVxdKyA9IGEzXFwuXFswLTlcXSsg XFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzICJmb3IgXFwoaiA9IGEzXFwuXFswLTlcXSsgXFwqIDEgXFwrIDA7IGogPD0g MjA7IGogPSBqIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiXFwqXFwqYTMgPSBhM1xcLlxbMC05XF0rOyIgMSAib3Jp Z2luYWwiIH0gfQorYXJyID0gNDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikKK2RvIGEzID0g MSwgMTAKKyAgZG8gaiA9IGEzLCAyMAorICAgIGFycihqLCBhMykgPSBqICsgMTAwICogYTMK KyAgZW5kIGRvCitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJvciBzdG9wCisK KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoYTRcXC5cWzAt OVxdKyA9IDE7IGE0XFwuXFswLTlcXSsgPD0gMTA7IGE0XFwuXFswLTlcXSsgPSBhNFxcLlxb MC05XF0rIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2Fu LXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGogPSBhNFxcLlxbMC05XF0rIFxcKiAxIFxcKyAw OyBqIDw9IDIwOyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKlxcKmE0ID0gYTRcXC5cWzAtOVxdKzsi IDEgIm9yaWdpbmFsIiB9IH0KK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitk byBhNCA9IDEsIDEwCisgIGRvIGogPSBhNCwgMjAKKyAgICBhcnIoaiwgYTQpID0gaiArIDEw MCAqIGE0CisgIGVuZCBkbworZW5kIGRvCitpZiAoYW55IChyZWYgLz0gYXJyKSkgZXJyb3Ig c3RvcAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGE1 ID0gMTsgYTUgPD0gMTA7IGE1ID0gYTUgXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoaiA9IGE1IFxcKiAx IFxcKyAwOyBqIDw9IDIwOyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISAt PiBubyB0ZW1wIHZhcgorYXJyID0gNDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikKK2RvIGE1 ID0gMSwgMTAKKyAgZG8gaiA9IGE1LCAyMAorICAgIGFycihqLCBhNSkgPSBqICsgMTAwICog YTUKKyAgZW5kIGRvCitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJvciBzdG9w CisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoYTZcXC5c WzAtOVxdKyA9IDE7IGE2XFwuXFswLTlcXSsgPD0gMTA7IGE2XFwuXFswLTlcXSsgPSBhNlxc LlxbMC05XF0rIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGogPSBhNlxcLlxbMC05XF0rIFxcKiAxIFxc KyAwOyBqIDw9IDIwOyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKmE2ID0gYTZcXC5cWzAtOVxdKzsi IDEgIm9yaWdpbmFsIiB9IH0KK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitk byBhNiA9IDEsIDEwCisgIGRvIGogPSBhNiwgMjAKKyAgICBhcnIoaiwgYTYpID0gaiArIDEw MCAqIGE2CisgIGVuZCBkbworZW5kIGRvCitpZiAoYW55IChyZWYgLz0gYXJyKSkgZXJyb3Ig c3RvcAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGE3 XFwuXFswLTlcXSsgPSAxOyBhN1xcLlxbMC05XF0rIDw9IDEwOyBhN1xcLlxbMC05XF0rID0g YTdcXC5cWzAtOVxdKyBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChqID0gYTdcXC5cWzAtOVxdKyBcXCog MSBcXCsgMDsgaiA8PSAyMDsgaiA9IGogXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJcXCphNyA9IGE3XFwuXFswLTlc XSs7IiAxICJvcmlnaW5hbCIgfSB9CithcnIgPSA0NAorISRvbXAgc2ltZCBjb2xsYXBzZSgy KQorZG8gYTcgPSAxLCAxMAorICBkbyBqID0gYTcsIDIwCisgICAgYXJyKGosIGE3KSA9IGog KyAxMDAgKiBhNworICBlbmQgZG8KK2VuZCBkbworaWYgKGFueSAocmVmIC89IGFycikpIGVy cm9yIHN0b3AKKworZGVhbGxvY2F0ZShhNiwgYTcpCitlbmQKKworZW5kIG1vZHVsZSBtCisK KwordXNlIG0KK2ltcGxpY2l0IG5vbmUKKworaW50ZWdlciA6OiBhdgoraW50ZWdlciA6OiBh dm8KK2ludGVnZXIgOjogYTAKK2ludGVnZXIgOjogYTBvCitpbnRlZ2VyLCBwb2ludGVyIDo6 IGExCitpbnRlZ2VyLCBwb2ludGVyIDo6IGEyCitpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiBh MworaW50ZWdlciwgYWxsb2NhdGFibGUgOjogYTQKKworYWxsb2NhdGUoYTEsYTIsYTMsYTQp CitjYWxsIGZvbyAoYXYsIGF2bywgYTAsIGEwbywgYTEsIGEyLCBhMywgYTQpCitkZWFsbG9j YXRlKGExLGEyLGEzLGE0KQorZW5kCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNC5mOTAgYi9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNC5mOTAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdlMjY1NzI1MTcwCi0tLSAv ZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL25vbi1y ZWN0YW5ndWxhci1sb29wLTQuZjkwCkBAIC0wLDAgKzEsMTg4IEBACishIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorISBQUiBmb3J0cmFuLzEw NzQyNAorCishIFNhbWUgYXMgbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNC5mOTAgYnV0IGV4cHIg aW4gdXBwZXIgYm91bmQgCisKK21vZHVsZSBtCitjb250YWlucworc3Vicm91dGluZSBmb28g KGF2LCBhdm8sIGEwLCBhMG8sIGExLCBhMiwgYTMsIGE0KQoraW1wbGljaXQgbm9uZQorCitp bnRlZ2VyLCB2YWx1ZSA6OiBhdgoraW50ZWdlciwgdmFsdWUsIG9wdGlvbmFsIDo6IGF2bwor aW50ZWdlciA6OiBhMAoraW50ZWdlciwgb3B0aW9uYWwgOjogYTBvCitpbnRlZ2VyLCBwb2lu dGVyIDo6IGExCitpbnRlZ2VyLCBwb2ludGVyLCBvcHRpb25hbCA6OiBhMgoraW50ZWdlciwg YWxsb2NhdGFibGUgOjogYTMKK2ludGVnZXIsIGFsbG9jYXRhYmxlLCBvcHRpb25hbCA6OiBh NAoraW50ZWdlciA6OiBhNQoraW50ZWdlciwgcG9pbnRlciA6OiBhNgoraW50ZWdlciwgYWxs b2NhdGFibGUgOjogYTcKK2ludGVnZXIgOjogYXJyKDIwLDEwKSwgcmVmKDIwLDEwKQorCitp bnRlZ2VyIDo6IGosIGkKKworYWxsb2NhdGUoYTYsIGE3KQorCityZWYgPSA0NAorZG8gaSA9 IDEsIDEwCisgIGRvIGogPSAxLCBpKjItMQorICAgIHJlZihqLCBpKSA9IGogKyAxMDAgKiBp CisgIGVuZCBkbworZW5kIGRvCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICJmb3IgXFwoYXYgPSAxOyBhdiA8PSAxMDsgYXYgPSBhdiBcXCsgMVxcKSIgMSAib3Jp Z2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBc XChqID0gMTsgaiA8PSBhdiBcXCogMiBcXCsgLTE7IGogPSBqIFxcKyAxXFwpIiAxICJvcmln aW5hbCIgfSB9CishIC0+IG5vIHRlbXAgdmFyCithcnIgPSA0NAorISRvbXAgc2ltZCBjb2xs YXBzZSgyKQorZG8gYXYgPSAxLCAxMAorICBkbyBqID0gMSwgYXYqMi0xCisgICAgYXJyKGos IGF2KSA9IGogKyAxMDAgKiBhdgorICBlbmQgZG8KK2VuZCBkbworaWYgKGFueSAocmVmIC89 IGFycikpIGVycm9yIHN0b3AKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgImZvciBcXChhdm8gPSAxOyBhdm8gPD0gMTA7IGF2byA9IGF2byBcXCsgMVxcKSIgMSAi b3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZv ciBcXChqID0gMTsgaiA8PSBhdm8gXFwqIDIgXFwrIC0xOyBqID0gaiBcXCsgMVxcKSIgMSAi b3JpZ2luYWwiIH0gfQorISAtPiBubyB0ZW1wIHZhcgorYXJyID0gNDQKKyEkb21wIHNpbWQg Y29sbGFwc2UoMikKK2RvIGF2byA9IDEsIDEwCisgIGRvIGogPSAxLCBhdm8qMi0xCisgICAg YXJyKGosIGF2bykgPSBqICsgMTAwICogYXZvCisgIGVuZCBkbworZW5kIGRvCitpZiAoYW55 IChyZWYgLz0gYXJyKSkgZXJyb3Igc3RvcAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiZm9yIFxcKGEwXFwuXFswLTlcXSsgPSAxOyBhMFxcLlxbMC05XF0rIDw9 IDEwOyBhMFxcLlxbMC05XF0rID0gYTBcXC5cWzAtOVxdKyBcXCsgMVxcKSIgMSAib3JpZ2lu YWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChq ID0gMTsgaiA8PSBhMFxcLlxbMC05XF0rIFxcKiAyIFxcKyAtMTsgaiA9IGogXFwrIDFcXCki IDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICJcXCphMCA9IGEwXFwuXFswLTlcXSs7IiAxICJvcmlnaW5hbCIgfSB9CithcnIgPSA0NAor ISRvbXAgc2ltZCBjb2xsYXBzZSgyKQorZG8gYTAgPSAxLCAxMAorICBkbyBqID0gMSwgYTAq Mi0xCisgICAgYXJyKGosIGEwKSA9IGogKyAxMDAgKiBhMAorICBlbmQgZG8KK2VuZCBkbwor aWYgKGFueSAocmVmIC89IGFycikpIGVycm9yIHN0b3AKKworISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgImZvciBcXChhMG9cXC5cWzAtOVxdKyA9IDE7IGEwb1xcLlxb MC05XF0rIDw9IDEwOyBhMG9cXC5cWzAtOVxdKyA9IGEwb1xcLlxbMC05XF0rIFxcKyAxXFwp IiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiZm9yIFxcKGogPSAxOyBqIDw9IGEwb1xcLlxbMC05XF0rIFxcKiAyIFxcKyAtMTsgaiA9 IGogXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJcXCphMG8gPSBhMG9cXC5cWzAtOVxdKzsiIDEgIm9yaWdpbmFsIiB9 IH0KK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitkbyBhMG8gPSAxLCAxMAor ICBkbyBqID0gMSwgYTBvKjItMQorICAgIGFycihqLCBhMG8pID0gaiArIDEwMCAqIGEwbwor ICBlbmQgZG8KK2VuZCBkbworaWYgKGFueSAocmVmIC89IGFycikpIGVycm9yIHN0b3AKKwor ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChhMVxcLlxbMC05 XF0rID0gMTsgYTFcXC5cWzAtOVxdKyA8PSAxMDsgYTFcXC5cWzAtOVxdKyA9IGExXFwuXFsw LTlcXSsgXFwrIDFcXCkiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoaiA9IDE7IGogPD0gYTFcXC5cWzAtOVxdKyBcXCog MiBcXCsgLTE7IGogPSBqIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiXFwqXFwqYTEgPSBhMVxcLlxbMC05XF0rOyIg MSAib3JpZ2luYWwiIH0gfQorYXJyID0gNDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikKK2Rv IGExID0gMSwgMTAKKyAgZG8gaiA9IDEsIGExKjItMQorICAgIGFycihqLCBhMSkgPSBqICsg MTAwICogYTEKKyAgZW5kIGRvCitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJv ciBzdG9wCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwo YTJcXC5cWzAtOVxdKyA9IDE7IGEyXFwuXFswLTlcXSsgPD0gMTA7IGEyXFwuXFswLTlcXSsg PSBhMlxcLlxbMC05XF0rIFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZm9yIFxcKGogPSAxOyBqIDw9IGEyXFwuXFsw LTlcXSsgXFwqIDIgXFwrIC0xOyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQor ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKlxcKmEyID0gYTJcXC5c WzAtOVxdKzsiIDEgIm9yaWdpbmFsIiB9IH0KK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxh cHNlKDIpCitkbyBhMiA9IDEsIDEwCisgIGRvIGogPSAxLCBhMioyLTEKKyAgICBhcnIoaiwg YTIpID0gaiArIDEwMCAqIGEyCisgIGVuZCBkbworZW5kIGRvCitpZiAoYW55IChyZWYgLz0g YXJyKSkgZXJyb3Igc3RvcAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiZm9yIFxcKGEzXFwuXFswLTlcXSsgPSAxOyBhM1xcLlxbMC05XF0rIDw9IDEwOyBhM1xc LlxbMC05XF0rID0gYTNcXC5cWzAtOVxdKyBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQor ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChqID0gMTsgaiA8 PSBhM1xcLlxbMC05XF0rIFxcKiAyIFxcKyAtMTsgaiA9IGogXFwrIDFcXCkiIDEgIm9yaWdp bmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJcXCpcXCph MyA9IGEzXFwuXFswLTlcXSs7IiAxICJvcmlnaW5hbCIgfSB9CithcnIgPSA0NAorISRvbXAg c2ltZCBjb2xsYXBzZSgyKQorZG8gYTMgPSAxLCAxMAorICBkbyBqID0gMSwgYTMqMi0xCisg ICAgYXJyKGosIGEzKSA9IGogKyAxMDAgKiBhMworICBlbmQgZG8KK2VuZCBkbworaWYgKGFu eSAocmVmIC89IGFycikpIGVycm9yIHN0b3AKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgImZvciBcXChhNFxcLlxbMC05XF0rID0gMTsgYTRcXC5cWzAtOVxdKyA8 PSAxMDsgYTRcXC5cWzAtOVxdKyA9IGE0XFwuXFswLTlcXSsgXFwrIDFcXCkiIDEgIm9yaWdp bmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwo aiA9IDE7IGogPD0gYTRcXC5cWzAtOVxdKyBcXCogMiBcXCsgLTE7IGogPSBqIFxcKyAxXFwp IiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiXFwqXFwqYTQgPSBhNFxcLlxbMC05XF0rOyIgMSAib3JpZ2luYWwiIH0gfQorYXJyID0g NDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikKK2RvIGE0ID0gMSwgMTAKKyAgZG8gaiA9IDEs IGE0KjItMQorICAgIGFycihqLCBhNCkgPSBqICsgMTAwICogYTQKKyAgZW5kIGRvCitlbmQg ZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJvciBzdG9wCisKKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoYTUgPSAxOyBhNSA8PSAxMDsgYTUgPSBh NSBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgImZvciBcXChqID0gMTsgaiA8PSBhNSBcXCogMiBcXCsgLTE7IGogPSBq IFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIC0+IG5vIHRlbXAgdmFyCithcnIgPSA0 NAorISRvbXAgc2ltZCBjb2xsYXBzZSgyKQorZG8gYTUgPSAxLCAxMAorICBkbyBqID0gMSwg YTUqMi0xCisgICAgYXJyKGosIGE1KSA9IGogKyAxMDAgKiBhNQorICBlbmQgZG8KK2VuZCBk bworaWYgKGFueSAocmVmIC89IGFycikpIGVycm9yIHN0b3AKKworISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgImZvciBcXChhNlxcLlxbMC05XF0rID0gMTsgYTZcXC5c WzAtOVxdKyA8PSAxMDsgYTZcXC5cWzAtOVxdKyA9IGE2XFwuXFswLTlcXSsgXFwrIDFcXCki IDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICJmb3IgXFwoaiA9IDE7IGogPD0gYTZcXC5cWzAtOVxdKyBcXCogMiBcXCsgLTE7IGogPSBq IFxcKyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiXFwqYTYgPSBhNlxcLlxbMC05XF0rOyIgMSAib3JpZ2luYWwiIH0gfQor YXJyID0gNDQKKyEkb21wIHNpbWQgY29sbGFwc2UoMikKK2RvIGE2ID0gMSwgMTAKKyAgZG8g aiA9IDEsIGE2KjItMQorICAgIGFycihqLCBhNikgPSBqICsgMTAwICogYTYKKyAgZW5kIGRv CitlbmQgZG8KK2lmIChhbnkgKHJlZiAvPSBhcnIpKSBlcnJvciBzdG9wCisKKyEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJmb3IgXFwoYTdcXC5cWzAtOVxdKyA9IDE7 IGE3XFwuXFswLTlcXSsgPD0gMTA7IGE3XFwuXFswLTlcXSsgPSBhN1xcLlxbMC05XF0rIFxc KyAxXFwpIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAiZm9yIFxcKGogPSAxOyBqIDw9IGE3XFwuXFswLTlcXSsgXFwqIDIgXFwrIC0x OyBqID0gaiBcXCsgMVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIlxcKmE3ID0gYTdcXC5cWzAtOVxdKzsiIDEgIm9yaWdpbmFs IiB9IH0KK2FyciA9IDQ0CishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitkbyBhNyA9IDEsIDEw CisgIGRvIGogPSAxLCBhNyoyLTEKKyAgICBhcnIoaiwgYTcpID0gaiArIDEwMCAqIGE3Cisg IGVuZCBkbworZW5kIGRvCitpZiAoYW55IChyZWYgLz0gYXJyKSkgZXJyb3Igc3RvcAorCitk ZWFsbG9jYXRlKGE2LCBhNykKK2VuZAorCitlbmQgbW9kdWxlIG0KKworCit1c2UgbQoraW1w bGljaXQgbm9uZQorCitpbnRlZ2VyIDo6IGF2CitpbnRlZ2VyIDo6IGF2bworaW50ZWdlciA6 OiBhMAoraW50ZWdlciA6OiBhMG8KK2ludGVnZXIsIHBvaW50ZXIgOjogYTEKK2ludGVnZXIs IHBvaW50ZXIgOjogYTIKK2ludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGEzCitpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiBhNAorCithbGxvY2F0ZShhMSxhMixhMyxhNCkKK2NhbGwgZm9vIChh diwgYXZvLCBhMCwgYTBvLCBhMSwgYTIsIGEzLCBhNCkKK2RlYWxsb2NhdGUoYTEsYTIsYTMs YTQpCitlbmQKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJh bi9ub24tcmVjdGFuZ3VsYXItbG9vcC01LmY5MCBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC01LmY5MApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjQzYWI3OTZhODQKLS0tIC9kZXYvbnVsbAorKysg Yi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxv b3AtNS5mOTAKQEAgLTAsMCArMSwyOCBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRn LWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1zc2UyIiB7IHRhcmdldCBzc2UyX3J1bnRpbWUgfSB9 CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWF2eCIgeyB0YXJnZXQgYXZ4X3J1bnRp bWUgfSB9CisKKyEgUFIgZm9ydHJhbi8xMDc0MjQKKworISBOb25yZWN0YW5ndWxhciBsb29w IG5lc3RzIGNoZWNrcworCishJG9tcCBzaW1kIGNvbGxhcHNlKDIpCitkbyBpID0gMSwgMTAK KyAgZG8gaiA9IGksIDEwLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50 ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29u c3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9CisgIGVuZCBkbworZW5kIGRvCisKKyEkb21wIGRv IGNvbGxhcHNlKDIpIGxhc3Rwcml2YXRlKGopICAhIHsgZGctZXJyb3IgImxhc3Rwcml2YXRl IHZhcmlhYmxlICdqJyBpcyBwcml2YXRlIGluIG91dGVyIGNvbnRleHQiIH0KK2RvIGkgPSAx LCAxMAorICBkbyBqID0gaSwgMTAsIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBs ZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhh biBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KKyAgZW5kIGRvCitlbmQgZG8KK2lmIChp IC89IDExKSBzdG9wIDEKKworISRvbXAgc2ltZCBjb2xsYXBzZSgyKSBsYXN0cHJpdmF0ZShq KQorZG8gaSA9IDEsIDEwCisgIGRvIGogPSBpLCAxMCwgMiAgISB7IGRnLW1lc3NhZ2UgInNv cnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3Rl cCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQorICBlbmQgZG8KK2Vu ZCBkbworaWYgKGkgLz0gMTEpIHN0b3AgMQorZW5kCg== --------------ixFCYN4AM34I2lJKzRjZVy3t--