From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21657 invoked by alias); 24 Sep 2015 17:41:03 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36620 Received: (qmail 27204 invoked from network); 24 Sep 2015 17:41:01 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=PkyswdgYCiBnC7tApZNpVmYM/7rPrqAETpBLBHUsQLI=; b=DrxjRXaUWW1WO8xslU02BkCo7UawB/GbTI3c9vwPW5kiPae8ANrI2WK7Ef8GsvISRR naPEWSupkR1sWluwgqa+Q6YDEFFV7JHu+6THyRaJ5WSBIQEycFBOUxZuYJTilgH40PfK j5x+XS2ObdS0K90jdw3WUxSOr1smJzcqlyIx6srfkFVLrnwVC/sIb49u4sNsS5301Qwj c+iWaNbDcYZTCv3KCC3iJbuvKPjgNk6GeiPnfErSocErFN/YrHqzzj0FDAFEQzBtvIZb AUQNwP/Zg4jg2tDCgGVkAVPaEimSA1g2U2npV3rGt7ztBHvc7GO+879qTSD+hstD+FIY RLSA== X-Received: by 10.152.4.39 with SMTP id h7mr218064lah.99.1443116456036; Thu, 24 Sep 2015 10:40:56 -0700 (PDT) MIME-Version: 1.0 From: Sebastian Gniazdowski Date: Thu, 24 Sep 2015 19:40:36 +0200 Message-ID: Subject: Bug in llvm compiler To: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary=089e013d1c46bbc9ee052081bbe9 --089e013d1c46bbc9ee052081bbe9 Content-Type: text/plain; charset=UTF-8 Hello, I'm writing optimization of string.c. The point is that functions there run strlen() and then in general discard the returned information by running strcpy(). Consider this: http://www.opensource.apple.com/source/Libc/Libc-997.1.1/string/strcpy.c Of course there are different implementations that will not run strlen() second time: http://www.opensource.apple.com/source/Libc/Libc-262/i386/gen/strcpy.c but still - utilizing the information allows for optimizations. I think I've encountered a bug in Apple's llvm. Changing 11 line in the patch, from "if( l < 8 ) {" to "if( l < 0 ) {" causes the script to run for 2.5 seconds. Changing it to "if( l < 1 ) {" restores running time of 2 seconds. Looking at generated assembly shows that "if( l < 0 ) {" is treated as "if( 0 )" and only the memcpy() part is emitted. That's fine, but why does that optimized version run slower having in mind that "if( l < 1 ) {" is impossible condition (every string has at least 1 byte). The problem doesn't reproduce on FreeBSD 10.1 and Ubuntu 12.10, running times are equal there. I thought I will show the asm source, maybe someone will find something interesting in it. In general this seems a bug that should be maybe considered as Zsh uses memcpy() in various places (also: google "-Wno-builtin-memcpy-chk-size"). As for string.c, I will provide memcpy's implementation taken from glibc or other library. The compiler is: # gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) Target: x86_64-apple-darwin13.1.0 Thread model: posix Best regards, Sebastian Gniazdowski --089e013d1c46bbc9ee052081bbe9 Content-Type: application/octet-stream; name="copymemory.patch" Content-Disposition: attachment; filename="copymemory.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ieyehmjs0 ZGlmZiAtLWdpdCBhL1NyYy9zdHJpbmcuYyBiL1NyYy9zdHJpbmcuYwppbmRleCAwNGU3NDQ2Li5m NzhmY2JhIDEwMDY0NAotLS0gYS9TcmMvc3RyaW5nLmMKKysrIGIvU3JjL3N0cmluZy5jCkBAIC0y OCwxNiArMjgsMzMgQEAKIAogI2luY2x1ZGUgInpzaC5tZGgiCiAKKyNkZWZpbmUgY29weW1lbW9y eV9tYXliZXN0cmluZyhkZXN0LHNyYyxsLHR5cGUpIGRvICAgICAgXAorICAgICAgICAgICAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgaWYoIGwgPCA4ICkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg ICAgICAgICAgdHlwZSAqZF87ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgICAgICAgICBjb25zdCB0eXBlICpzXzsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAgICAgICAgIGRfID0gZGVzdDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgICAgICAgICAgc18gPSBzcmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICAgICAgICAgICAgICB3aGlsZSggKCpkXysrID0gKnNfKyspICkge30gICAgICAgICBcCisg ICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGRlc3QsIHNyYywgbCpzaXplb2YodHlwZSkpOyAg XAorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICB9IHdoaWxlKDApOworCiAvKiovCiBtb2RfZXhwb3J0IGNoYXIgKgog ZHVwc3RyaW5nKGNvbnN0IGNoYXIgKnMpCiB7CiAgICAgY2hhciAqdDsKKyAgICBzaXplX3QgbGVu dzA7CiAKICAgICBpZiAoIXMpCiAJcmV0dXJuIE5VTEw7Ci0gICAgdCA9IChjaGFyICopIHpoYWxs b2Moc3RybGVuKChjaGFyICopcykgKyAxKTsKLSAgICBzdHJjcHkodCwgcyk7CisKKyAgICBsZW53 MCA9IDEgKyBzdHJsZW4oKGNoYXIgKilzKTsKKyAgICB0ID0gKGNoYXIgKikgemhhbGxvYyhsZW53 MCAqIHNpemVvZihjaGFyKSk7CisgICAgY29weW1lbW9yeV9tYXliZXN0cmluZyh0LCBzLCBsZW53 MCwgY2hhcik7CisKICAgICByZXR1cm4gdDsKIH0KIApAQCAtNDYsMTEgKzYzLDE1IEBAIG1vZF9l eHBvcnQgY2hhciAqCiB6dHJkdXAoY29uc3QgY2hhciAqcykKIHsKICAgICBjaGFyICp0OworICAg IHNpemVfdCBsZW53MDsKIAogICAgIGlmICghcykKIAlyZXR1cm4gTlVMTDsKLSAgICB0ID0gKGNo YXIgKil6YWxsb2Moc3RybGVuKChjaGFyICopcykgKyAxKTsKLSAgICBzdHJjcHkodCwgcyk7CisK KyAgICBsZW53MD0gMSArIHN0cmxlbigoY2hhciAqKXMpOworICAgIHQgPSAoY2hhciAqKXphbGxv YyhsZW53MCAqIHNpemVvZihjaGFyKSk7CisgICAgY29weW1lbW9yeV9tYXliZXN0cmluZyh0LCBz LCBsZW53MCwgY2hhcik7CisKICAgICByZXR1cm4gdDsKIH0KIApAQCAtNjEsMTEgKzgyLDE1IEBA IG1vZF9leHBvcnQgd2NoYXJfdCAqCiB3Y3NfenRyZHVwKGNvbnN0IHdjaGFyX3QgKnMpCiB7CiAg ICAgd2NoYXJfdCAqdDsKKyAgICBzaXplX3QgbGVudzA7CiAKICAgICBpZiAoIXMpCiAJcmV0dXJu IE5VTEw7Ci0gICAgdCA9ICh3Y2hhcl90ICopemFsbG9jKHNpemVvZih3Y2hhcl90KSAqICh3Y3Ns ZW4oKHdjaGFyX3QgKilzKSArIDEpKTsKLSAgICB3Y3NjcHkodCwgcyk7CisKKyAgICBsZW53MCA9 IDEgKyB3Y3NsZW4oKHdjaGFyX3QgKilzKTsKKyAgICB0ID0gKHdjaGFyX3QgKil6YWxsb2MobGVu dzAgKiBzaXplb2Yod2NoYXJfdCkpOworICAgIGNvcHltZW1vcnlfbWF5YmVzdHJpbmcodCwgcywg bGVudzAsIHdjaGFyX3QpOworCiAgICAgcmV0dXJuIHQ7CiB9CiAvKiovCkBAIC04MCwxMyArMTA1 LDE0IEBAIHRyaWNhdChjaGFyIGNvbnN0ICpzMSwgY2hhciBjb25zdCAqczIsIGNoYXIgY29uc3Qg KnMzKQogewogICAgIC8qIFRoaXMgdmVyc2lvbiBhbHdheXMgdXNlcyBwZXJtYW5lbnRseS1hbGxv Y2F0ZWQgc3BhY2UuICovCiAgICAgY2hhciAqcHRyOwotICAgIHNpemVfdCBsMSA9IHN0cmxlbihz MSk7Ci0gICAgc2l6ZV90IGwyID0gc3RybGVuKHMyKTsKLQotICAgIHB0ciA9IChjaGFyICopemFs bG9jKGwxICsgbDIgKyBzdHJsZW4oczMpICsgMSk7Ci0gICAgc3RyY3B5KHB0ciwgczEpOwotICAg IHN0cmNweShwdHIgKyBsMSwgczIpOwotICAgIHN0cmNweShwdHIgKyBsMSArIGwyLCBzMyk7Cisg ICAgc2l6ZV90IGwxdzAgPSAxICsgc3RybGVuKHMxKTsKKyAgICBzaXplX3QgbDJ3MCA9IDEgKyBz dHJsZW4oczIpOworICAgIHNpemVfdCBsM3cwID0gMSArIHN0cmxlbihzMyk7CisKKyAgICBwdHIg PSAoY2hhciAqKXphbGxvYygobDF3MCArIGwydzAgKyBsM3cwIC0gMikgKiBzaXplb2YoY2hhcikp OworICAgIGNvcHltZW1vcnlfbWF5YmVzdHJpbmcocHRyLCBzMSwgbDF3MCwgY2hhcik7CisgICAg Y29weW1lbW9yeV9tYXliZXN0cmluZyhwdHIgKyBsMXcwIC0gMSwgczIsIGwydzAsIGNoYXIpOwor ICAgIGNvcHltZW1vcnlfbWF5YmVzdHJpbmcocHRyICsgbDF3MCAtIDEgKyBsMncwIC0gMSwgczMs IGwzdzAsIGNoYXIpOwogICAgIHJldHVybiBwdHI7CiB9CiAKQEAgLTk1LDEzICsxMjEsMTQgQEAg bW9kX2V4cG9ydCBjaGFyICoKIHpodHJpY2F0KGNoYXIgY29uc3QgKnMxLCBjaGFyIGNvbnN0ICpz MiwgY2hhciBjb25zdCAqczMpCiB7CiAgICAgY2hhciAqcHRyOwotICAgIHNpemVfdCBsMSA9IHN0 cmxlbihzMSk7Ci0gICAgc2l6ZV90IGwyID0gc3RybGVuKHMyKTsKLQotICAgIHB0ciA9IChjaGFy ICopemhhbGxvYyhsMSArIGwyICsgc3RybGVuKHMzKSArIDEpOwotICAgIHN0cmNweShwdHIsIHMx KTsKLSAgICBzdHJjcHkocHRyICsgbDEsIHMyKTsKLSAgICBzdHJjcHkocHRyICsgbDEgKyBsMiwg czMpOworICAgIHNpemVfdCBsMXcwID0gMSArIHN0cmxlbihzMSk7CisgICAgc2l6ZV90IGwydzAg PSAxICsgc3RybGVuKHMyKTsKKyAgICBzaXplX3QgbDN3MCA9IDEgKyBzdHJsZW4oczMpOworCisg ICAgcHRyID0gKGNoYXIgKil6aGFsbG9jKChsMXcwICsgbDJ3MCArIGwzdzAgLSAyKSAqIHNpemVv ZihjaGFyKSk7CisgICAgY29weW1lbW9yeV9tYXliZXN0cmluZyhwdHIsIHMxLCBsMXcwLCBjaGFy KTsKKyAgICBjb3B5bWVtb3J5X21heWJlc3RyaW5nKHB0ciArIGwxdzAgLSAxLCBzMiwgbDJ3MCwg Y2hhcik7CisgICAgY29weW1lbW9yeV9tYXliZXN0cmluZyhwdHIgKyBsMXcwIC0gMSArIGwydzAg LSAxLCBzMywgbDN3MCwgY2hhcik7CiAgICAgcmV0dXJuIHB0cjsKIH0KIApAQCAtMTEzLDExICsx NDAsMTIgQEAgZHluY2F0KGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMikKIHsKICAgICAv KiBUaGlzIHZlcnNpb24gYWx3YXlzIHVzZXMgc3BhY2UgZnJvbSB0aGUgY3VycmVudCBoZWFwLiAq LwogICAgIGNoYXIgKnB0cjsKLSAgICBzaXplX3QgbDEgPSBzdHJsZW4oczEpOworICAgIHNpemVf dCBsMXcwID0gMSArIHN0cmxlbihzMSk7CisgICAgc2l6ZV90IGwydzAgPSAxICsgc3RybGVuKHMy KTsKIAotICAgIHB0ciA9IChjaGFyICopemhhbGxvYyhsMSArIHN0cmxlbihzMikgKyAxKTsKLSAg ICBzdHJjcHkocHRyLCBzMSk7Ci0gICAgc3RyY3B5KHB0ciArIGwxLCBzMik7CisgICAgcHRyID0g KGNoYXIgKil6aGFsbG9jKGwxdzAgKyBsMncwIC0gMSk7CisgICAgY29weW1lbW9yeV9tYXliZXN0 cmluZyhwdHIsIHMxLCBsMXcwLCBjaGFyKTsKKyAgICBjb3B5bWVtb3J5X21heWJlc3RyaW5nKHB0 ciArIGwxdzAgLSAxLCBzMiwgbDJ3MCwgY2hhcik7CiAgICAgcmV0dXJuIHB0cjsKIH0KIApAQCAt MTI3LDExICsxNTUsMTIgQEAgYmljYXQoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyKQog ewogICAgIC8qIFRoaXMgdmVyc2lvbiBhbHdheXMgdXNlcyBwZXJtYW5lbnRseS1hbGxvY2F0ZWQg c3BhY2UuICovCiAgICAgY2hhciAqcHRyOwotICAgIHNpemVfdCBsMSA9IHN0cmxlbihzMSk7Cisg ICAgc2l6ZV90IGwxdzAgPSAxICsgc3RybGVuKHMxKTsKKyAgICBzaXplX3QgbDJ3MCA9IDEgKyBz dHJsZW4oczIpOwogCi0gICAgcHRyID0gKGNoYXIgKil6YWxsb2MobDEgKyBzdHJsZW4oczIpICsg MSk7Ci0gICAgc3RyY3B5KHB0ciwgczEpOwotICAgIHN0cmNweShwdHIgKyBsMSwgczIpOworICAg IHB0ciA9IChjaGFyICopemFsbG9jKGwxdzAgKyBsMncwIC0gMSk7CisgICAgY29weW1lbW9yeV9t YXliZXN0cmluZyhwdHIsIHMxLCBsMXcwLCBjaGFyKTsKKyAgICBjb3B5bWVtb3J5X21heWJlc3Ry aW5nKHB0ciArIGwxdzAgLSAxLCBzMiwgbDJ3MCwgY2hhcik7CiAgICAgcmV0dXJuIHB0cjsKIH0K IAo= --089e013d1c46bbc9ee052081bbe9 Content-Type: application/octet-stream; name="out_if_smaller_t0.asm" Content-Disposition: attachment; filename="out_if_smaller_t0.asm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ieyhrf9b1 CS5zZWN0aW9uCV9fVEVYVCxfX3RleHQscmVndWxhcixwdXJlX2luc3RydWN0aW9ucwoJLmdsb2Js CV9kdXBzdHJpbmcKCS5hbGlnbgk0LCAweDkwCl9kdXBzdHJpbmc6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIyBAZHVwc3RyaW5nCgkuY2ZpX3N0YXJ0cHJvYwojIyBCQiMwOgoJcHVzaHEJ JXJicApMdG1wMzoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDQ6CgkuY2ZpX29mZnNldCAl cmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApMdG1wNToKCS5jZmlfZGVmX2NmYV9yZWdpc3RlciAl cmJwCglwdXNocQklcjE1CglwdXNocQklcjE0CglwdXNocQklcmJ4CglwdXNocQklcmF4Ckx0bXA2 OgoJLmNmaV9vZmZzZXQgJXJieCwgLTQwCkx0bXA3OgoJLmNmaV9vZmZzZXQgJXIxNCwgLTMyCkx0 bXA4OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cgltb3ZxCSVyZGksICVyMTQKCXRlc3RxCSVyMTQs ICVyMTQKCWplCUxCQjBfMQojIyBCQiMyOgoJbW92cQklcjE0LCAlcmRpCgljYWxscQlfc3RybGVu Cgltb3ZxCSVyYXgsICVyYngKCWluY3EJJXJieAoJbW92cQklcmJ4LCAlcmRpCgljYWxscQlfemhh bGxvYwoJbW92cQklcmF4LCAlcjE1Cgltb3ZxCSVyMTUsICVyZGkKCW1vdnEJJXIxNCwgJXJzaQoJ bW92cQklcmJ4LCAlcmR4CgljYWxscQlfbWVtY3B5CglqbXAJTEJCMF8zCkxCQjBfMToKCXhvcmwJ JXIxNWQsICVyMTVkCkxCQjBfMzoKCW1vdnEJJXIxNSwgJXJheAoJYWRkcQkkOCwgJXJzcAoJcG9w cQklcmJ4Cglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJv YwoKCS5nbG9ibAlfenRyZHVwCgkuYWxpZ24JNCwgMHg5MApfenRyZHVwOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyMgQHp0cmR1cAoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoKCXB1 c2hxCSVyYnAKTHRtcDEyOgoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgpMdG1wMTM6CgkuY2ZpX29m ZnNldCAlcmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApMdG1wMTQ6CgkuY2ZpX2RlZl9jZmFfcmVn aXN0ZXIgJXJicAoJcHVzaHEJJXIxNQoJcHVzaHEJJXIxNAoJcHVzaHEJJXJieAoJcHVzaHEJJXJh eApMdG1wMTU6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNDAKTHRtcDE2OgoJLmNmaV9vZmZzZXQgJXIx NCwgLTMyCkx0bXAxNzoKCS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92cQklcmRpLCAlcjE0Cgl0 ZXN0cQklcjE0LCAlcjE0CglqZQlMQkIxXzEKIyMgQkIjMjoKCW1vdnEJJXIxNCwgJXJkaQoJY2Fs bHEJX3N0cmxlbgoJbW92cQklcmF4LCAlcmJ4CglpbmNxCSVyYngKCW1vdnEJJXJieCwgJXJkaQoJ Y2FsbHEJX3phbGxvYwoJbW92cQklcmF4LCAlcjE1Cgltb3ZxCSVyMTUsICVyZGkKCW1vdnEJJXIx NCwgJXJzaQoJbW92cQklcmJ4LCAlcmR4CgljYWxscQlfbWVtY3B5CglqbXAJTEJCMV8zCkxCQjFf MToKCXhvcmwJJXIxNWQsICVyMTVkCkxCQjFfMzoKCW1vdnEJJXIxNSwgJXJheAoJYWRkcQkkOCwg JXJzcAoJcG9wcQklcmJ4Cglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5j ZmlfZW5kcHJvYwoKCS5nbG9ibAlfd2NzX3p0cmR1cAoJLmFsaWduCTQsIDB4OTAKX3djc196dHJk dXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIEB3Y3NfenRyZHVwCgkuY2ZpX3N0YXJ0 cHJvYwojIyBCQiMwOgoJcHVzaHEJJXJicApMdG1wMjE6CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2 Ckx0bXAyMjoKCS5jZmlfb2Zmc2V0ICVyYnAsIC0xNgoJbW92cQklcnNwLCAlcmJwCkx0bXAyMzoK CS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCglwdXNocQklcjE1CglwdXNocQklcjE0CglwdXNo cQklcmJ4CglwdXNocQklcmF4Ckx0bXAyNDoKCS5jZmlfb2Zmc2V0ICVyYngsIC00MApMdG1wMjU6 CgkuY2ZpX29mZnNldCAlcjE0LCAtMzIKTHRtcDI2OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cglt b3ZxCSVyZGksICVyMTQKCXRlc3RxCSVyMTQsICVyMTQKCWplCUxCQjJfMQojIyBCQiMyOgoJbW92 cQklcjE0LCAlcmRpCgljYWxscQlfd2NzbGVuCglsZWFxCTQoLCVyYXgsNCksICVyMTUKCW1vdnEJ JXIxNSwgJXJkaQoJY2FsbHEJX3phbGxvYwoJbW92cQklcmF4LCAlcmJ4Cgltb3ZxCSVyYngsICVy ZGkKCW1vdnEJJXIxNCwgJXJzaQoJbW92cQklcjE1LCAlcmR4CgljYWxscQlfbWVtY3B5CglqbXAJ TEJCMl8zCkxCQjJfMToKCXhvcmwJJWVieCwgJWVieApMQkIyXzM6Cgltb3ZxCSVyYngsICVyYXgK CWFkZHEJJDgsICVyc3AKCXBvcHEJJXJieAoJcG9wcQklcjE0Cglwb3BxCSVyMTUKCXBvcHEJJXJi cAoJcmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX3RyaWNhdAoJLmFsaWduCTQsIDB4OTAKX3Ry aWNhdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIEB0cmljYXQKCS5jZmlfc3Rh cnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXAzMDoKCS5jZmlfZGVmX2NmYV9vZmZzZXQg MTYKTHRtcDMxOgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDMy OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1c2hxCSVyMTUKCXB1c2hxCSVyMTQKCXB1 c2hxCSVyMTMKCXB1c2hxCSVyMTIKCXB1c2hxCSVyYngKCXN1YnEJJDI0LCAlcnNwCkx0bXAzMzoK CS5jZmlfb2Zmc2V0ICVyYngsIC01NgpMdG1wMzQ6CgkuY2ZpX29mZnNldCAlcjEyLCAtNDgKTHRt cDM1OgoJLmNmaV9vZmZzZXQgJXIxMywgLTQwCkx0bXAzNjoKCS5jZmlfb2Zmc2V0ICVyMTQsIC0z MgpMdG1wMzc6CgkuY2ZpX29mZnNldCAlcjE1LCAtMjQKCW1vdnEJJXJkeCwgJXIxNQoJbW92cQkl cjE1LCAtNDgoJXJicCkgICAgICAgICAjIyA4LWJ5dGUgU3BpbGwKCW1vdnEJJXJzaSwgJXIxNAoJ bW92cQklcjE0LCAtNTYoJXJicCkgICAgICAgICAjIyA4LWJ5dGUgU3BpbGwKCW1vdnEJJXJkaSwg JXIxMwoJY2FsbHEJX3N0cmxlbgoJbW92cQklcmF4LCAlcmJ4Cgltb3ZxCSVyMTQsICVyZGkKCWNh bGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxNAoJbGVhcQkoJXJieCwlcjE0KSwgJXIxMgoJbW92 cQklcjE1LCAlcmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsIC02NCglcmJwKSAgICAgICAg ICMjIDgtYnl0ZSBTcGlsbAoJbGVhcQkxKCVyYXgsJXIxMiksICVyZGkKCWNhbGxxCV96YWxsb2MK CW1vdnEJJXJheCwgJXIxNQoJbGVhcQkxKCVyYngpLCAlcmR4Cgltb3ZxCSVyMTUsICVyZGkKCW1v dnEJJXIxMywgJXJzaQoJY2FsbHEJX21lbWNweQoJYWRkcQklcjE1LCAlcmJ4CglsZWFxCTEoJXIx NCksICVyZHgKCW1vdnEJJXJieCwgJXJkaQoJbW92cQktNTYoJXJicCksICVyc2kgICAgICAgICAj IyA4LWJ5dGUgUmVsb2FkCgljYWxscQlfbWVtY3B5CglhZGRxCSVyMTUsICVyMTIKCW1vdnEJLTY0 KCVyYnApLCAlcmF4ICAgICAgICAgIyMgOC1ieXRlIFJlbG9hZAoJbGVhcQkxKCVyYXgpLCAlcmR4 Cgltb3ZxCSVyMTIsICVyZGkKCW1vdnEJLTQ4KCVyYnApLCAlcnNpICAgICAgICAgIyMgOC1ieXRl IFJlbG9hZAoJY2FsbHEJX21lbWNweQoJbW92cQklcjE1LCAlcmF4CglhZGRxCSQyNCwgJXJzcAoJ cG9wcQklcmJ4Cglwb3BxCSVyMTIKCXBvcHEJJXIxMwoJcG9wcQklcjE0Cglwb3BxCSVyMTUKCXBv cHEJJXJicAoJcmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX3podHJpY2F0CgkuYWxpZ24JNCwg MHg5MApfemh0cmljYXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgQHpodHJpY2F0 CgkuY2ZpX3N0YXJ0cHJvYwojIyBCQiMwOgoJcHVzaHEJJXJicApMdG1wNDE6CgkuY2ZpX2RlZl9j ZmFfb2Zmc2V0IDE2Ckx0bXA0MjoKCS5jZmlfb2Zmc2V0ICVyYnAsIC0xNgoJbW92cQklcnNwLCAl cmJwCkx0bXA0MzoKCS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCglwdXNocQklcjE1CglwdXNo cQklcjE0CglwdXNocQklcjEzCglwdXNocQklcjEyCglwdXNocQklcmJ4CglzdWJxCSQyNCwgJXJz cApMdG1wNDQ6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNTYKTHRtcDQ1OgoJLmNmaV9vZmZzZXQgJXIx MiwgLTQ4Ckx0bXA0NjoKCS5jZmlfb2Zmc2V0ICVyMTMsIC00MApMdG1wNDc6CgkuY2ZpX29mZnNl dCAlcjE0LCAtMzIKTHRtcDQ4OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cgltb3ZxCSVyZHgsICVy MTUKCW1vdnEJJXIxNSwgLTQ4KCVyYnApICAgICAgICAgIyMgOC1ieXRlIFNwaWxsCgltb3ZxCSVy c2ksICVyMTQKCW1vdnEJJXIxNCwgLTU2KCVyYnApICAgICAgICAgIyMgOC1ieXRlIFNwaWxsCglt b3ZxCSVyZGksICVyMTMKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXJieAoJbW92cQklcjE0 LCAlcmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsICVyMTQKCWxlYXEJKCVyYngsJXIxNCks ICVyMTIKCW1vdnEJJXIxNSwgJXJkaQoJY2FsbHEJX3N0cmxlbgoJbW92cQklcmF4LCAtNjQoJXJi cCkgICAgICAgICAjIyA4LWJ5dGUgU3BpbGwKCWxlYXEJMSglcmF4LCVyMTIpLCAlcmRpCgljYWxs cQlfemhhbGxvYwoJbW92cQklcmF4LCAlcjE1CglsZWFxCTEoJXJieCksICVyZHgKCW1vdnEJJXIx NSwgJXJkaQoJbW92cQklcjEzLCAlcnNpCgljYWxscQlfbWVtY3B5CglhZGRxCSVyMTUsICVyYngK CWxlYXEJMSglcjE0KSwgJXJkeAoJbW92cQklcmJ4LCAlcmRpCgltb3ZxCS01NiglcmJwKSwgJXJz aSAgICAgICAgICMjIDgtYnl0ZSBSZWxvYWQKCWNhbGxxCV9tZW1jcHkKCWFkZHEJJXIxNSwgJXIx MgoJbW92cQktNjQoJXJicCksICVyYXggICAgICAgICAjIyA4LWJ5dGUgUmVsb2FkCglsZWFxCTEo JXJheCksICVyZHgKCW1vdnEJJXIxMiwgJXJkaQoJbW92cQktNDgoJXJicCksICVyc2kgICAgICAg ICAjIyA4LWJ5dGUgUmVsb2FkCgljYWxscQlfbWVtY3B5Cgltb3ZxCSVyMTUsICVyYXgKCWFkZHEJ JDI0LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjEzCglwb3BxCSVyMTQKCXBv cHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9ibAlfZHluY2F0Cgku YWxpZ24JNCwgMHg5MApfZHluY2F0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMg QGR5bmNhdAoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoKCXB1c2hxCSVyYnAKTHRtcDUyOgoJLmNm aV9kZWZfY2ZhX29mZnNldCAxNgpMdG1wNTM6CgkuY2ZpX29mZnNldCAlcmJwLCAtMTYKCW1vdnEJ JXJzcCwgJXJicApMdG1wNTQ6CgkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgJXJicAoJcHVzaHEJJXIx NQoJcHVzaHEJJXIxNAoJcHVzaHEJJXIxMwoJcHVzaHEJJXIxMgoJcHVzaHEJJXJieAoJcHVzaHEJ JXJheApMdG1wNTU6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNTYKTHRtcDU2OgoJLmNmaV9vZmZzZXQg JXIxMiwgLTQ4Ckx0bXA1NzoKCS5jZmlfb2Zmc2V0ICVyMTMsIC00MApMdG1wNTg6CgkuY2ZpX29m ZnNldCAlcjE0LCAtMzIKTHRtcDU5OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cgltb3ZxCSVyc2ks ICVyMTQKCW1vdnEJJXJkaSwgJXIxNQoJY2FsbHEJX3N0cmxlbgoJbW92cQklcmF4LCAlcmJ4Cglt b3ZxCSVyMTQsICVyZGkKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxMgoJbGVhcQkxKCVy YngsJXIxMiksICVyZGkKCWNhbGxxCV96aGFsbG9jCgltb3ZxCSVyYXgsICVyMTMKCWxlYXEJMSgl cmJ4KSwgJXJkeAoJbW92cQklcjEzLCAlcmRpCgltb3ZxCSVyMTUsICVyc2kKCWNhbGxxCV9tZW1j cHkKCWFkZHEJJXIxMywgJXJieAoJbGVhcQkxKCVyMTIpLCAlcmR4Cgltb3ZxCSVyYngsICVyZGkK CW1vdnEJJXIxNCwgJXJzaQoJY2FsbHEJX21lbWNweQoJbW92cQklcjEzLCAlcmF4CglhZGRxCSQ4 LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjEzCglwb3BxCSVyMTQKCXBvcHEJ JXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9ibAlfYmljYXQKCS5hbGln bgk0LCAweDkwCl9iaWNhdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBAYmlj YXQKCS5jZmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXA2MzoKCS5jZmlfZGVm X2NmYV9vZmZzZXQgMTYKTHRtcDY0OgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3As ICVyYnAKTHRtcDY1OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1c2hxCSVyMTUKCXB1 c2hxCSVyMTQKCXB1c2hxCSVyMTMKCXB1c2hxCSVyMTIKCXB1c2hxCSVyYngKCXB1c2hxCSVyYXgK THRtcDY2OgoJLmNmaV9vZmZzZXQgJXJieCwgLTU2Ckx0bXA2NzoKCS5jZmlfb2Zmc2V0ICVyMTIs IC00OApMdG1wNjg6CgkuY2ZpX29mZnNldCAlcjEzLCAtNDAKTHRtcDY5OgoJLmNmaV9vZmZzZXQg JXIxNCwgLTMyCkx0bXA3MDoKCS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92cQklcnNpLCAlcjE0 Cgltb3ZxCSVyZGksICVyMTUKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXJieAoJbW92cQkl cjE0LCAlcmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsICVyMTIKCWxlYXEJMSglcmJ4LCVy MTIpLCAlcmRpCgljYWxscQlfemFsbG9jCgltb3ZxCSVyYXgsICVyMTMKCWxlYXEJMSglcmJ4KSwg JXJkeAoJbW92cQklcjEzLCAlcmRpCgltb3ZxCSVyMTUsICVyc2kKCWNhbGxxCV9tZW1jcHkKCWFk ZHEJJXIxMywgJXJieAoJbGVhcQkxKCVyMTIpLCAlcmR4Cgltb3ZxCSVyYngsICVyZGkKCW1vdnEJ JXIxNCwgJXJzaQoJY2FsbHEJX21lbWNweQoJbW92cQklcjEzLCAlcmF4CglhZGRxCSQ4LCAlcnNw Cglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjEzCglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJ cG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9ibAlfZHVwc3RycGZ4CgkuYWxpZ24J NCwgMHg5MApfZHVwc3RycGZ4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgQGR1cHN0 cnBmeAoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoKCXB1c2hxCSVyYnAKTHRtcDc0OgoJLmNmaV9k ZWZfY2ZhX29mZnNldCAxNgpMdG1wNzU6CgkuY2ZpX29mZnNldCAlcmJwLCAtMTYKCW1vdnEJJXJz cCwgJXJicApMdG1wNzY6CgkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgJXJicAoJcHVzaHEJJXIxNQoJ cHVzaHEJJXIxNAoJcHVzaHEJJXJieAoJcHVzaHEJJXJheApMdG1wNzc6CgkuY2ZpX29mZnNldCAl cmJ4LCAtNDAKTHRtcDc4OgoJLmNmaV9vZmZzZXQgJXIxNCwgLTMyCkx0bXA3OToKCS5jZmlfb2Zm c2V0ICVyMTUsIC0yNAoJbW92bAklZXNpLCAlcjE1ZAoJbW92cQklcmRpLCAlcjE0CglsZWFsCTEo JXIxNSksICVlYXgKCW1vdnNscQklZWF4LCAlcmRpCgljYWxscQlfemhhbGxvYwoJbW92cQklcmF4 LCAlcmJ4Cgltb3ZzbHEJJXIxNWQsICVyMTUKCW1vdnEJJXJieCwgJXJkaQoJbW92cQklcjE0LCAl cnNpCgltb3ZxCSVyMTUsICVyZHgKCWNhbGxxCV9tZW1jcHkKCW1vdmIJJDAsICglcmJ4LCVyMTUp Cgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJDgsICVyc3AKCXBvcHEJJXJieAoJcG9wcQklcjE0Cglw b3BxCSVyMTUKCXBvcHEJJXJicAoJcmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX3p0cmR1cHBm eAoJLmFsaWduCTQsIDB4OTAKX3p0cmR1cHBmeDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMjIEB6dHJkdXBwZngKCS5jZmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXA4 MzoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDg0OgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2 Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDg1OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1 c2hxCSVyMTUKCXB1c2hxCSVyMTQKCXB1c2hxCSVyYngKCXB1c2hxCSVyYXgKTHRtcDg2OgoJLmNm aV9vZmZzZXQgJXJieCwgLTQwCkx0bXA4NzoKCS5jZmlfb2Zmc2V0ICVyMTQsIC0zMgpMdG1wODg6 CgkuY2ZpX29mZnNldCAlcjE1LCAtMjQKCW1vdmwJJWVzaSwgJXIxNWQKCW1vdnEJJXJkaSwgJXIx NAoJbGVhbAkxKCVyMTUpLCAlZWF4Cgltb3ZzbHEJJWVheCwgJXJkaQoJY2FsbHEJX3phbGxvYwoJ bW92cQklcmF4LCAlcmJ4Cgltb3ZzbHEJJXIxNWQsICVyMTUKCW1vdnEJJXJieCwgJXJkaQoJbW92 cQklcjE0LCAlcnNpCgltb3ZxCSVyMTUsICVyZHgKCWNhbGxxCV9tZW1jcHkKCW1vdmIJJDAsICgl cmJ4LCVyMTUpCgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJDgsICVyc3AKCXBvcHEJJXJieAoJcG9w cQklcjE0Cglwb3BxCSVyMTUKCXBvcHEJJXJicAoJcmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJ X2FwcHN0cgoJLmFsaWduCTQsIDB4OTAKX2FwcHN0cjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMjIEBhcHBzdHIKCS5jZmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0 bXA5MjoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDkzOgoJLmNmaV9vZmZzZXQgJXJicCwg LTE2Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDk0OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAK CXB1c2hxCSVyMTUKCXB1c2hxCSVyMTQKCXB1c2hxCSVyYngKCXB1c2hxCSVyYXgKTHRtcDk1OgoJ LmNmaV9vZmZzZXQgJXJieCwgLTQwCkx0bXA5NjoKCS5jZmlfb2Zmc2V0ICVyMTQsIC0zMgpMdG1w OTc6CgkuY2ZpX29mZnNldCAlcjE1LCAtMjQKCW1vdnEJJXJzaSwgJXIxNAoJbW92cQklcmRpLCAl cmJ4CgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsICVyMTUKCW1vdnEJJXIxNCwgJXJkaQoJY2Fs bHEJX3N0cmxlbgoJbGVhcQkxKCVyMTUsJXJheCksICVyc2kKCW1vdnEJJXJieCwgJXJkaQoJY2Fs bHEJX3JlYWxsb2MKCW1vdnEJJXJheCwgJXJkaQoJbW92cQklcjE0LCAlcnNpCgltb3ZxCSQtMSwg JXJkeAoJYWRkcQkkOCwgJXJzcAoJcG9wcQklcmJ4Cglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9w cQklcmJwCglqbXAJX19fc3RyY2F0X2NoayAgICAgICAgICAgIyMgVEFJTENBTEwKCS5jZmlfZW5k cHJvYwoKCS5nbG9ibAlfc3RyZW5kCgkuYWxpZ24JNCwgMHg5MApfc3RyZW5kOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyMgQHN0cmVuZAoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoK CXB1c2hxCSVyYnAKTHRtcDEwMToKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDEwMjoKCS5j Zmlfb2Zmc2V0ICVyYnAsIC0xNgoJbW92cQklcnNwLCAlcmJwCkx0bXAxMDM6CgkuY2ZpX2RlZl9j ZmFfcmVnaXN0ZXIgJXJicAoJcHVzaHEJJXJieAoJcHVzaHEJJXJheApMdG1wMTA0OgoJLmNmaV9v ZmZzZXQgJXJieCwgLTI0Cgltb3ZxCSVyZGksICVyYngKCWNtcGIJJDAsICglcmJ4KQoJamUJTEJC MTBfMgojIyBCQiMxOgoJbW92cQklcmJ4LCAlcmRpCgljYWxscQlfc3RybGVuCglsZWFxCS0xKCVy YXgsJXJieCksICVyYngKTEJCMTBfMjoKCW1vdnEJJXJieCwgJXJheAoJYWRkcQkkOCwgJXJzcAoJ cG9wcQklcmJ4Cglwb3BxCSVyYnAKCXJldAoJLmNmaV9lbmRwcm9jCgoKLnN1YnNlY3Rpb25zX3Zp YV9zeW1ib2xzCg== --089e013d1c46bbc9ee052081bbe9 Content-Type: application/octet-stream; name="out_if_smaller_t1.asm" Content-Disposition: attachment; filename="out_if_smaller_t1.asm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ieyhrf9u2 CS5zZWN0aW9uCV9fVEVYVCxfX3RleHQscmVndWxhcixwdXJlX2luc3RydWN0aW9ucwoJLmdsb2Js CV9kdXBzdHJpbmcKCS5hbGlnbgk0LCAweDkwCl9kdXBzdHJpbmc6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIyBAZHVwc3RyaW5nCgkuY2ZpX3N0YXJ0cHJvYwojIyBCQiMwOgoJcHVzaHEJ JXJicApMdG1wMzoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDQ6CgkuY2ZpX29mZnNldCAl cmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApMdG1wNToKCS5jZmlfZGVmX2NmYV9yZWdpc3RlciAl cmJwCglwdXNocQklcjE1CglwdXNocQklcjE0CglwdXNocQklcmJ4CglwdXNocQklcmF4Ckx0bXA2 OgoJLmNmaV9vZmZzZXQgJXJieCwgLTQwCkx0bXA3OgoJLmNmaV9vZmZzZXQgJXIxNCwgLTMyCkx0 bXA4OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cgltb3ZxCSVyZGksICVyMTQKCXhvcmwJJWVieCwg JWVieAoJdGVzdHEJJXIxNCwgJXIxNAoJamUJTEJCMF81CiMjIEJCIzE6Cgltb3ZxCSVyMTQsICVy ZGkKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxNQoJbGVhcQkxKCVyMTUpLCAlcmRpCglj YWxscQlfemhhbGxvYwoJbW92cQklcmF4LCAlcmJ4CglpbmNxCSVyMTUKCWplCUxCQjBfMgojIyBC QiM0OgoJbW92cQklcmJ4LCAlcmRpCgltb3ZxCSVyMTQsICVyc2kKCW1vdnEJJXIxNSwgJXJkeAoJ Y2FsbHEJX21lbWNweQoJam1wCUxCQjBfNQpMQkIwXzI6Cgl4b3JsCSVlYXgsICVlYXgKCS5hbGln bgk0LCAweDkwCkxCQjBfMzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyAlLnBy ZWhlYWRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgPT5UaGlz IElubmVyIExvb3AgSGVhZGVyOiBEZXB0aD0xCgltb3ZiCSglcjE0LCVyYXgpLCAlY2wKCW1vdmIJ JWNsLCAoJXJieCwlcmF4KQoJaW5jcQklcmF4Cgl0ZXN0YgklY2wsICVjbAoJam5lCUxCQjBfMwpM QkIwXzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgJS5sb29wZXhpdAoJbW92 cQklcmJ4LCAlcmF4CglhZGRxCSQ4LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXIxNAoJcG9wcQkl cjE1Cglwb3BxCSVyYnAKCXJldAoJLmNmaV9lbmRwcm9jCgoJLmdsb2JsCV96dHJkdXAKCS5hbGln bgk0LCAweDkwCl96dHJkdXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBAenRy ZHVwCgkuY2ZpX3N0YXJ0cHJvYwojIyBCQiMwOgoJcHVzaHEJJXJicApMdG1wMTI6CgkuY2ZpX2Rl Zl9jZmFfb2Zmc2V0IDE2Ckx0bXAxMzoKCS5jZmlfb2Zmc2V0ICVyYnAsIC0xNgoJbW92cQklcnNw LCAlcmJwCkx0bXAxNDoKCS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCglwdXNocQklcjE1Cglw dXNocQklcjE0CglwdXNocQklcmJ4CglwdXNocQklcmF4Ckx0bXAxNToKCS5jZmlfb2Zmc2V0ICVy YngsIC00MApMdG1wMTY6CgkuY2ZpX29mZnNldCAlcjE0LCAtMzIKTHRtcDE3OgoJLmNmaV9vZmZz ZXQgJXIxNSwgLTI0Cgltb3ZxCSVyZGksICVyMTQKCXhvcmwJJWVieCwgJWVieAoJdGVzdHEJJXIx NCwgJXIxNAoJamUJTEJCMV81CiMjIEJCIzE6Cgltb3ZxCSVyMTQsICVyZGkKCWNhbGxxCV9zdHJs ZW4KCW1vdnEJJXJheCwgJXIxNQoJbGVhcQkxKCVyMTUpLCAlcmRpCgljYWxscQlfemFsbG9jCglt b3ZxCSVyYXgsICVyYngKCWluY3EJJXIxNQoJamUJTEJCMV8yCiMjIEJCIzQ6Cgltb3ZxCSVyYngs ICVyZGkKCW1vdnEJJXIxNCwgJXJzaQoJbW92cQklcjE1LCAlcmR4CgljYWxscQlfbWVtY3B5Cglq bXAJTEJCMV81CkxCQjFfMjoKCXhvcmwJJWVheCwgJWVheAoJLmFsaWduCTQsIDB4OTAKTEJCMV8z OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUucHJlaGVhZGVyCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9vcCBIZWFk ZXI6IERlcHRoPTEKCW1vdmIJKCVyMTQsJXJheCksICVjbAoJbW92YgklY2wsICglcmJ4LCVyYXgp CglpbmNxCSVyYXgKCXRlc3RiCSVjbCwgJWNsCglqbmUJTEJCMV8zCkxCQjFfNTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIyAlLmxvb3BleGl0Cgltb3ZxCSVyYngsICVyYXgKCWFk ZHEJJDgsICVyc3AKCXBvcHEJJXJieAoJcG9wcQklcjE0Cglwb3BxCSVyMTUKCXBvcHEJJXJicAoJ cmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX3djc196dHJkdXAKCS5hbGlnbgk0LCAweDkwCl93 Y3NfenRyZHVwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBAd2NzX3p0cmR1cAoJLmNm aV9zdGFydHByb2MKIyMgQkIjMDoKCXB1c2hxCSVyYnAKTHRtcDIxOgoJLmNmaV9kZWZfY2ZhX29m ZnNldCAxNgpMdG1wMjI6CgkuY2ZpX29mZnNldCAlcmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApM dG1wMjM6CgkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgJXJicAoJcHVzaHEJJXIxNQoJcHVzaHEJJXIx NAoJcHVzaHEJJXIxMgoJcHVzaHEJJXJieApMdG1wMjQ6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNDgK THRtcDI1OgoJLmNmaV9vZmZzZXQgJXIxMiwgLTQwCkx0bXAyNjoKCS5jZmlfb2Zmc2V0ICVyMTQs IC0zMgpMdG1wMjc6CgkuY2ZpX29mZnNldCAlcjE1LCAtMjQKCW1vdnEJJXJkaSwgJXJieAoJeG9y bAklcjE0ZCwgJXIxNGQKCXRlc3RxCSVyYngsICVyYngKCWplCUxCQjJfNQojIyBCQiMxOgoJbW92 cQklcmJ4LCAlcmRpCgljYWxscQlfd2NzbGVuCgltb3ZxCSVyYXgsICVyMTIKCWxlYXEJNCgsJXIx Miw0KSwgJXIxNQoJaW5jcQklcjEyCgltb3ZxCSVyMTUsICVyZGkKCWNhbGxxCV96YWxsb2MKCW1v dnEJJXJheCwgJXIxNAoJdGVzdHEJJXIxMiwgJXIxMgoJamUJTEJCMl8yCiMjIEJCIzQ6Cgltb3Zx CSVyMTQsICVyZGkKCW1vdnEJJXJieCwgJXJzaQoJbW92cQklcjE1LCAlcmR4CgljYWxscQlfbWVt Y3B5CglqbXAJTEJCMl81CkxCQjJfMjoKCW1vdnEJJXIxNCwgJXJheAoJLmFsaWduCTQsIDB4OTAK TEJCMl8zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUucHJlaGVhZGVyCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9v cCBIZWFkZXI6IERlcHRoPTEKCW1vdmwJKCVyYngpLCAlZWN4Cgltb3ZsCSVlY3gsICglcmF4KQoJ YWRkcQkkNCwgJXJheAoJYWRkcQkkNCwgJXJieAoJdGVzdGwJJWVjeCwgJWVjeAoJam5lCUxCQjJf MwpMQkIyXzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgJS5sb29wZXhpdAoJ bW92cQklcjE0LCAlcmF4Cglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjE0Cglwb3BxCSVy MTUKCXBvcHEJJXJicAoJcmV0CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX3RyaWNhdAoJLmFsaWdu CTQsIDB4OTAKX3RyaWNhdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIEB0cmlj YXQKCS5jZmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXAzMToKCS5jZmlfZGVm X2NmYV9vZmZzZXQgMTYKTHRtcDMyOgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3As ICVyYnAKTHRtcDMzOgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1c2hxCSVyMTUKCXB1 c2hxCSVyMTQKCXB1c2hxCSVyMTMKCXB1c2hxCSVyMTIKCXB1c2hxCSVyYngKCXN1YnEJJDI0LCAl cnNwCkx0bXAzNDoKCS5jZmlfb2Zmc2V0ICVyYngsIC01NgpMdG1wMzU6CgkuY2ZpX29mZnNldCAl cjEyLCAtNDgKTHRtcDM2OgoJLmNmaV9vZmZzZXQgJXIxMywgLTQwCkx0bXAzNzoKCS5jZmlfb2Zm c2V0ICVyMTQsIC0zMgpMdG1wMzg6CgkuY2ZpX29mZnNldCAlcjE1LCAtMjQKCW1vdnEJJXJkeCwg JXIxNAoJbW92cQklcnNpLCAlcmJ4Cgltb3ZxCSVyZGksICVyMTMKCWNhbGxxCV9zdHJsZW4KCW1v dnEJJXJheCwgJXIxNQoJbW92cQklcmJ4LCAlcmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgs IC01NiglcmJwKSAgICAgICAgICMjIDgtYnl0ZSBTcGlsbAoJbGVhcQkoJXIxNSwlcmF4KSwgJXIx MgoJbW92cQklcjE0LCAlcmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsIC00OCglcmJwKSAg ICAgICAgICMjIDgtYnl0ZSBTcGlsbAoJbGVhcQkxKCVyYXgsJXIxMiksICVyZGkKCWNhbGxxCV96 YWxsb2MKCWluY3EJLTU2KCVyYnApICAgICAgICAgICAgICAgIyMgOC1ieXRlIEZvbGRlZCBTcGls bAoJaW5jcQktNDgoJXJicCkgICAgICAgICAgICAgICAjIyA4LWJ5dGUgRm9sZGVkIFNwaWxsCglt b3ZxCSVyMTUsICVyZHgKCWluY3EJJXJkeAoJamUJTEJCM18xCiMjIEJCIzM6Cgltb3ZxCSVyYXgs ICVyZGkKCW1vdnEJJXJheCwgLTY0KCVyYnApICAgICAgICAgIyMgOC1ieXRlIFNwaWxsCgltb3Zx CSVyMTMsICVyc2kKCWNhbGxxCV9tZW1jcHkKCW1vdnEJLTY0KCVyYnApLCAlcmF4ICAgICAgICAg IyMgOC1ieXRlIFJlbG9hZAoJam1wCUxCQjNfNApMQkIzXzE6Cgltb3ZxCSVyYXgsICVyZHgKCS5h bGlnbgk0LCAweDkwCkxCQjNfMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyAl LnByZWhlYWRlcjgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjID0+ VGhpcyBJbm5lciBMb29wIEhlYWRlcjogRGVwdGg9MQoJbW92YgkoJXIxMyksICVjbAoJbW92Ygkl Y2wsICglcmR4KQoJaW5jcQklcmR4CglpbmNxCSVyMTMKCXRlc3RiCSVjbCwgJWNsCglqbmUJTEJC M18yCkxCQjNfNDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyAlLmxvb3BleGl0 OQoJYWRkcQklcmF4LCAlcjE1Cgltb3ZxCS01NiglcmJwKSwgJXJkeCAgICAgICAgICMjIDgtYnl0 ZSBSZWxvYWQKCXRlc3RxCSVyZHgsICVyZHgKCWplCUxCQjNfNQojIyBCQiM2OgoJbW92cQklcjE1 LCAlcmRpCgltb3ZxCSVyYXgsICVyMTUKCW1vdnEJJXJieCwgJXJzaQoJY2FsbHEJX21lbWNweQoJ bW92cQklcjE1LCAlcmF4CglqbXAJTEJCM183CgkuYWxpZ24JNCwgMHg5MApMQkIzXzU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgJS5wcmVoZWFkZXI2CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9vcCBIZWFkZXI6IERl cHRoPTEKCW1vdmIJKCVyYngpLCAlY2wKCW1vdmIJJWNsLCAoJXIxNSkKCWluY3EJJXIxNQoJaW5j cQklcmJ4Cgl0ZXN0YgklY2wsICVjbAoJam5lCUxCQjNfNQpMQkIzXzc6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyMgJS5sb29wZXhpdDcKCWFkZHEJJXJheCwgJXIxMgoJbW92cQkt NDgoJXJicCksICVyZHggICAgICAgICAjIyA4LWJ5dGUgUmVsb2FkCgl0ZXN0cQklcmR4LCAlcmR4 CglqZQlMQkIzXzgKIyMgQkIjOToKCW1vdnEJJXIxMiwgJXJkaQoJbW92cQklcmF4LCAlcmJ4Cglt b3ZxCSVyMTQsICVyc2kKCWNhbGxxCV9tZW1jcHkKCW1vdnEJJXJieCwgJXJheAoJam1wCUxCQjNf MTAKCS5hbGlnbgk0LCAweDkwCkxCQjNfODogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIyAlLnByZWhlYWRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyMgPT5UaGlzIElubmVyIExvb3AgSGVhZGVyOiBEZXB0aD0xCgltb3ZiCSglcjE0KSwgJWNsCglt b3ZiCSVjbCwgKCVyMTIpCglpbmNxCSVyMTIKCWluY3EJJXIxNAoJdGVzdGIJJWNsLCAlY2wKCWpu ZQlMQkIzXzgKTEJCM18xMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUubG9v cGV4aXQKCWFkZHEJJDI0LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjEzCglw b3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9i bAlfemh0cmljYXQKCS5hbGlnbgk0LCAweDkwCl96aHRyaWNhdDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIyBAemh0cmljYXQKCS5jZmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQkl cmJwCkx0bXA0MjoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRtcDQzOgoJLmNmaV9vZmZzZXQg JXJicCwgLTE2Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDQ0OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVy ICVyYnAKCXB1c2hxCSVyMTUKCXB1c2hxCSVyMTQKCXB1c2hxCSVyMTMKCXB1c2hxCSVyMTIKCXB1 c2hxCSVyYngKCXN1YnEJJDI0LCAlcnNwCkx0bXA0NToKCS5jZmlfb2Zmc2V0ICVyYngsIC01NgpM dG1wNDY6CgkuY2ZpX29mZnNldCAlcjEyLCAtNDgKTHRtcDQ3OgoJLmNmaV9vZmZzZXQgJXIxMywg LTQwCkx0bXA0ODoKCS5jZmlfb2Zmc2V0ICVyMTQsIC0zMgpMdG1wNDk6CgkuY2ZpX29mZnNldCAl cjE1LCAtMjQKCW1vdnEJJXJkeCwgJXIxNAoJbW92cQklcnNpLCAlcmJ4Cgltb3ZxCSVyZGksICVy MTMKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxNQoJbW92cQklcmJ4LCAlcmRpCgljYWxs cQlfc3RybGVuCgltb3ZxCSVyYXgsIC01NiglcmJwKSAgICAgICAgICMjIDgtYnl0ZSBTcGlsbAoJ bGVhcQkoJXIxNSwlcmF4KSwgJXIxMgoJbW92cQklcjE0LCAlcmRpCgljYWxscQlfc3RybGVuCglt b3ZxCSVyYXgsIC00OCglcmJwKSAgICAgICAgICMjIDgtYnl0ZSBTcGlsbAoJbGVhcQkxKCVyYXgs JXIxMiksICVyZGkKCWNhbGxxCV96aGFsbG9jCglpbmNxCS01NiglcmJwKSAgICAgICAgICAgICAg ICMjIDgtYnl0ZSBGb2xkZWQgU3BpbGwKCWluY3EJLTQ4KCVyYnApICAgICAgICAgICAgICAgIyMg OC1ieXRlIEZvbGRlZCBTcGlsbAoJbW92cQklcjE1LCAlcmR4CglpbmNxCSVyZHgKCWplCUxCQjRf MQojIyBCQiMzOgoJbW92cQklcmF4LCAlcmRpCgltb3ZxCSVyYXgsIC02NCglcmJwKSAgICAgICAg ICMjIDgtYnl0ZSBTcGlsbAoJbW92cQklcjEzLCAlcnNpCgljYWxscQlfbWVtY3B5Cgltb3ZxCS02 NCglcmJwKSwgJXJheCAgICAgICAgICMjIDgtYnl0ZSBSZWxvYWQKCWptcAlMQkI0XzQKTEJCNF8x OgoJbW92cQklcmF4LCAlcmR4CgkuYWxpZ24JNCwgMHg5MApMQkI0XzI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyMgJS5wcmVoZWFkZXI4CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9vcCBIZWFkZXI6IERlcHRoPTEKCW1v dmIJKCVyMTMpLCAlY2wKCW1vdmIJJWNsLCAoJXJkeCkKCWluY3EJJXJkeAoJaW5jcQklcjEzCgl0 ZXN0YgklY2wsICVjbAoJam5lCUxCQjRfMgpMQkI0XzQ6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyMgJS5sb29wZXhpdDkKCWFkZHEJJXJheCwgJXIxNQoJbW92cQktNTYoJXJicCks ICVyZHggICAgICAgICAjIyA4LWJ5dGUgUmVsb2FkCgl0ZXN0cQklcmR4LCAlcmR4CglqZQlMQkI0 XzUKIyMgQkIjNjoKCW1vdnEJJXIxNSwgJXJkaQoJbW92cQklcmF4LCAlcjE1Cgltb3ZxCSVyYngs ICVyc2kKCWNhbGxxCV9tZW1jcHkKCW1vdnEJJXIxNSwgJXJheAoJam1wCUxCQjRfNwoJLmFsaWdu CTQsIDB4OTAKTEJCNF81OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUucHJl aGVhZGVyNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgPT5UaGlz IElubmVyIExvb3AgSGVhZGVyOiBEZXB0aD0xCgltb3ZiCSglcmJ4KSwgJWNsCgltb3ZiCSVjbCwg KCVyMTUpCglpbmNxCSVyMTUKCWluY3EJJXJieAoJdGVzdGIJJWNsLCAlY2wKCWpuZQlMQkI0XzUK TEJCNF83OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUubG9vcGV4aXQ3Cglh ZGRxCSVyYXgsICVyMTIKCW1vdnEJLTQ4KCVyYnApLCAlcmR4ICAgICAgICAgIyMgOC1ieXRlIFJl bG9hZAoJdGVzdHEJJXJkeCwgJXJkeAoJamUJTEJCNF84CiMjIEJCIzk6Cgltb3ZxCSVyMTIsICVy ZGkKCW1vdnEJJXJheCwgJXJieAoJbW92cQklcjE0LCAlcnNpCgljYWxscQlfbWVtY3B5Cgltb3Zx CSVyYngsICVyYXgKCWptcAlMQkI0XzEwCgkuYWxpZ24JNCwgMHg5MApMQkI0Xzg6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyMgJS5wcmVoZWFkZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMjID0+VGhpcyBJbm5lciBMb29wIEhlYWRlcjogRGVwdGg9 MQoJbW92YgkoJXIxNCksICVjbAoJbW92YgklY2wsICglcjEyKQoJaW5jcQklcjEyCglpbmNxCSVy MTQKCXRlc3RiCSVjbCwgJWNsCglqbmUJTEJCNF84CkxCQjRfMTA6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIyAlLmxvb3BleGl0CglhZGRxCSQyNCwgJXJzcAoJcG9wcQklcmJ4Cglw b3BxCSVyMTIKCXBvcHEJJXIxMwoJcG9wcQklcjE0Cglwb3BxCSVyMTUKCXBvcHEJJXJicAoJcmV0 CgkuY2ZpX2VuZHByb2MKCgkuZ2xvYmwJX2R5bmNhdAoJLmFsaWduCTQsIDB4OTAKX2R5bmNhdDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIEBkeW5jYXQKCS5jZmlfc3RhcnRwcm9j CiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXA1MzoKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKTHRt cDU0OgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDU1OgoJLmNm aV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1c2hxCSVyMTUKCXB1c2hxCSVyMTQKCXB1c2hxCSVy MTMKCXB1c2hxCSVyMTIKCXB1c2hxCSVyYngKCXB1c2hxCSVyYXgKTHRtcDU2OgoJLmNmaV9vZmZz ZXQgJXJieCwgLTU2Ckx0bXA1NzoKCS5jZmlfb2Zmc2V0ICVyMTIsIC00OApMdG1wNTg6CgkuY2Zp X29mZnNldCAlcjEzLCAtNDAKTHRtcDU5OgoJLmNmaV9vZmZzZXQgJXIxNCwgLTMyCkx0bXA2MDoK CS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92cQklcnNpLCAlcjE0Cgltb3ZxCSVyZGksICVyYngK CWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxMwoJbW92cQklcjE0LCAlcmRpCgljYWxscQlf c3RybGVuCgltb3ZxCSVyYXgsICVyMTIKCWxlYXEJMSglcjEzLCVyMTIpLCAlcmRpCgljYWxscQlf emhhbGxvYwoJbW92cQklcmF4LCAlcjE1CglpbmNxCSVyMTIKCW1vdnEJJXIxMywgJXJkeAoJaW5j cQklcmR4CglqZQlMQkI1XzEKIyMgQkIjMzoKCW1vdnEJJXIxNSwgJXJkaQoJbW92cQklcmJ4LCAl cnNpCgljYWxscQlfbWVtY3B5CglqbXAJTEJCNV80CkxCQjVfMToKCW1vdnEJJXIxNSwgJXJheAoJ LmFsaWduCTQsIDB4OTAKTEJCNV8yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMj ICUucHJlaGVhZGVyMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMg PT5UaGlzIElubmVyIExvb3AgSGVhZGVyOiBEZXB0aD0xCgltb3ZiCSglcmJ4KSwgJWNsCgltb3Zi CSVjbCwgKCVyYXgpCglpbmNxCSVyYXgKCWluY3EJJXJieAoJdGVzdGIJJWNsLCAlY2wKCWpuZQlM QkI1XzIKTEJCNV80OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjICUubG9vcGV4 aXQ0CglhZGRxCSVyMTUsICVyMTMKCXRlc3RxCSVyMTIsICVyMTIKCWplCUxCQjVfNQojIyBCQiM2 OgoJbW92cQklcjEzLCAlcmRpCgltb3ZxCSVyMTQsICVyc2kKCW1vdnEJJXIxMiwgJXJkeAoJY2Fs bHEJX21lbWNweQoJam1wCUxCQjVfNwoJLmFsaWduCTQsIDB4OTAKTEJCNV81OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMjICUucHJlaGVhZGVyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9vcCBIZWFkZXI6IERlcHRoPTEK CW1vdmIJKCVyMTQpLCAlYWwKCW1vdmIJJWFsLCAoJXIxMykKCWluY3EJJXIxMwoJaW5jcQklcjE0 Cgl0ZXN0YgklYWwsICVhbAoJam5lCUxCQjVfNQpMQkI1Xzc6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyMgJS5sb29wZXhpdAoJbW92cQklcjE1LCAlcmF4CglhZGRxCSQ4LCAlcnNw Cglwb3BxCSVyYngKCXBvcHEJJXIxMgoJcG9wcQklcjEzCglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJ cG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9ibAlfYmljYXQKCS5hbGlnbgk0LCAw eDkwCl9iaWNhdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBAYmljYXQKCS5j Zmlfc3RhcnRwcm9jCiMjIEJCIzA6CglwdXNocQklcmJwCkx0bXA2NDoKCS5jZmlfZGVmX2NmYV9v ZmZzZXQgMTYKTHRtcDY1OgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3AsICVyYnAK THRtcDY2OgoJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyICVyYnAKCXB1c2hxCSVyMTUKCXB1c2hxCSVy MTQKCXB1c2hxCSVyMTMKCXB1c2hxCSVyMTIKCXB1c2hxCSVyYngKCXB1c2hxCSVyYXgKTHRtcDY3 OgoJLmNmaV9vZmZzZXQgJXJieCwgLTU2Ckx0bXA2ODoKCS5jZmlfb2Zmc2V0ICVyMTIsIC00OApM dG1wNjk6CgkuY2ZpX29mZnNldCAlcjEzLCAtNDAKTHRtcDcwOgoJLmNmaV9vZmZzZXQgJXIxNCwg LTMyCkx0bXA3MToKCS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92cQklcnNpLCAlcjE0Cgltb3Zx CSVyZGksICVyYngKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxMwoJbW92cQklcjE0LCAl cmRpCgljYWxscQlfc3RybGVuCgltb3ZxCSVyYXgsICVyMTIKCWxlYXEJMSglcjEzLCVyMTIpLCAl cmRpCgljYWxscQlfemFsbG9jCgltb3ZxCSVyYXgsICVyMTUKCWluY3EJJXIxMgoJbW92cQklcjEz LCAlcmR4CglpbmNxCSVyZHgKCWplCUxCQjZfMQojIyBCQiMzOgoJbW92cQklcjE1LCAlcmRpCglt b3ZxCSVyYngsICVyc2kKCWNhbGxxCV9tZW1jcHkKCWptcAlMQkI2XzQKTEJCNl8xOgoJbW92cQkl cjE1LCAlcmF4CgkuYWxpZ24JNCwgMHg5MApMQkI2XzI6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyMgJS5wcmVoZWFkZXIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIyA9PlRoaXMgSW5uZXIgTG9vcCBIZWFkZXI6IERlcHRoPTEKCW1vdmIJKCVyYngp LCAlY2wKCW1vdmIJJWNsLCAoJXJheCkKCWluY3EJJXJheAoJaW5jcQklcmJ4Cgl0ZXN0YgklY2ws ICVjbAoJam5lCUxCQjZfMgpMQkI2XzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyMgJS5sb29wZXhpdDQKCWFkZHEJJXIxNSwgJXIxMwoJdGVzdHEJJXIxMiwgJXIxMgoJamUJTEJC Nl81CiMjIEJCIzY6Cgltb3ZxCSVyMTMsICVyZGkKCW1vdnEJJXIxNCwgJXJzaQoJbW92cQklcjEy LCAlcmR4CgljYWxscQlfbWVtY3B5CglqbXAJTEJCNl83CgkuYWxpZ24JNCwgMHg5MApMQkI2XzU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgJS5wcmVoZWFkZXIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjID0+VGhpcyBJbm5lciBMb29wIEhlYWRl cjogRGVwdGg9MQoJbW92YgkoJXIxNCksICVhbAoJbW92YgklYWwsICglcjEzKQoJaW5jcQklcjEz CglpbmNxCSVyMTQKCXRlc3RiCSVhbCwgJWFsCglqbmUJTEJCNl81CkxCQjZfNzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIyAlLmxvb3BleGl0Cgltb3ZxCSVyMTUsICVyYXgKCWFk ZHEJJDgsICVyc3AKCXBvcHEJJXJieAoJcG9wcQklcjEyCglwb3BxCSVyMTMKCXBvcHEJJXIxNAoJ cG9wcQklcjE1Cglwb3BxCSVyYnAKCXJldAoJLmNmaV9lbmRwcm9jCgoJLmdsb2JsCV9kdXBzdHJw ZngKCS5hbGlnbgk0LCAweDkwCl9kdXBzdHJwZng6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIyBAZHVwc3RycGZ4CgkuY2ZpX3N0YXJ0cHJvYwojIyBCQiMwOgoJcHVzaHEJJXJicApMdG1w NzU6CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ckx0bXA3NjoKCS5jZmlfb2Zmc2V0ICVyYnAsIC0x NgoJbW92cQklcnNwLCAlcmJwCkx0bXA3NzoKCS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCglw dXNocQklcjE1CglwdXNocQklcjE0CglwdXNocQklcmJ4CglwdXNocQklcmF4Ckx0bXA3ODoKCS5j Zmlfb2Zmc2V0ICVyYngsIC00MApMdG1wNzk6CgkuY2ZpX29mZnNldCAlcjE0LCAtMzIKTHRtcDgw OgoJLmNmaV9vZmZzZXQgJXIxNSwgLTI0Cgltb3ZsCSVlc2ksICVyMTVkCgltb3ZxCSVyZGksICVy MTQKCWxlYWwJMSglcjE1KSwgJWVheAoJbW92c2xxCSVlYXgsICVyZGkKCWNhbGxxCV96aGFsbG9j Cgltb3ZxCSVyYXgsICVyYngKCW1vdnNscQklcjE1ZCwgJXIxNQoJbW92cQklcmJ4LCAlcmRpCglt b3ZxCSVyMTQsICVyc2kKCW1vdnEJJXIxNSwgJXJkeAoJY2FsbHEJX21lbWNweQoJbW92YgkkMCwg KCVyYngsJXIxNSkKCW1vdnEJJXJieCwgJXJheAoJYWRkcQkkOCwgJXJzcAoJcG9wcQklcmJ4Cglw b3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJvYwoKCS5nbG9i bAlfenRyZHVwcGZ4CgkuYWxpZ24JNCwgMHg5MApfenRyZHVwcGZ4OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyMgQHp0cmR1cHBmeAoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoKCXB1c2hx CSVyYnAKTHRtcDg0OgoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgpMdG1wODU6CgkuY2ZpX29mZnNl dCAlcmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApMdG1wODY6CgkuY2ZpX2RlZl9jZmFfcmVnaXN0 ZXIgJXJicAoJcHVzaHEJJXIxNQoJcHVzaHEJJXIxNAoJcHVzaHEJJXJieAoJcHVzaHEJJXJheApM dG1wODc6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNDAKTHRtcDg4OgoJLmNmaV9vZmZzZXQgJXIxNCwg LTMyCkx0bXA4OToKCS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92bAklZXNpLCAlcjE1ZAoJbW92 cQklcmRpLCAlcjE0CglsZWFsCTEoJXIxNSksICVlYXgKCW1vdnNscQklZWF4LCAlcmRpCgljYWxs cQlfemFsbG9jCgltb3ZxCSVyYXgsICVyYngKCW1vdnNscQklcjE1ZCwgJXIxNQoJbW92cQklcmJ4 LCAlcmRpCgltb3ZxCSVyMTQsICVyc2kKCW1vdnEJJXIxNSwgJXJkeAoJY2FsbHEJX21lbWNweQoJ bW92YgkkMCwgKCVyYngsJXIxNSkKCW1vdnEJJXJieCwgJXJheAoJYWRkcQkkOCwgJXJzcAoJcG9w cQklcmJ4Cglwb3BxCSVyMTQKCXBvcHEJJXIxNQoJcG9wcQklcmJwCglyZXQKCS5jZmlfZW5kcHJv YwoKCS5nbG9ibAlfYXBwc3RyCgkuYWxpZ24JNCwgMHg5MApfYXBwc3RyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyMgQGFwcHN0cgoJLmNmaV9zdGFydHByb2MKIyMgQkIjMDoKCXB1 c2hxCSVyYnAKTHRtcDkzOgoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgpMdG1wOTQ6CgkuY2ZpX29m ZnNldCAlcmJwLCAtMTYKCW1vdnEJJXJzcCwgJXJicApMdG1wOTU6CgkuY2ZpX2RlZl9jZmFfcmVn aXN0ZXIgJXJicAoJcHVzaHEJJXIxNQoJcHVzaHEJJXIxNAoJcHVzaHEJJXJieAoJcHVzaHEJJXJh eApMdG1wOTY6CgkuY2ZpX29mZnNldCAlcmJ4LCAtNDAKTHRtcDk3OgoJLmNmaV9vZmZzZXQgJXIx NCwgLTMyCkx0bXA5ODoKCS5jZmlfb2Zmc2V0ICVyMTUsIC0yNAoJbW92cQklcnNpLCAlcjE0Cglt b3ZxCSVyZGksICVyYngKCWNhbGxxCV9zdHJsZW4KCW1vdnEJJXJheCwgJXIxNQoJbW92cQklcjE0 LCAlcmRpCgljYWxscQlfc3RybGVuCglsZWFxCTEoJXIxNSwlcmF4KSwgJXJzaQoJbW92cQklcmJ4 LCAlcmRpCgljYWxscQlfcmVhbGxvYwoJbW92cQklcmF4LCAlcmRpCgltb3ZxCSVyMTQsICVyc2kK CW1vdnEJJC0xLCAlcmR4CglhZGRxCSQ4LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXIxNAoJcG9w cQklcjE1Cglwb3BxCSVyYnAKCWptcAlfX19zdHJjYXRfY2hrICAgICAgICAgICAjIyBUQUlMQ0FM TAoJLmNmaV9lbmRwcm9jCgoJLmdsb2JsCV9zdHJlbmQKCS5hbGlnbgk0LCAweDkwCl9zdHJlbmQ6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBAc3RyZW5kCgkuY2ZpX3N0YXJ0cHJv YwojIyBCQiMwOgoJcHVzaHEJJXJicApMdG1wMTAyOgoJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgpM dG1wMTAzOgoJLmNmaV9vZmZzZXQgJXJicCwgLTE2Cgltb3ZxCSVyc3AsICVyYnAKTHRtcDEwNDoK CS5jZmlfZGVmX2NmYV9yZWdpc3RlciAlcmJwCglwdXNocQklcmJ4CglwdXNocQklcmF4Ckx0bXAx MDU6CgkuY2ZpX29mZnNldCAlcmJ4LCAtMjQKCW1vdnEJJXJkaSwgJXJieAoJY21wYgkkMCwgKCVy YngpCglqZQlMQkIxMF8yCiMjIEJCIzE6Cgltb3ZxCSVyYngsICVyZGkKCWNhbGxxCV9zdHJsZW4K CWxlYXEJLTEoJXJheCwlcmJ4KSwgJXJieApMQkIxMF8yOgoJbW92cQklcmJ4LCAlcmF4CglhZGRx CSQ4LCAlcnNwCglwb3BxCSVyYngKCXBvcHEJJXJicAoJcmV0CgkuY2ZpX2VuZHByb2MKCgouc3Vi c2VjdGlvbnNfdmlhX3N5bWJvbHMK --089e013d1c46bbc9ee052081bbe9 Content-Type: application/octet-stream; name="opttest3.zsh" Content-Disposition: attachment; filename="opttest3.zsh" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ieyi4vvp3 IyEvdXNyL2xvY2FsL2Jpbi96c2gtMGNwbWVtLTUuMS4xLWRldi0wCiMhL3Vzci9sb2NhbC9iaW4v enNoLTFjcG1lbS01LjEuMS1kZXYtMAoKem1vZGxvYWQgenNoL3pwcm9mCgpzdHJ0ZXN0KCkgewog ICAgYT0iIgoKICAgIGk9NTAwMAogICAgd2hpbGUgKCggaSAtLSApKTsgZG8KICAgICAgICBiPSRh CiAgICAgICAgYSs9IiRpIgogICAgZG9uZQp9CgpzdHJ0ZXN0CnN0cnRlc3QKc3RydGVzdApzdHJ0 ZXN0CnN0cnRlc3QKCnpwcm9mCg== --089e013d1c46bbc9ee052081bbe9--