From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26320 invoked by alias); 29 Nov 2001 05:36:02 -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 26295 invoked by uid 71); 29 Nov 2001 05:36:01 -0000 Resent-Date: 29 Nov 2001 05:36:01 -0000 Resent-Message-ID: <20011129053601.26294.qmail@sourceware.cygnus.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 Resent-Reply-To: gcc-gnats@gcc.gnu.org, MRustad@brecis.com Received:(qmail 25273 invoked by uid 61); 29 Nov 2001 05:31:35 -0000 Message-Id:<20011129053135.25271.qmail@sourceware.cygnus.com> Date: Wed, 21 Nov 2001 20:55:00 -0000 From: MRustad@brecis.com Reply-To: MRustad@brecis.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.2 (1.1.1.1.2.21) Subject: target/4965: Segmentation fault building mipsisa32-elf X-SW-Source: 2001-11/txt/msg00705.txt.bz2 List-Id: >Number: 4965 >Category: target >Synopsis: Segmentation fault building mipsisa32-elf >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Nov 28 21:36:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Mark Rustad >Release: CVS current 2001-11-28 >Organization: >Environment: OpenBSD 2.9 i386 host, mipsisa32-elf target >Description: Segmentation fault attempting to build cross compiler for mips32isa-elf. Fault occurs while compiling fp-bit.c to produce _pack_sf.o. Preprocessor output file attached. >How-To-Repeat: Build cross compiler for target mipsisa32-elf. I also used the binutils-011128 snapshot in this build. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="fp-bit.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fp-bit.i" IyAxICJmcC1iaXQuYyIKIyAxICI8YnVpbHRpbj4iCiMgMSAiPGNvbW1hbmQgbGluZT4iCiMgMSAi ZnAtYml0LmMiCiMgNTEgImZwLWJpdC5jIgojIDEgInRjb25maWcuaCIgMQoKIyAxICIuLi8uLi9j dnMtc3JjL2djYy9pbmNsdWRlL2Fuc2lkZWNsLmgiIDEKIyAzICJ0Y29uZmlnLmgiIDIKIyAxICIu Li8uLi9jdnMtc3JjL2djYy9nY2MvY29uZmlnL21pcHMvaXNhMzI2NC5oIiAxCiMgMzggIi4uLy4u L2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9pc2EzMjY0LmgiCiMgMSAiLi4vLi4vY3ZzLXNy Yy9nY2MvZ2NjL2NvbmZpZy9taXBzL2VsZi5oIiAxCiMgMzIgIi4uLy4uL2N2cy1zcmMvZ2NjL2dj Yy9jb25maWcvbWlwcy9lbGYuaCIKIyAxICIuLi8uLi9jdnMtc3JjL2djYy9nY2MvY29uZmlnL2dv ZmFzdC5oIiAxCiMgMzMgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9lbGYuaCIg MgojIDEgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9lY29mZi5oIiAxCiMgMjUg Ii4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9lY29mZi5oIgojIDEgIi4uLy4uL2N2 cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9taXBzLmgiIDEKIyAyOSAiLi4vLi4vY3ZzLXNyYy9n Y2MvZ2NjL2NvbmZpZy9taXBzL21pcHMuaCIKZXh0ZXJuIGNoYXIgKmFzbV9maWxlX25hbWU7CmV4 dGVybiBjaGFyIGNhbGxfdXNlZF9yZWdzW107CmV4dGVybiBpbnQgbWF5X2NhbGxfYWxsb2NhOwpl eHRlcm4gY2hhciAqKnNhdmVfYXJndjsKZXh0ZXJuIGludCB0YXJnZXRfZmxhZ3M7CgoKCgplbnVt IGNtcF90eXBlIHsKICBDTVBfU0ksCiAgQ01QX0RJLAogIENNUF9TRiwKICBDTVBfREYsCiAgQ01Q X01BWAp9OwoKCmVudW0gZGVsYXlfdHlwZSB7CiAgREVMQVlfTk9ORSwKICBERUxBWV9MT0FELAog IERFTEFZX0hJTE8sCiAgREVMQVlfRkNNUAp9OwoKCgoKCgplbnVtIHByb2Nlc3Nvcl90eXBlIHsK ICBQUk9DRVNTT1JfREVGQVVMVCwKICBQUk9DRVNTT1JfUjMwMDAsCiAgUFJPQ0VTU09SX1IzOTAw LAogIFBST0NFU1NPUl9SNjAwMCwKICBQUk9DRVNTT1JfUjQwMDAsCiAgUFJPQ0VTU09SX1I0MTAw LAogIFBST0NFU1NPUl9SNDMwMCwKICBQUk9DRVNTT1JfUjQ2MDAsCiAgUFJPQ0VTU09SX1I0NjUw LAogIFBST0NFU1NPUl9SNTAwMCwKICBQUk9DRVNTT1JfUjgwMDAsCiAgUFJPQ0VTU09SX1I0S0Ms CiAgUFJPQ0VTU09SX1I1S0MsCiAgUFJPQ0VTU09SX1IyMEtDCn07CiMgMTA0ICIuLi8uLi9jdnMt c3JjL2djYy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgplbnVtIG1pcHNfYWJpY2FsbHNfdHlwZSB7 CiAgTUlQU19BQklDQUxMU19OTywKICBNSVBTX0FCSUNBTExTX1lFUwp9OwoKCgoKCgoKZW51bSBi bG9ja19tb3ZlX3R5cGUgewogIEJMT0NLX01PVkVfTk9STUFMLAogIEJMT0NLX01PVkVfTk9UX0xB U1QsCiAgQkxPQ0tfTU9WRV9MQVNUCn07CgpleHRlcm4gY2hhciBtaXBzX3JlZ19uYW1lc1tdWzhd OwpleHRlcm4gY2hhciBtaXBzX3ByaW50X29wZXJhbmRfcHVuY3RbXTsKZXh0ZXJuIGNvbnN0IGNo YXIgKmN1cnJlbnRfZnVuY3Rpb25fZmlsZTsKZXh0ZXJuIGludCBudW1fc291cmNlX2ZpbGVuYW1l czsKZXh0ZXJuIGludCBpbnNpZGVfZnVuY3Rpb247CmV4dGVybiBpbnQgaWdub3JlX2xpbmVfbnVt YmVyOwpleHRlcm4gaW50IGZpbGVfaW5fZnVuY3Rpb25fd2FybmluZzsKZXh0ZXJuIGludCBzZGJf bGFiZWxfY291bnQ7CmV4dGVybiBpbnQgc2RiX2JlZ2luX2Z1bmN0aW9uX2xpbmU7CmV4dGVybiBp bnQgbWlwc19zZWN0aW9uX3RocmVzaG9sZDsKZXh0ZXJuIGludCBnX3N3aXRjaF92YWx1ZTsKZXh0 ZXJuIGludCBnX3N3aXRjaF9zZXQ7CmV4dGVybiBpbnQgc3ltX2xpbmVubzsKZXh0ZXJuIGludCBz ZXRfbm9yZW9yZGVyOwpleHRlcm4gaW50IHNldF9ub21hY3JvOwpleHRlcm4gaW50IHNldF9ub2F0 OwpleHRlcm4gaW50IHNldF92b2xhdGlsZTsKZXh0ZXJuIGludCBtaXBzX2JyYW5jaF9saWtlbHk7 CmV4dGVybiBpbnQgbWlwc19kYnhfcmVnbm9bXTsKZXh0ZXJuIHN0cnVjdCBydHhfZGVmICpicmFu Y2hfY21wWzJdOwpleHRlcm4gZW51bSBjbXBfdHlwZSBicmFuY2hfdHlwZTsKZXh0ZXJuIGVudW0g cHJvY2Vzc29yX3R5cGUgbWlwc19hcmNoOwpleHRlcm4gZW51bSBwcm9jZXNzb3JfdHlwZSBtaXBz X3R1bmU7CmV4dGVybiBlbnVtIG1pcHNfYWJpY2FsbHNfdHlwZSBtaXBzX2FiaWNhbGxzOwpleHRl cm4gaW50IG1pcHNfaXNhOwpleHRlcm4gaW50IG1pcHMxNjsKZXh0ZXJuIGludCBtaXBzMTZfaGFy ZF9mbG9hdDsKZXh0ZXJuIGludCBtaXBzX2VudHJ5OwpleHRlcm4gY29uc3QgY2hhciAqbWlwc19j cHVfc3RyaW5nOwpleHRlcm4gY29uc3QgY2hhciAqbWlwc19hcmNoX3N0cmluZzsKZXh0ZXJuIGNv bnN0IGNoYXIgKm1pcHNfdHVuZV9zdHJpbmc7CmV4dGVybiBjb25zdCBjaGFyICptaXBzX2lzYV9z dHJpbmc7CmV4dGVybiBjb25zdCBjaGFyICptaXBzX2FiaV9zdHJpbmc7CmV4dGVybiBjb25zdCBj aGFyICptaXBzX2VudHJ5X3N0cmluZzsKZXh0ZXJuIGNvbnN0IGNoYXIgKm1pcHNfbm9fbWlwczE2 X3N0cmluZzsKZXh0ZXJuIGNvbnN0IGNoYXIgKm1pcHNfZXhwbGljaXRfdHlwZV9zaXplX3N0cmlu ZzsKZXh0ZXJuIGNvbnN0IGNoYXIgKm1pcHNfY2FjaGVfZmx1c2hfZnVuYzsKZXh0ZXJuIGludCBt aXBzX3NwbGl0X2FkZHJlc3NlczsKZXh0ZXJuIGludCBkc2xvdHNfbG9hZF90b3RhbDsKZXh0ZXJu IGludCBkc2xvdHNfbG9hZF9maWxsZWQ7CmV4dGVybiBpbnQgZHNsb3RzX2p1bXBfdG90YWw7CmV4 dGVybiBpbnQgZHNsb3RzX2p1bXBfZmlsbGVkOwpleHRlcm4gaW50IGRzbG90c19udW1iZXJfbm9w czsKZXh0ZXJuIGludCBudW1fcmVmc1szXTsKZXh0ZXJuIHN0cnVjdCBydHhfZGVmICptaXBzX2xv YWRfcmVnOwpleHRlcm4gc3RydWN0IHJ0eF9kZWYgKm1pcHNfbG9hZF9yZWcyOwpleHRlcm4gc3Ry dWN0IHJ0eF9kZWYgKm1pcHNfbG9hZF9yZWczOwpleHRlcm4gc3RydWN0IHJ0eF9kZWYgKm1pcHNf bG9hZF9yZWc0OwpleHRlcm4gc3RydWN0IHJ0eF9kZWYgKmVtYmVkZGVkX3BpY19mbmFkZHJfcnR4 OwpleHRlcm4gaW50IG1pcHNfc3RyaW5nX2xlbmd0aDsKZXh0ZXJuIHN0cnVjdCBydHhfZGVmICpt aXBzMTZfZ3BfcHNldWRvX3J0eDsKCgpleHRlcm4gdm9pZCByZGF0YV9zZWN0aW9uICh2b2lkKTsK ZXh0ZXJuIHZvaWQgc2RhdGFfc2VjdGlvbiAodm9pZCk7CmV4dGVybiB2b2lkIHNic3Nfc2VjdGlv biAodm9pZCk7CiMgODc0ICIuLi8uLi9jdnMtc3JjL2djYy9nY2MvY29uZmlnL21pcHMvbWlwcy5o IgpleHRlcm4gaW50IG1pcHNfYWJpOwojIDE3ODcgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25m aWcvbWlwcy9taXBzLmgiCmV4dGVybiBjaGFyIG1pcHNfaGFyZF9yZWdub19tb2RlX29rW11bNzZd OwojIDE5MTEgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlwcy9taXBzLmgiCmVudW0g cmVnX2NsYXNzCnsKICBOT19SRUdTLAogIE0xNl9OQV9SRUdTLAogIE0xNl9SRUdTLAogIFRfUkVH LAogIE0xNl9UX1JFR1MsCiAgR1JfUkVHUywKICBGUF9SRUdTLAogIEhJX1JFRywKICBMT19SRUcs CiAgSElMT19SRUcsCiAgTURfUkVHUywKICBISV9BTkRfR1JfUkVHUywKICBMT19BTkRfR1JfUkVH UywKICBISUxPX0FORF9HUl9SRUdTLAogIFNUX1JFR1MsCiAgQUxMX1JFR1MsCiAgTElNX1JFR19D TEFTU0VTCn07CiMgMTk5NyAiLi4vLi4vY3ZzLXNyYy9nY2MvZ2NjL2NvbmZpZy9taXBzL21pcHMu aCIKZXh0ZXJuIGNvbnN0IGVudW0gcmVnX2NsYXNzIG1pcHNfcmVnbm9fdG9fY2xhc3NbXTsKIyAy MDY3ICIuLi8uLi9jdnMtc3JjL2djYy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgpleHRlcm4gZW51 bSByZWdfY2xhc3MgbWlwc19jaGFyX3RvX2NsYXNzW107CiMgMjI4OSAiLi4vLi4vY3ZzLXNyYy9n Y2MvZ2NjL2NvbmZpZy9taXBzL21pcHMuaCIKc3RydWN0IG1pcHNfZnJhbWVfaW5mbwp7CiAgbG9u ZyB0b3RhbF9zaXplOwogIGxvbmcgdmFyX3NpemU7CiAgbG9uZyBhcmdzX3NpemU7CiAgbG9uZyBl eHRyYV9zaXplOwogIGludCBncF9yZWdfc2l6ZTsKICBpbnQgZnBfcmVnX3NpemU7CiAgbG9uZyBt YXNrOwogIGxvbmcgZm1hc2s7CiAgbG9uZyBncF9zYXZlX29mZnNldDsKICBsb25nIGZwX3NhdmVf b2Zmc2V0OwogIGxvbmcgZ3Bfc3Bfb2Zmc2V0OwogIGxvbmcgZnBfc3Bfb2Zmc2V0OwogIGludCBp bml0aWFsaXplZDsKICBpbnQgbnVtX2dwOwogIGludCBudW1fZnA7CiAgbG9uZyBpbnNuc19sZW47 Cn07CgpleHRlcm4gc3RydWN0IG1pcHNfZnJhbWVfaW5mbyBjdXJyZW50X2ZyYW1lX2luZm87CiMg MjYzMSAiLi4vLi4vY3ZzLXNyYy9nY2MvZ2NjL2NvbmZpZy9taXBzL21pcHMuaCIKdHlwZWRlZiBz dHJ1Y3QgbWlwc19hcmdzIHsKICBpbnQgZ3BfcmVnX2ZvdW5kOwogIHVuc2lnbmVkIGludCBhcmdf bnVtYmVyOwogIHVuc2lnbmVkIGludCBhcmdfd29yZHM7CiAgdW5zaWduZWQgaW50IGZwX2FyZ193 b3JkczsKICBpbnQgbGFzdF9hcmdfZnA7CiAgaW50IGZwX2NvZGU7CiAgdW5zaWduZWQgaW50IG51 bV9hZGp1c3RzOwoKCgoKICBpbnQgcHJvdG90eXBlOwogIHN0cnVjdCBydHhfZGVmICphZGp1c3Rb NCoyXTsKfSBDVU1VTEFUSVZFX0FSR1M7CiMgMjYgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25m aWcvbWlwcy9lY29mZi5oIiAyCiMgMzQgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlw cy9lbGYuaCIgMgojIDM5ICIuLi8uLi9jdnMtc3JjL2djYy9nY2MvY29uZmlnL21pcHMvaXNhMzI2 NC5oIiAyCiMgNCAidGNvbmZpZy5oIiAyCiMgMSAiLi4vLi4vY3ZzLXNyYy9nY2MvZ2NjL2NvbmZp Zy9taXBzL2FiaTY0LmgiIDEKIyAxMDIgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvbWlw cy9hYmk2NC5oIgp1bmlvbiB0cmVlX25vZGU7CgpleHRlcm4gc3RydWN0IHJ0eF9kZWYgKm1pcHNf ZnVuY3Rpb25fdmFsdWUgKHVuaW9uIHRyZWVfbm9kZSAqLCB1bmlvbiB0cmVlX25vZGUgKik7CiMg NSAidGNvbmZpZy5oIiAyCiMgMSAiLi4vLi4vY3ZzLXNyYy9nY2MvZ2NjL2RlZmF1bHRzLmgiIDEK IyA2ICJ0Y29uZmlnLmgiIDIKIyA1MiAiZnAtYml0LmMiIDIKIyAxICIuLi8uLi9jdnMtc3JjL2dj Yy9nY2MvY29uZmlnL2ZwLWJpdC5oIiAxCiMgOTAgIi4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25m aWcvZnAtYml0LmgiCnR5cGVkZWYgZmxvYXQgU0Z0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChT RikpKTsKdHlwZWRlZiBmbG9hdCBERnR5cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKERGKSkpOwoK dHlwZWRlZiBpbnQgSEl0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChISSkpKTsKdHlwZWRlZiBp bnQgU0l0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChTSSkpKTsKdHlwZWRlZiBpbnQgREl0eXBl IF9fYXR0cmlidXRlX18gKChtb2RlIChESSkpKTsKCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQg VUhJdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoSEkpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50 IFVTSXR5cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKFNJKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGlu dCBVREl0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChESSkpKTsKIyAxMzAgIi4uLy4uL2N2cy1z cmMvZ2NjL2djYy9jb25maWcvZnAtYml0LmgiCiAgICAgICAgdHlwZWRlZiBVU0l0eXBlIGZyYWN0 eXBlOwogICAgICAgIHR5cGVkZWYgVUhJdHlwZSBoYWxmZnJhY3R5cGU7CiAgICAgICAgdHlwZWRl ZiBTRnR5cGUgRkxPX3R5cGU7CiAgICAgICAgdHlwZWRlZiBTSXR5cGUgaW50ZnJhYzsKIyAyNDkg Ii4uLy4uL2N2cy1zcmMvZ2NjL2djYy9jb25maWcvZnAtYml0LmgiCnR5cGVkZWYgZW51bQp7CiAg Q0xBU1NfU05BTiwKICBDTEFTU19RTkFOLAogIENMQVNTX1pFUk8sCiAgQ0xBU1NfTlVNQkVSLAog IENMQVNTX0lORklOSVRZCn0gZnBfY2xhc3NfdHlwZTsKCnR5cGVkZWYgc3RydWN0CnsKCgoKCgog IGZwX2NsYXNzX3R5cGUgY2xhc3M7CiAgdW5zaWduZWQgaW50IHNpZ247CiAgaW50IG5vcm1hbF9l eHA7CgoKICB1bmlvbgogICAgewogICAgICBmcmFjdHlwZSBsbDsKICAgICAgaGFsZmZyYWN0eXBl IGxbMl07CiAgICB9IGZyYWN0aW9uOwp9IGZwX251bWJlcl90eXBlOwoKdHlwZWRlZiB1bmlvbgp7 CiAgRkxPX3R5cGUgdmFsdWU7CiAgZnJhY3R5cGUgdmFsdWVfcmF3OwojIDMxMyAiLi4vLi4vY3Zz LXNyYy9nY2MvZ2NjL2NvbmZpZy9mcC1iaXQuaCIKfQpGTE9fdW5pb25fdHlwZTsKCgoKCmV4dGVy biBGTE9fdHlwZSBfX3BhY2tfZiAoZnBfbnVtYmVyX3R5cGUgKik7CgoKZXh0ZXJuIHZvaWQgX191 bnBhY2tfZiAoRkxPX3VuaW9uX3R5cGUgKiwgZnBfbnVtYmVyX3R5cGUgKik7CiMgMzM3ICIuLi8u Li9jdnMtc3JjL2djYy9nY2MvY29uZmlnL2ZwLWJpdC5oIgpleHRlcm4gaW50IF9fZnBjbXBfcGFy dHNfZiAoZnBfbnVtYmVyX3R5cGUgKiwgZnBfbnVtYmVyX3R5cGUgKik7CiMgNDAyICIuLi8uLi9j dnMtc3JjL2djYy9nY2MvY29uZmlnL2ZwLWJpdC5oIgpleHRlcm4gREZ0eXBlIF9fbWFrZV9kcCAo ZnBfY2xhc3NfdHlwZSwgdW5zaWduZWQgaW50LCBpbnQsIFVESXR5cGUpOwojIDUzICJmcC1iaXQu YyIgMgojIDEzMSAiZnAtYml0LmMiCmV4dGVybiBjb25zdCBmcF9udW1iZXJfdHlwZSBfX3RoZW5h bl9zZjsKCgoKCl9faW5saW5lX18Kc3RhdGljIGZwX251bWJlcl90eXBlICoKbmFuICh2b2lkKQp7 CgoKICByZXR1cm4gKGZwX251bWJlcl90eXBlICopICgmIF9fdGhlbmFuX3NmKTsKCgoKfQoKX19p bmxpbmVfXwpzdGF0aWMgaW50CmlzbmFuICggZnBfbnVtYmVyX3R5cGUgKiB4KQp7CiAgcmV0dXJu IHgtPmNsYXNzID09IENMQVNTX1NOQU4gfHwgeC0+Y2xhc3MgPT0gQ0xBU1NfUU5BTjsKfQoKX19p bmxpbmVfXwpzdGF0aWMgaW50CmlzaW5mICggZnBfbnVtYmVyX3R5cGUgKiB4KQp7CiAgcmV0dXJu IHgtPmNsYXNzID09IENMQVNTX0lORklOSVRZOwp9CgoKCl9faW5saW5lX18Kc3RhdGljIGludApp c3plcm8gKCBmcF9udW1iZXJfdHlwZSAqIHgpCnsKICByZXR1cm4geC0+Y2xhc3MgPT0gQ0xBU1Nf WkVSTzsKfQoKX19pbmxpbmVfXwpzdGF0aWMgdm9pZApmbGlwX3NpZ24gKCBmcF9udW1iZXJfdHlw ZSAqIHgpCnsKICB4LT5zaWduID0gIXgtPnNpZ247Cn0KCmV4dGVybiBGTE9fdHlwZSBfX3BhY2tf ZiAoIGZwX251bWJlcl90eXBlICogKTsKCgpGTE9fdHlwZQpfX3BhY2tfZiAoIGZwX251bWJlcl90 eXBlICogc3JjKQp7CiAgRkxPX3VuaW9uX3R5cGUgZHN0OwogIGZyYWN0eXBlIGZyYWN0aW9uID0g c3JjLT5mcmFjdGlvbi5sbDsKICBpbnQgc2lnbiA9IHNyYy0+c2lnbjsKICBpbnQgZXhwID0gMDsK CiAgaWYgKGlzbmFuIChzcmMpKQogICAgewogICAgICBleHAgPSAoMHhmZik7CiAgICAgIGlmIChz cmMtPmNsYXNzID09IENMQVNTX1FOQU4gfHwgMSkKICAgICAgICB7CiAgICAgICAgICBmcmFjdGlv biB8PSAweDEwMDAwMEw7CiAgICAgICAgfQogICAgfQogIGVsc2UgaWYgKGlzaW5mIChzcmMpKQog ICAgewogICAgICBleHAgPSAoMHhmZik7CiAgICAgIGZyYWN0aW9uID0gMDsKICAgIH0KICBlbHNl IGlmIChpc3plcm8gKHNyYykpCiAgICB7CiAgICAgIGV4cCA9IDA7CiAgICAgIGZyYWN0aW9uID0g MDsKICAgIH0KICBlbHNlIGlmIChmcmFjdGlvbiA9PSAwKQogICAgewogICAgICBleHAgPSAwOwog ICAgfQogIGVsc2UKICAgIHsKICAgICAgaWYgKHNyYy0+bm9ybWFsX2V4cCA8ICgtKDEyNykrMSkp CiAgICAgICAgewoKCgoKICAgICAgICAgIGludCBzaGlmdCA9ICgtKDEyNykrMSkgLSBzcmMtPm5v cm1hbF9leHA7CgogICAgICAgICAgZXhwID0gMDsKCiAgICAgICAgICBpZiAoc2hpZnQgPiAzMiAt IDdMKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgIGZyYWN0aW9uID0gMDsKICAgICAgICAg ICAgfQogICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgaW50IGxvd2Jp dCA9IChmcmFjdGlvbiAmICgoMSA8PCBzaGlmdCkgLSAxKSkgPyAxIDogMDsKICAgICAgICAgICAg ICBmcmFjdGlvbiA9IChmcmFjdGlvbiA+PiBzaGlmdCkgfCBsb3diaXQ7CiAgICAgICAgICAgIH0K ICAgICAgICAgIGlmICgoZnJhY3Rpb24gJiAweDdmKSA9PSAweDQwKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgaWYgKChmcmFjdGlvbiAmICgxIDw8IDdMKSkpCiAgICAgICAgICAgICAgICBm cmFjdGlvbiArPSAweDNmICsgMTsKICAgICAgICAgICAgfQogICAgICAgICAgZWxzZQogICAgICAg ICAgICB7CgogICAgICAgICAgICAgIGZyYWN0aW9uICs9IDB4M2Y7CiAgICAgICAgICAgIH0KCgog ICAgICAgICAgaWYgKGZyYWN0aW9uID49ICgxTEw8PCgyMyArN0wpKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgIGV4cCArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICBmcmFjdGlvbiA+ Pj0gN0w7CiAgICAgICAgfQogICAgICBlbHNlIGlmIChzcmMtPm5vcm1hbF9leHAgPiAxMjcpCiAg ICAgICAgewogICAgICAgICAgZXhwID0gKDB4ZmYpOwogICAgICAgICAgZnJhY3Rpb24gPSAwOwog ICAgICAgIH0KICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgIGV4cCA9IHNyYy0+bm9ybWFs X2V4cCArIDEyNzsKCgoKICAgICAgICAgIGlmICgoZnJhY3Rpb24gJiAweDdmKSA9PSAweDQwKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgaWYgKGZyYWN0aW9uICYgKDEgPDwgN0wpKQogICAg ICAgICAgICAgICAgZnJhY3Rpb24gKz0gMHgzZiArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAg IGVsc2UKICAgICAgICAgICAgewoKICAgICAgICAgICAgICBmcmFjdGlvbiArPSAweDNmOwogICAg ICAgICAgICB9CiAgICAgICAgICBpZiAoZnJhY3Rpb24gPj0gKDFMTDw8KDIzICsxKzdMKSkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICBmcmFjdGlvbiA+Pj0gMTsKICAgICAgICAgICAgICBl eHAgKz0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgZnJhY3Rpb24gPj49IDdMOwogICAgICAg IH0KICAgIH0KIyAyODkgImZwLWJpdC5jIgogIGRzdC52YWx1ZV9yYXcgPSBmcmFjdGlvbiAmICgo KChmcmFjdHlwZSkxKSA8PCAyMykgLSAoZnJhY3R5cGUpMSk7CiAgZHN0LnZhbHVlX3JhdyB8PSAo KGZyYWN0eXBlKSAoZXhwICYgKCgxIDw8IDgpIC0gMSkpKSA8PCAyMzsKICBkc3QudmFsdWVfcmF3 IHw9ICgoZnJhY3R5cGUpIChzaWduICYgMSkpIDw8ICgyMyB8IDgpOwojIDMwMiAiZnAtYml0LmMi CiAgcmV0dXJuIGRzdC52YWx1ZTsKfQo=