From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x112a.google.com (mail-yw1-x112a.google.com [IPv6:2607:f8b0:4864:20::112a]) by sourceware.org (Postfix) with ESMTPS id 3D9EA3858281 for ; Mon, 11 Dec 2023 16:51:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3D9EA3858281 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3D9EA3858281 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::112a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702313512; cv=none; b=Vx6VuU3xHTgHC+bSbZRPwp4khneoAO38pJT9Eg/lvFIDBVB237dUhBqlbVoQWzbDXjACiXL+F/BZMc6/SbiJAwyJQur74PUZnekrpAvXnGyaIJ9/SIAW9ctOiGgIVbORwEtOJdsOGQghbc5Pzsc8L8l0YUA9X1mHPXRby4fGwx4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702313512; c=relaxed/simple; bh=p5kMmh5dDZCvEr2rSoE7bLuTBiVTRM1+CEbOAXQz/fE=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=UYgg/vWNpW3Pln5+0XDB4RLn1Z/7NSaLwWOVa7rwgPOkR7bAXSxF64h1xSQL2BDBGqDslUbA3XbJTRh6w4v3o1ClCEW0Sn0VmS8nSPhvgQF/NMPvQWuwWjQjs7UOhJjmyGPubHCUxMRR18Pe63cMTVlF2zX1iM8P33PmlIFctXU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-5df49931b4eso22607127b3.0 for ; Mon, 11 Dec 2023 08:51:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702313509; x=1702918309; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=p5kMmh5dDZCvEr2rSoE7bLuTBiVTRM1+CEbOAXQz/fE=; b=BUz9PIkL73TiXZlBA/ulHo9MUPHygpcL6fFxn8HV1JrT3lG93mU7tAE/edSJ7LJx63 NmSLl6GzVJUtufBmUIWVq/NG8iGp2Qvuc+vV80hzwmn+5A0hfhKw9hpYSI0SxEPNJqVT L9NAPnUEELBkwsJH07kDD9dU0cjtqpI6Dxu8uY/Lh1jWQ/SQW85DXRg6q7HEH/F1Uvjs 8C6n5ToTk5i8d4En2Gm+/xZWRulI3TccrRuu4FeseHt6JBfXOYLodupabBzqRoNHGSyx +PXrOO5IMJOYyFAxstT8ZoMCJ/CoEImMNzAb8NofqPDSDJfsOLRSMeYxyROb4Fs3VAYA 8z/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702313509; x=1702918309; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=p5kMmh5dDZCvEr2rSoE7bLuTBiVTRM1+CEbOAXQz/fE=; b=PANV7jjoo5DGI1ZXF6yvnQu4H6uOgxkbm1iwqKbftr31wmzM45TyAgxp7cBx9N3MBh ZaBh6Ab26LQQOhg20F/ARx1F1tKYzDvzKEo2QlQ3X9kSlR9qI74a0LKiz+laak6CUQvY mrObWMk7Kerva4s0P9k6OOE8IJwPLK/DazYCDKrI1xJg0QhYOIArq6AurqVwLR4iMkNM kTfOlQq/ZmNF+IlTOd1+iRIn8G/2iZKSRBB1VlZUySJtsfNC+TyG3F71ja2Pse2aE/GZ vNhl3xyv61rQCw0ofRXRJXx0uVsl7GEZ3ts7NCYQAITimZLn5OjZ2xoR5Ww2HfLUvMQm EJCw== X-Gm-Message-State: AOJu0Yx7o2QTaUIniJ6BHHVD1pHDuw8H9h88vUmSAVd+NoVASJs4X3IV aVNMuULpYaP4jSIBXlzp61MZVCcyHHASIU58QTraq4rx7vrj X-Google-Smtp-Source: AGHT+IHFJGXpIHYgly58jgbBtaUR1jR0mxAIKjmbNNC/2kMtqK52d3EHjhWfqRjXpHa1XXRYzhSbE5NGuVlbcxbDS2Q= X-Received: by 2002:a81:8395:0:b0:5ca:4db5:6962 with SMTP id t143-20020a818395000000b005ca4db56962mr3533417ywf.46.1702313509348; Mon, 11 Dec 2023 08:51:49 -0800 (PST) MIME-Version: 1.0 From: Jingwen Wu Date: Tue, 12 Dec 2023 00:51:38 +0800 Message-ID: Subject: issue: unexpected results in optimizations To: gcc@gcc.gnu.org Content-Type: multipart/mixed; boundary="00000000000005a841060c3ec081" X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_ABUSEAT,RCVD_IN_DNSWL_NONE,RCVD_IN_XBL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000005a841060c3ec081 Content-Type: multipart/alternative; boundary="00000000000005a83f060c3ec07f" --00000000000005a83f060c3ec07f Content-Type: text/plain; charset="UTF-8" Hello, I'm sorry to bother you. And I have some gcc compiler optimization questions to ask you. First of all, I used csmith tools to generate c files randomly. Meanwhile, the final running result is the checksum for global variables in a c file. For the two c files in the attachment, I performed the equivalent transformation of loop from *initial.**c* to *transformed.c*. And the two files produced different results (i.e. different checksum values) when using *-O1* optimization level, while the results of both are the same when using other levels of optimization such as *-O0*, *-O2*, *-O3*, *-Os*, *-Ofast*. Please help me to explain why this is, thank you. command line: *gcc file.c -O1 -lm -I $CSMITH_HOME/include && ./a.out* version: gcc 12.2.0 os: ubuntu 22.04 --00000000000005a83f060c3ec07f-- --00000000000005a841060c3ec081 Content-Type: text/x-c-code; charset="US-ASCII"; name="transformed.c" Content-Disposition: attachment; filename="transformed.c" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lq124o1i1 CiNpbmNsdWRlICJjc21pdGguaCIKCnN0YXRpYyBpbnQzMl90IGdfYTM2OFsz XTsKc3RhdGljIGludDMyX3QgZ19iMzY4WzNdOwoKdW5pb24gVTAgewogIGNv bnN0IGludDMyX3QgZjA7Cn07Cgp1bmlvbiBVMSB7CiAgY29uc3QgdWludDE2 X3QgZjA7CiAgY29uc3QgdWludDY0X3QgZjE7CiAgaW50MzJfdCBmMjsKICBj b25zdCBzaWduZWQgZjMgOiAyOTsKfTsKCnVuaW9uIFUyIHsKICBpbnQ2NF90 IGYwOwogIGludDE2X3QgZjE7Cn07CgpzdGF0aWMgdW5pb24gVTIgZ18xMyA9 IHs3TH07CnN0YXRpYyB1aW50MTZfdCBnXzIxID0gMHg0QUI0TDsKc3RhdGlj IHVpbnQzMl90IGdfMjQgPSA0Mjk0OTY3Mjg2VUw7CnN0YXRpYyBpbnQ2NF90 IGdfNDJbM11bM10gPSB7ezB4RTk1MDVDMDBENEIzQkVCRExMLCAweENEQ0VD NDU4QUYzMjY1MUVMTCwgMHhDRENFQzQ1OEFGMzI2NTFFTEx9LCB7MHhFOTUw NUMwMEQ0QjNCRUJETEwsIDB4Q0RDRUM0NThBRjMyNjUxRUxMLCAweENEQ0VD NDU4QUYzMjY1MUVMTH0sIHsweEU5NTA1QzAwRDRCM0JFQkRMTCwgMHhDRENF QzQ1OEFGMzI2NTFFTEwsIDB4Q0RDRUM0NThBRjMyNjUxRUxMfX07CnN0YXRp YyBpbnQ4X3QgZ180M1sxXVsyXVsxXSA9IHt7ezB4RENMfSwgezB4RENMfX19 OwpzdGF0aWMgaW50NjRfdCAqZ182MiA9ICZnXzEzLmYwOwpzdGF0aWMgaW50 NjRfdCAqKnZvbGF0aWxlIGdfNjEgPSAmZ182MjsKc3RhdGljIHVuaW9uIFUw IGdfODcgPSB7MHhBOUFDRjMwNEx9OwpzdGF0aWMgdW5pb24gVTAgKmdfODlb MV1bM11bMl0gPSB7e3smZ184NywgJmdfODd9LCB7JmdfODcsICZnXzg3fSwg eyZnXzg3LCAmZ184N319fTsKc3RhdGljIHVuaW9uIFUwICoqdm9sYXRpbGUg Z184OFszXVsxXSA9IHt7JmdfODlbMF1bMl1bMV19LCB7JmdfODlbMF1bMl1b MV19LCB7JmdfODlbMF1bMl1bMV19fTsKc3RhdGljIHVuaW9uIFUxIGdfNDA5 WzFdWzNdWzJdID0ge3t7ezB4RDgzOUx9LCB7MHhEODM5TH19LCB7ezB4RDgz OUx9LCB7MHhEODM5TH19LCB7ezB4RDgzOUx9LCB7MHhEODM5TH19fX07Cgpz dGF0aWMgdm9pZCBmdW5jXzEodm9pZCk7CgpzdGF0aWMgdm9pZCBmdW5jXzEo KSB7CiAgdWludDMyX3QgcF81ID0gM0w7CiAgaW50MzJfdCBsXzM0ID0gMHhG RjJGRDZCMkw7CgogIGZvciAoZ18xMy5mMCA9IDE7IChnXzEzLmYwID49IDAp OyBnXzEzLmYwIC09IDEpIHsKICAgIHVpbnQ4X3QgbF8xOSA9IDFVTDsKICAg IGludDMyX3QgbF8yNSA9IDB4NURCNUEyNkNMOwogICAgdWludDE2X3QgbF8z NSA9IDB4MjU3MEw7CiAgICB1aW50OF90IGxfODQgPSAxVUw7CiAgICBpZiAo KHNhZmVfdW5hcnlfbWludXNfZnVuY191aW50OF90X3UoKCgoc2FmZV9yc2hp ZnRfZnVuY191aW50MTZfdF91X3MoKHNhZmVfbHNoaWZ0X2Z1bmNfdWludDhf dF91X3MobF8xOSwgNCkpLCAzKSkgPD0gKChzYWZlX2Rpdl9mdW5jX2ludDMy X3Rfc19zKCgrKGxfMzQgPT0gMHg0OTRGTCkpLCBsXzM1KSksIGxfMzQpKSA+ PSAzVUwpKSkpIHsKICAgICAgZm9yIChwXzUgPSAwOyAocF81IDw9IDApOyBw XzUgKz0gMSkgewogICAgICAgIGdfNDJbMl1bMl0gXj0gMUw7CiAgICAgIH0K ICAgICAgaWYgKCgoZ180M1swXVsxXVswXSA9IDB4M0YzQThBMURMKSA8ICgo KGdfNDJbMl1bMF0sIGdfMjQpLCAweDk4NzhGRjVGTCkgXiAwTCkpKSB7CiAg ICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGZvciAobF8yNSA9IDA7IChsXzI1 IDw9IDEpOyBsXzI1ICs9IDEpIHsKICAgICAgICBpbnQgaWlfOTsKICAgICAg ICBpbnQgampfOTsKICAgICAgICBpbnQgaWpfOTsKICAgICAgICAvLyBmdXNp b24gaW4gbWF4IGV4ZWNUaW1lcwogICAgICAgIGZvciAoZ18yMSA9IDAsIGlp XzkgPSAwLCBqal85ID0gMCwgaWpfOSA9IDA7IGlqXzkgPD0gMzsgaWpfOSsr KSB7CiAgICAgICAgICBpZiAoaWpfOSA8PSAyICYmIChnXzIxIDw9IDEpKSB7 CiAgICAgICAgICAgIGdfYTM2OFtpaV85XSA9IGdfNDNbMF1bMV1bMF0gKiBs Xzg0IC0gZ180MDlbMF1bMF1bMF0uZjI7CiAgICAgICAgICAgIGdfMjEgKz0g MTsKICAgICAgICAgICAgaWlfOSsrOwogICAgICAgICAgfQogICAgICAgICAg aWYgKGlqXzkgPD0gMyAmJiBqal85IDwgMykgewogICAgICAgICAgICBnX2Iz NjhbampfOV0gPSBnXzQwOVswXVsxXVsxXS5mMCAqIGdfYTM2OFtqal85XSAr ICgqZ184OVswXVsyXVswXSkuZjA7CiAgICAgICAgICAgIGpqXzkrKzsKICAg ICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KCmludCBt YWluKHZvaWQpIHsKICBpbnQgaSwgaiwgazsKICBpbnQgcHJpbnRfaGFzaF92 YWx1ZSA9IDA7CiAgcGxhdGZvcm1fbWFpbl9iZWdpbigpOwogIGNyYzMyX2dl bnRhYigpOwogIGZ1bmNfMSgpOwogIHRyYW5zcGFyZW50X2NyYyhnXzIxLCAi Z18yMSIsIHByaW50X2hhc2hfdmFsdWUpOwogIHRyYW5zcGFyZW50X2NyYyhn XzI0LCAiZ18yNCIsIHByaW50X2hhc2hfdmFsdWUpOwogIGZvciAoaSA9IDA7 IGkgPCAzOyBpKyspIHsKICAgIGZvciAoaiA9IDA7IGogPCAzOyBqKyspIHsK ICAgICAgdHJhbnNwYXJlbnRfY3JjKGdfNDJbaV1bal0sICJnXzQyW2ldW2pd IiwgcHJpbnRfaGFzaF92YWx1ZSk7CiAgICB9CiAgfQogIGZvciAoaSA9IDA7 IGkgPCAxOyBpKyspIHsKICAgIGZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsK ICAgICAgZm9yIChrID0gMDsgayA8IDE7IGsrKykgewogICAgICAgIHRyYW5z cGFyZW50X2NyYyhnXzQzW2ldW2pdW2tdLCAiZ180M1tpXVtqXVtrXSIsIHBy aW50X2hhc2hfdmFsdWUpOwogICAgICB9CiAgICB9CiAgfQogIHRyYW5zcGFy ZW50X2NyYyhnXzg3LmYwLCAiZ184Ny5mMCIsIHByaW50X2hhc2hfdmFsdWUp OwogIGZvciAoaSA9IDA7IGkgPCAxOyBpKyspIHsKICAgIGZvciAoaiA9IDA7 IGogPCAzOyBqKyspIHsKICAgICAgZm9yIChrID0gMDsgayA8IDI7IGsrKykg ewogICAgICAgIHRyYW5zcGFyZW50X2NyYyhnXzQwOVtpXVtqXVtrXS5mMCwg ImdfNDA5W2ldW2pdW2tdLmYwIiwgcHJpbnRfaGFzaF92YWx1ZSk7CiAgICAg IH0KICAgIH0KICB9CiAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogICAg dHJhbnNwYXJlbnRfY3JjKGdfYTM2OFtpXSwgImdfYTM2OFtpXSIsIHByaW50 X2hhc2hfdmFsdWUpOwogIH0KICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7 CiAgICB0cmFuc3BhcmVudF9jcmMoZ19iMzY4W2ldLCAiZ19iMzY4W2ldIiwg cHJpbnRfaGFzaF92YWx1ZSk7CiAgfQogIHBsYXRmb3JtX21haW5fZW5kKGNy YzMyX2NvbnRleHQgXiAweEZGRkZGRkZGVUwsIHByaW50X2hhc2hfdmFsdWUp OwogIHJldHVybiAwOwp9Cg== --00000000000005a841060c3ec081 Content-Type: text/x-c-code; charset="US-ASCII"; name="initial.c" Content-Disposition: attachment; filename="initial.c" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lq124o0u0 CiNpbmNsdWRlICJjc21pdGguaCIKCnN0YXRpYyBpbnQzMl90IGdfYTM2OFsz XTsKc3RhdGljIGludDMyX3QgZ19iMzY4WzNdOwoKdW5pb24gVTAgewogIGNv bnN0IGludDMyX3QgZjA7Cn07Cgp1bmlvbiBVMSB7CiAgY29uc3QgdWludDE2 X3QgZjA7CiAgY29uc3QgdWludDY0X3QgZjE7CiAgaW50MzJfdCBmMjsKICBj b25zdCBzaWduZWQgZjMgOiAyOTsKfTsKCnVuaW9uIFUyIHsKICBpbnQ2NF90 IGYwOwogIGludDE2X3QgZjE7Cn07CgpzdGF0aWMgdW5pb24gVTIgZ18xMyA9 IHs3TH07CnN0YXRpYyB1aW50MTZfdCBnXzIxID0gMHg0QUI0TDsKc3RhdGlj IHVpbnQzMl90IGdfMjQgPSA0Mjk0OTY3Mjg2VUw7CnN0YXRpYyBpbnQ2NF90 IGdfNDJbM11bM10gPSB7ezB4RTk1MDVDMDBENEIzQkVCRExMLCAweENEQ0VD NDU4QUYzMjY1MUVMTCwgMHhDRENFQzQ1OEFGMzI2NTFFTEx9LCB7MHhFOTUw NUMwMEQ0QjNCRUJETEwsIDB4Q0RDRUM0NThBRjMyNjUxRUxMLCAweENEQ0VD NDU4QUYzMjY1MUVMTH0sIHsweEU5NTA1QzAwRDRCM0JFQkRMTCwgMHhDRENF QzQ1OEFGMzI2NTFFTEwsIDB4Q0RDRUM0NThBRjMyNjUxRUxMfX07CnN0YXRp YyBpbnQ4X3QgZ180M1sxXVsyXVsxXSA9IHt7ezB4RENMfSwgezB4RENMfX19 OwpzdGF0aWMgaW50NjRfdCAqZ182MiA9ICZnXzEzLmYwOwpzdGF0aWMgaW50 NjRfdCAqKnZvbGF0aWxlIGdfNjEgPSAmZ182MjsKc3RhdGljIHVuaW9uIFUw IGdfODcgPSB7MHhBOUFDRjMwNEx9OwpzdGF0aWMgdW5pb24gVTAgKmdfODlb MV1bM11bMl0gPSB7e3smZ184NywgJmdfODd9LCB7JmdfODcsICZnXzg3fSwg eyZnXzg3LCAmZ184N319fTsKc3RhdGljIHVuaW9uIFUwICoqdm9sYXRpbGUg Z184OFszXVsxXSA9IHt7JmdfODlbMF1bMl1bMV19LCB7JmdfODlbMF1bMl1b MV19LCB7JmdfODlbMF1bMl1bMV19fTsKc3RhdGljIHVuaW9uIFUxIGdfNDA5 WzFdWzNdWzJdID0ge3t7ezB4RDgzOUx9LCB7MHhEODM5TH19LCB7ezB4RDgz OUx9LCB7MHhEODM5TH19LCB7ezB4RDgzOUx9LCB7MHhEODM5TH19fX07Cgpz dGF0aWMgdm9pZCBmdW5jXzEodm9pZCk7CgpzdGF0aWMgdm9pZCBmdW5jXzEo KSB7CiAgdWludDMyX3QgcF81ID0gM0w7CiAgaW50MzJfdCBsXzM0ID0gMHhG RjJGRDZCMkw7CgogIGZvciAoZ18xMy5mMCA9IDE7IChnXzEzLmYwID49IDAp OyBnXzEzLmYwIC09IDEpIHsKICAgIHVpbnQ4X3QgbF8xOSA9IDFVTDsKICAg IGludDMyX3QgbF8yNSA9IDB4NURCNUEyNkNMOwogICAgdWludDE2X3QgbF8z NSA9IDB4MjU3MEw7CiAgICB1aW50OF90IGxfODQgPSAxVUw7CiAgICBpZiAo KHNhZmVfdW5hcnlfbWludXNfZnVuY191aW50OF90X3UoKCgoc2FmZV9yc2hp ZnRfZnVuY191aW50MTZfdF91X3MoKHNhZmVfbHNoaWZ0X2Z1bmNfdWludDhf dF91X3MobF8xOSwgNCkpLCAzKSkgPD0gKChzYWZlX2Rpdl9mdW5jX2ludDMy X3Rfc19zKCgrKGxfMzQgPT0gMHg0OTRGTCkpLCBsXzM1KSksIGxfMzQpKSA+ PSAzVUwpKSkpIHsKICAgICAgZm9yIChwXzUgPSAwOyAocF81IDw9IDApOyBw XzUgKz0gMSkgewogICAgICAgIGdfNDJbMl1bMl0gXj0gMUw7CiAgICAgIH0K ICAgICAgaWYgKCgoZ180M1swXVsxXVswXSA9IDB4M0YzQThBMURMKSA8ICgo KGdfNDJbMl1bMF0sIGdfMjQpLCAweDk4NzhGRjVGTCkgXiAwTCkpKSB7CiAg ICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGZvciAobF8yNSA9IDA7IChsXzI1 IDw9IDEpOyBsXzI1ICs9IDEpIHsKICAgICAgICBpbnQgaWlfOTsKICAgICAg ICAvLyBmdXNpb24gaW4gbWF4IGV4ZWNUaW1lcwogICAgICAgIGZvciAoZ18y MSA9IDAsIGlpXzkgPSAwOyAoZ18yMSA8PSAxKTsgZ18yMSArPSAxLCBpaV85 KyspIHsKICAgICAgICAgIGdfYTM2OFtpaV85XSA9IGdfNDNbMF1bMV1bMF0g KiBsXzg0IC0gZ180MDlbMF1bMF1bMF0uZjI7CiAgICAgICAgfQogICAgICAg IGludCBqal85OwogICAgICAgIGZvciAoampfOSA9IDA7IGpqXzkgPCAzOyBq al85KyspIHsKICAgICAgICAgIGdfYjM2OFtqal85XSA9IGdfNDA5WzBdWzFd WzFdLmYwICogZ19hMzY4W2pqXzldICsgKCpnXzg5WzBdWzJdWzBdKS5mMDsK ICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KCmludCBtYWluKHZvaWQp IHsKICBpbnQgaSwgaiwgazsKICBpbnQgcHJpbnRfaGFzaF92YWx1ZSA9IDA7 CiAgcGxhdGZvcm1fbWFpbl9iZWdpbigpOwogIGNyYzMyX2dlbnRhYigpOwog IGZ1bmNfMSgpOwogIHRyYW5zcGFyZW50X2NyYyhnXzIxLCAiZ18yMSIsIHBy aW50X2hhc2hfdmFsdWUpOwogIHRyYW5zcGFyZW50X2NyYyhnXzI0LCAiZ18y NCIsIHByaW50X2hhc2hfdmFsdWUpOwogIGZvciAoaSA9IDA7IGkgPCAzOyBp KyspIHsKICAgIGZvciAoaiA9IDA7IGogPCAzOyBqKyspIHsKICAgICAgdHJh bnNwYXJlbnRfY3JjKGdfNDJbaV1bal0sICJnXzQyW2ldW2pdIiwgcHJpbnRf aGFzaF92YWx1ZSk7CiAgICB9CiAgfQogIGZvciAoaSA9IDA7IGkgPCAxOyBp KyspIHsKICAgIGZvciAoaiA9IDA7IGogPCAyOyBqKyspIHsKICAgICAgZm9y IChrID0gMDsgayA8IDE7IGsrKykgewogICAgICAgIHRyYW5zcGFyZW50X2Ny YyhnXzQzW2ldW2pdW2tdLCAiZ180M1tpXVtqXVtrXSIsIHByaW50X2hhc2hf dmFsdWUpOwogICAgICB9CiAgICB9CiAgfQogIHRyYW5zcGFyZW50X2NyYyhn Xzg3LmYwLCAiZ184Ny5mMCIsIHByaW50X2hhc2hfdmFsdWUpOwogIGZvciAo aSA9IDA7IGkgPCAxOyBpKyspIHsKICAgIGZvciAoaiA9IDA7IGogPCAzOyBq KyspIHsKICAgICAgZm9yIChrID0gMDsgayA8IDI7IGsrKykgewogICAgICAg IHRyYW5zcGFyZW50X2NyYyhnXzQwOVtpXVtqXVtrXS5mMCwgImdfNDA5W2ld W2pdW2tdLmYwIiwgcHJpbnRfaGFzaF92YWx1ZSk7CiAgICAgIH0KICAgIH0K ICB9CiAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewogICAgdHJhbnNwYXJl bnRfY3JjKGdfYTM2OFtpXSwgImdfYTM2OFtpXSIsIHByaW50X2hhc2hfdmFs dWUpOwogIH0KICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICB0cmFu c3BhcmVudF9jcmMoZ19iMzY4W2ldLCAiZ19iMzY4W2ldIiwgcHJpbnRfaGFz aF92YWx1ZSk7CiAgfQogIHBsYXRmb3JtX21haW5fZW5kKGNyYzMyX2NvbnRl eHQgXiAweEZGRkZGRkZGVUwsIHByaW50X2hhc2hfdmFsdWUpOwogIHJldHVy biAwOwp9Cg== --00000000000005a841060c3ec081--