
From nobody Mon Oct  9 03:20:01 2017
Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B2B49134DEB for <tools-discuss@ietfa.amsl.com>; Mon,  9 Oct 2017 02:04:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.29
X-Spam-Level: 
X-Spam-Status: No, score=-4.29 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_HTML_ATTACH=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dMOTjLIFGJJF for <tools-discuss@ietfa.amsl.com>; Mon,  9 Oct 2017 02:04:04 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3CF2A134DD6 for <tools-discuss@ietf.org>; Mon,  9 Oct 2017 02:04:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id A9A80BE47 for <tools-discuss@ietf.org>; Mon,  9 Oct 2017 10:04:00 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RRx4735pCjXd for <tools-discuss@ietf.org>; Mon,  9 Oct 2017 10:03:54 +0100 (IST)
Received: from [10.244.2.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 004B4BE38 for <tools-discuss@ietf.org>; Mon,  9 Oct 2017 10:03:51 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1507539834; bh=Kr+2EmOMyOmV+zZEhmT9JHwfh2iWAWoB7LJJvFAypFY=; h=To:From:Subject:Date:From; b=I/BKxtwUmSU1NyV7FYkElTBQ4lHNpi5Lis+Geyxry+9ctt+pYaju+lD3hykLz6roi agl1fELRDs9au0XMgsNdLazdeTkbH42TbLCp9Y6QT1uyNSkbfMido3B3+vHKVzljfB 4wy+v2JbKkqnPQwKsyDUGXMYNbh436+K5z1Fzimg=
To: "tools-discuss@ietf.org Discussion" <tools-discuss@ietf.org>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <ba39cc20-6e06-c74c-d04f-7177cbf41a22@cs.tcd.ie>
Date: Mon, 9 Oct 2017 10:03:51 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="QVVIgudNv4A0CNkRMWqk8rEGkalkuXPUU"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/9fH92kYnsc8f2S0iyiul2toVaRc>
X-Mailman-Approved-At: Mon, 09 Oct 2017 03:20:00 -0700
Subject: [Tools-discuss] dailydose oddity
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Oct 2017 09:04:12 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--QVVIgudNv4A0CNkRMWqk8rEGkalkuXPUU
Content-Type: multipart/mixed; boundary="0GOgNKnm4R4bjQNRwvrxrlrHC9qllhRit";
 protected-headers="v1"
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: "tools-discuss@ietf.org Discussion" <tools-discuss@ietf.org>
Message-ID: <ba39cc20-6e06-c74c-d04f-7177cbf41a22@cs.tcd.ie>
Subject: dailydose oddity

--0GOgNKnm4R4bjQNRwvrxrlrHC9qllhRit
Content-Type: multipart/mixed;
 boundary="------------97D29126DACD395A6AB4022A"
Content-Language: en-GB

This is a multi-part message in MIME format.
--------------97D29126DACD395A6AB4022A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hiya,

I seem to be getting an old version of the daily
dose [1] if I access it over IPv6. The responses
I get to wget with/without "-4" are attached in
case it helps.

S.

[1] https://tools.ietf.org/dailydose/

--------------97D29126DACD395A6AB4022A
Content-Type: text/html; charset=UTF-8;
 name="index.html.v4"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="index.html.v4"

CgoKCgoKCgoKCjwhRE9DVFlQRSBodG1sIAogICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCiAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CjxoZWFk
PgoKPHRpdGxlPlRoZSBEYWlseSBEb3NlIG9mIElFVEYgLSBJc3N1ZSAyOTQ4IC0gMjAxNy0x
MC0wOTwvdGl0bGU+ICAgIAoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgIC8qIHdnLXBh
Z2UuY3NzICovCiAgICAvKiBIVE1MIGVsZW1lbnQgc3R5bGVzICovCiAgICBib2R5CXsKCQkg
ICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7ICAgIAoJCSAgICBtYXJnaW46IDA7CgkJICAg
IHBhZGRpbmc6IDA7CgkJICAgIGJvcmRlcjogMDsKICAgIH0KICAgIGJvZHksIHRoLCB0ZAl7
CgkJICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgdGltZXMsIHNlcmlmOwoJ
CSAgICBmb250LXNpemU6IDExcHQ7CgkJICAgIG1hcmdpbjogMDsKCQl9CgkJCiAgICB0ZAkJ
eyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBwYWRkaW5nOiAwIDAgMCAwOyB9CiAgICBoMQkJeyBm
b250LXNpemU6IDE1MCU7IH0KICAgIGgyCQl7IG1hcmdpbjogMC4yMmVtIDAgMC4yMmVtIDA7
IH0KICAgIGg0CQl7IG1hcmdpbjogMC40NWVtIDAgMCAwOyB9CiAgICBmb3JtCXsgbWFyZ2lu
OiAxZW07IH0KICAgIC5tZW51IGZvcm0JeyBtYXJnaW46IDA7IH0KCiAgICBpbnB1dC5mcnVn
YWwsdGV4dGFyZWEuZnJ1Z2FsIHsKCSAgICBib3JkZXItdG9wOiBncm9vdmUgMnB4ICNiYmI7
CgkgICAgYm9yZGVyLWxlZnQ6IGdyb292ZSAycHggI2NjYzsKCSAgICBib3JkZXItcmlnaHQ6
IHJpZGdlIDJweCAjZGRkIDsKCSAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2RkZDsK
CSAgICBwYWRkaW5nOiAxcHg7CgkgICAgbWFyZ2luOiAxcHg7CgkgICAgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsKICAgIH0KCiAgICAvKiBTdHlsZSBjbGFzc2VzICovCgogICAgLnBhZ2UJ
ewoJCSAgbWFyZ2luOiAwLjJlbSAwLjRlbTsKCQkgIHdpZHRoOiA3MGVtOwoJCX0KICAvKiBV
bmRvIHNvbWUgb2YgdGhlIHNldHRpbmdzIGFib3ZlLCBmb3IgZnVsbHkgY3NzIGNvbXBsaWFu
dCBicm93c2Vycy4gKi8KICAvKiBUaGUgcXVhbGlmaWNhdGlvbiBvZiB0aGUgZWxlbWVudHMg
aGlkZSB0aGlzIGZyb20gbGVzcyBjYXBhYmxlIGJyb3dzZXJzLiAqLwogICAgZGl2W2NsYXNz
PXBhZ2VdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA3MGVtOwkvKiA1OGVt
ID0gMTI4ZXggaW4gdGhlIGRlc2lnbiBicm93c2VyICovCgkJfQogICAgZGl2W2NsYXNzPWNv
bnRlbnRdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA3MGVtOwoJCX0KICAg
IGRpdltjbGFzcz1zZWFyY2hdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA1
MGVtOwoJCX0KCiAgICAvKiBMaW5rIHN0eWxlcyAqLwogICAgOmxpbmssIDp2aXNpdGVkIHsK
CSAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCSAgICBjb2xvcjogIzAwRDsKCSAg
ICBib3JkZXItYm90dG9tOiAwOwogICAgfQogICAgOmxpbms6aG92ZXIsIDp2aXNpdGVkOmhv
dmVyIHsKCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwoJICAgIGNvbG9yOiAjMDBE
OwogICAgfQoKICAgIC5tYXN0aGVhZCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICJEaWRvdCIs
ICJDb2NoaW4iLCAiQmFza2VydmlsbGUiLCBzZXJpZjsKICAgICAgICBmb250LXNpemU6IDQy
MCU7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CglwYWRkaW5nOiAwLjIyZW07CiAgICB9CiAgICAu
c2xvZ2FuIHsKICAgICAgICBmb250LWZhbWlseTogIkRpZG90IiwgIkNvY2hpbiIsICJCYXNr
ZXJ2aWxsZSIsIHNlcmlmOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKCXRleHQtYWxp
Z246IGNlbnRlcjsKCXBhZGRpbmctYm90dG9tOiAwLjQ1ZW07CiAgICB9CiAgICAubmV3cyB7
CiAgICAgICAgZm9udC1mYW1pbHk6ICJUaW1lcyIsICJUaW1lcyBSb21hbiIsIHNlcmlmOwoJ
Y29sb3I6ICMyMjI7CglwYWRkaW5nOiAwLjQ1ZW07CiAgICB9CiAgICB0ZC5uZXdzIHsKCXdp
ZHRoOiA1MCU7CiAgICB9CgogICAgLnZlcnNpb24JewoJCSAgZm9udC1mYW1pbHk6IGhlbHZl
dGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7CgkJICBmb250LXN0eWxlOiBpdGFsaWM7CgkJICBm
b250LXNpemU6IDguNXB0OwoJCSAgdGV4dC1hbGlnbjogcmlnaHQ7CgkJICBjb2xvcjogI2Fh
YTsKCQkgIG1hcmdpbjogMDsKCQkgIHBhZGRpbmc6IDA7CgkJfSAKICAgIC52ZXJzaW9uIGE6
bGluawl7IGNvbG9yOiAjYWFhOyB9CiAgICAudmVyc2lvbiBhOnZpc2l0ZWQJeyBjb2xvcjog
I2FhYTsgfQogICAgLnZlcnNpb24gYTphY3RpdmUJeyBjb2xvcjogI2FhYTsgfQogICAgLnZl
cnNpb24gYTpob3Zlcgl7IGNvbG9yOiAjODg4OyB9CgogICAgLmxvZ28JeyBib3JkZXI6IDA7
ICB9CiAgICAubG9nb21hcmdpbiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAw
OyB3aWR0aDogMHB4O30KICAgIEBtZWRpYSBwcmludCB7CgkgICAgLndnbGlzdCB7IGRpc3Bs
YXk6IG5vbmU7IH0KICAgIH0KICAgIEBtZWRpYSBzY3JlZW4gewoJICAgIC53Z2xpc3QJeyBi
b3JkZXItcmlnaHQ6IGdyb292ZSBncmF5IDJweDsgd2lkdGg6IDQuN2VtOyB9CiAgICB9CiAg
ICAuY29udGVudAl7IG1hcmdpbjogMCAwIDAgMC40NWVtOyB9CiAgICAuZGF0ZQl7IGZvbnQt
c2l6ZTogOXB0OyBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOyBwYWRk
aW5nOiAwLjI3ZW0gMmVtIDAgMDsgfQogICAgLm5ldwl7IGZvbnQtc2l6ZTogOHB0OyBmb250
LXdlaWdodDogYm9sZDsgZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogcmVkO30KICAgIC5y
ZmNzZWFyY2gJeyBmb250LXNpemU6IDhwdDsgbWFyZ2luOiAwOyB9CiAgICAuc3VibWl0CXsg
cGFkZGluZzogMDsgYm9yZGVyOiBvdXRzZXQgZ3JheSAxcHg7IGZvbnQtc2l6ZTogOHB0OyB9
CiAgICAudG9wbWVudSB7CgkJICBib3JkZXItdG9wOiBzb2xpZCBibGFjayAxcHg7CgkJICBi
b3JkZXItYm90dG9tOiBzb2xpZCBibGFjayAxcHg7CgkJICB3aWR0aDogMTAwJTsKCQkgIHRl
eHQtYWxpZ246IGNlbnRlcjsKCQl9CiAgICAudG9wbWVudSB0YWJsZSB7CgkJICB3aWR0aDog
MTAwJTsKCQl9CiAgICAudG9wbWVudSB0YWJsZSB0ciB0ZCB7CgkJICBmb250LWZhbWlseTog
QXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCQkgIGZvbnQtd2VpZ2h0OiBib2xkOwoJ
CSAgZm9udC1zaXplOiA4MCU7CQoJCX0KICAgIC50b3BtZW51IHRhYmxlIHRyIHRkIGEgewoJ
CSAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCSAgY29sb3I6ICMyMjI7CgkJfQogICAgLnRv
cG1lbnUgdGFibGUgdHIgdGQgYTpob3ZlciB7CgkJICBjb2xvcjogIzU1NTsKCQl9CiAgICAu
bWVudQl7CgkJICB3aWR0aDogMTAwJTsKCQkgIHRleHQtYWxpZ246IGNlbnRlcjsKCQkgIGZv
bnQtd2VpZ2h0OiBib2xkOwoJCSAgbWFyZ2luOiAwLjIyZW07CgkJICBmb250LWZhbWlseTog
VmVyZGFuYSwgT3B0aW1hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CgkJICBmb250LXNpemU6
IDhwdDsKCQl9CiAgICAucmlnaHQJewoJCSAgZmxvYXQ6IHJpZ2h0OwoJCSAgZm9udC13ZWln
aHQ6IGJvbGQ7CgkJfQogICAgLm5hdmJhcgl7IAoJCSAgdGV4dC1hbGlnbjogY2VudGVyOwoJ
CSAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIE9wdGltYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlm
OwoJCSAgZm9udC1zaXplOiA4cHQ7CgkJICB3aWR0aDogMTAwJTsKCQl9CiAgICB0YWJsZS5t
ZW51dG9wIHsgd2lkdGg6IDEwMCU7IG1hcmdpbi1yaWdodDogMXB4O30KICAgIC5lZGl0CXsg
ZmxvYXQ6IGxlZnQ7IH0KICAgIC51cGRhdGUJeyBmb250LXNpemU6IDlwdDsgZm9udC1zdHls
ZTogaXRhbGljOyB0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6
IDNlbTsgfQogICAgLmNoYWlycwl7IHZlcnRpY2FsLWFsaWduOiBib3R0b207IHRleHQtYWxp
Z246IHJpZ2h0OyBmb250LXNpemU6IDEwcHQ7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfQogICAg
CiAgICBhOmxpbmsJeyBjb2xvcjogIzAwRCB9CiAgICBhOnZpc2l0ZWQJeyBjb2xvcjogIzQw
OCB9Ci8qICAgICBhOmFjdGl2ZQl7IGNvbG9yOiAjMDRDIH0gKi8KICAgIGE6aG92ZXIJeyBj
b2xvcjogIzAwRiB9CgogICAgYS5leHRlcm5hbDpsaW5rCXsgY29sb3I6ICM4MDAgfQogICAg
YS5leHRlcm5hbDp2aXNpdGVkCXsgY29sb3I6ICM4NDAgfQogICAgYS5leHRlcm5hbDphY3Rp
dmUJeyBjb2xvcjogIzgwNCB9CiAgICBhLmV4dGVybmFsOmhvdmVyCXsgY29sb3I6ICNDMDAg
fQoKICAgIC5hY3RpdmUsIC5hY3RpdmVfd2cJeyBib3JkZXItbGVmdDogc29saWQgd2hpdGUg
MC4yMmVtOyBwYWRkaW5nOiAwLjJlbSAwLjIyZW0gMCAwOyB9CiAgICAuY29uY2x1ZGVkLCAu
Y29uY2x1ZGVkX3dnIHsgYmFja2dyb3VuZC1jb2xvcjogI0Y4RjhEMDsgYm9yZGVyLWxlZnQ6
IHNvbGlkIHdoaXRlIDAuMjJlbTsgcGFkZGluZzogMC4yMmVtIDAuMjJlbSAwIDA7IH0KICAg
IC5ub3RfYV93ZyB7IGJhY2tncm91bmQtY29sb3I6ICNFRUY7IGJvcmRlci1sZWZ0OiBzb2xp
ZCB3aGl0ZSAwLjIyZW07IHBhZGRpbmc6IDAuMjJlbSAwLjIyZW0gMCAwOyB9CiAgICAuYm9m
IHsgYmFja2dyb3VuZC1jb2xvcjogI0VGRTsgYm9yZGVyLWxlZnQ6IHNvbGlkIHdoaXRlIDAu
MjJlbTsgcGFkZGluZzogMC4yMmVtIDAuMjJlbSAwIDA7IH0KCiAgICAuZHJhZnRzcGFuZWwg
eyB3aWR0aDogNy4yNWVtOyBwYWRkaW5nOiAwLjllbTsgYmFja2dyb3VuZC1jb2xvcjogI0VF
RTsgfQogICAgLmNvbmNsdWRlZF93ZyAuZHJhZnRzcGFuZWwgeyBiYWNrZ3JvdW5kLWNvbG9y
OiAjRUVCOyB9CiAgICAubm90X2Ffd2cgLmRyYWZ0c3BhbmVsIHsgYmFja2dyb3VuZC1jb2xv
cjogI0RERTsgfQoKICAgIC5jYXB0aW9uCXsgbWFyZ2luOiAyZW07IGZvbnQtc2l6ZTogMTJw
dDsgfQogICAgLmRyYWZ0c3BhbmVsIHsgbWFyZ2luOiAxLjhlbSAwIDAgMS44ZW07IH0KICAg
IC5kcmFmdHNsaXN0IHsgfQogICAgLmRyYWZ0c2xpc3QgdGQgeyBwYWRkaW5nOiAxcHg7IH0K
ICAgIC8qICAgICAuZHJhZnRzbGlzdCB0ZCBkaXYgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHZl
cnRpY2FsLWFsaWduOiB0b3A7IH0gKi8KICAgIC5kcmFmdHNsaXN0IC5lbnRyeSB7IHBvc2l0
aW9uOiByZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246IHRvcDsgfQogICAgLmhvdmVyIHsgcG9z
aXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDNweDsgYm9yZGVyOiBibGFjayBz
b2xpZCAxcHg7IGJhY2tncm91bmQtY29sb3I6ICNGRkU7IHZpc2liaWxpdHk6IGhpZGRlbjsg
fQogICAgdGQucmV2IHsgcGFkZGluZy1sZWZ0OiAwLjJlbTsgd2hpdGUtc3BhY2U6IG5vd3Jh
cDsgfQogICAgLmRyYWZ0ZGF0ZSB7IGZvbnQtc2l6ZTogOXB0OyBmb250LWZhbWlseTogbW9u
b3NwYWNlOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CiAgICAubWVudWl0ZW0JeyBtYXJnaW4t
dG9wOiAwLjI1ZW07IG1hcmdpbi1ib3R0b206IDAuMjVlbTsgfQogICAgLnRvcGl0ZW0JeyBt
YXJnaW4tdG9wOiAwLjI1ZW07IG1hcmdpbi1ib3R0b206IDA7IH0KICAgIC5zdWJpdGVtCXsg
bWFyZ2luLWxlZnQ6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjI1ZW07ICB9CiAgICAuc21h
bGwJeyBmb250LXNpemU6IDhwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEhlbHZldGljYSwg
QXJpYWwsIHNhbnMtc2VyaWY7IH0KICAgIC5tZW51Zm9ybQl7IG1hcmdpbjogMCAwIDAuNDVl
bSAwOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH0KICAgIC5zdWJpdGVtIGZvcm0JeyBt
YXJnaW46IDAgMCAwLjQ1ZW0gMDsgfQogICAgLnN1Yml0ZW0gaW5wdXQJeyB3aWR0aDogNS41
ZW07IGZvbnQtc2l6ZTogOHB0OyB9CiAgICAuc3ViaXRlbSBidXR0b24JeyBwYWRkaW5nOiAw
OyBtYXJnaW46IDBweDsgfQoKICAgIC5zcGVsbGNoZWNrCXsgYm9yZGVyLWJvdHRvbTogcmVk
IHNvbGlkIDJweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogYmxhY2s7IH0KICAg
IGEuc3BlbGxjaGVjawl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9
CiAgICBhLnNwZWxsY2hlY2s6bGluawl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6
IGJsYWNrOyB9CiAgICBhLnNwZWxsY2hlY2s6dmlzaXRlZAl7IHRleHQtZGVjb3JhdGlvbjog
bm9uZTsgY29sb3I6IGJsYWNrOyB9CiAgICBhLnNwZWxsY2hlY2s6aG92ZXIJeyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7IGNvbG9yOiBibGFjazsgfQogICAgYS5zcGVsbGNoZWNrOmFjdGl2
ZQl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9CgogICAgLnBvcHVw
CXsKCSAgICBwb3NpdGlvbjphYnNvbHV0ZTsKCSAgICB2aXNpYmlsaXR5OmhpZGRlbjsKCSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiNGMEYwRDA7CgkgICAgcGFkZGluZzogMS40ZW07IAoJICAg
IGJvcmRlcjogc29saWQgIzM0NSAxcHg7CgkgICAgbWFyZ2luOiAwcHg7CgkgICAgZm9udC1z
aXplOiAxMHB0OwoJICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CgkgICAgd2hpdGUtc3Bh
Y2U6IHByZTsKCSAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgfQoKICAgIC8qIHByb2dyZXNz
IGJhciBhbmQgdGlja2V0IGluZGljYXRpb24gKi8KICAgIHRhYmxlLmRyYWZ0aXNzdWVzIHsg
bWFyZ2luLXRvcDogMC4xNWVtOyB9CiAgICB0ZC5wcm9ncmVzc2JhciB7IHZlcnRpY2FsLWFs
aWduOiBtaWRkbGUgfQogICAgdGFibGUucHJvZ3Jlc3NiYXIgewoJICAgIGJvcmRlcjogMXB4
IHNvbGlkIGdyYXk7CgkgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKCSAgICBib3Jk
ZXItc3BhY2luZzogMDsKCSAgICBtYXJnaW46IDA7CgkgICAgcGFkZGluZzogMDsKCSAgICBl
bXB0eS1jZWxsczogc2hvdzsKCSAgICB3aWR0aDogMmVtOwogICAgfQogICAgdGFibGUucHJv
Z3Jlc3NiYXIgYSwgdGFibGUucHJvZ3Jlc3NiYXIgOmxpbmssIHRhYmxlLnByb2dyZXNzYmFy
IDp2aXNpdGVkLAogICAgdGFibGUucHJvZ3Jlc3NiYXJiYXIgOmxpbms6aG92ZXIsIHRhYmxl
LnByb2dyZXNzYmFyIDp2aXNpdGVkOmhvdmVyIHsKCSAgICBib3JkZXI6IG5vbmU7CgkgICAg
ZGlzcGxheTogYmxvY2s7CgkgICAgd2lkdGg6IDEwMCU7CgkgICAgaGVpZ2h0OiAxMDAlOwoJ
ICAgIHBhZGRpbmc6IDA7CgkgICAgbWFyZ2luOiAwOwoJICAgIHRleHQtZGVjb3JhdGlvbjog
bm9uZTsKICAgIH0KICAgIHRhYmxlLnByb2dyZXNzYmFyIHRkIHsgcGFkZGluZzogMDsgaGVp
Z2h0OiAwLjQ1ZW07IH0KICAgIHRhYmxlLnByb2dyZXNzYmFyIHRkLmNsb3NlZCB7IGJhY2tn
cm91bmQ6ICM0YzQgfQogICAgdGFibGUucHJvZ3Jlc3NiYXIgdGQgOmhvdmVyIHsgYmFja2dy
b3VuZDogbm9uZSB9CiAgICB0YWJsZS5kcmFmdGlzc3VlcyB0ZC5zbWFsbCB7CgkgICAgZm9u
dC1zaXplOiAwLjllbTsKCSAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKCSAgICBmb250
LXdlaWdodDogYm9sZDsKCSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CgkgICAgY29sb3I6
IGJsYWNrOwoJICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CiAgICB0YWJsZS5h
dnAgdGQgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDgwJTsgcGFkZGlu
ZzogMCAxZW0gMC4xZW0gMDsgfQoKICAgIC50b29sYmx1cmIgeyBtYXJnaW46IDJlbSAzZW0g
MCA0ZW07IH0KLyogZGFpbHlkb3NlL2xheW91dF92Mi5jc3MgKi8KLnBhZ2UgewogICAgd2lk
dGg6IDk5JTsKfQpkaXZbY2xhc3M9cGFnZV0gewogICAgd2lkdGg6IDk5JTsKICAgIG1heC13
aWR0aDogNzNlbTsKfQoKLmRhaWx5ZG9zZSB0ZCwgZGl2LmRhaWx5ZG9zZSAgewogICAgZm9u
dC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDEwcHQ7Cn0KCi5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9iYW5uZXIgewogICAgcGFkZGluZzogMjVweCAyMHB4IDVweCAyMHB4
OwogICAgdGV4dC1hbGlnbjogY2VudGVyOyAKfQouZGFpbHlkb3NlIC5kYWlseWRvc2VfYmFu
bmVyIGgxIHsgcGFkZGluZzogMDsgbWFyZ2luOiAwO30KLmRhaWx5ZG9zZSAuZGFpbHlkb3Nl
X2Jhbm5lciAuZGFpbHlkb3NlX3Nsb2dhbiB7CiAgICBmb250LXNpemU6IDEyMCU7CiAgICBm
b250LWZhbWlseTogc2VyaWY7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBsZXR0ZXIt
c3BhY2luZzogMC40cHg7CiAgICBwYWRkaW5nOiA1cHggMCAxNXB4IDA7Cn0KCi5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9iYW5uZXIgLmRhaWx5ZG9zZV9iYW5uZXJtZW51IHsKICAgIGJvcmRl
ci10b3A6IHNvbGlkIGJsYWNrIDFweDsKICAgIGJvcmRlci1ib3R0b206IHNvbGlkIGJsYWNr
IDFweDsKICAgIHdpZHRoOjEwMCU7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX2Jhbm5lciAu
ZGFpbHlkb3NlX2Jhbm5lcm1lbnUgdGQgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CiAgICBmb250LXNpemU6IDgwJTsJCn0KLmRhaWx5ZG9zZSAu
ZGFpbHlkb3NlX2Jhbm5lciAuZGFpbHlkb3NlX2Jhbm5lcm1lbnUgYSB7IHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9CgouZGFpbHlkb3NlIC5kYWlseWRvc2VfdHJh
aWxlcjEgewogICBwYWRkaW5nOiAyNXB4IDIwcHggNXB4IDIwcHg7Cn0KLmRhaWx5ZG9zZSAu
ZGFpbHlkb3NlX3RyYWlsZXIyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgYm9yZGVyLXRvcDog
c29saWQgYmxhY2sgMXB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZGFpbHlkb3Nl
IC5kYWlseWRvc2VfY29sdW1ucyB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDAg
MTBweCAwIDEwcHg7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgeyBwYWRkaW5nOiAw
IDEwcHggMCAxMHB4OyB9Ci5kYWlseWRvc2UgdGQuZGFpbHlkb3NlX25ld3MgeyB3aWR0aDog
NTAlOyB9CgouZGFpbHlkb3NlIC5kYWlseWRvc2VfbmV3cyBoMiB7CiAgICBiYWNrZ3JvdW5k
LWNvbG9yOiNjM2Q5ZmY7CiAgICBmb250LXNpemU6MTJwdDsKICAgIHBhZGRpbmc6M3B4IDRw
eCAzcHggNnB4OwogICAgbWFyZ2luLXRvcDogMTJwdDsKICAgIG1hcmdpbi1ib3R0b206IDEy
cHQ7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgaDIgaW1nIHsgcGFkZGluZzozcHgg
M3B4IDAgMDsgYm9yZGVyOiAwOyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIGgyIGEg
eyBjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0KCi5kYWlseWRvc2UgLmRh
aWx5ZG9zZV9uZXdzIGltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9uZXdzIHVsIHsgcGFkZGluZy1sZWZ0OiAxZW07IG1hcmdpbjoxZW07
IH0gIAouZGFpbHlkb3NlIC5kYWlseWRvc2VfbmV3cyB1bC5saW5rcyB7IGxpc3Qtc3R5bGUt
aW1hZ2U6IHVybCgnL2RhaWx5ZG9zZS9zcXVhcmUucG5nJyk7IH0KLmRhaWx5ZG9zZSAuZGFp
bHlkb3NlX25ld3MgdWwuZXhwYW5kcyB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnL2RhaWx5
ZG9zZS9wbHVzLnBuZycpOyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIGxpIHsgbWFy
Z2luLWJvdHRvbTozcHQ7IH0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgLmF1dGhvciB7
IGZvbnQtc2l6ZTogOXB0OyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIC5pZHRpdGxl
IHsgY29sb3I6ICMwMDAwZWU7IH0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgLmlkbmFt
ZSB7IGZvbnQtc2l6ZTogOXB0OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5kYWlseWRvc2Ug
LmRhaWx5ZG9zZV9uZXdzIC5mb3JtYXQgewogICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsg
CiAgICBmb250LXNpemU6NzUlOwogICAgcGFkZGluZzogMCAxcHggMCAxcHg7CiAgICB0ZXh0
LWRlY29yYXRpb246IG5vbmU7CiAgICBjb2xvcjogYmxhY2s7Cn0KLmRhaWx5ZG9zZSAuZGFp
bHlkb3NlX25ld3MgZGl2Lm1vcmUgewogICAgdGV4dC1hbGlnbjpyaWdodDsKICAgIG1hcmdp
bi10b3A6LTFlbTsKICAgIG1hcmdpbi1ib3R0b206LTVwdDsKICAgIGZvbnQtc2l6ZTogOHB0
Owp9CgouZGFpbHlkb3NlIGRpdi5pZGRldGFpbHMgewogICAgYm9yZGVyLXRvcDogMXB4IHNv
bGlkIGdyYXk7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBncmF5OwogICAgYm9yZGVy
LWJvdHRvbTogMnB4IHNvbGlkIGdyYXk7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdy
YXk7CiAgICBtYXJnaW4tdG9wOiAwLjVleDsKICAgIG1hcmdpbi1sZWZ0OiAwZXg7CiAgICBt
YXJnaW4tYm90dG9tOiAwLjVleDsKICAgIG1hcmdpbi1yaWdodDogMGV4OwogICAgcGFkZGlu
ZzogMHB4IDFleCAwcHggMWV4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZjYzsKfQou
ZGFpbHlkb3NlIC5pZHRvb2xzIHsgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCBncmF5OyBwYWRk
aW5nLXRvcDogNXB0OyB9Ci5kYWlseWRvc2UgLmlkdG9vbHMgcCB7IG1hcmdpbi10b3A6IDJw
dDsgfQoKLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX2FkIGgzIHsgbWFyZ2luLWJvdHRvbTogMHB0
OyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9hZCBwIHsgbWFyZ2luLXRvcDogMHB0OyB9Cgou
ZGFpbHlkb3NlIC5kYWlseWRvc2Vfd2FybmluZyB7CiAgICBib3JkZXI6IHNvbGlkIGJsYWNr
IDFweDsgCiAgICBwYWRkaW5nOiA0cHggNHB4IDRweCA0cHg7IAogICAgbWFyZ2luLXRvcDog
MTJwdDsgCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmNjOyAgCiAgICBmb250LXdlaWdo
dDpib2xkOyAKICAgIGNvbG9yOiNjMDAwMDA7Cn0KLyogZW5kIG9mIGRhaWx5ZG9zZS9sYXlv
dXRfdjIuY3NzICovCiAKPC9zdHlsZT4KCjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0i
UlNTIiBocmVmPSIvZGFpbHlkb3NlL2RhaWx5ZG9zZV9yc3MueG1sIiB0eXBlPSJhcHBsaWNh
dGlvbi9yc3MreG1sIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkF0b20iIGhy
ZWY9Ii9kYWlseWRvc2UvZGFpbHlkb3NlX2F0b20ueG1sIiB0eXBlPSJhcHBsaWNhdGlvbi9h
dG9tK3htbCIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIgLz4KCjwvaGVhZD4KCjxib2R5Pgo8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CiAgZnVuY3Rpb24gdG9nZ2xlSWREZXRhaWxzKGlkKSB7
CiAgb2JqID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogIGlmIChvYmouc3R5bGUu
ZGlzcGxheSA9PSAnbm9uZScpIHsKICAgIG9iai5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKydiJykuc3R5bGUubGlzdFN0eWxlSW1h
Z2UgPSAidXJsKCdtaW51cy5wbmcnKSI7CiAgfSBlbHNlIHsKICAgIG9iai5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQrJ2InKS5zdHls
ZS5saXN0U3R5bGVJbWFnZSA9ICJ1cmwoJ3BsdXMucG5nJykiOwogIH0KfQo8L3NjcmlwdD4K
CjxkaXYgY2xhc3M9InBhZ2UiPgo8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+Cjx0
cj4KCjwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gCiAgICAgICAgIExFRlQKICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gIC0tPgoKCTwhLS0gTGVmdCBjb2x1bW4gLS0+PCEtLSotIGh0bWwgLSotLT4KCTwhLS0g
R2VuZXJhdGVkIGZyb20gbmFycm93LW1lbnUucHlodCAtLT4KICAgICAgICA8YmxvY2s+Cgk8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgPgoJICAgaWYgKHR5cGVvZiBqUXVlcnkg
PT0gJ3VuZGVmaW5lZCcpIHsgIAoJICAgICAgIC8vIGpRdWVyeSBpcyBub3QgbG9hZGVkID0+
IGxvYWQgaXQ6CgkgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NjcmlwdCcpOwoJICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7Cgkg
ICAgICAgc2NyaXB0LnNyYyA9ICcvdG9vbHMvdHJhYy9odGRvY3MvanMvanF1ZXJ5LmpzJzsK
CSAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLmFwcGVu
ZENoaWxkKHNjcmlwdCk7CgkgICAgICAgalF1ZXJ5Lm5vQ29uZmxpY3QoKTsKCSAgIH0KCTwv
c2NyaXB0PgoKCTxpbWcgaWQ9InNob3ciIHNyYz0iL2ltYWdlcy9zaG93LmdpZiIgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwLjNlbTsgbGVmdDogMCIgb25jbGljaz0nalF1
ZXJ5KCIjbmFycm93X21lbnUiKS5zaG93KCJzbG93Iik7IGpRdWVyeSh0aGlzKS5oaWRlKCk7
IGpRdWVyeSgiI2hpZGUiKS5zaG93KCJzbG93IiknIG9ubG9hZD0nalF1ZXJ5KHRoaXMpLmhp
ZGUoKScvPgoJPHRkIHZhbGlnbj0idG9wIiBjbGFzcz0id2dsaXN0IiBpZD0ibmFycm93X21l
bnUiPgoJICA8dGFibGUgY2xhc3M9Im1lbnV0b3AiPgoJICAgICA8dHI+CgkJPHRkIGNsYXNz
PSJsb2dvbWFyZ2luIj4mbmJzcDs8L3RkPgoJICA8IS0tIC0gaWV0ZiB0b29scyBsb2dvIHdp
dGggbGluayBiYWNrIHRvIHRoZSBpZXRmIHRvb2xzIHNpdGUsICAgLS0+CgkJPHRkIGNsYXNz
PSJsb2dvaW1nIj48YSBocmVmPSIvIj48aW1nIGNsYXNzPSJsb2dvIiBhbHQ9IklFVEYiIHNy
Yz0iL2ltYWdlcy9pZXRmbG9nbzNoLnBuZyIgLz48L2E+PC90ZD4KCQk8dGQgY2xhc3M9Imxv
Z29tYXJnaW4iPjxpbWcgaWQ9ImhpZGUiIHNyYz0iL2ltYWdlcy9oaWRlLmdpZiIgb25jbGlj
az0nalF1ZXJ5KCIjbmFycm93X21lbnUiKS5oaWRlKCJzbG93Iik7IGpRdWVyeSh0aGlzKS5o
aWRlKCk7IGpRdWVyeSgiI3Nob3ciKS5zaG93KCJzbG93IiknIC8+PC90ZD4KCSAgICAgPC90
cj4KCSAgPC90YWJsZT4KCSAgCgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj48YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy8iPklFVEYmbmJzcDtIb21lPC9hPjwvZGl2PgoJICA8ZGl2
IGNsYXNzPSJtZW51aXRlbSI+PGEgaHJlZj0iL2Fib3V0Ij5BYm91dCZuYnNwO1Rvb2xzPC9h
PjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJtZW51aXRlbSI+PGEgaHJlZj0iL3Rvb2xzIj5Ub29s
czo8L2E+CgkgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0gc21hbGwiPgoJCTxhIGhyZWY9Ii9y
ZmNkaWZmIj5kaWZmczwvYT4mbmJzcDs8YSBocmVmPSIvdG9vbHMvaWRzcGVsbC93ZWJzZXJ2
aWNlIj5zcGVsbDwvYT48YnIgLz4KCQk8YSBocmVmPSJodHRwOi8veG1sMnJmYy5pZXRmLm9y
Zy8iPnhtbDJyZmM8L2E+Jm5ic3A7PGEgaHJlZj0iL3Rvb2xzL2lkbml0cyI+aWRuaXRzPC9h
PjxiciAvPgoJCTxhIGhyZWY9Ii90b29scy9pZXRmZGIvYnJvd3Nlci9icmFuY2gvMi4wMC8i
PnRyYWNrZXImbmJzcDtzcmM8L2E+CgkgICAgIDwvZGl2PgoJICA8L2Rpdj4KCSAgPGRpdiBj
bGFzcz0ibWVudWl0ZW0iPjxhIGhyZWY9Ii9kYWlseWRvc2UiPk5ld3M8L2E+PC9kaXY+CgoJ
ICA8IS0tCgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj48YSBocmVmPSJodHRwOi8vd3d3LmFy
a2tvLmNvbS90b29scy9zdGF0cyI+U3RhdHM6PC9hPgoJICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIHNtYWxsIj4KCQk8YSBocmVmPSJodHRwOi8vd3d3LmFya2tvLmNvbS90b29scy9kb2Nz
dGF0cyI+RG9jczwvYT4KCQk8YSBocmVmPSJodHRwOi8vYmV0YS5pYW5hLm9yZy9hYm91dC9w
ZXJmb3JtYW5jZS9pZXRmLXN0YXRpc3RpY3MvIj5JQU5BPC9hPgoJCTxiciAvPgoJCTxhIGhy
ZWY9Imh0dHA6Ly9ydGcuaWV0Zi5vcmcvfmZlbm5lci9pZXNnLyI+TWlzYzwvYT4KCQk8YSBo
cmVmPSJodHRwOi8vd3d3LmFya2tvLmNvbS90b29scy9hZG1lYXN1cmVtZW50cyI+SUVTRzwv
YT4KCSAgICAgPC9kaXY+CgkgIDwvZGl2PgoJICAtLT4KCgkgIDxkaXYgY2xhc3M9Im1lbnVp
dGVtIj48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL25ld2xvZ2luIj5HZXQmbmJz
cDtQYXNzd2Q8L2E+PC9kaXY+CgoJICA8ZGl2IGNsYXNzPSJtZW51aXRlbSI+SUVURi05OToK
CSAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PGEgaHJlZj0iL3Jvb21zIj5Sb29tczwvYT48
L2Rpdj4KCSAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PGEgaHJlZj0iL2FnZW5kYS85OSI+
QWdlbmRhPC9hPjwvZGl2PgoJICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48YSBocmVmPSIv
YWdlbmRhLzk5L2NhbGVuZGFyIj5DYWxlbmRhcjwvYT48L2Rpdj4KCSAgPC9kaXY+CgoJICA8
ZGl2IGNsYXNzPSJ0b3BpdGVtIj48YSBocmVmPSIvaHRtbC8iPkRvY3VtZW50czwvYT48L2Rp
dj4KCSAgPGRpdiBjbGFzcz0idG9waXRlbSI+PGEgaHJlZj0iL3JmYy9pbmRleCI+UkZDczwv
YT48L2Rpdj4KCSAgPGZvcm0gY2xhc3M9Im1lbnVmb3JtIiBhY3Rpb249Ii9odG1sLyIgbmFt
ZT0icmZjZm9ybSIgb25zdWJtaXQ9InJldHVybiBpbnB1dE1hc3NhZ2UoKSIKCQl0aXRsZT0i
RW50ZXIgZG9jdW1lbnQgbnVtYmVyIG9yIG5hbWUgLSByZmMsIGJjcCwgZHJhZnQtLi4uIGV0
Yy4sIGFuZCBoaXQgcmV0dXJuLiI+CgkgIDxkaXYgY2xhc3M9InRvcGl0ZW0iID5Eb2MmbmJz
cDtmZXRjaDo8L2Rpdj4KCSAgPGRpdiBjbGFzcz0ic3ViaXRlbSIgc3R5bGU9Im1hcmdpbjog
MDsiPjxpbnB1dCBjbGFzcz0iZnJ1Z2FsIiB0eXBlPSJ0ZXh0IiBuYW1lPSJkb2MiIC8+PC9k
aXY+CgkgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCSAgICBmdW5jdGlvbiBp
bnB1dE1hc3NhZ2UoKSB7CgkJd2luZG93LmxvY2F0aW9uID0gZG9jdW1lbnQucmZjZm9ybS5h
Y3Rpb24gKyBkb2N1bWVudC5yZmNmb3JtLmRvYy52YWx1ZS5yZXBsYWNlKC9eICovLCcnKS5y
ZXBsYWNlKC8gKiQvLCcnKTsJCXJldHVybiBmYWxzZTsKCSAgICB9CgkgIDwvc2NyaXB0PgoJ
ICA8L2Zvcm0+CgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj5XaWtpczoKCSAgICAgPGRpdiBj
bGFzcz0ic3ViaXRlbSBzbWFsbCI+CgkJPGEgaHJlZj0iL2dyb3VwL2llc2cvdHJhYyI+SUVT
RzwvYT4mbmJzcDs8YSBocmVmPSIvZ3JvdXAvaXJ0Zi90cmFjL3dpa2kiPklSVEY8L2E+PGJy
IC8+CgkJPGEgaHJlZj0iL3Rvb2xzL2lldGZkYi8iIHRpdGxlPSJEYXRhdHJhY2tlciBkZXZl
bG9wbWVudCI+RGV2PC9hPiZuYnNwOzxhIGhyZWY9Ii9ncm91cC9yc29jIj5SU09DPC9hPjxi
ciAvPgoJCTxhIGhyZWY9Ii9ncm91cC93Z2NoYWlycy8iPkNoYWlyczwvYT4mbmJzcDs8YSBo
cmVmPSIvZ3JvdXAvZWR1LyIgdGl0bGU9IlRvb2xzIFRlYW0iPkVkdTwvYT48YnIgLz4KCQk8
YSBocmVmPSIvZ3JvdXAvdG9vbHMvdHJhYy8iIHRpdGxlPSJUb29scyBUZWFtIj5Ub29sczwv
YT4mbmJzcDs8YSBocmVmPSIvYm9mIj5CT0ZzPC9hPgoJICAgICA8L2Rpdj4KCSAgPC9kaXY+
CgkgIDxkaXYgY2xhc3M9InRvcGl0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3Jn
L25vbWNvbS8yMDE3LyI+Tm9tQ29tPC9hPjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJtZW51aXRl
bSI+PGEgaHJlZj0iL2FyZWEiPkFyZWFzPC9hPjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJ0b3Bp
dGVtIj48YSBocmVmPSIvd2ciPldHczwvYT46PC9kaXY+CgkgIDxkaXYgY2xhc3M9InN1Yml0
ZW0gc21hbGwiPjxhIGhyZWY9Ii93Zy9jb25jbHVkZWQiPjxpPmNvbmNsdWRlZCZoZWxsaXA7
PC9pPjwvYT48L2Rpdj4KCgkgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvNmxvLyI+NmxvPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvNm1hbi8iPjZtYW48L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy82dGlzY2gvIj42dGlzY2g8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48
L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9
Ii93Zy9hY2UvIj5BY2U8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy9hY21lLyI+QWNtZTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2
PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dn
L2FsdG8vIj5BbHRvPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
YW5pbWEvIj5BbmltYTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2
PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dn
L2FxbS8iPkFxbTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2Pgog
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2F2
dGNvcmUvIj5BdnRjb3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvYmFiZWwvIj5CYWJlbDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwv
ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0i
L3dnL2Jlc3MvIj5CZXNzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvYmZjcGJpcy8iPkJmY3BiaXM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bh
bj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhy
ZWY9Ii93Zy9iZmQvIj5CZmQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48
L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9
Ii93Zy9iaWVyLyI+QmllcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwv
ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0i
L3dnL2Jtd2cvIj5CbXdnPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvY2FsZXh0LyI+Q2FsZXh0PC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+
PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvY2FwcG9ydC8iPkNhcHBvcnQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy9jYm9yLyI+Q2JvcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL2NjYW1wLyI+Q2NhbXA8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy9jZG5pLyI+Q2RuaTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL2NlbGxhci8iPkNlbGxhcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL2NsdWUvIj5DbHVlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvY29kZWMvIj5Db2RlYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL2NvcmUvIj5Db3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvY3VyZGxlLyI+Q3VyZGxlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvZGNydXAvIj5EY3J1cDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2RldG5ldC8iPkRldG5ldDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2RoYy8iPkRoYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2RpbWUvIj5EaW1lPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvZGlzcGF0Y2gvIj5EaXNwYXRjaDwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL2RtYXJjLyI+RG1hcmM8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9kbW0vIj5EbW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9kbnNvcC8iPkRuc29wPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvZG5zc2QvIj5EbnNzZDwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL2RvaC8iPkRvaDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2RvdHMvIj5Eb3RzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvZHByaXZlLyI+RHByaXZlPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvZHRuLyI+RHRuPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvZWNyaXQvIj5FY3JpdDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2V4dHJhLyI+RXh0cmE8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9ncm93LyI+R3JvdzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2hpcC8iPkhpcDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2hvbWVuZXQvIj5Ib21lbmV0PC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvaHR0cGJpcy8iPkh0dHBiaXM8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pMm5zZi8iPkkybnNmPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvaTJycy8iPkkycnM8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pY2UvIj5JY2U8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pZHIvIj5JZHI8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9pbnNpcGlkLyI+SW5zaXBpZDwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2ludGFyZWEvIj5JbnRhcmVhPC9hPjxzcGFuIGNs
YXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvaXBwbS8iPklwcG08L2E+PHNwYW4gY2xh
c3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i
c3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pcHNlY21lLyI+SXBzZWNtZTwvYT48c3Bh
biBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNs
YXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2lwd2F2ZS8iPklwd2F2ZTwvYT48
c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2lzaXMvIj5Jc2lzPC9hPjxz
cGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvam1hcC8iPkptYXA8L2E+PHNw
YW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBj
bGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9qc29uYmlzLyI+SnNvbmJpczwv
YT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2tpdHRlbi8iPktpdHRl
bjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2wyc20vIj5MMnNt
PC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAg
IDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbDJ0cGV4dC8iPkwy
dHBleHQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9sYW1wcy8i
PkxhbXBzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbGltZS8i
PkxpbWU8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9saXNwLyI+
TGlzcDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2xtYXAvIj5M
bWFwPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbHB3YW4vIj5M
cHdhbjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2x3aWcvIj5M
d2lnPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbWFuZXQvIj5N
YW5ldDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL21ib25lZC8i
Pk1ib25lZDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL21pbGUv
Ij5NaWxlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbW11c2lj
LyI+TW11c2ljPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbW9k
ZXJuLyI+TW9kZXJuPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
bXBscy8iPk1wbHM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4K
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9t
cHRjcC8iPk1wdGNwPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
bXRndmVudWUvIj5NdGd2ZW51ZTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL25ldGNvbmYvIj5OZXRjb25mPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvbmV0bW9kLyI+TmV0bW9kPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvbmV0dmMvIj5OZXR2YzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL25mc3Y0LyI+TmZzdjQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9z
cGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNw
YW4gPjxhIGhyZWY9Ii93Zy9udHAvIj5OdHA8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy9udm8zLyI+TnZvMzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL29hdXRoLyI+T2F1dGg8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy9vcGVucGdwLyI+T3BlbnBncDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL29wc2F3Zy8iPk9wc2F3ZzwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL29wc2VjLyI+T3BzZWM8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9vc3BmLyI+T3NwZjwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL3BhbHMvIj5QYWxzPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvcGF5bG9hZC8iPlBheWxvYWQ8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9wY2UvIj5QY2U8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9wY3AvIj5QY3A8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9wZXJjLyI+UGVyYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL3BpbS8iPlBpbTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL3ByZWNpcy8iPlByZWNpczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL3F1aWMvIj5RdWljPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvcmFkZXh0LyI+UmFkZXh0PC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvcmVnZXh0LyI+UmVnZXh0PC9hPjxzcGFuIGNsYXNzPSJu
ZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0
ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcm1jYXQvIj5SbWNhdDwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3JvbGwvIj5Sb2xsPC9hPjxzcGFuIGNsYXNzPSJu
ZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0
ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcnRjd2ViLyI+UnRjd2ViPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcnRnd2cvIj5SdGd3ZzwvYT48c3BhbiBjbGFz
cz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJz
dWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NhY20vIj5TYWNtPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2F2aS8iPlNhdmk8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zZWNldmVudC8iPlNlY2V2ZW50PC9hPjxzcGFu
IGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xh
c3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2ZjLyI+U2ZjPC9hPjxzcGFuIGNs
YXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2lkci8iPlNpZHI8L2E+PHNwYW4gY2xh
c3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i
c3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zaWRyb3BzLyI+U2lkcm9wczwvYT48c3Bh
biBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNs
YXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NpcGJyYW5keS8iPlNpcGJyYW5k
eTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NpcGNvcmUvIj5T
aXBjb3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2xpbS8i
PlNsaW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zb2Z0d2ly
ZS8iPlNvZnR3aXJlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
c3ByaW5nLyI+U3ByaW5nPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvc3Rpci8iPlN0aXI8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy9zdW5zZXQ0LyI+U3Vuc2V0NDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3RhcHMvIj5UYXBzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+
PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvdGNwaW5jLyI+VGNwaW5jPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3Nw
YW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBo
cmVmPSIvd2cvdGNwbS8iPlRjcG08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bh
bj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhy
ZWY9Ii93Zy90ZWFzLyI+VGVhczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3RpY3RvYy8iPlRpY3RvYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL3Rscy8iPlRsczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3Rva2JpbmQvIj5Ub2tiaW5kPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvdHJhbS8iPlRyYW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy90cmFucy8iPlRyYW5zPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvdHJpbGwvIj5UcmlsbDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL3RzdndnLyI+VHN2d2c8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy91cm5iaXMvIj5Vcm5iaXM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9z
cGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNw
YW4gPjxhIGhyZWY9Ii93Zy91dGEvIj5VdGE8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy92Nm9wcy8iPlY2b3BzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvd2VicHVzaC8iPldlYnB1c2g8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy94cmJsb2NrLyI+WHJibG9jazwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAJPGJyIC8+Cgk8c3BhbiBj
bGFzcz0idXBkYXRlIj4KCSAgPGltZyBzcmM9Jy9pbWFnZXMvYXN0ZXJpc2sucG5nJyBhbHQ9
JyonIC8+IFdHcyBtYXJrZWQgd2l0aCBhbiA8c3BhbiBjbGFzcz0ibmV3Ij48aW1nIHNyYz0n
L2ltYWdlcy9hc3Rlcmlzay5wbmcnIGFsdD0nKicgLz48L3NwYW4+IGFzdGVyaXNrIGhhcyBo
YWQgYXQgbGVhc3Qgb25lIG5ldwoJICBkcmFmdCBtYWRlIGF2YWlsYWJsZSBkdXJpbmcgdGhl
IGxhc3QgNSBkYXlzPC9zcGFuPgoJPC90ZD4KCTwvYmxvY2s+CgoKPCEtLSA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAKICAgICAgICAgVE9QIAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+Cgo8dGQ+Cgo8ZGl2
IGNsYXNzPSJkYWlseWRvc2UiPgo8ZGl2IGNsYXNzPSJkYWlseWRvc2VfYmFubmVyIiBpZD0i
ZGFpbHlkb3NlX2Jhbm5lciI+Cgo8aDE+CjxpbWcgc3JjPSJkYWlseWRvc2VfdGl0bGUucG5n
IiBhbHQ9IlRoZSBEYWlseSBEb3NlIG9mIElFVEYiIHdpZHRoPSI1NjUiIGhlaWdodD0iNzQi
IGlkPSJkYWlseWRvc2VfdGl0bGUiIC8+PC9oMT4KCjxkaXYgY2xhc3M9ImRhaWx5ZG9zZV9z
bG9nYW4iPgomIzgyMjA7QmUgY29uc2VydmF0aXZlIGluIHdoYXQgeW91IHNlbmQgYW5kIGxp
YmVyYWwgaW4gd2hhdCB5b3UgYWNjZXB0JiM4MjIxOwo8L2Rpdj4KCjx0YWJsZSBjbGFzcz0i
ZGFpbHlkb3NlX2Jhbm5lcm1lbnUiPgo8dHI+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0
OyIgd2lkdGg9IjMzJSI+Cgo8YSBocmVmPSIyOTQ3Lmh0bWwiPiZsYXF1bzsgUHJldjwvYT4K
CjwvdGQ+Cjx0ZD5Jc3N1ZSAyOTQ4ICZtZGFzaDsgMjAxNy0xMC0wOTwvdGQ+Cjx0ZCBzdHls
ZT0idGV4dC1hbGlnbjpyaWdodDsiIHdpZHRoPSIzMyUiPgoKPC90ZD4KPC90cj4KPC90YWJs
ZT4KCjwvZGl2Pgo8L2Rpdj4KCjwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gCiAgICAgICAgIEJPRFkg
VEFCTEUKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgoKPGRpdiBjbGFzcz0iZGFpbHlkb3NlIj4K
Cjx0YWJsZSBjbGFzcz0iZGFpbHlkb3NlX2NvbHVtbnMiIGlkPSJkYWlseWRvc2VfY29scyI+
Cjx0cj4KPHRkIGNsYXNzPSJkYWlseWRvc2VfbmV3cyIgaWQ9ImRhaWx5ZG9zZV9jb2wxIj4K
CgoKPCEtLSBEQUlMWSBDT05URU5UIEJFR0lOUyAtLT4KPCEtLSBEQVRFPTIwMTctMTAtMDkg
MTUwNzI2NjAyOSAxNTA3NTI1MjUzIC0tPgo8IS0tIExBWU9VVD1WMiAtLT4KPGgyPklFVEYt
QW5ub3VuY2UgTGlzdDwvaDI+CjxkaXYgY2xhc3M9Im1vcmUiPjxhIGhyZWY9Imh0dHBzOi8v
d3d3LmlldGYub3JnL21haWwtYXJjaGl2ZS93ZWIvaWV0Zi1hbm5vdW5jZS8iPm1vcmUgbWVz
c2FnZXMgJnJhcXVvOzwvYT48L2Rpdj4KCjxoMj48YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL2h0bWwvbmV3LXJmY3MucnNzIj48aW1nIHNyYz0iZmVlZGljb24xNi5wbmciIHN0
eWxlPSJmbG9hdDpyaWdodDsiIGFsdD0iW0ZlZWRdIiAvPjwvYT4gTmV3IFJGQ3M8L2gyPgo8
ZGl2IGNsYXNzPSJtb3JlIj48YSBocmVmPSJodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL25l
d19yZmNzLmh0bWwiPm1vcmUgcmVjZW50IFJGQ3MgJnJhcXVvOzwvYT48L2Rpdj4KCjxoMj5O
ZXcgYW5kIFJldml2ZWQgRHJhZnRzPC9oMj4KCjx1bCBjbGFzcz0iZXhwYW5kcyI+CiAgPGxp
IG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDAnKSIgaWQ9ImlkMGIi
PjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5JS0V2MiBOb3RpZmljYXRpb24gQ29kZXMgZm9yIElQ
djQvSVB2NiBDb2V4aXN0ZW5jZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0
LWJvdWNhZGFpci1pcHNlY21lLWlwdjYtaXB2NC1jb2Rlcyk8L3NwYW4+CjxkaXYgaWQ9Imlk
MCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBNb2hh
bWVkIEJvdWNhZGFpciwgICAyMDE3LTEwLTA2ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3
dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWJvdWNhZGFpci1pcHNlY21lLWlwdjYtaXB2
NC1jb2Rlcy0wMC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWJvdWNhZGFpci1pcHNlY21lLWlwdjYtaXB2
NC1jb2Rlcy0wMC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1ib3VjYWRhaXItaXBzZWNtZS1pcHY2LWlw
djQtY29kZXMtMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFj
dDogVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgbmV3IElLRXYyIG5vdGlmaWNhdGlvbiBjb2Rl
cyB0byBiZXR0ZXIgbWFuYWdlIElQdjQgYW5kIElQdjYgY28tZXhpc3RlbmNlLjwvcD4KPC9k
aXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygn
aWQxJykiIGlkPSJpZDFiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+U2VnbWVudCBSb3V0aW5n
IGZvciBTZXJ2aWNlIENoYWluaW5nPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJh
ZnQtY2xhZC1zcHJpbmctc2VnbWVudC1yb3V0aW5nLXNlcnZpY2UtY2hhaW5pbmcpPC9zcGFu
Pgo8ZGl2IGlkPSJpZDEiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
Pgo8cD5CeSAgRnJhbmNvaXMgQ2xhZCwgQ2xhcmVuY2UgRmlsc2ZpbHMsICAgUGFibG8gQ2Ft
YXJpbGxvLCBkYW5pZWwuYmVybmllckBiZWxsLmNhLCBCcnVubyBEZWNyYWVuZSwgQmFydCBQ
ZWlyZW5zLCAgIENoYWl0YW55YSBZYWRsYXBhbGxpLCBYaWFvaHUgWHUsIFN0ZWZhbm8gU2Fs
c2FubywgQWhtZWQgQWJkZWxzYWxhbSwgR2F1cmF2ICAgRGF3cmEsIDIwMTctMTAtMDYgJm5i
c3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtY2xh
ZC1zcHJpbmctc2VnbWVudC1yb3V0aW5nLXNlcnZpY2UtY2hhaW5pbmctMDAudHh0IiBjbGFz
cz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC1jbGFkLXNwcmluZy1zZWdtZW50LXJvdXRpbmctc2VydmljZS1jaGFpbmluZy0w
MC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3BkZi9kcmFmdC1jbGFkLXNwcmluZy1zZWdtZW50LXJvdXRpbmctc2Vydmlj
ZS1jaGFpbmluZy0wMC5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3Ry
YWN0OiBUaGlzIGRvY3VtZW50IGRlZmluZXMgZGF0YSBwbGFuZSBmdW5jdGlvbmFsaXR5IHJl
cXVpcmVkIHRvIGltcGxlbWVudCBzZXJ2aWNlIHNlZ21lbnRzIGFuZCBhY2hpZXZlIHNlcnZp
Y2UgY2hhaW5pbmcgd2l0aCBNUExTIGFuZCBJUHY2LCBhcyBkZXNjcmliZWQgaW4gdGhlIFNl
Z21lbnQgUm91dGluZyBhcmNoaXRlY3R1cmUuPC9wPgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9u
Y2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDInKSIgaWQ9ImlkMmIiPjxz
cGFuIGNsYXNzPSJpZHRpdGxlIj5KQkNEIENvbnRhaW5lcjwvc3Bhbj4gPHNwYW4gY2xhc3M9
ImlkbmFtZSI+KGRyYWZ0LWhhbGxhbWJha2VyLWpiY2QtY29udGFpbmVyKTwvc3Bhbj4KPGRp
diBpZD0iaWQyIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+
QnkgIFBoaWxsaXAgSGFsbGFtLUJha2VyLCAyMDE3LTEwLTA3ICZuYnNwOyA8YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWhhbGxhbWJha2VyLWpiY2Qt
Y29udGFpbmVyLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGFsbGFtYmFrZXItamJjZC1jb250YWlu
ZXItMDAuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaGFsbGFtYmFrZXItamJjZC1jb250YWluZXItMDAu
cGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1
bWVudCBpcyBhbHNvIGF2YWlsYWJsZSBvbmxpbmUgYXQgaHR0cDovL3ByaXNtcHJvb2Yub3Jn
L0RvY3VtZW50cy9kcmFmdC1oYWxsYW1iYWtlci1qYmNkLWNvbnRhaW5lci5odG1sIFsxXSAu
PC9wPgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWRE
ZXRhaWxzKCdpZDMnKSIgaWQ9ImlkM2IiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5KU09OIEtl
eSBFeGNoYW5nZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWhhbGxhbWJh
a2VyLWpzb24ta2V5LWV4Y2hhbmdlKTwvc3Bhbj4KPGRpdiBpZD0iaWQzIiBjbGFzcz0iaWRk
ZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFBoaWxsaXAgSGFsbGFtLUJh
a2VyLCAyMDE3LTEwLTA4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9h
cmNoaXZlL2lkL2RyYWZ0LWhhbGxhbWJha2VyLWpzb24ta2V5LWV4Y2hhbmdlLTAxLnR4dCIg
Y2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvZHJhZnQtaGFsbGFtYmFrZXItanNvbi1rZXktZXhjaGFuZ2UtMDEuaHRtbCIgY2xh
c3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9w
ZGYvZHJhZnQtaGFsbGFtYmFrZXItanNvbi1rZXktZXhjaGFuZ2UtMDEucGRmIiBjbGFzcz0i
Zm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhlIEpTT04gS2V5IEV4Y2hhbmdl
PC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaWQvZHJhZnQtaGFsbGFtYmFrZXItanNvbi1rZXktZXhjaGFuZ2UtMDAudHh0
JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaGFsbGFtYmFrZXIt
anNvbi1rZXktZXhjaGFuZ2UtMDEudHh0Ij5EaWZmIGZyb20gMDAgdG8gMDEgJnJhcXVvOzwv
YT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZh
c2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQ0JykiIGlkPSJpZDRiIj48c3BhbiBjbGFzcz0i
aWR0aXRsZSI+RUNNQVNjcmlwdCBNZWRpYSBUeXBlcyBVcGRhdGVzPC9zcGFuPiA8c3BhbiBj
bGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1kaXNwYXRjaC1qYXZhc2NyaXB0LW1qcyk8L3Nw
YW4+CjxkaXYgaWQ9ImlkNCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9u
ZSI+CjxwPkJ5ICBCcmFkbGV5IEZhcmlhcywgTWF0dGhldyBNaWxsZXIsICAgMjAxNy0xMC0w
OCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFm
dC1pZXRmLWRpc3BhdGNoLWphdmFzY3JpcHQtbWpzLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+
VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi1kaXNwYXRjaC1qYXZhc2NyaXB0LW1qcy0wMC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1M
PC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWRp
c3BhdGNoLWphdmFzY3JpcHQtbWpzLTAwLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwv
cD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQgcHJvcG9zZXMgdXBkYXRlcyB0byB0aGUg
RUNNQVNjcmlwdCBtZWRpYSB0eXBlcywgc3VwZXJzZWRpbmcgdGhlIGV4aXN0aW5nIHJlZ2lz
dHJhdGlvbnMgZm9yICZxdW90O2FwcGxpY2F0aW9uL2phdmFzY3JpcHQmcXVvdDsgYW5kICZx
dW90O3RleHQvamF2YXNjcmlwdCZxdW90OyBieSBhZGRpbmcgYW4gYWRkaXRpb25hbCBleHRl
bnNpb24gYW5kIHJlbW92aW5nIHVzYWdlIHdhcm5pbmdzLiBUaGlzIGRvY3VtZW50IHVwZGF0
ZXMgUkZDNDMyOSwgJnF1b3Q7U2NyaXB0aW5nIE1lZGlhIFR5cGVzJnF1b3Q7LjwvcD4KPGRp
diBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
d2cvZGlzcGF0Y2gvZHJhZnQtaWV0Zi1kaXNwYXRjaC1qYXZhc2NyaXB0LW1qcyI+RG9jdW1l
bnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL3dnL2Rpc3BhdGNoLyI+RElTUEFUQ0ggV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9w
Pgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2ds
ZUlkRGV0YWlscygnaWQ1JykiIGlkPSJpZDViIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+VFJJ
TEw6IFBhcmVudCBub2RlIFNoaWZ0cyBpbiBUcmVlIENvbnN0cnVjdGlvbiwgTWl0aWdhdGlv
bi48L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLXRyaWxsLXBhcmVu
dC1zZWxlY3Rpb24pPC9zcGFuPgo8ZGl2IGlkPSJpZDUiIGNsYXNzPSJpZGRldGFpbHMiIHN0
eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgUi4gICBQYXJhbWVzd2FyYW4sIDIwMTctMTAt
MDYgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJh
ZnQtaWV0Zi10cmlsbC1wYXJlbnQtc2VsZWN0aW9uLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+
VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi10cmlsbC1wYXJlbnQtc2VsZWN0aW9uLTAwLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8
L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtdHJp
bGwtcGFyZW50LXNlbGVjdGlvbi0wMC5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+
CjxwPkFic3RyYWN0OiBUaGlzIGRyYWZ0IGRvY3VtZW50cyBhIGtub3duIHByb2JsZW0gaW4g
dGhlIFRSSUxMIHRyZWUgY29uc3RydWN0aW9uIG1lY2hhbmlzbSBhbmQgb2ZmZXJzIGFuIGFw
cHJvYWNoIHJlcXVpcmluZyBubyBjaGFuZ2UgdG8gdGhlIFRSSUxMIHByb3RvY29sIGluIG9y
ZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+Cjxw
PjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvdHJpbGwvZHJhZnQtaWV0Zi10
cmlsbC1wYXJlbnQtc2VsZWN0aW9uIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+PGJy
IC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvdHJpbGwvIj5UUklMTCBX
RyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9u
Y2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDYnKSIgaWQ9ImlkNmIiPjxz
cGFuIGNsYXNzPSJpZHRpdGxlIj5EZWxheWVkIGFja25vd2xlZGdlbWVudCB0cmFuc21pc3Np
b24gdGltZSBjb25zaWRlcmF0aW9uIGluIFFVSUM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5h
bWUiPihkcmFmdC1qYWVod29vbi1xdWljLWRlbGF5ZWQtYWNrKTwvc3Bhbj4KPGRpdiBpZD0i
aWQ2IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEph
ZWh3b29uICAgTGVlLCBZb3VuZy1IYW4gS2ltLCAyMDE3LTEwLTA3ICZuYnNwOyA8YSBocmVm
PSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWphZWh3b29uLXF1aWMt
ZGVsYXllZC1hY2stMDAudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1qYWVod29vbi1xdWljLWRlbGF5ZWQt
YWNrLTAwLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWphZWh3b29uLXF1aWMtZGVsYXllZC1hY2stMDAu
cGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkcmFm
dCBkZWZpbmVzIGEgZnJhbWUgdHlwZSBjYWxsZWQgZGVsYXllZCBhY2sgdGltZXIuIFBhY2tl
dCB0cmFuc21pc3Npb24gdGltZSBhbmQgcmV0cmFuc21pc3Npb24gdGltZS1vdXQgKFJUTykg
dGltZXIgc2V0dXAgdmFsdWUgYXJlIGluY2x1ZGVkIGluIHRoZSBmcmFtZS4gVGhlIHNlbmRl
ciBjYW4gc2VuZCB0aGUgZnJhbWUgd2l0aCB0aGUgbm9uIHJlYWwtdGltZSBzdHJlYW0gZnJh
bWUgd2l0aGluIGFuIHBhY2tldC48L3A+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0i
amF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkNycpIiBpZD0iaWQ3YiI+PHNwYW4gY2xh
c3M9ImlkdGl0bGUiPklETkEgVXBkYXRlIGZvciBVbmljb2RlIDcuMCBhbmQgTGF0ZXIgVmVy
c2lvbnM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1rbGVuc2luLWlkbmEt
NTg5MnVwZC11bmljb2RlNzApPC9zcGFuPgo8ZGl2IGlkPSJpZDciIGNsYXNzPSJpZGRldGFp
bHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgSm9obiBLbGVuc2luLCBQYXRyaWsg
ICBGYWx0c3Ryb20sIDIwMTctMTAtMDggJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL2FyY2hpdmUvaWQvZHJhZnQta2xlbnNpbi1pZG5hLTU4OTJ1cGQtdW5pY29kZTcw
LTA1LnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL2h0bWwvZHJhZnQta2xlbnNpbi1pZG5hLTU4OTJ1cGQtdW5pY29kZTcwLTA1
Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvcGRmL2RyYWZ0LWtsZW5zaW4taWRuYS01ODkydXBkLXVuaWNvZGU3MC0wNS5w
ZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGUgY3VycmVu
dCB2ZXJzaW9uIG9mIHRoZSBJRE5BIHNwZWNpZmljYXRpb25zIGFudGljaXBhdGVkIHRoYXQg
ZWFjaCBuZXcgdmVyc2lvbiBvZiBVbmljb2RlIHdvdWxkIGJlIHJldmlld2VkIHRvIHZlcmlm
eSB0aGF0IG5vIGNoYW5nZXMgaGFkIGJlZW4gaW50cm9kdWNlZCB0aGF0IHJlcXVpcmVkIGFk
anVzdG1lbnRzIHRvIHRoZSBzZXQgb2YgcnVsZXMgYW5kLCBpbiBwYXJ0aWN1bGFyLCB3aGV0
aGVyIG5ldyBleGNlcHRpb25zIG9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYWRqdXN0bWVu
dHMgd2VyZSBuZWVkZWQuIFRoZSByZXZpZXcgZm9yIFVuaWNvZGUgNy4wLjAgZmlyc3QgaWRl
bnRpZmllZCBhIHBvdGVudGlhbGx5IHByb2JsZW1hdGljIG5ldyBjb2RlIHBvaW50IGFuZCB0
aGVuIGEgbXVjaCBtb3JlIGdlbmVyYWwgYW5kIGRpZmZpY3VsdCBpc3N1ZSB3aXRoIFVuaWNv
ZGUgbm9ybWFsaXphdGlvbi4gVGhpcyBzcGVjaWZpY2F0aW9uIGRpc2N1c3NlcyB0aG9zZSBp
c3N1ZXMgYW5kIHByb3Bvc2VzIHVwZGF0ZXMgdG8gSUROQSBhbmQsIHBvdGVudGlhbGx5LCB0
aGUgd2F5IHRoZSBJRVRGIGhhbmRsZXMgY29tcGFyaXNvbiBvZiBpZGVudGlmaWVycyBtb3Jl
IGdlbmVyYWxseSwgZXNwZWNpYWxseSB3aGVuIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgbGFu
Z3VhZ2Ugb3IgbGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24uIEl0IGFsc28gYXBwbGllcyBhbiBl
ZGl0b3JpYWwgY2xhcmlmaWNhdGlvbiB0byBSRkMgNTg5MiB0aGF0IHdhcyB0aGUgc3ViamVj
dCBvZiBhbiBlYXJsaWVyIGVycmF0dW0gYW5kIHVwZGF0ZXMgUkZDIDU4OTQgdG8gcG9pbnQg
dG8gdGhlIGlzc3VlcyBpbnZvbHZlZC48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5w
eWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1rbGVuc2luLWlkbmEt
NTg5MnVwZC11bmljb2RlNzAtMDQudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvaWQvZHJhZnQta2xlbnNpbi1pZG5hLTU4OTJ1cGQtdW5pY29kZTcwLTA1LnR4dCI+RGlm
ZiBmcm9tIDA0IHRvIDA1ICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8
L2xpPgoKPC91bD4KCjxoMj5VcGRhdGVkIERyYWZ0czwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFu
ZHMiPgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQ4Jyki
IGlkPSJpZDhiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+QSBZQU5HIERhdGEgTW9kZWwgZm9y
IFJvdXRpbmcgTWFuYWdlbWVudCAoTkRNQSBWZXJzaW9uKTwvc3Bhbj4gPHNwYW4gY2xhc3M9
ImlkbmFtZSI+KGRyYWZ0LWFjZWUtbmV0bW9kLXJmYzgwMjJiaXMpPC9zcGFuPgo8ZGl2IGlk
PSJpZDgiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAg
TGFkaXNsYXYgTGhvdGthLCAgIEFjZWUgTGluZGVtLCBZaW5nemhlbiBRdSwgMjAxNy0xMC0w
NiAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFm
dC1hY2VlLW5ldG1vZC1yZmM4MDIyYmlzLTAzLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9h
PiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWNlZS1uZXRt
b2QtcmZjODAyMmJpcy0wMy5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVm
PSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1hY2VlLW5ldG1vZC1yZmM4MDIy
YmlzLTAzLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRo
aXMgZG9jdW1lbnQgY29udGFpbnMgYSBzcGVjaWZpY2F0aW9uIG9mIHRocmVlIFlBTkcgbW9k
dWxlcyBhbmQgb25lIHN1Ym1vZHVsZS4gVG9nZXRoZXIgdGhleSBmb3JtIHRoZSBjb3JlIHJv
dXRpbmcgZGF0YSBtb2RlbCB0aGF0IHNlcnZlcyBhcyBhIGZyYW1ld29yayBmb3IgY29uZmln
dXJpbmcgYW5kIG1hbmFnaW5nIGEgcm91dGluZyBzdWJzeXN0ZW0uIEl0IGlzIGV4cGVjdGVk
IHRoYXQgdGhlc2UgbW9kdWxlcyB3aWxsIGJlIGF1Z21lbnRlZCBieSBhZGRpdGlvbmFsIFlB
TkcgbW9kdWxlcyBkZWZpbmluZyBkYXRhIG1vZGVscyBmb3IgY29udHJvbC1wbGFuZSBwcm90
b2NvbHMsIHJvdXRlIGZpbHRlcnMsIGFuZCBvdGhlciBmdW5jdGlvbnMuIFRoZSBjb3JlIHJv
dXRpbmcgZGF0YSBtb2RlbCBwcm92aWRlcyBjb21tb24gYnVpbGRpbmcgYmxvY2tzIGZvciBz
dWNoIGV4dGVuc2lvbnMgLS0gcm91dGVzLCBSb3V0aW5nIEluZm9ybWF0aW9uIEJhc2VzIChS
SUJzKSwgYW5kIGNvbnRyb2wtcGxhbmUgcHJvdG9jb2xzLjwvcD4KPGRpdiBjbGFzcz0iaWR0
b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZjZGlm
Zi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWFj
ZWUtbmV0bW9kLXJmYzgwMjJiaXMtMDIudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaWQvZHJhZnQtYWNlZS1uZXRtb2QtcmZjODAyMmJpcy0wMy50eHQiPkRpZmYgZnJv
bSAwMiB0byAwMyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4K
CiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDknKSIgaWQ9
ImlkOWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5SSUIgWUFORyBEYXRhIE1vZGVsPC9zcGFu
PiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtYWNlZS1ydGd3Zy15YW5nLXJpYi1leHRl
bmQpPC9zcGFuPgo8ZGl2IGlkPSJpZDkiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNw
bGF5Om5vbmUiPgo8cD5CeSAgQWNlZSBMaW5kZW0sIFlpbmd6aGVuIFF1LCAyMDE3LTEwLTA3
ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0
LWFjZWUtcnRnd2cteWFuZy1yaWItZXh0ZW5kLTA0LnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhU
PC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWNlZS1y
dGd3Zy15YW5nLXJpYi1leHRlbmQtMDQuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4g
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtYWNlZS1ydGd3Zy15
YW5nLXJpYi1leHRlbmQtMDQucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5B
YnN0cmFjdDogVGhlIFJvdXRpbmcgSW5mb3JtYXRpb24gQmFzZSAoUklCKSBpcyBhIGxpc3Qg
b2Ygcm91dGVzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIGFkbWluaXN0cmF0aXZlIGRhdGEg
YW5kIG9wZXJhdGlvbmFsIHN0YXRlLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5
aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWFjZWUtcnRnd2cteWFu
Zy1yaWItZXh0ZW5kLTAzLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lk
L2RyYWZ0LWFjZWUtcnRnd2cteWFuZy1yaWItZXh0ZW5kLTA0LnR4dCI+RGlmZiBmcm9tIDAz
IHRvIDA0ICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8
bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTAnKSIgaWQ9Imlk
MTBiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+RE9BIG92ZXIgRE5TPC9zcGFuPiA8c3BhbiBj
bGFzcz0iaWRuYW1lIj4oZHJhZnQtZHVyYW5kLWRvYS1vdmVyLWRucyk8L3NwYW4+CjxkaXYg
aWQ9ImlkMTAiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5C
eSAgQWxhaW4gRHVyYW5kLCBSYXkgQmVsbGlzLCAyMDE3LTEwLTA2ICZuYnNwOyA8YSBocmVm
PSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWR1cmFuZC1kb2Etb3Zl
ci1kbnMtMDMudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1kdXJhbmQtZG9hLW92ZXItZG5zLTAzLmh0bWwi
IGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvcGRmL2RyYWZ0LWR1cmFuZC1kb2Etb3Zlci1kbnMtMDMucGRmIiBjbGFzcz0iZm9ybWF0
Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogQWJzdHJhY3Q8L3A+CjxkaXYgY2xhc3M9Imlk
dG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2Rp
ZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1k
dXJhbmQtZG9hLW92ZXItZG5zLTAyLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYu
b3JnL2lkL2RyYWZ0LWR1cmFuZC1kb2Etb3Zlci1kbnMtMDMudHh0Ij5EaWZmIGZyb20gMDIg
dG8gMDMgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxs
aSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQxMScpIiBpZD0iaWQx
MWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5FZ3Jlc3MgUGVlciBFbmdpbmVlcmluZyB1c2lu
ZyBCR1AtTFU8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1ncmVkbGVyLWlk
ci1iZ3BsdS1lcGUpPC9zcGFuPgo8ZGl2IGlkPSJpZDExIiBjbGFzcz0iaWRkZXRhaWxzIiBz
dHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEhhbm5lcyBHcmVkbGVyLCBLYWxpcmFqICAg
VmFpcmF2YWtrYWxhaSwgQ2hhbmRyYXNla2FyIFIsIEJhbGFqaSBSYWphZ29wYWxhbiwgRWJi
ZW4gQXJpZXMsIEx1eXVhbiAgIEZhbmcsIDIwMTctMTAtMDYgJm5ic3A7IDxhIGhyZWY9Imh0
dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtZ3JlZGxlci1pZHItYmdwbHUt
ZXBlLTExLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtZ3JlZGxlci1pZHItYmdwbHUtZXBlLTExLmh0bWwi
IGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvcGRmL2RyYWZ0LWdyZWRsZXItaWRyLWJncGx1LWVwZS0xMS5wZGYiIGNsYXNzPSJmb3Jt
YXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGUgTVBMUyBzb3VyY2Ugcm91dGluZyBw
YXJhZGlnbSBwcm92aWRlcyBwYXRoIGNvbnRyb2wgZm9yIGJvdGggaW50cmEtIGFuZCBpbnRl
ci0gQXV0b25vbW91cyBTeXN0ZW0gKEFTKSB0cmFmZmljLiBSU1ZQLVRFIGlzIHV0aWxpemVk
IGZvciBpbnRyYS1BUyBwYXRoIGNvbnRyb2wuIFRoaXMgZG9jdW1lbnRzIG91dGxpbmVzIGhv
dyBNUExTIHJvdXRlcnMgbWF5IHVzZSB0aGUgQkdQIGxhYmVsZWQgdW5pY2FzdCBwcm90b2Nv
bCAoQkdQLUxVKSBmb3IgZG9pbmcgdHJhZmZpYy1lbmdpbmVlcmluZyBvbiBpbnRlci1BUyBs
aW5rcy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90
b29scy5pZXRmLm9yZy9pZC9kcmFmdC1ncmVkbGVyLWlkci1iZ3BsdS1lcGUtMTAudHh0JmFt
cDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtZ3JlZGxlci1pZHItYmdw
bHUtZXBlLTExLnR4dCI+RGlmZiBmcm9tIDEwIHRvIDExICZyYXF1bzs8L2E+PGJyIC8+Cjwv
cD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dn
bGVJZERldGFpbHMoJ2lkMTInKSIgaWQ9ImlkMTJiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+
VW5pZm9ybSBEYXRhIEZpbmdlcnByaW50IChVREYpPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRu
YW1lIj4oZHJhZnQtaGFsbGFtYmFrZXItdWRmKTwvc3Bhbj4KPGRpdiBpZD0iaWQxMiIgY2xh
c3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBQaGlsbGlwIEhh
bGxhbS1CYWtlciwgMjAxNy0xMC0wNyAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0
Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1oYWxsYW1iYWtlci11ZGYtMDgudHh0IiBjbGFzcz0i
Zm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1oYWxsYW1iYWtlci11ZGYtMDguaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4g
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaGFsbGFtYmFrZXIt
dWRmLTA4LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRo
aXMgZG9jdW1lbnQgZGVzY3JpYmVzIG1lYW5zIG9mIGdlbmVyYXRpbmcgVW5pZm9ybSBEYXRh
IEZpbmdlcnByaW50IChVREYpIHZhbHVlcyBhbmQgdGhlaXIgcHJlc2VudGF0aW9uIGFzIHRl
eHQgc2VxdWVuY2VzIGFuZCBhcyBVUklzLiBVc2VzIG9mIFVERiBmaW5nZXJwcmludHMgaW5j
bHVkZSBidXQgYXJlIG5vdCBsaW1pdGVkIHRvIGNyZWF0aW5nIFN0cm9uZyBJbnRlcm5ldCBO
YW1lcyAoU0lOcykuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaGFsbGFtYmFrZXItdWRmLTA3LnR4dCZh
bXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWhhbGxhbWJha2VyLXVk
Zi0wOC50eHQiPkRpZmYgZnJvbSAwNyB0byAwOCAmcmFxdW87PC9hPjxiciAvPgo8L3A+Cjwv
ZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWRE
ZXRhaWxzKCdpZDEzJykiIGlkPSJpZDEzYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPkEgU2Vu
dGluZWwgZm9yIERldGVjdGluZyBUcnVzdGVkIEtleXMgaW4gRE5TU0VDPC9zcGFuPiA8c3Bh
biBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaHVzdG9uLWtza3JvbGwtc2VudGluZWwpPC9zcGFu
Pgo8ZGl2IGlkPSJpZDEzIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25l
Ij4KPHA+QnkgIEdlb2ZmIEh1c3RvbiwgSm9hbyAgIERhbWFzLCBXYXJyZW4gS3VtYXJpLCAy
MDE3LTEwLTA4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZl
L2lkL2RyYWZ0LWh1c3Rvbi1rc2tyb2xsLXNlbnRpbmVsLTAxLnR4dCIgY2xhc3M9ImZvcm1h
dCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQt
aHVzdG9uLWtza3JvbGwtc2VudGluZWwtMDEuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwv
YT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaHVzdG9uLWtz
a3JvbGwtc2VudGluZWwtMDEucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5B
YnN0cmFjdDogVGhlIEROUyBTZWN1cml0eSBFeHRlbnNpb25zIChETlNTRUMpIHdlcmUgZGV2
ZWxvcGVkIHRvIHByb3ZpZGUgb3JpZ2luIGF1dGhlbnRpY2F0aW9uIGFuZCBpbnRlZ3JpdHkg
cHJvdGVjdGlvbiBmb3IgRE5TIGRhdGEgYnkgdXNpbmcgZGlnaXRhbCBzaWduYXR1cmVzLiBU
aGVzZSBkaWdpdGFsIHNpZ25hdHVyZXMgY2FuIGJlIHZlcmlmaWVkIGJ5IGJ1aWxkaW5nIGEg
Y2hhaW4gb2YgdHJ1c3Qgc3RhcnRpbmcgZnJvbSBhIHRydXN0IGFuY2hvciBhbmQgcHJvY2Vl
ZGluZyBkb3duIHRvIGEgcGFydGljdWxhciBub2RlIGluIHRoZSBETlMuIFRoaXMgZG9jdW1l
bnQgc3BlY2lmaWVzIGEgbWVjaGFuaXNtIHRoYXQgd2lsbCBhbGxvdyBhbiBlbmQgdXNlciB0
byBkZXRlcm1pbmUgdGhlIHRydXN0ZWQga2V5IHN0YXRlIG9mIHRoZSByZXNvbHZlcnMgdGhh
dCBoYW5kbGUgdGhlIHVzZXImIzM5O3MgRE5TIHF1ZXJpZXMuPC9wPgo8ZGl2IGNsYXNzPSJp
ZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy90b29scy9yZmNk
aWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQt
aHVzdG9uLWtza3JvbGwtc2VudGluZWwtMDAudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaWQvZHJhZnQtaHVzdG9uLWtza3JvbGwtc2VudGluZWwtMDEudHh0Ij5EaWZm
IGZyb20gMDAgdG8gMDEgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+Cjwv
bGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQxNCcp
IiBpZD0iaWQxNGIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5DTFVFIHByb3RvY29sPC9zcGFu
PiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1jbHVlLXByb3RvY29sKTwvc3Bh
bj4KPGRpdiBpZD0iaWQxNCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9u
ZSI+CjxwPkJ5ICBSb2JlcnRhIFByZXN0YSwgU2ltb24gUm9tYW5vLCAyMDE3LTEwLTA2ICZu
YnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWll
dGYtY2x1ZS1wcm90b2NvbC0xNC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtY2x1ZS1wcm90b2Nv
bC0xNC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWNsdWUtcHJvdG9jb2wtMTQucGRmIiBjbGFz
cz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhlIENMVUUgcHJvdG9jb2wg
aXMgYW4gYXBwbGljYXRpb24gcHJvdG9jb2wgY29uY2VpdmVkIGZvciB0aGUgZGVzY3JpcHRp
b24gYW5kIG5lZ290aWF0aW9uIG9mIGEgdGVsZXByZXNlbmNlIHNlc3Npb24uIFRoZSBkZXNp
Z24gb2YgdGhlIENMVUUgcHJvdG9jb2wgdGFrZXMgaW50byBhY2NvdW50IHRoZSByZXF1aXJl
bWVudHMgYW5kIHRoZSBmcmFtZXdvcmsgZGVmaW5lZCB3aXRoaW4gdGhlIElFVEYgQ0xVRSB3
b3JraW5nIGdyb3VwLiBBIGNvbXBhbmlvbiBkb2N1bWVudCBkZWx2ZXMgaW50byBDTFVFIHNp
Z25hbGluZyBkZXRhaWxzLCBhcyB3ZWxsIGFzIG9uIHRoZSBTSVAvIFNEUCBzZXNzaW9uIGVz
dGFibGlzaG1lbnQgcGhhc2UuIENMVUUgbWVzc2FnZXMgZmxvdyBvdmVyIHRoZSBDTFVFIGRh
dGEgY2hhbm5lbCwgYmFzZWQgb24gcmVsaWFibGUgYW5kIG9yZGVyZWQgU0NUUCBvdmVyIERU
TFMgdHJhbnNwb3J0LiBNZXNzYWdlIGRldGFpbHMsIHRvZ2V0aGVyIHdpdGggdGhlIGJlaGF2
aW9yIG9mIENMVUUgUGFydGljaXBhbnRzIGFjdGluZyBhcyBNZWRpYSBQcm92aWRlcnMgYW5k
L29yIE1lZGlhIENvbnN1bWVycywgYXJlIGhlcmVpbiBkaXNjdXNzZWQuPC9wPgo8ZGl2IGNs
YXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy90b29s
cy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQv
ZHJhZnQtaWV0Zi1jbHVlLXByb3RvY29sLTEzLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xz
LmlldGYub3JnL2lkL2RyYWZ0LWlldGYtY2x1ZS1wcm90b2NvbC0xNC50eHQiPkRpZmYgZnJv
bSAxMyB0byAxNCAmcmFxdW87PC9hPjxiciAvPgpTdGF0ZTogQUQgRXZhbHVhdGlvbjo6QUQg
Rm9sbG93dXA8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9p
ZHRyYWNrZXIvZHJhZnQtaWV0Zi1jbHVlLXByb3RvY29sLyI+SUQgVHJhY2tlciAmcmFxdW87
PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVl
ZC9jb21tZW50cy9kcmFmdC1pZXRmLWNsdWUtcHJvdG9jb2wvIiBjbGFzcz0iZm9ybWF0Ij5B
VE9NPC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL2NsdWUv
ZHJhZnQtaWV0Zi1jbHVlLXByb3RvY29sIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+
PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvY2x1ZS8iPkNMVUUg
V0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBv
bmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQxNScpIiBpZD0iaWQxNWIi
PjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5Vc2Ugb2YgUlNBIEtleXMgd2l0aCBTSEEtMiAyNTYg
YW5kIDUxMiBpbiBTZWN1cmUgU2hlbGwgKFNTSCk8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5h
bWUiPihkcmFmdC1pZXRmLWN1cmRsZS1yc2Etc2hhMik8L3NwYW4+CjxkaXYgaWQ9ImlkMTUi
IGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgZGVuaXMg
ICBiaWRlciwgMjAxNy0xMC0wNiAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5v
cmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLWN1cmRsZS1yc2Etc2hhMi0xMS50eHQiIGNsYXNz
PSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtY3VyZGxlLXJzYS1zaGEyLTExLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhU
TUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYt
Y3VyZGxlLXJzYS1zaGEyLTExLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+
QWJzdHJhY3Q6IFRoaXMgbWVtbyB1cGRhdGVzIFJGQyA0MjUyIGFuZCBSRkMgNDI1MyB0byBk
ZWZpbmUgbmV3IHB1YmxpYyBrZXkgYWxnb3JpdGhtcyBmb3IgdXNlIG9mIFJTQSBrZXlzIHdp
dGggU0hBLTIgaGFzaGluZyBmb3Igc2VydmVyIGFuZCBjbGllbnQgYXV0aGVudGljYXRpb24g
aW4gU1NIIGNvbm5lY3Rpb25zLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhy
ZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/
dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWlldGYtY3VyZGxlLXJzYS1z
aGEyLTEwLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWll
dGYtY3VyZGxlLXJzYS1zaGEyLTExLnR4dCI+RGlmZiBmcm9tIDEwIHRvIDExICZyYXF1bzs8
L2E+PGJyIC8+ClN0YXRlOiBJRVNHIEV2YWx1YXRpb248YnIgLz4KPGEgaHJlZj0iaHR0cHM6
Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRyYWNrZXIvZHJhZnQtaWV0Zi1jdXJkbGUtcnNh
LXNoYTIvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6
Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtY3VyZGxl
LXJzYS1zaGEyLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy93Zy9jdXJkbGUvZHJhZnQtaWV0Zi1jdXJkbGUtcnNhLXNo
YTIiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy93Zy9jdXJkbGUvIj5DVVJETEUgV0cgJnJhcXVvOzwvYT48YnIg
Lz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0
OnRvZ2dsZUlkRGV0YWlscygnaWQxNicpIiBpZD0iaWQxNmIiPjxzcGFuIGNsYXNzPSJpZHRp
dGxlIj5UcmFuc21pc3Npb24gb2YgSVB2NiBQYWNrZXRzIG92ZXIgSUVFRSA4MDIuMTEgTmV0
d29ya3Mgb3BlcmF0aW5nIGluIG1vZGUgT3V0c2lkZSB0aGUgQ29udGV4dCBvZiBhIEJhc2lj
IFNlcnZpY2UgU2V0IChJUHY2LW92ZXItODAyMTEtT0NCKTwvc3Bhbj4gPHNwYW4gY2xhc3M9
ImlkbmFtZSI+KGRyYWZ0LWlldGYtaXB3YXZlLWlwdjYtb3Zlci04MDIxMW9jYik8L3NwYW4+
CjxkaXYgaWQ9ImlkMTYiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
Pgo8cD5CeSAgICBBbGV4YW5kcmUgUGV0cmVzY3UsIE5hYmlsIEJlbmFtYXIsIEplcm9tZSBI
YWVycmksIEpvbmctSHlvdWsgTGVlLCBUaGllcnJ5ICAgRXJuc3QsIDIwMTctMTAtMDYgJm5i
c3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0
Zi1pcHdhdmUtaXB2Ni1vdmVyLTgwMjExb2NiLTA5LnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhU
PC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1p
cHdhdmUtaXB2Ni1vdmVyLTgwMjExb2NiLTA5Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8
L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtaXB3
YXZlLWlwdjYtb3Zlci04MDIxMW9jYi0wOS5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48
L3A+CjxwPkFic3RyYWN0OiBJbiBvcmRlciB0byB0cmFuc21pdCBJUHY2IHBhY2tldHMgb24g
SUVFRSA4MDIuMTEgbmV0d29ya3MgcnVubmluZyBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEg
YmFzaWMgc2VydmljZSBzZXQgKE9DQiwgZWFybGllciAmcXVvdDs4MDIuMTFwJnF1b3Q7KSB0
aGVyZSBpcyBhIG5lZWQgdG8gZGVmaW5lIGEgZmV3IHBhcmFtZXRlcnMgc3VjaCBhcyB0aGUg
c3VwcG9ydGVkIE1heGltdW0gVHJhbnNtaXNzaW9uIFVuaXQgc2l6ZSBvbiB0aGUgODAyLjEx
LU9DQiBsaW5rLCB0aGUgaGVhZGVyIGZvcm1hdCBwcmVjZWRpbmcgdGhlIElQdjYgaGVhZGVy
LCB0aGUgVHlwZSB2YWx1ZSB3aXRoaW4gaXQsIGFuZCBvdGhlcnMuIFRoaXMgZG9jdW1lbnQg
ZGVzY3JpYmVzIHRoZXNlIHBhcmFtZXRlcnMgZm9yIElQdjYgYW5kIElFRUUgODAyLjExLU9D
QiBuZXR3b3JrczsgaXQgcG9ydHJheXMgdGhlIGxheWVyaW5nIG9mIElQdjYgb24gODAyLjEx
LU9DQiBzaW1pbGFybHkgdG8gb3RoZXIga25vd24gODAyLjExIGFuZCBFdGhlcm5ldCBsYXll
cnMgLSBieSB1c2luZyBhbiBFdGhlcm5ldCBBZGFwdGF0aW9uIExheWVyLjwvcD4KPGRpdiBj
bGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9v
bHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lk
L2RyYWZ0LWlldGYtaXB3YXZlLWlwdjYtb3Zlci04MDIxMW9jYi0wOC50eHQmYW1wO3VybDI9
aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLWlwd2F2ZS1pcHY2LW92ZXIt
ODAyMTFvY2ItMDkudHh0Ij5EaWZmIGZyb20gMDggdG8gMDkgJnJhcXVvOzwvYT48YnIgLz4K
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9pcHdhdmUvZHJhZnQtaWV0Zi1p
cHdhdmUtaXB2Ni1vdmVyLTgwMjExb2NiIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+
PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvaXB3YXZlLyI+SVBX
QVZFIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8
bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTcnKSIgaWQ9Imlk
MTdiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+TXRyYWNlIFZlcnNpb24gMjogVHJhY2Vyb3V0
ZSBGYWNpbGl0eSBmb3IgSVAgTXVsdGljYXN0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1l
Ij4oZHJhZnQtaWV0Zi1tYm9uZWQtbXRyYWNlLXYyKTwvc3Bhbj4KPGRpdiBpZD0iaWQxNyIg
Y2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBIaXRvc2hp
IEFzYWVkYSwgICBLZXJyeSBNZXllciwgV2Vlc2FuIExlZSwgMjAxNy0xMC0wNyAmbmJzcDsg
PGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLW1i
b25lZC1tdHJhY2UtdjItMTkudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLW1ib25lZC1tdHJhY2Ut
djItMTkuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1tYm9uZWQtbXRyYWNlLXYyLTE5LnBkZiIg
Y2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQg
ZGVzY3JpYmVzIHRoZSBJUCBtdWx0aWNhc3QgdHJhY2Vyb3V0ZSBmYWNpbGl0eSwgbmFtZWQg
TXRyYWNlIHZlcnNpb24gMiAoTXRyYWNlMikuIFVubGlrZSB1bmljYXN0IHRyYWNlcm91dGUs
IE10cmFjZTIgcmVxdWlyZXMgc3BlY2lhbCBpbXBsZW1lbnRhdGlvbnMgb24gdGhlIHBhcnQg
b2Ygcm91dGVycy4gVGhpcyBzcGVjaWZpY2F0aW9uIGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQg
ZnVuY3Rpb25hbGl0eSBpbiBtdWx0aWNhc3Qgcm91dGVycywgYXMgd2VsbCBhcyBob3cgYW4g
TXRyYWNlMiBjbGllbnQgaW52b2tlcyBhIHF1ZXJ5IGFuZCByZWNlaXZlcyBhIHJlcGx5Ljwv
cD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmll
dGYub3JnL2lkL2RyYWZ0LWlldGYtbWJvbmVkLW10cmFjZS12Mi0xOC50eHQmYW1wO3VybDI9
aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLW1ib25lZC1tdHJhY2UtdjIt
MTkudHh0Ij5EaWZmIGZyb20gMTggdG8gMTkgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9tYm9uZWQvZHJhZnQtaWV0Zi1tYm9uZWQtbXRy
YWNlLXYyIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbWJvbmVkLyI+TUJPTkVEIFdHICZyYXF1bzs8L2E+
PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNj
cmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTgnKSIgaWQ9ImlkMThiIj48c3BhbiBjbGFzcz0i
aWR0aXRsZSI+U2Vzc2lvbiBEZXNjcmlwdGlvbiBQcm90b2NvbCAoU0RQKSBPZmZlci9BbnN3
ZXIgQ29uc2lkZXJhdGlvbnMgZm9yIERhdGFncmFtIFRyYW5zcG9ydCBMYXllciBTZWN1cml0
eSAoRFRMUykgYW5kIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKTwvc3Bhbj4gPHNw
YW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtbW11c2ljLWR0bHMtc2RwKTwvc3Bhbj4K
PGRpdiBpZD0iaWQxOCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
CjxwPkJ5ICBDaHJpc3RlciBIb2xtYmVyZywgUm9tYW4gU2hwb3VudCwgMjAxNy0xMC0wNyAm
bmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1p
ZXRmLW1tdXNpYy1kdGxzLXNkcC0zMS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtbW11c2ljLWR0
bHMtc2RwLTMxLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtbW11c2ljLWR0bHMtc2RwLTMxLnBk
ZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1l
bnQgZGVmaW5lcyB0aGUgU2Vzc2lvbiBEZXNjcmlwdGlvbiBQcm90b2NvbCAoU0RQKSBvZmZl
ci8gYW5zd2VyIHByb2NlZHVyZXMgZm9yIG5lZ290aWF0aW5nIGFuZCBlc3RhYmxpc2hpbmcg
YSBEYXRhZ3JhbSBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKERUTFMpIGFzc29jaWF0aW9u
LiBUaGUgZG9jdW1lbnQgYWxzbyBkZWZpbmVzIHRoZSBjcml0ZXJpYSBmb3Igd2hlbiBhIG5l
dyBEVExTIGFzc29jaWF0aW9uIG11c3QgYmUgZXN0YWJsaXNoZWQuIFRoZSBkb2N1bWVudCB1
cGRhdGVzIFJGQyA1NzYzIGFuZCBSRkMgNzM0NSwgYnkgcmVwbGFjaW5nIGNvbW1vbiBTRFAg
b2ZmZXIvYW5zd2VyIHByb2NlZHVyZXMgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGlzIHNwZWNp
ZmljYXRpb24uPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaWV0Zi1tbXVzaWMtZHRscy1zZHAtMzAudHh0
JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaWV0Zi1tbXVzaWMt
ZHRscy1zZHAtMzEudHh0Ij5EaWZmIGZyb20gMzAgdG8gMzEgJnJhcXVvOzwvYT48YnIgLz4K
U3RhdGU6IElFU0cgRXZhbHVhdGlvbjo6QUQgRm9sbG93dXA8YnIgLz4KPGEgaHJlZj0iaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRyYWNrZXIvZHJhZnQtaWV0Zi1tbXVzaWMt
ZHRscy1zZHAvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtbW11
c2ljLWR0bHMtc2RwLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9tbXVzaWMvZHJhZnQtaWV0Zi1tbXVzaWMtZHRs
cy1zZHAiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy93Zy9tbXVzaWMvIj5NTVVTSUMgV0cgJnJhcXVvOzwvYT48
YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2Ny
aXB0OnRvZ2dsZUlkRGV0YWlscygnaWQxOScpIiBpZD0iaWQxOWIiPjxzcGFuIGNsYXNzPSJp
ZHRpdGxlIj5TRFA6IFNlc3Npb24gRGVzY3JpcHRpb24gUHJvdG9jb2w8L3NwYW4+IDxzcGFu
IGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLW1tdXNpYy1yZmM0NTY2YmlzKTwvc3Bhbj4K
PGRpdiBpZD0iaWQxOSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
CjxwPkJ5ICBNYXJrIEhhbmRsZXksIENvbGluIFBlcmtpbnMsIEFsaSAgIEJlZ2VuLCAyMDE3
LTEwLTA3ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lk
L2RyYWZ0LWlldGYtbW11c2ljLXJmYzQ1NjZiaXMtMjQudHh0IiBjbGFzcz0iZm9ybWF0Ij5U
WFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LW1tdXNpYy1yZmM0NTY2YmlzLTI0Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtbW11c2ljLXJm
YzQ1NjZiaXMtMjQucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFj
dDogVGhpcyBtZW1vIGRlZmluZXMgdGhlIFNlc3Npb24gRGVzY3JpcHRpb24gUHJvdG9jb2wg
KFNEUCkuIFNEUCBpcyBpbnRlbmRlZCBmb3IgZGVzY3JpYmluZyBtdWx0aW1lZGlhIHNlc3Np
b25zIGZvciB0aGUgcHVycG9zZXMgb2Ygc2Vzc2lvbiBhbm5vdW5jZW1lbnQsIHNlc3Npb24g
aW52aXRhdGlvbiwgYW5kIG90aGVyIGZvcm1zIG9mIG11bHRpbWVkaWEgc2Vzc2lvbiBpbml0
aWF0aW9uLiBUaGlzIGRvY3VtZW50IG9ic29sZXRlcyBSRkMgNDU2Ni48L3A+CjxkaXYgY2xh
c3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xz
L3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9k
cmFmdC1pZXRmLW1tdXNpYy1yZmM0NTY2YmlzLTIzLnR4dCZhbXA7dXJsMj1odHRwczovL3Rv
b2xzLmlldGYub3JnL2lkL2RyYWZ0LWlldGYtbW11c2ljLXJmYzQ1NjZiaXMtMjQudHh0Ij5E
aWZmIGZyb20gMjMgdG8gMjQgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy93Zy9tbXVzaWMvZHJhZnQtaWV0Zi1tbXVzaWMtcmZjNDU2NmJpcyI+
RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3dnL21tdXNpYy8iPk1NVVNJQyBXRyAmcmFxdW87PC9hPjxiciAvPgo8
L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9n
Z2xlSWREZXRhaWxzKCdpZDIwJykiIGlkPSJpZDIwYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUi
Pk1hbnVmYWN0dXJlciBVc2FnZSBEZXNjcmlwdGlvbiBTcGVjaWZpY2F0aW9uPC9zcGFuPiA8
c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1vcHNhd2ctbXVkKTwvc3Bhbj4KPGRp
diBpZD0iaWQyMCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cjxw
PkJ5ICBFbGlvdCBMZWFyLCBSYWxwaCBEcm9tcywgICBEYW4gUm9tYXNjYW51LCAyMDE3LTEw
LTA3ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2Ry
YWZ0LWlldGYtb3BzYXdnLW11ZC0xMi50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtb3BzYXdnLW11
ZC0xMi5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLW9wc2F3Zy1tdWQtMTIucGRmIiBjbGFzcz0i
Zm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBtZW1vIHNwZWNpZmllcyBh
IGNvbXBvbmVudC1iYXNlZCBhcmNoaXRlY3R1cmUgZm9yIG1hbnVmYWN0dXJlciB1c2FnZSBk
ZXNjcmlwdGlvbnMgKE1VRCkuIFRoZSBnb2FsIG9mIE1VRCBpcyB0byBwcm92aWRlIGEgbWVh
bnMgZm9yIFRoaW5ncyB0byBzaWduYWwgdG8gdGhlIG5ldHdvcmsgd2hhdCBzb3J0IG9mIGFj
Y2VzcyBhbmQgbmV0d29yayBmdW5jdGlvbmFsaXR5IHRoZXkgcmVxdWlyZSB0byBwcm9wZXJs
eSBmdW5jdGlvbi4gVGhlIGluaXRpYWwgZm9jdXMgaXMgb24gYWNjZXNzIGNvbnRyb2wuIExh
dGVyIHdvcmsgY2FuIGRlbHZlIGludG8gb3RoZXIgYXNwZWN0cy48L3A+CjxkaXYgY2xhc3M9
ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3Jm
Y2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFm
dC1pZXRmLW9wc2F3Zy1tdWQtMTEudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvaWQvZHJhZnQtaWV0Zi1vcHNhd2ctbXVkLTEyLnR4dCI+RGlmZiBmcm9tIDExIHRvIDEy
ICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cv
b3BzYXdnL2RyYWZ0LWlldGYtb3BzYXdnLW11ZCI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87
PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL29wc2F3Zy8i
Pk9QU0FXRyBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4K
CiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDIxJykiIGlk
PSJpZDIxYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlJlLWtleWluZyBNZWNoYW5pc21zIGZv
ciBTeW1tZXRyaWMgS2V5czwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWly
dGYtY2ZyZy1yZS1rZXlpbmcpPC9zcGFuPgo8ZGl2IGlkPSJpZDIxIiBjbGFzcz0iaWRkZXRh
aWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFN0YW5pc2xhdiBTbXlzaGx5YWV2
LCAgIDIwMTctMTAtMDcgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2Fy
Y2hpdmUvaWQvZHJhZnQtaXJ0Zi1jZnJnLXJlLWtleWluZy0wNy50eHQiIGNsYXNzPSJmb3Jt
YXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0
LWlydGYtY2ZyZy1yZS1rZXlpbmctMDcuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4g
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaXJ0Zi1jZnJnLXJl
LWtleWluZy0wNy5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0
OiBBIGNlcnRhaW4gbWF4aW11bSBhbW91bnQgb2YgZGF0YSBjYW4gYmUgc2FmZWx5IGVuY3J5
cHRlZCB3aGVuIGVuY3J5cHRpb24gaXMgcGVyZm9ybWVkIHVuZGVyIGEgc2luZ2xlIGtleS4g
VGhpcyBhbW91bnQgaXMgY2FsbGVkICZxdW90O2tleSBsaWZldGltZSZxdW90Oy4gVGhpcyBz
cGVjaWZpY2F0aW9uIGRlc2NyaWJlcyBhIHZhcmlldHkgb2YgbWV0aG9kcyB0byBpbmNyZWFz
ZSB0aGUgbGlmZXRpbWUgb2Ygc3ltbWV0cmljIGtleXMuIEl0IHByb3ZpZGVzIGV4dGVybmFs
IGFuZCBpbnRlcm5hbCByZS1rZXlpbmcgbWVjaGFuaXNtcyBiYXNlZCBvbiBoYXNoIGZ1bmN0
aW9ucyBhbmQgb24gYmxvY2sgY2lwaGVycywgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIG1vZGVz
IG9mIG9wZXJhdGlvbnMgc3VjaCBhcyBDVFIsIEdDTSwgQ0JDLCBDRkIgYW5kIE9NQUMuPC9w
Pgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaWQvZHJhZnQtaXJ0Zi1jZnJnLXJlLWtleWluZy0wNi50eHQmYW1wO3VybDI9aHR0
cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pcnRmLWNmcmctcmUta2V5aW5nLTA3LnR4
dCI+RGlmZiBmcm9tIDA2IHRvIDA3ICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+Cjwv
ZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMo
J2lkMjInKSIgaWQ9ImlkMjJiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+QmVuY2htYXJraW5n
IE1ldGhvZG9sb2d5IGZvciBFVlBOIGFuZCBQQkItRVZQTjwvc3Bhbj4gPHNwYW4gY2xhc3M9
ImlkbmFtZSI+KGRyYWZ0LWtpc2hqYWMtYm13Zy1ldnBudGVzdCk8L3NwYW4+CjxkaXYgaWQ9
ImlkMjIiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAg
S2lzaG9yZSBUaXJ1dmVlZGh1bGEsICAgc3VkaGluIGphY29iLCAyMDE3LTEwLTA2ICZuYnNw
OyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWtpc2hq
YWMtYm13Zy1ldnBudGVzdC0wOC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWtpc2hqYWMtYm13Zy1ldnBu
dGVzdC0wOC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczov
L3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1raXNoamFjLWJtd2ctZXZwbnRlc3QtMDgucGRm
IiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVu
dCBkZWZpbmVzIHRoZSBtZXRob2RvbG9naWVzIGZvciBiZW5jaG1hcmtpbmcgcGVyZm9ybWFu
Y2Ugb2YgRVZQTiBhbmQgUEJCLUVWUE4uRVZQTiBpcyBkZWZpbmVkIGluIFJGQyA3NDMyLkl0
IGlzIGJlaW5nIGRlcGxveWVkIGluIHByb3ZpZGVyIG5ldHdvcmsuVGhpcyBkb2N1bWVudCBw
cm92aWRlcyB0aGUgYmVuY2htYXJraW5nIG1ldGhvZG9sb2dpZXMgZm9yIEVWUE4vUEJCLUVW
UE4gY29udmVyZ2VuY2UsZGF0YSBwbGFuZSxjb250cm9sIHBsYW5lIGxlYXJuaW5nIG9mIG1h
Yy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9pZC9kcmFmdC1raXNoamFjLWJtd2ctZXZwbnRlc3QtMDcudHh0JmFtcDt1
cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQta2lzaGphYy1ibXdnLWV2cG50
ZXN0LTA4LnR4dCI+RGlmZiBmcm9tIDA3IHRvIDA4ICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4K
PC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJ
ZERldGFpbHMoJ2lkMjMnKSIgaWQ9ImlkMjNiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+Um91
dGluZyBPcHRpbWl6YXRpb24gd2l0aCBTRE4gaW4gRGF0YSBDZW50ZXIgTmV0d29ya3M8L3Nw
YW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1rb25nLXNkbnJnLXJvdXRpbmctb3B0
aW1pemF0aW9uLXNkbi1pbi1kYyk8L3NwYW4+CjxkaXYgaWQ9ImlkMjMiIGNsYXNzPSJpZGRl
dGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgUWlhbiBLb25nLCBUYW8gICBH
YW8sIERhamlhbmcgV2FuZywgWmhlbnl1IFdhbmcsIEppYXl1IFdhbmcsIEJpbmdsaSBHdW8s
IFNoYW5ndW8gSHVhbmcsICAgMjAxNy0xMC0wNyAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93
d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1rb25nLXNkbnJnLXJvdXRpbmctb3B0aW1p
emF0aW9uLXNkbi1pbi1kYy0wMy50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWtvbmctc2Rucmctcm91dGlu
Zy1vcHRpbWl6YXRpb24tc2RuLWluLWRjLTAzLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8
L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWtvbmctc2Ru
cmctcm91dGluZy1vcHRpbWl6YXRpb24tc2RuLWluLWRjLTAzLnBkZiIgY2xhc3M9ImZvcm1h
dCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFdpdGggdGhlIG9wZW4gYW5kIHN0YW5kYXJk
IHByb2dyYW1tYXRpYyBpbnRlcmZhY2UgYW5kIHRoZSBmbGV4aWJpbGl0eSBvZiBjb250cm9s
bGluZyBuZXR3b3JrLCBTb2Z0d2FyZSBEZWZpbmVkIE5ldHdvcmsgKFNETikgY2FuIG9idmlv
dXNseSBzaW1wbGlmeSBhbmQgaW50ZWdyYXRlIG9wZXJhdGlvbiBhbmQgYnVzaW5lc3Mgc3Vw
cG9ydCBzeXN0ZW1zLiBBcyBhIGNvbnNlcXVlbmNlLCB0byBzYXRpc2Z5IHRoZSByaXNpbmcg
c3dpdGNoaW5nIGRlbWFuZCBpbiB0aGUgZGF0YSBjZW50ZXIgbmV0d29yaywgaXQgaXMgYSBn
b29kIG9wdGlvbiB0byBhZG9wdCBTRE4gdGVjaG5vbG9neS4gSW4gYWRkaXRpb24sIGN1cnJl
bnQgYXJjaGl0ZWN0dXJlIG9mIGRhdGEgY2VudGVyIG5ldHdvcmsgaXMgZmFyIGZyb20gaWRl
YWxpdHksIHdoaWNoIHJlc3VsdHMgaW4gdGhlIGxvdyB1dGlsaXphdGlvbiByYXRlIGluIGJh
bmR3aWR0aCByZXNvdXJjZS4gRm9yIGV4YW1wbGUsIG1pY2UgZmxvdyBjYW5ub3QgYmUgd2Vs
bCBlZmZlY3RpdmVseSBzZXJ2ZWQgaW4gdGhlIGNvbnZlbnRpb25hbCBXYXZlbGVuZ3RoIERp
dmlzaW9uIE11bHRpcGxleGluZyAoV0RNKSBvcHRpY2FsIG5ldHdvcmsgd2l0aCBhdCBsZWFz
dCA1MEdIeiBzcGVjdHJ1bSBpbnRlcnZhbC4gRnJvbSBhIGRhdGEgY2VudGVyIG5ldHdvcmsg
cGVyc3BlY3RpdmUsIGl0IGlzIG5lY2Vzc2FyeSB0byBmdXJ0aGVyIGltcHJvdmUgdGhlIHJl
c291cmNlIHV0aWxpemF0aW9uIGVmZmljaWVuY3kgYW5kIHRoZSBmbGV4aWJpbGl0eSBvZiBj
b3Bpbmcgd2l0aCBkaWZmZXJlbnQgdHJhZmZpYy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMi
Pgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZj
ZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1rb25nLXNk
bnJnLXJvdXRpbmctb3B0aW1pemF0aW9uLXNkbi1pbi1kYy0wMi50eHQmYW1wO3VybDI9aHR0
cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1rb25nLXNkbnJnLXJvdXRpbmctb3B0aW1p
emF0aW9uLXNkbi1pbi1kYy0wMy50eHQiPkRpZmYgZnJvbSAwMiB0byAwMyAmcmFxdW87PC9h
PjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFz
Y3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDI0JykiIGlkPSJpZDI0YiI+PHNwYW4gY2xhc3M9
ImlkdGl0bGUiPlBhdGggVGFibGUgYmFzZWQgUm91dGluZyBNZWNoYW5pc20gaW4gU29mdHdh
cmUtRGVmaW5lZCBPcHRpY2FsIFRyYW5zcG9ydCBOZXR3b3JrcyAoU0QtT1ROKTwvc3Bhbj4g
PHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWxpLXNkbnJnLXBhdGgtdGFibGUtcm91dGlu
Zy1pbi1zZC1vdG4pPC9zcGFuPgo8ZGl2IGlkPSJpZDI0IiBjbGFzcz0iaWRkZXRhaWxzIiBz
dHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIExpIFhpbiwgWXUgWmhvdSwgRGFqaWFuZyBX
YW5nLCBaaGVueXUgV2FuZywgSmlheXUgV2FuZywgICBXZW56aGUgTGksIFNoYW4gWWluLCBT
aGFuZ3VvIEh1YW5nLCAyMDE3LTEwLTA4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5p
ZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWxpLXNkbnJnLXBhdGgtdGFibGUtcm91dGluZy1p
bi1zZC1vdG4tMDMudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1saS1zZG5yZy1wYXRoLXRhYmxlLXJvdXRp
bmctaW4tc2Qtb3RuLTAzLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWxpLXNkbnJnLXBhdGgtdGFibGUt
cm91dGluZy1pbi1zZC1vdG4tMDMucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8
cD5BYnN0cmFjdDogVGhlIGR5bmFtaWMgZXN0YWJsaXNobWVudCBhbmQgcmVtb3ZhbCBvZiBh
biBlbmQtdG8tZW5kIGxpZ2h0LXBhdGggY29uc3VtZSBhIGxvdCBvZiB0aW1lIHdoaWNoIGFy
ZSBhbHNvIHRoZSBtYWluIGJ1cmRlbiBvZiBjb250cm9sIHBsYW5lIGluIG9wdGljYWwgdHJh
bnNwb3J0IG5ldHdvcmtzLiBXaXRoIHRoZSBmcmVxdWVudCBhcnJpdmFsIGFuZCBkZXBhcnR1
cmUgb2Ygc2VydmljZXMsIHRoZSBjb250cm9sIHBsYW5lIG5lZWRzIHRvIGhhbmRsZSBhIGxh
cmdlIG51bWJlciBvZiBjb250cm9sIGFuZCBtYW5hZ2VtZW50IG1lc3NhZ2VzIHRvIGNvbmR1
Y3QgcGF0aCBjb21wdXRhdGlvbiwgcmVzb3VyY2UgcmVzZXJ2YXRpb24gYW5kIGNyb3NzIGNv
bm5lY3Rpb24gY29uZmlndXJhdGlvbi4gVGhpcyBkcmFmdCBwcm9wb3NlcyBhIG5vdmVsIHJv
dXRpbmcgbWVjaGFuaXNtIGJhc2VkIG9uIFBhdGggVGFibGUgZm9yIHNvZnR3YXJlLWRlZmlu
ZWQgb3B0aWNhbCB0cmFuc3BvcnQgbmV0d29ya3MgKFNELU9UTikuIFRoZSBQYXRoIFRhYmxl
IHJlc2VydmVzIHBhcnRpYWwgYWN0aXZhdGVkIGVzdGFibGlzaGVkIGxpZ2h0LXBhdGhzIHRo
YXQgY2FuIGJlIGRpcmVjdGx5IHVzZWQgYnkgc3Vic2VxdWVudCByZXF1ZXN0cyBmb3Igc3Vi
c2VxdWVudCBzZXJ2aWNlcy4gVGhpcyBuZXcgcm91dGluZyBtZWNoYW5pc20gY2FuIHJlZHVj
ZSB0aGUgbmV0d29yayBsb2FkIGFuZCBzYXZlIHJvdXRpbmcgdGltZSBmb3Igc29tZSBzZXJ2
aWNlcy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90
b29scy5pZXRmLm9yZy9pZC9kcmFmdC1saS1zZG5yZy1wYXRoLXRhYmxlLXJvdXRpbmctaW4t
c2Qtb3RuLTAyLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0
LWxpLXNkbnJnLXBhdGgtdGFibGUtcm91dGluZy1pbi1zZC1vdG4tMDMudHh0Ij5EaWZmIGZy
b20gMDIgdG8gMDMgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+
CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQyNScpIiBp
ZD0iaWQyNWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5IYXNoLUJhc2VkIFNpZ25hdHVyZXM8
L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1tY2dyZXctaGFzaC1zaWdzKTwv
c3Bhbj4KPGRpdiBpZD0iaWQyNSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CjxwPkJ5ICBEYXZpZCBNY0dyZXcsIE1pY2hhZWwgQ3VyY2lvLCBTY290dCBGbHVo
cmVyLCAgIDIwMTctMTAtMDYgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3Jn
L2FyY2hpdmUvaWQvZHJhZnQtbWNncmV3LWhhc2gtc2lncy0wOC50eHQiIGNsYXNzPSJmb3Jt
YXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0
LW1jZ3Jldy1oYXNoLXNpZ3MtMDguaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtbWNncmV3LWhhc2gtc2ln
cy0wOC5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlz
IG5vdGUgZGVzY3JpYmVzIGEgZGlnaXRhbCBzaWduYXR1cmUgc3lzdGVtIGJhc2VkIG9uIGNy
eXB0b2dyYXBoaWMgaGFzaCBmdW5jdGlvbnMsIGZvbGxvd2luZyB0aGUgc2VtaW5hbCB3b3Jr
IGluIHRoaXMgYXJlYSBvZiBMYW1wb3J0LCBEaWZmaWUsIFdpbnRlcm5pdHosIGFuZCBNZXJr
bGUsIGFzIGFkYXB0ZWQgYnkgTGVpZ2h0b24gYW5kIE1pY2FsaSBpbiAxOTk1LiBJdCBzcGVj
aWZpZXMgYSBvbmUtdGltZSBzaWduYXR1cmUgc2NoZW1lIGFuZCBhIGdlbmVyYWwgc2lnbmF0
dXJlIHNjaGVtZS4gVGhlc2Ugc3lzdGVtcyBwcm92aWRlIGFzeW1tZXRyaWMgYXV0aGVudGlj
YXRpb24gd2l0aG91dCB1c2luZyBsYXJnZSBpbnRlZ2VyIG1hdGhlbWF0aWNzIGFuZCBjYW4g
YWNoaWV2ZSBhIGhpZ2ggc2VjdXJpdHkgbGV2ZWwuIFRoZXkgYXJlIHN1aXRhYmxlIGZvciBj
b21wYWN0IGltcGxlbWVudGF0aW9ucywgYXJlIHJlbGF0aXZlbHkgc2ltcGxlIHRvIGltcGxl
bWVudCwgYW5kIG5hdHVyYWxseSByZXNpc3Qgc2lkZS1jaGFubmVsIGF0dGFja3MuIFVubGlr
ZSBtb3N0IG90aGVyIHNpZ25hdHVyZSBzeXN0ZW1zLCBoYXNoLWJhc2VkIHNpZ25hdHVyZXMg
d291bGQgc3RpbGwgYmUgc2VjdXJlIGV2ZW4gaWYgaXQgcHJvdmVzIGZlYXNpYmxlIGZvciBh
biBhdHRhY2tlciB0byBidWlsZCBhIHF1YW50dW0gY29tcHV0ZXIuPC9wPgo8ZGl2IGNsYXNz
PSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy90b29scy9y
ZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJh
ZnQtbWNncmV3LWhhc2gtc2lncy0wNy50eHQmYW1wO3VybDI9aHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9pZC9kcmFmdC1tY2dyZXctaGFzaC1zaWdzLTA4LnR4dCI+RGlmZiBmcm9tIDA3IHRv
IDA4ICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKPC91bD4K
CjxoMj5FeHBpcmVkIERyYWZ0czwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBv
bmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQyNicpIiBpZD0iaWQyNmIi
PjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5BIEZyYW1ld29yayBmb3IgQ29tcHV0ZWQgTXVsdGlj
YXN0IGFwcGxpZWQgdG8gTVBMUyBiYXNlZCBTZWdtZW50IFJvdXRpbmc8L3NwYW4+IDxzcGFu
IGNsYXNzPSJpZG5hbWUiPihkcmFmdC1hbGxhbi1zcHJpbmctbXBscy1tdWx0aWNhc3QtZnJh
bWV3b3JrKTwvc3Bhbj4KPGRpdiBpZD0iaWQyNiIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICAgIERhdmUgQWxsYW4sIEplZmYgVGFudHN1cmEsIDIw
MTctMDQtMDQgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUv
aWQvZHJhZnQtYWxsYW4tc3ByaW5nLW1wbHMtbXVsdGljYXN0LWZyYW1ld29yay0wMy50eHQi
IGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9odG1sL2RyYWZ0LWFsbGFuLXNwcmluZy1tcGxzLW11bHRpY2FzdC1mcmFtZXdvcmstMDMu
aHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9wZGYvZHJhZnQtYWxsYW4tc3ByaW5nLW1wbHMtbXVsdGljYXN0LWZyYW1ld29y
ay0wMy5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlz
IGRvY3VtZW50IGRlc2NyaWJlcyBhIG11bHRpY2FzdCBzb2x1dGlvbiBmb3IgU2VnbWVudCBS
b3V0aW5nIHdpdGggTVBMUyBkYXRhIHBsYW5lLiBJdCBpcyBjb25zaXN0ZW50IHdpdGggdGhl
IFNlZ21lbnQgUm91dGluZyBhcmNoaXRlY3R1cmUgaW4gdGhhdCBhbiBJR1AgaXMgYXVnbWVu
dGVkIHRvIGRpc3RyaWJ1dGUgaW5mb3JtYXRpb24gaW4gYWRkaXRpb24gdG8gdGhlIGxpbmsg
c3RhdGUuIEluIHRoaXMgc29sdXRpb24gaXQgaXMgbXVsdGljYXN0IGdyb3VwIG1lbWJlcnNo
aXAgaW5mb3JtYXRpb24gc3VmZmljaWVudCB0byBzeW5jaHJvbml6ZSBzdGF0ZSBpbiBhIGdp
dmVuIG5ldHdvcmsgZG9tYWluLiBDb21wdXRhdGlvbiBpcyBlbXBsb3llZCB0byBkZXRlcm1p
bmUgdGhlIHRvcG9sb2d5IG9mIGFueSBsb29zZWx5IHNwZWNpZmllZCBtdWx0aWNhc3QgZGlz
dHJpYnV0aW9uIHRyZWUuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IEV4
cGlyZWQ8YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJq
YXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQyNycpIiBpZD0iaWQyN2IiPjxzcGFuIGNs
YXNzPSJpZHRpdGxlIj5CR1AgQmVzdHBhdGggU2VsZWN0aW9uIENyaXRlcmlhIEVuaGFuY2Vt
ZW50PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1pZHItYmdwLWJl
c3RwYXRoLXNlbGVjdGlvbi1jcml0ZXJpYSk8L3NwYW4+CjxkaXYgaWQ9ImlkMjciIGNsYXNz
PSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgUmFqaXYgQXNhdGks
IDIwMTctMDQtMDUgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hp
dmUvaWQvZHJhZnQtaWV0Zi1pZHItYmdwLWJlc3RwYXRoLXNlbGVjdGlvbi1jcml0ZXJpYS0w
Ny50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaWRyLWJncC1iZXN0cGF0aC1zZWxlY3Rpb24tY3Jp
dGVyaWEtMDcuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1pZHItYmdwLWJlc3RwYXRoLXNlbGVj
dGlvbi1jcml0ZXJpYS0wNy5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFi
c3RyYWN0OiBCR1Agc3BlY2lmaWNhdGlvbiAoUkZDNDI3MSkgcHJlc2NyaWJlcyAmIzM5O0JH
UCBuZXh0LWhvcCByZWFjaGFiaWxpdHkmIzM5OyBhcyBvbmUgb2YgdGhlIGtleSAmIzM5O1Jv
dXRlIFJlc29sdmFiaWxpdHkgQ29uZGl0aW9uJiMzOTsgdGhhdCBtdXN0IGJlIHNhdGlzZmll
ZCBiZWZvcmUgdGhlIEJHUCBiZXN0cGF0aCBjYW5kaWRhdGUgc2VsZWN0aW9uLiBUaGlzIGNv
bmRpdGlvbiwgaG93ZXZlciwgbWF5IG5vdCBiZSBzdWZmaWNpZW50IChhcyBleHBsYWluZWQg
aW4gdGhlIEFwcGVuZGl4IHNlY3Rpb24pIGFuZCBkZXNpcmUgZnVydGhlciBncmFudWxhcml0
eS48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxiciAvPgo8
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL2lkci9kcmFmdC1pZXRmLWlkci1i
Z3AtYmVzdHBhdGgtc2VsZWN0aW9uLWNyaXRlcmlhIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1
bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvaWRyLyI+
SURSIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8
bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMjgnKSIgaWQ9Imlk
MjhiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+RGVmaW5pbmcgRWxsaXB0aWMgQ3VydmUgQ3J5
cHRvZ3JhcGh5IEFsZ29yaXRobXMgZm9yIHVzZSB3aXRoIERLSU08L3NwYW4+IDxzcGFuIGNs
YXNzPSJpZG5hbWUiPihkcmFmdC1zcm9zZS1ka2ltLWVjYyk8L3NwYW4+CjxkaXYgaWQ9Imlk
MjgiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgU2Nv
dHQgICBSb3NlLCAyMDE3LTA0LTA2ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRm
Lm9yZy9hcmNoaXZlL2lkL2RyYWZ0LXNyb3NlLWRraW0tZWNjLTAwLnR4dCIgY2xhc3M9ImZv
cm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJh
ZnQtc3Jvc2UtZGtpbS1lY2MtMDAuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtc3Jvc2UtZGtpbS1lY2Mt
MDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogRG9tYWlu
S2V5cyBJZGVudGlmaWVkIE1haWwgKERLSU0pIHVzZXMgZGlnaXRhbCBzaWduYXR1cmUgdG8g
YXNzb2NpYXRlIGEgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gc2VuZGluZyBkb21haW4uIEN1cnJl
bnRseSwgdGhlcmUgaXMgb25seSBvbmUgY3J5cHRvZ3JhcGh5IGFsZ29yaXRobSBkZWZpbmVk
IGZvciB1c2Ugd2l0aCBES0lNIChSU0EpLiBUaGlzIGRvY3VtZW50IGRlZmluZXMgZm91ciBu
ZXcgZWxsaXB0aWMgY3VydmUgY3J5cHRvZ3JhcGh5IGFsZ29yaXRobXMgZm9yIHVzZSB3aXRo
IERLSU0uIFRoaXMgd2lsbCBhbGxvdyBmb3IgYWxnb3JpdGhtIGFnaWxpdHkgaWYgYSB3ZWFr
bmVzcyBpcyBmb3VuZCBpbiBSU0EsIGFuZCBhbGxvd3MgZm9yIHNtYWxsZXIga2V5IGxlbmd0
aCB0byBwcm92aWRlIHRoZSBzYW1lIGRpZ2l0YWwgc2lnbmF0dXJlIHN0cmVuZ3RoLjwvcD4K
PGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBpcmVkPGJyIC8+CjwvcD4KPC9k
aXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERl
dGFpbHMoJ2lkMjknKSIgaWQ9ImlkMjliIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+T3BlcmF0
b3ItQXNzaXN0ZWQgUmVsYXkgU2VydmljZSBBcmNoaXRlY3R1cmUgKE9BUlMpPC9zcGFuPiA8
c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtd2FuZy1ydGN3ZWItb2Fycyk8L3NwYW4+Cjxk
aXYgaWQ9ImlkMjkiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8
cD5CeSAgQWlqdW4gV2FuZywgQmluZyAgIExpdSwgSnVzdGluIFViZXJ0aSwgUGVuZyBEaW5n
LCAyMDE3LTA0LTA1ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNo
aXZlL2lkL2RyYWZ0LXdhbmctcnRjd2ViLW9hcnMtMDIudHh0IiBjbGFzcz0iZm9ybWF0Ij5U
WFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC13YW5n
LXJ0Y3dlYi1vYXJzLTAyLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LXdhbmctcnRjd2ViLW9hcnMtMDIu
cGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1
bWVudCBwcm9wb3NlcyBhIG5ldyByZWxheS1iYXNlZCBOQVQgdHJhdmVyc2FsIGFyY2hpdGVj
dHVyZSBjYWxsZWQgT0FSUyB3aGljaCBjb3VsZCBzaW1wbGlmeSB0aGUgZGF0YSBjb21tdW5p
Y2F0aW9uIHByb2Nlc3MgYmV0d2VlbiB0d28gaG9zdHMgdGhhdCBsb2NhdGVzIGJlaGluZCBz
b21lIG5vbi1CRUhBVkUgY29tcGxpYW50IFtSRkM0Nzg3XSBbUkZDNTM4Ml0gTkFUIGRldmlj
ZXMuIFRoZSBrZXkgbWVjaGFuaXNtIGluIE9BUlMgaXMgdGhlIG5ld2x5IGRlZmluZWQgJnF1
b3Q7Q291cGxlJnF1b3Q7IG1lc3NhZ2Ugd2hpY2ggYWxsb3dzIHRoZSBSZWxheSBzZXJ2ZXJz
IHRvIGJlIGVhc2lseSBpbmNvcnBvcmF0ZWQgaW50byBleGlzdGluZyBDR04vQ0ROIG5vZGVz
IHdoaWNoIGFyZSBhbHJlYWR5IGRlcGxveWVkIHdpdGhpbiB0aGUgbmV0d29yayBpbiBhIGRp
c3RyaWJ1dGVkIG1hbm5lci4gVGFibGUgb2YgQ29udGVudHM8L3A+CjxkaXYgY2xhc3M9Imlk
dG9vbHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9s
aT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDMwJyki
IGlkPSJpZDMwYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPkhhcHB5IEVhcmJhbGxzOiBTdWNj
ZXNzIHdpdGggRHVhbC1TdGFjayBTSVA8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihk
cmFmdC13b3JsZXktc2lwY29yZS1oYXBweS1lYXJiYWxscyk8L3NwYW4+CjxkaXYgaWQ9Imlk
MzAiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgRGFs
ZSBXb3JsZXksIDIwMTctMDQtMDQgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYu
b3JnL2FyY2hpdmUvaWQvZHJhZnQtd29ybGV5LXNpcGNvcmUtaGFwcHktZWFyYmFsbHMtMDAu
dHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9kcmFmdC13b3JsZXktc2lwY29yZS1oYXBweS1lYXJiYWxscy0wMC5odG1s
IiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYu
b3JnL3BkZi9kcmFmdC13b3JsZXktc2lwY29yZS1oYXBweS1lYXJiYWxscy0wMC5wZGYiIGNs
YXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUQkQ6IFRoZSBTZXNzaW9u
IEluaXRpYXRpb24gUHJvdG9jb2wgKFNJUCkgc3VwcG9ydHMgbXVsdGlwbGUgdHJhbnNwb3J0
cyBydW5uaW5nIGJvdGggb3ZlciBJUHY0IGFuZCBJUHY2IHByb3RvY29scy4gSW4gbW9yZSBh
bmQgbW9yZSBjYXNlcywgYSBTSVAgdXNlciBhZ2VudCAoVUEpIGlzIGNvbm5lY3RlZCB0byBu
ZXR3b3JrIGludGVyZmFjZXMgd2l0aCBtdWx0aXBsZSBhZGRyZXNzIGZhbWlsaWVzLiBJbiB0
aGVzZSBjYXNlcyBzZW5kaW5nIGEgbWVzc2FnZSBmcm9tIGEgZHVhbCBzdGFjayBjbGllbnQg
dG8gYSBkdWFsIHN0YWNrIHNlcnZlciBtYXkgc3VmZmVyIGZyb20gdGhlIGlzc3VlcyBkZXNj
cmliZWQgaW4gW1JGQzY1NTVdICgmcXVvdDtIYXBweSBFeWViYWxscyZxdW90Oyk6IHRoZSBV
QSBhdHRlbXB0cyB0byBzZW5kIHRoZSBtZXNzYWdlIHVzaW5nIElQdjYsIGJ1dCBJUHY2IGNv
bm5lY3Rpdml0eSBpcyBub3Qgd29ya2luZyB0byB0aGUgc2VydmVyLiBUaGlzIGNhbiBjYXVz
ZSBzaWduaWZpY2FudCBkZWxheXMgaW4gdGhlIHByb2Nlc3Mgb2Ygc2VuZGluZyB0aGUgbWVz
c2FnZSB0byB0aGUgc2VydmVyLiBUaGlzIG5lZ2F0aXZlbHkgYWZmZWN0cyB0aGUgdXNlciYj
Mzk7cyBleHBlcmllbmNlLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBF
eHBpcmVkPGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0i
amF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMzEnKSIgaWQ9ImlkMzFiIj48c3BhbiBj
bGFzcz0iaWR0aXRsZSI+VW5pZm9ybSBpbmZvcm1hdGlvbiB3aXRoIGEgaHlicmlkIG5hbWlu
ZyAoaG4pIHNjaGVtZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXpoYW5n
LWljbnJnLWhuKTwvc3Bhbj4KPGRpdiBpZD0iaWQzMSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5
bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBIb25nLUtlIFpoYW5nLCBGZWkgICBTb25nLCBX
ZWkgUXVhbiwgSmlhbmZlbmcgR3VhbiwgQ2hhbmdxaWFvIFh1LCAyMDE3LTA0LTA1ICZuYnNw
OyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LXpoYW5n
LWljbnJnLWhuLTA2LnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtemhhbmctaWNucmctaG4tMDYuaHRtbCIg
Y2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9wZGYvZHJhZnQtemhhbmctaWNucmctaG4tMDYucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8
L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZWZpbmVzIGEgaHlicmlkIG5h
bWluZyBzY2hlbWUgZm9yIHVuaWZ5aW5nIGFsbCBraW5kcyBvZiBpbmZvcm1hdGlvbiBpbmNs
dWRpbmcgcmVzb3VyY2VzLCBzZXJ2aWNlcyBhbmQgZGF0YS4gV2l0aCBtYW55IHByb3Bvc2Fs
cyBvZiBub3ZlbCBuZXR3b3JrIGFyY2hpdGVjdHVyZXMgZW1lcmdpbmcsIHN1Y2ggYXMgRE9O
QSwgSUNOIE5ETiwgdGhlIGxvY2F0aW9uLWJhc2VkIHJvdXRpbmcgc3RhcnRzIHRvIHRyYW5z
ZmVyIHRvIHRoZSBjb250ZW50LSBiYXNlZCBvbmVzLiBDdXJyZW50bHksIGl0IGlzIGluY29t
cGF0aWJsZSB0aGF0IG1hbnkgZGlmZmVyZW50IGluZm9ybWF0aW9uIG5hbWluZyBzY2hlbWVz
IGFyZSBhZG9wdGVkIGluIGRpZmZlcmVudCBuZXR3b3JrIHByb3Bvc2FscywgcmVzcGVjdGl2
ZWx5LCBpLmUuIGZsYXQgbmFtZXMgaW4gRE9OQSwgaGllcmFyY2hpY2FsIG5hbWVzIGluIE5E
Ti4gVGhlIHByb3Bvc2VkIG5hbWluZyBzY2hlbWUgYWRvcHRzIGEgaHlicmlkIG5hbWluZyBz
dHJ1Y3R1cmUsIHdoaWNoIGluY2x1ZGVzIGhpZXJhcmNoaWNhbCBjb21wb25lbnQsIGZsYXQg
Y29tcG9uZW50IGFuZCBhdHRyaWJ1dGUgY29tcG9uZW50LiBUaGUgaHlicmlkIG5hbWluZyAo
aG4pIHNjaGVtZSBlbmFibGVzIHRvIGlkZW50aWZ5IGRpZmZlcmVudCByb3V0aW5nIGluZm9y
bWF0aW9uIHVuaWZvcm1seSwgYW5kIHByb3ZpZGVzIG1hbnkgZ3JlYXQgYWR2YW50YWdlcywg
c3VjaCBhcyBoaWdoIGFnZ3JlZ2F0aW9uLCBsaW1pdGVkIGxlbmd0aCwgc3VmZml4IGhvbGVz
IHJlbWlzc2lvbiwgZnV6enkgbWF0Y2hpbmcgc3VwcG9ydCwgaGlnaCBzZWN1cml0eSBhbmQg
Z29vZCBjb21wYXRpYmlsaXR5IHdpdGggSVB2NC9JUHY2LCBET05BLCBDQ04vTkROIGFuZCBz
byBvbi48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxiciAv
Pgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCjwvdWw+CgoKCjxkaXYgaWQ9ImRhaWx5ZG9z
ZV9jb2wxX2VuZCI+PC9kaXY+Cgo8L3RkPgoKPHRkIGNsYXNzPSJkYWlseWRvc2VfbmV3cyIg
aWQ9ImRhaWx5ZG9zZV9jb2wyIj4KCgoKCgo8aDI+RHJhZnRzIFNlbnQgdG8gSUVTRzwvaDI+
Cgo8aDI+SUVTRyBQcm9ncmVzczwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBv
bmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzMicpIiBpZD0iaWQzMmIi
PjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5DTFVFIHByb3RvY29sPC9zcGFuPiA8c3BhbiBjbGFz
cz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1jbHVlLXByb3RvY29sKTwvc3Bhbj46IEFEIEV2YWx1
YXRpb246OlJldmlzZWQgSS1EIE5lZWRlZCAmcmFxdW87IDo6QUQgRm9sbG93dXAKPGRpdiBp
ZD0iaWQzMiIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5
ICBSb2JlcnRhIFByZXN0YSwgU2ltb24gUm9tYW5vLCAyMDE3LTEwLTA2ICZuYnNwOyA8YSBo
cmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtY2x1ZS1w
cm90b2NvbC0xNC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtY2x1ZS1wcm90b2NvbC0xNC5odG1s
IiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYu
b3JnL3BkZi9kcmFmdC1pZXRmLWNsdWUtcHJvdG9jb2wtMTQucGRmIiBjbGFzcz0iZm9ybWF0
Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhlIENMVUUgcHJvdG9jb2wgaXMgYW4gYXBw
bGljYXRpb24gcHJvdG9jb2wgY29uY2VpdmVkIGZvciB0aGUgZGVzY3JpcHRpb24gYW5kIG5l
Z290aWF0aW9uIG9mIGEgdGVsZXByZXNlbmNlIHNlc3Npb24uIFRoZSBkZXNpZ24gb2YgdGhl
IENMVUUgcHJvdG9jb2wgdGFrZXMgaW50byBhY2NvdW50IHRoZSByZXF1aXJlbWVudHMgYW5k
IHRoZSBmcmFtZXdvcmsgZGVmaW5lZCB3aXRoaW4gdGhlIElFVEYgQ0xVRSB3b3JraW5nIGdy
b3VwLiBBIGNvbXBhbmlvbiBkb2N1bWVudCBkZWx2ZXMgaW50byBDTFVFIHNpZ25hbGluZyBk
ZXRhaWxzLCBhcyB3ZWxsIGFzIG9uIHRoZSBTSVAvIFNEUCBzZXNzaW9uIGVzdGFibGlzaG1l
bnQgcGhhc2UuIENMVUUgbWVzc2FnZXMgZmxvdyBvdmVyIHRoZSBDTFVFIGRhdGEgY2hhbm5l
bCwgYmFzZWQgb24gcmVsaWFibGUgYW5kIG9yZGVyZWQgU0NUUCBvdmVyIERUTFMgdHJhbnNw
b3J0LiBNZXNzYWdlIGRldGFpbHMsIHRvZ2V0aGVyIHdpdGggdGhlIGJlaGF2aW9yIG9mIENM
VUUgUGFydGljaXBhbnRzIGFjdGluZyBhcyBNZWRpYSBQcm92aWRlcnMgYW5kL29yIE1lZGlh
IENvbnN1bWVycywgYXJlIGhlcmVpbiBkaXNjdXNzZWQuPC9wPgo8ZGl2IGNsYXNzPSJpZHRv
b2xzIj4KPHA+U3RhdGU6IEFEIEV2YWx1YXRpb246OkFEIEZvbGxvd3VwPGJyIC8+CjxhIGhy
ZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2RyYWZ0LWlldGYt
Y2x1ZS1wcm90b2NvbC8iPklEIFRyYWNrZXIgJnJhcXVvOzwvYT4gJm5ic3A7IAo8YSBocmVm
PSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2ZlZWQvY29tbWVudHMvZHJhZnQtaWV0
Zi1jbHVlLXByb3RvY29sLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9jbHVlL2RyYWZ0LWlldGYtY2x1ZS1wcm90
b2NvbCI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL3dnL2NsdWUvIj5DTFVFIFdHICZyYXF1bzs8L2E+PGJyIC8+
CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0
b2dnbGVJZERldGFpbHMoJ2lkMzMnKSIgaWQ9ImlkMzNiIj48c3BhbiBjbGFzcz0iaWR0aXRs
ZSI+U2VjdXJlL011bHRpcHVycG9zZSBJbnRlcm5ldCBNYWlsIEV4dGVuc2lvbnMgKFMvTUlN
RSkgVmVyc2lvbiA0LjAgTWVzc2FnZSBTcGVjaWZpY2F0aW9uPC9zcGFuPiA8c3BhbiBjbGFz
cz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1sYW1wcy1yZmM1NzUxLWJpcyk8L3NwYW4+OiBBRCBF
dmFsdWF0aW9uICZyYXF1bzsgOjpSZXZpc2VkIEktRCBOZWVkZWQKPGRpdiBpZD0iaWQzMyIg
Y2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBKaW0gU2No
YWFkLCBCbGFrZSBSYW1zZGVsbCwgU2VhbiBUdXJuZXIsIDIwMTctMDQtMTQgJm5ic3A7IDxh
IGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1sYW1w
cy1yZmM1NzUxLWJpcy0wNi50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtbGFtcHMtcmZjNTc1MS1i
aXMtMDYuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1sYW1wcy1yZmM1NzUxLWJpcy0wNi5wZGYi
IGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3VtZW50
IGRlZmluZXMgU2VjdXJlL011bHRpcHVycG9zZSBJbnRlcm5ldCBNYWlsIEV4dGVuc2lvbnMg
KFMvTUlNRSkgdmVyc2lvbiA0LjAuIFMvTUlNRSBwcm92aWRlcyBhIGNvbnNpc3RlbnQgd2F5
IHRvIHNlbmQgYW5kIHJlY2VpdmUgc2VjdXJlIE1JTUUgZGF0YS4gRGlnaXRhbCBzaWduYXR1
cmVzIHByb3ZpZGUgYXV0aGVudGljYXRpb24sIG1lc3NhZ2UgaW50ZWdyaXR5LCBhbmQgbm9u
LXJlcHVkaWF0aW9uIHdpdGggcHJvb2Ygb2Ygb3JpZ2luLiBFbmNyeXB0aW9uIHByb3ZpZGVz
IGRhdGEgY29uZmlkZW50aWFsaXR5LiBDb21wcmVzc2lvbiBjYW4gYmUgdXNlZCB0byByZWR1
Y2UgZGF0YSBzaXplLiBUaGlzIGRvY3VtZW50IG9ic29sZXRlcyBSRkMgNTc1MS48L3A+Cjxk
aXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogQUQgRXZhbHVhdGlvbjo6UmV2aXNlZCBJ
LUQgTmVlZGVkPGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcv
aWR0cmFja2VyL2RyYWZ0LWlldGYtbGFtcHMtcmZjNTc1MS1iaXMvIj5JRCBUcmFja2VyICZy
YXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y
Zy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtbGFtcHMtcmZjNTc1MS1iaXMvIiBjbGFzcz0i
Zm9ybWF0Ij5BVE9NPC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3dnL2xhbXBzL2RyYWZ0LWlldGYtbGFtcHMtcmZjNTc1MS1iaXMiPkRvY3VtZW50IGRldGFp
bHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93
Zy9sYW1wcy8iPkxBTVBTIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2
Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lk
MzQnKSIgaWQ9ImlkMzRiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+TGFiZWwgU3dpdGNoZWQg
UGF0aCAoTFNQKSBQaW5nL1RyYWNlcm91dGUgZm9yIFNlZ21lbnQgUm91dGluZyBJR1AgUHJl
Zml4IGFuZCBBZGphY2VuY3kgU0lEcyB3aXRoIE1QTFMgRGF0YS1wbGFuZTwvc3Bhbj4gPHNw
YW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtbXBscy1zcHJpbmctbHNwLXBpbmcpPC9z
cGFuPjogSW4gTGFzdCBDYWxsICZyYXF1bzsgSUVTRyBFdmFsdWF0aW9uCjxkaXYgaWQ9Imlk
MzQiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgTmFn
ZW5kcmEgS3VtYXIsIENhcmxvcyBQaWduYXRhcm8sICAgR2VvcmdlIFN3YWxsb3csIE5vYm8g
QWtpeWEsIFNyaWdhbmVzaCBLaW5pLCBNYWNoIENoZW4sIDIwMTctMDktMjcgJm5ic3A7IDxh
IGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1tcGxz
LXNwcmluZy1sc3AtcGluZy0xMS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtbXBscy1zcHJpbmct
bHNwLXBpbmctMTEuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1tcGxzLXNwcmluZy1sc3AtcGlu
Zy0xMS5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBBIFNl
Z21lbnQgUm91dGluZyBhcmNoaXRlY3R1cmUgbGV2ZXJhZ2VzIHNvdXJjZSByb3V0aW5nIGFu
ZCB0dW5uZWxpbmcgcGFyYWRpZ21zIGFuZCBjYW4gYmUgZGlyZWN0bHkgYXBwbGllZCB0byB1
c2Ugb2YgYSBNdWx0aSBQcm90b2NvbCBMYWJlbCBTd2l0Y2hpbmcgKE1QTFMpIGRhdGEgcGxh
bmUuIEEgbm9kZSBzdGVlcnMgYSBwYWNrZXQgdGhyb3VnaCBhIGNvbnRyb2xsZWQgc2V0IG9m
IGluc3RydWN0aW9ucyBjYWxsZWQgc2VnbWVudHMsIGJ5IHByZXBlbmRpbmcgdGhlIHBhY2tl
dCB3aXRoIGEgU2VnbWVudCBSb3V0aW5nIGhlYWRlci48L3A+CjxkaXYgY2xhc3M9ImlkdG9v
bHMiPgo8cD5TdGF0ZTogSUVTRyBFdmFsdWF0aW9uPGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8v
ZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2RyYWZ0LWlldGYtbXBscy1zcHJpbmct
bHNwLXBpbmcvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtbXBs
cy1zcHJpbmctbHNwLXBpbmcvIiBjbGFzcz0iZm9ybWF0Ij5BVE9NPC9hPjxiciAvPgo8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL21wbHMvZHJhZnQtaWV0Zi1tcGxzLXNw
cmluZy1sc3AtcGluZyI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL21wbHMvIj5NUExTIFdHICZyYXF1bzs8
L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2
YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMzUnKSIgaWQ9ImlkMzViIj48c3BhbiBjbGFz
cz0iaWR0aXRsZSI+VHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIEV4dGVuc2lvbiBm
b3IgVG9rZW4gQmluZGluZyBQcm90b2NvbCBOZWdvdGlhdGlvbjwvc3Bhbj4gPHNwYW4gY2xh
c3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtdG9rYmluZC1uZWdvdGlhdGlvbik8L3NwYW4+OiBQ
dWJsaWNhdGlvbiBSZXF1ZXN0ZWQgJnJhcXVvOyBBRCBFdmFsdWF0aW9uOjpSZXZpc2VkIEkt
RCBOZWVkZWQKPGRpdiBpZD0iaWQzNSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CjxwPkJ5ICBBbmRyZXkgUG9wb3YsIE1hZ251cyBOeXN0cm9tLCBEaXJrIEJh
bGZhbnosIEFkYW0gTGFuZ2xleSwgICAyMDE3LTA3LTIwICZuYnNwOyA8YSBocmVmPSJodHRw
czovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtdG9rYmluZC1uZWdvdGlh
dGlvbi0wOS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtdG9rYmluZC1uZWdvdGlhdGlvbi0wOS5o
dG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL3BkZi9kcmFmdC1pZXRmLXRva2JpbmQtbmVnb3RpYXRpb24tMDkucGRmIiBjbGFz
cz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBzcGVj
aWZpZXMgYSBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUykgZXh0ZW5zaW9uIGZvciB0
aGUgbmVnb3RpYXRpb24gb2YgVG9rZW4gQmluZGluZyBwcm90b2NvbCB2ZXJzaW9uIGFuZCBr
ZXkgcGFyYW1ldGVycy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogQUQg
RXZhbHVhdGlvbjo6UmV2aXNlZCBJLUQgTmVlZGVkPGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8v
ZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2RyYWZ0LWlldGYtdG9rYmluZC1uZWdv
dGlhdGlvbi8iPklEIFRyYWNrZXIgJnJhcXVvOzwvYT4gJm5ic3A7IAo8YSBocmVmPSJodHRw
czovL2RhdGF0cmFja2VyLmlldGYub3JnL2ZlZWQvY29tbWVudHMvZHJhZnQtaWV0Zi10b2ti
aW5kLW5lZ290aWF0aW9uLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy90b2tiaW5kL2RyYWZ0LWlldGYtdG9rYmlu
ZC1uZWdvdGlhdGlvbiI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL3Rva2JpbmQvIj5UT0tCSU5EIFdHICZy
YXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGlj
az0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMzYnKSIgaWQ9ImlkMzZiIj48c3Bh
biBjbGFzcz0iaWR0aXRsZSI+VGhlIFRva2VuIEJpbmRpbmcgUHJvdG9jb2wgVmVyc2lvbiAx
LjA8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLXRva2JpbmQtcHJv
dG9jb2wpPC9zcGFuPjogUHVibGljYXRpb24gUmVxdWVzdGVkICZyYXF1bzsgQUQgRXZhbHVh
dGlvbjo6UmV2aXNlZCBJLUQgTmVlZGVkCjxkaXYgaWQ9ImlkMzYiIGNsYXNzPSJpZGRldGFp
bHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgQW5kcmV5IFBvcG92LCBNYWdudXMg
TnlzdHJvbSwgICBEaXJrIEJhbGZhbnosIEFkYW0gTGFuZ2xleSwgSmVmZiBIb2RnZXMsIDIw
MTctMDctMjAgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUv
aWQvZHJhZnQtaWV0Zi10b2tiaW5kLXByb3RvY29sLTE1LnR4dCIgY2xhc3M9ImZvcm1hdCI+
VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi10b2tiaW5kLXByb3RvY29sLTE1Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtdG9rYmluZC1w
cm90b2NvbC0xNS5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0
OiBUaGlzIGRvY3VtZW50IHNwZWNpZmllcyBWZXJzaW9uIDEuMCBvZiB0aGUgVG9rZW4gQmlu
ZGluZyBwcm90b2NvbC4gVGhlIFRva2VuIEJpbmRpbmcgcHJvdG9jb2wgYWxsb3dzIGNsaWVu
dC9zZXJ2ZXIgYXBwbGljYXRpb25zIHRvIGNyZWF0ZSBsb25nLWxpdmVkLCB1bmlxdWVseSBp
ZGVudGlmaWFibGUgVExTIGJpbmRpbmdzIHNwYW5uaW5nIG11bHRpcGxlIFRMUyBzZXNzaW9u
cyBhbmQgY29ubmVjdGlvbnMuIEFwcGxpY2F0aW9ucyBhcmUgdGhlbiBlbmFibGVkIHRvIGNy
eXB0b2dyYXBoaWNhbGx5IGJpbmQgc2VjdXJpdHkgdG9rZW5zIHRvIHRoZSBUTFMgbGF5ZXIs
IHByZXZlbnRpbmcgdG9rZW4gZXhwb3J0IGFuZCByZXBsYXkgYXR0YWNrcy4gVG8gcHJvdGVj
dCBwcml2YWN5LCB0aGUgVG9rZW4gQmluZGluZyBpZGVudGlmaWVycyBhcmUgb25seSBjb252
ZXllZCBvdmVyIFRMUyBhbmQgY2FuIGJlIHJlc2V0IGJ5IHRoZSB1c2VyIGF0IGFueSB0aW1l
LjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBBRCBFdmFsdWF0aW9uOjpS
ZXZpc2VkIEktRCBOZWVkZWQ8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5p
ZXRmLm9yZy9pZHRyYWNrZXIvZHJhZnQtaWV0Zi10b2tiaW5kLXByb3RvY29sLyI+SUQgVHJh
Y2tlciAmcmFxdW87PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIu
aWV0Zi5vcmcvZmVlZC9jb21tZW50cy9kcmFmdC1pZXRmLXRva2JpbmQtcHJvdG9jb2wvIiBj
bGFzcz0iZm9ybWF0Ij5BVE9NPC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL3dnL3Rva2JpbmQvZHJhZnQtaWV0Zi10b2tiaW5kLXByb3RvY29sIj5Eb2N1bWVu
dCBkZXRhaWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvd2cvdG9rYmluZC8iPlRPS0JJTkQgV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8
L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlk
RGV0YWlscygnaWQzNycpIiBpZD0iaWQzN2IiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5JQU5B
IFJlZ2lzdHJhdGlvbiBmb3IgRG9uYXRlZCBTeW1hbnRlYyBXZWJzaXRlIFNlY3VyaXR5IE9i
amVjdCBJZGVudGlmaWVyIFJhbmdlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJh
ZnQtc2NoYWFkLWN1cmRsZS1vaWQtcmVnaXN0cnkpPC9zcGFuPjogUHVibGljYXRpb24gUmVx
dWVzdGVkICZyYXF1bzsgTGFzdCBDYWxsIFJlcXVlc3RlZAo8ZGl2IGlkPSJpZDM3IiBjbGFz
cz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEppbSBTY2hhYWQs
IFJpY2sgQW5kcmV3cywgMjAxNy0wOS0xMiAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cu
aWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeS0w
Mi50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL2RyYWZ0LXNjaGFhZC1jdXJkbGUtb2lkLXJlZ2lzdHJ5LTAyLmh0bWwi
IGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvcGRmL2RyYWZ0LXNjaGFhZC1jdXJkbGUtb2lkLXJlZ2lzdHJ5LTAyLnBkZiIgY2xhc3M9
ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFdoZW4gdGhlIEN1cmRsZSBTZWN1
cml0eSBXb3JraW5nIEdyb3VwIHdhcyBjaGFydGVyZWQsIGEgcmFuZ2Ugb2Ygb2JqZWN0IGlk
ZW50aWZpZXJzIHdhcyBkb25hdGVkIGJ5IFN5bWFudGVjIFdlYnNpdGUgU2VjdXJpdHkgZm9y
IHRoZSBwdXJwb3NlIG9mIHJlZ2lzdGVyaW5nIHRoZSBFZHdhcmRzIEVsbGlwdGljIEN1cnZl
IGtleSBhZ3JlZW1lbnQgYW5kIHNpZ25hdHVyZSBhbGdvcml0aG1zLiBUaGlzIGRvbmF0ZWQg
c2V0IG9mIE9JRHMgYWxsb3dlZCBmb3Igc2hvcnRlciB2YWx1ZXMgdGhhbiB3b3VsZCBiZSBw
b3NzaWJsZSB1c2luZyB0aGUgZXhpc3RpbmcgUy9NSU1FIG9yIFBLSVggYXJjcy4gVGhpcyBk
b2N1bWVudCBkZXNjcmliZXMgdGhlIHJhbmdlIG9mIGlkZW50aWZpZXJzIHRoYXQgd2VyZSBh
c3NpZ25lZCBpbiB0aGF0IGRvbmF0ZWQgcmFuZ2UsIHRyYW5zZmVycyBjb250cm9sIG9mIHRo
YXQgcmFuZ2UgdG8gSUFOQSwgYW5kIGVzdGFibGlzaGVzIElBTkEgYWxsb2NhdGlvbiBwb2xp
Y2llcyBmb3IgYW55IGZ1dHVyZSBhc3NpZ25tZW50cyB3aXRoaW4gdGhhdCByYW5nZS48L3A+
CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogTGFzdCBDYWxsIFJlcXVlc3RlZDxi
ciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9k
cmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeS8iPklEIFRyYWNrZXIgJnJhcXVvOzwv
YT4gJm5ic3A7IAo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2ZlZWQv
Y29tbWVudHMvZHJhZnQtc2NoYWFkLWN1cmRsZS1vaWQtcmVnaXN0cnkvIiBjbGFzcz0iZm9y
bWF0Ij5BVE9NPC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCjwvdWw+Cgo8
aDI+RHJhZnRzIFNlbnQgdG8gUkZDIEVkaXRvcjwvaDI+CjxoMj5PdGhlciBTdGF0dXMgQ2hh
bmdlczwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBvbmNsaWNrPSJqYXZhc2Ny
aXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzOCcpIiBpZD0iaWQzOGIiPjxzcGFuIGNsYXNzPSJp
ZHRpdGxlIj5FQ01BU2NyaXB0IE1lZGlhIFR5cGVzIFVwZGF0ZXM8L3NwYW4+IDxzcGFuIGNs
YXNzPSJpZG5hbWUiPihkcmFmdC1iZmFyaWFzLWphdmFzY3JpcHQtbWpzKTwvc3Bhbj46IEFj
dGl2ZSAmcmFxdW87IFJlcGxhY2VkIGJ5IGRyYWZ0LWlldGYtZGlzcGF0Y2gtamF2YXNjcmlw
dC1tanMKPGRpdiBpZD0iaWQzOCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CjxwPkJ5ICBCcmFkbGV5IEZhcmlhcywgTWF0dGhldyBNaWxsZXIsICAgMjAxNy0w
OC0yNCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9k
cmFmdC1iZmFyaWFzLWphdmFzY3JpcHQtbWpzLTAxLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhU
PC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYmZhcmlh
cy1qYXZhc2NyaXB0LW1qcy0wMS5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1iZmFyaWFzLWphdmFzY3Jp
cHQtbWpzLTAxLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6
IFRoaXMgZG9jdW1lbnQgcHJvcG9zZXMgdXBkYXRlcyB0byB0aGUgRUNNQVNjcmlwdCBtZWRp
YSB0eXBlcywgc3VwZXJzZWRpbmcgdGhlIGV4aXN0aW5nIHJlZ2lzdHJhdGlvbnMgZm9yICZx
dW90O2FwcGxpY2F0aW9uL2phdmFzY3JpcHQmcXVvdDsgYW5kICZxdW90O3RleHQvamF2YXNj
cmlwdCZxdW90OyBieSBhZGRpbmcgYW4gYWRkaXRpb25hbCBleHRlbnNpb24gYW5kIHJlbW92
aW5nIHVzYWdlIHdhcm5pbmdzLiBUaGlzIGRvY3VtZW50IHVwZGF0ZXMgUkZDNDMyOSwgJnF1
b3Q7U2NyaXB0aW5nIE1lZGlhIFR5cGVzJnF1b3Q7LjwvcD4KPGRpdiBjbGFzcz0iaWR0b29s
cyI+CjxwPlN0YXRlOiBSZXBsYWNlZCBieSBkcmFmdC1pZXRmLWRpc3BhdGNoLWphdmFzY3Jp
cHQtbWpzPGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0i
amF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMzknKSIgaWQ9ImlkMzliIj48c3BhbiBj
bGFzcz0iaWR0aXRsZSI+VFJJTEw6IFBhcmVudCBub2RlIFNoaWZ0cyBpbiBUcmVlIENvbnN0
cnVjdGlvbiwgTWl0aWdhdGlvbi48L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFm
dC1ycC10cmlsbC1wYXJlbnQtc2VsZWN0aW9uKTwvc3Bhbj46IEFjdGl2ZSAmcmFxdW87IFJl
cGxhY2VkIGJ5IGRyYWZ0LWlldGYtdHJpbGwtcGFyZW50LXNlbGVjdGlvbgo8ZGl2IGlkPSJp
ZDM5IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFIu
ICAgUGFyYW1lc3dhcmFuLCAyMDE3LTA0LTIyICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3
dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LXJwLXRyaWxsLXBhcmVudC1zZWxlY3Rpb24t
MDMudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9kcmFmdC1ycC10cmlsbC1wYXJlbnQtc2VsZWN0aW9uLTAzLmh0bWwi
IGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvcGRmL2RyYWZ0LXJwLXRyaWxsLXBhcmVudC1zZWxlY3Rpb24tMDMucGRmIiBjbGFzcz0i
Zm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkcmFmdCBkb2N1bWVudHMg
YSBrbm93biBwcm9ibGVtIGluIHRoZSBUUklMTCB0cmVlIGNvbnN0cnVjdGlvbiBtZWNoYW5p
c20gYW5kIG9mZmVycyBhbiBhcHByb2FjaCByZXF1aXJpbmcgbm8gY2hhbmdlIHRvIHRoZSBU
UklMTCBwcm90b2NvbCBpbiBvcmRlciB0byBzb2x2ZSB0aGUgcHJvYmxlbS48L3A+CjxkaXYg
Y2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogUmVwbGFjZWQgYnkgZHJhZnQtaWV0Zi10cmls
bC1wYXJlbnQtc2VsZWN0aW9uPGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKPC91
bD4KCjxoMj5SRkMgRWRpdG9yIFN0YXR1cyBDaGFuZ2VzPC9oMj4KPGgyPjxhIGhyZWY9Imh0
dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVlZC9pcHIvIj48aW1nIHNyYz0iZmVlZGlj
b24xNi5wbmciIGFsaWduPSJyaWdodCIgYWx0PSJbRmVlZF0iIC8+PC9hPiBJUFIgRGlzY2xv
c3VyZXM8L2gyPgoKPHVsIGNsYXNzPSJsaW5rcyI+CiAgPGxpPjxhIGhyZWY9Imh0dHBzOi8v
ZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaXByLzMwNzcvIj5BcHBsZSBJbmMuJiMzOTtzIFN0YXRl
bWVudCBhYm91dCBJUFIgcmVsYXRlZCB0byBkcmFmdC1pZXRmLXY2b3BzLXJmYzY1NTViaXM8
L2E+IDxzcGFuIGNsYXNzPSJhdXRob3IiPigoU3lzdGVtKSk8L3NwYW4+PC9saT4KPC91bD4K
CjxkaXYgY2xhc3M9Im1vcmUiPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5v
cmcvaXByLyI+bW9yZSBJUFIgZGlzY2xvc3VyZXMgJnJhcXVvOzwvYT48L2Rpdj4KCjxoMj5J
RVNHL0lBQi9JQU9DL1RydXN0IE1pbnV0ZXM8L2gyPgo8ZGl2IGNsYXNzPSJtb3JlIj5tb3Jl
IG1pbnV0ZXM6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2llc2cvbWludXRlcy5o
dG1sIj5JRVNHICZyYXF1bzs8L2E+ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pYWIu
b3JnL2RvY3VtZW50cy9taW51dGVzLyI+SUFCICZyYXF1bzs8L2E+ICZuYnNwOyA8YSBocmVm
PSJodHRwczovL2lhb2MuaWV0Zi5vcmcvbWludXRlcy5odG1sIj5JQU9DICZyYXF1bzs8L2E+
ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3RydXN0ZWUuaWV0Zi5vcmcvbWludXRlcy5odG1s
Ij5UcnVzdCAmcmFxdW87PC9hPjwvZGl2PgoKPGgyPkxpYWlzb24gU3RhdGVtZW50czwvaDI+
CjxkaXYgY2xhc3M9Im1vcmUiPjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5v
cmcvbGlhaXNvbi8iPm1vcmUgbGlhaXNvbiBzdGF0ZW1lbnRzICZyYXF1bzs8L2E+PC9kaXY+
CjwhLS0gREFJTFkgQ09OVEVOVCBFTkRTIC0tPgoKCjxoMj5DbGFzc2lmaWVkIEFkczwvaDI+
CgoKCgoKCgo8L3RkPjwvdHI+PC90YWJsZT4KCjxkaXYgY2xhc3M9ImRhaWx5ZG9zZV90cmFp
bGVyMSIgaWQ9ImRhaWx5ZG9zZV90cmFpbGVyMSI+Cjx0YWJsZSBjbGFzcz0iZGFpbHlkb3Nl
X3RyYWlsZXIyIj4KPHRyPjx0ZD4KCjxwPlRoZSBEYWlseSBEb3NlIG9mIElFVEYgaXMgYnJv
dWdodCB0byB5b3UgYnkgUGFzaSBFcm9uZW4uPGJyIC8+Ckxhc3QgdXBkYXRlZCAyMDE3LTEw
LTA5IDA1OjAxOjIwIEdNVC4KPGEgaHJlZj0iYWJvdXQuaHRtbCI+bW9yZSBpbmZvICYjMTg3
OzwvYT48L3A+CgoJICA8IS0tIFNwb25zb3JzIC0tPgoJICA8ZGl2IGNsYXNzPSJzcG9uc29y
Ij4KCSAgICAgVGhlIGhhcmR3YXJlIGFuZCBiYW5kd2lkdGggZm9yIHRoZSA2IHRvb2xzLmll
dGYub3JnIHNlcnZlcnMgaGF2ZSBiZWVuIGtpbmRseSBwcm92aWRlZCBieTo8YnIgLz4KCSAg
ICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6IDAgMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0
b3A6IDEycHg7ICI+CgkJPGEgaHJlZj0iaHR0cDovL3d3dy5pc29jLm9yZyI+PGltZyBhbHQ9
IklTT0MiIHNyYz0iL2ltYWdlcy9pc29jLXNtYWxsLmdpZiIgc3R5bGU9Im1hcmdpbjogMCI+
PC9hPgoJICAgICA8L3NwYW4+CgkgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7
IGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEwcHQ7IGZv
bnQtc3R5bGU6IGl0YWxpYzsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC00cHg7Ij4KCQlI
ZW5yaWsgTGV2a293ZXR6CgkgICAgIDwvc3Bhbj4KCSAgICAgPHNwYW4gc3R5bGU9InBhZGRp
bmc6IDAgMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDJweDsiPgoJCTxhIGhyZWY9
Imh0dHA6Ly93d3cuZXJpY3Nzb24uY29tLyI+PGltZyBzcmM9Ii9pbWFnZXMvZXJpY3Nzb25f
aG9yaXpvbnRhbF85NnB4LnBuZyIgYWx0PSJFcmljc3NvbiIgc3R5bGU9Im1hcmdpbjogMCIg
PjwvYT4KCSAgICAgPC9zcGFuPgoJICAgICA8c3BhbiBzdHlsZT0icGFkZGluZzogMCAxMHB4
OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMTZweDsgbGVmdDogMTBweDsiPgoJCTxhIGhy
ZWY9Imh0dHA6Ly93d3cubmV0bm9kLnNlLyI+PGltZyBzcmM9Ii9pbWFnZXMvbmV0bm9kbG9n
by5naWYiIGFsdD0iTmV0bm9kIiBzdHlsZT0ibWFyZ2luOiAwIiB3aWR0aD0iNjkiPjwvYT4K
CSAgICAgPC9zcGFuPgoJICAgICA8c3BhbiBzdHlsZT0icGFkZGluZzogMCAxMHB4OyBwb3Np
dGlvbjogcmVsYXRpdmU7IHRvcDogMTZweDsgbGVmdDogMTBweDsiPgoJCTxhIGhyZWY9Imh0
dHA6Ly93d3cubmFvLmFjLmpwL0UvIj48aW1nIHNyYz0iL2ltYWdlcy9uYW9qbG9nby5wbmci
IGFsdD0iTmF0aW9uYWwgQXN0cm9ub21pY2FsIE9ic2VydmF0b3J5IG9mIEphcGFuIiBzdHls
ZT0ibWFyZ2luOiAwIiB3aWR0aD0iNjkiPjwvYT4KCSAgICAgPC9zcGFuPgoJICA8L2Rpdj4K
Cgo8L3RkPjwvdHI+PC90YWJsZT4KPC9kaXY+IDwhLS0gZGFpbHlkb3NlX3RyYWlsZXIxIC0t
PgoKPC9kaXY+IDwhLS0gZGFpbHlkb3NlIC0tPgoKPC90ZD48L3RyPgo8L3RhYmxlPgoKPC9k
aXY+IDwhLS0gcGFnZSAtLT4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88
IVtDREFUQVsKCmZ1bmN0aW9uIGRhaWx5RG9zZVNpbmdsZUNvbHVtbigpIHsKICAvLyBtb3Zl
IHRleHQgZnJvbSAybmQgY29sdW1uIHRvIDFzdAogIHZhciBjb2wxID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRhaWx5ZG9zZV9jb2wxIik7CiAgdmFyIGNvbDIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZGFpbHlkb3NlX2NvbDIiKTsKICBjb2wxLmFwcGVuZENoaWxkKGNv
bDIpOwoKICAvLyByZW1vdmUgdW5uZWVkZWQgcGFkZGluZywgYWRqdXN0IHdpZHRoCiAgdmFy
IGNvbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGFpbHlkb3NlX2NvbHMiKTsKICB2
YXIgYmFubmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhaWx5ZG9zZV9iYW5uZXIi
KTsKICB2YXIgdHJhaWxlcjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGFpbHlkb3Nl
X3RyYWlsZXIxIik7IAogIGNvbDEuc3R5bGUucGFkZGluZyA9ICIwIjsKICBjb2wyLnN0eWxl
LnBhZGRpbmcgPSAiMCI7CiAgY29scy5zdHlsZS5wYWRkaW5nID0gIjAiOwogIGJhbm5lci5z
dHlsZS5wYWRkaW5nID0gIjAiOwogIHRyYWlsZXIxLnN0eWxlLnBhZGRpbmcgPSAiMCI7CiAK
ICAvLyByZW1vdmUgbGVmdCBtZW51IGJhcgogIHZhciBlbHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgidGQiKTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGVscy5sZW5ndGg7
IGkrKykgeyAKICAgIGlmIChlbHNbaV0uY2xhc3NOYW1lID09ICJ3Z2xpc3QiKSB7CiAgICAg
IGVsc1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsc1tpXSk7CiAgICAgIGJyZWFrOwog
ICAgfQogIH0KCiAgLy8gU2NhbGUgZG93biB0aXRsZSBpZiB3aW5kb3cgaXMgcmVhbGx5IG5h
cnJvdwogIHZhciB0aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYWlseWRvc2Vf
dGl0bGUiKTsKICBpZiAoKHdpbmRvdy5pbm5lcldpZHRoICYmCiAgICAgICB0aXRsZS5jbGll
bnRXaWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB8fAogICAgICAoZG9jdW1lbnQuYm9keS5j
bGllbnRXaWR0aCAmJgogICAgICAgdGl0bGUuY2xpZW50V2lkdGggPiBkb2N1bWVudC5ib2R5
LmNsaWVudFdpZHRoKSkgewogICAgdmFyIHNjYWxlOwogICAgaWYgKHdpbmRvdy5pbm5lcldp
ZHRoKSB7CiAgICAgIHNjYWxlID0gKHdpbmRvdy5pbm5lcldpZHRoKjAuOCkgLyB0aXRsZS5j
bGllbnRXaWR0aDsKICAgIH0gZWxzZSB7CiAgICAgIHNjYWxlID0gKGRvY3VtZW50LmJvZHku
Y2xpZW50V2lkdGgqMC44KSAvIHRpdGxlLmNsaWVudFdpZHRoOwogICAgfQogICAgdGl0bGUu
c3R5bGUud2lkdGggPSBNYXRoLnJvdW5kKHRpdGxlLmNsaWVudFdpZHRoICogc2NhbGUpICsg
InB4IjsKICAgIHRpdGxlLnN0eWxlLmhlaWdodCA9IE1hdGgucm91bmQodGl0bGUuY2xpZW50
SGVpZ2h0ICogc2NhbGUpICsgInB4IjsKICB9Cn0KCmZ1bmN0aW9uIGRhaWx5RG9zZURyYWZ0
TmFtZUZpcnN0KCkgewogIHZhciBlbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgic3BhbiIpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxzLmxlbmd0aC0xOyBpKyspIHsK
ICAgIGlmICgoZWxzW2ldLmNsYXNzTmFtZSA9PSAiaWR0aXRsZSIpICYmCiAgICAgICAgKGVs
c1tpKzFdLmNsYXNzTmFtZSA9PSAiaWRuYW1lIikpIHsKICAgICAgCiAgICAgIC8vIHJlbW92
ZSBwYXJlbnRoZXNpcyBhcm91bmQgaWRuYW1lCiAgICAgIHZhciB0bXAgPSBlbHNbaSsxXS5p
bm5lckhUTUw7CiAgICAgIGlmICh0bXAuY2hhckF0KDApID09ICIoIikgewogICAgICAgIGVs
c1tpKzFdLmlubmVySFRNTCA9IHRtcC5zdWJzdHJpbmcoMSx0bXAubGVuZ3RoLTEpOwogICAg
ICB9CiAgICAgIGVsc1tpXS5pbm5lckhUTUwgPSAiKCIgKyBlbHNbaV0uaW5uZXJIVE1MICsg
IikiOwoKICAgICAgLy8gcmV2ZXJzZSBvcmRlciBhbmQgYWRkIGxpbmUgYnJlYWsKICAgICAg
ZWxzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsc1tpKzFdLCBlbHNbaV0pOwogICAg
ICBlbHNbaSsxXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJiciIpLCBlbHNbaSsxXSkKCiAgICAgIC8vIHJlbW92ZSBsZWFkaW5nICI6IiBmcm9t
IG5leHQgdGV4dCBlbGVtZW50IGFuZCBhZGQgbGluZSBicmVhawogICAgICB0bXAgPSBlbHNb
aSsxXS5uZXh0U2libGluZzsKICAgICAgd2hpbGUgKHRtcCkgewogICAgICAgICAgaWYgKHRt
cC5ub2RlVHlwZSA9PSAzKSB7CiAgICAgICAgICAgICB2YXIgaiA9IHRtcC5ub2RlVmFsdWUu
aW5kZXhPZigiOiIpOwogICAgICAgICAgICAgaWYgKGogPj0gMCAmJiBqIDw9IDEpIHsKICAg
ICAgICAgICAgICAgICB0bXAubm9kZVZhbHVlID0gdG1wLm5vZGVWYWx1ZS5zdWJzdHJpbmco
aisxKTsKICAgICAgICAgICAgICAgICB0bXAucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSwgdG1wKTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KICAgICAgICAgfSAKICAgICAgICAgdG1wID0gdG1wLm5leHRT
aWJsaW5nOwogICAgICB9CiAgICAKICAgICAgLy8gZml4IGZvbnQgc2l6ZQogICAgICBlbHNb
aV0uc3R5bGUuZm9udFNpemUgPSAiMTBwdCI7CiAgICAgIGVsc1tpKzFdLnN0eWxlLmZvbnRT
aXplID0gIjlwdCI7CiAgICB9CiAgfQp9CgppZiAoKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gu
aW5kZXhPZigic2luZ2xlY29sdW1uIikgPj0gMCkpIHsKICBkYWlseURvc2VTaW5nbGVDb2x1
bW4oKTsKfQoKaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiZHJhZnRuYW1l
Zmlyc3QiKSA+PSAwKSB7CiAgZGFpbHlEb3NlRHJhZnROYW1lRmlyc3QoKQp9CgovL11dPgo8
L3NjcmlwdD4KCjwvYm9keT48L2h0bWw+Cgo8IS0tIERBVEU9MjAxNy0xMC0wOSAxNTA3NTI1
MjgwIC0tPgoK
--------------97D29126DACD395A6AB4022A
Content-Type: text/html; charset=UTF-8;
 name="index.html.v6"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="index.html.v6"

CgoKCgoKCgoKCjwhRE9DVFlQRSBodG1sIAogICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCiAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CjxoZWFk
PgoKPHRpdGxlPlRoZSBEYWlseSBEb3NlIG9mIElFVEYgLSBJc3N1ZSAyOTQyIC0gMjAxNy0w
OS0yOTwvdGl0bGU+ICAgIAoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgIC8qIHdnLXBh
Z2UuY3NzICovCiAgICAvKiBIVE1MIGVsZW1lbnQgc3R5bGVzICovCiAgICBib2R5CXsKCQkg
ICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7ICAgIAoJCSAgICBtYXJnaW46IDA7CgkJICAg
IHBhZGRpbmc6IDA7CgkJICAgIGJvcmRlcjogMDsKICAgIH0KICAgIGJvZHksIHRoLCB0ZAl7
CgkJICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgdGltZXMsIHNlcmlmOwoJ
CSAgICBmb250LXNpemU6IDExcHQ7CgkJICAgIG1hcmdpbjogMDsKCQl9CgkJCiAgICB0ZAkJ
eyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBwYWRkaW5nOiAwIDAgMCAwOyB9CiAgICBoMQkJeyBm
b250LXNpemU6IDE1MCU7IH0KICAgIGgyCQl7IG1hcmdpbjogMC4yMmVtIDAgMC4yMmVtIDA7
IH0KICAgIGg0CQl7IG1hcmdpbjogMC40NWVtIDAgMCAwOyB9CiAgICBmb3JtCXsgbWFyZ2lu
OiAxZW07IH0KICAgIC5tZW51IGZvcm0JeyBtYXJnaW46IDA7IH0KCiAgICBpbnB1dC5mcnVn
YWwsdGV4dGFyZWEuZnJ1Z2FsIHsKCSAgICBib3JkZXItdG9wOiBncm9vdmUgMnB4ICNiYmI7
CgkgICAgYm9yZGVyLWxlZnQ6IGdyb292ZSAycHggI2NjYzsKCSAgICBib3JkZXItcmlnaHQ6
IHJpZGdlIDJweCAjZGRkIDsKCSAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2RkZDsK
CSAgICBwYWRkaW5nOiAxcHg7CgkgICAgbWFyZ2luOiAxcHg7CgkgICAgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsKICAgIH0KCiAgICAvKiBTdHlsZSBjbGFzc2VzICovCgogICAgLnBhZ2UJ
ewoJCSAgbWFyZ2luOiAwLjJlbSAwLjRlbTsKCQkgIHdpZHRoOiA3MGVtOwoJCX0KICAvKiBV
bmRvIHNvbWUgb2YgdGhlIHNldHRpbmdzIGFib3ZlLCBmb3IgZnVsbHkgY3NzIGNvbXBsaWFu
dCBicm93c2Vycy4gKi8KICAvKiBUaGUgcXVhbGlmaWNhdGlvbiBvZiB0aGUgZWxlbWVudHMg
aGlkZSB0aGlzIGZyb20gbGVzcyBjYXBhYmxlIGJyb3dzZXJzLiAqLwogICAgZGl2W2NsYXNz
PXBhZ2VdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA3MGVtOwkvKiA1OGVt
ID0gMTI4ZXggaW4gdGhlIGRlc2lnbiBicm93c2VyICovCgkJfQogICAgZGl2W2NsYXNzPWNv
bnRlbnRdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA3MGVtOwoJCX0KICAg
IGRpdltjbGFzcz1zZWFyY2hdCXsKCQkgIHdpZHRoOiBhdXRvOwoJCSAgbWF4LXdpZHRoOiA1
MGVtOwoJCX0KCiAgICAvKiBMaW5rIHN0eWxlcyAqLwogICAgOmxpbmssIDp2aXNpdGVkIHsK
CSAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCSAgICBjb2xvcjogIzAwRDsKCSAg
ICBib3JkZXItYm90dG9tOiAwOwogICAgfQogICAgOmxpbms6aG92ZXIsIDp2aXNpdGVkOmhv
dmVyIHsKCSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OwoJICAgIGNvbG9yOiAjMDBE
OwogICAgfQoKICAgIC5tYXN0aGVhZCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICJEaWRvdCIs
ICJDb2NoaW4iLCAiQmFza2VydmlsbGUiLCBzZXJpZjsKICAgICAgICBmb250LXNpemU6IDQy
MCU7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CglwYWRkaW5nOiAwLjIyZW07CiAgICB9CiAgICAu
c2xvZ2FuIHsKICAgICAgICBmb250LWZhbWlseTogIkRpZG90IiwgIkNvY2hpbiIsICJCYXNr
ZXJ2aWxsZSIsIHNlcmlmOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKCXRleHQtYWxp
Z246IGNlbnRlcjsKCXBhZGRpbmctYm90dG9tOiAwLjQ1ZW07CiAgICB9CiAgICAubmV3cyB7
CiAgICAgICAgZm9udC1mYW1pbHk6ICJUaW1lcyIsICJUaW1lcyBSb21hbiIsIHNlcmlmOwoJ
Y29sb3I6ICMyMjI7CglwYWRkaW5nOiAwLjQ1ZW07CiAgICB9CiAgICB0ZC5uZXdzIHsKCXdp
ZHRoOiA1MCU7CiAgICB9CgogICAgLnZlcnNpb24JewoJCSAgZm9udC1mYW1pbHk6IGhlbHZl
dGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7CgkJICBmb250LXN0eWxlOiBpdGFsaWM7CgkJICBm
b250LXNpemU6IDguNXB0OwoJCSAgdGV4dC1hbGlnbjogcmlnaHQ7CgkJICBjb2xvcjogI2Fh
YTsKCQkgIG1hcmdpbjogMDsKCQkgIHBhZGRpbmc6IDA7CgkJfSAKICAgIC52ZXJzaW9uIGE6
bGluawl7IGNvbG9yOiAjYWFhOyB9CiAgICAudmVyc2lvbiBhOnZpc2l0ZWQJeyBjb2xvcjog
I2FhYTsgfQogICAgLnZlcnNpb24gYTphY3RpdmUJeyBjb2xvcjogI2FhYTsgfQogICAgLnZl
cnNpb24gYTpob3Zlcgl7IGNvbG9yOiAjODg4OyB9CgogICAgLmxvZ28JeyBib3JkZXI6IDA7
ICB9CiAgICAubG9nb21hcmdpbiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAw
OyB3aWR0aDogMHB4O30KICAgIEBtZWRpYSBwcmludCB7CgkgICAgLndnbGlzdCB7IGRpc3Bs
YXk6IG5vbmU7IH0KICAgIH0KICAgIEBtZWRpYSBzY3JlZW4gewoJICAgIC53Z2xpc3QJeyBi
b3JkZXItcmlnaHQ6IGdyb292ZSBncmF5IDJweDsgd2lkdGg6IDQuN2VtOyB9CiAgICB9CiAg
ICAuY29udGVudAl7IG1hcmdpbjogMCAwIDAgMC40NWVtOyB9CiAgICAuZGF0ZQl7IGZvbnQt
c2l6ZTogOXB0OyBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOyBwYWRk
aW5nOiAwLjI3ZW0gMmVtIDAgMDsgfQogICAgLm5ldwl7IGZvbnQtc2l6ZTogOHB0OyBmb250
LXdlaWdodDogYm9sZDsgZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogcmVkO30KICAgIC5y
ZmNzZWFyY2gJeyBmb250LXNpemU6IDhwdDsgbWFyZ2luOiAwOyB9CiAgICAuc3VibWl0CXsg
cGFkZGluZzogMDsgYm9yZGVyOiBvdXRzZXQgZ3JheSAxcHg7IGZvbnQtc2l6ZTogOHB0OyB9
CiAgICAudG9wbWVudSB7CgkJICBib3JkZXItdG9wOiBzb2xpZCBibGFjayAxcHg7CgkJICBi
b3JkZXItYm90dG9tOiBzb2xpZCBibGFjayAxcHg7CgkJICB3aWR0aDogMTAwJTsKCQkgIHRl
eHQtYWxpZ246IGNlbnRlcjsKCQl9CiAgICAudG9wbWVudSB0YWJsZSB7CgkJICB3aWR0aDog
MTAwJTsKCQl9CiAgICAudG9wbWVudSB0YWJsZSB0ciB0ZCB7CgkJICBmb250LWZhbWlseTog
QXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCQkgIGZvbnQtd2VpZ2h0OiBib2xkOwoJ
CSAgZm9udC1zaXplOiA4MCU7CQoJCX0KICAgIC50b3BtZW51IHRhYmxlIHRyIHRkIGEgewoJ
CSAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCSAgY29sb3I6ICMyMjI7CgkJfQogICAgLnRv
cG1lbnUgdGFibGUgdHIgdGQgYTpob3ZlciB7CgkJICBjb2xvcjogIzU1NTsKCQl9CiAgICAu
bWVudQl7CgkJICB3aWR0aDogMTAwJTsKCQkgIHRleHQtYWxpZ246IGNlbnRlcjsKCQkgIGZv
bnQtd2VpZ2h0OiBib2xkOwoJCSAgbWFyZ2luOiAwLjIyZW07CgkJICBmb250LWZhbWlseTog
VmVyZGFuYSwgT3B0aW1hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CgkJICBmb250LXNpemU6
IDhwdDsKCQl9CiAgICAucmlnaHQJewoJCSAgZmxvYXQ6IHJpZ2h0OwoJCSAgZm9udC13ZWln
aHQ6IGJvbGQ7CgkJfQogICAgLm5hdmJhcgl7IAoJCSAgdGV4dC1hbGlnbjogY2VudGVyOwoJ
CSAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIE9wdGltYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlm
OwoJCSAgZm9udC1zaXplOiA4cHQ7CgkJICB3aWR0aDogMTAwJTsKCQl9CiAgICB0YWJsZS5t
ZW51dG9wIHsgd2lkdGg6IDEwMCU7IG1hcmdpbi1yaWdodDogMXB4O30KICAgIC5lZGl0CXsg
ZmxvYXQ6IGxlZnQ7IH0KICAgIC51cGRhdGUJeyBmb250LXNpemU6IDlwdDsgZm9udC1zdHls
ZTogaXRhbGljOyB0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6
IDNlbTsgfQogICAgLmNoYWlycwl7IHZlcnRpY2FsLWFsaWduOiBib3R0b207IHRleHQtYWxp
Z246IHJpZ2h0OyBmb250LXNpemU6IDEwcHQ7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfQogICAg
CiAgICBhOmxpbmsJeyBjb2xvcjogIzAwRCB9CiAgICBhOnZpc2l0ZWQJeyBjb2xvcjogIzQw
OCB9Ci8qICAgICBhOmFjdGl2ZQl7IGNvbG9yOiAjMDRDIH0gKi8KICAgIGE6aG92ZXIJeyBj
b2xvcjogIzAwRiB9CgogICAgYS5leHRlcm5hbDpsaW5rCXsgY29sb3I6ICM4MDAgfQogICAg
YS5leHRlcm5hbDp2aXNpdGVkCXsgY29sb3I6ICM4NDAgfQogICAgYS5leHRlcm5hbDphY3Rp
dmUJeyBjb2xvcjogIzgwNCB9CiAgICBhLmV4dGVybmFsOmhvdmVyCXsgY29sb3I6ICNDMDAg
fQoKICAgIC5hY3RpdmUsIC5hY3RpdmVfd2cJeyBib3JkZXItbGVmdDogc29saWQgd2hpdGUg
MC4yMmVtOyBwYWRkaW5nOiAwLjJlbSAwLjIyZW0gMCAwOyB9CiAgICAuY29uY2x1ZGVkLCAu
Y29uY2x1ZGVkX3dnIHsgYmFja2dyb3VuZC1jb2xvcjogI0Y4RjhEMDsgYm9yZGVyLWxlZnQ6
IHNvbGlkIHdoaXRlIDAuMjJlbTsgcGFkZGluZzogMC4yMmVtIDAuMjJlbSAwIDA7IH0KICAg
IC5ub3RfYV93ZyB7IGJhY2tncm91bmQtY29sb3I6ICNFRUY7IGJvcmRlci1sZWZ0OiBzb2xp
ZCB3aGl0ZSAwLjIyZW07IHBhZGRpbmc6IDAuMjJlbSAwLjIyZW0gMCAwOyB9CiAgICAuYm9m
IHsgYmFja2dyb3VuZC1jb2xvcjogI0VGRTsgYm9yZGVyLWxlZnQ6IHNvbGlkIHdoaXRlIDAu
MjJlbTsgcGFkZGluZzogMC4yMmVtIDAuMjJlbSAwIDA7IH0KCiAgICAuZHJhZnRzcGFuZWwg
eyB3aWR0aDogNy4yNWVtOyBwYWRkaW5nOiAwLjllbTsgYmFja2dyb3VuZC1jb2xvcjogI0VF
RTsgfQogICAgLmNvbmNsdWRlZF93ZyAuZHJhZnRzcGFuZWwgeyBiYWNrZ3JvdW5kLWNvbG9y
OiAjRUVCOyB9CiAgICAubm90X2Ffd2cgLmRyYWZ0c3BhbmVsIHsgYmFja2dyb3VuZC1jb2xv
cjogI0RERTsgfQoKICAgIC5jYXB0aW9uCXsgbWFyZ2luOiAyZW07IGZvbnQtc2l6ZTogMTJw
dDsgfQogICAgLmRyYWZ0c3BhbmVsIHsgbWFyZ2luOiAxLjhlbSAwIDAgMS44ZW07IH0KICAg
IC5kcmFmdHNsaXN0IHsgfQogICAgLmRyYWZ0c2xpc3QgdGQgeyBwYWRkaW5nOiAxcHg7IH0K
ICAgIC8qICAgICAuZHJhZnRzbGlzdCB0ZCBkaXYgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHZl
cnRpY2FsLWFsaWduOiB0b3A7IH0gKi8KICAgIC5kcmFmdHNsaXN0IC5lbnRyeSB7IHBvc2l0
aW9uOiByZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246IHRvcDsgfQogICAgLmhvdmVyIHsgcG9z
aXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDNweDsgYm9yZGVyOiBibGFjayBz
b2xpZCAxcHg7IGJhY2tncm91bmQtY29sb3I6ICNGRkU7IHZpc2liaWxpdHk6IGhpZGRlbjsg
fQogICAgdGQucmV2IHsgcGFkZGluZy1sZWZ0OiAwLjJlbTsgd2hpdGUtc3BhY2U6IG5vd3Jh
cDsgfQogICAgLmRyYWZ0ZGF0ZSB7IGZvbnQtc2l6ZTogOXB0OyBmb250LWZhbWlseTogbW9u
b3NwYWNlOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CiAgICAubWVudWl0ZW0JeyBtYXJnaW4t
dG9wOiAwLjI1ZW07IG1hcmdpbi1ib3R0b206IDAuMjVlbTsgfQogICAgLnRvcGl0ZW0JeyBt
YXJnaW4tdG9wOiAwLjI1ZW07IG1hcmdpbi1ib3R0b206IDA7IH0KICAgIC5zdWJpdGVtCXsg
bWFyZ2luLWxlZnQ6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjI1ZW07ICB9CiAgICAuc21h
bGwJeyBmb250LXNpemU6IDhwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEhlbHZldGljYSwg
QXJpYWwsIHNhbnMtc2VyaWY7IH0KICAgIC5tZW51Zm9ybQl7IG1hcmdpbjogMCAwIDAuNDVl
bSAwOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH0KICAgIC5zdWJpdGVtIGZvcm0JeyBt
YXJnaW46IDAgMCAwLjQ1ZW0gMDsgfQogICAgLnN1Yml0ZW0gaW5wdXQJeyB3aWR0aDogNS41
ZW07IGZvbnQtc2l6ZTogOHB0OyB9CiAgICAuc3ViaXRlbSBidXR0b24JeyBwYWRkaW5nOiAw
OyBtYXJnaW46IDBweDsgfQoKICAgIC5zcGVsbGNoZWNrCXsgYm9yZGVyLWJvdHRvbTogcmVk
IHNvbGlkIDJweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogYmxhY2s7IH0KICAg
IGEuc3BlbGxjaGVjawl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9
CiAgICBhLnNwZWxsY2hlY2s6bGluawl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6
IGJsYWNrOyB9CiAgICBhLnNwZWxsY2hlY2s6dmlzaXRlZAl7IHRleHQtZGVjb3JhdGlvbjog
bm9uZTsgY29sb3I6IGJsYWNrOyB9CiAgICBhLnNwZWxsY2hlY2s6aG92ZXIJeyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7IGNvbG9yOiBibGFjazsgfQogICAgYS5zcGVsbGNoZWNrOmFjdGl2
ZQl7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9CgogICAgLnBvcHVw
CXsKCSAgICBwb3NpdGlvbjphYnNvbHV0ZTsKCSAgICB2aXNpYmlsaXR5OmhpZGRlbjsKCSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiNGMEYwRDA7CgkgICAgcGFkZGluZzogMS40ZW07IAoJICAg
IGJvcmRlcjogc29saWQgIzM0NSAxcHg7CgkgICAgbWFyZ2luOiAwcHg7CgkgICAgZm9udC1z
aXplOiAxMHB0OwoJICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CgkgICAgd2hpdGUtc3Bh
Y2U6IHByZTsKCSAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgfQoKICAgIC8qIHByb2dyZXNz
IGJhciBhbmQgdGlja2V0IGluZGljYXRpb24gKi8KICAgIHRhYmxlLmRyYWZ0aXNzdWVzIHsg
bWFyZ2luLXRvcDogMC4xNWVtOyB9CiAgICB0ZC5wcm9ncmVzc2JhciB7IHZlcnRpY2FsLWFs
aWduOiBtaWRkbGUgfQogICAgdGFibGUucHJvZ3Jlc3NiYXIgewoJICAgIGJvcmRlcjogMXB4
IHNvbGlkIGdyYXk7CgkgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKCSAgICBib3Jk
ZXItc3BhY2luZzogMDsKCSAgICBtYXJnaW46IDA7CgkgICAgcGFkZGluZzogMDsKCSAgICBl
bXB0eS1jZWxsczogc2hvdzsKCSAgICB3aWR0aDogMmVtOwogICAgfQogICAgdGFibGUucHJv
Z3Jlc3NiYXIgYSwgdGFibGUucHJvZ3Jlc3NiYXIgOmxpbmssIHRhYmxlLnByb2dyZXNzYmFy
IDp2aXNpdGVkLAogICAgdGFibGUucHJvZ3Jlc3NiYXJiYXIgOmxpbms6aG92ZXIsIHRhYmxl
LnByb2dyZXNzYmFyIDp2aXNpdGVkOmhvdmVyIHsKCSAgICBib3JkZXI6IG5vbmU7CgkgICAg
ZGlzcGxheTogYmxvY2s7CgkgICAgd2lkdGg6IDEwMCU7CgkgICAgaGVpZ2h0OiAxMDAlOwoJ
ICAgIHBhZGRpbmc6IDA7CgkgICAgbWFyZ2luOiAwOwoJICAgIHRleHQtZGVjb3JhdGlvbjog
bm9uZTsKICAgIH0KICAgIHRhYmxlLnByb2dyZXNzYmFyIHRkIHsgcGFkZGluZzogMDsgaGVp
Z2h0OiAwLjQ1ZW07IH0KICAgIHRhYmxlLnByb2dyZXNzYmFyIHRkLmNsb3NlZCB7IGJhY2tn
cm91bmQ6ICM0YzQgfQogICAgdGFibGUucHJvZ3Jlc3NiYXIgdGQgOmhvdmVyIHsgYmFja2dy
b3VuZDogbm9uZSB9CiAgICB0YWJsZS5kcmFmdGlzc3VlcyB0ZC5zbWFsbCB7CgkgICAgZm9u
dC1zaXplOiAwLjllbTsKCSAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKCSAgICBmb250
LXdlaWdodDogYm9sZDsKCSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CgkgICAgY29sb3I6
IGJsYWNrOwoJICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CiAgICB0YWJsZS5h
dnAgdGQgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDgwJTsgcGFkZGlu
ZzogMCAxZW0gMC4xZW0gMDsgfQoKICAgIC50b29sYmx1cmIgeyBtYXJnaW46IDJlbSAzZW0g
MCA0ZW07IH0KLyogZGFpbHlkb3NlL2xheW91dF92Mi5jc3MgKi8KLnBhZ2UgewogICAgd2lk
dGg6IDk5JTsKfQpkaXZbY2xhc3M9cGFnZV0gewogICAgd2lkdGg6IDk5JTsKICAgIG1heC13
aWR0aDogNzNlbTsKfQoKLmRhaWx5ZG9zZSB0ZCwgZGl2LmRhaWx5ZG9zZSAgewogICAgZm9u
dC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDEwcHQ7Cn0KCi5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9iYW5uZXIgewogICAgcGFkZGluZzogMjVweCAyMHB4IDVweCAyMHB4
OwogICAgdGV4dC1hbGlnbjogY2VudGVyOyAKfQouZGFpbHlkb3NlIC5kYWlseWRvc2VfYmFu
bmVyIGgxIHsgcGFkZGluZzogMDsgbWFyZ2luOiAwO30KLmRhaWx5ZG9zZSAuZGFpbHlkb3Nl
X2Jhbm5lciAuZGFpbHlkb3NlX3Nsb2dhbiB7CiAgICBmb250LXNpemU6IDEyMCU7CiAgICBm
b250LWZhbWlseTogc2VyaWY7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBsZXR0ZXIt
c3BhY2luZzogMC40cHg7CiAgICBwYWRkaW5nOiA1cHggMCAxNXB4IDA7Cn0KCi5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9iYW5uZXIgLmRhaWx5ZG9zZV9iYW5uZXJtZW51IHsKICAgIGJvcmRl
ci10b3A6IHNvbGlkIGJsYWNrIDFweDsKICAgIGJvcmRlci1ib3R0b206IHNvbGlkIGJsYWNr
IDFweDsKICAgIHdpZHRoOjEwMCU7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX2Jhbm5lciAu
ZGFpbHlkb3NlX2Jhbm5lcm1lbnUgdGQgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CiAgICBmb250LXNpemU6IDgwJTsJCn0KLmRhaWx5ZG9zZSAu
ZGFpbHlkb3NlX2Jhbm5lciAuZGFpbHlkb3NlX2Jhbm5lcm1lbnUgYSB7IHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgY29sb3I6IGJsYWNrOyB9CgouZGFpbHlkb3NlIC5kYWlseWRvc2VfdHJh
aWxlcjEgewogICBwYWRkaW5nOiAyNXB4IDIwcHggNXB4IDIwcHg7Cn0KLmRhaWx5ZG9zZSAu
ZGFpbHlkb3NlX3RyYWlsZXIyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgYm9yZGVyLXRvcDog
c29saWQgYmxhY2sgMXB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZGFpbHlkb3Nl
IC5kYWlseWRvc2VfY29sdW1ucyB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDAg
MTBweCAwIDEwcHg7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgeyBwYWRkaW5nOiAw
IDEwcHggMCAxMHB4OyB9Ci5kYWlseWRvc2UgdGQuZGFpbHlkb3NlX25ld3MgeyB3aWR0aDog
NTAlOyB9CgouZGFpbHlkb3NlIC5kYWlseWRvc2VfbmV3cyBoMiB7CiAgICBiYWNrZ3JvdW5k
LWNvbG9yOiNjM2Q5ZmY7CiAgICBmb250LXNpemU6MTJwdDsKICAgIHBhZGRpbmc6M3B4IDRw
eCAzcHggNnB4OwogICAgbWFyZ2luLXRvcDogMTJwdDsKICAgIG1hcmdpbi1ib3R0b206IDEy
cHQ7Cn0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgaDIgaW1nIHsgcGFkZGluZzozcHgg
M3B4IDAgMDsgYm9yZGVyOiAwOyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIGgyIGEg
eyBjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0KCi5kYWlseWRvc2UgLmRh
aWx5ZG9zZV9uZXdzIGltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci5kYWlseWRv
c2UgLmRhaWx5ZG9zZV9uZXdzIHVsIHsgcGFkZGluZy1sZWZ0OiAxZW07IG1hcmdpbjoxZW07
IH0gIAouZGFpbHlkb3NlIC5kYWlseWRvc2VfbmV3cyB1bC5saW5rcyB7IGxpc3Qtc3R5bGUt
aW1hZ2U6IHVybCgnL2RhaWx5ZG9zZS9zcXVhcmUucG5nJyk7IH0KLmRhaWx5ZG9zZSAuZGFp
bHlkb3NlX25ld3MgdWwuZXhwYW5kcyB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnL2RhaWx5
ZG9zZS9wbHVzLnBuZycpOyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIGxpIHsgbWFy
Z2luLWJvdHRvbTozcHQ7IH0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgLmF1dGhvciB7
IGZvbnQtc2l6ZTogOXB0OyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9uZXdzIC5pZHRpdGxl
IHsgY29sb3I6ICMwMDAwZWU7IH0KLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX25ld3MgLmlkbmFt
ZSB7IGZvbnQtc2l6ZTogOXB0OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5kYWlseWRvc2Ug
LmRhaWx5ZG9zZV9uZXdzIC5mb3JtYXQgewogICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsg
CiAgICBmb250LXNpemU6NzUlOwogICAgcGFkZGluZzogMCAxcHggMCAxcHg7CiAgICB0ZXh0
LWRlY29yYXRpb246IG5vbmU7CiAgICBjb2xvcjogYmxhY2s7Cn0KLmRhaWx5ZG9zZSAuZGFp
bHlkb3NlX25ld3MgZGl2Lm1vcmUgewogICAgdGV4dC1hbGlnbjpyaWdodDsKICAgIG1hcmdp
bi10b3A6LTFlbTsKICAgIG1hcmdpbi1ib3R0b206LTVwdDsKICAgIGZvbnQtc2l6ZTogOHB0
Owp9CgouZGFpbHlkb3NlIGRpdi5pZGRldGFpbHMgewogICAgYm9yZGVyLXRvcDogMXB4IHNv
bGlkIGdyYXk7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBncmF5OwogICAgYm9yZGVy
LWJvdHRvbTogMnB4IHNvbGlkIGdyYXk7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdy
YXk7CiAgICBtYXJnaW4tdG9wOiAwLjVleDsKICAgIG1hcmdpbi1sZWZ0OiAwZXg7CiAgICBt
YXJnaW4tYm90dG9tOiAwLjVleDsKICAgIG1hcmdpbi1yaWdodDogMGV4OwogICAgcGFkZGlu
ZzogMHB4IDFleCAwcHggMWV4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZjYzsKfQou
ZGFpbHlkb3NlIC5pZHRvb2xzIHsgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCBncmF5OyBwYWRk
aW5nLXRvcDogNXB0OyB9Ci5kYWlseWRvc2UgLmlkdG9vbHMgcCB7IG1hcmdpbi10b3A6IDJw
dDsgfQoKLmRhaWx5ZG9zZSAuZGFpbHlkb3NlX2FkIGgzIHsgbWFyZ2luLWJvdHRvbTogMHB0
OyB9Ci5kYWlseWRvc2UgLmRhaWx5ZG9zZV9hZCBwIHsgbWFyZ2luLXRvcDogMHB0OyB9Cgou
ZGFpbHlkb3NlIC5kYWlseWRvc2Vfd2FybmluZyB7CiAgICBib3JkZXI6IHNvbGlkIGJsYWNr
IDFweDsgCiAgICBwYWRkaW5nOiA0cHggNHB4IDRweCA0cHg7IAogICAgbWFyZ2luLXRvcDog
MTJwdDsgCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmNjOyAgCiAgICBmb250LXdlaWdo
dDpib2xkOyAKICAgIGNvbG9yOiNjMDAwMDA7Cn0KLyogZW5kIG9mIGRhaWx5ZG9zZS9sYXlv
dXRfdjIuY3NzICovCiAKPC9zdHlsZT4KCjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0i
UlNTIiBocmVmPSIvZGFpbHlkb3NlL2RhaWx5ZG9zZV9yc3MueG1sIiB0eXBlPSJhcHBsaWNh
dGlvbi9yc3MreG1sIiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkF0b20iIGhy
ZWY9Ii9kYWlseWRvc2UvZGFpbHlkb3NlX2F0b20ueG1sIiB0eXBlPSJhcHBsaWNhdGlvbi9h
dG9tK3htbCIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIgLz4KCjwvaGVhZD4KCjxib2R5Pgo8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CiAgZnVuY3Rpb24gdG9nZ2xlSWREZXRhaWxzKGlkKSB7
CiAgb2JqID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogIGlmIChvYmouc3R5bGUu
ZGlzcGxheSA9PSAnbm9uZScpIHsKICAgIG9iai5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKydiJykuc3R5bGUubGlzdFN0eWxlSW1h
Z2UgPSAidXJsKCdtaW51cy5wbmcnKSI7CiAgfSBlbHNlIHsKICAgIG9iai5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQrJ2InKS5zdHls
ZS5saXN0U3R5bGVJbWFnZSA9ICJ1cmwoJ3BsdXMucG5nJykiOwogIH0KfQo8L3NjcmlwdD4K
CjxkaXYgY2xhc3M9InBhZ2UiPgo8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+Cjx0
cj4KCjwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gCiAgICAgICAgIExFRlQKICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gIC0tPgoKCTwhLS0gTGVmdCBjb2x1bW4gLS0+PCEtLSotIGh0bWwgLSotLT4KCTwhLS0g
R2VuZXJhdGVkIGZyb20gbmFycm93LW1lbnUucHlodCAtLT4KICAgICAgICA8YmxvY2s+Cgk8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgPgoJICAgaWYgKHR5cGVvZiBqUXVlcnkg
PT0gJ3VuZGVmaW5lZCcpIHsgIAoJICAgICAgIC8vIGpRdWVyeSBpcyBub3QgbG9hZGVkID0+
IGxvYWQgaXQ6CgkgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NjcmlwdCcpOwoJICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7Cgkg
ICAgICAgc2NyaXB0LnNyYyA9ICcvdG9vbHMvdHJhYy9odGRvY3MvanMvanF1ZXJ5LmpzJzsK
CSAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLmFwcGVu
ZENoaWxkKHNjcmlwdCk7CgkgICAgICAgalF1ZXJ5Lm5vQ29uZmxpY3QoKTsKCSAgIH0KCTwv
c2NyaXB0PgoKCTxpbWcgaWQ9InNob3ciIHNyYz0iL2ltYWdlcy9zaG93LmdpZiIgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwLjNlbTsgbGVmdDogMCIgb25jbGljaz0nalF1
ZXJ5KCIjbmFycm93X21lbnUiKS5zaG93KCJzbG93Iik7IGpRdWVyeSh0aGlzKS5oaWRlKCk7
IGpRdWVyeSgiI2hpZGUiKS5zaG93KCJzbG93IiknIG9ubG9hZD0nalF1ZXJ5KHRoaXMpLmhp
ZGUoKScvPgoJPHRkIHZhbGlnbj0idG9wIiBjbGFzcz0id2dsaXN0IiBpZD0ibmFycm93X21l
bnUiPgoJICA8dGFibGUgY2xhc3M9Im1lbnV0b3AiPgoJICAgICA8dHI+CgkJPHRkIGNsYXNz
PSJsb2dvbWFyZ2luIj4mbmJzcDs8L3RkPgoJICA8IS0tIC0gaWV0ZiB0b29scyBsb2dvIHdp
dGggbGluayBiYWNrIHRvIHRoZSBpZXRmIHRvb2xzIHNpdGUsICAgLS0+CgkJPHRkIGNsYXNz
PSJsb2dvaW1nIj48YSBocmVmPSIvIj48aW1nIGNsYXNzPSJsb2dvIiBhbHQ9IklFVEYiIHNy
Yz0iL2ltYWdlcy9pZXRmbG9nbzNoLnBuZyIgLz48L2E+PC90ZD4KCQk8dGQgY2xhc3M9Imxv
Z29tYXJnaW4iPjxpbWcgaWQ9ImhpZGUiIHNyYz0iL2ltYWdlcy9oaWRlLmdpZiIgb25jbGlj
az0nalF1ZXJ5KCIjbmFycm93X21lbnUiKS5oaWRlKCJzbG93Iik7IGpRdWVyeSh0aGlzKS5o
aWRlKCk7IGpRdWVyeSgiI3Nob3ciKS5zaG93KCJzbG93IiknIC8+PC90ZD4KCSAgICAgPC90
cj4KCSAgPC90YWJsZT4KCSAgCgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj48YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy8iPklFVEYmbmJzcDtIb21lPC9hPjwvZGl2PgoJICA8ZGl2
IGNsYXNzPSJtZW51aXRlbSI+PGEgaHJlZj0iL2Fib3V0Ij5BYm91dCZuYnNwO1Rvb2xzPC9h
PjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJtZW51aXRlbSI+PGEgaHJlZj0iL3Rvb2xzIj5Ub29s
czo8L2E+CgkgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0gc21hbGwiPgoJCTxhIGhyZWY9Ii9y
ZmNkaWZmIj5kaWZmczwvYT4mbmJzcDs8YSBocmVmPSIvdG9vbHMvaWRzcGVsbC93ZWJzZXJ2
aWNlIj5zcGVsbDwvYT48YnIgLz4KCQk8YSBocmVmPSJodHRwOi8veG1sMnJmYy5pZXRmLm9y
Zy8iPnhtbDJyZmM8L2E+Jm5ic3A7PGEgaHJlZj0iL3Rvb2xzL2lkbml0cyI+aWRuaXRzPC9h
PjxiciAvPgoJCTxhIGhyZWY9Ii90b29scy9pZXRmZGIvYnJvd3Nlci9icmFuY2gvMi4wMC8i
PnRyYWNrZXImbmJzcDtzcmM8L2E+CgkgICAgIDwvZGl2PgoJICA8L2Rpdj4KCSAgPGRpdiBj
bGFzcz0ibWVudWl0ZW0iPjxhIGhyZWY9Ii9kYWlseWRvc2UiPk5ld3M8L2E+PC9kaXY+CgoJ
ICA8IS0tCgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj48YSBocmVmPSJodHRwOi8vd3d3LmFy
a2tvLmNvbS90b29scy9zdGF0cyI+U3RhdHM6PC9hPgoJICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIHNtYWxsIj4KCQk8YSBocmVmPSJodHRwOi8vd3d3LmFya2tvLmNvbS90b29scy9kb2Nz
dGF0cyI+RG9jczwvYT4KCQk8YSBocmVmPSJodHRwOi8vYmV0YS5pYW5hLm9yZy9hYm91dC9w
ZXJmb3JtYW5jZS9pZXRmLXN0YXRpc3RpY3MvIj5JQU5BPC9hPgoJCTxiciAvPgoJCTxhIGhy
ZWY9Imh0dHA6Ly9ydGcuaWV0Zi5vcmcvfmZlbm5lci9pZXNnLyI+TWlzYzwvYT4KCQk8YSBo
cmVmPSJodHRwOi8vd3d3LmFya2tvLmNvbS90b29scy9hZG1lYXN1cmVtZW50cyI+SUVTRzwv
YT4KCSAgICAgPC9kaXY+CgkgIDwvZGl2PgoJICAtLT4KCgkgIDxkaXYgY2xhc3M9Im1lbnVp
dGVtIj48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL25ld2xvZ2luIj5HZXQmbmJz
cDtQYXNzd2Q8L2E+PC9kaXY+CgoJICA8ZGl2IGNsYXNzPSJtZW51aXRlbSI+SUVURi05OToK
CSAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PGEgaHJlZj0iL3Jvb21zIj5Sb29tczwvYT48
L2Rpdj4KCSAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PGEgaHJlZj0iL2FnZW5kYS85OSI+
QWdlbmRhPC9hPjwvZGl2PgoJICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48YSBocmVmPSIv
YWdlbmRhLzk5L2NhbGVuZGFyIj5DYWxlbmRhcjwvYT48L2Rpdj4KCSAgPC9kaXY+CgoJICA8
ZGl2IGNsYXNzPSJ0b3BpdGVtIj48YSBocmVmPSIvaHRtbC8iPkRvY3VtZW50czwvYT48L2Rp
dj4KCSAgPGRpdiBjbGFzcz0idG9waXRlbSI+PGEgaHJlZj0iL3JmYy9pbmRleCI+UkZDczwv
YT48L2Rpdj4KCSAgPGZvcm0gY2xhc3M9Im1lbnVmb3JtIiBhY3Rpb249Ii9odG1sLyIgbmFt
ZT0icmZjZm9ybSIgb25zdWJtaXQ9InJldHVybiBpbnB1dE1hc3NhZ2UoKSIKCQl0aXRsZT0i
RW50ZXIgZG9jdW1lbnQgbnVtYmVyIG9yIG5hbWUgLSByZmMsIGJjcCwgZHJhZnQtLi4uIGV0
Yy4sIGFuZCBoaXQgcmV0dXJuLiI+CgkgIDxkaXYgY2xhc3M9InRvcGl0ZW0iID5Eb2MmbmJz
cDtmZXRjaDo8L2Rpdj4KCSAgPGRpdiBjbGFzcz0ic3ViaXRlbSIgc3R5bGU9Im1hcmdpbjog
MDsiPjxpbnB1dCBjbGFzcz0iZnJ1Z2FsIiB0eXBlPSJ0ZXh0IiBuYW1lPSJkb2MiIC8+PC9k
aXY+CgkgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCSAgICBmdW5jdGlvbiBp
bnB1dE1hc3NhZ2UoKSB7CgkJd2luZG93LmxvY2F0aW9uID0gZG9jdW1lbnQucmZjZm9ybS5h
Y3Rpb24gKyBkb2N1bWVudC5yZmNmb3JtLmRvYy52YWx1ZS5yZXBsYWNlKC9eICovLCcnKS5y
ZXBsYWNlKC8gKiQvLCcnKTsJCXJldHVybiBmYWxzZTsKCSAgICB9CgkgIDwvc2NyaXB0PgoJ
ICA8L2Zvcm0+CgkgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIj5XaWtpczoKCSAgICAgPGRpdiBj
bGFzcz0ic3ViaXRlbSBzbWFsbCI+CgkJPGEgaHJlZj0iL2dyb3VwL2llc2cvdHJhYyI+SUVT
RzwvYT4mbmJzcDs8YSBocmVmPSIvZ3JvdXAvaXJ0Zi90cmFjL3dpa2kiPklSVEY8L2E+PGJy
IC8+CgkJPGEgaHJlZj0iL3Rvb2xzL2lldGZkYi8iIHRpdGxlPSJEYXRhdHJhY2tlciBkZXZl
bG9wbWVudCI+RGV2PC9hPiZuYnNwOzxhIGhyZWY9Ii9ncm91cC9yc29jIj5SU09DPC9hPjxi
ciAvPgoJCTxhIGhyZWY9Ii9ncm91cC93Z2NoYWlycy8iPkNoYWlyczwvYT4mbmJzcDs8YSBo
cmVmPSIvZ3JvdXAvZWR1LyIgdGl0bGU9IlRvb2xzIFRlYW0iPkVkdTwvYT48YnIgLz4KCQk8
YSBocmVmPSIvZ3JvdXAvdG9vbHMvdHJhYy8iIHRpdGxlPSJUb29scyBUZWFtIj5Ub29sczwv
YT4mbmJzcDs8YSBocmVmPSIvYm9mIj5CT0ZzPC9hPgoJICAgICA8L2Rpdj4KCSAgPC9kaXY+
CgkgIDxkaXYgY2xhc3M9InRvcGl0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3Jn
L25vbWNvbS8yMDE3LyI+Tm9tQ29tPC9hPjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJtZW51aXRl
bSI+PGEgaHJlZj0iL2FyZWEiPkFyZWFzPC9hPjwvZGl2PgoJICA8ZGl2IGNsYXNzPSJ0b3Bp
dGVtIj48YSBocmVmPSIvd2ciPldHczwvYT46PC9kaXY+CgkgIDxkaXYgY2xhc3M9InN1Yml0
ZW0gc21hbGwiPjxhIGhyZWY9Ii93Zy9jb25jbHVkZWQiPjxpPmNvbmNsdWRlZCZoZWxsaXA7
PC9pPjwvYT48L2Rpdj4KCgkgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvNmxvLyI+NmxvPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvNm1hbi8iPjZtYW48L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy82dGlzY2gvIj42dGlzY2g8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48
L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9
Ii93Zy9hY2UvIj5BY2U8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy9hY21lLyI+QWNtZTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2
PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dn
L2FsdG8vIj5BbHRvPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
YW5pbWEvIj5BbmltYTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2
PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dn
L2FxbS8iPkFxbTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2Pgog
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2F2
dGNvcmUvIj5BdnRjb3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvYmFiZWwvIj5CYWJlbDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwv
ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0i
L3dnL2Jlc3MvIj5CZXNzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvYmZjcGJpcy8iPkJmY3BiaXM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bh
bj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhy
ZWY9Ii93Zy9iZmQvIj5CZmQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48
L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9
Ii93Zy9iaWVyLyI+QmllcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwv
ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0i
L3dnL2Jtd2cvIj5CbXdnPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvY2FsZXh0LyI+Q2FsZXh0PC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+
PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvY2FwcG9ydC8iPkNhcHBvcnQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy9jYm9yLyI+Q2JvcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL2NjYW1wLyI+Q2NhbXA8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy9jZG5pLyI+Q2RuaTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL2NlbGxhci8iPkNlbGxhcjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL2NsdWUvIj5DbHVlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvY29kZWMvIj5Db2RlYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL2NvcmUvIj5Db3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvY3VyZGxlLyI+Q3VyZGxlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvZGNydXAvIj5EY3J1cDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2RldG5ldC8iPkRldG5ldDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2RoYy8iPkRoYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2RpbWUvIj5EaW1lPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvZGlzcGF0Y2gvIj5EaXNwYXRjaDwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL2RtYXJjLyI+RG1hcmM8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9kbW0vIj5EbW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9kbnNvcC8iPkRuc29wPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvZG5zc2QvIj5EbnNzZDwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL2RvaC8iPkRvaDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2RvdHMvIj5Eb3RzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvZHByaXZlLyI+RHByaXZlPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvZHRuLyI+RHRuPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvZWNyaXQvIj5FY3JpdDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2V4dHJhLyI+RXh0cmE8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9ncm93LyI+R3JvdzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL2hpcC8iPkhpcDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL2hvbWVuZXQvIj5Ib21lbmV0PC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvaHR0cGJpcy8iPkh0dHBiaXM8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pMm5zZi8iPkkybnNmPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvaTJycy8iPkkycnM8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pY2UvIj5JY2U8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pZHIvIj5JZHI8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9pbnNpcGlkLyI+SW5zaXBpZDwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2ludGFyZWEvIj5JbnRhcmVhPC9hPjxzcGFuIGNs
YXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvaXBwbS8iPklwcG08L2E+PHNwYW4gY2xh
c3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i
c3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9pcHNlY21lLyI+SXBzZWNtZTwvYT48c3Bh
biBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNs
YXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2lwd2F2ZS8iPklwd2F2ZTwvYT48
c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2lzaXMvIj5Jc2lzPC9hPjxz
cGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvam1hcC8iPkptYXA8L2E+PHNw
YW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBj
bGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9qc29uYmlzLyI+SnNvbmJpczwv
YT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2tpdHRlbi8iPktpdHRl
bjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2wyc20vIj5MMnNt
PC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAg
IDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbDJ0cGV4dC8iPkwy
dHBleHQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9sYW1wcy8i
PkxhbXBzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbGltZS8i
PkxpbWU8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9saXNwLyI+
TGlzcDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2xtYXAvIj5M
bWFwPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbHB3YW4vIj5M
cHdhbjwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL2x3aWcvIj5M
d2lnPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbWFuZXQvIj5N
YW5ldDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL21ib25lZC8i
Pk1ib25lZDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL21pbGUv
Ij5NaWxlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbW11c2lj
LyI+TW11c2ljPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvbW9k
ZXJuLyI+TW9kZXJuPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
bXBscy8iPk1wbHM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4K
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9t
cHRjcC8iPk1wdGNwPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
bXRndmVudWUvIj5NdGd2ZW51ZTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL25ldGNvbmYvIj5OZXRjb25mPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvbmV0bW9kLyI+TmV0bW9kPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvbmV0dmMvIj5OZXR2YzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL25mc3Y0LyI+TmZzdjQ8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9z
cGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNw
YW4gPjxhIGhyZWY9Ii93Zy9udHAvIj5OdHA8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy9udm8zLyI+TnZvMzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL29hdXRoLyI+T2F1dGg8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy9vcGVucGdwLyI+T3BlbnBncDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL29wc2F3Zy8iPk9wc2F3ZzwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL29wc2VjLyI+T3BzZWM8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9vc3BmLyI+T3NwZjwvYT48c3BhbiBjbGFzcz0ibmV3
Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVt
Ij48c3BhbiA+PGEgaHJlZj0iL3dnL3BhbHMvIj5QYWxzPC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvcGF5bG9hZC8iPlBheWxvYWQ8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9wY2UvIj5QY2U8L2E+PHNwYW4gY2xhc3M9Im5l
dyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRl
bSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9wY3AvIj5QY3A8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy9wZXJjLyI+UGVyYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL3BpbS8iPlBpbTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3Nw
YW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3Bh
biA+PGEgaHJlZj0iL3dnL3ByZWNpcy8iPlByZWNpczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48
L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48
c3BhbiA+PGEgaHJlZj0iL3dnL3F1aWMvIj5RdWljPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwv
c3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxz
cGFuID48YSBocmVmPSIvd2cvcmFkZXh0LyI+UmFkZXh0PC9hPjxzcGFuIGNsYXNzPSJuZXci
Pjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0i
PjxzcGFuID48YSBocmVmPSIvd2cvcmVnZXh0LyI+UmVnZXh0PC9hPjxzcGFuIGNsYXNzPSJu
ZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0
ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcm1jYXQvIj5SbWNhdDwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJp
dGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3JvbGwvIj5Sb2xsPC9hPjxzcGFuIGNsYXNzPSJu
ZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0
ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcnRjd2ViLyI+UnRjd2ViPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvcnRnd2cvIj5SdGd3ZzwvYT48c3BhbiBjbGFz
cz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJz
dWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NhY20vIj5TYWNtPC9hPjxzcGFuIGNsYXNz
PSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2F2aS8iPlNhdmk8L2E+PHNwYW4gY2xhc3M9
Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
aXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zZWNldmVudC8iPlNlY2V2ZW50PC9hPjxzcGFu
IGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xh
c3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2ZjLyI+U2ZjPC9hPjxzcGFuIGNs
YXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2lkci8iPlNpZHI8L2E+PHNwYW4gY2xh
c3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i
c3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zaWRyb3BzLyI+U2lkcm9wczwvYT48c3Bh
biBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNs
YXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NpcGJyYW5keS8iPlNpcGJyYW5k
eTwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJlZj0iL3dnL3NpcGNvcmUvIj5T
aXBjb3JlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+CiAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cvc2xpbS8i
PlNsaW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93Zy9zb2Z0d2ly
ZS8iPlNvZnR3aXJlPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9kaXY+
CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIvd2cv
c3ByaW5nLyI+U3ByaW5nPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+PC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVmPSIv
d2cvc3Rpci8iPlN0aXI8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bhbj48L2Rp
dj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhyZWY9Ii93
Zy9zdW5zZXQ0LyI+U3Vuc2V0NDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3RhcHMvIj5UYXBzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3NwYW4+
PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBocmVm
PSIvd2cvdGNwaW5jLyI+VGNwaW5jPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48L3Nw
YW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48YSBo
cmVmPSIvd2cvdGNwbS8iPlRjcG08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwvc3Bh
bj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxhIGhy
ZWY9Ii93Zy90ZWFzLyI+VGVhczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3RpY3RvYy8iPlRpY3RvYzwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9z
cGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEg
aHJlZj0iL3dnL3Rscy8iPlRsczwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+PC9zcGFu
PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+PGEgaHJl
Zj0iL3dnL3Rva2JpbmQvIj5Ub2tiaW5kPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvdHJhbS8iPlRyYW08L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFuPjwv
c3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4gPjxh
IGhyZWY9Ii93Zy90cmFucy8iPlRyYW5zPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bhbj48
L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFuID48
YSBocmVmPSIvd2cvdHJpbGwvIj5UcmlsbDwvYT48c3BhbiBjbGFzcz0ibmV3Ij48L3NwYW4+
PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJpdGVtIj48c3BhbiA+
PGEgaHJlZj0iL3dnL3RzdndnLyI+VHN2d2c8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy91cm5iaXMvIj5Vcm5iaXM8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9z
cGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNw
YW4gPjxhIGhyZWY9Ii93Zy91dGEvIj5VdGE8L2E+PHNwYW4gY2xhc3M9Im5ldyI+PC9zcGFu
Pjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+PHNwYW4g
PjxhIGhyZWY9Ii93Zy92Nm9wcy8iPlY2b3BzPC9hPjxzcGFuIGNsYXNzPSJuZXciPjwvc3Bh
bj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Yml0ZW0iPjxzcGFu
ID48YSBocmVmPSIvd2cvd2VicHVzaC8iPldlYnB1c2g8L2E+PHNwYW4gY2xhc3M9Im5ldyI+
PC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ViaXRlbSI+
PHNwYW4gPjxhIGhyZWY9Ii93Zy94cmJsb2NrLyI+WHJibG9jazwvYT48c3BhbiBjbGFzcz0i
bmV3Ij48L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAJPGJyIC8+Cgk8c3BhbiBj
bGFzcz0idXBkYXRlIj4KCSAgPGltZyBzcmM9Jy9pbWFnZXMvYXN0ZXJpc2sucG5nJyBhbHQ9
JyonIC8+IFdHcyBtYXJrZWQgd2l0aCBhbiA8c3BhbiBjbGFzcz0ibmV3Ij48aW1nIHNyYz0n
L2ltYWdlcy9hc3Rlcmlzay5wbmcnIGFsdD0nKicgLz48L3NwYW4+IGFzdGVyaXNrIGhhcyBo
YWQgYXQgbGVhc3Qgb25lIG5ldwoJICBkcmFmdCBtYWRlIGF2YWlsYWJsZSBkdXJpbmcgdGhl
IGxhc3QgNSBkYXlzPC9zcGFuPgoJPC90ZD4KCTwvYmxvY2s+CgoKPCEtLSA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAKICAgICAgICAgVE9QIAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+Cgo8dGQ+Cgo8ZGl2
IGNsYXNzPSJkYWlseWRvc2UiPgo8ZGl2IGNsYXNzPSJkYWlseWRvc2VfYmFubmVyIiBpZD0i
ZGFpbHlkb3NlX2Jhbm5lciI+Cgo8aDE+CjxpbWcgc3JjPSJkYWlseWRvc2VfdGl0bGUucG5n
IiBhbHQ9IlRoZSBEYWlseSBEb3NlIG9mIElFVEYiIHdpZHRoPSI1NjUiIGhlaWdodD0iNzQi
IGlkPSJkYWlseWRvc2VfdGl0bGUiIC8+PC9oMT4KCjxkaXYgY2xhc3M9ImRhaWx5ZG9zZV9z
bG9nYW4iPgomIzgyMjA7QmUgY29uc2VydmF0aXZlIGluIHdoYXQgeW91IHNlbmQgYW5kIGxp
YmVyYWwgaW4gd2hhdCB5b3UgYWNjZXB0JiM4MjIxOwo8L2Rpdj4KCjx0YWJsZSBjbGFzcz0i
ZGFpbHlkb3NlX2Jhbm5lcm1lbnUiPgo8dHI+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0
OyIgd2lkdGg9IjMzJSI+Cgo8YSBocmVmPSIyOTQxLmh0bWwiPiZsYXF1bzsgUHJldjwvYT4K
CjwvdGQ+Cjx0ZD5Jc3N1ZSAyOTQyICZtZGFzaDsgMjAxNy0wOS0yOTwvdGQ+Cjx0ZCBzdHls
ZT0idGV4dC1hbGlnbjpyaWdodDsiIHdpZHRoPSIzMyUiPgoKPC90ZD4KPC90cj4KPC90YWJs
ZT4KCjwvZGl2Pgo8L2Rpdj4KCjwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gCiAgICAgICAgIEJPRFkg
VEFCTEUKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgoKPGRpdiBjbGFzcz0iZGFpbHlkb3NlIj4K
Cjx0YWJsZSBjbGFzcz0iZGFpbHlkb3NlX2NvbHVtbnMiIGlkPSJkYWlseWRvc2VfY29scyI+
Cjx0cj4KPHRkIGNsYXNzPSJkYWlseWRvc2VfbmV3cyIgaWQ9ImRhaWx5ZG9zZV9jb2wxIj4K
CgoKPCEtLSBEQUlMWSBDT05URU5UIEJFR0lOUyAtLT4KPCEtLSBEQVRFPTIwMTctMDktMjkg
MTUwNjU3NDgyOCAxNTA2NjYxMjMxIC0tPgo8IS0tIExBWU9VVD1WMiAtLT4KPGgyPklFVEYt
QW5ub3VuY2UgTGlzdDwvaDI+Cgo8dWwgY2xhc3M9ImxpbmtzIj4KICA8bGk+PGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbC1hcmNoaXZlL3dlYi9pZXRmLWFubm91bmNlL2N1
cnJlbnQvbXNnMTcwNTIuaHRtbCI+SW50ZXJpbSBJRVRGIEFkbWluaXN0cmF0aXZlIERpcmVj
dG9yIGhpcmVkITwvYT4gPHNwYW4gY2xhc3M9ImF1dGhvciI+KElBT0MgQ2hhaXIpPC9zcGFu
PjwvbGk+CiAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL21haWwtYXJjaGl2
ZS93ZWIvaWV0Zi1hbm5vdW5jZS9jdXJyZW50L21zZzE3MDUxLmh0bWwiPk5ldyBOb24tV0cg
TWFpbGluZyBMaXN0OiBSRUFQLSBSRUFQIChSRU5FVykgRUFQPC9hPiA8c3BhbiBjbGFzcz0i
YXV0aG9yIj4oSUVURiBTZWNyZXRhcmlhdCk8L3NwYW4+PC9saT4KICA8bGk+PGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbC1hcmNoaXZlL3dlYi9pZXRmLWFubm91bmNlL2N1
cnJlbnQvbXNnMTcwNTAuaHRtbCI+TGFzdCBDYWxsOiAmbHQ7ZHJhZnQtaWV0Zi1zdW5zZXQ0
LWlwdjYtaWV0Zi0wMS50eHQmZ3Q7IChJRVRGOiBFbmQgV29yayBvbiBJUHY0KSB0byBQcm9w
b3NlZCBTdGFuZGFyZDwvYT4gPHNwYW4gY2xhc3M9ImF1dGhvciI+KFRoZSBJRVNHKTwvc3Bh
bj48L2xpPgogIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsLWFyY2hp
dmUvd2ViL2lldGYtYW5ub3VuY2UvY3VycmVudC9tc2cxNzA0OS5odG1sIj5MYXN0IENhbGw6
ICZsdDtkcmFmdC1pZXRmLWRuc3NkLWh5YnJpZC0wNy50eHQmZ3Q7IChEaXNjb3ZlcnkgUHJv
eHkgZm9yIE11bHRpY2FzdCBETlMtQmFzZWQgU2VydmljZSBEaXNjb3ZlcnkpIHRvIFByb3Bv
c2VkIFN0YW5kYXJkPC9hPiA8c3BhbiBjbGFzcz0iYXV0aG9yIj4oVGhlIElFU0cpPC9zcGFu
PjwvbGk+CiAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL21haWwtYXJjaGl2
ZS93ZWIvaWV0Zi1hbm5vdW5jZS9jdXJyZW50L21zZzE3MDQ4Lmh0bWwiPkxhc3QgQ2FsbDog
Jmx0O2RyYWZ0LWlldGYtYW5pbWEtdm91Y2hlci0wNS50eHQmZ3Q7IChWb3VjaGVyIFByb2Zp
bGUgZm9yIEJvb3RzdHJhcHBpbmcgUHJvdG9jb2xzKSB0byBQcm9wb3NlZCBTdGFuZGFyZDwv
YT4gPHNwYW4gY2xhc3M9ImF1dGhvciI+KFRoZSBJRVNHKTwvc3Bhbj48L2xpPgogIDxsaT48
YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsLWFyY2hpdmUvd2ViL2lldGYtYW5u
b3VuY2UvY3VycmVudC9tc2cxNzA0Ny5odG1sIj5MYXN0IENhbGw6ICZsdDtkcmFmdC1pZXRm
LWFuaW1hLXByZWZpeC1tYW5hZ2VtZW50LTA1LnR4dCZndDsgKEF1dG9ub21pYyBJUHY2IEVk
Z2UgUHJlZml4IE1hbmFnZW1lbnQgaW4gTGFyZ2Utc2NhbGUgTmV0d29ya3MpIHRvIEluZm9y
bWF0aW9uYWwgUkZDPC9hPiA8c3BhbiBjbGFzcz0iYXV0aG9yIj4oVGhlIElFU0cpPC9zcGFu
PjwvbGk+CjwvdWw+Cgo8ZGl2IGNsYXNzPSJtb3JlIj48YSBocmVmPSJodHRwczovL3d3dy5p
ZXRmLm9yZy9tYWlsLWFyY2hpdmUvd2ViL2lldGYtYW5ub3VuY2UvIj5tb3JlIG1lc3NhZ2Vz
ICZyYXF1bzs8L2E+PC9kaXY+Cgo8aDI+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9odG1sL25ldy1yZmNzLnJzcyI+PGltZyBzcmM9ImZlZWRpY29uMTYucG5nIiBzdHlsZT0i
ZmxvYXQ6cmlnaHQ7IiBhbHQ9IltGZWVkXSIgLz48L2E+IE5ldyBSRkNzPC9oMj4KPGRpdiBj
bGFzcz0ibW9yZSI+PGEgaHJlZj0iaHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9uZXdfcmZj
cy5odG1sIj5tb3JlIHJlY2VudCBSRkNzICZyYXF1bzs8L2E+PC9kaXY+Cgo8aDI+TmV3IGFu
ZCBSZXZpdmVkIERyYWZ0czwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBvbmNs
aWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQwJykiIGlkPSJpZDBiIj48c3Bh
biBjbGFzcz0iaWR0aXRsZSI+RGVjZW50cmFsaXplZCBTZXJ2aWNlIEFyY2hpdGVjdHVyZSBm
b3IgT0F1dGgyLjA8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1oYXJkam9u
by1vYXV0aC1kZWNlbnRyYWxpemVkKTwvc3Bhbj4KPGRpdiBpZD0iaWQwIiBjbGFzcz0iaWRk
ZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFRob21hcyBIYXJkam9ubywg
ICAyMDE3LTA5LTI4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNo
aXZlL2lkL2RyYWZ0LWhhcmRqb25vLW9hdXRoLWRlY2VudHJhbGl6ZWQtMDEudHh0IiBjbGFz
cz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC1oYXJkam9uby1vYXV0aC1kZWNlbnRyYWxpemVkLTAxLmh0bWwiIGNsYXNzPSJm
b3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2Ry
YWZ0LWhhcmRqb25vLW9hdXRoLWRlY2VudHJhbGl6ZWQtMDEucGRmIiBjbGFzcz0iZm9ybWF0
Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBwcm9wb3NlcyBhbiBh
bHRlcm5hdGl2ZSBzZXJ2aWNlIGFyY2hpdGVjdHVyZSBmb3IgdXNlci0gY2VudHJpYyBjb250
cm9sIG9mIHRoZSBzaGFyaW5nIG9mIHJlc291cmNlcywgc3VjaCBhcyBwZXJzb25hbCBkYXRh
LCB1c2luZyB0aGUgZGVjZW50cmFsaXplZCBwZWVyLXRvLXBlZXIgY29tcHV0aW5nIHBhcmFk
aWdtLiBUaGUgdGVybSAmIzM5O2NvbnRyb2wmIzM5OyBpcyB1c2VkIGhlcmUgdG8gZGVub3Rl
IHRoZSBmdWxsIGNhcGFjaXR5IG9mIHRoZSB1c2VyIHRvIGZyZWVseSBzZWxlY3QgKGkpIHRo
ZSBlbnRpdGllcyB3aXRoIHdob20gdG8gc2hhcmUgcmVzb3VyY2VzIChlLmcuIGRhdGEpLCBh
bmQgKGlpKSB0aGUgZW50aXRpZXMgd2hpY2ggcHJvdmlkZSBzZXJ2aWNlcyBpbXBsZW1lbnRp
bmcgdXNlci1jb250cm9sbGVkIHJlc291cmNlIHNoYXJpbmcuIFRoZSBwZWVyLXRvLXBlZXIg
c2VydmljZSBhcmNoaXRlY3R1cmUgdXNlcyBhIHNldCBvZiBjb21wdXRpbmcgbm9kZXMgY2Fs
bGVkIE9BdXRoMi4wIE5vZGVzIChPTikgdGhhdCBhcmUgcGFydCBvZiBhIHBlZXItdG8tcGVl
ciBuZXR3b3JrIGFzIHRoZSBiYXNpcyBmb3IgdGhlIGRlY2VudHJhbGl6ZWQgc2VydmljZSBh
cmNoaXRlY3R1cmUuIEVhY2ggT0F1dGgyLjAgTm9kZXMgaXMgYXNzdW1lZCB0byBoYXZlIHRo
ZSBjYXBhYmlsaXR5IHRvIHByb3ZpZGUgQVMtc2VydmljZXMsIFJTLXNlcnZpY2VzIGFuZCBD
bGllbnQtc2VydmljZXMuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwx
PWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaGFyZGpvbm8tb2F1dGgtZGVjZW50
cmFsaXplZC0wMC50eHQmYW1wO3VybDI9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFm
dC1oYXJkam9uby1vYXV0aC1kZWNlbnRyYWxpemVkLTAxLnR4dCI+RGlmZiBmcm9tIDAwIHRv
IDAxICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkg
b25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMScpIiBpZD0iaWQxYiI+
PHNwYW4gY2xhc3M9ImlkdGl0bGUiPkEgR3JvdXAgS2V5aW5nIFByb3RvY29sPC9zcGFuPiA8
c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi10cmlsbC1ncm91cC1rZXlpbmcpPC9z
cGFuPgo8ZGl2IGlkPSJpZDEiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgo8cD5CeSAgRG9uYWxkIEVhc3RsYWtlLCBEYWNoZW5nIFpoYW5nLCAyMDE3LTA5LTI4
ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0
LWlldGYtdHJpbGwtZ3JvdXAta2V5aW5nLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9h
PiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi10cmls
bC1ncm91cC1rZXlpbmctMDAuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi10cmlsbC1ncm91cC1r
ZXlpbmctMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDog
VGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYSBnZW5lcmFsIGdyb3VwIGtleWluZyBwcm90b2Nv
bC4gSXQgYWxzbyBwcm92aWRlcyB1c2UgcHJvZmlsZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiBv
ZiB0aGlzIGdyb3VwIGtleWluZyBwcm90b2NvbCB0byBtdWx0aS1kZXN0aW5hdGlvbiBUUklM
TCBFeHRlbmRlZCBSQnJpZGdlIENoYW5uZWwgbWVzc2FnZSBzZWN1cml0eSBhbmQgVFJJTEwg
b3ZlciBJUCBwYWNrZXQgc2VjdXJpdHkuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy90cmlsbC9kcmFmdC1pZXRmLXRy
aWxsLWdyb3VwLWtleWluZyI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL3RyaWxsLyI+VFJJTEwgV0cgJnJh
cXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNr
PSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQyJykiIGlkPSJpZDJiIj48c3BhbiBj
bGFzcz0iaWR0aXRsZSI+U1VQQSBQb2xpY3ktYmFzZWQgTWFuYWdlbWVudCBGcmFtZXdvcms8
L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1saXUtcG9saWN5LWJhc2VkLW1h
bmFnZW1lbnQtZnJhbWV3b3JrKTwvc3Bhbj4KPGRpdiBpZD0iaWQyIiBjbGFzcz0iaWRkZXRh
aWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFdpbGwgTElVLCBDaG9uZ2Zlbmcg
WGllLCBKb2huICAgU3RyYXNzbmVyLCBHZW9yZ2lvcyBLYXJhZ2lhbm5pcywgTWF4aW0gS2x5
dXMsIEp1biBCaSwgWWluZyBDaGVuZywgRGFjaGVuZyAgIFpoYW5nLCAyMDE3LTA5LTI4ICZu
YnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWxp
dS1wb2xpY3ktYmFzZWQtbWFuYWdlbWVudC1mcmFtZXdvcmstMDAudHh0IiBjbGFzcz0iZm9y
bWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFm
dC1saXUtcG9saWN5LWJhc2VkLW1hbmFnZW1lbnQtZnJhbWV3b3JrLTAwLmh0bWwiIGNsYXNz
PSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRm
L2RyYWZ0LWxpdS1wb2xpY3ktYmFzZWQtbWFuYWdlbWVudC1mcmFtZXdvcmstMDAucGRmIiBj
bGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogU2ltcGxpZmllZCBVc2Ug
b2YgUG9saWN5IEFic3RyYWN0aW9ucyAoU1VQQSkgZGVmaW5lcyBiYXNlIFlBTkcgZGF0YSBt
b2RlbHMgdG8gZW5jb2RlIHBvbGljeSwgd2hpY2ggcG9pbnQgdG8gZGV2aWNlLSwgdGVjaG5v
bG9neS0sIGFuZCBzZXJ2aWNlLXNwZWNpZmljIFlBTkcgbW9kZWxzIGRldmVsb3BlZCBlbHNl
d2hlcmUuIFBvbGljeSBydWxlcyB3aXRoaW4gYW4gb3BlcmF0b3ImIzM5O3MgZW52aXJvbm1l
bnQgY2FuIGJlIHVzZWQgdG8gZXhwcmVzcyBoaWdoLWxldmVsLCBwb3NzaWJseSBuZXR3b3Jr
LXdpZGUgcG9saWNpZXMgdG8gYSBuZXR3b3JrIG1hbmFnZW1lbnQgZnVuY3Rpb24gKHdpdGhp
biBhIGNvbnRyb2xsZXIsIGFuIG9yY2hlc3RyYXRvciwgb3IgYSBuZXR3b3JrIGVsZW1lbnQp
LiBUaGUgbmV0d29yayBtYW5hZ2VtZW50IGZ1bmN0aW9uIGNhbiB0aGVuIGNvbnRyb2wgdGhl
IGNvbmZpZ3VyYXRpb24gYW5kL29yIG1vbml0b3Jpbmcgb2YgbmV0d29yayBlbGVtZW50cyBh
bmQgc2VydmljZXMuIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBTVVBBIGJhc2ljIGZy
YW1ld29yaywgaXRzIGVsZW1lbnRzIGFuZCBpbnRlcmZhY2VzLjwvcD4KPC9kaXY+CjwvbGk+
CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzJykiIGlk
PSJpZDNiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+SFRUUCBWYXJpYW50czwvc3Bhbj4gPHNw
YW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LW5vdHRpbmdoYW0tdmFyaWFudHMpPC9zcGFuPgo8
ZGl2IGlkPSJpZDMiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8
cD5CeSAgTWFyayBOb3R0aW5naGFtLCAyMDE3LTA5LTI4ICZuYnNwOyA8YSBocmVmPSJodHRw
czovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LW5vdHRpbmdoYW0tdmFyaWFudHMt
MDAudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9kcmFmdC1ub3R0aW5naGFtLXZhcmlhbnRzLTAwLmh0bWwiIGNsYXNz
PSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRm
L2RyYWZ0LW5vdHRpbmdoYW0tdmFyaWFudHMtMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8
L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBzcGVjaWZpY2F0aW9uIGludHJvZHVjZXMgdGhl
IEhUVFAgJnF1b3Q7VmFyaWFudHMmcXVvdDsgcmVzcG9uc2UgaGVhZGVyIGZpZWxkIHRvIGNv
bW11bmljYXRlIHdoYXQgcmVwcmVzZW50YXRpb25zIGFyZSBhdmFpbGFibGUgZm9yIGEgZ2l2
ZW4gcmVzb3VyY2UuPC9wPgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3Jp
cHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDQnKSIgaWQ9ImlkNGIiPjxzcGFuIGNsYXNzPSJpZHRp
dGxlIj5JbnRlcm5ldCBQcm90b2NvbCBNaXh0dXJlIChJUG1peCkgU3BlY2lmaWNhdGlvbjwv
c3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LW9tYXItaXBtaXgpPC9zcGFuPgo8
ZGl2IGlkPSJpZDQiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8
cD5CeSAgS2hhbGVkIE9tYXIsIDIwMTctMDktMjggJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8v
d3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtb21hci1pcG1peC0wMC50eHQiIGNsYXNz
PSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LW9tYXItaXBtaXgtMDAuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtb21hci1pcG1peC0wMC5w
ZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3Vt
ZW50IHNwZWNpZmllcyB0aGUgSW50ZXJuZXQgUHJvdG9jb2wgTWl4dHVyZSAoSVBtaXgpLjwv
cD4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0
YWlscygnaWQ1JykiIGlkPSJpZDViIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+Q29BUCBQdWIt
U3ViIFByb2ZpbGUgZm9yIEF1dGhlbnRpY2F0aW9uIGFuZCBBdXRob3JpemF0aW9uIGZvciBD
b25zdHJhaW5lZCBFbnZpcm9ubWVudHMgKEFDRSk8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5h
bWUiPihkcmFmdC1wYWxvbWJpbmktYWNlLWNvYXAtcHVic3ViLXByb2ZpbGUpPC9zcGFuPgo8
ZGl2IGlkPSJpZDUiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8
cD5CeSAgRnJhbmNlc2NhIFBhbG9tYmluaSwgMjAxNy0wOS0yOCAmbmJzcDsgPGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1wYWxvbWJpbmktYWNlLWNv
YXAtcHVic3ViLXByb2ZpbGUtMDEudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhy
ZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1wYWxvbWJpbmktYWNlLWNv
YXAtcHVic3ViLXByb2ZpbGUtMDEuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtcGFsb21iaW5pLWFjZS1j
b2FwLXB1YnN1Yi1wcm9maWxlLTAxLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4K
PHA+QWJzdHJhY3Q6IFRoaXMgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIGEgcHJvZmlsZSBmb3Ig
YXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gZm9yIHB1Ymxpc2hlcnMgYW5kIHN1
YnNjcmliZXJzIGluIGEgcHViLXN1YiBzZXR0aW5nIHNjZW5hcmlvIGluIGEgY29uc3RyYWlu
ZWQgZW52aXJvbm1lbnQsIHVzaW5nIHRoZSBBQ0UgZnJhbWV3b3JrLiBUaGlzIHByb2ZpbGUg
cmVsaWVzIG9uIHRyYW5zcG9ydCBsYXllciBvciBhcHBsaWNhdGlvbiBsYXllciBzZWN1cml0
eSB0byBhdXRob3JpemUgdGhlIHB1Ymxpc2hlciB0byB0aGUgYnJva2VyLiBNb3Jlb3Zlciwg
aXQgcmVsaWVzIG9uIGFwcGxpY2F0aW9uIGxheWVyIHNlY3VyaXR5IGZvciBwdWJsaXNoZXIt
YnJva2VyIGFuZCBzdWJzY3JpYmVyLWJyb2tlciBjb21tdW5pY2F0aW9uLjwvcD4KPGRpdiBj
bGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9v
bHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lk
L2RyYWZ0LXBhbG9tYmluaS1hY2UtY29hcC1wdWJzdWItcHJvZmlsZS0wMC50eHQmYW1wO3Vy
bDI9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1wYWxvbWJpbmktYWNlLWNvYXAt
cHVic3ViLXByb2ZpbGUtMDEudHh0Ij5EaWZmIGZyb20gMDAgdG8gMDEgJnJhcXVvOzwvYT48
YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+Cgo8L3VsPgoKPGgyPlVwZGF0ZWQgRHJh
ZnRzPC9oMj4KCjx1bCBjbGFzcz0iZXhwYW5kcyI+CiAgPGxpIG9uY2xpY2s9ImphdmFzY3Jp
cHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDYnKSIgaWQ9ImlkNmIiPjxzcGFuIGNsYXNzPSJpZHRp
dGxlIj5QYWRkaW5nIFBvbGljeSBmb3IgRUROUygwKTwvc3Bhbj4gPHNwYW4gY2xhc3M9Imlk
bmFtZSI+KGRyYWZ0LWlldGYtZHByaXZlLXBhZGRpbmctcG9saWN5KTwvc3Bhbj4KPGRpdiBp
ZD0iaWQ2IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+Qnkg
IEFsZXhhbmRlciBNYXlyaG9mZXIsIDIwMTctMDktMjggJm5ic3A7IDxhIGhyZWY9Imh0dHBz
Oi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1kcHJpdmUtcGFkZGluZy1w
b2xpY3ktMDIudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWRwcml2ZS1wYWRkaW5nLXBvbGljeS0w
Mi5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWRwcml2ZS1wYWRkaW5nLXBvbGljeS0wMi5wZGYi
IGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBSRkMgNzgzMCBzcGVj
aWZpZXMgdGhlIEVETlMwICYjMzk7UGFkZGluZyYjMzk7IG9wdGlvbiwgYnV0IGRvZXMgbm90
IHNwZWNpZnkgdGhlIGFjdHVhbCBwYWRkaW5nIGxlbmd0aCBmb3Igc3BlY2lmaWMgYXBwbGlj
YXRpb25zLiBUaGlzIG1lbW8gbGlzdHMgdGhlIHBvc3NpYmxlIG9wdGlvbnMgKCZxdW90O1Bh
ZGRpbmcgUG9saWNpZXMmcXVvdDspLCBkaXNjdXNzZXMgdGhlIGltcGxpY2F0aW9ucyBvZiBl
YWNoIG9mIHRoZXNlIG9wdGlvbnMsIGFuZCBwcm92aWRlcyBhIHJlY29tbWVuZGVkIChleHBl
cmltZW50YWwpIG9wdGlvbi48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVm
PSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3Vy
bDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLWRwcml2ZS1wYWRkaW5n
LXBvbGljeS0wMS50eHQmYW1wO3VybDI9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFm
dC1pZXRmLWRwcml2ZS1wYWRkaW5nLXBvbGljeS0wMi50eHQiPkRpZmYgZnJvbSAwMSB0byAw
MiAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dn
L2Rwcml2ZS9kcmFmdC1pZXRmLWRwcml2ZS1wYWRkaW5nLXBvbGljeSI+RG9jdW1lbnQgZGV0
YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3dnL2Rwcml2ZS8iPkRQUklWRSBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8
L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxz
KCdpZDcnKSIgaWQ9ImlkN2IiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5NaXRpZ2F0aW5nIE5l
Z2F0aXZlIEltcGFjdCBvZiBNYWludGVuYW5jZSB0aHJvdWdoIEJHUCBTZXNzaW9uIEN1bGxp
bmc8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLWdyb3ctYmdwLXNl
c3Npb24tY3VsbGluZyk8L3NwYW4+CjxkaXYgaWQ9ImlkNyIgY2xhc3M9ImlkZGV0YWlscyIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICAgIFdpbGwgSGFyZ3JhdmUsIE1hdHQgR3Jp
c3dvbGQsIEpvYiBTbmlqZGVycywgTmljayBIaWxsaWFyZCwgMjAxNy0wOS0yOCAmbmJzcDsg
PGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLWdy
b3ctYmdwLXNlc3Npb24tY3VsbGluZy0wNS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4g
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtZ3Jvdy1i
Z3Atc2Vzc2lvbi1jdWxsaW5nLTA1Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtZ3Jvdy1iZ3At
c2Vzc2lvbi1jdWxsaW5nLTA1LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+
QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQgb3V0bGluZXMgYW4gYXBwcm9hY2ggdG8gbWl0aWdh
dGUgbmVnYXRpdmUgaW1wYWN0IG9uIG5ldHdvcmtzIHJlc3VsdGluZyBmcm9tIG1haW50ZW5h
bmNlIGFjdGl2aXRpZXMuIEl0IGluY2x1ZGVzIGd1aWRhbmNlIGZvciBib3RoIElQIG5ldHdv
cmtzIGFuZCBJbnRlcm5ldCBFeGNoYW5nZSBQb2ludHMgKElYUHMpLiBUaGUgYXBwcm9hY2gg
aXMgdG8gZW5zdXJlIEJHUC00IHNlc3Npb25zIGFmZmVjdGVkIGJ5IHRoZSBtYWludGVuYW5j
ZSBhcmUgZm9yY2VmdWxseSB0b3JuIGRvd24gYmVmb3JlIHRoZSBhY3R1YWwgbWFpbnRlbmFu
Y2UgYWN0aXZpdGllcyBjb21tZW5jZS48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5w
eWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLWdyb3ctYmdw
LXNlc3Npb24tY3VsbGluZy0wNC50eHQmYW1wO3VybDI9aHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9pZC9kcmFmdC1pZXRmLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZy0wNS50eHQiPkRpZmYg
ZnJvbSAwNCB0byAwNSAmcmFxdW87PC9hPjxiciAvPgpTdGF0ZTogSUVTRyBFdmFsdWF0aW9u
PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2Vy
L2RyYWZ0LWlldGYtZ3Jvdy1iZ3Atc2Vzc2lvbi1jdWxsaW5nLyI+SUQgVHJhY2tlciAmcmFx
dW87PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcv
ZmVlZC9jb21tZW50cy9kcmFmdC1pZXRmLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZy8iIGNs
YXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvd2cvZ3Jvdy9kcmFmdC1pZXRmLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZyI+RG9j
dW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3dnL2dyb3cvIj5HUk9XIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9k
aXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERl
dGFpbHMoJ2lkOCcpIiBpZD0iaWQ4YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlVzZSBvZiBN
dWx0aWNhc3QgQWNyb3NzIEludGVyLURvbWFpbiBQZWVyaW5nIFBvaW50czwvc3Bhbj4gPHNw
YW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtbWJvbmVkLWludGVyZG9tYWluLXBlZXJp
bmctYmNwKTwvc3Bhbj4KPGRpdiBpZD0iaWQ4IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KPHA+QnkgIFBlcmN5IFRhcmFwb3JlLCAgIFJvYmVydCBTYXlrbywg
R3JlZyBTaGVwaGVyZCwgVG9lcmxlc3MgRWNrZXJ0LCBSYW0gS3Jpc2huYW4sIDIwMTctMDkt
MjggJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJh
ZnQtaWV0Zi1tYm9uZWQtaW50ZXJkb21haW4tcGVlcmluZy1iY3AtMTEudHh0IiBjbGFzcz0i
Zm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLW1ib25lZC1pbnRlcmRvbWFpbi1wZWVyaW5nLWJjcC0xMS5odG1sIiBjbGFz
cz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Bk
Zi9kcmFmdC1pZXRmLW1ib25lZC1pbnRlcmRvbWFpbi1wZWVyaW5nLWJjcC0xMS5wZGYiIGNs
YXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3VtZW50IGV4
YW1pbmVzIHRoZSB1c2Ugb2YgU291cmNlIFNwZWNpZmljIE11bHRpY2FzdCAoU1NNKSBhY3Jv
c3MgaW50ZXItZG9tYWluIHBlZXJpbmcgcG9pbnRzIGZvciBhIHNwZWNpZmllZCBzZXQgb2Yg
ZGVwbG95bWVudCBzY2VuYXJpb3MuIFRoZSBvYmplY3RpdmUgaXMgdG8gZGVzY3JpYmUgdGhl
IHNldHVwIHByb2Nlc3MgZm9yIG11bHRpY2FzdC1iYXNlZCBkZWxpdmVyeSBhY3Jvc3MgYWRt
aW5pc3RyYXRpdmUgZG9tYWlucyBmb3IgdGhlc2Ugc2NlbmFyaW9zIGFuZCBkb2N1bWVudCBz
dXBwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gZW5hYmxlIHRoaXMgcHJvY2Vzcy48L3A+Cjxk
aXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9pZC9kcmFmdC1pZXRmLW1ib25lZC1pbnRlcmRvbWFpbi1wZWVyaW5nLWJjcC0xMC50eHQm
YW1wO3VybDI9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLW1ib25lZC1p
bnRlcmRvbWFpbi1wZWVyaW5nLWJjcC0xMS50eHQiPkRpZmYgZnJvbSAxMCB0byAxMSAmcmFx
dW87PC9hPjxiciAvPgpTdGF0ZTogV2FpdGluZyBmb3IgV3JpdGV1cDo6QUQgRm9sbG93dXA8
YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRyYWNrZXIv
ZHJhZnQtaWV0Zi1tYm9uZWQtaW50ZXJkb21haW4tcGVlcmluZy1iY3AvIj5JRCBUcmFja2Vy
ICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRm
Lm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtbWJvbmVkLWludGVyZG9tYWluLXBlZXJp
bmctYmNwLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy93Zy9tYm9uZWQvZHJhZnQtaWV0Zi1tYm9uZWQtaW50ZXJkb21h
aW4tcGVlcmluZy1iY3AiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4KPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9tYm9uZWQvIj5NQk9ORUQgV0cgJnJh
cXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNr
PSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQ5JykiIGlkPSJpZDliIj48c3BhbiBj
bGFzcz0iaWR0aXRsZSI+QSBZQU5HIERhdGEgTW9kZWwgZm9yIE5ldHdvcmsgQWRkcmVzcyBU
cmFuc2xhdGlvbiAoTkFUKSBhbmQgTmV0d29yayBQcmVmaXggVHJhbnNsYXRpb24gKE5QVCk8
L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLW9wc2F3Zy1uYXQteWFu
Zyk8L3NwYW4+CjxkaXYgaWQ9ImlkOSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CjxwPkJ5ICBNb2hhbWVkIEJvdWNhZGFpciwgU2VudGhpbCBTaXZha3VtYXIs
IENocmlzdGlhbiAgIEphY3F1ZW5ldCwgU3VyZXNoIFZpbmFwYW11bGEsIFFpbiBXdSwgMjAx
Ny0wOS0yOCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9p
ZC9kcmFmdC1pZXRmLW9wc2F3Zy1uYXQteWFuZy0wNC50eHQiIGNsYXNzPSJmb3JtYXQiPlRY
VDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYt
b3BzYXdnLW5hdC15YW5nLTA0Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhy
ZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtb3BzYXdnLW5hdC15
YW5nLTA0LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IEZv
ciB0aGUgc2FrZSBvZiBuZXR3b3JrIGF1dG9tYXRpb24gYW5kIHRoZSBuZWVkIGZvciBwcm9n
cmFtbWluZyBOZXR3b3JrIEFkZHJlc3MgVHJhbnNsYXRpb24gKE5BVCkgZnVuY3Rpb24gaW4g
cGFydGljdWxhciwgYSBkYXRhIG1vZGVsIGZvciBjb25maWd1cmluZyBhbmQgbWFuYWdpbmcg
dGhlIE5BVCBpcyBlc3NlbnRpYWwuIFRoaXMgZG9jdW1lbnQgZGVmaW5lcyBhIFlBTkcgbW9k
dWxlIGZvciB0aGUgTkFUIGZ1bmN0aW9uLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+Cjxw
PjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZm
LnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LWlldGYtb3BzYXdn
LW5hdC15YW5nLTAzLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2Ry
YWZ0LWlldGYtb3BzYXdnLW5hdC15YW5nLTA0LnR4dCI+RGlmZiBmcm9tIDAzIHRvIDA0ICZy
YXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvb3Bz
YXdnL2RyYWZ0LWlldGYtb3BzYXdnLW5hdC15YW5nIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1
bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvb3BzYXdn
LyI+T1BTQVdHIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xp
PgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTAnKSIg
aWQ9ImlkMTBiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+TkFEQTogQSBVbmlmaWVkIENvbmdl
c3Rpb24gQ29udHJvbCBTY2hlbWUgZm9yIFJlYWwtVGltZSBNZWRpYTwvc3Bhbj4gPHNwYW4g
Y2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtcm1jYXQtbmFkYSk8L3NwYW4+CjxkaXYgaWQ9
ImlkMTAiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAg
WGlhb3FpbmcgICBaaHUsIFJvbmcgUGFuLCBNaWNoYWVsIFJhbWFsaG8sIFNlcmdpbyBkZSBs
YSBDcnV6LCBQYXVsIEpvbmVzLCBKaWFuIEZ1LCAgIFN0ZWZhbm8gRCYjMzk7QXJvbmNvLCAy
MDE3LTA5LTI4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZl
L2lkL2RyYWZ0LWlldGYtcm1jYXQtbmFkYS0wNS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwv
YT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtcm1j
YXQtbmFkYS0wNS5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLXJtY2F0LW5hZGEtMDUucGRmIiBj
bGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBk
ZXNjcmliZXMgTkFEQSAobmV0d29yay1hc3Npc3RlZCBkeW5hbWljIGFkYXB0YXRpb24pLCBh
IG5vdmVsIGNvbmdlc3Rpb24gY29udHJvbCBzY2hlbWUgZm9yIGludGVyYWN0aXZlIHJlYWwt
dGltZSBtZWRpYSBhcHBsaWNhdGlvbnMsIHN1Y2ggYXMgdmlkZW8gY29uZmVyZW5jaW5nLiBJ
biB0aGUgcHJvcG9zZWQgc2NoZW1lLCB0aGUgc2VuZGVyIHJlZ3VsYXRlcyBpdHMgc2VuZGlu
ZyByYXRlIGJhc2VkIG9uIGVpdGhlciBpbXBsaWNpdCBvciBleHBsaWNpdCBjb25nZXN0aW9u
IHNpZ25hbGluZywgaW4gYSB1bmlmaWVkIGFwcHJvYWNoLiBUaGUgc2NoZW1lIGNhbiBiZW5l
Zml0IGZyb20gZXhwbGljaXQgY29uZ2VzdGlvbiBub3RpZmljYXRpb24gKEVDTikgbWFya2lu
Z3MgZnJvbSBuZXR3b3JrIG5vZGVzLiBJdCBhbHNvIG1haW50YWlucyBjb25zaXN0ZW50IHNl
bmRlciBiZWhhdmlvciBpbiB0aGUgYWJzZW5jZSBvZiBzdWNoIG1hcmtpbmdzLCBieSByZWFj
dGluZyB0byBxdWV1aW5nIGRlbGF5cyBhbmQgcGFja2V0IGxvc3NlcyBpbnN0ZWFkLjwvcD4K
PGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYu
b3JnL2lkL2RyYWZ0LWlldGYtcm1jYXQtbmFkYS0wNC50eHQmYW1wO3VybDI9aHR0cHM6Ly90
b29scy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLXJtY2F0LW5hZGEtMDUudHh0Ij5EaWZmIGZy
b20gMDQgdG8gMDUgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy93Zy9ybWNhdC9kcmFmdC1pZXRmLXJtY2F0LW5hZGEiPkRvY3VtZW50IGRldGFp
bHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93
Zy9ybWNhdC8iPlJNQ0FUIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2
Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lk
MTEnKSIgaWQ9ImlkMTFiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+TmV0d29yayBTZXJ2aWNl
IEhlYWRlciAoTlNIKTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYt
c2ZjLW5zaCk8L3NwYW4+CjxkaXYgaWQ9ImlkMTEiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxl
PSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgUGF1bCBRdWlubiwgVXJpIEVsenVyLCBDYXJsb3Mg
UGlnbmF0YXJvLCAgIDIwMTctMDktMjggJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1zZmMtbnNoLTI1LnR4dCIgY2xhc3M9ImZv
cm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJh
ZnQtaWV0Zi1zZmMtbnNoLTI1Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhy
ZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtc2ZjLW5zaC0yNS5w
ZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3Vt
ZW50IGRlc2NyaWJlcyBhIE5ldHdvcmsgU2VydmljZSBIZWFkZXIgKE5TSCkgaW1wb3NlZCBv
biBwYWNrZXRzIG9yIGZyYW1lcyB0byByZWFsaXplIHNlcnZpY2UgZnVuY3Rpb24gcGF0aHMu
IFRoZSBOU0ggYWxzbyBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgbWV0YWRhdGEgZXhjaGFu
Z2UgYWxvbmcgdGhlIGluc3RhbnRpYXRlZCBzZXJ2aWNlIHBhdGhzLiBUaGUgTlNIIGlzIHRo
ZSBTRkMgZW5jYXBzdWxhdGlvbiByZXF1aXJlZCB0byBzdXBwb3J0IHRoZSBTZXJ2aWNlIEZ1
bmN0aW9uIENoYWluaW5nIChTRkMpIGFyY2hpdGVjdHVyZSAoZGVmaW5lZCBpbiBSRkM3NjY1
KS48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3Rvb2xzL3JmY2RpZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLXNmYy1uc2gtMjQudHh0JmFtcDt1cmwyPWh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaWV0Zi1zZmMtbnNoLTI1LnR4dCI+RGlmZiBm
cm9tIDI0IHRvIDI1ICZyYXF1bzs8L2E+PGJyIC8+ClN0YXRlOiBJRVNHIEV2YWx1YXRpb246
OlJldmlzZWQgSS1EIE5lZWRlZDxiciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2Vy
LmlldGYub3JnL2lkdHJhY2tlci9kcmFmdC1pZXRmLXNmYy1uc2gvIj5JRCBUcmFja2VyICZy
YXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y
Zy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtc2ZjLW5zaC8iIGNsYXNzPSJmb3JtYXQiPkFU
T008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvc2ZjL2Ry
YWZ0LWlldGYtc2ZjLW5zaCI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL3NmYy8iPlNGQyBXRyAmcmFxdW87
PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9Imph
dmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDEyJykiIGlkPSJpZDEyYiI+PHNwYW4gY2xh
c3M9ImlkdGl0bGUiPlNNVFAgTVRBIFN0cmljdCBUcmFuc3BvcnQgU2VjdXJpdHkgKE1UQS1T
VFMpPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi11dGEtbXRhLXN0
cyk8L3NwYW4+CjxkaXYgaWQ9ImlkMTIiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNw
bGF5Om5vbmUiPgo8cD5CeSAgRGFuaWVsIE1hcmdvbGlzLCBNYXJrICAgUmlzaGVyLCBCaW51
IFJhbWFrcmlzaG5hbiwgQWxleGFuZGVyIEJyb3RtYW4sIEphbmV0IEpvbmVzLCAyMDE3LTA5
LTI4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2Ry
YWZ0LWlldGYtdXRhLW10YS1zdHMtMTAudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLXV0YS1tdGEt
c3RzLTEwLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtdXRhLW10YS1zdHMtMTAucGRmIiBjbGFz
cz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogU01UUCBNYWlsIFRyYW5zZmVy
IEFnZW50IFN0cmljdCBUcmFuc3BvcnQgU2VjdXJpdHkgKE1UQS1TVFMpIGlzIGEgbWVjaGFu
aXNtIGVuYWJsaW5nIG1haWwgc2VydmljZSBwcm92aWRlcnMgdG8gZGVjbGFyZSB0aGVpciBh
YmlsaXR5IHRvIHJlY2VpdmUgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIHNlY3Vy
ZSBTTVRQIGNvbm5lY3Rpb25zLCBhbmQgdG8gc3BlY2lmeSB3aGV0aGVyIHNlbmRpbmcgU01U
UCBzZXJ2ZXJzIHNob3VsZCByZWZ1c2UgdG8gZGVsaXZlciB0byBNWCBob3N0cyB0aGF0IGRv
IG5vdCBvZmZlciBUTFMgd2l0aCBhIHRydXN0ZWQgc2VydmVyIGNlcnRpZmljYXRlLjwvcD4K
PGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5v
cmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYu
b3JnL2lkL2RyYWZ0LWlldGYtdXRhLW10YS1zdHMtMDkudHh0JmFtcDt1cmwyPWh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaWV0Zi11dGEtbXRhLXN0cy0xMC50eHQiPkRpZmYg
ZnJvbSAwOSB0byAxMCAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3dnL3V0YS9kcmFmdC1pZXRmLXV0YS1tdGEtc3RzIj5Eb2N1bWVudCBkZXRh
aWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
d2cvdXRhLyI+VVRBIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8
L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTMn
KSIgaWQ9ImlkMTNiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+U01UUCBUTFMgUmVwb3J0aW5n
PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi11dGEtc210cC10bHNy
cHQpPC9zcGFuPgo8ZGl2IGlkPSJpZDEzIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlz
cGxheTpub25lIj4KPHA+QnkgIERhbmllbCBNYXJnb2xpcywgQWxleGFuZGVyIEJyb3RtYW4s
IEJpbnUgICBSYW1ha3Jpc2huYW4sIEphbmV0IEpvbmVzLCBNYXJrIFJpc2hlciwgMjAxNy0w
OS0yOCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9k
cmFmdC1pZXRmLXV0YS1zbXRwLXRsc3JwdC0xMC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwv
YT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtdXRh
LXNtdHAtdGxzcnB0LTEwLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtdXRhLXNtdHAtdGxzcnB0
LTEwLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IEEgbnVt
YmVyIG9mIHByb3RvY29scyBleGlzdCBmb3IgZXN0YWJsaXNoaW5nIGVuY3J5cHRlZCBjaGFu
bmVscyBiZXR3ZWVuIFNNVFAgTWFpbCBUcmFuc2ZlciBBZ2VudHMsIGluY2x1ZGluZyBTVEFS
VFRMUyBbUkZDMzIwN10sIERBTkUgW1JGQzY2OThdLCBhbmQgTVRBLVNUUyAoVE9ETzogQWRk
IHJlZikuIFRoZXNlIHByb3RvY29scyBjYW4gZmFpbCBkdWUgdG8gbWlzY29uZmlndXJhdGlv
biBvciBhY3RpdmUgYXR0YWNrLCBsZWFkaW5nIHRvIHVuZGVsaXZlcmVkIG1lc3NhZ2VzIG9y
IGRlbGl2ZXJ5IG92ZXIgdW5lbmNyeXB0ZWQgb3IgdW5hdXRoZW50aWNhdGVkIGNoYW5uZWxz
LiBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBhIHJlcG9ydGluZyBtZWNoYW5pc20gYW5kIGZv
cm1hdCBieSB3aGljaCBzZW5kaW5nIHN5c3RlbXMgY2FuIHNoYXJlIHN0YXRpc3RpY3MgYW5k
IHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IHBvdGVudGlhbCBmYWlsdXJlcyB3aXRoIHJl
Y2lwaWVudCBkb21haW5zLiBSZWNpcGllbnQgZG9tYWlucyBjYW4gdGhlbiB1c2UgdGhpcyBp
bmZvcm1hdGlvbiB0byBib3RoIGRldGVjdCBwb3RlbnRpYWwgYXR0YWNrZXJzIGFuZCBkaWFn
bm9zZSB1bmludGVudGlvbmFsIG1pc2NvbmZpZ3VyYXRpb25zLjwvcD4KPGRpdiBjbGFzcz0i
aWR0b29scyI+CjxwPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZj
ZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1odHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0
LWlldGYtdXRhLXNtdHAtdGxzcnB0LTA5LnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmll
dGYub3JnL2lkL2RyYWZ0LWlldGYtdXRhLXNtdHAtdGxzcnB0LTEwLnR4dCI+RGlmZiBmcm9t
IDA5IHRvIDEwICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvd2cvdXRhL2RyYWZ0LWlldGYtdXRhLXNtdHAtdGxzcnB0Ij5Eb2N1bWVudCBkZXRh
aWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
d2cvdXRhLyI+VVRBIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8
L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMTQn
KSIgaWQ9ImlkMTRiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+VW5pcXVlIElQdjYgUHJlZml4
IFBlciBIb3N0PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi12Nm9w
cy11bmlxdWUtaXB2Ni1wcmVmaXgtcGVyLWhvc3QpPC9zcGFuPgo8ZGl2IGlkPSJpZDE0IiBj
bGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEpvaG4gQnJ6
b3pvd3NraSwgR3VudGVyIFZhbiBkZSBWZWxkZSwgICAyMDE3LTA5LTI4ICZuYnNwOyA8YSBo
cmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtdjZvcHMt
dW5pcXVlLWlwdjYtcHJlZml4LXBlci1ob3N0LTExLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhU
PC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi12
Nm9wcy11bmlxdWUtaXB2Ni1wcmVmaXgtcGVyLWhvc3QtMTEuaHRtbCIgY2xhc3M9ImZvcm1h
dCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQt
aWV0Zi12Nm9wcy11bmlxdWUtaXB2Ni1wcmVmaXgtcGVyLWhvc3QtMTEucGRmIiBjbGFzcz0i
Zm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBvdXRsaW5l
cyBhbiBhcHByb2FjaCB1dGlsaXNpbmcgZXhpc3RpbmcgSVB2NiBwcm90b2NvbHMgdG8gYWxs
b3cgaG9zdHMgdG8gYmUgYXNzaWduZWQgYSB1bmlxdWUgSVB2NiBwcmVmaXggKGluc3RlYWQg
b2YgYSB1bmlxdWUgSVB2NiBhZGRyZXNzIGZyb20gYSBzaGFyZWQgSVB2NiBwcmVmaXgpLiBC
ZW5lZml0cyBvZiB1bmlxdWUgSVB2NiBwcmVmaXggb3ZlciBhIHVuaXF1ZSBzZXJ2aWNlIHBy
b3ZpZGVyIElQdjYgYWRkcmVzcyBpbmNsdWRlIGltcHJvdmVkIGhvc3QgaXNvbGF0aW9uIGFu
ZCBlbmhhbmNlZCBzdWJzY3JpYmVyIG1hbmFnZW1lbnQgb24gc2hhcmVkIG5ldHdvcmsgc2Vn
bWVudHMuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtaWV0Zi12Nm9wcy11bmlxdWUtaXB2Ni1wcmVmaXgt
cGVyLWhvc3QtMTAudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJh
ZnQtaWV0Zi12Nm9wcy11bmlxdWUtaXB2Ni1wcmVmaXgtcGVyLWhvc3QtMTEudHh0Ij5EaWZm
IGZyb20gMTAgdG8gMTEgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29s
cy5pZXRmLm9yZy93Zy92Nm9wcy9kcmFmdC1pZXRmLXY2b3BzLXVuaXF1ZS1pcHY2LXByZWZp
eC1wZXItaG9zdCI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVm
PSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL3Y2b3BzLyI+VjZPUFMgV0cgJnJhcXVvOzwv
YT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZh
c2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQxNScpIiBpZD0iaWQxNWIiPjxzcGFuIGNsYXNz
PSJpZHRpdGxlIj5BIExhbmd1YWdlIGZvciBSdWxlcyBEZXNjcmliaW5nIEpTT04gQ29udGVu
dDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LW5ld3Rvbi1qc29uLWNvbnRl
bnQtcnVsZXMpPC9zcGFuPgo8ZGl2IGlkPSJpZDE1IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHls
ZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEFuZHJldyBOZXd0b24sIFBldGUgICBDb3JkZWxs
LCAyMDE3LTA5LTI4ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNo
aXZlL2lkL2RyYWZ0LW5ld3Rvbi1qc29uLWNvbnRlbnQtcnVsZXMtMDkudHh0IiBjbGFzcz0i
Zm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1uZXd0b24tanNvbi1jb250ZW50LXJ1bGVzLTA5Lmh0bWwiIGNsYXNzPSJmb3JtYXQi
PkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LW5l
d3Rvbi1qc29uLWNvbnRlbnQtcnVsZXMtMDkucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+
PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgYSBsYW5ndWFnZSBm
b3Igc3BlY2lmeWluZyBhbmQgdGVzdGluZyB0aGUgZXhwZWN0ZWQgY29udGVudCBvZiBKU09O
IHN0cnVjdHVyZXMgZm91bmQgaW4gSlNPTi11c2luZyBwcm90b2NvbHMsIHNvZnR3YXJlLCBh
bmQgcHJvY2Vzc2VzLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPjxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvdG9vbHMvcmZjZGlmZi9yZmNkaWZmLnB5aHQ/dXJsMT1o
dHRwczovL3Rvb2xzLmlldGYub3JnL2lkL2RyYWZ0LW5ld3Rvbi1qc29uLWNvbnRlbnQtcnVs
ZXMtMDgudHh0JmFtcDt1cmwyPWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtbmV3
dG9uLWpzb24tY29udGVudC1ydWxlcy0wOS50eHQiPkRpZmYgZnJvbSAwOCB0byAwOSAmcmFx
dW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9
ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDE2JykiIGlkPSJpZDE2YiI+PHNwYW4g
Y2xhc3M9ImlkdGl0bGUiPk1ldGhvZCB0byBwcmUtZmV0Y2ggRG9tYWluIE5hbWVzIGF0IEhU
VFAgUHJveHkgU2VydmVyczwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXBj
aG93ZGFpYWgtcHJlZmV0Y2gtZG5zLW92ZXItaHR0cCk8L3NwYW4+CjxkaXYgaWQ9ImlkMTYi
IGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgICBwY2hv
d2RhaWFoQGdtYWlsLmNvbSwgMjAxNy0wOS0yOCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93
d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1wY2hvd2RhaWFoLXByZWZldGNoLWRucy1v
dmVyLWh0dHAtMDEudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1wY2hvd2RhaWFoLXByZWZldGNoLWRucy1v
dmVyLWh0dHAtMDEuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtcGNob3dkYWlhaC1wcmVmZXRjaC1kbnMt
b3Zlci1odHRwLTAxLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJh
Y3Q6IFRoaXMgc3BlY2lmaWNhdGlvbiBvZmZlcnMgYW4gYXBwcm9hY2ggZm9yIGF1Z21lbnRp
bmcgZG9tYWluIG5hbWUgcmVzb2x1dGlvbiB0aW1lcyBieSBpbnRlcmNlcHRpbmcgSFRUUCBy
ZXNwb25zZXMgYXQgSFRUUCBQcm94eSBzZXJ2ZXJzIGFuZCB0cmlnZ2VyaW5nIEROUyBxdWVy
aWVzIHRvIHRoZSBzZXJ2ZXJzIGluIGxpZXUgb2YgdXNlciByZXF1ZXN0cyBhbmQgcmV0dXJu
aW5nIHJlc3BvbnNlcyB3aXRob3V0IGFuIGV4cGxpY2l0IHJlcXVlc3RzIGZyb20gY2xpZW50
cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGNhbiBiZSBhY2hpZXZlZCBieSBtdWx0aXBsZSBhcHBy
b2FjaGVzIGF0IEhUVFAgYW5kIERvbWFpbiBOYW1lIFN5c3RlbSBbRE5TXSBQcm90b2NvbHMs
IHRoaXMgZG9jdW1lbnQgc3BlY2lmaWVzIGFwcHJvYWNoIHRoYXQgc2hhbGwgYmUgZW1wbG95
ZWQgYXQgSFRUUCBwcm90b2NvbCBbUkZDIDI2MTZdLiBNZXRob2RzL2FwcHJvYWNoZXMgcGVy
dGFpbmluZyB0byBETlMgc2hhbGwgYmUgZG9jdW1lbnRlZCBpbiBbZHJhZnQtIHBjaG93ZGFp
YWgtZG5zLXdpdGhvdXQtZXhwbGljaXQtcXVlcnkudHh0XS48L3A+CjxkaXYgY2xhc3M9Imlk
dG9vbHMiPgo8cD48YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Rvb2xzL3JmY2Rp
ZmYvcmZjZGlmZi5weWh0P3VybDE9aHR0cHM6Ly90b29scy5pZXRmLm9yZy9pZC9kcmFmdC1w
Y2hvd2RhaWFoLXByZWZldGNoLWRucy1vdmVyLWh0dHAtMDAudHh0JmFtcDt1cmwyPWh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQtcGNob3dkYWlhaC1wcmVmZXRjaC1kbnMtb3Zl
ci1odHRwLTAxLnR4dCI+RGlmZiBmcm9tIDAwIHRvIDAxICZyYXF1bzs8L2E+PGJyIC8+Cjwv
cD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dn
bGVJZERldGFpbHMoJ2lkMTcnKSIgaWQ9ImlkMTdiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+
VW5pZmllZCBTb3VyY2UgUm91dGluZyBJbnN0cnVjdGlvbnMgdXNpbmcgTVBMUyBMYWJlbCBT
dGFjazwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXh1LW1wbHMtdW5pZmll
ZC1zb3VyY2Utcm91dGluZy1pbnN0cnVjdGlvbik8L3NwYW4+CjxkaXYgaWQ9ImlkMTciIGNs
YXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgWGlhb2h1IFh1
LCAgIEFobWVkIEJhc2hhbmR5LCBIYW1pZCBBc3NhcnBvdXIsIFNoYW93ZW4gTWEsIFdpbSBI
ZW5kZXJpY2t4LCAgIGplZmZ0YW50QGdtYWlsLmNvbSwgMjAxNy0wOS0yOCAmbmJzcDsgPGEg
aHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC14dS1tcGxzLXVu
aWZpZWQtc291cmNlLXJvdXRpbmctaW5zdHJ1Y3Rpb24tMDQudHh0IiBjbGFzcz0iZm9ybWF0
Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC14
dS1tcGxzLXVuaWZpZWQtc291cmNlLXJvdXRpbmctaW5zdHJ1Y3Rpb24tMDQuaHRtbCIgY2xh
c3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9w
ZGYvZHJhZnQteHUtbXBscy11bmlmaWVkLXNvdXJjZS1yb3V0aW5nLWluc3RydWN0aW9uLTA0
LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IE1QTFMgU2Vn
bWVudCBSb3V0aW5nIChTUi1NUExTIGluIHNob3J0KSBpcyBhbiBNUExTIGRhdGEgcGxhbmUt
YmFzZWQgc291cmNlIHJvdXRpbmcgcGFyYWRpZ20gaW4gd2hpY2ggYSBzZW5kZXIgb2YgYSBw
YWNrZXQgaXMgYWxsb3dlZCB0byBwYXJ0aWFsbHkgb3IgY29tcGxldGVseSBzcGVjaWZ5IHRo
ZSByb3V0ZSB0aGUgcGFja2V0IHRha2VzIHRocm91Z2ggdGhlIG5ldHdvcmsgYnkgaW1wb3Np
bmcgc3RhY2tlZCBNUExTIGxhYmVscyB0byB0aGUgcGFja2V0LiBTUi1NUExTIGNvdWxkIGJl
IGxldmVyYWdlZCB0byByZWFsaXplIGEgdW5pZmllZCBzb3VyY2Ugcm91dGluZyBtZWNoYW5p
c20gYWNyb3NzIE1QTFMsIElQdjQgYW5kIElQdjYgZGF0YSBwbGFuZXMgYnkgdXNpbmcgYW4g
TVBMUyBsYWJlbCBzdGFjayBhcyBhIHVuaWZpZWQgc291cmNlIHJvdXRpbmcgaW5zdHJ1Y3Rp
b24gc2V0IHdoaWxlIHByZXNlcnZpbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIFNS
LU1QTFMuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+PGEgaHJlZj0iaHR0cHM6Ly90
b29scy5pZXRmLm9yZy90b29scy9yZmNkaWZmL3JmY2RpZmYucHlodD91cmwxPWh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvaWQvZHJhZnQteHUtbXBscy11bmlmaWVkLXNvdXJjZS1yb3V0aW5n
LWluc3RydWN0aW9uLTAzLnR4dCZhbXA7dXJsMj1odHRwczovL3Rvb2xzLmlldGYub3JnL2lk
L2RyYWZ0LXh1LW1wbHMtdW5pZmllZC1zb3VyY2Utcm91dGluZy1pbnN0cnVjdGlvbi0wNC50
eHQiPkRpZmYgZnJvbSAwMyB0byAwNCAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8
L2Rpdj4KPC9saT4KCjwvdWw+Cgo8aDI+RXhwaXJlZCBEcmFmdHM8L2gyPgoKPHVsIGNsYXNz
PSJleHBhbmRzIj4KICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMo
J2lkMTgnKSIgaWQ9ImlkMThiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+VGhvdWdodHMgb24g
SUVURiBBZG1pbmlzdHJhdGl2ZSBTdXBwb3J0IEFjdGl2aXRpZXMgKElBU0EpPC9zcGFuPiA8
c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtYXJra28taWV0Zi1pYXNhLXRob3VnaHRzKTwv
c3Bhbj4KPGRpdiBpZD0iaWQxOCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CjxwPkJ5ICBKYXJpIEFya2tvLCAgIDIwMTctMDMtMjcgJm5ic3A7IDxhIGhyZWY9
Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtYXJra28taWV0Zi1pYXNh
LXRob3VnaHRzLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYXJra28taWV0Zi1pYXNhLXRob3VnaHRz
LTAwLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9v
bHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWFya2tvLWlldGYtaWFzYS10aG91Z2h0cy0wMC5wZGYi
IGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIHNob3J0IG1l
bW8gb3V0bGluZXMgdGhlIGF1dGhvciYjMzk7cyB0aG91Z2h0cyBhYm91dCB0aGUgY2hhbGxl
bmdlcyBhbmQgb3Bwb3J0dW5pdGllcyB3aXRoIHRoZSBJRVRGJiMzOTtzIGFkbWluaXN0cmF0
aXZlIHN1cHBvcnQgYWN0aXZpdGllcywgY3VycmVudGx5IG9yZ2FuaXNlZCBhcyBwYXJ0IG9m
IHRoZSBJRVRGIEFkbWluaXN0cmF0aXZlIFN1cHBvcnQgQWN0aXZpdGllcyAoSUFTQSksIElF
VEYgQWRtaW5pc3RyYXRpdmUgT3ZlcnNpZ2h0IENvbW1pdHRlZSAoSUFPQyksIGFuZCBJRVRG
IFRydXN0LjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBpcmVkPGJy
IC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlw
dDp0b2dnbGVJZERldGFpbHMoJ2lkMTknKSIgaWQ9ImlkMTliIj48c3BhbiBjbGFzcz0iaWR0
aXRsZSI+U1dPUk46IFNlY3VyZSBXYWtlIG9uIFJhZGlvIE51ZGdpbmc8L3NwYW4+IDxzcGFu
IGNsYXNzPSJpZG5hbWUiPihkcmFmdC1ib3JtYW5uLXQydHJnLXN3b3JuKTwvc3Bhbj4KPGRp
diBpZD0iaWQxOSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cjxw
PkJ5ICBDYXJzdGVuIEJvcm1hbm4sIDIwMTctMDMtMjcgJm5ic3A7IDxhIGhyZWY9Imh0dHBz
Oi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtYm9ybWFubi10MnRyZy1zd29ybi0w
MC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL2RyYWZ0LWJvcm1hbm4tdDJ0cmctc3dvcm4tMDAuaHRtbCIgY2xhc3M9
ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYv
ZHJhZnQtYm9ybWFubi10MnRyZy1zd29ybi0wMC5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwv
YT48L3A+CjxwPkFic3RyYWN0OiBOb3JtYWxseSBvZmYgZGV2aWNlcyAoUkZDNzIyOCkgd291
bGQgbmVlZCB0byBleHBlbmQgY29uc2lkZXJhYmxlIGVuZXJneSByZXNvdXJjZXMgdG8gYmUg
cmVhY2hhYmxlIGF0IGFsbCB0aW1lcy4gSW5zdGVhZCwgTUFDIGxheWVyIG1lY2hhbmlzbXMg
YXJlIG9mdGVuIGVtcGxveWVkIHRoYXQgYWxsb3cgdGhlIGxhc3QgaG9wIHJvdXRlciBvZiB0
aGUgZGV2aWNlIHRvICZxdW90O3dha2UmcXVvdDsgdGhlIGRldmljZSB2aWEgcmFkaW8gd2hl
biBuZWVkZWQuIEFjdGl2YXRpbmcgdGhlc2UgZGV2aWNlcyBldmVuIGZvciBhIHNob3J0IHRp
bWUgc3RpbGwgZG9lcyBleHBlbmQgZW5lcmd5IGFuZCB0aHVzIHNob3VsZCBiZSBhdmFpbGFi
bGUgdG8gYXV0aG9yaXplZCBjb3JyZXNwb25kZW50cyBvbmx5LiBUcmFkaXRpb25hbGx5LCB0
aGlzIGhhcyBiZWVuIGFjaGlldmVkIGJ5IGhlYXZ5IGZpcmV3YWxsaW5nLCBhbGxvd2luZyBv
bmx5IGF1dGhvcml6ZWQgaG9zdHMgdG8gcmVhY2ggdGhlIGRldmljZSBhdCBhbGwuIFRoaXMg
bWF5IGJlIHRvbyBpbmZsZXhpYmxlIGZvciBhbiBJbnRlcm5ldCBvZiBUaGluZ3MuPC9wPgo8
ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IEV4cGlyZWQ8YnIgLz4KPC9wPgo8L2Rp
dj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0
YWlscygnaWQyMCcpIiBpZD0iaWQyMGIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5SZWdpc3Ry
aWVzIGZvciBXZWIgQXV0aGVudGljYXRpb24gKFdlYkF1dGhuKTwvc3Bhbj4gPHNwYW4gY2xh
c3M9ImlkbmFtZSI+KGRyYWZ0LWhvZGdlcy13ZWJhdXRobi1yZWdpc3RyaWVzKTwvc3Bhbj4K
PGRpdiBpZD0iaWQyMCIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
CjxwPkJ5ICBKZWZmIEhvZGdlcywgR2lyaWRoYXIgICBNYW5keWFtLCBNaWNoYWVsIEpvbmVz
LCAyMDE3LTAzLTI3ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNo
aXZlL2lkL2RyYWZ0LWhvZGdlcy13ZWJhdXRobi1yZWdpc3RyaWVzLTAwLnR4dCIgY2xhc3M9
ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
ZHJhZnQtaG9kZ2VzLXdlYmF1dGhuLXJlZ2lzdHJpZXMtMDAuaHRtbCIgY2xhc3M9ImZvcm1h
dCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQt
aG9kZ2VzLXdlYmF1dGhuLXJlZ2lzdHJpZXMtMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8
L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgSUFOQSBy
ZWdpc3RyaWVzIGZvciBXM0MgV2ViIEF1dGhlbnRpY2F0aW9uIGF0dGVzdGF0aW9uIHN0YXRl
bWVudCBmb3JtYXRzIGFuZCBleHRlbnNpb24gaWRlbnRpZmllcnMuPC9wPgo8ZGl2IGNsYXNz
PSJpZHRvb2xzIj4KPHA+U3RhdGU6IEV4cGlyZWQ8YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+
CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQy
MScpIiBpZD0iaWQyMWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5Vc2Ugb2YgdGhlIFNIQTMg
T25lLXdheSBIYXNoIEZ1bmN0aW9ucyBpbiB0aGUgQ3J5cHRvZ3JhcGhpYyBNZXNzYWdlIFN5
bnRheCAoQ01TKTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWhvdXNsZXkt
bGFtcHMtY21zLXNoYTMtaGFzaCk8L3NwYW4+CjxkaXYgaWQ9ImlkMjEiIGNsYXNzPSJpZGRl
dGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgUnVzcyBIb3VzbGV5LCAyMDE3
LTAzLTI3ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lk
L2RyYWZ0LWhvdXNsZXktbGFtcHMtY21zLXNoYTMtaGFzaC0wMC50eHQiIGNsYXNzPSJmb3Jt
YXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0
LWhvdXNsZXktbGFtcHMtY21zLXNoYTMtaGFzaC0wMC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5I
VE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1ob3Vz
bGV5LWxhbXBzLWNtcy1zaGEzLWhhc2gtMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+
PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGNvbnZlbnRp
b25zIGZvciB1c2luZyB0aGUgZm91ciBvbmUtd2F5IGhhc2ggZnVuY3Rpb25zIGluIHRoZSBT
SEEzIGZhbWlseSB3aXRoIHRoZSBDcnlwdG9ncmFwaGljIE1lc3NhZ2UgU3ludGF4IChDTVMp
LjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBpcmVkPGJyIC8+Cjwv
cD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dn
bGVJZERldGFpbHMoJ2lkMjInKSIgaWQ9ImlkMjJiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+
SUdNUCBhbmQgTUxEIFByb3h5IGZvciBFVlBOPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1l
Ij4oZHJhZnQtaWV0Zi1iZXNzLWV2cG4taWdtcC1tbGQtcHJveHkpPC9zcGFuPgo8ZGl2IGlk
PSJpZDIyIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+Qnkg
IEFsaSBTYWphc3NpLCBTYW1pciBUaG9yaWEsIEtleXVyIFBhdGVsLCAgIERlcmVrIFlldW5n
LCBKb2huIERyYWtlLCBXZW4gTGluLCAyMDE3LTAzLTI3ICZuYnNwOyA8YSBocmVmPSJodHRw
czovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtYmVzcy1ldnBuLWlnbXAt
bWxkLXByb3h5LTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1iZXNzLWV2cG4taWdtcC1tbGQt
cHJveHktMDAuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1iZXNzLWV2cG4taWdtcC1tbGQtcHJv
eHktMDAucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogRXRo
ZXJuZXQgVmlydHVhbCBQcml2YXRlIE5ldHdvcmsgKEVWUE4pIHNvbHV0aW9uIFtSRkMgNzQz
Ml0gaXMgYmVjb21pbmcgcGVydmFzaXZlIGluIGRhdGEgY2VudGVyIChEQykgYXBwbGljYXRp
b25zIGZvciBOZXR3b3JrIFZpcnR1YWxpemF0aW9uIE92ZXJsYXkgKE5WTykgYW5kIERDIGlu
dGVyY29ubmVjdCAoRENJKSBzZXJ2aWNlcywgYW5kIGluIHNlcnZpY2UgcHJvdmlkZXIgKFNQ
KSBhcHBsaWNhdGlvbnMgZm9yIG5leHQgZ2VuZXJhdGlvbiB2aXJ0dWFsIHByaXZhdGUgTEFO
IHNlcnZpY2VzLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBpcmVk
PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvYmVzcy9kcmFmdC1p
ZXRmLWJlc3MtZXZwbi1pZ21wLW1sZC1wcm94eSI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87
PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL2Jlc3MvIj5C
RVNTIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8
bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMjMnKSIgaWQ9Imlk
MjNiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+UmVkYWN0aW5nIC5ob21lIGZyb20gSE5DUDwv
c3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtaG9tZW5ldC1yZWRhY3Qp
PC9zcGFuPgo8ZGl2IGlkPSJpZDIzIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxh
eTpub25lIj4KPHA+QnkgIFRlZCBMZW1vbiwgMjAxNy0wMy0xMyAmbmJzcDsgPGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLWhvbWVuZXQtcmVk
YWN0LTAzLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1ob21lbmV0LXJlZGFjdC0wMy5odG1sIiBj
bGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3BkZi9kcmFmdC1pZXRmLWhvbWVuZXQtcmVkYWN0LTAzLnBkZiIgY2xhc3M9ImZvcm1hdCI+
UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQgdXBkYXRlcyB0aGUgSG9t
ZSBOZXR3b3JraW5nIENvbnRyb2wgUHJvdG9jb2wsIGVsaW1pbmF0aW5nIHRoZSByZWNvbW1l
bmRhdGlvbiBmb3IgYSBkZWZhdWx0IHRvcC1sZXZlbCBuYW1lIGZvciBsb2NhbCBuYW1lIHJl
c29sdXRpb24uPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IEV4cGlyZWQ8
YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9ob21lbmV0L2RyYWZ0
LWlldGYtaG9tZW5ldC1yZWRhY3QiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIg
Lz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9ob21lbmV0LyI+SE9NRU5F
VCBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxp
IG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDI0JykiIGlkPSJpZDI0
YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlZpZGVvIENvZGVjIFRlc3RpbmcgYW5kIFF1YWxp
dHkgTWVhc3VyZW1lbnQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRm
LW5ldHZjLXRlc3RpbmcpPC9zcGFuPgo8ZGl2IGlkPSJpZDI0IiBjbGFzcz0iaWRkZXRhaWxz
IiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFRob21hcyBEYWVkZSwgQW5kcmV5IE5v
cmtpbiwgICBJbHlhIEJyYWlsb3Zza2l5LCAyMDE3LTAzLTI3ICZuYnNwOyA8YSBocmVmPSJo
dHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtbmV0dmMtdGVzdGlu
Zy0wNS50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtbmV0dmMtdGVzdGluZy0wNS5odG1sIiBjbGFz
cz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3Bk
Zi9kcmFmdC1pZXRmLW5ldHZjLXRlc3RpbmctMDUucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8
L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgZ3VpZGVsaW5l
cyBhbmQgcHJvY2VkdXJlcyBmb3IgZXZhbHVhdGluZyBhIHZpZGVvIGNvZGVjLiBUaGlzIGNv
dmVycyBzdWJqZWN0aXZlIGFuZCBvYmplY3RpdmUgdGVzdHMsIHRlc3QgY29uZGl0aW9ucywg
YW5kIG1hdGVyaWFscyB1c2VkIGZvciB0aGUgdGVzdC48L3A+CjxkaXYgY2xhc3M9ImlkdG9v
bHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL3dnL25ldHZjL2RyYWZ0LWlldGYtbmV0dmMtdGVzdGluZyI+RG9jdW1lbnQgZGV0
YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3dnL25ldHZjLyI+TkVUVkMgV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9k
aXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygn
aWQyNScpIiBpZD0iaWQyNWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5SZWN1cnNpdmVseSBF
bmNhcHN1bGF0ZWQgVFVSTiAoUkVUVVJOKSBmb3IgQ29ubmVjdGl2aXR5IGFuZCBQcml2YWN5
IGluIFdlYlJUQzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtcnRj
d2ViLXJldHVybik8L3NwYW4+CjxkaXYgaWQ9ImlkMjUiIGNsYXNzPSJpZGRldGFpbHMiIHN0
eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgQmVuamFtaW4gU2Nod2FydHosIEp1c3RpbiBV
YmVydGksIDIwMTctMDMtMjcgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3Jn
L2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1ydGN3ZWItcmV0dXJuLTAyLnR4dCIgY2xhc3M9ImZv
cm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJh
ZnQtaWV0Zi1ydGN3ZWItcmV0dXJuLTAyLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+
IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtcnRjd2Vi
LXJldHVybi0wMi5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0
OiBJbiB0aGUgY29udGV4dCBvZiBXZWJSVEMsIHRoZSBjb25jZXB0IG9mIGEgbG9jYWwgVFVS
TiBwcm94eSBoYXMgYmVlbiBzdWdnZXN0ZWQsIGJ1dCBub3QgcmV2aWV3ZWQgaW4gZGV0YWls
LiBXZWJSVEMgYXBwbGljYXRpb25zIGFyZSBhbHJlYWR5IHVzaW5nIFRVUk4gdG8gZW5oYW5j
ZSBjb25uZWN0aXZpdHkgYW5kIHByaXZhY3kuIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93
IGxvY2FsIFRVUk4gcHJveGllcyBhbmQgV2ViUlRDIGFwcGxpY2F0aW9ucyBjYW4gd29yayB0
b2dldGhlci48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxi
ciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL3J0Y3dlYi9kcmFmdC1p
ZXRmLXJ0Y3dlYi1yZXR1cm4iPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4K
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9ydGN3ZWIvIj5SVENXRUIgV0cg
JnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNs
aWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQyNicpIiBpZD0iaWQyNmIiPjxz
cGFuIGNsYXNzPSJpZHRpdGxlIj5NaXRpZ2F0aW5nIE5lZ2F0aXZlIEltcGFjdCBvZiBNYWlu
dGVuYW5jZSB0aHJvdWdoIEJHUCBTZXNzaW9uIEN1bGxpbmc8L3NwYW4+IDxzcGFuIGNsYXNz
PSJpZG5hbWUiPihkcmFmdC1pb3BzLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZyk8L3NwYW4+
CjxkaXYgaWQ9ImlkMjYiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
Pgo8cD5CeSAgICBXaWxsIEhhcmdyYXZlLCBNYXR0IEdyaXN3b2xkLCBKb2IgU25pamRlcnMs
IE5pY2sgSGlsbGlhcmQsIDIwMTctMDMtMjcgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3
LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaW9wcy1ncm93LWJncC1zZXNzaW9uLWN1bGxp
bmctMDEudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9v
bHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pb3BzLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZy0w
MS5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3BkZi9kcmFmdC1pb3BzLWdyb3ctYmdwLXNlc3Npb24tY3VsbGluZy0wMS5w
ZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3Vt
ZW50IG91dGxpbmVzIGFuIGFwcHJvYWNoIHRvIG1pdGlnYXRlIG5lZ2F0aXZlIGltcGFjdCBv
biBuZXR3b3JrcyByZXN1bHRpbmcgZnJvbSBtYWludGVuYW5jZSBhY3Rpdml0aWVzLiBJdCBp
bmNsdWRlcyBndWlkYW5jZSBmb3IgYm90aCBJUCBuZXR3b3JrcyBhbmQgSW50ZXJuZXQgRXhj
aGFuZ2UgUG9pbnRzIChJWFBzKS4gVGhlIGFwcHJvYWNoIGlzIHRvIGVuc3VyZSBCR1AtNCBz
ZXNzaW9ucyBhZmZlY3RlZCBieSB0aGUgbWFpbnRlbmFuY2UgYXJlIGZvcmNlZnVsbHkgdG9y
biBkb3duIGJlZm9yZSB0aGUgYWN0dWFsIG1haW50ZW5hbmNlIGFjdGl2aXRpZXMgY29tbWVu
Y2UuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IEV4cGlyZWQ8YnIgLz4K
PC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRv
Z2dsZUlkRGV0YWlscygnaWQyNycpIiBpZD0iaWQyN2IiPjxzcGFuIGNsYXNzPSJpZHRpdGxl
Ij5DdXJ2ZTRRPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtbGFkZC1jZnJn
LTRxKTwvc3Bhbj4KPGRpdiBpZD0iaWQyNyIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+CjxwPkJ5ICBXYXRzb24gTGFkZCwgUGF0cmljayBMb25nYSwgUmljaGFy
ZCBCYXJuZXMsIDIwMTctMDMtMjcgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYu
b3JnL2FyY2hpdmUvaWQvZHJhZnQtbGFkZC1jZnJnLTRxLTAxLnR4dCIgY2xhc3M9ImZvcm1h
dCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQt
bGFkZC1jZnJnLTRxLTAxLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWxhZGQtY2ZyZy00cS0wMS5wZGYi
IGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3VtZW50
IHNwZWNpZmllcyBDdXJ2ZTRRLCBhIHR3aXN0ZWQgRWR3YXJkcyBjdXJ2ZSBwcm9wb3NlZCBp
biBbQ3VydmU0UV0gdGhhdCB0YWtlcyBhZHZhbnRhZ2Ugb2YgYXJpdGhtZXRpYyBvdmVyIHRo
ZSBmaWVsZCBHRigyXjEyNy0xKSBhbmQgdHdvIGVuZG9tb3JwaGlzbXMgdG8gYWNoaWV2ZSB0
aGUgc3BlZWRpZXN0IERpZmZpZS0gSGVsbG1hbiBrZXkgYWdyZWVtZW50cyBvdmVyIGEgZ3Jv
dXAgb2Ygb3JkZXIgYXBwcm94aW1hdGVseSAyXjI0Niwgd2hpY2ggcHJvdmlkZXMgYXJvdW5k
IDEyOCBiaXRzIG9mIHNlY3VyaXR5LiBDdXJ2ZTRRIGltcGxlbWVudGF0aW9ucyBhcmUgbW9y
ZSB0aGFuIHR3byB0aW1lcyBmYXN0ZXIgdGhhbiB0aG9zZSBvZiBDdXJ2ZTI1NTE5IGFuZCwg
d2hlbiBub3QgdXNpbmcgZW5kb21vcnBoaXNtcywgYXJlIGJldHdlZW4gMS4yIGFuZCAxLjYg
dGltZXMgZmFzdGVyLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBp
cmVkPGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2
YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMjgnKSIgaWQ9ImlkMjhiIj48c3BhbiBjbGFz
cz0iaWR0aXRsZSI+VGhlIE9BdXRoIDIuMCBBdXRob3JpemF0aW9uIEZyYW1ld29yazogSldU
IFBvcCBUb2tlbiBVc2FnZTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXNh
a2ltdXJhLW9hdXRoLWpwb3ApPC9zcGFuPgo8ZGl2IGlkPSJpZDI4IiBjbGFzcz0iaWRkZXRh
aWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIE5hdCBTYWtpbXVyYSwgICBLZXBl
bmcgTGksIEpvaG4gQnJhZGxleSwgMjAxNy0wMy0yNyAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6
Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1zYWtpbXVyYS1vYXV0aC1qcG9wLTA0
LnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL2h0bWwvZHJhZnQtc2FraW11cmEtb2F1dGgtanBvcC0wNC5odG1sIiBjbGFzcz0i
Zm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9k
cmFmdC1zYWtpbXVyYS1vYXV0aC1qcG9wLTA0LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9h
PjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgc3BlY2lmaWNhdGlvbiBkZXNjcmliZXMgaG93IHRv
IHVzZSBKV1QgUE9QIChKcG9wKSB0b2tlbnMgdGhhdCB3ZXJlIG9idGFpbmVkIHRocm91Z2gg
W1BPUEtEXSBpbiBIVFRQIHJlcXVlc3RzIHRvIGFjY2VzcyBPQXV0aCAyLjAgcHJvdGVjdGVk
IHJlc291cmNlcy4gT25seSB0aGUgcGFydHkgaW4gcG9zc2Vzc2lvbiBvZiB0aGUgY29ycmVz
cG9uZGluZyBjcnlwdG9ncmFwaGljIGtleSBmb3IgdGhlIEpwb3AgdG9rZW4gY2FuIHVzZSBp
dCB0byBnZXQgYWNjZXNzIHRvIHRoZSBhc3NvY2lhdGVkIHJlc291cmNlcyB1bmxpa2UgaW4g
dGhlIGNhc2Ugb2YgdGhlIGJlYXJlciB0b2tlbiBkZXNjcmliZWQgaW4gW1JGQzY3NTBdIHdo
ZXJlIGFueSBwYXJ0eSBpbiBwb3Nlc3Npb24gb2YgdGhlIGFjY2VzcyB0b2tlbiBjYW4gYWNj
ZXNzIHRoZSByZXNvdXJjZS48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTog
RXhwaXJlZDxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9
ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDI5JykiIGlkPSJpZDI5YiI+PHNwYW4g
Y2xhc3M9ImlkdGl0bGUiPkFDTUUgSVAgSWRlbnRpZmllciBWYWxpZGF0aW9uIEV4dGVuc2lv
bjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXNob2VtYWtlci1hY21lLWlw
KTwvc3Bhbj4KPGRpdiBpZD0iaWQyOSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CjxwPkJ5ICBSb2xhbmQgU2hvZW1ha2VyLCAyMDE3LTAzLTI3ICZuYnNwOyA8
YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LXNob2VtYWtl
ci1hY21lLWlwLTAwLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVmPSJodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtc2hvZW1ha2VyLWFjbWUtaXAtMDAuaHRt
bCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9wZGYvZHJhZnQtc2hvZW1ha2VyLWFjbWUtaXAtMDAucGRmIiBjbGFzcz0iZm9ybWF0
Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgaWRl
bnRpZmllcnMgYW5kIGNoYWxsZW5nZXMgcmVxdWlyZWQgdG8gZW5hYmxlIHRoZSBBdXRvbWF0
ZWQgQ2VydGlmaWNhdGUgTWFuYWdlbWVudCBFbnZpcm9ubWVudCAoQUNNRSkgdG8gaXNzdWUg
Y2VydGlmaWNhdGVzIGZvciBJUCBhZGRyZXNzZXMuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xz
Ij4KPHA+U3RhdGU6IEV4cGlyZWQ8YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+Cgog
IDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzMCcpIiBpZD0i
aWQzMGIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5NVUQgTGlmZWN5bGU6IEEgTWFudWZhY3R1
cmVyJiMzOTtzIFBlcnNwZWN0aXZlPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJh
ZnQtc3JpY2gtb3BzYXdnLW11ZC1tYW51LWxpZmVjeWNsZSk8L3NwYW4+CjxkaXYgaWQ9Imlk
MzAiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgU3Rl
dmVuIFJpY2gsIFRob3JzdGVuIERhaG0sICAgMjAxNy0wMy0yNyAmbmJzcDsgPGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1zcmljaC1vcHNhd2ctbXVk
LW1hbnUtbGlmZWN5Y2xlLTAxLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9hPiA8YSBocmVm
PSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtc3JpY2gtb3BzYXdnLW11ZC1t
YW51LWxpZmVjeWNsZS0wMS5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVm
PSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1zcmljaC1vcHNhd2ctbXVkLW1h
bnUtbGlmZWN5Y2xlLTAxLnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJz
dHJhY3Q6IE1hbnVmYWN0dXJlciBVc2FnZSBEZXNjcmlwdGlvbnMsIG9yIE1VRHMsIGFsbG93
IGEgbWFudWZhY3R1cmVyIHRvIGNoZWFwbHkgYW5kIHNpbXBseSBkZXNjcmliZSB0byB0aGUg
bmV0d29yayB0aGUgYWNjZXNzZXMgcmVxdWlyZWQgYnkgYW4gSW9UIGRldmljZSB3aXRob3V0
IGFkZGluZyBhbnkgZXh0cmEgY29zdCBvciBzb2Z0d2FyZSB0byB0aGUgZGV2aWNlcyB0aGVt
c2VsdmVzLiBCeSBkb2luZyBzbywgdGhlIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgZGV2aWNl
cyBjYW4gYXBwbHkgYWNjZXNzIHBvbGljaWVzIGF1dG9tYXRpY2FsbHkgd2hpY2ggaW5jcmVh
c2UgdGhlIG92ZXJhbGwgc2VjdXJpdHkgb2YgdGhlIGVudGlyZSBuZXR3b3JrLCBub3QganVz
dCBmb3IgdGhlIElvVCBkZXZpY2VzIHRoZW1zZWx2ZXMuIFRoaXMgZG9jdW1lbnQgZGVzY3Jp
YmVzIHRoZSBsaWZlY3ljbGUgb2YgTWFudWZhY3R1cmVyIFVzYWdlIERlc2NyaXB0aW9ucyAo
TVVEcykgYnkgZGVzY3JpYmluZyBkZXRhaWxlZCBNVUQgc2NlbmFyaW9zIGZyb20gdGhlIHBl
cnNwZWN0aXZlIG9mIGRldmljZSBtYW51ZmFjdHVyZXJzLjwvcD4KPGRpdiBjbGFzcz0iaWR0
b29scyI+CjxwPlN0YXRlOiBFeHBpcmVkPGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xp
PgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkMzEnKSIg
aWQ9ImlkMzFiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+TXVsdGljYXN0IEJBQkVMIEV4dGVu
c2lvbjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LXpoYW5nLXBpbS1iYWJl
bC1leHQpPC9zcGFuPgo8ZGl2IGlkPSJpZDMxIiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KPHA+QnkgIFpoZW5nIFpoYW5nLCAyMDE3LTAzLTI3ICZuYnNwOyA8
YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LXpoYW5nLXBp
bS1iYWJlbC1leHQtMDIudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC16aGFuZy1waW0tYmFiZWwtZXh0LTAy
Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvcGRmL2RyYWZ0LXpoYW5nLXBpbS1iYWJlbC1leHQtMDIucGRmIiBjbGFzcz0i
Zm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNjcmli
ZXMgYSBtZXRob2QgdGhhdCB1c2VzIEJhYmVsIHByb3RvY29sIGV4dGVuc2lvbiB0byBkZWxp
dmVyIG11bHRpY2FzdCBpbmZvcm1hdGlvbi4gQmFiZWwgcHJvdG9jb2wgZXh0ZW5zaW9uIGlz
IHVzZWQgdG8gc2lnbmFsIHJlY2VpdmVyIG11bHRpY2FzdCBpbnRlcmVzdC48L3A+CjxkaXYg
Y2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogRXhwaXJlZDxiciAvPgo8L3A+CjwvZGl2Pgo8
L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxz
KCdpZDMyJykiIGlkPSJpZDMyYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlBDRVAgRXh0ZW5z
aW9ucyBmb3IgTFNQIHNjaGVkdWxpbmcgd2l0aCBzdGF0ZWZ1bCBQQ0U8L3NwYW4+IDxzcGFu
IGNsYXNzPSJpZG5hbWUiPihkcmFmdC16aHVhbmctcGNlLXN0YXRlZnVsLXBjZS1sc3Atc2No
ZWR1bGluZyk8L3NwYW4+CjxkaXYgaWQ9ImlkMzIiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxl
PSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgSHVhaW1vIENoZW4sICAgWmh1YW5neWFuLCBRaW4g
V3UsIERocnV2IERob2R5LCBEYW5pZWxlIENlY2NhcmVsbGksIDIwMTctMDMtMjcgJm5ic3A7
IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtemh1YW5n
LXBjZS1zdGF0ZWZ1bC1wY2UtbHNwLXNjaGVkdWxpbmctMDUudHh0IiBjbGFzcz0iZm9ybWF0
Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC16
aHVhbmctcGNlLXN0YXRlZnVsLXBjZS1sc3Atc2NoZWR1bGluZy0wNS5odG1sIiBjbGFzcz0i
Zm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9k
cmFmdC16aHVhbmctcGNlLXN0YXRlZnVsLXBjZS1sc3Atc2NoZWR1bGluZy0wNS5wZGYiIGNs
YXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3VtZW50IHBy
b3Bvc2VzIGEgc2V0IG9mIGV4dGVuc2lvbnMgbmVlZGVkIHRvIHRoZSBzdGF0ZWZ1bCBQYXRo
IENvbXB1dGF0aW9uIEVsZW1lbnQgKFBDRSkgY29tbXVuaWNhdGlvbiBQcm90b2NvbCAoUENF
UCksIHNvIGFzIHRvIGVuYWJsZSBMYWJlbGVkIFN3aXRjaGVkIFBhdGggKExTUCkgc2NoZWR1
bGluZyBmb3IgcGF0aCBjb21wdXRhdGlvbiBhbmQgTFNQIHNldHVwL2RlbGV0aW9uIGJhc2Vk
IG9uIHRoZSBhY3R1YWwgbmV0d29yayByZXNvdXJjZSB1c2FnZSBkdXJhdGlvbiBvZiBhIHRy
YWZmaWMgc2VydmljZSBpbiBhIGNlbnRyYWxpemVkIG5ldHdvcmsgZW52aXJvbm1lbnQgYXMg
c3RhdGVkIGluIFtJLkQuaWV0Zi10ZWFzLXNjaGVkdWxlZC1yZXNvdXJjZXNdLjwvcD4KPGRp
diBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBFeHBpcmVkPGJyIC8+CjwvcD4KPC9kaXY+
CjwvZGl2Pgo8L2xpPgoKPC91bD4KCgoKPGRpdiBpZD0iZGFpbHlkb3NlX2NvbDFfZW5kIj48
L2Rpdj4KCjwvdGQ+Cgo8dGQgY2xhc3M9ImRhaWx5ZG9zZV9uZXdzIiBpZD0iZGFpbHlkb3Nl
X2NvbDIiPgoKCgoKCjxoMj5EcmFmdHMgU2VudCB0byBJRVNHPC9oMj4KCgo8dWwgY2xhc3M9
ImV4cGFuZHMiPgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygn
aWQzMycpIiBpZD0iaWQzM2IiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5QcmFjdGljYWwgQ29u
c2lkZXJhdGlvbnMgYW5kIEltcGxlbWVudGF0aW9uIEV4cGVyaWVuY2VzIGluIFNlY3VyaW5n
IFNtYXJ0IE9iamVjdCBOZXR3b3Jrczwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRy
YWZ0LWlldGYtbHdpZy1jcnlwdG8tc2Vuc29ycyk8L3NwYW4+OiBBY3RpdmUgJnJhcXVvOyBQ
dWJsaWNhdGlvbiBSZXF1ZXN0ZWQKPGRpdiBpZD0iaWQzMyIgY2xhc3M9ImlkZGV0YWlscyIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBNb2hpdCBTZXRoaSwgSmFyaSBBcmtrbywg
QXJpIEtlcmFuZW4sIEhlaWRpLU1hcmlhIEJhY2ssICAgMjAxNy0wOC0wOSAmbmJzcDsgPGEg
aHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLWx3aWct
Y3J5cHRvLXNlbnNvcnMtMDQudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWx3aWctY3J5cHRvLXNl
bnNvcnMtMDQuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1sd2lnLWNyeXB0by1zZW5zb3JzLTA0
LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgbWVt
byBkZXNjcmliZXMgY2hhbGxlbmdlcyBhc3NvY2lhdGVkIHdpdGggc2VjdXJpbmcgcmVzb3Vy
Y2UtIGNvbnN0cmFpbmVkIHNtYXJ0IG9iamVjdCBkZXZpY2VzLiBUaGUgbWVtbyBkZXNjcmli
ZXMgYSBwb3NzaWJsZSBkZXBsb3ltZW50IG1vZGVsIHdoZXJlIHJlc291cmNlLWNvbnN0cmFp
bmVkIGRldmljZXMgc2lnbiBtZXNzYWdlIG9iamVjdHMsIGRpc2N1c3NlcyB0aGUgYXZhaWxh
YmlsaXR5IG9mIGNyeXB0b2dyYXBoaWMgbGlicmFyaWVzIGZvciBzbWFsbCBkZXZpY2VzIGFu
ZCBwcmVzZW50cyBzb21lIHByZWxpbWluYXJ5IGV4cGVyaWVuY2VzIHdpdGggdGhvc2UgbGli
cmFyaWVzIGZvciBtZXNzYWdlIHNpZ25pbmcgb24gc21hbGwgZGV2aWNlcy4gTGFzdGx5LCB0
aGUgbWVtbyBkaXNjdXNzZXMgdHJhZGUtb2ZmcyBpbnZvbHZpbmcgZGlmZmVyZW50IHR5cGVz
IG9mIHNlY3VyaXR5IGFwcHJvYWNoZXMuPC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+
U3RhdGU6IFB1YmxpY2F0aW9uIFJlcXVlc3RlZDxiciAvPgo8YSBocmVmPSJodHRwczovL2Rh
dGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9kcmFmdC1pZXRmLWx3aWctY3J5cHRvLXNl
bnNvcnMvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6
Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtbHdpZy1j
cnlwdG8tc2Vuc29ycy8iIGNsYXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9
Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbHdpZy9kcmFmdC1pZXRmLWx3aWctY3J5cHRv
LXNlbnNvcnMiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9sd2lnLyI+TFdJRyBXRyAmcmFxdW87PC9hPjxi
ciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3Jp
cHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDM0JykiIGlkPSJpZDM0YiI+PHNwYW4gY2xhc3M9Imlk
dGl0bGUiPklBTkEgUmVnaXN0cmF0aW9uIGZvciBEb25hdGVkIFN5bWFudGVjIFdlYnNpdGUg
U2VjdXJpdHkgT2JqZWN0IElkZW50aWZpZXIgUmFuZ2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJp
ZG5hbWUiPihkcmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeSk8L3NwYW4+OiBBY3Rp
dmUgJnJhcXVvOyBQdWJsaWNhdGlvbiBSZXF1ZXN0ZWQKPGRpdiBpZD0iaWQzNCIgY2xhc3M9
ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBKaW0gU2NoYWFkLCBS
aWNrIEFuZHJld3MsIDIwMTctMDktMTIgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtc2NoYWFkLWN1cmRsZS1vaWQtcmVnaXN0cnktMDIu
dHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9kcmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeS0wMi5odG1sIiBj
bGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3BkZi9kcmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeS0wMi5wZGYiIGNsYXNzPSJm
b3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBXaGVuIHRoZSBDdXJkbGUgU2VjdXJp
dHkgV29ya2luZyBHcm91cCB3YXMgY2hhcnRlcmVkLCBhIHJhbmdlIG9mIG9iamVjdCBpZGVu
dGlmaWVycyB3YXMgZG9uYXRlZCBieSBTeW1hbnRlYyBXZWJzaXRlIFNlY3VyaXR5IGZvciB0
aGUgcHVycG9zZSBvZiByZWdpc3RlcmluZyB0aGUgRWR3YXJkcyBFbGxpcHRpYyBDdXJ2ZSBr
ZXkgYWdyZWVtZW50IGFuZCBzaWduYXR1cmUgYWxnb3JpdGhtcy4gVGhpcyBkb25hdGVkIHNl
dCBvZiBPSURzIGFsbG93ZWQgZm9yIHNob3J0ZXIgdmFsdWVzIHRoYW4gd291bGQgYmUgcG9z
c2libGUgdXNpbmcgdGhlIGV4aXN0aW5nIFMvTUlNRSBvciBQS0lYIGFyY3MuIFRoaXMgZG9j
dW1lbnQgZGVzY3JpYmVzIHRoZSByYW5nZSBvZiBpZGVudGlmaWVycyB0aGF0IHdlcmUgYXNz
aWduZWQgaW4gdGhhdCBkb25hdGVkIHJhbmdlLCB0cmFuc2ZlcnMgY29udHJvbCBvZiB0aGF0
IHJhbmdlIHRvIElBTkEsIGFuZCBlc3RhYmxpc2hlcyBJQU5BIGFsbG9jYXRpb24gcG9saWNp
ZXMgZm9yIGFueSBmdXR1cmUgYXNzaWdubWVudHMgd2l0aGluIHRoYXQgcmFuZ2UuPC9wPgo8
ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IFB1YmxpY2F0aW9uIFJlcXVlc3RlZDxi
ciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9k
cmFmdC1zY2hhYWQtY3VyZGxlLW9pZC1yZWdpc3RyeS8iPklEIFRyYWNrZXIgJnJhcXVvOzwv
YT4gJm5ic3A7IAo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2ZlZWQv
Y29tbWVudHMvZHJhZnQtc2NoYWFkLWN1cmRsZS1vaWQtcmVnaXN0cnkvIiBjbGFzcz0iZm9y
bWF0Ij5BVE9NPC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCjwvdWw+Cgo8
aDI+SUVTRyBQcm9ncmVzczwvaDI+Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBvbmNs
aWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzNScpIiBpZD0iaWQzNWIiPjxz
cGFuIGNsYXNzPSJpZHRpdGxlIj5DYW5jZWwtTG9ja3MgaW4gTmV0bmV3cyBhcnRpY2xlczwv
c3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWJhZXVlcmxlLW5ldG5ld3MtY2Fu
Y2VsLWxvY2spPC9zcGFuPjogSUVTRyBFdmFsdWF0aW9uICZyYXF1bzsgOjpSZXZpc2VkIEkt
RCBOZWVkZWQKPGRpdiBpZD0iaWQzNSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CjxwPkJ5ICBNaWNoYWVsIEJhdWVybGUsIDIwMTctMDktMTMgJm5ic3A7IDxh
IGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtYmFldWVybGUt
bmV0bmV3cy1jYW5jZWwtbG9jay0wNi50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWJhZXVlcmxlLW5ldG5l
d3MtY2FuY2VsLWxvY2stMDYuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtYmFldWVybGUtbmV0bmV3cy1j
YW5jZWwtbG9jay0wNi5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3Ry
YWN0OiBUaGlzIGRvY3VtZW50IGRlZmluZXMgYW4gZXh0ZW5zaW9uIHRvIHRoZSBOZXRuZXdz
IEFydGljbGUgRm9ybWF0IHRoYXQgbWF5IGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHRoZSBj
YW5jZWxsaW5nIGFuZCBzdXBlcnNlZGluZyBvZiBleGlzdGluZyBhcnRpY2xlcy4gSWYgYXBw
cm92ZWQsIHRoaXMgZG9jdW1lbnQgdXBkYXRlcyBSRkM1NTM3LjwvcD4KPGRpdiBjbGFzcz0i
aWR0b29scyI+CjxwPlN0YXRlOiBJRVNHIEV2YWx1YXRpb246OlJldmlzZWQgSS1EIE5lZWRl
ZDxiciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tl
ci9kcmFmdC1iYWV1ZXJsZS1uZXRuZXdzLWNhbmNlbC1sb2NrLyI+SUQgVHJhY2tlciAmcmFx
dW87PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcv
ZmVlZC9jb21tZW50cy9kcmFmdC1iYWV1ZXJsZS1uZXRuZXdzLWNhbmNlbC1sb2NrLyIgY2xh
c3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+Cgog
IDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQzNicpIiBpZD0i
aWQzNmIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5BdXRvbm9taWMgSVB2NiBFZGdlIFByZWZp
eCBNYW5hZ2VtZW50IGluIExhcmdlLXNjYWxlIE5ldHdvcmtzPC9zcGFuPiA8c3BhbiBjbGFz
cz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1hbmltYS1wcmVmaXgtbWFuYWdlbWVudCk8L3NwYW4+
OiBMYXN0IENhbGwgUmVxdWVzdGVkICZyYXF1bzsgSW4gTGFzdCBDYWxsCjxkaXYgaWQ9Imlk
MzYiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgU2hl
bmcgICBKaWFuZywgWm9uZ3BlbmcgRHUsIEJyaWFuIENhcnBlbnRlciwgUWlvbmcgU3VuLCAy
MDE3LTA4LTE0ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZl
L2lkL2RyYWZ0LWlldGYtYW5pbWEtcHJlZml4LW1hbmFnZW1lbnQtMDUudHh0IiBjbGFzcz0i
Zm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLWFuaW1hLXByZWZpeC1tYW5hZ2VtZW50LTA1Lmh0bWwiIGNsYXNzPSJmb3Jt
YXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0
LWlldGYtYW5pbWEtcHJlZml4LW1hbmFnZW1lbnQtMDUucGRmIiBjbGFzcz0iZm9ybWF0Ij5Q
REY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgYW4gYXV0
b25vbWljIHNvbHV0aW9uIGZvciBJUHY2IHByZWZpeCBtYW5hZ2VtZW50IGF0IHRoZSBlZGdl
IG9mIGxhcmdlLXNjYWxlIElTUCBuZXR3b3Jrcywgd2l0aCBhbiBleHRlbnNpb24gdG8gc3Vw
cG9ydCBJUHY0IHByZWZpeGVzLiBBbiBpbXBvcnRhbnQgcHVycG9zZSBvZiB0aGUgZG9jdW1l
bnQgaXMgdG8gdXNlIGl0IGZvciB2YWxpZGF0aW9uIG9mIHRoZSBkZXNpZ24gb2YgdmFyaW91
cyBjb21wb25lbnRzIG9mIHRoZSBhdXRvbm9taWMgbmV0d29ya2luZyBpbmZyYXN0cnVjdHVy
ZS48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogSW4gTGFzdCBDYWxsPGJy
IC8+CjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2Ry
YWZ0LWlldGYtYW5pbWEtcHJlZml4LW1hbmFnZW1lbnQvIj5JRCBUcmFja2VyICZyYXF1bzs8
L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVk
L2NvbW1lbnRzL2RyYWZ0LWlldGYtYW5pbWEtcHJlZml4LW1hbmFnZW1lbnQvIiBjbGFzcz0i
Zm9ybWF0Ij5BVE9NPC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3Jn
L3dnL2FuaW1hL2RyYWZ0LWlldGYtYW5pbWEtcHJlZml4LW1hbmFnZW1lbnQiPkRvY3VtZW50
IGRldGFpbHMgJnJhcXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy93Zy9hbmltYS8iPkFOSU1BIFdHICZyYXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+
CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGljaz0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFp
bHMoJ2lkMzcnKSIgaWQ9ImlkMzdiIj48c3BhbiBjbGFzcz0iaWR0aXRsZSI+Vm91Y2hlciBQ
cm9maWxlIGZvciBCb290c3RyYXBwaW5nIFByb3RvY29sczwvc3Bhbj4gPHNwYW4gY2xhc3M9
ImlkbmFtZSI+KGRyYWZ0LWlldGYtYW5pbWEtdm91Y2hlcik8L3NwYW4+OiBMYXN0IENhbGwg
UmVxdWVzdGVkICZyYXF1bzsgSW4gTGFzdCBDYWxsCjxkaXYgaWQ9ImlkMzciIGNsYXNzPSJp
ZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgS2VudCBXYXRzZW4sIE1p
Y2hhZWwgICBSaWNoYXJkc29uLCBNYXggUHJpdGlraW4sIFRvZXJsZXNzIEVja2VydCwgMjAx
Ny0wOC0yMSAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9p
ZC9kcmFmdC1pZXRmLWFuaW1hLXZvdWNoZXItMDUudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8
L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWFu
aW1hLXZvdWNoZXItMDUuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0i
aHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1hbmltYS12b3VjaGVyLTA1
LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9j
dW1lbnQgZGVmaW5lcyBhIHN0cmF0ZWd5IHRvIHNlY3VyZWx5IGFzc2lnbiBhIHBsZWRnZSB0
byBhbiBvd25lciwgdXNpbmcgYW4gYXJ0aWZhY3Qgc2lnbmVkLCBkaXJlY3RseSBvciBpbmRp
cmVjdGx5LCBieSB0aGUgcGxlZGdlJiMzOTtzIG1hbnVmYWN0dXJlci4gVGhpcyBhcnRpZmFj
dCBpcyBrbm93biBhcyBhICZxdW90O3ZvdWNoZXImcXVvdDsuPC9wPgo8ZGl2IGNsYXNzPSJp
ZHRvb2xzIj4KPHA+U3RhdGU6IEluIExhc3QgQ2FsbDxiciAvPgo8YSBocmVmPSJodHRwczov
L2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9kcmFmdC1pZXRmLWFuaW1hLXZvdWNo
ZXIvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9k
YXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtYW5pbWEtdm91
Y2hlci8iIGNsYXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8v
dG9vbHMuaWV0Zi5vcmcvd2cvYW5pbWEvZHJhZnQtaWV0Zi1hbmltYS12b3VjaGVyIj5Eb2N1
bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvd2cvYW5pbWEvIj5BTklNQSBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+Cjwv
ZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWRE
ZXRhaWxzKCdpZDM4JykiIGlkPSJpZDM4YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPk11bHRp
Y2FzdCB1c2luZyBCaXQgSW5kZXggRXhwbGljaXQgUmVwbGljYXRpb248L3NwYW4+IDxzcGFu
IGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLWJpZXItYXJjaGl0ZWN0dXJlKTwvc3Bhbj46
IElFU0cgRXZhbHVhdGlvbiAmcmFxdW87IEFwcHJvdmVkLWFubm91bmNlbWVudCB0byBiZSBz
ZW50CjxkaXYgaWQ9ImlkMzgiIGNsYXNzPSJpZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgo8cD5CeSAgSUpzYnJhbmQgV2lqbmFuZHMsIEVyaWMgICBSb3NlbiwgQW5kcmV3IERv
bGdhbm93LCBUb255IFByenlnaWVuZGEsIFNhbSBBbGRyaW4sIDIwMTctMDktMTMgJm5ic3A7
IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2FyY2hpdmUvaWQvZHJhZnQtaWV0Zi1i
aWVyLWFyY2hpdGVjdHVyZS0wOC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtYmllci1hcmNoaXRl
Y3R1cmUtMDguaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1iaWVyLWFyY2hpdGVjdHVyZS0wOC5w
ZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlzIGRvY3Vt
ZW50IHNwZWNpZmllcyBhIG5ldyBhcmNoaXRlY3R1cmUgZm9yIHRoZSBmb3J3YXJkaW5nIG9m
IG11bHRpY2FzdCBkYXRhIHBhY2tldHMuIEl0IHByb3ZpZGVzIG9wdGltYWwgZm9yd2FyZGlu
ZyBvZiBtdWx0aWNhc3QgcGFja2V0cyB0aHJvdWdoIGEgJnF1b3Q7bXVsdGljYXN0IGRvbWFp
biZxdW90Oy4gSG93ZXZlciwgaXQgZG9lcyBub3QgcmVxdWlyZSBhIHByb3RvY29sIGZvciBl
eHBsaWNpdGx5IGJ1aWxkaW5nIG11bHRpY2FzdCBkaXN0cmlidXRpb24gdHJlZXMsIG5vciBk
b2VzIGl0IHJlcXVpcmUgaW50ZXJtZWRpYXRlIG5vZGVzIHRvIG1haW50YWluIGFueSBwZXIt
ZmxvdyBzdGF0ZS4gVGhpcyBhcmNoaXRlY3R1cmUgaXMga25vd24gYXMgJnF1b3Q7Qml0IElu
ZGV4IEV4cGxpY2l0IFJlcGxpY2F0aW9uJnF1b3Q7IChCSUVSKS4gV2hlbiBhIG11bHRpY2Fz
dCBkYXRhIHBhY2tldCBlbnRlcnMgdGhlIGRvbWFpbiwgdGhlIGluZ3Jlc3Mgcm91dGVyIGRl
dGVybWluZXMgdGhlIHNldCBvZiBlZ3Jlc3Mgcm91dGVycyB0byB3aGljaCB0aGUgcGFja2V0
IG5lZWRzIHRvIGJlIHNlbnQuIFRoZSBpbmdyZXNzIHJvdXRlciB0aGVuIGVuY2Fwc3VsYXRl
cyB0aGUgcGFja2V0IGluIGEgQklFUiBoZWFkZXIuIFRoZSBCSUVSIGhlYWRlciBjb250YWlu
cyBhIGJpdHN0cmluZyBpbiB3aGljaCBlYWNoIGJpdCByZXByZXNlbnRzIGV4YWN0bHkgb25l
IGVncmVzcyByb3V0ZXIgaW4gdGhlIGRvbWFpbjsgdG8gZm9yd2FyZCB0aGUgcGFja2V0IHRv
IGEgZ2l2ZW4gc2V0IG9mIGVncmVzcyByb3V0ZXJzLCB0aGUgYml0cyBjb3JyZXNwb25kaW5n
IHRvIHRob3NlIHJvdXRlcnMgYXJlIHNldCBpbiB0aGUgQklFUiBoZWFkZXIuIFRoZSBwcm9j
ZWR1cmVzIGZvciBmb3J3YXJkaW5nIGEgcGFja2V0IGJhc2VkIG9uIGl0cyBCSUVSIGhlYWRl
ciBhcmUgc3BlY2lmaWVkIGluIHRoaXMgZG9jdW1lbnQuIEVsaW1pbmF0aW9uIG9mIHRoZSBw
ZXItZmxvdyBzdGF0ZSBhbmQgdGhlIGV4cGxpY2l0IHRyZWUtIGJ1aWxkaW5nIHByb3RvY29s
cyByZXN1bHRzIGluIGEgY29uc2lkZXJhYmxlIHNpbXBsaWZpY2F0aW9uLjwvcD4KPGRpdiBj
bGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBBcHByb3ZlZC1hbm5vdW5jZW1lbnQgdG8gYmUg
c2VudDxiciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJh
Y2tlci9kcmFmdC1pZXRmLWJpZXItYXJjaGl0ZWN0dXJlLyI+SUQgVHJhY2tlciAmcmFxdW87
PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVl
ZC9jb21tZW50cy9kcmFmdC1pZXRmLWJpZXItYXJjaGl0ZWN0dXJlLyIgY2xhc3M9ImZvcm1h
dCI+QVRPTTwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9i
aWVyL2RyYWZ0LWlldGYtYmllci1hcmNoaXRlY3R1cmUiPkRvY3VtZW50IGRldGFpbHMgJnJh
cXVvOzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9iaWVy
LyI+QklFUiBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4K
CiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDM5JykiIGlk
PSJpZDM5YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPkNyeXB0b2dyYXBoaWMgQWxnb3JpdGht
IGFuZCBLZXkgVXNhZ2UgVXBkYXRlIHRvIERLSU08L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5h
bWUiPihkcmFmdC1pZXRmLWRjcnVwLWRraW0tdXNhZ2UpPC9zcGFuPjogV2FpdGluZyBmb3Ig
V3JpdGV1cCAmcmFxdW87IEFwcHJvdmVkLWFubm91bmNlbWVudCB0byBiZSBzZW50OjpQb2lu
dCBSYWlzZWQgLSB3cml0ZXVwIG5lZWRlZAo8ZGl2IGlkPSJpZDM5IiBjbGFzcz0iaWRkZXRh
aWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEQuIEtpdHRlcm1hbiwgICAyMDE3
LTA4LTIxICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lk
L2RyYWZ0LWlldGYtZGNydXAtZGtpbS11c2FnZS0wNC50eHQiIGNsYXNzPSJmb3JtYXQiPlRY
VDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYt
ZGNydXAtZGtpbS11c2FnZS0wNC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWRjcnVwLWRraW0t
dXNhZ2UtMDQucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDog
VGhlIGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtIGFuZCBrZXkgc2l6ZSByZXF1aXJlbWVudHMg
aW5jbHVkZWQgd2hlbiBES0lNIHdhcyBkZXNpZ25lZCBpbiB0aGUgbGFzdCBkZWNhZGUgYXJl
IGZ1bmN0aW9uYWxseSBvYnNvbGV0ZSBhbmQgaW4gbmVlZCBvZiBpbW1lZGlhdGUgcmV2aXNp
b24uIFRoaXMgZG9jdW1lbnQgdXBkYXRlcyBES0lNIHJlcXVpcmVtZW50cyB0byB0aG9zZSBt
aW5pbWFseSBzdWl0YWJsZSBmb3Igb3BlcmF0aW9uIHdpdGggY3VycmVudGx5IHNwZWNpZmll
ZCBhbGdvcml0aG1zLjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBBcHBy
b3ZlZC1hbm5vdW5jZW1lbnQgdG8gYmUgc2VudDo6UG9pbnQgUmFpc2VkIC0gd3JpdGV1cCBu
ZWVkZWQ8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRy
YWNrZXIvZHJhZnQtaWV0Zi1kY3J1cC1ka2ltLXVzYWdlLyI+SUQgVHJhY2tlciAmcmFxdW87
PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVl
ZC9jb21tZW50cy9kcmFmdC1pZXRmLWRjcnVwLWRraW0tdXNhZ2UvIiBjbGFzcz0iZm9ybWF0
Ij5BVE9NPC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL2Rj
cnVwL2RyYWZ0LWlldGYtZGNydXAtZGtpbS11c2FnZSI+RG9jdW1lbnQgZGV0YWlscyAmcmFx
dW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3dnL2RjcnVw
LyI+RENSVVAgV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+
CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQ0MCcpIiBp
ZD0iaWQ0MGIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5EaXNjb3ZlcnkgUHJveHkgZm9yIE11
bHRpY2FzdCBETlMtQmFzZWQgU2VydmljZSBEaXNjb3Zlcnk8L3NwYW4+IDxzcGFuIGNsYXNz
PSJpZG5hbWUiPihkcmFmdC1pZXRmLWRuc3NkLWh5YnJpZCk8L3NwYW4+OiBMYXN0IENhbGwg
UmVxdWVzdGVkICZyYXF1bzsgSW4gTGFzdCBDYWxsCjxkaXYgaWQ9ImlkNDAiIGNsYXNzPSJp
ZGRldGFpbHMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5CeSAgU3R1YXJ0ICAgQ2hlc2hp
cmUsIDIwMTctMDktMTMgJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2Fy
Y2hpdmUvaWQvZHJhZnQtaWV0Zi1kbnNzZC1oeWJyaWQtMDcudHh0IiBjbGFzcz0iZm9ybWF0
Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1p
ZXRmLWRuc3NkLWh5YnJpZC0wNy5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWRuc3NkLWh5YnJp
ZC0wNy5wZGYiIGNsYXNzPSJmb3JtYXQiPlBERjwvYT48L3A+CjxwPkFic3RyYWN0OiBUaGlz
IGRvY3VtZW50IHNwZWNpZmllcyBhIG1lY2hhbmlzbSB0aGF0IHVzZXMgTXVsdGljYXN0IERO
UyB0byBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHRoZSB3aWRlLWFyZWEgdW5pY2FzdCBEb21h
aW4gTmFtZSBTeXN0ZW0gbmFtZXNwYWNlIHdpdGggcmVjb3JkcyBkZXNjcmliaW5nIGRldmlj
ZXMgYW5kIHNlcnZpY2VzIGZvdW5kIG9uIHRoZSBsb2NhbCBsaW5rLjwvcD4KPGRpdiBjbGFz
cz0iaWR0b29scyI+CjxwPlN0YXRlOiBJbiBMYXN0IENhbGw8YnIgLz4KPGEgaHJlZj0iaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRyYWNrZXIvZHJhZnQtaWV0Zi1kbnNzZC1o
eWJyaWQvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6
Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtZG5zc2Qt
aHlicmlkLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6
Ly90b29scy5pZXRmLm9yZy93Zy9kbnNzZC9kcmFmdC1pZXRmLWRuc3NkLWh5YnJpZCI+RG9j
dW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczovL3Rvb2xz
LmlldGYub3JnL3dnL2Ruc3NkLyI+RE5TU0QgV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8
L2Rpdj4KPC9kaXY+CjwvbGk+CgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlk
RGV0YWlscygnaWQ0MScpIiBpZD0iaWQ0MWIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5BbHRl
cm5hdGUgTWFya2luZyBtZXRob2QgZm9yIHBhc3NpdmUgYW5kIGh5YnJpZCBwZXJmb3JtYW5j
ZSBtb25pdG9yaW5nPC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi1p
cHBtLWFsdC1tYXJrKTwvc3Bhbj46IEluIExhc3QgQ2FsbCAmcmFxdW87IFdhaXRpbmcgZm9y
IFdyaXRldXAKPGRpdiBpZD0iaWQ0MSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+CjxwPkJ5ICAgIEdpdXNlcHBlIEZpb2Njb2xhLCBBbGVzc2FuZHJvIENhcGVs
bG8sIE1hdXJvIENvY2lnbGlvLCBMdWNhIENhc3RhbGRlbGxpLCAgIE1hY2ggQ2hlbiwgTGlh
bnNodSBaaGVuZywgR3JlZ29yeSBNaXJza3ksIFRhbCBNaXpyYWhpLCAyMDE3LTA5LTExICZu
YnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWll
dGYtaXBwbS1hbHQtbWFyay0xMC50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJl
Zj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaXBwbS1hbHQtbWFy
ay0xMC5odG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rv
b2xzLmlldGYub3JnL3BkZi9kcmFmdC1pZXRmLWlwcG0tYWx0LW1hcmstMTAucGRmIiBjbGFz
cz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBkZXNj
cmliZXMgYSBtZXRob2QgdG8gcGVyZm9ybSBwYWNrZXQgbG9zcywgZGVsYXkgYW5kIGppdHRl
ciBtZWFzdXJlbWVudHMgb24gbGl2ZSB0cmFmZmljLiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBv
biBBbHRlcm5hdGUgTWFya2luZyAoQ29sb3JpbmcpIHRlY2huaXF1ZS4gQSByZXBvcnQgaXMg
cHJvdmlkZWQgaW4gb3JkZXIgdG8gZXhwbGFpbiBhbiBleGFtcGxlIGFuZCBzaG93IHRoZSBt
ZXRob2QgYXBwbGljYWJpbGl0eS4gVGhpcyB0ZWNobmlxdWUgY2FuIGJlIGFwcGxpZWQgaW4g
dmFyaW91cyBzaXR1YXRpb25zIGFzIGRldGFpbGVkIGluIHRoaXMgZG9jdW1lbnQgYW5kIGNv
dWxkIGJlIGNvbnNpZGVyZWQgcGFzc2l2ZSBvciBoeWJyaWQgZGVwZW5kaW5nIG9uIHRoZSBh
cHBsaWNhdGlvbi48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogV2FpdGlu
ZyBmb3IgV3JpdGV1cDxiciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYu
b3JnL2lkdHJhY2tlci9kcmFmdC1pZXRmLWlwcG0tYWx0LW1hcmsvIj5JRCBUcmFja2VyICZy
YXF1bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y
Zy9mZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtaXBwbS1hbHQtbWFyay8iIGNsYXNzPSJmb3Jt
YXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cv
aXBwbS9kcmFmdC1pZXRmLWlwcG0tYWx0LW1hcmsiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVv
OzwvYT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9pcHBtLyI+
SVBQTSBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAg
PGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDQyJykiIGlkPSJp
ZDQyYiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlVzZSBvZiBNdWx0aWNhc3QgQWNyb3NzIElu
dGVyLURvbWFpbiBQZWVyaW5nIFBvaW50czwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+
KGRyYWZ0LWlldGYtbWJvbmVkLWludGVyZG9tYWluLXBlZXJpbmctYmNwKTwvc3Bhbj46IFdh
aXRpbmcgZm9yIFdyaXRldXA6OlJldmlzZWQgSS1EIE5lZWRlZCAmcmFxdW87IDo6QUQgRm9s
bG93dXAKPGRpdiBpZD0iaWQ0MiIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6
bm9uZSI+CjxwPkJ5ICBQZXJjeSBUYXJhcG9yZSwgICBSb2JlcnQgU2F5a28sIEdyZWcgU2hl
cGhlcmQsIFRvZXJsZXNzIEVja2VydCwgUmFtIEtyaXNobmFuLCAyMDE3LTA5LTI4ICZuYnNw
OyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYt
bWJvbmVkLWludGVyZG9tYWluLXBlZXJpbmctYmNwLTExLnR4dCIgY2xhc3M9ImZvcm1hdCI+
VFhUPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi1tYm9uZWQtaW50ZXJkb21haW4tcGVlcmluZy1iY3AtMTEuaHRtbCIgY2xhc3M9ImZvcm1h
dCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQt
aWV0Zi1tYm9uZWQtaW50ZXJkb21haW4tcGVlcmluZy1iY3AtMTEucGRmIiBjbGFzcz0iZm9y
bWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBkb2N1bWVudCBleGFtaW5lcyB0
aGUgdXNlIG9mIFNvdXJjZSBTcGVjaWZpYyBNdWx0aWNhc3QgKFNTTSkgYWNyb3NzIGludGVy
LWRvbWFpbiBwZWVyaW5nIHBvaW50cyBmb3IgYSBzcGVjaWZpZWQgc2V0IG9mIGRlcGxveW1l
bnQgc2NlbmFyaW9zLiBUaGUgb2JqZWN0aXZlIGlzIHRvIGRlc2NyaWJlIHRoZSBzZXR1cCBw
cm9jZXNzIGZvciBtdWx0aWNhc3QtYmFzZWQgZGVsaXZlcnkgYWNyb3NzIGFkbWluaXN0cmF0
aXZlIGRvbWFpbnMgZm9yIHRoZXNlIHNjZW5hcmlvcyBhbmQgZG9jdW1lbnQgc3VwcG9ydGlu
ZyBmdW5jdGlvbmFsaXR5IHRvIGVuYWJsZSB0aGlzIHByb2Nlc3MuPC9wPgo8ZGl2IGNsYXNz
PSJpZHRvb2xzIj4KPHA+U3RhdGU6IFdhaXRpbmcgZm9yIFdyaXRldXA6OkFEIEZvbGxvd3Vw
PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2Vy
L2RyYWZ0LWlldGYtbWJvbmVkLWludGVyZG9tYWluLXBlZXJpbmctYmNwLyI+SUQgVHJhY2tl
ciAmcmFxdW87PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0
Zi5vcmcvZmVlZC9jb21tZW50cy9kcmFmdC1pZXRmLW1ib25lZC1pbnRlcmRvbWFpbi1wZWVy
aW5nLWJjcC8iIGNsYXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvd2cvbWJvbmVkL2RyYWZ0LWlldGYtbWJvbmVkLWludGVyZG9t
YWluLXBlZXJpbmctYmNwIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+PGJyIC8+Cjxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbWJvbmVkLyI+TUJPTkVEIFdHICZy
YXF1bzs8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKICA8bGkgb25jbGlj
az0iamF2YXNjcmlwdDp0b2dnbGVJZERldGFpbHMoJ2lkNDMnKSIgaWQ9ImlkNDNiIj48c3Bh
biBjbGFzcz0iaWR0aXRsZSI+TmV0d29yayBTZXJ2aWNlIEhlYWRlciAoTlNIKTwvc3Bhbj4g
PHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRyYWZ0LWlldGYtc2ZjLW5zaCk8L3NwYW4+OiBJRVNH
IEV2YWx1YXRpb246OkFEIEZvbGxvd3VwICZyYXF1bzsgOjpSZXZpc2VkIEktRCBOZWVkZWQK
PGRpdiBpZD0iaWQ0MyIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
CjxwPkJ5ICBQYXVsIFF1aW5uLCBVcmkgRWx6dXIsIENhcmxvcyBQaWduYXRhcm8sICAgMjAx
Ny0wOS0yOCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9p
ZC9kcmFmdC1pZXRmLXNmYy1uc2gtMjUudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLXNmYy1uc2gt
MjUuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9wZGYvZHJhZnQtaWV0Zi1zZmMtbnNoLTI1LnBkZiIgY2xhc3M9ImZvcm1h
dCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEg
TmV0d29yayBTZXJ2aWNlIEhlYWRlciAoTlNIKSBpbXBvc2VkIG9uIHBhY2tldHMgb3IgZnJh
bWVzIHRvIHJlYWxpemUgc2VydmljZSBmdW5jdGlvbiBwYXRocy4gVGhlIE5TSCBhbHNvIHBy
b3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBtZXRhZGF0YSBleGNoYW5nZSBhbG9uZyB0aGUgaW5z
dGFudGlhdGVkIHNlcnZpY2UgcGF0aHMuIFRoZSBOU0ggaXMgdGhlIFNGQyBlbmNhcHN1bGF0
aW9uIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGhlIFNlcnZpY2UgRnVuY3Rpb24gQ2hhaW5pbmcg
KFNGQykgYXJjaGl0ZWN0dXJlIChkZWZpbmVkIGluIFJGQzc2NjUpLjwvcD4KPGRpdiBjbGFz
cz0iaWR0b29scyI+CjxwPlN0YXRlOiBJRVNHIEV2YWx1YXRpb246OlJldmlzZWQgSS1EIE5l
ZWRlZDxiciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJh
Y2tlci9kcmFmdC1pZXRmLXNmYy1uc2gvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNw
OyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRz
L2RyYWZ0LWlldGYtc2ZjLW5zaC8iIGNsYXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+Cjxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvc2ZjL2RyYWZ0LWlldGYtc2ZjLW5z
aCI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczov
L3Rvb2xzLmlldGYub3JnL3dnL3NmYy8iPlNGQyBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+
CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xl
SWREZXRhaWxzKCdpZDQ0JykiIGlkPSJpZDQ0YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPklF
VEY6IEVuZCBXb3JrIG9uIElQdjQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFm
dC1pZXRmLXN1bnNldDQtaXB2Ni1pZXRmKTwvc3Bhbj46IExhc3QgQ2FsbCBSZXF1ZXN0ZWQg
JnJhcXVvOyBJbiBMYXN0IENhbGwKPGRpdiBpZD0iaWQ0NCIgY2xhc3M9ImlkZGV0YWlscyIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBMZWUgSG93YXJkLCAyMDE3LTA5LTE4ICZu
YnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWll
dGYtc3Vuc2V0NC1pcHY2LWlldGYtMDEudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLXN1bnNldDQt
aXB2Ni1pZXRmLTAxLmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtc3Vuc2V0NC1pcHY2LWlldGYt
MDEucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhlIElF
VEYgd2lsbCBzdG9wIHdvcmtpbmcgb24gSVB2NCwgZXhjZXB0IHdoZXJlIG5lZWRlZCB0byBt
aXRpZ2F0ZSBkb2N1bWVudGVkIHNlY3VyaXR5IGlzc3VlcywgdG8gZmFjaWxpdGF0ZSB0aGUg
dHJhbnNpdGlvbiB0byBJUHY2LCBvciB0byBlbmFibGUgSVB2NCBkZWNvbW1pc3Npb25pbmcu
PC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+U3RhdGU6IEluIExhc3QgQ2FsbDxiciAv
Pgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9kcmFm
dC1pZXRmLXN1bnNldDQtaXB2Ni1pZXRmLyI+SUQgVHJhY2tlciAmcmFxdW87PC9hPiAmbmJz
cDsgCjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVlZC9jb21tZW50
cy9kcmFmdC1pZXRmLXN1bnNldDQtaXB2Ni1pZXRmLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwv
YT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9zdW5zZXQ0L2Ry
YWZ0LWlldGYtc3Vuc2V0NC1pcHY2LWlldGYiPkRvY3VtZW50IGRldGFpbHMgJnJhcXVvOzwv
YT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9zdW5zZXQ0LyI+
U1VOU0VUNCBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4K
CiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDQ1JykiIGlk
PSJpZDQ1YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPlRlY2huaXF1ZXMgdG8gSW1wcm92ZSB0
aGUgU2NhbGFiaWxpdHkgb2YgUlNWUCBUcmFmZmljIEVuZ2luZWVyaW5nIERlcGxveW1lbnRz
PC9zcGFuPiA8c3BhbiBjbGFzcz0iaWRuYW1lIj4oZHJhZnQtaWV0Zi10ZWFzLXJzdnAtdGUt
c2NhbGluZy1yZWMpPC9zcGFuPjogSUVTRyBFdmFsdWF0aW9uICZyYXF1bzsgOjpSZXZpc2Vk
IEktRCBOZWVkZWQKPGRpdiBpZD0iaWQ0NSIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+CjxwPkJ5ICBWaXNobnUgQmVlcmFtLCBJbmEgTWluZWksIFJvYiBTaGFr
aXIsIERhbnRlIFBhY2VsbGEsIFRhcmVrICAgU2FhZCwgMjAxNy0wOS0yNyAmbmJzcDsgPGEg
aHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLXRlYXMt
cnN2cC10ZS1zY2FsaW5nLXJlYy0wNy50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEg
aHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtdGVhcy1yc3Zw
LXRlLXNjYWxpbmctcmVjLTA3Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxhIGhy
ZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtdGVhcy1yc3ZwLXRl
LXNjYWxpbmctcmVjLTA3LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJz
dHJhY3Q6IEF0IHRoZSB0aW1lIG9mIHdyaXRpbmcsIG5ldHdvcmtzIHdoaWNoIHV0aWxpemUg
UlNWUCBUcmFmZmljIEVuZ2luZWVyaW5nIChSU1ZQLVRFKSBMYWJlbCBTd2l0Y2hlZCBQYXRo
cyAoTFNQcykgYXJlIGVuY291bnRlcmluZyBsaW1pdGF0aW9ucyBpbiB0aGUgYWJpbGl0eSBv
ZiBpbXBsZW1lbnRhdGlvbnMgdG8gc3VwcG9ydCB0aGUgZ3Jvd3RoIGluIHRoZSBudW1iZXIg
b2YgTFNQcyBkZXBsb3llZC48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTog
SUVTRyBFdmFsdWF0aW9uOjpSZXZpc2VkIEktRCBOZWVkZWQ8YnIgLz4KPGEgaHJlZj0iaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9pZHRyYWNrZXIvZHJhZnQtaWV0Zi10ZWFzLXJz
dnAtdGUtc2NhbGluZy1yZWMvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZuYnNwOyAKPGEg
aHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1lbnRzL2RyYWZ0
LWlldGYtdGVhcy1yc3ZwLXRlLXNjYWxpbmctcmVjLyIgY2xhc3M9ImZvcm1hdCI+QVRPTTwv
YT48YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy90ZWFzL2RyYWZ0
LWlldGYtdGVhcy1yc3ZwLXRlLXNjYWxpbmctcmVjIj5Eb2N1bWVudCBkZXRhaWxzICZyYXF1
bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvdGVhcy8i
PlRFQVMgV0cgJnJhcXVvOzwvYT48YnIgLz4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+Cgog
IDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2dsZUlkRGV0YWlscygnaWQ0NicpIiBpZD0i
aWQ0NmIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5FeHBsaWNpdCBDb25nZXN0aW9uIE5vdGlm
aWNhdGlvbiAoRUNOKSBFeHBlcmltZW50YXRpb248L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5h
bWUiPihkcmFmdC1pZXRmLXRzdndnLWVjbi1leHBlcmltZW50YXRpb24pPC9zcGFuPjogSUVT
RyBFdmFsdWF0aW9uICZyYXF1bzsgOjpSZXZpc2VkIEktRCBOZWVkZWQKPGRpdiBpZD0iaWQ0
NiIgY2xhc3M9ImlkZGV0YWlscyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CjxwPkJ5ICBEYXZp
ZCBCbGFjaywgICAyMDE3LTA5LTIwICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRm
Lm9yZy9hcmNoaXZlL2lkL2RyYWZ0LWlldGYtdHN2d2ctZWNuLWV4cGVyaW1lbnRhdGlvbi0w
Ni50eHQiIGNsYXNzPSJmb3JtYXQiPlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtdHN2d2ctZWNuLWV4cGVyaW1lbnRhdGlvbi0wNi5o
dG1sIiBjbGFzcz0iZm9ybWF0Ij5IVE1MPC9hPiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmll
dGYub3JnL3BkZi9kcmFmdC1pZXRmLXRzdndnLWVjbi1leHBlcmltZW50YXRpb24tMDYucGRm
IiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8cD5BYnN0cmFjdDogVGhpcyBtZW1vIHVw
ZGF0ZXMgUkZDIDMxNjgsIHdoaWNoIHNwZWNpZmllcyBFeHBsaWNpdCBDb25nZXN0aW9uIE5v
dGlmaWNhdGlvbiAoRUNOKSBhcyBhIHJlcGxhY2VtZW50IGZvciBwYWNrZXQgZHJvcHMgYXMg
aW5kaWNhdG9ycyBvZiBuZXR3b3JrIGNvbmdlc3Rpb24uIEl0IHJlbGF4ZXMgcmVzdHJpY3Rp
b25zIGluIFJGQyAzMTY4IHRoYXQgd291bGQgb3RoZXJ3aXNlIGhpbmRlciBleHBlcmltZW50
YXRpb24gdG93YXJkcyBiZW5lZml0cyBiZXlvbmQganVzdCByZW1vdmFsIG9mIGxvc3MuIFRo
aXMgbWVtbyBzdW1tYXJpemVzIHRoZSBhbnRpY2lwYXRlZCBhcmVhcyBvZiBleHBlcmltZW50
YXRpb24gYW5kIHVwZGF0ZXMgUkZDIDMxNjggdG8gZW5hYmxlIGV4cGVyaW1lbnRhdGlvbiBp
biB0aGVzZSBhcmVhcy4gQW4gRXhwZXJpbWVudGFsIFJGQyBpcyByZXF1aXJlZCB0byB0YWtl
IGFkdmFudGFnZSBvZiBhbnkgb2YgdGhlc2UgZW5hYmxpbmcgdXBkYXRlcy4gSW4gYWRkaXRp
b24sIHRoaXMgbWVtbyBtYWtlcyByZWxhdGVkIHVwZGF0ZXMgdG8gdGhlIEVDTiBzcGVjaWZp
Y2F0aW9ucyBmb3IgUlRQIGluIFJGQyA2Njc5IGFuZCBmb3IgRENDUCBpbiBSRkMgNDM0MSwg
UkZDIDQzNDIgYW5kIFJGQyA1NjIyLiBUaGlzIG1lbW8gYWxzbyByZWNvcmRzIHRoZSBjb25j
bHVzaW9uIG9mIHRoZSBFQ04gbm9uY2UgZXhwZXJpbWVudCBpbiBSRkMgMzU0MCwgYW5kIHBy
b3ZpZGVzIHRoZSByYXRpb25hbGUgZm9yIHJlY2xhc3NpZmljYXRpb24gb2YgUkZDIDM1NDAg
YXMgSGlzdG9yaWM7IHRoaXMgcmVjbGFzc2lmaWNhdGlvbiBlbmFibGVzIG5ldyBleHBlcmlt
ZW50YWwgdXNlIG9mIHRoZSBFQ1QoMSkgY29kZXBvaW50LjwvcD4KPGRpdiBjbGFzcz0iaWR0
b29scyI+CjxwPlN0YXRlOiBJRVNHIEV2YWx1YXRpb246OlJldmlzZWQgSS1EIE5lZWRlZDxi
ciAvPgo8YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2lkdHJhY2tlci9k
cmFmdC1pZXRmLXRzdndnLWVjbi1leHBlcmltZW50YXRpb24vIj5JRCBUcmFja2VyICZyYXF1
bzs8L2E+ICZuYnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9m
ZWVkL2NvbW1lbnRzL2RyYWZ0LWlldGYtdHN2d2ctZWNuLWV4cGVyaW1lbnRhdGlvbi8iIGNs
YXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvd2cvdHN2d2cvZHJhZnQtaWV0Zi10c3Z3Zy1lY24tZXhwZXJpbWVudGF0aW9uIj5E
b2N1bWVudCBkZXRhaWxzICZyYXF1bzs8L2E+PGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vdG9v
bHMuaWV0Zi5vcmcvd2cvdHN2d2cvIj5UU1ZXRyBXRyAmcmFxdW87PC9hPjxiciAvPgo8L3A+
CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xl
SWREZXRhaWxzKCdpZDQ3JykiIGlkPSJpZDQ3YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPkxE
QVAgU2NoZW1hIGZvciBzdXBwb3J0aW5nIFhNUFAgaW4gV2hpdGUgUGFnZXM8L3NwYW4+IDxz
cGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1raWxsZS1sZGFwLXhtcHAtc2NoZW1hKTwvc3Bh
bj46IElFU0cgRXZhbHVhdGlvbiAmcmFxdW87IEFwcHJvdmVkLWFubm91bmNlbWVudCB0byBi
ZSBzZW50OjpQb2ludCBSYWlzZWQgLSB3cml0ZXVwIG5lZWRlZAo8ZGl2IGlkPSJpZDQ3IiBj
bGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIFN0ZXZlIEtp
bGxlLCAyMDE3LTA5LTI0ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9h
cmNoaXZlL2lkL2RyYWZ0LWtpbGxlLWxkYXAteG1wcC1zY2hlbWEtMDgudHh0IiBjbGFzcz0i
Zm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1raWxsZS1sZGFwLXhtcHAtc2NoZW1hLTA4Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhU
TUw8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWtpbGxl
LWxkYXAteG1wcC1zY2hlbWEtMDgucGRmIiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8
cD5BYnN0cmFjdDogVGhlIEV4dGVuc2libGUgTWVzc2FnaW5nIGFuZCBQcmVzZW5jZSBQcm90
b2NvbCAoWE1QUCkgaWRlbnRpZmllcyB1c2VycyBieSB1c2Ugb2YgSklEIChKYWJiZXIgSURz
KS4gTGlnaHR3ZWlnaHQgRGlyZWN0b3J5IEFjY2VzcyBQcm90b2NvbCAoTERBUCkgZW5hYmxl
cyBwcm92aXNpb24gb2YgYSB3aGl0ZSBwYWdlcyBzZXJ2aWNlIHdpdGggc2NoZW1hIHJlbGF0
aW5nIHRvIHVzZXJzIGFuZCBzdXBwb3J0IGZvciBpbnRlcm5ldCBwcm90b2NvbHMuIFRoaXMg
c3BlY2lmaWNhdGlvbiBkZWZpbmVzIHNjaGVtYSB0byBlbmFibGUgWE1QUCBKSURzIHRvIGJl
IGFzc29jaWF0ZWQgd2l0aCBvYmplY3RzIGluIGFuIExEQVAgZGlyZWN0b3J5IHNvIHRoYXQg
dGhpcyBpbmZvcm1hdGlvbiBjYW4gYmUgdXNlZCB3aXRoIHdoaXRlIHBhZ2VzIGFwcGxpY2F0
aW9ucy48L3A+CjxkaXYgY2xhc3M9ImlkdG9vbHMiPgo8cD5TdGF0ZTogQXBwcm92ZWQtYW5u
b3VuY2VtZW50IHRvIGJlIHNlbnQ6OlBvaW50IFJhaXNlZCAtIHdyaXRldXAgbmVlZGVkPGJy
IC8+CjxhIGhyZWY9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2Ry
YWZ0LWtpbGxlLWxkYXAteG1wcC1zY2hlbWEvIj5JRCBUcmFja2VyICZyYXF1bzs8L2E+ICZu
YnNwOyAKPGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9mZWVkL2NvbW1l
bnRzL2RyYWZ0LWtpbGxlLWxkYXAteG1wcC1zY2hlbWEvIiBjbGFzcz0iZm9ybWF0Ij5BVE9N
PC9hPjxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KCjwvdWw+Cgo8aDI+RHJhZnRz
IFNlbnQgdG8gUkZDIEVkaXRvcjwvaDI+CjxoMj5PdGhlciBTdGF0dXMgQ2hhbmdlczwvaDI+
Cgo8dWwgY2xhc3M9ImV4cGFuZHMiPgogIDxsaSBvbmNsaWNrPSJqYXZhc2NyaXB0OnRvZ2ds
ZUlkRGV0YWlscygnaWQ0OCcpIiBpZD0iaWQ0OGIiPjxzcGFuIGNsYXNzPSJpZHRpdGxlIj5B
IEdyb3VwIEtleWluZyBQcm90b2NvbDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImlkbmFtZSI+KGRy
YWZ0LWVhc3RsYWtlLXRyaWxsLWdyb3VwLWtleWluZyk8L3NwYW4+OiBBY3RpdmUgJnJhcXVv
OyBSZXBsYWNlZCBieSBkcmFmdC1pZXRmLXRyaWxsLWdyb3VwLWtleWluZwo8ZGl2IGlkPSJp
ZDQ4IiBjbGFzcz0iaWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIERv
bmFsZCBFYXN0bGFrZSwgMjAxNy0wNi0yMCAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cu
aWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1lYXN0bGFrZS10cmlsbC1ncm91cC1rZXlpbmct
MDIudHh0IiBjbGFzcz0iZm9ybWF0Ij5UWFQ8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9kcmFmdC1lYXN0bGFrZS10cmlsbC1ncm91cC1rZXlpbmctMDIuaHRt
bCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9wZGYvZHJhZnQtZWFzdGxha2UtdHJpbGwtZ3JvdXAta2V5aW5nLTAyLnBkZiIgY2xh
c3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6IFRoaXMgZG9jdW1lbnQgc3Bl
Y2lmaWVzIGEgZ2VuZXJhbCBncm91cCBrZXlpbmcgcHJvdG9jb2wuIEl0IGFsc28gcHJvdmlk
ZXMgdXNlIHByb2ZpbGVzIGZvciB0aGUgYXBwbGljYXRpb24gb2YgdGhpcyBncm91cCBrZXlp
bmcgcHJvdG9jb2wgdG8gbXVsdGktZGVzdGluYXRpb24gVFJJTEwgRXh0ZW5kZWQgUkJyaWRn
ZSBDaGFubmVsIG1lc3NhZ2Ugc2VjdXJpdHkgYW5kIFRSSUxMIG92ZXIgSVAgcGFja2V0IHNl
Y3VyaXR5LjwvcD4KPGRpdiBjbGFzcz0iaWR0b29scyI+CjxwPlN0YXRlOiBSZXBsYWNlZCBi
eSBkcmFmdC1pZXRmLXRyaWxsLWdyb3VwLWtleWluZzxiciAvPgo8L3A+CjwvZGl2Pgo8L2Rp
dj4KPC9saT4KCiAgPGxpIG9uY2xpY2s9ImphdmFzY3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdp
ZDQ5JykiIGlkPSJpZDQ5YiI+PHNwYW4gY2xhc3M9ImlkdGl0bGUiPmRyYWZ0LWhlZmZlcm5h
bi10Y3AtbWQ1PC9zcGFuPjogRXhwaXJlZCAmcmFxdW87IFJlcGxhY2VkIGJ5IGRyYWZ0LWll
dGYtaWRyLWJncC10Y3AtbWQ1CjxkaXYgaWQ9ImlkNDkiIGNsYXNzPSJpZGRldGFpbHMiIHN0
eWxlPSJkaXNwbGF5Om5vbmUiPgo8cD5ObyB0aXRsZSBhdmFpbGFibGU7IGV4cGlyZWQgZG9j
dW1lbnQ/ICZuYnNwOyA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9hcmNoaXZlL2lk
L2RyYWZ0LWhlZmZlcm5hbi10Y3AtbWQ1LTAyLnR4dCIgY2xhc3M9ImZvcm1hdCI+VFhUPC9h
PiA8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGVmZmVybmFu
LXRjcC1tZDUtMDIuaHRtbCIgY2xhc3M9ImZvcm1hdCI+SFRNTDwvYT4gPGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9wZGYvZHJhZnQtaGVmZmVybmFuLXRjcC1tZDUtMDIucGRm
IiBjbGFzcz0iZm9ybWF0Ij5QREY8L2E+PC9wPgo8ZGl2IGNsYXNzPSJpZHRvb2xzIj4KPHA+
U3RhdGU6IFJlcGxhY2VkIGJ5IGRyYWZ0LWlldGYtaWRyLWJncC10Y3AtbWQ1PGJyIC8+Cjwv
cD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKPC91bD4KCjxoMj5SRkMgRWRpdG9yIFN0YXR1cyBD
aGFuZ2VzPC9oMj4KCjx1bCBjbGFzcz0iZXhwYW5kcyI+CiAgPGxpIG9uY2xpY2s9ImphdmFz
Y3JpcHQ6dG9nZ2xlSWREZXRhaWxzKCdpZDUwJykiIGlkPSJpZDUwYiI+PHNwYW4gY2xhc3M9
ImlkdGl0bGUiPlVzaW5nIEJHUCB0byBCaW5kIE1QTFMgTGFiZWxzIHRvIEFkZHJlc3MgUHJl
Zml4ZXM8L3NwYW4+IDxzcGFuIGNsYXNzPSJpZG5hbWUiPihkcmFmdC1pZXRmLW1wbHMtcmZj
MzEwN2Jpcyk8L3NwYW4+OiAmcmFxdW87IEFVVEg0OAo8ZGl2IGlkPSJpZDUwIiBjbGFzcz0i
aWRkZXRhaWxzIiBzdHlsZT0iZGlzcGxheTpub25lIj4KPHA+QnkgIEVyaWMgUm9zZW4sICAg
MjAxNy0wOC0xNyAmbmJzcDsgPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2
ZS9pZC9kcmFmdC1pZXRmLW1wbHMtcmZjMzEwN2Jpcy0wNC50eHQiIGNsYXNzPSJmb3JtYXQi
PlRYVDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWll
dGYtbXBscy1yZmMzMTA3YmlzLTA0Lmh0bWwiIGNsYXNzPSJmb3JtYXQiPkhUTUw8L2E+IDxh
IGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvcGRmL2RyYWZ0LWlldGYtbXBscy1yZmMz
MTA3YmlzLTA0LnBkZiIgY2xhc3M9ImZvcm1hdCI+UERGPC9hPjwvcD4KPHA+QWJzdHJhY3Q6
IFRoaXMgZG9jdW1lbnQgc3BlY2lmaWVzIGEgc2V0IG9mIHByb2NlZHVyZXMgZm9yIHVzaW5n
IEJHUCB0byBhZHZlcnRpc2UgdGhhdCBhIHNwZWNpZmllZCByb3V0ZXIgaGFzIGJvdW5kIGEg
c3BlY2lmaWVkIE1QTFMgbGFiZWwgKG9yIGEgc3BlY2lmaWVkIHNlcXVlbmNlIG9mIE1QTFMg
bGFiZWxzLCBvcmdhbml6ZWQgYXMgYSBjb250aWd1b3VzIHBhcnQgb2YgYSBsYWJlbCBzdGFj
aykgdG8gYSBzcGVjaWZpZWQgYWRkcmVzcyBwcmVmaXguIFRoaXMgY2FuIGJlIGRvbmUgYnkg
c2VuZGluZyBhIEJHUCBVUERBVEUgbWVzc2FnZSB3aG9zZSBOZXR3b3JrIExheWVyIFJlYWNo
YWJpbGl0eSBJbmZvcm1hdGlvbiBmaWVsZCBjb250YWlucyBib3RoIHRoZSBwcmVmaXggYW5k
IHRoZSBNUExTIGxhYmVsKHMpLCBhbmQgd2hvc2UgTmV4dCBIb3AgZmllbGQgaWRlbnRpZmll
cyB0aGUgbm9kZSBhdCB3aGljaCBzYWlkIHByZWZpeCBpcyBib3VuZCB0byBzYWlkIGxhYmVs
KHMpLiBUaGlzIGRvY3VtZW50IG9ic29sZXRlcyBSRkMgMzEwNy48L3A+CjxkaXYgY2xhc3M9
ImlkdG9vbHMiPgo8cD5TdGF0ZTogUkZDIEVkIFF1ZXVlPGJyIC8+CjxhIGhyZWY9Imh0dHBz
Oi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvaWR0cmFja2VyL2RyYWZ0LWlldGYtbXBscy1yZmMz
MTA3YmlzLyI+SUQgVHJhY2tlciAmcmFxdW87PC9hPiAmbmJzcDsgCjxhIGhyZWY9Imh0dHBz
Oi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZmVlZC9jb21tZW50cy9kcmFmdC1pZXRmLW1wbHMt
cmZjMzEwN2Jpcy8iIGNsYXNzPSJmb3JtYXQiPkFUT008L2E+PGJyIC8+CjxhIGhyZWY9Imh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbXBscy9kcmFmdC1pZXRmLW1wbHMtcmZjMzEwN2Jp
cyI+RG9jdW1lbnQgZGV0YWlscyAmcmFxdW87PC9hPjxiciAvPgo8YSBocmVmPSJodHRwczov
L3Rvb2xzLmlldGYub3JnL3dnL21wbHMvIj5NUExTIFdHICZyYXF1bzs8L2E+PGJyIC8+Cjxh
IGhyZWY9Imh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3F1ZXVlMi5odG1sI2RyYWZ0LWll
dGYtbXBscy1yZmMzMTA3YmlzIj5SRkMgRWRpdG9yIFF1ZXVlICZyYXF1bzs8L2E+PGJyIC8+
CjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgoKPC91bD4KCjxoMj48YSBocmVmPSJodHRwczov
L2RhdGF0cmFja2VyLmlldGYub3JnL2ZlZWQvaXByLyI+PGltZyBzcmM9ImZlZWRpY29uMTYu
cG5nIiBhbGlnbj0icmlnaHQiIGFsdD0iW0ZlZWRdIiAvPjwvYT4gSVBSIERpc2Nsb3N1cmVz
PC9oMj4KPGRpdiBjbGFzcz0ibW9yZSI+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5p
ZXRmLm9yZy9pcHIvIj5tb3JlIElQUiBkaXNjbG9zdXJlcyAmcmFxdW87PC9hPjwvZGl2PgoK
PGgyPklFU0cvSUFCL0lBT0MvVHJ1c3QgTWludXRlczwvaDI+Cgo8dWwgY2xhc3M9Imxpbmtz
Ij4KICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9pZXNnL21pbnV0ZXMvMjAx
Ny9taW51dGVzLTIwMTctMDktMTQudHh0Ij5JRVNHIFRlbGVjb25mZXJlbmNlIE9mZmljaWFs
IE1pbnV0ZXM6IDIwMTctMDktMTQ8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3
dy5pZXRmLm9yZy9pZXNnL21pbnV0ZXMvMjAxNy9uYXJyYXRpdmUtbWludXRlcy0yMDE3LTA5
LTE0Lmh0bWwiPklFU0cgVGVsZWNvbmZlcmVuY2UgTmFycmF0aXZlIE1pbnV0ZXM6IDIwMTct
MDktMTQ8L2E+PC9saT4KPC91bD4KCjxkaXYgY2xhc3M9Im1vcmUiPm1vcmUgbWludXRlczog
PGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvaWVzZy9taW51dGVzLmh0bWwiPklFU0cg
JnJhcXVvOzwvYT4gJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmlhYi5vcmcvZG9jdW1l
bnRzL21pbnV0ZXMvIj5JQUIgJnJhcXVvOzwvYT4gJm5ic3A7IDxhIGhyZWY9Imh0dHBzOi8v
aWFvYy5pZXRmLm9yZy9taW51dGVzLmh0bWwiPklBT0MgJnJhcXVvOzwvYT4gJm5ic3A7IDxh
IGhyZWY9Imh0dHBzOi8vdHJ1c3RlZS5pZXRmLm9yZy9taW51dGVzLmh0bWwiPlRydXN0ICZy
YXF1bzs8L2E+PC9kaXY+Cgo8aDI+TGlhaXNvbiBTdGF0ZW1lbnRzPC9oMj4KPGRpdiBjbGFz
cz0ibW9yZSI+PGEgaHJlZj0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9saWFpc29u
LyI+bW9yZSBsaWFpc29uIHN0YXRlbWVudHMgJnJhcXVvOzwvYT48L2Rpdj4KPCEtLSBEQUlM
WSBDT05URU5UIEVORFMgLS0+CgoKPGgyPkNsYXNzaWZpZWQgQWRzPC9oMj4KCgoKCgoKCjwv
dGQ+PC90cj48L3RhYmxlPgoKPGRpdiBjbGFzcz0iZGFpbHlkb3NlX3RyYWlsZXIxIiBpZD0i
ZGFpbHlkb3NlX3RyYWlsZXIxIj4KPHRhYmxlIGNsYXNzPSJkYWlseWRvc2VfdHJhaWxlcjIi
Pgo8dHI+PHRkPgoKPHA+VGhlIERhaWx5IERvc2Ugb2YgSUVURiBpcyBicm91Z2h0IHRvIHlv
dSBieSBQYXNpIEVyb25lbi48YnIgLz4KTGFzdCB1cGRhdGVkIDIwMTctMDktMjkgMDU6MDA6
NDkgR01ULgo8YSBocmVmPSJhYm91dC5odG1sIj5tb3JlIGluZm8gJiMxODc7PC9hPjwvcD4K
CgkgIDwhLS0gU3BvbnNvcnMgLS0+CgkgIDxkaXYgY2xhc3M9InNwb25zb3IiPgoJICAgICBU
aGUgaGFyZHdhcmUgYW5kIGJhbmR3aWR0aCBmb3IgdGhlIDYgdG9vbHMuaWV0Zi5vcmcgc2Vy
dmVycyBoYXZlIGJlZW4ga2luZGx5IHByb3ZpZGVkIGJ5OjxiciAvPgoJICAgICA8c3BhbiBz
dHlsZT0icGFkZGluZzogMCAxMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMTJweDsg
Ij4KCQk8YSBocmVmPSJodHRwOi8vd3d3Lmlzb2Mub3JnIj48aW1nIGFsdD0iSVNPQyIgc3Jj
PSIvaW1hZ2VzL2lzb2Mtc21hbGwuZ2lmIiBzdHlsZT0ibWFyZ2luOiAwIj48L2E+CgkgICAg
IDwvc3Bhbj4KCSAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6IDAgMTBweDsgZm9udC1mYW1p
bHk6IHZlcmRhbmEsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTBwdDsgZm9udC1zdHlsZTog
aXRhbGljOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTRweDsiPgoJCUhlbnJpayBMZXZr
b3dldHoKCSAgICAgPC9zcGFuPgoJICAgICA8c3BhbiBzdHlsZT0icGFkZGluZzogMCAxMHB4
OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMnB4OyI+CgkJPGEgaHJlZj0iaHR0cDovL3d3
dy5lcmljc3Nvbi5jb20vIj48aW1nIHNyYz0iL2ltYWdlcy9lcmljc3Nvbl9ob3Jpem9udGFs
Xzk2cHgucG5nIiBhbHQ9IkVyaWNzc29uIiBzdHlsZT0ibWFyZ2luOiAwIiA+PC9hPgoJICAg
ICA8L3NwYW4+CgkgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7IHBvc2l0aW9u
OiByZWxhdGl2ZTsgdG9wOiAxNnB4OyBsZWZ0OiAxMHB4OyI+CgkJPGEgaHJlZj0iaHR0cDov
L3d3dy5uZXRub2Quc2UvIj48aW1nIHNyYz0iL2ltYWdlcy9uZXRub2Rsb2dvLmdpZiIgYWx0
PSJOZXRub2QiIHN0eWxlPSJtYXJnaW46IDAiIHdpZHRoPSI2OSI+PC9hPgoJICAgICA8L3Nw
YW4+CgkgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7IHBvc2l0aW9uOiByZWxh
dGl2ZTsgdG9wOiAxNnB4OyBsZWZ0OiAxMHB4OyI+CgkJPGEgaHJlZj0iaHR0cDovL3d3dy5u
YW8uYWMuanAvRS8iPjxpbWcgc3JjPSIvaW1hZ2VzL25hb2psb2dvLnBuZyIgYWx0PSJOYXRp
b25hbCBBc3Ryb25vbWljYWwgT2JzZXJ2YXRvcnkgb2YgSmFwYW4iIHN0eWxlPSJtYXJnaW46
IDAiIHdpZHRoPSI2OSI+PC9hPgoJICAgICA8L3NwYW4+CgkgIDwvZGl2PgoKCjwvdGQ+PC90
cj48L3RhYmxlPgo8L2Rpdj4gPCEtLSBkYWlseWRvc2VfdHJhaWxlcjEgLS0+Cgo8L2Rpdj4g
PCEtLSBkYWlseWRvc2UgLS0+Cgo8L3RkPjwvdHI+CjwvdGFibGU+Cgo8L2Rpdj4gPCEtLSBw
YWdlIC0tPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwoK
ZnVuY3Rpb24gZGFpbHlEb3NlU2luZ2xlQ29sdW1uKCkgewogIC8vIG1vdmUgdGV4dCBmcm9t
IDJuZCBjb2x1bW4gdG8gMXN0CiAgdmFyIGNvbDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGFpbHlkb3NlX2NvbDEiKTsKICB2YXIgY29sMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkYWlseWRvc2VfY29sMiIpOwogIGNvbDEuYXBwZW5kQ2hpbGQoY29sMik7CgogIC8v
IHJlbW92ZSB1bm5lZWRlZCBwYWRkaW5nLCBhZGp1c3Qgd2lkdGgKICB2YXIgY29scyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYWlseWRvc2VfY29scyIpOwogIHZhciBiYW5uZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGFpbHlkb3NlX2Jhbm5lciIpOwogIHZhciB0
cmFpbGVyMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYWlseWRvc2VfdHJhaWxlcjEi
KTsgCiAgY29sMS5zdHlsZS5wYWRkaW5nID0gIjAiOwogIGNvbDIuc3R5bGUucGFkZGluZyA9
ICIwIjsKICBjb2xzLnN0eWxlLnBhZGRpbmcgPSAiMCI7CiAgYmFubmVyLnN0eWxlLnBhZGRp
bmcgPSAiMCI7CiAgdHJhaWxlcjEuc3R5bGUucGFkZGluZyA9ICIwIjsKIAogIC8vIHJlbW92
ZSBsZWZ0IG1lbnUgYmFyCiAgdmFyIGVscyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJ0ZCIpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxzLmxlbmd0aDsgaSsrKSB7IAog
ICAgaWYgKGVsc1tpXS5jbGFzc05hbWUgPT0gIndnbGlzdCIpIHsKICAgICAgZWxzW2ldLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxzW2ldKTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoK
ICAvLyBTY2FsZSBkb3duIHRpdGxlIGlmIHdpbmRvdyBpcyByZWFsbHkgbmFycm93CiAgdmFy
IHRpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhaWx5ZG9zZV90aXRsZSIpOwog
IGlmICgod2luZG93LmlubmVyV2lkdGggJiYKICAgICAgIHRpdGxlLmNsaWVudFdpZHRoID4g
d2luZG93LmlubmVyV2lkdGgpIHx8CiAgICAgIChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRo
ICYmCiAgICAgICB0aXRsZS5jbGllbnRXaWR0aCA+IGRvY3VtZW50LmJvZHkuY2xpZW50V2lk
dGgpKSB7CiAgICB2YXIgc2NhbGU7CiAgICBpZiAod2luZG93LmlubmVyV2lkdGgpIHsKICAg
ICAgc2NhbGUgPSAod2luZG93LmlubmVyV2lkdGgqMC44KSAvIHRpdGxlLmNsaWVudFdpZHRo
OwogICAgfSBlbHNlIHsKICAgICAgc2NhbGUgPSAoZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0
aCowLjgpIC8gdGl0bGUuY2xpZW50V2lkdGg7CiAgICB9CiAgICB0aXRsZS5zdHlsZS53aWR0
aCA9IE1hdGgucm91bmQodGl0bGUuY2xpZW50V2lkdGggKiBzY2FsZSkgKyAicHgiOwogICAg
dGl0bGUuc3R5bGUuaGVpZ2h0ID0gTWF0aC5yb3VuZCh0aXRsZS5jbGllbnRIZWlnaHQgKiBz
Y2FsZSkgKyAicHgiOwogIH0KfQoKZnVuY3Rpb24gZGFpbHlEb3NlRHJhZnROYW1lRmlyc3Qo
KSB7CiAgdmFyIGVscyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIik7
CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbHMubGVuZ3RoLTE7IGkrKykgewogICAgaWYgKChl
bHNbaV0uY2xhc3NOYW1lID09ICJpZHRpdGxlIikgJiYKICAgICAgICAoZWxzW2krMV0uY2xh
c3NOYW1lID09ICJpZG5hbWUiKSkgewogICAgICAKICAgICAgLy8gcmVtb3ZlIHBhcmVudGhl
c2lzIGFyb3VuZCBpZG5hbWUKICAgICAgdmFyIHRtcCA9IGVsc1tpKzFdLmlubmVySFRNTDsK
ICAgICAgaWYgKHRtcC5jaGFyQXQoMCkgPT0gIigiKSB7CiAgICAgICAgZWxzW2krMV0uaW5u
ZXJIVE1MID0gdG1wLnN1YnN0cmluZygxLHRtcC5sZW5ndGgtMSk7CiAgICAgIH0KICAgICAg
ZWxzW2ldLmlubmVySFRNTCA9ICIoIiArIGVsc1tpXS5pbm5lckhUTUwgKyAiKSI7CgogICAg
ICAvLyByZXZlcnNlIG9yZGVyIGFuZCBhZGQgbGluZSBicmVhawogICAgICBlbHNbaV0ucGFy
ZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxzW2krMV0sIGVsc1tpXSk7CiAgICAgIGVsc1tpKzFd
LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIiks
IGVsc1tpKzFdKQoKICAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgIjoiIGZyb20gbmV4dCB0ZXh0
IGVsZW1lbnQgYW5kIGFkZCBsaW5lIGJyZWFrCiAgICAgIHRtcCA9IGVsc1tpKzFdLm5leHRT
aWJsaW5nOwogICAgICB3aGlsZSAodG1wKSB7CiAgICAgICAgICBpZiAodG1wLm5vZGVUeXBl
ID09IDMpIHsKICAgICAgICAgICAgIHZhciBqID0gdG1wLm5vZGVWYWx1ZS5pbmRleE9mKCI6
Iik7CiAgICAgICAgICAgICBpZiAoaiA+PSAwICYmIGogPD0gMSkgewogICAgICAgICAgICAg
ICAgIHRtcC5ub2RlVmFsdWUgPSB0bXAubm9kZVZhbHVlLnN1YnN0cmluZyhqKzEpOwogICAg
ICAgICAgICAgICAgIHRtcC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJiciIpLCB0bXApOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICB9IAogICAgICAgICB0bXAgPSB0bXAubmV4dFNpYmxpbmc7CiAg
ICAgIH0KICAgIAogICAgICAvLyBmaXggZm9udCBzaXplCiAgICAgIGVsc1tpXS5zdHlsZS5m
b250U2l6ZSA9ICIxMHB0IjsKICAgICAgZWxzW2krMV0uc3R5bGUuZm9udFNpemUgPSAiOXB0
IjsKICAgIH0KICB9Cn0KCmlmICgod2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJz
aW5nbGVjb2x1bW4iKSA+PSAwKSkgewogIGRhaWx5RG9zZVNpbmdsZUNvbHVtbigpOwp9Cgpp
ZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJkcmFmdG5hbWVmaXJzdCIpID49
IDApIHsKICBkYWlseURvc2VEcmFmdE5hbWVGaXJzdCgpCn0KCi8vXV0+Cjwvc2NyaXB0PgoK
PC9ib2R5PjwvaHRtbD4KCjwhLS0gREFURT0yMDE3LTA5LTI5IDE1MDY2NjEyNDkgLS0+Cgo=
--------------97D29126DACD395A6AB4022A--

--0GOgNKnm4R4bjQNRwvrxrlrHC9qllhRit--

--QVVIgudNv4A0CNkRMWqk8rEGkalkuXPUU
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJZ2zt3AAoJEC88hzaAX42ieBkIAJdQGODN0NcWr1P/FqE2UfzI
2O/RSRhh4QTP+/XuhODyWW2b+Np1p86hvtg3DUq2Dvo252pDZu3K/7tK7TrkvP94
ZGc6EogVxF6QqpJrQTFMduusekJ8l7m5YHZqeDR8H79Yb//IZb3QuGz+41Uk3gxn
3fko/KkB2BhHha1oLKqGkKZO+lIntW0M5rO2tsdJCpCCzRotBrTzlL84K6vpYjMf
NKN3Ge0z4KsD+cCe1rXAV1RTY/PfjMtgaFo6QG816MndF9otEVFpuUcpBYGiWU7m
k/N1KcfzRgbgboxaO14LW5WkGzhrKdQ3yqZZG5brbnDykKKoixl9acARVR5IINQ=
=NQOf
-----END PGP SIGNATURE-----

--QVVIgudNv4A0CNkRMWqk8rEGkalkuXPUU--


From dbharrington@yahoo.com  Mon Oct  9 10:59:02 2017
Return-Path: <dbharrington@yahoo.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2693B134752 for <tools-discuss@ietfa.amsl.com>; Mon,  9 Oct 2017 10:59:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z3kL_s38e3Y2 for <tools-discuss@ietfa.amsl.com>; Mon,  9 Oct 2017 10:58:57 -0700 (PDT)
Received: from sonic308-3.consmr.mail.bf2.yahoo.com (sonic308-3.consmr.mail.bf2.yahoo.com [74.6.130.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 531F313474E for <tools-discuss@ietf.org>; Mon,  9 Oct 2017 10:58:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1507571936; bh=Rz7U8ZXgdFdw5KlESgQ0heCCWP1+rneeOo39y5tLU+0=; h=From:Date:Subject:To:From:Subject; b=RHRK6r9EjdP4LV2tIenC1p//duytHbZfDYShalmWbmTgiEEu9EukEIdI4YzBrC3EeAcouwO0Sm7lNK5ZwFQJvZPHvXc/tLByAAS0ktqpGlzO7WkAUWLyfMrpE6vOYIH4JB+q75MKWJhYEwZVM6XVJfEZVuy90IeNgdHv0XNrYlgdvOg4C1A3mAVAZKkh9E2QmIKCRS2RggJpeo9yfnmDFIcUoSdVKISW+b08ScAL5bmDNCzUwBgGmlNgi8ytKvvk5I4e8IxxaEqSGZav5WHvIKXlyl4E3DbkCv2IXnrONONXsDZS8TKQa9BEpS91vK0Tdo5DID84T2ArFJwRzya1Qg==
X-YMail-OSG: G0Y8cZoVM1l.PpNynALohR3UvmYjvjba.QDeLQPiIq9cOyCO3Czybab574wkskd KzdSsk50AcSuaaHA3bA5SeI65BNvw8niwjru7MXsI8ONCMYwkNBMy2hoMm56WZNxx4lXgMlFqN9G SyoUHUzfAbn5RFIjduzgOsLGX0XK0bemTcxQufopthaRi8IKPcmYQkf_cCOI0ZJvDASv5iBATksE eQQ.zypIq0T3LmNnanKS0BT3_Njj6Pb_jNbIH2PjzErU3sgEaVQLQ1MAA4IfOqUiEadp0l6Issn3 B2qh0monfOquH0rbffoUVLQnBbOM.LxW.uv9CDHs8yk0yVm.nV9k5.HYNf2TsAwJZC5u32_9NWPb LiIHPRl4GwI6TbIGfohXZYAvQkaoQLu7wkqzr9mtBxKsIs.alT55kUBZyC4SQcopV5sRKMk0X8MP Amo1_TENH1MmvddoVG1uGN53MFTTtqm2jErLkulfLGMHU5yRS8w6WxPQn7wxvMVw-
Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.bf2.yahoo.com with HTTP; Mon, 9 Oct 2017 17:58:56 +0000
Received: from [127.0.0.1] by smtp201.mail.bf1.yahoo.com with NNFMP; 09 Oct 2017 17:58:53 -0000
X-Yahoo-Newman-Id: 122621.54880.bm@smtp201.mail.bf1.yahoo.com
X-Yahoo-Newman-Property: ymail-3
X-YMail-OSG: G0Y8cZoVM1l.PpNynALohR3UvmYjvjba.QDeLQPiIq9cOyC O3Czybab574wkskdKzdSsk50AcSuaaHA3bA5SeI65BNvw8niwjru7MXsI8ON CMYwkNBMy2hoMm56WZNxx4lXgMlFqN9GSyoUHUzfAbn5RFIjduzgOsLGX0XK 0bemTcxQufopthaRi8IKPcmYQkf_cCOI0ZJvDASv5iBATksEeQQ.zypIq0T3 LmNnanKS0BT3_Njj6Pb_jNbIH2PjzErU3sgEaVQLQ1MAA4IfOqUiEadp0l6I ssn3B2qh0monfOquH0rbffoUVLQnBbOM.LxW.uv9CDHs8yk0yVm.nV9k5.HY Nf2TsAwJZC5u32_9NWPbLiIHPRl4GwI6TbIGfohXZYAvQkaoQLu7wkqzr9mt BxKsIs.alT55kUBZyC4SQcopV5sRKMk0X8MPAmo1_TENH1MmvddoVG1uGN53 MFTTtqm2jErLkulfLGMHU5yRS8w6WxPQn7wxvMVw-
X-Yahoo-SMTP: MgtnJUqswBAw0feI1OubhSf7UGUEtg_uiQ--
From: David Harrington <dbharrington@yahoo.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_E2C8CF9B-945C-4ACB-AC3C-33F57E38EFA4"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Mon, 9 Oct 2017 13:58:50 -0400
Message-Id: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>
To: tools-discuss@ietf.org
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/D8NSH1s-xYAb-DRtDBvSTokZulg>
Subject: [Tools-discuss] inaccurate data tracker document search
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 12:41:33 -0000

--Apple-Mail=_E2C8CF9B-945C-4ACB-AC3C-33F57E38EFA4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi,

I=E2=80=99ve mentioned this in the past, but this bug has never been =
addressed.
If I do a document search from ietf.org <http://ietf.org/> =E2=80=9CIntern=
et drafts and RFC Quick Search=E2=80=9D
	(which apparently goes to data tracker.ietf.org/doc/search) I =
get inaccurate results.

Search for =E2=80=9Charrington=E2=80=9D and two docs will show up - =
rfc4663 and rfc5249.

If I go to the RFC Editor page and search RFCs for =E2=80=9Charrington=E2=80=
=9D, twenty-one documents will show up.

I don=E2=80=99t know what database is being used for the quick search, =
but it is apparently incomplete, or the search engine used has problems.

dbh


--Apple-Mail=_E2C8CF9B-945C-4ACB-AC3C-33F57E38EFA4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Hi,<div class=3D""><br class=3D""></div><div class=3D"">I=E2=80=
=99ve mentioned this in the past, but this bug has never been =
addressed.</div><div class=3D"">If I do a document search from <a =
href=3D"http://ietf.org" class=3D"">ietf.org</a>&nbsp;=E2=80=9CInternet =
drafts and RFC Quick Search=E2=80=9D</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>(which =
apparently goes to data <a href=3D"http://tracker.ietf.org/doc/search" =
class=3D"">tracker.ietf.org/doc/search</a>) I get inaccurate =
results.</div><div class=3D""><br class=3D""></div><div class=3D"">Search =
for =E2=80=9Charrington=E2=80=9D and two docs will show up - rfc4663 and =
rfc5249.</div><div class=3D""><br class=3D""></div><div class=3D"">If I =
go to the RFC Editor page and search RFCs for =E2=80=9Charrington=E2=80=9D=
, twenty-one documents will show up.</div><div class=3D""><br =
class=3D""></div><div class=3D"">I don=E2=80=99t know what database is =
being used for the quick search, but it is apparently incomplete, or the =
search engine used has problems.</div><div class=3D""><br =
class=3D""></div><div class=3D"">dbh</div><div class=3D""><br =
class=3D""></div></body></html>=

--Apple-Mail=_E2C8CF9B-945C-4ACB-AC3C-33F57E38EFA4--


From nobody Wed Oct 11 10:32:01 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F1D9132397 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:32:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bNYinM1RbFPG for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:31:59 -0700 (PDT)
Received: from mail-qt0-x229.google.com (mail-qt0-x229.google.com [IPv6:2607:f8b0:400d:c0d::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D4DEF12895E for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 10:31:58 -0700 (PDT)
Received: by mail-qt0-x229.google.com with SMTP id o52so7471661qtc.9 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 10:31:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=5OO7YDCwy8/mxIWlkG9CoWDSBBrTqA26xIfnlAFR+zo=; b=hiwV8Z9XM9Sn71rh7Vx8INhF2binRhObhctKgriV6Y66aLDoox+udrxxRbzpapnoyn iEwXLlvVFjOnq1qEP1cI1o+l1PSNuYy0iRCNZuh74JG+JC2RQq8321LcA98gFcZyDHAB BK1ob/d2wpcaW7A1Q9AZagWOZo3MnvCeip6COJ1FlGmQgHyNj6/eOSfYf8j89Edeoa1H RBeme2ZBhEqXF1h+JSX6vscXmRWb9KOBibSRXKS4BhxQtxGe0BTGCv48rPJWpStl8E+s qw/IuWXC2R3oY4ic7UPpNAyQcT7BMBoS3mGVEdMuNbmccFOLCEcprs6Kz/9ixQFMUo9q Vjjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5OO7YDCwy8/mxIWlkG9CoWDSBBrTqA26xIfnlAFR+zo=; b=W4D2T4ApFJufhxgcjatTeW1gm1BAAnzdqDFT2zajpV/216wVwf0tkusV32zKUfibDb 23kapkb7RLdguxeWgjWYmq8kTF2syzlij1AvzrBhGgEh+XDuSoqLvf61uAWTxdECHT6I 6N/jor14OfU61MAfTLR72qkL7iwWxTedWRx/v43gQQumwHkDIkJZFP19WDrG4qBATdP0 GDsV1d+/pU5nB5JxyK/5lVy1SbQCT+oD975y3CrXzpbnbSQFCrxMWsOy2kAEbWKGWh1X J46R864iZQ8Js0ICzUAnWQnhzDrWv4lsk8X/5UbZVeXX0ix0EldhlVKTGQPx5aMJSRTz UisA==
X-Gm-Message-State: AMCzsaXrzoa6fzu8ow24VxU57biCywmIz7tbs8wZBGuh5wqmLZcAW+40 EzQ6+D5rvpLlAig61deRswLYH56T7iFhBzQqplAdlcJa
X-Google-Smtp-Source: AOwi7QDCCRTd2RKjW+4PN73wG+1MdJHfur/0sC02/r1Dvr+wwRTgdip4sYpt8qT+z9LO/+5tKuiTjOdDZzwYD9OF9u4=
X-Received: by 10.129.26.208 with SMTP id a199mr228208ywa.280.1507743117730; Wed, 11 Oct 2017 10:31:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 11 Oct 2017 10:31:17 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 11 Oct 2017 10:31:17 -0700
Message-ID: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>
To: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a1142d0d4f1fb70055b48ccc3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/V4T3Vx9OGyWQxjipWtbconmFQYg>
Subject: [Tools-discuss] rfcdiff svn location
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 17:32:00 -0000

--001a1142d0d4f1fb70055b48ccc3
Content-Type: text/plain; charset="UTF-8"

Is there a public rfcdiff svn repo? I don't see it in the ietfdb repo....

-Ekr

--001a1142d0d4f1fb70055b48ccc3
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">Is there a public rfcdiff svn repo? I don&#39;t see it in the ietfdb repo....<div><br></div><div>-Ekr</div><div><br></div></div>

--001a1142d0d4f1fb70055b48ccc3--


From nobody Wed Oct 11 10:49:21 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3113F134228 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:49:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level: 
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[BAYES_20=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZF-gmWf7CMJ5 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:49:17 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D508F1329F9 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 10:49:17 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:52670 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e2L88-0006WJ-RO; Wed, 11 Oct 2017 10:49:17 -0700
To: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com>
Date: Wed, 11 Oct 2017 19:49:08 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="GUda6eMuevGW0cXmM8BMrdcHCUoxwHroo"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/gMowRomlEX09iwrHSUOayxTpyMo>
Subject: Re: [Tools-discuss] rfcdiff svn location
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 17:49:19 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--GUda6eMuevGW0cXmM8BMrdcHCUoxwHroo
Content-Type: multipart/mixed; boundary="So8N6cQDEFNTbf61PUvcjEfBSr6l4C90x";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
Message-ID: <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com>
Subject: Re: [Tools-discuss] rfcdiff svn location
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>
In-Reply-To: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>

--So8N6cQDEFNTbf61PUvcjEfBSr6l4C90x
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Eric

On 2017-10-11 19:31, Eric Rescorla wrote:
> Is there a public rfcdiff svn repo? I don't see it in the ietfdb repo..=
=2E.

No, sorry.  I have a private svn repo which I could open up, if it's
of interest.  The latest code for the command-line utility is here:
https://tools.ietf.org/tools/rfcdiff/code

As you'll see, it's a bash wrapper around a mess of other tools.  It's
really ripe for a rewrite to pure python (or something).  I'd like to
do a rewrite once the RFC format tools work I'm committed to is done.


Best regards,

	Henrik


--So8N6cQDEFNTbf61PUvcjEfBSr6l4C90x--

--GUda6eMuevGW0cXmM8BMrdcHCUoxwHroo
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ3lmUAAoJEE6bV0uPuxcapokQAMg64GHSXbA7VaoyK+zOoo6m
4/VmeW0ud3982rlGOxNmrlIA4zpWIRIo1WcIth2B0DSpDPTnTCxg6cns3n2xuzm2
Yg9ndLp7KjLTS2LJgO3HVGkrfctft5Zv5uBGl2pUqxy226yggkKM0mdJob7mJpHJ
BQ7hfOuTeKHv0tm6sPVLHHuCIIY0e0jWhg+Iaw9S0PLhnjK4iULPvCSC7PU1GiR8
OenLCRwZzQpZXO9PuVtMQCm2KBxAUrXwzmJCeiXqJQhhbnbLgOS1eaHJZcdVVet3
TAKFfACXO44mu0kK3BpbFG+AHG1vdzLU6umcUa/6qt0xyCYSyaZ7/oXMwKPaYl4U
0KbTsG0RQKa7EZrKrRGOHLWuGfCLE+vmIhGK6rW3AonABGWtXKykjfm5XFRvod5a
Qtno6XyxQb9cO8H3m8CrWDfSIberze6CfEQi8biWSBSvMzIbN68iWo09/wFKZpbQ
i+piOHhIC4zNj3GfdubXjdOxDkHhuAKrO+YaW8SibXx97OQzcBz50j48IGBaiDPG
6fMXfRDQ8ouTt6MZNfN+JWLov2HXNhi/WnRQekAJvg7/pjfLM65OIJPBhSJUvxCb
rRolm70sbf61yBu9/7+94HogRddoFhcfQWHv4R8OpIXJ6qiL2xcPLy7uDUIW5Fji
uZQWXpF1+NLF3NfT6w7a
=qXa+
-----END PGP SIGNATURE-----

--GUda6eMuevGW0cXmM8BMrdcHCUoxwHroo--


From nobody Wed Oct 11 10:51:55 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EB92D133085 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:51:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XKngi1GEoV-n for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 10:51:52 -0700 (PDT)
Received: from mail-qt0-x22e.google.com (mail-qt0-x22e.google.com [IPv6:2607:f8b0:400d:c0d::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C72F1323B8 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 10:51:52 -0700 (PDT)
Received: by mail-qt0-x22e.google.com with SMTP id p1so7684042qtg.2 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 10:51:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=AeQnbg0ZeQtXB+wgH/BGg5z9TDo09BelBE/E6Xfp27s=; b=iHGqH15k3Z38ndo/TXgMmwya4LBZLl+zYspwXy8tfRbKk/BoGedyY8kkAabUyJA34F q3XhOYz81Y3HP+fh4ZkynH5aAuhHBx+mlee91Y4Fe6uzNPr9Nl8tNVNhfgA3JKcWExDj sLTDeM19zhniEwlsmST+/x3j37T945t0XuTGoVlVdc2FUBFv6i7+03Os+yLCcbqIM5Yx W0E+fZUhwgJ7040CiNvQB4uZ95w90ONw4rcnNczulcc3LjS2Mpr+SmnFk8ijoJ3YMdU3 PHMnkFnfMxfJtZs9H0txq9yODVa36+qRXvdU0qJSOk7DViQ9lDKc33ciUJID/XARugIT B53A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=AeQnbg0ZeQtXB+wgH/BGg5z9TDo09BelBE/E6Xfp27s=; b=ZnUKm9YYe+WeW2EQI7rC0ce4GbRnGeoM9D7BwhT6lEVU7bjVFPP4wf92tdb/cyslKi S7RvqlgORgF5doia8Duxq4/BSK9XrO25XdGxNK2VQA/s5Wfgt5zbl9J4yOmqm4IhTM7m A9DQZ1bMNtEl8nBahEHbiHiRjbCC0VdjzGNuVTHTQGKqXKPsV/F31khqEeJ3HdZ+vOcO bXULKnQhyExUmG/rGqesNACicq6EGgIAVlFFsATb7En2E2bFxII6nW5gIKbPvARbKSyR ViygDHOpFxi2ZSFYQoW3U5APa09rN0+qz5TjNIk6uUH0h7QbbqxumiDPChUH8zQoub18 mHWg==
X-Gm-Message-State: AMCzsaWuPCEolKw4rxi8I2T6hwvbNm1JqCJTb4RTGEnJHHpYSMHTJELy sdc5VRmsOS4F3neZKFRmqCybzZ4VpAIx+o1Sc8oaCw==
X-Google-Smtp-Source: AOwi7QAHZ3eYn+nI/IwH4FKrENE9zeSAcCatw2yVaW13Y5wpRVw8gxuLr/qqobuzCxgq7QRuMG13m7t4gNHDb/pKt44=
X-Received: by 10.37.162.145 with SMTP id c17mr249317ybi.348.1507744311226; Wed, 11 Oct 2017 10:51:51 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 11 Oct 2017 10:51:10 -0700 (PDT)
In-Reply-To: <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com>
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com> <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 11 Oct 2017 10:51:10 -0700
Message-ID: <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="089e0828c2ac1553b4055b491422"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/Bj8hvFR7URm66MqEi8z1tB1qcF0>
Subject: Re: [Tools-discuss] rfcdiff svn location
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 17:51:54 -0000

--089e0828c2ac1553b4055b491422
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 11, 2017 at 10:49 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

> Hi Eric
>
> On 2017-10-11 19:31, Eric Rescorla wrote:
> > Is there a public rfcdiff svn repo? I don't see it in the ietfdb repo....
>
> No, sorry.  I have a private svn repo which I could open up, if it's
> of interest.  The latest code for the command-line utility is here:
> https://tools.ietf.org/tools/rfcdiff/code


It would be great if you could open it up for read-only. Then it would be
easy for me
to do a git-svn clone and send you patches :)



> As you'll see, it's a bash wrapper around a mess of other tools.  It's
> really ripe for a rewrite to pure python (or something).  I'd like to
> do a rewrite once the RFC format tools work I'm committed to is done.
>

Yeah, know how that is.

-Ekr


>
> Best regards,
>
>         Henrik
>
>

--089e0828c2ac1553b4055b491422
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Oct 11, 2017 at 10:49 AM, Henrik Levkowetz <span dir=3D"ltr">&l=
t;<a href=3D"mailto:henrik@levkowetz.com" target=3D"_blank">henrik@levkowet=
z.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Eric<br>
<span class=3D""><br>
On 2017-10-11 19:31, Eric Rescorla wrote:<br>
&gt; Is there a public rfcdiff svn repo? I don&#39;t see it in the ietfdb r=
epo....<br>
<br>
</span>No, sorry.=C2=A0 I have a private svn repo which I could open up, if=
 it&#39;s<br>
of interest.=C2=A0 The latest code for the command-line utility is here:<br=
>
<a href=3D"https://tools.ietf.org/tools/rfcdiff/code" rel=3D"noreferrer" ta=
rget=3D"_blank">https://tools.ietf.org/tools/<wbr>rfcdiff/code</a></blockqu=
ote><div><br></div><div>It would be great if you could open it up for read-=
only. Then it would be easy for me</div><div>to do a git-svn clone and send=
 you patches :)</div><div><br></div><div>=C2=A0</div><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex">
As you&#39;ll see, it&#39;s a bash wrapper around a mess of other tools.=C2=
=A0 It&#39;s<br>
really ripe for a rewrite to pure python (or something).=C2=A0 I&#39;d like=
 to<br>
do a rewrite once the RFC format tools work I&#39;m committed to is done.<b=
r></blockquote><div><br></div><div>Yeah, know how that is.</div><div><br></=
div><div>-Ekr</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Best regards,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
<br>
</blockquote></div><br></div></div>

--089e0828c2ac1553b4055b491422--


From nobody Wed Oct 11 11:00:39 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5C55E126BF3 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 11:00:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MVie2xEAxLG8 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 11:00:36 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EF8F912895E for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 11:00:35 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:52909 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e2LJ5-0000Zr-2e; Wed, 11 Oct 2017 11:00:35 -0700
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com> <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com> <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <952c913b-5d47-e79b-aa1e-6d680e5b98b1@levkowetz.com>
Date: Wed, 11 Oct 2017 20:00:27 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="AmQtXuCs9QH4hx6MNRTF5XU8iOKA3lqhE"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/k-bIV4SwXNrz69Rm2tgwc_Lw4wE>
Subject: Re: [Tools-discuss] rfcdiff svn location
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 18:00:37 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--AmQtXuCs9QH4hx6MNRTF5XU8iOKA3lqhE
Content-Type: multipart/mixed; boundary="HEJQ5q4aFbxPMal220VoUeBrfaXVNjKo4";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <952c913b-5d47-e79b-aa1e-6d680e5b98b1@levkowetz.com>
Subject: Re: [Tools-discuss] rfcdiff svn location
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com>
 <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com>
 <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com>
In-Reply-To: <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com>

--HEJQ5q4aFbxPMal220VoUeBrfaXVNjKo4
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Ekr,

On 2017-10-11 19:51, Eric Rescorla wrote:
> On Wed, Oct 11, 2017 at 10:49 AM, Henrik Levkowetz <henrik@levkowetz.co=
m>
> wrote:
>=20
>> Hi Eric
>>
>> On 2017-10-11 19:31, Eric Rescorla wrote:
>> > Is there a public rfcdiff svn repo? I don't see it in the ietfdb rep=
o....
>>
>> No, sorry.  I have a private svn repo which I could open up, if it's
>> of interest.  The latest code for the command-line utility is here:
>> https://tools.ietf.org/tools/rfcdiff/code
>=20
>=20
> It would be great if you could open it up for read-only. Then it would =
be
> easy for me
> to do a git-svn clone and send you patches :)

Right.  Here: https://svn.tools.ietf.org/svn/src/rfcdiff/

	Henrik

>> As you'll see, it's a bash wrapper around a mess of other tools.  It's=

>> really ripe for a rewrite to pure python (or something).  I'd like to
>> do a rewrite once the RFC format tools work I'm committed to is done.
>>
>=20
> Yeah, know how that is.
>=20
> -Ekr
>=20
>=20
>>
>> Best regards,
>>
>>         Henrik
>>
>>
>=20


--HEJQ5q4aFbxPMal220VoUeBrfaXVNjKo4--

--AmQtXuCs9QH4hx6MNRTF5XU8iOKA3lqhE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ3lw7AAoJEE6bV0uPuxcaHe8QAJh8AfoRh5FZUgYcY9NHUHgf
NtUEZsle3hnnMBAtzMPrkbF5c771yw7zzst6VmM+0ekLwWF0VjJxdeN3+CZ9CVCw
lOAZT9L3SGuQxO087KweApM5XA9wSBpnQaLcWTnCIm5Q5x/XwokqMnj1y2PVM1sf
AbRplVkaE3HmdRSCL4zggXvpgDfFu1Pf/Ayhlk9c4RGDMuRNsBws/4annUwYAV0U
TI/4TAIFQkBQeMFgUN11UhQerCYv4umaKItqye09S1e59J9foJI87a2KPB3JZpTr
g32z7RyJfRgkMs6u1lyvTHkNjMNms1/BY2Y9aAVXTM4Gg0172HZSe9DNT6P+r3oa
zM0gDNs4VHUTB4zJnpIi36VQMoCcUCGU2ysbqW6d+fTZQD4BZVsUS4PTgY7S4icC
vUsXdhjolri6uSCaHqctO+yilmDJGY8bJLou1UO5abZde6XZXpRn2VpCdTYoIneN
TfvwEhXeXJtOnAt5wuNX+UCh2PCuE8g7qpKfh18BLYM+J5QNnYIvP8cSlfQmJl9C
3Rat8HHTf9nYWf8BwF4dmj8C7nULsDagdzlpxy2pC3IE1yd8zGfNdRRE4XhRQPmw
fpJKFuNXtjZIR5j+flZBqE6gaDKbXlQ06nsc8fBg2qoTrgDElra53hMNJDuS2i3Y
1cpBCpvvynsKnVktMECV
=pXwC
-----END PGP SIGNATURE-----

--AmQtXuCs9QH4hx6MNRTF5XU8iOKA3lqhE--


From nobody Wed Oct 11 11:33:34 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46E8313306C for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 11:33:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LXG29A8PuY3F for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 11:33:30 -0700 (PDT)
Received: from mail-qt0-x234.google.com (mail-qt0-x234.google.com [IPv6:2607:f8b0:400d:c0d::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A4FE3132031 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 11:33:30 -0700 (PDT)
Received: by mail-qt0-x234.google.com with SMTP id n61so8029660qte.10 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 11:33:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=wWghTuus43nVw15FMJRBCFnrbIxLwP4uEgF5/atgdTQ=; b=WOA2DbNDImsspCWDz32RRHdpMCBIEVU7/sHwYeYEjeSU2uoOGRFntCO3noBzVgEKrN zHdvnl3Lq1uRXCRPrtb2K/w/HIiITEP5mBjBUqzZVZJXotDgFHV20M55+JQJ/6fwb/kX QWjEsJMV1wk39pSGYl5jv1MGRAPhQBdeCLzDbHcqTqzuU944ykOebchUIpzf9uM3beza yh/Qq+Ln6Za6Ze5zqaIkTkXFUn6ko1/uDn4IQbA/zMEtqHlKMoATZpg6DmNB60fIWuzt TpEpFno2yp/7gL7BbgC2B5Rso0gHyzGUksxH4yQrrHxMjYbnyP4Dd0tTN5WJpdn6I5DQ g4kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=wWghTuus43nVw15FMJRBCFnrbIxLwP4uEgF5/atgdTQ=; b=kG4Nn8/xU2Ukf5uJbf96aUUGU3/prcnC3fHL7KElVgUZIp3JYS4t5RR7KHV8BM36Mx xS/ikV7i44H/kpxAqlLr8FsbsKcpDFtSxKZW06kGK5nXfnMVy/Om+/k+7PXo9O0g55sA J5dN77Eb5V9yCMO/8xWRWnlxcGumz3FekJfkLPi8jsMVwCHdDF2Ywa6n/w6nZS833KYB rYCM3HqOx7k6BUKmZ3e7NcfeDD202QEKd03FaWlGJveJHtvozIZRIzYxxLuHJYL7iClq mcjGe3f3zRAk1b1XxIwthaTZQWxf5OuVUdCkoPmL0wLhPyXdqBIw0dEHgxdOrIlpxngj xxxw==
X-Gm-Message-State: AMCzsaUx8ccKdaXcsqKpwPfvjV9aKvzfVVFRRwUMyUJg+kRD8huforGy peVQnQyD08XPFWRi9a3AOrAQWl3yLfrypZotXSMpiEGdzbE=
X-Google-Smtp-Source: AOwi7QALoOvZ88heFFU8foMXy4hRRfjVj25R49FJrMP+f7f/tAGBZTDl+MZBB6DbPfU5BbD7JHrzc2W1t2NLnNYmzGE=
X-Received: by 10.37.45.110 with SMTP id s46mr319301ybe.400.1507746809699; Wed, 11 Oct 2017 11:33:29 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 11 Oct 2017 11:32:49 -0700 (PDT)
In-Reply-To: <952c913b-5d47-e79b-aa1e-6d680e5b98b1@levkowetz.com>
References: <CABcZeBPhG4DgbJCgCJ4M8xXqkqe_iEH6Ooh+R-c+GO2xbvSGPw@mail.gmail.com> <064ad5b8-9ef4-e0f7-780e-0f45f266eb5e@levkowetz.com> <CABcZeBM15CZcrX0ZtKev3Yb-oogx7NS4E76tnLkC1EBTnqEAHw@mail.gmail.com> <952c913b-5d47-e79b-aa1e-6d680e5b98b1@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 11 Oct 2017 11:32:49 -0700
Message-ID: <CABcZeBPup6EB-DfmuoP9-obMd4gcck_sQbRvcUzJYFaOZfbuNQ@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="f4030435adec00f2a0055b49a99c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/JXWfTsU899k4AEazBGLq7cShHvw>
Subject: Re: [Tools-discuss] rfcdiff svn location
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 18:33:32 -0000

--f4030435adec00f2a0055b49a99c
Content-Type: text/plain; charset="UTF-8"

Thanks. Github clone for those who might find it useful at:
https://github.com/ekr/rfcdiff-svn


On Wed, Oct 11, 2017 at 11:00 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

> Hi Ekr,
>
> On 2017-10-11 19:51, Eric Rescorla wrote:
> > On Wed, Oct 11, 2017 at 10:49 AM, Henrik Levkowetz <henrik@levkowetz.com
> >
> > wrote:
> >
> >> Hi Eric
> >>
> >> On 2017-10-11 19:31, Eric Rescorla wrote:
> >> > Is there a public rfcdiff svn repo? I don't see it in the ietfdb
> repo....
> >>
> >> No, sorry.  I have a private svn repo which I could open up, if it's
> >> of interest.  The latest code for the command-line utility is here:
> >> https://tools.ietf.org/tools/rfcdiff/code
> >
> >
> > It would be great if you could open it up for read-only. Then it would be
> > easy for me
> > to do a git-svn clone and send you patches :)
>
> Right.  Here: https://svn.tools.ietf.org/svn/src/rfcdiff/
>
>         Henrik
>
> >> As you'll see, it's a bash wrapper around a mess of other tools.  It's
> >> really ripe for a rewrite to pure python (or something).  I'd like to
> >> do a rewrite once the RFC format tools work I'm committed to is done.
> >>
> >
> > Yeah, know how that is.
> >
> > -Ekr
> >
> >
> >>
> >> Best regards,
> >>
> >>         Henrik
> >>
> >>
> >
>
>

--f4030435adec00f2a0055b49a99c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks. Github clone for those who might find it useful at=
:<div><a href=3D"https://github.com/ekr/rfcdiff-svn">https://github.com/ekr=
/rfcdiff-svn</a><br><div><br></div></div></div><div class=3D"gmail_extra"><=
br><div class=3D"gmail_quote">On Wed, Oct 11, 2017 at 11:00 AM, Henrik Levk=
owetz <span dir=3D"ltr">&lt;<a href=3D"mailto:henrik@levkowetz.com" target=
=3D"_blank">henrik@levkowetz.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">Hi Ekr,<br>
<span class=3D""><br>
On 2017-10-11 19:51, Eric Rescorla wrote:<br>
&gt; On Wed, Oct 11, 2017 at 10:49 AM, Henrik Levkowetz &lt;<a href=3D"mail=
to:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt; Hi Eric<br>
&gt;&gt;<br>
&gt;&gt; On 2017-10-11 19:31, Eric Rescorla wrote:<br>
&gt;&gt; &gt; Is there a public rfcdiff svn repo? I don&#39;t see it in the=
 ietfdb repo....<br>
&gt;&gt;<br>
&gt;&gt; No, sorry.=C2=A0 I have a private svn repo which I could open up, =
if it&#39;s<br>
&gt;&gt; of interest.=C2=A0 The latest code for the command-line utility is=
 here:<br>
&gt;&gt; <a href=3D"https://tools.ietf.org/tools/rfcdiff/code" rel=3D"noref=
errer" target=3D"_blank">https://tools.ietf.org/tools/<wbr>rfcdiff/code</a>=
<br>
&gt;<br>
&gt;<br>
&gt; It would be great if you could open it up for read-only. Then it would=
 be<br>
&gt; easy for me<br>
&gt; to do a git-svn clone and send you patches :)<br>
<br>
</span>Right.=C2=A0 Here: <a href=3D"https://svn.tools.ietf.org/svn/src/rfc=
diff/" rel=3D"noreferrer" target=3D"_blank">https://svn.tools.ietf.org/<wbr=
>svn/src/rfcdiff/</a><br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
&gt;&gt; As you&#39;ll see, it&#39;s a bash wrapper around a mess of other =
tools.=C2=A0 It&#39;s<br>
&gt;&gt; really ripe for a rewrite to pure python (or something).=C2=A0 I&#=
39;d like to<br>
&gt;&gt; do a rewrite once the RFC format tools work I&#39;m committed to i=
s done.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Yeah, know how that is.<br>
&gt;<br>
&gt; -Ekr<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>

--f4030435adec00f2a0055b49a99c--


From nobody Wed Oct 11 15:24:06 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8EA1F134249 for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 15:24:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gR_BiDSIAMtu for <tools-discuss@ietfa.amsl.com>; Wed, 11 Oct 2017 15:24:03 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 14951133061 for <tools-discuss@ietf.org>; Wed, 11 Oct 2017 15:24:03 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:57353 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e2PQ2-0007Ra-2K; Wed, 11 Oct 2017 15:24:02 -0700
To: David Harrington <dbharrington@yahoo.com>, tools-discuss@ietf.org
References: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>
Date: Thu, 12 Oct 2017 00:23:53 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="1ualCQhjSooSdnHBFT4B5KVrjn9juvO4x"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, dbharrington@yahoo.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/XB00NWiiJk4XZxCxMHAsftYw1fg>
Subject: Re: [Tools-discuss] inaccurate data tracker document search
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 22:24:04 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--1ualCQhjSooSdnHBFT4B5KVrjn9juvO4x
Content-Type: multipart/mixed; boundary="7RMwjHmqlaMQtoeXoUsIFs1IRsVsSujKj";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: David Harrington <dbharrington@yahoo.com>, tools-discuss@ietf.org
Message-ID: <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>
Subject: Re: [Tools-discuss] inaccurate data tracker document search
References: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>
In-Reply-To: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>

--7RMwjHmqlaMQtoeXoUsIFs1IRsVsSujKj
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi David,

The document search by default shows active drafts with the search term i=
n
the draft name, and RFCs coming from drafts with the search term in the
draft name.

You'll get closer to the information I think you're looking for (but stil=
l
not a complete set, something I'll have a look at tomorrow) if you go to:=


  https://datatracker.ietf.org/person/David%20Harrington

which lists 14 RFCs.


Best regards,

	Henrik
 =20

On 2017-10-09 19:58, David Harrington wrote:
> Hi,
>=20
> I=E2=80=99ve mentioned this in the past, but this bug has never been ad=
dressed.
> If I do a document search from ietf.org <http://ietf.org/> =E2=80=9CInt=
ernet drafts and RFC Quick Search=E2=80=9D
> 	(which apparently goes to data tracker.ietf.org/doc/search) I get inac=
curate results.
>=20
> Search for =E2=80=9Charrington=E2=80=9D and two docs will show up - rfc=
4663 and rfc5249.
>=20
> If I go to the RFC Editor page and search RFCs for =E2=80=9Charrington=E2=
=80=9D, twenty-one documents will show up.
>=20
> I don=E2=80=99t know what database is being used for the quick search, =
but it is apparently incomplete, or the search engine used has problems.
>=20
> dbh
>=20
>=20
>=20
>=20


--7RMwjHmqlaMQtoeXoUsIFs1IRsVsSujKj--

--1ualCQhjSooSdnHBFT4B5KVrjn9juvO4x
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ3pn6AAoJEE6bV0uPuxcaX3YQAMgFlLeQ8YaelICaX3+cVOWK
ajr4fuhfi+ru5/IWEBYbd+XCk6mo1fd7Kk0wkRRYgwG8yat5J1Vv9StNsRhNVF8c
y7m0n6VwDX9GLa43CL8AtmsU+gge4GOVOOIUNNqDSGVK5/mayM04bWYjZCskJeb3
VlXfPRk5/ZgCKWa23EFg2HD13koVyS1WW8wT+mpzBXvxk7t7CcxLEDjTIHAeJuGo
hICskZyIgNM/Rmgcc2MpPIKL6VFKmL2DMqaS9gmjEtfzu2G/tQ09zwyPvC5pqpFj
I+OIA5aZOD0MUJmj7orEEwS/uVHcRP9qTDj3x7gyA4o3ewT0LzH1cN2T1KEH9AjB
RhR5khdZuaPwrChyhH9sHZD2cbqPMUe0n3YV1QbgCjBRm+NXiQ6KmOjbaxW1ZYEq
36FGNlK/nh0zQmk9F7NEOtocka+ZxLdovCQnFHwrek6yGN8Q5xq8VRvkQpwWtpiI
3a4H8eVdARLCAaqa3uAxgXQlSapa4/F6Q4t9mb4e3+LixJcsYcs4Cs6qrkmrtSoS
paQtN9CmjQNOo3Q8f6ss+Zs8P9vadGgrtn/QDP+PZhoNfL4GjKXXZP+KLN0Qs3I1
HPRNBhFVfgb3tVSEaJP5igxVzolQWuKB+AMEL79tjlutpkHpqgoLc8RSmysOOKH1
YWZqseDaPNUgzYJYcYdJ
=WYnO
-----END PGP SIGNATURE-----

--1ualCQhjSooSdnHBFT4B5KVrjn9juvO4x--


From nobody Thu Oct 12 06:22:25 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 55863134211 for <tools-discuss@ietfa.amsl.com>; Thu, 12 Oct 2017 06:22:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dVLM2SZOmhPU for <tools-discuss@ietfa.amsl.com>; Thu, 12 Oct 2017 06:22:22 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 13B20120720 for <tools-discuss@ietf.org>; Thu, 12 Oct 2017 06:22:22 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:53416 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e2dRN-0007eP-Cc; Thu, 12 Oct 2017 06:22:21 -0700
To: David Harrington <dbharrington@yahoo.com>, tools-discuss@ietf.org
References: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com> <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <c4d3cfc6-9837-e793-d764-749ae779c396@levkowetz.com>
Date: Thu, 12 Oct 2017 15:22:13 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="37e8dgUb2fCApsOAEqeJXGiAUanh0x23A"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, dbharrington@yahoo.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/xiRDtMwK8fGQ94YZNF_USOOLY0E>
Subject: Re: [Tools-discuss] inaccurate data tracker document search
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Oct 2017 13:22:23 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--37e8dgUb2fCApsOAEqeJXGiAUanh0x23A
Content-Type: multipart/mixed; boundary="2JmDhWRXUMbVq4Klg8U3hP1M3txrbxiQI";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: David Harrington <dbharrington@yahoo.com>, tools-discuss@ietf.org
Message-ID: <c4d3cfc6-9837-e793-d764-749ae779c396@levkowetz.com>
Subject: Re: [Tools-discuss] inaccurate data tracker document search
References: <D84A145D-ED23-41A3-904C-595229DD68A4@yahoo.com>
 <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>
In-Reply-To: <e091c79f-b804-c62f-59a2-85814f171516@levkowetz.com>

--2JmDhWRXUMbVq4Klg8U3hP1M3txrbxiQI
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi again Dave,

On 2017-10-12 00:23, Henrik Levkowetz wrote:

> You'll get closer to the information I think you're looking for (but st=
ill
> not a complete set, something I'll have a look at tomorrow) if you go t=
o:
>=20
>   https://datatracker.ietf.org/person/David%20Harrington

I've now checked further, and it turns out that there were 2 different
profiles for you in the datatracker; the one above, and this one:

  https://datatracker.ietf.org/person/Dave%20Harrington

I've asked the secretariat to merge those two.

There were also 2 RFCs which had no author records, which I've fixed up.

Altogether, this should give a complete listing of your RFCs.  There's
a mismatch of 1 with the search result on rfc-editor.org, though; this
is caused by RFC1888, which matches Harrington, but was authored by
Dan Harrington.


Best regards,

	Henrik



--2JmDhWRXUMbVq4Klg8U3hP1M3txrbxiQI--

--37e8dgUb2fCApsOAEqeJXGiAUanh0x23A
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ32yFAAoJEE6bV0uPuxcaLJkP/A9yJJ7v3hGdIlrRkFfyRFLZ
B7FZpJnN4nwwRuskXfiFqWky/kskxPGmHGYxqKIE8c52pUIQ/V2Ywc5LFomrlEVA
d1Ze9lQdFFMNwj5Bz3yIr9N6qqDZXEFj+Kqk5BqVvFrtNMpYnY5CeRxQar19hSll
LtSUhV0jyOoi3s6nmtc7xjOnl/6sPh1NlK3O/bq4WxrguttOz/5gqqo3k+Yird2m
nOkp8FzD2S4xKYjGbhzYf/PZwjp8jj/yEvrDabr62WdZlwE3W+SbCw1wMYgWy1gD
H0qn3sPASPq4pImiIowQgRW5TmtDk2zoapr2kZkMFNWpe8BokM2QUOvM7pSbTnZB
7fJIudLrDCwdsLIMawnC+/o0KQf1Xb9OcDIr/mP1oP9R+Doh16KDZQI15TOokQQ/
gWez74Q0hoyiUymdOd2dRuZiFjBPNt22RFhMOLPJSlpZTtrVdcGSqzzJBD06OBsA
EY5BnzZvytPOMCTEPueh1NoYrS5ke+vYU4mG6CrX5Fb6Raoy7EvXwr38Aflnwsp9
z5l6BxF7YpKjyVnzbuyPtXkeFz4kQdo8A2akvop/4g8sD8B8S205Vnv4rLhZuwA1
x44G4AfqK1SQOjD8poKBPw1pexf1Us8f2RZEl8yyoibZVXJ4ZqtLXFCEkR0noFSR
P0+iiMXm21ubfQb+TnOA
=RMKC
-----END PGP SIGNATURE-----

--37e8dgUb2fCApsOAEqeJXGiAUanh0x23A--


From nobody Sun Oct 15 11:52:38 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 185A31331DD for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 11:52:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G4BZ2RnTgNYc for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 11:52:36 -0700 (PDT)
Received: from mail-qt0-x22f.google.com (mail-qt0-x22f.google.com [IPv6:2607:f8b0:400d:c0d::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D793813243A for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 11:52:35 -0700 (PDT)
Received: by mail-qt0-x22f.google.com with SMTP id 1so27880464qtn.3 for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 11:52:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=sObGNVc26P7H83ZeJmC1iAX4Y2HJR8Aqy96+9C1gOHs=; b=v2oiPxgZdObzfoqS+BMVh8nen/5pEg6Skp8c1RSnO5NfEHgqXwAZcLmkZIoSAKFdJr wuLSeBjP7tBG+SuWLJ7oApNZrokkz9tfzRWBaX43MUESKte6o85RnFLWibW8Um4PoyIH PupZt3lExzAU8Ur4O/wS/8QhghO+EJvI4MB4KgItEkIJmsAthSfN74gCdDo3dAFpINqt DGdqQYEzzDgpqy9C5n/7eH68kT/NoxdfYgKEsoNUeWTIv/wFA612bwjqnQIBeOWgJFgW 0N+xIEppw1BIZYVBb+FCplEmsupRG78PRnp2iCVyOAtlMLISe6WWQmSotrr8RFPErn/7 BCXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=sObGNVc26P7H83ZeJmC1iAX4Y2HJR8Aqy96+9C1gOHs=; b=rC3kvjDAFIbtgqMB0Hu7mWO8DTVRy5JMp+d8OyCXk+e7EV22BobFQRI1OKnWP41Ix8 Op2IWegYXkKWYWaqqeWa3yCTWZ+IkvM0IT2jfxt1HwHjVdXVV2eG9NHZNmmAwhk1Qivi OalNUNqBoq2uNekAVLMHRiHbpIC4Aa91oVPB1OSieyRE2U+Td+J/oXECCMiGlAa27U80 nimuUiTsIaAfc12SOw59WbvcJvGee7gM5F+OCb4DDrCdeTTjzlkprEaSm332YT51IJnG ZjQzc+j32lBoHqmIU7LU1IHXQoPa/YKykowJiQ41C9ajqLHaF4m00475QHx7ILpRgCT5 KKDQ==
X-Gm-Message-State: AMCzsaVLEpcCyVa92O8IJPv7Yy6q0o3U698WOituught97Mk00ktD1+c SXrk86//K9rbIxjs0uj7c8t8jOgfF16vsnsHjp6JeIxI
X-Google-Smtp-Source: AOwi7QB52Qw61SMgJp4ck46nHtWeJ3N7NEFPwLSN60LrecVfhWttKL2G1bXGagjDFdSufiDCIUteVQL6lJ0Ft6uSVdU=
X-Received: by 10.129.36.1 with SMTP id k1mr4848781ywk.485.1508093554727; Sun, 15 Oct 2017 11:52:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Sun, 15 Oct 2017 11:51:54 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 15 Oct 2017 11:51:54 -0700
Message-ID: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com>
To: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a1142e4cc9e32a1055b9a648b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/TGt4tSQPavzO-dlviHK0ipMrlXk>
Subject: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 18:52:37 -0000

--001a1142e4cc9e32a1055b9a648b
Content-Type: text/plain; charset="UTF-8"

Does someone maintain a list of all the IDs in some sort of machine
readable format (JSON, XML, etc.)

-Ekr

--001a1142e4cc9e32a1055b9a648b
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">Does someone maintain a list of all the IDs in some sort of machine readable format (JSON, XML, etc.)<div><br></div><div>-Ekr</div><div><br></div></div>

--001a1142e4cc9e32a1055b9a648b--


From nobody Sun Oct 15 12:27:26 2017
Return-Path: <paul.hoffman@vpnc.org>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 957B61331DD for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 12:27:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MAuchyv-OjHH for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 12:27:24 -0700 (PDT)
Received: from mail.proper.com (Opus1.Proper.COM [207.182.41.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9253A133078 for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 12:27:24 -0700 (PDT)
Received: from [169.254.146.21] (50-1-51-141.dsl.dynamic.fusionbroadband.com [50.1.51.141]) (authenticated bits=0) by mail.proper.com (8.15.2/8.14.9) with ESMTPSA id v9FJQ3a5002937 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 15 Oct 2017 12:26:05 -0700 (MST) (envelope-from paul.hoffman@vpnc.org)
X-Authentication-Warning: mail.proper.com: Host 50-1-51-141.dsl.dynamic.fusionbroadband.com [50.1.51.141] claimed to be [169.254.146.21]
From: "Paul Hoffman" <paul.hoffman@vpnc.org>
To: "Eric Rescorla" <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Date: Sun, 15 Oct 2017 12:27:20 -0700
Message-ID: <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org>
In-Reply-To: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
X-Mailer: MailMate (1.9.7r5425)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/wyzfcvfIjjL0gCthg_33kZY4ph4>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 19:27:25 -0000

On 15 Oct 2017, at 11:51, Eric Rescorla wrote:

> Does someone maintain a list of all the IDs in some sort of machine
> readable format (JSON, XML, etc.)

In the Internet Drafts directory that is rsyncable, there is 
ietf-id-status.json.


From nobody Sun Oct 15 12:40:03 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E8131331E3 for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 12:40:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Li_ScBmjOfV5 for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 12:40:00 -0700 (PDT)
Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABCA31331DD for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 12:40:00 -0700 (PDT)
Received: by mail-qt0-x233.google.com with SMTP id n61so27930885qte.10 for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 12:40:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=u9ISwWdqBqJCJ7BWOP/XqaW97aZkbLF+aDTcj5aCcwI=; b=0KPkVIvvi4ueySimnNmNLG93DDGeJO26ECpumEUKVGb+VnhpeK9OD7NPEXN0BdNvgB yh+5e7HOgdHIu/Nqwukj39B+qj8Cvok/ErOCXyg3prD7/fhudgWqZf5kcggYVl4qCZKC inX1I4yH4uOcv13Gge7nQBcUzDY+x5vymIHWsthGUTf9BOfkJ2WucD8FNl5YVo/K0uU+ MiAyy3nGbGI7gKcba0E/Q7Aa8bBpzu0kGk2AMicRn0aYdc5+Y7hpxcZkR8Viw6V3j/nF dv16IyPVIpTGbKupN7znEf3ASAz2I+23y513nJasd44RxtW8HIWqkYcU6Ewz/iuXXjn+ thPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=u9ISwWdqBqJCJ7BWOP/XqaW97aZkbLF+aDTcj5aCcwI=; b=MzA+EfH6cSFulQjGkIS31J8UQKu1vi0L5FuRnSN3tL0KFYS/hENinAR9WBwgCwnjEz 6sqF+jgMR7H0zjIvYszbqu8vjpPm6H2JCtzxfx1X2BZtXXnWCngsxeMYgzjravNCxYBR U/d2fzRFADRQU4qniZXdXKejiYdv9zs5XS5Svt8TV3LDysFWxnP7zDQAyO0+KWZIi2eA ZjNw/lwds9YuRK0buD4U9QEFVmBfmoXgRsbcNYBYudZ3vWENBVD1lmFHjs0ot4bvtN6U QJQ7C+YStlLpD/gUTraBgBhv2jABa8YOg52CD98Tc4axwdLDp/BLKCx6hs986VlXMdtF kI3A==
X-Gm-Message-State: AMCzsaUFaGIsp03GkRUJKa5y8x1PoFOTXki10Sz1wV4crPuZLDH8Fqwg hxQfp2UhpYpSNC3TRXR5Mp90KZBIA2o22Hgk06q9Zt0kris=
X-Google-Smtp-Source: ABhQp+Q80y7dcw4dUfBcaLnUvb0bOETB3Fq0qCow6EhqvcM3UCOLHf8tPPlohGzzzCQOLDzlBBd/G1SQ5drWfxdG8Uw=
X-Received: by 10.37.212.12 with SMTP id m12mr1697734ybf.348.1508096399765; Sun, 15 Oct 2017 12:39:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Sun, 15 Oct 2017 12:39:19 -0700 (PDT)
In-Reply-To: <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 15 Oct 2017 12:39:19 -0700
Message-ID: <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com>
To: Paul Hoffman <paul.hoffman@vpnc.org>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c07cd7c320a51055b9b0e34"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/e5UX9XG8f3MLuCzzm2q86bw0LQA>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 19:40:02 -0000

--94eb2c07cd7c320a51055b9b0e34
Content-Type: text/plain; charset="UTF-8"

Hmm.... for some reason it doesn't show up in my rsync. I'm doing:

rsync -avz rsync.ietf.org::internet-drafts <directory>

Are you doing something else?

-Ekr





On Sun, Oct 15, 2017 at 12:27 PM, Paul Hoffman <paul.hoffman@vpnc.org>
wrote:

> On 15 Oct 2017, at 11:51, Eric Rescorla wrote:
>
> Does someone maintain a list of all the IDs in some sort of machine
>> readable format (JSON, XML, etc.)
>>
>
> In the Internet Drafts directory that is rsyncable, there is
> ietf-id-status.json.
>
>

--94eb2c07cd7c320a51055b9b0e34
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hmm.... for some reason it doesn&#39;t show up in my rsync=
. I&#39;m doing:<div><br></div><div>rsync -avz rsync.ietf.org::internet-dra=
fts &lt;directory&gt;<br></div><div><br></div><div>Are you doing something =
else?</div><div><br></div><div>-Ekr</div><div><br></div><div><br></div><div=
><br></div><div><br></div></div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On Sun, Oct 15, 2017 at 12:27 PM, Paul Hoffman <span dir=
=3D"ltr">&lt;<a href=3D"mailto:paul.hoffman@vpnc.org" target=3D"_blank">pau=
l.hoffman@vpnc.org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<span class=3D"">On 15 Oct 2017, at 11:51, Eric Rescorla wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Does someone maintain a list of all the IDs in some sort of machine<br>
readable format (JSON, XML, etc.)<br>
</blockquote>
<br></span>
In the Internet Drafts directory that is rsyncable, there is ietf-id-status=
.json.<br>
<br>
</blockquote></div><br></div>

--94eb2c07cd7c320a51055b9b0e34--


From nobody Sun Oct 15 13:14:33 2017
Return-Path: <cabo@tzi.org>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 09C88126B6D for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:14:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sksj8IQ-_cos for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:14:31 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC491126B7E for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:14:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id v9FKERhe027255; Sun, 15 Oct 2017 22:14:27 +0200 (CEST)
Received: from [192.168.217.119] (p5DC7FC78.dip0.t-ipconnect.de [93.199.252.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3yFXjb1KTtzDMQC; Sun, 15 Oct 2017 22:14:27 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com>
Date: Sun, 15 Oct 2017 22:14:26 +0200
Cc: Paul Hoffman <paul.hoffman@vpnc.org>, tools-discuss <tools-discuss@ietf.org>
X-Mao-Original-Outgoing-Id: 529791266.476866-724dd05fad60ad0ca182b744908b5a98
Content-Transfer-Encoding: quoted-printable
Message-Id: <7B1E6072-16C5-4C1E-9462-EAFECDFBCD5F@tzi.org>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org> <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com>
To: Eric Rescorla <ekr@rtfm.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/JhnvLc136YsESEQXznDXhJsTiFQ>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 20:14:33 -0000

> On Oct 15, 2017, at 21:39, Eric Rescorla <ekr@rtfm.com> wrote:
>=20
> Hmm.... for some reason it doesn't show up in my rsync. I'm doing:
>=20
> rsync -avz rsync.ietf.org::internet-drafts <directory>
>=20
> Are you doing something else?

Neither does it in my copy.

The closest I=E2=80=99m aware of is all_id2.txt (also in the rsync), =
which is TSV (documentation at the start of the file).
This lists only the newest in a sequence of -nn versions, but it does =
lists replaced drafts etc.

Of course, all that information is in the datatracker; not sure whether =
there is an API for that.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Sun Oct 15 13:30:32 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 587A813304B for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:30:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id keO-zf_WfFYE for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:30:29 -0700 (PDT)
Received: from mail-qt0-x230.google.com (mail-qt0-x230.google.com [IPv6:2607:f8b0:400d:c0d::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D2E6D126B6D for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:30:28 -0700 (PDT)
Received: by mail-qt0-x230.google.com with SMTP id z28so25603149qtz.13 for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:30:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=c5/H44rHYqTtltDGUryjh2bAGsU9Q+nj4VYzucmFHyk=; b=orNiGb5/xZhFvqcRG92aNLvJlu0l+ZuCmtTd/mopjYyPvx8uLCaJ45URQO5NwmHq+b 7glb6w20qT08bPbPD2ZXanhYx1XLuvHpLf2sUq4cAe/wNkgY11sHUHWLllib3neMZjFK FEj0cTYHEZIdfACwfGxJsGThFmirUzcGa6CEbzZa5xA1pmfPdHkdJQLkmOvk3qnmwLOA WgfnqwEhn6YJGv5dshmOXR6oG61T+2/J4H/6uny2zpHt2jsCDOFSWMOIPTmf7oH5Vmre r7nkNdkdWH9NX2lAoyPlkDKbrVZ+WjA2Yyeg5debmRnu3p5tMKP6GOPSrttvT5yHm3lX RX6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=c5/H44rHYqTtltDGUryjh2bAGsU9Q+nj4VYzucmFHyk=; b=IYXSCykkaOS1qYpa3Zmo2KolaWxtwxMBoogzM360LE6+1czldAqQP/5pqrwdOMWgJB 4lyIW60enzkgl8UjgF2Hltub49EQc6BIT4Rs51HomJAhuLUPYQ6FldQtMrXryLmzT6hw tOIrD75R8m3ifoDWb9xMaeUj+s2rgt4ylRLyb7nUpJ9EXdci/hJS7ugASyOOmXb8iQ8w K1yqYm5J4swjVF8ROhT7dYBKmwZaDD7GVwOfhOrNrJZYKeMz6psgMaR7MvW+9dS8L2LB QmimHRakvFp+Vw1sSAyhKNiAeY4qHx62BmSaaf7NeJRAy+1DjJ0ENCCOAwI4lBpwdnS8 aUrQ==
X-Gm-Message-State: AMCzsaUrqI2n0WOsMDpVX58LHqcMSkOsTmPl2eK6IsZ1Self+alKdByf YQa8xnfKjnauLbiBMM3n/a0WmrHX0MvWI7F9RqwtIw==
X-Google-Smtp-Source: AOwi7QBRzpDpfiOtaaDauo8ZcqdGJ1gVu+VqE38LBqK517KsbUn2LVHr0l2XURQCHJpmI+N2epIJkg/Wr2uXyHbH5d0=
X-Received: by 10.129.86.212 with SMTP id k203mr4864442ywb.155.1508099427823;  Sun, 15 Oct 2017 13:30:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Sun, 15 Oct 2017 13:29:46 -0700 (PDT)
In-Reply-To: <7B1E6072-16C5-4C1E-9462-EAFECDFBCD5F@tzi.org>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org> <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com> <7B1E6072-16C5-4C1E-9462-EAFECDFBCD5F@tzi.org>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 15 Oct 2017 13:29:46 -0700
Message-ID: <CABcZeBNHoSExkWE_rzD48TyUG5F7e+YBw-kLCgpM=BWC2N_rkQ@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Paul Hoffman <paul.hoffman@vpnc.org>, tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a11431f92aeae59055b9bc228"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/rQPemxcwaQZbCxNq_ACVlqNdOlE>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 20:30:30 -0000

--001a11431f92aeae59055b9bc228
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Oct 15, 2017 at 1:14 PM, Carsten Bormann <cabo@tzi.org> wrote:

>
> > On Oct 15, 2017, at 21:39, Eric Rescorla <ekr@rtfm.com> wrote:
> >
> > Hmm.... for some reason it doesn't show up in my rsync. I'm doing:
> >
> > rsync -avz rsync.ietf.org::internet-drafts <directory>
> >
> > Are you doing something else?
>
> Neither does it in my copy.
>
> The closest I=E2=80=99m aware of is all_id2.txt (also in the rsync), whic=
h is TSV
> (documentation at the start of the file).
> This lists only the newest in a sequence of -nn versions, but it does
> lists replaced drafts etc.
>

Thanks. I can make that work (though it's not 100% awesome).

-Ekr


>
> Of course, all that information is in the datatracker; not sure whether
> there is an API for that.
>
> Gr=C3=BC=C3=9Fe, Carsten
>
>

--001a11431f92aeae59055b9bc228
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Oct 15, 2017 at 1:14 PM, Carsten Bormann <span dir=3D"ltr">&lt;=
<a href=3D"mailto:cabo@tzi.org" target=3D"_blank">cabo@tzi.org</a>&gt;</spa=
n> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><span class=3D""><br>
&gt; On Oct 15, 2017, at 21:39, Eric Rescorla &lt;<a href=3D"mailto:ekr@rtf=
m.com">ekr@rtfm.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Hmm.... for some reason it doesn&#39;t show up in my rsync. I&#39;m do=
ing:<br>
&gt;<br>
&gt; rsync -avz rsync.ietf.org::internet-<wbr>drafts &lt;directory&gt;<br>
&gt;<br>
&gt; Are you doing something else?<br>
<br>
</span>Neither does it in my copy.<br>
<br>
The closest I=E2=80=99m aware of is all_id2.txt (also in the rsync), which =
is TSV (documentation at the start of the file).<br>
This lists only the newest in a sequence of -nn versions, but it does lists=
 replaced drafts etc.<br></blockquote><div><br></div><div>Thanks. I can mak=
e that work (though it&#39;s not 100% awesome).</div><div><br></div><div>-E=
kr</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Of course, all that information is in the datatracker; not sure whether the=
re is an API for that.<br>
<br>
Gr=C3=BC=C3=9Fe, Carsten<br>
<br>
</blockquote></div><br></div></div>

--001a11431f92aeae59055b9bc228--


From nobody Sun Oct 15 13:41:51 2017
Return-Path: <paul.hoffman@vpnc.org>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6EE35132F3E for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:41:50 -0700 (PDT)
X-Quarantine-ID: <adXfTlgiIsj2>
X-Virus-Scanned: amavisd-new at amsl.com
X-Amavis-Alert: BANNED, message contains text/plain,.exe
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id adXfTlgiIsj2 for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:41:49 -0700 (PDT)
Received: from mail.proper.com (Opus1.Proper.COM [207.182.41.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 22D5A1331DC for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:41:49 -0700 (PDT)
Received: from [10.32.60.53] (50-1-51-141.dsl.dynamic.fusionbroadband.com [50.1.51.141]) (authenticated bits=0) by mail.proper.com (8.15.2/8.14.9) with ESMTPSA id v9FKeTud006015 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 15 Oct 2017 13:40:30 -0700 (MST) (envelope-from paul.hoffman@vpnc.org)
X-Authentication-Warning: mail.proper.com: Host 50-1-51-141.dsl.dynamic.fusionbroadband.com [50.1.51.141] claimed to be [10.32.60.53]
From: "Paul Hoffman" <paul.hoffman@vpnc.org>
To: "Eric Rescorla" <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Date: Sun, 15 Oct 2017 13:41:46 -0700
Message-ID: <CD383621-4CBE-46B9-B879-AB0D83F3A447@vpnc.org>
In-Reply-To: <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org> <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Mailer: MailMate (1.9.7r5425)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/NzHmgFYMicuGTxSJ32MVWXu_vKw>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 20:41:50 -0000

> Hmm.... for some reason it doesn't show up in my rsync.

Arrrgh, sorry, that was totally my fault. I create that file with the 
ietf-cli command.

On 15 Oct 2017, at 13:14, Carsten Bormann wrote:

> The closest I’m aware of is all_id2.txt (also in the rsync), which 
> is TSV (documentation at the start of the file).
> This lists only the newest in a sequence of -nn versions, but it does 
> lists replaced drafts etc.

In case it helps, here is some Python code for reading all_id2.txt and 
getting the fields out of it:

	try:
		AllIDStatusLines = open("all_id2.txt", mode="r").readlines()
	except:
		exit("Weird: could not read all_id2.txt to make the I-D status 
database. Exiting.")
	IDStatus = {}
	for ThisLine in AllIDStatusLines:
		if ThisLine[0] == "#": continue
		TheFields = ThisLine.split("\t")
		# The key is the draft name minus the "-nn"
		IDStatus[TheFields[0][0:-3]] = { \
			"status": TheFields[2], \
			"iesg-state": TheFields[3], \
			"became-rfc": TheFields[4], \
			"replaced-by": TheFields[5], \
			"last-revised": TheFields[6], \
			"wg-name": TheFields[7], \
			"area-name": TheFields[8], \
			"ad-name": TheFields[9], \
			"intended-level": TheFields[10], \
			"last-call-ends": TheFields[11], \
			"file-types": TheFields[12], \
			"title": TheFields[13], \
			"authors": TheFields[14].rstrip() }
	try:
		with open("ietf-id-status.json", mode="wb") as statusf:
			jsondump(IDStatus, statusf)
	except:
		exit("Could not dump status info to ietf-id-status.json. Exiting.")	

--Paul Hoffman


From nobody Sun Oct 15 13:46:36 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D8E7A1331F2 for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:46:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XyO_MYxwKOM5 for <tools-discuss@ietfa.amsl.com>; Sun, 15 Oct 2017 13:46:33 -0700 (PDT)
Received: from mail-qt0-x22e.google.com (mail-qt0-x22e.google.com [IPv6:2607:f8b0:400d:c0d::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3795013247A for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:46:33 -0700 (PDT)
Received: by mail-qt0-x22e.google.com with SMTP id j58so17019805qtj.0 for <tools-discuss@ietf.org>; Sun, 15 Oct 2017 13:46:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=RpMa/xuVHXMv7hg1pwlrKOV/HJ+NSlrzWX66gCrA8ek=; b=HDql0KcxYErZb6cyFeHJvnO7HgMacLMDX4wcYS4PhWljiH9gLGjs/05Bl1vG+srUT3 NoalUBCibp2uPm348VwS1cUETTw87SM5DIVCNNpcI1nSwergIzwndZA6z8mU0yQ0dnOV CtUpQln7b5nYgIPYqgzZ7Sh955hb7gplpbhH5uUpDLdcb71tUUCm5HebYpKxRvVIT7sT DLPqiveB99b1zsiAOTJCE1WaTEsOGGUV4zCOLXiwXw+3XIZgt6N54Dvnvmw8HJEBzRPy 1Ln6mJ18ph9SWzsTlZWzxy0p3IqT+RmGcYRU78+TLDX0gom65Q2gLeIe1wDDSzlAwNSL eN1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=RpMa/xuVHXMv7hg1pwlrKOV/HJ+NSlrzWX66gCrA8ek=; b=TtI7/cIQPO+JHQC4Tp1kAuP1wY7T6EP9d20cWi+RRlG1I2RwcWVHAg2UPypm1U3wBr a9GKNDVQrRSzTVK3me3GSWvq60YL0gw4HSMoSFVnt+RBH88/xf6fU+ijjpuLjW6KSNYM QasTLiZCHHZow/BwsB5IjvCxWCoY7eEDsPdYDSBJvTTH/TZW6MtjvES7WuCQG5wBCJvH uV2PBEnlFdX3ofZFtCdDnlkAbPTWRsTbtuoUDMO/XbPxaG0t8qiRNZvyw7QLi8pWl/0K i84BTYBGc7YvaAqeMdbdXrB0nZ1NVj4qS7uvVjR94LLYss/L2soEK70MYpl4InOQziLV OiEw==
X-Gm-Message-State: AMCzsaUiF52etoHSKflXq+o70ZTJdhyHB1L74WvtrGksYwermEKdtxb+ lGGgNR+7wWx74/Z+c60hWesdCgLja4VXWp9BGQw/Nw==
X-Google-Smtp-Source: AOwi7QB/GjajJ94a46sEWFiDEH0SeYjN3HcvKg1HgJghIRiMTS8YYA23JkEbSdjwq9s3tZHg+qm97UunXS36ev6bnXg=
X-Received: by 10.13.192.196 with SMTP id b187mr4950789ywd.416.1508100392220;  Sun, 15 Oct 2017 13:46:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Sun, 15 Oct 2017 13:45:51 -0700 (PDT)
In-Reply-To: <CD383621-4CBE-46B9-B879-AB0D83F3A447@vpnc.org>
References: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> <DFFDF90E-4674-4C8C-BC4F-9578A40C4F32@vpnc.org> <CABcZeBMU2fgtr4ZbywgCSiiauEa8DFOZAJVP9n7iEpZxeqX0_g@mail.gmail.com> <CD383621-4CBE-46B9-B879-AB0D83F3A447@vpnc.org>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 15 Oct 2017 13:45:51 -0700
Message-ID: <CABcZeBM9=AtCGWw-eWjPbyQ2i6pHdJqvKoEQJRfJD_cHy2JnSg@mail.gmail.com>
To: Paul Hoffman <paul.hoffman@vpnc.org>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a114edd482a4a88055b9bfc77"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/tixp8TuocmiHZLaGneyXov1wvWc>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Oct 2017 20:46:35 -0000

--001a114edd482a4a88055b9bfc77
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Thanks.

-Ekr

On Sun, Oct 15, 2017 at 1:41 PM, Paul Hoffman <paul.hoffman@vpnc.org> wrote=
:

> Hmm.... for some reason it doesn't show up in my rsync.
>>
>
> Arrrgh, sorry, that was totally my fault. I create that file with the
> ietf-cli command.
>
> On 15 Oct 2017, at 13:14, Carsten Bormann wrote:
>
> The closest I=E2=80=99m aware of is all_id2.txt (also in the rsync), whic=
h is TSV
>> (documentation at the start of the file).
>> This lists only the newest in a sequence of -nn versions, but it does
>> lists replaced drafts etc.
>>
>
> In case it helps, here is some Python code for reading all_id2.txt and
> getting the fields out of it:
>
>         try:
>                 AllIDStatusLines =3D open("all_id2.txt",
> mode=3D"r").readlines()
>         except:
>                 exit("Weird: could not read all_id2.txt to make the I-D
> status database. Exiting.")
>         IDStatus =3D {}
>         for ThisLine in AllIDStatusLines:
>                 if ThisLine[0] =3D=3D "#": continue
>                 TheFields =3D ThisLine.split("\t")
>                 # The key is the draft name minus the "-nn"
>                 IDStatus[TheFields[0][0:-3]] =3D { \
>                         "status": TheFields[2], \
>                         "iesg-state": TheFields[3], \
>                         "became-rfc": TheFields[4], \
>                         "replaced-by": TheFields[5], \
>                         "last-revised": TheFields[6], \
>                         "wg-name": TheFields[7], \
>                         "area-name": TheFields[8], \
>                         "ad-name": TheFields[9], \
>                         "intended-level": TheFields[10], \
>                         "last-call-ends": TheFields[11], \
>                         "file-types": TheFields[12], \
>                         "title": TheFields[13], \
>                         "authors": TheFields[14].rstrip() }
>         try:
>                 with open("ietf-id-status.json", mode=3D"wb") as statusf:
>                         jsondump(IDStatus, statusf)
>         except:
>                 exit("Could not dump status info to ietf-id-status.json.
> Exiting.")
>
> --Paul Hoffman
>

--001a114edd482a4a88055b9bfc77
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra">Thanks.</div><div class=3D"gmai=
l_extra"><br></div><div class=3D"gmail_extra">-Ekr</div><div class=3D"gmail=
_extra"><br><div class=3D"gmail_quote">On Sun, Oct 15, 2017 at 1:41 PM, Pau=
l Hoffman <span dir=3D"ltr">&lt;<a href=3D"mailto:paul.hoffman@vpnc.org" ta=
rget=3D"_blank">paul.hoffman@vpnc.org</a>&gt;</span> wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex"><span class=3D""><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hmm.... for some reason it doesn&#39;t show up in my rsync.<br>
</blockquote>
<br></span>
Arrrgh, sorry, that was totally my fault. I create that file with the ietf-=
cli command.<span class=3D""><br>
<br>
On 15 Oct 2017, at 13:14, Carsten Bormann wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
The closest I=E2=80=99m aware of is all_id2.txt (also in the rsync), which =
is TSV (documentation at the start of the file).<br>
This lists only the newest in a sequence of -nn versions, but it does lists=
 replaced drafts etc.<br>
</blockquote>
<br></span>
In case it helps, here is some Python code for reading all_id2.txt and gett=
ing the fields out of it:<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 try:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 AllIDStatusLines =
=3D open(&quot;all_id2.txt&quot;, mode=3D&quot;r&quot;).readlines()<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 except:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exit(&quot;Weird: c=
ould not read all_id2.txt to make the I-D status database. Exiting.&quot;)<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 IDStatus =3D {}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 for ThisLine in AllIDStatusLines:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if ThisLine[0] =3D=
=3D &quot;#&quot;: continue<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TheFields =3D ThisL=
ine.split(&quot;\t&quot;)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # The key is the dr=
aft name minus the &quot;-nn&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 IDStatus[TheFields[=
0][0:-3]] =3D { \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;status&quot;: TheFields[2], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;iesg-state&quot;: TheFields[3], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;became-rfc&quot;: TheFields[4], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;replaced-by&quot;: TheFields[5], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;last-revised&quot;: TheFields[6], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;wg-name&quot;: TheFields[7], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;area-name&quot;: TheFields[8], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;ad-name&quot;: TheFields[9], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;intended-level&quot;: TheFields[10], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;last-call-ends&quot;: TheFields[11], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;file-types&quot;: TheFields[12], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;title&quot;: TheFields[13], \<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 &quot;authors&quot;: TheFields[14].rstrip() }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 try:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 with open(&quot;iet=
f-id-status.json&quot;, mode=3D&quot;wb&quot;) as statusf:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 jsondump(IDStatus, statusf)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 except:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exit(&quot;Could no=
t dump status info to ietf-id-status.json. Exiting.&quot;)=C2=A0 =C2=A0 =C2=
=A0<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
--Paul Hoffman<br>
</font></span></blockquote></div><br></div></div>

--001a114edd482a4a88055b9bfc77--


From nobody Mon Oct 16 17:37:41 2017
Return-Path: <worley@alum.mit.edu>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D01DA13202D for <tools-discuss@ietfa.amsl.com>; Mon, 16 Oct 2017 17:37:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.034
X-Spam-Level: 
X-Spam-Status: No, score=-0.034 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VFxu2c1vv7BJ for <tools-discuss@ietfa.amsl.com>; Mon, 16 Oct 2017 17:37:39 -0700 (PDT)
Received: from resqmta-ch2-12v.sys.comcast.net (resqmta-ch2-12v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D3982126DD9 for <tools-discuss@ietf.org>; Mon, 16 Oct 2017 17:37:38 -0700 (PDT)
Received: from resomta-ch2-16v.sys.comcast.net ([69.252.207.112]) by resqmta-ch2-12v.sys.comcast.net with ESMTP id 4FrceZVnik1et4Ft3eeMTO; Tue, 17 Oct 2017 00:37:37 +0000
Received: from hobgoblin.ariadne.com ([24.60.114.4]) by resomta-ch2-16v.sys.comcast.net with SMTP id 4Ft1eB1oukJdH4Ft2eC93t; Tue, 17 Oct 2017 00:37:37 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id v9H0bYwt009353; Mon, 16 Oct 2017 20:37:35 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id v9H0bYG8009350; Mon, 16 Oct 2017 20:37:34 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com (Dale R. Worley)
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss@ietf.org
In-Reply-To: <CABcZeBPNBFCeBd6sqs6k+3st2q1OxL7Ca6kecireONoJdVB2Ag@mail.gmail.com> (ekr@rtfm.com)
Sender: worley@ariadne.com (Dale R. Worley)
Date: Mon, 16 Oct 2017 20:37:33 -0400
Message-ID: <87fuaipq2a.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfLadXwEilXbf+SARVDTqIAkh49lpCHY2hd+PGz8sbDuh6cHXJsYQ67Qgyu408YH53lajLFXByGy3FIorEz1W/wavgxeJekuBOmLx0hz7l4UriEIsx1e0 an2NjamLRRoA8cq2Y1J1kbM6rZfmFscJv0WNDA0oJuX02lAv15n0vhfVHLnkGIxilSEDIbKE2Bw3HRYsjLec9qbOm6ppzKgEZG0=
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/KRX-BHSEwCY3JH8HnWugAkrExVA>
Subject: Re: [Tools-discuss] List of all drafts in machine readable format
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 00:37:40 -0000

Eric Rescorla <ekr@rtfm.com> writes:
> Does someone maintain a list of all the IDs in some sort of machine
> readable format (JSON, XML, etc.)

I suppose it depends on what you mean by "machine readable".  I rsync
down the directory

    rsync -rltz \
        ftp.ietf.org::id-archive \
        ./ftp.ietf.org/id-archive

and then it's machine-readable...

Dale


From nobody Tue Oct 17 06:53:43 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03D79132FB1 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 06:53:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.7
X-Spam-Level: 
X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jO0_Yy21x3RF for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 06:53:41 -0700 (PDT)
Received: from mail-oi0-x22a.google.com (mail-oi0-x22a.google.com [IPv6:2607:f8b0:4003:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0F511326ED for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 06:53:40 -0700 (PDT)
Received: by mail-oi0-x22a.google.com with SMTP id n82so3038629oig.3 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 06:53:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=27qDxPq0G0a3gjzM64ITPnE5CReXeu0f6F6UeTDiRyo=; b=XiAYBjwVX362G0eE5nzkTaQVtUSMKGTOL84fdhIveXLOIS76r4Tkf0VNPl+SKjT7jz zwMOwDsyuZ4ZUE4c6T2RZiJoeV2S2nABBlvQhAYxxkVahRxcWYaaCvVra6zTLdQ2P8Ct kKAISh/m8HhePXr9UI3r9GhzDgyzutovRmOQf0djzk0JyTw3UzT0Op48wP+jg5YsedIz UoGxwdzPya8388Ca0kWNdWnN/iYyfuGcIKcrp/w74MmxL0o713TO6lwebbwMgdj6KUrg kUn8MrROwt75BswZiIyqjh2ItbO77Qh7OJaJllosMYweWAf0aHQ7gIPNjHmMG0TM4V6l UbtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=27qDxPq0G0a3gjzM64ITPnE5CReXeu0f6F6UeTDiRyo=; b=ohxce1hyRyaRTVzxSJIhn8JeKHm57edIcb9sKuhFGiNkh7q8N+lCx61HHr3KvpEVRU UjX9ZQCvxuUhWeLpcbg41PByQrSHmRJC5MYb7NnbMwiscMW0i1W3p/eVRDXlZ21/yESL Tqn34GcyGxWiflIOPt7rsqvj4HwimsqN8yY3g+2Hi/1d0Iybah91x+4/BJgttQ4lViOC c9I6PIVVXF/2idgqLrNyXEZRpJ6HJqs3YmYsQ59ZM4MrEW+p9+lKbU8BO86MFpgrgz9e 77EzJpEhlTGO+IXjQurknc6KFWI+bwUzsd2zFl6cjw9yzAaueT4SVVmI51K3I86BmRZ6 uozA==
X-Gm-Message-State: AMCzsaWWJHT951jlFqDTrWNkMOzpt/YQMd21wWsTcno1GYFot41wk3RU BPHZEjOLoiJWh0FU4gnVp/9HIDf2qDA+7Spse+4j7q53
X-Google-Smtp-Source: ABhQp+RApipIyzb7ivGK/vQt84QffBaj8fE5Nhuq/Ii7FKsqaWBgWHdZUWFz3VC7AxGxMQtMrCn+phW6nFcBR60RydE=
X-Received: by 10.157.23.43 with SMTP id i43mr2077347ota.212.1508248420062; Tue, 17 Oct 2017 06:53:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.2.41 with HTTP; Tue, 17 Oct 2017 06:52:59 -0700 (PDT)
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 17 Oct 2017 06:52:59 -0700
Message-ID: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
To: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="f403043c424c4fa5ca055bbe7314"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/xX9X1qmWNaY-STj8yhXKWCEbvoM>
Subject: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 13:53:42 -0000

--f403043c424c4fa5ca055bbe7314
Content-Type: text/plain; charset="UTF-8"

Hi folks.

I've been working some more on my IETF review tools and I'm now at the point
where I want to take an external review and hoist it into the IESG Ballot.
Is there
an existing API surface for this kind of thing? Perhaps one which takes an
auth token
so no CSRF/cookie nonsense?

-Ekr

--f403043c424c4fa5ca055bbe7314
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi folks.<div><br></div><div>I&#39;ve been working some mo=
re on my IETF review tools and I&#39;m now at the point</div><div>where I w=
ant to take an external review and hoist it into the IESG Ballot. Is there<=
/div><div>an existing API surface for this kind of thing? Perhaps one which=
 takes an auth token</div><div>so no CSRF/cookie nonsense?</div><div><br></=
div><div>-Ekr</div><div><br><div><br></div></div></div>

--f403043c424c4fa5ca055bbe7314--


From nobody Tue Oct 17 10:30:38 2017
Return-Path: <fredbaker.ietf@gmail.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D27D11321C7 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 10:30:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rogLZyXdsbCJ for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 10:30:35 -0700 (PDT)
Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E3FBE126B6E for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 10:30:34 -0700 (PDT)
Received: by mail-wm0-x22a.google.com with SMTP id i124so5295337wmf.3 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 10:30:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:mime-version:subject:message-id:date:to; bh=3btkEyDlCVIsd52l+PJKTxSa8ZIrOf5sRv+0glOYbRQ=; b=IU5Qij0kvaUNInl93KPqFO2uaAb8ZtqhxzsWvuEFYoAlt06hR6WF3/ZLJIVq0y7o7S f9bFrtx98Bn7OEHroYGlPHDKXiil5E+YinavYQ87pckVCBHAI6Mt7fRRzRgk18DzRNb2 3bE1EcVTdpVkYe0F2pkWyB/P085f0jDoDOTGbocBm7KcokCEhwb8MoXxvcbZVUWBqgNj P3jCSHN54p77yMg0Sd2azsyksxDOozRBbIvj2GYyTEkjOclul/uSYZGzMmkxoD/hjmaV 13tQSun/34GzDThL1GhzA4J5XQTVPJhoR8v3TiMJANGvx+0LSzmCmd5xGTMUcrKpCBoc ctoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=3btkEyDlCVIsd52l+PJKTxSa8ZIrOf5sRv+0glOYbRQ=; b=J6fqu+woOIxdsYXO0Eyi3GIS7tnL+l1GEshJ4XdLvRzlyWjm8zMGTU6ts4EqfQUNFe vsdHrJJlm9rySWG8q9tg4f/Y4jZBhKn8QD7/OYpf7dS8PmG+igne88GnxVq+9zBbl5GM jvrlG/GnyrRw5U6DAaChlLC9HO4e5mnqyRimgQMXdnEXivSSjn+woK6m0WaMbskllj5n GJTkJl+tA4HaeOUALhFi2gfR11Hst3RcM/PDtGJyZ5FZsec2WQvPCq2sjH3PdpcqX8/i u9ydEvFsqfvKMFYUtyCtMsn5EJoqOrWawifeQ+w2vf9UBKarRa3gGDsu+YD/xkKV2inz Vvhg==
X-Gm-Message-State: AMCzsaXkVUqrp5yDm4gf6YoDW4ndWRp0s7WjZ8IOGNFE3SNfTN2+f7rz sMkSYLlK0G4JF//Sn8yixi/I8WeI
X-Google-Smtp-Source: ABhQp+SmFZkaXZTkpwGS+okKtio9RGI4IACASB/f0XhhTkEZrLOktopauDP4AIODBNjZUBwWXGkisA==
X-Received: by 10.28.140.15 with SMTP id o15mr4074688wmd.8.1508261433379; Tue, 17 Oct 2017 10:30:33 -0700 (PDT)
Received: from ?IPv6:2001:4f8:3:65:3033:f97d:56c1:128b? ([2001:4f8:3:65:3033:f97d:56c1:128b]) by smtp.gmail.com with ESMTPSA id v78sm7214335wmv.48.2017.10.17.10.30.31 for <tools-discuss@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 10:30:32 -0700 (PDT)
From: Fred Baker <fredbaker.ietf@gmail.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_64388B2E-654B-4A11-8437-ECDE9FA33AAD"; protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\))
Message-Id: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
Date: Tue, 17 Oct 2017 10:30:29 -0700
To: tools-discuss@ietf.org
X-Mailer: Apple Mail (2.3445.4.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/NDf8gsi1dwI5uDsR8dtZS2FZwLI>
Subject: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 17:30:37 -0000

--Apple-Mail=_64388B2E-654B-4A11-8437-ECDE9FA33AAD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Speaking as a working group chair, I find myself from time to time =
wanting to assess the mail history of a draft. I usually do that by =
searching the mail archive on my laptop. I'm not crazy about the tools =
for that; rather than use the helpful things provided by my laptop OS, I =
usually wind up with grep. I'm not happy with it.

Is there a tool that will search an online mail archive and cough up the =
URLs of each individual email in that archive that contains a specified =
character string?

--Apple-Mail=_64388B2E-654B-4A11-8437-ECDE9FA33AAD
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEctjlJjQmVrp9uMq7EhdRnd2GP+AFAlnmPjUACgkQEhdRnd2G
P+Ah7Q/8CAPeL2wRbPP8IUdlB3jbnCsDNqFgx+RTjqiK85bTzaLzTFuub/4ZAINm
cJUe/087v0hCx6JI38L9GVlIbHoLGGGpz7QaFi3vICQBNt/XgrESA0nH0E5sew3Q
eRxfcl/vUGPP+Om4YCv0uomBxb58uBBKcqEqVV22iYcyHP0BcmsgwK4pfPUcaFPX
eJVu909a66UansZOR6KC23HGZbYdxaREBDGmHWM2ZJiu34nMFtAm0Li7Oi42JxBZ
faK4cJ7D0KcBnowcAIz8X5sfC82vPg5rIVOdwQkGyQxYQNa8h3+Z0uxh/j4TFV25
9kzLsIJB4sOalTfgQxSMZ+/hUFqts8ebRk9ug4zpViILsqE5zyQ9IUyoJwnQcr5O
lH8PjEtTYkMoemj4wCD/OjSySS6K/gjhY0yFk1bCke0y927Gpj/GuafB5tNsSaWY
mYkdjJGKkWufOfnWod59eMLPCN7IyyYsFII3NXIQHTQbWezO/RYFvyVmaj9q9ked
NsyYBBWKjkmm+3FB+V6LNSUYcm4kPgKmpnH8O87LL9VwiYucULHGX9iPmXyjqDkB
d5AXzHFepiDNcSFwZP2uc9JvHEwBghuw5jivcTVChOqbXTi723cKeXDxyGJSvwGp
kMLajthP2zor9VTDQIXmQJ7KvgCq53riMfbonC5C5o8yxCRxFmw=
=WYgY
-----END PGP SIGNATURE-----

--Apple-Mail=_64388B2E-654B-4A11-8437-ECDE9FA33AAD--


From nobody Tue Oct 17 10:54:29 2017
Return-Path: <morrowc@ops-netman.net>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 72010126B6E for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 10:54:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.798
X-Spam-Level: 
X-Spam-Status: No, score=0.798 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_ADSP_ALL=0.8, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Bn_S4vn45AMd for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 10:54:27 -0700 (PDT)
Received: from relay.kvm02.ops-netman.net (relay.kvm02.ops-netman.net [IPv6:2606:700:e:550:5c82:28ff:fe25:4960]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 60DC013217D for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 10:54:27 -0700 (PDT)
Received: from mail.ops-netman.net (mailserver.ops-netman.net [199.168.90.119]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by relay.kvm02.ops-netman.net (Postfix) with ESMTPS id 419B43FCE3; Tue, 17 Oct 2017 17:54:26 +0000 (UTC)
Received: from morrowc-glaptop2.ops-netman.net (unknown [104.132.12.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.ops-netman.net (Postfix) with ESMTPSA id EE7DEA7F914B; Tue, 17 Oct 2017 17:54:25 +0000 (UTC)
Date: Tue, 17 Oct 2017 13:54:25 -0400
Message-ID: <yj9olgk98xta.wl-morrowc@ops-netman.net>
From: Chris Morrow <morrowc@ops-netman.net>
To: Fred Baker <fredbaker.ietf@gmail.com>
Cc: tools-discuss@ietf.org
In-Reply-To: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/25.2 Mule/6.0 (HANACHIRUSATO)
Organization: Operations Network Management, Ltd.
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/f3zJRN61LmK37ChsbgE3EA-3TXA>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 17:54:28 -0000

On Tue, 17 Oct 2017 13:30:29 -0400,
Fred Baker <fredbaker.ietf@gmail.com> wrote:
> 
> [1 <multipart/signed (7bit)>] [1.1 <text/plain; us-ascii
> (quoted-printable)>] Speaking as a working group chair, I find
> myself from time to time wanting to assess the mail history of a
> draft. I usually do that by searching the mail archive on my
> laptop. I'm not crazy about the tools for that; rather than use the
> helpful things provided by my laptop OS, I usually wind up with
> grep. I'm not happy with it.
>

grepmail .. could do what you want I suspect as well.


From nobody Tue Oct 17 11:42:33 2017
Return-Path: <fredbaker.ietf@gmail.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 00AAB1323F7 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 11:42:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PZ_ATB5bXnWT for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 11:42:30 -0700 (PDT)
Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6B981126B6E for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 11:42:30 -0700 (PDT)
Received: by mail-wr0-x242.google.com with SMTP id l24so2703728wre.1 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 11:42:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=I233BecN5VpBXaXmBkfznmaRN5EoH6EYDH8gZuM0yVM=; b=uO/wlS2bQ+aLjyqVq/uboh90e01TB4MwGFcyKNuDTHn3Lm2a+OQYzubsuQyDRxQFT3 xrAfubV4YSvAwghCrhhZyK0L5Ytpm9KjlZAITock2toxXdUFXRbHgtzAQgfN07XCHbtV 32KMBE7GI0D933NivY7/b87tuAJBsNMba4aPq7nYqBskU8+eTWgwbUED69/Vrp1hwwCJ R/Ax4x/pjReRRKw+Fe4meHwHBoQtfPulSB0h2n7t3CrQU8GXnfj1nucLIr1aRHvWeRVy tz6KXAwOsKbD72bHjB3oeWyqSt4TZHECz6PcerrIjZbWlhoeemm5EyEHsZYHjFj9t2pg wpbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=I233BecN5VpBXaXmBkfznmaRN5EoH6EYDH8gZuM0yVM=; b=J37E73hOl57APLqEk0GdRmeR8oI9LGJaoc/NzswqMcuUkA4mP2ULjlWdhuDfsa7p9D gf1zQBp8xbNRs+6KnQuAZDnHEIe3fb7qU3t8cVYPdGG1/KK5UOvF/d93ZPAJjEX8Q+7d Nxq+w9VvrjA0AAUDJj0Bkc1xbQXTHYUQSSq1mEKC53W5GMmIjT8VJ7cW38OavDWXddsi AUoWdWLgwfJfrRQ+uLEbCT6YtKXiwQp1wE5rXwgXiT+IrnLnQvuYVOpPNOeV5JVRdg3K PLsxkhFPSOibWeYF1cuVlodwnMtCcOmu7AulEzb5P/H+xXi/4WytB9smLekqgrt7tIDU cW7A==
X-Gm-Message-State: AMCzsaX+h0yPWVus7dHMpsVgmyvo9Bv2ra/zgD5L6ZrpgXb6gCANnV3q skX+V8SAAL6Fsd18w+Kvr6MC5M8O
X-Google-Smtp-Source: ABhQp+Qh6Sub2r1vhUM6bRkGcZzs00GQAGyec3N/yij+YgA5rP1Jrs2L7yStVQjcKNz+zyFU4Z/zvw==
X-Received: by 10.223.181.131 with SMTP id c3mr4402709wre.198.1508265748946; Tue, 17 Oct 2017 11:42:28 -0700 (PDT)
Received: from ?IPv6:2001:4f8:3:65:3033:f97d:56c1:128b? ([2001:4f8:3:65:3033:f97d:56c1:128b]) by smtp.gmail.com with ESMTPSA id 67sm13637554wmw.22.2017.10.17.11.42.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 11:42:28 -0700 (PDT)
From: Fred Baker <fredbaker.ietf@gmail.com>
Message-Id: <67B567E8-33F6-4E4A-9891-8EB043D7993B@gmail.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_D6DEC2AB-670D-4B7C-841B-DCB6E2B5366C"; protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\))
Date: Tue, 17 Oct 2017 11:42:24 -0700
In-Reply-To: <yj9olgk98xta.wl-morrowc@ops-netman.net>
Cc: tools-discuss@ietf.org
To: Chris Morrow <morrowc@ops-netman.net>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com> <yj9olgk98xta.wl-morrowc@ops-netman.net>
X-Mailer: Apple Mail (2.3445.4.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/pkpbNYLRX4dwdjE97bmkI1QXCnU>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 18:42:32 -0000

--Apple-Mail=_D6DEC2AB-670D-4B7C-841B-DCB6E2B5366C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



> On Oct 17, 2017, at 10:54 AM, Chris Morrow <morrowc@ops-netman.net> =
wrote:
>=20
> On Tue, 17 Oct 2017 13:30:29 -0400,
> Fred Baker <fredbaker.ietf@gmail.com> wrote:
>>=20
>> [1 <multipart/signed (7bit)>] [1.1 <text/plain; us-ascii
>> (quoted-printable)>] Speaking as a working group chair, I find
>> myself from time to time wanting to assess the mail history of a
>> draft. I usually do that by searching the mail archive on my
>> laptop. I'm not crazy about the tools for that; rather than use the
>> helpful things provided by my laptop OS, I usually wind up with
>> grep. I'm not happy with it.
>>=20
>=20
> grepmail .. could do what you want I suspect as well.

Two issues, as it turns out. A Mac doesn't use traditional unix box =
format, so grepmail as specified doesn't work. Maybe I need to hack =
grepmail. Also, I was hoping for something that would use the IETF =
archive as its source rather than what I have on my laptop.

But thanks, that's at least a start.

--Apple-Mail=_D6DEC2AB-670D-4B7C-841B-DCB6E2B5366C
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEctjlJjQmVrp9uMq7EhdRnd2GP+AFAlnmTxAACgkQEhdRnd2G
P+AMkw/+IwhekSWG8cNpggd19WlTqQ5PnO27O7MimJrUG+uubOE/kNbGRGiC/yRg
j0a4iRhQ1H9TzLEUcR5RKMMmg3EA+Lk6j82i/hbsr43st/e7EsGezTS5wsoSNdPo
1QLv69fa6EPajCJdfdlXc+wrAhJO0k1PTlB26l3O/j0P8vNDRbl+SEtRZT9i5//R
ys3NEld73eRatmAeZtxaYEpQmbpzHb5f1GMA2HMFW57ouyGBsbzzvkzbMVm5u5tH
emye1TLNR3JTG7Sx7rh9Bz9ntOpc+acFUgYqGco6PB+e7PGPjyGnbTUWmJrzw5ES
oOPZLShzEmQtnjSVt/3w3NYRCh5mqcPSsIEs1m0wME5x2I4UEI4ISb9GEsSMI/ky
nVqmqBkn9rrcg3yAR1uHCqS5gFADmN9HiIS5qy0zJHAmjn/bvQChmcTxUZURU2ih
MD+pZzCoNZs6rSbLFxT2jVW7X+optPtCbhqkHUIv2rmcukHF7FED5hIng5BV2V/m
t2tJF29SAs05vNq6FSweD7sYXCHQRUf+iu084uLibK7RKWYgt7I6GQSmgMjClUDX
eJ1zHqvReYAxRFxU0lHhCm1KPnKSdfnCjaBZpCZr1Z5D/sWyW2SpGHDjBBAWlTxO
f62j80ktDIqqliX56hcYHwW/pO1dDhwwROZXuX2l7QhGhBDgDLY=
=c+jB
-----END PGP SIGNATURE-----

--Apple-Mail=_D6DEC2AB-670D-4B7C-841B-DCB6E2B5366C--


From nobody Tue Oct 17 12:21:33 2017
Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0D6C9133085 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 12:21:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B4zYlMbrjApj for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 12:21:28 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [209.87.249.19]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ADE4B132D4E for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 12:21:28 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 4A0EB20094; Tue, 17 Oct 2017 15:21:30 -0400 (EDT)
Received: from obiwan.sandelman.ca (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id 6B90580D54; Tue, 17 Oct 2017 15:21:27 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Fred Baker <fredbaker.ietf@gmail.com>
cc: tools-discuss@ietf.org
In-Reply-To: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
X-Mailer: MH-E 8.6; nmh 1.7-RC3; GNU Emacs 24.5.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Tue, 17 Oct 2017 15:21:27 -0400
Message-ID: <21702.1508268087@obiwan.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/3cLvx1LwcT2qres1gL54X3v5O0U>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 19:21:31 -0000

--=-=-=
Content-Type: text/plain


Fred Baker <fredbaker.ietf@gmail.com> wrote:
    > Speaking as a working group chair, I find myself from time to time
    > wanting to assess the mail history of a draft. I usually do that by
    > searching the mail archive on my laptop. I'm not crazy about the tools
    > for that; rather than use the helpful things provided by my laptop OS,
    > I usually wind up with grep. I'm not happy with it.

    > Is there a tool that will search an online mail archive and cough up
    > the URLs of each individual email in that archive that contains a
    > specified character string?

I use thunderbird configured to talk to the IETF IMAP server.

There is a search feature that seems to operate on the downloaded/cached
message headers.   It may not do as good a search as grep though.

--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-




--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEbsyLEzg/qUTA43uogItw+93Q3WUFAlnmWDcACgkQgItw+93Q
3WVg/gf9H0cXCnGCQi2NZ1Lt71ZtJ5F31KnC4fZzS0Ur4g7WKw6h7NhoRHB54KQV
b3hdW5ciWkgdqWi+4c8BhIQAE50A3WdmJejkXRD//pzMhJkkIKZhNuj9Pvv2+uke
SIMiOHoQ/mpYKAb9nOr5Atf3SYJHXwJtrnhSkdkCdyWC7P7coj9gv4hsqIv0Cwtd
8IWe+VpiwHy8cSk2ZgRQMHbymo/OmB4n1ucCM17dTwQ7phH2SQIuMq9bS1THVwud
1xeAGXSwazyOIOgIAckAayxOzSFYw+7t7v93vHBzzcLEobsbVU4xwfd7CT4hXXoE
iz88cy9eFTKEl7Xx4TRUZ2Qgv4OpDg==
=ZGxn
-----END PGP SIGNATURE-----
--=-=-=--


From nobody Tue Oct 17 13:08:01 2017
Return-Path: <morrowc@ops-netman.net>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5105C13292A for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:07:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.101
X-Spam-Level: 
X-Spam-Status: No, score=-1.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_ADSP_ALL=0.8, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e26viGd4jbqD for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:07:58 -0700 (PDT)
Received: from relay.kvm02.ops-netman.net (relay.kvm02.ops-netman.net [IPv6:2606:700:e:550:5c82:28ff:fe25:4960]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0DABD132F65 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 13:07:56 -0700 (PDT)
Received: from mail.ops-netman.net (mailserver.ops-netman.net [199.168.90.119]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by relay.kvm02.ops-netman.net (Postfix) with ESMTPS id 52CAF3FCE3; Tue, 17 Oct 2017 20:07:54 +0000 (UTC)
Received: from morrowc.res.corp.google.com.ops-netman.net (unknown [104.132.12.94]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mail.ops-netman.net (Postfix) with ESMTPSA id 0EAE9A862D4E; Tue, 17 Oct 2017 20:07:54 +0000 (UTC)
Date: Tue, 17 Oct 2017 16:07:53 -0400
Message-ID: <yj9oa80pilly.wl%morrowc@ops-netman.net>
From: Chris Morrow <morrowc@ops-netman.net>
To: Michael Richardson <mcr+ietf@sandelman.ca>
Cc: Fred Baker <fredbaker.ietf@gmail.com>, tools-discuss@ietf.org
In-Reply-To: <21702.1508268087@obiwan.sandelman.ca>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com> <21702.1508268087@obiwan.sandelman.ca>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/24.3 Mule/6.0 (HANACHIRUSATO)
Organization: Operations Network Management, Ltd.
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/AQditf81RGeVkLn2W5KbiO0XNfA>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 20:07:59 -0000

At Tue, 17 Oct 2017 15:21:27 -0400,
Michael Richardson <mcr+ietf@sandelman.ca> wrote:
> 
> [1  <multipart/signed (7bit)>]
> [1.1  <text/plain (7bit)>]
> 
> Fred Baker <fredbaker.ietf@gmail.com> wrote:
>     > Speaking as a working group chair, I find myself from time to time
>     > wanting to assess the mail history of a draft. I usually do that by
>     > searching the mail archive on my laptop. I'm not crazy about the tools
>     > for that; rather than use the helpful things provided by my laptop OS,
>     > I usually wind up with grep. I'm not happy with it.
> 
>     > Is there a tool that will search an online mail archive and cough up
>     > the URLs of each individual email in that archive that contains a
>     > specified character string?
> 
> I use thunderbird configured to talk to the IETF IMAP server.
> 
> There is a search feature that seems to operate on the downloaded/cached
> message headers.   It may not do as good a search as grep though.

odd, most times I thought the SEARCH keyword was done on the server...

There's also:
$ rsync rsync.ietf.org::mailman-archive

which appears to have:
drwxrwsr-x          4,096 2017/05/09 21:10:43 venue-selection
drwxrwsr-x          4,096 2017/09/29 05:57:15 video-codec
drwxrwsr-x          4,096 2009/01/01 10:01:17 videomgmt
drwxrwsr-x          4,096 2014/01/24 18:13:30 vipr
drwxrwsr-x          4,096 2017/10/02 23:54:17 vmeet
drwxrwsr-x          4,096 2016/06/22 01:20:43 vnfpool
drwxrwsr-x          4,096 2012/02/08 19:40:59 vnrg
drwxrwsr-x          4,096 2017/09/14 00:57:04 vot

lots of wg archives... like:
$ rsync rsync.ietf.org::mailman-archive/vot/
drwxrwsr-x          4,096 2017/09/14 00:57:04 .
-rw-rw-r--         18,085 2014/09/18 07:09:26 2014-09.mail
-rw-rw-r--      1,121,038 2014/10/30 00:37:46 2014-10.mail
-rw-rw-r--        587,679 2014/11/17 20:49:02 2014-11.mail


then you're probably into the joys of grepmail :) I imagine a little
rsync command-line work you can even limit to the N groups you really
care about alone.

for the curious:
sent 1,802 bytes  received 1,292,141 bytes  66,356.05 bytes/sec
total size is 24,110,876,592  speedup is 18,633.65

so, 24gB or so of mail... if you download it all.

-chris


From nobody Tue Oct 17 13:09:23 2017
Return-Path: <fredbaker.ietf@gmail.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F01A13292A for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:09:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3LxC7z80Euc1 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:09:19 -0700 (PDT)
Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 055FF132F65 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 13:09:19 -0700 (PDT)
Received: by mail-wm0-x236.google.com with SMTP id m72so6096313wmc.1 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 13:09:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=TTapIJ8AjQLKGn8SzgldmM8MiAGxEJTeAhfrAoQ+xWU=; b=H061/jFQpcaiu7GM8NOhkn+uUPu+bxbIeHOV5S/JUlQ3gz2oqBgpwJDgq5AGbZJMuJ 0Wfl6PlH/D33YgyuHVpmBs8p5hpboIlM3reJaOQ4pRioCyUjBOZav6VKl/+m+wgQjCja ME8dvqsCNwj2Wt782CPtfqUpbd0N4bofWzGyxQZk0DSNGtV7o0Jzq2jWtC3DNesjFmZ7 pkgQQJlvx5WLdpDDfuiKHK88ynOrRMftZCdyQQoyu07EWixKOsFTSkvaX1eS0mxIguba dhoj0pQ8pGGKmmwFVCxdITqAPHagsgLhEypjd61+msRubCUgLjVaXvTh2V0S2Vu0z4rP yQ7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=TTapIJ8AjQLKGn8SzgldmM8MiAGxEJTeAhfrAoQ+xWU=; b=K5OKaYq0JVw/c/qnuuoQUTqkDBqI3jrj8JYymrZR6QHB/OL3osJwPkpyjPpgbt8CHy jYkk8RM8I+lYh4jh+StLtKAo2Y37LjZLmqydJmpS4m1n9NuJBtlu/PLg/HS2YYwV3XOD /rReXbeBz0rPGjO2gfQjAJWCeJ7F7QqdHM/3OEJhFofDhhw2xo9rAow5FZeXs7zLSbvs 3Up0TRwnpijlurX5MHy8FgyNGcYBa0ZbAM7nN3OZw1jJAc/SWANxTSpgt00oW2vnq4pR B8ldBMgfCxbpkEYrl129j5Ib3EZmhtYXN9IEWsG+MRaRfOG+7sXAs5G72VW0PdUCEeYS M+GQ==
X-Gm-Message-State: AMCzsaVAX8bDf5HKv1EpV/T4GmLiwodBWLsYuq24zdlVCEk3eNbTnOP+ IrtIX3lErMcMhAG38IN6CHY=
X-Google-Smtp-Source: ABhQp+QVLXfHCZQu7YFXWeoGj3jO8Ge6iG9+qUOtYk1cK/rR/K3OZO/ktOyFQ9yNX4zAUtrm6vYV9Q==
X-Received: by 10.28.149.204 with SMTP id x195mr4635593wmd.78.1508270957507; Tue, 17 Oct 2017 13:09:17 -0700 (PDT)
Received: from ?IPv6:2001:4f8:3:65:3033:f97d:56c1:128b? ([2001:4f8:3:65:3033:f97d:56c1:128b]) by smtp.gmail.com with ESMTPSA id 69sm11460444wmm.2.2017.10.17.13.09.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 13:09:16 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\))
From: Fred Baker <fredbaker.ietf@gmail.com>
In-Reply-To: <yj9oa80pilly.wl%morrowc@ops-netman.net>
Date: Tue, 17 Oct 2017 13:09:14 -0700
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, tools-discuss@ietf.org
Content-Transfer-Encoding: 7bit
Message-Id: <775FD30D-AE97-4974-A68D-41AE77268AC0@gmail.com>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com> <21702.1508268087@obiwan.sandelman.ca> <yj9oa80pilly.wl%morrowc@ops-netman.net>
To: Chris Morrow <morrowc@ops-netman.net>
X-Mailer: Apple Mail (2.3445.4.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/GKBPzTTPJZjrPK-k_hfHfugWWec>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 20:09:21 -0000

> On Oct 17, 2017, at 1:07 PM, Chris Morrow <morrowc@ops-netman.net> wrote:
> 
> so, 24gB or so of mail... if you download it all.

Daily, of course :-)

Thanks.


From nobody Tue Oct 17 13:14:22 2017
Return-Path: <morrowc@ops-netman.net>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 995C4132355 for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:14:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.599
X-Spam-Level: ****
X-Spam-Status: No, score=4.599 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_ADSP_ALL=0.8, HTML_MESSAGE=0.001, HTML_MIME_NO_HTML_TAG=0.377, MIME_HTML_ONLY=0.723, MISSING_MIMEOLE=1.899, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A-OH8Sf3jP_m for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 13:14:19 -0700 (PDT)
Received: from relay.kvm02.ops-netman.net (relay.kvm02.ops-netman.net [IPv6:2606:700:e:550:5c82:28ff:fe25:4960]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 69068133065 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 13:14:19 -0700 (PDT)
Received: from mail.ops-netman.net (mailserver.ops-netman.net [199.168.90.119]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by relay.kvm02.ops-netman.net (Postfix) with ESMTPS id 6152D3FCE3; Tue, 17 Oct 2017 20:14:18 +0000 (UTC)
Received: from [IPv6:2620:15c:3:fd00:ac0d:3c7f:f503:e486] (unknown [IPv6:2620:15c:3:fd00:ac0d:3c7f:f503:e486]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.ops-netman.net (Postfix) with ESMTPSA id 0E59AA867F62; Tue, 17 Oct 2017 20:14:18 +0000 (UTC)
Date: Tue, 17 Oct 2017 16:14:14 -0400
Message-ID: <4cb08165-6fb5-4bc1-b3be-c2074e30d629@email.android.com>
X-Android-Message-ID: <4cb08165-6fb5-4bc1-b3be-c2074e30d629@email.android.com>
In-Reply-To: <775FD30D-AE97-4974-A68D-41AE77268AC0@gmail.com>
From: Chris Morrow <morrowc@ops-netman.net>
To: Fred Baker <fredbaker.ietf@gmail.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, tools-discuss@ietf.org
Importance: Normal
X-Priority: 3
X-MSMail-Priority: Normal
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/6Jd9Kx6qy9KpVzS6wQhbYpKSugI>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 20:14:20 -0000

PGRpdiBkaXI9J2F1dG8nPldlbGwsIG9mIGNvdXJzZSB0aGUgdXBkYXRlcyBhcmUgc21hbGxlci4g
UnN5bmMgc2hvdWxkIGRvIHNtYXJ0IHVwZGF0ZXMuPC9kaXY+


From nobody Tue Oct 17 14:27:39 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5561213219F for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 14:27:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q-F6p4QyFS5N for <tools-discuss@ietfa.amsl.com>; Tue, 17 Oct 2017 14:27:37 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0BE72132331 for <tools-discuss@ietf.org>; Tue, 17 Oct 2017 14:27:37 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:59546 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4ZOh-0001K5-WA; Tue, 17 Oct 2017 14:27:36 -0700
To: Fred Baker <fredbaker.ietf@gmail.com>, tools-discuss@ietf.org
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <d836a5b8-a7c5-aa67-c03e-dc9cc895f078@levkowetz.com>
Date: Tue, 17 Oct 2017 23:27:28 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="kRBpBsgMs5kLVPt5b3JKWoU1gkg16dFfv"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, fredbaker.ietf@gmail.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/1pqbS3zARvyJfgKrxXq6_QMzuZc>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 21:27:38 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--kRBpBsgMs5kLVPt5b3JKWoU1gkg16dFfv
Content-Type: multipart/mixed; boundary="HXw4FOu5prqgowo5l7bnudeCKsvWS6m3R";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Fred Baker <fredbaker.ietf@gmail.com>, tools-discuss@ietf.org
Message-ID: <d836a5b8-a7c5-aa67-c03e-dc9cc895f078@levkowetz.com>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>
In-Reply-To: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com>

--HXw4FOu5prqgowo5l7bnudeCKsvWS6m3R
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Fred,

On 2017-10-17 19:30, Fred Baker wrote:
> Speaking as a working group chair, I find myself from time to time want=
ing to assess the mail history of a draft. I usually do that by searching=
 the mail archive on my laptop. I'm not crazy about the tools for that; r=
ather than use the helpful things provided by my laptop OS, I usually win=
d up with grep. I'm not happy with it.
>=20
> Is there a tool that will search an online mail archive and cough up th=
e URLs of each individual email in that archive that contains a specified=
 character string?

These days, I would do this:

Go to https://mailarchive.ietf.org/ and paste the draft name into the sea=
rch
field, or go directly to for instance

  https://mailarchive.ietf.org/arch/search/?q=3Ddraft-ietf-v6ops-rfc6555b=
is

There I'd select "URL's" from the 'Export' drop-down at the top of the pa=
ge,
right, or alternatively go directly to for instance

  https://mailarchive.ietf.org/arch/export/url/?q=3Ddraft-ietf-v6ops-rfc6=
555bis

Does that do what you want, and if not, how could it be improved?


Best regards,

	Henrik


--HXw4FOu5prqgowo5l7bnudeCKsvWS6m3R--

--kRBpBsgMs5kLVPt5b3JKWoU1gkg16dFfv
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ5nXAAAoJEE6bV0uPuxcabEYP/in/QSSx1mEKg/ERUIm3kH60
WH6eyPuZ0Phvxbi3OTxJiAeuW37w/H2742rs3knB61JTAjmbnJUASzI3j+yC1WX/
iP3B13v3DuoJim4Ua9+HWNBpMrXXeg383Ds/SkW6Hcv2fm+roth5txHCJeZFd3fN
tJ1zL4uavr6TufOwjKEU2caCEKKci/+QY2DL9QykFonOSShsGkKmiBA3XEainUvi
I/BUTVc0c+4UbUgBsT+B071AhKkoCkVkpLlT+zemMqOsdrdtxs6NPJQ1kgwTegc5
atEuorKH69pf4sHNRLWjPPIVWQneaPKg3Ua++EN6YcJ3Ab1kZFH7EkIZptPB7GLS
m9Ec3yt8EhQLKXQrgXY2nTBUHhDULrCXrHJsaadV8xkp8RWy6P0ip3GFXSvCQuk6
Za50+DSxwVa5bj9WvBSnBp0OnP4Ss81DFFE/9rhKhTVOp5LXD8FQWYKg3c73/Efd
YcORjb2xqgjot9rR5hk4tnHwDQAIzEpXXyAjm+BTvoddmhFcDfB9dyIRCq0Fv3Vg
8nXdalhoerbuqDDFNxXxoJ9tjav6GSOQjy5gZRdVcvF3yCiq6FCj9XIacYvKCQEO
svhDfnqUL4g3KXcIfa+8L/Cdpj36LlVk8i9kGNFHzDXThj4L7Agme9nLqi6XMTTh
h1bseZ+VxdJTx3YdwWVB
=B+ql
-----END PGP SIGNATURE-----

--kRBpBsgMs5kLVPt5b3JKWoU1gkg16dFfv--


From nobody Wed Oct 18 05:20:15 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CB21132D18 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 05:20:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level: 
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[BAYES_40=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yW26Qjr4b7A3 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 05:20:13 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5FE0F1241F3 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 05:20:13 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:55823 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4nKR-0000Zo-Qo; Wed, 18 Oct 2017 05:20:13 -0700
To: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
Date: Wed, 18 Oct 2017 14:19:58 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="okQOPGAV7ITFiNSs6VgkdF2Pck0OW0nNF"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/DG4di7cP_IkA3AAlth3kumWn7hg>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 12:20:14 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--okQOPGAV7ITFiNSs6VgkdF2Pck0OW0nNF
Content-Type: multipart/mixed; boundary="4TuBveXHLvrkCddj1IlKSuOLT0XkLbcrs";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
Message-ID: <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
In-Reply-To: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>

--4TuBveXHLvrkCddj1IlKSuOLT0XkLbcrs
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Ekr,

On 2017-10-17 15:52, Eric Rescorla wrote:
> Hi folks.
>=20
> I've been working some more on my IETF review tools and I'm now at the =
point
> where I want to take an external review and hoist it into the IESG Ball=
ot.
> Is there
> an existing API surface for this kind of thing? Perhaps one which takes=
 an
> auth token
> so no CSRF/cookie nonsense?

No, there isn't, but adding an endpoint for this isn't that hard.  There
are things ahead of it in the queue, though ,:-)


Best regards,

	Henrik


=09


--4TuBveXHLvrkCddj1IlKSuOLT0XkLbcrs--

--okQOPGAV7ITFiNSs6VgkdF2Pck0OW0nNF
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ50buAAoJEE6bV0uPuxcaqu4QAJkUUtXXPDVh7a65v257JZqp
XYMrEizjdp0NqNeHEN7MS4bl6XkdfCUvaqw08JZyxGrB62MTKxfZgVNR3bGf7WXc
3HhCJ+pl10rDwRaAxvxaN6FRRq0GFKKXhOrdd/rMzM+7lVJbDOgY0+dPAM16Ti34
X75i/VmGBNDLYq51qLtsSN/RwJbwzlD+pbqNLF7VTM7LNjVpjNSm5iZ2fKPYZIVN
i5XLjAefqLm7Y8hJXhV0NIYqco3jgn3vTqXhxooBV8GEaRvT6NVglPjUsgvMUrib
aAz9VP3IHuqU46DCugvHbPMXlRzlgq/nDZegjPGeSfDyfJ7U14Q7jERH3na6+PPF
ZYr/nTNVh1wH1Ft4+cr2is0XiLu7eSHcp/fciYbn938Yl1ApMV2j2pR/cbUIUJtz
EOtwHyoIcdsLgVE6/aD3MqWlmLYHRYz7Tg92Tz39OuNC9KF/TINMY85FaXaWbxRq
Pcm+PJKiZCQju1IBNtBZ2csT0HFXuwT//wVYcAfEVbLzy2wy73K9FUUkQqQg3VWn
aIhFG2uUna00b9o7QDxHPGiWU48IE2J8/8C8E8sPou+Dl9Oxja30egR896Cdm+6T
dFeGF2EVDLe54q03RRbeIrXGUQLS4DHRzEqHOvrLBhZD27rSKyjNNFCCVBcIN4Zm
MpYhMpjQi20XEfXJq6Km
=+CSf
-----END PGP SIGNATURE-----

--okQOPGAV7ITFiNSs6VgkdF2Pck0OW0nNF--


From nobody Wed Oct 18 07:48:13 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6F08F13263F for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:48:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r5z44Ew9gLBj for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:48:09 -0700 (PDT)
Received: from mail-yw0-x22e.google.com (mail-yw0-x22e.google.com [IPv6:2607:f8b0:4002:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E7FDD132CE7 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 07:48:08 -0700 (PDT)
Received: by mail-yw0-x22e.google.com with SMTP id j4so741250ywb.2 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 07:48:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=bwCQlHsRhzUKa9ZzZSpDIRarkotThfdqIyaWjBlsbxs=; b=MZgBnbitk+D5LrODJwfl9emeHH1pFHKq58Xy/0Q7lpe7flsdemze05n8vVnhWM/7f5 tBzWM/CHj0mn1rmWjgfKDFd2ju9MuvSDuzAjX3AAPj7QtEON4QiMv/5roz3ZGz4NY3Vs mOwfiYAWM+FAfrJkYm/cweXkgNlHi5S69vV5mLpFPjQ1P7tyGFLYqCGtS4bzBbAw5PB5 0ft27u4/NyiVwRPPGIIveNYBYqD/zMIgb6WSM8/E8D4usp/i8FW2US35QhTwJQhCv6xH KJg8Aklu+Ysyjph2H7CN3/nfQLmLCWWvofRuSKAWjo56YLx5PLbYwEATPCKI2E4ufcAl tknw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=bwCQlHsRhzUKa9ZzZSpDIRarkotThfdqIyaWjBlsbxs=; b=KGncKVSFB4qmtaG9hRAgWlW4G7UfS2FrooN6RyX/42Gl/YxxlbzPGOJ+RvG9M3g7Bt oKHPmuJxFV6mLCkPFjaKUAs++FVLDWeKUwy19J4wBiCBFyiwxFCn6TqJtW1iMEGsByeT iq3LoI8FSMpq8S9Ywv5cYm5P7j8REPctZm78D7PhwgrSagIyua8f68Z687FsznN+w9Ng OU01aK7Si/4JkImbAW7NRfQBNLCACKaursHES+M6s336VuMGvf4+NrJDSzy/3pJ8TmYH A4W4U4XDQea0NRa9p7St7WyRvSUVk3Ugs16AzrqRMJjoP+vIH2I6cewLlKz4LXk9Z9UG jQwg==
X-Gm-Message-State: AMCzsaX8CQH2zGIxYY6S9O3LzWgBch6983iWCZRCyHngOJ4IJmcU9FAK DujZZm2IAsKtvUYiyKzTbPfECr/lOGDN6rhBUeW7lHUC
X-Google-Smtp-Source: ABhQp+QX7egS8NTqgUS7YVn2bKV/0ZFBijPMF6yN2xcIN1KJnVSty0JXbJQ7P7Vf59LAAbp3K5pV83jSz/Wl7WcknIA=
X-Received: by 10.129.26.208 with SMTP id a199mr1511323ywa.280.1508338088082;  Wed, 18 Oct 2017 07:48:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 18 Oct 2017 07:47:27 -0700 (PDT)
In-Reply-To: <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 18 Oct 2017 07:47:27 -0700
Message-ID: <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a1142d0d4f119f3055bd3535b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/dIKiZvIT3FUepEC9HOgHGmToftA>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 14:48:11 -0000

--001a1142d0d4f119f3055bd3535b
Content-Type: text/plain; charset="UTF-8"

Thanks. I would actually be fine with replicating the existing API surface
(it's not that hard to generate form fills), as long as I could use an API
key rather than a cookie, because it's a real pain to replicate the
anti-CSRF logic.

-Ekr


On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

> Hi Ekr,
>
> On 2017-10-17 15:52, Eric Rescorla wrote:
> > Hi folks.
> >
> > I've been working some more on my IETF review tools and I'm now at the
> point
> > where I want to take an external review and hoist it into the IESG
> Ballot.
> > Is there
> > an existing API surface for this kind of thing? Perhaps one which takes
> an
> > auth token
> > so no CSRF/cookie nonsense?
>
> No, there isn't, but adding an endpoint for this isn't that hard.  There
> are things ahead of it in the queue, though ,:-)
>
>
> Best regards,
>
>         Henrik
>
>
>
>
>

--001a1142d0d4f119f3055bd3535b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks. I would actually be fine with replicating the exis=
ting API surface (it&#39;s not that hard to generate form fills), as long a=
s I could use an API key rather than a cookie, because it&#39;s a real pain=
 to replicate the anti-CSRF logic.<div><br></div><div>-Ekr</div><div><br></=
div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed,=
 Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <span dir=3D"ltr">&lt;<a href=3D=
"mailto:henrik@levkowetz.com" target=3D"_blank">henrik@levkowetz.com</a>&gt=
;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ekr,<br>
<span class=3D""><br>
On 2017-10-17 15:52, Eric Rescorla wrote:<br>
&gt; Hi folks.<br>
&gt;<br>
&gt; I&#39;ve been working some more on my IETF review tools and I&#39;m no=
w at the point<br>
&gt; where I want to take an external review and hoist it into the IESG Bal=
lot.<br>
&gt; Is there<br>
&gt; an existing API surface for this kind of thing? Perhaps one which take=
s an<br>
&gt; auth token<br>
&gt; so no CSRF/cookie nonsense?<br>
<br>
</span>No, there isn&#39;t, but adding an endpoint for this isn&#39;t that =
hard.=C2=A0 There<br>
are things ahead of it in the queue, though ,:-)<br>
<br>
<br>
Best regards,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div>

--001a1142d0d4f119f3055bd3535b--


From nobody Wed Oct 18 07:54:47 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E1D81321BB for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:54:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3eGQR4GI-fUc for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:54:44 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC0C413214D for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 07:54:44 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:59655 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4pk3-0007bc-Ts; Wed, 18 Oct 2017 07:54:44 -0700
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
Date: Wed, 18 Oct 2017 16:54:36 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="DFJMWJxkA4MFT8dscIERKdICVmmC4q4LB"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/AZ6re4wgBeJyEF92AIwNjbPE_Ss>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 14:54:46 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--DFJMWJxkA4MFT8dscIERKdICVmmC4q4LB
Content-Type: multipart/mixed; boundary="gdGNc6RCw70u8QFw0RVjmrGnvL8cjsNxq";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
In-Reply-To: <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>

--gdGNc6RCw70u8QFw0RVjmrGnvL8cjsNxq
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 2017-10-18 16:47, Eric Rescorla wrote:
> Thanks. I would actually be fine with replicating the existing API surf=
ace
> (it's not that hard to generate form fills), as long as I could use an =
API
> key rather than a cookie, because it's a real pain to replicate the
> anti-CSRF logic.

I'm fine with an API key as alternative to anti-CSRF, but would not like =
to
rely on only that for authorization.  Are you ok with doing a regular log=
in
cycle to cookie storage ahead of posting to the form with the API key?


	Henrik

> -Ekr
>=20
>=20
> On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <henrik@levkowetz.com=
>
> wrote:
>=20
>> Hi Ekr,
>>
>> On 2017-10-17 15:52, Eric Rescorla wrote:
>> > Hi folks.
>> >
>> > I've been working some more on my IETF review tools and I'm now at t=
he
>> point
>> > where I want to take an external review and hoist it into the IESG
>> Ballot.
>> > Is there
>> > an existing API surface for this kind of thing? Perhaps one which ta=
kes
>> an
>> > auth token
>> > so no CSRF/cookie nonsense?
>>
>> No, there isn't, but adding an endpoint for this isn't that hard.  The=
re
>> are things ahead of it in the queue, though ,:-)
>>
>>
>> Best regards,
>>
>>         Henrik
>>
>>
>>
>>
>>
>=20


--gdGNc6RCw70u8QFw0RVjmrGnvL8cjsNxq--

--DFJMWJxkA4MFT8dscIERKdICVmmC4q4LB
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ52ssAAoJEE6bV0uPuxcaGckQAJIJiNBfoMNnKqr6604CeM6V
l2InJ30N3lGv6tW2omXQRUHrn4ioKb/cfdEmPT9jFwBvQPVtkWOjfnrAKfNAYK8h
E3vl2Bq4xcaqnLfb5jMnefAb/Wnfrk2N4mEJ//EbGJRBb2wAUGWANiXmasmji7CS
pFOU5qHGm5Rv5uNvKm7hq6oj2F/VDjRz76H1DfdLRM94mOgp+9l5P5cUgVV3NnD/
H5B+HERCOsh8ht3qoDRYxeizmqIEdPeyes/nYiyHxnePBcUCr1V9x2OLmBoR7c4l
VcnkKrXsEI053+SATr9QrS6STHt9le2YwT3LNC0BNaO4e6TCYmzElJaHEwACzEVx
827VnF6xJiR0MPnRJwcABCaTFDMrh646/qZ8HBLLmleDN++aMo+mZxauGaMXGojC
d0L/tK1LkF7Kmhsus+X6vHaC3P+jQYvCwmdTK8+hD6tZliVZhOu6HYaxPUPU5LfO
CjYtSCgUqNDzfn9gYaVpGxyRLFZy5BHKbXyrgynEDKjonhgVsXAvtSc1zwOa42hi
nYU5RxtjR/81+TqkeqFEvZiznzxv66K+xg/kAISY3QuFNaML5Mh9nsQg0iQgGe4E
c8bV5dWoWBMgqup4Lle3rtuqycTGPaM9OkIcjILpUSM5R64bk5uCav9Q7dVUBuiv
ZSrN174DuKfNrDXwRy7V
=TR6o
-----END PGP SIGNATURE-----

--DFJMWJxkA4MFT8dscIERKdICVmmC4q4LB--


From nobody Wed Oct 18 07:58:49 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CE8A133039 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:58:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nxZKuqcv1k9W for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 07:58:46 -0700 (PDT)
Received: from mail-yw0-x22a.google.com (mail-yw0-x22a.google.com [IPv6:2607:f8b0:4002:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 93AE913214D for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 07:58:46 -0700 (PDT)
Received: by mail-yw0-x22a.google.com with SMTP id w5so773344ywg.11 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 07:58:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=p1AZQiPlPwrliKJCKOD3ZcffYbe999kbaPBk4V3OMik=; b=US/h2EjK7q1Awrfwxtvwd3oRgTqW3lklPwp07yVPbmjHUHfQ799BRZyfdk868M5Pty l577vlblrrWOZQpM01jI7BnAXhkPN/+UAZdrutUruTnWcDzY0yKeKb/EVN8qFWVfSFAk 0gF2fuPeaaI4qwTGZXeigye3PsiGB1u6SrB83cOJKLBUegxluAPrcmRPDTEruIP3zlDK KzA0138yleVk9KjxnSw0aemwTeNCf16O+8D77RNIMtscjSs9w04sxw1RuUZ5cRn9Fnfl DfOgFY7mF6c8kQVgZ+C/W5auWrdbHR4TRq8mlSYMK3tFcpOru70mLVqnV79Ds0f/U+/v K1yQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=p1AZQiPlPwrliKJCKOD3ZcffYbe999kbaPBk4V3OMik=; b=GDjelGb412hknx6/iLG2yQTRfd+QDLREfJKo5q3sP8JNSiHHjhHpac4qpRNY5A5RrJ tamnh0WIDssE04vs0vDHEH30e6uCcA3RLK6YtIDB/Ugl5E7e0aANppIkq4LjKxWeO9dT 5lfWdLmSWDMorI6Vm/f4ACfOsUiw1POczWJ+23rk0vEIzJUmIHo9FG6p+KD+7F9Vjlfk hOX+/H6HAR5gHJ7ew2nYqmBLj/kd9UIDzBB2PTNlSfAu4P3d0pr7U6RGBgSLSMSBlrAh ftN93il9sBGeZAj2Mo9LKZHqhKcD/LVOy6gZUIK5cgBEXLEVjP6VDGoMLudqiOom5kIl 8kyg==
X-Gm-Message-State: AMCzsaUmcLCROzYGMsGLhv7elZeq5vmy4G1qUSe13IXJ61rLIUkVinfq CV4uRZEiWpP5Y6I/INiKN4fh62T9p6OYTbxXVDqCymi7
X-Google-Smtp-Source: ABhQp+Q4hY00R8VuNaHxgbmiw67ACauPBokFDE2NPIhJLjz+TJt0gf80fho+P1DAVcEQViKnC7omKBKGS54Yb0DCS5A=
X-Received: by 10.37.83.66 with SMTP id h63mr4719824ybb.397.1508338725740; Wed, 18 Oct 2017 07:58:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 18 Oct 2017 07:58:05 -0700 (PDT)
In-Reply-To: <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 18 Oct 2017 07:58:05 -0700
Message-ID: <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a113e688ef306bf055bd37934"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/12j48PoJvvjr1xvAucGb3jpVPp4>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 14:58:48 -0000

--001a113e688ef306bf055bd37934
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

>
> On 2017-10-18 16:47, Eric Rescorla wrote:
> > Thanks. I would actually be fine with replicating the existing API
> surface
> > (it's not that hard to generate form fills), as long as I could use an
> API
> > key rather than a cookie, because it's a real pain to replicate the
> > anti-CSRF logic.
>
> I'm fine with an API key as alternative to anti-CSRF, but would not like to
> rely on only that for authorization.


I was thinking a per-user API token the way that (say) the Github API works.
Would that be a problem?


Are you ok with doing a regular login
> cycle to cookie storage ahead of posting to the form with the API key?
>

I could also do this as long as the  cookie was perpetual so I could log in
through
my browser and then store the cookie on the server. I'd like to avoid
having my
password on the server.

-Ekr






>
>         Henrik
>
> > -Ekr
> >
> >
> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <henrik@levkowetz.com>
> > wrote:
> >
> >> Hi Ekr,
> >>
> >> On 2017-10-17 15:52, Eric Rescorla wrote:
> >> > Hi folks.
> >> >
> >> > I've been working some more on my IETF review tools and I'm now at the
> >> point
> >> > where I want to take an external review and hoist it into the IESG
> >> Ballot.
> >> > Is there
> >> > an existing API surface for this kind of thing? Perhaps one which
> takes
> >> an
> >> > auth token
> >> > so no CSRF/cookie nonsense?
> >>
> >> No, there isn't, but adding an endpoint for this isn't that hard.  There
> >> are things ahead of it in the queue, though ,:-)
> >>
> >>
> >> Best regards,
> >>
> >>         Henrik
> >>
> >>
> >>
> >>
> >>
> >
>
>

--001a113e688ef306bf055bd37934
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <span dir=3D"ltr">&lt=
;<a href=3D"mailto:henrik@levkowetz.com" target=3D"_blank">henrik@levkowetz=
.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D=
""><br>
On 2017-10-18 16:47, Eric Rescorla wrote:<br>
&gt; Thanks. I would actually be fine with replicating the existing API sur=
face<br>
&gt; (it&#39;s not that hard to generate form fills), as long as I could us=
e an API<br>
&gt; key rather than a cookie, because it&#39;s a real pain to replicate th=
e<br>
&gt; anti-CSRF logic.<br>
<br>
</span>I&#39;m fine with an API key as alternative to anti-CSRF, but would =
not like to<br>
rely on only that for authorization.=C2=A0</blockquote><div><br></div><div>=
I was thinking a per-user API token the way that (say) the Github API works=
.</div><div>Would that be a problem?<br></div><div><br></div><div><br></div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"> Are you ok with doing a regular login<br>
cycle to cookie storage ahead of posting to the form with the API key?<br><=
/blockquote><div><br></div><div>I could also do this as long as the=C2=A0 c=
ookie was perpetual so I could log in through</div><div>my browser and then=
 store the cookie on the server. I&#39;d like to avoid having my</div><div>=
password on the server.</div><div><br></div><div>-Ekr</div><div><br></div><=
div><br></div><div><br></div><div><br></div><div><br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
&gt; -Ekr<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz &lt;<a href=3D"mailt=
o:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt; Hi Ekr,<br>
&gt;&gt;<br>
&gt;&gt; On 2017-10-17 15:52, Eric Rescorla wrote:<br>
&gt;&gt; &gt; Hi folks.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;ve been working some more on my IETF review tools and I=
&#39;m now at the<br>
&gt;&gt; point<br>
&gt;&gt; &gt; where I want to take an external review and hoist it into the=
 IESG<br>
&gt;&gt; Ballot.<br>
&gt;&gt; &gt; Is there<br>
&gt;&gt; &gt; an existing API surface for this kind of thing? Perhaps one w=
hich takes<br>
&gt;&gt; an<br>
&gt;&gt; &gt; auth token<br>
&gt;&gt; &gt; so no CSRF/cookie nonsense?<br>
&gt;&gt;<br>
&gt;&gt; No, there isn&#39;t, but adding an endpoint for this isn&#39;t tha=
t hard.=C2=A0 There<br>
&gt;&gt; are things ahead of it in the queue, though ,:-)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div></div>

--001a113e688ef306bf055bd37934--


From nobody Wed Oct 18 08:31:15 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C99D5132CE7 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 08:31:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Td7FHIUV7J7T for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 08:31:12 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 802FA132153 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 08:31:12 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:60208 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4qJL-0008DI-9R; Wed, 18 Oct 2017 08:31:12 -0700
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
Date: Wed, 18 Oct 2017 17:31:03 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="lxLVUR5hw0NI6g8dMwCml7UCvHWGQqGoe"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/C0yAz0_VodA3PUHqpFaavMH8tQo>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 15:31:14 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--lxLVUR5hw0NI6g8dMwCml7UCvHWGQqGoe
Content-Type: multipart/mixed; boundary="H0Sp1mjVMNPJgNn6XIJN0iM4CROFOQLIL";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
 <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
 <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
In-Reply-To: <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>

--H0Sp1mjVMNPJgNn6XIJN0iM4CROFOQLIL
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 2017-10-18 16:58, Eric Rescorla wrote:
> On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <henrik@levkowetz.com=
>
> wrote:
>=20
>>
>> On 2017-10-18 16:47, Eric Rescorla wrote:
>> > Thanks. I would actually be fine with replicating the existing API
>> surface
>> > (it's not that hard to generate form fills), as long as I could use =
an
>> API
>> > key rather than a cookie, because it's a real pain to replicate the
>> > anti-CSRF logic.
>>
>> I'm fine with an API key as alternative to anti-CSRF, but would not li=
ke to
>> rely on only that for authorization.
>=20
>=20
> I was thinking a per-user API token

Yes, I assumed that.

> the way that (say) the Github API works.
> Would that be a problem?

I'll go and check the github API key details and the way they are used.

Essentially, what you're proposing is to use a combined authentication
and authorization token instead of username+password.  If that token
doesn't leak, it should not be a problem.  If it leaks, it's of course
a potential problem.

One property of API keys is often that they have a limited lifetime,
in order to reduce the impact of leakage.  Given what you write below,
I guess that's a property you would like to avoid, too?  Or would that
be acceptable?

> Are you ok with doing a regular login
>> cycle to cookie storage ahead of posting to the form with the API key?=

>>
>=20
> I could also do this as long as the cookie was perpetual so I could
> log in through my browser and then store the cookie on the server.
> I'd like to avoid having my password on the server.

Understood.

	Henrik

>=20
> -Ekr
>=20
>=20
>=20
>=20
>=20
>=20
>>
>>         Henrik
>>
>> > -Ekr
>> >
>> >
>> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <henrik@levkowetz.=
com>
>> > wrote:
>> >
>> >> Hi Ekr,
>> >>
>> >> On 2017-10-17 15:52, Eric Rescorla wrote:
>> >> > Hi folks.
>> >> >
>> >> > I've been working some more on my IETF review tools and I'm now a=
t the
>> >> point
>> >> > where I want to take an external review and hoist it into the IES=
G
>> >> Ballot.
>> >> > Is there
>> >> > an existing API surface for this kind of thing? Perhaps one which=

>> takes
>> >> an
>> >> > auth token
>> >> > so no CSRF/cookie nonsense?
>> >>
>> >> No, there isn't, but adding an endpoint for this isn't that hard.  =
There
>> >> are things ahead of it in the queue, though ,:-)
>> >>
>> >>
>> >> Best regards,
>> >>
>> >>         Henrik
>> >>
>> >>
>> >>
>> >>
>> >>
>> >
>>
>>
>=20


--H0Sp1mjVMNPJgNn6XIJN0iM4CROFOQLIL--

--lxLVUR5hw0NI6g8dMwCml7UCvHWGQqGoe
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ53O3AAoJEE6bV0uPuxcasq0P/Ak0HmvSDaeJei+Dcrok+gOq
xwjyegw2ntFoVnFj193Q0Pl1NpguaiKKDXJJz+LUDuQmYsyxSvV77uJPBhsgYaWd
WQlGyj2U7y9T8LFoKxB7uxdFAmLloXNQAF2k85SDQB8NpDiRmp/IsNlklvBew5ea
D2s0SPnmCPM7HN/FpG+XGFwXpEgEFcJvU4vVAperykIz1nbx3Y1qcXxHCjh0JUUg
Mr1yZ/f3eREuZ/cs6DApgr/0X43Y9ePWAweMx7/minLD77aWHphqEJUXQ9Xewhy7
eZngPz74dbDOgWF4Cpqc0stR39kfEG7q2tMAfT9/ofKiUBYH6J7WQUx/G6fY2WRF
tAC3ttWSPD2k3VMmYKuaOSYPWUWOBQVbr16eT7pRaSkiIPNDOTUNnb5bCpbwKx+F
vrhsQJm1tW2IS8kcILDP4CeUT3oGdDLNksrMAs5pzGS1wHKW1Fl7vh+QBJWKbY0Q
g2j8lkMDUojM82kdzyCy26Z3iPFB3l+rApAp15MivoHwS1KflrVI6/6ZdE2hnTTQ
aI3lvyRyLwQBnIdoR3AHTorVPznI1V5JnAbExTGp4BZtmmKz4wbib1bHpoZHK8x3
w2rAtuOdoyMIky36zFd9JqvjAuneTAcVpPEDlMm3LZ+vP4oGG/UmQBzQ9ZGEhyz6
N3G5Hetcfu5zagAo3kgc
=YRWz
-----END PGP SIGNATURE-----

--lxLVUR5hw0NI6g8dMwCml7UCvHWGQqGoe--


From nobody Wed Oct 18 08:38:37 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 87C2513421A for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 08:38:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dj8iO3sowTQC for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 08:38:33 -0700 (PDT)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com [IPv6:2607:f8b0:4002:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 58839132F3F for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 08:38:33 -0700 (PDT)
Received: by mail-yw0-x236.google.com with SMTP id y75so892096ywg.0 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 08:38:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=jdm/54d5WeIWI9y3j8qFPfXAVhWct/moF6dTDYB0NfY=; b=I2pOpDN4nAZzKcEU65po6ja79aIqHfyJe2aMuxopTzToamNJrxPBYCoYAUq0YtTuh/ 9G4tFcirDbE8U+XQHTj507Vl/A8/OTG/ZT2esNcpqcFWXjr6z9VA8Mcl09Js6pRWJeZ5 C80X1QeG6jyGxGyTz1gqcS0F6K4U01KKsKp78B7G7gy3hQx1IsrTLah7r/A9W8gwFEdF DVrJwzXyODfGLZ+9gYQN4FUq1FDHfl+36ThXBxVFldaoDoozDc3DYLjr10AQnTv+0bPp jbWZ8qAdmqYHR9L5irM4H6849HAU1lvoGQQK0W9oxC0oIxH1jsI1kWCWcj/9WSQJfNGY 3z7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=jdm/54d5WeIWI9y3j8qFPfXAVhWct/moF6dTDYB0NfY=; b=VPjAhapW1sgcwOyiuAwDz4VC7BzWM12lRh75TKKL5JyI7sdoVPShNeSJVej2LwpzvQ LSgkAXkgU94vCQgDyxvwtp/XEbpaI8Necep4ivSUJJkO7m5oOJ5C5SHOYW5IIrGiaCFq aJL+Jnv2NMsc6EgwOfeYGVDxnLeczdR+rvziwqPgolxiKTD9uRNQQQ8wSvM0cKrIZozU XJxD2xYupJcTvRGsXpEi0LWyPbQWR7VNIC4WnmP1QSWa6vjFQa2pfIB+gY9wwn56fjIT P6zqKZM2MyHWnEr2vWGDPrKMGT78Ca7ssFwU2GtjrDqZvTJZ4N8YFVgm+BWvhEuyd6Td ygNA==
X-Gm-Message-State: AMCzsaWBIh7kVIMdGT1SAE7dBXCiwemE6W1i4sIdWttpMDTXd84UAdym TC5TxOJ5yCvv3f/Hg5iiUDL3s+Gvz2PV0ZtrXYpAhK4V
X-Google-Smtp-Source: ABhQp+Tuy+PTK55gG1x0qzXF3KX0+xXXhopl/ui5/ynfyFRnJoYCeyie0lJUUc9iGleOcH1IG1uBmKqfxNS/4qYvpIo=
X-Received: by 10.37.83.66 with SMTP id h63mr4807812ybb.397.1508341112380; Wed, 18 Oct 2017 08:38:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 18 Oct 2017 08:37:51 -0700 (PDT)
In-Reply-To: <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 18 Oct 2017 08:37:51 -0700
Message-ID: <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a113e688e34334e055bd408db"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/kKtKtIFTXBTNNU-epZSlb_VJ1RM>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 15:38:35 -0000

--001a113e688e34334e055bd408db
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

>
> On 2017-10-18 16:58, Eric Rescorla wrote:
> > On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <henrik@levkowetz.com>
> > wrote:
> >
> >>
> >> On 2017-10-18 16:47, Eric Rescorla wrote:
> >> > Thanks. I would actually be fine with replicating the existing API
> >> surface
> >> > (it's not that hard to generate form fills), as long as I could use an
> >> API
> >> > key rather than a cookie, because it's a real pain to replicate the
> >> > anti-CSRF logic.
> >>
> >> I'm fine with an API key as alternative to anti-CSRF, but would not
> like to
> >> rely on only that for authorization.
> >
> >
> > I was thinking a per-user API token
>
> Yes, I assumed that.
>
> > the way that (say) the Github API works.
> > Would that be a problem?
>
> I'll go and check the github API key details and the way they are used.
>
> Essentially, what you're proposing is to use a combined authentication
> and authorization token instead of username+password.  If that token
> doesn't leak, it should not be a problem.  If it leaks, it's of course
> a potential problem.
>

Right, but of course that's the situation for a password as well.



> One property of API keys is often that they have a limited lifetime,
> in order to reduce the impact of leakage.  Given what you write below,
> I guess that's a property you would like to avoid, too?  Or would that
> be acceptable?
>

Yes, I would like to avoid that. The invariant I want to have here is that
I can provision the bridging server (the one that moves data back and
forth between phabricator and the data tracker) with credentials for
each side and then let it run indefinitely. At the end of the day,
one might imagine merging that logic into phab or the datatracker
or both, but because you want to avoid polling, the upshot will
still be distribution of credentials.

-Ekr


> > Are you ok with doing a regular login
> >> cycle to cookie storage ahead of posting to the form with the API key?
> >>
> >
> > I could also do this as long as the cookie was perpetual so I could
> > log in through my browser and then store the cookie on the server.
> > I'd like to avoid having my password on the server.
>
> Understood.
>
>         Henrik
>
> >
> > -Ekr
> >
> >
> >
> >
> >
> >
> >>
> >>         Henrik
> >>
> >> > -Ekr
> >> >
> >> >
> >> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <
> henrik@levkowetz.com>
> >> > wrote:
> >> >
> >> >> Hi Ekr,
> >> >>
> >> >> On 2017-10-17 15:52, Eric Rescorla wrote:
> >> >> > Hi folks.
> >> >> >
> >> >> > I've been working some more on my IETF review tools and I'm now at
> the
> >> >> point
> >> >> > where I want to take an external review and hoist it into the IESG
> >> >> Ballot.
> >> >> > Is there
> >> >> > an existing API surface for this kind of thing? Perhaps one which
> >> takes
> >> >> an
> >> >> > auth token
> >> >> > so no CSRF/cookie nonsense?
> >> >>
> >> >> No, there isn't, but adding an endpoint for this isn't that hard.
> There
> >> >> are things ahead of it in the queue, though ,:-)
> >> >>
> >> >>
> >> >> Best regards,
> >> >>
> >> >>         Henrik
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >>
> >>
> >
>
>

--001a113e688e34334e055bd408db
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz <span dir=3D"ltr">&lt=
;<a href=3D"mailto:henrik@levkowetz.com" target=3D"_blank">henrik@levkowetz=
.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D=
""><br>
On 2017-10-18 16:58, Eric Rescorla wrote:<br>
&gt; On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz &lt;<a href=3D"mailt=
o:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 2017-10-18 16:47, Eric Rescorla wrote:<br>
&gt;&gt; &gt; Thanks. I would actually be fine with replicating the existin=
g API<br>
&gt;&gt; surface<br>
&gt;&gt; &gt; (it&#39;s not that hard to generate form fills), as long as I=
 could use an<br>
&gt;&gt; API<br>
&gt;&gt; &gt; key rather than a cookie, because it&#39;s a real pain to rep=
licate the<br>
&gt;&gt; &gt; anti-CSRF logic.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m fine with an API key as alternative to anti-CSRF, but woul=
d not like to<br>
&gt;&gt; rely on only that for authorization.<br>
&gt;<br>
&gt;<br>
&gt; I was thinking a per-user API token<br>
<br>
</span>Yes, I assumed that.<br>
<span class=3D""><br>
&gt; the way that (say) the Github API works.<br>
&gt; Would that be a problem?<br>
<br>
</span>I&#39;ll go and check the github API key details and the way they ar=
e used.<br>
<br>
Essentially, what you&#39;re proposing is to use a combined authentication<=
br>
and authorization token instead of username+password.=C2=A0 If that token<b=
r>
doesn&#39;t leak, it should not be a problem.=C2=A0 If it leaks, it&#39;s o=
f course<br>
a potential problem.<br></blockquote><div><br></div><div>Right, but of cour=
se that&#39;s the situation for a password as well.</div><div><br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">One property of API keys is of=
ten that they have a limited lifetime,<br>
in order to reduce the impact of leakage.=C2=A0 Given what you write below,=
<br>
I guess that&#39;s a property you would like to avoid, too?=C2=A0 Or would =
that<br>
be acceptable?<br></blockquote><div><br></div><div>Yes, I would like to avo=
id that. The invariant I want to have here is that</div><div>I can provisio=
n the bridging server (the one that moves data back and</div><div>forth bet=
ween phabricator and the data tracker) with credentials for</div><div>each =
side and then let it run indefinitely. At the end of the day,</div><div>one=
 might imagine merging that logic into phab or the datatracker</div><div>or=
 both, but because you want to avoid polling, the upshot will</div><div>sti=
ll be distribution of credentials.</div><div><br></div><div>-Ekr</div><div>=
<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex">
<span class=3D""><br>
&gt; Are you ok with doing a regular login<br>
&gt;&gt; cycle to cookie storage ahead of posting to the form with the API =
key?<br>
&gt;&gt;<br>
&gt;<br>
&gt; I could also do this as long as the cookie was perpetual so I could<br=
>
&gt; log in through my browser and then store the cookie on the server.<br>
&gt; I&#39;d like to avoid having my password on the server.<br>
<br>
</span>Understood.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
&gt;<br>
&gt; -Ekr<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt;<br>
&gt;&gt; &gt; -Ekr<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz &lt;<a href=
=3D"mailto:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; Hi Ekr,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 2017-10-17 15:52, Eric Rescorla wrote:<br>
&gt;&gt; &gt;&gt; &gt; Hi folks.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I&#39;ve been working some more on my IETF review to=
ols and I&#39;m now at the<br>
&gt;&gt; &gt;&gt; point<br>
&gt;&gt; &gt;&gt; &gt; where I want to take an external review and hoist it=
 into the IESG<br>
&gt;&gt; &gt;&gt; Ballot.<br>
&gt;&gt; &gt;&gt; &gt; Is there<br>
&gt;&gt; &gt;&gt; &gt; an existing API surface for this kind of thing? Perh=
aps one which<br>
&gt;&gt; takes<br>
&gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt; auth token<br>
&gt;&gt; &gt;&gt; &gt; so no CSRF/cookie nonsense?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; No, there isn&#39;t, but adding an endpoint for this isn&=
#39;t that hard.=C2=A0 There<br>
&gt;&gt; &gt;&gt; are things ahead of it in the queue, though ,:-)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Best regards,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div></div>

--001a113e688e34334e055bd408db--


From nobody Wed Oct 18 10:11:35 2017
Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BCA4D132F69 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 10:11:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GaYZTSVJEdj0 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 10:11:32 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [209.87.249.19]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2510A132C2A for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 10:11:32 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [209.87.249.21]) by tuna.sandelman.ca (Postfix) with ESMTP id 4E45720095; Wed, 18 Oct 2017 13:11:37 -0400 (EDT)
Received: from obiwan.sandelman.ca (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id 52A1880D36; Wed, 18 Oct 2017 13:11:31 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Henrik Levkowetz <henrik@levkowetz.com>
cc: Fred Baker <fredbaker.ietf@gmail.com>, tools-discuss@ietf.org
In-Reply-To: <d836a5b8-a7c5-aa67-c03e-dc9cc895f078@levkowetz.com>
References: <5651CBF8-A4C2-4AD9-A39A-AF1FF831FD42@gmail.com> <d836a5b8-a7c5-aa67-c03e-dc9cc895f078@levkowetz.com>
X-Mailer: MH-E 8.6; nmh 1.7-RC3; GNU Emacs 24.5.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Wed, 18 Oct 2017 13:11:31 -0400
Message-ID: <7935.1508346691@obiwan.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/0I2UUuAnIM-miQ_Czg1RXVCZyEM>
Subject: Re: [Tools-discuss] Looking for a tool for grepping mail archives
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 17:11:34 -0000

--=-=-=
Content-Type: text/plain


Henrik Levkowetz <henrik@levkowetz.com> wrote:
    > There I'd select "URL's" from the 'Export' drop-down at the top of the
    > page, right, or alternatively go directly to for instance

    >   https://mailarchive.ietf.org/arch/export/url/?q=draft-ietf-v6ops-rfc6555bis

    > Does that do what you want, and if not, how could it be improved?

Cool... could the result be returned as imap:// urls?
(Can Thunderbird or some other program accept such things? I've no idea.)

--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-




--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEbsyLEzg/qUTA43uogItw+93Q3WUFAlnni0IACgkQgItw+93Q
3WU40wf9HEwVDl7jUo4Y2QNzaetJb3Wf+K7vXCTZtY4MLd0u7Gbw22CTSa+hCuRz
JQU3vXXHWNroxmZ3KjNHarEhepi8Nh7ePIsc2uXPYvFeaV6EHNTXQ7Nk5ClXY/TO
38S9pt6s7GKvRGa4Zt2ot+jd9LLXZSHQplX4KejMi3ONdZiQq+NujScx84Fy7vcE
+HCfXmpie953zI+vWHdcEM7ZK9MxsBm2WzTbXh10hnRDvuhgRhd1GJgRbglFiqb1
RMKqxhAR4A7otwfXJrkpGFh3FZbJfvo7Dgd0wpaPCse0F8gji1y3N1uBz0TTzV4x
K08z7dDXUXF4led/rphYmPC0IgVnxg==
=aCi1
-----END PGP SIGNATURE-----
--=-=-=--


From nobody Wed Oct 18 11:43:50 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 079E513306A for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 11:43:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6hoZDjAXL7oQ for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 11:43:48 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7CC0E13301F for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 11:43:48 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:63098 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4tJj-0005dT-6P; Wed, 18 Oct 2017 11:43:47 -0700
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
Date: Wed, 18 Oct 2017 20:43:39 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="fK3QG2OGBkNQaphQvvfo1rf2pQllUbd7E"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/-ZXI6orUQoI68lecASr9JW4w1so>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 18:43:50 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--fK3QG2OGBkNQaphQvvfo1rf2pQllUbd7E
Content-Type: multipart/mixed; boundary="TEt3nTtc1A4l5qn6d3XTCuQB2DUrgRiQP";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
 <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
 <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
 <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
 <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
In-Reply-To: <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>

--TEt3nTtc1A4l5qn6d3XTCuQB2DUrgRiQP
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 2017-10-18 17:37, Eric Rescorla wrote:
> On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz <henrik@levkowetz.com=
>
> wrote:
>=20
>>
>> On 2017-10-18 16:58, Eric Rescorla wrote:
>> > On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <henrik@levkowetz.=
com>
>> > wrote:
>> >
>> >>
>> >> On 2017-10-18 16:47, Eric Rescorla wrote:
>> >> > Thanks. I would actually be fine with replicating the existing AP=
I
>> >> surface
>> >> > (it's not that hard to generate form fills), as long as I could u=
se an
>> >> API
>> >> > key rather than a cookie, because it's a real pain to replicate t=
he
>> >> > anti-CSRF logic.
>> >>
>> >> I'm fine with an API key as alternative to anti-CSRF, but would not=

>> like to
>> >> rely on only that for authorization.
>> >
>> >
>> > I was thinking a per-user API token
>>
>> Yes, I assumed that.
>>
>> > the way that (say) the Github API works.
>> > Would that be a problem?
>>
>> I'll go and check the github API key details and the way they are used=
=2E
>>
>> Essentially, what you're proposing is to use a combined authentication=

>> and authorization token instead of username+password.  If that token
>> doesn't leak, it should not be a problem.  If it leaks, it's of course=

>> a potential problem.
>>
>=20
> Right, but of course that's the situation for a password as well.

Agreed, but you clearly aim to limit exposure of the password more
strongly than the API key.  To counterbalance this, I believe the
API key should be limited in what it authorizes the holder to do.
More below.

>> One property of API keys is often that they have a limited lifetime,
>> in order to reduce the impact of leakage.  Given what you write below,=

>> I guess that's a property you would like to avoid, too?  Or would that=

>> be acceptable?
>>
>=20
> Yes, I would like to avoid that. The invariant I want to have here is t=
hat
> I can provision the bridging server (the one that moves data back and
> forth between phabricator and the data tracker) with credentials for
> each side and then let it run indefinitely. At the end of the day,
> one might imagine merging that logic into phab or the datatracker
> or both, but because you want to avoid polling, the upshot will
> still be distribution of credentials.

Right.

Ok, so in order to limit the damage an exposed API key can do, here are
some thoughts:

 * Provide a GUI to revoke a key (necessary in any case) and give
   an overview of existing keys and their usage.

 * Time limit the validity of the key to N days (30?) from the time of
   the latest login to the datatracker using username+password.

 * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
   This means having multiple keys if we evolve additional API endpoints,=

   which I expect to happen.

 * Provide regular information in the datatracker GUI about API key
   activity in a manner easily digested and minimally distracting.
   Maybe a message once a week, summarising the activity?

Thoughts?

	Henrik


>=20
> -Ekr
>=20
>=20
>> > Are you ok with doing a regular login
>> >> cycle to cookie storage ahead of posting to the form with the API k=
ey?
>> >>
>> >
>> > I could also do this as long as the cookie was perpetual so I could
>> > log in through my browser and then store the cookie on the server.
>> > I'd like to avoid having my password on the server.
>>
>> Understood.
>>
>>         Henrik
>>
>> >
>> > -Ekr
>> >
>> >
>> >
>> >
>> >
>> >
>> >>
>> >>         Henrik
>> >>
>> >> > -Ekr
>> >> >
>> >> >
>> >> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <
>> henrik@levkowetz.com>
>> >> > wrote:
>> >> >
>> >> >> Hi Ekr,
>> >> >>
>> >> >> On 2017-10-17 15:52, Eric Rescorla wrote:
>> >> >> > Hi folks.
>> >> >> >
>> >> >> > I've been working some more on my IETF review tools and I'm no=
w at
>> the
>> >> >> point
>> >> >> > where I want to take an external review and hoist it into the =
IESG
>> >> >> Ballot.
>> >> >> > Is there
>> >> >> > an existing API surface for this kind of thing? Perhaps one wh=
ich
>> >> takes
>> >> >> an
>> >> >> > auth token
>> >> >> > so no CSRF/cookie nonsense?
>> >> >>
>> >> >> No, there isn't, but adding an endpoint for this isn't that hard=
=2E
>> There
>> >> >> are things ahead of it in the queue, though ,:-)
>> >> >>
>> >> >>
>> >> >> Best regards,
>> >> >>
>> >> >>         Henrik
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >>
>> >>
>> >
>>
>>
>=20


--TEt3nTtc1A4l5qn6d3XTCuQB2DUrgRiQP--

--fK3QG2OGBkNQaphQvvfo1rf2pQllUbd7E
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ56DbAAoJEE6bV0uPuxcamDMP/3MuNGbIVHBUVdtsTAhWh8rQ
Oqx3h9PEHyT+SownIR5vSnK2ar+PEQU8z9gUYkL4SavCVHEBHS9IQie/7QsoTWaM
eTbvO6VSRr1UMUmMaqr25J8+49Tgi94Tqo+wdP6j7YsSmb7r9bqik5+lx1x1I6jG
/aVvgJdrsxaI08SABKA2U/l92ScxDFpJJnNjmhhlkjn6Rn0YLThRthUgwfumqf56
GzIALG3xr71FlqaawKBYS5UxulHFFQrIwAQuhPh4n3C5semG13HsMtHg2vSUSaLQ
U/YSkJW82UlxNXxkOHRfh3ZDd3rmPY8LUZy/2oes+vcrndjOFAYhQg0r9eTs997U
reu8pVcmGq5YtwPievz54//4XfSHO3v7E5nvFbF9PRPaOpVcGeBND4DSze+nvmJW
D5GU/ZQSXYAELrNtEt6ygRuM2oP5lChTkO+S8RZi9LCQ8e8p9HWp98KbjM4j9kYc
OfWNsi7G5YWSi97BZyKBojsqrxC2OOtGIywURU5n5xXWrGt0ytGz/bZ3aJmyjPnJ
zfDkvSh5KQUUlpAhFhEYBWvHh57dwt1rGHv0BHS+fBQPe1XYF0S7HznBK+e1IHQi
F5CtSbelr0z6Oz/UnG1k19lkT4BoqMx9NS9iPFb46f9VcGs/bNBi9MB6Elxywm9w
qitrdjshc+szz8wbVlSC
=untc
-----END PGP SIGNATURE-----

--fK3QG2OGBkNQaphQvvfo1rf2pQllUbd7E--


From nobody Wed Oct 18 11:51:40 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3AD0B1321C9 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 11:51:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TbGikhWFNcCk for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 11:51:37 -0700 (PDT)
Received: from mail-yw0-x22e.google.com (mail-yw0-x22e.google.com [IPv6:2607:f8b0:4002:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DBA9C133059 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 11:51:36 -0700 (PDT)
Received: by mail-yw0-x22e.google.com with SMTP id i198so1428958ywe.7 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 11:51:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZUIV4Fw5Dhs+acAiN4Dub8YKrzCc4JMckxeZ2mA8oTU=; b=DP1KWgPo1Y54SPaAweh0T52J1eA22v1OBga7p3fnJvFEXRV/SkugRHRMmQQWcfZdym wVZYi++HUqdowK6Haqd9AlIvlk4KVWwamKHlgdNPhBxm+8Lt/93e5y/qvmjJ39UVmU3K ps7BL4ORBATQ8bC8/oL2zHm15GMayrQLQGet/K4JgwHnaIeEP/cC9LMIXAxNQ6h/W5Cp vnXmRb4PY9ENkRsHr39QeDhroCLGTNCUAIKTBBnkW9IlpCtMl3vcVLT2TRLwFmtXF0/2 3WIGDezWKtSYqf4HqSYFgpChXdNhnuivPggabryEWk5fbw6fXyhI5GIO/fae5sN2v4ew B+bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZUIV4Fw5Dhs+acAiN4Dub8YKrzCc4JMckxeZ2mA8oTU=; b=bI+ccjJaH/r5kAiybrXL19Amin3R3qmaXhsSyAGHNNlcGKiIbc/8vTcm7V2FK9Yreg PVUDv51+xqk34RhlAtT/Gpq6tzfKojvxQev2V4kRG2RtZ6ALh5OjN0nDozwHgWWB0v5t WdR4YF4qGSKq7x52w/hlEAVsHtnYogSZw2H5OpLH9NFA3d7RG6AKOfnW4a0/+k10dvcS N2v+XOajjFxfGJu9WEJKUxT2QdXj2ZkBVPzO4uZToQeKKwsQ6hNgRpqp0s0KyLkNPjbl x4dMKiy8LBd89DbOjHi8q8J8MlAEdk8k+0V7Co6HJbom0WiFXAcNX6zxePCuQbI8cvfh ymNA==
X-Gm-Message-State: AMCzsaVhv8itrwLwPg/8QoLUfk4LoejKwq6TifW+RZY0QXr0EHs/Y4t6 wIfJ0gBSFSxSRyvnEYv+BfFcCUqYOW7ClnXLp47mFMeA
X-Google-Smtp-Source: ABhQp+TBXJFyrt9ZcRIWkc3I1piiEOl8ylB1LND06bJRWteXeny67g4MXzVNPM1A1eJ1+4RdDtjzD1xqNUWO+q3txFc=
X-Received: by 10.37.83.66 with SMTP id h63mr5184397ybb.397.1508352696054; Wed, 18 Oct 2017 11:51:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 18 Oct 2017 11:50:55 -0700 (PDT)
In-Reply-To: <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 18 Oct 2017 11:50:55 -0700
Message-ID: <CABcZeBP5zcd9s-UM6hT-4Esh_2HOmkROzWqyd6Kvj3V4CL23Yg@mail.gmail.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="001a113e688ea5168b055bd6ba36"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/K3dMDXNBN74q2WED0CuSxABAxP0>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 18:51:39 -0000

--001a113e688ea5168b055bd6ba36
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 18, 2017 at 11:43 AM, Henrik Levkowetz <henrik@levkowetz.com>
wrote:

>
> On 2017-10-18 17:37, Eric Rescorla wrote:
> > On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz <henrik@levkowetz.com>
> > wrote:
> >
> >>
> >> On 2017-10-18 16:58, Eric Rescorla wrote:
> >> > On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <
> henrik@levkowetz.com>
> >> > wrote:
> >> >
> >> >>
> >> >> On 2017-10-18 16:47, Eric Rescorla wrote:
> >> >> > Thanks. I would actually be fine with replicating the existing API
> >> >> surface
> >> >> > (it's not that hard to generate form fills), as long as I could
> use an
> >> >> API
> >> >> > key rather than a cookie, because it's a real pain to replicate the
> >> >> > anti-CSRF logic.
> >> >>
> >> >> I'm fine with an API key as alternative to anti-CSRF, but would not
> >> like to
> >> >> rely on only that for authorization.
> >> >
> >> >
> >> > I was thinking a per-user API token
> >>
> >> Yes, I assumed that.
> >>
> >> > the way that (say) the Github API works.
> >> > Would that be a problem?
> >>
> >> I'll go and check the github API key details and the way they are used.
> >>
> >> Essentially, what you're proposing is to use a combined authentication
> >> and authorization token instead of username+password.  If that token
> >> doesn't leak, it should not be a problem.  If it leaks, it's of course
> >> a potential problem.
> >>
> >
> > Right, but of course that's the situation for a password as well.
>
> Agreed, but you clearly aim to limit exposure of the password more
> strongly than the API key.  To counterbalance this, I believe the
> API key should be limited in what it authorizes the holder to do.
> More below.
>

This seems conceptually fine.


>> One property of API keys is often that they have a limited lifetime,
> >> in order to reduce the impact of leakage.  Given what you write below,
> >> I guess that's a property you would like to avoid, too?  Or would that
> >> be acceptable?
> >>
> >
> > Yes, I would like to avoid that. The invariant I want to have here is
> that
> > I can provision the bridging server (the one that moves data back and
> > forth between phabricator and the data tracker) with credentials for
> > each side and then let it run indefinitely. At the end of the day,
> > one might imagine merging that logic into phab or the datatracker
> > or both, but because you want to avoid polling, the upshot will
> > still be distribution of credentials.
>
> Right.
>
> Ok, so in order to limit the damage an exposed API key can do, here are
> some thoughts:
>
>  * Provide a GUI to revoke a key (necessary in any case) and give
>    an overview of existing keys and their usage.
>

This seems like a good plan.


 * Time limit the validity of the key to N days (30?) from the time of
>    the latest login to the datatracker using username+password.
>

Yeah, this seems like it would probably work though might be brittle.


 * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
>    This means having multiple keys if we evolve additional API endpoints,
>    which I expect to happen.
>
>  * Provide regular information in the datatracker GUI about API key
>    activity in a manner easily digested and minimally distracting.
>    Maybe a message once a week, summarising the activity?
>

Both of these seem like good ideas.

-Ekr


>
> Thoughts?
>
>         Henrik
>
>
> >
> > -Ekr
> >
> >
> >> > Are you ok with doing a regular login
> >> >> cycle to cookie storage ahead of posting to the form with the API
> key?
> >> >>
> >> >
> >> > I could also do this as long as the cookie was perpetual so I could
> >> > log in through my browser and then store the cookie on the server.
> >> > I'd like to avoid having my password on the server.
> >>
> >> Understood.
> >>
> >>         Henrik
> >>
> >> >
> >> > -Ekr
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >>
> >> >>         Henrik
> >> >>
> >> >> > -Ekr
> >> >> >
> >> >> >
> >> >> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <
> >> henrik@levkowetz.com>
> >> >> > wrote:
> >> >> >
> >> >> >> Hi Ekr,
> >> >> >>
> >> >> >> On 2017-10-17 15:52, Eric Rescorla wrote:
> >> >> >> > Hi folks.
> >> >> >> >
> >> >> >> > I've been working some more on my IETF review tools and I'm now
> at
> >> the
> >> >> >> point
> >> >> >> > where I want to take an external review and hoist it into the
> IESG
> >> >> >> Ballot.
> >> >> >> > Is there
> >> >> >> > an existing API surface for this kind of thing? Perhaps one
> which
> >> >> takes
> >> >> >> an
> >> >> >> > auth token
> >> >> >> > so no CSRF/cookie nonsense?
> >> >> >>
> >> >> >> No, there isn't, but adding an endpoint for this isn't that hard.
> >> There
> >> >> >> are things ahead of it in the queue, though ,:-)
> >> >> >>
> >> >> >>
> >> >> >> Best regards,
> >> >> >>
> >> >> >>         Henrik
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >
> >> >>
> >> >>
> >> >
> >>
> >>
> >
>
>

--001a113e688ea5168b055bd6ba36
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Oct 18, 2017 at 11:43 AM, Henrik Levkowetz <span dir=3D"ltr">&l=
t;<a href=3D"mailto:henrik@levkowetz.com" target=3D"_blank">henrik@levkowet=
z.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D=
"HOEnZb"><div class=3D"h5"><br>
On 2017-10-18 17:37, Eric Rescorla wrote:<br>
&gt; On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz &lt;<a href=3D"mailt=
o:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 2017-10-18 16:58, Eric Rescorla wrote:<br>
&gt;&gt; &gt; On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz &lt;<a href=
=3D"mailto:henrik@levkowetz.com">henrik@levkowetz.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On 2017-10-18 16:47, Eric Rescorla wrote:<br>
&gt;&gt; &gt;&gt; &gt; Thanks. I would actually be fine with replicating th=
e existing API<br>
&gt;&gt; &gt;&gt; surface<br>
&gt;&gt; &gt;&gt; &gt; (it&#39;s not that hard to generate form fills), as =
long as I could use an<br>
&gt;&gt; &gt;&gt; API<br>
&gt;&gt; &gt;&gt; &gt; key rather than a cookie, because it&#39;s a real pa=
in to replicate the<br>
&gt;&gt; &gt;&gt; &gt; anti-CSRF logic.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I&#39;m fine with an API key as alternative to anti-CSRF,=
 but would not<br>
&gt;&gt; like to<br>
&gt;&gt; &gt;&gt; rely on only that for authorization.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I was thinking a per-user API token<br>
&gt;&gt;<br>
&gt;&gt; Yes, I assumed that.<br>
&gt;&gt;<br>
&gt;&gt; &gt; the way that (say) the Github API works.<br>
&gt;&gt; &gt; Would that be a problem?<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ll go and check the github API key details and the way they =
are used.<br>
&gt;&gt;<br>
&gt;&gt; Essentially, what you&#39;re proposing is to use a combined authen=
tication<br>
&gt;&gt; and authorization token instead of username+password.=C2=A0 If tha=
t token<br>
&gt;&gt; doesn&#39;t leak, it should not be a problem.=C2=A0 If it leaks, i=
t&#39;s of course<br>
&gt;&gt; a potential problem.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Right, but of course that&#39;s the situation for a password as well.<=
br>
<br>
</div></div>Agreed, but you clearly aim to limit exposure of the password m=
ore<br>
strongly than the API key.=C2=A0 To counterbalance this, I believe the<br>
API key should be limited in what it authorizes the holder to do.<br>
More below.<br></blockquote><div><br></div><div>This seems conceptually fin=
e.</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span =
class=3D"">
&gt;&gt; One property of API keys is often that they have a limited lifetim=
e,<br>
&gt;&gt; in order to reduce the impact of leakage.=C2=A0 Given what you wri=
te below,<br>
&gt;&gt; I guess that&#39;s a property you would like to avoid, too?=C2=A0 =
Or would that<br>
&gt;&gt; be acceptable?<br>
&gt;&gt;<br>
&gt;<br>
&gt; Yes, I would like to avoid that. The invariant I want to have here is =
that<br>
&gt; I can provision the bridging server (the one that moves data back and<=
br>
&gt; forth between phabricator and the data tracker) with credentials for<b=
r>
&gt; each side and then let it run indefinitely. At the end of the day,<br>
&gt; one might imagine merging that logic into phab or the datatracker<br>
&gt; or both, but because you want to avoid polling, the upshot will<br>
&gt; still be distribution of credentials.<br>
<br>
</span>Right.<br>
<br>
Ok, so in order to limit the damage an exposed API key can do, here are<br>
some thoughts:<br>
<br>
=C2=A0* Provide a GUI to revoke a key (necessary in any case) and give<br>
=C2=A0 =C2=A0an overview of existing keys and their usage.<br></blockquote>=
<div><br></div><div>This seems like a good plan.</div><div><br></div><div><=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">
=C2=A0* Time limit the validity of the key to N days (30?) from the time of=
<br>
=C2=A0 =C2=A0the latest login to the datatracker using username+password.<b=
r></blockquote><div><br></div><div>Yeah, this seems like it would probably =
work though might be brittle.</div><div><br></div><div><br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol=
id;padding-left:1ex">
=C2=A0* Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)<=
br>
=C2=A0 =C2=A0This means having multiple keys if we evolve additional API en=
dpoints,<br>
=C2=A0 =C2=A0which I expect to happen.<br>
<br>
=C2=A0* Provide regular information in the datatracker GUI about API key<br=
>
=C2=A0 =C2=A0activity in a manner easily digested and minimally distracting=
.<br>
=C2=A0 =C2=A0Maybe a message once a week, summarising the activity?<br></bl=
ockquote><div><br></div><div>Both of these seem like good ideas.</div><div>=
<br></div><div>-Ekr</div><div>=C2=A0</div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thoughts?<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Henrik<br>
</font></span><div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
&gt;<br>
&gt; -Ekr<br>
&gt;<br>
&gt;<br>
&gt;&gt; &gt; Are you ok with doing a regular login<br>
&gt;&gt; &gt;&gt; cycle to cookie storage ahead of posting to the form with=
 the API key?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I could also do this as long as the cookie was perpetual so I=
 could<br>
&gt;&gt; &gt; log in through my browser and then store the cookie on the se=
rver.<br>
&gt;&gt; &gt; I&#39;d like to avoid having my password on the server.<br>
&gt;&gt;<br>
&gt;&gt; Understood.<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -Ekr<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt; -Ekr<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz &l=
t;<br>
&gt;&gt; <a href=3D"mailto:henrik@levkowetz.com">henrik@levkowetz.com</a>&g=
t;<br>
&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Hi Ekr,<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; On 2017-10-17 15:52, Eric Rescorla wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Hi folks.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; I&#39;ve been working some more on my IETF =
review tools and I&#39;m now at<br>
&gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; point<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; where I want to take an external review and=
 hoist it into the IESG<br>
&gt;&gt; &gt;&gt; &gt;&gt; Ballot.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Is there<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; an existing API surface for this kind of th=
ing? Perhaps one which<br>
&gt;&gt; &gt;&gt; takes<br>
&gt;&gt; &gt;&gt; &gt;&gt; an<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; auth token<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; so no CSRF/cookie nonsense?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; No, there isn&#39;t, but adding an endpoint for =
this isn&#39;t that hard.<br>
&gt;&gt; There<br>
&gt;&gt; &gt;&gt; &gt;&gt; are things ahead of it in the queue, though ,:-)=
<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Best regards,<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Henrik<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div></div>

--001a113e688ea5168b055bd6ba36--


From nobody Wed Oct 18 13:36:01 2017
Return-Path: <housley@vigilsec.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 09D95134453 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 13:36:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wnZtn8qxPp0k for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 13:35:58 -0700 (PDT)
Received: from mail.smeinc.net (mail.smeinc.net [209.135.209.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DB9A0134463 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 13:35:40 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.smeinc.net (Postfix) with ESMTP id 2E72A300579 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 16:35:40 -0400 (EDT)
X-Virus-Scanned: amavisd-new at mail.smeinc.net
Received: from mail.smeinc.net ([127.0.0.1]) by localhost (mail.smeinc.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pPpQi3YGRxF4 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 16:35:39 -0400 (EDT)
Received: from a860b60074bd.home (pool-108-45-101-150.washdc.fios.verizon.net [108.45.101.150]) by mail.smeinc.net (Postfix) with ESMTPSA id 1CD7830022B; Wed, 18 Oct 2017 16:35:39 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Russ Housley <housley@vigilsec.com>
In-Reply-To: <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
Date: Wed, 18 Oct 2017 16:35:38 -0400
Cc: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
To: Henrik Levkowetz <henrik@levkowetz.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/dmRsuZ-aHldZED1n7yuOKpOvUgE>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 20:36:00 -0000

> Ok, so in order to limit the damage an exposed API key can do, here =
are
> some thoughts:
>=20
> * Provide a GUI to revoke a key (necessary in any case) and give
>   an overview of existing keys and their usage.
>=20
> * Time limit the validity of the key to N days (30?) from the time of
>   the latest login to the datatracker using username+password.
>=20
> * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
>   This means having multiple keys if we evolve additional API =
endpoints,
>   which I expect to happen.
>=20
> * Provide regular information in the datatracker GUI about API key
>   activity in a manner easily digested and minimally distracting.
>   Maybe a message once a week, summarising the activity?
>=20
> Thoughts?

The API key needed to be bound to a particular role (like AD), and if =
the user looses that role, then the API key needs to be revoked by the =
datatracker automatically.  I just think this means that there are a =
series of checks that are made when the API key is used, and if any of =
the checks fails, then the API key gets flushed.  Future attempts to use =
the API key lead to "unknown API key".

Russ


From nobody Wed Oct 18 13:46:25 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8FA6513308A for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 13:46:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zKQQ03yoSu6P for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 13:46:21 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 775CA133020 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 13:46:21 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:64709 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4vEK-0004c1-7j; Wed, 18 Oct 2017 13:46:20 -0700
To: Eric Rescorla <ekr@rtfm.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com> <CABcZeBP5zcd9s-UM6hT-4Esh_2HOmkROzWqyd6Kvj3V4CL23Yg@mail.gmail.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <35dcfa8a-d7db-ace4-9d53-d273993128f3@levkowetz.com>
Date: Wed, 18 Oct 2017 22:46:12 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CABcZeBP5zcd9s-UM6hT-4Esh_2HOmkROzWqyd6Kvj3V4CL23Yg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="iWO0OT4pLERPLpiP78HapW3BuphA9rUun"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/PgeGk2zM9MlHw10JThA-tSlBzLQ>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 20:46:23 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--iWO0OT4pLERPLpiP78HapW3BuphA9rUun
Content-Type: multipart/mixed; boundary="lpRvQiAj6urTacGrO8755Cm3JG84wfva2";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <35dcfa8a-d7db-ace4-9d53-d273993128f3@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
 <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
 <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
 <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
 <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
 <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
 <CABcZeBP5zcd9s-UM6hT-4Esh_2HOmkROzWqyd6Kvj3V4CL23Yg@mail.gmail.com>
In-Reply-To: <CABcZeBP5zcd9s-UM6hT-4Esh_2HOmkROzWqyd6Kvj3V4CL23Yg@mail.gmail.com>

--lpRvQiAj6urTacGrO8755Cm3JG84wfva2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Ok, good.  I expect to talk priorities and task queue with Russ shortly.

	Henrik

On 2017-10-18 20:50, Eric Rescorla wrote:
> On Wed, Oct 18, 2017 at 11:43 AM, Henrik Levkowetz <henrik@levkowetz.co=
m>
> wrote:
>=20
>> On 2017-10-18 17:37, Eric Rescorla wrote:
>> > On Wed, Oct 18, 2017 at 8:31 AM, Henrik Levkowetz <henrik@levkowetz.=
com>
>> > wrote:
>> >
>> >>
>> >> On 2017-10-18 16:58, Eric Rescorla wrote:
>> >> > On Wed, Oct 18, 2017 at 7:54 AM, Henrik Levkowetz <
>> henrik@levkowetz.com>
>> >> > wrote:
>> >> >
>> >> >>
>> >> >> On 2017-10-18 16:47, Eric Rescorla wrote:
>> >> >> > Thanks. I would actually be fine with replicating the existing=
 API
>> >> >> surface
>> >> >> > (it's not that hard to generate form fills), as long as I coul=
d
>> use an
>> >> >> API
>> >> >> > key rather than a cookie, because it's a real pain to replicat=
e the
>> >> >> > anti-CSRF logic.
>> >> >>
>> >> >> I'm fine with an API key as alternative to anti-CSRF, but would =
not
>> >> like to
>> >> >> rely on only that for authorization.
>> >> >
>> >> >
>> >> > I was thinking a per-user API token
>> >>
>> >> Yes, I assumed that.
>> >>
>> >> > the way that (say) the Github API works.
>> >> > Would that be a problem?
>> >>
>> >> I'll go and check the github API key details and the way they are u=
sed.
>> >>
>> >> Essentially, what you're proposing is to use a combined authenticat=
ion
>> >> and authorization token instead of username+password.  If that toke=
n
>> >> doesn't leak, it should not be a problem.  If it leaks, it's of cou=
rse
>> >> a potential problem.
>> >>
>> >
>> > Right, but of course that's the situation for a password as well.
>>
>> Agreed, but you clearly aim to limit exposure of the password more
>> strongly than the API key.  To counterbalance this, I believe the
>> API key should be limited in what it authorizes the holder to do.
>> More below.
>>
>=20
> This seems conceptually fine.
>=20
>=20
>>> One property of API keys is often that they have a limited lifetime,
>> >> in order to reduce the impact of leakage.  Given what you write bel=
ow,
>> >> I guess that's a property you would like to avoid, too?  Or would t=
hat
>> >> be acceptable?
>> >>
>> >
>> > Yes, I would like to avoid that. The invariant I want to have here i=
s
>> that
>> > I can provision the bridging server (the one that moves data back an=
d
>> > forth between phabricator and the data tracker) with credentials for=

>> > each side and then let it run indefinitely. At the end of the day,
>> > one might imagine merging that logic into phab or the datatracker
>> > or both, but because you want to avoid polling, the upshot will
>> > still be distribution of credentials.
>>
>> Right.
>>
>> Ok, so in order to limit the damage an exposed API key can do, here ar=
e
>> some thoughts:
>>
>>  * Provide a GUI to revoke a key (necessary in any case) and give
>>    an overview of existing keys and their usage.
>>
>=20
> This seems like a good plan.
>=20
>=20
>  * Time limit the validity of the key to N days (30?) from the time of
>>    the latest login to the datatracker using username+password.
>>
>=20
> Yeah, this seems like it would probably work though might be brittle.
>=20
>=20
>  * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
>>    This means having multiple keys if we evolve additional API endpoin=
ts,
>>    which I expect to happen.
>>
>>  * Provide regular information in the datatracker GUI about API key
>>    activity in a manner easily digested and minimally distracting.
>>    Maybe a message once a week, summarising the activity?
>>
>=20
> Both of these seem like good ideas.
>=20
> -Ekr
>=20
>=20
>>
>> Thoughts?
>>
>>         Henrik
>>
>>
>> >
>> > -Ekr
>> >
>> >
>> >> > Are you ok with doing a regular login
>> >> >> cycle to cookie storage ahead of posting to the form with the AP=
I
>> key?
>> >> >>
>> >> >
>> >> > I could also do this as long as the cookie was perpetual so I cou=
ld
>> >> > log in through my browser and then store the cookie on the server=
=2E
>> >> > I'd like to avoid having my password on the server.
>> >>
>> >> Understood.
>> >>
>> >>         Henrik
>> >>
>> >> >
>> >> > -Ekr
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >>
>> >> >>         Henrik
>> >> >>
>> >> >> > -Ekr
>> >> >> >
>> >> >> >
>> >> >> > On Wed, Oct 18, 2017 at 5:19 AM, Henrik Levkowetz <
>> >> henrik@levkowetz.com>
>> >> >> > wrote:
>> >> >> >
>> >> >> >> Hi Ekr,
>> >> >> >>
>> >> >> >> On 2017-10-17 15:52, Eric Rescorla wrote:
>> >> >> >> > Hi folks.
>> >> >> >> >
>> >> >> >> > I've been working some more on my IETF review tools and I'm=
 now
>> at
>> >> the
>> >> >> >> point
>> >> >> >> > where I want to take an external review and hoist it into t=
he
>> IESG
>> >> >> >> Ballot.
>> >> >> >> > Is there
>> >> >> >> > an existing API surface for this kind of thing? Perhaps one=

>> which
>> >> >> takes
>> >> >> >> an
>> >> >> >> > auth token
>> >> >> >> > so no CSRF/cookie nonsense?
>> >> >> >>
>> >> >> >> No, there isn't, but adding an endpoint for this isn't that h=
ard.
>> >> There
>> >> >> >> are things ahead of it in the queue, though ,:-)
>> >> >> >>
>> >> >> >>
>> >> >> >> Best regards,
>> >> >> >>
>> >> >> >>         Henrik
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >>
>> >> >>
>> >> >
>> >>
>> >>
>> >
>>
>>
>=20


--lpRvQiAj6urTacGrO8755Cm3JG84wfva2--

--iWO0OT4pLERPLpiP78HapW3BuphA9rUun
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ572UAAoJEE6bV0uPuxcaJIkP/j0dTtXAAnuhaEfqGZvyq8c8
xcjR4+rc1R76Zvrx0BPxciZc74iOOU3yWIO7qIS08brgw525hWPAj2OBNxLeQg9w
cZhq2+2CjOGjMDIj1QcY69exptx4YknSaC9brWd54koGUUeRhw/L+sGPOBxnhVzX
xBPRBgW2PQFS/X6O9ixYj5rayJj6Ay6QJD/qrMUS5Ir7v7sJq9/QtjJP9B4WqM1C
oECtrtqPkYxZvGRC9OnvGniqRMfmcocLK9PgXXwuc1D15+X1Sx59d1RciRNdRk6X
SJX8MlBUKBkWcA30YUvrW5mLQBGNGfobysseTM+JyJ6pP32Jm7RN5nVHOe6Frx6w
LHnYO26Bnllp2JMMrhqET2v+gdUgCUoKneaYFRfHZ2XmSyUDZmwEZYPtN00JRWpA
5I5BqFgbBVFPalZrgwb23J+7h3RPH9WRUelEfKkdKuAK1hVwM9WbDKD8rAmFWX+N
pg3t34uIdZSGjuEJnYudRfwnwnH5aBj358WIJ5nkjYpU1I2BNm69L++ZOL40d1Uu
K9VcnDMHscGubwSBFtGYtoNK7sdlYDmJPKvJ05oa8Qtyk6NX0fAHu7ODCINQoMAH
e28Ul0HFKSat7Vx1QuaANdPb0BKYtSpPJQT6EtLwV+sdie6QjfbiMTl7asoRMNdA
8rxCV9PqlYCEM5ouqi8u
=h8U5
-----END PGP SIGNATURE-----

--iWO0OT4pLERPLpiP78HapW3BuphA9rUun--


From nobody Wed Oct 18 14:00:48 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 92CF7132193 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:00:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZP27XTUoKNxN for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:00:45 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 36EA2132620 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 14:00:45 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:64940 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e4vSG-0001m7-CB; Wed, 18 Oct 2017 14:00:44 -0700
To: Russ Housley <housley@vigilsec.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com> <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
Cc: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com>
Date: Wed, 18 Oct 2017 23:00:36 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="uQMVfpNEEF5s1vfl8GG4XIpaCoBRebmD7"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, ekr@rtfm.com, housley@vigilsec.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/yUm0dCA9jq5_9E9YXIWkP9PWxbg>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 21:00:47 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--uQMVfpNEEF5s1vfl8GG4XIpaCoBRebmD7
Content-Type: multipart/mixed; boundary="BuR275Qi36Wf0Xwe3emCi5HpxbjN5dKrk";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Russ Housley <housley@vigilsec.com>
Cc: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
Message-ID: <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
 <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
 <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
 <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
 <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
 <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
 <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
In-Reply-To: <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>

--BuR275Qi36Wf0Xwe3emCi5HpxbjN5dKrk
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Russ,

On 2017-10-18 22:35, Russ Housley wrote:
>> Ok, so in order to limit the damage an exposed API key can do, here ar=
e
>> some thoughts:
>>=20
>> * Provide a GUI to revoke a key (necessary in any case) and give
>>   an overview of existing keys and their usage.
>>=20
>> * Time limit the validity of the key to N days (30?) from the time of
>>   the latest login to the datatracker using username+password.
>>=20
>> * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
>>   This means having multiple keys if we evolve additional API endpoint=
s,
>>   which I expect to happen.
>>=20
>> * Provide regular information in the datatracker GUI about API key
>>   activity in a manner easily digested and minimally distracting.
>>   Maybe a message once a week, summarising the activity?
>>=20
>> Thoughts?
>=20
> The API key needed to be bound to a particular role (like AD), and if
> the user looses that role, then the API key needs to be revoked by
> the datatracker automatically. I just think this means that there are
> a series of checks that are made when the API key is used, and if any
> of the checks fails, then the API key gets flushed. Future attempts
> to use the API key lead to "unknown API key".

Ack on adding flushing on misuse to the list of possible restrictions.

Regarding the role part, my thought was to handle that not by binding
the key directly to the role(s), but rather to handle the role transitive=
ly
through the user.  Get the user from the key, and apply the usual role
checks we have for different operations to the roles the user has at the
moment.  That handles role validation the same way as when doing an
operation through a form.


	Henrik


--BuR275Qi36Wf0Xwe3emCi5HpxbjN5dKrk--

--uQMVfpNEEF5s1vfl8GG4XIpaCoBRebmD7
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ58D0AAoJEE6bV0uPuxcaQcEQANSc0GKOI9LW2hzxVRhYO/hp
EEcnXc+CNqctIiBiT9jfdJHsBh4dS11B5/VjzCJwi5NL/16FeEx9+LebNWPTOvUv
xT7OB0g+jGvcbK+xtdVrmxIXdVr3bB079/ZDqwKtLMru8VTVD/CA8s7UZf2ehGxi
WAZSqaE5R9CXH7NID6k1eR2dhzz8E4zLONnXGgi196sf4P0XWNL0GFwDP5+g27ER
b0rvbnMfXNDwIHIzW3Mn4EMaiiWbwJjNJzfUTcG0ACSJn+gIcDGmw1WSnrF/21qQ
Ukt4s+2PBgwHPftWU6oInzTNqzZhPqr0+QJzUImTbqXUAgVkU1NhVMQD1YjJZbWD
q/talfHejD6OBcdE8L3xkMNVA1yu0yZGEXXIjCxGRIPicPbqJIvih7BQImY5Rly8
NUd9ckhAjxvlWe3Q7bcQZzqGUWN+SfUQ0BtYzHf524mZAfX/Mo1CNX8rQ106apNU
LCjPr95JkGfLXxf6rARRBhlc85slmINRxHNSzj5eeR8dPKBYbAGne3JCJmzTUNS4
regQBPfjAxAKvvFiLpgoz6r4Bun0PK1SUlV9gteywUQxjZsk73STWJvVGdnQIdAL
iIM5Qp/7+v9UvywhlgEUm3WPzXMgR/WpRwK3cRo1ciBYjctOPBdtZ3fzDzsFiKrJ
Mrwy0NRdx1zOeKXEZZF+
=HIm0
-----END PGP SIGNATURE-----

--uQMVfpNEEF5s1vfl8GG4XIpaCoBRebmD7--


From nobody Wed Oct 18 14:16:10 2017
Return-Path: <ekr@rtfm.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 86BB913308D for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:16:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5qw5SNo7zasv for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:16:07 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 38517133087 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 14:16:07 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id y75so1782696ywg.0 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 14:16:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=gUi9MiK1ixg0BgWGq5hN3gbdndVMgnbgVmRPRh04km8=; b=YmbIwnl5tIGu9j8aWobxsKEKoiPSz2rI8nuaVijnh9OiJtjvO0uI/Y6rZmxQPGEROj oa1ziDOL6ymPQSFYakfUDy2wb9+HOiT2Tfj3GNzyIAaafFHd+qL9+9+A57EaxN//wBa/ rX9xcXtZO4C6ItsjXGTdmeISl4qf68QFLqQ0bp+DqviZM+pxYESTnXBbXx/VosttVeKG y5ScCuMTyI0XXA9riZY4EF8BTX/4v2PkRdkS36mPKCZOU1bNzYmKq9VrXhH0pAl2F3Mn kQLIltRIEn7wPZKI3aX4f0c2NRuzwEkTTJPEiYFbhamJVqJEi6oZ4h/uRN4St7MRm3ZB wRWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=gUi9MiK1ixg0BgWGq5hN3gbdndVMgnbgVmRPRh04km8=; b=o69TKlUbgWTLO4ZERB4uFqsOdViDetaBhinulE/VERAc7sVxFI6+hIWCipYexfCBEo MJNujm9YPV8rCoK8QCapZwl9LADYwt589E5fsaRFpfF/osVE/GgljzuAY2u8nOt40erH cBfO0svThsHfvLGJ4L90mMCu6qGVgwgpHn0X6Bxc2llBWNt+XdL3GYa91oz6beXh4VyL EZvGi1CH9ExtktpkdjTyS06PWitmwMwdQDCQHzc+cZeARtXos06mQTLjSYKHb9svyaHv urmng1JV5XZYg7IAp8mHcsuaD+QX8Qb9RDefuJuIQ+GEy/kZ557BfEuqQusi79SgKJ2v Ciqw==
X-Gm-Message-State: AMCzsaWK3TAsPYW48wfWtLNRngCrTy5yj/z8XEF8Kxat8afsCQLnVwBf i59de3N/mX4g1lI3nmStfYdKqY8QeoxE8VnHgECDUzkZ
X-Google-Smtp-Source: ABhQp+SHQi2pgB1XUdXaKrIyWkx6JtEDR5mdXuth+I+IDLZIzAqQRWHHwpPIYIdydm9KleMHjXLAxtlrk2jkWBrkgzo=
X-Received: by 10.37.45.83 with SMTP id s19mr5504490ybe.400.1508361366351; Wed, 18 Oct 2017 14:16:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.75.194 with HTTP; Wed, 18 Oct 2017 14:15:25 -0700 (PDT)
In-Reply-To: <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com> <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 18 Oct 2017 14:15:25 -0700
Message-ID: <CABcZeBMkGD4718d_rv4Uo2FC+n7_SeEwNt7u_H2AhETYHeHxrg@mail.gmail.com>
To: Russ Housley <housley@vigilsec.com>
Cc: Henrik Levkowetz <henrik@levkowetz.com>, tools-discuss <tools-discuss@ietf.org>
Content-Type: multipart/alternative; boundary="f4030435b0106f57b4055bd8bf07"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/cWFhs9JiOfsfwBAZk6TYr6i44VI>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 21:16:08 -0000

--f4030435b0106f57b4055bd8bf07
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 18, 2017 at 1:35 PM, Russ Housley <housley@vigilsec.com> wrote:

> > Ok, so in order to limit the damage an exposed API key can do, here are
> > some thoughts:
> >
> > * Provide a GUI to revoke a key (necessary in any case) and give
> >   an overview of existing keys and their usage.
> >
> > * Time limit the validity of the key to N days (30?) from the time of
> >   the latest login to the datatracker using username+password.
> >
> > * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
> >   This means having multiple keys if we evolve additional API endpoints,
> >   which I expect to happen.
> >
> > * Provide regular information in the datatracker GUI about API key
> >   activity in a manner easily digested and minimally distracting.
> >   Maybe a message once a week, summarising the activity?
> >
> > Thoughts?
>
> The API key needed to be bound to a particular role (like AD), and if the
> user looses that role, then the API key needs to be revoked by the
> datatracker automatically.  I just think this means that there are a series
> of checks that are made when the API key is used, and if any of the checks
> fails, then the API key gets flushed.  Future attempts to use the API key
> lead to "unknown API key".
>

That would be OK, but why not just bind it to the user and then have it go
through the standard access control checks.

-Ekr


>
> Russ
>
>

--f4030435b0106f57b4055bd8bf07
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Oct 18, 2017 at 1:35 PM, Russ Housley <span dir=3D"ltr">&lt;<a =
href=3D"mailto:housley@vigilsec.com" target=3D"_blank">housley@vigilsec.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">&=
gt; Ok, so in order to limit the damage an exposed API key can do, here are=
<br>
&gt; some thoughts:<br>
&gt;<br>
&gt; * Provide a GUI to revoke a key (necessary in any case) and give<br>
&gt;=C2=A0 =C2=A0an overview of existing keys and their usage.<br>
&gt;<br>
&gt; * Time limit the validity of the key to N days (30?) from the time of<=
br>
&gt;=C2=A0 =C2=A0the latest login to the datatracker using username+passwor=
d.<br>
&gt;<br>
&gt; * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)<b=
r>
&gt;=C2=A0 =C2=A0This means having multiple keys if we evolve additional AP=
I endpoints,<br>
&gt;=C2=A0 =C2=A0which I expect to happen.<br>
&gt;<br>
&gt; * Provide regular information in the datatracker GUI about API key<br>
&gt;=C2=A0 =C2=A0activity in a manner easily digested and minimally distrac=
ting.<br>
&gt;=C2=A0 =C2=A0Maybe a message once a week, summarising the activity?<br>
&gt;<br>
&gt; Thoughts?<br>
<br>
</span>The API key needed to be bound to a particular role (like AD), and i=
f the user looses that role, then the API key needs to be revoked by the da=
tatracker automatically.=C2=A0 I just think this means that there are a ser=
ies of checks that are made when the API key is used, and if any of the che=
cks fails, then the API key gets flushed.=C2=A0 Future attempts to use the =
API key lead to &quot;unknown API key&quot;.<br></blockquote><div><br></div=
><div>That would be OK, but why not just bind it to the user and then have =
it go through the standard access control checks.</div><div><br></div><div>=
-Ekr</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Russ<br>
<br>
</font></span></blockquote></div><br></div></div>

--f4030435b0106f57b4055bd8bf07--


From nobody Wed Oct 18 14:25:58 2017
Return-Path: <housley@vigilsec.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 98C52133087 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:25:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gwHeyTIhKc_0 for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 14:25:37 -0700 (PDT)
Received: from mail.smeinc.net (mail.smeinc.net [209.135.209.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E56501320DC for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 14:25:36 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.smeinc.net (Postfix) with ESMTP id 40528300579 for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 17:25:36 -0400 (EDT)
X-Virus-Scanned: amavisd-new at mail.smeinc.net
Received: from mail.smeinc.net ([127.0.0.1]) by localhost (mail.smeinc.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id uFT9cx6RyJja for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 17:25:34 -0400 (EDT)
Received: from a860b60074bd.home (pool-108-45-101-150.washdc.fios.verizon.net [108.45.101.150]) by mail.smeinc.net (Postfix) with ESMTPSA id 69C5F30042B; Wed, 18 Oct 2017 17:25:34 -0400 (EDT)
From: Russ Housley <housley@vigilsec.com>
Message-Id: <4484E1DB-EE0A-46E1-BDBF-9313D288F714@vigilsec.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_6844B68E-AF7B-43CE-81CD-D26068DF0264"; protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Wed, 18 Oct 2017 17:25:31 -0400
In-Reply-To: <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com>
Cc: Eric Rescorla <ekr@rtfm.com>, tools-discuss <tools-discuss@ietf.org>
To: Henrik Levkowetz <henrik@levkowetz.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com> <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com> <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/M-SDeuaRIZmdjekpjQ6myXdjI7M>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 21:25:47 -0000

--Apple-Mail=_6844B68E-AF7B-43CE-81CD-D26068DF0264
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


> On Oct 18, 2017, at 5:00 PM, Henrik Levkowetz <henrik@levkowetz.com> =
wrote:
>=20
> Hi Russ,
>=20
> On 2017-10-18 22:35, Russ Housley wrote:
>>> Ok, so in order to limit the damage an exposed API key can do, here =
are
>>> some thoughts:
>>>=20
>>> * Provide a GUI to revoke a key (necessary in any case) and give
>>>  an overview of existing keys and their usage.
>>>=20
>>> * Time limit the validity of the key to N days (30?) from the time =
of
>>>  the latest login to the datatracker using username+password.
>>>=20
>>> * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)
>>>  This means having multiple keys if we evolve additional API =
endpoints,
>>>  which I expect to happen.
>>>=20
>>> * Provide regular information in the datatracker GUI about API key
>>>  activity in a manner easily digested and minimally distracting.
>>>  Maybe a message once a week, summarising the activity?
>>>=20
>>> Thoughts?
>>=20
>> The API key needed to be bound to a particular role (like AD), and if
>> the user looses that role, then the API key needs to be revoked by
>> the datatracker automatically. I just think this means that there are
>> a series of checks that are made when the API key is used, and if any
>> of the checks fails, then the API key gets flushed. Future attempts
>> to use the API key lead to "unknown API key".
>=20
> Ack on adding flushing on misuse to the list of possible restrictions.
>=20
> Regarding the role part, my thought was to handle that not by binding
> the key directly to the role(s), but rather to handle the role =
transitively
> through the user.  Get the user from the key, and apply the usual role
> checks we have for different operations to the roles the user has at =
the
> moment.  That handles role validation the same way as when doing an
> operation through a form.

I think we are getting to roughly the same design.  Some URLs require a =
particular role for a database update to be authorized.  We agree that =
those checks must still be made, and that a failure should prevent the =
API key from being used in the future.

Russ


--Apple-Mail=_6844B68E-AF7B-43CE-81CD-D26068DF0264
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org

iEYEARECAAYFAlnnxs0ACgkQiuTu0PWcEcs8PACcCPPFgalsKInLtxzgRz5VZBuK
vjMAn1iTnTIbyR/b+zWZDHLl5BoU40ki
=f67H
-----END PGP SIGNATURE-----

--Apple-Mail=_6844B68E-AF7B-43CE-81CD-D26068DF0264--


From nobody Wed Oct 18 18:53:58 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0AB51332DF for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 18:53:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gvOq8uALiEDt for <tools-discuss@ietfa.amsl.com>; Wed, 18 Oct 2017 18:53:55 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9867B13301C for <tools-discuss@ietf.org>; Wed, 18 Oct 2017 18:53:55 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:52022 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e501x-0008Ut-IT; Wed, 18 Oct 2017 18:53:54 -0700
To: Russ Housley <housley@vigilsec.com>
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com> <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com> <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com> <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com> <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com> <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com> <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com> <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com> <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com> <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com> <4484E1DB-EE0A-46E1-BDBF-9313D288F714@vigilsec.com>
Cc: tools-discuss <tools-discuss@ietf.org>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <453d7697-bc89-27a7-7a1b-38e47d3d0073@levkowetz.com>
Date: Thu, 19 Oct 2017 03:53:45 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <4484E1DB-EE0A-46E1-BDBF-9313D288F714@vigilsec.com>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="aEmvCQqjcmnVcHc5i9tuxBbIurwUcLax9"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, housley@vigilsec.com
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/ykW4nKiK_QuBucyi-Yh15WiCXLo>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Oct 2017 01:53:57 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--aEmvCQqjcmnVcHc5i9tuxBbIurwUcLax9
Content-Type: multipart/mixed; boundary="CO1cLuhNBmWOLj2h1UaaDpwfCcrft2AFa";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Russ Housley <housley@vigilsec.com>
Cc: tools-discuss <tools-discuss@ietf.org>
Message-ID: <453d7697-bc89-27a7-7a1b-38e47d3d0073@levkowetz.com>
Subject: Re: [Tools-discuss] Auto-posting IESG ballots
References: <CABcZeBOB48VAFr5QjePsRw2yB5K9e=ZJHadZZpf-GBniOPcVsQ@mail.gmail.com>
 <ba21beb8-42dc-cb77-b8cb-4e50284c432c@levkowetz.com>
 <CABcZeBNpM6ya_TwH9JbMfpyqNnLc4VJOQbzb118HDvht32rcqQ@mail.gmail.com>
 <2da19e94-bf94-0956-e053-1bb4bd5605c0@levkowetz.com>
 <CABcZeBNVMRB=bVhazJY4jGTdCJm_LL-Pm2f2P-b6j9QxrUnjSA@mail.gmail.com>
 <52c39da2-6457-d43d-912e-cdfbea7d687b@levkowetz.com>
 <CABcZeBOsEnf0QWTSTjCxA-FW5sAsAMqP4YOTisinvELLC_5dCg@mail.gmail.com>
 <7dce0eb9-b26a-46eb-124f-f6c0e17f010a@levkowetz.com>
 <CAF479F6-B4C7-46DE-8AE8-07313B35E67C@vigilsec.com>
 <cc38c26f-67c8-7b1f-b836-c5d1d72dba0b@levkowetz.com>
 <4484E1DB-EE0A-46E1-BDBF-9313D288F714@vigilsec.com>
In-Reply-To: <4484E1DB-EE0A-46E1-BDBF-9313D288F714@vigilsec.com>

--CO1cLuhNBmWOLj2h1UaaDpwfCcrft2AFa
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


On 2017-10-18 23:25, Russ Housley wrote:
>=20
>> On Oct 18, 2017, at 5:00 PM, Henrik Levkowetz <henrik@levkowetz.com> w=
rote:
>>=20
>> Hi Russ,
>>=20
>> On 2017-10-18 22:35, Russ Housley wrote:
>>>> Ok, so in order to limit the damage an exposed API key can do, here =
are
>>>> some thoughts:
>>>>=20
>>>> * Provide a GUI to revoke a key (necessary in any case) and give
>>>>  an overview of existing keys and their usage.
>>>>=20
>>>> * Time limit the validity of the key to N days (30?) from the time o=
f
>>>>  the latest login to the datatracker using username+password.
>>>>=20
>>>> * Limit the key to a given URL path prefix (e.g., /api/iesg/ballot/)=

>>>>  This means having multiple keys if we evolve additional API endpoin=
ts,
>>>>  which I expect to happen.
>>>>=20
>>>> * Provide regular information in the datatracker GUI about API key
>>>>  activity in a manner easily digested and minimally distracting.
>>>>  Maybe a message once a week, summarising the activity?
>>>>=20
>>>> Thoughts?
>>>=20
>>> The API key needed to be bound to a particular role (like AD), and if=

>>> the user looses that role, then the API key needs to be revoked by
>>> the datatracker automatically. I just think this means that there are=

>>> a series of checks that are made when the API key is used, and if any=

>>> of the checks fails, then the API key gets flushed. Future attempts
>>> to use the API key lead to "unknown API key".
>>=20
>> Ack on adding flushing on misuse to the list of possible restrictions.=

>>=20
>> Regarding the role part, my thought was to handle that not by binding
>> the key directly to the role(s), but rather to handle the role transit=
ively
>> through the user.  Get the user from the key, and apply the usual role=

>> checks we have for different operations to the roles the user has at t=
he
>> moment.  That handles role validation the same way as when doing an
>> operation through a form.
>=20
> I think we are getting to roughly the same design.  Some URLs require
> a particular role for a database update to be authorized.  We agree
> that those checks must still be made, and that a failure should
> prevent the API key from being used in the future.

Right.


	Henrik




--CO1cLuhNBmWOLj2h1UaaDpwfCcrft2AFa--

--aEmvCQqjcmnVcHc5i9tuxBbIurwUcLax9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ6AWpAAoJEE6bV0uPuxca91YP+wfyH7ypd5osaZItTjra4E4Y
eLVK0oGZPrAJQVXh6dkHR8Ft9ZUfLvv2RtY2OeqeJVj8X8SLgbU4t4lsW7hSubBN
PY+hGKAeI48wPMaJcClmLln2iEmLHkO/fGEkF6+tPzEaTJgtZ3OD50RKVfu6Pbny
TAtNcXrGb3ESthUAKbzXX1wNOfqjBMF6GLsmE3tI/JPxYoJAMuS7H2HZHHv8xwbj
FsCaaDJjGGmrBAzdaBZNZ6kglcdeYBbK4uay1uHnUeu6nMwR57JCUXGBxjcRQ/1W
RyQRptJ4P7NMEsPczpI6tQzdg5FIbPPAsFnv2lhkvb1yxVQBQRc2SYZ3ipC3ZHk/
Vn4eps018U0u3IgCGrC6sxJM1MzqPPWGZtyiRvGxD98F7dXNAt5m9dqB+l/dsWpl
bF+y6b25KI99QC9PWkybQ5BkGKb6R7+ntlzd0Vp7ns1mw6I7teKhtprVl2g6ocdK
EzpGOJTjqSNTdCAzSw5au159jwGL9D6zTejk5/gjCCmgKKlmKIi5LsadQS0S3fyM
uxZfYYP2Co2XMbpJYuJarkdES3kDRcXylNy5n358KzyfUB6ATAap8Ifu4zsEjI1M
OqvYeBTeRdJJaR7v9JUSLdR7tQX6imGvNAJaCp9GDprGKlNI4+VabfLtwR3D0NDF
yHl4UGx3Wq12+AQbik2O
=rSFB
-----END PGP SIGNATURE-----

--aEmvCQqjcmnVcHc5i9tuxBbIurwUcLax9--


From nobody Mon Oct 23 08:38:33 2017
Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CEC9139432 for <tools-discuss@ietfa.amsl.com>; Mon, 23 Oct 2017 08:38:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eOO8GNyZRyMT for <tools-discuss@ietfa.amsl.com>; Mon, 23 Oct 2017 08:38:30 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 67526139428 for <tools-discuss@ietf.org>; Mon, 23 Oct 2017 08:38:30 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 01635200C5 for <tools-discuss@ietf.org>; Mon, 23 Oct 2017 11:38:51 -0400 (EDT)
Received: from obiwan.sandelman.ca (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id 229B380D54 for <tools-discuss@ietf.org>; Mon, 23 Oct 2017 11:38:29 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: tools-discuss@ietf.org
X-Attribution: mcr
X-Mailer: MH-E 8.6; nmh 1.7-RC3; GNU Emacs 24.5.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Mon, 23 Oct 2017 11:38:29 -0400
Message-ID: <8928.1508773109@obiwan.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/NeIBdCpQtzCkGxs2IzK9EzJEUc8>
Subject: [Tools-discuss] IETF "Interim"/upcoming meetings calendar
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Oct 2017 15:38:32 -0000

--=-=-=
Content-Type: text/plain


I have this calendar:
  https://datatracker.ietf.org/meeting/upcoming.ics

in my (google) calendar.  It includes all the (virtual) interim, and the real
meetings.  There is also:
  https://ietf.org/calendars/meetings/IETFmeetings.ics
which has just the regular meetings in it.  I removed it because upcoming had
the same details as upomcing, plus interims.

Unfortunately, upcoming.ics has an excessive amount of detail for the IETF
meeting week, which winds up just being noise if you also import the WG
schedule from the datatracker.

At the same time, upcoming.ics seems to have missed the second ACE interim
meeting of last week (which confused me, but that's my fault).  I'm sure that
this is a WG-chair/secretariat issue, not a technology issue.

So I'm wondering what the intention is... maybe I'm using these wrong.

I'm thinking that the www.ietf.org should have a page about the various
calendars that are available.


--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-




--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEbsyLEzg/qUTA43uogItw+93Q3WUFAlnuDPQACgkQgItw+93Q
3WVz+wgAood8zjhvqGFGCFYNYL+jtPVn/hGfqiuV8r9NQKroCe8eukpu+l/I43yA
JOGmZ772JSFbEuoEfVZSDBnar11gcbdDmN4VYVi+M6imwzYzSz9FVTXqB0amkoiM
YlWlb/PUIvemyJ/BZL8jawx8kro9X33y4lImWCu8huZZWj+J2hJzFGqGKaTJpDFP
iijGzzz2+1iAh/bIwiRNq+DQl4A+9bOcNftTn1coIj0xoQuXe7ajxLqLqihGWhxI
aFVltj4aIJIA5cTMnEvIEjAMyVgmTlTl/nzBm58Xr1gbETvXNn59Q0tjQ3iL1k/z
90RRmCJyilsQ/jLEwjtX6cRuACkDdw==
=TBVr
-----END PGP SIGNATURE-----
--=-=-=--


From nobody Wed Oct 25 11:22:56 2017
Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 35CE6138BB5 for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 11:22:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6_0GCXoZbZxs for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 11:22:52 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C657A13F447 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 11:22:52 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id BD01320242 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 14:23:21 -0400 (EDT)
Received: from obiwan.sandelman.ca (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id B0887806A2 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 14:22:51 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: tools-discuss@ietf.org
X-Attribution: mcr
X-Mailer: MH-E 8.6; nmh 1.7-RC3; GNU Emacs 24.5.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature"
Date: Wed, 25 Oct 2017 14:22:51 -0400
Message-ID: <17239.1508955771@obiwan.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/geNZnB3QDst9JiGPdu5bj62H6ME>
Subject: [Tools-discuss] review postings leads to Force is Not With You 404.
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Oct 2017 18:22:55 -0000

--=-=-=
Content-Type: text/plain


starting from:
https://datatracker.ietf.org/doc/review-ietf-anima-voucher-05-opsdir-lc-clarke-2017-10-04/

at the Posted-At header, links to:

https://mailarchive.ietf.org/arch/msg/ops-dir/TS9xuyE16bdjHGR1Vnd3Z1dKIp4

which says:
      The force is not with you today
      You cannot jedi mind trick your way into viewing this page, try again
      later.

screen capture:
http://www.sandelman.ca/tmp/mcrcapture/3112.2017-10-25/capture1.png

What an awesome 404 page (guessing that what it means). Kudos :-)


Using the IMAP interface, I found the email, and found that it was archived
at a different url:
   https://mailarchive.ietf.org/arch/msg/anima/hcgPZtq80xJ4J5VN-AhvMuwtKGk

so the review posting interface must be guessing/making up a different URL.
Or maybe it's because it goes to two lists and the anima URL wins.

--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-




--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEbsyLEzg/qUTA43uogItw+93Q3WUFAlnw1nsACgkQgItw+93Q
3WW5RggAkbCqyxpRNwNUeBkWWIGX1BQfz8DVbAQEbIoMdYW0tI+BpDpQs61d1dg7
wjDjBKIySsLcxagMJbdsDRS4MbYk69wdQY9tQvskussbLx9ieZIsUuXhnCeFjkW9
EVQq8eSjheXB98TOGNIyN9moEvtL6pp5TrkoWqsePpK5UO7A7gtUWERM+Fv7cAB9
VjUsL74Z21kOcruUpO9hqncPzVBUFMRbGFkGipeWl79Uc/U2n89Tu0yuyhHl4pxk
qjLQG2pHDYgTAc6FGsr+OhUG5sZplO7OY2jVuLTcE+gsPU5Hr6iMyD6OzMMyQ2n7
LJJ3h3lUVQmNKKjbGObZeenpqjet4g==
=GbF8
-----END PGP SIGNATURE-----
--=-=-=--


From nobody Wed Oct 25 11:51:42 2017
Return-Path: <glen@amsl.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 36922139564 for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 11:51:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.3
X-Spam-Level: 
X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gCdPj3t2CStN for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 11:51:39 -0700 (PDT)
Received: from mail.amsl.com (c8a.amsl.com [4.31.198.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E93D913899A for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 11:51:39 -0700 (PDT)
Received: from mail.amsl.com (localhost [127.0.0.1]) by c8a.amsl.com (Postfix) with ESMTPS id 40E321CAC31 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 11:51:33 -0700 (PDT)
Received: from mail-it0-f41.google.com (mail-it0-f41.google.com [209.85.214.41]) by c8a.amsl.com (Postfix) with ESMTPSA id 1EABB1C3F60 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 11:51:33 -0700 (PDT)
Received: by mail-it0-f41.google.com with SMTP id 72so2214738itk.3 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 11:51:39 -0700 (PDT)
X-Gm-Message-State: AMCzsaX3M/9seUp2Kj2dY+vcHdSswg98L7zsD58FjBxArv10sD3Aath7 QtMgg6dtCp4gi/SRsWoO4P9b+g3XlfWtXzFGBDU=
X-Google-Smtp-Source: ABhQp+QO0QZi6U1OD8eO1DolNHV5o+Ug2FjCBbib10Na73Od+DyHkDZ9fl8xHsuReDT2GJC/d752/qJC8eMbg0EI0ZM=
X-Received: by 10.36.237.134 with SMTP id r128mr3344526ith.100.1508957499269;  Wed, 25 Oct 2017 11:51:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.2.73.88 with HTTP; Wed, 25 Oct 2017 11:51:18 -0700 (PDT)
In-Reply-To: <17239.1508955771@obiwan.sandelman.ca>
References: <17239.1508955771@obiwan.sandelman.ca>
From: Glen <glen@amsl.com>
Date: Wed, 25 Oct 2017 11:51:18 -0700
X-Gmail-Original-Message-ID: <CABL0ig4Oj68uDjJgraqP+=abqTQp+hMZCNUjmiRhKzYZ2tcyjw@mail.gmail.com>
Message-ID: <CABL0ig4Oj68uDjJgraqP+=abqTQp+hMZCNUjmiRhKzYZ2tcyjw@mail.gmail.com>
To: tools-discuss@ietf.org
Content-Type: multipart/alternative; boundary="f403045c4866b9a6d2055c638b4b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/SH21ap3k0-U8vfg2zyDZ3G_27uQ>
Subject: Re: [Tools-discuss] review postings leads to Force is Not With You 404.
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Oct 2017 18:51:41 -0000

--f403045c4866b9a6d2055c638b4b
Content-Type: text/plain; charset="UTF-8"

On Wed, Oct 25, 2017 at 11:22 AM, Michael Richardson <mcr+ietf@sandelman.ca>
wrote:
>       The force is not with you today
>       You cannot jedi mind trick your way into viewing this page, try
again
>       later.
> screen capture:
> http://www.sandelman.ca/tmp/mcrcapture/3112.2017-10-25/capture1.png
> What an awesome 404 page (guessing that what it means). Kudos :-)

+1000

Also:

That feeling when I wish *I* had thought of that and used something like it
in *my* programming efforts.

(Imagining now a full-motion-video 404 page complete with lightsabers.)

*sigh*

There is never enough time...

Glen

--f403045c4866b9a6d2055c638b4b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div><div>On Wed, Oct 25, 2017 at 11:2=
2 AM, Michael Richardson &lt;<a href=3D"mailto:mcr%2Bietf@sandelman.ca">mcr=
+ietf@sandelman.ca</a>&gt; wrote:<br>&gt; =C2=A0 =C2=A0 =C2=A0 The force is=
 not with you today<br>&gt; =C2=A0 =C2=A0 =C2=A0 You cannot jedi mind trick=
 your way into viewing this page, try again<br>&gt; =C2=A0 =C2=A0 =C2=A0 la=
ter.<br>&gt; screen capture:<br>&gt; <a href=3D"http://www.sandelman.ca/tmp=
/mcrcapture/3112.2017-10-25/capture1.png">http://www.sandelman.ca/tmp/mcrca=
pture/3112.2017-10-25/capture1.png</a><br>&gt; What an awesome 404 page (gu=
essing that what it means). Kudos :-)<br><br>+1000<br><br></div>Also:<br><b=
r></div>That feeling when I wish *I* had thought of that and used something=
 like it in *my* programming efforts.<br><br></div>(Imagining now a full-mo=
tion-video 404 page complete with lightsabers.)<br><br></div>*sigh*<br><br>=
</div>There is never enough time...<br><br></div>Glen<br></div>

--f403045c4866b9a6d2055c638b4b--


From nobody Wed Oct 25 14:11:19 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD6A71398CF for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 14:11:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XINQGCqsR-Hu for <tools-discuss@ietfa.amsl.com>; Wed, 25 Oct 2017 14:11:16 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B361137ED6 for <tools-discuss@ietf.org>; Wed, 25 Oct 2017 14:11:16 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:63807 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e7SxG-0007N8-SU; Wed, 25 Oct 2017 14:11:15 -0700
To: Michael Richardson <mcr+ietf@sandelman.ca>, tools-discuss@ietf.org
References: <17239.1508955771@obiwan.sandelman.ca>
From: Henrik Levkowetz <henrik@levkowetz.com>
Message-ID: <3bd05b94-ebcc-4493-90c5-404e37c69aea@levkowetz.com>
Date: Wed, 25 Oct 2017 23:11:06 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <17239.1508955771@obiwan.sandelman.ca>
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="VBB7FiHogq1Ef8eUoAvlHiAhwQI6GMf8Q"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: tools-discuss@ietf.org, mcr+ietf@sandelman.ca
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/Ls3hdzLfns1UvZd6EEne-NTo52Q>
Subject: Re: [Tools-discuss] review postings leads to Force is Not With You 404.
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Oct 2017 21:11:18 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--VBB7FiHogq1Ef8eUoAvlHiAhwQI6GMf8Q
Content-Type: multipart/mixed; boundary="n3b0gwDMPrvgaAJnb8946Anewj2eT52SK";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Michael Richardson <mcr+ietf@sandelman.ca>, tools-discuss@ietf.org
Message-ID: <3bd05b94-ebcc-4493-90c5-404e37c69aea@levkowetz.com>
Subject: Re: [Tools-discuss] review postings leads to Force is Not With You
 404.
References: <17239.1508955771@obiwan.sandelman.ca>
In-Reply-To: <17239.1508955771@obiwan.sandelman.ca>

--n3b0gwDMPrvgaAJnb8946Anewj2eT52SK
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Michael,

On 2017-10-25 20:22, Michael Richardson wrote:
>=20
> starting from:
> https://datatracker.ietf.org/doc/review-ietf-anima-voucher-05-opsdir-lc=
-clarke-2017-10-04/
>=20
> at the Posted-At header, links to:
>=20
> https://mailarchive.ietf.org/arch/msg/ops-dir/TS9xuyE16bdjHGR1Vnd3Z1dKI=
p4
>=20
> which says:
>       The force is not with you today
>       You cannot jedi mind trick your way into viewing this page, try a=
gain
>       later.
>=20
> screen capture:
> http://www.sandelman.ca/tmp/mcrcapture/3112.2017-10-25/capture1.png
>=20
> What an awesome 404 page (guessing that what it means). Kudos :-)
>=20
>=20
> Using the IMAP interface, I found the email, and found that it was arch=
ived
> at a different url:
>    https://mailarchive.ietf.org/arch/msg/anima/hcgPZtq80xJ4J5VN-AhvMuwt=
KGk
>=20
> so the review posting interface must be guessing/making up a different =
URL.
> Or maybe it's because it goes to two lists and the anima URL wins.

The Posted-at URL comes from the review completion form, and in this
case a correct URL which unfortunately points at a restricted access
archive (ops-dir) was entered, so it's not terribly useful.

I've changed the URL to point at the one you found in the anima archives,=

and I'm currently looking at ways to check the URLs in the review form
to avoid using restricted access URLs.


	Henrik


--n3b0gwDMPrvgaAJnb8946Anewj2eT52SK--

--VBB7FiHogq1Ef8eUoAvlHiAhwQI6GMf8Q
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ8P3qAAoJEE6bV0uPuxcaAqwQANQI5TKZsvPHwa//v8S+ZPs9
XtJWZl9v0Ik46ko883pY4OLJqFBtlOAHT2JJnVRUi5hl79omF3qztAyxjwu7l5iE
iFyTH0jaZwEInqz8mZSa5ebSvJx5e4/OZe+Rc9cgnwO0J0CyHtp6PZsQ9MDf6d+t
JFuocRYD83ArL5woppl5pNmY0k4JahS4DrcNtZSeeBn6W+djdV8rq3GdTmm7HEqb
CVuO0Tv61wfXc+BfpWRX5eYia74nKtv62cmIiUbVsUULbreEg1qK383vgzF1YopZ
yJTqDdqYnuXi2BcIA1+cWe3gMOsj5SoRtp0fy9EyvaZQmu2JaUufb8RtNlrFc7aq
8VK7KQjlaBMlXCplA+fMBiatGtvc/mV/sRwg2PaxS2ms6I86MPYLtabYXqN7Qk6i
2Dv7Zu+mzTe3j1AhbWRQ8lyUCF9NPbBYMqcb9facRMaJWP9oPToXG8lDrr7sP3Ho
ukC2ZbExpDR5pJegW80X1OL1JM6dhoADtkAjYYKuMB6RFcrjDS+4PF90TZdf6Cbb
ONzvNm87pQigYXIJ5F00JVRLXCoSs6B5NKWA6HEgUWkFPlNT6WEPDcMtzA3X9VDn
QENKVOMRZ+YIts7Lil3PZQGC/3FNb+a3SSUEC/Hy4VFoc9Os29yN5GVGosbbSCHd
tCxB+Hac1p9s8uMeVkz6
=rYAO
-----END PGP SIGNATURE-----

--VBB7FiHogq1Ef8eUoAvlHiAhwQI6GMf8Q--


From nobody Thu Oct 26 01:55:58 2017
Return-Path: <henrik@levkowetz.com>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DC4913AF1A; Thu, 26 Oct 2017 01:55:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 45sVx16VfWbY; Thu, 26 Oct 2017 01:55:49 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (zinfandel.tools.ietf.org [IPv6:2001:1890:126c::1:2a]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AFA8913ACAB; Thu, 26 Oct 2017 01:55:49 -0700 (PDT)
Received: from h-99-61.a357.priv.bahnhof.se ([82.196.99.61]:57641 helo=[192.168.1.120]) by zinfandel.tools.ietf.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <henrik@levkowetz.com>) id 1e7dx7-00083e-4e; Thu, 26 Oct 2017 01:55:49 -0700
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Tools Team Discussion <tools-discuss@ietf.org>, Codesprints <codesprints@ietf.org>
Message-ID: <7d7d6c9a-e44b-fce1-704b-d012ea1381cc@levkowetz.com>
Date: Thu, 26 Oct 2017 10:55:41 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="h1i5mfMNWedi8rSe9LjLfjogXRSN8XNgR"
X-SA-Exim-Connect-IP: 82.196.99.61
X-SA-Exim-Rcpt-To: codesprints@ietf.org, tools-discuss@ietf.org
X-SA-Exim-Mail-From: henrik@levkowetz.com
X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000)
X-SA-Exim-Scanned: Yes (on zinfandel.tools.ietf.org)
X-Clacks-Overhead: GNU Terry Pratchett
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-discuss/f5982gcBb03JiCk5Vma4nua2vy4>
Subject: [Tools-discuss] Codesprint in Singapore
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-discuss/>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Oct 2017 08:55:52 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--h1i5mfMNWedi8rSe9LjLfjogXRSN8XNgR
Content-Type: multipart/mixed; boundary="T0C61Th4LECrtvKmHi16rGeHxFDEvBR3G";
 protected-headers="v1"
From: Henrik Levkowetz <henrik@levkowetz.com>
To: Tools Team Discussion <tools-discuss@ietf.org>,
 Codesprints <codesprints@ietf.org>
Message-ID: <7d7d6c9a-e44b-fce1-704b-d012ea1381cc@levkowetz.com>
Subject: Codesprint in Singapore

--T0C61Th4LECrtvKmHi16rGeHxFDEvBR3G
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


If you'll be able to join us for the codesprint before IETF 100, please=20
add yourself to:

  https://trac.tools.ietf.org/tools/ietfdb/wiki/IETF100SprintSignUp


Henrik



--T0C61Th4LECrtvKmHi16rGeHxFDEvBR3G--

--h1i5mfMNWedi8rSe9LjLfjogXRSN8XNgR
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZ8aMNAAoJEE6bV0uPuxcarvkP/0cS6/TLBMdwojCBkoyp3ARi
lcz0leuIMaGC4aguXPvQ1PGF82u6+yQVB4fh1o6zl4TV5Po+dZoy7bLW8it6k3vr
NCiPvHu4oaQd8VCBkIMbH9YFMcdNp8rFnKHJd+h4DjxtscSXChcOcNQR513o5OA+
1jYvHxVGHByaNCVzYBdWb9f5CWA9sMTB2HzwgGthH6guwDo0eAO9Iz1tff/0AGig
dFo6hfRZtwIoqbu1y0Ya3+eheeyRbY7sO1yfgt16ibInSIzFl0w5CN6XBPyubXvW
TPGxBBKH+mfKBkmXdHb4yV6Ko8lD+WvkHKrJcIfIVpiPSeX/gZSuBzdpusp/1l7r
1sTpxymMNC/rtCBslWri9+T6a5IbNNPvzw9yDJMG7B3q8A3FITzAiBaY3VayxL4g
4sBPMdz+EvVwd+bH9mxzxvLvE3fVnsQrcHSQCXbQ0wTxK/Ls9m6oOWJ97/5qfxjr
uT1lakGyBBy+tNQoO9Y/iFbyD1nuAsvLr0vwtXsTCYsroXbo6916T3advOUdO1WV
UnW33DQ2r8cU0XUYeGIVkT/B508/JrrfX3Up1s/NEg//+Ek3A+il4OlxBzhNjuPE
yej0eJz/JKFn6pohSefBeUCNj+5IIiXb6XEJhTNNEDlh5idZdW9/HUyr9VNMp2H3
Xl9fjHFJ/OyskaCnSHpB
=9Sy7
-----END PGP SIGNATURE-----

--h1i5mfMNWedi8rSe9LjLfjogXRSN8XNgR--

