From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id kN2LJINIgGCAdAAAgWs5BA (envelope-from ) for ; Wed, 21 Apr 2021 17:45:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 8MVRIINIgGCAXQAA1q6Kng (envelope-from ) for ; Wed, 21 Apr 2021 15:45:07 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B3892199AB for ; Wed, 21 Apr 2021 17:45:06 +0200 (CEST) Received: from localhost ([::1]:37138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZF2H-00018U-T8 for larch@yhetil.org; Wed, 21 Apr 2021 11:45:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZF1G-0000cz-Ua for guix-devel@gnu.org; Wed, 21 Apr 2021 11:44:02 -0400 Received: from mail-ua1-x933.google.com ([2607:f8b0:4864:20::933]:45935) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lZF1C-0006x0-PO for guix-devel@gnu.org; Wed, 21 Apr 2021 11:44:02 -0400 Received: by mail-ua1-x933.google.com with SMTP id r8so5648596uaw.12 for ; Wed, 21 Apr 2021 08:43:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yp8yhCk67SVyzTnYcy3Cri6FnEi6Td5fuACM6Ha/dn0=; b=nG2cg4xlk3n+PcYiVnXazF7UBW8Y7pnjfrj/iGNWfXnxQvrZ7t6ecfnn+inQFsNP5w HZ1WlEnerws/YWrsHA4Ugtin9+kNhRodEElfgzqJ23Y1aHddUxtJFqgQMrEZkHF5TuDM x377M3ADoNYPUbBKuT/khBKgS2AT5LrJE7AN1k6i6IaM2SYwNfpawrK/4WKfr5KFncJy 7V7Kr9B4em4ZjiwM5oxB/QZ4TI8dumy2QVhg7Xmwl8JOF8V4RyjIbZm+aY+Kd9mWyZke t0x/RHykx4RS6f2lxQG8MirrCsQEldPlWG5dBFy/HIgg4Om2+emQyRAB9WG5XtXIvlh6 32YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yp8yhCk67SVyzTnYcy3Cri6FnEi6Td5fuACM6Ha/dn0=; b=pB55QcsIs7itC7kps5woGKo4gN2HuR77iAzo1qstgXMs9w/k8I4fwvasO1w9GbQalZ m6g/BMmBabq1ZLiFnWYWdLzPW5oA42azxVgukqceuZZxiOWFkFFZzyWXUXjUh4lCdKK9 8LaOYoaRBI2az4HBP5CN6wlvQ47e14ovJcKqf3oI/8ZCsv4rq5EF3l8HmcaaRLAjsQSc zFzzhPtQ4XCC3bM1wtTeqARgnyGli0FiG0FAFsvbPO7+faFjNIY4bH1rVDdX2rkmspO4 LQhGf4T8mQCo0KNfoQ+TeSJn3J6Y4ynI5h1s1leWRvmOu33IOvTTnzEpG2BJD7mtnqBI DkhQ== X-Gm-Message-State: AOAM533SmFRdwuYIYXfn0QnqQ8LbBToSZMuprFCL8EDIi9UREmZ5LWSH 7nTYjdfhK0P9c21sRW4iylr94WRmgLxTWhR7p+lPkvr6GVw= X-Google-Smtp-Source: ABdhPJxQYOba2RpyvKMdb1aZeSHgt+azIQOOsvS7xUddrUOTDjTukUgJ5/RjwRu3eBOZ0X4snp28ED729xMeuwisRaI= X-Received: by 2002:ab0:1648:: with SMTP id l8mr18155753uae.124.1619019836417; Wed, 21 Apr 2021 08:43:56 -0700 (PDT) MIME-Version: 1.0 References: <79d3d2e5c1386b1e162f1ba8380562720131856d.camel@telenet.be> <87tuo7xljp.fsf@cbaines.net> <87lf9ixz5j.fsf@cbaines.net> <87wnsziing.fsf@cbaines.net> <87mttuhyoq.fsf@cbaines.net> In-Reply-To: <87mttuhyoq.fsf@cbaines.net> From: Canan Talayhan Date: Wed, 21 Apr 2021 18:43:19 +0300 Message-ID: Subject: Re: [Outreachy] - Guix Data Service - Set a more informative page title To: Christopher Baines Content-Type: multipart/mixed; boundary="0000000000003c6daf05c07d6e1f" Received-SPF: pass client-ip=2607:f8b0:4864:20::933; envelope-from=canan.t.talayhan@gmail.com; helo=mail-ua1-x933.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, WEIRD_PORT=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619019907; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=KscYpQ+X/wUnhtyevEdRnTEtoClyZNGlbndJcK0JBl4=; b=OTCx2dNFPWwDqMJMKjrB1dNKQx7jbh4VwTrAvnk3Wph57yE00WeLLMgcwMXvVu7T8KQZTY vyEOiFniecHdfPrgFfbxoZPNB37otyCZudESOKQ2RSN7gOVVweHzWiaarWcC10sm2MBOlP JoFdRKGxKCd8/NhXVOf8m3RYoK5c49GAXQ7jxZqGUBnSBJko/X0u+EkGHJBQva+z6ba+gz babndqCTHWKtsWYtm0KSFiJHVVItcqO7s2tjMxaL841IlGJZJPomVEYDtq/7O4S+pPjISp 1vgWf20HvWQ36AFCpPl1s0MZLBaZfS/SeihVavIlunvdsfPH6vBXGl8SpplIow== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1619019907; a=rsa-sha256; cv=none; b=fKUS9AW40iE0nLSJhztunzO8EzAbIhFh8Rb+s7WxkPgJZGnPRw035lrHQXHGp7DKG51c8v P6JvieQLBeSax6CYysPE6yxlUid6PpGryaPqNMKGdgSD6/+apJtF2gVS5yiLZmBCmC/DVK qBWNtWt69qlb/+A4vMI+wmegRpN27HklDY9OvRvjW2QQrn+I23bPmVjNGJwHqqGP43MgCQ ax7RsmtspilSajModS9/BIBIN5QskfLAJsdv+hATSfEjU8nu9G/+6cQh5GqQwi5ZfT0bb7 S6zhO6NDc2+hKNjcj2BGRuzyzYhuMQ7/Pty7KsFyk5sy98a9pKQLsluIHsyCXw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20161025 header.b=nG2cg4xl; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: 3.56 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20161025 header.b=nG2cg4xl; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: B3892199AB X-Spam-Score: 3.56 X-Migadu-Scanner: scn0.migadu.com X-TUID: covJb+xGasv8 --0000000000003c6daf05c07d6e1f Content-Type: multipart/alternative; boundary="0000000000003c6dac05c07d6e1d" --0000000000003c6dac05c07d6e1d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I've missed it unintentionally. I've not touched the "@" sign this time. :) >> + (define page-header "Comparing") >> + >> (layout >> + #:title >> + (string-append page-header " " (string-take base-commit 8) " and " >> + (string-take target-commit 8)) >> #:body >> `(,(header) >> (div >> @@ -107,7 +112,7 @@ >> (@ (class "col-sm-7")) >> ,@(if invalid-query? >> `((h1 "Compare")) >> - `((h1 "Comparing " >> + `((h1 ,page-header ," " >> (a (@ (href ,(string-append "/revision/" base-commit))) >> (samp ,(string-take base-commit 8) "=E2=80=A6")) >> " and " I think I misunderstood that comment. >> There's a couple of things here. I'd be tempted not to use a variable >> for "Comparing", it's not really the page header, as that's more >> complicated, so I think I'd just use the string in both places. Now, I've fixed it this way. I hope this version is good. *(layout #:title (string-append "Comparing " (string-take base-commit 8) " and " (string-take target-commit 8)) #:body `(,(header) (div (@ (class "container")) (div (@ (class "row")) (div (@ (class "col-sm-7")) ,@(if invalid-query? `((h1 "Compare")) `((h1 "Comparing " (a (@ (href ,(string-append "/revision/" base-commit))) (samp ,(string-take base-commit 8) "=E2=80=A6")) " and = "* I'm using VS Code, and sometimes it adds odd spaces to the code. Maybe I need to switch to another code editor. Thanks for all, Canan Talayhan On Mon, Apr 19, 2021 at 10:16 PM Christopher Baines wrote: > > Canan Talayhan writes: > > > Thanks for your quick response. > > > >>Why's the @ being removed here? > > It interprets like an HTML code when I use the page-header like > > `,page-header, so I removed it. According to your comment, I reverted > > to the original version. > > > > " 'GET repository..." which includes package/package-name in the URL > > has not the best titles since I couldn't test them because of the > > error that I've mentioned. > > I'm open to suggestions. > > > > Could you please re-review the patch that contains all the > > modifications you've mentioned in the previous message? > > I've had another look, see my comments below. > > > On Sun, Apr 18, 2021 at 8:53 PM Christopher Baines > wrote: > >> > >> > >> Canan Talayhan writes: > >> > >> > I've updated the patch that contains all the suggestions. I think th= e > patch > >> > is ready to merge. > >> > > >> > One thing that I would like to ask you about the package and > package-name > >> > in web/repository/controller.scm. > >> > > >> > When I test the URL below I'm getting this error. ( > >> > https://pastebin.ubuntu.com/p/HdKShmKqH7/) > >> > > >> > - ('GET "repository" repository-id "branch" branch-name "package" > >> > package-name) -> > >> > http://localhost:8765/repository/1/branch/master/package/emacs > >> > > >> > What do you think? BTW it's accessible on the official server. > >> > > >> > - > https://data.guix.gnu.org/repository/1/branch/master/package/emacs/ > >> > >> Hmm, this could possibly be due to an issue with the small dump of the > >> database. > >> > >> > Could you please review the patch attached? > >> > I'm very excited to make my first FOSS contribution. :) > >> > >> I've had a look though, and I have some more comments: > >> > >> diff --git a/guix-data-service/web/compare/html.scm > b/guix-data-service/web/compare/html.scm > >> index 5b5fe0a..170fb12 100644 > >> --- a/guix-data-service/web/compare/html.scm > >> +++ b/guix-data-service/web/compare/html.scm > >> @@ -96,7 +96,12 @@ > >> (unless invalid-query? > >> (query-parameters->string query-parameters))) > >> > >> + (define page-header "Comparing") > >> + > >> (layout > >> + #:title > >> + (string-append page-header " " (string-take base-commit 8) " and= " > >> + (string-take target-commit 8)) > >> #:body > >> `(,(header) > >> (div > >> @@ -107,7 +112,7 @@ > >> (@ (class "col-sm-7")) > >> ,@(if invalid-query? > >> `((h1 "Compare")) > >> - `((h1 "Comparing " > >> + `((h1 ,page-header ," " > >> (a (@ (href ,(string-append "/revision/" > base-commit))) > >> (samp ,(string-take base-commit 8) "=E2=80= =A6")) > >> " and " > >> > >> There's a couple of things here. I'd be tempted not to use a variable > >> for "Comparing", it's not really the page header, as that's more > >> complicated, so I think I'd just use the string in both places. > >> > >> Second thing, the (if invalid-query? bit when constructing the h1 > >> element is important. The query parameters being invalid could mean > >> anything from the form just hasn't been filled in, to the value isn't > >> actually a commit hash, but something else, maybe some HTML/JavaScript > >> that is malicious and shouldn't be included in the page. A similar > >> approach probably needs taking for the title. > > This stuff above still looks the same to me, although part of my > analysis was wrong, as the type of an invalid parameter is a record, so > the page just breaks if the parameters are invalid (which I guses is > better than what I was describing). > > Anyway, I think this still needs fixing. > > >> @@ -419,14 +424,18 @@ > >> '(span (@ (class "text-success glyphicon glyphicon-plus > pull-left") > >> (style "font-size: 1.5em; padding-right: 0.4em;")))) > >> > >> + (define page-header "Comparing derivations") > >> + > >> (layout > >> + #:title > >> + page-header > >> #:body > >> `(,(header) > >> (div > >> (@ (class "container")) > >> (div > >> (@ (class "row")) > >> - (h1 ,@(let ((base-commit (assq-ref query-parameters > 'base_commit)) > >> + (h1 ,(let ((base-commit (assq-ref query-parameters > 'base_commit)) > >> > >> Why's the @ being removed here? > > This is still being removed. > > @@ -435,7 +439,7 @@ > " and " > (a (@ (href ,(string-append "/revision/" > target-commit))) > (samp ,(string-take target-commit 8) "=E2=80= =A6"))) > - '("Comparing derivations"))))) > + '("Comparing derivations"))))) > (div > (@ (class "row")) > (div > > Watch out for unwanted indentation changes you're making, I think the > previous indentation was better. > > @@ -256,7 +264,12 @@ > recent-events))))))))) > > (define (view-job-queue jobs-and-events) > + (define page-header (string-append "Queued jobs (" > + (number->string (length jobs-and-events)) ")")) > + > (layout > + #:title > + page-header > #:body > `(,(header) > (div > > For the page-header here, I'd indent the code like so: > > (define page-header > (string-append "Queued jobs (" > (number->string (length jobs-and-events)) > ")")) > > The main change being moving the code off the (define ... line. If it's > a one line thing that can fit, I think it's fine to have as one line, > but otherwise, I think this makes it easier to read. > > The other thing to fix before merging is the commit message. The current > one is a bit odd, and the first line is too long. > --0000000000003c6dac05c07d6e1d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I've missed it unintentionally. I've not touched t= he "@" sign this time. :)

>> =C2=A0+ (define page-he= ader "Comparing")
=C2=A0>> =C2=A0+
=C2=A0>> =C2= =A0 (layout
=C2=A0>> =C2=A0+ =C2=A0#:title
=C2=A0>> =C2= =A0+ =C2=A0(string-append page-header " " (string-take base-commi= t 8) " and "
=C2=A0>> =C2=A0+ =C2=A0(string-take target-= commit 8))
=C2=A0>> =C2=A0 =C2=A0#:body
=C2=A0>> =C2=A0 = =C2=A0`(,(header)
=C2=A0>> =C2=A0 =C2=A0 (div
=C2=A0>> = =C2=A0@@ -107,7 +112,7 @@
=C2=A0>> =C2=A0 =C2=A0 =C2=A0(@ (class &= quot;col-sm-7"))
=C2=A0>> =C2=A0 =C2=A0 =C2=A0,@(if invalid-q= uery?
=C2=A0>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h1 "Compare&quo= t;))
=C2=A0>> =C2=A0- =C2=A0 =C2=A0 =C2=A0 `((h1 "Comparing &= quot;
=C2=A0>> =C2=A0+ =C2=A0 =C2=A0 =C2=A0 `((h1 ,page-header ,&q= uot; "
=C2=A0>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(a (= @ (href ,(string-append "/revision/" base-commit)))
=C2=A0>= > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(samp ,(string-take ba= se-commit 8) "=E2=80=A6"))
=C2=A0>> =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0" and "

I think I misunderstood that = comment.
>> There's a couple of things here. I'd be tempte= d not to use a variable
>> for "Comparing", it's not= really the page header, as that's more
>> complicated, so I t= hink I'd just use the string in both places.

Now, I've fixed= it this way. I hope this version is good.

(layout
=C2=A0 =C2= =A0#:title
=C2=A0 =C2=A0(string-append "Comparing " (string-ta= ke base-commit 8) " and "
=C2=A0 =C2=A0 (string-take target-co= mmit 8))
=C2=A0 =C2=A0#:body
=C2=A0 =C2=A0`(,(header)
=C2=A0 =C2= =A0 =C2=A0(div
=C2=A0 =C2=A0 =C2=A0 (@ (class "container"))=C2=A0 =C2=A0 =C2=A0 (div
=C2=A0 =C2=A0 =C2=A0 =C2=A0(@ (class "ro= w"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0(div
=C2=A0 =C2=A0 =C2=A0 =C2=A0= (@ (class "col-sm-7"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ,@(if inva= lid-query?
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h1 "= Compare"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h1 &= quot;Comparing "
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 (a (@ (href ,(string-append "/revision/" bas= e-commit)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(samp ,(string-take base-commit 8) "=E2=80=A6&= quot;))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 " and "


I'm using VS Code, and sometim= es it adds odd spaces to the code. Maybe I need to switch to another code e= ditor.

Thanks for all,
Canan Talayhan

<= br>
On Mon,= Apr 19, 2021 at 10:16 PM Christopher Baines <mail@cbaines.net> wrote:

Canan Talayhan <canan.t.talayhan@gmail.com> writes:

> Thanks for your quick response.
>
>>Why's the @ being removed here?
> It interprets like an HTML code when I use the page-header like
> `,page-header, so I removed it. According to your comment, I reverted<= br> > to the original version.
>
> " 'GET repository..." which includes package/package-nam= e in the URL
> has not the best titles since I couldn't test them because of the<= br> > error that I've mentioned.
> I'm open to suggestions.
>
> Could you please re-review the patch that contains all the
> modifications you've mentioned in the previous message?

I've had another look, see my comments below.

> On Sun, Apr 18, 2021 at 8:53 PM Christopher Baines <mail@cbaines.net> wrote:
>>
>>
>> Canan Talayhan <canan.t.talayhan@gmail.com> writes:
>>
>> > I've updated the patch that contains all the suggestions.= I think the patch
>> > is ready to merge.
>> >
>> > One thing that I would like to ask you about the package and = package-name
>> > in web/repository/controller.scm.
>> >
>> > When I test the URL below I'm getting this error. (
>> > https://pastebin.ubuntu.com/p/HdKShmKqH7/= )
>> >
>> >=C2=A0 =C2=A0 - ('GET "repository" repository-id= "branch" branch-name "package"
>> >=C2=A0 =C2=A0 package-name) ->
>> >=C2=A0 =C2=A0 http://loca= lhost:8765/repository/1/branch/master/package/emacs
>> >
>> > What do you think? BTW it's accessible on the official se= rver.
>> >
>> >=C2=A0 =C2=A0 - http= s://data.guix.gnu.org/repository/1/branch/master/package/emacs/
>>
>> Hmm, this could possibly be due to an issue with the small dump of= the
>> database.
>>
>> > Could you please review the patch attached?
>> > I'm very excited to make my first FOSS contribution. :) >>
>> I've had a look though, and I have some more comments:
>>
>>=C2=A0 =C2=A0diff --git a/guix-data-service/web/compare/html.scm b/= guix-data-service/web/compare/html.scm
>>=C2=A0 =C2=A0index 5b5fe0a..170fb12 100644
>>=C2=A0 =C2=A0--- a/guix-data-service/web/compare/html.scm
>>=C2=A0 =C2=A0+++ b/guix-data-service/web/compare/html.scm
>>=C2=A0 =C2=A0@@ -96,7 +96,12 @@
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 (unless invalid-query?
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (query-parameters->string que= ry-parameters)))
>>
>>=C2=A0 =C2=A0+=C2=A0 (define page-header "Comparing")
>>=C2=A0 =C2=A0+
>>=C2=A0 =C2=A0 =C2=A0 (layout
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0#:title
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0(string-append page-header " "= (string-take base-commit 8) " and "
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0 (string-take target-commit 8))
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0#:body
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0`(,(header)
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(div
>>=C2=A0 =C2=A0@@ -107,7 +112,7 @@
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (@ (class "col-sm-7&= quot;))
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ,@(if invalid-query?
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h= 1 "Compare"))
>>=C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h= 1 "Comparing "
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `((h= 1 ,page-header ," "
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 (a (@ (href ,(string-append "/revision/" base-c= ommit)))
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(samp ,(string-take base-commit 8) "=E2= =80=A6"))
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 " and "
>>
>> There's a couple of things here. I'd be tempted not to use= a variable
>> for "Comparing", it's not really the page header, as= that's more
>> complicated, so I think I'd just use the string in both places= .
>>
>> Second thing, the (if invalid-query? bit when constructing the h1<= br> >> element is important. The query parameters being invalid could mea= n
>> anything from the form just hasn't been filled in, to the valu= e isn't
>> actually a commit hash, but something else, maybe some HTML/JavaSc= ript
>> that is malicious and shouldn't be included in the page. A sim= ilar
>> approach probably needs taking for the title.

This stuff above still looks the same to me, although part of my
analysis was wrong, as the type of an invalid parameter is a record, so
the page just breaks if the parameters are invalid (which I guses is
better than what I was describing).

Anyway, I think this still needs fixing.

>>=C2=A0 =C2=A0@@ -419,14 +424,18 @@
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 '(span (@ (class "text-success= glyphicon glyphicon-plus pull-left")
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (sty= le "font-size: 1.5em; padding-right: 0.4em;"))))
>>
>>=C2=A0 =C2=A0+=C2=A0 (define page-header "Comparing derivation= s")
>>=C2=A0 =C2=A0+
>>=C2=A0 =C2=A0 =C2=A0 (layout
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0#:title
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0page-header
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0#:body
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0`(,(header)
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(div
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (@ (class "container")= )
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (div
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(@ (class "row")= )
>>=C2=A0 =C2=A0-=C2=A0 =C2=A0 =C2=A0 =C2=A0(h1 ,@(let ((base-commit (= assq-ref query-parameters 'base_commit))
>>=C2=A0 =C2=A0+=C2=A0 =C2=A0 =C2=A0 =C2=A0(h1 ,(let ((base-commit (a= ssq-ref query-parameters=C2=A0 'base_commit))
>>
>> Why's the @ being removed here?

This is still being removed.

=C2=A0 @@ -435,7 +439,7 @@
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 " and "
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (a (@ (href ,(string-append "/revision/" target-commit= )))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(samp ,(string-take target-commit 8) "=E2=80= =A6")))
=C2=A0 -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0'("Comparing derivations")))))
=C2=A0 +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 '("Comparing derivations")))))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(div
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (@ (class "row"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (div

Watch out for unwanted indentation changes you're making, I think the previous indentation was better.

=C2=A0 @@ -256,7 +264,12 @@
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 recent-events))))))= )))

=C2=A0 =C2=A0(define (view-job-queue jobs-and-events)
=C2=A0 +=C2=A0 (define page-header (string-append "Queued jobs ("=
=C2=A0 +=C2=A0 =C2=A0 (number->string (length jobs-and-events)) ")&= quot;))
=C2=A0 +
=C2=A0 =C2=A0 =C2=A0(layout
=C2=A0 +=C2=A0 =C2=A0#:title
=C2=A0 +=C2=A0 =C2=A0page-header
=C2=A0 =C2=A0 =C2=A0 #:body
=C2=A0 =C2=A0 =C2=A0 `(,(header)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (div

For the page-header here, I'd indent the code like so:

=C2=A0 (define page-header
=C2=A0 =C2=A0 (string-append "Queued jobs ("
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(numbe= r->string (length jobs-and-events))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"= )"))

The main change being moving the code off the (define ... line. If it's=
a one line thing that can fit, I think it's fine to have as one line, but otherwise, I think this makes it easier to read.

The other thing to fix before merging is the commit message. The current one is a bit odd, and the first line is too long.
--0000000000003c6dac05c07d6e1d-- --0000000000003c6daf05c07d6e1f Content-Type: text/x-patch; charset="UTF-8"; name="0001-Set-a-more-informative-page-titles.patch" Content-Disposition: attachment; filename="0001-Set-a-more-informative-page-titles.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_knrmkjlj0 RnJvbSAyNjkwZmM1OTI0Y2E3NjE3ZWY1MWFlYjYzY2Q3NDMxOGJjNjNhM2ZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDYW5hbiBUYWxheWhhbiA8Y2FuYW4udC50YWxheWhhbkBnbWFp bC5jb20+CkRhdGU6IFdlZCwgMjEgQXByIDIwMjEgMTc6MTg6MTMgKzAzMDAKU3ViamVjdDogW1BB VENIXSBTZXQgYSBtb3JlIGluZm9ybWF0aXZlIHBhZ2UgdGl0bGVzCgpBbnkgcGFnZSB3aGVyZSB0 aGUgdGl0bGUgaXMgIkd1aXggRGF0YSBTZXJ2aWNlIgotLS0KIGd1aXgtZGF0YS1zZXJ2aWNlL3dl Yi9idWlsZC1zZXJ2ZXIvaHRtbC5zY20gfCAyNCArKysrKystLQogZ3VpeC1kYXRhLXNlcnZpY2Uv d2ViL2J1aWxkL2h0bWwuc2NtICAgICAgICB8ICA2ICstCiBndWl4LWRhdGEtc2VydmljZS93ZWIv Y29tcGFyZS9odG1sLnNjbSAgICAgIHwgMjIgKysrKysrLQogZ3VpeC1kYXRhLXNlcnZpY2Uvd2Vi L2R1bXBzL2h0bWwuc2NtICAgICAgICB8ICA2ICstCiBndWl4LWRhdGEtc2VydmljZS93ZWIvam9i cy9odG1sLnNjbSAgICAgICAgIHwgMjkgKysrKysrKy0tCiBndWl4LWRhdGEtc2VydmljZS93ZWIv bmFyL2h0bWwuc2NtICAgICAgICAgIHwgIDUgKy0KIGd1aXgtZGF0YS1zZXJ2aWNlL3dlYi9wYWNr YWdlL2h0bWwuc2NtICAgICAgfCAgMyArCiBndWl4LWRhdGEtc2VydmljZS93ZWIvcmVwb3NpdG9y eS9odG1sLnNjbSAgIHwgMzAgKysrKysrKysrLQogZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL3Jldmlz aW9uL2h0bWwuc2NtICAgICB8IDY1ICsrKysrKysrKysrKysrKysrKystLQogZ3VpeC1kYXRhLXNl cnZpY2Uvd2ViL3ZpZXcvaHRtbC5zY20gICAgICAgICB8IDEyICsrLS0KIDEwIGZpbGVzIGNoYW5n ZWQsIDE3NyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4 LWRhdGEtc2VydmljZS93ZWIvYnVpbGQtc2VydmVyL2h0bWwuc2NtIGIvZ3VpeC1kYXRhLXNlcnZp Y2Uvd2ViL2J1aWxkLXNlcnZlci9odG1sLnNjbQppbmRleCBmMTZhNTcwLi41NDFhOTYwIDEwMDY0 NAotLS0gYS9ndWl4LWRhdGEtc2VydmljZS93ZWIvYnVpbGQtc2VydmVyL2h0bWwuc2NtCisrKyBi L2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9idWlsZC1zZXJ2ZXIvaHRtbC5zY20KQEAgLTI3LDcgKzI3 LDExIEBACiAoZGVmaW5lICh2aWV3LWJ1aWxkIHF1ZXJ5LXBhcmFtZXRlcnMKICAgICAgICAgICAg ICAgICAgICAgYnVpbGQKICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQtZmFpbGVkLWJ1aWxk cykKKyAgKGRlZmluZSBwYWdlLWhlYWRlciAiQnVpbGQiKQorCiAgIChsYXlvdXQKKyAgICM6dGl0 bGUKKyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYK QEAgLTM2LDcgKzQwLDcgQEAKICAgICAgICAoQCAoY2xhc3MgInJvdyIpKQogICAgICAgIChkaXYK ICAgICAgICAgKEAgKGNsYXNzICJjb2wtc20tMTIiKSkKLSAgICAgICAgKGgxICJCdWlsZCIpKSkK KyAgICAgICAgKGgxICxwYWdlLWhlYWRlcikpKQogICAgICAgKGRpdgogICAgICAgIChAIChjbGFz cyAicm93IikpCiAgICAgICAgLEAobWF0Y2ggYnVpbGQKQEAgLTk4LDcgKzEwMiwxMSBAQAogICAg ICAgICAgICAgJygpKSkpKSkKIAogKGRlZmluZSAodmlldy1idWlsZC1zZXJ2ZXJzIGJ1aWxkLXNl cnZlcnMpCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIkJ1aWxkIHNlcnZlcnMiKQorCiAgIChsYXlv dXQKKyAgICM6dGl0bGUKKyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIp CiAgICAgIChkaXYKQEAgLTEwNyw3ICsxMTUsNyBAQAogICAgICAgIChAIChjbGFzcyAicm93Iikp CiAgICAgICAgKGRpdgogICAgICAgICAoQCAoY2xhc3MgImNvbC1zbS0xMiIpKQotICAgICAgICAo aDIgIkJ1aWxkIHNlcnZlcnMiKQorICAgICAgICAoaDIgLHBhZ2UtaGVhZGVyKQogICAgICAgICAs QChtYXAKICAgICAgICAgICAgKG1hdGNoLWxhbWJkYQogICAgICAgICAgICAgICgoaWQgdXJsIGxv b2t1cC1hbGwtZGVyaXZhdGlvbnM/IGxvb2t1cC1idWlsZHM/KQpAQCAtMTI3LDcgKzEzNSwxMSBA QAogICAgICAgICAgICBidWlsZC1zZXJ2ZXJzKSkpKSkpKQogCiAoZGVmaW5lICh2aWV3LWJ1aWxk LXNlcnZlciBidWlsZC1zZXJ2ZXIpCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIkJ1aWxkIHNlcnZl ciIpCisKICAgKGxheW91dAorICAgIzp0aXRsZQorICAgcGFnZS1oZWFkZXIKICAgICM6Ym9keQog ICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMTM2LDcgKzE0OCw3IEBACiAgICAgICAgKEAg KGNsYXNzICJyb3ciKSkKICAgICAgICAoZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLXNtLTEy IikpCi0gICAgICAgIChoMiAiQnVpbGQgc2VydmVyIikKKyAgICAgICAgKGgyICxwYWdlLWhlYWRl cikKICAgICAgICAgLChtYXRjaCBidWlsZC1zZXJ2ZXIKICAgICAgICAgICAgKCh1cmwgbG9va3Vw LWFsbC1kZXJpdmF0aW9ucz8pCiAgICAgICAgICAgICBgKGRsCkBAIC0xNTAsNyArMTYyLDExIEBA CiAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkpKSkpKSkpKQogCiAoZGVmaW5lICh2aWV3 LXNpZ25pbmcta2V5IHNleHApCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIlNpZ25pbmcga2V5IikK KwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBg KCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC0xNTksNSArMTc1LDUgQEAKICAgICAgICAoQCAoY2xh c3MgInJvdyIpKQogICAgICAgIChkaXYKICAgICAgICAgKEAgKGNsYXNzICJjb2wtc20tMTIiKSkK LSAgICAgICAgKGgyICJTaWduaW5nIGtleSIpCisgICAgICAgIChoMiAscGFnZS1oZWFkZXIpCiAg ICAgICAgICwoc2V4cC1kaXYgc2V4cCkpKSkpKSkKZGlmZiAtLWdpdCBhL2d1aXgtZGF0YS1zZXJ2 aWNlL3dlYi9idWlsZC9odG1sLnNjbSBiL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9idWlsZC9odG1s LnNjbQppbmRleCAxOGQwNDVhLi40Yjc1OGJiIDEwMDY0NAotLS0gYS9ndWl4LWRhdGEtc2Vydmlj ZS93ZWIvYnVpbGQvaHRtbC5zY20KKysrIGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL2J1aWxkL2h0 bWwuc2NtCkBAIC0yOSw3ICsyOSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgdmFsaWQtdGFy Z2V0cwogICAgICAgICAgICAgICAgICAgICAgc3RhdHMKICAgICAgICAgICAgICAgICAgICAgIGJ1 aWxkcykKKyAgKGRlZmluZSBwYWdlLWhlYWRlciAiQnVpbGRzIikKKwogICAobGF5b3V0CisgICAj OnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAo ZGl2CkBAIC0zOCw3ICs0Miw3IEBACiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAgICAo ZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLXNtLTEyIikpCi0gICAgICAgIChoMSAiQnVpbGRz IikKKyAgICAgICAgKGgxICxwYWdlLWhlYWRlcikKICAgICAgICAgKHRhYmxlCiAgICAgICAgICAo QCAoY2xhc3MgInRhYmxlIikpCiAgICAgICAgICAodGhlYWQKZGlmZiAtLWdpdCBhL2d1aXgtZGF0 YS1zZXJ2aWNlL3dlYi9jb21wYXJlL2h0bWwuc2NtIGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL2Nv bXBhcmUvaHRtbC5zY20KaW5kZXggNWI1ZmUwYS4uYjVlMmI1NyAxMDA2NDQKLS0tIGEvZ3VpeC1k YXRhLXNlcnZpY2Uvd2ViL2NvbXBhcmUvaHRtbC5zY20KKysrIGIvZ3VpeC1kYXRhLXNlcnZpY2Uv d2ViL2NvbXBhcmUvaHRtbC5zY20KQEAgLTk3LDYgKzk3LDkgQEAKICAgICAgIChxdWVyeS1wYXJh bWV0ZXJzLT5zdHJpbmcgcXVlcnktcGFyYW1ldGVycykpKQogCiAgIChsYXlvdXQKKyAgICM6dGl0 bGUKKyAgIChzdHJpbmctYXBwZW5kICJDb21wYXJpbmcgIiAoc3RyaW5nLXRha2UgYmFzZS1jb21t aXQgOCkgIiBhbmQgIgorICAgIChzdHJpbmctdGFrZSB0YXJnZXQtY29tbWl0IDgpKQogICAgIzpi b2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC00MjAsNiArNDIzLDggQEAKICAgICAg ICAgICAgICAgKHN0eWxlICJmb250LXNpemU6IDEuNWVtOyBwYWRkaW5nLXJpZ2h0OiAwLjRlbTsi KSkpKQogCiAgIChsYXlvdXQKKyAgICM6dGl0bGUKKyAgICJDb21wYXJpbmcgZGVyaXZhdGlvbnMi CiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAgLTY4NSw3ICs2OTAsMTEg QEAKICAgKGRlZmluZSBmaWVsZHMKICAgICAoYXNzcS1yZWYgcXVlcnktcGFyYW1ldGVycyAnZmll bGQpKQogCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIlBhY2thZ2UgZGVyaXZhdGlvbiBjaGFuZ2Vz IikKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAg ICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC04MzUsNyArODQ0LDcgQEAgZW5vdWdoIGJ1aWxk cyB0byBkZXRlcm1pbmUgYSBjaGFuZ2UiKSkpCiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAg ICAgICAoZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLXNtLTEyIikpCi0gICAgICAgIChoMSAi UGFja2FnZSBkZXJpdmF0aW9uIGNoYW5nZXMiKQorICAgICAgICAoaDEgLHBhZ2UtaGVhZGVyKQog ICAgICAgICAsKGlmCiAgICAgICAgICAgKG51bGw/IGRlcml2YXRpb24tY2hhbmdlcykKICAgICAg ICAgICAnKHAgIk5vIGRlcml2YXRpb24gY2hhbmdlcyIpCkBAIC05NTAsNyArOTU5LDEyIEBAIGVu b3VnaCBidWlsZHMgdG8gZGV0ZXJtaW5lIGEgY2hhbmdlIikpKQogICAgIChzdHJpbmctYXBwZW5k ICI/YmFzZV9jb21taXQ9IiBiYXNlLWNvbW1pdAogICAgICAgICAgICAgICAgICAgICImdGFyZ2V0 X2NvbW1pdD0iIHRhcmdldC1jb21taXQpKQogCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgKHN0cmlu Zy1hcHBlbmQgIkNvbXBhcmluZyAiCisgICAgKHN0cmluZy10YWtlIGJhc2UtY29tbWl0IDgpICIg YW5kICIgKHN0cmluZy10YWtlIHRhcmdldC1jb21taXQgOCkpKQorCiAgIChsYXlvdXQKKyAgICM6 dGl0bGUKKyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChk aXYKQEAgLTEwNDIsNyArMTA1NiwxMSBAQCBlbm91Z2ggYnVpbGRzIHRvIGRldGVybWluZSBhIGNo YW5nZSIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6b3B0 aW9uYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UtcmV2 aXNpb24tZGV0YWlscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0LXJldmlzaW9uLWRldGFpbHMpCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIlN5c3RlbSB0 ZXN0IGRlcml2YXRpb24gY2hhbmdlcyIpCisKICAgKGxheW91dAorICAgIzp0aXRsZQorICAgcGFn ZS1oZWFkZXIKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMTE0MSw3 ICsxMTU5LDcgQEAgZW5vdWdoIGJ1aWxkcyB0byBkZXRlcm1pbmUgYSBjaGFuZ2UiKSkpCiAgICAg ICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAgICAoZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29s LXNtLTEyIikpCi0gICAgICAgIChoMSAiU3lzdGVtIHRlc3QgZGVyaXZhdGlvbiBjaGFuZ2VzIikK KyAgICAgICAgKGgxICxwYWdlLWhlYWRlcikKICAgICAgICAgLChpZgogICAgICAgICAgIChudWxs PyBjaGFuZ2VzKQogICAgICAgICAgICcocCAiTm8gc3lzdGVtIHRlc3QgZGVyaXZhdGlvbiBjaGFu Z2VzIikKZGlmZiAtLWdpdCBhL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9kdW1wcy9odG1sLnNjbSBi L2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9kdW1wcy9odG1sLnNjbQppbmRleCA3MWU2OWM4Li5kNmQ3 N2Y5IDEwMDY0NAotLS0gYS9ndWl4LWRhdGEtc2VydmljZS93ZWIvZHVtcHMvaHRtbC5zY20KKysr IGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL2R1bXBzL2h0bWwuc2NtCkBAIC0yMiw3ICsyMiwxMSBA QAogICAjOmV4cG9ydCAodmlldy1kdW1wcykpCiAKIChkZWZpbmUgKHZpZXctZHVtcHMgYXZhaWxh YmxlLWR1bXBzKQorICAoZGVmaW5lIHBhZ2UtaGVhZGVyICJEYXRhYmFzZSBkdW1wcyIpCisKICAg KGxheW91dAorICAgIzp0aXRsZQorICAgcGFnZS1oZWFkZXIKICAgICM6Ym9keQogICAgYCgsKGhl YWRlcikKICAgICAgKGRpdgpAQCAtMzEsNyArMzUsNyBAQAogICAgICAgIChAIChjbGFzcyAicm93 IikpCiAgICAgICAgKGRpdgogICAgICAgICAoQCAoY2xhc3MgImNvbC1zbS0xMiIpKQotICAgICAg ICAoaDEgIkRhdGFiYXNlIGR1bXBzIikpKQorICAgICAgICAoaDEgLHBhZ2UtaGVhZGVyKSkpCiAg ICAgICAsQChtYXAKICAgICAgICAgIChtYXRjaC1sYW1iZGEKICAgICAgICAgICAgKChkYXRlLXN0 cmluZyAuIGZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL2pvYnMvaHRt bC5zY20gYi9ndWl4LWRhdGEtc2VydmljZS93ZWIvam9icy9odG1sLnNjbQppbmRleCA4MjczNGQ2 Li41YzU4ODFjIDEwMDY0NAotLS0gYS9ndWl4LWRhdGEtc2VydmljZS93ZWIvam9icy9odG1sLnNj bQorKysgYi9ndWl4LWRhdGEtc2VydmljZS93ZWIvam9icy9odG1sLnNjbQpAQCAtMzAsNyArMzAs MTEgQEAKICAgICAgICAgICAgICAgICAgICBqb2JzLWFuZC1ldmVudHMKICAgICAgICAgICAgICAg ICAgICByZWNlbnQtZXZlbnRzCiAgICAgICAgICAgICAgICAgICAgc2hvdy1uZXh0LXBhZ2U/KQor ICAoZGVmaW5lIHBhZ2UtaGVhZGVyICJKb2JzIikKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisg ICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC00 MCw3ICs0NCw3IEBACiAgICAgICAgKGRpdgogICAgICAgICAoQCAoY2xhc3MgImNvbC1zbS0xMiIp KQogICAgICAgICAoaDEgKEAgKHN0eWxlICJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IikpCi0gICAg ICAgICAgICAiSm9icyIpCisgICAgICAgICAgICAscGFnZS1oZWFkZXIpCiAgICAgICAgIChkaXYK ICAgICAgICAgIChAIChjbGFzcyAiYnRuLWdyb3VwIHB1bGwtcmlnaHQiKQogICAgICAgICAgICAg KHN0eWxlICJtYXJnaW4tdG9wOiAxLjNyZW07IikKQEAgLTE4OSw3ICsxOTMsMTEgQEAKIAogKGRl ZmluZSAodmlldy1qb2ItZXZlbnRzIHF1ZXJ5LXBhcmFtZXRlcnMKICAgICAgICAgICAgICAgICAg ICAgICAgICByZWNlbnQtZXZlbnRzKQorICAoZGVmaW5lIHBhZ2UtaGVhZGVyICJSZWNlbnQgZXZl bnRzIikKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5 CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC0yMDAsNyArMjA4LDcgQEAKICAgICAgICAg KEAgKGNsYXNzICJjb2wtc20tMTIiKSkKICAgICAgICAgKGEgKEAgKGhyZWYgIi9qb2JzIikpCiAg ICAgICAgICAgIChoMyAiSm9icyIpKQotICAgICAgICAoaDEgIlJlY2VudCBldmVudHMiKSkpCisg ICAgICAgIChoMSAscGFnZS1oZWFkZXIpKSkKICAgICAgIChkaXYKICAgICAgICAoQCAoY2xhc3Mg InJvdyIpKQogICAgICAgIChkaXYKQEAgLTI1Niw3ICsyNjQsMTQgQEAKICAgICAgICAgICAgICBy ZWNlbnQtZXZlbnRzKSkpKSkpKSkpCiAKIChkZWZpbmUgKHZpZXctam9iLXF1ZXVlIGpvYnMtYW5k LWV2ZW50cykKKyAgKGRlZmluZSBwYWdlLWhlYWRlcgorICAgIChzdHJpbmctYXBwZW5kICJRdWV1 ZWQgam9icyAoIgorICAgICAgICAgICAgICAobnVtYmVyLT5zdHJpbmcgKGxlbmd0aCBqb2JzLWFu ZC1ldmVudHMpKQorICAgICAgICAgICAgICAiKSIpKQorCiAgIChsYXlvdXQKKyAgICM6dGl0bGUK KyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAg LTI2Nyw5ICsyODIsNyBAQAogICAgICAgICAoQCAoY2xhc3MgImNvbC1zbS0xMiIpKQogICAgICAg ICAoYSAoQCAoaHJlZiAiL2pvYnMiKSkKICAgICAgICAgICAgKGgzICJKb2JzIikpCi0gICAgICAg IChoMSAiUXVldWVkIGpvYnMgKCIKLSAgICAgICAgICAgICwobGVuZ3RoIGpvYnMtYW5kLWV2ZW50 cykKLSAgICAgICAgICAgICIpIikpKQorICAgICAgICAoaDEgLHBhZ2UtaGVhZGVyKSkpCiAgICAg ICAoZGl2CiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAgICAoZGl2CkBAIC0zMzAsNyAr MzQzLDExIEBACiAgICAgICAgICAgICAgICAgIGpvYnMtYW5kLWV2ZW50cykpKSkpKSkpKQogCiAo ZGVmaW5lICh2aWV3LWpvYiBqb2ItaWQgcXVlcnktcGFyYW1ldGVycyBsb2cpCisgIChkZWZpbmUg cGFnZS1oZWFkZXIgKHN0cmluZy1hcHBlbmQgIkpvYiAiIGpvYi1pZCkpCisKICAgKGxheW91dAor ICAgIzp0aXRsZQorICAgcGFnZS1oZWFkZXIKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAg ICAgKGRpdgpAQCAtMzM5LDcgKzM1Niw3IEBACiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAg ICAgICAoZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLXNtLTEyIikpCi0gICAgICAgIChoMSAi Sm9iICIgLGpvYi1pZCkpKQorICAgICAgICAoaDEgLHBhZ2UtaGVhZGVyKSkpCiAgICAgICAoZGl2 CiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAgICAoZGl2CmRpZmYgLS1naXQgYS9ndWl4 LWRhdGEtc2VydmljZS93ZWIvbmFyL2h0bWwuc2NtIGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL25h ci9odG1sLnNjbQppbmRleCA1OTZkMTZiLi4wNjNiMDkxIDEwMDY0NAotLS0gYS9ndWl4LWRhdGEt c2VydmljZS93ZWIvbmFyL2h0bWwuc2NtCisrKyBiL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9uYXIv aHRtbC5zY20KQEAgLTIyLDcgKzIyLDEwIEBACiAgICM6ZXhwb3J0ICh2aWV3LXN1YnN0aXR1dGVz KSkKIAogKGRlZmluZSAodmlldy1zdWJzdGl0dXRlcyBuYXJpbmZvLXNpZ25pbmctcHVibGljLWtl eSkKKyAgKGRlZmluZSBwYWdlLWhlYWRlciAiU3Vic3RpdHV0ZXMiKQogICAobGF5b3V0CisgICAj OnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAo ZGl2CkBAIC0zMSw3ICszNCw3IEBACiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAgICAo ZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLXNtLTEyIikpCi0gICAgICAgIChoMSAiU3Vic3Rp dHV0ZXMiKQorICAgICAgICAoaDEgLHBhZ2UtaGVhZGVyKQogICAgICAgICAsQChpZiAoY2Fub25p Y2FsLXNleHA/IG5hcmluZm8tc2lnbmluZy1wdWJsaWMta2V5KQogICAgICAgICAgICAgICBgKCho MyAiUHVibGljIGtleSIpCiAgICAgICAgICAgICAgICAgKHByZQpkaWZmIC0tZ2l0IGEvZ3VpeC1k YXRhLXNlcnZpY2Uvd2ViL3BhY2thZ2UvaHRtbC5zY20gYi9ndWl4LWRhdGEtc2VydmljZS93ZWIv cGFja2FnZS9odG1sLnNjbQppbmRleCAwZDliMDc4Li44NWIzM2U5IDEwMDY0NAotLS0gYS9ndWl4 LWRhdGEtc2VydmljZS93ZWIvcGFja2FnZS9odG1sLnNjbQorKysgYi9ndWl4LWRhdGEtc2Vydmlj ZS93ZWIvcGFja2FnZS9odG1sLnNjbQpAQCAtMjQsNyArMjQsMTAgQEAKICAgIzpleHBvcnQgKHZp ZXctcGFja2FnZSkpCiAKIChkZWZpbmUqICh2aWV3LXBhY2thZ2UgbmFtZSBwYWNrYWdlLXZlcnNp b24td2l0aC1icmFuY2hlcykKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFw cGVuZCAiUGFja2FnZTogIiBuYW1lKQogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAo ZGl2CmRpZmYgLS1naXQgYS9ndWl4LWRhdGEtc2VydmljZS93ZWIvcmVwb3NpdG9yeS9odG1sLnNj bSBiL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9yZXBvc2l0b3J5L2h0bWwuc2NtCmluZGV4IDg4ZjI2 MzIuLjRiYjUwZGIgMTAwNjQ0Ci0tLSBhL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9yZXBvc2l0b3J5 L2h0bWwuc2NtCisrKyBiL2d1aXgtZGF0YS1zZXJ2aWNlL3dlYi9yZXBvc2l0b3J5L2h0bWwuc2Nt CkBAIC0zMiw3ICszMiwxMSBAQAogICAgICAgICAgICAgdmlldy1uby1sYXRlc3QtcmV2aXNpb24p KQogCiAoZGVmaW5lKiAodmlldy1naXQtcmVwb3NpdG9yaWVzIGdpdC1yZXBvc2l0b3JpZXMpCisg ICAoZGVmaW5lIHBhZ2UtaGVhZGVyICJHaXQgcmVwb3NpdG9yaWVzIikKKwogICAobGF5b3V0Cisg ICAjOnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAg ICAoZGl2CkBAIC00MSw3ICs0NSw3IEBACiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAgICAg ICAoZGl2CiAgICAgICAgIChAIChjbGFzcyAiY29sLW1kLTEyIikpCi0gICAgICAgIChoMSAiR2l0 IHJlcG9zaXRvcmllcyIpKSkKKyAgICAgICAgKGgxICxwYWdlLWhlYWRlcikpKQogICAgICAgLEAo bWFwCiAgICAgICAgICAobWF0Y2gtbGFtYmRhCiAgICAgICAgICAgICgoaWQgbGFiZWwgdXJsIGNn aXQtYmFzZS11cmwpCkBAIC02NSw3ICs2OSwxMSBAQAogKGRlZmluZSogKHZpZXctZ2l0LXJlcG9z aXRvcnkgZ2l0LXJlcG9zaXRvcnktaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxh YmVsIHVybCBjZ2l0LXVybC1iYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmFu Y2hlcy13aXRoLW1vc3QtcmVjZW50LWNvbW1pdHMpCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgKHN0 cmluZy1hcHBlbmQgIlJlcG9zaXRvcnkgIiAoc3RyaW5nLWRyb3AgdXJsIDgpKSkKKwogICAobGF5 b3V0CisgICAjOnRpdGxlCisgICBwYWdlLWhlYWRlcgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVy KQogICAgICAoZGl2CkBAIC04Niw3ICs5NCwxMSBAQAogCiAoZGVmaW5lICh2aWV3LWJyYW5jaCBn aXQtcmVwb3NpdG9yeS1pZAogICAgICAgICAgICAgICAgICAgICAgYnJhbmNoLW5hbWUgcXVlcnkt cGFyYW1ldGVycyBicmFuY2gtY29tbWl0cykKKyAgKGRlZmluZSBwYWdlLWhlYWRlciAoc3RyaW5n LWFwcGVuZCBicmFuY2gtbmFtZSAiIGJyYW5jaCIpKQorCiAgIChsYXlvdXQKKyAgICM6dGl0bGUK KyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAg LTE5Nyw3ICsyMDksMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoLW5h bWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS1uYW1lCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlcnNpb25zLWJ5LXJldmlzaW9uLXJhbmdlKQorICAoZGVmaW5l IHBhZ2UtaGVhZGVyIChzdHJpbmctYXBwZW5kIHBhY2thZ2UtbmFtZSAiIG9uICIgYnJhbmNoLW5h bWUpKQorCiAgIChsYXlvdXQKKyAgICM6dGl0bGUKKyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkK ICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAgLTM4Niw2ICs0MDIsOCBAQAogICAgICAgICAg ICAgICAgIChtYXAgZmlyc3QgZGVyaXZhdGlvbnMtYnktcmV2aXNpb24tcmFuZ2UpKSkpCiAKICAg KGxheW91dAorICAgIzp0aXRsZQorICAgKHN0cmluZy1hcHBlbmQgcGFja2FnZS1uYW1lICIgcGFj a2FnZSBkZXJpdmF0aW9ucyIpCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYK QEAgLTYzNiw2ICs2NTQsOCBAQAogICAgICAgICAgICAgICAgIChtYXAgZmlyc3Qgb3V0cHV0cy1i eS1yZXZpc2lvbi1yYW5nZSkpKSkKIAogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5n LWFwcGVuZCBwYWNrYWdlLW5hbWUgIiBwYWNrYWdlIG91dHB1dHMiKQogICAgIzpib2R5CiAgICBg KCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC04NDksNiArODY5LDggQEAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQtc3lzdGVtcwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW0tdGVzdC1oaXN0b3J5KQogICAobGF5b3V0 CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCBzeXN0ZW0tdGVzdC1uYW1lICIgaGlzdG9y eSIpCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAgLTEwMTYsMTIgKzEw MzgsMTYgQEAKICAgICAgICAgICAgICAgICAnKCNmKSkpKSkpKSkpKSkpCiAKIChkZWZpbmUgKHZp ZXctbm8tbGF0ZXN0LXJldmlzaW9uIGJyYW5jaC1uYW1lKQorICAgKGRlZmluZSBwYWdlLWhlYWRl ciAiTm8gbGF0ZXN0IHJldmlzaW9uIikKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3Ry aW5nLWFwcGVuZCBwYWdlLWhlYWRlciAiIGZvciAiIGJyYW5jaC1uYW1lKQogICAgIzpib2R5CiAg ICBgKCwoaGVhZGVyKQogICAgICAoZGl2CiAgICAgICAoQCAoY2xhc3MgImNvbnRhaW5lciIpKQot ICAgICAgKGgxICJObyBsYXRlc3QgcmV2aXNpb24iKQorICAgICAgKGgxICxwYWdlLWhlYWRlcikK ICAgICAgIChwICJObyBsYXRlc3QgcmV2aXNpb24gZm9yICIKICAgICAgICAgIChzdHJvbmcgKHNh bXAgLGJyYW5jaC1uYW1lKSkKICAgICAgICAgICIgYnJhbmNoIikpKSkpCmRpZmYgLS1naXQgYS9n dWl4LWRhdGEtc2VydmljZS93ZWIvcmV2aXNpb24vaHRtbC5zY20gYi9ndWl4LWRhdGEtc2Vydmlj ZS93ZWIvcmV2aXNpb24vaHRtbC5zY20KaW5kZXggMjViNzlmNC4uNTE0MTI5YiAxMDA2NDQKLS0t IGEvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL3JldmlzaW9uL2h0bWwuc2NtCisrKyBiL2d1aXgtZGF0 YS1zZXJ2aWNlL3dlYi9yZXZpc2lvbi9odG1sLnNjbQpAQCAtNDgsNyArNDgsMTEgQEAKIChkZWZp bmUqICh2aWV3LXJldmlzaW9uLW5ld3MgY29tbWl0LWhhc2gKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcXVlcnktcGFyYW1ldGVycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ZXdzLWVudHJpZXMpCisKICAgKGxheW91dAorICAgIzp0aXRsZQorICAgKHN0cmluZy1hcHBlbmQg IkNoYW5uZWwgTmV3cyBFbnRyaWVzIC0gUmV2aXNpb24gIgorICAgIChzdHJpbmctdGFrZSBjb21t aXQtaGFzaCA3KSkKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMTA3 LDcgKzExMSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmtleSBwYXRo LWJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLXRleHQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLWxpbmspCisKICAgKGxheW91dAorICAg Izp0aXRsZQorICAgKHN0cmluZy1hcHBlbmQgIlBhY2thZ2U6ICIgbmFtZSAiIC0gUmV2aXNpb24g IgorICAgIChzdHJpbmctdGFrZSByZXZpc2lvbi1jb21taXQtaGFzaCA3KSkKICAgICM6Ym9keQog ICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMTM1LDcgKzE0Myw3IEBACiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaC1uYW1lKSkpKQogICAgICAgICAg ICAgICAgICAgYnJhbmNoZXMpKSkKICAgICAgICAgICBnaXQtcmVwb3NpdG9yaWVzLWFuZC1icmFu Y2hlcykKLSAgICAgICAgKGgxICJQYWNrYWdlICIgLG5hbWUpKSkKKyAgICAgICAgKGgxICJQYWNr YWdlOiAiICxuYW1lKSkpCiAgICAgICAoZGl2CiAgICAgICAgKEAgKGNsYXNzICJyb3ciKSkKICAg ICAgICAoZGl2CkBAIC0xNjksNyArMTc3LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICM6a2V5IGhlYWRlci10ZXh0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci1saW5rCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24taGlzdG9yeS1saW5rKQorCiAgIChsYXlv dXQKKyAgICM6dGl0bGUKKyAgIChzdHJpbmctYXBwZW5kICJQYWNrYWdlOiAiIG5hbWUgIiBAICIg dmVyc2lvbiAiIC0gUmV2aXNpb24gIgorICAgIChzdHJpbmctdGFrZSByZXZpc2lvbi1jb21taXQt aGFzaCA3KSkKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMjI0LDcg KzIzNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgKHJvbGUgImJ1dHRvbiIpKQogICAgICAg ICAgICAgICAgICAgICJWZXJzaW9uIGhpc3RvcnkiKSkKICAgICAgICAgICAgICAgJygpKQotICAg ICAgICAoaDEgIlBhY2thZ2UgIiAsbmFtZSAiIEAgIiAsdmVyc2lvbikpKQorICAgICAgICAoaDEg IlBhY2thZ2U6ICIgLG5hbWUgIiBAICIgLHZlcnNpb24pKSkKICAgICAgIChkaXYKICAgICAgICAo QCAoY2xhc3MgInJvdyIpKQogICAgICAgIChkaXYKQEAgLTQ3MSw3ICs0ODMsMTAgQEAKICAgICAg ICAgICAgICAgICAgICAgICAgIGxpbnQtd2FybmluZy1jb3VudHMKICAgICAgICAgICAgICAgICAg ICAgICAgICM6a2V5IChwYXRoLWJhc2UgIi9yZXZpc2lvbi8iKQogICAgICAgICAgICAgICAgICAg ICAgICAgaGVhZGVyLXRleHQpCisKICAgKGxheW91dAorICAgIzp0aXRsZQorICAgKHN0cmluZy1h cHBlbmQgIlJldmlzaW9uICIgKHN0cmluZy10YWtlIGNvbW1pdC1oYXNoIDcpKQogICAgIzpib2R5 CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC01NDgsNiArNTYzLDkgQEAKICAgICAgICAi SG9tZSBwYWdlIiAiTG9jYXRpb24iICJMaWNlbnNlcyIpKSkKIAogICAobGF5b3V0CisgICAjOnRp dGxlCisgICAoc3RyaW5nLWFwcGVuZCAgIlBhY2thZ2VzIC0gUmV2aXNpb24gIgorICAgIChzdHJp bmctdGFrZSByZXZpc2lvbi1jb21taXQtaGFzaCA3KSkKICAgICM6Ym9keQogICAgYCgsKGhlYWRl cikKICAgICAgKGRpdgpAQCAtNzU2LDYgKzc3NCw5IEBACiAgICAgIHBhY2thZ2UtZGVzY3JpcHRp b24tY291bnRzKSkKIAogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAi UGFja2FnZXMgdHJhbnNsYXRpb24gYXZhaWxhYmlsaXR5IC0gUmV2aXNpb24gIgorICAgIChzdHJp bmctdGFrZSBjb21taXQtaGFzaCA3KSkKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAg KGRpdgpAQCAtODM1LDcgKzg1NiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHF1ZXJ5LXBhcmFtZXRlcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjOmtleSAocGF0aC1iYXNlICIvcmV2aXNpb24vIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoZWFkZXItdGV4dCBoZWFkZXItbGluaykKKwogICAobGF5b3V0Cisg ICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAgIlN5c3RlbSB0ZXN0cyAtIFJldmlzaW9uICIg KHN0cmluZy10YWtlIGNvbW1pdC1oYXNoIDcpKQogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQog ICAgICAoZGl2CkBAIC05MzYsNyArOTYwLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGFubmVsLWluc3RhbmNlcwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzprZXkgKHBhdGgtYmFzZSAiL3JldmlzaW9uLyIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXItdGV4dCBoZWFkZXIt bGluaykKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAiQ2hhbm5l bCBpbnN0YW5jZXMgLSBSZXZpc2lvbiAiCisgICAgKHN0cmluZy10YWtlIGNvbW1pdC1oYXNoIDcp KQogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC0xMjE3LDYgKzEyNDUs OSBAQCBmaWd1cmUgewogICAgICAgICAgICAgICAgIGNvbG91cnMpKSkpKSkKIAogICAobGF5b3V0 CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAiUGFja2FnZSBzdWJzdGl0dXRlIGF2YWls YWJpbGl0eSAtIFJldmlzaW9uICIKKyAgICAoc3RyaW5nLXRha2UgcmV2aXNpb24tY29tbWl0LWhh c2ggNykpCiAgICAjOmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChzdHlsZSAsY2hhcnQtY3Nz KQpAQCAtMTI1NCw3ICsxMjg1LDExIEBAIGZpZ3VyZSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjOmtleSAocGF0aC1iYXNlICIvcmV2aXNpb24vIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci10 ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk ZXItbGluaykKKwogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAgIlBh Y2thZ2UgcmVwcm9kdWNpYmlsaXR5IC0gUmV2aXNpb24gIgorICAgIChzdHJpbmctdGFrZSByZXZp c2lvbi1jb21taXQtaGFzaCA3KSkKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKHN0 eWxlICIKQEAgLTE1MjIsNiArMTU1Nyw5IEBAIGZpZ3VyZSB7CiAgICAgKGFzc3EtcmVmIHF1ZXJ5 LXBhcmFtZXRlcnMgJ2ZpZWxkKSkKIAogICAobGF5b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5n LWFwcGVuZCAgIlBhY2thZ2UgZGVyaXZhdGlvbnMgLSBSZXZpc2lvbiAiCisgICAgKHN0cmluZy10 YWtlIGNvbW1pdC1oYXNoIDcpKQogICAgIzpib2R5CiAgICBgKCwoaGVhZGVyKQogICAgICAoZGl2 CkBAIC0xNzAzLDYgKzE3NDEsOSBAQCBmaWd1cmUgewogICAgICAgKSkKIAogICAobGF5b3V0Cisg ICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAgIkZpeGVkIG91dHB1dCBwYWNrYWdlIGRlcml2 YXRpb25zIC0gUmV2aXNpb24gIgorICAgIChzdHJpbmctdGFrZSBjb21taXQtaGFzaCA3KSkKICAg ICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgpAQCAtMTg0Myw2ICsxODg0LDkgQEAg ZmlndXJlIHsKICAgICAgICAgIGJ1aWxkLXNlcnZlci11cmxzKSkKIAogICAobGF5b3V0CisgICAj OnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAiUGFja2FnZSBkZXJpdmF0aW9uIG91dHB1dHMgLSBS ZXZpc2lvbiAiCisgICAgKHN0cmluZy10YWtlIGNvbW1pdC1oYXNoIDcpKQogICAgIzpib2R5CiAg ICBgKCwoaGVhZGVyKQogICAgICAoZGl2CkBAIC0yMDIxLDcgKzIwNjUsMTAgQEAgZmlndXJlIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkLXNlcnZlci1vcHRpb25zCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0cwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnVpbGRzKQorCiAgIChsYXlvdXQKKyAgICM6dGl0bGUKKyAgIChzdHJpbmctYXBwZW5k ICAiQnVpbGRzIC0gUmV2aXNpb24gIiAoc3RyaW5nLXRha2UgY29tbWl0LWhhc2ggNykpCiAgICAj OmJvZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAgLTIxNTksNiArMjIwNiw5IEBAIGZp Z3VyZSB7CiAgICAgICcoIkxpbnRlciIgIk1lc3NhZ2UiICJMb2NhdGlvbiIpKSkKIAogICAobGF5 b3V0CisgICAjOnRpdGxlCisgICAoc3RyaW5nLWFwcGVuZCAiTGludCB3YXJuaW5ncyAtIFJldmlz aW9uICIKKyAgICAoc3RyaW5nLXRha2UgcmV2aXNpb24tY29tbWl0LWhhc2ggNykpCiAgICAjOmJv ZHkKICAgIGAoLChoZWFkZXIpCiAgICAgIChkaXYKQEAgLTIzMTQsNyArMjM2NCwxMSBAQCBmaWd1 cmUgewogCiAoZGVmaW5lICh1bmtub3duLXJldmlzaW9uIGNvbW1pdC1oYXNoIGpvYiBnaXQtcmVw b3NpdG9yaWVzLWFuZC1icmFuY2hlcwogICAgICAgICAgICAgICAgICAgICAgICAgICBqb2JzLWFu ZC1ldmVudHMpCisgIChkZWZpbmUgcGFnZS1oZWFkZXIgIlVua25vd24gcmV2aXNpb24iKQorCiAg IChsYXlvdXQKKyAgICM6dGl0bGUKKyAgIHBhZ2UtaGVhZGVyCiAgICAjOmJvZHkKICAgIGAoLCho ZWFkZXIpCiAgICAgIChkaXYKQEAgLTIzNDcsMTMgKzI0MDEsMTYgQEAgZmlndXJlIHsKICAgICAg ICAgICAgICAgICAoc3Ryb25nIChAIChjbGFzcyAidGV4dC1jZW50ZXIiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0eWxlICJmb250LXNpemU6IDJlbTsgZGlzcGxheTogYmxvY2s7Iikp CiAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIpKSkpCi0gICAgICAgICAgICBgKCho MSAiVW5rbm93biByZXZpc2lvbiIpCisgICAgICAgICAgICBgKChoMSAscGFnZS1oZWFkZXIpCiAg ICAgICAgICAgICAgIChwICJObyBrbm93biByZXZpc2lvbiB3aXRoIGNvbW1pdCAiCiAgICAgICAg ICAgICAgICAgIChzdHJvbmcgKHNhbXAgLGNvbW1pdC1oYXNoKSkpKSkpKSkpCiAKIChkZWZpbmUg KHVucHJvY2Vzc2VkLXJldmlzaW9uIGNvbW1pdC1oYXNoIGpvYiBnaXQtcmVwb3NpdG9yaWVzLWFu ZC1icmFuY2hlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9icy1hbmQtZXZlbnRz KQorICAoZGVmaW5lIHBhZ2UtaGVhZGVyICJVbmtub3duIHJldmlzaW9uIikKICAgKGxheW91dAor ICAgIzp0aXRsZQorICAgcGFnZS1oZWFkZXIKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAg ICAgKGRpdgpAQCAtMjM3NSw2ICsyNDMyLDYgQEAgZmlndXJlIHsKICAgICAgICAgICAgICAgICAg ICAgICAgZ2l0LXJlcG9zaXRvcmllcy1hbmQtYnJhbmNoZXMKICAgICAgICAgICAgICAgICAgICAg ICAgY29tbWl0LWhhc2gpKQogICAgICAgICAgICAgICAgICxAKHZpZXctcmV2aXNpb24vam9icy1h bmQtZXZlbnRzIGpvYnMtYW5kLWV2ZW50cykpKSkKLSAgICAgICAgICAgIGAoKGgxICJVbmtub3du IHJldmlzaW9uIikKKyAgICAgICAgICAgIGAoKGgxICxwYWdlLWhlYWRlcikKICAgICAgICAgICAg ICAgKHAgIk5vIGtub3duIHJldmlzaW9uIHdpdGggY29tbWl0ICIKICAgICAgICAgICAgICAgICAg KHN0cm9uZyAoc2FtcCAsY29tbWl0LWhhc2gpKSkpKSkpKSkKZGlmZiAtLWdpdCBhL2d1aXgtZGF0 YS1zZXJ2aWNlL3dlYi92aWV3L2h0bWwuc2NtIGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL3ZpZXcv aHRtbC5zY20KaW5kZXggODA2M2UxNy4uMzM1MzVhOSAxMDA2NDQKLS0tIGEvZ3VpeC1kYXRhLXNl cnZpY2Uvd2ViL3ZpZXcvaHRtbC5zY20KKysrIGIvZ3VpeC1kYXRhLXNlcnZpY2Uvd2ViL3ZpZXcv aHRtbC5zY20KQEAgLTY1LDEzICs2NSwxNSBAQAogKGRlZmluZSogKGxheW91dCAjOmtleQogICAg ICAgICAgICAgICAgICAoaGVhZCAnKCkpCiAgICAgICAgICAgICAgICAgIChib2R5ICcoKSkKLSAg ICAgICAgICAgICAgICAgKHRpdGxlICJHdWl4IERhdGEgU2VydmljZSIpCisgICAgICAgICAgICAg ICAgIHRpdGxlCiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKQogICBgKChkb2N0eXBlICJo dG1sIikKICAgICAoaHRtbAogICAgICAoQCAobGFuZyAiZW4iKSkKICAgICAgKGhlYWQKLSAgICAg ICh0aXRsZSAsdGl0bGUpCisgICAgICAodGl0bGUgLChpZiB0aXRsZQorICAgICAgICAgICAgICAg KHN0cmluZy1hcHBlbmQgdGl0bGUgIiDigJQgR3VpeCBEYXRhIFNlcnZpY2UiKQorICAgICAgICAg ICAgICAgIkd1aXggRGF0YSBTZXJ2aWNlIikpCiAgICAgICAobWV0YSAoQCAoaHR0cC1lcXVpdiAi Q29udGVudC1UeXBlIikKICAgICAgICAgICAgICAgIChjb250ZW50ICJ0ZXh0L2h0bWw7IGNoYXJz ZXQ9VVRGLTgiKSkpCiAgICAgICAobWV0YSAoQCAobmFtZSAidmlld3BvcnQiKQpAQCAtMjg2LDgg KzI4OCw3IEBACiAoZGVmaW5lIChpbmRleCBnaXQtcmVwb3NpdG9yaWVzLWFuZC1yZXZpc2lvbnMp CiAgIChsYXlvdXQKICAgICM6ZGVzY3JpcHRpb24KLSAgICJUaGUgR3VpeCBEYXRhIFNlcnZpY2Ug cHJvY2Vzc2VzLCBzdG9yZXMgYW5kIHByb3ZpZGVzIGRhdGEgYWJvdXQgR3VpeCBvdmVyCi10aW1l LiIKKyAgICJUaGUgR3VpeCBEYXRhIFNlcnZpY2UgcHJvY2Vzc2VzLCBzdG9yZXMgYW5kIHByb3Zp ZGVzIGRhdGEgYWJvdXQgR3VpeCBvdmVyIHRpbWUuIgogICAgIzpib2R5CiAgICBgKCwoaGVhZGVy KQogICAgICAoZGl2CkBAIC0zMzQsNyArMzM1LDEwIEBAIHRpbWUuIgogICAgICAgICAgZ2l0LXJl cG9zaXRvcmllcy1hbmQtcmV2aXNpb25zKSkpKSkKIAogKGRlZmluZSAodmlldy1zdGF0aXN0aWNz IGd1aXgtcmV2aXNpb25zLWNvdW50IGRlcml2YXRpb25zLWNvdW50KQorICAoZGVmaW5lIHBhZ2Ut aGVhZGVyICJTdGF0aXN0aWNzIikKICAgKGxheW91dAorICAgIzp0aXRsZQorICAgcGFnZS1oZWFk ZXIKICAgICM6Ym9keQogICAgYCgsKGhlYWRlcikKICAgICAgKGRpdgotLSAKMi4xNy4xCgo= --0000000000003c6daf05c07d6e1f--