From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24445 invoked by alias); 8 Apr 2002 08:56:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 24394 invoked by uid 71); 8 Apr 2002 08:56:00 -0000 Resent-Date: 8 Apr 2002 08:56:00 -0000 Resent-Message-ID: <20020408085600.24393.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, tm@kloo.net, jh@suse.cz Resent-Reply-To: gcc-gnats@gcc.gnu.org, NIIBE Yutaka Received:(qmail 2087 invoked by uid 61); 8 Apr 2002 08:49:22 -0000 Message-Id:<20020408084922.2083.qmail@sources.redhat.com> Date: Mon, 08 Apr 2002 01:56:00 -0000 From: NIIBE Yutaka Reply-To: NIIBE Yutaka To: gcc-gnats@gcc.gnu.org Cc: tm@kloo.net, jh@suse.cz X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify:tm@kloo.net,jh@suse.cz Subject: bootstrap/6225: reload1.c failure for sh-elf. Bootstrap failure on sh4-unknown-linux-gnu X-SW-Source: 2002-04/txt/msg00470.txt.bz2 List-Id: >Number: 6225 >Category: bootstrap >Synopsis: reload1.c failure for sh-elf. Bootstrap failure on sh4-unknown-linux-gnu >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Apr 08 01:56:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: NIIBE Yutaka >Release: 3.1 20020401 (prerelease) >Organization: >Environment: (1) host: i386-linux, target: sh-elf (2) host=target: sh4-linux >Description: real.c miscompiles with -O2. It is problem of reload1.c(merge_assigned_reloads). This issue has been reported(with fix) by Jan Hubicka 2001-08, and mentioned by Toshi Morita 2001-12. But not fixed. >How-To-Repeat: Compile real.c. >Fix: Handle the case of RELOAD_FOR_OUTPUT_ADDRESS. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="g1002" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="g1002" MjAwMi0wNC0wOCAgTklJQkUgWXV0YWthICA8Z25paWJlQG0xN24ub3JnPgoKCSogcmVsb2FkMS5j IChtZXJnZV9hc3NpZ25lZF9yZWxvYWRzKTogRXhjbHVkZSB0aGUgY2FzZSBvZgoJUkVMT0FEX0ZP Ul9PVVRQVVRfQUREUkVTUy4KCkluZGV4OiBnY2MvcmVsb2FkMS5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvZ2NjL2djYy9nY2MvcmVsb2FkMS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEu MTAwMS4yCmRpZmYgLWMgLTMgLXAgLXIxLjEuMTAwMS4yIHJlbG9hZDEuYwoqKiogZ2NjL3JlbG9h ZDEuYwkyMDAyLzA0LzAzIDA5OjM1OjQwCTEuMS4xMDAxLjIKLS0tIGdjYy9yZWxvYWQxLmMJMjAw Mi8wNC8wOCAwODoyNTozNwoqKioqKioqKioqKioqKiogbWVyZ2VfYXNzaWduZWRfcmVsb2FkcyAo aW5zbikKKioqIDYwOTEsNjA5NiAqKioqCi0tLSA2MDkxLDYwOTcgLS0tLQogIAkgICAgZm9yIChq ID0gMDsgaiA8IG5fcmVsb2FkczsgaisrKQogIAkgICAgICBpZiAocmxkW2pdLmluICE9IDAKICAJ CSAgJiYgcmxkW2pdLndoZW5fbmVlZGVkICE9IFJFTE9BRF9PVEhFUgorIAkJICAmJiBybGRbal0u d2hlbl9uZWVkZWQgIT0gUkVMT0FEX0ZPUl9PVVRQVVRfQUREUkVTUwogIAkJICAmJiByZWdfb3Zl cmxhcF9tZW50aW9uZWRfZm9yX3JlbG9hZF9wIChybGRbal0uaW4sCiAgCQkJCQkJCSBybGRbaV0u aW4pKQogIAkJcmxkW2pdLndoZW5fbmVlZGVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBtaW5pbXVtIHZlcnNpb24gb2YgcmVhbC5jCmludCBybmRwcmMgPSAoKCg2 ICszKS00KSoxNik7CgpleHRlcm4gY29uc3QgY2hhciBfaGV4X3ZhbHVlWzI1Nl07CgplbnVtIHsK CiAgX3NjaF9pc2JsYW5rID0gMHgwMDAxLAogIF9zY2hfaXNjbnRybCA9IDB4MDAwMiwKICBfc2No X2lzZGlnaXQgPSAweDAwMDQsCiAgX3NjaF9pc2xvd2VyID0gMHgwMDA4LAogIF9zY2hfaXNwcmlu dCA9IDB4MDAxMCwKICBfc2NoX2lzcHVuY3QgPSAweDAwMjAsCiAgX3NjaF9pc3NwYWNlID0gMHgw MDQwLAogIF9zY2hfaXN1cHBlciA9IDB4MDA4MCwKICBfc2NoX2lzeGRpZ2l0ID0gMHgwMTAwLAoK CiAgX3NjaF9pc2lkc3QgPSAweDAyMDAsCiAgX3NjaF9pc3ZzcCA9IDB4MDQwMCwKICBfc2NoX2lz bnZzcCA9IDB4MDgwMCwKCgogIF9zY2hfaXNhbHBoYSA9IF9zY2hfaXN1cHBlcnxfc2NoX2lzbG93 ZXIsCiAgX3NjaF9pc2FsbnVtID0gX3NjaF9pc2FscGhhfF9zY2hfaXNkaWdpdCwKICBfc2NoX2lz aWRudW0gPSBfc2NoX2lzaWRzdHxfc2NoX2lzZGlnaXQsCiAgX3NjaF9pc2dyYXBoID0gX3NjaF9p c2FsbnVtfF9zY2hfaXNwdW5jdCwKICBfc2NoX2lzY3Bwc3AgPSBfc2NoX2lzdnNwfF9zY2hfaXNu dnNwLAogIF9zY2hfaXNiYXNpYyA9IF9zY2hfaXNwcmludHxfc2NoX2lzY3Bwc3AKCn07CgpleHRl cm4gY29uc3QgdW5zaWduZWQgc2hvcnQgX3NjaF9pc3RhYmxlWzI1Nl07CgpzdGF0aWMgY29uc3Qg dW5zaWduZWQgc2hvcnQgZXRlbnNbMTIgKyAxXVs2XSA9CnsKICB7MHhjOTRjLCAweDk3OWEsIDB4 OGEyMCwgMHg1MjAyLCAweGM0NjAsIDB4NzUyNSx9LAogIHsweGE3NGQsIDB4NWRlNCwgMHhjNTNk LCAweDNiNWQsIDB4OWU4YiwgMHg1YTkyLH0sCiAgezB4NjUwZCwgMHgwYzE3LCAweDgxNzUsIDB4 NzU4NiwgMHhjOTc2LCAweDRkNDgsfSwKICB7MHhjYzY1LCAweDkxYzYsIDB4YTYwZSwgMHhhMGFl LCAweGUzMTksIDB4NDZhMyx9LAogIHsweGRkYmMsIDB4ZGU4ZCwgMHg5ZGY5LCAweGViZmIsIDB4 YWE3ZSwgMHg0MzUxLH0sCiAgezB4YzY2ZiwgMHg4Y2RmLCAweDgwZTksIDB4NDdjOSwgMHg5M2Jh LCAweDQxYTgsfSwKICB7MHgzY2JmLCAweGE2ZDUsIDB4ZmZjZiwgMHgxZjQ5LCAweGMyNzgsIDB4 NDBkMyx9LAogIHsweGYwMjAsIDB4YjU5ZCwgMHgyYjcwLCAweGFkYTgsIDB4OWRjNSwgMHg0MDY5 LH0sCiAgezB4MDAwMCwgMHgwMDAwLCAweDA0MDAsIDB4YzliZiwgMHg4ZTFiLCAweDQwMzQsfSwK ICB7MHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgyMDAwLCAweGJlYmMsIDB4NDAxOSx9LAogIHsw eDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4OWM0MCwgMHg0MDBjLH0sCiAgezB4MDAw MCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHhjODAwLCAweDQwMDUsfSwKICB7MHgwMDAwLCAw eDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweGEwMDAsIDB4NDAwMix9LAp9OwoKZXh0ZXJuIGNvbnN0 IHVuc2lnbmVkIHNob3J0IGV6ZXJvWzZdLCBlaGFsZls2XSwgZW9uZVs2XSwgZXR3b1s2XTsKCnN0 YXRpYyB2b2lkCmFzY3RvZWcgKHNzLCB5LCBvcHJlYykKICAgICBjb25zdCBjaGFyICpzczsKICAg ICB1bnNpZ25lZCBzaG9ydCAqeTsKICAgICBpbnQgb3ByZWM7CnsKICB1bnNpZ25lZCBzaG9ydCB5 eVsoNiArMyldLCB4dFsoNiArMyldLCB0dFsoNiArMyldOwogIGludCBlc2lnbiwgZGVjZmxnLCBz Z25mbGcsIG5leHAsIGV4cCwgcHJlYywgbG9zdDsKICBpbnQgaSwgaywgdHJhaWwsIGMsIHJuZHNh djsKICBpbnQgbGV4cDsKICB1bnNpZ25lZCBzaG9ydCBuc2lnbjsKICBjaGFyICpzcCwgKnMsICps c3RyOwogIGludCBiYXNlID0gMTA7CgoKICBsc3RyID0gKGNoYXIgKikgX19idWlsdGluX2FsbG9j YShzdHJsZW4gKHNzKSArIDEpOwoKICB3aGlsZSAoKnNzID09ICcgJykKICAgICsrc3M7CgogIHNw ID0gbHN0cjsKICB3aGlsZSAoKCpzcCsrID0gKnNzKyspICE9ICdcMCcpCiAgICA7CiAgcyA9IGxz dHI7CgogIGlmIChzWzBdID09ICcwJyAmJiAoc1sxXSA9PSAneCcgfHwgc1sxXSA9PSAnWCcpKQog ICAgewogICAgICBiYXNlID0gMTY7CiAgICAgIHMgKz0gMjsKICAgIH0KCiAgcm5kc2F2ID0gcm5k cHJjOwogIHJuZHByYyA9ICgoKDYgKzMpLTQpKjE2KTsKICBsb3N0ID0gMDsKICBuc2lnbiA9IDA7 CiAgZGVjZmxnID0gMDsKICBzZ25mbGcgPSAwOwogIG5leHAgPSAwOwogIGV4cCA9IDA7CiAgcHJl YyA9IDA7CiAgZWNsZWF6ICh5eSk7CiAgdHJhaWwgPSAwOwoKIG54dGNvbToKICBrID0gKF9oZXhf dmFsdWVbKHVuc2lnbmVkIGNoYXIpICgqcyldKTsKICBpZiAoKGsgPj0gMCkgJiYgKGsgPCBiYXNl KSkKICAgIHsKCiAgICAgIGlmICgocHJlYyA9PSAwKSAmJiAoZGVjZmxnID09IDApICYmIChrID09 IDApKQogICAgICAgIGdvdG8gZG9uY2hyOwoKICAgICAgaWYgKCh0cmFpbCA9PSAwKSAmJiAoZGVj ZmxnICE9IDApKQogICAgICAgIHsKICAgICAgICAgIHNwID0gczsKICAgICAgICAgIHdoaWxlICgo X3NjaF9pc3RhYmxlWygqc3ApICYgMHhmZl0gJiAodW5zaWduZWQgc2hvcnQpKF9zY2hfaXNkaWdp dCkpIHx8IChiYXNlID09IDE2ICYmIChfc2NoX2lzdGFibGVbKCpzcCkgJiAweGZmXSAmICh1bnNp Z25lZCBzaG9ydCkoX3NjaF9pc3hkaWdpdCkpKSkKICAgICAgICAgICAgKytzcDsKCiAgICAgICAg ICBjID0gKnNwICYgMHg3ZjsKICAgICAgICAgIGlmICgoYmFzZSAhPSAxMCB8fCAoKGMgIT0gJ2Un KSAmJiAoYyAhPSAnRScpKSkKICAgICAgICAgICAgICAmJiAoYmFzZSAhPSAxNiB8fCAoKGMgIT0g J3AnKSAmJiAoYyAhPSAnUCcpKSkKICAgICAgICAgICAgICAmJiAoYyAhPSAnXDAnKQogICAgICAg ICAgICAgICYmIChjICE9ICdcbicpICYmIChjICE9ICdccicpICYmIChjICE9ICcgJykKICAgICAg ICAgICAgICAmJiAoYyAhPSAnLCcpKQogICAgICAgICAgICBnb3RvIHVuZXhwZWN0ZWRfY2hhcl9l cnJvcjsKICAgICAgICAgIC0tc3A7CiAgICAgICAgICB3aGlsZSAoKnNwID09ICcwJykKICAgICAg ICAgICAgKnNwLS0gPSAneic7CiAgICAgICAgICB0cmFpbCA9IDE7CiAgICAgICAgICBpZiAoKnMg PT0gJ3onKQogICAgICAgICAgICBnb3RvIGRvbmNocjsKICAgICAgICB9CgoKCgoKCiAgICAgIGlm ICh5eVsyXSA9PSAwKQogICAgICAgIHsKICAgICAgICAgIGlmIChiYXNlID09IDE2KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgaWYgKGRlY2ZsZykKICAgICAgICAgICAgICAgIG5leHAgKz0g NDsKCiAgICAgICAgICAgICAgZXNodXAxICh5eSk7CiAgICAgICAgICAgICAgZXNodXAxICh5eSk7 CiAgICAgICAgICAgICAgZXNodXAxICh5eSk7CiAgICAgICAgICAgICAgZXNodXAxICh5eSk7CiAg ICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgIGlm IChkZWNmbGcpCiAgICAgICAgICAgICAgICBuZXhwICs9IDE7CgogICAgICAgICAgICAgIGVzaHVw MSAoeXkpOwogICAgICAgICAgICAgIGVtb3Z6ICh5eSwgeHQpOwogICAgICAgICAgICAgIGVzaHVw MSAoeHQpOwogICAgICAgICAgICAgIGVzaHVwMSAoeHQpOwogICAgICAgICAgICAgIGVhZGRtICh4 dCwgeXkpOwogICAgICAgICAgICB9CgogICAgICAgICAgZWNsZWF6ICh4dCk7CiAgICAgICAgICB4 dFsoNiArMykgLSAyXSA9ICh1bnNpZ25lZCBzaG9ydCkgazsKICAgICAgICAgIGVhZGRtICh4dCwg eXkpOwogICAgICAgIH0KICAgICAgZWxzZQogICAgICAgIHsKCiAgICAgICAgICBsb3N0IHw9IGs7 CgogICAgICAgICAgaWYgKGRlY2ZsZyA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg aWYgKGJhc2UgPT0gMTApCiAgICAgICAgICAgICAgICBuZXhwIC09IDE7CiAgICAgICAgICAgICAg ZWxzZQogICAgICAgICAgICAgICAgbmV4cCAtPSA0OwogICAgICAgICAgICB9CiAgICAgICAgfQog ICAgICBwcmVjICs9IDE7CiAgICAgIGdvdG8gZG9uY2hyOwogICAgfQoKICBzd2l0Y2ggKCpzKQog ICAgewogICAgY2FzZSAneic6CiAgICAgIGJyZWFrOwogICAgY2FzZSAnRSc6CiAgICBjYXNlICdl JzoKICAgIGNhc2UgJ1AnOgogICAgY2FzZSAncCc6CiAgICAgIGdvdG8gZXhwbnQ7CiAgICBjYXNl ICcuJzoKICAgICAgaWYgKGRlY2ZsZykKICAgICAgICBnb3RvIHVuZXhwZWN0ZWRfY2hhcl9lcnJv cjsKICAgICAgKytkZWNmbGc7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnLSc6CiAgICAgIG5zaWdu ID0gMHhmZmZmOwogICAgICBpZiAoc2duZmxnKQogICAgICAgIGdvdG8gdW5leHBlY3RlZF9jaGFy X2Vycm9yOwogICAgICArK3NnbmZsZzsKICAgICAgYnJlYWs7CiAgICBjYXNlICcrJzoKICAgICAg aWYgKHNnbmZsZykKICAgICAgICBnb3RvIHVuZXhwZWN0ZWRfY2hhcl9lcnJvcjsKICAgICAgKytz Z25mbGc7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnLCc6CiAgICBjYXNlICcgJzoKICAgIGNhc2Ug J1wwJzoKICAgIGNhc2UgJ1xuJzoKICAgIGNhc2UgJ1xyJzoKICAgICAgZ290byBkYWxkb25lOwog ICAgY2FzZSAnaSc6CiAgICBjYXNlICdJJzoKICAgICAgZ290byBpbmZpbml0ZTsKICAgIGRlZmF1 bHQ6CiAgICB1bmV4cGVjdGVkX2NoYXJfZXJyb3I6CgogICAgICBlaW5hbiAoeXkpOwoKCgoKICAg ICAgZ290byBhZXhpdDsKICAgIH0KIGRvbmNocjoKICArK3M7CiAgZ290byBueHRjb207CgoKIGV4 cG50OgoKICBmb3IgKGsgPSAwOyBrIDwgKDYgKzMpOyBrKyspCiAgICB7CiAgICAgIGlmICh5eVtr XSAhPSAwKQogICAgICAgIGdvdG8gcmVhZF9leHBudDsKICAgIH0KICBnb3RvIGFleGl0OwoKcmVh ZF9leHBudDoKICBlc2lnbiA9IDE7CiAgZXhwID0gMDsKICArK3M7CgogIGlmICgqcyA9PSAnLScp CiAgICB7CiAgICAgIGVzaWduID0gLTE7CiAgICAgICsrczsKICAgIH0KICBpZiAoKnMgPT0gJysn KQogICAgKytzOwogIHdoaWxlICgoX3NjaF9pc3RhYmxlWygqcykgJiAweGZmXSAmICh1bnNpZ25l ZCBzaG9ydCkoX3NjaF9pc2RpZ2l0KSkpCiAgICB7CiAgICAgIGV4cCAqPSAxMDsKICAgICAgZXhw ICs9ICpzKysgLSAnMCc7CiAgICAgIGlmIChleHAgPiA5OTk5OTkpCiAgICAgICAgYnJlYWs7CiAg ICB9CiAgaWYgKGVzaWduIDwgMCkKICAgIGV4cCA9IC1leHA7CiAgaWYgKChleHAgPiA0OTMyKSAm JiAoYmFzZSA9PSAxMCkpCiAgICB7CiBpbmZpbml0ZToKICAgICAgZWNsZWF6ICh5eSk7CiAgICAg IHl5WzFdID0gMHg3ZmZmOwogICAgICBnb3RvIGFleGl0OwogICAgfQogIGlmICgoZXhwIDwgLTQ5 NTYpICYmIChiYXNlID09IDEwKSkKICAgIHsKIHplcm86CiAgICAgIGVjbGVheiAoeXkpOwogICAg ICBnb3RvIGFleGl0OwogICAgfQoKIGRhbGRvbmU6CiAgaWYgKGJhc2UgPT0gMTYpCiAgICB7Cgog ICAgICBpZiAoKGsgPSBlbm9ybWx6ICh5eSkpID4gKCgoNiArMyktNCkqMTYpKQogICAgICAgIHsK ICAgICAgICAgIGVjbGVheiAoeXkpOwogICAgICAgICAgZ290byBhZXhpdDsKICAgICAgICB9CgoK ICAgICAgbGV4cCA9ICgoMHgzZmZmKSAtIDEgKyAoKCg2ICszKS00KSoxNikpIC0gayArIHl5WzFd ICsgZXhwIC0gbmV4cDsKICAgICAgaWYgKGxleHAgPiAweDdmZmYpCiAgICAgICAgZ290byBpbmZp bml0ZTsKICAgICAgaWYgKGxleHAgPCAwKQogICAgICAgIGdvdG8gemVybzsKICAgICAgeXlbMV0g PSBsZXhwOwogICAgICBnb3RvIGV4cGRvbjsKICAgIH0KCiAgbmV4cCA9IGV4cCAtIG5leHA7Cgog IHdoaWxlICgobmV4cCA+IDApICYmICh5eVsyXSA9PSAwKSkKICAgIHsKICAgICAgZW1vdnogKHl5 LCB4dCk7CiAgICAgIGVzaHVwMSAoeHQpOwogICAgICBlc2h1cDEgKHh0KTsKICAgICAgZWFkZG0g KHl5LCB4dCk7CiAgICAgIGVzaHVwMSAoeHQpOwogICAgICBpZiAoeHRbMl0gIT0gMCkKICAgICAg ICBicmVhazsKICAgICAgbmV4cCAtPSAxOwogICAgICBlbW92eiAoeHQsIHl5KTsKICAgIH0KICBp ZiAoKGsgPSBlbm9ybWx6ICh5eSkpID4gKCgoNiArMyktNCkqMTYpKQogICAgewogICAgICBlY2xl YXogKHl5KTsKICAgICAgZ290byBhZXhpdDsKICAgIH0KICBsZXhwID0gKCgweDNmZmYpIC0gMSAr ICgoKDYgKzMpLTQpKjE2KSkgLSBrOwogIGVtZG5vcm0gKHl5LCBsb3N0LCAwLCBsZXhwLCA2NCk7 CiAgbG9zdCA9IDA7CiAgbGV4cCA9IHl5WzFdOwogIGlmIChuZXhwID09IDApCiAgICB7CiAgICAg IGsgPSAwOwogICAgICBnb3RvIGV4cGRvbjsKICAgIH0KICBlc2lnbiA9IDE7CiAgaWYgKG5leHAg PCAwKQogICAgewogICAgICBuZXhwID0gLW5leHA7CiAgICAgIGVzaWduID0gLTE7CiAgICAgIGlm IChuZXhwID4gNDA5NikKICAgICAgICB7CgogICAgICAgICAgZW1vdmkgKGV0ZW5zWzBdLCB0dCk7 CiAgICAgICAgICBsZXhwIC09IHR0WzFdOwogICAgICAgICAgayA9IGVkaXZtICh0dCwgeXkpOwog ICAgICAgICAgbGV4cCArPSAoMHgzZmZmKTsKICAgICAgICAgIG5leHAgLT0gNDA5NjsKICAgICAg ICB9CiAgICB9CiAgZW1vdiAoZW9uZSwgeHQpOwogIGV4cCA9IDE7CiAgaSA9IDEyOwogIGRvCiAg ICB7CiAgICAgIGlmIChleHAgJiBuZXhwKQogICAgICAgIGVtdWwgKGV0ZW5zW2ldLCB4dCwgeHQp OwogICAgICBpLS07CiAgICAgIGV4cCA9IGV4cCArIGV4cDsKICAgIH0KICB3aGlsZSAoZXhwIDw9 IDQwOTYpOwoKICBlbW92aSAoeHQsIHR0KTsKICBpZiAoZXNpZ24gPCAwKQogICAgewogICAgICBs ZXhwIC09IHR0WzFdOwogICAgICBrID0gZWRpdm0gKHR0LCB5eSk7CiAgICAgIGxleHAgKz0gKDB4 M2ZmZik7CiAgICB9CiAgZWxzZQogICAgewogICAgICBsZXhwICs9IHR0WzFdOwogICAgICBrID0g ZW11bG0gKHR0LCB5eSk7CiAgICAgIGxleHAgLT0gKDB4M2ZmZikgLSAxOwogICAgfQogIGxvc3Qg PSBrOwoKIGV4cGRvbjoKCgogIGlmIChvcHJlYyA9PSA1MykKICAgIGxleHAgLT0gKDB4M2ZmZikg LSAweDNmZjsKICBlbHNlIGlmIChvcHJlYyA9PSAyNCkKICAgIGxleHAgLT0gKDB4M2ZmZikgLSAw MTc3OwoKCgoKCgogIHJuZHByYyA9IG9wcmVjOwogIGVtZG5vcm0gKHl5LCBsb3N0LCAwLCBsZXhw LCA2NCk7CgogYWV4aXQ6CgogIHJuZHByYyA9IHJuZHNhdjsKICB5eVswXSA9IG5zaWduOwogIHN3 aXRjaCAob3ByZWMpCiAgICB7CiAgICBjYXNlIDUzOgogICAgICB0b2U1MyAoeXksIHkpOwogICAg ICBicmVhazsKICAgIGNhc2UgMjQ6CiAgICAgIHRvZTI0ICh5eSwgeSk7CiAgICAgIGJyZWFrOwog ICAgY2FzZSA2NDoKICAgICAgdG9lNjQgKHl5LCB5KTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAx MTM6CiAgICAgIHRvZTExMyAoeXksIHkpOwogICAgICBicmVhazsKCiAgICBjYXNlICgoKDYgKzMp LTQpKjE2KToKICAgICAgZW1vdm8gKHl5LCB5KTsKICAgICAgYnJlYWs7CiAgICB9Cn0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKUHJvYmxlbSBvY2N1cnMgZm9yIHRoZSBleHByZXNzaW9uOgog IG5leHAgPSBleHAgLSBuZXhwOwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBtaXNjb21waWxl ZCBvdXRwdXQKWy4uLl0KLkwyMjI6CgkubG9jIDEgMjg4IDAKCW1vdgkjNjQscjUKCWFkZAlyMTQs cjUKCW1vdi5sCUAoOCxyNSkscjYKCW1vdi5sCUAoMTIscjUpLHI1CglzdWIJcjUscjYKCW1vdi5s CXI2LEAoOCxyNSkgIDwtLS0tLS0tLSBXUk9ORwpbLi4uXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tIGZpeGVkIChjb3JyZWN0KSBvdXRwdXQKWy4uLl0KLkwyMjI6CgkubG9jIDEgMjg4IDAKCW1v dgkjNjQscjUKCWFkZAlyMTQscjUKCW1vdi5sCUAoMTIscjUpLHI2Cgltb3YJIzcyLHIwCgltb3Yu bAlAKDgscjUpLHI1CglzdWIJcjUscjYKCW1vdi5sCXI2LEAocjAscjE0KQpbLi4uXQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0t