From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124872 invoked by alias); 8 Jul 2017 18:16:47 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 124837 invoked by uid 89); 8 Jul 2017 18:16:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=Hx-languages-length:280 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yb0-f173.google.com Received: from mail-yb0-f173.google.com (HELO mail-yb0-f173.google.com) (209.85.213.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 08 Jul 2017 18:16:45 +0000 Received: by mail-yb0-f173.google.com with SMTP id e201so18710167ybb.1; Sat, 08 Jul 2017 11:16:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=Q8ziuCEVzstLCIXjbG25RBUXMoDSxfxQqJ2qWjWiudI=; b=STKFDszCKaCgRSscIbHDxT8ts3ppAgw8vtVb4d1pb6qT8deEE1y7duZI7qJuQqeYk6 RbfxXGAXEyLd7NAYaRxqrAnTfXdH9Elt1+zjhvm3ePOQZ4Y34Bv4L/7Ii8WkFl8hrFVn jX+NJprsMJyT0YaJ6+kNYo2OJucq5K6oDBrFiczS0VHqyhkrhAq5+3biwT1r5q36qjjJ /N4dUy0pDlvI8Lj0OeXQ8qKvBHQwiGf7uZWD+uKtCC22daJzF4+yFjqE56IRtSsEclNK 4CG28HRRqcVh2w1QKsFyOlNC5HnxE5jkr7/AWHeqzQOtzv1hpldMufMf0Ypfh8D6Zs2x 4pxA== X-Gm-Message-State: AIVw113czu/Vy0srm8DkeBOjHL7/eAcNuN1m3eXQMuYGjD9NeexxTiai w773ODDqLYsbYzNrIdXHXaD5TLDvNfDv X-Received: by 10.37.75.70 with SMTP id y67mr8675453yba.92.1499537803125; Sat, 08 Jul 2017 11:16:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.40.3 with HTTP; Sat, 8 Jul 2017 11:16:42 -0700 (PDT) From: Yuri Gribov Date: Sat, 08 Jul 2017 18:16:00 -0000 Message-ID: Subject: [PATCHv3][PR 57371] Remove useless floating point casts in comparisons To: GCC Patches Cc: Joseph Myers , glisse@gcc.gnu.org Content-Type: multipart/mixed; boundary="94eb2c094470156c060553d25a80" X-IsSubscribed: yes X-SW-Source: 2017-07/txt/msg00409.txt.bz2 --94eb2c094470156c060553d25a80 Content-Type: text/plain; charset="UTF-8" Content-length: 208 Hi all, This is an updated version of patch in https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00351.html . It adds Inf and NaN tests suggested by Joseph. Bootstrapped and regtested on x64. Ok for trunk? -Y --94eb2c094470156c060553d25a80 Content-Type: application/octet-stream; name="pr57371-3a.patch" Content-Disposition: attachment; filename="pr57371-3a.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j4vm2ow01 Content-length: 21855 MjAxNy0wNy0wOCAgWXVyeSBHcmlib3YgIDx0ZXRyYTIwMDVAZ21haWwuY29t PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzU3MzcxCgkqIG1hdGNoLnBkOiBO ZXcgcGF0dGVybi4KCSogdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjU3Mzcx LTEuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1 NzM3MS0yLmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvYy1jKystY29tbW9u L3ByNTczNzEtMy5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2MtYysrLWNv bW1vbi9wcjU3MzcxLTQuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9nY2Mu ZGcvcHI1NzM3MS01LmM6IE5ldyB0ZXN0LgoKZGlmZiAtcnVwTiAteCAnKi5n aXQqJyBnY2MvZ2NjL21hdGNoLnBkIGdjYy01NzM3MS9nY2MvbWF0Y2gucGQK LS0tIGdjYy9nY2MvbWF0Y2gucGQJMjAxNy0wNy0wNyAwOTo0Nzo0Mi4wMDAw MDAwMDAgKzAyMDAKKysrIGdjYy01NzM3MS9nY2MvbWF0Y2gucGQJMjAxNy0w Ny0wOCAwNjozMDo1Ni4wMDAwMDAwMDAgKzAyMDAKQEAgLTI4MDQsNiArMjgw NCw5MyBAQCBERUZJTkVfSU5UX0FORF9GTE9BVF9ST1VORF9GTiAoUklOVCkK ICAgICAgIChpZiAoISBIT05PUl9OQU5TIChAMCkpCiAJKGNtcCBAMCBAMSkp KSkpKQogCisvKiBPcHRpbWl6ZSB2YXJpb3VzIHNwZWNpYWwgY2FzZXMgb2Yg KEZUWVBFKSBOIENNUCBDU1QuICAqLworKGZvciBjbXAgIChsdCBsZSBlcSBu ZSBnZSBndCkKKyAgICAgaWNtcCAobGUgbGUgZXEgbmUgZ2UgZ2UpCisgKHNp bXBsaWZ5CisgIChjbXAgKGZsb2F0IEAwKSBSRUFMX0NTVEAxKQorICAgKGlm IChTQ0FMQVJfRkxPQVRfVFlQRV9QIChUUkVFX1RZUEUgKEAxKSkKKwkmJiAh IERFQ0lNQUxfRkxPQVRfVFlQRV9QIChUUkVFX1RZUEUgKEAxKSkpCisgICAg KHdpdGgKKyAgICAgeworICAgICAgIHRyZWUgaXR5cGUgPSBUUkVFX1RZUEUg KEAwKTsKKyAgICAgICBnY2NfYXNzZXJ0IChJTlRFR1JBTF9UWVBFX1AgKGl0 eXBlKSk7CisgICAgICAgc2lnbm9wIGlzaWduID0gVFlQRV9TSUdOIChpdHlw ZSk7CisKKyAgICAgICBmb3JtYXRfaGVscGVyIGZtdCAoUkVBTF9NT0RFX0ZP Uk1BVCAoVFlQRV9NT0RFIChUUkVFX1RZUEUgKEAxKSkpKTsKKworICAgICAg IGNvbnN0IFJFQUxfVkFMVUVfVFlQRSAqY3N0ID0gVFJFRV9SRUFMX0NTVF9Q VFIgKEAxKTsKKyAgICAgICBib29sIHNuYW5fcAorCSA9IHJlYWxfaXNzaWdu YWxpbmdfbmFuIChjc3QpICYmIEhPTk9SX1NOQU5TIChUUkVFX1RZUEUgKEAx KSk7CisKKyAgICAgICAvKiBJTlQ/X01JTiBpcyBwb3dlci1vZi10d28gc28g aXQgdGFrZXMKKwkgIG9ubHkgb25lIG1hbnRpc3NhIGJpdC4gICovCisgICAg ICAgYm9vbCBzaWduZWRfcCA9IGlzaWduID09IFNJR05FRDsKKyAgICAgICBi b29sIGl0eXBlX2ZpdHNfZnR5cGVfcAorCT0gVFlQRV9QUkVDSVNJT04gKGl0 eXBlKSAtIHNpZ25lZF9wIDw9IHNpZ25pZmljYW5kX3NpemUgKGZtdCk7Cisg ICAgIH0KKyAgICAgLyogVE9ETzogYWxsb3cgbm9uLWZpdHRpbmcgaXR5cGUg YW5kIFNOYU5zCisJd2hlbiAtZm5vLXRyYXBwaW5nLW1hdGguICAqLworICAg ICAoaWYgKGl0eXBlX2ZpdHNfZnR5cGVfcCAmJiAhIHNuYW5fcCkKKyAgICAg ICh3aXRoCisgICAgICAgeworCSBSRUFMX1ZBTFVFX1RZUEUgaW1pbiwgaW1h eDsKKwkgcmVhbF9mcm9tX2ludGVnZXIgKCZpbWluLCBmbXQsIHdpOjptaW5f dmFsdWUgKGl0eXBlKSwgaXNpZ24pOworCSByZWFsX2Zyb21faW50ZWdlciAo JmltYXgsIGZtdCwgd2k6Om1heF92YWx1ZSAoaXR5cGUpLCBpc2lnbik7CisK KwkgUkVBTF9WQUxVRV9UWVBFIGljc3Q7CisJIGlmIChjbXAgPT0gR1RfRVhQ UiB8fCBjbXAgPT0gR0VfRVhQUikKKwkgICByZWFsX2NlaWwgKCZpY3N0LCBm bXQsIGNzdCk7CisJIGVsc2UgaWYgKGNtcCA9PSBMVF9FWFBSIHx8IGNtcCA9 PSBMRV9FWFBSKQorCSAgIHJlYWxfZmxvb3IgKCZpY3N0LCBmbXQsIGNzdCk7 CisJIGVsc2UKKwkgICByZWFsX3RydW5jICgmaWNzdCwgZm10LCBjc3QpOwor CisJIGJvb2wgY3N0X2ludF9wID0gcmVhbF9pZGVudGljYWwgKCZpY3N0LCBj c3QpOworCisJIGlmICghY3N0X2ludF9wICYmIGNtcCA9PSBHVF9FWFBSKQor CSAgIGljbXAgPSBHRV9FWFBSOworCSBlbHNlIGlmICghY3N0X2ludF9wICYm IGNtcCA9PSBMVF9FWFBSKQorCSAgIGljbXAgPSBMRV9FWFBSOworCisJIGJv b2wgb3ZlcmZsb3dfcCA9IGZhbHNlOworCSB3aWRlX2ludCBpY3N0X3ZhbAor CSAgID0gcmVhbF90b19pbnRlZ2VyICgmaWNzdCwgJm92ZXJmbG93X3AsIFRZ UEVfUFJFQ0lTSU9OIChpdHlwZSkpOworICAgICAgIH0KKworICAgICAgIChz d2l0Y2gKKworCS8qIE9wdGltaXplIGNhc2VzIHdoZW4gQ1NUIGlzIG91dHNp ZGUgb2YgSVRZUEUncyByYW5nZS4gICovCisJKGlmIChyZWFsX2NvbXBhcmUg KExUX0VYUFIsIGNzdCwgJmltaW4pKQorCSB7IGNvbnN0YW50X2Jvb2xlYW5f bm9kZSAoY21wID09IEdUX0VYUFIgfHwgY21wID09IEdFX0VYUFIgfHwgY21w ID09IE5FX0VYUFIsCisJCQkJICB0eXBlKTsgfSkKKwkoaWYgKHJlYWxfY29t cGFyZSAoR1RfRVhQUiwgY3N0LCAmaW1heCkpCisJIHsgY29uc3RhbnRfYm9v bGVhbl9ub2RlIChjbXAgPT0gTFRfRVhQUiB8fCBjbXAgPT0gTEVfRVhQUiB8 fCBjbXAgPT0gTkVfRVhQUiwKKwkJCQkgIHR5cGUpOyB9KQorCisJLyogUmVt b3ZlIGNhc3QgaWYgQ1NUIGlzIGFuIGludGVnZXIgcmVwcmVzZW50YWJsZSBi eSBJVFlQRS4gICovCisJKGlmIChjc3RfaW50X3ApCisJIChjbXAgQDAgeyBn Y2NfYXNzZXJ0ICghb3ZlcmZsb3dfcCk7CisJCSAgIHdpZGVfaW50X3RvX3Ry ZWUgKGl0eXBlLCBpY3N0X3ZhbCk7IH0pCisJKQorCisJLyogV2hlbiBDU1Qg aXMgZnJhY3Rpb25hbCwgb3B0aW1pemUKKwkgICAgKEZUWVBFKSBOID09IENT VCAtPiAwCisJICAgIChGVFlQRSkgTiAhPSBDU1QgLT4gMS4gICovCisJKGlm IChjbXAgPT0gRVFfRVhQUiB8fCBjbXAgPT0gTkVfRVhQUikKKwkgeyBjb25z dGFudF9ib29sZWFuX25vZGUgKGNtcCA9PSBORV9FWFBSLCB0eXBlKTsgfSkg CisKKwkvKiBPdGhlcndpc2UgcmVwbGFjZSB3aXRoIHNlbnNpYmxlIGludGVn ZXIgY29uc3RhbnQuICAqLworCSh3aXRoCisJIHsKKwkgICBnY2NfYXNzZXJ0 ICghb3ZlcmZsb3dfcCk7CisJICAgZ2NjX2Fzc2VydCAocmVhbF9jb21wYXJl IChHRV9FWFBSLCAmaWNzdCwgJmltaW4pCisJCSAgICAgICAmJiByZWFsX2Nv bXBhcmUgKExFX0VYUFIsICZpY3N0LCAmaW1heCkpOworCSAgIGdjY19hc3Nl cnQgKHdpOjpnZV9wIChpY3N0X3ZhbCwgd2k6Om1pbl92YWx1ZSAoaXR5cGUp LCBpc2lnbikKKwkJICAgICAgICYmIHdpOjpsZV9wIChpY3N0X3ZhbCwgd2k6 Om1heF92YWx1ZSAoaXR5cGUpLCBpc2lnbikpOworCSB9CisJIChpY21wIEAw IHsgd2lkZV9pbnRfdG9fdHJlZSAoaXR5cGUsIGljc3RfdmFsKTsgfSkpKSkp KSkpKQorCiAvKiBGb2xkIEEgL1tleF0gQiBDTVAgQyB0byBBIENNUCBCICog Qy4gICovCiAoZm9yIGNtcCAoZXEgbmUpCiAgKHNpbXBsaWZ5CmRpZmYgLXJ1 cE4gLXggJyouZ2l0KicgZ2NjL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9u L3ByNTczNzEtMS5jIGdjYy01NzM3MS9nY2MvdGVzdHN1aXRlL2MtYysrLWNv bW1vbi9wcjU3MzcxLTEuYwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvYy1jKyst Y29tbW9uL3ByNTczNzEtMS5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKyBnY2MtNTczNzEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1j b21tb24vcHI1NzM3MS0xLmMJMjAxNy0wNy0wNyAyMTo1MjoyOC4wMDAwMDAw MDAgKzAyMDAKQEAgLTAsMCArMSwzNjMgQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1vcmln aW5hbCIgfSAqLworCisjaW5jbHVkZSA8bGltaXRzLmg+CisKKy8qIE9yaWdp bmFsIHRlc3RjYXNlIGZyb20gUFIuICAqLworCitpbnQgZm9vMSAoc2hvcnQg eCkgeworICByZXR1cm4gKGRvdWJsZSkgeCAhPSAwOworICAvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAgInJldHVybiAoPHJldHZhbD4gPSApP3gg IT0gMCIgIm9yaWdpbmFsIiB9IH0gKi8KK30KKworaW50IGZvbzIgKHNob3J0 IHgpIHsKKyAgcmV0dXJuIChmbG9hdCkgeCAhPSAwOworICAvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAgInJldHVybiAoPHJldHZhbD4gPSApP3gg IT0gMCIgIm9yaWdpbmFsIiB9IH0gKi8KK30KKworaW50IGZvbzMgKGludCB4 KSB7CisgIHJldHVybiAoZG91YmxlKSB4ICE9IDA7CisgIC8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAicmV0dXJuICg8cmV0dmFsPiA9ICk/eCAh PSAwIiAib3JpZ2luYWwiIH0gfSAqLworfQorCisvKiBUZXN0cyB3aGVuIFJI UyBpcyB3aXRoaW4gcmFuZ2Ugb2YgaW50ZWdlciB0eXBlLiAgKi8KKwordm9p ZCBpbl9yYW5nZSAodW5zaWduZWQgc2hvcnQgeCkKK3sKKyAgeworICAgIHZv bGF0aWxlIGludCBpbl9yYW5nZV8xOworICAgIGluX3JhbmdlXzEgPSAoZmxv YXQpIHggPiAxMDAuMGY7CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wICJpbl9yYW5nZV8xID0geCA+IDEwMCIgIm9yaWdpbmFsIiB9IH0g Ki8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgaW5fcmFuZ2VfMjsK KyAgICBpbl9yYW5nZV8yID0gKGZsb2F0KSB4IDwgMTAwLjBmOworICAgIC8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiaW5fcmFuZ2VfMiA9IHgg PD0gOTkiICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9s YXRpbGUgaW50IGluX3JhbmdlXzM7CisgICAgaW5fcmFuZ2VfMyA9IChmbG9h dCkgeCA+IDEwMC41ZjsKKyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgImluX3JhbmdlXzMgPSB4ICg+PSAxMDF8PiAxMDApIiAib3JpZ2lu YWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0aWxlIGludCBpbl9y YW5nZV80OworICAgIGluX3JhbmdlXzQgPSAoZmxvYXQpIHggPCAxMDAuNWY7 CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJpbl9yYW5n ZV80ID0geCA8PSAxMDAiICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7 CisgICAgdm9sYXRpbGUgaW50IGluX3JhbmdlXzU7CisgICAgaW5fcmFuZ2Vf NSA9IChmbG9hdCkgeCA9PSAxMDAuMGY7CisgICAgLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wICJpbl9yYW5nZV81ID0geCA9PSAxMDAiICJvcmln aW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50IGlu X3JhbmdlXzY7CisgICAgaW5fcmFuZ2VfNiA9IChmbG9hdCkgeCAhPSAxMDAu MGY7CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJpbl9y YW5nZV82ID0geCAhPSAxMDAiICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKwor ICB7CisgICAgdm9sYXRpbGUgaW50IGluX3JhbmdlXzc7CisgICAgaW5fcmFu Z2VfNyA9IChmbG9hdCkgeCA9PSAxMDAuNWY7CisgICAgLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wICJpbl9yYW5nZV83ID0gMCIgIm9yaWdpbmFs IiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgaW5fcmFu Z2VfODsKKyAgICBpbl9yYW5nZV84ID0gKGZsb2F0KSB4ICE9IDEwMC41ZjsK KyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImluX3Jhbmdl XzggPSAxIiAib3JpZ2luYWwiIH0gfSAqLworICB9Cit9CisKKy8qIFRlc3Rz IGZvciBjYXNlcyB3aGVyZSBSSFMgaXMgb3V0IG9mIHJhbmdlIG9mIGludGVn ZXIgdHlwZS4gICovCisKK3ZvaWQgb3V0X3JhbmdlICh1bnNpZ25lZCBzaG9y dCB4KQoreworICB7CisgICAgdm9sYXRpbGUgaW50IG91dF9yYW5nZV8xOwor ICAgIG91dF9yYW5nZV8xID0gKGZsb2F0KSB4ID4gLTEwMC41ZjsKKyAgICAv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIm91dF9yYW5nZV8xID0g MSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGls ZSBpbnQgb3V0X3JhbmdlXzI7CisgICAgb3V0X3JhbmdlXzIgPSAoZmxvYXQp IHggPj0gLTEwMC41ZjsKKyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgIm91dF9yYW5nZV8yID0gMSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAg fQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgb3V0X3JhbmdlXzM7CisgICAg b3V0X3JhbmdlXzMgPSAoZmxvYXQpIHggPCAtMTAwLjVmOworICAgIC8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAib3V0X3JhbmdlXzMgPSAwIiAi b3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0aWxlIGlu dCBvdXRfcmFuZ2VfNDsKKyAgICBvdXRfcmFuZ2VfNCA9IChmbG9hdCkgeCA8 PSAtMTAwLjVmOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cCAib3V0X3JhbmdlXzQgPSAwIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisK KyAgeworICAgIHZvbGF0aWxlIGludCBvdXRfcmFuZ2VfNTsKKyAgICBvdXRf cmFuZ2VfNSA9IChmbG9hdCkgeCA9PSAtMTAwLjVmOworICAgIC8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAib3V0X3JhbmdlXzUgPSAwIiAib3Jp Z2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0aWxlIGludCBv dXRfcmFuZ2VfNjsKKyAgICBvdXRfcmFuZ2VfNiA9IChmbG9hdCkgeCAhPSAt MTAwLjVmOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAi b3V0X3JhbmdlXzYgPSAxIiAib3JpZ2luYWwiIH0gfSAqLworICB9Cit9CisK Ky8qIFRlc3RzIHdoZW4gUkhTIGlzIGF0IGJvdW5kYXJ5IG9mIGludGVnZXIg dHlwZS4gICovCisKK3ZvaWQgbG9fYm91bmRzICh1bnNpZ25lZCBzaG9ydCB4 KQoreworICB7CisgICAgdm9sYXRpbGUgaW50IGxvX2JvdW5kc18xOworICAg IGxvX2JvdW5kc18xID0gKGZsb2F0KSB4ID4gMHgwOworICAgIC8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAibG9fYm91bmRzXzEgPSB4ICg+fCE9 KSAwIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0 aWxlIGludCBsb19ib3VuZHNfMjsKKyAgICBsb19ib3VuZHNfMiA9IChmbG9h dCkgeCA+PSAweDA7CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wICJsb19ib3VuZHNfMiA9IDEiICJvcmlnaW5hbCIgfSB9ICovCisgIH0K KworICB7CisgICAgdm9sYXRpbGUgaW50IGxvX2JvdW5kc18zOworICAgIGxv X2JvdW5kc18zID0gKGZsb2F0KSB4IDwgMHgwOworICAgIC8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAibG9fYm91bmRzXzMgPSAwIiAib3JpZ2lu YWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0aWxlIGludCBsb19i b3VuZHNfNDsKKyAgICBsb19ib3VuZHNfNCA9IChmbG9hdCkgeCA8PSAweDA7 CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJsb19ib3Vu ZHNfNCA9IHggKDw9fD09KSAwIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisK KyAgeworICAgIHZvbGF0aWxlIGludCBsb19ib3VuZHNfNTsKKyAgICBsb19i b3VuZHNfNSA9IChmbG9hdCkgeCA+IDB4MCAtIDAuNWY7CisgICAgLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJsb19ib3VuZHNfNSA9IDEiICJv cmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50 IGxvX2JvdW5kc182OworICAgIGxvX2JvdW5kc182ID0gKGZsb2F0KSB4ID49 IDB4MCAtIDAuNWY7CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wICJsb19ib3VuZHNfNiA9IDEiICJvcmlnaW5hbCIgfSB9ICovCisgIH0K KworICB7CisgICAgdm9sYXRpbGUgaW50IGxvX2JvdW5kc183OworICAgIGxv X2JvdW5kc183ID0gKGZsb2F0KSB4IDwgMHgwIC0gMC41ZjsKKyAgICAvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImxvX2JvdW5kc183ID0gMCIg Im9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBp bnQgbG9fYm91bmRzXzg7CisgICAgbG9fYm91bmRzXzggPSAoZmxvYXQpIHgg PD0gMHgwIC0gMC41ZjsKKyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgImxvX2JvdW5kc184ID0gMCIgIm9yaWdpbmFsIiB9IH0gKi8KKyAg fQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgbG9fYm91bmRzXzk7CisgICAg bG9fYm91bmRzXzkgPSAoZmxvYXQpIHggPiAweDAgKyAwLjVmOworICAgIC8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAibG9fYm91bmRzXzkgPSB4 ICg+PSAxfCE9IDApIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgewor ICAgIHZvbGF0aWxlIGludCBsb19ib3VuZHNfMTA7CisgICAgbG9fYm91bmRz XzEwID0gKGZsb2F0KSB4ID49IDB4MCArIDAuNWY7CisgICAgLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wICJsb19ib3VuZHNfMTAgPSB4ICg+PSAx fCE9IDApIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZv bGF0aWxlIGludCBsb19ib3VuZHNfMTE7CisgICAgbG9fYm91bmRzXzExID0g KGZsb2F0KSB4IDwgMHgwICsgMC41ZjsKKyAgICAvKiB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAgImxvX2JvdW5kc18xMSA9IHggKDw9fD09KSAwIiAi b3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAgIHZvbGF0aWxlIGlu dCBsb19ib3VuZHNfMTI7CisgICAgbG9fYm91bmRzXzEyID0gKGZsb2F0KSB4 IDw9IDB4MCArIDAuNWY7CisgICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wICJsb19ib3VuZHNfMTIgPSB4ICg8PXw9PSkgMCIgIm9yaWdpbmFs IiB9IH0gKi8KKyAgfQorfQorCit2b2lkIGhpX2JvdW5kcyAodW5zaWduZWQg c2hvcnQgeCkKK3sKKyAgeworICAgIHZvbGF0aWxlIGludCBoaV9ib3VuZHNf MTsKKyAgICBoaV9ib3VuZHNfMSA9IChmbG9hdCkgeCA+IFVTSFJUX01BWDsK KyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImhpX2JvdW5k c18xID0gMCIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2 b2xhdGlsZSBpbnQgaGlfYm91bmRzXzI7CisgICAgaGlfYm91bmRzXzIgPSAo ZmxvYXQpIHggPj0gVVNIUlRfTUFYOworICAgIC8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcCAiaGlfYm91bmRzXzIgPSB4ICg+PXw9PSkgNjU1MzUi ICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUg aW50IGhpX2JvdW5kc18zOworICAgIGhpX2JvdW5kc18zID0gKGZsb2F0KSB4 IDwgVVNIUlRfTUFYOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAiaGlfYm91bmRzXzMgPSB4ICg8fCE9KSA2NTUzNSIgIm9yaWdpbmFs IiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgaGlfYm91 bmRzXzQ7CisgICAgaGlfYm91bmRzXzQgPSAoZmxvYXQpIHggPD0gVVNIUlRf TUFYOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiaGlf Ym91bmRzXzQgPSAxIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgewor ICAgIHZvbGF0aWxlIGludCBoaV9ib3VuZHNfNTsKKyAgICBoaV9ib3VuZHNf NSA9IChmbG9hdCkgeCA+IFVTSFJUX01BWCAtIDAuNWY7CisgICAgLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJoaV9ib3VuZHNfNSA9IHggKD49 fD09KSA2NTUzNSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAg ICB2b2xhdGlsZSBpbnQgaGlfYm91bmRzXzY7CisgICAgaGlfYm91bmRzXzYg PSAoZmxvYXQpIHggPj0gVVNIUlRfTUFYIC0gMC41ZjsKKyAgICAvKiB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImhpX2JvdW5kc182ID0geCAoPj18 PT0pIDY1NTM1IiAib3JpZ2luYWwiIH0gfSAqLworICB9CisKKyAgeworICAg IHZvbGF0aWxlIGludCBoaV9ib3VuZHNfNzsKKyAgICBoaV9ib3VuZHNfNyA9 IChmbG9hdCkgeCA8IFVTSFJUX01BWCAtIDAuNWY7CisgICAgLyogeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wICJoaV9ib3VuZHNfNyA9IHggKDw9IDY1 NTM0fCE9IDY1NTM1KSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsK KyAgICB2b2xhdGlsZSBpbnQgaGlfYm91bmRzXzg7CisgICAgaGlfYm91bmRz XzggPSAoZmxvYXQpIHggPD0gVVNIUlRfTUFYIC0gMC41ZjsKKyAgICAvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImhpX2JvdW5kc184ID0geCAo PD0gNjU1MzR8IT0gNjU1MzUpIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisK KyAgeworICAgIHZvbGF0aWxlIGludCBoaV9ib3VuZHNfOTsKKyAgICBoaV9i b3VuZHNfOSA9IChmbG9hdCkgeCA+IFVTSFJUX01BWCArIDAuNWY7CisgICAg LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJoaV9ib3VuZHNfOSA9 IDAiICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRp bGUgaW50IGhpX2JvdW5kc18xMDsKKyAgICBoaV9ib3VuZHNfMTAgPSAoZmxv YXQpIHggPj0gVVNIUlRfTUFYICsgMC41ZjsKKyAgICAvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAgImhpX2JvdW5kc18xMCA9IDAiICJvcmlnaW5h bCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50IGhpX2Jv dW5kc18xMTsKKyAgICBoaV9ib3VuZHNfMTEgPSAoZmxvYXQpIHggPCBVU0hS VF9NQVggKyAwLjVmOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAiaGlfYm91bmRzXzExID0gMSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAg fQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgaGlfYm91bmRzXzEyOworICAg IGhpX2JvdW5kc18xMiA9IChmbG9hdCkgeCA8PSBVU0hSVF9NQVggKyAwLjVm OworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiaGlfYm91 bmRzXzEyID0gMSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorfQorCisvKiBU ZXN0cyB3aXRoIG5vbi1maW5pdGUgZmxvYXQgY29uc3RzLiAgKi8KKwordm9p ZCBub25maW5pdGUgKHVuc2lnbmVkIHNob3J0IHgpCit7CisjZGVmaW5lIElO RklOSVRZIF9fYnVpbHRpbl9pbmZmICgpCisKKyAgeworICAgIHZvbGF0aWxl IGludCBub25maW5pdGVfMTsKKyAgICBub25maW5pdGVfMSA9IChmbG9hdCkg eCA+IElORklOSVRZOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAibm9uZmluaXRlXzEgPSAwIiAib3JpZ2luYWwiIH0gfSAqLworICB9 CisKKyAgeworICAgIHZvbGF0aWxlIGludCBub25maW5pdGVfMjsKKyAgICBu b25maW5pdGVfMiA9IChmbG9hdCkgeCA+PSBJTkZJTklUWTsKKyAgICAvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIm5vbmZpbml0ZV8yID0gMCIg Im9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBp bnQgbm9uZmluaXRlXzM7CisgICAgbm9uZmluaXRlXzMgPSAoZmxvYXQpIHgg PCBJTkZJTklUWTsKKyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAgIm5vbmZpbml0ZV8zID0gMSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQor CisgIHsKKyAgICB2b2xhdGlsZSBpbnQgbm9uZmluaXRlXzQ7CisgICAgbm9u ZmluaXRlXzQgPSAoZmxvYXQpIHggPD0gSU5GSU5JVFk7CisgICAgLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJub25maW5pdGVfNCA9IDEiICJv cmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50 IG5vbmZpbml0ZV81OworICAgIG5vbmZpbml0ZV81ID0gKGZsb2F0KSB4ID4g LUlORklOSVRZOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cCAibm9uZmluaXRlXzUgPSAxIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisK KyAgeworICAgIHZvbGF0aWxlIGludCBub25maW5pdGVfNjsKKyAgICBub25m aW5pdGVfNiA9IChmbG9hdCkgeCA+PSAtSU5GSU5JVFk7CisgICAgLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJub25maW5pdGVfNiA9IDEiICJv cmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50 IG5vbmZpbml0ZV83OworICAgIG5vbmZpbml0ZV83ID0gKGZsb2F0KSB4IDwg LUlORklOSVRZOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cCAibm9uZmluaXRlXzcgPSAwIiAib3JpZ2luYWwiIH0gfSAqLworICB9CisK KyAgeworICAgIHZvbGF0aWxlIGludCBub25maW5pdGVfODsKKyAgICBub25m aW5pdGVfOCA9IChmbG9hdCkgeCA8PSAtSU5GSU5JVFk7CisgICAgLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJub25maW5pdGVfOCA9IDAiICJv cmlnaW5hbCIgfSB9ICovCisgIH0KKworI2RlZmluZSBRTkFOIF9fYnVpbHRp bl9uYW5mICgiMCIpCisKKyAgeworICAgIHZvbGF0aWxlIGludCBub25maW5p dGVfOTsKKyAgICBub25maW5pdGVfOSA9IChmbG9hdCkgeCA+IFFOQU47Cisg ICAgLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJub25maW5pdGVf OSA9IDAiICJvcmlnaW5hbCIgfSB9ICovCisgIH0KKworICB7CisgICAgdm9s YXRpbGUgaW50IG5vbmZpbml0ZV8xMDsKKyAgICBub25maW5pdGVfMTAgPSAo ZmxvYXQpIHggPj0gUU5BTjsKKyAgICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAgIm5vbmZpbml0ZV8xMCA9IDAiICJvcmlnaW5hbCIgfSB9ICov CisgIH0KKworICB7CisgICAgdm9sYXRpbGUgaW50IG5vbmZpbml0ZV8xMTsK KyAgICBub25maW5pdGVfMTEgPSAoZmxvYXQpIHggPCBRTkFOOworICAgIC8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAibm9uZmluaXRlXzExID0g MCIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGls ZSBpbnQgbm9uZmluaXRlXzEyOworICAgIG5vbmZpbml0ZV8xMiA9IChmbG9h dCkgeCA8PSBRTkFOOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAibm9uZmluaXRlXzEyID0gMCIgIm9yaWdpbmFsIiB9IH0gKi8KKyAg fQorCisgIHsKKyAgICB2b2xhdGlsZSBpbnQgbm9uZmluaXRlXzEzOworICAg IG5vbmZpbml0ZV8xMyA9IChmbG9hdCkgeCA9PSBRTkFOOworICAgIC8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAibm9uZmluaXRlXzEzID0gMCIg Im9yaWdpbmFsIiB9IH0gKi8KKyAgfQorCisgIHsKKyAgICB2b2xhdGlsZSBp bnQgbm9uZmluaXRlXzE0OworICAgIG5vbmZpbml0ZV8xNCA9IChmbG9hdCkg eCAhPSBRTkFOOworICAgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cCAibm9uZmluaXRlXzE0ID0gMSIgIm9yaWdpbmFsIiB9IH0gKi8KKyAgfQor fQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJcXChm bG9hdFxcKSIgIm9yaWdpbmFsIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC1ub3QgIlxcKGRvdWJsZVxcKSIgIm9yaWdpbmFsIiB9 IH0gKi8KZGlmZiAtcnVwTiAteCAnKi5naXQqJyBnY2MvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vcHI1NzM3MS0yLmMgZ2NjLTU3MzcxL2djYy90ZXN0 c3VpdGUvYy1jKystY29tbW9uL3ByNTczNzEtMi5jCi0tLSBnY2MvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1NzM3MS0yLmMJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIGdjYy01NzM3MS9nY2MvdGVz dHN1aXRlL2MtYysrLWNvbW1vbi9wcjU3MzcxLTIuYwkyMDE3LTA3LTA2IDE5 OjMwOjA2LjAwMDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDE3IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTyAtZmR1 bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8KKworLyogV2UgY2FuIG5vdCBnZXQg cmlkIG9mIGNvbXBhcmlzb24gaW4gdGVzdHMgYmVsb3cgYmVjYXVzZSBvZgor ICAgcG90ZW50aWFsIGluZXhhY3QgZXhjZXB0aW9uLgorCisgICBUT0RPOiBl bmFibGUgd2hlbiAtZm5vLXRyYXBwaW5nLW1hdGguICAqLworCitpbnQgZm9v MShpbnQgeCkgeworICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAg IlxcKGZsb2F0XFwpIiAib3B0aW1pemVkIiB9IH0gKi8KKyAgcmV0dXJuIChm bG9hdCkgeCAhPSAwOworfQorCitpbnQgZm9vMihsb25nIGxvbmcgeCkgewor ICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIlxcKGRvdWJsZVxc KSIgIm9wdGltaXplZCIgfSB9ICovCisgIHJldHVybiAoZG91YmxlKSB4ICE9 IDA7Cit9CmRpZmYgLXJ1cE4gLXggJyouZ2l0KicgZ2NjL2djYy90ZXN0c3Vp dGUvYy1jKystY29tbW9uL3ByNTczNzEtMy5jIGdjYy01NzM3MS9nY2MvdGVz dHN1aXRlL2MtYysrLWNvbW1vbi9wcjU3MzcxLTMuYwotLS0gZ2NjL2djYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTczNzEtMy5jCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKyBnY2MtNTczNzEvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1NzM3MS0zLmMJMjAxNy0wNy0wNiAx OToyOTo1NS4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwxMyBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLWZk dW1wLXRyZWUtb3B0aW1pemVkIiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZm ZWN0aXZlLXRhcmdldCBpbnQxMjggfSAqLworCisvKiBXZSBjYW4gbm90IGdl dCByaWQgb2YgY29tcGFyaXNvbiBpbiB0ZXN0cyBiZWxvdyBiZWNhdXNlIG9m CisgICBwb3RlbnRpYWwgb3ZlcmZsb3cgZXhjZXB0aW9uLgorCisgICBUT0RP OiBlbmFibGUgd2hlbiAtZm5vLXRyYXBwaW5nLW1hdGguICAqLworCitpbnQg Zm9vKF9faW50MTI4X3QgeCkgeworICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAgIlxcKGZsb2F0XFwpIiAib3B0aW1pemVkIiB9IH0gKi8KKyAg cmV0dXJuIChmbG9hdCkgeCAhPSAwOworfQpkaWZmIC1ydXBOIC14ICcqLmdp dConIGdjYy9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjU3MzcxLTQu YyBnY2MtNTczNzEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1NzM3 MS00LmMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjU3 MzcxLTQuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysgZ2NjLTU3MzcxL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTcz NzEtNC5jCTIwMTctMDctMDcgMjM6MTA6MjguMDAwMDAwMDAwICswMjAwCkBA IC0wLDAgKzEsMTIgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1PIC1mc2lnbmFsaW5nLW5hbnMgLWZkdW1wLXRyZWUt b3B0aW1pemVkIiB9ICovCisKKy8qIFdlIGNhbiBub3QgZ2V0IHJpZCBvZiBj b21wYXJpc29uIGluIHRlc3RzIGJlbG93IGJlY2F1c2Ugb2YKKyAgIHNpZ25h bGxpbmcgTmFOIGV4Y2VwdGlvbi4KKworICAgVE9ETzogZW5hYmxlIHdoZW4g LWZuby10cmFwcGluZy1tYXRoLiAgKi8KKworaW50IGZvbyh1bnNpZ25lZCBz aG9ydCB4KSB7CisgIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAi XFwoZmxvYXRcXCkiICJvcHRpbWl6ZWQiIH0gfSAqLworICByZXR1cm4gKGZs b2F0KSB4ICE9IF9fYnVpbHRpbl9uYW5zZiAoIjAiKTsKK30KZGlmZiAtcnVw TiAteCAnKi5naXQqJyBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1NzM3 MS01LmMgZ2NjLTU3MzcxL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNTczNzEt NS5jCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1NzM3MS01LmMJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIGdjYy01 NzM3MS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjU3MzcxLTUuYwkyMDE3LTA3 LTA2IDE5OjI5OjU4LjAwMDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDEwIEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICIt TyAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8KKy8qIHsgZGctcmVxdWly ZS1lZmZlY3RpdmUtdGFyZ2V0IGRmcCB9ICovCisKKy8qIFdlIGRvIG5vdCBz dXBwb3J0IERGUHMuICAqLworCitpbnQgZm9vKHNob3J0IHgpIHsKKyAgLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJcXChfRGVjaW1hbDMyXFwp IiAib3B0aW1pemVkIiB9IH0gKi8KKyAgcmV0dXJuIChfRGVjaW1hbDMyKSB4 ICE9IDA7Cit9Cg== --94eb2c094470156c060553d25a80--