From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8365 invoked by alias); 14 Apr 2011 18:00:08 -0000 Received: (qmail 8067 invoked by uid 22791); 14 Apr 2011 18:00:01 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_99,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SARE_HTML_INV_TAG,TW_AV,TW_VX,TW_XV,TW_ZJ,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pz0-f47.google.com (HELO mail-pz0-f47.google.com) (209.85.210.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Apr 2011 17:59:48 +0000 Received: by pzk35 with SMTP id 35so703964pzk.20 for ; Thu, 14 Apr 2011 10:59:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.150.32 with SMTP id x32mr304214wfd.287.1302803612081; Thu, 14 Apr 2011 10:53:32 -0700 (PDT) Received: by 10.142.87.14 with HTTP; Thu, 14 Apr 2011 10:53:02 -0700 (PDT) Date: Thu, 14 Apr 2011 18:00:00 -0000 Message-ID: Subject: [PATCH 8/n, i386]: Merge SSE and AVX patterns using "enable" attribute. From: Uros Bizjak To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=000e0cd14f98829f0504a0e49a30 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 X-SW-Source: 2011-04/txt/msg01108.txt.bz2 --000e0cd14f98829f0504a0e49a30 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1541 Hello! Attached patch converts "Intel SSE4.1 instructions" and remaining sections. 2011-04-14 Uros Bizjak * config/i386/sse.md (sse4_1): New mode attribute. (_blend): Macroize from avx_blend and sse4_1_blend using VF mode iterator. (_blendv): Macroize from avx_blendv and sse4_1_blendv using VF mode iterator. (_dp): Macroize from avx_dp and sse4_1_dp using VF mode iterator. (sse4_1_mpsadbw): Merge with *avx_mpsadbw. (sse4_1_packusdw): Merge with *avx_packusdw. (sse4_1_pblendvb): Merge with *avx_pblendvb. (sse4_1_pblendw): Merge with *avx_pblendw. (avx_vtest): Use VF mode iterator. (_round): Macroize from avx_round256 and sse4_1_round using VF mode iterator. (sse4_1_round): Merge with *avx_round. (aesenc): Merge with *avx_aesenc. (aesenclast): Merge with *avx_aesenclast. (aesdec): Merge with *avx_aesdec. (aesdeclast): Merge with *avx_aesdeclast. (pclmulqdq): Merge with *pclmulqdq. * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): New predicate. (nonimm_not_xmm0_operand_maybe_avx): Ditto. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32} AVX target. Uros. --000e0cd14f98829f0504a0e49a30 Content-Type: text/plain; charset=US-ASCII; name="s.diff.txt" Content-Disposition: attachment; filename="s.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmhzlp6k0 Content-length: 31086 SW5kZXg6IHByZWRpY2F0ZXMubWQKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcHJlZGljYXRlcy5tZAkocmV2aXNpb24gMTcyNDM2KQorKysgcHJlZGlj YXRlcy5tZAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDExICsxMDYsMjMgQEAK ICAgcmV0dXJuICFSRUdfUCAob3ApIHx8IFJFR05PIChvcCkgIT0gRklSU1Rf U1NFX1JFRzsKIH0pCiAKLTs7IEFzIGFib3ZlLCBidXQgYWxsb3cgbm9uaW1t ZWRpYXRlIG9wZXJhbmRzLgorOzsgQXMgYWJvdmUsIGJ1dCBhbHNvIGFsbG93 IG1lbW9yeSBvcGVyYW5kcy4KIChkZWZpbmVfcHJlZGljYXRlICJub25pbW1f bm90X3htbTBfb3BlcmFuZCIKICAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJt ZW1vcnlfb3BlcmFuZCIpCiAgICAgICAgKG1hdGNoX29wZXJhbmQgMCAicmVn X25vdF94bW0wX29wZXJhbmQiKSkpCiAKKzs7IFJldHVybiB0cnVlIGlmIG9w IGlzIG5vdCB4bW0wIHJlZ2lzdGVyLCBidXQgb25seSBmb3Igbm9uLUFWWCB0 YXJnZXRzLgorKGRlZmluZV9wcmVkaWNhdGUgInJlZ19ub3RfeG1tMF9vcGVy YW5kX21heWJlX2F2eCIKKyAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAi VEFSR0VUX0FWWCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJf b3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnX25vdF94bW0w X29wZXJhbmQiKSkpCisKKzs7IEFzIGFib3ZlLCBidXQgYWxzbyBhbGxvdyBt ZW1vcnkgb3BlcmFuZHMuCisoZGVmaW5lX3ByZWRpY2F0ZSAibm9uaW1tX25v dF94bW0wX29wZXJhbmRfbWF5YmVfYXZ4IgorICAoaWZfdGhlbl9lbHNlICht YXRjaF90ZXN0ICJUQVJHRVRfQVZYIikKKyAgICAobWF0Y2hfb3BlcmFuZCAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQg MCAibm9uaW1tX25vdF94bW0wX29wZXJhbmQiKSkpCisKIDs7IFJldHVybiB0 cnVlIGlmIFZBTFVFIGNhbiBiZSBzdG9yZWQgaW4gYSBzaWduIGV4dGVuZGVk IGltbWVkaWF0ZSBmaWVsZC4KIChkZWZpbmVfcHJlZGljYXRlICJ4ODZfNjRf aW1tZWRpYXRlX29wZXJhbmQiCiAgIChtYXRjaF9jb2RlICJjb25zdF9pbnQs c3ltYm9sX3JlZixsYWJlbF9yZWYsY29uc3QiKQpJbmRleDogc3NlLm1kCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHNzZS5tZAkocmV2aXNpb24gMTcy NDM2KQorKysgc3NlLm1kCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0 LDEwIEBACiAgICAoVjRTRiAic3NlIikgKFYyREYgInNzZTIiKQogICAgKFY4 U0YgImF2eCIpIChWNERGICJhdngiKV0pCiAKKyhkZWZpbmVfbW9kZV9hdHRy IHNzZTRfMQorICBbKFY0U0YgInNzZTRfMSIpIChWMkRGICJzc2U0XzEiKQor ICAgKFY4U0YgImF2eCIpIChWNERGICJhdngiKV0pCisKIDs7IE1hcHBpbmcg ZnJvbSBpbnRlZ2VyIHZlY3RvciBtb2RlIHRvIG1uZW1vbmljIHN1ZmZpeAog KGRlZmluZV9tb2RlX2F0dHIgc3NldmVjc2l6ZSBbKFYxNlFJICJiIikgKFY4 SEkgInciKSAoVjRTSSAiZCIpIChWMkRJICJxIildKQogCkBAIC04MTI0LDkx ICs4MTI4LDYwIEBACiA7OwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiAK LShkZWZpbmVfaW5zbiAiYXZ4X2JsZW5kPHNzZW1vZGVzdWZmaXg+PGF2eG1v ZGVzdWZmaXg+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpBVlhN T0RFRjJQCi0JICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6QVZY TU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JICAobWF0Y2hf b3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVuZGJpdHM+X29wZXJhbmQi ICJuIikpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmQ8c3NlbW9kZXN1 ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFso c2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNl dF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5lX2lu c24gImF2eF9ibGVuZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4i Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFWWE1PREVGMlAgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOkFWWE1PREVGMlAKLQkgIFso bWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgInJlZ2lzdGVyX29wZXJhbmQi ICJ4IikKLQkgICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgIChtYXRjaF9vcGVyYW5kOkFW WE1PREVGMlAgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKV0KLQkgIFVOU1BF Q19CTEVORFYpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmR2PHNzZW1v ZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9Igot ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKLSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAg IChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLQotKGRlZmlu ZV9pbnNuICJzc2U0XzFfYmxlbmQ8c3NlbW9kZXN1ZmZpeD4iCi0gIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj14IikKLQkodmVjX21lcmdlOlNTRU1PREVGMlAKLQkgIChtYXRjaF9v cGVyYW5kOlNTRU1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikKLQkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0 XzBfdG9fPGJsZW5kYml0cz5fb3BlcmFuZCIgIm4iKSkpXQorKGRlZmluZV9p bnNuICI8c3NlNF8xPl9ibGVuZDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3Vm Zml4PiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkYgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14LHgiKQorCSh2ZWNfbWVyZ2U6VkYKKwkgIChtYXRjaF9v cGVyYW5kOlZGIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQor CSAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs eCIpCisJICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVu ZGJpdHM+X29wZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIK LSAgImJsZW5kPHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIs ICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICJACisgICBibGVuZDxzc2Vtb2Rlc3VmZml4 Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZibGVuZDxzc2Vtb2Rl c3VmZml4Plx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEsKiIp CisgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgKHNldF9h dHRyICJwcmVmaXgiICJvcmlnLHZleCIpCiAgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAic3NlNF8xX2JsZW5kdjxz c2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9E RUYyUCAwICJyZWdfbm90X3htbTBfb3BlcmFuZCIgIj14IikKLQkodW5zcGVj OlNTRU1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiMCIpCi0JICAgKG1hdGNoX29wZXJh bmQ6U1NFTU9ERUYyUCAyICJub25pbW1fbm90X3htbTBfb3BlcmFuZCIgInht IikKLQkgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDMgInJlZ2lzdGVy X29wZXJhbmQiICJZeiIpXQorKGRlZmluZV9pbnNuICI8c3NlNF8xPl9ibGVu ZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZGIDAgInJlZ19ub3RfeG1tMF9vcGVyYW5kX21heWJl X2F2eCIgIj14LHgiKQorCSh1bnNwZWM6VkYKKwkgIFsobWF0Y2hfb3BlcmFu ZDpWRiAxICJyZWdfbm90X3htbTBfb3BlcmFuZF9tYXliZV9hdngiICIwLHgi KQorCSAgIChtYXRjaF9vcGVyYW5kOlZGIDIgIm5vbmltbV9ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFu ZDpWRiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiWXoseCIpXQogCSAgVU5TUEVD X0JMRU5EVikpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgImJsZW5kdjxzc2Vt b2Rlc3VmZml4Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICJACisgICBibGVuZHY8c3NlbW9kZXN1ZmZpeD5c dHslMywgJTIsICUwfCUwLCAlMiwgJTN9CisgICB2YmxlbmR2PHNzZW1vZGVz dWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICBb KHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSwqIikK ICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0 dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIg IjxNT0RFPiIpXSkKIAotKGRlZmluZV9pbnNuICJhdnhfZHA8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFWWE1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5z cGVjOkFWWE1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgiKQotCSAgIChtYXRjaF9v cGVyYW5kOkFWWE1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fZHA8c3Nl bW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwkodW5z cGVjOlZGCisJICBbKG1hdGNoX29wZXJhbmQ6VkYgMSAibm9uaW1tZWRpYXRl X29wZXJhbmQiICIlMCx4IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWRiAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3Bl cmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAibixuIildCiAJ ICBVTlNQRUNfRFApKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2ZHA8c3NlbW9k ZXN1ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0g IFsoc2V0X2F0dHIgInR5cGUiICJzc2VtdWwiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAg KHNldF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5l X2luc24gInNzZTRfMV9kcDxzc2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAgWyhtYXRjaF9vcGVyYW5k OlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIlMCIpCi0J ICAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtIikKLQkgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX0RQKSldCiAg ICJUQVJHRVRfU1NFNF8xIgotICAiZHA8c3NlbW9kZXN1ZmZpeD5cdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bXVsIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIkAKKyAgIGRwPHNz ZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfQorICAgdmRw PHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwg JTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNl dF9hdHRyICJ0eXBlIiAic3NlbXVsIikKICAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2 IiAiMSwqIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisg ICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkKIAogKGRlZmluZV9pbnNuICJzc2U0XzFf bW92bnRkcWEiCkBAIC04MjIyLDExMSArODE5NSw3MyBAQAogICAgKHNldF9h dHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9tcHNhZGJ3IgotICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjE2UUkgWyhtYXRjaF9vcGVyYW5kOlYxNlFJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KLQkJICAgICAgVU5TUEVDX01QU0FEQlcpKV0KLSAg IlRBUkdFVF9BVlgiCi0gICJ2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0K IChkZWZpbmVfaW5zbiAic3NlNF8xX21wc2FkYnciCi0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHVuc3BlYzpWMTZRSSBbKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2 UUkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAi biIpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAseCIpCisJCSAg ICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDMg ImNvbnN0XzBfdG9fMjU1X29wZXJhbmQiICJuLG4iKV0KIAkJICAgICAgVU5T UEVDX01QU0FEQlcpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0gICJtcHNhZGJ3 XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWxvZzEiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKKyAgIkAKKyAgIG1wc2FkYndcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9 CisgICB2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUz fSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRf YXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LQotKGRlZmluZV9pbnNuICIqYXZ4X3BhY2t1c2R3IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHZlY19jb25jYXQ6VjhISQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIp KQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAgKG1hdGNoX29wZXJhbmQ6 VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnBhY2t1c2R3XHR7JTIsICUxLCAlMHwlMCwgJTEs ICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQorICAgKHNldF9hdHRyICJwcmVmaXgiICJvcmlnLHZleCIp CiAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRlZmluZV9pbnNu ICJzc2U0XzFfcGFja3VzZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJ KHZlY19jb25jYXQ6VjhISQogCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp KQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKSkKIAkgICh1c190cnVuY2F0ZTpWNEhJCi0JICAgIChtYXRj aF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIp KSkpXQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDIgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAieG0seG0iKSkpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0g ICJwYWNrdXNkd1x0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKKyAgIkAKKyAgIHBhY2t1c2R3XHR7JTIsICUwfCUw LCAlMn0KKyAgIHZwYWNrdXNkd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i CisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0 dHIgInR5cGUiICJzc2Vsb2ciKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQog ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9wYmxlbmR2YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYxNlFJIFso bWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIngi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMiAibm9uaW1tZWRp YXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW MTZRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHZiXHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInNzZTRfMV9wYmxlbmR2 YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVnX25vdF94 bW0wX29wZXJhbmQiICI9eCIpCi0JKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnX25vdF94bW0wX29wZXJhbmQiICAiMCIpCi0J CSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1fbm90X3ht bTBfb3BlcmFuZCIgInhtIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYx NlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJZeiIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYxNlFJIDAg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZR SQorCSAgWyhtYXRjaF9vcGVyYW5kOlYxNlFJIDEgInJlZ19ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgICIwLHgiKQorCSAgIChtYXRjaF9vcGVyYW5k OlYxNlFJIDIgIm5vbmltbV9ub3RfeG1tMF9vcGVyYW5kX21heWJlX2F2eCIg InhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAzICJyZWdpc3Rl cl9vcGVyYW5kIiAiWXoseCIpXQorCSAgVU5TUEVDX0JMRU5EVikpXQogICAi VEFSR0VUX1NTRTRfMSIKLSAgInBibGVuZHZiXHR7JTMsICUyLCAlMHwlMCwg JTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCisgICJA CisgICBwYmxlbmR2Ylx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZw YmxlbmR2Ylx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwxIikK KyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9wYmxl bmR3IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpWOEhJCi0JICAobWF0Y2hf b3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi eCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHdc dHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0KIChkZWZpbmVfaW5zbiAic3NlNF8xX3BibGVu ZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJKHZlY19tZXJnZTpWOEhJ Ci0JICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpKSldCisJICAobWF0Y2hfb3BlcmFu ZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQorCSAg KG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4 IikKKwkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29w ZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgInBibGVu ZHdcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIkAKKyAgIHBibGVuZHdcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGJsZW5kd1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4 IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0 dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gInNzZTRfMV9waG1pbnBvc3V3IgpAQCAtODQzOCw4ICs4MzczLDgg QEAKIDs7IHNldHRpbmcgRkxBR1NfUkVHLiBCdXQgaXQgaXMgbm90IGEgcmVh bGx5IGNvbXBhcmUgaW5zdHJ1Y3Rpb24uCiAoZGVmaW5lX2luc24gImF2eF92 dGVzdDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3VmZml4PiIKICAgWyhzZXQg KHJlZzpDQyBGTEFHU19SRUcpCi0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6QVZYTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAg ICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieG0iKV0KKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpW RiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCisJCSAgICAobWF0Y2hfb3Bl cmFuZDpWRiAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCiAJCSAg IFVOU1BFQ19WVEVTVFApKV0KICAgIlRBUkdFVF9BVlgiCiAgICJ2dGVzdDxz c2Vtb2Rlc3VmZml4Plx0eyUxLCAlMHwlMCwgJTF9IgpAQCAtODQ3NCw2NyAr ODQwOSw0NCBAQAogICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5z biAiYXZ4X3JvdW5kPHNzZW1vZGVzdWZmaXg+MjU2IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpBVlgyNTZNT0RFRjJQIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9eCIpCi0JKHVuc3BlYzpBVlgyNTZNT0RFRjJQCi0JICBbKG1hdGNoX29w ZXJhbmQ6QVZYMjU2TU9ERUYyUCAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg InhtIikKKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fcm91bmQ8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJKHVuc3BlYzpWRgor CSAgWyhtYXRjaF9vcGVyYW5kOlZGIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAieG0iKQogCSAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0XzBfdG9f MTVfb3BlcmFuZCIgIm4iKV0KIAkgIFVOU1BFQ19ST1VORCkpXQotICAiVEFS R0VUX0FWWCIKLSAgInZyb3VuZDxzc2Vtb2Rlc3VmZml4Plx0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQotCi0oZGVmaW5lX2luc24gInNzZTRfMV9yb3VuZDxzc2Vtb2Rlc3VmZml4 PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAg WyhtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3Rf MF90b18xNV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX1JPVU5EKSldCiAg ICJUQVJHRVRfUk9VTkQiCiAgICIldnJvdW5kPHNzZW1vZGVzdWZmaXg+XHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0gICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikK KyAgIChzZXQgKGF0dHIgInByZWZpeF9kYXRhMTYiKQorICAgICAoaWZfdGhl bl9lbHNlCisgICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfQVZYIikg KGNvbnN0X2ludCAwKSkKKyAgICAgKGNvbnN0X3N0cmluZyAiKiIpCisgICAg IChjb25zdF9zdHJpbmcgIjEiKSkpCiAgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCiAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCiAgICAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9yb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh2ZWNfbWVyZ2U6U1NFTU9ERUYyUAotCSAgKHVuc3BlYzpTU0VN T0RFRjJQCi0JICAgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDMgImNvbnN0XzBfdG9fMTVfb3BlcmFuZCIgIm4iKV0KLQkgICAgVU5TUEVD X1JPVU5EKQotCSAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdp c3Rlcl9vcGVyYW5kIiAieCIpCi0JICAoY29uc3RfaW50IDEpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnJvdW5kPHNzZXNjYWxhcm1vZGVzdWZmaXg+XHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlY3Z0IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpXSkKLQogKGRlZmluZV9pbnNuICJzc2U0XzFfcm91 bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQko dmVjX21lcmdlOlNTRU1PREVGMlAKLQkgICh1bnNwZWM6U1NFTU9ERUYyUAot CSAgICBbKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJyZWdpc3Rlcl9v cGVyYW5kIiAieCIpCi0JICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzE1X29wZXJhbmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZGXzEyOCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHZl Y19tZXJnZTpWRl8xMjgKKwkgICh1bnNwZWM6VkZfMTI4CisJICAgIFsobWF0 Y2hfb3BlcmFuZDpWRl8xMjggMiAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCIp CisJICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzE1X29w ZXJhbmQiICJuLG4iKV0KIAkgICAgVU5TUEVDX1JPVU5EKQotCSAgKG1hdGNo X29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp CisJICAobWF0Y2hfb3BlcmFuZDpWRl8xMjggMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAseCIpCiAJICAoY29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRfUk9V TkQiCi0gICJyb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4Plx0eyUzLCAlMiwg JTB8JTAsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAiQAorICAgcm91bmQ8c3Nl c2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9Cisg ICB2cm91bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4 LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQogICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIg InByZWZpeF9kYXRhMTYiICIxLCoiKQorICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQogCiA7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OzsKQEAgLTEwMDg0LDk2ICs5OTk2LDY1IEBACiAg ICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKIDs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwotKGRlZmluZV9pbnNuICIqYXZ4X2Flc2VuYyIK LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJE SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0K LQkJICAgICAgVU5TUEVDX0FFU0VOQykpXQotICAiVEFSR0VUX0FFUyAmJiBU QVJHRVRfQVZYIgotICAidmFlc2VuY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgInByZWZp eCIgInZleCIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRl ZmluZV9pbnNuICJhZXNlbmMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkg WyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlh dGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJE SSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkgICAgICBVTlNQRUNfQUVT RU5DKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jXHR7JTIsICUwfCUw LCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKKyAgIkAK KyAgIGFlc2VuY1x0eyUyLCAlMHwlMCwgJTJ9CisgICB2YWVzZW5jXHR7JTIs ICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9h dngsYXZ4IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAi cHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9hZXNlbmNsYXN0IgotICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 eCIpCi0JKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQotCQkgICAg ICBVTlNQRUNfQUVTRU5DTEFTVCkpXQotICAiVEFSR0VUX0FFUyAmJiBUQVJH RVRfQVZYIgotICAidmFlc2VuY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0KIChk ZWZpbmVfaW5zbiAiYWVzZW5jbGFzdCIKLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6 VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3Bl YzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKQorCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIildCiAJCSAgICAgIFVOU1BF Q19BRVNFTkNMQVNUKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jbGFz dFx0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisgICJACisgICBhZXNlbmNsYXN0XHR7JTIsICUwfCUwLCAlMn0K KyAgIHZhZXNlbmNsYXN0XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2 eF9hZXNkZWMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9v cGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAg ICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgInhtIildCi0JCSAgICAgIFVOU1BFQ19BRVNERUMpKV0KLSAgIlRBUkdF VF9BRVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNcdHslMiwgJTEsICUw fCUwLCAlMSwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIp Ci0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi0KIChkZWZpbmVfaW5zbiAiYWVzZGVjIgotICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHVu c3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwko dW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAseCIpCisJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJ IDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKV0KIAkJICAgICAg VU5TUEVDX0FFU0RFQykpXQogICAiVEFSR0VUX0FFUyIKLSAgImFlc2RlY1x0 eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n MSIpCisgICJACisgICBhZXNkZWNcdHslMiwgJTB8JTAsICUyfQorICAgdmFl c2RlY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgIFsoc2V0X2F0dHIg ImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2Vs b2cxIikKICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAo c2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQogCi0oZGVmaW5lX2luc24gIiphdnhfYWVzZGVjbGFz dCIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6 VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0 Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0i KV0KLQkJICAgICAgVU5TUEVDX0FFU0RFQ0xBU1QpKV0KLSAgIlRBUkdFVF9B RVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNsYXN0XHR7JTIsICUxLCAl MHwlMCwgJTEsICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQotCiAoZGVmaW5lX2luc24gImFlc2RlY2xhc3QiCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikK LQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJE SSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgi KQorCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkg ICAgICBVTlNQRUNfQUVTREVDTEFTVCkpXQogICAiVEFSR0VUX0FFUyIKLSAg ImFlc2RlY2xhc3RcdHslMiwgJTB8JTAsICUyfSIKLSAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQorICAiQAorICAgYWVzZGVjbGFzdFx0eyUyLCAl MHwlMCwgJTJ9CisgICB2YWVzZGVjbGFzdFx0eyUyLCAlMSwgJTB8JTAsICUx LCAlMn0iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAo c2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKICAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gImFlc2ltYyIKQEAgLTEwMjAwLDMxICsxMDA4MSwyMSBAQAogICAg KHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnZwY2xtdWxxZHEi Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYy REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpXQotCQkgICAgIFVOU1BFQ19QQ0xNVUwpKV0KLSAgIlRB UkdFVF9QQ0xNVUwgJiYgVEFSR0VUX0FWWCIKLSAgInZwY2xtdWxxZHFcdHsl MywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInBjbG11bHFkcSIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JCSAgICAgIChtYXRjaF9vcGVy YW5kOlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAg ICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29wZXJh bmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJESSBbKG1hdGNo X29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJ ICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi Y29uc3RfMF90b18yNTVfb3BlcmFuZCIgIm4sbiIpXQogCQkgICAgIFVOU1BF Q19QQ0xNVUwpKV0KICAgIlRBUkdFVF9QQ0xNVUwiCi0gICJwY2xtdWxxZHFc dHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nMSIpCisgICJACisgICBwY2xtdWxxZHFcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGNsbXVscWRxXHR7JTMsICUyLCAlMSwgJTB8 JTAsICUxLCAlMiwgJTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxh dngiKQorICAgKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9y aWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVm aW5lX2V4cGFuZCAiYXZ4X3Z6ZXJvYWxsIgo= --000e0cd14f98829f0504a0e49a30-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9804 invoked by alias); 14 Apr 2011 18:02:04 -0000 Received: (qmail 9772 invoked by uid 22791); 14 Apr 2011 18:02:01 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_99,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SARE_HTML_INV_TAG,TW_AV,TW_VX,TW_XV,TW_ZJ,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pw0-f47.google.com (HELO mail-pw0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Apr 2011 18:01:54 +0000 Received: by pwj9 with SMTP id 9so868455pwj.20 for ; Thu, 14 Apr 2011 11:01:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.249.9 with SMTP id w9mr344869wfh.2.1302803582080; Thu, 14 Apr 2011 10:53:02 -0700 (PDT) Received: by 10.142.87.14 with HTTP; Thu, 14 Apr 2011 10:53:02 -0700 (PDT) Date: Thu, 14 Apr 2011 18:03:00 -0000 Message-ID: Subject: [PATCH 8/n, i386]: Merge SSE and AVX patterns using "enable" attribute. From: Uros Bizjak To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=00504502c40bb8d7ba04a0e4986e 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 X-SW-Source: 2011-04/txt/msg01109.txt.bz2 Message-ID: <20110414180300.sP-NUpaf2xEAJQ5Tj6ARkWAW-J0_xaYb6XjKO_y5XKc@z> --00504502c40bb8d7ba04a0e4986e Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1541 Hello! Attached patch converts "Intel SSE4.1 instructions" and remaining sections. 2011-04-14 Uros Bizjak * config/i386/sse.md (sse4_1): New mode attribute. (_blend): Macroize from avx_blend and sse4_1_blend using VF mode iterator. (_blendv): Macroize from avx_blendv and sse4_1_blendv using VF mode iterator. (_dp): Macroize from avx_dp and sse4_1_dp using VF mode iterator. (sse4_1_mpsadbw): Merge with *avx_mpsadbw. (sse4_1_packusdw): Merge with *avx_packusdw. (sse4_1_pblendvb): Merge with *avx_pblendvb. (sse4_1_pblendw): Merge with *avx_pblendw. (avx_vtest): Use VF mode iterator. (_round): Macroize from avx_round256 and sse4_1_round using VF mode iterator. (sse4_1_round): Merge with *avx_round. (aesenc): Merge with *avx_aesenc. (aesenclast): Merge with *avx_aesenclast. (aesdec): Merge with *avx_aesdec. (aesdeclast): Merge with *avx_aesdeclast. (pclmulqdq): Merge with *pclmulqdq. * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): New predicate. (nonimm_not_xmm0_operand_maybe_avx): Ditto. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32} AVX target. Uros. --00504502c40bb8d7ba04a0e4986e Content-Type: text/plain; charset=US-ASCII; name="s.diff.txt" Content-Disposition: attachment; filename="s.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmhzlp6k0 Content-length: 31086 SW5kZXg6IHByZWRpY2F0ZXMubWQKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcHJlZGljYXRlcy5tZAkocmV2aXNpb24gMTcyNDM2KQorKysgcHJlZGlj YXRlcy5tZAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDExICsxMDYsMjMgQEAK ICAgcmV0dXJuICFSRUdfUCAob3ApIHx8IFJFR05PIChvcCkgIT0gRklSU1Rf U1NFX1JFRzsKIH0pCiAKLTs7IEFzIGFib3ZlLCBidXQgYWxsb3cgbm9uaW1t ZWRpYXRlIG9wZXJhbmRzLgorOzsgQXMgYWJvdmUsIGJ1dCBhbHNvIGFsbG93 IG1lbW9yeSBvcGVyYW5kcy4KIChkZWZpbmVfcHJlZGljYXRlICJub25pbW1f bm90X3htbTBfb3BlcmFuZCIKICAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJt ZW1vcnlfb3BlcmFuZCIpCiAgICAgICAgKG1hdGNoX29wZXJhbmQgMCAicmVn X25vdF94bW0wX29wZXJhbmQiKSkpCiAKKzs7IFJldHVybiB0cnVlIGlmIG9w IGlzIG5vdCB4bW0wIHJlZ2lzdGVyLCBidXQgb25seSBmb3Igbm9uLUFWWCB0 YXJnZXRzLgorKGRlZmluZV9wcmVkaWNhdGUgInJlZ19ub3RfeG1tMF9vcGVy YW5kX21heWJlX2F2eCIKKyAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAi VEFSR0VUX0FWWCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJf b3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnX25vdF94bW0w X29wZXJhbmQiKSkpCisKKzs7IEFzIGFib3ZlLCBidXQgYWxzbyBhbGxvdyBt ZW1vcnkgb3BlcmFuZHMuCisoZGVmaW5lX3ByZWRpY2F0ZSAibm9uaW1tX25v dF94bW0wX29wZXJhbmRfbWF5YmVfYXZ4IgorICAoaWZfdGhlbl9lbHNlICht YXRjaF90ZXN0ICJUQVJHRVRfQVZYIikKKyAgICAobWF0Y2hfb3BlcmFuZCAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQg MCAibm9uaW1tX25vdF94bW0wX29wZXJhbmQiKSkpCisKIDs7IFJldHVybiB0 cnVlIGlmIFZBTFVFIGNhbiBiZSBzdG9yZWQgaW4gYSBzaWduIGV4dGVuZGVk IGltbWVkaWF0ZSBmaWVsZC4KIChkZWZpbmVfcHJlZGljYXRlICJ4ODZfNjRf aW1tZWRpYXRlX29wZXJhbmQiCiAgIChtYXRjaF9jb2RlICJjb25zdF9pbnQs c3ltYm9sX3JlZixsYWJlbF9yZWYsY29uc3QiKQpJbmRleDogc3NlLm1kCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHNzZS5tZAkocmV2aXNpb24gMTcy NDM2KQorKysgc3NlLm1kCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0 LDEwIEBACiAgICAoVjRTRiAic3NlIikgKFYyREYgInNzZTIiKQogICAgKFY4 U0YgImF2eCIpIChWNERGICJhdngiKV0pCiAKKyhkZWZpbmVfbW9kZV9hdHRy IHNzZTRfMQorICBbKFY0U0YgInNzZTRfMSIpIChWMkRGICJzc2U0XzEiKQor ICAgKFY4U0YgImF2eCIpIChWNERGICJhdngiKV0pCisKIDs7IE1hcHBpbmcg ZnJvbSBpbnRlZ2VyIHZlY3RvciBtb2RlIHRvIG1uZW1vbmljIHN1ZmZpeAog KGRlZmluZV9tb2RlX2F0dHIgc3NldmVjc2l6ZSBbKFYxNlFJICJiIikgKFY4 SEkgInciKSAoVjRTSSAiZCIpIChWMkRJICJxIildKQogCkBAIC04MTI0LDkx ICs4MTI4LDYwIEBACiA7OwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiAK LShkZWZpbmVfaW5zbiAiYXZ4X2JsZW5kPHNzZW1vZGVzdWZmaXg+PGF2eG1v ZGVzdWZmaXg+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpBVlhN T0RFRjJQCi0JICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6QVZY TU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JICAobWF0Y2hf b3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVuZGJpdHM+X29wZXJhbmQi ICJuIikpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmQ8c3NlbW9kZXN1 ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFso c2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNl dF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5lX2lu c24gImF2eF9ibGVuZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4i Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFWWE1PREVGMlAgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOkFWWE1PREVGMlAKLQkgIFso bWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgInJlZ2lzdGVyX29wZXJhbmQi ICJ4IikKLQkgICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgIChtYXRjaF9vcGVyYW5kOkFW WE1PREVGMlAgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKV0KLQkgIFVOU1BF Q19CTEVORFYpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmR2PHNzZW1v ZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9Igot ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKLSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAg IChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLQotKGRlZmlu ZV9pbnNuICJzc2U0XzFfYmxlbmQ8c3NlbW9kZXN1ZmZpeD4iCi0gIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj14IikKLQkodmVjX21lcmdlOlNTRU1PREVGMlAKLQkgIChtYXRjaF9v cGVyYW5kOlNTRU1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikKLQkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0 XzBfdG9fPGJsZW5kYml0cz5fb3BlcmFuZCIgIm4iKSkpXQorKGRlZmluZV9p bnNuICI8c3NlNF8xPl9ibGVuZDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3Vm Zml4PiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkYgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14LHgiKQorCSh2ZWNfbWVyZ2U6VkYKKwkgIChtYXRjaF9v cGVyYW5kOlZGIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQor CSAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs eCIpCisJICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVu ZGJpdHM+X29wZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIK LSAgImJsZW5kPHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIs ICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICJACisgICBibGVuZDxzc2Vtb2Rlc3VmZml4 Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZibGVuZDxzc2Vtb2Rl c3VmZml4Plx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEsKiIp CisgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgKHNldF9h dHRyICJwcmVmaXgiICJvcmlnLHZleCIpCiAgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAic3NlNF8xX2JsZW5kdjxz c2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9E RUYyUCAwICJyZWdfbm90X3htbTBfb3BlcmFuZCIgIj14IikKLQkodW5zcGVj OlNTRU1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiMCIpCi0JICAgKG1hdGNoX29wZXJh bmQ6U1NFTU9ERUYyUCAyICJub25pbW1fbm90X3htbTBfb3BlcmFuZCIgInht IikKLQkgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDMgInJlZ2lzdGVy X29wZXJhbmQiICJZeiIpXQorKGRlZmluZV9pbnNuICI8c3NlNF8xPl9ibGVu ZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZGIDAgInJlZ19ub3RfeG1tMF9vcGVyYW5kX21heWJl X2F2eCIgIj14LHgiKQorCSh1bnNwZWM6VkYKKwkgIFsobWF0Y2hfb3BlcmFu ZDpWRiAxICJyZWdfbm90X3htbTBfb3BlcmFuZF9tYXliZV9hdngiICIwLHgi KQorCSAgIChtYXRjaF9vcGVyYW5kOlZGIDIgIm5vbmltbV9ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFu ZDpWRiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiWXoseCIpXQogCSAgVU5TUEVD X0JMRU5EVikpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgImJsZW5kdjxzc2Vt b2Rlc3VmZml4Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICJACisgICBibGVuZHY8c3NlbW9kZXN1ZmZpeD5c dHslMywgJTIsICUwfCUwLCAlMiwgJTN9CisgICB2YmxlbmR2PHNzZW1vZGVz dWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICBb KHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSwqIikK ICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0 dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIg IjxNT0RFPiIpXSkKIAotKGRlZmluZV9pbnNuICJhdnhfZHA8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFWWE1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5z cGVjOkFWWE1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgiKQotCSAgIChtYXRjaF9v cGVyYW5kOkFWWE1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fZHA8c3Nl bW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwkodW5z cGVjOlZGCisJICBbKG1hdGNoX29wZXJhbmQ6VkYgMSAibm9uaW1tZWRpYXRl X29wZXJhbmQiICIlMCx4IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWRiAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3Bl cmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAibixuIildCiAJ ICBVTlNQRUNfRFApKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2ZHA8c3NlbW9k ZXN1ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0g IFsoc2V0X2F0dHIgInR5cGUiICJzc2VtdWwiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAg KHNldF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5l X2luc24gInNzZTRfMV9kcDxzc2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAgWyhtYXRjaF9vcGVyYW5k OlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIlMCIpCi0J ICAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtIikKLQkgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX0RQKSldCiAg ICJUQVJHRVRfU1NFNF8xIgotICAiZHA8c3NlbW9kZXN1ZmZpeD5cdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bXVsIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIkAKKyAgIGRwPHNz ZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfQorICAgdmRw PHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwg JTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNl dF9hdHRyICJ0eXBlIiAic3NlbXVsIikKICAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2 IiAiMSwqIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisg ICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkKIAogKGRlZmluZV9pbnNuICJzc2U0XzFf bW92bnRkcWEiCkBAIC04MjIyLDExMSArODE5NSw3MyBAQAogICAgKHNldF9h dHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9tcHNhZGJ3IgotICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjE2UUkgWyhtYXRjaF9vcGVyYW5kOlYxNlFJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KLQkJICAgICAgVU5TUEVDX01QU0FEQlcpKV0KLSAg IlRBUkdFVF9BVlgiCi0gICJ2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0K IChkZWZpbmVfaW5zbiAic3NlNF8xX21wc2FkYnciCi0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHVuc3BlYzpWMTZRSSBbKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2 UUkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAi biIpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAseCIpCisJCSAg ICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDMg ImNvbnN0XzBfdG9fMjU1X29wZXJhbmQiICJuLG4iKV0KIAkJICAgICAgVU5T UEVDX01QU0FEQlcpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0gICJtcHNhZGJ3 XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWxvZzEiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKKyAgIkAKKyAgIG1wc2FkYndcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9 CisgICB2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUz fSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRf YXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LQotKGRlZmluZV9pbnNuICIqYXZ4X3BhY2t1c2R3IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHZlY19jb25jYXQ6VjhISQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIp KQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAgKG1hdGNoX29wZXJhbmQ6 VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnBhY2t1c2R3XHR7JTIsICUxLCAlMHwlMCwgJTEs ICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQorICAgKHNldF9hdHRyICJwcmVmaXgiICJvcmlnLHZleCIp CiAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRlZmluZV9pbnNu ICJzc2U0XzFfcGFja3VzZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJ KHZlY19jb25jYXQ6VjhISQogCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp KQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKSkKIAkgICh1c190cnVuY2F0ZTpWNEhJCi0JICAgIChtYXRj aF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIp KSkpXQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDIgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAieG0seG0iKSkpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0g ICJwYWNrdXNkd1x0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKKyAgIkAKKyAgIHBhY2t1c2R3XHR7JTIsICUwfCUw LCAlMn0KKyAgIHZwYWNrdXNkd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i CisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0 dHIgInR5cGUiICJzc2Vsb2ciKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQog ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9wYmxlbmR2YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYxNlFJIFso bWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIngi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMiAibm9uaW1tZWRp YXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW MTZRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHZiXHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInNzZTRfMV9wYmxlbmR2 YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVnX25vdF94 bW0wX29wZXJhbmQiICI9eCIpCi0JKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnX25vdF94bW0wX29wZXJhbmQiICAiMCIpCi0J CSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1fbm90X3ht bTBfb3BlcmFuZCIgInhtIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYx NlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJZeiIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYxNlFJIDAg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZR SQorCSAgWyhtYXRjaF9vcGVyYW5kOlYxNlFJIDEgInJlZ19ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgICIwLHgiKQorCSAgIChtYXRjaF9vcGVyYW5k OlYxNlFJIDIgIm5vbmltbV9ub3RfeG1tMF9vcGVyYW5kX21heWJlX2F2eCIg InhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAzICJyZWdpc3Rl cl9vcGVyYW5kIiAiWXoseCIpXQorCSAgVU5TUEVDX0JMRU5EVikpXQogICAi VEFSR0VUX1NTRTRfMSIKLSAgInBibGVuZHZiXHR7JTMsICUyLCAlMHwlMCwg JTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCisgICJA CisgICBwYmxlbmR2Ylx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZw YmxlbmR2Ylx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwxIikK KyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9wYmxl bmR3IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpWOEhJCi0JICAobWF0Y2hf b3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi eCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHdc dHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0KIChkZWZpbmVfaW5zbiAic3NlNF8xX3BibGVu ZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJKHZlY19tZXJnZTpWOEhJ Ci0JICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpKSldCisJICAobWF0Y2hfb3BlcmFu ZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQorCSAg KG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4 IikKKwkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29w ZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgInBibGVu ZHdcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIkAKKyAgIHBibGVuZHdcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGJsZW5kd1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4 IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0 dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gInNzZTRfMV9waG1pbnBvc3V3IgpAQCAtODQzOCw4ICs4MzczLDgg QEAKIDs7IHNldHRpbmcgRkxBR1NfUkVHLiBCdXQgaXQgaXMgbm90IGEgcmVh bGx5IGNvbXBhcmUgaW5zdHJ1Y3Rpb24uCiAoZGVmaW5lX2luc24gImF2eF92 dGVzdDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3VmZml4PiIKICAgWyhzZXQg KHJlZzpDQyBGTEFHU19SRUcpCi0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6QVZYTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAg ICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieG0iKV0KKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpW RiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCisJCSAgICAobWF0Y2hfb3Bl cmFuZDpWRiAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCiAJCSAg IFVOU1BFQ19WVEVTVFApKV0KICAgIlRBUkdFVF9BVlgiCiAgICJ2dGVzdDxz c2Vtb2Rlc3VmZml4Plx0eyUxLCAlMHwlMCwgJTF9IgpAQCAtODQ3NCw2NyAr ODQwOSw0NCBAQAogICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5z biAiYXZ4X3JvdW5kPHNzZW1vZGVzdWZmaXg+MjU2IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpBVlgyNTZNT0RFRjJQIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9eCIpCi0JKHVuc3BlYzpBVlgyNTZNT0RFRjJQCi0JICBbKG1hdGNoX29w ZXJhbmQ6QVZYMjU2TU9ERUYyUCAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg InhtIikKKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fcm91bmQ8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJKHVuc3BlYzpWRgor CSAgWyhtYXRjaF9vcGVyYW5kOlZGIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAieG0iKQogCSAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0XzBfdG9f MTVfb3BlcmFuZCIgIm4iKV0KIAkgIFVOU1BFQ19ST1VORCkpXQotICAiVEFS R0VUX0FWWCIKLSAgInZyb3VuZDxzc2Vtb2Rlc3VmZml4Plx0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQotCi0oZGVmaW5lX2luc24gInNzZTRfMV9yb3VuZDxzc2Vtb2Rlc3VmZml4 PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAg WyhtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3Rf MF90b18xNV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX1JPVU5EKSldCiAg ICJUQVJHRVRfUk9VTkQiCiAgICIldnJvdW5kPHNzZW1vZGVzdWZmaXg+XHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0gICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikK KyAgIChzZXQgKGF0dHIgInByZWZpeF9kYXRhMTYiKQorICAgICAoaWZfdGhl bl9lbHNlCisgICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfQVZYIikg KGNvbnN0X2ludCAwKSkKKyAgICAgKGNvbnN0X3N0cmluZyAiKiIpCisgICAg IChjb25zdF9zdHJpbmcgIjEiKSkpCiAgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCiAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCiAgICAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9yb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh2ZWNfbWVyZ2U6U1NFTU9ERUYyUAotCSAgKHVuc3BlYzpTU0VN T0RFRjJQCi0JICAgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDMgImNvbnN0XzBfdG9fMTVfb3BlcmFuZCIgIm4iKV0KLQkgICAgVU5TUEVD X1JPVU5EKQotCSAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdp c3Rlcl9vcGVyYW5kIiAieCIpCi0JICAoY29uc3RfaW50IDEpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnJvdW5kPHNzZXNjYWxhcm1vZGVzdWZmaXg+XHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlY3Z0IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpXSkKLQogKGRlZmluZV9pbnNuICJzc2U0XzFfcm91 bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQko dmVjX21lcmdlOlNTRU1PREVGMlAKLQkgICh1bnNwZWM6U1NFTU9ERUYyUAot CSAgICBbKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJyZWdpc3Rlcl9v cGVyYW5kIiAieCIpCi0JICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzE1X29wZXJhbmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZGXzEyOCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHZl Y19tZXJnZTpWRl8xMjgKKwkgICh1bnNwZWM6VkZfMTI4CisJICAgIFsobWF0 Y2hfb3BlcmFuZDpWRl8xMjggMiAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCIp CisJICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzE1X29w ZXJhbmQiICJuLG4iKV0KIAkgICAgVU5TUEVDX1JPVU5EKQotCSAgKG1hdGNo X29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp CisJICAobWF0Y2hfb3BlcmFuZDpWRl8xMjggMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAseCIpCiAJICAoY29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRfUk9V TkQiCi0gICJyb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4Plx0eyUzLCAlMiwg JTB8JTAsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAiQAorICAgcm91bmQ8c3Nl c2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9Cisg ICB2cm91bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4 LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQogICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIg InByZWZpeF9kYXRhMTYiICIxLCoiKQorICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQogCiA7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OzsKQEAgLTEwMDg0LDk2ICs5OTk2LDY1IEBACiAg ICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKIDs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwotKGRlZmluZV9pbnNuICIqYXZ4X2Flc2VuYyIK LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJE SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0K LQkJICAgICAgVU5TUEVDX0FFU0VOQykpXQotICAiVEFSR0VUX0FFUyAmJiBU QVJHRVRfQVZYIgotICAidmFlc2VuY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgInByZWZp eCIgInZleCIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRl ZmluZV9pbnNuICJhZXNlbmMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkg WyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlh dGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJE SSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkgICAgICBVTlNQRUNfQUVT RU5DKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jXHR7JTIsICUwfCUw LCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKKyAgIkAK KyAgIGFlc2VuY1x0eyUyLCAlMHwlMCwgJTJ9CisgICB2YWVzZW5jXHR7JTIs ICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9h dngsYXZ4IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAi cHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9hZXNlbmNsYXN0IgotICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 eCIpCi0JKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQotCQkgICAg ICBVTlNQRUNfQUVTRU5DTEFTVCkpXQotICAiVEFSR0VUX0FFUyAmJiBUQVJH RVRfQVZYIgotICAidmFlc2VuY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0KIChk ZWZpbmVfaW5zbiAiYWVzZW5jbGFzdCIKLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6 VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3Bl YzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKQorCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIildCiAJCSAgICAgIFVOU1BF Q19BRVNFTkNMQVNUKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jbGFz dFx0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisgICJACisgICBhZXNlbmNsYXN0XHR7JTIsICUwfCUwLCAlMn0K KyAgIHZhZXNlbmNsYXN0XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2 eF9hZXNkZWMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9v cGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAg ICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgInhtIildCi0JCSAgICAgIFVOU1BFQ19BRVNERUMpKV0KLSAgIlRBUkdF VF9BRVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNcdHslMiwgJTEsICUw fCUwLCAlMSwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIp Ci0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi0KIChkZWZpbmVfaW5zbiAiYWVzZGVjIgotICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHVu c3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwko dW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAseCIpCisJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJ IDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKV0KIAkJICAgICAg VU5TUEVDX0FFU0RFQykpXQogICAiVEFSR0VUX0FFUyIKLSAgImFlc2RlY1x0 eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n MSIpCisgICJACisgICBhZXNkZWNcdHslMiwgJTB8JTAsICUyfQorICAgdmFl c2RlY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgIFsoc2V0X2F0dHIg ImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2Vs b2cxIikKICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAo c2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQogCi0oZGVmaW5lX2luc24gIiphdnhfYWVzZGVjbGFz dCIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6 VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0 Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0i KV0KLQkJICAgICAgVU5TUEVDX0FFU0RFQ0xBU1QpKV0KLSAgIlRBUkdFVF9B RVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNsYXN0XHR7JTIsICUxLCAl MHwlMCwgJTEsICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQotCiAoZGVmaW5lX2luc24gImFlc2RlY2xhc3QiCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikK LQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJE SSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgi KQorCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkg ICAgICBVTlNQRUNfQUVTREVDTEFTVCkpXQogICAiVEFSR0VUX0FFUyIKLSAg ImFlc2RlY2xhc3RcdHslMiwgJTB8JTAsICUyfSIKLSAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQorICAiQAorICAgYWVzZGVjbGFzdFx0eyUyLCAl MHwlMCwgJTJ9CisgICB2YWVzZGVjbGFzdFx0eyUyLCAlMSwgJTB8JTAsICUx LCAlMn0iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAo c2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKICAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gImFlc2ltYyIKQEAgLTEwMjAwLDMxICsxMDA4MSwyMSBAQAogICAg KHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnZwY2xtdWxxZHEi Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYy REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpXQotCQkgICAgIFVOU1BFQ19QQ0xNVUwpKV0KLSAgIlRB UkdFVF9QQ0xNVUwgJiYgVEFSR0VUX0FWWCIKLSAgInZwY2xtdWxxZHFcdHsl MywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInBjbG11bHFkcSIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JCSAgICAgIChtYXRjaF9vcGVy YW5kOlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAg ICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29wZXJh bmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJESSBbKG1hdGNo X29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJ ICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi Y29uc3RfMF90b18yNTVfb3BlcmFuZCIgIm4sbiIpXQogCQkgICAgIFVOU1BF Q19QQ0xNVUwpKV0KICAgIlRBUkdFVF9QQ0xNVUwiCi0gICJwY2xtdWxxZHFc dHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nMSIpCisgICJACisgICBwY2xtdWxxZHFcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGNsbXVscWRxXHR7JTMsICUyLCAlMSwgJTB8 JTAsICUxLCAlMiwgJTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxh dngiKQorICAgKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9y aWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVm aW5lX2V4cGFuZCAiYXZ4X3Z6ZXJvYWxsIgo= --00504502c40bb8d7ba04a0e4986e-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10463 invoked by alias); 14 Apr 2011 18:02:21 -0000 Received: (qmail 10427 invoked by uid 22791); 14 Apr 2011 18:02:14 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_99,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SARE_HTML_INV_TAG,TW_AV,TW_VX,TW_XV,TW_ZJ,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pw0-f47.google.com (HELO mail-pw0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Apr 2011 18:02:08 +0000 Received: by mail-pw0-f47.google.com with SMTP id 9so868455pwj.20 for ; Thu, 14 Apr 2011 11:02:08 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.209.10 with SMTP id h10mr230357wfg.344.1302803642081; Thu, 14 Apr 2011 10:54:02 -0700 (PDT) Received: by 10.142.87.14 with HTTP; Thu, 14 Apr 2011 10:53:02 -0700 (PDT) Date: Thu, 14 Apr 2011 18:14:00 -0000 Message-ID: Subject: [PATCH 8/n, i386]: Merge SSE and AVX patterns using "enable" attribute. From: Uros Bizjak To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=000e0cd242c44c622b04a0e49cb6 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 X-SW-Source: 2011-04/txt/msg01110.txt.bz2 Message-ID: <20110414181400.RRQxnl64Kig2oSeikYSNZIM0HWMYccAPcORSTQznhEw@z> --000e0cd242c44c622b04a0e49cb6 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1541 Hello! Attached patch converts "Intel SSE4.1 instructions" and remaining sections. 2011-04-14 Uros Bizjak * config/i386/sse.md (sse4_1): New mode attribute. (_blend): Macroize from avx_blend and sse4_1_blend using VF mode iterator. (_blendv): Macroize from avx_blendv and sse4_1_blendv using VF mode iterator. (_dp): Macroize from avx_dp and sse4_1_dp using VF mode iterator. (sse4_1_mpsadbw): Merge with *avx_mpsadbw. (sse4_1_packusdw): Merge with *avx_packusdw. (sse4_1_pblendvb): Merge with *avx_pblendvb. (sse4_1_pblendw): Merge with *avx_pblendw. (avx_vtest): Use VF mode iterator. (_round): Macroize from avx_round256 and sse4_1_round using VF mode iterator. (sse4_1_round): Merge with *avx_round. (aesenc): Merge with *avx_aesenc. (aesenclast): Merge with *avx_aesenclast. (aesdec): Merge with *avx_aesdec. (aesdeclast): Merge with *avx_aesdeclast. (pclmulqdq): Merge with *pclmulqdq. * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): New predicate. (nonimm_not_xmm0_operand_maybe_avx): Ditto. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32} AVX target. Uros. --000e0cd242c44c622b04a0e49cb6 Content-Type: text/plain; charset=US-ASCII; name="s.diff.txt" Content-Disposition: attachment; filename="s.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmhzlp6k0 Content-length: 31086 SW5kZXg6IHByZWRpY2F0ZXMubWQKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcHJlZGljYXRlcy5tZAkocmV2aXNpb24gMTcyNDM2KQorKysgcHJlZGlj YXRlcy5tZAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDExICsxMDYsMjMgQEAK ICAgcmV0dXJuICFSRUdfUCAob3ApIHx8IFJFR05PIChvcCkgIT0gRklSU1Rf U1NFX1JFRzsKIH0pCiAKLTs7IEFzIGFib3ZlLCBidXQgYWxsb3cgbm9uaW1t ZWRpYXRlIG9wZXJhbmRzLgorOzsgQXMgYWJvdmUsIGJ1dCBhbHNvIGFsbG93 IG1lbW9yeSBvcGVyYW5kcy4KIChkZWZpbmVfcHJlZGljYXRlICJub25pbW1f bm90X3htbTBfb3BlcmFuZCIKICAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJt ZW1vcnlfb3BlcmFuZCIpCiAgICAgICAgKG1hdGNoX29wZXJhbmQgMCAicmVn X25vdF94bW0wX29wZXJhbmQiKSkpCiAKKzs7IFJldHVybiB0cnVlIGlmIG9w IGlzIG5vdCB4bW0wIHJlZ2lzdGVyLCBidXQgb25seSBmb3Igbm9uLUFWWCB0 YXJnZXRzLgorKGRlZmluZV9wcmVkaWNhdGUgInJlZ19ub3RfeG1tMF9vcGVy YW5kX21heWJlX2F2eCIKKyAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAi VEFSR0VUX0FWWCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJf b3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQgMCAicmVnX25vdF94bW0w X29wZXJhbmQiKSkpCisKKzs7IEFzIGFib3ZlLCBidXQgYWxzbyBhbGxvdyBt ZW1vcnkgb3BlcmFuZHMuCisoZGVmaW5lX3ByZWRpY2F0ZSAibm9uaW1tX25v dF94bW0wX29wZXJhbmRfbWF5YmVfYXZ4IgorICAoaWZfdGhlbl9lbHNlICht YXRjaF90ZXN0ICJUQVJHRVRfQVZYIikKKyAgICAobWF0Y2hfb3BlcmFuZCAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCisgICAgKG1hdGNoX29wZXJhbmQg MCAibm9uaW1tX25vdF94bW0wX29wZXJhbmQiKSkpCisKIDs7IFJldHVybiB0 cnVlIGlmIFZBTFVFIGNhbiBiZSBzdG9yZWQgaW4gYSBzaWduIGV4dGVuZGVk IGltbWVkaWF0ZSBmaWVsZC4KIChkZWZpbmVfcHJlZGljYXRlICJ4ODZfNjRf aW1tZWRpYXRlX29wZXJhbmQiCiAgIChtYXRjaF9jb2RlICJjb25zdF9pbnQs c3ltYm9sX3JlZixsYWJlbF9yZWYsY29uc3QiKQpJbmRleDogc3NlLm1kCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHNzZS5tZAkocmV2aXNpb24gMTcy NDM2KQorKysgc3NlLm1kCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0 LDEwIEBACiAgICAoVjRTRiAic3NlIikgKFYyREYgInNzZTIiKQogICAgKFY4 U0YgImF2eCIpIChWNERGICJhdngiKV0pCiAKKyhkZWZpbmVfbW9kZV9hdHRy IHNzZTRfMQorICBbKFY0U0YgInNzZTRfMSIpIChWMkRGICJzc2U0XzEiKQor ICAgKFY4U0YgImF2eCIpIChWNERGICJhdngiKV0pCisKIDs7IE1hcHBpbmcg ZnJvbSBpbnRlZ2VyIHZlY3RvciBtb2RlIHRvIG1uZW1vbmljIHN1ZmZpeAog KGRlZmluZV9tb2RlX2F0dHIgc3NldmVjc2l6ZSBbKFYxNlFJICJiIikgKFY4 SEkgInciKSAoVjRTSSAiZCIpIChWMkRJICJxIildKQogCkBAIC04MTI0LDkx ICs4MTI4LDYwIEBACiA7OwogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiAK LShkZWZpbmVfaW5zbiAiYXZ4X2JsZW5kPHNzZW1vZGVzdWZmaXg+PGF2eG1v ZGVzdWZmaXg+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpBVlhN T0RFRjJQCi0JICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6QVZY TU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JICAobWF0Y2hf b3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVuZGJpdHM+X29wZXJhbmQi ICJuIikpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmQ8c3NlbW9kZXN1 ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFso c2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNl dF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5lX2lu c24gImF2eF9ibGVuZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4i Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFWWE1PREVGMlAgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOkFWWE1PREVGMlAKLQkgIFso bWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgInJlZ2lzdGVyX29wZXJhbmQi ICJ4IikKLQkgICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotCSAgIChtYXRjaF9vcGVyYW5kOkFW WE1PREVGMlAgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKV0KLQkgIFVOU1BF Q19CTEVORFYpKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2YmxlbmR2PHNzZW1v ZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9Igot ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKLSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAg IChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLQotKGRlZmlu ZV9pbnNuICJzc2U0XzFfYmxlbmQ8c3NlbW9kZXN1ZmZpeD4iCi0gIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj14IikKLQkodmVjX21lcmdlOlNTRU1PREVGMlAKLQkgIChtYXRjaF9v cGVyYW5kOlNTRU1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikKLQkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0 XzBfdG9fPGJsZW5kYml0cz5fb3BlcmFuZCIgIm4iKSkpXQorKGRlZmluZV9p bnNuICI8c3NlNF8xPl9ibGVuZDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3Vm Zml4PiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkYgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14LHgiKQorCSh2ZWNfbWVyZ2U6VkYKKwkgIChtYXRjaF9v cGVyYW5kOlZGIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQor CSAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs eCIpCisJICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzxibGVu ZGJpdHM+X29wZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIK LSAgImJsZW5kPHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIs ICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICJACisgICBibGVuZDxzc2Vtb2Rlc3VmZml4 Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZibGVuZDxzc2Vtb2Rl c3VmZml4Plx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEsKiIp CisgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgKHNldF9h dHRyICJwcmVmaXgiICJvcmlnLHZleCIpCiAgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAic3NlNF8xX2JsZW5kdjxz c2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9E RUYyUCAwICJyZWdfbm90X3htbTBfb3BlcmFuZCIgIj14IikKLQkodW5zcGVj OlNTRU1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDEg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiMCIpCi0JICAgKG1hdGNoX29wZXJh bmQ6U1NFTU9ERUYyUCAyICJub25pbW1fbm90X3htbTBfb3BlcmFuZCIgInht IikKLQkgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDMgInJlZ2lzdGVy X29wZXJhbmQiICJZeiIpXQorKGRlZmluZV9pbnNuICI8c3NlNF8xPl9ibGVu ZHY8c3NlbW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZGIDAgInJlZ19ub3RfeG1tMF9vcGVyYW5kX21heWJl X2F2eCIgIj14LHgiKQorCSh1bnNwZWM6VkYKKwkgIFsobWF0Y2hfb3BlcmFu ZDpWRiAxICJyZWdfbm90X3htbTBfb3BlcmFuZF9tYXliZV9hdngiICIwLHgi KQorCSAgIChtYXRjaF9vcGVyYW5kOlZGIDIgIm5vbmltbV9ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFu ZDpWRiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiWXoseCIpXQogCSAgVU5TUEVD X0JMRU5EVikpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgImJsZW5kdjxzc2Vt b2Rlc3VmZml4Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICJACisgICBibGVuZHY8c3NlbW9kZXN1ZmZpeD5c dHslMywgJTIsICUwfCUwLCAlMiwgJTN9CisgICB2YmxlbmR2PHNzZW1vZGVz dWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICBb KHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSwqIikK ICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0 dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIg IjxNT0RFPiIpXSkKIAotKGRlZmluZV9pbnNuICJhdnhfZHA8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFWWE1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5z cGVjOkFWWE1PREVGMlAKLQkgIFsobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQ IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgiKQotCSAgIChtYXRjaF9v cGVyYW5kOkFWWE1PREVGMlAgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fZHA8c3Nl bW9kZXN1ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwkodW5z cGVjOlZGCisJICBbKG1hdGNoX29wZXJhbmQ6VkYgMSAibm9uaW1tZWRpYXRl X29wZXJhbmQiICIlMCx4IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWRiAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIikKKwkgICAobWF0Y2hfb3Bl cmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAibixuIildCiAJ ICBVTlNQRUNfRFApKV0KLSAgIlRBUkdFVF9BVlgiCi0gICJ2ZHA8c3NlbW9k ZXN1ZmZpeD5cdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0g IFsoc2V0X2F0dHIgInR5cGUiICJzc2VtdWwiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAg KHNldF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQotCi0oZGVmaW5l X2luc24gInNzZTRfMV9kcDxzc2Vtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAgWyhtYXRjaF9vcGVyYW5k OlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIlMCIpCi0J ICAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtIikKLQkgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX0RQKSldCiAg ICJUQVJHRVRfU1NFNF8xIgotICAiZHA8c3NlbW9kZXN1ZmZpeD5cdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bXVsIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIkAKKyAgIGRwPHNz ZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfQorICAgdmRw PHNzZW1vZGVzdWZmaXg+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwg JTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxhdngiKQorICAgKHNl dF9hdHRyICJ0eXBlIiAic3NlbXVsIikKICAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjEiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2 IiAiMSwqIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisg ICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkKIAogKGRlZmluZV9pbnNuICJzc2U0XzFf bW92bnRkcWEiCkBAIC04MjIyLDExMSArODE5NSw3MyBAQAogICAgKHNldF9h dHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9tcHNhZGJ3IgotICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjE2UUkgWyhtYXRjaF9vcGVyYW5kOlYxNlFJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfMF90b18yNTVf b3BlcmFuZCIgIm4iKV0KLQkJICAgICAgVU5TUEVDX01QU0FEQlcpKV0KLSAg IlRBUkdFVF9BVlgiCi0gICJ2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0K IChkZWZpbmVfaW5zbiAic3NlNF8xX21wc2FkYnciCi0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHVuc3BlYzpWMTZRSSBbKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2 UUkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9vcGVyYW5kIiAi biIpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAseCIpCisJCSAg ICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDMg ImNvbnN0XzBfdG9fMjU1X29wZXJhbmQiICJuLG4iKV0KIAkJICAgICAgVU5T UEVDX01QU0FEQlcpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0gICJtcHNhZGJ3 XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWxvZzEiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKKyAgIkAKKyAgIG1wc2FkYndcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9 CisgICB2bXBzYWRid1x0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUz fSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRf YXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LQotKGRlZmluZV9pbnNuICIqYXZ4X3BhY2t1c2R3IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0J KHZlY19jb25jYXQ6VjhISQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIp KQotCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAgKG1hdGNoX29wZXJhbmQ6 VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnBhY2t1c2R3XHR7JTIsICUxLCAlMHwlMCwgJTEs ICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQorICAgKHNldF9hdHRyICJwcmVmaXgiICJvcmlnLHZleCIp CiAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRlZmluZV9pbnNu ICJzc2U0XzFfcGFja3VzZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJ KHZlY19jb25jYXQ6VjhISQogCSAgKHVzX3RydW5jYXRlOlY0SEkKLQkgICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp KQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKSkKIAkgICh1c190cnVuY2F0ZTpWNEhJCi0JICAgIChtYXRj aF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIp KSkpXQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDIgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAieG0seG0iKSkpKV0KICAgIlRBUkdFVF9TU0U0XzEiCi0g ICJwYWNrdXNkd1x0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKKyAgIkAKKyAgIHBhY2t1c2R3XHR7JTIsICUwfCUw LCAlMn0KKyAgIHZwYWNrdXNkd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i CisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0 dHIgInR5cGUiICJzc2Vsb2ciKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQog ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9wYmxlbmR2YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYxNlFJIFso bWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIngi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMiAibm9uaW1tZWRp YXRlX29wZXJhbmQiICJ4bSIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW MTZRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHZiXHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbW92IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInNzZTRfMV9wYmxlbmR2 YiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVnX25vdF94 bW0wX29wZXJhbmQiICI9eCIpCi0JKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnX25vdF94bW0wX29wZXJhbmQiICAiMCIpCi0J CSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJub25pbW1fbm90X3ht bTBfb3BlcmFuZCIgInhtIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYx NlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJZeiIpXQotCQkgICAgICBVTlNQ RUNfQkxFTkRWKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYxNlFJIDAg InJlZ19ub3RfeG1tMF9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3BlYzpWMTZR SQorCSAgWyhtYXRjaF9vcGVyYW5kOlYxNlFJIDEgInJlZ19ub3RfeG1tMF9v cGVyYW5kX21heWJlX2F2eCIgICIwLHgiKQorCSAgIChtYXRjaF9vcGVyYW5k OlYxNlFJIDIgIm5vbmltbV9ub3RfeG1tMF9vcGVyYW5kX21heWJlX2F2eCIg InhtLHhtIikKKwkgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAzICJyZWdpc3Rl cl9vcGVyYW5kIiAiWXoseCIpXQorCSAgVU5TUEVDX0JMRU5EVikpXQogICAi VEFSR0VUX1NTRTRfMSIKLSAgInBibGVuZHZiXHR7JTMsICUyLCAlMHwlMCwg JTIsICUzfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCisgICJA CisgICBwYmxlbmR2Ylx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30KKyAgIHZw YmxlbmR2Ylx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwxIikK KyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9wYmxl bmR3IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCIpCi0JKHZlY19tZXJnZTpWOEhJCi0JICAobWF0Y2hf b3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi eCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpKSldCi0gICJUQVJHRVRfQVZYIgotICAidnBibGVuZHdc dHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vtb3YiKQotICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0KIChkZWZpbmVfaW5zbiAic3NlNF8xX3BibGVu ZHciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14IikKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCiAJKHZlY19tZXJnZTpWOEhJ Ci0JICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAieG0iKQotCSAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpCi0JICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzI1NV9vcGVyYW5kIiAibiIpKSldCisJICAobWF0Y2hfb3BlcmFu ZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKQorCSAg KG1hdGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4 IikKKwkgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29w ZXJhbmQiICJuLG4iKSkpXQogICAiVEFSR0VUX1NTRTRfMSIKLSAgInBibGVu ZHdcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbW92IikKKyAgIkAKKyAgIHBibGVuZHdcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGJsZW5kd1x0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4 IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCiAgICAoc2V0X2F0 dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gInNzZTRfMV9waG1pbnBvc3V3IgpAQCAtODQzOCw4ICs4MzczLDgg QEAKIDs7IHNldHRpbmcgRkxBR1NfUkVHLiBCdXQgaXQgaXMgbm90IGEgcmVh bGx5IGNvbXBhcmUgaW5zdHJ1Y3Rpb24uCiAoZGVmaW5lX2luc24gImF2eF92 dGVzdDxzc2Vtb2Rlc3VmZml4Pjxhdnhtb2Rlc3VmZml4PiIKICAgWyhzZXQg KHJlZzpDQyBGTEFHU19SRUcpCi0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6QVZYTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAg ICAobWF0Y2hfb3BlcmFuZDpBVlhNT0RFRjJQIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieG0iKV0KKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpW RiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCisJCSAgICAobWF0Y2hfb3Bl cmFuZDpWRiAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCiAJCSAg IFVOU1BFQ19WVEVTVFApKV0KICAgIlRBUkdFVF9BVlgiCiAgICJ2dGVzdDxz c2Vtb2Rlc3VmZml4Plx0eyUxLCAlMHwlMCwgJTF9IgpAQCAtODQ3NCw2NyAr ODQwOSw0NCBAQAogICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5z biAiYXZ4X3JvdW5kPHNzZW1vZGVzdWZmaXg+MjU2IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpBVlgyNTZNT0RFRjJQIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9eCIpCi0JKHVuc3BlYzpBVlgyNTZNT0RFRjJQCi0JICBbKG1hdGNoX29w ZXJhbmQ6QVZYMjU2TU9ERUYyUCAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg InhtIikKKyhkZWZpbmVfaW5zbiAiPHNzZTRfMT5fcm91bmQ8c3NlbW9kZXN1 ZmZpeD48YXZ4bW9kZXN1ZmZpeD4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJKHVuc3BlYzpWRgor CSAgWyhtYXRjaF9vcGVyYW5kOlZGIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAieG0iKQogCSAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0XzBfdG9f MTVfb3BlcmFuZCIgIm4iKV0KIAkgIFVOU1BFQ19ST1VORCkpXQotICAiVEFS R0VUX0FWWCIKLSAgInZyb3VuZDxzc2Vtb2Rlc3VmZml4Plx0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQotCi0oZGVmaW5lX2luc24gInNzZTRfMV9yb3VuZDxzc2Vtb2Rlc3VmZml4 PiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6U1NFTU9ERUYyUAotCSAg WyhtYXRjaF9vcGVyYW5kOlNTRU1PREVGMlAgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4bSIpCi0JICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3Rf MF90b18xNV9vcGVyYW5kIiAibiIpXQotCSAgVU5TUEVDX1JPVU5EKSldCiAg ICJUQVJHRVRfUk9VTkQiCiAgICIldnJvdW5kPHNzZW1vZGVzdWZmaXg+XHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0gICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikK KyAgIChzZXQgKGF0dHIgInByZWZpeF9kYXRhMTYiKQorICAgICAoaWZfdGhl bl9lbHNlCisgICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfQVZYIikg KGNvbnN0X2ludCAwKSkKKyAgICAgKGNvbnN0X3N0cmluZyAiKiIpCisgICAg IChjb25zdF9zdHJpbmcgIjEiKSkpCiAgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCiAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCiAgICAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKLShkZWZpbmVfaW5zbiAi KmF2eF9yb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4PiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotCSh2ZWNfbWVyZ2U6U1NFTU9ERUYyUAotCSAgKHVuc3BlYzpTU0VN T0RFRjJQCi0JICAgIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDMgImNvbnN0XzBfdG9fMTVfb3BlcmFuZCIgIm4iKV0KLQkgICAgVU5TUEVD X1JPVU5EKQotCSAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdp c3Rlcl9vcGVyYW5kIiAieCIpCi0JICAoY29uc3RfaW50IDEpKSldCi0gICJU QVJHRVRfQVZYIgotICAidnJvdW5kPHNzZXNjYWxhcm1vZGVzdWZmaXg+XHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlY3Z0IikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpXSkKLQogKGRlZmluZV9pbnNuICJzc2U0XzFfcm91 bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD4iCi0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNTRU1PREVGMlAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQko dmVjX21lcmdlOlNTRU1PREVGMlAKLQkgICh1bnNwZWM6U1NFTU9ERUYyUAot CSAgICBbKG1hdGNoX29wZXJhbmQ6U1NFTU9ERUYyUCAyICJyZWdpc3Rlcl9v cGVyYW5kIiAieCIpCi0JICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25z dF8wX3RvXzE1X29wZXJhbmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZGXzEyOCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHZl Y19tZXJnZTpWRl8xMjgKKwkgICh1bnNwZWM6VkZfMTI4CisJICAgIFsobWF0 Y2hfb3BlcmFuZDpWRl8xMjggMiAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCIp CisJICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzE1X29w ZXJhbmQiICJuLG4iKV0KIAkgICAgVU5TUEVDX1JPVU5EKQotCSAgKG1hdGNo X29wZXJhbmQ6U1NFTU9ERUYyUCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp CisJICAobWF0Y2hfb3BlcmFuZDpWRl8xMjggMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAseCIpCiAJICAoY29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRfUk9V TkQiCi0gICJyb3VuZDxzc2VzY2FsYXJtb2Rlc3VmZml4Plx0eyUzLCAlMiwg JTB8JTAsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAiQAorICAgcm91bmQ8c3Nl c2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9Cisg ICB2cm91bmQ8c3Nlc2NhbGFybW9kZXN1ZmZpeD5cdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4 LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQogICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIg InByZWZpeF9kYXRhMTYiICIxLCoiKQorICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgi KQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQogCiA7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OzsKQEAgLTEwMDg0LDk2ICs5OTk2LDY1IEBACiAg ICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCiAKIDs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwotKGRlZmluZV9pbnNuICIqYXZ4X2Flc2VuYyIK LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJE SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0K LQkJICAgICAgVU5TUEVDX0FFU0VOQykpXQotICAiVEFSR0VUX0FFUyAmJiBU QVJHRVRfQVZYIgotICAidmFlc2VuY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAoc2V0X2F0dHIgInByZWZp eCIgInZleCIpCi0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKIAogKGRl ZmluZV9pbnNuICJhZXNlbmMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkg WyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAi KQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlh dGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYy REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJE SSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkgICAgICBVTlNQRUNfQUVT RU5DKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jXHR7JTIsICUwfCUw LCAlMn0iCi0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKKyAgIkAK KyAgIGFlc2VuY1x0eyUyLCAlMHwlMCwgJTJ9CisgICB2YWVzZW5jXHR7JTIs ICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgWyhzZXRfYXR0ciAiaXNhIiAibm9h dngsYXZ4IikKKyAgIChzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQogICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgIChzZXRfYXR0ciAi cHJlZml4IiAib3JpZyx2ZXgiKQogICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2eF9hZXNlbmNsYXN0IgotICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 eCIpCi0JKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ4IikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQotCQkgICAg ICBVTlNQRUNfQUVTRU5DTEFTVCkpXQotICAiVEFSR0VUX0FFUyAmJiBUQVJH RVRfQVZYIgotICAidmFlc2VuY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0KIChk ZWZpbmVfaW5zbiAiYWVzZW5jbGFzdCIKLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6 VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpCi0JCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKHVuc3Bl YzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHgiKQorCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHhtIildCiAJCSAgICAgIFVOU1BF Q19BRVNFTkNMQVNUKSldCiAgICJUQVJHRVRfQUVTIgotICAiYWVzZW5jbGFz dFx0eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisgICJACisgICBhZXNlbmNsYXN0XHR7JTIsICUwfCUwLCAlMn0K KyAgIHZhZXNlbmNsYXN0XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAg WyhzZXRfYXR0ciAiaXNhIiAibm9hdngsYXZ4IikKKyAgIChzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQogICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKKyAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgiKQogICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmF2 eF9hZXNkZWMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9v cGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAg ICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgInhtIildCi0JCSAgICAgIFVOU1BFQ19BRVNERUMpKV0KLSAgIlRBUkdF VF9BRVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNcdHslMiwgJTEsICUw fCUwLCAlMSwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIp Ci0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQotICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi0KIChkZWZpbmVfaW5zbiAiYWVzZGVjIgotICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0JKHVu c3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikKLQkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwko dW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAseCIpCisJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJ IDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seG0iKV0KIAkJICAgICAg VU5TUEVDX0FFU0RFQykpXQogICAiVEFSR0VUX0FFUyIKLSAgImFlc2RlY1x0 eyUyLCAlMHwlMCwgJTJ9IgotICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n MSIpCisgICJACisgICBhZXNkZWNcdHslMiwgJTB8JTAsICUyfQorICAgdmFl c2RlY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgIFsoc2V0X2F0dHIg ImlzYSIgIm5vYXZ4LGF2eCIpCisgICAoc2V0X2F0dHIgInR5cGUiICJzc2Vs b2cxIikKICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAo c2V0X2F0dHIgInByZWZpeCIgIm9yaWcsdmV4IikKICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQogCi0oZGVmaW5lX2luc24gIiphdnhfYWVzZGVjbGFz dCIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6 VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCi0JCSAgICAgICAobWF0 Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0i KV0KLQkJICAgICAgVU5TUEVDX0FFU0RFQ0xBU1QpKV0KLSAgIlRBUkdFVF9B RVMgJiYgVEFSR0VUX0FWWCIKLSAgInZhZXNkZWNsYXN0XHR7JTIsICUxLCAl MHwlMCwgJTEsICUyfSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEi KQotICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQotCiAoZGVmaW5lX2luc24gImFlc2RlY2xhc3QiCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikK LQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQotCQkgICAgICAgKG1hdGNoX29wZXJhbmQ6VjJE SSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgi KQorCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJICAgICAgIChtYXRjaF9vcGVyYW5k OlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4bSIpXQogCQkg ICAgICBVTlNQRUNfQUVTREVDTEFTVCkpXQogICAiVEFSR0VUX0FFUyIKLSAg ImFlc2RlY2xhc3RcdHslMiwgJTB8JTAsICUyfSIKLSAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQorICAiQAorICAgYWVzZGVjbGFzdFx0eyUyLCAl MHwlMCwgJTJ9CisgICB2YWVzZGVjbGFzdFx0eyUyLCAlMSwgJTB8JTAsICUx LCAlMn0iCisgIFsoc2V0X2F0dHIgImlzYSIgIm5vYXZ4LGF2eCIpCisgICAo c2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKICAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9yaWcs dmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVmaW5l X2luc24gImFlc2ltYyIKQEAgLTEwMjAwLDMxICsxMDA4MSwyMSBAQAogICAg KHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQogICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnZwY2xtdWxxZHEi Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj14IikKLQkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYy REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotCQkgICAgICAobWF0Y2hf b3BlcmFuZDpWMkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQot CQkgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wX3RvXzI1NV9v cGVyYW5kIiAibiIpXQotCQkgICAgIFVOU1BFQ19QQ0xNVUwpKV0KLSAgIlRB UkdFVF9QQ0xNVUwgJiYgVEFSR0VUX0FWWCIKLSAgInZwY2xtdWxxZHFcdHsl MywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2cxIikKLSAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotCiAoZGVmaW5lX2luc24gInBjbG11bHFkcSIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXgiKQotCSh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JCSAgICAgIChtYXRjaF9vcGVy YW5kOlYyREkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCi0JCSAg ICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29wZXJh bmQiICJuIildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14LHgiKQorCSh1bnNwZWM6VjJESSBbKG1hdGNo X29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCx4IikKKwkJ ICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgInhtLHhtIikKKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi Y29uc3RfMF90b18yNTVfb3BlcmFuZCIgIm4sbiIpXQogCQkgICAgIFVOU1BF Q19QQ0xNVUwpKV0KICAgIlRBUkdFVF9QQ0xNVUwiCi0gICJwY2xtdWxxZHFc dHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nMSIpCisgICJACisgICBwY2xtdWxxZHFcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9CisgICB2cGNsbXVscWRxXHR7JTMsICUyLCAlMSwgJTB8 JTAsICUxLCAlMiwgJTN9IgorICBbKHNldF9hdHRyICJpc2EiICJub2F2eCxh dngiKQorICAgKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCiAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgInByZWZpeCIgIm9y aWcsdmV4IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCiAoZGVm aW5lX2V4cGFuZCAiYXZ4X3Z6ZXJvYWxsIgo= --000e0cd242c44c622b04a0e49cb6--