From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26111 invoked by alias); 10 Mar 2013 05:46:16 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 31132 Received: (qmail 17212 invoked from network); 10 Mar 2013 05:46:04 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,RCVD_IN_DNSWL_LOW, T_DKIM_INVALID autolearn=no version=3.3.2 Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.216.176 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=dkNlwP4n2xoPAtLw87PjA+j1gVSrka3tWuZ8LeCVFiY=; b=iUgAyZt9dUYNj6CmSv2M1GrGUZfuueaaT93eCsv8xhoa77dfP67dwS0MldY5GQPBXf zfLGv3yo/h5HItqTupH4iB5QaU6eTqqkpXyPrpDHI8ksQnwuX0HIlVb7cKzQYzOn5yhJ e8IxUeVH9+NUf9tM++w295hs5Gnd/sVF/141DSnBXv8ive7SRzO5NjzWwmyzKaQ/RgYo ulzCo/bKGLFzEiNon7J8Bda/gOIlTqx/uUauE/TDY9hryNfkpz5kMEntBOrPunHZN8db rSrCa3V49unu1n6NLb8zD8XHSZRLzCerVYPCSzQYio9zyOysjwKqBwC8vc2IjebL4VPX JfmQ== MIME-Version: 1.0 X-Received: by 10.224.78.196 with SMTP id m4mr11456987qak.67.1362894356708; Sat, 09 Mar 2013 21:45:56 -0800 (PST) In-Reply-To: <130309072553.ZM19912@torch.brasslantern.com> References: <130309072553.ZM19912@torch.brasslantern.com> Date: Sun, 10 Mar 2013 00:45:56 -0500 Message-ID: Subject: Re: auto list choices From: joe M To: Bart Schaefer Cc: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary=20cf3074d4d2ffaf9604d78b9142 --20cf3074d4d2ffaf9604d78b9142 Content-Type: text/plain; charset=ISO-8859-1 Hello Bart, Thanks a lot for responding. I find your comments very informative and a treasure trove for me. > Some brief critique: > > (1) It's annoying to use application/octet-stream for text attachments. > This probably isn't your fault, you just have a broken email program, > or you haven't told it that the ".zsh" extension means a text type. gmail is adding application/octet-stream. I will send both the .zsh file and a .txt file. > (2) In this line in list-completion: > > if ((compstate[list_lines] > ${INCR_MAX_MATCHES:-20} \ > || compstate[list_lines]+BUFFERLINES+2 > LINES)) > > The backslash-continuation is not necessary, "((" begins a syntactic > construct which continues even across newlines to the matching "))". On a slightly different note, I do not feel comfortable using the (( .. )) construct as it does not show up properly in the xtrace/verbose log. This is how it shows up. +limit-completion:21> (( compstate[list_lines] > 60 || compstate[list_lines]+BUFFERLINES+2 > LINES )) whereas the [[ .. ]] construct shows up like this: +limit-completion:23> [[ 7 -gt 60 ||+limit-completion:23> expr 7 + 2 + 2 +limit-completion:23> [[ 7 -gt 60 || 11 -gt 47 ]] I think the [[ .. ]] is more comprehensible. > setopt localoptions; unsetopt BANG_HIST > > However, locally unsetting BANG_HIST is the correct solution to the > problem you were having, so good job figuring that out. Fixed it. I picked the above localoptions from your earlier code on _debug_widget. I could not figure out why the below lines do not work. They return a blank. echo "4: $(expr ${compstate[list_lines]})" echo "5: $(expr $compstate[list_lines])" echo "6: $(expr $compstate[list_lines] + $BUFFERLINES)" echo "7: $(expr $compstate[list_lines] + $BUFFERLINES + 2)" They are in lines 42 .. 45 of the attached script. The debugging output from the lines 35 .. 57 of the attached file is: +limit-completion:7> echo 'started limit-completion' started limit-completion +limit-completion:8> echo 'compstate[list_lines]: 8' compstate[list_lines]: 8 +limit-completion:9> echo 'INCR_MAX_MATCHES: 60' INCR_MAX_MATCHES: 60 +limit-completion:10> echo 'BUFFERLINES: 2' BUFFERLINES: 2 +limit-completion:11> echo 'list_lines: 8' list_lines: 8 +limit-completion:12> expr 8 + 2 + 2 +limit-completion:12> echo 'expr list_lines: 12' expr list_lines: 12 +limit-completion:13> echo '----- no idea why these below lines do not work' ----- no idea why these below lines do not work +limit-completion:14> echo '4: ' 4: +limit-completion:15> echo '5: ' 5: +limit-completion:16> echo '6: ' 6: +limit-completion:17> echo '7: ' 7: +limit-completion:18> echo '----- no idea why the above lines do not work' ----- no idea why the above lines do not work +limit-completion:19> echo 'LINES: 47' LINES: 47 +limit-completion:20> echo 'ended limit-completion' ended limit-completion +limit-completion:23> [[ 8 -gt 60 ||+limit-completion:23> expr 8 + 2 + 2 +limit-completion:23> [[ 8 -gt 60 || 12 -gt 47 ]] Whereas, when I tried the associative array workings from the command line, it worked fine: - (0:c:/tmp) - - - - - - - - - - - - - - - typeset -A NAME - (0:c:/tmp) - - - - - - - - - - - - - - - NAME=(test1 1 test2 2 test3 3 test4 4) - (0:i:/tmp) - - - - - - - - - - - - - - - echo $NAME 1 2 3 4 - (0:i:/tmp) - - - - - - - - - - - - - - - echo $NAME[test1] 1 - (0:i:/tmp) - - - - - - - - - - - - - - - expr $NAME[test1] + 2 3 - (0:i:/tmp) - - - - - - - - - - - - - - - echo $(expr $NAME[test1] + 2) 3 - (0:i:/tmp) - - - - - - - - - - - - - - - echo "$(expr $NAME[test1] + 2)" 3 Any thoughts, please? Thanks Joe --20cf3074d4d2ffaf9604d78b9142 Content-Type: text/plain; charset=US-ASCII; name="80-auto-list-choices.zsh.txt" Content-Disposition: attachment; filename="80-auto-list-choices.zsh.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_he3s15v91 IyEvdXNyL2Jpbi96c2gKCiMgYmFzZWQgb24KIyAgaW5jcmVtZW50YWwgY29tcGxldGlvbiBmb3Ig enNoCiMgIGJ5IHkuZnVqaWkgPHktZnVqaWkgYXQgbWltb3NhLXB1ZGljYS5uZXQ+LCBwdWJsaWMg ZG9tYWluCgojIGdvdCB0aGUgYmVsb3cgYWxpZ25tZW50IHdpdGgKIyAgb3IsIGJlbG93CiMgIDox MSwxMnMvXHNcKy8gL2cKIyAgJzwsJz5UYWJ1bGFyaXplIC9ccy9sMGMwCnpsZSAtTiBzZWxmLWlu c2VydCAgICAgIHNlbGYtaW5zZXJ0LWluY3IKIyB6bGUgLU4gdmktYmFja3dhcmQtZGVsZXRlLWNo YXItaW5jcgoKIyBiaW5ka2V5IC1NIHZpaW5zICdeaCcgdmktYmFja3dhcmQtZGVsZXRlLWNoYXIt aW5jcgojIGJpbmRrZXkgLU0gdmlpbnMgJ14/JyB2aS1iYWNrd2FyZC1kZWxldGUtY2hhci1pbmNy CgojIHRvIGluY3JlYXNlIHRoZSBpbmNyLTAuMiBtYXggbWF0Y2hlcwpleHBvcnQgSU5DUl9NQVhf TUFUQ0hFUz02MAoKIyBmdW5jdGlvbiBsaW1pdC1jb21wbGV0aW9uICgpIHsKIyAgICBpZiAoKGNv bXBzdGF0ZVtubWF0Y2hlc10gPD0gMSkpOyB0aGVuCiMgICAgICAgemxlIC1NICIiCiMgICAgZWxp ZiAoKGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSA+ICR7SU5DUl9NQVhfTUFUQ0hFUzotMjB9KSk7IHRo ZW4KIyAgICAgICBjb21wc3RhdGVbbGlzdF09IiIKIyAgICAgICB6bGUgLU0gInRvbyBtYW55IG1h dGNoZXMuIgojICAgIGZpCiMgfQpmdW5jdGlvbiBsaW1pdC1jb21wbGV0aW9uICgpIHsKICAgIyBn b3QgdGhlIGxpbmUgY29tcGFyaW5nIHdpdGggTElORVMgZnJvbQogICAjICAvdXNyL3NoYXJlL3pz aC81LjAuMi9mdW5jdGlvbnMvWmxlL2luY3JlbWVudGFsLWNvbXBsZXRlLXdvcmQKICAgbG9jYWwg bGlzdF9saW5lcwogICBsaXN0X2xpbmVzPSRjb21wc3RhdGVbbGlzdF9saW5lc10KICAgewogICBz ZXRvcHQgbG9jYWxvcHRpb25zIHh0cmFjZSB2ZXJib3NlCiAgIGVjaG8gInN0YXJ0ZWQgbGltaXQt Y29tcGxldGlvbiIKICAgZWNobyAiY29tcHN0YXRlW2xpc3RfbGluZXNdOiAkY29tcHN0YXRlW2xp c3RfbGluZXNdIgogICBlY2hvICJJTkNSX01BWF9NQVRDSEVTOiAke0lOQ1JfTUFYX01BVENIRVM6 LTIwfSIKICAgZWNobyAiQlVGRkVSTElORVM6ICRCVUZGRVJMSU5FUyIKICAgZWNobyAibGlzdF9s aW5lczogJGxpc3RfbGluZXMiCiAgIGVjaG8gImV4cHIgbGlzdF9saW5lczogJChleHByICRsaXN0 X2xpbmVzICsgJEJVRkZFUkxJTkVTICsgMikiCiAgIGVjaG8gIi0tLS0tIG5vIGlkZWEgd2h5IHRo ZXNlIGJlbG93IGxpbmVzIGRvIG5vdCB3b3JrIgogICBlY2hvICI0OiAkKGV4cHIgJHtjb21wc3Rh dGVbbGlzdF9saW5lc119KSIKICAgZWNobyAiNTogJChleHByICRjb21wc3RhdGVbbGlzdF9saW5l c10pIgogICBlY2hvICI2OiAkKGV4cHIgJGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSArICRCVUZGRVJM SU5FUykiCiAgIGVjaG8gIjc6ICQoZXhwciAkY29tcHN0YXRlW2xpc3RfbGluZXNdICsgJEJVRkZF UkxJTkVTICsgMikiCiAgIGVjaG8gIi0tLS0tIG5vIGlkZWEgd2h5IHRoZSBhYm92ZSBsaW5lcyBk byBub3Qgd29yayIKICAgZWNobyAiTElORVM6ICRMSU5FUyIKICAgZWNobyAiZW5kZWQgbGltaXQt Y29tcGxldGlvbiIKICAgIyBpZiAoKGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSA+ICR7SU5DUl9NQVhf TUFUQ0hFUzotMjB9IFwKICAgIyAgICAgIHx8IGNvbXBzdGF0ZVtsaXN0X2xpbmVzXStCVUZGRVJM SU5FUysyID4gTElORVMpKQogICBpZiBbWyAiJGxpc3RfbGluZXMiIC1ndCAiJHtJTkNSX01BWF9N QVRDSEVTOi0yMH0iIFwKICAgICAgICAgfHwgJChleHByICRsaXN0X2xpbmVzICsgJEJVRkZFUkxJ TkVTICsgMikgLWd0ICIkTElORVMiIF1dCiAgIHRoZW4KICAgICAgY29tcHN0YXRlW2xpc3RdPScn CiAgICAgIHpsZSAtTSAidG9vIG1hbnkgbWF0Y2hlcy4iCiAgIGZpCiAgIH0gIDI+PnwgL3RtcC96 c2gtbGltaXQtY29tcGxldGlvbi5sb2cgMT4mMgp9CgpmdW5jdGlvbiBzZWxmLWluc2VydC1pbmNy ICgpIHsKICAgIyBlY2hvICJzdGFydGVkIHNlbGYtaW5zZXJ0LWluY3IiCiAgIGlmIHpsZSAuc2Vs Zi1pbnNlcnQ7IHRoZW4KICAgICAgc2hvdy1jaG9pY2VzCiAgICAgICMgY29tcGxldGUtd29yZC1p bmNyCiAgIGZpCn0KCmZ1bmN0aW9uIHZpLWJhY2t3YXJkLWRlbGV0ZS1jaGFyLWluY3IgKCkgewog ICBpZiB6bGUgdmktYmFja3dhcmQtZGVsZXRlLWNoYXI7IHRoZW4KICAgICAgc2hvdy1jaG9pY2Vz CiAgICAgICMgY29tcGxldGUtd29yZC1pbmNyCiAgIGZpCn0KCmZ1bmN0aW9uIHNob3ctY2hvaWNl cyAoKSB7CiAgICMgbG9jYWwgY3Vyc29yX29yZwogICAjIGxvY2FsIGJ1ZmZlcl9vcmcKICAgIyBs b2NhbCBjdXJzb3Jfbm93CiAgICMgbG9jYWwgYnVmZmVyX25vdwogICAjIGN1cnNvcl9vcmc9IiRD VVJTT1IiCiAgICMgYnVmZmVyX29yZz0iJEJVRkZFUiIKICAgIyBpZiBbWyAiJEJVRkZFUlsxXSIg IT0gIiEiIF1dCiAgICMgZWNobyAkd2lkZ2V0c1tsaXN0LWNob2ljZXNdCiAgICMgIHVzZXI6X3pz aF9oaWdobGlnaHRfd2lkZ2V0X2xpc3QtY2hvaWNlcwogICAjIG12IDkxLWhpc3Rvcnktc3Vic3Ry aW5nLXNlYXJjaC56c2ggXAogICAjICAgICA5MS1oaXN0b3J5LXN1YnN0cmluZy1zZWFyY2guenNo LmRpc2FibGUKICAgIyBybSA5MC1zeW50YXguenNoCiAgICMgZWNobyAkd2lkZ2V0c1tsaXN0LWNo b2ljZXNdCiAgICMgIGNvbXBsZXRpb246Lmxpc3QtY2hvaWNlczpfbWFpbl9jb21wbGV0ZQogICAj IGNvbXBpbml0IGlzIHJlZGlyZWN0aW5nIGxpc3QtY2hvaWNlcyB0byBfbWFpbl9jb21wbGV0ZQog ICAjICBhbmQgdGhlIF9ub3JtYWwgY2FsbGVkIGJ5IF9tYWluX2NvbXBsZXRlIGlzIGRvaW5nIGEK ICAgIyAgYmFuZyBleHBhbnNpb24gYXMgc29vbiBhcyBpdCBzZWVzIGEgISBpbiB0aGUgc3RyaW5n CiAgICMgIEhlbmNlLCBkbyBub3QgY2FsbCBsaXN0LWNob2ljZXMgaWYgdGhlcmUgaXMgYSAhIGlu IHRoYXQgbGluZQogICAjICBvciwgaW5zdGVhZCBvZiBmaWx0ZXJpbmcgJEJVRkZFUiBvbiAhLCB1 bnNldG9wdCBCQU5HX0hJU1QKICAgIyAgYXMgbGlzdC1jaG9pY2VzIGlzIGNoZWNraW5nIG9uIEJB TkdfSElTVCBiZWZvcmUgZXhwYW5kaW5nCiAgICMgIHRoZSAhLgogICAjIGlmIFtbICIkQlVGRkVS IiAhPSAqXCEqICYmIFwKICAgICBzZXRvcHQgbG9jYWxvcHRpb25zCiAgIHVuc2V0b3B0IEJBTkdf SElTVAogICAjIHNldG9wdCB4dHJhY2UgdmVyYm9zZQogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMg aWYgdGhlcmUgaXMgYSAhIGluIHRoYXQgd29yZAogICAjICBidXQsIGFzIEkgY291bGQgbm90IGZp Z3VyZSBvdXQgdGhlIHdvcmQgdnMgbGluZSwKICAgIyAganVzdCBza2lwcGluZyBvbiBhbnkgbGlu ZSB3aXRoIGEgIQogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMgaWYgaXQgaXMgYSBwYXN0ZSwgcGVu ZGluZyA+IDAgaW4gc3VjaCBjYXNlcwogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMgaWYgZWRpdGlu ZyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZAogICBpZiBbWyAiJEJVRkZFUiIgIT0gKlwhKiBcCiAg ICAgICAgICYmICIkUEVORElORyIgLWVxIDAgIFwKICAgICAgICAgJiYgKCAteiAiJFJCVUZGRVIi IHx8ICIkUkJVRkZFUlsxXSIgPT0gJyAnICkgXAogICAgICAgICBdXQogICB0aGVuCiAgICAgIGNv bXBwb3N0ZnVuY3M9KGxpbWl0LWNvbXBsZXRpb24pCiAgICAgIHpsZSBsaXN0LWNob2ljZXMKICAg ZmkKICAgIyBjdXJzb3Jfbm93PSIkQ1VSU09SIgogICAjIGJ1ZmZlcl9ub3c9IiRCVUZGRVIiCn0K CmZ1bmN0aW9uIGNvbXBsZXRlLXdvcmQtaW5jciAoKSB7CiAgIGxvY2FsIGN1cnNvcl9vcmcKICAg bG9jYWwgYnVmZmVyX29yZwogICBsb2NhbCBjdXJzb3Jfbm93CiAgIGxvY2FsIGJ1ZmZlcl9ub3cK ICAgbG9jYWwgbGJ1ZmZlcl9ub3cKICAgY3Vyc29yX29yZz0iJENVUlNPUiIKICAgYnVmZmVyX29y Zz0iJEJVRkZFUiIKICAgY29tcHBvc3RmdW5jcz0obGltaXQtY29tcGxldGlvbikKICAgemxlIGNv bXBsZXRlLXdvcmQKICAgY3Vyc29yX25vdz0iJENVUlNPUiIKICAgYnVmZmVyX25vdz0iJEJVRkZF UiIKICAgbGJ1ZmZlcl9ub3c9IiRMQlVGRkVSIgogICAjIGlmIFsgIiRjdXJzb3Jfbm93IiAtZ3Qg IiRjdXJzb3Jfb3JnIiBcCiAgICMgICAgLWEgIiRidWZmZXJfb3JnWzEsY3Vyc29yX29yZ10iID09 ICIkYnVmZmVyX25vd1sxLGN1cnNvcl9vcmddIiBcCiAgICMgICAgLWEgIiRsYnVmZmVyX25vd1st MV0iID09ICIgIiBdCiAgICMgdGhlbgogICAjICAgIENVUlNPUj0iJGN1cnNvcl9vcmciCiAgICMg ZmkKfQoKIyB2aW06IHNldCBmaWxldHlwZT16c2ggc2hpZnR3aWR0aD0zIHRhYnN0b3A9MyBleHBh bmR0YWIgZmlsZWZvcm1hdD11bml4Cg== --20cf3074d4d2ffaf9604d78b9142 Content-Type: application/octet-stream; name="80-auto-list-choices.zsh" Content-Disposition: attachment; filename="80-auto-list-choices.zsh" Content-Transfer-Encoding: base64 X-Attachment-Id: f_he3s11440 IyEvdXNyL2Jpbi96c2gKCiMgYmFzZWQgb24KIyAgaW5jcmVtZW50YWwgY29tcGxldGlvbiBmb3Ig enNoCiMgIGJ5IHkuZnVqaWkgPHktZnVqaWkgYXQgbWltb3NhLXB1ZGljYS5uZXQ+LCBwdWJsaWMg ZG9tYWluCgojIGdvdCB0aGUgYmVsb3cgYWxpZ25tZW50IHdpdGgKIyAgb3IsIGJlbG93CiMgIDox MSwxMnMvXHNcKy8gL2cKIyAgJzwsJz5UYWJ1bGFyaXplIC9ccy9sMGMwCnpsZSAtTiBzZWxmLWlu c2VydCAgICAgIHNlbGYtaW5zZXJ0LWluY3IKIyB6bGUgLU4gdmktYmFja3dhcmQtZGVsZXRlLWNo YXItaW5jcgoKIyBiaW5ka2V5IC1NIHZpaW5zICdeaCcgdmktYmFja3dhcmQtZGVsZXRlLWNoYXIt aW5jcgojIGJpbmRrZXkgLU0gdmlpbnMgJ14/JyB2aS1iYWNrd2FyZC1kZWxldGUtY2hhci1pbmNy CgojIHRvIGluY3JlYXNlIHRoZSBpbmNyLTAuMiBtYXggbWF0Y2hlcwpleHBvcnQgSU5DUl9NQVhf TUFUQ0hFUz02MAoKIyBmdW5jdGlvbiBsaW1pdC1jb21wbGV0aW9uICgpIHsKIyAgICBpZiAoKGNv bXBzdGF0ZVtubWF0Y2hlc10gPD0gMSkpOyB0aGVuCiMgICAgICAgemxlIC1NICIiCiMgICAgZWxp ZiAoKGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSA+ICR7SU5DUl9NQVhfTUFUQ0hFUzotMjB9KSk7IHRo ZW4KIyAgICAgICBjb21wc3RhdGVbbGlzdF09IiIKIyAgICAgICB6bGUgLU0gInRvbyBtYW55IG1h dGNoZXMuIgojICAgIGZpCiMgfQpmdW5jdGlvbiBsaW1pdC1jb21wbGV0aW9uICgpIHsKICAgIyBn b3QgdGhlIGxpbmUgY29tcGFyaW5nIHdpdGggTElORVMgZnJvbQogICAjICAvdXNyL3NoYXJlL3pz aC81LjAuMi9mdW5jdGlvbnMvWmxlL2luY3JlbWVudGFsLWNvbXBsZXRlLXdvcmQKICAgbG9jYWwg bGlzdF9saW5lcwogICBsaXN0X2xpbmVzPSRjb21wc3RhdGVbbGlzdF9saW5lc10KICAgewogICBz ZXRvcHQgbG9jYWxvcHRpb25zIHh0cmFjZSB2ZXJib3NlCiAgIGVjaG8gInN0YXJ0ZWQgbGltaXQt Y29tcGxldGlvbiIKICAgZWNobyAiY29tcHN0YXRlW2xpc3RfbGluZXNdOiAkY29tcHN0YXRlW2xp c3RfbGluZXNdIgogICBlY2hvICJJTkNSX01BWF9NQVRDSEVTOiAke0lOQ1JfTUFYX01BVENIRVM6 LTIwfSIKICAgZWNobyAiQlVGRkVSTElORVM6ICRCVUZGRVJMSU5FUyIKICAgZWNobyAibGlzdF9s aW5lczogJGxpc3RfbGluZXMiCiAgIGVjaG8gImV4cHIgbGlzdF9saW5lczogJChleHByICRsaXN0 X2xpbmVzICsgJEJVRkZFUkxJTkVTICsgMikiCiAgIGVjaG8gIi0tLS0tIG5vIGlkZWEgd2h5IHRo ZXNlIGJlbG93IGxpbmVzIGRvIG5vdCB3b3JrIgogICBlY2hvICI0OiAkKGV4cHIgJHtjb21wc3Rh dGVbbGlzdF9saW5lc119KSIKICAgZWNobyAiNTogJChleHByICRjb21wc3RhdGVbbGlzdF9saW5l c10pIgogICBlY2hvICI2OiAkKGV4cHIgJGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSArICRCVUZGRVJM SU5FUykiCiAgIGVjaG8gIjc6ICQoZXhwciAkY29tcHN0YXRlW2xpc3RfbGluZXNdICsgJEJVRkZF UkxJTkVTICsgMikiCiAgIGVjaG8gIi0tLS0tIG5vIGlkZWEgd2h5IHRoZSBhYm92ZSBsaW5lcyBk byBub3Qgd29yayIKICAgZWNobyAiTElORVM6ICRMSU5FUyIKICAgZWNobyAiZW5kZWQgbGltaXQt Y29tcGxldGlvbiIKICAgIyBpZiAoKGNvbXBzdGF0ZVtsaXN0X2xpbmVzXSA+ICR7SU5DUl9NQVhf TUFUQ0hFUzotMjB9IFwKICAgIyAgICAgIHx8IGNvbXBzdGF0ZVtsaXN0X2xpbmVzXStCVUZGRVJM SU5FUysyID4gTElORVMpKQogICBpZiBbWyAiJGxpc3RfbGluZXMiIC1ndCAiJHtJTkNSX01BWF9N QVRDSEVTOi0yMH0iIFwKICAgICAgICAgfHwgJChleHByICRsaXN0X2xpbmVzICsgJEJVRkZFUkxJ TkVTICsgMikgLWd0ICIkTElORVMiIF1dCiAgIHRoZW4KICAgICAgY29tcHN0YXRlW2xpc3RdPScn CiAgICAgIHpsZSAtTSAidG9vIG1hbnkgbWF0Y2hlcy4iCiAgIGZpCiAgIH0gIDI+PnwgL3RtcC96 c2gtbGltaXQtY29tcGxldGlvbi5sb2cgMT4mMgp9CgpmdW5jdGlvbiBzZWxmLWluc2VydC1pbmNy ICgpIHsKICAgIyBlY2hvICJzdGFydGVkIHNlbGYtaW5zZXJ0LWluY3IiCiAgIGlmIHpsZSAuc2Vs Zi1pbnNlcnQ7IHRoZW4KICAgICAgc2hvdy1jaG9pY2VzCiAgICAgICMgY29tcGxldGUtd29yZC1p bmNyCiAgIGZpCn0KCmZ1bmN0aW9uIHZpLWJhY2t3YXJkLWRlbGV0ZS1jaGFyLWluY3IgKCkgewog ICBpZiB6bGUgdmktYmFja3dhcmQtZGVsZXRlLWNoYXI7IHRoZW4KICAgICAgc2hvdy1jaG9pY2Vz CiAgICAgICMgY29tcGxldGUtd29yZC1pbmNyCiAgIGZpCn0KCmZ1bmN0aW9uIHNob3ctY2hvaWNl cyAoKSB7CiAgICMgbG9jYWwgY3Vyc29yX29yZwogICAjIGxvY2FsIGJ1ZmZlcl9vcmcKICAgIyBs b2NhbCBjdXJzb3Jfbm93CiAgICMgbG9jYWwgYnVmZmVyX25vdwogICAjIGN1cnNvcl9vcmc9IiRD VVJTT1IiCiAgICMgYnVmZmVyX29yZz0iJEJVRkZFUiIKICAgIyBpZiBbWyAiJEJVRkZFUlsxXSIg IT0gIiEiIF1dCiAgICMgZWNobyAkd2lkZ2V0c1tsaXN0LWNob2ljZXNdCiAgICMgIHVzZXI6X3pz aF9oaWdobGlnaHRfd2lkZ2V0X2xpc3QtY2hvaWNlcwogICAjIG12IDkxLWhpc3Rvcnktc3Vic3Ry aW5nLXNlYXJjaC56c2ggXAogICAjICAgICA5MS1oaXN0b3J5LXN1YnN0cmluZy1zZWFyY2guenNo LmRpc2FibGUKICAgIyBybSA5MC1zeW50YXguenNoCiAgICMgZWNobyAkd2lkZ2V0c1tsaXN0LWNo b2ljZXNdCiAgICMgIGNvbXBsZXRpb246Lmxpc3QtY2hvaWNlczpfbWFpbl9jb21wbGV0ZQogICAj IGNvbXBpbml0IGlzIHJlZGlyZWN0aW5nIGxpc3QtY2hvaWNlcyB0byBfbWFpbl9jb21wbGV0ZQog ICAjICBhbmQgdGhlIF9ub3JtYWwgY2FsbGVkIGJ5IF9tYWluX2NvbXBsZXRlIGlzIGRvaW5nIGEK ICAgIyAgYmFuZyBleHBhbnNpb24gYXMgc29vbiBhcyBpdCBzZWVzIGEgISBpbiB0aGUgc3RyaW5n CiAgICMgIEhlbmNlLCBkbyBub3QgY2FsbCBsaXN0LWNob2ljZXMgaWYgdGhlcmUgaXMgYSAhIGlu IHRoYXQgbGluZQogICAjICBvciwgaW5zdGVhZCBvZiBmaWx0ZXJpbmcgJEJVRkZFUiBvbiAhLCB1 bnNldG9wdCBCQU5HX0hJU1QKICAgIyAgYXMgbGlzdC1jaG9pY2VzIGlzIGNoZWNraW5nIG9uIEJB TkdfSElTVCBiZWZvcmUgZXhwYW5kaW5nCiAgICMgIHRoZSAhLgogICAjIGlmIFtbICIkQlVGRkVS IiAhPSAqXCEqICYmIFwKICAgICBzZXRvcHQgbG9jYWxvcHRpb25zCiAgIHVuc2V0b3B0IEJBTkdf SElTVAogICAjIHNldG9wdCB4dHJhY2UgdmVyYm9zZQogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMg aWYgdGhlcmUgaXMgYSAhIGluIHRoYXQgd29yZAogICAjICBidXQsIGFzIEkgY291bGQgbm90IGZp Z3VyZSBvdXQgdGhlIHdvcmQgdnMgbGluZSwKICAgIyAganVzdCBza2lwcGluZyBvbiBhbnkgbGlu ZSB3aXRoIGEgIQogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMgaWYgaXQgaXMgYSBwYXN0ZSwgcGVu ZGluZyA+IDAgaW4gc3VjaCBjYXNlcwogICAjIGRvIG5vdCBsaXN0LWNob2ljZXMgaWYgZWRpdGlu ZyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZAogICBpZiBbWyAiJEJVRkZFUiIgIT0gKlwhKiBcCiAg ICAgICAgICYmICIkUEVORElORyIgLWVxIDAgIFwKICAgICAgICAgJiYgKCAteiAiJFJCVUZGRVIi IHx8ICIkUkJVRkZFUlsxXSIgPT0gJyAnICkgXAogICAgICAgICBdXQogICB0aGVuCiAgICAgIGNv bXBwb3N0ZnVuY3M9KGxpbWl0LWNvbXBsZXRpb24pCiAgICAgIHpsZSBsaXN0LWNob2ljZXMKICAg ZmkKICAgIyBjdXJzb3Jfbm93PSIkQ1VSU09SIgogICAjIGJ1ZmZlcl9ub3c9IiRCVUZGRVIiCn0K CmZ1bmN0aW9uIGNvbXBsZXRlLXdvcmQtaW5jciAoKSB7CiAgIGxvY2FsIGN1cnNvcl9vcmcKICAg bG9jYWwgYnVmZmVyX29yZwogICBsb2NhbCBjdXJzb3Jfbm93CiAgIGxvY2FsIGJ1ZmZlcl9ub3cK ICAgbG9jYWwgbGJ1ZmZlcl9ub3cKICAgY3Vyc29yX29yZz0iJENVUlNPUiIKICAgYnVmZmVyX29y Zz0iJEJVRkZFUiIKICAgY29tcHBvc3RmdW5jcz0obGltaXQtY29tcGxldGlvbikKICAgemxlIGNv bXBsZXRlLXdvcmQKICAgY3Vyc29yX25vdz0iJENVUlNPUiIKICAgYnVmZmVyX25vdz0iJEJVRkZF UiIKICAgbGJ1ZmZlcl9ub3c9IiRMQlVGRkVSIgogICAjIGlmIFsgIiRjdXJzb3Jfbm93IiAtZ3Qg IiRjdXJzb3Jfb3JnIiBcCiAgICMgICAgLWEgIiRidWZmZXJfb3JnWzEsY3Vyc29yX29yZ10iID09 ICIkYnVmZmVyX25vd1sxLGN1cnNvcl9vcmddIiBcCiAgICMgICAgLWEgIiRsYnVmZmVyX25vd1st MV0iID09ICIgIiBdCiAgICMgdGhlbgogICAjICAgIENVUlNPUj0iJGN1cnNvcl9vcmciCiAgICMg ZmkKfQoKIyB2aW06IHNldCBmaWxldHlwZT16c2ggc2hpZnR3aWR0aD0zIHRhYnN0b3A9MyBleHBh bmR0YWIgZmlsZWZvcm1hdD11bml4Cg== --20cf3074d4d2ffaf9604d78b9142--