
From nobody Wed Jan  2 15:27:03 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D936E129A87 for <netconf@ietfa.amsl.com>; Wed,  2 Jan 2019 15:27:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.766
X-Spam-Level: 
X-Spam-Status: No, score=-2.766 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=juniper.net
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 FoDDiLYo_2hz for <netconf@ietfa.amsl.com>; Wed,  2 Jan 2019 15:27:00 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 A74DD124BE5 for <netconf@ietf.org>; Wed,  2 Jan 2019 15:27:00 -0800 (PST)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x02NQvJa002995; Wed, 2 Jan 2019 15:26:57 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=l94qhVhur0mCo+Qhm0NZ5/AK3jlpyRwplacONI23fEI=; b=Zlv8ukqSSymzGP77IZNTmfVgIXG+kQTCMp/ZHZtN+ceeEX+dIZyxobBbtU0HGPERsX6K Mg0mWF3nV00ayTXVPecF/bKnlamh0PTy/CXnfp51CYDEG8zcQj1btjtPjZPdrCANYqzb yFswT3ie2nVjsYNyAi2hAXaXOR1pHEt0aWKejTQjEEXizSCgsOmBGF4ZQ6zRiV6afPPi yskMYCDX32PEvFY1WwnFoC1rZ6/6fCX5Esp6unouKUqvgZmXmfdoZq9rBywrKmLGIs2c OmY33W1PczyGbxgdddBx5tgyzNJfrGvyFqBqg/PxyfXHkGkpeVhCMtXU5UiFVdyEP0N4 +A== 
Received: from nam05-co1-obe.outbound.protection.outlook.com (mail-co1nam05lp2050.outbound.protection.outlook.com [104.47.48.50]) by mx0b-00273201.pphosted.com with ESMTP id 2ps1v0gcsw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 02 Jan 2019 15:26:57 -0800
Received: from DM6PR05MB4665.namprd05.prod.outlook.com (20.176.109.202) by DM6PR05MB6089.namprd05.prod.outlook.com (20.178.30.211) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.2; Wed, 2 Jan 2019 23:26:53 +0000
Received: from DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e]) by DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e%2]) with mapi id 15.20.1495.005; Wed, 2 Jan 2019 23:26:53 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: tom petch <ietfc@btconnect.com>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-26.txt
Thread-Index: AQHUovKks6w9JLg6wUycs3IC6KIGiQ==
Date: Wed, 2 Jan 2019 23:26:52 +0000
Message-ID: <4096BB8B-2922-420B-A61F-702B44D2D943@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM6PR05MB6089; 6:M2tRIeK7QeQEE9tyWJOnZOxh/jwxVkZeBlYACHAZPBbtBwKXTOhNO/JF8B4KH2u3ltykNrTNGNQ4Hy6bylvuMkj1Lxuu8RMzL5jDHmWuApglfoU4vohaxdzuohSDZ6onzIAqZRl8qg7virao5i2U1k1/Tjmbbq+WTquuBNRKhudDRFIs148hb+vsszIQQRiMpXuWyLVKClbuNIMl6FHbXGrJbSb/KyiiufrGTRc8f9Wr077H8VjVxkyVRkQkdgZcFf2IwHUerjZ/8329m44dg2NIcRZoh7yJN4lcvGdbPq/xog07aGNjt/JGjbiXq6g1pRJ0lL7lhCQJzCsfw7g8I/hi82rj9I+jo2SfJTzrJADvOmBkSecurD8hmsQ6agNPnwLMivcrkXEHW3ovuAhctaubdHhOn23IPyOiY6v6FTxMYUTnA8JO2HjFnfrMawLpHqeB7GR1NZI0L1sB2Ie77w==; 5:5nBueD0nPsuZ8C73TweLD3VK+196oH5csXrhZpQWtjXpWsYo+fFysJNhSGe516A1I4I3FLFMVLaEO6Y3nrq6tdmOUx74JpJlg6Szln+/dX16I8Ym1Jmfce4GKDRE1JorcOWDsvHdejU+TyDgUh9iQwnvAfDLwZ8UjECoyQrfA3Lb+V4J8VaZ5ffBf51q2weH0nmne6iLLN4YUB2eZYcjdw==; 7:zxYskl+9MdmlhEnJ14aSE3ASi8HvakEF+kyGk1TokPWc6y3SHlSI5PMwGFY7ugPI5jiMrPdNHM00C9O+a7Ed2yUrXdkIcKLtpTzkuNm2PL63xlzXmftf9I0Mfc7iKDQZRLGBBnpmgTZOzZkc9gFJug==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 8c846a8e-02d2-4aa8-bd6f-08d67109c731
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB6089; 
x-ms-traffictypediagnostic: DM6PR05MB6089:
x-microsoft-antispam-prvs: <DM6PR05MB60896E75FC61019A62063E49A58C0@DM6PR05MB6089.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(10201501046)(3231475)(944501520)(52105112)(93006095)(93001095)(3002001)(6055026)(6041310)(201703131423095)(201703031522075)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DM6PR05MB6089; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB6089; 
x-forefront-prvs: 0905A6B2C7
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(396003)(39860400002)(346002)(376002)(366004)(189003)(199004)(6486002)(14454004)(25786009)(229853002)(486006)(53936002)(5660300001)(33656002)(99286004)(66066001)(6512007)(81156014)(6246003)(478600001)(2501003)(36756003)(8936002)(8676002)(316002)(296002)(81166006)(105586002)(7736002)(6506007)(58126008)(110136005)(102836004)(106356001)(305945005)(2906002)(186003)(97736004)(83716004)(476003)(256004)(71200400001)(2616005)(71190400001)(6436002)(82746002)(3846002)(6116002)(86362001)(68736007)(26005); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB6089; H:DM6PR05MB4665.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: CV56yQwsr6GxmuLJhTR7OZFP4VmznM18/CxAIL/warjSV+AUPSzSBNRt9nWloNXvlExlEf2be2fQwpX8hlfH6rJHJuuiZ5zxjNkBgcm1KxS4Bv0HJmM2aGJjbxB0zGrvHYJHPU/Uif3pGM6I1Owng+rVYhDsPs4OJZU2XIqdfIdomnTLAXXwNp5hcnRRpVAcsYpzGnUCCrr5foX/ndfdsp5M4w6mjcqv+bUpYf3s9ubD6f3153M8kLdEzrzGYqaaeVsADt7vesIyKf8w7PXla9pbPbzA/i3Zw2SxcP6hw1SBRX3+qwsuFLRPEsYPMaT5
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <EEADED20BCA1EF47871A6D7CDB255294@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c846a8e-02d2-4aa8-bd6f-08d67109c731
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jan 2019 23:26:52.9292 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB6089
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-02_09:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901020203
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/EesJl4xeVJzAxi9wwc3zl8A4KUo>
Subject: Re: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-26.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Jan 2019 23:27:03 -0000

SGkgVG9tLA0KDQo+IFlvdSBoYXZlIGFkZGVkIHRoZSByZWZlcmVuY2UgdG8gUkZDODE3NCB0byB0
aGUgWUFORyBtb2R1bGVzIGJ1dCAuLi4NCj4gaXQgYXBwZWFycyBhcyBbUkZDODE3NF0gd2hpY2gg
dG8gbXkgZXllcyBsb29rcyBsaWtlIGEgSFRNTC9YTUwgYW5jaG9yDQo+IHdoaWNoIHdpbGwgbm90
IHdvcmsgaW4gYSBwbGFpbiB0ZXh0IFlBTkcgbW9kdWxlLg0KDQpSaWdodCB5b3UgYXJlLCBJIGhh
ZCBzaW1wbHkgY29weS9wYXN0ZWQgdGhlIHRleHQgZnJvbSB0aGUgcGxhaW4tdGV4dA0KdmVyc2lv
biBvZiBhIGRyYWZ0Lg0KDQpCZWxvdyBpcyB0aGUgbXkgcHJvcG9zZWQgZGlmZiB0byB0aGUgWUFO
RyBtb2R1bGVzIC0gYW55IGNvbmNlcm5zPw0KDQogICAgIFRoZSBrZXkgd29yZHMgJ01VU1QnLCAn
TVVTVCBOT1QnLCAnUkVRVUlSRUQnLCAnU0hBTEwnLA0KICAgICAnU0hBTEwgTk9UJywgJ1NIT1VM
RCcsICdTSE9VTEQgTk9UJywgJ1JFQ09NTUVOREVEJywgDQogICAgICdOT1QgUkVDT01NRU5ERUQn
LCAnTUFZJywgYW5kICdPUFRJT05BTCcgaW4gdGhpcyBkb2N1bWVudA0KLSAgICBhcmUgdG8gYmUg
aW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVkIGluIEJDUCAxNCBbUkZDMjExOV0NCi0gICAgW1JGQzgx
NzRdIHdoZW4sIGFuZCBvbmx5IHdoZW4sIHRoZXkgYXBwZWFyIGluIGFsbA0KKyAgICBhcmUgdG8g
YmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVkIGluIEJDUCAxNCAoUkZDIDIxMTksDQorICAgIFJG
QyA4MTc0KSB3aGVuLCBhbmQgb25seSB3aGVuLCB0aGV5IGFwcGVhciBpbiBhbGwNCiAgICAgY2Fw
aXRhbHMsIGFzIHNob3duIGhlcmUuDQoNCg0KUFM6IFdlbGNvbWUgdG8gMjAxOSBhbGwhDQoNCktl
bnQNCg0KDQo=


From nobody Fri Jan  4 03:43:09 2019
Return-Path: <ietfc@btconnect.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EBFDD12426E for <netconf@ietfa.amsl.com>; Fri,  4 Jan 2019 03:43:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.246
X-Spam-Level: 
X-Spam-Status: No, score=0.246 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RATWARE_MS_HASH=2.148, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.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 PbarmY3tfEOU for <netconf@ietfa.amsl.com>; Fri,  4 Jan 2019 03:43:05 -0800 (PST)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00102.outbound.protection.outlook.com [40.107.0.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F3FEA128B01 for <netconf@ietf.org>; Fri,  4 Jan 2019 03:43:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector1-btconnect-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aM/IviLk+isvccaGvPBGqhcQAkjmgc7hrxVjyxe8SO0=; b=DWdQuULo0CsVJKTs+QgB58fFfkEsImH3hBPayxA5iR4FC3zfpaTyXtnY11IkqWOTmlS0gLWtE0PkqhN8zx3mhhKPBBxyLKDv4+Oaot0BBG9mY6413W2Z3gJ0ISBoiztUiAXmHEOSQT4msWeecb+392H6kMG55uUmj3KKOVG0GZM=
Received: from AM0PR07MB5506.eurprd07.prod.outlook.com (20.178.23.17) by AM0PR07MB4003.eurprd07.prod.outlook.com (52.134.83.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.4; Fri, 4 Jan 2019 11:43:02 +0000
Received: from AM0PR07MB5506.eurprd07.prod.outlook.com ([fe80::30d7:2d62:cf50:fb2a]) by AM0PR07MB5506.eurprd07.prod.outlook.com ([fe80::30d7:2d62:cf50:fb2a%2]) with mapi id 15.20.1516.000; Fri, 4 Jan 2019 11:43:02 +0000
From: tom petch <ietfc@btconnect.com>
To: Kent Watsen <kwatsen@juniper.net>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-26.txt
Thread-Index: AQHUpCKmQyWrAW1aC0aip91SaJIgzQ==
Date: Fri, 4 Jan 2019 11:43:02 +0000
Message-ID: <021f01d4a422$97efb760$4001a8c0@gateway.2wire.net>
References: <4096BB8B-2922-420B-A61F-702B44D2D943@juniper.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-clientproxiedby: LO2P265CA0023.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:62::35) To AM0PR07MB5506.eurprd07.prod.outlook.com (2603:10a6:208:103::17)
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: Microsoft Outlook Express 6.00.2800.1106
x-originating-ip: [86.139.215.184]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM0PR07MB4003; 6:n+TpafRfGzjEu+3okRUGN7KIy1Ay+jjripYsXcD/nQln+oCfC+cijv8aWFvgk5W1Hc+aOnjOY4Z5+1uE9bD4GnG6K2upLJ+rpii97K/sAHTqrL5OACBdcXgq5c8dgDaqn79XH5b12eWQMM7Ykk5HbU3SYiCpaApkcsbCAp6UJaMY9nfzOIvWGxFULH1zWA029VuxoVDoFCygdslpvYf2EAnL7sOmz4ru22hRX3+13wLLLYsLw9PycIEtEzjX/D1e3NnvhXBcCJ+4XP2DVedKUiXUdwQyXJJSes8p/EebkTpex3FLNMJ4KVCT07Sx27D6ymgx6IiKhSZ4TOlHo039/P5VDQCNxjqZS/EhwE10zCCq43AcubcRZtz2KxXuu1eG7ngS16WBY85oiiSSwHb0vOHaHeP9m76x6IkEas8E5DJgM6xKvpLm5tSujdW0Zn3puv9aneBgOIwPVM8R5Bx5hA==; 5:ULuYnrT1RJUPpzw4gcaexcVgldZBXVraUifCRFaU4Ijr6friQaH663NGGGOv9ItjopIda91qpRK0fzTw2qRyLl7CogYfnc3HEDIIRr57z6hdhtaTZcvnfs6Dy8IG0mU9EnjHzqGBKV+tBbFU0yhueRPC6r/oybjiOxf34NPKsnGczwY2IjrYPsFBr8+47uBkOQB6zod6aWSCQPWHFcXPgQ==; 7:l/krMImIALJD9+puxmGCbbXRrd2l1iexwItyVxjJhHQzragkht1cnpigMnreIkb4sRQBY237+UZhKzVuXgGo44GQrdxtFGooXG+OtUg0nQ+xVJ3knmYqIaemvKaFDEE8/0vQa+5y6nycg+XQUnT9mQ==
x-ms-office365-filtering-correlation-id: 4b6d5a75-2f3e-4e96-d9c8-08d67239c885
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(2017052603328)(7193020); SRVR:AM0PR07MB4003; 
x-ms-traffictypediagnostic: AM0PR07MB4003:
x-microsoft-antispam-prvs: <AM0PR07MB4003654F175CF1A285F6F055A08E0@AM0PR07MB4003.eurprd07.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(10201501046)(3231475)(944501520)(52105112)(3002001)(93006095)(93001095)(6055026)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM0PR07MB4003; BCL:0; PCL:0; RULEID:; SRVR:AM0PR07MB4003; 
x-forefront-prvs: 0907F58A24
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(376002)(136003)(366004)(39860400002)(396003)(13464003)(199004)(189003)(5660300001)(14496001)(476003)(6436002)(14454004)(84392002)(478600001)(86362001)(97736004)(446003)(256004)(1941001)(8676002)(2501003)(106356001)(6246003)(81156014)(305945005)(81166006)(25786009)(7736002)(486006)(53936002)(9686003)(105586002)(86152003)(61296003)(68736007)(44736005)(50226002)(6486002)(1556002)(66066001)(62236002)(316002)(110136005)(44716002)(71190400001)(6512007)(33896004)(6506007)(386003)(99286004)(71200400001)(4720700003)(2906002)(186003)(6346003)(81816011)(81686011)(3846002)(52116002)(26005)(102836004)(76176011)(8936002)(6116002)(229853002)(74416001)(7726001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM0PR07MB4003; H:AM0PR07MB5506.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:0; MX:1; 
received-spf: None (protection.outlook.com: btconnect.com does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ietfc@btconnect.com; 
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: qV/ce8GXwk0UtOJ63iIVkeph2tw/dxAVbumgyuaaRyzzMW/AwphsuQMXFcm9PPwx051xMwehiyxBsJS140pbTr793aJldMEA2H/59GX0mpYTUXjldI8+B1lsaTOVuQQVjv0EJTLnW8oSiNvkXR5Hp7PjhBlmf/nEmMao8DVQEtlsJ5QwhMwydext6NszoFU87sA8vEmSMypIxpvXbieBWkPAaDke8zr0NhSSz7HQU5LBnQDosPYF9vzHJp5uTX4Ys73V4R5yAoMVLMyam/Wl7YmqK+M3IXmbEsTqxdNtwjP/KRdylivGo0sZE+EwSSqY
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <FCB778C586B3CE4E9622EFB8A2072F68@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b6d5a75-2f3e-4e96-d9c8-08d67239c885
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2019 11:43:02.0480 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB4003
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/XqNWQZj6rjzq3HsBUBrRjS4W6lk>
Subject: Re: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-26.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Jan 2019 11:43:08 -0000

LS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQ0KRnJvbTogIktlbnQgV2F0c2VuIiA8a3dhdHNl
bkBqdW5pcGVyLm5ldD4NCg0KU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDAyLCAyMDE5IDExOjI2
IFBNDQo+IEhpIFRvbSwNCj4NCj4gPiBZb3UgaGF2ZSBhZGRlZCB0aGUgcmVmZXJlbmNlIHRvIFJG
QzgxNzQgdG8gdGhlIFlBTkcgbW9kdWxlcyBidXQgLi4uDQo+ID4gaXQgYXBwZWFycyBhcyBbUkZD
ODE3NF0gd2hpY2ggdG8gbXkgZXllcyBsb29rcyBsaWtlIGEgSFRNTC9YTUwNCmFuY2hvcg0KPiA+
IHdoaWNoIHdpbGwgbm90IHdvcmsgaW4gYSBwbGFpbiB0ZXh0IFlBTkcgbW9kdWxlLg0KPg0KPiBS
aWdodCB5b3UgYXJlLCBJIGhhZCBzaW1wbHkgY29weS9wYXN0ZWQgdGhlIHRleHQgZnJvbSB0aGUg
cGxhaW4tdGV4dA0KPiB2ZXJzaW9uIG9mIGEgZHJhZnQuDQo+DQo+IEJlbG93IGlzIHRoZSBteSBw
cm9wb3NlZCBkaWZmIHRvIHRoZSBZQU5HIG1vZHVsZXMgLSBhbnkgY29uY2VybnM/DQo+DQo+ICAg
ICAgVGhlIGtleSB3b3JkcyAnTVVTVCcsICdNVVNUIE5PVCcsICdSRVFVSVJFRCcsICdTSEFMTCcs
DQo+ICAgICAgJ1NIQUxMIE5PVCcsICdTSE9VTEQnLCAnU0hPVUxEIE5PVCcsICdSRUNPTU1FTkRF
RCcsDQo+ICAgICAgJ05PVCBSRUNPTU1FTkRFRCcsICdNQVknLCBhbmQgJ09QVElPTkFMJyBpbiB0
aGlzIGRvY3VtZW50DQo+IC0gICAgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGRlc2NyaWJlZCBp
biBCQ1AgMTQgW1JGQzIxMTldDQo+IC0gICAgW1JGQzgxNzRdIHdoZW4sIGFuZCBvbmx5IHdoZW4s
IHRoZXkgYXBwZWFyIGluIGFsbA0KPiArICAgIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBkZXNj
cmliZWQgaW4gQkNQIDE0IChSRkMgMjExOSwNCj4gKyAgICBSRkMgODE3NCkgd2hlbiwgYW5kIG9u
bHkgd2hlbiwgdGhleSBhcHBlYXIgaW4gYWxsDQo+ICAgICAgY2FwaXRhbHMsIGFzIHNob3duIGhl
cmUuDQoNCkRlcGVuZHMgd2hhdCB0aGUgWE1MIGxvb2tzIGxpa2UgOi0pIGJ1dCB0aGF0IGxvb2tz
IG9rLg0KDQpUb20gUGV0Y2gNCg0KPiBQUzogV2VsY29tZSB0byAyMDE5IGFsbCENCj4NCj4gS2Vu
dA0KPg0KPg0KPg0KDQo=


From nobody Fri Jan  4 18:56:16 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E79B130DCD; Fri,  4 Jan 2019 18:56:08 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154665696826.18401.5716044693185840445@ietfa.amsl.com>
Date: Fri, 04 Jan 2019 18:56:08 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/cXaNeYVRvSp0Vl8c-ZvuFA5YsVg>
Subject: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-27.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Jan 2019 02:56:09 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Secure Zero Touch Provisioning (SZTP)
        Authors         : Kent Watsen
                          Mikael Abrahamsson
                          Ian Farrer
	Filename        : draft-ietf-netconf-zerotouch-27.txt
	Pages           : 96
	Date            : 2019-01-04

Abstract:
   This draft presents a technique to securely provision a networking
   device when it is booting in a factory-default state.  Variations in
   the solution enables it to be used on both public and private
   networks.  The provisioning steps are able to update the boot image,
   commit an initial configuration, and execute arbitrary scripts to
   address auxiliary needs.  The updated device is subsequently able to
   establish secure connections with other systems.  For instance, a
   device may establish NETCONF (RFC 6241) and/or RESTCONF (RFC 8040)
   connections with deployment-specific network management systems.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-zerotouch/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-27
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-zerotouch-27

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-zerotouch-27


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Fri Jan  4 19:05:54 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A197130DCD; Fri,  4 Jan 2019 19:05:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.766
X-Spam-Level: 
X-Spam-Status: No, score=-2.766 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=juniper.net
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 UNc1JuZmWPKm; Fri,  4 Jan 2019 19:05:41 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 5FAA31271FF; Fri,  4 Jan 2019 19:05:40 -0800 (PST)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x05326Ns007756; Fri, 4 Jan 2019 19:05:39 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=WBjc1fW9JM5hRnjEZXspx1EyIBvxf1Uoo7cL2BXhWdY=; b=xogfC4k5/PA0Z3Ued0+w8XjFG2vQszocJ4kKHaK4LG24iP7cwxk+JyazYfMgNxO0A0eb eSodm0bM2zKL67t6+XP2juWPOaV33PBUpY0dFtUZ5DV31zlmndkQO/tR/koF5ZCwJGpm qlmbp25oDy0Z0okrDdvUykBu7FtCkJRYVS5HbcxuamF7/YjSiqogCReFu6Zw1Mopvc3Q GXYZuXFpVkAOguAZmcfZA2JVkyBlz+of3wVLg1Qnq551cZrfC8qbKrEPZO+TxWcoCVhd 8a97GXfLp8+qThsNqRlTOX6fwmfPbKYtubrYVwlYmwHPID2UsLAm3Hkwk8C1Vut0hlfX +w== 
Received: from nam04-bn3-obe.outbound.protection.outlook.com (mail-bn3nam04lp2057.outbound.protection.outlook.com [104.47.46.57]) by mx0a-00273201.pphosted.com with ESMTP id 2pt8568wyd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 04 Jan 2019 19:05:39 -0800
Received: from DM6PR05MB4665.namprd05.prod.outlook.com (20.176.109.202) by DM6PR05MB4266.namprd05.prod.outlook.com (20.176.78.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.3; Sat, 5 Jan 2019 03:05:36 +0000
Received: from DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e]) by DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e%2]) with mapi id 15.20.1516.000; Sat, 5 Jan 2019 03:05:36 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgA==
Date: Sat, 5 Jan 2019 03:05:35 +0000
Message-ID: <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org>
In-Reply-To: <20181230003002.GC57547@kduck.kaduk.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM6PR05MB4266; 6:5xfx53LjcpxXr9zaIqGSjORnFbTOVgOcqo8Jd+3Uo6+3bRFWTvsnt9e3jvDOhhxauBsuzvh6Fz62Fv7qIy7kVnUqZ9xh50QEtp2bqD2WjUMNjRCQvlHqMD1VpI4N+ZYD0vssWhUxQ4REZwdJdPGLb3HC8glhQRSEsWRPtqez0Y76f7mn/CBSTOqxehc3H5sptKLrE8hqavsv4SqjrJEO0ErBdR9NPPlhzwyKnpnnb+M+5aVvIknSeM02O3UA6tNpZBK1pc5O+Wj3XzqRp3Ey6AtZJu4x7+5Yv2QuwNDXRKFVtTSPJb2yDDVqtJ7dVzNyWxrGDpPIbTvMN0NAIHSVuA4tr+bwPsT4cWrAWF3Go145j2w5kNWw7++5a3A4PJ8BNNYwe9d0Y3LY97fue50OCmA47+bAjyo4xvfv1/3uHa2/cE20sKUNsObPnC25Qgmqo4va7F05nlhMdFBmTo9K0g==; 5:LxV7Hbgtr1nn1pig5DvrtgV8EbeB5gjLm8evE3yrlqFP0zrSt1eH6y8PleMnFRF9pskLXRU2Mc4VCBfbJxQWhNMAhsrpu49b82DY0oyAZZ57AHMHlVr+kyPVz4Q0RclUoedsIoy+0omie7uLeBX27hPdvjnggl1+RJa5WJQ/NexAcX1EIt59VunejRPFYnP4qT5DgyYdC3pyQFTjUzG8/Q==; 7:7hA3JavbDCi4JYfo9B+XhMtCD5tCsYYseP1RvZL82Erl0VyRuq1VpWhiClOHg/Vs4Fl9gYofxX3UBBKJs0czr8eHeNYQmpOZlHdjWuvr/Ngq0N8ehdhEml/1OQF1GXxSL5Au/ee0Lmv0wVQlxkb4cQ==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 2021489b-1da0-4c4a-98bc-08d672baaa22
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB4266; 
x-ms-traffictypediagnostic: DM6PR05MB4266:
x-microsoft-antispam-prvs: <DM6PR05MB42662A8827A59091AA51286AA58F0@DM6PR05MB4266.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(93006095)(93001095)(3231475)(944501520)(4982022)(52105112)(3002001)(10201501046)(6055026)(6041310)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DM6PR05MB4266; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB4266; 
x-forefront-prvs: 09086FB5C5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(376002)(366004)(39860400002)(346002)(136003)(51444003)(40224003)(189003)(199004)(51914003)(53234004)(6246003)(256004)(6486002)(53936002)(97736004)(966005)(2171002)(14444005)(229853002)(8676002)(25786009)(81156014)(81166006)(76176011)(6506007)(102836004)(36756003)(26005)(6346003)(4326008)(14454004)(186003)(575784001)(86362001)(478600001)(58126008)(4744004)(106356001)(82746002)(68736007)(345774005)(83716004)(54906003)(3846002)(6116002)(2616005)(476003)(7736002)(316002)(6916009)(2906002)(53946003)(6512007)(8936002)(6306002)(5660300001)(11346002)(66066001)(446003)(33656002)(561944003)(105586002)(486006)(99286004)(305945005)(71190400001)(71200400001)(6436002)(569006); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB4266; H:DM6PR05MB4665.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: f5f3XO33F+BUv6+dgchJgF5lrYdRwdt1+fu+bByoSKpESjto1IOlnQaNVWcUoTxN3jwimyWzirJobpZ/qmBbezpAD9xC/TfIzEFjj0anxh7mbXwl0TZBxrgTW0z2TXODQBGIQBr+ixtHWRNxi55EIM8IJuJIHmzEEwu6za9DYNQUxQFnnaduxq5zceG/TIiJl5NCy/5vC3Hu129RVo44oNcwEYjLShUaA+Cg1qkaVx3YkVn6FtV7WPrUjE41iAbTKJzR5ATFntiil4uPwlddDtnuGLaa9LTBiY/73jxRAKLH3lqQlicIIsZH4MwcQYRA
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <432D647C8C634745AD196A0C312FAB8C@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 2021489b-1da0-4c4a-98bc-08d672baaa22
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2019 03:05:36.2420 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4266
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-05_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901050023
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Y8bxb_1SX1_Y105vdF_DF3Qmads>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Jan 2019 03:05:46 -0000

SGkgQmVuamFtaW4sDQoNCkJlbG93IGFyZSBzZXZlcmFsIGxpbmtzIHRvIGluZGl2aWR1YWwgR2l0
SHViIGNvbW1pdHMsIGJ1dCBoZXJlJ3MgdGhlIGxpbmsNCnRvIHRoZSBjb21wbGV0ZS9yZW5kZXJl
ZCBkcmFmdDoNCg0KCWh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLW5ldGNv
bmYtemVyb3RvdWNoLTI3DQoNCkNoZWVycywNCktlbnQNCg0KDQo+PiA+IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
Cj4+ID4gRElTQ1VTUzoNCj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPg0KPj4gPiBGaXJzdCBvZmYs
IHRoYW5rcyBmb3IgdGhpcyBjbGVhciBhbmQgY29uc2lkZXJlZCBkb2N1bWVudCBhbmQgZGVzaWdu
OyBpdA0KPj4gPiByZWFsbHkgbGF5cyBvdXQgdGhlIHNjZW5hcmlvIG9mIGFwcGxpY2FiaWxpdHkg
YW5kIHRoZSBmdW5jdGlvbmFsaXR5IHF1aXRlDQo+PiA+IHdlbGwuICBJIGp1c3QgaGF2ZSBhIGNv
dXBsZSBsaW5nZXJpbmcgcGxhY2VzIHRoYXQgd2UgbWlnaHQgd2FudCB0byBuYWlsDQo+PiA+IGRv
d24gYSBsaXR0bGUgYml0IHRpZ2h0ZXIuLi4NCj4+ID4NCj4+ID4gKDEpIFNTSCBrZXkgZm9ybWF0
cw0KPj4gPg0KPj4gPiBUaGUgbW9kdWxlIGluIFNlY3Rpb24gNy4zIHNheXM6DQo+PiA+DQo+PiA+
ICAgICAgICAgICBsZWFmLWxpc3Qgc3NoLWhvc3Qta2V5IHsNCj4+ID4gICAgICAgICAgICAgdHlw
ZSBiaW5hcnk7DQo+PiA+ICAgICAgICAgICAgIGRlc2NyaXB0aW9uDQo+PiA+ICAgICAgICAgICAg
ICAgIlRoZSBiaW5hcnkgcHVibGljIGtleSBkYXRhIGZvciB0aGlzIFNTSCBrZXksIGFzDQo+PiA+
ICAgICAgICAgICAgICAgIHNwZWNpZmllZCBieSBSRkMgNDI1MywgU2VjdGlvbiA2LjYsIGkuZS46
DQo+PiA+DQo+PiA+ICAgICAgICAgICAgICAgICAgc3RyaW5nICAgIGNlcnRpZmljYXRlIG9yIHB1
YmxpYyBrZXkgZm9ybWF0DQo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZp
ZXINCj4+ID4gICAgICAgICAgICAgICAgICBieXRlW25dICAga2V5L2NlcnRpZmljYXRlIGRhdGEu
IjsNCj4+ID4gICAgICAgICAgICAgcmVmZXJlbmNlDQo+PiA+ICAgICAgICAgICAgICAgIlJGQyA0
MjUzOiBUaGUgU2VjdXJlIFNoZWxsIChTU0gpIFRyYW5zcG9ydCBMYXllcg0KPj4gPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgUHJvdG9jb2wiOw0KPj4gPg0KPj4gPiBidXQgUkZDIDQ1MjMgU2Vj
dGlvbiA2LjYgc2F5czoNCj4+ID4NCj4+ID4gICBUaGUga2V5IHR5cGUgTVVTVCBhbHdheXMgYmUg
ZXhwbGljaXRseSBrbm93biAoZnJvbSBhbGdvcml0aG0NCj4+ID4gICBuZWdvdGlhdGlvbiBvciBz
b21lIG90aGVyIHNvdXJjZSkuICBJdCBpcyBub3Qgbm9ybWFsbHkgaW5jbHVkZWQgaW4NCj4+ID4g
ICB0aGUga2V5IGJsb2IuDQo+PiA+DQo+PiA+ICAgQ2VydGlmaWNhdGVzIGFuZCBwdWJsaWMga2V5
cyBhcmUgZW5jb2RlZCBhcyBmb2xsb3dzOg0KPj4gPg0KPj4gPiAgICAgIHN0cmluZyAgICBjZXJ0
aWZpY2F0ZSBvciBwdWJsaWMga2V5IGZvcm1hdCBpZGVudGlmaWVyDQo+PiA+ICAgICAgYnl0ZVtu
XSAgIGtleS9jZXJ0aWZpY2F0ZSBkYXRhDQo+PiA+DQo+PiA+IEhvdyBpcyB0aGUga2V5IHR5cGUg
a25vd24gZm9yIHRoZSBTWlRQIHVzYWdlPw0KPj4gDQo+PiBHb29kIGNhdGNoLiAgVGhlIGZpeCBo
ZXJlIGlzIHRvIG1pbWljIFJGQzczMTcncyAiYXV0aG9yaXplZC1rZXkiIGxpc3QuDQo+PiBUaGF0
IGlzLCBjb252ZXJ0ICJzc2gtaG9zdC1rZXkiIGZyb20gYSAibGVhZi1saXN0IiB0byBhICJsaXN0
Ig0KPj4gY29udGFpbmluZyB0aGUgZXh0cmEgImFsZ29yaXRobSIgbm9kZS4gIFRoaXMgZml4IGlz
IGhlcmU6DQo+PiANCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXRjb25mLXdnL3plcm8tdG91Y2gv
Y29tbWl0LzdhMzNjNDE4ZjczM2FlYmNkOTVmMmM5MWM0ZTlhYmJjY2ZkMzYyZTQNCj4NCj4gU291
bmRzIGdvb2QuDQoNCkV4Y2VsbGVudCAtIHRoaXMgaXRlbSBpcyBjbG9zZWQuDQoNCg0KDQo+PiA+
ICgyKSBQcml2aWxlZ2UgZXNjYWxhdGlvbiBieSBkZXNpZ24NCj4+ID4NCj4+ID4gVGhlcmUncyB0
ZXh0IGluIFNlY3Rpb24gMi4xIChhbmQsIHJlYWxseSwgdGhyb3VnaG91dCkgdGhhdCBpbmRpY2F0
ZXMgdGhhdA0KPj4gPiBhIGRldmljZSBiZWluZyBib290c3RyYXBwZWQgc2hvdWxkIGFsbG93IGEg
dHJ1c3RlZCBib290c3RyYXAgc2VydmVyIHRvDQo+PiA+IGJlaGF2ZSBhcyAoaS5lLiwgc3VwcGx5
KSBhIHRydXN0IGFuY2hvciBmb3IgdmVyaWZ5aW5nIGEgZGlmZmVyZW50IHNlcnZpY2UuDQo+PiA+
IEluIHNvbWUgc2Vuc2UgdGhpcyBpcyBlbGV2YXRpbmcgYW4gRUUgY2VydCB0byBhIENBIGNlcnQs
IGFuZCBJIGhhZCBob3BlZA0KPj4gPiB0byBzZWUgc29tZSBkaXNjdXNzaW9uIG9mIHRoaXMgZXNj
YWxhdGlvbiBpbiB0aGUgc2VjdXJpdHkgY29uc2lkZXJhdGlvbnMuDQo+PiA+IChTYW1lIGZvciB0
aGUgb3duZXIgY2VydCwgdGhvdWdoIHRoZXJlJ3MgYSBzdHJvbmdlciBhcmd1bWVudCB0aGF0IHRo
ZSANCj4+ID4gb3duZXIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZnVsbHkgcHJpdmlsZWdlZCBoZXJl
LikNCj4+IA0KPj4gQ29ycmVjdCwgInJlZGlyZWN0IGluZm9ybWF0aW9uIiBmcm9tIGEgdHJ1c3Rl
ZCBzb3VyY2Ugc2hvdWxkIGNvbnRhaW4gYQ0KPj4gdHJ1c3QtYW5jaG9yIGNlcnRpZmljYXRlIChh
Y3R1YWxseSwgYSBDTVMgY29udGFpbmluZyBhIGNoYWluIG9mIGNlcnRzKS4NCj4+IA0KPj4gWWVz
LCB0aGUgZGV2aWNlJ3MgdHJ1c3QgaW4gYSBUTFMgdHJ1c3QgYW5jaG9yIGNlcnQgKGUuZy4sIHBy
b3ZpZGVkIHZpYSB0aGUNCj4+IG1hbnVmYWN0dXJpbmcgcHJvY2VzcykgaXMgdXNlZCB0byB0cnVz
dCB0aGUgRUUgY2VydCBmb3IgYSBib290c3RyYXAgDQo+PiBzZXJ2ZXIgdGhhdCByZXR1cm5zIGEg
bmV3IHRydXN0IGFuY2hvciBjZXJ0LCBlbmFibGluZyB0aGUgZGV2aWNlIHRvIA0KPj4gcGluIHRo
ZSBuZXcgVEEgY2VydCBmb3Igc3Vic2VxdWVudCBFRSBjZXJ0IHZhbGlkYXRpb24uICANCj4+IA0K
Pj4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgQ0EgaW4gdGhhdCBhIGNoYWluIG9mIHRydXN0ZWQgY2Vy
dHMgaXMgZm9ybWVkLCBidXQNCj4+IGl0IGlzbid0IHF1aXRlIGxpa2UgYSBDQSBjZXJ0LCBpbiB0
aGF0IHRoZSBFRSBjZXJ0IGRvZXNuJ3QgaXRzZWxmIHNpZ24NCj4+IHRoZSBuZXcgVEEgY2VydDsg
aXQgb25seSBzaWducyB0aGF0IHRyYW5zcG9ydCB1c2VkIHRvIGNvbnZleSB0aGUgVEEgY2VydC4N
Cj4+IA0KPj4gUmVnYXJkaW5nIHRoZSBvd25lciBjZXJ0IGJlaW5nIHNpbWlsYXIsIEkgdGhpbmsg
eW91IG1lYW4gdGhhdCB0aGUgDQo+PiBvd25lcnNoaXAgdm91Y2hlciBbUkZDIDgzNjZdIGlzIHNp
bWlsYXIsIHdoaWNoIGlzIHRydWUuICBJbiB0aGlzIGNhc2UsDQo+PiB0aGUgZGV2aWNlJ3MgdHJ1
c3QgaW4gYSB0cnVzdCBhbmNob3IgZm9yIHZvdWNoZXItc2lnbmluZyBjZXJ0cyAoZS5nLiwgDQo+
PiBwcm92aWRlZCB2aWEgdGhlIG1hbnVmYWN0dXJpbmcgcHJvY2VzcykgaXMgdXNlZCB0byB0cnVz
dCBhIHNwZWNpZmljDQo+PiBzaWduaW5nIGNlcnQgZm9yIGEgdm91Y2hlciwgd2hpY2ggZW5jb2Rl
cyBhIG5ldyB0cnVzdCBhbmNob3IgY2VydCANCj4+ICh0aGUgJ3Bpbm5lZC1kb21haW4tY2VydCcp
LCB3aGljaCBpcywgaW4gZmFjdCwgdGhlIGlzc3VpbmcgQ0EgZm9yDQo+PiB0aGUgb3duZXIgY2Vy
dGlmaWNhdGUuDQo+PiANCj4+IE9rYXksIHNvIHdlIGhhdmUgdGhlc2UgdHdvIHRoaW5ncy4gIElu
IGJvdGggY2FzZXMsIHRydXN0IGFuY2hvcnMgYXJlIA0KPj4gY29udmV5ZWQgdmlhIHRydXN0ZWQg
bWVjaGFuaXNtcy4gIERvIHlvdSB3YW50IG1lIHRvIGFkZCBhIFNlY3VyaXR5DQo+PiBDb25zaWRl
cmF0aW9uIHNheWluZyB0aGlzPyAgDQo+PiANCj4+IEkgc29tZWhvdyB0aG91Z2h0IHRoaXMgY29u
Y2VwdCB3YXMgZmFpcmx5IGNvbW1vbiwgaXMgaXQgbm90IGRvbmUgDQo+PiBlbHNld2hlcmU/DQo+
DQo+IEl0IGlzIGZhaXJseSBjb21tb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCB3b3J0aCBk
ZXNjcmliaW5nIHRoZSBzZWN1cml0eQ0KPiBwcm9wZXJ0aWVzIG9mIHRoZSBwcm90b2NvbCBleGNo
YW5nZXMsIGhlcmUuICAoSW4gdGhhdCBhIGNvbXByb21pc2Ugb2YgdGhlDQo+IGluaXRpYWwgaW50
ZXJhY3Rpb24gY2FuIHJlc3VsdCBpbiBjb21wcm9taXNlIG9mIGFsbCBzdWJzZXF1ZW50DQo+IGlu
dGVyYWN0aW9ucywganVzdCBhcyBmb3IgdHJ1c3Qtb24tZmlyc3QtdXNlLikNCg0KUGxlYXNlIGxl
dCBtZSBrbm93IGlmIHRoaXMgdXBkYXRlIGFkZHJlc3NlcyB0aGUgY29uY2VybjoNCmh0dHBzOi8v
Z2l0aHViLmNvbS9uZXRjb25mLXdnL3plcm8tdG91Y2gvY29tbWl0L2E1MDg2YjI5OWY2MGMwMGFm
Y2FkZGMwZGRmMGEwZTlkMzQzMWMwNGUNCg0KDQoNCg0KDQo+PiA+ICgzKSBOb25jZSBsZW5ndGgN
Cj4+ID4NCj4+ID4gU2VjdGlvbiA3LjMgZGVzY3JpYmVzIHRoZSBub25jZSBsZWFmOg0KPj4gPg0K
Pj4gPiAgICAgICAgIGxlYWYgbm9uY2Ugew0KPj4gPiAgICAgICAgICAgdHlwZSBiaW5hcnkgew0K
Pj4gPiAgICAgICAgICAgICBsZW5ndGggIjguLjMyIjsNCj4+ID4NCj4+ID4gVGhlcmUgaXMgcHJv
YmFibHkgc29tZSBkaXNjdXNzaW9uIHRvIGJlIGhhZCBhYm91dCB0aGUgbWluaW11bSBub25jZQ0K
Pj4gPiBsZW5ndGggKG5vdCBuZWNlc3NhcmlseSBpbiB0aGUgZG9jdW1lbnQgaXRzZWxmKS4gIERv
IHlvdSBoYXZlIGEgDQo+PiA+IHBvaW50ZXIgaGFuZHkgdG8gcHJldmlvdXMgZGlzdWNzaW9ucyBv
ciBkbyB3ZSBuZWVkIHRvIGhhdmUgaXQgbm93Pw0KPj4gPiAoSSBkbyBzZWUgdGhhdCB0aGlzIGlz
IGp1c3QgZm9sbG93aW5nIFJGQyA4MzY2LCBzbyBob3BlZnVsbHkgdGhpcw0KPj4gPiBpcyBhbiBl
YXN5IHF1ZXN0aW9uLikNCj4+IA0KPj4gDQo+PiBJIHNlbnQgZW1haWwgdG8gbXkgUkZDIDgzNjYg
Y28tYXV0aG9ycywgYXMgdGhleSB3ZXJlIGJlaGluZCBzZXR0aW5nDQo+PiB0aGlzIG1pbiBub25j
ZSBsZW5ndGguICBJIGhhdmUgeWV0IHRvIGhlYXIgYmFjayBmcm9tIHRoZW0sIGJ1dCB3aWxsDQo+
PiBsZXQgeW91IGtub3cgd2hlbiBJIGRvLg0KPg0KPiBbY292ZXJlZCBpbiBzZXBhcmF0ZSB0aHJl
YWRdDQoNCltCcmluZ2luZyBiYWNrIGludG8gdGhpcyB0aHJlYWRdDQoNCkkgZW1haWxlZCB0aGUg
UkZDIDgzNjYgYXV0aG9ycyAoQ0MgeW91KSByZWdhcmRpbmcgeW91ciBjb25jZXJuIHdpdGggdGhl
DQptaW5pbXVtLWFsbG93ZWQgbm9uY2UgbGVuZ3RoLg0KDQpBcyBmb3IgdGhpcyBkcmFmdCwgSSBm
ZWVsIHRoYXQgdGhlIGVhc2llc3Qgc29sdXRpb24gaXMgdG8gY2hhbmdlIHRoZSBZQU5HDQphcyBm
b2xsb3dzOg0KDQogICAgICAgbGVhZiBub25jZSB7DQogICAgICAgICB0eXBlIGJpbmFyeSB7DQot
ICAgICAgICAgIGxlbmd0aCAiOC4uMzIiOw0KKyAgICAgICAgICBsZW5ndGggIjE2Li4zMiI7DQog
ICAgICAgICB9DQoNCkl0IGlzIHdpdGhpbiB0aGUgcmFuZ2UgYWxsb3dlZCBieSBSRkMgODM2NiAo
aS5lLiwgbm8gY29tcGF0aWJpbGl0eSB2aW9sYXRpb24pDQp3aGlsZSBlbGltaW5hdGVkIHRoZSBs
b3ctZW5kIHRoYXQgeW91IG9iamVjdGVkIHRvLiAgSSBjYW4ndCBpbWFnaW5lIHRoZXJlDQpiZWlu
ZyBhbiBpc3N1ZSBpbiBhc2tpbmcgYSBsb3ctZW5kIGRldmljZSAoZXZlbiBhIG1lYXNseSBJb1Qg
dGhpbmcpIHRvIGdlbmVyYXRlDQphbiBleHRyYSA4IGJ5dGVzIG9mIHJhbmRvbSBkYXRhLg0KDQpJ
J3ZlIG1hZGUgdGhpcyBjaGFuZ2UgaW4gbXkgbG9jYWwgY29weS4NCg0KDQoNCj4+ID4gKDQpIE9Q
VElPTl9WNF9aRVJPVE9VQ0hfUkVESVJFQ1QgcmVwZWF0ZWQgaW5zdGFuY2VzDQo+PiA+DQo+PiA+
IChJbiBTZWN0aW9uIDguMS4pDQo+PiA+DQo+PiA+IEkgdGhpbmsgSSBtYXkganVzdCBiZSBtaXN1
bmRlcnN0YW5kaW5nIHRoaW5ncyBoZXJlLCBidXQgYXJlbid0DQo+PiA+DQo+PiA+ICAgQXMgdGhl
IGxpc3Qgb2YgVVJJcyBtYXkgZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIG9mIGEg
c2luZ2xlDQo+PiA+ICAgREhDUHY0IG9wdGlvbiAoMjU1IG9jdGV0cyksIHRoZSBjbGllbnQgTVVT
VCBpbXBsZW1lbnQgW1JGQzMzOTZdLA0KPj4gPiAgIGFsbG93aW5nIHRoZSBVUkkgbGlzdCB0byBi
ZSBzcGxpdCBhY3Jvc3MgYSBudW1iZXIgb2YNCj4+ID4gICBPUFRJT05fVjRfWkVST1RPVUNIX1JF
RElSRUNUIG9wdGlvbiBpbnN0YW5jZXMuDQo+PiA+DQo+PiA+IGFuZA0KPj4gPg0KPj4gPiAgIFRo
ZSBESENQdjQgc2VydmVyIE1BWSBpbmNsdWRlIGEgc2luZ2xlIGluc3RhbmNlIG9mIE9wdGlvbg0K
Pj4gPiAgIE9QVElPTl9WNF9aRVJPVE9VQ0hfUkVESVJFQ1QgaW4gREhDUCBtZXNzYWdlcyBpdCBz
ZW5kcy4gIFNlcnZlcnMgTVVTVA0KPj4gPiAgIE5PVCBzZW5kIG1vcmUgdGhhbiBvbmUgaW5zdGFu
Y2Ugb2YgdGhlIE9QVElPTl9WNF9aRVJPVE9VQ0hfUkVESVJFQ1QNCj4+ID4gICBvcHRpb24uDQo+
PiA+DQo+PiA+IGluIGNvbmZsaWN0IGFib3V0IHNlbmRpbmcgbW9yZSB0aGFuIG9uZSBpbnN0YW5j
ZSBvZg0KPj4gPiBPUFRJT05fVjRfWkVST1RPVUNIX1JFRElSRUNUPw0KPj4gDQo+PiBZZXMsIHRo
ZXNlIHN0YXRlbWVudHMgYXBwZWFyIHRvIGJlIGNvbnRyYWRpY3RvcnkuICBJIGFza2VkIG15IGNv
LWF1dGhvciwNCj4+IElhbiBGYXJyZXIsIG91ciBsb2NhbCBESENQIGV4cGVydCwgdG8gYW5zd2Vy
IHRoaXMgcXVlc3Rpb24uICBJIHRoaW5rIHNvbWUNCj4+IHdvcmQtc21pdGhpbmcgaXMgbmVlZGVk
IHRvIGNvbnZleSB0aGF0IGEgInNpbmdsZXRvbiIgb3B0aW9uIG1heSBiZSBzcGxpdA0KPj4gaW50
byBwaWVjZXMuDQo+DQo+IElmIG1lbW9yeSBzZXJ2ZXMsIHRoaXMgd2FzIHJlc29sdmVkIGluIGEg
ZGlmZmVyZW50IEFEJ3MgYmFsbG90IHRocmVhZC4NCg0KSSB0aGluayB5b3UgbWVhbiB0aGlzIGNv
bW1pdCBieSBteSBjby1hdXRob3IgSWFuIHRvIGFkZHJlc3MgYSBjb21tZW50IGZyb20gU3VyZXNo
OiBodHRwczovL2dpdGh1Yi5jb20vbmV0Y29uZi13Zy96ZXJvLXRvdWNoL2NvbW1pdC8xYzg0NmNh
M2JjNmNlOGZmZTE4MTNhMGM4NjRkYzNhZWJhZjNhZjY1Lg0KDQpJbiBlaXRoZXIgY2FzZSwgd2Ug
YmVsaWV2ZSB0aGUgaXNzdWUgaXMgcmVzb2x2ZWQgaW4gdGhlIGN1cnJlbnQgKHBvc3RlZCkgdGV4
dC4NCkhlcmUgaXMgdGhlIGRpcmVjdCBsaW5rOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
ZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yNiNzZWN0aW9uLTguDQoNCkNhbiB0aGlzIERJ
U0NVU1MgaXRlbSBiZSBjbG9zZWQgbm93Pw0KDQoNCiANCj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4g
PiBDT01NRU5UOg0KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiA+DQo+PiA+IFNob3VsZCB3ZSBjb25z
aWRlciByZWNvbW1lbmRpbmcgQXV0aEVudmVsb3BlZERhdGEgdGhyb3VnaG91dCBpbnN0ZWFkDQo+
PiA+IG9mIGp1c3QgRW52ZWxvcGVkRGF0YT8NCj4+IA0KPj4gSSBkb24ndCB0aGluayB0aGlzIGlz
IG5lY2Vzc2FyeSBhcyAxKSB0aGUgZGVjcnlwdGVkIGRhdGEgY2FuIGJlIHRlc3RlZA0KPj4gdG8g
YmUgYSB3ZWxsLWZvcm1lZCBDTVMgYW5kIDIpIHVzaW5nIFNaVFAgdG8gY2F1c2UgdGhlIGRldmlj
ZSB0byBhY3QgYXMgYQ0KPj4gZGVjcnlwdGlvbiBvcmFjbGUgZG9lc24ndCB3b3JrIHdlbGwsIGlm
IGF0IGFsbCwgYXMgdGhlIGRlY3J5cHRlZCB0ZXh0DQo+PiBpc24ndCBzdWJzZXF1ZW50bHkgbWFk
ZSBhdmFpbGFibGUuDQo+PiANCj4NCj4gSSdtIG5vdCBzdXJlIHRoYXQgKDIpIGlzIHJlbGV2YW50
LCBidXQgKDEpIGFuZCBiZWluZyBhIFNpZ25lZERhdGEgb3VnaHQNCj4gdG8gYmUgZW5vdWdoLiAg
VGhhbmtzIGZvciB0aGlua2luZyBpdCB0aHJvdWdoIHdpdGggbWUuDQoNCkdyZWF0IC0gdGhpcyBp
dGVtIGlzIGNsb3NlZC4NCg0KDQogDQo+PiA+IFRMUyBhbmQgQ01TIGFyZSBwcm9iYWJseSBnb29k
IGVub3VnaCBhYm91dCBhZGRpbmcgY29udGV4dCBpbiB0aGVpcg0KPj4gPiBzaWduYXR1cmVzICh3
ZWxsLCBwcm92aWRlZCBtb2Rlcm4gdmVyc2lvbnMgYXJlIHVzZWQpIHRoYXQgd2UgZG9uJ3QNCj4+
ID4gZ2V0IHRvbyBtdWNoIGhlYXJ0YnVybiBhYm91dCByZXVzaW5nIHRoZSBzYW1lIGtleSBkaXJl
Y3RseSBmb3IgYm90aA0KPj4gPiB6ZXJvdG91Y2ggW2FydGlmYWN0XSBkZWNyeXB0aW9uIGFuZCBU
TFMgY2xpZW50IGNlcnRpZmljYXRlcywgYnV0IA0KPj4gPiBpdCdzIGdlbmVyYWxseSB0aGUgc29y
dCBvZiB0aGluZyB0aGF0IHdlIGZyb3duIHVwb24uDQo+PiANCj4+IFVuZGVyc3Rvb2QsIHdoaWNo
IGlzIHdoeSB0aGUgbGFzdCBwYXJhZ3JhcGggb2YgU2VjdGlvbiAzLjQgKEFydGlmYWN0DQo+PiBF
bmNyeXB0aW9uKSBzYXlzICJUaGlzIFtlbmNyeXB0aW9uXSBjZXJ0aWZpY2F0ZSBNQVkgYmUgdGhl
IHNhbWUgYXMgDQo+PiB0aGUgVExTLWxldmVsIGNsaWVudCBjZXJ0aWZpY2F0ZSB0aGUgZGV2aWNl
IHVzZXMgd2hlbiBjb25uZWN0aW5nIHRvDQo+PiBib290c3RyYXAgc2VydmVycy4iLiAgVGhlIGRy
YWZ0IGlzIGdvaW5nIG91dCBvZiBpdHMgd2F5IHRvIHNheSB0aGF0DQo+PiB0aGlzIGlzIG9rYXku
ICBUaGlzIGlzIG5lY2Vzc2FyeSwgaW4gcGFydCwgYmVjYXVzZSBkZXZpY2VzIHRlbmQgdG8NCj4+
IGhhdmUgb25seSBhIHNpbmdsZSBJRGV2SUQgY2VydGlmaWNhdGUsIGFuZCBoZW5jZSBpdCB0ZW5k
cyB0byBiZSB1c2VkDQo+PiBmb3IgYm90aCBkaWdpdGFsU2lnbmF0dXJlIChmb3Igd2hlbiB1c2Vk
IGFzIGEgVExTIGNsaWVudCBjZXJ0KSBhbmQNCj4+IGtleUVuY2lwaGVybWVudCAoZm9yIGRlY3J5
cHRpbmcgdGhlIHplcm90b3VjaCBhcnRpZmFjdHMpLiAgVGhlIGRyYWZ0DQo+PiBhbHNvIGxlYXZl
cyBvcGVuIHRoZSBwb3NzaWJpbGl0eSB0byB1c2UgZGlzdGluY3QgY2VydGlmaWNhdGVzIGZvcg0K
Pj4gZWFjaCBwdXJwb3NlLiAgUGVyaGFwcyBhIFNlY3VyaXR5IENvbnNpZGVyYXRpb24gZm9yIHRo
aXMgd291bGQgYmUNCj4+IGdvb2Q/ICBbQnV0IGdpdmVuIHRoYXQgdGhlc2UgYXJlIGRpc3RpbmN0
L3NlcGFyYXRlIHVzZXMsIHdpdGggbm8NCj4+IGxlYWthZ2UgYmV0d2VlbiAoQUZBSUNUKSwgdGhl
biBtYXliZSBub3QgbmVlZGVkP10NCj4NCj4gSSB3b3VsZCBzdWdnZXN0IChyZWNhbGxpbmcgdGhh
dCB0aGlzIGlzIGEgbm9uLWJsb2NraW5nIGNvbW1lbnQpIGFkZGluZw0KPiBzb21lIHRleHQgdGhh
dCB0aGlzIGRvZXMgYWxsb3cgZm9yIHJldXNlIG9mIHRoZSBwcml2YXRlIGtleSB0byBtYWtlDQo+
IGRpZmZlcmVudCB0eXBlcyBvZiBzaWduYXR1cmVzLCBidXQgdGhlcmUgYXJlIG5vdCBhbnkga25v
d24gd2F5cyB0bw0KPiBjYXVzZSBhIHNpZ25hdHVyZSBtYWRlIGluIG9uZSBjb250ZXh0IHRvIGJl
IChtaXMpaW50ZXJwcmV0ZWQgYXMgdmFsaWQNCj4gaW4gdGhlIG90aGVyLg0KDQpJIGhhdmUgYWRk
ZWQgYSBuZXcgU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMgc2VjdGlvbiB0byBoaWdobGlnaHQgdGhp
cyByZXVzZTogaHR0cHM6Ly9naXRodWIuY29tL25ldGNvbmYtd2cvemVyby10b3VjaC9jb21taXQv
NjIwNzZlODQyMWZkMjg2YTc0NTE5YjYwZTgzNDZkYmY3OGQzYzRmMg0KDQoNCg0KDQo+PiA+IEkg
YSBsaXR0bGUgYml0IHdvbmRlciBpZiB3ZSB3YW50IHJlZmVyZW5jZXMgZm9yIFRMUyBhbmQvb3Ig
SFRUUCBjbGllbnQNCj4+ID4gYXV0aGVudGljYXRpb24uICBTZWN0aW9uIDIuNSBvZiBSRkMgODA0
MCBtaWdodCBiZSBlbm91Z2ggKHRob3VnaCBpdCBpcw0KPj4gPiBvZiBjb3Vyc2Ugbm90IGNpdGlu
ZyBUTFMgMS4zKS4NCj4+IA0KPj4gVGhpcyBkcmFmdCdzIHVzZSBvZiBUTFMgYW5kIEhUVFAgYXV0
aGVudGljYXRpb24gaXMgZXhjbHVzaXZlbHkgZm9yDQo+PiBSRVNUQ09ORiAoUkZDIDgwNDApLiAg
IEknbSBnZW5lcmFsbHkgaG9waW5nIHRvIGp1c3QgcmVmZXJlbmNlIHRoYXQNCj4+IFJGQyBhbmQg
bGV0IGl0IHNwZWFrIGZvciBpdHNlbGYuDQo+PiANCj4+IENvcnJlY3QsIFJGQyA4MDQwIGRvZXMg
bm90IGNpdGUgVExTIDEuMyBleHBsaWNpdGx5LCB0aG91Z2ggVExTIDEuMyBpcw0KPj4gYWxsb3dl
ZCwgYXMgU2VjdGlvbiAyLjEgc2F5czoNCj4+IA0KPj4gICAgUkVTVENPTkYgZG9lcyBub3QgcmVx
dWlyZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgSFRUUC4gIEhvd2V2ZXIsIGl0IA0KPj4gICAgaXMg
UkVDT01NRU5ERUQgdGhhdCBhdCBsZWFzdCBIVFRQLzEuMSBbUkZDNzIzMF0gYmUgc3VwcG9ydGVk
IGJ5IGFsbA0KPj4gICAgaW1wbGVtZW50YXRpb25zLg0KPj4gDQo+PiBCVFcsIGRvZXMgdGhpcyBj
b21tZW50IHJlZ2FyZCBTZWN0aW9uIDkuNj8gIA0KPg0KPiBTZWN0aW9uIDkuNiBpcyBhYm91dCBt
YWtpbmcgc3VyZSB0aGUgY2xpZW50IGRvZXMgbm90IHNlbmQgc2Vuc2l0aXZlIGRhdGEgdG8NCj4g
YW4gdW5hdXRoZW50aWNhdGVkIHNlcnZlciwgd2hpY2ggaXMgbm90IGxpbWl0ZWQgdG8gdGhlIGRh
dGEgaW4gdGhlDQo+IGNlcnRpZmljYXRlOyBteSBjb21tZW50IGhlcmUgaXMgbW9yZSBhYm91dCB0
aGUgbWVjaGFuaWNzIG9mIHRoZSBjbGllbnQNCj4gYXV0aGVudGljYXRpbmcgaXRzZWxmIHRvIGEg
c2VydmVyIGZvciB0aGUgc2VydmVyIHRvIG1ha2UgYXV0aG9yaXphdGlvbg0KPiBkZWNpc2lvbnMg
KGFkbWl0dGVkbHksIEkgZGlkIG5vdCBtZW50aW9uICJhdXRob3JpemF0aW9uIiBwcmlvciB0byBu
b3csIHNvDQo+IG15IGFwb2xvZ2llcyBmb3IgYmVpbmcgdW5jbGVhcikuICBDbGllbnQgYXV0aGVu
dGljYXRpb24gaXMgbWVudGlvbmVkDQo+IGRpcmVjdGx5IG9yIGluIHBhc3NpbmcgaW4gYXQgbGVh
c3Qgc2VjdGlvbnMgNS4xICh3aGljaCBkb2VzIG1lbnRpb24gU2VjdGlvbg0KPiAyLjUgb2YgUkZD
IDgwNDAgYWxyZWFkeSkgYW5kIDUuMyAoZGl0dG8pLCBhcyB3ZWxsIGFzIDkuNi4NCg0KQXMgeW91
IHNheSwgYXV0aGVudGljYXRpb24gaXMgbWVudGlvbmVkIGluIHNldmVyYWwgcGxhY2VzIGFscmVh
ZHkgDQphbmQsIGlmIEkgdW5kZXJzdGFuZCB5b3UgY29ycmVjdGx5LCB0aGlzIHRleHQgaXMgc3Vm
ZmljaWVudC4NCg0KV2hpbGUgdGhlIHdvcmQgImF1dGhvcml6YXRpb24iIGRvZXMgbm90IGFwcGVh
ciBpbiB0aGlzIGRvY3VtZW50LCANClNlY3Rpb24gOS4xMyBkaXNjdXNzZXMgImFjY2VzcyIsIHdo
aWNoIHJlbGF0ZXMgdG8gc3RhdGVtZW50cyBpbiANClJGQyA4MDQwLCBzdWNoIGFzOg0KDQogICBU
aGUgUkVTVENPTkYgc2VydmVyIE1VU1QgYXV0aGVudGljYXRlIGNsaWVudCBhY2Nlc3MgdG8gYW55
IHByb3RlY3RlZA0KICAgcmVzb3VyY2UuDQoNCiAgIFRoZSBzZXJ2ZXIgTVVTVCBOT1QgYWxsb3cg
YW55IFJFU1RDT05GIG9wZXJhdGlvbiBmb3IgYW55IHJlc291cmNlcw0KICAgdGhhdCB0aGUgY2xp
ZW50IGlzIG5vdCBhdXRob3JpemVkIHRvIGFjY2Vzcy4NCg0KVG8gcHJvdmlkZSBhIG1vcmUgY29t
cGxldGUgcGljdHVyZSwgdGhlIGJvb3RzdHJhcCBzZXJ2ZXIgZXhwb3NlcyBqdXN0DQp0d28gUlBD
cy4gIEVhY2ggUlBDICpyZXF1aXJlcyogYW4gYXV0aGVudGljYXRlZCBjbGllbnQtY3JlZGVudGlh
bCB0bw0KZnVuY3Rpb24uICBUaGF0IGlzLCAiZ2V0LWJvb3RzdHJhcHBpbmctZGF0YSIgY2FuIG9u
bHkgcmV0dXJuIHRoZSANCmJvb3RzdHJhcHBpbmcgZGF0YSBmb3IgdGhlIGF1dGhlbnRpY2F0ZWQg
Y2xpZW50IGNyZWRlbnRpYWw7IHRoZXJlIGlzDQpubyBvdGhlciBwYXJhbWV0ZXIgcGFzc2VkIGZv
ciB0aGUgc2VydmVyIHRvIGRldGVybWluZSB3aGljaCBkYXRhIHRvIA0KcmV0dXJuLiBMaWtld2lz
ZSwgInJlcG9ydC1wcm9ncmVzcyIgY2FuIG9ubHkgcmVwb3J0IHByb2dyZXNzIGZvciB0aGUNCmF1
dGhlbnRpY2F0ZWQgY2xpZW50IGNyZWRlbnRpYWw7IHRoZXJlIGlzIG5vIG90aGVyIHBhcmFtZXRl
ciBwYXNzZWQNCmZvciB0aGUgc2VydmVyIHRvIGRldGVybWluZSBmb3Igd2hpY2ggY2xpZW50IGlz
IHJlcG9ydGluZyB0aGUgZGF0YS4NCg0KVGhpcyBDT01NRU5UIGJlZ2FuIGJ5IGFza2luZyBpZiB3
ZSBtaWdodCB3YW50IHJlZmVyZW5jZXMgZm9yIFRMUyANCmFuZC9vciBIVFRQIGNsaWVudCBhdXRo
ZW50aWNhdGlvbiwgYW5kIG5vdyBtYXliZSBhdXRob3JpemF0aW9uLg0KR2l2ZW4gdGhlIGFib3Zl
IGRpc2N1c3Npb24sIHdoYXQgaXMgeW91ciByZWNvbW1lbmRhdGlvbj8NCg0KDQo+PiA+IChBcmUg
dGhlcmUgZ2VuZXJpYyBSRVNUQ09ORiBpbnRlcm5hdGlvbmFsaXphdGlvbiBjb25zaWRlcmF0aW9u
cz8NCj4+ID4gSSBzZWUgODA0MCBzYXkgImp1c3QgdXNlIFVURi04IiwgYnV0IGlzIG1vcmUgbmVl
ZGVkPykNCj4+IA0KPj4gSSdtIG5vdCBhd2FyZSBvZiBhbnkgcHJvYmxlbXMgaGVyZS4gIE5vIFJG
QyA4MDQwIGVycmF0YSBoYXMgYmVlbiBmaWxlZC4NCj4+IElzIHRoZXJlIHNvbWV0aGluZyBpbiBw
YXJ0aWN1bGFyIHlvdSdyZSB0aGlua2luZyBhYm91dD8NCj4NCj4gTm90aGluZyBpbiBwYXJ0aWN1
bGFyLCBuby4gIA0KDQpPa2F5LCB0aGlzIGl0ZW0gc2VlbXMgdG8gYmUgY2xvc2VkIHRoZW4uDQoN
Cg0KDQo+PiA+IFNlY3Rpb24gMS4yDQo+PiA+DQo+PiA+ICAgTmV0d29yayBNYW5hZ2VtZW50IFN5
c3RlbSAoTk1TKTogIFRoZSBhY3JvbnltICJOTVMiIGlzIHVzZWQNCj4+ID4gICAgICAgdGhyb3Vn
aG91dCB0aGlzIGRvY3VtZW50IHRvIHJlZmVyIHRvIHRoZSBkZXBsb3ltZW50IHNwZWNpZmljDQo+
PiA+DQo+PiA+IG5pdDogZGVwbG95bWVudC1zcGVjaWZpYyAod2l0aCBoeXBoZW4pDQo+PiANCj4+
IEZpeGVkIChhcyB3ZWxsIGFzIHRoZSBpbnN0YW5jZSBpbiBTZWN0aW9uIEMuMikNCg0KDQoNCg0K
Pj4gPiBTZWN0aW9uIDIuMQ0KPj4gPg0KPj4gPiBEb2VzIFJGQyA4MzQwIHJlcXVpcmUgYSAicm8i
IChvciBzaW1pbGFyKSB0byBhcHBlYXIgaW4gdGhlIHRyZWUNCj4+ID4gZGlhZ3JhbT8gKEJvdGgg
aGVyZSBhbmQgaW4gwqcyLjIuKQ0KPj4gDQo+PiBObywgYmVjYXVzZSB0aGVzZSBhcmUgInlhbmct
ZGF0YSIgc3RydWN0dXJlcy4NCj4+IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4MzQw
I3NlY3Rpb24tMi4zLg0KPg0KPiBBaCwgdGhhbmtzIGZvciB0aGUgcG9pbnRlciAtLSBsZWFybiBz
b21ldGhpbmcgZXZlcnkgZGF5Lg0KDQoNCg0KDQo+PiA+IFNlY3Rpb24gMy4yDQo+PiA+DQo+PiA+
IERvIHdlIHdhbnQgdG8gaW1wb3NlIGFueSBvcmRlcmluZyByZXF1aXJlbWVudHMgb24gdGhlIGNl
cnRpZmljYXRlDQo+PiA+IGNoYWluIChlLmcuLCBvd25lciBjZXJ0IG11c3QgY29tZSBmaXJzdCwg
ZWFjaCBjZXJ0IFNIT1VMRCBjZXJ0aWZ5DQo+PiA+IHRoZSBvbmUgaW1tZWRpYXRlbHkgcHJpb3Ig
dG8gaXQsIGV0Yy4pPw0KPj4gDQo+PiBUaGUgb3duZXIgY2VydGlmaWNhdGUgaXMgZW5jb2RlZCB1
c2luZyBhIENNUyBTaWduZWREYXRhIHN0cnVjdHVyZS4NCj4+IFNpZ25lZERhdGEgaXMgZGVmaW5l
ZCBpbiBSRkMgNTY1MiwgNS4xLiAgVGhlICJjZXJ0aWZpY2F0ZXMiIGZpZWxkDQo+PiBpcyBvZiB0
eXBlICJDZXJ0aWZpY2F0ZVNldCIsIGRlZmluZWQgaW4gU2VjdGlvbiAxMC4yLjMgYXMgYSAiU0VU
IE9GIiwNCj4+IHdoaWNoIGlzIGRlZmluZWQgaW4gQVNOLjEgYXMgYW4gdW5vcmRlcmVkIGNvbGxl
Y3Rpb24uICBTbywgb3JkZXJpbmcNCj4+IGlzIG5vdCBwb3NzaWJsZS4NCj4NCj4gT2theS4NCg0K
DQoNCg0KPj4gPiBTZWN0aW9uIDMuNA0KPj4gPg0KPj4gPiBUaGFuayB5b3UgZm9yIGluY2x1ZGlu
ZyB0aGUgbW90aXZhdGluZyB0ZXh0IGFib3V0IHNpZ24tdGhlbi1lbmNyeXB0Lg0KPj4gPiBJIGRv
IHdvbmRlciBpZiBpdCdzIHdvcnRoIHNheWluZyBhbnl0aGluZyBhYm91dCB3aHkgdGhlIHdlbGwt
cHVibGljaXplZA0KPj4gPiBzZWN1cml0eSByaXNrcyBvZiBtYWMtdGhlbi1lbmNyeXB0IGRvIG5v
dCBhcHBseS4gIChUaGUgYXV0aG9ycyBvZg0KPj4gPiBkcmFmdC1jYW1wYmVsbC1zaXAtbWVzc2Fn
aW5nLXNtaW1lIHByb2JhYmx5IGFscmVhZHkgaGF2ZSBzb21lIHRleHQNCj4+ID4gdGhhdCBjb3Vs
ZCBiZSB1c2VkLCBidXQgaXQgZG9lc24ndCBzZWVtIHRvIGJlIGluIHRoZSBwdWJsaWMgdmlldyB5
ZXQuKQ0KPj4gDQo+PiBBcmUgeW91IHJlZmVycmluZyB0byB0aGUgcGFkZGluZyBvcmFjbGUgYXR0
YWNrPyAgQXMgbWVudGlvbmVkIGFib3ZlLCB0aGUNCj4NCj4gUmlnaHQuDQo+DQo+PiBzb2x1dGlv
biBwcmVzZW50ZWQgaW4gdGhpcyBkb2N1bWVudCBkb2Vzbid0IGxlbmQgdGhlIGRldmljZSB0byBi
ZWluZyBhDQo+PiB2ZXJ5IGdvb2QgZGVjcnlwdGlvbiBvcmFjbGUuICBJIHN1cHBvc2UgdGhlIGZp
eCB3b3VsZCBiZSB0byBhZGQgdG8gdGhpcw0KPj4gc2VjdGlvbiAob3IgdGhlIFNlY3VyaXR5IENv
bnNpZGVyYXRpb25zIHNlY3Rpb24/KSBzb21ldGhpbmcgbGlrZToNCj4+IA0KPj4gICBUaGlzIGRv
Y3VtZW50IHNwZWNpZmllcyB0aGUgZW5jcnlwdGlvbiBvZiBzaWduZWQgb2JqZWN0cywgYXMgb3Bw
b3NlZA0KPj4gICB0byB0aGUgc2lnbmluZyBvZiBlbmNyeXB0ZWQgb2JqZWN0cywgYXMgbWlnaHQg
YmUgZXhwZWN0ZWQgZ2l2ZW4gd2VsbC0NCj4+ICAgcHVibGljaXplZCBvcmFjbGUgYXR0YWNrcyAo
ZS5nLiwgdGhlIHBhZGRpbmcgb3JhY2xlIGF0dGFjaykuICBUaGlzDQo+PiAgIGRvY3VtZW50IGRv
ZXMgbm90IHZpZXcgc3VjaCBhdHRhY2tzIGFzIGJlaW5nIGZlYXNpYmxlIGluIHRoZSBjb250ZXh0
DQo+PiAgIG9mIHRoZSBzb2x1dGlvbiBiZWNhdXNlIGkpIHRoZSBkZWNyeXB0ZWQgdGV4dCBuZXZl
ciBsZWF2ZXMgdGhlIGRldmljZQ0KPj4gICBhbmQgaWkpIHRoZSBzb2x1dGlvbiBkb2VzIG5vdCBk
aWZmZXJlbnRpYXRlIGJldHdlZW4gYSAiYm9vdHN0cmFwLWVycm9yIg0KPj4gICBjYXVzZSBieSBh
IGRlY3J5cHRpb24gZmFpbHVyZSB2ZXJzdXMgYSBmYWlsdXJlIG9jY3VycmluZyB3aGVuIHBhcnNp
bmcNCj4+ICAgdGhlIGRlY3J5cHRlZCB0ZXh0Lg0KPg0KPiBUaGF0IHdvcmtzIGZvciBtZSwgdGhh
bmtzLiAgKEJ1dCBmZWVsIGZyZWUgdG8gbGVhdmUgaXQgb3V0IGlmIHlvdSBkb24ndA0KPiB0aGlu
ayBpdCdzIGFkZGluZyB2YWx1ZSwgdG9vLikNCg0KSSBhZGRlZCBhIHNsaWdodGx5IHJlZHVjZWQg
dmVyc2lvbiBvZiB0aGUgYWJvdmUgdGV4dCAodGFraW5nIG91dCBjbGF1c2UgImlpIik6DQpodHRw
czovL2dpdGh1Yi5jb20vbmV0Y29uZi13Zy96ZXJvLXRvdWNoL2NvbW1pdC8zODhkMDM1NWIzYzdj
NmNlNGFhNDgwMjhhNGVmODlkYzY0MTQ3MzA0Lg0KDQpTdGlsbCBnb29kPw0KDQoNCiANCj4+ID4g
U2VjdGlvbiA0LjENCj4+ID4NCj4+ID4gTW91bnRpbmcgYWxsIGZpbGVzeXN0ZW1zIGZvdW5kIG9u
IHJlbW92YWJsZSBkZXZpY2VzIGNhbiBiZSBhIHNlY3VyaXR5DQo+PiA+IHJpc2ssIHdpdGggaW50
ZW50aW9uYWxseSBtYWxmb3JtZWQgZmlsZXN5c3RlbSBpbWFnZXMgY2F1c2luZyBzeXN0ZW0NCj4+
ID4gY29tcHJvbWlzZSBpbiBzb21lIGNhc2VzLg0KPj4gDQo+PiBJcyB0aGUgY29uY2VybiB0aGUg
bW91bnRpbmcgb2YgKmFsbCogb3IgKmFueSogZmlsZXN5c3RlbXM/ICBJdCBzZWVtcyANCj4+IHRo
YXQgZXZlbiBpZiB0aGVyZSB3ZXJlIGp1c3Qgb25lIGZpbGVzeXN0ZW0sIGl0IGNvdWxkIGJlIGlu
dGVudGlvbmFsbHkNCj4+IG1hbGZvcm1lZC4gIEFyZSB5b3UgaG9waW5nIHRvIHNlZSBhIFNlY3Vy
aXR5IENvbnNpZGVyYXRpb24gZm9yIHRoaXM/DQo+DQo+IFRoZSBjb25jZXJuIHdhcyBhbnksIHRo
YW5rcyBmb3IgZmlndXJpbmcgb3V0IHdoYXQgSSBtZWFudC4NCj4gVGhpbmtpbmcgYWJvdXQgdGhp
cyBhZ2FpbiBhZnRlciB0aGUgbG9uZyBnYXAsIGl0IHNlZW1zIGEgcHJldHR5IGdlbmVyaWMNCj4g
Y29uc2lkZXJhdGlvbiwgc28gaXQncyB1bmNsZWFyIHRoYXQgU2VjdXJpdHkgQ29uc2lkZXJhdGlv
bnMgdGV4dCBpbiB0aGlzDQo+IGRvY3VtZW50IHNwZWNpZmljYWxseSB3b3VsZCBiZSBwYXJ0aWN1
bGFybHkgaGVscGZ1bC4NCg0KT2theSwgbGV0J3MgY2xvc2UgdGhpcyBvbmUgd2l0aCBubyB1cGRh
dGUuDQoNCg0KDQogDQo+PiA+IFNlY3Rpb24gNC4yDQo+PiA+DQo+PiA+IEkgYWdyZWUgd2l0aCBB
ZGFtIGFib3V0IHJlZ2lzdGVyaW5nICJ6ZXJvdG91Y2giIChhbmQgdGhlIG5hbWUgaXMNCj4+ID4g
cGVyaGFwcyBvdmVybHkgZ2VuZXJpYz8pLg0KPj4gPg0KPj4gPiBJJ20gYWxzbyBub3Qgc3VyZSBJ
IHByb3Blcmx5IHVuZGVyc3RhbmQgdGhlICJ6dC1pbmZvIi96dC0qIFRYVA0KPj4gPiByZWNvcmRz
JyB1c2FnZTsgd291bGQgdGhleSBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgYWtpbiB0bw0KPj4gPiBk
cmFmdC1tb29uZXNhbXktZG5zb3Atc3BlY2lhbC11c2UtbGFiZWwtcmVnaXN0cnk/DQo+PiANCj4+
IEZpcnN0LCByZWdhcmRpbmcgdGhlIHRlcm0gInplcm90b3VjaCIgYmVpbmcgcGVyaGFwcyBvdmVy
bHkgZ2VuZXJpYywNCj4+IEkgaGF2ZSBzb21ld2hhdCBmZWx0IHRoaXMgd2F5IGZvciBhIHdoaWxl
LiAgT25lIHRoaW5nIHRoYXQgY291bGQgYmUNCj4+IGRvbmUgZmFpcmx5IGVhc2lseSBpcyB0byBt
b3JlIHRoZSBidWxrIG9mIHRoZSAiemVyb3RvdWNoIiByZWZlcmVuY2VzDQo+PiB0byAic3p0cCIs
IHRoZSBhY3JvbnltIGdpdmVuIHRocm91Z2hvdXQuICBBZG1pdHRlZGx5LCB3aGF0IFNaVFANCj4+
IHN0YW5kcyBmb3IgaXNuJ3QgdHJlbWVuZG91c2x5IGJldHRlciwgYnV0IEkgdGhpbmsgdGhhdCBp
dCBpcw0KPj4gZ2VuZXJhbGx5IGJldHRlciB0aGFuIGp1c3QgInplcm90b3VjaCIuICBUaG91Z2h0
cz8NCj4NCj4gU1pUUCBkb2VzIHNlZW0gYmV0dGVyIHRoYW4ganVzdCAiemVyb3RvdWNoIiB0byBt
ZSwgYWxsIHRoaW5ncyBjb25zaWRlcmVkLg0KDQoNCk9rYXksIEkgZGlkIHRoZSBmb2xsb3dpbmc6
DQoNCiAgV2hlbiByZWZlcnJpbmcgdG8gdGhlIGRyYWZ0L3NvbHV0aW9uOg0KICAgIFplcm8gVG91
Y2ggLS0+IFNaVFANCg0KICBXaGVuIHJlZmVycmluZyB0byB0aGUgYm9vdHN0cmFwcGluZyBhcnRp
ZmFjdDoNCiAgICB6ZXJvIHRvdWNoIGluZm9ybWF0aW9uIC0tPiBjb252ZXllZCBpbmZvcm1hdGlv
bg0KICAgIHplcm90b3VjaC1pbmZvcm1hdGlvbiAgLS0+IGNvbnZleWVkLWluZm9ybWF0aW9uDQoN
CiAgRm9yIHRoZSBDTVMgY29udGVudCB0eXBlczoNCiAgICBpZC1jdC16ZXJvdG91Y2hJbmZvcm1h
dGlvblhNTCAgLS0+IGlkLWN0LXN6dHBDb252ZXllZEluZm9YTUwNCiAgICBpZC1jdC16ZXJvdG91
Y2hJbmZvcm1hdGlvbkpTT04gLS0+IGlkLWN0LXN6dHBDb252ZXllZEluZm9KU09ODQoNCiAgRm9y
IHRoZSBZQU5HIG1vZHVsZXM6DQogICAgaWV0Zi16ZXJvdG91Y2gtaW5mb3JtYXRpb24ueWFuZyAg
ICAgIC0tPiBpZXRmLXN6dHAtY29udmV5ZWQtaW5mby55YW5nDQogICAgaWV0Zi16ZXJvdG91Y2gt
Ym9vdHN0cmFwLXNlcnZlci55YW5nIC0tPiBpZXRmLXN6dHAtYm9vdHN0cmFwLXNlcnZlci55YW5n
DQoNCiAgRm9yIHRoZSBETlMvc2VydmljZSBuYW1lOg0KICAgIF96ZXJvdG91Y2ggLS0+IF9zenRw
DQoNCkEgYmlnIGNoYW5nZSwgdGhvdWdoIEkgc2NyaXB0ZWQgbW9zdCBvZiBpdC4gSGVyZSdzIHRo
ZSBkaWZmOg0KaHR0cHM6Ly9naXRodWIuY29tL25ldGNvbmYtd2cvemVyby10b3VjaC9jb21taXQv
Mzk0Yjg2M2QxODUwMDE5ZmQ0NTE1NTRhOWY4NmMzYzEwZDI4MGQwOA0KDQoNCg0KDQoNCj4+IFNl
Y29uZCwgSSBhbSBub3QgYSBETlMgZXhwZXJ0LCBkbyB5b3Uga25vdyB3aG8gd2UgY2FuIGRpc2N1
c3MNCj4+IHN1Y2ggdGhpbmdzIHdpdGg/ICBUaGF0IHNhaWQsIEkgZ3Vlc3Mgb3VyIGlkZWEgd2Fz
IHRvIHVzZSBUWFQNCj4+IHJlY29yZHMgbGlrZSBSRkMgMTQ2NCwgd2hlcmUgdGhlIFRYVCB2YWx1
ZSBpdHNlbGYgaGFzIHRoZSBmb3JtDQo+PiAiPGF0dHJpYnV0ZSBuYW1lPj08YXR0cmlidXRlIHZh
bHVlPiIsIGluIHdoaWNoIGNhc2UgaXQgZG9lc24ndA0KPj4gc2VlbSB0byBuZWVkIElBTkEgcmVn
aXN0cmF0aW9uPw0KPg0KPiBQbGVhc2UgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcsIGJ1dCBJIHRo
aW5rIHRoaXMgaXNzdWUgd2FzDQo+IGFscmVhZHkgY292ZXJlZCBpbiBhIGRpZmZlcmVudCBBRCdz
IGJhbGxvdCB0aHJlYWQuDQoNCkNvcnJlY3QsIFNlY3Rpb24gNC4yIHdhcyB1cGRhdGVkIChwb3N0
ZWQgaW4gLTI2KSBwZXIgQWxleGV5J3MgRElTQ1VTUy4NClBlciB5b3VyIG9yaWdpbmFsIGNvbW1l
bnQgKGFuZCBoaXMsIGFuZCBBZGFtJ3MpLCBTZWN0aW9uIDEwLjYgbm93DQpyZXF1ZXN0cyBJQU5B
IHRvIHJlZ2lzdGVyIHRoZSBzZXJ2aWNlIG5hbWUgInN6dHAiICh3YXMgInplcm90b3VjaCIpLiAN
Cg0KPiBUaGF0IHNhaWQsIHRoZSBhZGRpdGlvbiBvZiA8c2VyaWFsIG51bWJlcj4uX3plcm90b3Vj
aC5mcWRuIGluIHRoZQ0KPiAtMjYgc2VlbXMgdG8gaW5kaWNhdGUgdGhhdCBtZW50aW9uIG9mIGRy
YWZ0LWlldGYtZG5zb3AtYXR0cmxlYWYNCj4gaXMgYXBwcm9wcmlhdGUsIGlmIEkgcmVtZW1iZXIg
Y29ycmVjdGx5IGhvdyB0aGF0IHdvcmtzLg0KDQpJJ3ZlIGp1c3Qgbm93IHJlYWQgZHJhZnQtaWV0
Zi1kbnNvcC1hdHRybGVhZi4gIEkgc2VlIHRoZSBhcHBsaWNhYmlsaXR5LA0KYnV0IEkgZG9uJ3Qg
dW5kZXJzdGFuZCB5b3VyIHByb3Bvc2FsLiAgTG9va2luZyBhdCBEYXRhVHJhY2tlciwgSSBzZWUN
CnRoYXQgaXQgaXMgYWxyZWFkeSBpbiBSRkMgRWQgUXVldWUsIHNvIEkgdGhpbmsgeW91J3JlIHN1
Z2dlc3RpbmcgbWUNCnRyZWF0IGl0IGFzIGEgZmFpdCBhY2NvbXBsaSwgYW5kIGFkZCBhbiBJQU5B
IENvbnNpZGVyYXRpb24gc2VjdGlvbg0KdG8gcmVnaXN0ZXIgIl9zenRwIiwgeWVzPyAgQXNzdW1p
bmcgdGhhdCBpcyB0aGUgY2FzZSwgdGhlbiB3aGF0IHNob3VsZA0KYmUgZG9uZSB3aXRoIHRoZSBz
ZXJ2aWNlIG5hbWUgcmVnaXN0cmF0aW9uIGluIFNlY3Rpb24gMTAuNiwgYWRkZWQgcGVyDQpjb21t
ZW50cyBmcm9tIEFsZXhleSBhbmQgQWRhbT8NCg0KDQoNCj4+ID4gU2VjdGlvbiA1LjMNCj4+ID4N
Cj4+ID4gVGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSB0YWxrIGFib3V0ICJzZXJpYWwgbnVtYmVy
IiBhcyBkZXZpY2UgaWRlbnRpdHk7DQo+PiA+IG1heWJlIGEgZm9yd2FyZC1yZWZlcmVuY2UgaXMg
aW4gb3JkZXI/DQo+PiANCj4+IEknbSB1bnN1cmUgd2hhdCB0aGUgZm9yd2FyZCByZWZlcmVuY2Ug
d291bGQgYmUgdG8uICBIb3dldmVyLCBJIHRoaW5rIHRoYXQNCj4+IHdlIGNvdWxkIGFkZCAic2Vy
aWFsIG51bWJlciIgdG8gU2VjdGlvbiA1LjEgKEluaXRpYWwgU3RhdGUpLCBhcyBhIG5ldw0KPj4g
Zmlyc3QgaXRlbSBpbiB0aGUgPHJlYWQtb25seSBzdG9yYWdlPiBib3guICBXb3VsZCB0aGF0IGJl
IGJldHRlcj8NCj4NCj4gSXQgbG9va3MgbGlrZSAtMjYgYWRkZWQgc29tZSB0ZXh0IHJlbGF0aW5n
ICJzZXJpYWwgbnVtYmVyIiBhbmQgImRldmljZQ0KPiBpZGVudGl0eSBbY2VydGlmaWNhdGVdIiwg
c28gbGV0J3MgY2FsbCB0aGlzIE9CRS4NCg0KU291bmRzIGdvb2QsIHRoYW5rcy4NCg0KDQoNCg0K
Pj4gPiBEb2VzIHRoZSBkZXZpY2UgaGF2ZSBhbnkgcmVhc29uIHRvIHRyYWNrIHdoZXRoZXIgdGhl
IGluY29taW5nIGFydGlmYWN0IGlzDQo+PiA+IGVuY3J5cHRlZCAod2hldGhlciBhdCB0aGUgQ01T
IGxheWVyIG9yIHRoZSB0cmFuc3BvcnQgbGF5ZXIpPyAgSSBjYW4ndCB0aGluaw0KPj4gPiBvZiBv
bmUsIGJ1dCBzb21ldGltZXMgdGhpcyBpcyB1c2VmdWwgaW5mb3JtYXRpb24gaW4gb3RoZXIgc2V0
dGluZ3MuDQo+PiANCj4+IEkgYWxzbyBjYW5ub3QgdGhpbmsgb2YgYSByZWFzb24uICBUaGF0IHRo
ZSBpbmNvbWluZyBDTVMgaXMgZW5jcnlwdGVkIGhhcw0KPj4gbm8gYmVhcmluZyBvbiBkZXZpY2Un
cyBwcm9jZXNzaW5nIGxvZ2ljLiAgVGhpcyBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhhdCB0aGUNCj4+
IGRldmljZSdzIHB1YmxpYyBrZXkgaXMsIHdlbGwsIHB1YmxpYywgYW5kIHRoZXJlZm9yZSBhY2Nl
c3MgdG8gaXQgaGFzIG5vDQo+PiBzcGVjaWFsIG1lYW5pbmcuICBOb3RlIHRoYXQgZW5jcnlwdGlv
biBoZXJlIGlzIHVzZWQgdG8gZW5zdXJlIHByaXZhY3ksIGFzDQo+PiBvbmx5IHRoZSBkZXZpY2Ug
Y2FuIGRlY3J5cHQvYWNjZXNzIHRoZSBkYXRhLg0KPg0KPiBBZ3JlZWQuDQoNCkV4Y2VsbGVudCAo
Y2xvc2VkKQ0KDQoNCg0KPj4gPiAgIElmIHRoZSB6ZXJvIHRvdWNoIGluZm9ybWF0aW9uIGFydGlm
YWN0IGNvbnRhaW5zIG9uYm9hcmRpbmcNCj4+ID4gICBpbmZvcm1hdGlvbiwgYW5kIHRydXN0LXN0
YXRlIGlzIEZBTFNFLCB0aGUgZGV2aWNlIE1VU1QgZXhpdCB0aGUNCj4+ID4gICByZWN1cnNpdmUg
YWxnb3JpdGhtIChhcyB0aGlzIGlzIG5vdCBhbGxvd2VkLCBzZWUgdGhlIGZpZ3VyZSBhYm92ZSks
DQo+PiA+ICAgcmV0dXJuaW5nIHRvIHRoZSBib290c3RyYXBwaW5nIHNlcXVlbmNlIGRlc2NyaWJl
ZCBpbiBTZWN0aW9uIDUuMi4NCj4+ID4gICBPdGhlcndpc2UsIHRoZSBkZXZpY2UgTVVTVCBhdHRl
bXB0IHRvIHByb2Nlc3MgdGhlIG9uYm9hcmRpbmcNCj4+ID4gICBpbmZvcm1hdGlvbiBhcyBkZXNj
cmliZWQgaW4gU2VjdGlvbiA1LjYuICBJbiBlaXRoZXIgY2FzZSwgc3VjY2VzcyBvcg0KPj4gPiAg
IGZhaWx1cmUsIHRoZSBkZXZpY2UgTVVTVCBleGl0IHRoZSByZWN1cnNpdmUgYWxnb3JpdGhtLCBy
ZXR1cm5pbmcgdG8NCj4+ID4gICB0aGUgYm9vdHN0cmFwcGluZyBzZXF1ZW5jZSBkZXNjcmliZWQg
aW4gU2VjdGlvbiA1LjIsIHRoZSBvbmx5DQo+PiA+ICAgZGlmZmVyZW5jZSBiZWluZyBpbiBob3cg
aXQgcmVzcG9uZHMgdG8gdGhlICJBYmxlIHRvIGJvb3RzdHJhcCBmcm9tDQo+PiA+ICAgYW55IHNv
dXJjZT8iIGNvbmRpdGlvbmFsIGRlc2NyaWJlZCBpbiB0aGUgZmlndXJlIGluIHRoZSBzZWN0aW9u
Lg0KPj4gPg0KPj4gPiBEb2VzIHRoaXMgImVpdGhlciBjYXNlIiByZWZlciB0byBqdXN0IHRoZSBw
cm9jZXNzaW5nIG9mIG9uYm9hcmRpbmcNCj4+ID4gaW5mb3JtYXRpb24sIG9yIHRoZSBleGl0IHZz
LiBhdHRlbXB0IHRvIHByb2Nlc3MgY2FzZXM/ICAoSSBhc3N1bWUgdGhlDQo+PiA+IGZvcm1lciwg
YnV0IHBlcmhhcHMgc29tZSBlZGl0b3JpYWwgd29yayBpcyBpbiBvcmRlci4pDQo+PiANCj4+IFlv
dXIgaW50dWl0aW9uIGlzIGNvcnJlY3QgOikgICBIb3cgYWJvdXQgdGhpczoNCj4+IA0KPj4gICBP
TEQ6DQo+PiAgICAgSW4gZWl0aGVyIGNhc2UsIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgLi4uDQo+PiAN
Cj4+ICAgTkVXOg0KPj4gICAgIFdoZXRoZXIgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIG9uYm9hcmRp
bmcgaW5mb3JtYXRpb24gc3VjY2VlZHMNCj4+ICAgICBvciBmYWlscywgLi4uDQo+DQo+IFNHVE0g
OikNCg0KRWRpdCBtYWRlIGluIC0yNy4NCg0KDQoNCg0KPj4gPiAgIElmIHRoZSB6ZXJvIHRvdWNo
IGluZm9ybWF0aW9uIGFydGlmYWN0IGlzIHNpZ25lZCwgYW5kIHRoZSBkZXZpY2UgaXMNCj4+ID4g
ICBhYmxlIHRvIHZhbGlkYXRlIHRoZSBzaWduZWQgZGF0YSB1c2luZyB0aGUgYWxnb3JpdGhtIGRl
c2NyaWJlZCBpbg0KPj4gPiAgIFNlY3Rpb24gNS40LCB0aGVuIHRoZSBkZXZpY2UgTVVTVCBzZXQg
dHJ1c3Qtc3RhdGUgdG8gVFJVRTsgb3RoZXJ3aXNlLA0KPj4gPiAgIGlmIHRoZSBkZXZpY2UgaXMg
dW5hYmxlIHRvIHZhbGlkYXRlIHRoZSBzaWduZWQgZGF0YSwgdGhlIGRldmljZSBNVVNUDQo+PiA+
ICAgc2V0IHRydXN0LXN0YXRlIHRvIEZBTFNFLiAgTm90ZSwgdGhpcyBpcyB3b3JkZWQgdG8gY292
ZXIgdGhlIHNwZWNpYWwNCj4+ID4gICBjYXNlIHdoZW4gc2lnbmVkIGRhdGEgaXMgcmV0dXJuZWQg
ZXZlbiBmcm9tIGEgdHJ1c3RlZCBib290c3RyYXANCj4+ID4gICBzZXJ2ZXIuDQo+PiA+DQo+PiA+
IEhhdmluZyByZWFkIFNlY3Rpb24gNS40LCBJJ20gc3RpbGwgdW5zdXJlIHdoZXJlIHRoZSBzcGVj
aWFsIGhhbmRsaW5nDQo+PiA+IGZvciB0aGlzIHNwZWNpYWwgY2FzZSBpcyBkZXNjcmliZWQuDQo+
PiANCj4+IFRoZXJlIGlzIG5vIHNwZWNpYWwgaGFuZGxpbmcgcGVyIHNlIGJ1dCwgdGhlIHBvaW50
IHRoYXQgaXMgdHJ5aW5nIA0KPj4gKHBlcmhhcHMgaW5lZmZlY3R1YWxseSkgaXMgdGhhdCwgaWYg
c2lnbmVkLWRhdGEgaXMgcmVjZWl2ZWQgZnJvbSBhDQo+PiB0cnVzdGVkLXNvdXJjZSwgdmFsaWRh
dGluZyB0aGUgc2lnbmF0dXJlIGlzIGFsbCB0aGF0IG1hdHRlcnMsIHRoYXQNCj4+IHRoZSBzb3Vy
Y2Ugd2FzIHRydXN0ZWQgYmVjb21lcyBpcnJlbGV2YW50IHRvIGJlaW5nIGFibGUgdG8gdmFsaWRh
dGUNCj4+IHRoZSBkYXRhLiAgTWFrZXMgc2Vuc2Ugbm93PyAgRG9lcyBpdCBuZWVkIHRvIGJlIHJl
d29yZGVkPw0KPg0KPiBJdCBkb2VzIG1ha2Ugc2Vuc2Ugbm93LCBhbmQgSSBkb24ndCB0aGluayBp
dCBuZWVkcyB0byBiZSByZXdvcmRlZCAtLSB0aGFua3MNCj4gZm9yIHRoZSBleHRyYSBleHBsYW5h
dGlvbi4gIChJIHdhcyBtb3N0bHkgY29uY2VybmVkIHRoYXQgdGhlcmUgd2FzIGENCj4gc3BlY2lh
bCBjYXNlIHRoYXQgSSB3YXNuJ3QgZmluZGluZyBpbiB0aGUgdGV4dCwgYnV0IHRoZSBleGlzdGlu
ZyB0ZXh0DQo+IGRlc2NyaWJlcyBleGFjdGx5IHdoYXQgdG8gZG8sIHNvIGl0J3MgYWxsIGdvb2Qu
KQ0KDQpPa2F5LCBpdGVtIGNsb3NlZCB3aXRoIG5vIHVwZGF0ZSBtYWRlLg0KDQoNCg0KIA0KPj4g
PiBTZWN0aW9uIDUuNQ0KPj4gPg0KPj4gPiAgIFByb2Nlc3NpbmcgcmVkaXJlY3QgaW5mb3JtYXRp
b24gaXMgc3RyYWlnaHRmb3J3YXJkLCB0aGUgZGV2aWNlDQo+PiA+ICAgc2VxdWVudGlhbGx5IHN0
ZXBzIHRocm91Z2ggdGhlIGxpc3Qgb2YgcHJvdmlkZWQgYm9vdHN0cmFwIHNlcnZlcnMNCj4+ID4g
ICB1bnRpbCBpdCBjYW4gZmluZCBvbmUgaXQgY2FuIGJvb3RzdHJhcCBmcm9tLg0KPj4gPg0KPj4g
PiBuaXQ6IEkgdGhpbmsgdGhpcyBpcyBhIGNvbW1hIHNwbGljZS4NCj4+IA0KPj4gQ2hhbmdlZCB0
byBhIHNlbWljb2xvbi4NCg0KDQoNCiAgDQo+PiA+IFNlY3Rpb24gNS42DQo+PiA+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnYXJkbGVzcyB0aGUNCj4+
ID4gICByZXBvcnRpbmctbGV2ZWwgaW5kaWNhdGVkIGJ5IHRoZSBib290c3RyYXAgc2VydmVyLCB0
aGUgZGV2aWNlIE1BWQ0KPj4gPiAgIHNlbmQgcHJvZ3Jlc3MgcmVwb3J0cyBiZXlvbmQgdGhlIG1h
bmRhdG9yeSBvbmVzIHNwZWNpZmllZCBmb3IgdGhlDQo+PiA+ICAgZ2l2ZW4gcmVwb3J0aW5nIGxl
dmVsLg0KPj4gPg0KPj4gPiBuaXQ6ICJSZWdhcmRsZXNzIG9mIg0KPj4gDQo+PiBGaXhlZCBpbiAt
MjYuDQogDQogDQogDQo+PiA+ICAgV2hlbiB0aGUgb25ib2FyZGluZyBpbmZvcm1hdGlvbiBpcyBv
YnRhaW5lZCBmcm9tIGFuIHVudHJ1c3RlZA0KPj4gPiAgIGJvb3RzdHJhcCBzZXJ2ZXIsIHRoZSBk
ZXZpY2UgTVVTVCBOT1Qgc2VuZCBhbnkgcHJvZ3Jlc3MgcmVwb3J0cyB0bw0KPj4gPiAgIHRoZSBi
b290c3RyYXAgc2VydmVyLg0KPj4gPg0KPj4gPiBJJ20gbm90IHN1cmUgaWYgSSB3b3VsZCB3YW50
IGEgcGFyZW50aGV0aWNhbCAiKHRoYXQgaXMsIHRoZSBvbmJvYXJkaW5nDQo+PiA+IGluZm9ybWF0
aW9uIHdhcyBhdXRoZW50aWNhdGVkIGF0IHRoZSBDTVMgbGF5ZXIpIiwgYnV0IEkgd291bGQgdGhp
bmsgYWJvdXQNCj4+ID4gYWRkaW5nIG9uZS4NCj4+IA0KPj4gSG93IGFib3V0IHBvc3RwZW5kaW5n
Og0KPj4gDQo+PiAgICIsIGV2ZW4gdGhvdWdoIHRoZSBvbmJvYXJkaW5nIGluZm9ybWF0aW9uIG11
c3QgaGF2ZSBiZWVuIHNpZ25lZCBhbmQNCj4+ICAgIGF1dGhlbnRpY2F0ZWQuICBQbGVhc2UgYmUg
YXdhcmUgdGhhdCBib290c3RyYXAgc2VydmVycyBhcmUgcmVjb21tZW5kZWQsDQo+PiAgICBpbiB0
aGUgbGFzdCBwYXJhZ3JhcGggb2YgU2VjdGlvbiA5LjYsIHRvIHByb21vdGUgdW50cnVzdGVkIGNv
bm5lY3Rpb25zDQo+PiAgICB0byB0cnVzdGVkIGNvbm5lY3Rpb25zIHNvIGFzLCBpbiBwYXJ0LCB0
byBiZSBhYmxlIHRvIGNvbGxlY3QgcHJvZ3Jlc3MNCj4+ICAgIHJlcG9ydHMgZnJvbSBkZXZpY2Vz
LiINCj4+IA0KPj4gVG9vIHdvcmR5LCBvciBqdXN0IHJpZ2h0Pw0KPg0KPiBJIGFtIHByb25lIHRv
IGJlaW5nIHRvbyB3b3JkeSBteXNlbGYsIGJ1dCB0aGF0IHNlZW1zIGp1c3QgcmlnaHQgdG8gbWUu
DQoNCk9rYXksIEkgYWRkZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBhYm92
ZSB0byAtMjcuDQoNCg0KIA0KDQo+PiA+ICAgVGhlIGRldmljZSBNVVNUIHBhcnNlIHRoZSBwcm92
aWRlZCBvbmJvYXJkaW5nIGluZm9ybWF0aW9uIGRvY3VtZW50LA0KPj4gPiAgIHRvIGV4dHJhY3Qg
dmFsdWVzIHVzZWQgaW4gc3Vic2VxdWVudCBzdGVwcy4gIFdoZXRoZXIgdXNpbmcgYSBzdHJlYW0t
DQo+PiA+ICAgYmFzZWQgcGFyc2VyIG9yIG5vdCwgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBw
YXJzaW5nIHRoZSBvbmJvYXJkaW5nDQo+PiA+DQo+PiA+IFRoaXMgbGluZSBtYWtlcyBtZSBjb25z
aWRlciB0aGUgc2NlbmFyaW8gd2hlcmUgYSBzdHJlYW0tYmFzZWQgcGFyc2VyIGlzDQo+PiA+IHVz
ZWQgd2l0aCBhIHRydXN0ZWQgYm9vdHN0cmFwIHNlcnZlciBhbmQgbm8gQ01TLWxheWVyIHNpZ25h
dHVyZS4gIEF0IHRoZQ0KPj4gPiBUTFMgbGF5ZXIsIGEgdHJ1bmNhdGlvbiBhdHRhY2sgYnkgdGhl
IG5ldHdvcmsgaXMgcG9zc2libGUsIGFuZCBpZg0KPj4gPiB0cnVuY2F0aW9uIGlzIG5vdCBkZXRl
Y3RhYmxlIGF0IHRoZSBhcHBsaWNhdGlvbiBsYXllciwgdGhlIGRldmljZSBjb3VsZCBlbmQNCj4+
ID4gdXAgbWlzY29uZmlndXJlZCB3aXRoIG5laXRoZXIgcGFydHkgYXdhcmUgKHVubGVzcyB0aGVy
ZSdzIGFuIGFkZGl0aW9uYWwNCj4+ID4gcmVzcG9uc2Ugb3Igc29tZXRoaW5nIHRoYXQgSSdtIGZv
cmdldHRpbmcgYWJvdXQpLiAgSSB0aGluayB0aGF0IGZvciB0aGUgWE1MDQo+PiA+IGFuZCBKU09O
IGZvcm1hdHMgd2Uga25vdyBhbmQgbG92ZSwgdHJ1bmNhdGlvbiB3b3VsZCBtYWtlIGZvciBhIG1h
bGZvcm1lZA0KPj4gPiBzdHJlYW0gZHVlIHRvIHRoZSBvdXRlcm1vc3Qgc2NvcGUgY29udGFpbmVy
LCBidXQgcGxlYXNlIGNvcnJlY3QgbWUgaWYgSSdtDQo+PiA+IHdyb25nLiAgVGhlcmUgYXJlIHBy
b2JhYmx5IHNvbWUgc2VjdXJpdHkgY29uc2lkZXJhdGlvbnMgdG8gbWVudGlvbiB3LnIudC4NCj4+
ID4gYW55IGZ1dHVyZSBuZXcgZW5jb2RpbmdzIG9mIHRoaXMgZGF0YSBtb2RlbCwgdGhvdWdoLg0K
Pj4gDQo+PiBUaGUgc3RlcHMgYXJlIHJvdWdobHk6IA0KPj4gICBhKSBIVFRQUyBHRVQgYW4gWE1M
L0pTT04gZG9jdW1lbnQgKHRoZSBnZXQtYm9vdHN0cmFwcGluZy1kYXRhIiByZXNwb25zZSkuDQo+
PiAgIGIpIGV4dHJhY3QgdGhlIENNUy1iYXNlZCBhcnRpZmFjdHMgZnJvbSB0aGUgWE1ML0pTT04g
ZG9jdW1lbnQuDQo+PiAgIGMpIGlmIGVuY3J5cHRlZCwgZGVjcnlwdC4NCj4+ICAgZCkgaWYgc2ln
bmVkLCBhdXRoZW50aWNhdGUuDQo+PiAgIGUpIGV4dHJhY3QgdGhlIG9uYm9hcmRpbmctaW5mb3Jt
YXRpb24gKGFub3RoZXIgWE1ML0pTT04gZG9jKSBmcm9tIHRoZSBDTVMgYXJ0aWZhY3QuDQo+PiAg
IGYpIHByb2Nlc3MgdGhlIG9uYm9hcmRpbmctaW5mb3JtYXRpb24gWE1ML0pTT04gZG9jDQo+PiAN
Cj4+IFNvIGhlcmUgd2UncmUgYXQgc3RlcCAoZiksIHdoZXJlIHRoZSB0ZXh0IG1lbnRpb25zIHRo
ZSBwb3NzaWJsZSB1c2Ugb2YgYQ0KPj4gc3RyZWFtIHBhcnNlci4gIFRoaXMgaXMgcmF0aGVyIGxv
bmcgYWZ0ZXIgc3RlcCAoYSksIHdoZXJlIFRMUyB0cnVuY2F0aW9uDQo+PiBtYXkgb2NjdXIgYW5k
LCBwcmVzdW1hYmx5IGNhdWdodCBpbiBzdGVwIChiKS4gIFRoaXMgaXMgYnkgd2F5IG9mIHNheWlu
Zw0KPj4gdGhhdCBJIGRvbid0IHRoaW5rIHRoaXMgaXMgYW4gaXNzdWUsIGJ1dCBpbnRlcmVzdGVk
IHRvIGhlYXIgeW91ciByZXNwb25zZS4NCj4+IA0KPj4gRldJVywgdGhlIHBvaW50IG9mIHRoaXMg
InN0cmVhbS1iYXNlZCBwYXJzZXIiIGNvbW1lbnQgaXMgdG8gaGlnaGxpZ2h0DQo+PiB0aGF0LCB1
bmxpa2UgbW9zdCBhbGwgdGhlIG90aGVyIHByb2dyZXNzLXR5cGVzLCB3aGljaCBzZWVtIHRvIHJl
ZmxlY3QNCj4+IGEgc2VyaWFsIHByb2Nlc3Npbmcgb2YgdGhlIHN0ZXBzLCB0aGUgcGFyc2luZyBt
YXkgZWl0aGVyIGJlIGEgZGlzdGluY3QNCj4+IHN0ZXAgKGUuZy4sIGEgRE9NLWJhc2VkIHBhcnNl
cikgb3Igc29tZXRoaW5nIHRoYXQgaXMgc3BsYXllZCBhY3Jvc3MgYWxsDQo+PiB0aGUgb3RoZXIg
c3RlcHMgKGEgc3RyZWFtLWJhc2VkIHBhcnNlZCkuICBJbiB0aGUgZmlyc3QgY2FzZSwgdGhlIGFs
bA0KPj4gdGhlICJwYXJzaW5nLSoiIHByb2dyZXNzIHJlcG9ydHMgKGluY2x1ZGluZyBhbnkgcGFy
c2luZy1lcnJvciByZXBvcnQpDQo+PiBhcmUgZXhwZWN0ZWQgdG8gYmUgdHJhbnNtaXR0ZWQgYmVm
b3JlIGFueSwgZS5nLiwgYm9vdC1pbWFnZS0qIHJlcG9ydHMNCj4+IGFyZSBzZW50OyB3aGVyZWFz
LCBpbiB0aGUgc2Vjb25kIGNhc2UsIHRoZSBwYXJzaW5nLSogcmVwb3J0cyBjYW4gYmUNCj4+IGlu
dGVybWl4ZWQuDQo+PiANCj4+IEkgZG9uJ3QgdGhpbmsgdGhlcmUgaXMgYSBUTFMgY29uY2Vybiwg
YnV0IHBlcmhhcHMgdGhlIHBhcmFncmFwaCBuZWVkcw0KPj4gdG8gYmUgcmV3b3JkZWQ/DQo+DQo+
IEkgdGhpbmsgeW91ciB1bmRlcnN0YW5kaW5nIGJhc2ljYWxseSBtYXRjaGVzIG1pbmU7IEkgdHJp
ZWQgdG8gaW5jbHVkZSBpbiBteQ0KPiByZW1hcmsgdGhhdCBpdCB3b3VsZCBvbmx5IHBvc3NpYmx5
IGFwcGx5IHRvIHRoZSBjYXNlIHdoZXJlIHRoZSBwcmVkaWNhdGVzDQo+IGZvciAoYykgYW5kIChk
KSBhcmUgZmFsc2UuICBJIGp1c3QgcGxhaW4gZG9uJ3Qga25vdyB3aGV0aGVyIChhKS8oYikgd2ls
bA0KPiBjaG9rZSBpZiB0aGUgR0VUIHJlc3BvbnNlIGlzIGFuIGluY29tcGxldGUgWE1ML0pTT04g
ZG9jdW1lbnQuICBJZiBpdA0KPiBwcm9wZXJseSBlcnJvcnMgb3V0LCB0aGVuIHRoZXJlJ3Mgbm8g
Y29uY2VybiBoZXJlLCBhbmQgd2Ugc2hvdWxkIGp1c3QgbW92ZQ0KPiBvbi4gIEluIGFueSBjYXNl
LCBldmVuIGlmIHRoZXJlIHdhcyBhbiBpc3N1ZSwgdGhpcyBwYXJhZ3JhcGggd291bGQgbm90DQo+
IHJlYWxseSBiZSB0aGUgcGxhY2UgdG8gdGFsayBhYm91dCBpdCAtLSBteSBjb21tZW50IGlzIG9u
bHkgbG9jYXRlZCBoZXJlDQo+IGJlY2F1c2UgdGhpcyBpcyB3aGVyZSB3ZSBzdGFydCB0YWxraW5n
IGFib3V0IHN0cmVhbS1iYXNlZCBwYXJzZXJzLiAgVGhlDQo+IGVycm9ycyBpbiBxdWVzdGlvbiBh
cmUgbm90IG5lY2Vzc2FyaWx5IHRob3NlIGdlbmVyYXRlZCBieSB0aGUgc3RyZWFtLWJhc2VkDQo+
IHBhcnNlciwgYnV0IGNhbiBhbHNvIGluY2x1ZGUgdGhvc2UgZ2VuZXJhdGVkIGF0IGVhcmxpZXIg
c3RlcHMuDQoNCk9rYXksIGlmIHdlIHN0ZXAgYmFjayBmcm9tIHRoZSBzdHJlYW0tcGFyc2luZyBh
bmdsZSwgYW5kIGluc3RlYWQganVzdCBmb2N1cw0Kb24gdGhlIFRMUyB0cnVuY2F0aW9uIGNvbmNl
cm4sIG15IGZpcnN0IHRob3VnaHQgaXMgdGhhdCBzYWlkIGVycm9yIHdpbGwgYmUNCmRldGVjdGVk
IGluIChhKSBhbmQgKGIpIHdpbGwgbm90IGJlIGVudGVyZWQuICBJbiBjYXNlIChiKSBpcyBlbnRl
cmVkLCB0aGVuDQppdCBzZWVtcyB0aGF0IChiKSB3b3VsZCBkZXRlY3QgYSBtYWxmb3JtZWQgcmVz
cG9uc2UgZnJvbSB0aGUgc2VydmVyLCBhcyBpdA0Kd291bGQgbm9ybWFsbHkgbmVlZCB0byBkby4N
Cg0KIA0KPj4gPiAgICAgICogIE1vc3Qgc3RlcHMgYXJlIGF0b21pYy4gIEZvciBpbnN0YW5jZSwg
d2hlbiBhIGNvbW1pdCBmYWlscywgaXQNCj4+ID4gICAgICAgICBpcyBleHBlY3RlZCB0byBoYXZl
IG5vIGltcGFjdCBvbiB0aGUgY29uZmlndXJhdGlvbi4gIFNpbWlsYXJseSwNCj4+ID4gICAgICAg
ICBpZiB0aGUgZXJyb3Igb2NjdXJzIHdoZW4gZXhlY3V0aW5nIGEgc2NyaXB0LCB0aGUgc2NyaXB0
IHdpbGwNCj4+ID4gICAgICAgICBncmFjZWZ1bGx5IGV4aXQuDQo+PiA+DQo+PiA+IEFzIGEgcmVh
ZGVyIGl0J3MgaGFyZCB0byB0ZWxsIGlmIHRoaXMgaXMgZ2l2aW5nIGd1aWRhbmNlIHRvIHNjcmlw
dA0KPj4gPiBhdXRob3JzIG9yIGNvbnN1bWVycy4NCj4+IA0KPj4gSXMgdGhpcyBiZXR0ZXI/DQo+
PiANCj4+ICAgIE1vc3Qgc3RlcHMgYXJlIGF0b21pYy4gIEZvciBleGFtcGxlLCB0aGUgcHJvY2Vz
c2luZyBhIGNvbmZpZ3VyYXRpb24NCj4+ICAgIGlzIHNwZWNpZmllZCBhcyBhdG9taWMgYWJvdmUs
IGFuZCB0aGUgcHJvY2Vzc2luZyBvZiBzY3JpcHRzIGFyZQ0KPj4gICAgc2ltaWxhcmx5IGF0b21p
YywgYXMgc3BlY2lmaWVkIGluIHRoZSAiaWV0Zi16ZXJvdG91Y2gtaW5mb3JtYXRpb24iDQo+PiAg
ICBZQU5HIG1vZHVsZS4NCj4NCj4gWWVzLCB0aGFua3MuICAoSSB0aGluayB0aGUgLTI2IGxvc3Qg
Ym90aCAib2YicywgdGhvdWdoPykNCg0KRWRpdCBtYWRlIHRvIC0yNywgaW5jbHVkaW5nIHRoZSBt
aXNzaW5nICJvZiJzLg0KDQoNCg0KDQoNCj4+ID4gU2VjdGlvbiA2LjINCj4+ID4NCj4+ID4gImJh
c2U2NGVuY29kZWR2YWx1ZT09IiBpcyBwcmV0dHkgY3V0ZSwgdGhvdWdoIG1heWJlIHdlIGNvdWxk
IGFkZCBzb21lDQo+PiA+IHRyYWlsaW5nIG51bWJlcnMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgdmFs
dWVzIGZvciB0aGUgZGlmZmVyZW50IGZpZWxkcz8NCj4+IA0KPj4gVGhlIGlzc3VlIGhlcmUgaXMg
dGhhdCB0aGUgZXhhbXBsZSBkb2N1bWVudHMgbXVzdCBiZSB2YWxpZCAoZndpdywgdGhleQ0KPj4g
YXJlIHRlc3RlZCBlYWNoIHRpbWUgYHhtbDJyZmNgIGlzIHJ1bikuICBQcmV2aW91cyB2ZXJzaW9u
cyBvZiB0aGlzIA0KPj4gZG9jdW1lbnQgaW5jbHVkZWQgY29tcGV0ZSBiYXNlNjQgZW5jb2Rpbmcg
b2YgdGhlIHJlYWwgb2JqZWN0cywgYnV0IA0KPj4gcGVvcGxlIGNvbXBsYWluZWQgdGhhdCBpdCBn
cmVhdGx5IGRpc3RyYWN0ZWQgZnJvbSByZWFkYWJpbGl0eS4gIFRvDQo+PiBhZGRyZXNzIHRoaXMs
IHRoZSBXRyBhZ3JlZWQgdG8gdXNlICJiYXNlNjRlbmNvZGVkdmFsdWU9PSIgaW4gZXhhbXBsZXMN
Cj4+IHRvIHJlcHJlc2VudCBZQU5HICJiaW5hcnkiIGRhdGEuDQo+PiANCj4+IElzIGl0IG9rYXkg
dG8gbGVhdmUgdGhpcyBhcyBpcz8NCj4NCj4gVGhpcyBpcyBhIG5vbi1ibG9ja2luZyBjb21tZW50
LCBzbyBieSBkZWZpbml0aW9uIG15IGFuc3dlciBpcyAieWVzIiA6KQ0KPiBJIG1vc3RseSBqdXN0
IHdhbnRlZCB0byBwb2ludCBvdXQgdGhhdCB0aGUgZXhhbXBsZXMgdXNlIHRoZSBzYW1lIGxpdGVy
YWwNCj4gc3RyaW5nIHRvIGZpbGwgaW4gZm9yIG1hbnkgZGlmZmVyZW50IGRhdGEgdHlwZXMgLS0g
SSBhZ3JlZSB3aXRoIG5vdCB1c2luZw0KPiAicmVhbCIgZXhhbXBsZXMgc2luY2UgdGhleSdyZSBi
dWxreSBhbmQgbm90IHJlYWRhYmxlIGluIGVuY29kZWQgZm9ybSwgYnV0DQo+IHdhcyBqdXN0IHdv
bmRlcmluZyBpZiB3ZSBjb3VsZCB1c2UgZGlmZmVyZW50IHNob3J0IHN0cmluZ3MgdG8gcmVwcmVz
ZW50DQo+IHNlbWFudGljYWxseSBkaWZmZXJlbnQgb2JqZWN0cy4NCg0KT2theSwgbGV0J3MgY2xv
c2UgdGhpcyB3aXRoIG5vIHVwZGF0ZS4gIFRoYXQgc2FpZCwgeW91IG1heSBiZSBwbGVhc2VkIChv
cg0KaXJrZWQpIHRvIHNlZSB0aGF0IHRoZSBub25jZSBtaW4tbGVuZ3RoIGNoYW5nZSBmb3JjZWQg
b25lIGV4YW1wbGUgdG8gaGF2ZQ0KdG8gY2hhbmdlIHRvICI8bm9uY2U+ZXh0cmFsb25nYmFzZTY0
ZW5jb2RlZHZhbHVlPTwvbm9uY2U+IiBpbiBvcmRlciB0byBwYXNzDQpidWlsZC10aW1lIHZhbGlk
YXRpb24gdGVzdHMgOykNCg0KDQoNCg0KIA0KPj4gPiBTZWN0aW9uIDYuMw0KPj4gPg0KPj4gPiBU
aGUgWUFORyBtb2R1bGUgYm9pbGVycGxhdGUgaXMgc3RpbGwgb24gdGhlIFJGQyAyMTE5IHZlcnNp
b24gb2YgQkNQIDE0DQo+PiA+IChub3QgUkZDIDgxNzQpLg0KPj4gDQo+PiBGaXhlZCBpbiAtMjYu
IE5vdyBib3RoIFlBTkcgbW9kdWxlcyByZWFkOg0KPj4gDQo+PiAgICAgVGhlIGtleSB3b3JkcyAi
TVVTVCIsICJNVVNUIE5PVCIsICJSRVFVSVJFRCIsICJTSEFMTCIsDQo+PiAgICAgIlNIQUxMIE5P
VCIsICJTSE9VTEQiLCAiU0hPVUxEIE5PVCIsICJSRUNPTU1FTkRFRCIsIA0KPj4gICAgICJOT1Qg
UkVDT01NRU5ERUQiLCAiTUFZIiwgYW5kICJPUFRJT05BTCIgaW4gdGhpcyBkb2N1bWVudA0KPj4g
ICAgIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBkZXNjcmliZWQgaW4gQkNQIDE0IFtSRkMyMTE5
XQ0KPj4gICAgIFtSRkM4MTc0XSB3aGVuLCBhbmQgb25seSB3aGVuLCB0aGV5IGFwcGVhciBpbiBh
bGwNCj4+ICAgICBjYXBpdGFscywgYXMgc2hvd24gaGVyZS4NCiANCk5vdGUsIGEgc2VwYXJhdGUg
V0cgY29tbWVudCBwcm9tcHRlZCBhbiBhZGRpdGlvbmFsIHVwZGF0ZSBoZXJlLg0KTm93ICJbUkZD
MjExOV1bUkZDODE3NF0iIGlzICIoUkZDIDIxMTksIFJGQyA4MTc0KSIsIHNpbmNlIFlBTkcNCm1v
ZHVsZXMgYXJlbid0IHRoZW1zZWx2ZXMgZHJhZnRzIHdpdGggYSByZWZlcmVuY2VzIHNlY3RvbiBh
bmQNCnN1Y2guDQoNCg0KDQoNCg0KPj4gPiBTZWN0aW9uIDcuMg0KPj4gPg0KPj4gPiBJZiB3ZSdy
ZSBnb2luZyB0byBzYXkgImFuZCByZWNlaXZlcyBzaWduZWQgZGF0YSBpbiB0aGUgcmVzcG9uc2Ui
LCBtYXliZSB3ZQ0KPj4gPiBjb3VsZCBhY3R1YWxseSBnaXZlIGFuIGV4YW1wbGUgdGhhdCBzaG93
cyB0aGUgKGJhc2U2NCdkKSBDTVMgc3RydWN0dXJlIHRoYXQNCj4+ID4gY29ycmVzcG9uZHMgdG8g
dGhlIHNpZ25hdHVyZT8gIE5vdCBuZWNlc3NhcmlseSB0aGUgd2hvbGUgcGF5bG9hZCwgYnV0DQo+
PiA+IGVub3VnaCB0byBzZWUgdGhlIG91dGVyIHN0cnVjdHVyZSBhdCBsZWFzdC4uLg0KPj4gDQo+
PiBTZWUgcHJldmlvdXMgcmVzcG9uc2UgcmVnYXJkaW5nICJiYXNlNjRlbmNvZGVkdmFsdWU9PSIu
ICBJdCdzIHRyaWNreQ0KPj4gYnVzaW5lc3MuICBUaGF0IHNhaWQsIGluIGEgc2VwYXJhdGUgImV4
cGVydCByZXZpZXciIHJlc3BvbnNlIGZyb20gUnVzcw0KPj4gSG91c2xleSwgd2Ugd2VyZSB0aGlu
a2luZyB0byBhZGQgYW4gYXBwZW5kaXggc2VjdGlvbiBjb250YWluaW5nIGFsbA0KPj4gdGhlIHBv
c3NpYmxlIEFTTi4xIHN0cnVjdHVyZXMuICBGb3IgaW5zdGFuY2U6DQo+PiANCj4+ICAgWC4gQVNO
LjEgZm9yIFZhcmlvdXMgQXJ0aWZhY3RzDQo+PiAgIFguMS4gWmVybyBUb3VjaCBJbmZvcm1hdGlv
bg0KPj4gICBYLjIuIFNpZ25lZCBaZXJvIFRvdWNoIEluZm9ybWF0aW9uDQo+PiAgIFguMy4gRW5j
cnlwdGVkIGFuZCBTaWduZWQgWmVybyBUb3VjaCBJbmZvcm1hdGlvbg0KPj4gICBYLjQuIE93bmVy
IENlcnRpZmljYXRlDQo+PiAgIFguNS4gRW5jcnlwdGVkIE93bmVyIENlcnRpZmljYXRlDQo+PiAg
IFguNi4gT3duZXJzaGlwIFZvdWNoZXINCj4+ICAgWC43LiBFbmNyeXB0ZWQgT3duZXJzaGlwIFZv
dWNoZXINCj4+IA0KPj4gV291bGQgdGhpcyBicmlkZ2UgdGhlIGdhcCBmb3IgeW91Pw0KPg0KPiBU
aGF0IHdvdWxkIGhlbHAgYSBsb3QsIHRoYW5rcyENCg0KSXMgaXQgb2theSBmb3IgbWUgdG8gYmFj
ayBvdXQgb2YgdGhpcyBvbmU/ICBJIGhhZCB0aG91Z2h0IHByZXZpb3VzbHkNCnRoYXQgUnVzcyB3
b3VsZCBwcm92aWRlIHRoZSBBU04uMSwgYnV0IGhlIHNhaWQgaGUgZGlkbid0IGhhdmUgdGltZSBh
bmQsDQp3ZWxsLCBJJ2QgcmF0aGVyIG5vdCB2ZW50dXJlIGludG8gdGhpcyBpZiBpdCBjYW4gYmUg
YXZvaWRlZC4uLg0KDQoNCg0KDQo+PiA+IFNlY3Rpb24gNy4zDQo+PiA+DQo+PiA+IFRoZSBZQU5H
IG1vZHVsZSBib2lsZXJwbGF0ZSBpcyBzdGlsbCBvbiB0aGUgUkZDIDIxMTkgdmVyc2lvbiBvZg0K
Pj4gPiBCQ1AgMTQgKG5vdCBSRkMgODE3NCkuDQo+PiANCj4+IFllcCwgZml4ZWQgaW4gLTI2IGFs
b25nIHdpdGggdGhlIGZpeCB0byB0aGUgb3RoZXIgWUFORyBtb2R1bGUuDQogDQogDQoNCg0KIA0K
Pj4gPiAgICAgICAgICAgICBlbnVtICJib290LWltYWdlLWluc3RhbGxlZC1yZWJvb3RpbmciIHsN
Cj4+ID4gICAgICAgICAgICAgICBkZXNjcmlwdGlvbg0KPj4gPiAgICAgICAgICAgICAgICAgIklu
ZGljYXRlcyB0aGF0IHRoZSBkZXZpY2Ugc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZA0KPj4gPiAgICAg
ICAgICAgICAgICAgIGEgbmV3IGJvb3QgaW1hZ2UgYW5kIGlzIGFib3V0IHRvIHJlYm9vdC4gIEFm
dGVyDQo+PiA+ICAgICAgICAgICAgICAgICAgc2VuZGluZyB0aGlzIHByb2dyZXNzIHR5cGUsIHRo
ZSBkZXZpY2UgaXMgbm90DQo+PiA+ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgdG8gYWNjZXNz
IHRoZSBib290c3RyYXAgc2VydmVyIGFnYWluLiI7DQo+PiA+DQo+PiA+IElzIHRoaXMganVzdCBz
Y29wZWQgdG8gdGhlIGN1cnJlbnQgY29ubmVjdGlvbi9zZXNzaW9uPw0KPj4gPiAoQXMgb3Bwb3Nl
ZCB0byAiYm9vdHN0cmFwLWNvbXBsZXRlIiwgd2hpY2ggcHJvYmFibHkgaXMgYSBnbG9iYWwgc3Rh
dGVtZW50LikNCj4+IA0KPj4gWWVzLCBqdXN0IHRoZSBjdXJyZW50IHNjb3BlLiBob3cgYWJvdXQg
dGhlIGZvbGxvd2luZz8gLSBvciBzaG91bGQgdGhlIGxhc3QNCj4+IHNlbnRlbmNlIGJlIGxlZnQg
b2ZmPw0KPj4gDQo+PiAgICAgICAgICAgICAgICJJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIHN1
Y2Nlc3NmdWxseSBpbnN0YWxsZWQNCj4+ICAgICAgICAgICAgICAgIGEgbmV3IGJvb3QgaW1hZ2Ug
YW5kIGlzIGFib3V0IHRvIHJlYm9vdC4gIEFmdGVyDQo+PiAgICAgICAgICAgICAgICBzZW5kaW5n
IHRoaXMgcHJvZ3Jlc3MgdHlwZSwgdGhlIGRldmljZSBpcyBub3QNCj4+ICAgICAgICAgICAgICAg
IGV4cGVjdGVkIHRvIGFjY2VzcyB0aGUgYm9vdHN0cmFwIHNlcnZlciBhZ2Fpbg0KPj4gICAgICAg
ICAgICAgICAgZm9yIHRoaXMgYm9vdHJhcHBpbmcgYXR0ZW1wdC4gIFRoZSBkZXZpY2UgbWF5DQo+
PiAgICAgICAgICAgICAgICBhY2Nlc3MgdGhpcyBib290c3RyYXAgc2VydmVyIGFmdGVyIHJlYm9v
dGluZw0KPj4gICAgICAgICAgICAgICAgYW5kIHJlc3RhcnRpbmcgdGhlIHplcm90b3VjaCBib290
c3RyYXBwaW5nDQo+PiAgICAgICAgICAgICAgICBwcm9jZXNzLiI7DQo+DQo+IFByb2JhYmx5IHRo
ZSBsYXN0IHNlbnRlbmNlIGlzIG5vdCBhZGRpbmcgYW55dGhpbmcgdXNlZnVsLg0KDQpMYXN0IHNl
bnRlbmNlIHJlbW92ZWQgKGFuZCBzcGVsbGluZyBtaXN0YWtlIGZpeGVkKSBpbiAtMjcuDQoNCg0K
DQoNCg0KPj4gPiAgIGNvbnRhaW5lciB0cnVzdC1hbmNob3ItY2VydHMgew0KPj4gPiAgIFsuLi5d
DQo+PiA+ICAgICAgICAgICAgICAgVGhlIENNUyBNVVNUIGNvbnRhaW4gb25seSBhIHNpbmdsZSBj
aGFpbiBvZg0KPj4gPiAgICAgICAgICAgICAgIGNlcnRpZmljYXRlcy4gIFRoZSBkZXZpY2UncyBl
bmQtZW50aXR5IGNlcnRpZmljYXRlDQo+PiA+ICAgICAgICAgICAgICAgTVVTVCBvbmx5IGF1dGhl
bnRpY2F0ZSB0byB0aGUgbGFzdCBpbnRlcm1lZGlhdGUgQ0ENCj4+ID4gICAgICAgICAgICAgICBj
ZXJ0aWZpY2F0ZSBsaXN0ZWQgaW4gdGhlIGNoYWluLg0KPj4gPg0KPj4gPiBJJ20gbm90IHN1cmUg
d2hldGhlciAiYXV0aGVudGljYXRlIHRvIiBtZWFucyB0aGF0IHRoZSBDQSBjZXJ0IGRpcmVjdGx5
DQo+PiA+IGNlcnRpZmllcyBvciBpcyB0aGUgdHJ1c3QgYW5jaG9yLiAgQ291bGQgd2UgbWF5YmUg
dXNlIGxhbmd1YWdlIGxpa2UNCj4+ID4gImRpcmVjdGx5IGNlcnRpZmllcyB0aGUgW25leHR8cHJl
dmlvdXNdIiBjZXJ0aWZpY2F0ZT8NCj4+IA0KPj4gVGhpcyB0ZXh0IGlzIHRyeWluZyB0byBzYXkg
dGhhdCB0aGUgImxhc3QgY2VydGlmaWNhdGUiIGlzIHRoZSBpc3N1ZXIgb2YNCj4+IHRoZSBkZXZp
Y2UncyBlbmQtZW50aXR5IGNlcnRpZmljYXRlLiAgTW9yZSBnZW5lcmFsbHksIGl0J3MgdHJ5aW5n
IHRvIHNheQ0KPj4gdGhhdCB0aGVyZSBhcmUgbm8gc3VwZXJmbHVvdXMgY2VydGlmaWNhdGVzIGlu
IHRoZSBDTVMuICBQZXJoYXBzOg0KPj4gDQo+PiBORVc6DQo+PiAgICAgICAgICAgICAgICBUaGUg
Q01TIE1VU1QgY29udGFpbiBvbmx5IGEgc2luZ2xlIGNoYWluIG9mDQo+PiAgICAgICAgICAgICAg
ICBjZXJ0aWZpY2F0ZXMuICBUaGUgbGFzdCBjZXJ0aWZpY2F0ZSBpbiB0aGUgY2hhaW4NCj4+ICAg
ICAgICAgICAgICAgIE1VU1QgYmUgdGhlIGlzc3VlciBmb3IgdGhlIHRoZSBkZXZpY2UncyBlbmQt
ZW50aXR5IA0KPj4gICAgICAgICAgICAgICAgY2VydGlmaWNhdGUuDQo+DQo+IFRoYXQgbG9va3Mg
d29uZGVyZnVsLCB0aGFua3MuDQoNCkNoYW5nZSBtYWRlIChhbG9uZyB3aXRoIGZpeGluZyAidGhl
IHRoZSIpIGluIC0yNy4NCg0KDQoNCg0KPj4gPiBBbHNvLCB0aGUgc3BsaXQgb2YgcmVmZXJlbmNl
cyBvZiBSRkMgNjE4NyBmb3IgdHJ1c3QtYW5jaG9yLWNlcnRzIGJ1dCBSRkNzDQo+PiA+IDUyODAg
YW5kIDU2NTIgZm9yIHRydXN0LWFuY2hvci1jZXJ0IHNlZW1zIHVudXN1YWwsIHNpbmNlIHBvdGVu
dGlhbGx5IGFsbA0KPj4gPiB0aHJlZSB3b3VsZCBiZSByZWxldmFudCBmb3IgYm90aCBub2Rlcywg
aWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseS4NCj4+IA0KPj4gVHJ1ZSwgYnV0IG15IGdlbmVyYWwg
Z29hbCBpcyB0byBoYXZlIHRoZSAicmVmZXJlbmNlIiBzdGF0ZW1lbnRzIHN1cHBvcnQNCj4+IHRo
ZSAiZGVzY3JpcHRpb24iIHN0YXRlbWVudHMuICBTbywgaW4gdGhpcyBjYXNlLCB0aGUgcGFyZW50
IG5vZGUgbWVudGlvbnMNCj4+IFJGQyA2MTg3LCBoZW5jZSBJIHB1dCB0aGUgInJlZmVyZW5jZSIg
Zm9yIGl0IHRoZXJlLiAgRG9lcyBpdCBzdGlsbCBzZWVtDQo+PiB1bnVzdWFsIHRvIHlvdT8NCj4N
Cj4gTGVzcyBzbzsgdGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24gOikNCg0KT2theSwgbGV0J3Mg
Y2xvc2UgdGhpcyB3aXRoIG5vIHVwZGF0ZSBtYWRlLg0KDQoNCg0KDQo+PiA+IFNlY3Rpb24gOS4x
DQo+PiA+DQo+PiA+IEF0IHRoaXMgcG9pbnQgZHJhZnQtaWV0Zi1udHAtdXNpbmctbnRzLWZvci1u
dHAgZXhpc3RzLCB0aG91Z2ggSSBkb24ndCBrbm93DQo+PiA+IHdoZXRoZXIgaXQncyBhcHByb3By
aWF0ZSB0byBiZSBjaXRpbmcgaXQgeWV0Lg0KPj4gDQo+PiBIb3cgYWJvdXQgdGFja2luZyBvbiB0
aGlzIGxhc3Qgc2VudGVuY2UsIGFuZCBsaXN0IGlldGYtbnRwLXVzaW5nLW50cy1mb3ItbnRwDQo+
PiBhcyBhbiBJbmZvcm1hdGl2ZSByZWZlcmVuY2U/DQo+PiAgDQo+PiAgICAgICAgICAgSW1wbGVt
ZW50YXRpb25zIFNIT1VMRCBOT1QgcmVseSBvbiBOVFAgZm9yIHRpbWUsIGFzDQo+PiAgICAgICAg
ICAgTlRQIGlzIG5vdCBhIHNlY3VyZSBwcm90b2NvbCBhdCB0aGlzIHRpbWUuICBOb3RlLCB0aGVy
ZQ0KPj4gICAgICAgICAgIGlzIGFuIElFVEYgd29yay1pbi1wcm9ncmVzcyB0byBzZWN1cmUgTlRQ
DQo+PiAgICAgICAgICAgPHhyZWYgdGFyZ2V0PSJJLUQuaWV0Zi1udHAtdXNpbmctbnRzLWZvci1u
dHAiLz4uDQo+DQo+IFNHVE0uDQoNCk9rYXksIGFuZCBmb3IgcG9zdGVyaXR5IHNha2UsIHRoZSBj
aGFuZ2Ugd2FzIG1hZGUgaW4gLTI2Lg0KDQoNCg0KDQo+PiA+IFNlY3Rpb24gOS42DQo+PiA+DQo+
PiA+IFRoZXJlIGlzIHBlcmhhcHMgc29tZSByb29tIGZvciBkaXNjdXNzaW9uIG9mIHRoZSBjb25z
ZXF1ZW5jZXMgb2YgdGhlIGRldmljZQ0KPj4gPiB0ZWxsaW5nIHRoZSBib290c3RyYXBwaW5nIHNl
cnZlciB3aGV0aGVyIHRoZSBkZXZpY2UgdGhpbmtzIHRoZSBjb25uZWN0aW9uDQo+PiA+IGlzIHRy
dXN0ZWQsIGluIHRoYXQgaXQgZ2l2ZXMgYW4gYXR0YWNrZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHRhcmdldC4NCj4+ID4gKEdyYW50ZWQsIGl0IGRvZXMgbm90IHNlZW0gbGlrZSBtdWNoIGluZm9y
bWF0aW9uLCBidXQgaXQgbWlnaHQgYmUgY2xlYW5lcg0KPj4gPiB0byBkZWZpbmUgdGhlIHNlbWFu
dGljcyBvZiB0aGUgbm9kZSBhcyBiZWluZyB3aGV0aGVyIHRoZSBjbGllbnQgd291bGQgbGlrZQ0K
Pj4gPiB0aGUgc2VydmVyIHRvIHNpZ24gaXRzIHJlc3BvbnNlcyBhdCB0aGUgYXBwbGljYXRpb24g
bGF5ZXIsIHdoaWNoIG5lZWQgbm90DQo+PiA+IGhhdmUgY29tcGxldGUgb3ZlcmxhcCB3aXRoIHdo
ZXRoZXIgdGhlIGNsaWVudCBjb25zaWRlcnMgdGhlIHNlcnZlciB0byBiZQ0KPj4gPiB0cnVzdGVk
Lg0KPj4gDQo+PiBIbW1tLCBJIGFncmVlIHdpdGggdGhlIG9wdGljcy4gIFBlcmhhcHMgd2UgY291
bGQgY2hhbmdlIGl0IHRvICJzaWduZWQtZGF0YS0NCj4+IHByZWZlcnJlZCI/ICBLZWVwIGluIG1p
bmQgdGhhdCBzaWduZWQtZGF0YSBpc24ndCByZXF1aXJlZCwgYXMgaXQgd291bGQgYmUNCj4+IG9r
YXkgZm9yIHRoZSBzZXJ2ZXIgdG8gcmV0dXJuIHVuc2lnbmVkIHJlZGlyZWN0IGluZm9ybWF0aW9u
LiAgSXQncyBvbmx5IGlmDQo+PiB0aGUgZGF0YSBpcyBvbmJvYXJkaW5nIGluZm9ybWF0aW9uIHRo
YXQgaXQgd291bGQgbmVlZCB0byBiZSBzaWduZWQuDQo+DQo+IFRoYXQgd29ya3MgZm9yIG1lLiAg
KEl0IGRvZXNuJ3Qgc2VlbSBsaWtlIGEgYmlnIGRlYWwgZWl0aGVyIHdheSwgb2YNCj4gY291cnNl
LikNCg0KQ2hhbmdlIG1hZGUgaW4gLTI3Lg0KDQogDQogDQo+PiA+IFNlY3Rpb24gOS44DQo+PiA+
DQo+PiA+IERvZXMgcmVjb21tZW5kaW5nIGZyZXF1ZW50IHByaXZhdGUga2V5IHJlZnJlc2hlcyBh
Y3R1YWxseSBoZWxwIGluDQo+PiA+IGVudmlyb25tZW50cyB3aGVyZSByZXZvY2F0aW9uIGlzIHVu
dXNhYmxlIChpLmUuLCBieSB2aXJ0dWUgb2Ygbm90IGhhdmluZw0KPj4gPiByZWxpYWJsZSB0aW1l
KT8gIChJZiBub3QsIHBlcmhhcHMgdGhhdCBjYXZlYXQgc2hvdWxkIGJlIG1vcmUgZXhwbGljaXQg
aGVyZSwNCj4+ID4gZXZlbiB0aG91Z2ggaXQgaXMgbWVudGlvbmVkIGluIFNlY3Rpb24gOS4xIGFs
cmVhZHkuKQ0KPj4gDQo+PiBHb29kIGNhdGNoLiAgSG93IGFib3V0IGFkZGluZyB0aGUgbGFzdCB0
d28gbGluZXMgYmVsb3c/DQo+PiAgDQo+PiAgICAgICAgICAgQm9vdHN0cmFwIHNlcnZlciBhZG1p
bmlzdHJhdG9ycyBhcmUgUkVDT01NRU5ERUQgdG8gZm9sbG93IGJlc3QNCj4+ICAgICAgICAgICBw
cmFjdGljZSB0byBwcm90ZWN0IHRoZSBwcml2YXRlIGtleSB1c2VkIGZvciBhbnkgb25saW5lIG9w
ZXJhdGlvbi4NCj4+ICAgICAgICAgICBVc2Ugb2YgYSBoYXJkd2FyZSBzZWN1cml0eSBtb2R1bGUg
KEhTTSkgaXMgUkVDT01NRU5ERUQuICBJZiBhbiANCj4+ICAgICAgICAgICBIU00gaXMgbm90IHVz
ZWQsIGZyZXF1ZW50IHByaXZhdGUga2V5IHJlZnJlc2hlcyBhcmUgUkVDT01NRU5ERUQsDQo+PiAg
ICAgICAgICAgYXNzdW1pbmcgYWxsIGJvb3RzdHJhcHBpbmcgZGV2aWNlcyBoYXZlIGFuIGFjY3Vy
YXRlIGNsb2NrIChzZWUNCj4+ICAgICAgICAgICA8eHJlZiB0YXJnZXQ9ImNsb2NrLXNlbnMiLz4p
Lg0KPg0KPiBTR1RNLg0KDQpPa2F5LCBhbmQgZm9yIHBvc3Rlcml0eSBzYWtlLCB0aGlzIHVwZGF0
ZSB3YXMgaW4gLTI2Lg0KDQoNCg0KDQo+PiA+IFNlY3Rpb24gOS4xMA0KPj4gPg0KPj4gPiBJIHdv
dWxkIHN1Z2dlc3QgYWxzbyBtZW50aW9uaW5nIHRoZSAobGFjayBvZikgbWl0aWdhdGlvbnMgcG9z
c2libGUgaWYgdGhlDQo+PiA+IG9wZXJhdG9yIGRvZXMgbm90IHRydXN0IGFsbCB0aGUgcHJlLWNv
bmZpZ3VyZWQgYXV0aG9yaXRpZXMgZGVzaWduYXRlZCBieQ0KPj4gPiB0aGUgbWFudWZhY3R1cmVy
cy4NCj4+IA0KPj4gSG93IGFib3V0IGFkZGluZyB0aGUgbGFzdCBzZW50ZW5jZSBiZWxvdz8NCj4+
IA0KPj4gICAgICAgICAgIE9wZXJhdG9ycyBzaG91bGQgYmUgYXdhcmUgdGhhdCB0aGlzIHN5c3Rl
bSBhc3N1bWVzIHRoYXQgdGhleSB0cnVzdA0KPj4gICAgICAgICAgIGFsbCB0aGUgcHJlLWNvbmZp
Z3VyZWQgYm9vdHN0cmFwIHNlcnZlcnMgYW5kIHZvdWNoZXIgc2lnbmluZyBhdXRob3JpdGllcw0K
Pj4gICAgICAgICAgIGRlc2lnbmF0ZWQgYnkgdGhlIG1hbnVmYWN0dXJlcnMuICBXaGlsZSBvcGVy
YXRvcnMgbWF5IHVzZSBwb2ludHMgaW4NCj4+ICAgICAgICAgICB0aGUgbmV0d29yayB0byBibG9j
ayBhY2Nlc3MgdG8gdGhlIHdlbGwta25vd24gYm9vdHN0cmFwIHNlcnZlcnMsIA0KPj4gICAgICAg
ICAgIG9wZXJhdG9ycyBjYW5ub3QgcHJldmVudCB2b3VjaGVyIHNpZ25pbmcgYXV0aG9yaXRpZXMg
ZnJvbSBnZW5lcmF0aW5nDQo+PiAgICAgICAgICAgdm91Y2hlcnMgZm9yIHRoZWlyIGRldmljZXMu
DQo+DQo+IFBlcmZlY3QgOikNCg0KRXggZXhjZWxsZW50IGFuZCwgYWdhaW4sIGZvciBwb3N0ZXJp
dHkgc2FrZSwgdGhpcyB1cGRhdGUgd2FzIGluIC0yNi4NCg0KDQogDQo+PiA+IFNlY3Rpb24gOS4x
MQ0KPj4gPg0KPj4gPiAgICAgIHJldmVhbGluZyAoZS5nLiwgbmV0d29yayB0b3BvbG9neSwgZmly
ZXdhbGwgcG9saWNpZXMsIGV0Yy4pLiAgSXQNCj4+ID4gICAgICBpcyBSRUNPTU1FTkRFRCB0aGF0
IG9wZXJhdG9ycyBlbmNyeXB0IHRoZSBib290c3RyYXBwaW5nIGRhdGEgd2hlbg0KPj4gPiAgICAg
IGl0cyBjb250ZW50cyBhcmUgY29uc2lkZXJlZCBzZW5zaXRpdmUsIGV2ZW4gdG8gdGhlIGFkbWlu
aXN0cmF0b3JzDQo+PiA+ICAgICAgb2YgYSBib290c3RyYXAgc2VydmVyLg0KPj4gPg0KPj4gPiBJ
IGRvbid0IHVuZGVyc3RhbmQgd2hhdCBpcyBtZWFudCBieSAiZXZlbiB0byB0aGUgYWRtaW5pc3Ry
YXRvcnMgb2YgYQ0KPj4gPiBib290c3RyYXAgc2VydmVyIj8NCj4+IA0KPj4gSGVyZSBJJ20gdGhp
bmtpbmcgdGhhdCB0aGUgYm9vdHN0cmFwIHNlcnZlciBtYXkgYmUgaG9zdGVkIGJ5IGEgM3JkLXBh
cnR5LA0KPj4gb3IgYW5vdGhlciBncm91cCB3aXRoaW4gdGhlIG9wZXJhdG9yJ3Mgb3JnYW5pemF0
aW9uLiAgRm9yIGV4YW1wbGUsIHRoZQ0KPj4gTk9DIGdlbmVyYXRlcyB0aGUgYXJ0aWZhY3RzLCBi
dXQgSVQgYWRtaW5zIHRoZSBib290c3RyYXAgc2VydmVyIGJveGVzLg0KPj4gDQo+PiBBbnkgbmVl
ZCBmb3IgYW4gdXBkYXRlIHRvIHRoaXMgdGV4dD8NCj4NCj4gRXZlbiBnaXZlbiB0aGUgYWJvdmUg
Y2xhcmlmaWNhdGlvbiwgSSdtIHN0aWxsIGhhdmluZyBhIGhhcmQgdGltZSBub3QNCj4gcmVhZGlu
ZyB0aGUgY3VycmVudCB0ZXh0IGFzIHNheWluZyB0aGF0IHRoZSBhZG1pbmlzdHJhdG9ycyBvZiB0
aGUgYm9vdHN0cmFwDQo+IHNlcnZlciBhcmUgbWFraW5nIHRoZSBkZXRlcm1pbmF0aW9uIHRoYXQg
Y29udGVudCBpcyBjb25zaWRlcmVkIHNlbnNpdGl2ZS4NCj4gTWF5YmUgImV2ZW4gd2l0aCByZXNw
ZWN0IHRvIGRpc3RyaWJ1dGlvbiB0byB0aGUgYWRtaW5pc3RyYXRvcnMgb2YgYQ0KPiBib290c3Ry
YXAgc2VydmVyIiBvciAiZXZlbiB0byB0aGUgcG9pbnQgb2YgaGlkaW5nIGl0IGZyb20gdGhlDQo+
IGFkbWluaXN0cmF0b3JzIG9mIGEgYm9vdHN0cmFwIHNlcnZlciI/DQoNCk9rYXksIHNsaWdodGx5
IG1vZGlmaWVkIHRleHQgdG8geW91ciAybmQgc3VnZ2VzdGlvbiBpbiAtMjcuDQoNCg0KDQogDQo+
PiA+IFNlY3Rpb24gOS4xMg0KPj4gPg0KPj4gPiBuaXQ6IHRoZSBsYXN0IHdvcmQgaXMgInJldm9r
ZWQiLg0KPj4gDQo+PiBGaXhlZCBpbiAtMjYuDQoNCiANCiANCg0KPj4gPiBTZWN0aW9uIDkuMTMN
Cj4+ID4NCj4+ID4gICBJbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGJlIGF3YXJlIHRoYXQgc2lnbmVk
IGJvb3RzdHJhcHBpbmcgZGF0YSBvbmx5DQo+PiA+ICAgcHJvdGVjdHMgdGhlIGRhdGEgZnJvbSBt
b2RpZmljYXRpb24sIHRoZSBjb250ZW50cyBhcmUgc3RpbGwgdmlzaWJsZQ0KPj4gPiAgIHRvIG90
aGVycy4gIFsuLi5dDQo+PiA+DQo+PiA+IG5pdDogdGhpcyBpcyBhIGNvbW1hIHNwbGljZQ0KPj4g
DQo+PiBGaXhlZCBpbiAtMjYuDQogDQogDQo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcw0KPj4gPiAgIGluZm9ybWF0aW9uIHNo
b3VsZCBiZSBjb25zaWRlcmVkIHNlbnNpdGl2ZSBhbmQgcHJlY2F1dGlvbnMgc2hvdWxkIGJlDQo+
PiA+ICAgdGFrZW4gdG8gcHJvdGVjdCBpdCAoZS5nLiwgZW5jcnlwdCBhcnRpZmFjdCB3aXRoIGRl
dmljZSBwdWJsaWMga2V5KS4NCj4+ID4NCj4+ID4gbml0OiBJIHRoaW5rIGl0J3MgbW9yZSBjb252
ZW50aW9uYWwgdG8gImVuY3J5cHQgdG8iIGEgcHVibGljIGtleSB0aGFuDQo+PiA+ICJlbmNyeXB0
IHdpdGgiIG9uZS4NCj4+IA0KPj4gSG93IGFib3V0ICJlbmNyeXB0IHRoZSBhcnRpZmFjdCB1c2lu
ZyB0aGUgZGV2aWNlJ3MgcHVibGljIGtleSI/DQo+DQo+IFN1cmUuDQoNCkV4Y2VsbGVudCwgYW5k
IHRoaXMgdXBkYXRlIHdhcyBpbiAtMjYuDQogDQogDQogDQo+PiA+IFNlY3Rpb24gQy4zDQo+PiA+
DQo+PiA+IFdlIGNvdWxkIHBlcmhhcHMgcmVjb21tZW5kIGVjZHNhLXNoYTItKiBrZXlzIGluc3Rl
YWQgb2Ygc3NoLXJzYSBrZXlzLg0KPj4gDQo+PiBSZXBsYWNlZCAic3NoLXJzYSBrZXkiIHdpdGgg
IlNTSCBwdWJsaWMga2V5Ig0KPg0KPiBFdmVuIGJldHRlcg0KDQpFeGNlbGxlbnQgYW5kLCBhZ2Fp
biwgdGhpcyB1cGRhdGUgd2FzIGluIC0yNi4NCg0KDQoNCg0KIA0KPj4gPiAgIDQuICBPdGhlcndp
c2UsIGlmIHJlZGlyZWN0IGluZm9ybWF0aW9uIGlzIGZvdW5kLCB0aGUgZGV2aWNlIGl0ZXJhdGVz
DQo+PiA+ICAgICAgIHRocm91Z2ggdGhlIGxpc3Qgb2Ygc3BlY2lmaWVkIGJvb3RzdHJhcCBzZXJ2
ZXJzLCBjaGVja2luZyB0byBzZWUNCj4+ID4gICAgICAgaWYgaXQgaGFzIGJvb3RzdHJhcHBpbmcg
ZGF0YSBmb3IgdGhlIGRldmljZS4gIFsuLi5dDQo+PiA+DQo+PiA+IFRoZSAiaXQiIGlzIHBlcmhh
cHMgYW1iaWd1b3VzOyBJIHdvdWxkIHN1Z2dlc3QgImVhY2ggc2VydmVyIGluIHR1cm4iLg0KPj4g
DQo+PiBSZXBsYWNlZCAiaXQiIHdpdGggImJvb3RzdHJhcCBzZXJ2ZXIiDQo+DQo+IFN1cmUuDQoN
CkFsc28gd2FzIGluIC0yNi4NCg0KDQoNCg0KVGhhbmtzIGFnYWluIQ0KS2VudA0KDQoNCg0K


From nobody Fri Jan  4 19:07:14 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 71892130DCD for <netconf@ietfa.amsl.com>; Fri,  4 Jan 2019 19:07:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.766
X-Spam-Level: 
X-Spam-Status: No, score=-2.766 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=juniper.net
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 rfPn2w_xJudq for <netconf@ietfa.amsl.com>; Fri,  4 Jan 2019 19:07:11 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 E4E4A1271FF for <netconf@ietf.org>; Fri,  4 Jan 2019 19:07:10 -0800 (PST)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0536k6F028631 for <netconf@ietf.org>; Fri, 4 Jan 2019 19:07:10 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=vvhlBLiFxIrMqi5+BWN4SOZSMfxxOLc7rhCAGkKkY4I=; b=UclZTeLleWHoL2ewMlx5jrr/uQTnc+ZXy5DDVxpjTWZ5uMsPDKJbzE3RyRrqr25r2FUl PlzQjVHeTRhocWcCxiqLrsTGyjTcq+7KUGQ9hcLse7ZVuRHDpyCPfmRKJI+QHkmannv+ O8W/07GrhAr+98xm7pxTV7GNr0x4OMKE3lddomErysEJ0yG55Pig7HD69ROfrzajHEbb iT3+M6EILDOI/tGETRcG/2z3qG68KXioTkBPYRHJgQdXdXcfsa1rzPd/sCzTYC28FOFz KS0c1yaFlfD+TKDwR8vLAYRQr+tuJd9iCzjYYveSxM2lFAekgqhMeIA21bOV6uqZFRSA ig== 
Received: from nam04-bn3-obe.outbound.protection.outlook.com (mail-bn3nam04lp2054.outbound.protection.outlook.com [104.47.46.54]) by mx0b-00273201.pphosted.com with ESMTP id 2ptfky09nv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for <netconf@ietf.org>; Fri, 04 Jan 2019 19:07:09 -0800
Received: from DM6PR05MB4665.namprd05.prod.outlook.com (20.176.109.202) by DM6PR05MB4266.namprd05.prod.outlook.com (20.176.78.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.3; Sat, 5 Jan 2019 03:07:07 +0000
Received: from DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e]) by DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e%2]) with mapi id 15.20.1516.000; Sat, 5 Jan 2019 03:07:07 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-27.txt
Thread-Index: AQHUpKJNezH+aji2fEyolLSzGI9ZtqWfqmMA
Date: Sat, 5 Jan 2019 03:07:07 +0000
Message-ID: <501EE9BF-16B3-4861-90D7-0E34D6564065@juniper.net>
References: <154665696826.18401.5716044693185840445@ietfa.amsl.com>
In-Reply-To: <154665696826.18401.5716044693185840445@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM6PR05MB4266; 6:EgpACt0jfhI6r2QnoPYEI8xrWt/suutQ0A7rXDqTqxN3xW3ErpaBRsj0aPWN8yfC5YUnnDNOgKJXw22cu8YUmq9vjDxfcqG5IwRydhySSfHNQUGZUBYkNcHFWh6p3oX4/U/uTQjOa3vGXVm2XtuICZMW+2G9e0rwhWy8vrrBm7fY1sDNZxg/12RUbaBgOV3kLjJLu7M3WLQEJ5OFcazEDLPUDpChOutDc3yahQKydCI/XR4kM6vtuegVvv8NcPENtpTIQ1MSQ1gBI+TUDuP3SuhgdwOM+RXAONoGj9Ijt/qcy66o5mioxY4azC0Wg0s9/5huB/4k6Q3tqm28xK6uuzd71UKTgPhjdOelM6GiIH4ESl3fyuKhoNhfs2A0V9ZrTRDhNpYvZW/nUp6GfJ32N7lpIrjkaNePadLhfHnLDTHUT6YCsIp/g1mDogS+stA+QkhEwONVtb5ZpqcAAwpmgw==; 5:lCC653r4GBTs7oUDsMGyTIjCpPz0UjWZVP0SxFwUZI+j+JiwuFgHGAljumzo05ndiLodUK3gSwHeZbcKC7G0x/Bna8RGZ7QTQrh/PMvWxWUqlSA3puCtAU6lgPfy18/cC+XbBBfs2UG2xwfRpOqOCRmDPxfxQTPful5x5ZEthN26zmNek1wrsZxLTHYtduEI+keYnR5PAud3nNeLi/sI8A==; 7:3Gj9jIyBjrMEAJ+BICEwkjQBFewPxszRN/g3bUvhudPIblfpk0iMTzV5ONe8Wu6HndK6B7G5pZc8bcv/dwnFR8TzuauUqGwXekKLXiK6wzGIwwLZEdZ1+EN2DjmZ7kohpLgj8r/SxPjf2hGUh48i4A==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 0a99ad37-8b5d-4f68-f4de-08d672bae05f
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB4266; 
x-ms-traffictypediagnostic: DM6PR05MB4266:
x-microsoft-antispam-prvs: <DM6PR05MB426684308F9F5F83123EE9BCA58F0@DM6PR05MB4266.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(93006095)(93001095)(3231475)(944501520)(52105112)(3002001)(10201501046)(6055026)(6041310)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DM6PR05MB4266; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB4266; 
x-forefront-prvs: 09086FB5C5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(346002)(39860400002)(396003)(376002)(366004)(199004)(189003)(54534003)(13464003)(476003)(2616005)(6116002)(2906002)(7736002)(316002)(6916009)(58126008)(3846002)(83716004)(106356001)(82746002)(68736007)(71190400001)(71200400001)(486006)(99286004)(305945005)(66574012)(6436002)(2351001)(105586002)(6306002)(5660300001)(8936002)(6512007)(5640700003)(66066001)(11346002)(33656002)(446003)(1730700003)(81156014)(81166006)(8676002)(25786009)(229853002)(6246003)(966005)(14444005)(53936002)(97736004)(256004)(6486002)(186003)(14454004)(478600001)(2501003)(86362001)(575784001)(6346003)(26005)(36756003)(76176011)(102836004)(6506007)(53546011); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB4266; H:DM6PR05MB4665.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: WrejbYW66EW6cROPfsR87Td0E4cxlLYv02rSGsMmOk3WJZzjcpUXIXHrX2UcsSnwXzv8KJZH7/QUIRZzZ25vCBE8zkh2Ct5obGBegBdvUXqJmqPIUJi8UqU5Bv06G+kxiwYVu8UKu993gq4ZrgO7Nr0CL2ckJBsq3BFtndhA+D3ItMHKSg72ccI4xOPzzno3YxbBgfYatCWYQn1j3SGbHz11NLPbBglCkMRHS6kAiEtJqUzG7BzxTzvfWAFhY0s0o7tEwySA4udgUyuV3IQok43enpvOSRIkSoAL9bDIo3DR71VlwmdB7z4qptIrn5if
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <10388E0E8B56B346A4E40CD861451B62@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a99ad37-8b5d-4f68-f4de-08d672bae05f
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2019 03:07:07.2221 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4266
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-05_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901050024
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/cVwlVJU1U6guPcP5xlPLuinxiX4>
Subject: Re: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-27.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Jan 2019 03:07:13 -0000

QmVsb3cgaXMgdGhlIENoYW5nZSBMb2cuIE1vc3RseSBpdGVtcyBmcm9tIEJlbmphbWluIEthZHVr
J3MgcmV2aWV3Lg0KVGhlIGxhc3QgY291cGxlIGl0ZW1zIGFyZSBmcm9tIHdoYXQgSSBtZW50aW9u
ZWQgaW4gbXkgZW1haWwgb24gdGhlIDIxc3QuDQoNCi0gQWRkZWQgU2VjdXJpdHkgQ29uc2lkZXJh
dGlvbiBmb3IgY2FzY2FkaW5nIHRydXN0IHZpYSByZWRpcmVjdHMuDQotIE1vZGlmaWVkIHRoZSBn
ZXQtYm9vdHN0cmFwcGluZy1kYXRhIFJQQydzICJub25jZSIgaW5wdXQgcGFyYW1ldGVyDQogIHRv
IGJlaW5nIGEgbWluaW11bSBvZiAxNi1ieXRlcyAodXNlZCB0byBiZSA4LWJ5dGVzKS4NCi0gQWRk
ZWQgU2VjdXJpdHkgQ29uc2lkZXJhdGlvbiByZWdhcmRpbmcgcG9zc2libGUgcmV1c2Ugb2YgZGV2
aWNlJ3MgcHJpdmF0ZSBrZXkuDQotIEFkZGVkIFNlY3VyaXR5IENvbnNpZGVyYXRpb24gcmVnYXJk
aW5nIHVzZSBvZiBzaWduLXRoZW4tZW5jcnlwdC4NCi0gUmVuYW1lZCAiWmVybyBUb3VjaCIvInpl
cm90b3VjaCIgdGhyb3VnaG91dC4gTm93IHVzZXMgIlNaVFAiIHdoZW4gcmVmZXJyaW5nDQogIHRv
IHRoZSBkcmFmdC9zb2x1dGlvbiwgYW5kICJjb252ZXllZCIgd2hlbiByZWZlcnJpbmcgdG8gdGhl
IGJvb3RzdHJhcHBpbmcgYXJ0aWZhY3QuDQotIEFkZGVkIG1pc3NpbmcgdGV4dCBmb3IgImVuY3J5
cHRlZCB1bnNpZ25lZCBjb252ZXllZCBpbmZvcm1hdGlvbiIgY2FzZS4NCi0gUmVuYW1lZCAidW50
cnVzdGVkLWNvbm5lY3Rpb24iIGlucHV0IHBhcmFtZXRlciB0byAic2lnbmVkLWRhdGEtcHJlZmVy
cmVkIg0KLSBTd2l0Y2ggeWQ6eWFuZy1kYXRhIGJhY2sgdG8gcmM6eWFuZy1kYXRhDQotIEFkZGVk
IGEgY291cGxlIGZlYXR1cmVzIHRvIHRoZSBib290c3RyYXAtc2VydmVyIG1vZHVsZS4NCg0KS2Vu
dCAvLyBjb250cmlidXRvcg0KDQoNCu+7vy0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t
OiBOZXRjb25mIDxuZXRjb25mLWJvdW5jZXNAaWV0Zi5vcmc+IG9uIGJlaGFsZiBvZiAiaW50ZXJu
ZXQtZHJhZnRzQGlldGYub3JnIiA8aW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPg0KUmVwbHktVG86
IE5FVENPTkYgV29ya2luZyBHcm91cCA8bmV0Y29uZkBpZXRmLm9yZz4NCkRhdGU6IEZyaWRheSwg
SmFudWFyeSA0LCAyMDE5IGF0IDk6NTYgUE0NClRvOiAiaS1kLWFubm91bmNlQGlldGYub3JnIiA8
aS1kLWFubm91bmNlQGlldGYub3JnPg0KQ2M6IE5FVENPTkYgV29ya2luZyBHcm91cCA8bmV0Y29u
ZkBpZXRmLm9yZz4NClN1YmplY3Q6IFtOZXRjb25mXSBJLUQgQWN0aW9uOiBkcmFmdC1pZXRmLW5l
dGNvbmYtemVyb3RvdWNoLTI3LnR4dA0KDQoNCkEgTmV3IEludGVybmV0LURyYWZ0IGlzIGF2YWls
YWJsZSBmcm9tIHRoZSBvbi1saW5lIEludGVybmV0LURyYWZ0cyBkaXJlY3Rvcmllcy4NClRoaXMg
ZHJhZnQgaXMgYSB3b3JrIGl0ZW0gb2YgdGhlIE5ldHdvcmsgQ29uZmlndXJhdGlvbiBXRyBvZiB0
aGUgSUVURi4NCg0KICAgICAgICBUaXRsZSAgICAgICAgICAgOiBTZWN1cmUgWmVybyBUb3VjaCBQ
cm92aXNpb25pbmcgKFNaVFApDQogICAgICAgIEF1dGhvcnMgICAgICAgICA6IEtlbnQgV2F0c2Vu
DQogICAgICAgICAgICAgICAgICAgICAgICAgIE1pa2FlbCBBYnJhaGFtc3Nvbg0KICAgICAgICAg
ICAgICAgICAgICAgICAgICBJYW4gRmFycmVyDQoJRmlsZW5hbWUgICAgICAgIDogZHJhZnQtaWV0
Zi1uZXRjb25mLXplcm90b3VjaC0yNy50eHQNCglQYWdlcyAgICAgICAgICAgOiA5Ng0KCURhdGUg
ICAgICAgICAgICA6IDIwMTktMDEtMDQNCg0KQWJzdHJhY3Q6DQogICBUaGlzIGRyYWZ0IHByZXNl
bnRzIGEgdGVjaG5pcXVlIHRvIHNlY3VyZWx5IHByb3Zpc2lvbiBhIG5ldHdvcmtpbmcNCiAgIGRl
dmljZSB3aGVuIGl0IGlzIGJvb3RpbmcgaW4gYSBmYWN0b3J5LWRlZmF1bHQgc3RhdGUuICBWYXJp
YXRpb25zIGluDQogICB0aGUgc29sdXRpb24gZW5hYmxlcyBpdCB0byBiZSB1c2VkIG9uIGJvdGgg
cHVibGljIGFuZCBwcml2YXRlDQogICBuZXR3b3Jrcy4gIFRoZSBwcm92aXNpb25pbmcgc3RlcHMg
YXJlIGFibGUgdG8gdXBkYXRlIHRoZSBib290IGltYWdlLA0KICAgY29tbWl0IGFuIGluaXRpYWwg
Y29uZmlndXJhdGlvbiwgYW5kIGV4ZWN1dGUgYXJiaXRyYXJ5IHNjcmlwdHMgdG8NCiAgIGFkZHJl
c3MgYXV4aWxpYXJ5IG5lZWRzLiAgVGhlIHVwZGF0ZWQgZGV2aWNlIGlzIHN1YnNlcXVlbnRseSBh
YmxlIHRvDQogICBlc3RhYmxpc2ggc2VjdXJlIGNvbm5lY3Rpb25zIHdpdGggb3RoZXIgc3lzdGVt
cy4gIEZvciBpbnN0YW5jZSwgYQ0KICAgZGV2aWNlIG1heSBlc3RhYmxpc2ggTkVUQ09ORiAoUkZD
IDYyNDEpIGFuZC9vciBSRVNUQ09ORiAoUkZDIDgwNDApDQogICBjb25uZWN0aW9ucyB3aXRoIGRl
cGxveW1lbnQtc3BlY2lmaWMgbmV0d29yayBtYW5hZ2VtZW50IHN5c3RlbXMuDQoNCg0KVGhlIElF
VEYgZGF0YXRyYWNrZXIgc3RhdHVzIHBhZ2UgZm9yIHRoaXMgZHJhZnQgaXM6DQpodHRwczovL3Vy
bGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2RhdGF0cmFja2VyLmll
dGYub3JnX2RvY19kcmFmdC0yRGlldGYtMkRuZXRjb25mLTJEemVyb3RvdWNoXyZkPUR3SUNBZyZj
PUhBa1l1aDYzcnN1aHI2U2NiZmgwVWpCWGVNSy1uZGIzdm9EVFhjV3pvQ0kmcj05emtQMHhuSlV2
WkdKOUVQb09IN1locW4yZ3NCWWFHVHZqSVNsYUpkY1pvJm09X2wyUFU3VVZib19BazlaV1pOX3hl
YkdiNWktcWZ4MVM5amRWb0UxcUtfZyZzPU9hVWVhX0xaZVk0YWlmbW5wVlNHdG1BSDZDb3hiVFFq
alhIMlZQRjBibVEmZT0NCg0KVGhlcmUgYXJlIGFsc28gaHRtbGl6ZWQgdmVyc2lvbnMgYXZhaWxh
YmxlIGF0Og0KaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBz
LTNBX190b29scy5pZXRmLm9yZ19odG1sX2RyYWZ0LTJEaWV0Zi0yRG5ldGNvbmYtMkR6ZXJvdG91
Y2gtMkQyNyZkPUR3SUNBZyZjPUhBa1l1aDYzcnN1aHI2U2NiZmgwVWpCWGVNSy1uZGIzdm9EVFhj
V3pvQ0kmcj05emtQMHhuSlV2WkdKOUVQb09IN1locW4yZ3NCWWFHVHZqSVNsYUpkY1pvJm09X2wy
UFU3VVZib19BazlaV1pOX3hlYkdiNWktcWZ4MVM5amRWb0UxcUtfZyZzPVlzTFVvR2YtN3BBRHlF
eUo1cnY4VUhmR2E4SzRpR1FwdUVjQm1pRW5vU0UmZT0NCmh0dHBzOi8vdXJsZGVmZW5zZS5wcm9v
ZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fZGF0YXRyYWNrZXIuaWV0Zi5vcmdfZG9jX2h0
bWxfZHJhZnQtMkRpZXRmLTJEbmV0Y29uZi0yRHplcm90b3VjaC0yRDI3JmQ9RHdJQ0FnJmM9SEFr
WXVoNjNyc3VocjZTY2JmaDBVakJYZU1LLW5kYjN2b0RUWGNXem9DSSZyPTl6a1AweG5KVXZaR0o5
RVBvT0g3WWhxbjJnc0JZYUdUdmpJU2xhSmRjWm8mbT1fbDJQVTdVVmJvX0FrOVpXWk5feGViR2I1
aS1xZngxUzlqZFZvRTFxS19nJnM9cU9vbjdIWV82ZUtJUFZBb0EzS2lRLXlNVlpBUTR1RU5lS3Ry
Y0gtOEhHYyZlPQ0KDQpBIGRpZmYgZnJvbSB0aGUgcHJldmlvdXMgdmVyc2lvbiBpcyBhdmFpbGFi
bGUgYXQ6DQpodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMt
M0FfX3d3dy5pZXRmLm9yZ19yZmNkaWZmLTNGdXJsMi0zRGRyYWZ0LTJEaWV0Zi0yRG5ldGNvbmYt
MkR6ZXJvdG91Y2gtMkQyNyZkPUR3SUNBZyZjPUhBa1l1aDYzcnN1aHI2U2NiZmgwVWpCWGVNSy1u
ZGIzdm9EVFhjV3pvQ0kmcj05emtQMHhuSlV2WkdKOUVQb09IN1locW4yZ3NCWWFHVHZqSVNsYUpk
Y1pvJm09X2wyUFU3VVZib19BazlaV1pOX3hlYkdiNWktcWZ4MVM5amRWb0UxcUtfZyZzPXcyeDMw
elM1ZEtNTXBtX21CRVFCSmc4c1FZYml0dXhZTWlRVDdoVTN6WUUmZT0NCg0KDQpQbGVhc2Ugbm90
ZSB0aGF0IGl0IG1heSB0YWtlIGEgY291cGxlIG9mIG1pbnV0ZXMgZnJvbSB0aGUgdGltZSBvZiBz
dWJtaXNzaW9uDQp1bnRpbCB0aGUgaHRtbGl6ZWQgdmVyc2lvbiBhbmQgZGlmZiBhcmUgYXZhaWxh
YmxlIGF0IHRvb2xzLmlldGYub3JnLg0KDQpJbnRlcm5ldC1EcmFmdHMgYXJlIGFsc28gYXZhaWxh
YmxlIGJ5IGFub255bW91cyBGVFAgYXQ6DQpodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5j
b20vdjIvdXJsP3U9ZnRwLTNBX19mdHAuaWV0Zi5vcmdfaW50ZXJuZXQtMkRkcmFmdHNfJmQ9RHdJ
Q0FnJmM9SEFrWXVoNjNyc3VocjZTY2JmaDBVakJYZU1LLW5kYjN2b0RUWGNXem9DSSZyPTl6a1Aw
eG5KVXZaR0o5RVBvT0g3WWhxbjJnc0JZYUdUdmpJU2xhSmRjWm8mbT1fbDJQVTdVVmJvX0FrOVpX
Wk5feGViR2I1aS1xZngxUzlqZFZvRTFxS19nJnM9VDNXNklRMHBlaDlYVkVOQV9fYllHQ3pfS3NJ
ZFRzcmQ3M1p4UVZEQVN1OCZlPQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KTmV0Y29uZiBtYWlsaW5nIGxpc3QNCk5ldGNvbmZAaWV0Zi5vcmcNCmh0
dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fd3d3Lmll
dGYub3JnX21haWxtYW5fbGlzdGluZm9fbmV0Y29uZiZkPUR3SUNBZyZjPUhBa1l1aDYzcnN1aHI2
U2NiZmgwVWpCWGVNSy1uZGIzdm9EVFhjV3pvQ0kmcj05emtQMHhuSlV2WkdKOUVQb09IN1locW4y
Z3NCWWFHVHZqSVNsYUpkY1pvJm09X2wyUFU3VVZib19BazlaV1pOX3hlYkdiNWktcWZ4MVM5amRW
b0UxcUtfZyZzPVN4VXJPN1F4X2lraEI3NTNaWlZwa21wMW1yWmNLYkJVT0l1bXlJYlROTW8mZT0N
Cg0K


From nobody Sat Jan  5 20:33:44 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 59415130FD6; Sat,  5 Jan 2019 20:33:42 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk <kaduk@mit.edu>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-netconf-zerotouch@ietf.org, Mahesh Jethanandani <mjethanandani@gmail.com>, Bert Wijnen <bwijnen@bwijnen.net>, Bert Wijnen <bwietf@bwijnen.net>, netconf-chairs@ietf.org, mjethanandani@gmail.com, netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154674922235.26507.1951651035977775939.idtracker@ietfa.amsl.com>
Date: Sat, 05 Jan 2019 20:33:42 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/HGU71H8UpAIu3Hcn6Wc5ptH6h48>
Subject: [Netconf] Benjamin Kaduk's No Objection on draft-ietf-netconf-zerotouch-27: (with COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 06 Jan 2019 04:33:42 -0000

Benjamin Kaduk has entered the following ballot position for
draft-ietf-netconf-zerotouch-27: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-netconf-zerotouch/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for the good discussion and resolution on both my Discuss points and the Comments,
as well as for this clear and considered document and design; it
really lays out the scenario of applicability and the functionality quite
well.



From nobody Sat Jan  5 21:03:11 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B6A83131002; Sat,  5 Jan 2019 21:03:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level: 
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=mit.edu
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 NRB_C2TJlI-4; Sat,  5 Jan 2019 21:03:04 -0800 (PST)
Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730134.outbound.protection.outlook.com [40.107.73.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 45648130DEA; Sat,  5 Jan 2019 21:03:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zmxBkQj7DSaOKOPMPHeTWDCG1H7Ialhh3roZHsGmMTM=; b=CAwOxZMQ14Tb6QqNDSXz6z5UB8YG5E/7XgOxo5P2RHgT+3JrD8DF7kFwXSWSnFaz/GNgx0uxvdKXR91UuxHNKUmyMq/TFdCgb2G7TiJP0pgNLJzk7XNglVS06kJbI3NNDYnqQjmgvZQ9yIv/5yUkZTYfWznhLKC0zY6Jsr3wcSY=
Received: from DM5PR0102CA0018.prod.exchangelabs.com (2603:10b6:4:9c::31) by SN6PR01MB4029.prod.exchangelabs.com (2603:10b6:805:a3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.6; Sun, 6 Jan 2019 05:03:01 +0000
Received: from CO1NAM03FT014.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::205) by DM5PR0102CA0018.outlook.office365.com (2603:10b6:4:9c::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1495.6 via Frontend Transport; Sun, 6 Jan 2019 05:03:00 +0000
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT014.mail.protection.outlook.com (10.152.80.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Sun, 6 Jan 2019 05:03:00 +0000
Received: from kduck.kaduk.org (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0652uha026445 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 6 Jan 2019 00:02:58 -0500
Date: Sat, 5 Jan 2019 23:02:55 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Kent Watsen <kwatsen@juniper.net>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190106050255.GJ28515@kduck.kaduk.org>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(136003)(396003)(376002)(346002)(2980300002)(51914003)(40224003)(51444003)(53234004)(189003)(199004)(23756003)(58126008)(8676002)(88552002)(345774005)(2870700001)(316002)(786003)(229853002)(47776003)(54906003)(36906005)(14444005)(246002)(8936002)(76176011)(55016002)(6346003)(26005)(305945005)(478600001)(966005)(50466002)(93886005)(33656002)(26826003)(186003)(561944003)(5660300001)(956004)(126002)(6246003)(476003)(53416004)(11346002)(446003)(486006)(106466001)(7696005)(6916009)(2906002)(575784001)(86362001)(426003)(4744004)(4326008)(75432002)(336012)(6306002)(9686003)(106002)(1076003)(1941001)(6666004)(356004)(53946003)(104016004)(18370500001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR01MB4029; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; CO1NAM03FT014; 1:cfuPgh3R+MIePPw3+KqYhRY6/top91CggCx/EY3DzXHt3vBWVw6yIzhANNQp86pl24rLpE9RZpje4v1Av2xZPwf7VzhQJYb0vo9gFGr1gYg/69MMVzkv+AYX/A6WpXmO
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0555dda8-582c-45f2-50aa-08d673943b60
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:SN6PR01MB4029; 
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4029; 3:vUD6nTWEgi7SUO09k20xz1pjH+gmYWGl1Vn9mfvq3UGNg/PxJiHfZbt3ezACxqbsH+FiHjbZsr+QvjWh01Ir2JQfhBCgmwAFdThgbmWTWOpMkn+II2fscqNRzXhUPA0kUkKnJx7jSvssRe8LSK2OJudGMxzjroDGTjY+r0o72bRk8lBJqGPysSLHtmlwaQFsW3kO87U11LyF2B7+bgsf8+WxmG40EqskshhYK4RjkJwt5hTl2irwIZzi6JDNQdxToDqg6dVAec3RXlEzg9jlWhgn4J1G/1525N9XvDl1M016F9ltQsy9uy5wAZWRFMoMewTmChqbXRKg8pXx7zFY8OlsFmdthjBDqhFQ3SVlZQDr6HTrABFhkhhTWK1xufsP; 25:Jq0MAVncN0VyQCoVNp3jV/NAK5cqclKT/9Xyq1TUqj9t/ENR0HTX0pXx3TMQ9axON1yhMJbMWWBaQdxhNWSjgAyob6DPcs8KYeP3HPrd4+qps5FQwqbC55kpm5YxE51FP8eyrcC3a7iAeRoss8A5bGkHLEx9xDxJGhUcgmgXPppzGexE1Rom+pYFL+EQFhy0G9s9zavradQhWDWm6DZjev7SMlYU+JTDKMdQ6pMzfDp6f/kAtQBHPczsxBoD+v7iryhQmaxTBkRQi3nCgBO6/bebGzYSL5i6EFetTzewhWXxkNCLHuuHyeRjGXLvXYWYCYYXW79tIiTGROjOwFZdpg==
X-MS-TrafficTypeDiagnostic: SN6PR01MB4029:
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4029; 31:NK46cneHFidG/DWETL9Ih+e5tMzjVr3vnmjZgpRV9iKA3r0TnPvJ9RDP6lrOq/uk5b28k4XxEO0g9d/TJlPJAdsWLmHDmmtGTwjijjYFQy60/RESmW3BWG0lDxHZVeWDfODrtBonqEunIIlTin0Kk+5UzsbsANqdwEwMHMS3h/IDS6+gluaCVjG0iZ1HBDdVwNRWlTuJ/jtEQQbv7NWZQZ6wYqBrodZipu+AHz4DoqQ=; 20:/7idQNV7nV2HmmF6FT0+dRSlqQWyVz5jkf0TL4u5+x3uSDe/4WjxORCzHT+NuWOXoOS1HLWcu9z6j7GopB8rDtDHvbQAg7i+Tz6f4rOrXUmsiioo4bVtDldFIwvoeDpSEBxfKhPqeZcr7Xloh9wTxu3jEAU9KO2ExiTC6JwxCkvcXN8buM7iTYarcVIrglAyDG6bPt78tUN/5nzGoHWobno1DHA/FMCRZXM0Zbmr5QNdRePGky9/2GZuHfXAP/ebnaixp+CCz8plYrQNzgiCfp/oWaAEDvXl60XjhF3IbuX/olHPiM+wwaFSZCLsZWI72caFhuRBIPwjjfKy+J3pukdJj5O4I36hiMqazqJSU2yEWYKZaH9+NQesKkCovlRg1wdijsDDERg2AmiyiZgiW1l73pjn9t00/JaOdN+4slpDEL+1TiKwVR35dEVlKKAi6gDrrot/7BpdKyfwQh0YXlCirQnNgW9UA3S012tD/7PObd+DePqJLexBhZdWUkWA
X-Microsoft-Antispam-PRVS: <SN6PR01MB4029293A0C180D737384C8CDA0880@SN6PR01MB4029.prod.exchangelabs.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(3231475)(944501520)(4982022)(52105112)(3002001)(93006095)(93004095)(10201501046)(6041310)(201703131423095)(201702281528075)(201702281529075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:SN6PR01MB4029; BCL:0; PCL:0; RULEID:; SRVR:SN6PR01MB4029; 
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4029; 4:NOs7kFh+nyqdQQKAXjwOATwYFTr2CLIqNKS9Pq3tdbuOJRRSHMLMvJfb/KtMBBAf4J8KRLz10MFcI1jM4tbyeQMtp3NNgiaDlo4/4hx9w7ITB3ot5k2ANez1Ag4JVCA6fi7XCxGMpnc260v3/7i1OzCgDnbw5ul6sgUOKKgLGvLwhjFkcedtkou2NKri/M3cxkWQFWe/yfKxSvYEc3SV7E8b6NPw7Sf02uqanwkv/ZJb/WG1O51EBdbb8160g2FZrPmVWKmf9pGYys/sR2iWUyVjfhK7ndKOC5J2dnozZAM=
X-Forefront-PRVS: 09090B6B69
X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1; SN6PR01MB4029; 23:HGhqy2Pe5AkWxCiXVIwvUuhi4ngtD7gCkj5KEY/?= =?iso-8859-1?Q?ygAjQXDg/tNC4i1MBQqV9+mpForu7iVYNxwX/YCtNmSwO1w66gX7M780r3?= =?iso-8859-1?Q?0KodL2IAnMuVMK45r2Hq7nndTOP+RAkP2uzS2KtM8qgbseGCDW+JJ8FN26?= =?iso-8859-1?Q?CTpdLGI1h/7f9JsnnpPc6LKWooS/iOEFTYqLYI863HGcnd+u6zQohU1lGk?= =?iso-8859-1?Q?PLfQUPk7frp1Tgca0E0yh9imbqcnx+wrE3kMtUjYPReQr2vJWFK3T0ex0f?= =?iso-8859-1?Q?XK4yvbGl0a7w96PswZ9H4k31bbPtkjoZH+RgXMiz/R8NO0XgTdU6Fxbi/h?= =?iso-8859-1?Q?2CojJ42DDzOvqZXklnCyiowvL1XRehtCeJ6Mr+8CKFbqJm8IipyrsnbNr8?= =?iso-8859-1?Q?R2c6SgBNLxGFsyu7UVgpRPkmO/7hiV9/u1pLp0I68NoaCrfsbCyJHWCpEU?= =?iso-8859-1?Q?WyASejU7AZobaW8/oLEu/AMRISNPmc5oZCeTtLni6N197bL1x6IF9o0l0s?= =?iso-8859-1?Q?Cfl5NlpHfJ9KoLpLGMnOISH3qynFliNNqOgqXyVDu8Rk73uLiRhSsEZ3kr?= =?iso-8859-1?Q?ZaLsSGMYJmi3ptDqpDoQiG0c5UL1M9kEYjBSpUd92RRGJUQUmA3jMwyCnr?= =?iso-8859-1?Q?LMhvv3WtkwipYMkUXQGZvKry0k6M4J7zhJosreAE9JRGw4e+Du/FZLQc5W?= =?iso-8859-1?Q?AybrTLXys/UOEZ15wEU1vIC6zmA2DSRzarVZ/PdemSoGHOX1ojh6grFzEy?= =?iso-8859-1?Q?31pyG5i1eNijpu/PerIrvM2qcgUzaQ34SShTNrxhirjUe15qV2H4gjhMsI?= =?iso-8859-1?Q?yNnFger5MIS1ULXHbwN8RRe8/zHCLy/u9yHrF0cw0wzrOeT+3a5mpeRdvx?= =?iso-8859-1?Q?CR+xAFGi4pCiqu9EuTQ3oTsOc+yLSj7eLtjngqdxv3AdhMaOlF9B/75dfb?= =?iso-8859-1?Q?a9IRzb93271+93J3d4DeL78Op2e8YjKu7hrxhU9ILtLVLZrzka+0kEvgbx?= =?iso-8859-1?Q?AdX/E7otgpANm23HuFQ7ivZb76DLqexT6CkQ0YgwA340Tea3mQFgiLyknm?= =?iso-8859-1?Q?S137fYfd/q/rvJ/y1Gcz5r1gh6d4RmeoZl3QDlrjof1nPa4L8Hy59RhklL?= =?iso-8859-1?Q?V3i86KVtqytPvyWhGXl2creb1rWUo7+1iETxQ/BT9OHoDWwxYSt44tFGoW?= =?iso-8859-1?Q?zdcrFreyJG2ZZggE5eNKyuGCjN5gcHX3fS3R9yaC8KM6Ck22jP9F0oXt5R?= =?iso-8859-1?Q?K6mQAaTYanxDfltoUAmd4Qyw+m8/2lTA9/naVUQsUILeHHUQXkfyk9PG7P?= =?iso-8859-1?Q?08ylhEL6qEc7pjD8zNR0WKk/vwNh93j++q1N+F4SWJW7H4rgmDp+7B8la6?= =?iso-8859-1?Q?qTtKD4aL8Y7zonrGY1qHMUOqdxmqWNfWZX6KMZ7FvhY7r3JznLVFZvwZDi?= =?iso-8859-1?Q?dUSxYKT3uiNM6BjItVsb78bz9HEAj5LlVAmftmYqzwfAi686+fRsTpzjUi?= =?iso-8859-1?Q?YoUT32+BGr0cjPx+KzrGMn8WDzI+0dO2jd3fA089OBF2kfpjedxw26ip8n?= =?iso-8859-1?Q?hGYWhtl7nZOrtL3AewHxlhsy5FDbNwguzf1NdS8EBBLTo4S?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: ip2MH90clN4bAoAjq6jeCfvKYFuPQ5O+521dVvstCG9aJqoWP2sUlBWoKq2q3M++HHgPcdScOhi3NtwAoYj8SBkGYEvl+B5grixyY8WTtT2wXaacI5wXiWiOXAdA6Cu8vg4G2LLLzCUrTlr0obRycI4UQI9YRl/zb6t9nGsCtVh2DRMPw8KWPzwQzpHAEYqw8EpMuUVI+/kIp98XF2OpUazQ+YwowuHF95HH4FGfaO7RW2QUaIfS3STyLDpvfi82mpxRdbMr7msOJepSoCwpWVnY5hMFSSpK6HYthqsCu2LLO/0oN5wMUu00uYIo0ino
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4029; 6:so+I7tqtJcIeaW8e8qToPjxtMzywMoQmeeY7yz4SRlkHJNsvo9fsDcnPnRE3XIluzkOiFzR01akZ+gLbWlENPqdJ8A5cYcPnSZOqF49L7dFLxWwOBavVTvo0JKT+uChooI2a/iGCpbRa089gCbSEebVcJCLCX0hAboiZdId0uAzlT1ckPn6KQVtwBGfAhiNcF58DnSl2erDdgH960jkWi4Frue90BRfxIhUwCKdqaEj/rcelHwUoiVpaBL7EQ0OISrQWcpnOEDRFljzUwrMgo8XMUbm2PbJOnfYaYgFdK11rso+dopan/Se6XqWhPLPXhmlQeFFZZ/tjW7HBUaJxc2UG9r2O50UK6P4wVPXkBqY8MNykKdMxrpwR5+rz7Tjq6dWGEpOo5aEqIccWNrJB2m881Lx2s0UogtDgwwnwAhg5dbE9WHRLOOlqWdgN2z3Fh1OOHkNeq/W7e9YGXCI3kA==; 5:ZXFuFR63DoQpzeSDYrMuGlA0UbB0HMrv7yNuvjeTlWOh78I/LlFchiaTi3QTu9AnytFtF63b3BjfCS9fBkizBYNDBguqyhK1Q9s3ih3qNlAEN9MWF8YpX0kWBtq1Xrz5ItkpY05itno7yfjXmnxuFqItwkGw1B4l42VZWz5m9WqJkq9pc33h6mfr2vPiEtZiX4cgFSST8ZdhGQL75hUhow==; 7:2E1Z6VxGVQNcAesR77ThuTJGvSYuK1PKr1VjbYESthJWSoN3A6nb8jh3moTQ3hFOGAvTD5cmVntfvZ128cMoqCy6+JB8ifh7Rg5rIXS0rMH4wGJS3/Mo7EbYCEZ4h5d/aamxQUFddshmyoZKHUaH7A==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2019 05:03:00.4744 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0555dda8-582c-45f2-50aa-08d673943b60
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4029
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/q38i_tFuJbHnBrrckMMReZjuJEI>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 06 Jan 2019 05:03:09 -0000

Hi Kent,

(Also a heads-up for Adam and Alexey, mentioned below regarding
dnsop-attrleaf registry actions)

On Sat, Jan 05, 2019 at 03:05:35AM +0000, Kent Watsen wrote:
> Hi Benjamin,
> 
> Below are several links to individual GitHub commits, but here's the link
> to the complete/rendered draft:
> 
> 	https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-27

You probably already saw the mail, but these changes did address my Discuss
points, so I've cleared in the datatracker.  Thank you for the really good
discussions we've been having; I'll try to finish things up below.

> 
> 
> >> > ----------------------------------------------------------------------
> >> > DISCUSS:
> >> > ----------------------------------------------------------------------
> >> >
> >> > First off, thanks for this clear and considered document and design; it
> >> > really lays out the scenario of applicability and the functionality quite
> >> > well.  I just have a couple lingering places that we might want to nail
> >> > down a little bit tighter...
> >> >
> >> > (1) SSH key formats
> >> >
> >> > The module in Section 7.3 says:
> >> >
> >> >           leaf-list ssh-host-key {
> >> >             type binary;
> >> >             description
> >> >               "The binary public key data for this SSH key, as
> >> >                specified by RFC 4253, Section 6.6, i.e.:
> >> >
> >> >                  string    certificate or public key format
> >> >                            identifier
> >> >                  byte[n]   key/certificate data.";
> >> >             reference
> >> >               "RFC 4253: The Secure Shell (SSH) Transport Layer
> >> >                          Protocol";
> >> >
> >> > but RFC 4523 Section 6.6 says:
> >> >
> >> >   The key type MUST always be explicitly known (from algorithm
> >> >   negotiation or some other source).  It is not normally included in
> >> >   the key blob.
> >> >
> >> >   Certificates and public keys are encoded as follows:
> >> >
> >> >      string    certificate or public key format identifier
> >> >      byte[n]   key/certificate data
> >> >
> >> > How is the key type known for the SZTP usage?
> >> 
> >> Good catch.  The fix here is to mimic RFC7317's "authorized-key" list.
> >> That is, convert "ssh-host-key" from a "leaf-list" to a "list"
> >> containing the extra "algorithm" node.  This fix is here:
> >> 
> >> https://github.com/netconf-wg/zero-touch/commit/7a33c418f733aebcd95f2c91c4e9abbccfd362e4
> >
> > Sounds good.
> 
> Excellent - this item is closed.
> 
> 
> 
> >> > (2) Privilege escalation by design
> >> >
> >> > There's text in Section 2.1 (and, really, throughout) that indicates that
> >> > a device being bootstrapped should allow a trusted bootstrap server to
> >> > behave as (i.e., supply) a trust anchor for verifying a different service.
> >> > In some sense this is elevating an EE cert to a CA cert, and I had hoped
> >> > to see some discussion of this escalation in the security considerations.
> >> > (Same for the owner cert, though there's a stronger argument that the 
> >> > owner should be considered fully privileged here.)
> >> 
> >> Correct, "redirect information" from a trusted source should contain a
> >> trust-anchor certificate (actually, a CMS containing a chain of certs).
> >> 
> >> Yes, the device's trust in a TLS trust anchor cert (e.g., provided via the
> >> manufacturing process) is used to trust the EE cert for a bootstrap 
> >> server that returns a new trust anchor cert, enabling the device to 
> >> pin the new TA cert for subsequent EE cert validation.  
> >> 
> >> This is similar to a CA in that a chain of trusted certs is formed, but
> >> it isn't quite like a CA cert, in that the EE cert doesn't itself sign
> >> the new TA cert; it only signs that transport used to convey the TA cert.
> >> 
> >> Regarding the owner cert being similar, I think you mean that the 
> >> ownership voucher [RFC 8366] is similar, which is true.  In this case,
> >> the device's trust in a trust anchor for voucher-signing certs (e.g., 
> >> provided via the manufacturing process) is used to trust a specific
> >> signing cert for a voucher, which encodes a new trust anchor cert 
> >> (the 'pinned-domain-cert'), which is, in fact, the issuing CA for
> >> the owner certificate.
> >> 
> >> Okay, so we have these two things.  In both cases, trust anchors are 
> >> conveyed via trusted mechanisms.  Do you want me to add a Security
> >> Consideration saying this?  
> >> 
> >> I somehow thought this concept was fairly common, is it not done 
> >> elsewhere?
> >
> > It is fairly common, but it is probably still worth describing the security
> > properties of the protocol exchanges, here.  (In that a compromise of the
> > initial interaction can result in compromise of all subsequent
> > interactions, just as for trust-on-first-use.)
> 
> Please let me know if this update addresses the concern:
> https://github.com/netconf-wg/zero-touch/commit/a5086b299f60c00afcaddc0ddf0a0e9d3431c04e

Perfect, thanks!

> 
> 
> 
> 
> >> > (3) Nonce length
> >> >
> >> > Section 7.3 describes the nonce leaf:
> >> >
> >> >         leaf nonce {
> >> >           type binary {
> >> >             length "8..32";
> >> >
> >> > There is probably some discussion to be had about the minimum nonce
> >> > length (not necessarily in the document itself).  Do you have a 
> >> > pointer handy to previous disucsions or do we need to have it now?
> >> > (I do see that this is just following RFC 8366, so hopefully this
> >> > is an easy question.)
> >> 
> >> 
> >> I sent email to my RFC 8366 co-authors, as they were behind setting
> >> this min nonce length.  I have yet to hear back from them, but will
> >> let you know when I do.
> >
> > [covered in separate thread]
> 
> [Bringing back into this thread]
> 
> I emailed the RFC 8366 authors (CC you) regarding your concern with the
> minimum-allowed nonce length.
> 
> As for this draft, I feel that the easiest solution is to change the YANG
> as follows:
> 
>        leaf nonce {
>          type binary {
> -          length "8..32";
> +          length "16..32";
>          }
> 
> It is within the range allowed by RFC 8366 (i.e., no compatibility violation)
> while eliminated the low-end that you objected to.  I can't imagine there
> being an issue in asking a low-end device (even a measly IoT thing) to generate
> an extra 8 bytes of random data.
> 
> I've made this change in my local copy.

Sounds good.  This is certainly the easiest way forward, and if there are
no objections there's not much reason to not just go with it.  I may have
some generic desire in the abstract to fully understand whether it's
needed, but I am pretty sure I can suppress that desire if needed :)

> 
> 
> >> > (4) OPTION_V4_ZEROTOUCH_REDIRECT repeated instances
> >> >
> >> > (In Section 8.1.)
> >> >
> >> > I think I may just be misunderstanding things here, but aren't
> >> >
> >> >   As the list of URIs may exceed the maximum allowed length of a single
> >> >   DHCPv4 option (255 octets), the client MUST implement [RFC3396],
> >> >   allowing the URI list to be split across a number of
> >> >   OPTION_V4_ZEROTOUCH_REDIRECT option instances.
> >> >
> >> > and
> >> >
> >> >   The DHCPv4 server MAY include a single instance of Option
> >> >   OPTION_V4_ZEROTOUCH_REDIRECT in DHCP messages it sends.  Servers MUST
> >> >   NOT send more than one instance of the OPTION_V4_ZEROTOUCH_REDIRECT
> >> >   option.
> >> >
> >> > in conflict about sending more than one instance of
> >> > OPTION_V4_ZEROTOUCH_REDIRECT?
> >> 
> >> Yes, these statements appear to be contradictory.  I asked my co-author,
> >> Ian Farrer, our local DHCP expert, to answer this question.  I think some
> >> word-smithing is needed to convey that a "singleton" option may be split
> >> into pieces.
> >
> > If memory serves, this was resolved in a different AD's ballot thread.
> 
> I think you mean this commit by my co-author Ian to address a comment from Suresh: https://github.com/netconf-wg/zero-touch/commit/1c846ca3bc6ce8ffe1813a0c864dc3aebaf3af65.
> 
> In either case, we believe the issue is resolved in the current (posted) text.
> Here is the direct link: https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-26#section-8.
> 
> Can this DISCUSS item be closed now?

It already was; I had updated my ballot position in the datatracker for the
-26 (but did not have it send mail)

> 
>  
> >> > ----------------------------------------------------------------------
> >> > COMMENT:
> >> > ----------------------------------------------------------------------
> >> >
> >> > Should we consider recommending AuthEnvelopedData throughout instead
> >> > of just EnvelopedData?
> >> 
> >> I don't think this is necessary as 1) the decrypted data can be tested
> >> to be a well-formed CMS and 2) using SZTP to cause the device to act as a
> >> decryption oracle doesn't work well, if at all, as the decrypted text
> >> isn't subsequently made available.
> >> 
> >
> > I'm not sure that (2) is relevant, but (1) and being a SignedData ought
> > to be enough.  Thanks for thinking it through with me.
> 
> Great - this item is closed.
> 
> 
>  
> >> > TLS and CMS are probably good enough about adding context in their
> >> > signatures (well, provided modern versions are used) that we don't
> >> > get too much heartburn about reusing the same key directly for both
> >> > zerotouch [artifact] decryption and TLS client certificates, but 
> >> > it's generally the sort of thing that we frown upon.
> >> 
> >> Understood, which is why the last paragraph of Section 3.4 (Artifact
> >> Encryption) says "This [encryption] certificate MAY be the same as 
> >> the TLS-level client certificate the device uses when connecting to
> >> bootstrap servers.".  The draft is going out of its way to say that
> >> this is okay.  This is necessary, in part, because devices tend to
> >> have only a single IDevID certificate, and hence it tends to be used
> >> for both digitalSignature (for when used as a TLS client cert) and
> >> keyEncipherment (for decrypting the zerotouch artifacts).  The draft
> >> also leaves open the possibility to use distinct certificates for
> >> each purpose.  Perhaps a Security Consideration for this would be
> >> good?  [But given that these are distinct/separate uses, with no
> >> leakage between (AFAICT), then maybe not needed?]
> >
> > I would suggest (recalling that this is a non-blocking comment) adding
> > some text that this does allow for reuse of the private key to make
> > different types of signatures, but there are not any known ways to
> > cause a signature made in one context to be (mis)interpreted as valid
> > in the other.
> 
> I have added a new Security Considerations section to highlight this reuse: https://github.com/netconf-wg/zero-touch/commit/62076e8421fd286a74519b60e8346dbf78d3c4f2
> 

Thanks; it does a great job laying out the situation.

> 
> 
> >> > I a little bit wonder if we want references for TLS and/or HTTP client
> >> > authentication.  Section 2.5 of RFC 8040 might be enough (though it is
> >> > of course not citing TLS 1.3).
> >> 
> >> This draft's use of TLS and HTTP authentication is exclusively for
> >> RESTCONF (RFC 8040).   I'm generally hoping to just reference that
> >> RFC and let it speak for itself.
> >> 
> >> Correct, RFC 8040 does not cite TLS 1.3 explicitly, though TLS 1.3 is
> >> allowed, as Section 2.1 says:
> >> 
> >>    RESTCONF does not require a specific version of HTTP.  However, it 
> >>    is RECOMMENDED that at least HTTP/1.1 [RFC7230] be supported by all
> >>    implementations.
> >> 
> >> BTW, does this comment regard Section 9.6?  
> >
> > Section 9.6 is about making sure the client does not send sensitive data to
> > an unauthenticated server, which is not limited to the data in the
> > certificate; my comment here is more about the mechanics of the client
> > authenticating itself to a server for the server to make authorization
> > decisions (admittedly, I did not mention "authorization" prior to now, so
> > my apologies for being unclear).  Client authentication is mentioned
> > directly or in passing in at least sections 5.1 (which does mention Section
> > 2.5 of RFC 8040 already) and 5.3 (ditto), as well as 9.6.
> 
> As you say, authentication is mentioned in several places already 
> and, if I understand you correctly, this text is sufficient.
> 
> While the word "authorization" does not appear in this document, 
> Section 9.13 discusses "access", which relates to statements in 
> RFC 8040, such as:
> 
>    The RESTCONF server MUST authenticate client access to any protected
>    resource.
> 
>    The server MUST NOT allow any RESTCONF operation for any resources
>    that the client is not authorized to access.
> 
> To provide a more complete picture, the bootstrap server exposes just
> two RPCs.  Each RPC *requires* an authenticated client-credential to
> function.  That is, "get-bootstrapping-data" can only return the 
> bootstrapping data for the authenticated client credential; there is
> no other parameter passed for the server to determine which data to 
> return. Likewise, "report-progress" can only report progress for the
> authenticated client credential; there is no other parameter passed
> for the server to determine for which client is reporting the data.
> 
> This COMMENT began by asking if we might want references for TLS 
> and/or HTTP client authentication, and now maybe authorization.
> Given the above discussion, what is your recommendation?

I think that the document will be good with no additional change for this
matter; the contents of RFC 8040 and the way we use RESTCONF makes things
clear enough.

> 
> >> > (Are there generic RESTCONF internationalization considerations?
> >> > I see 8040 say "just use UTF-8", but is more needed?)
> >> 
> >> I'm not aware of any problems here.  No RFC 8040 errata has been filed.
> >> Is there something in particular you're thinking about?
> >
> > Nothing in particular, no.  
> 
> Okay, this item seems to be closed then.
> 
> 
> 
> >> > Section 1.2
> >> >
> >> >   Network Management System (NMS):  The acronym "NMS" is used
> >> >       throughout this document to refer to the deployment specific
> >> >
> >> > nit: deployment-specific (with hyphen)
> >> 
> >> Fixed (as well as the instance in Section C.2)
> 
> 
> 
> 
> >> > Section 2.1
> >> >
> >> > Does RFC 8340 require a "ro" (or similar) to appear in the tree
> >> > diagram? (Both here and in §2.2.)
> >> 
> >> No, because these are "yang-data" structures.
> >> https://tools.ietf.org/html/rfc8340#section-2.3.
> >
> > Ah, thanks for the pointer -- learn something every day.
> 
> 
> 
> 
> >> > Section 3.2
> >> >
> >> > Do we want to impose any ordering requirements on the certificate
> >> > chain (e.g., owner cert must come first, each cert SHOULD certify
> >> > the one immediately prior to it, etc.)?
> >> 
> >> The owner certificate is encoded using a CMS SignedData structure.
> >> SignedData is defined in RFC 5652, 5.1.  The "certificates" field
> >> is of type "CertificateSet", defined in Section 10.2.3 as a "SET OF",
> >> which is defined in ASN.1 as an unordered collection.  So, ordering
> >> is not possible.
> >
> > Okay.
> 
> 
> 
> 
> >> > Section 3.4
> >> >
> >> > Thank you for including the motivating text about sign-then-encrypt.
> >> > I do wonder if it's worth saying anything about why the well-publicized
> >> > security risks of mac-then-encrypt do not apply.  (The authors of
> >> > draft-campbell-sip-messaging-smime probably already have some text
> >> > that could be used, but it doesn't seem to be in the public view yet.)
> >> 
> >> Are you referring to the padding oracle attack?  As mentioned above, the
> >
> > Right.
> >
> >> solution presented in this document doesn't lend the device to being a
> >> very good decryption oracle.  I suppose the fix would be to add to this
> >> section (or the Security Considerations section?) something like:
> >> 
> >>   This document specifies the encryption of signed objects, as opposed
> >>   to the signing of encrypted objects, as might be expected given well-
> >>   publicized oracle attacks (e.g., the padding oracle attack).  This
> >>   document does not view such attacks as being feasible in the context
> >>   of the solution because i) the decrypted text never leaves the device
> >>   and ii) the solution does not differentiate between a "bootstrap-error"
> >>   cause by a decryption failure versus a failure occurring when parsing
> >>   the decrypted text.
> >
> > That works for me, thanks.  (But feel free to leave it out if you don't
> > think it's adding value, too.)
> 
> I added a slightly reduced version of the above text (taking out clause "ii"):
> https://github.com/netconf-wg/zero-touch/commit/388d0355b3c7c6ce4aa48028a4ef89dc64147304.
> 
> Still good?

Yes.

> 
>  
> >> > Section 4.1
> >> >
> >> > Mounting all filesystems found on removable devices can be a security
> >> > risk, with intentionally malformed filesystem images causing system
> >> > compromise in some cases.
> >> 
> >> Is the concern the mounting of *all* or *any* filesystems?  It seems 
> >> that even if there were just one filesystem, it could be intentionally
> >> malformed.  Are you hoping to see a Security Consideration for this?
> >
> > The concern was any, thanks for figuring out what I meant.
> > Thinking about this again after the long gap, it seems a pretty generic
> > consideration, so it's unclear that Security Considerations text in this
> > document specifically would be particularly helpful.
> 
> Okay, let's close this one with no update.

Okay.

> 
> 
>  
> >> > Section 4.2
> >> >
> >> > I agree with Adam about registering "zerotouch" (and the name is
> >> > perhaps overly generic?).
> >> >
> >> > I'm also not sure I properly understand the "zt-info"/zt-* TXT
> >> > records' usage; would they need to be registered akin to
> >> > draft-moonesamy-dnsop-special-use-label-registry?
> >> 
> >> First, regarding the term "zerotouch" being perhaps overly generic,
> >> I have somewhat felt this way for a while.  One thing that could be
> >> done fairly easily is to more the bulk of the "zerotouch" references
> >> to "sztp", the acronym given throughout.  Admittedly, what SZTP
> >> stands for isn't tremendously better, but I think that it is
> >> generally better than just "zerotouch".  Thoughts?
> >
> > SZTP does seem better than just "zerotouch" to me, all things considered.
> 
> 
> Okay, I did the following:
> 
>   When referring to the draft/solution:
>     Zero Touch --> SZTP
> 
>   When referring to the bootstrapping artifact:
>     zero touch information --> conveyed information
>     zerotouch-information  --> conveyed-information
> 
>   For the CMS content types:
>     id-ct-zerotouchInformationXML  --> id-ct-sztpConveyedInfoXML
>     id-ct-zerotouchInformationJSON --> id-ct-sztpConveyedInfoJSON
> 
>   For the YANG modules:
>     ietf-zerotouch-information.yang      --> ietf-sztp-conveyed-info.yang
>     ietf-zerotouch-bootstrap-server.yang --> ietf-sztp-bootstrap-server.yang
> 
>   For the DNS/service name:
>     _zerotouch --> _sztp
> 
> A big change, though I scripted most of it. Here's the diff:
> https://github.com/netconf-wg/zero-touch/commit/394b863d1850019fd451554a9f86c3c10d280d08

Thank you for your willingness to make these disruptive changes "for the
good of the team"; I know it's pretty thankless work.

> 
> 
> 
> 
> >> Second, I am not a DNS expert, do you know who we can discuss
> >> such things with?  That said, I guess our idea was to use TXT
> >> records like RFC 1464, where the TXT value itself has the form
> >> "<attribute name>=<attribute value>", in which case it doesn't
> >> seem to need IANA registration?
> >
> > Please correct me if I'm wrong, but I think this issue was
> > already covered in a different AD's ballot thread.
> 
> Correct, Section 4.2 was updated (posted in -26) per Alexey's DISCUSS.
> Per your original comment (and his, and Adam's), Section 10.6 now
> requests IANA to register the service name "sztp" (was "zerotouch"). 
> 
> > That said, the addition of <serial number>._zerotouch.fqdn in the
> > -26 seems to indicate that mention of draft-ietf-dnsop-attrleaf
> > is appropriate, if I remember correctly how that works.
> 
> I've just now read draft-ietf-dnsop-attrleaf.  I see the applicability,
> but I don't understand your proposal.  Looking at DataTracker, I see
> that it is already in RFC Ed Queue, so I think you're suggesting me
> treat it as a fait accompli, and add an IANA Consideration section
> to register "_sztp", yes?  Assuming that is the case, then what should

>From memory, yes.

> be done with the service name registration in Section 10.6, added per
> comments from Alexey and Adam?

I think we'll need to get some further input from Alexey and/or Adam, but
my understanding is that we would need both registrations -- the service
name registration covers our _sztp._tcp.fqdn SRV records, but we are also
using <serial number>._sztp._tcp.fqdn TXT records, and so (IIUC) we'd need
to add a reference to this document for the TXT _tcp entry that RFC 6763
(DNS-SD) is currently the reference for.

> 
> 
> >> > Section 5.3
> >> >
> >> > This is the first time we talk about "serial number" as device identity;
> >> > maybe a forward-reference is in order?
> >> 
> >> I'm unsure what the forward reference would be to.  However, I think that
> >> we could add "serial number" to Section 5.1 (Initial State), as a new
> >> first item in the <read-only storage> box.  Would that be better?
> >
> > It looks like -26 added some text relating "serial number" and "device
> > identity [certificate]", so let's call this OBE.
> 
> Sounds good, thanks.
> 
> 
> 
> 
> >> > Does the device have any reason to track whether the incoming artifact is
> >> > encrypted (whether at the CMS layer or the transport layer)?  I can't think
> >> > of one, but sometimes this is useful information in other settings.
> >> 
> >> I also cannot think of a reason.  That the incoming CMS is encrypted has
> >> no bearing on device's processing logic.  This is expected, given that the
> >> device's public key is, well, public, and therefore access to it has no
> >> special meaning.  Note that encryption here is used to ensure privacy, as
> >> only the device can decrypt/access the data.
> >
> > Agreed.
> 
> Excellent (closed)
> 
> 
> 
> >> >   If the zero touch information artifact contains onboarding
> >> >   information, and trust-state is FALSE, the device MUST exit the
> >> >   recursive algorithm (as this is not allowed, see the figure above),
> >> >   returning to the bootstrapping sequence described in Section 5.2.
> >> >   Otherwise, the device MUST attempt to process the onboarding
> >> >   information as described in Section 5.6.  In either case, success or
> >> >   failure, the device MUST exit the recursive algorithm, returning to
> >> >   the bootstrapping sequence described in Section 5.2, the only
> >> >   difference being in how it responds to the "Able to bootstrap from
> >> >   any source?" conditional described in the figure in the section.
> >> >
> >> > Does this "either case" refer to just the processing of onboarding
> >> > information, or the exit vs. attempt to process cases?  (I assume the
> >> > former, but perhaps some editorial work is in order.)
> >> 
> >> Your intuition is correct :)   How about this:
> >> 
> >>   OLD:
> >>     In either case, success or failure, ...
> >> 
> >>   NEW:
> >>     Whether the processing of the onboarding information succeeds
> >>     or fails, ...
> >
> > SGTM :)
> 
> Edit made in -27.
> 
> 
> 
> 
> >> >   If the zero touch information artifact is signed, and the device is
> >> >   able to validate the signed data using the algorithm described in
> >> >   Section 5.4, then the device MUST set trust-state to TRUE; otherwise,
> >> >   if the device is unable to validate the signed data, the device MUST
> >> >   set trust-state to FALSE.  Note, this is worded to cover the special
> >> >   case when signed data is returned even from a trusted bootstrap
> >> >   server.
> >> >
> >> > Having read Section 5.4, I'm still unsure where the special handling
> >> > for this special case is described.
> >> 
> >> There is no special handling per se but, the point that is trying 
> >> (perhaps ineffectually) is that, if signed-data is received from a
> >> trusted-source, validating the signature is all that matters, that
> >> the source was trusted becomes irrelevant to being able to validate
> >> the data.  Makes sense now?  Does it need to be reworded?
> >
> > It does make sense now, and I don't think it needs to be reworded -- thanks
> > for the extra explanation.  (I was mostly concerned that there was a
> > special case that I wasn't finding in the text, but the existing text
> > describes exactly what to do, so it's all good.)
> 
> Okay, item closed with no update made.
> 
> 
> 
>  
> >> > Section 5.5
> >> >
> >> >   Processing redirect information is straightforward, the device
> >> >   sequentially steps through the list of provided bootstrap servers
> >> >   until it can find one it can bootstrap from.
> >> >
> >> > nit: I think this is a comma splice.
> >> 
> >> Changed to a semicolon.
> 
> 
> 
>   
> >> > Section 5.6
> >> >                                                Regardless the
> >> >   reporting-level indicated by the bootstrap server, the device MAY
> >> >   send progress reports beyond the mandatory ones specified for the
> >> >   given reporting level.
> >> >
> >> > nit: "Regardless of"
> >> 
> >> Fixed in -26.
>  
>  
>  
> >> >   When the onboarding information is obtained from an untrusted
> >> >   bootstrap server, the device MUST NOT send any progress reports to
> >> >   the bootstrap server.
> >> >
> >> > I'm not sure if I would want a parenthetical "(that is, the onboarding
> >> > information was authenticated at the CMS layer)", but I would think about
> >> > adding one.
> >> 
> >> How about postpending:
> >> 
> >>   ", even though the onboarding information must have been signed and
> >>    authenticated.  Please be aware that bootstrap servers are recommended,
> >>    in the last paragraph of Section 9.6, to promote untrusted connections
> >>    to trusted connections so as, in part, to be able to collect progress
> >>    reports from devices."
> >> 
> >> Too wordy, or just right?
> >
> > I am prone to being too wordy myself, but that seems just right to me.
> 
> Okay, I added a slightly modified version of the above to -27.
> 
> 
>  
> 
> >> >   The device MUST parse the provided onboarding information document,
> >> >   to extract values used in subsequent steps.  Whether using a stream-
> >> >   based parser or not, if there is an error when parsing the onboarding
> >> >
> >> > This line makes me consider the scenario where a stream-based parser is
> >> > used with a trusted bootstrap server and no CMS-layer signature.  At the
> >> > TLS layer, a truncation attack by the network is possible, and if
> >> > truncation is not detectable at the application layer, the device could end
> >> > up misconfigured with neither party aware (unless there's an additional
> >> > response or something that I'm forgetting about).  I think that for the XML
> >> > and JSON formats we know and love, truncation would make for a malformed
> >> > stream due to the outermost scope container, but please correct me if I'm
> >> > wrong.  There are probably some security considerations to mention w.r.t.
> >> > any future new encodings of this data model, though.
> >> 
> >> The steps are roughly: 
> >>   a) HTTPS GET an XML/JSON document (the get-bootstrapping-data" response).
> >>   b) extract the CMS-based artifacts from the XML/JSON document.
> >>   c) if encrypted, decrypt.
> >>   d) if signed, authenticate.
> >>   e) extract the onboarding-information (another XML/JSON doc) from the CMS artifact.
> >>   f) process the onboarding-information XML/JSON doc
> >> 
> >> So here we're at step (f), where the text mentions the possible use of a
> >> stream parser.  This is rather long after step (a), where TLS truncation
> >> may occur and, presumably caught in step (b).  This is by way of saying
> >> that I don't think this is an issue, but interested to hear your response.
> >> 
> >> FWIW, the point of this "stream-based parser" comment is to highlight
> >> that, unlike most all the other progress-types, which seem to reflect
> >> a serial processing of the steps, the parsing may either be a distinct
> >> step (e.g., a DOM-based parser) or something that is splayed across all
> >> the other steps (a stream-based parsed).  In the first case, the all
> >> the "parsing-*" progress reports (including any parsing-error report)
> >> are expected to be transmitted before any, e.g., boot-image-* reports
> >> are sent; whereas, in the second case, the parsing-* reports can be
> >> intermixed.
> >> 
> >> I don't think there is a TLS concern, but perhaps the paragraph needs
> >> to be reworded?
> >
> > I think your understanding basically matches mine; I tried to include in my
> > remark that it would only possibly apply to the case where the predicates
> > for (c) and (d) are false.  I just plain don't know whether (a)/(b) will
> > choke if the GET response is an incomplete XML/JSON document.  If it
> > properly errors out, then there's no concern here, and we should just move
> > on.  In any case, even if there was an issue, this paragraph would not
> > really be the place to talk about it -- my comment is only located here
> > because this is where we start talking about stream-based parsers.  The
> > errors in question are not necessarily those generated by the stream-based
> > parser, but can also include those generated at earlier steps.
> 
> Okay, if we step back from the stream-parsing angle, and instead just focus
> on the TLS truncation concern, my first thought is that said error will be
> detected in (a) and (b) will not be entered.  In case (b) is entered, then
> it seems that (b) would detect a malformed response from the server, as it
> would normally need to do.

Okay, defense in depth is a good thing.  It sounds like we don't need to
say anything about this in the document, IIUC.

>  
> >> >      *  Most steps are atomic.  For instance, when a commit fails, it
> >> >         is expected to have no impact on the configuration.  Similarly,
> >> >         if the error occurs when executing a script, the script will
> >> >         gracefully exit.
> >> >
> >> > As a reader it's hard to tell if this is giving guidance to script
> >> > authors or consumers.
> >> 
> >> Is this better?
> >> 
> >>    Most steps are atomic.  For example, the processing a configuration
> >>    is specified as atomic above, and the processing of scripts are
> >>    similarly atomic, as specified in the "ietf-zerotouch-information"
> >>    YANG module.
> >
> > Yes, thanks.  (I think the -26 lost both "of"s, though?)
> 
> Edit made to -27, including the missing "of"s.
> 
> 
> 
> 
> 
> >> > Section 6.2
> >> >
> >> > "base64encodedvalue==" is pretty cute, though maybe we could add some
> >> > trailing numbers to provide different values for the different fields?
> >> 
> >> The issue here is that the example documents must be valid (fwiw, they
> >> are tested each time `xml2rfc` is run).  Previous versions of this 
> >> document included compete base64 encoding of the real objects, but 
> >> people complained that it greatly distracted from readability.  To
> >> address this, the WG agreed to use "base64encodedvalue==" in examples
> >> to represent YANG "binary" data.
> >> 
> >> Is it okay to leave this as is?
> >
> > This is a non-blocking comment, so by definition my answer is "yes" :)
> > I mostly just wanted to point out that the examples use the same literal
> > string to fill in for many different data types -- I agree with not using
> > "real" examples since they're bulky and not readable in encoded form, but
> > was just wondering if we could use different short strings to represent
> > semantically different objects.
> 
> Okay, let's close this with no update.  That said, you may be pleased (or
> irked) to see that the nonce min-length change forced one example to have
> to change to "<nonce>extralongbase64encodedvalue=</nonce>" in order to pass
> build-time validation tests ;)

Cool, I wish my CI was that good :)

> 
> 
> 
>  
> >> > Section 6.3
> >> >
> >> > The YANG module boilerplate is still on the RFC 2119 version of BCP 14
> >> > (not RFC 8174).
> >> 
> >> Fixed in -26. Now both YANG modules read:
> >> 
> >>     The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
> >>     "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", 
> >>     "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document
> >>     are to be interpreted as described in BCP 14 [RFC2119]
> >>     [RFC8174] when, and only when, they appear in all
> >>     capitals, as shown here.
>  
> Note, a separate WG comment prompted an additional update here.
> Now "[RFC2119][RFC8174]" is "(RFC 2119, RFC 8174)", since YANG
> modules aren't themselves drafts with a references secton and
> such.
> 
> 
> 
> 
> 
> >> > Section 7.2
> >> >
> >> > If we're going to say "and receives signed data in the response", maybe we
> >> > could actually give an example that shows the (base64'd) CMS structure that
> >> > corresponds to the signature?  Not necessarily the whole payload, but
> >> > enough to see the outer structure at least...
> >> 
> >> See previous response regarding "base64encodedvalue==".  It's tricky
> >> business.  That said, in a separate "expert review" response from Russ
> >> Housley, we were thinking to add an appendix section containing all
> >> the possible ASN.1 structures.  For instance:
> >> 
> >>   X. ASN.1 for Various Artifacts
> >>   X.1. Zero Touch Information
> >>   X.2. Signed Zero Touch Information
> >>   X.3. Encrypted and Signed Zero Touch Information
> >>   X.4. Owner Certificate
> >>   X.5. Encrypted Owner Certificate
> >>   X.6. Ownership Voucher
> >>   X.7. Encrypted Ownership Voucher
> >> 
> >> Would this bridge the gap for you?
> >
> > That would help a lot, thanks!
> 
> Is it okay for me to back out of this one?  I had thought previously
> that Russ would provide the ASN.1, but he said he didn't have time and,
> well, I'd rather not venture into this if it can be avoided...

It will be okay if nothing happens on this front.  (You've already put in a
huge amount of effort anyway!)

Huge thanks for all your work on this -- hopefully the end is in sight!

-Benjamin

> 
> 
> 
> >> > Section 7.3
> >> >
> >> > The YANG module boilerplate is still on the RFC 2119 version of
> >> > BCP 14 (not RFC 8174).
> >> 
> >> Yep, fixed in -26 along with the fix to the other YANG module.
>  
>  
> 
> 
>  
> >> >             enum "boot-image-installed-rebooting" {
> >> >               description
> >> >                 "Indicates that the device successfully installed
> >> >                  a new boot image and is about to reboot.  After
> >> >                  sending this progress type, the device is not
> >> >                  expected to access the bootstrap server again.";
> >> >
> >> > Is this just scoped to the current connection/session?
> >> > (As opposed to "bootstrap-complete", which probably is a global statement.)
> >> 
> >> Yes, just the current scope. how about the following? - or should the last
> >> sentence be left off?
> >> 
> >>               "Indicates that the device successfully installed
> >>                a new boot image and is about to reboot.  After
> >>                sending this progress type, the device is not
> >>                expected to access the bootstrap server again
> >>                for this bootrapping attempt.  The device may
> >>                access this bootstrap server after rebooting
> >>                and restarting the zerotouch bootstrapping
> >>                process.";
> >
> > Probably the last sentence is not adding anything useful.
> 
> Last sentence removed (and spelling mistake fixed) in -27.
> 
> 
> 
> 
> 
> >> >   container trust-anchor-certs {
> >> >   [...]
> >> >               The CMS MUST contain only a single chain of
> >> >               certificates.  The device's end-entity certificate
> >> >               MUST only authenticate to the last intermediate CA
> >> >               certificate listed in the chain.
> >> >
> >> > I'm not sure whether "authenticate to" means that the CA cert directly
> >> > certifies or is the trust anchor.  Could we maybe use language like
> >> > "directly certifies the [next|previous]" certificate?
> >> 
> >> This text is trying to say that the "last certificate" is the issuer of
> >> the device's end-entity certificate.  More generally, it's trying to say
> >> that there are no superfluous certificates in the CMS.  Perhaps:
> >> 
> >> NEW:
> >>                The CMS MUST contain only a single chain of
> >>                certificates.  The last certificate in the chain
> >>                MUST be the issuer for the the device's end-entity 
> >>                certificate.
> >
> > That looks wonderful, thanks.
> 
> Change made (along with fixing "the the") in -27.
> 
> 
> 
> 
> >> > Also, the split of references of RFC 6187 for trust-anchor-certs but RFCs
> >> > 5280 and 5652 for trust-anchor-cert seems unusual, since potentially all
> >> > three would be relevant for both nodes, if I understand correctly.
> >> 
> >> True, but my general goal is to have the "reference" statements support
> >> the "description" statements.  So, in this case, the parent node mentions
> >> RFC 6187, hence I put the "reference" for it there.  Does it still seem
> >> unusual to you?
> >
> > Less so; thanks for the explanation :)
> 
> Okay, let's close this with no update made.
> 
> 
> 
> 
> >> > Section 9.1
> >> >
> >> > At this point draft-ietf-ntp-using-nts-for-ntp exists, though I don't know
> >> > whether it's appropriate to be citing it yet.
> >> 
> >> How about tacking on this last sentence, and list ietf-ntp-using-nts-for-ntp
> >> as an Informative reference?
> >>  
> >>           Implementations SHOULD NOT rely on NTP for time, as
> >>           NTP is not a secure protocol at this time.  Note, there
> >>           is an IETF work-in-progress to secure NTP
> >>           <xref target="I-D.ietf-ntp-using-nts-for-ntp"/>.
> >
> > SGTM.
> 
> Okay, and for posterity sake, the change was made in -26.
> 
> 
> 
> 
> >> > Section 9.6
> >> >
> >> > There is perhaps some room for discussion of the consequences of the device
> >> > telling the bootstrapping server whether the device thinks the connection
> >> > is trusted, in that it gives an attacker information about the target.
> >> > (Granted, it does not seem like much information, but it might be cleaner
> >> > to define the semantics of the node as being whether the client would like
> >> > the server to sign its responses at the application layer, which need not
> >> > have complete overlap with whether the client considers the server to be
> >> > trusted.
> >> 
> >> Hmmm, I agree with the optics.  Perhaps we could change it to "signed-data-
> >> preferred"?  Keep in mind that signed-data isn't required, as it would be
> >> okay for the server to return unsigned redirect information.  It's only if
> >> the data is onboarding information that it would need to be signed.
> >
> > That works for me.  (It doesn't seem like a big deal either way, of
> > course.)
> 
> Change made in -27.
> 
>  
>  
> >> > Section 9.8
> >> >
> >> > Does recommending frequent private key refreshes actually help in
> >> > environments where revocation is unusable (i.e., by virtue of not having
> >> > reliable time)?  (If not, perhaps that caveat should be more explicit here,
> >> > even though it is mentioned in Section 9.1 already.)
> >> 
> >> Good catch.  How about adding the last two lines below?
> >>  
> >>           Bootstrap server administrators are RECOMMENDED to follow best
> >>           practice to protect the private key used for any online operation.
> >>           Use of a hardware security module (HSM) is RECOMMENDED.  If an 
> >>           HSM is not used, frequent private key refreshes are RECOMMENDED,
> >>           assuming all bootstrapping devices have an accurate clock (see
> >>           <xref target="clock-sens"/>).
> >
> > SGTM.
> 
> Okay, and for posterity sake, this update was in -26.
> 
> 
> 
> 
> >> > Section 9.10
> >> >
> >> > I would suggest also mentioning the (lack of) mitigations possible if the
> >> > operator does not trust all the pre-configured authorities designated by
> >> > the manufacturers.
> >> 
> >> How about adding the last sentence below?
> >> 
> >>           Operators should be aware that this system assumes that they trust
> >>           all the pre-configured bootstrap servers and voucher signing authorities
> >>           designated by the manufacturers.  While operators may use points in
> >>           the network to block access to the well-known bootstrap servers, 
> >>           operators cannot prevent voucher signing authorities from generating
> >>           vouchers for their devices.
> >
> > Perfect :)
> 
> Ex excellent and, again, for posterity sake, this update was in -26.
> 
> 
>  
> >> > Section 9.11
> >> >
> >> >      revealing (e.g., network topology, firewall policies, etc.).  It
> >> >      is RECOMMENDED that operators encrypt the bootstrapping data when
> >> >      its contents are considered sensitive, even to the administrators
> >> >      of a bootstrap server.
> >> >
> >> > I don't understand what is meant by "even to the administrators of a
> >> > bootstrap server"?
> >> 
> >> Here I'm thinking that the bootstrap server may be hosted by a 3rd-party,
> >> or another group within the operator's organization.  For example, the
> >> NOC generates the artifacts, but IT admins the bootstrap server boxes.
> >> 
> >> Any need for an update to this text?
> >
> > Even given the above clarification, I'm still having a hard time not
> > reading the current text as saying that the administrators of the bootstrap
> > server are making the determination that content is considered sensitive.
> > Maybe "even with respect to distribution to the administrators of a
> > bootstrap server" or "even to the point of hiding it from the
> > administrators of a bootstrap server"?
> 
> Okay, slightly modified text to your 2nd suggestion in -27.
> 
> 
> 
>  
> >> > Section 9.12
> >> >
> >> > nit: the last word is "revoked".
> >> 
> >> Fixed in -26.
> 
>  
>  
> 
> >> > Section 9.13
> >> >
> >> >   Implementations should be aware that signed bootstrapping data only
> >> >   protects the data from modification, the contents are still visible
> >> >   to others.  [...]
> >> >
> >> > nit: this is a comma splice
> >> 
> >> Fixed in -26.
>  
>  
> >> >                                                         This
> >> >   information should be considered sensitive and precautions should be
> >> >   taken to protect it (e.g., encrypt artifact with device public key).
> >> >
> >> > nit: I think it's more conventional to "encrypt to" a public key than
> >> > "encrypt with" one.
> >> 
> >> How about "encrypt the artifact using the device's public key"?
> >
> > Sure.
> 
> Excellent, and this update was in -26.
>  
>  
>  
> >> > Section C.3
> >> >
> >> > We could perhaps recommend ecdsa-sha2-* keys instead of ssh-rsa keys.
> >> 
> >> Replaced "ssh-rsa key" with "SSH public key"
> >
> > Even better
> 
> Excellent and, again, this update was in -26.
> 
> 
> 
> 
>  
> >> >   4.  Otherwise, if redirect information is found, the device iterates
> >> >       through the list of specified bootstrap servers, checking to see
> >> >       if it has bootstrapping data for the device.  [...]
> >> >
> >> > The "it" is perhaps ambiguous; I would suggest "each server in turn".
> >> 
> >> Replaced "it" with "bootstrap server"
> >
> > Sure.
> 
> Also was in -26.
> 
> 
> 
> 
> Thanks again!
> Kent
> 
> 
> 


From nobody Mon Jan  7 09:43:36 2019
Return-Path: <rwilton@cisco.com>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id BE206130FC7; Mon,  7 Jan 2019 09:43:34 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Robert Wilton <rwilton@cisco.com>
To: <yang-doctors@ietf.org>
Cc: netconf@ietf.org, draft-ietf-netconf-restconf-notif.all@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154688301471.23184.11003837983933531435@ietfa.amsl.com>
Date: Mon, 07 Jan 2019 09:43:34 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/xHvjrGVRfQIinvPzKCEKzHbujXc>
Subject: [Netconf] Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 17:43:35 -0000

Reviewer: Robert Wilton
Review result: Ready with Issues

I have reviewed this document as part of the YANG doctors directorate's
ongoing effort to review all IETF documents being processed by the IESG.  These
comments were written with the intent of improving the operational aspects of
the IETF drafts. Comments that are not addressed in last call may be included
in AD reviews during the IESG review.  Document editors and WG chairs should
treat these comments just like any other last call comments.

This document and the associated YANG module looks like it is in good shape to
me.

The two minor issues that I had that I think need to be resolved are:
- The section 3.4 handling subscriptions by admin users wasn't intuitive to me
(relative to what is stated in draft-ietf-netconf-subscribed-notifications). 
Specifically what should an admin user be allowed to do vs the client that
initiated the subscription. - Section 4 on HTTP2 QoS seemed unclear to me.

I think that all my other comments are really just nits:

1) Section 3.2 Discovery, last paragraph.

Would it be better for this to reference draft-ietf-netconf-nmda-restconf,
section 2 and '/yang-libary/datastore' draft-ietf-netconf-rfc7895bis, section 3?

2) RPC table in section 3.3.  The identity for "kill-subscription" should
probably be "delete-subscription-error" since "kill-subscription-error" isn't
defined.

3) Diagram in 3.4.  It wasn't immediately obvious to me that the vertical lines
in the lined up with connections (a) and (b).  I'm not sure whether it is worth
adding a comment to make this more explicit.  I figured it out whilst reading
the text below, perhaps most other readers would also do so.

4) Section 3.4, bottom of page 7, "must be sent within (b)" -> "MUST be sent
within (b)"

5) Section 3.4:
   o  RPCs modify-subscription, resync-subscription and delete-
      subscription can only be done by the same RESTCONF username
      [RFC8040] who did the establish-subscription, or by a RESTCONF
      username with the required administrative permissions.  The latter
      also has access to the kill-subscription RPC.

Just to check, is it true that any RESTCONF username with the required
permissions is allowed to invoke the "delete-subscription" RPC?  Or should this
be restricted to same RESTCONF username?  In fact, I was wondering whether an
administrator should be allowed to invoke modify-subscription or
resync-subscription, or whether they should be restricted to kill-subscription
only?

6) Section 4 is unclear to me:

 - The paragraph starting "take any existing subscription "priority" ..."
 states that the "dscp" field is copied into the HTTP2 stream priority, but I
 couldn't find such a field in section 5.3 of RFC7540.  Hence, I was wondering
 whether this paragraph shouldn't instead be stating the the "weighting" field
 is copied into the HTTP2 stream priority header?

E.g.
OLD:
   o  take any existing subscription "priority", as specified by the
      "dscp" leaf node in
      [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
      into the HTTP2 stream priority, [RFC7540] section 5.3, and

NEW:
   o  take any existing subscription "priority", as specified by the
      "weighting" leaf node in
      [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
      into the HTTP2 stream weight, [RFC7540] section 5.3, and

There is also no mention of how the "E" (Exclusive) bit should be set in the
HTTP2 stream headers.  Is this an omission?

7) Section 6 doesn't contain any YANG Tree output.  Probably time to put that
in, but I would suggest not putting in the entire tree output, just the
relevant snippets.  If you want to include the full tree output then I would
suggest putting in an appendix instead.  The text in this section describing
the YANG model needs to be fixed since the YANG module doesn't actually define
any identities.

8) Section 7, YANG module comments

Just nits:

8.1) Check line length of the file, it looks like it goes over 69 characters.
 - In particular, the namespace statement might need to be split.
 - The module description text indentation looks off on the first line, and
 probably needs to be re-flowed. - Some of the other descriptions look wide.

8.2) The description for "subscription-modified" doesn't quite scan (as it goes
over the line break).

9) One of the filter examples appendix A.3 is clearly over 72 characters,
suggest spliting.

Thanks,
Rob


From nobody Mon Jan  7 11:00:56 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3513131002; Mon,  7 Jan 2019 11:00:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.502
X-Spam-Level: 
X-Spam-Status: No, score=-14.502 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 gVOv5mhEJOQl; Mon,  7 Jan 2019 11:00:53 -0800 (PST)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1AB31294D0; Mon,  7 Jan 2019 11:00:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6988; q=dns/txt; s=iport; t=1546887652; x=1548097252; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ZuyBnjQJQA94Zn/44Sx4CBYDr3moKSpuxGcTXg9C7nQ=; b=SbeZ+z4DGRlsSqYTbYdVDwyPIQZg4e0xhK0uPY+dZRi7PuCCMeyIRxvj YFkHHNoXanW9rVInfitv3eB7m3wNWr3d8IoDNMkj1MEKmOPKM0QgCfnQE fezLUTQ5c7xziYjTbKSTM3LfMiwiPrNBkCvsmhuapmjOOpNOig+aVZdVr w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAABboTNc/4sNJK1aCRkBAQEBAQE?= =?us-ascii?q?BAQEBAQEHAQEBAQEBgVEEAQEBAQELAYFaKWaBAicKg3WIGotrmXuBewsBASy?= =?us-ascii?q?EQAIXgW0iNAkNAQMBAQIBAQJtKIVLBiMEDUUQAgEIGgIJHQICAjAVEAIEAQ0?= =?us-ascii?q?FgyIBggGnIXwzii2BC4s0F4FAP4ERJx+CTIRXQYJxMYIEIgKhXAkCkW8YkW+?= =?us-ascii?q?JYpA0AhEUgScfOIFWcBVlAYJBgiIFF4EAAQeNFnKBKIg7AYEeAQE?=
X-IronPort-AV: E=Sophos;i="5.56,451,1539648000"; d="scan'208";a="500877102"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Jan 2019 19:00:51 +0000
Received: from XCH-RCD-006.cisco.com (xch-rcd-006.cisco.com [173.37.102.16]) by alln-core-6.cisco.com (8.15.2/8.15.2) with ESMTPS id x07J0pmR025425 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 7 Jan 2019 19:00:51 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-RCD-006.cisco.com (173.37.102.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 7 Jan 2019 13:00:50 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Mon, 7 Jan 2019 13:00:50 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)" <rwilton@cisco.com>,  "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-restconf-notif.all@ietf.org" <draft-ietf-netconf-restconf-notif.all@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
Thread-Index: AQHUprCFOch/e2rpE06mX+DnhAHT46WkOf4A
Date: Mon, 7 Jan 2019 19:00:50 +0000
Message-ID: <AE624D93-94E7-4A39-8BAF-DDC0FC54FD33@cisco.com>
References: <154688301471.23184.11003837983933531435@ietfa.amsl.com>
In-Reply-To: <154688301471.23184.11003837983933531435@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.43]
Content-Type: text/plain; charset="utf-8"
Content-ID: <F711D2B7EEF93543AE834E55908BE23B@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.37.102.16, xch-rcd-006.cisco.com
X-Outbound-Node: alln-core-6.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/OkonY68Mojekt2wObpxbR57jjys>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 19:00:55 -0000

VGhhbmtzIFJvYiwgd2lsbCB0YWtlIGEgbG9vayBhbmQgcmVzcG9uZCBzb29uLg0KDQpSZWdhcmRz
LA0KUmVzaGFkLg0KDQoNCu+7v09uIDIwMTktMDEtMDcsIDEyOjQzIFBNLCAiUm9iZXJ0IFdpbHRv
biIgPHJ3aWx0b25AY2lzY28uY29tPiB3cm90ZToNCg0KICAgIFJldmlld2VyOiBSb2JlcnQgV2ls
dG9uDQogICAgUmV2aWV3IHJlc3VsdDogUmVhZHkgd2l0aCBJc3N1ZXMNCiAgICANCiAgICBJIGhh
dmUgcmV2aWV3ZWQgdGhpcyBkb2N1bWVudCBhcyBwYXJ0IG9mIHRoZSBZQU5HIGRvY3RvcnMgZGly
ZWN0b3JhdGUncw0KICAgIG9uZ29pbmcgZWZmb3J0IHRvIHJldmlldyBhbGwgSUVURiBkb2N1bWVu
dHMgYmVpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBJRVNHLiAgVGhlc2UNCiAgICBjb21tZW50cyB3ZXJl
IHdyaXR0ZW4gd2l0aCB0aGUgaW50ZW50IG9mIGltcHJvdmluZyB0aGUgb3BlcmF0aW9uYWwgYXNw
ZWN0cyBvZg0KICAgIHRoZSBJRVRGIGRyYWZ0cy4gQ29tbWVudHMgdGhhdCBhcmUgbm90IGFkZHJl
c3NlZCBpbiBsYXN0IGNhbGwgbWF5IGJlIGluY2x1ZGVkDQogICAgaW4gQUQgcmV2aWV3cyBkdXJp
bmcgdGhlIElFU0cgcmV2aWV3LiAgRG9jdW1lbnQgZWRpdG9ycyBhbmQgV0cgY2hhaXJzIHNob3Vs
ZA0KICAgIHRyZWF0IHRoZXNlIGNvbW1lbnRzIGp1c3QgbGlrZSBhbnkgb3RoZXIgbGFzdCBjYWxs
IGNvbW1lbnRzLg0KICAgIA0KICAgIFRoaXMgZG9jdW1lbnQgYW5kIHRoZSBhc3NvY2lhdGVkIFlB
TkcgbW9kdWxlIGxvb2tzIGxpa2UgaXQgaXMgaW4gZ29vZCBzaGFwZSB0bw0KICAgIG1lLg0KICAg
IA0KICAgIFRoZSB0d28gbWlub3IgaXNzdWVzIHRoYXQgSSBoYWQgdGhhdCBJIHRoaW5rIG5lZWQg
dG8gYmUgcmVzb2x2ZWQgYXJlOg0KICAgIC0gVGhlIHNlY3Rpb24gMy40IGhhbmRsaW5nIHN1YnNj
cmlwdGlvbnMgYnkgYWRtaW4gdXNlcnMgd2Fzbid0IGludHVpdGl2ZSB0byBtZQ0KICAgIChyZWxh
dGl2ZSB0byB3aGF0IGlzIHN0YXRlZCBpbiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1u
b3RpZmljYXRpb25zKS4gDQogICAgU3BlY2lmaWNhbGx5IHdoYXQgc2hvdWxkIGFuIGFkbWluIHVz
ZXIgYmUgYWxsb3dlZCB0byBkbyB2cyB0aGUgY2xpZW50IHRoYXQNCiAgICBpbml0aWF0ZWQgdGhl
IHN1YnNjcmlwdGlvbi4gLSBTZWN0aW9uIDQgb24gSFRUUDIgUW9TIHNlZW1lZCB1bmNsZWFyIHRv
IG1lLg0KICAgIA0KICAgIEkgdGhpbmsgdGhhdCBhbGwgbXkgb3RoZXIgY29tbWVudHMgYXJlIHJl
YWxseSBqdXN0IG5pdHM6DQogICAgDQogICAgMSkgU2VjdGlvbiAzLjIgRGlzY292ZXJ5LCBsYXN0
IHBhcmFncmFwaC4NCiAgICANCiAgICBXb3VsZCBpdCBiZSBiZXR0ZXIgZm9yIHRoaXMgdG8gcmVm
ZXJlbmNlIGRyYWZ0LWlldGYtbmV0Y29uZi1ubWRhLXJlc3Rjb25mLA0KICAgIHNlY3Rpb24gMiBh
bmQgJy95YW5nLWxpYmFyeS9kYXRhc3RvcmUnIGRyYWZ0LWlldGYtbmV0Y29uZi1yZmM3ODk1Ymlz
LCBzZWN0aW9uIDM/DQogICAgDQogICAgMikgUlBDIHRhYmxlIGluIHNlY3Rpb24gMy4zLiAgVGhl
IGlkZW50aXR5IGZvciAia2lsbC1zdWJzY3JpcHRpb24iIHNob3VsZA0KICAgIHByb2JhYmx5IGJl
ICJkZWxldGUtc3Vic2NyaXB0aW9uLWVycm9yIiBzaW5jZSAia2lsbC1zdWJzY3JpcHRpb24tZXJy
b3IiIGlzbid0DQogICAgZGVmaW5lZC4NCiAgICANCiAgICAzKSBEaWFncmFtIGluIDMuNC4gIEl0
IHdhc24ndCBpbW1lZGlhdGVseSBvYnZpb3VzIHRvIG1lIHRoYXQgdGhlIHZlcnRpY2FsIGxpbmVz
DQogICAgaW4gdGhlIGxpbmVkIHVwIHdpdGggY29ubmVjdGlvbnMgKGEpIGFuZCAoYikuICBJJ20g
bm90IHN1cmUgd2hldGhlciBpdCBpcyB3b3J0aA0KICAgIGFkZGluZyBhIGNvbW1lbnQgdG8gbWFr
ZSB0aGlzIG1vcmUgZXhwbGljaXQuICBJIGZpZ3VyZWQgaXQgb3V0IHdoaWxzdCByZWFkaW5nDQog
ICAgdGhlIHRleHQgYmVsb3csIHBlcmhhcHMgbW9zdCBvdGhlciByZWFkZXJzIHdvdWxkIGFsc28g
ZG8gc28uDQogICAgDQogICAgNCkgU2VjdGlvbiAzLjQsIGJvdHRvbSBvZiBwYWdlIDcsICJtdXN0
IGJlIHNlbnQgd2l0aGluIChiKSIgLT4gIk1VU1QgYmUgc2VudA0KICAgIHdpdGhpbiAoYikiDQog
ICAgDQogICAgNSkgU2VjdGlvbiAzLjQ6DQogICAgICAgbyAgUlBDcyBtb2RpZnktc3Vic2NyaXB0
aW9uLCByZXN5bmMtc3Vic2NyaXB0aW9uIGFuZCBkZWxldGUtDQogICAgICAgICAgc3Vic2NyaXB0
aW9uIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIHNhbWUgUkVTVENPTkYgdXNlcm5hbWUNCiAgICAg
ICAgICBbUkZDODA0MF0gd2hvIGRpZCB0aGUgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiwgb3IgYnkg
YSBSRVNUQ09ORg0KICAgICAgICAgIHVzZXJuYW1lIHdpdGggdGhlIHJlcXVpcmVkIGFkbWluaXN0
cmF0aXZlIHBlcm1pc3Npb25zLiAgVGhlIGxhdHRlcg0KICAgICAgICAgIGFsc28gaGFzIGFjY2Vz
cyB0byB0aGUga2lsbC1zdWJzY3JpcHRpb24gUlBDLg0KICAgIA0KICAgIEp1c3QgdG8gY2hlY2ss
IGlzIGl0IHRydWUgdGhhdCBhbnkgUkVTVENPTkYgdXNlcm5hbWUgd2l0aCB0aGUgcmVxdWlyZWQN
CiAgICBwZXJtaXNzaW9ucyBpcyBhbGxvd2VkIHRvIGludm9rZSB0aGUgImRlbGV0ZS1zdWJzY3Jp
cHRpb24iIFJQQz8gIE9yIHNob3VsZCB0aGlzDQogICAgYmUgcmVzdHJpY3RlZCB0byBzYW1lIFJF
U1RDT05GIHVzZXJuYW1lPyAgSW4gZmFjdCwgSSB3YXMgd29uZGVyaW5nIHdoZXRoZXIgYW4NCiAg
ICBhZG1pbmlzdHJhdG9yIHNob3VsZCBiZSBhbGxvd2VkIHRvIGludm9rZSBtb2RpZnktc3Vic2Ny
aXB0aW9uIG9yDQogICAgcmVzeW5jLXN1YnNjcmlwdGlvbiwgb3Igd2hldGhlciB0aGV5IHNob3Vs
ZCBiZSByZXN0cmljdGVkIHRvIGtpbGwtc3Vic2NyaXB0aW9uDQogICAgb25seT8NCiAgICANCiAg
ICA2KSBTZWN0aW9uIDQgaXMgdW5jbGVhciB0byBtZToNCiAgICANCiAgICAgLSBUaGUgcGFyYWdy
YXBoIHN0YXJ0aW5nICJ0YWtlIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gInByaW9yaXR5IiAu
Li4iDQogICAgIHN0YXRlcyB0aGF0IHRoZSAiZHNjcCIgZmllbGQgaXMgY29waWVkIGludG8gdGhl
IEhUVFAyIHN0cmVhbSBwcmlvcml0eSwgYnV0IEkNCiAgICAgY291bGRuJ3QgZmluZCBzdWNoIGEg
ZmllbGQgaW4gc2VjdGlvbiA1LjMgb2YgUkZDNzU0MC4gIEhlbmNlLCBJIHdhcyB3b25kZXJpbmcN
CiAgICAgd2hldGhlciB0aGlzIHBhcmFncmFwaCBzaG91bGRuJ3QgaW5zdGVhZCBiZSBzdGF0aW5n
IHRoZSB0aGUgIndlaWdodGluZyIgZmllbGQNCiAgICAgaXMgY29waWVkIGludG8gdGhlIEhUVFAy
IHN0cmVhbSBwcmlvcml0eSBoZWFkZXI/DQogICAgDQogICAgRS5nLg0KICAgIE9MRDoNCiAgICAg
ICBvICB0YWtlIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gInByaW9yaXR5IiwgYXMgc3BlY2lm
aWVkIGJ5IHRoZQ0KICAgICAgICAgICJkc2NwIiBsZWFmIG5vZGUgaW4NCiAgICAgICAgICBbSS1E
LmRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnNdLCBhbmQgY29weSBp
dA0KICAgICAgICAgIGludG8gdGhlIEhUVFAyIHN0cmVhbSBwcmlvcml0eSwgW1JGQzc1NDBdIHNl
Y3Rpb24gNS4zLCBhbmQNCiAgICANCiAgICBORVc6DQogICAgICAgbyAgdGFrZSBhbnkgZXhpc3Rp
bmcgc3Vic2NyaXB0aW9uICJwcmlvcml0eSIsIGFzIHNwZWNpZmllZCBieSB0aGUNCiAgICAgICAg
ICAid2VpZ2h0aW5nIiBsZWFmIG5vZGUgaW4NCiAgICAgICAgICBbSS1ELmRyYWZ0LWlldGYtbmV0
Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnNdLCBhbmQgY29weSBpdA0KICAgICAgICAgIGlu
dG8gdGhlIEhUVFAyIHN0cmVhbSB3ZWlnaHQsIFtSRkM3NTQwXSBzZWN0aW9uIDUuMywgYW5kDQog
ICAgDQogICAgVGhlcmUgaXMgYWxzbyBubyBtZW50aW9uIG9mIGhvdyB0aGUgIkUiIChFeGNsdXNp
dmUpIGJpdCBzaG91bGQgYmUgc2V0IGluIHRoZQ0KICAgIEhUVFAyIHN0cmVhbSBoZWFkZXJzLiAg
SXMgdGhpcyBhbiBvbWlzc2lvbj8NCiAgICANCiAgICA3KSBTZWN0aW9uIDYgZG9lc24ndCBjb250
YWluIGFueSBZQU5HIFRyZWUgb3V0cHV0LiAgUHJvYmFibHkgdGltZSB0byBwdXQgdGhhdA0KICAg
IGluLCBidXQgSSB3b3VsZCBzdWdnZXN0IG5vdCBwdXR0aW5nIGluIHRoZSBlbnRpcmUgdHJlZSBv
dXRwdXQsIGp1c3QgdGhlDQogICAgcmVsZXZhbnQgc25pcHBldHMuICBJZiB5b3Ugd2FudCB0byBp
bmNsdWRlIHRoZSBmdWxsIHRyZWUgb3V0cHV0IHRoZW4gSSB3b3VsZA0KICAgIHN1Z2dlc3QgcHV0
dGluZyBpbiBhbiBhcHBlbmRpeCBpbnN0ZWFkLiAgVGhlIHRleHQgaW4gdGhpcyBzZWN0aW9uIGRl
c2NyaWJpbmcNCiAgICB0aGUgWUFORyBtb2RlbCBuZWVkcyB0byBiZSBmaXhlZCBzaW5jZSB0aGUg
WUFORyBtb2R1bGUgZG9lc24ndCBhY3R1YWxseSBkZWZpbmUNCiAgICBhbnkgaWRlbnRpdGllcy4N
CiAgICANCiAgICA4KSBTZWN0aW9uIDcsIFlBTkcgbW9kdWxlIGNvbW1lbnRzDQogICAgDQogICAg
SnVzdCBuaXRzOg0KICAgIA0KICAgIDguMSkgQ2hlY2sgbGluZSBsZW5ndGggb2YgdGhlIGZpbGUs
IGl0IGxvb2tzIGxpa2UgaXQgZ29lcyBvdmVyIDY5IGNoYXJhY3RlcnMuDQogICAgIC0gSW4gcGFy
dGljdWxhciwgdGhlIG5hbWVzcGFjZSBzdGF0ZW1lbnQgbWlnaHQgbmVlZCB0byBiZSBzcGxpdC4N
CiAgICAgLSBUaGUgbW9kdWxlIGRlc2NyaXB0aW9uIHRleHQgaW5kZW50YXRpb24gbG9va3Mgb2Zm
IG9uIHRoZSBmaXJzdCBsaW5lLCBhbmQNCiAgICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmUtZmxv
d2VkLiAtIFNvbWUgb2YgdGhlIG90aGVyIGRlc2NyaXB0aW9ucyBsb29rIHdpZGUuDQogICAgDQog
ICAgOC4yKSBUaGUgZGVzY3JpcHRpb24gZm9yICJzdWJzY3JpcHRpb24tbW9kaWZpZWQiIGRvZXNu
J3QgcXVpdGUgc2NhbiAoYXMgaXQgZ29lcw0KICAgIG92ZXIgdGhlIGxpbmUgYnJlYWspLg0KICAg
IA0KICAgIDkpIE9uZSBvZiB0aGUgZmlsdGVyIGV4YW1wbGVzIGFwcGVuZGl4IEEuMyBpcyBjbGVh
cmx5IG92ZXIgNzIgY2hhcmFjdGVycywNCiAgICBzdWdnZXN0IHNwbGl0aW5nLg0KICAgIA0KICAg
IFRoYW5rcywNCiAgICBSb2INCiAgICANCiAgICANCg0K


From nobody Mon Jan  7 12:23:54 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2601212D4F2 for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 12:23:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.765
X-Spam-Level: 
X-Spam-Status: No, score=-2.765 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=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=juniper.net
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 Y26fCYT4m2iA for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 12:23:50 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 DBE5912008A for <netconf@ietf.org>; Mon,  7 Jan 2019 12:23:49 -0800 (PST)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x07KM03i017891; Mon, 7 Jan 2019 12:23:44 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=OPavGDsYNwGA8/mtJPYDzoCe/5XCDHVAocMXmbXGlow=; b=r1hopya0hqWrsc62gL3ahu0+CcDEg1El50H1DvPVyDQVpvMwRMRJIyBGn17QOdUwTcv4 v06KLBHlAF/B/Vg5g+uO7LiP8mUgTbh7CdadT2X+RX94PXmMEAXAduk1KhR91/Sh/wuj oJfPa2zZkeJjA6gnmjWrfhJWQRQYQ5J+cWj+orGwBxXGuulSrwNFYNztHw4H3X3MkXiz Q541qs+NjuWw0978G8J2bTlMpXTnQNbYSJCGfDBbOh/+RWbln02oRS1m/UA6/WEHOc/d osvfk2pgsfUScX/iaf+DyDGZkpdeqis8d/C9MUDzaE2/MsEQw81zcRFSH79ljMd4P4pP 5Q== 
Received: from nam05-by2-obe.outbound.protection.outlook.com (mail-by2nam05lp2053.outbound.protection.outlook.com [104.47.50.53]) by mx0a-00273201.pphosted.com with ESMTP id 2pv4pngt9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 07 Jan 2019 12:23:44 -0800
Received: from DM6PR05MB4665.namprd05.prod.outlook.com (20.176.109.202) by DM6PR05MB5177.namprd05.prod.outlook.com (20.177.223.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.10; Mon, 7 Jan 2019 20:23:42 +0000
Received: from DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e]) by DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e%2]) with mapi id 15.20.1516.010; Mon, 7 Jan 2019 20:23:42 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "Eric Voit (evoit)" <evoit@cisco.com>, Andy Bierman <andy@yumaworks.com>,  Netconf <netconf@ietf.org>, Alexander Clemm <alexander.clemm@huawei.com>
Thread-Topic: [Netconf] Invalid when-stmts in yang-push
Thread-Index: AQHUh2x8oOOmxCDRQ0yQiBTrSu06mKVlzmOAgAF+SoCAAAGcgIA83M6A
Date: Mon, 7 Jan 2019 20:23:42 +0000
Message-ID: <B01D40F7-31A3-42C7-9F4C-8C4373ED5F1E@juniper.net>
References: <CABCOCHRAa91=S2fx7+gZZwZiNq5byC7HSoR4Sm+Ogk7GMKK0Vg@mail.gmail.com> <CABCOCHTEQ9B31S9V6Kv+XuE4ZRNXNx1wQeYeJ06pvJZhb87taA@mail.gmail.com> <CABCOCHSBoXYtUcOPJqNkUvzx2GFX9w5=-N1J66sz4m8S=HFFtg@mail.gmail.com> <47f53bf89c404a04a837ea5875b04990@XCH-RTP-013.cisco.com>
In-Reply-To: <47f53bf89c404a04a837ea5875b04990@XCH-RTP-013.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM6PR05MB5177; 6:GVIuOx8OBPJeFPW9773sWNBMFKdDSMUYI6F1kLOXDrxWHOqjzk6s/JXJdF61j6r0IkxH5EfREbzHlVq+PYfUMqF2TkQ7Swc1e0NpqmPDZD6mlR9AlRk688A/j1Ng8H3wKWSKhuAUdWZiQbnjOQIZuz9D48TMg+ZNy/1nwM21MwVnc6dTPuVU/QR4+uuK1AlhpBcMtPnIxXTLvjJrU285nx5SBHbb9vKCRk3Ay1+EVpJHLbfc/NJCi8Uh0+dkS1NbBiknssOItS1BrQ1la34ouDyP2PtDi7bGyqMzE14NXdIJXDXfa/8yX0XNGzxHzwZePlUrsflfGOxRLx0uJEY9bEGkY2EjXA+IRBn+7EiZwFlhDeVIMtYtIHxGg3zwNIp5BpzfbaHnypht6ViTeuu9VjikfMtVcQ0sAM+DR8UGRB70+uJjb2tyKa25aBCuvFnoDS5/6C0feYoYzNWHHtMi7g==; 5:xscYZKQmkzmCSPm+WfDQ07d2O4Zc+xw5KX1W+s+1gPSTPWlg8cV8JPt41W5rsEfZEwzZJE0O/kTQ61Y8l6Ml95+EClj1AlyRk1pqOW6ez/mjbfcnwmZBn0ehRML0qpIMxbRdgyKU0QgJehLemqXFkM+AhN/euR4jQrIUIurq8DoKcsI4E7FAPiSaTmB9e7IXpBIkmQjeFRy+tSVGuzmB3g==; 7:z06PeRGQBeMM3nZvlJED1PQWlMQnXBkTVQN7H0OFi0tfLmAlO728xwwrbA25pvNprCaH7eJ/fEX97FIGebjv/lgFH3qUNvhv7KCOygnvL2bIlm+ngzCrxA9zAOCd0QATp4M1CxCDf+p4Bw0rFju4gQ==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: f47b0e59-3d02-4de9-1a3b-08d674de0475
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB5177; 
x-ms-traffictypediagnostic: DM6PR05MB5177:
x-microsoft-antispam-prvs: <DM6PR05MB5177E1618620B1CAEE7132E5A5890@DM6PR05MB5177.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(3002001)(3231475)(944501520)(52105112)(93006095)(93001095)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:DM6PR05MB5177; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB5177; 
x-forefront-prvs: 0910AAF391
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(346002)(136003)(396003)(39860400002)(199004)(189003)(8936002)(9326002)(71200400001)(8676002)(81166006)(81156014)(86362001)(93886005)(53936002)(2906002)(105586002)(58126008)(6246003)(110136005)(236005)(97736004)(316002)(3846002)(99286004)(14454004)(36756003)(106356001)(6116002)(6436002)(11346002)(486006)(6506007)(2616005)(446003)(476003)(229853002)(186003)(6486002)(102836004)(6346003)(54896002)(26005)(6306002)(33656002)(82746002)(6512007)(478600001)(256004)(14444005)(7736002)(53546011)(76176011)(25786009)(66066001)(83716004)(5660300001)(71190400001)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB5177; H:DM6PR05MB4665.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: uJ+3EknjAIK07gS+8JMe/bEcurvteCBBuQZpfOkI+YNfxdsIC5lbMqaG7ccq5q5gpkNMmSXEDNcJr7kaKyzyFoB8llNrglwEsEzJfAEPAa0RveKr/ZRbSj+lyX+xX6sqrPc1AuQK1ZS37k1kc6FLJrNas8MLJx16xwJq2oZaltLdK3AyDCVomczv/491Llv/AlJ2tt/VSL49ONwxR6yBeMhUUbhaVdkSA9+4Cq/9aiknMveOAjMXGhjJqeNY840spc0YekcsafONCccNvMGTNMzKcIx2TT4e11rzWw4bCKpyRH2cyMYXJzMTG57IWcwA
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_B01D40F731A342C79F4C8C4373ED5F1Ejunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: f47b0e59-3d02-4de9-1a3b-08d674de0475
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2019 20:23:42.4708 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB5177
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-07_09:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901070169
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/hDGvIM5Mvkj8QgVXHWX7onQr1H8>
Subject: Re: [Netconf] Invalid when-stmts in yang-push
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 20:23:53 -0000

--_000_B01D40F731A342C79F4C8C4373ED5F1Ejunipernet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleCwNCg0KSGF2ZSB5b3UgaGFkIGEgY2hhbmNlIHRvIGxvb2sgYXQgdGhpcyBpc3N1ZSB5
ZXQ/ICBUaGUgYXNzaWduZWQgWUFORyBEb2N0b3Igc2F5cyB0aGF0IHRoZXkgaW1tZWRpYXRlbHkg
c3R1bWJsZWQgb24gdGhpcyBlcnJvciBhbmQgaXMgd2FpdGluZyBmb3IgYW4gdXBkYXRlIHdpdGgg
YSB2YWxpZCBtb2R1bGUgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgcmV2aWV3Lg0KDQpQUzog
QWxsIGF1dGhvcnMgc2hvdWxkIGludGVncmF0ZSB0aGUgdmFsaWRhdGlvbiBvZiBZQU5HIG1vZHVs
ZXMgYW5kIGV4YW1wbGVzIGFzIHBhcnQgb2YgdGhlIGB4bWwycmZjYCBidWlsZCBwcm9jZXNzLiAg
QWxzbyByZWNvbW1lbmRlZCBpcyBkeW5hbWljIGdlbmVyYXRpb24gb2YgdGhlIHRyZWUgZGlhZ3Jh
bXMsIGFuZCBleGVjdXRpb24gb2YgdGhlIGBpZG5pdHNgIHRvb2wuICBUaGUgdGltZSBpdCB0YWtl
cyB0byBzZXQgdGhpcyB1cCBpbiB0aGUgYmVnaW5uaW5nIGlzIGVhc2lseSByZWNvdmVyZWQgb3Zl
ciB0aGUgY291cnNlIG9mIHRoZSBkcmFmdOKAmXMgbGlmZXRpbWUuICBSZW1lbWJlciwgaXTigJlz
IG5vdCBqdXN0IHlvdXIgdGltZSwgYnV0IGFsc28gdGhlIHRpbWUgb2YgZXZlcnlvbmUgZWxzZSB0
aGF0IHJ1bnMgaW50byB0aGVzZSBpc3N1ZXMsIGFuZCB0aGVuIHRoZSBzbG93IHJlc3RhcnQgdGlt
ZXMgKHRoaXMgdGhyZWFkIGlzIGFuIGV4YW1wbGUgb2YgdGhhdCkuDQoNCktlbnQgLy8gc2hlcGhl
cmQvY2hhaXINCg0KDQpPbiAxMS8yOS8xOCwgNDo1OCBQTSwgIk5ldGNvbmYgb24gYmVoYWxmIG9m
IEVyaWMgVm9pdCAoZXZvaXQpIiA8bmV0Y29uZi1ib3VuY2VzQGlldGYub3JnPG1haWx0bzpuZXRj
b25mLWJvdW5jZXNAaWV0Zi5vcmc+IG9uIGJlaGFsZiBvZiBldm9pdEBjaXNjby5jb208bWFpbHRv
OmV2b2l0QGNpc2NvLmNvbT4+IHdyb3RlOg0KDQpUaGFua3MgQW5keS4gICBBZGRpbmcgQWxleCB0
byBtYWtlIHRoZSBjaGFuZ2UuDQoNCkVyaWMNCg0KRnJvbTogTmV0Y29uZiA8bmV0Y29uZi1ib3Vu
Y2VzQGlldGYub3JnPiBPbiBCZWhhbGYgT2YgQW5keSBCaWVybWFuDQpTZW50OiBUaHVyc2RheSwg
Tm92ZW1iZXIgMjksIDIwMTggNDo1MiBQTQ0KVG86IE5ldGNvbmYgPG5ldGNvbmZAaWV0Zi5vcmc+
DQpTdWJqZWN0OiBSZTogW05ldGNvbmZdIEludmFsaWQgd2hlbi1zdG10cyBpbiB5YW5nLXB1c2gN
Cg0KSGksDQoNCkkgdGhpbmsgdGhpcyBkaWZmIGZpeGVzIHRoZSB5YW5nLXB1c2ggbW9kdWxlLg0K
SXQgbG9va3MgbGlrZSB0aGUgYXVnbWVudCB0byBtb2RpZnktc3Vic2NyaXB0aW9uIHVzZWQgdGhl
IHdyb25nIGdyb3VwaW5nDQpiZWNhdXNlIHRoZSAnZGF0YXN0b3JlJyBsZWFmIHdhcyBtaXNzaW5n
Lg0KDQozNjVjMzY1DQo8ICAgICAgIHdoZW4gIi4uL3NuOnRhcmdldC95cDpkYXRhc3RvcmUiOw0K
LS0tDQo+ICAgICAgIHdoZW4gInlwOmRhdGFzdG9yZSI7DQo1NzJjNTcyDQo8ICAgICB3aGVuICJz
bjp0YXJnZXQveXA6ZGF0YXN0b3JlIjsNCi0tLQ0KPiAgICAgd2hlbiAieXA6ZGF0YXN0b3JlIjsN
CjYxNmM2MTYNCjwgICAgIHdoZW4gInNuOnRhcmdldC95cDpkYXRhc3RvcmUiOw0KLS0tDQo+ICAg
ICB3aGVuICJ5cDpkYXRhc3RvcmUiOw0KNjMyYzYzMg0KPCAgICAgICB1c2VzIHNlbGVjdGlvbi1m
aWx0ZXItb2JqZWN0czsNCi0tLQ0KPiAgICAgICB1c2VzIGRhdGFzdG9yZS1jcml0ZXJpYTsNCjgx
NmM4MTYNCjwgICAgIHdoZW4gInNuOnRhcmdldC95cDpkYXRhc3RvcmUiOw0KLS0tDQo+ICAgICB3
aGVuICJ5cDpkYXRhc3RvcmUiOw0KDQoNCkFuZHkNCg0KDQoNCk9uIFdlZCwgTm92IDI4LCAyMDE4
IGF0IDM6MDMgUE0gQW5keSBCaWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb208bWFpbHRvOmFuZHlA
eXVtYXdvcmtzLmNvbT4+IHdyb3RlOg0KDQpPbiBXZWQsIE5vdiAyOCwgMjAxOCBhdCAyOjQ4IFBN
IEFuZHkgQmllcm1hbiA8YW5keUB5dW1hd29ya3MuY29tPG1haWx0bzphbmR5QHl1bWF3b3Jrcy5j
b20+PiB3cm90ZToNCkhpLA0KDQpEdXJpbmcgaW1wbGVtZW50YXRpb24gb2YgeWFuZy1wdXNoLTIw
IG91ciBkZXZlbG9wZXIgZm91bmQgdGhhdA0KdGhlIHdoZW4tc3RtdHMgZm9yIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24gYXJlIGFsd2F5cyBmYWxzZS4NCg0KDQpFLmcuIGxpbmUgMzY1Og0KICAgIGNo
b2ljZSB1cGRhdGUtdHJpZ2dlciB7DQogICAgICB3aGVuICIuLi9zbjp0YXJnZXQveXA6ZGF0YXN0
b3JlIjsNCg0KVGhlIG5vZGUgJ3RhcmdldCcgaXMgYSBjaG9pY2UuIFRoZSBub2RlICdkYXRhc3Rv
cmUnIGlzIGEgY2FzZS4NClNpbmNlIHRoZSB3aGVuLXN0bXQgaXMgbG9va2luZyBmb3IgZGF0YSBu
b2RlcyBub3Qgc2NoZW1hIG5vZGVzLA0KdGhlIG5vZGUtc2V0IGlzIGFsd2F5cyBlbXB0eS4NCg0K
DQpUaGVyZSBhcmUgNCBvY2N1cnJlbmNlczoNCg0KV2FybmluZzogbm8gY2hpbGQgbm9kZSAnaWV0
Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6dGFyZ2V0JyBmb3VuZCBmb3IgcGFyZW50ICdpZXRm
LXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczpzdWJzY3JpcHRpb25zJw0KWFBhdGg6IC4uL3NuOnRh
cmdldC95cDpkYXRhc3RvcmUNCmlldGYteWFuZy1wdXNoLnlhbmc6MzY1LjE1OiB3YXJuaW5nKDEw
MzIpOiBubyBjaGlsZCBub2RlIGF2YWlsYWJsZQ0KDQpXYXJuaW5nOiBubyBjaGlsZCBub2RlICdp
ZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczp0YXJnZXQnIGZvdW5kIGZvciBwYXJlbnQgJ2ll
dGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOmlucHV0Jw0KWFBhdGg6IHNuOnRhcmdldC95cDpk
YXRhc3RvcmUNCmlldGYteWFuZy1wdXNoLnlhbmc6NTcyLjEwOiB3YXJuaW5nKDEwMzIpOiBubyBj
aGlsZCBub2RlIGF2YWlsYWJsZQ0KDQpXYXJuaW5nOiBubyBjaGlsZCBub2RlICdpZXRmLXN1YnNj
cmliZWQtbm90aWZpY2F0aW9uczp0YXJnZXQnIGZvdW5kIGZvciBwYXJlbnQgJ2lldGYtc3Vic2Ny
aWJlZC1ub3RpZmljYXRpb25zOmlucHV0Jw0KWFBhdGg6IHNuOnRhcmdldC95cDpkYXRhc3RvcmUN
CmlldGYteWFuZy1wdXNoLnlhbmc6NjE2LjEwOiB3YXJuaW5nKDEwMzIpOiBubyBjaGlsZCBub2Rl
IGF2YWlsYWJsZQ0KDQpXYXJuaW5nOiBubyBjaGlsZCBub2RlICdpZXRmLXN1YnNjcmliZWQtbm90
aWZpY2F0aW9uczp0YXJnZXQnIGZvdW5kIGZvciBwYXJlbnQgJ2lldGYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zOnN1YnNjcmlwdGlvbicNClhQYXRoOiBzbjp0YXJnZXQveXA6ZGF0YXN0b3JlDQpp
ZXRmLXlhbmctcHVzaC55YW5nOjgxNi4xMDogd2FybmluZygxMDMyKTogbm8gY2hpbGQgbm9kZSBh
dmFpbGFibGUNCg0KDQoNCnB5YW5nIGlzIGFsc28gcmVwb3J0aW5nIHRoZXNlIHdhcm5pbmdzOg0K
DQppZXRmLXlhbmctcHVzaC55YW5nOjM2NTogd2FybmluZzogWFBhdGggZm9yICIuLi9zbjp0YXJn
ZXQveXA6ZGF0YXN0b3JlIiBkb2VzIG5vdCBleGlzdA0KaWV0Zi15YW5nLXB1c2gueWFuZzo1NzI6
IHdhcm5pbmc6IFhQYXRoIGZvciAic246dGFyZ2V0L3lwOmRhdGFzdG9yZSIgZG9lcyBub3QgZXhp
c3QNCmlldGYteWFuZy1wdXNoLnlhbmc6NjE2OiB3YXJuaW5nOiBYUGF0aCBmb3IgInNuOnRhcmdl
dC95cDpkYXRhc3RvcmUiIGRvZXMgbm90IGV4aXN0DQppZXRmLXlhbmctcHVzaC55YW5nOjgxNjog
d2FybmluZzogWFBhdGggZm9yICJzbjp0YXJnZXQveXA6ZGF0YXN0b3JlIiBkb2VzIG5vdCBleGlz
dA0KDQoNCkFuZHkNCg0K

--_000_B01D40F731A342C79F4C8C4373ED5F1Ejunipernet_
Content-Type: text/html; charset="utf-8"
Content-ID: <2406C780F0867C45BE120B595C310660@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy
IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3Jt
YWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXBy
aW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQph
OnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAubXNv
bm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6
bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47
DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQt
c2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUx
OQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJy
aSIsc2Fucy1zZXJpZjsNCglmb250LXZhcmlhbnQ6bm9ybWFsICFpbXBvcnRhbnQ7DQoJY29sb3I6
d2luZG93dGV4dDsNCgl0ZXh0LXRyYW5zZm9ybTpub25lOw0KCXRleHQtZGVjb3JhdGlvbjpub25l
IG5vbmU7DQoJdmVydGljYWwtYWxpZ246YmFzZWxpbmU7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNv
LXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3Jk
U2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGlu
IDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9z
dHlsZT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGkgQWxleCw8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkhhdmUgeW91IGhhZCBhIGNoYW5jZSB0byBsb29rIGF0
IHRoaXMgaXNzdWUgeWV0PyZuYnNwOyBUaGUgYXNzaWduZWQgWUFORyBEb2N0b3Igc2F5cyB0aGF0
IHRoZXkgaW1tZWRpYXRlbHkgc3R1bWJsZWQgb24gdGhpcyBlcnJvciBhbmQgaXMgd2FpdGluZyBm
b3IgYW4gdXBkYXRlIHdpdGggYSB2YWxpZCBtb2R1bGUgYmVmb3JlIHByb2NlZWRpbmcgd2l0aCB0
aGUgcmV2aWV3LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+UFM6
IEFsbCBhdXRob3JzIHNob3VsZCBpbnRlZ3JhdGUgdGhlIHZhbGlkYXRpb24gb2YgWUFORyBtb2R1
bGVzIGFuZCBleGFtcGxlcyBhcyBwYXJ0IG9mIHRoZSBgeG1sMnJmY2AgYnVpbGQgcHJvY2Vzcy4m
bmJzcDsgQWxzbyByZWNvbW1lbmRlZCBpcyBkeW5hbWljIGdlbmVyYXRpb24gb2YgdGhlIHRyZWUg
ZGlhZ3JhbXMsIGFuZCBleGVjdXRpb24gb2YgdGhlIGBpZG5pdHNgDQogdG9vbC4mbmJzcDsgVGhl
IHRpbWUgaXQgdGFrZXMgdG8gc2V0IHRoaXMgdXAgaW4gdGhlIGJlZ2lubmluZyBpcyBlYXNpbHkg
cmVjb3ZlcmVkIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGUgZHJhZnTigJlzIGxpZmV0aW1lLiZuYnNw
OyBSZW1lbWJlciwgaXTigJlzIG5vdCBqdXN0IHlvdXIgdGltZSwgYnV0IGFsc28gdGhlIHRpbWUg
b2YgZXZlcnlvbmUgZWxzZSB0aGF0IHJ1bnMgaW50byB0aGVzZSBpc3N1ZXMsIGFuZCB0aGVuIHRo
ZSBzbG93IHJlc3RhcnQgdGltZXMgKHRoaXMNCiB0aHJlYWQgaXMgYW4gZXhhbXBsZSBvZiB0aGF0
KS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPktlbnQgLy8gc2hl
cGhlcmQvY2hhaXI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+T24gMTEvMjkvMTgsIDQ6NTggUE0sICZxdW90O05ldGNvbmYgb24gYmVoYWxmIG9mIEVy
aWMgVm9pdCAoZXZvaXQpJnF1b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86bmV0Y29uZi1ib3VuY2Vz
QGlldGYub3JnIj5uZXRjb25mLWJvdW5jZXNAaWV0Zi5vcmc8L2E+IG9uIGJlaGFsZiBvZg0KPGEg
aHJlZj0ibWFpbHRvOmV2b2l0QGNpc2NvLmNvbSI+ZXZvaXRAY2lzY28uY29tPC9hPiZndDsgd3Jv
dGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5UaGFua3MgQW5keS4mbmJzcDsmbmJzcDsgQWRkaW5nIEFsZXggdG8gbWFrZSB0aGUgY2hhbmdl
LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KRXJpYzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2
IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6
MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiBOZXRjb25mICZsdDtuZXRjb25mLWJvdW5j
ZXNAaWV0Zi5vcmcmZ3Q7IDxiPk9uIEJlaGFsZiBPZg0KPC9iPkFuZHkgQmllcm1hbjxicj4NCjxi
PlNlbnQ6PC9iPiBUaHVyc2RheSwgTm92ZW1iZXIgMjksIDIwMTggNDo1MiBQTTxicj4NCjxiPlRv
OjwvYj4gTmV0Y29uZiAmbHQ7bmV0Y29uZkBpZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0Ojwv
Yj4gUmU6IFtOZXRjb25mXSBJbnZhbGlkIHdoZW4tc3RtdHMgaW4geWFuZy1wdXNoPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpLDxvOnA+PC9v
OnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB0aGluayB0aGlzIGRpZmYg
Zml4ZXMgdGhlIHlhbmctcHVzaCBtb2R1bGUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JdCBsb29rcyBsaWtlIHRoZSBhdWdtZW50IHRvIG1vZGlm
eS1zdWJzY3JpcHRpb24gdXNlZCB0aGUgd3JvbmcgZ3JvdXBpbmc8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmJlY2F1c2UgdGhlICdkYXRhc3RvcmUn
IGxlYWYgd2FzIG1pc3NpbmcuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4zNjVjMzY1PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbHQ7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
d2hlbiAmcXVvdDsuLi9zbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7d2hlbiAmcXVvdDt5cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj41NzJjNTcyPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbHQ7Jm5ic3A7ICZuYnNw
OyAmbmJzcDt3aGVuICZxdW90O3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tLS08bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwO3doZW4gJnF1b3Q7eXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+NjE2YzYxNjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0OyZuYnNwOyAmbmJzcDsg
Jm5ic3A7d2hlbiAmcXVvdDtzbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ICZuYnNw
OyAmbmJzcDt3aGVuICZxdW90O3lwOmRhdGFzdG9yZSZxdW90Ozs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjYzMmM2MzI8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZsdDsmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDt1c2VzIHNlbGVjdGlvbi1maWx0ZXItb2JqZWN0czs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0tLTxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO3VzZXMgZGF0YXN0b3JlLWNyaXRlcmlhOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ODE2YzgxNjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0OyZuYnNwOyAmbmJzcDsgJm5ic3A7
d2hlbiAmcXVvdDtzbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz
cDt3aGVuICZxdW90O3lwOmRhdGFzdG9yZSZxdW90Ozs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFuZHk8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24g
V2VkLCBOb3YgMjgsIDIwMTggYXQgMzowMyBQTSBBbmR5IEJpZXJtYW4gJmx0OzxhIGhyZWY9Im1h
aWx0bzphbmR5QHl1bWF3b3Jrcy5jb20iPmFuZHlAeXVtYXdvcmtzLmNvbTwvYT4mZ3Q7IHdyb3Rl
OjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0
O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJn
aW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMjo0OCBQ
TSBBbmR5IEJpZXJtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzphbmR5QHl1bWF3b3Jrcy5jb20iIHRh
cmdldD0iX2JsYW5rIj5hbmR5QHl1bWF3b3Jrcy5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0
OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVm
dDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1
LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSw8bzpw
PjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkR1cmluZyBpbXBsZW1l
bnRhdGlvbiBvZiB5YW5nLXB1c2gtMjAgb3VyIGRldmVsb3BlciBmb3VuZCB0aGF0PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj50aGUgd2hlbi1zdG10
cyBmb3IgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiBhcmUgYWx3YXlzIGZhbHNlLjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkUuZy4gbGluZSAz
NjU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7ICZuYnNwOyBjaG9pY2UgdXBkYXRlLXRyaWdnZXIgezxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgd2hlbiAmcXVvdDsuLi9zbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBu
b2RlICd0YXJnZXQnIGlzIGEgY2hvaWNlLiBUaGUgbm9kZSAnZGF0YXN0b3JlJyBpcyBhIGNhc2Uu
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5TaW5j
ZSB0aGUgd2hlbi1zdG10IGlzIGxvb2tpbmcgZm9yIGRhdGEgbm9kZXMgbm90IHNjaGVtYSBub2Rl
cyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnRo
ZSBub2RlLXNldCBpcyBhbHdheXMgZW1wdHkuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlcmUgYXJlIDQgb2NjdXJyZW5jZXM6PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5X
YXJuaW5nOiBubyBjaGlsZCBub2RlICdpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczp0YXJn
ZXQnIGZvdW5kIGZvciBwYXJlbnQgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOnN1YnNj
cmlwdGlvbnMnPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5YUGF0aDogLi4vc246dGFyZ2V0L3lwOmRhdGFzdG9yZTxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+aWV0Zi15YW5nLXB1c2gueWFuZzozNjUu
MTU6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxkIG5vZGUgYXZhaWxhYmxlPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldhcm5pbmc6IG5vIGNoaWxk
IG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOnRhcmdldCcgZm91bmQgZm9yIHBh
cmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6aW5wdXQnPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5YUGF0aDogc246dGFyZ2V0L3lw
OmRhdGFzdG9yZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+aWV0Zi15YW5nLXB1c2gueWFuZzo1NzIuMTA6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxk
IG5vZGUgYXZhaWxhYmxlPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPldhcm5pbmc6IG5vIGNoaWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zOnRhcmdldCcgZm91bmQgZm9yIHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlm
aWNhdGlvbnM6aW5wdXQnPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5YUGF0aDogc246dGFyZ2V0L3lwOmRhdGFzdG9yZTxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+aWV0Zi15YW5nLXB1c2gueWFuZzo2
MTYuMTA6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxkIG5vZGUgYXZhaWxhYmxlPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldhcm5pbmc6IG5vIGNo
aWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOnRhcmdldCcgZm91bmQgZm9y
IHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6c3Vic2NyaXB0aW9uJzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+WFBhdGg6IHNu
OnRhcmdldC95cDpkYXRhc3RvcmU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPmlldGYteWFuZy1wdXNoLnlhbmc6ODE2LjEwOiB3YXJuaW5nKDEwMzIp
OiBubyBjaGlsZCBub2RlIGF2YWlsYWJsZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5weWFuZyBpcyBhbHNvIHJlcG9ydGluZyB0aGVzZSB3YXJuaW5nczo8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+aWV0
Zi15YW5nLXB1c2gueWFuZzozNjU6IHdhcm5pbmc6IFhQYXRoIGZvciAmcXVvdDsuLi9zbjp0YXJn
ZXQveXA6ZGF0YXN0b3JlJnF1b3Q7IGRvZXMgbm90IGV4aXN0PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pZXRmLXlhbmctcHVzaC55YW5nOjU3Mjog
d2FybmluZzogWFBhdGggZm9yICZxdW90O3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDsgZG9l
cyBub3QgZXhpc3Q8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPmlldGYteWFuZy1wdXNoLnlhbmc6NjE2OiB3YXJuaW5nOiBYUGF0aCBmb3IgJnF1b3Q7
c246dGFyZ2V0L3lwOmRhdGFzdG9yZSZxdW90OyBkb2VzIG5vdCBleGlzdDxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+aWV0Zi15YW5nLXB1c2gueWFu
Zzo4MTY6IHdhcm5pbmc6IFhQYXRoIGZvciAmcXVvdDtzbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1
b3Q7IGRvZXMgbm90IGV4aXN0PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+QW5keTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
Ym9keT4NCjwvaHRtbD4NCg==

--_000_B01D40F731A342C79F4C8C4373ED5F1Ejunipernet_--


From nobody Mon Jan  7 12:52:11 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 76C4F124D68 for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 12:52:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level: 
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 4hx_7NnIAsgQ for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 12:52:06 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9C9E126DBF for <netconf@ietf.org>; Mon,  7 Jan 2019 12:52:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=25676; q=dns/txt; s=iport; t=1546894326; x=1548103926; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=eh1uyKS+8ibifypaFZxPi13XwtaeYg1rXi9U5GftVKY=; b=lV21Pkhmm8tqiHErN9zudl8f7vackS3s37HC6bqRqw9e0FnS+d4UJL/r cynlI46011kK8cvDcRn+CNtGhBEWyoUo0rbXrXp6NRfpzS72cQgkdCV8A flkaPC2m0PIjECXJajcLHtpjayaDbKONosN/WFJm73pzKHuhDN3uOfGAc E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AOAABWuzNc/49dJa1iGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUwIBAQEBAQsBgQ1NKWaBAicKg3VikyOCDZdugXsLAQE?= =?us-ascii?q?shEACF4FtIjYHDQEDAQECAQECbSiFSgEBAQMBIwpRCwIBCA4DAwEBAQ4aAwI?= =?us-ascii?q?CAjAUCQgCBAESgyIBgR1cCKc2gS+EAgGGLIw/F4FAP4E4H4IXNYUhFoJSMYI?= =?us-ascii?q?mAo9QhmGLKwkCkW8YgWCQD4ligQePLQIRFIEnJgonKIEucBVlAYJBgz4BAox?= =?us-ascii?q?kATZygSiHDyuBAQGBHgEB?=
X-IronPort-AV: E=Sophos;i="5.56,451,1539648000";  d="scan'208,217";a="222148311"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Jan 2019 20:52:04 +0000
Received: from XCH-RCD-013.cisco.com (xch-rcd-013.cisco.com [173.37.102.23]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id x07Kq4lV031749 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 7 Jan 2019 20:52:04 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-RCD-013.cisco.com (173.37.102.23) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 7 Jan 2019 14:52:03 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Mon, 7 Jan 2019 14:52:03 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: Kent Watsen <kwatsen@juniper.net>, "Eric Voit (evoit)" <evoit@cisco.com>,  Andy Bierman <andy@yumaworks.com>, Netconf <netconf@ietf.org>, "Alexander Clemm" <alexander.clemm@huawei.com>
Thread-Topic: [Netconf] Invalid when-stmts in yang-push
Thread-Index: AQHUh2x/zk0bfMMCME+lG5NHch9JpaVmMviAgAF+SoCAAAGdgIA9MKAA//+0GoA=
Date: Mon, 7 Jan 2019 20:52:03 +0000
Message-ID: <A4F20517-7CFB-44F7-A340-B9123B76B30D@cisco.com>
References: <CABCOCHRAa91=S2fx7+gZZwZiNq5byC7HSoR4Sm+Ogk7GMKK0Vg@mail.gmail.com> <CABCOCHTEQ9B31S9V6Kv+XuE4ZRNXNx1wQeYeJ06pvJZhb87taA@mail.gmail.com> <CABCOCHSBoXYtUcOPJqNkUvzx2GFX9w5=-N1J66sz4m8S=HFFtg@mail.gmail.com> <47f53bf89c404a04a837ea5875b04990@XCH-RTP-013.cisco.com> <B01D40F7-31A3-42C7-9F4C-8C4373ED5F1E@juniper.net>
In-Reply-To: <B01D40F7-31A3-42C7-9F4C-8C4373ED5F1E@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.43]
Content-Type: multipart/alternative; boundary="_000_A4F205177CFB44F7A340B9123B76B30Dciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.37.102.23, xch-rcd-013.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/U62RQkIe260TJWnNFrWY1gaFiv0>
Subject: Re: [Netconf] Invalid when-stmts in yang-push
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 20:52:10 -0000

--_000_A4F205177CFB44F7A340B9123B76B30Dciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

RllJLCB0aGlzIGlzIGFsc28gY2F1c2luZyB2YWxpZGF0aW9uIG9mIHRoZSBleGFtcGxlcyBpbiBu
ZXRjb25mLW5vdGlmIHRvIGZhaWwgKGRvaW5nIHRoaXMgYXMgcGFydCBvZiBZRCByZXZpZXcpLg0K
DQoNCmVyciA6IFdoZW4gY29uZGl0aW9uICIuLi9pZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9u
czp0YXJnZXQvaWV0Zi15YW5nLXB1c2g6ZGF0YXN0b3JlIiBub3Qgc2F0aXNmaWVkLiAoL2lldGYt
c3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOm1vZGlmeS1zdWJzY3JpcHRpb24vaWV0Zi15YW5nLXB1
c2g6cGVyaW9kaWMpDQoNClJlZ2FyZHMsDQpSZXNoYWQuDQoNCkZyb206IE5ldGNvbmYgPG5ldGNv
bmYtYm91bmNlc0BpZXRmLm9yZz4gb24gYmVoYWxmIG9mIEtlbnQgV2F0c2VuIDxrd2F0c2VuQGp1
bmlwZXIubmV0Pg0KRGF0ZTogTW9uZGF5LCBKYW51YXJ5IDcsIDIwMTkgYXQgMzoyNCBQTQ0KVG86
ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4sICdBbmR5IEJpZXJtYW4nIDxh
bmR5QHl1bWF3b3Jrcy5jb20+LCBOZXRjb25mIDxuZXRjb25mQGlldGYub3JnPiwgQWxleGFuZGVy
IENsZW1tIDxhbGV4YW5kZXIuY2xlbW1AaHVhd2VpLmNvbT4NClN1YmplY3Q6IFJlOiBbTmV0Y29u
Zl0gSW52YWxpZCB3aGVuLXN0bXRzIGluIHlhbmctcHVzaA0KDQpIaSBBbGV4LA0KDQpIYXZlIHlv
dSBoYWQgYSBjaGFuY2UgdG8gbG9vayBhdCB0aGlzIGlzc3VlIHlldD8gIFRoZSBhc3NpZ25lZCBZ
QU5HIERvY3RvciBzYXlzIHRoYXQgdGhleSBpbW1lZGlhdGVseSBzdHVtYmxlZCBvbiB0aGlzIGVy
cm9yIGFuZCBpcyB3YWl0aW5nIGZvciBhbiB1cGRhdGUgd2l0aCBhIHZhbGlkIG1vZHVsZSBiZWZv
cmUgcHJvY2VlZGluZyB3aXRoIHRoZSByZXZpZXcuDQoNClBTOiBBbGwgYXV0aG9ycyBzaG91bGQg
aW50ZWdyYXRlIHRoZSB2YWxpZGF0aW9uIG9mIFlBTkcgbW9kdWxlcyBhbmQgZXhhbXBsZXMgYXMg
cGFydCBvZiB0aGUgYHhtbDJyZmNgIGJ1aWxkIHByb2Nlc3MuICBBbHNvIHJlY29tbWVuZGVkIGlz
IGR5bmFtaWMgZ2VuZXJhdGlvbiBvZiB0aGUgdHJlZSBkaWFncmFtcywgYW5kIGV4ZWN1dGlvbiBv
ZiB0aGUgYGlkbml0c2AgdG9vbC4gIFRoZSB0aW1lIGl0IHRha2VzIHRvIHNldCB0aGlzIHVwIGlu
IHRoZSBiZWdpbm5pbmcgaXMgZWFzaWx5IHJlY292ZXJlZCBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhl
IGRyYWZ04oCZcyBsaWZldGltZS4gIFJlbWVtYmVyLCBpdOKAmXMgbm90IGp1c3QgeW91ciB0aW1l
LCBidXQgYWxzbyB0aGUgdGltZSBvZiBldmVyeW9uZSBlbHNlIHRoYXQgcnVucyBpbnRvIHRoZXNl
IGlzc3VlcywgYW5kIHRoZW4gdGhlIHNsb3cgcmVzdGFydCB0aW1lcyAodGhpcyB0aHJlYWQgaXMg
YW4gZXhhbXBsZSBvZiB0aGF0KS4NCg0KS2VudCAvLyBzaGVwaGVyZC9jaGFpcg0KDQoNCk9uIDEx
LzI5LzE4LCA0OjU4IFBNLCAiTmV0Y29uZiBvbiBiZWhhbGYgb2YgRXJpYyBWb2l0IChldm9pdCki
IDxuZXRjb25mLWJvdW5jZXNAaWV0Zi5vcmc8bWFpbHRvOm5ldGNvbmYtYm91bmNlc0BpZXRmLm9y
Zz4gb24gYmVoYWxmIG9mIGV2b2l0QGNpc2NvLmNvbTxtYWlsdG86ZXZvaXRAY2lzY28uY29tPj4g
d3JvdGU6DQoNClRoYW5rcyBBbmR5LiAgIEFkZGluZyBBbGV4IHRvIG1ha2UgdGhlIGNoYW5nZS4N
Cg0KRXJpYw0KDQpGcm9tOiBOZXRjb25mIDxuZXRjb25mLWJvdW5jZXNAaWV0Zi5vcmc+IE9uIEJl
aGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyOSwgMjAxOCA0
OjUyIFBNDQpUbzogTmV0Y29uZiA8bmV0Y29uZkBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBbTmV0
Y29uZl0gSW52YWxpZCB3aGVuLXN0bXRzIGluIHlhbmctcHVzaA0KDQpIaSwNCg0KSSB0aGluayB0
aGlzIGRpZmYgZml4ZXMgdGhlIHlhbmctcHVzaCBtb2R1bGUuDQpJdCBsb29rcyBsaWtlIHRoZSBh
dWdtZW50IHRvIG1vZGlmeS1zdWJzY3JpcHRpb24gdXNlZCB0aGUgd3JvbmcgZ3JvdXBpbmcNCmJl
Y2F1c2UgdGhlICdkYXRhc3RvcmUnIGxlYWYgd2FzIG1pc3NpbmcuDQoNCjM2NWMzNjUNCjwgICAg
ICAgd2hlbiAiLi4vc246dGFyZ2V0L3lwOmRhdGFzdG9yZSI7DQotLS0NCj4gICAgICAgd2hlbiAi
eXA6ZGF0YXN0b3JlIjsNCjU3MmM1NzINCjwgICAgIHdoZW4gInNuOnRhcmdldC95cDpkYXRhc3Rv
cmUiOw0KLS0tDQo+ICAgICB3aGVuICJ5cDpkYXRhc3RvcmUiOw0KNjE2YzYxNg0KPCAgICAgd2hl
biAic246dGFyZ2V0L3lwOmRhdGFzdG9yZSI7DQotLS0NCj4gICAgIHdoZW4gInlwOmRhdGFzdG9y
ZSI7DQo2MzJjNjMyDQo8ICAgICAgIHVzZXMgc2VsZWN0aW9uLWZpbHRlci1vYmplY3RzOw0KLS0t
DQo+ICAgICAgIHVzZXMgZGF0YXN0b3JlLWNyaXRlcmlhOw0KODE2YzgxNg0KPCAgICAgd2hlbiAi
c246dGFyZ2V0L3lwOmRhdGFzdG9yZSI7DQotLS0NCj4gICAgIHdoZW4gInlwOmRhdGFzdG9yZSI7
DQoNCg0KQW5keQ0KDQoNCg0KT24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMzowMyBQTSBBbmR5IEJp
ZXJtYW4gPGFuZHlAeXVtYXdvcmtzLmNvbTxtYWlsdG86YW5keUB5dW1hd29ya3MuY29tPj4gd3Jv
dGU6DQoNCk9uIFdlZCwgTm92IDI4LCAyMDE4IGF0IDI6NDggUE0gQW5keSBCaWVybWFuIDxhbmR5
QHl1bWF3b3Jrcy5jb208bWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbT4+IHdyb3RlOg0KSGksDQoN
CkR1cmluZyBpbXBsZW1lbnRhdGlvbiBvZiB5YW5nLXB1c2gtMjAgb3VyIGRldmVsb3BlciBmb3Vu
ZCB0aGF0DQp0aGUgd2hlbi1zdG10cyBmb3IgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiBhcmUgYWx3
YXlzIGZhbHNlLg0KDQoNCkUuZy4gbGluZSAzNjU6DQogICAgY2hvaWNlIHVwZGF0ZS10cmlnZ2Vy
IHsNCiAgICAgIHdoZW4gIi4uL3NuOnRhcmdldC95cDpkYXRhc3RvcmUiOw0KDQpUaGUgbm9kZSAn
dGFyZ2V0JyBpcyBhIGNob2ljZS4gVGhlIG5vZGUgJ2RhdGFzdG9yZScgaXMgYSBjYXNlLg0KU2lu
Y2UgdGhlIHdoZW4tc3RtdCBpcyBsb29raW5nIGZvciBkYXRhIG5vZGVzIG5vdCBzY2hlbWEgbm9k
ZXMsDQp0aGUgbm9kZS1zZXQgaXMgYWx3YXlzIGVtcHR5Lg0KDQoNClRoZXJlIGFyZSA0IG9jY3Vy
cmVuY2VzOg0KDQpXYXJuaW5nOiBubyBjaGlsZCBub2RlICdpZXRmLXN1YnNjcmliZWQtbm90aWZp
Y2F0aW9uczp0YXJnZXQnIGZvdW5kIGZvciBwYXJlbnQgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmlj
YXRpb25zOnN1YnNjcmlwdGlvbnMnDQpYUGF0aDogLi4vc246dGFyZ2V0L3lwOmRhdGFzdG9yZQ0K
aWV0Zi15YW5nLXB1c2gueWFuZzozNjUuMTU6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxkIG5vZGUg
YXZhaWxhYmxlDQoNCldhcm5pbmc6IG5vIGNoaWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zOnRhcmdldCcgZm91bmQgZm9yIHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlm
aWNhdGlvbnM6aW5wdXQnDQpYUGF0aDogc246dGFyZ2V0L3lwOmRhdGFzdG9yZQ0KaWV0Zi15YW5n
LXB1c2gueWFuZzo1NzIuMTA6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxkIG5vZGUgYXZhaWxhYmxl
DQoNCldhcm5pbmc6IG5vIGNoaWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25z
OnRhcmdldCcgZm91bmQgZm9yIHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6
aW5wdXQnDQpYUGF0aDogc246dGFyZ2V0L3lwOmRhdGFzdG9yZQ0KaWV0Zi15YW5nLXB1c2gueWFu
Zzo2MTYuMTA6IHdhcm5pbmcoMTAzMik6IG5vIGNoaWxkIG5vZGUgYXZhaWxhYmxlDQoNCldhcm5p
bmc6IG5vIGNoaWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOnRhcmdldCcg
Zm91bmQgZm9yIHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6c3Vic2NyaXB0
aW9uJw0KWFBhdGg6IHNuOnRhcmdldC95cDpkYXRhc3RvcmUNCmlldGYteWFuZy1wdXNoLnlhbmc6
ODE2LjEwOiB3YXJuaW5nKDEwMzIpOiBubyBjaGlsZCBub2RlIGF2YWlsYWJsZQ0KDQoNCg0KcHlh
bmcgaXMgYWxzbyByZXBvcnRpbmcgdGhlc2Ugd2FybmluZ3M6DQoNCmlldGYteWFuZy1wdXNoLnlh
bmc6MzY1OiB3YXJuaW5nOiBYUGF0aCBmb3IgIi4uL3NuOnRhcmdldC95cDpkYXRhc3RvcmUiIGRv
ZXMgbm90IGV4aXN0DQppZXRmLXlhbmctcHVzaC55YW5nOjU3Mjogd2FybmluZzogWFBhdGggZm9y
ICJzbjp0YXJnZXQveXA6ZGF0YXN0b3JlIiBkb2VzIG5vdCBleGlzdA0KaWV0Zi15YW5nLXB1c2gu
eWFuZzo2MTY6IHdhcm5pbmc6IFhQYXRoIGZvciAic246dGFyZ2V0L3lwOmRhdGFzdG9yZSIgZG9l
cyBub3QgZXhpc3QNCmlldGYteWFuZy1wdXNoLnlhbmc6ODE2OiB3YXJuaW5nOiBYUGF0aCBmb3Ig
InNuOnRhcmdldC95cDpkYXRhc3RvcmUiIGRvZXMgbm90IGV4aXN0DQoNCg0KQW5keQ0KDQo=

--_000_A4F205177CFB44F7A340B9123B76B30Dciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <35A5638E11B12A46800AD5210DF6656A@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpNZW5sbzsNCglwYW5vc2UtMToyIDExIDYg
OSAzIDggNCAyIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxp
Lk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206
LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5z
LXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0
ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K
CWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAubXNvbm9ybWFs
MCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9y
bWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowY207DQoJbXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGNtOw0KCWZvbnQtc2l6ZTox
MS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0Kc3Bhbi5FbWFpbFN0
eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXtt
c28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJp
ZjsNCglmb250LXZhcmlhbnQ6bm9ybWFsICFpbXBvcnRhbnQ7DQoJY29sb3I6d2luZG93dGV4dDsN
Cgl0ZXh0LXRyYW5zZm9ybTpub25lOw0KCXRleHQtZGVjb3JhdGlvbjpub25lIG5vbmU7DQoJdmVy
dGljYWwtYWxpZ246YmFzZWxpbmU7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjANCgl7bXNvLXN0eWxlLXR5
cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJ
Y29sb3I6d2luZG93dGV4dDt9DQpwLnAxLCBsaS5wMSwgZGl2LnAxDQoJe21zby1zdHlsZS1uYW1l
OnAxOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWJhY2tncm91bmQ6
d2hpdGU7DQoJZm9udC1zaXplOjguNXB0Ow0KCWZvbnQtZmFtaWx5Ok1lbmxvOw0KCWNvbG9yOmJs
YWNrO30NCnNwYW4uczENCgl7bXNvLXN0eWxlLW5hbWU6czE7fQ0KLk1zb0NocERlZmF1bHQNCgl7
bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBX
b3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4w
cHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRz
IHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp
ZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1h
cCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRp
Zl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLUNBIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1VUyI+RllJLCB0aGlzIGlzIGFsc28gY2F1c2luZyB2YWxpZGF0aW9uIG9m
IHRoZSBleGFtcGxlcyBpbiBuZXRjb25mLW5vdGlmIHRvIGZhaWwgKGRvaW5nIHRoaXMgYXMgcGFy
dCBvZiBZRCByZXZpZXcpLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0icDEiPjxzcGFuIGNsYXNzPSJzMSI+ZXJyIDogV2hlbiBjb25kaXRpb24gJnF1b3Q7Li4v
aWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6dGFyZ2V0L2lldGYteWFuZy1wdXNoOmRhdGFz
dG9yZSZxdW90OyBub3Qgc2F0aXNmaWVkLiAoL2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25z
Om1vZGlmeS1zdWJzY3JpcHRpb24vaWV0Zi15YW5nLXB1c2g6cGVyaW9kaWMpPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj5SZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5SZXNoYWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRE
RiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5Gcm9tOiA8L3Nw
YW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5OZXRjb25m
ICZsdDtuZXRjb25mLWJvdW5jZXNAaWV0Zi5vcmcmZ3Q7IG9uIGJlaGFsZiBvZiBLZW50IFdhdHNl
biAmbHQ7a3dhdHNlbkBqdW5pcGVyLm5ldCZndDs8YnI+DQo8Yj5EYXRlOiA8L2I+TW9uZGF5LCBK
YW51YXJ5IDcsIDIwMTkgYXQgMzoyNCBQTTxicj4NCjxiPlRvOiA8L2I+JnF1b3Q7RXJpYyBWb2l0
IChldm9pdCkmcXVvdDsgJmx0O2V2b2l0QGNpc2NvLmNvbSZndDssICdBbmR5IEJpZXJtYW4nICZs
dDthbmR5QHl1bWF3b3Jrcy5jb20mZ3Q7LCBOZXRjb25mICZsdDtuZXRjb25mQGlldGYub3JnJmd0
OywgQWxleGFuZGVyIENsZW1tICZsdDthbGV4YW5kZXIuY2xlbW1AaHVhd2VpLmNvbSZndDs8YnI+
DQo8Yj5TdWJqZWN0OiA8L2I+UmU6IFtOZXRjb25mXSBJbnZhbGlkIHdoZW4tc3RtdHMgaW4geWFu
Zy1wdXNoPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5IaSBBbGV4LDwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGF2ZSB5b3UgaGFkIGEgY2hhbmNlIHRvIGxv
b2sgYXQgdGhpcyBpc3N1ZSB5ZXQ/Jm5ic3A7IFRoZSBhc3NpZ25lZCBZQU5HIERvY3RvciBzYXlz
IHRoYXQgdGhleSBpbW1lZGlhdGVseSBzdHVtYmxlZCBvbiB0aGlzIGVycm9yIGFuZCBpcyB3YWl0
aW5nIGZvciBhbiB1cGRhdGUgd2l0aCBhIHZhbGlkIG1vZHVsZSBiZWZvcmUgcHJvY2VlZGluZyB3
aXRoIHRoZSByZXZpZXcuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5QUzogQWxsIGF1dGhvcnMgc2hvdWxkIGludGVncmF0ZSB0aGUgdmFsaWRhdGlvbiBvZiBZQU5H
IG1vZHVsZXMgYW5kIGV4YW1wbGVzIGFzIHBhcnQgb2YgdGhlIGB4bWwycmZjYCBidWlsZCBwcm9j
ZXNzLiZuYnNwOyBBbHNvIHJlY29tbWVuZGVkIGlzIGR5bmFtaWMgZ2VuZXJhdGlvbiBvZiB0aGUg
dHJlZSBkaWFncmFtcywgYW5kIGV4ZWN1dGlvbiBvZiB0aGUgYGlkbml0c2ANCiB0b29sLiZuYnNw
OyBUaGUgdGltZSBpdCB0YWtlcyB0byBzZXQgdGhpcyB1cCBpbiB0aGUgYmVnaW5uaW5nIGlzIGVh
c2lseSByZWNvdmVyZWQgb3ZlciB0aGUgY291cnNlIG9mIHRoZSBkcmFmdOKAmXMgbGlmZXRpbWUu
Jm5ic3A7IFJlbWVtYmVyLCBpdOKAmXMgbm90IGp1c3QgeW91ciB0aW1lLCBidXQgYWxzbyB0aGUg
dGltZSBvZiBldmVyeW9uZSBlbHNlIHRoYXQgcnVucyBpbnRvIHRoZXNlIGlzc3VlcywgYW5kIHRo
ZW4gdGhlIHNsb3cgcmVzdGFydCB0aW1lcyAodGhpcw0KIHRocmVhZCBpcyBhbiBleGFtcGxlIG9m
IHRoYXQpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+S2VudCAv
LyBzaGVwaGVyZC9jaGFpcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5PbiAxMS8yOS8xOCwgNDo1OCBQTSwgJnF1b3Q7TmV0Y29uZiBvbiBiZWhhbGYg
b2YgRXJpYyBWb2l0IChldm9pdCkmcXVvdDsgJmx0OzxhIGhyZWY9Im1haWx0bzpuZXRjb25mLWJv
dW5jZXNAaWV0Zi5vcmciPm5ldGNvbmYtYm91bmNlc0BpZXRmLm9yZzwvYT4gb24gYmVoYWxmIG9m
DQo8YSBocmVmPSJtYWlsdG86ZXZvaXRAY2lzY28uY29tIj5ldm9pdEBjaXNjby5jb208L2E+Jmd0
OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPlRoYW5rcyBBbmR5LiZuYnNwOyZuYnNwOyBBZGRpbmcgQWxleCB0byBtYWtlIHRoZSBj
aGFuZ2UuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQpFcmljPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFk
ZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IE5ldGNvbmYgJmx0O25ldGNvbmYt
Ym91bmNlc0BpZXRmLm9yZyZndDsgPGI+T24gQmVoYWxmIE9mDQo8L2I+QW5keSBCaWVybWFuPGJy
Pg0KPGI+U2VudDo8L2I+IFRodXJzZGF5LCBOb3ZlbWJlciAyOSwgMjAxOCA0OjUyIFBNPGJyPg0K
PGI+VG86PC9iPiBOZXRjb25mICZsdDtuZXRjb25mQGlldGYub3JnJmd0Ozxicj4NCjxiPlN1Ympl
Y3Q6PC9iPiBSZTogW05ldGNvbmZdIEludmFsaWQgd2hlbi1zdG10cyBpbiB5YW5nLXB1c2g8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGksPG86
cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIHRoaW5rIHRoaXMg
ZGlmZiBmaXhlcyB0aGUgeWFuZy1wdXNoIG1vZHVsZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkl0IGxvb2tzIGxpa2UgdGhlIGF1Z21lbnQgdG8g
bW9kaWZ5LXN1YnNjcmlwdGlvbiB1c2VkIHRoZSB3cm9uZyBncm91cGluZzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+YmVjYXVzZSB0aGUgJ2RhdGFz
dG9yZScgbGVhZiB3YXMgbWlzc2luZy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjM2NWMzNjU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZsdDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDt3aGVuICZxdW90Oy4uL3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tLS08bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDt3aGVuICZxdW90O3lwOmRhdGFzdG9yZSZxdW90Ozs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjU3MmM1NzI8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZsdDsmbmJzcDsg
Jm5ic3A7ICZuYnNwO3doZW4gJnF1b3Q7c246dGFyZ2V0L3lwOmRhdGFzdG9yZSZxdW90Ozs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0tLTxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmd0OyZuYnNw
OyAmbmJzcDsgJm5ic3A7d2hlbiAmcXVvdDt5cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj42MTZjNjE2PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbHQ7Jm5ic3A7ICZu
YnNwOyAmbmJzcDt3aGVuICZxdW90O3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tLS08bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJzcDsg
Jm5ic3A7ICZuYnNwO3doZW4gJnF1b3Q7eXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+NjMyYzYzMjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0OyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3VzZXMgc2VsZWN0aW9uLWZpbHRlci1vYmplY3RzOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mZ3Q7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7dXNlcyBkYXRhc3RvcmUtY3JpdGVyaWE7PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj44MTZjODE2PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbHQ7Jm5ic3A7ICZuYnNwOyAm
bmJzcDt3aGVuICZxdW90O3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tLS08bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwO3doZW4gJnF1b3Q7eXA6ZGF0YXN0b3JlJnF1b3Q7OzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QW5keTxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5PbiBXZWQsIE5vdiAyOCwgMjAxOCBhdCAzOjAzIFBNIEFuZHkgQmllcm1hbiAmbHQ7PGEgaHJl
Zj0ibWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbSI+YW5keUB5dW1hd29ya3MuY29tPC9hPiZndDsg
d3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20g
Ni4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGNt
O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBXZWQsIE5vdiAyOCwgMjAxOCBhdCAy
OjQ4IFBNIEFuZHkgQmllcm1hbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNv
bSIgdGFyZ2V0PSJfYmxhbmsiPmFuZHlAeXVtYXdvcmtzLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdp
bi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBjbTttYXJnaW4tYm90
dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhp
LDxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RHVyaW5nIGlt
cGxlbWVudGF0aW9uIG9mIHlhbmctcHVzaC0yMCBvdXIgZGV2ZWxvcGVyIGZvdW5kIHRoYXQ8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnRoZSB3aGVu
LXN0bXRzIGZvciBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIGFyZSBhbHdheXMgZmFsc2UuPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RS5nLiBs
aW5lIDM2NTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7IGNob2ljZSB1cGRhdGUtdHJpZ2dlciB7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7
ICZuYnNwOyB3aGVuICZxdW90Oy4uL3NuOnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDs7PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
VGhlIG5vZGUgJ3RhcmdldCcgaXMgYSBjaG9pY2UuIFRoZSBub2RlICdkYXRhc3RvcmUnIGlzIGEg
Y2FzZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PlNpbmNlIHRoZSB3aGVuLXN0bXQgaXMgbG9va2luZyBmb3IgZGF0YSBub2RlcyBub3Qgc2NoZW1h
IG5vZGVzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+dGhlIG5vZGUtc2V0IGlzIGFsd2F5cyBlbXB0eS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGVyZSBhcmUgNCBvY2N1cnJlbmNlczo8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPldhcm5pbmc6IG5vIGNoaWxkIG5vZGUgJ2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25z
OnRhcmdldCcgZm91bmQgZm9yIHBhcmVudCAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6
c3Vic2NyaXB0aW9ucyc8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlhQYXRoOiAuLi9zbjp0YXJnZXQveXA6ZGF0YXN0b3JlPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pZXRmLXlhbmctcHVzaC55YW5n
OjM2NS4xNTogd2FybmluZygxMDMyKTogbm8gY2hpbGQgbm9kZSBhdmFpbGFibGU8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+V2FybmluZzogbm8g
Y2hpbGQgbm9kZSAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6dGFyZ2V0JyBmb3VuZCBm
b3IgcGFyZW50ICdpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczppbnB1dCc8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlhQYXRoOiBzbjp0YXJn
ZXQveXA6ZGF0YXN0b3JlPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5pZXRmLXlhbmctcHVzaC55YW5nOjU3Mi4xMDogd2FybmluZygxMDMyKTogbm8g
Y2hpbGQgbm9kZSBhdmFpbGFibGU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+V2FybmluZzogbm8gY2hpbGQgbm9kZSAnaWV0Zi1zdWJzY3JpYmVk
LW5vdGlmaWNhdGlvbnM6dGFyZ2V0JyBmb3VuZCBmb3IgcGFyZW50ICdpZXRmLXN1YnNjcmliZWQt
bm90aWZpY2F0aW9uczppbnB1dCc8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlhQYXRoOiBzbjp0YXJnZXQveXA6ZGF0YXN0b3JlPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pZXRmLXlhbmctcHVzaC55
YW5nOjYxNi4xMDogd2FybmluZygxMDMyKTogbm8gY2hpbGQgbm9kZSBhdmFpbGFibGU8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+V2FybmluZzog
bm8gY2hpbGQgbm9kZSAnaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6dGFyZ2V0JyBmb3Vu
ZCBmb3IgcGFyZW50ICdpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczpzdWJzY3JpcHRpb24n
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5YUGF0
aDogc246dGFyZ2V0L3lwOmRhdGFzdG9yZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+aWV0Zi15YW5nLXB1c2gueWFuZzo4MTYuMTA6IHdhcm5pbmco
MTAzMik6IG5vIGNoaWxkIG5vZGUgYXZhaWxhYmxlPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPnB5YW5nIGlzIGFsc28gcmVwb3J0aW5nIHRoZXNlIHdhcm5p
bmdzOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5pZXRmLXlhbmctcHVzaC55YW5nOjM2NTogd2FybmluZzogWFBhdGggZm9yICZxdW90Oy4uL3Nu
OnRhcmdldC95cDpkYXRhc3RvcmUmcXVvdDsgZG9lcyBub3QgZXhpc3Q8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmlldGYteWFuZy1wdXNoLnlhbmc6
NTcyOiB3YXJuaW5nOiBYUGF0aCBmb3IgJnF1b3Q7c246dGFyZ2V0L3lwOmRhdGFzdG9yZSZxdW90
OyBkb2VzIG5vdCBleGlzdDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+aWV0Zi15YW5nLXB1c2gueWFuZzo2MTY6IHdhcm5pbmc6IFhQYXRoIGZvciAm
cXVvdDtzbjp0YXJnZXQveXA6ZGF0YXN0b3JlJnF1b3Q7IGRvZXMgbm90IGV4aXN0PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pZXRmLXlhbmctcHVz
aC55YW5nOjgxNjogd2FybmluZzogWFBhdGggZm9yICZxdW90O3NuOnRhcmdldC95cDpkYXRhc3Rv
cmUmcXVvdDsgZG9lcyBub3QgZXhpc3Q8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbmR5PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_A4F205177CFB44F7A340B9123B76B30Dciscocom_--


From nobody Mon Jan  7 13:13:14 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1049212DF71; Mon,  7 Jan 2019 13:13:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.766
X-Spam-Level: 
X-Spam-Status: No, score=-2.766 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=juniper.net
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 OzTVoJpgZ1qf; Mon,  7 Jan 2019 13:13:00 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 6AC4912D7EA; Mon,  7 Jan 2019 13:13:00 -0800 (PST)
Received: from pps.filterd (m0108159.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x07KveGo004134; Mon, 7 Jan 2019 12:58:58 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=yeC2MXWH4n9Ih/D0eWkDQoRMHWcpvpmte5lQdkcpqSQ=; b=a6e32BoMD0b0n4bDeammnLqtB4g03CnvAMMWUD+bHwVWnn+MBtxpKpYE68S6T284FrRQ bXgVVIU5LbwG5kSSbKNFawVc572etBVjJ4T3DWbKs3R/0WCMuTZHnuoE2UIgWTeVKmx3 8DTpzOiDxpdE9Dagur8IDomBqc0KPl72G7hJszdXjZ1Vh7OWoDQ14DryyTXPsjfaozPu sZ2kysYd0qkYJm+7cnulq8u8PVxAuPH6XNJPnSapcSpM+mkIrs5tKSvYY9YpN8xSg+27 E0509/s4p3AgtVJVR3FmHhHVkJqycDxdrd/E+wT3exr6puFu86ndK/fV96K0F1ji5Ydo Qw== 
Received: from nam01-sn1-obe.outbound.protection.outlook.com (mail-sn1nam01lp2051.outbound.protection.outlook.com [104.47.32.51]) by mx0a-00273201.pphosted.com with ESMTP id 2pv4q30uwu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 07 Jan 2019 12:58:58 -0800
Received: from DM6PR05MB4665.namprd05.prod.outlook.com (20.176.109.202) by DM6PR05MB4921.namprd05.prod.outlook.com (20.176.112.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.7; Mon, 7 Jan 2019 20:58:55 +0000
Received: from DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e]) by DM6PR05MB4665.namprd05.prod.outlook.com ([fe80::c9e6:54c9:90c8:211e%2]) with mapi id 15.20.1516.010; Mon, 7 Jan 2019 20:58:55 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-dnsop-attrleaf@ietf.org" <draft-ietf-dnsop-attrleaf@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4A=
Date: Mon, 7 Jan 2019 20:58:55 +0000
Message-ID: <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org>
In-Reply-To: <20190106050255.GJ28515@kduck.kaduk.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM6PR05MB4921; 6:eg0tX9UXAq3CcpmJoLfWGOQUYc1OA4fmFbjaD625a4pU57Sp3m2TsphA8gqxnKXK0tma8UXFGmbbO8AdmjmWS5SEI7e0Ve7tUaSq1fpUC0A+QOox2YOajxTHWMk4wyHCebnJNNu1AWSQJBezNPHn7yWsXTmRG4WTnAP1GDyicQwE3G09uQBYwnqET0N9Zoxhee85Kx8ebmX7G4T245lqriBb8VQZIP7Ephk8W4AE3ThpldwPKVv0r06NLcVXEPOtHAMzvHMvyXThxEB54X86zuFlbQ5takAZG76CACt3V8wPbuOskazzpLM0fVjmzdLSoUGMCmf4SmC0cLePeXm7XW5MCxbhHx8knBRiNgl2/SrzZDcj9/+z+ZsXuKeE43Xp+nFrG2Ogj0xIQjQmPPFF2/v28/c/CXpYeWR1q0bnasIL6vJeCxJt6IDSSlZCBddGtPSHdK4D7yAVl/Y35b78dA==; 5:3WF3EJelygIWR5OSm+2kRL+imIvBCeGcxyiwKl+JuZ0+jZPVbOyfjg40k991oFjjYLRFm9hxcPTNRxbk0unP5f75HODw9gVo67geuSQ3Hj9YFJliRg7OrHk7b5v9eML+sKhR3QykHR3GW7IST1Z4P4VBuUw24hfUJfAaHXm4JX4ftfnOp3WYBqwsp/wqQO9I6sQ1gYlyBk6eXcZ856zxJw==; 7:OHH7bRcQL3saCD16+Hz9Hlvc8a7feZVWQdEZ2S9TIqQftMfUZ8XTkw8cwddFx22NpjvwHC/6VHXmqSoNneaEP8aIiutWfCtm7tKF0rgJOJsgyK9gAvVbWmhA26pjYMF/s/lgDDam3+pLp2BKx/QpCg==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 3252404a-93a1-4f6b-0a12-08d674e2efe2
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR05MB4921; 
x-ms-traffictypediagnostic: DM6PR05MB4921:
x-microsoft-antispam-prvs: <DM6PR05MB49215A63ECEF2F3B97005350A5890@DM6PR05MB4921.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(3231475)(944501520)(4982022)(52105112)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DM6PR05MB4921; BCL:0; PCL:0; RULEID:; SRVR:DM6PR05MB4921; 
x-forefront-prvs: 0910AAF391
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(396003)(376002)(346002)(136003)(39860400002)(51444003)(53234004)(189003)(199004)(51914003)(58126008)(561944003)(54906003)(14454004)(36756003)(71190400001)(102836004)(76176011)(6436002)(6506007)(68736007)(316002)(6246003)(26005)(83716004)(66066001)(99286004)(4744004)(53946003)(6512007)(93886005)(345774005)(71200400001)(53936002)(6306002)(4326008)(33656002)(2171002)(25786009)(11346002)(446003)(305945005)(2616005)(186003)(7736002)(476003)(14444005)(256004)(478600001)(6916009)(8936002)(97736004)(3846002)(6116002)(2906002)(966005)(81156014)(8676002)(86362001)(229853002)(106356001)(5660300001)(6486002)(105586002)(486006)(82746002)(81166006); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR05MB4921; H:DM6PR05MB4665.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: xeHR7Oi1OfcOaUHDAz0soOERqbbfFhEgomVxfcDm6ajSmLWNr+tqU1i/OXSLELimcNcjwwrIGM5TihQLMKUZ4YBk6EwVZIaIW7m+zrBUW211QADyczrL38qu9bL4AnxAMFA1IDIOiRqotPb8VJaD2SLMN3H3XU6gkXc8OxFGw+hhG9Nec8yf1sNg9C1aDvmjwsm7gpNqsdnIBA/83EwGAvoD3BjuWdisYDyZdB0i7buRMdeqZyNSZIiaiypcIvRRxq8BjI7Qj/+WmqppEkYvkrB6ULInb14zWAsDKhY5VTR+L4R9Pp/40euDVZINAR9V
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <5C619BCDA7888C4898480F28E8ECEDCF@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 3252404a-93a1-4f6b-0a12-08d674e2efe2
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2019 20:58:55.3962 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR05MB4921
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-07_09:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901070173
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/yf2g3W5Yb-iDNt6BhmtuQyhX_60>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 21:13:04 -0000

W2FkZGluZyBEYXZlLCBhdXRob3Igb2YgdGhlIGRyYWZ0LWlldGYtZG5zb3AtYXR0cmxlYWZdDQoN
Cg0KSGkgQmVuLA0KDQogIEkgaGF2ZSB0cmltbWVkIHRoZSBiZWxvdyByZXNwb25zZSBkb3duIHRv
IGp1c3QgdGhlIHJlbWFpbmluZyBvcGVuIGl0ZW1zLg0KDQoNCkhpIERhdmUsDQoNCiAgQ291bGQg
eW91IHBsZWFzZSBzZWFyY2ggZm9yICJkcmFmdC1pZXRmLWRuc29wLWF0dHJsZWFmIiBpbiB0aGlz
IHRocmVhZCwNCiAgd2hpY2ggcmVnYXJkcyB0aGlzIFNlY3Rpb24gNC4yIG9mIHRoZSB6ZXJvdG91
Y2ggZHJhZnQgWzFdLCBhbmQgcHJvdmlkZQ0KICB5b3VyIG9waW5pb24/ICBJbiBwYXJ0aWN1bGFy
LCBzaW5jZSBfc3p0cCBpcyB1bmRlciBfdGNwLCBkb2VzIHRoYXQgbWVhbg0KICB0aGF0IGl0IGlz
IG5vdCBhIGdsb2JhbGx5IHNjb3BlZCBlbnRyeT8NCiANCiAgWzFdIGh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLW5ldGNvbmYtemVyb3RvdWNoLTI3I3NlY3Rpb24tNC4yKSwN
Cg0KDQpUaGFua3MsDQpLZW50DQoNCg0KPj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiA+PiA+IERJ
U0NVU1M6DQo+PiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+DQo+PiA+PiA+ICgzKSBOb25jZSBsZW5n
dGgNCj4+ID4+ID4NCj4+ID4+ID4gU2VjdGlvbiA3LjMgZGVzY3JpYmVzIHRoZSBub25jZSBsZWFm
Og0KPj4gPj4gPg0KPj4gPj4gPiAgICAgICAgIGxlYWYgbm9uY2Ugew0KPj4gPj4gPiAgICAgICAg
ICAgdHlwZSBiaW5hcnkgew0KPj4gPj4gPiAgICAgICAgICAgICBsZW5ndGggIjguLjMyIjsNCj4+
ID4+ID4NCj4+ID4+ID4gVGhlcmUgaXMgcHJvYmFibHkgc29tZSBkaXNjdXNzaW9uIHRvIGJlIGhh
ZCBhYm91dCB0aGUgbWluaW11bSBub25jZQ0KPj4gPj4gPiBsZW5ndGggKG5vdCBuZWNlc3Nhcmls
eSBpbiB0aGUgZG9jdW1lbnQgaXRzZWxmKS4gIERvIHlvdSBoYXZlIGEgDQo+PiA+PiA+IHBvaW50
ZXIgaGFuZHkgdG8gcHJldmlvdXMgZGlzdWNzaW9ucyBvciBkbyB3ZSBuZWVkIHRvIGhhdmUgaXQg
bm93Pw0KPj4gPj4gPiAoSSBkbyBzZWUgdGhhdCB0aGlzIGlzIGp1c3QgZm9sbG93aW5nIFJGQyA4
MzY2LCBzbyBob3BlZnVsbHkgdGhpcw0KPj4gPj4gPiBpcyBhbiBlYXN5IHF1ZXN0aW9uLikNCj4+
ID4+IA0KPj4gPj4gDQo+PiA+PiBJIHNlbnQgZW1haWwgdG8gbXkgUkZDIDgzNjYgY28tYXV0aG9y
cywgYXMgdGhleSB3ZXJlIGJlaGluZCBzZXR0aW5nDQo+PiA+PiB0aGlzIG1pbiBub25jZSBsZW5n
dGguICBJIGhhdmUgeWV0IHRvIGhlYXIgYmFjayBmcm9tIHRoZW0sIGJ1dCB3aWxsDQo+PiA+PiBs
ZXQgeW91IGtub3cgd2hlbiBJIGRvLg0KPj4gPg0KPj4gPiBbY292ZXJlZCBpbiBzZXBhcmF0ZSB0
aHJlYWRdDQo+PiANCj4+IFtCcmluZ2luZyBiYWNrIGludG8gdGhpcyB0aHJlYWRdDQo+PiANCj4+
IEkgZW1haWxlZCB0aGUgUkZDIDgzNjYgYXV0aG9ycyAoQ0MgeW91KSByZWdhcmRpbmcgeW91ciBj
b25jZXJuIHdpdGggdGhlDQo+PiBtaW5pbXVtLWFsbG93ZWQgbm9uY2UgbGVuZ3RoLg0KPj4gDQo+
PiBBcyBmb3IgdGhpcyBkcmFmdCwgSSBmZWVsIHRoYXQgdGhlIGVhc2llc3Qgc29sdXRpb24gaXMg
dG8gY2hhbmdlIHRoZSBZQU5HDQo+PiBhcyBmb2xsb3dzOg0KPj4gDQo+PiAgICAgICAgbGVhZiBu
b25jZSB7DQo+PiAgICAgICAgICB0eXBlIGJpbmFyeSB7DQo+PiAtICAgICAgICAgIGxlbmd0aCAi
OC4uMzIiOw0KPj4gKyAgICAgICAgICBsZW5ndGggIjE2Li4zMiI7DQo+PiAgICAgICAgICB9DQo+
PiANCj4+IEl0IGlzIHdpdGhpbiB0aGUgcmFuZ2UgYWxsb3dlZCBieSBSRkMgODM2NiAoaS5lLiwg
bm8gY29tcGF0aWJpbGl0eSB2aW9sYXRpb24pDQo+PiB3aGlsZSBlbGltaW5hdGVkIHRoZSBsb3ct
ZW5kIHRoYXQgeW91IG9iamVjdGVkIHRvLiAgSSBjYW4ndCBpbWFnaW5lIHRoZXJlDQo+PiBiZWlu
ZyBhbiBpc3N1ZSBpbiBhc2tpbmcgYSBsb3ctZW5kIGRldmljZSAoZXZlbiBhIG1lYXNseSBJb1Qg
dGhpbmcpIHRvIGdlbmVyYXRlDQo+PiBhbiBleHRyYSA4IGJ5dGVzIG9mIHJhbmRvbSBkYXRhLg0K
Pj4gDQo+PiBJJ3ZlIG1hZGUgdGhpcyBjaGFuZ2UgaW4gLTI3Lg0KPg0KPiBTb3VuZHMgZ29vZC4g
IFRoaXMgaXMgY2VydGFpbmx5IHRoZSBlYXNpZXN0IHdheSBmb3J3YXJkLCBhbmQgaWYgdGhlcmUg
YXJlDQo+IG5vIG9iamVjdGlvbnMgdGhlcmUncyBub3QgbXVjaCByZWFzb24gdG8gbm90IGp1c3Qg
Z28gd2l0aCBpdC4gIEkgbWF5IGhhdmUNCj4gc29tZSBnZW5lcmljIGRlc2lyZSBpbiB0aGUgYWJz
dHJhY3QgdG8gZnVsbHkgdW5kZXJzdGFuZCB3aGV0aGVyIGl0J3MNCj4gbmVlZGVkLCBidXQgSSBh
bSBwcmV0dHkgc3VyZSBJIGNhbiBzdXBwcmVzcyB0aGF0IGRlc2lyZSBpZiBuZWVkZWQgOikNCg0K
T2theSwgbGV0J3MganVzdCBnbyB3aXRoIGl0LiAgWW91IG1heSB3YW50IHRvIGVuZ2FnZSBNaWNo
YWVsIFJpY2hhcmRzb24sIGZyb20NCnRoYXQgZm9yayBpbiB0aGlzIHRocmVhZCwgdG8gY29uc2lk
ZXIgaWYgdGhlcmUgaXMgYSB0cnVlIG5lZWQuDQoNCg0KDQo+PiA+PiA+IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
Cj4+ID4+ID4gQ09NTUVOVDoNCj4+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gDQo+PiA+PiA+IEkg
YSBsaXR0bGUgYml0IHdvbmRlciBpZiB3ZSB3YW50IHJlZmVyZW5jZXMgZm9yIFRMUyBhbmQvb3Ig
SFRUUCBjbGllbnQNCj4+ID4+ID4gYXV0aGVudGljYXRpb24uICBTZWN0aW9uIDIuNSBvZiBSRkMg
ODA0MCBtaWdodCBiZSBlbm91Z2ggKHRob3VnaCBpdCBpcw0KPj4gPj4gPiBvZiBjb3Vyc2Ugbm90
IGNpdGluZyBUTFMgMS4zKS4NCj4+ID4+IA0KPj4gPj4gVGhpcyBkcmFmdCdzIHVzZSBvZiBUTFMg
YW5kIEhUVFAgYXV0aGVudGljYXRpb24gaXMgZXhjbHVzaXZlbHkgZm9yDQo+PiA+PiBSRVNUQ09O
RiAoUkZDIDgwNDApLiAgIEknbSBnZW5lcmFsbHkgaG9waW5nIHRvIGp1c3QgcmVmZXJlbmNlIHRo
YXQNCj4+ID4+IFJGQyBhbmQgbGV0IGl0IHNwZWFrIGZvciBpdHNlbGYuDQo+PiA+PiANCj4+ID4+
IENvcnJlY3QsIFJGQyA4MDQwIGRvZXMgbm90IGNpdGUgVExTIDEuMyBleHBsaWNpdGx5LCB0aG91
Z2ggVExTIDEuMyBpcw0KPj4gPj4gYWxsb3dlZCwgYXMgU2VjdGlvbiAyLjEgc2F5czoNCj4+ID4+
IA0KPj4gPj4gICAgUkVTVENPTkYgZG9lcyBub3QgcmVxdWlyZSBhIHNwZWNpZmljIHZlcnNpb24g
b2YgSFRUUC4gIEhvd2V2ZXIsIGl0IA0KPj4gPj4gICAgaXMgUkVDT01NRU5ERUQgdGhhdCBhdCBs
ZWFzdCBIVFRQLzEuMSBbUkZDNzIzMF0gYmUgc3VwcG9ydGVkIGJ5IGFsbA0KPj4gPj4gICAgaW1w
bGVtZW50YXRpb25zLg0KPj4gPj4gDQo+PiA+PiBCVFcsIGRvZXMgdGhpcyBjb21tZW50IHJlZ2Fy
ZCBTZWN0aW9uIDkuNj8gIA0KPj4gPg0KPj4gPiBTZWN0aW9uIDkuNiBpcyBhYm91dCBtYWtpbmcg
c3VyZSB0aGUgY2xpZW50IGRvZXMgbm90IHNlbmQgc2Vuc2l0aXZlIGRhdGEgdG8NCj4+ID4gYW4g
dW5hdXRoZW50aWNhdGVkIHNlcnZlciwgd2hpY2ggaXMgbm90IGxpbWl0ZWQgdG8gdGhlIGRhdGEg
aW4gdGhlDQo+PiA+IGNlcnRpZmljYXRlOyBteSBjb21tZW50IGhlcmUgaXMgbW9yZSBhYm91dCB0
aGUgbWVjaGFuaWNzIG9mIHRoZSBjbGllbnQNCj4+ID4gYXV0aGVudGljYXRpbmcgaXRzZWxmIHRv
IGEgc2VydmVyIGZvciB0aGUgc2VydmVyIHRvIG1ha2UgYXV0aG9yaXphdGlvbg0KPj4gPiBkZWNp
c2lvbnMgKGFkbWl0dGVkbHksIEkgZGlkIG5vdCBtZW50aW9uICJhdXRob3JpemF0aW9uIiBwcmlv
ciB0byBub3csIHNvDQo+PiA+IG15IGFwb2xvZ2llcyBmb3IgYmVpbmcgdW5jbGVhcikuICBDbGll
bnQgYXV0aGVudGljYXRpb24gaXMgbWVudGlvbmVkDQo+PiA+IGRpcmVjdGx5IG9yIGluIHBhc3Np
bmcgaW4gYXQgbGVhc3Qgc2VjdGlvbnMgNS4xICh3aGljaCBkb2VzIG1lbnRpb24gU2VjdGlvbg0K
Pj4gPiAyLjUgb2YgUkZDIDgwNDAgYWxyZWFkeSkgYW5kIDUuMyAoZGl0dG8pLCBhcyB3ZWxsIGFz
IDkuNi4NCj4+IA0KPj4gQXMgeW91IHNheSwgYXV0aGVudGljYXRpb24gaXMgbWVudGlvbmVkIGlu
IHNldmVyYWwgcGxhY2VzIGFscmVhZHkgDQo+PiBhbmQsIGlmIEkgdW5kZXJzdGFuZCB5b3UgY29y
cmVjdGx5LCB0aGlzIHRleHQgaXMgc3VmZmljaWVudC4NCj4+IA0KPj4gV2hpbGUgdGhlIHdvcmQg
ImF1dGhvcml6YXRpb24iIGRvZXMgbm90IGFwcGVhciBpbiB0aGlzIGRvY3VtZW50LCANCj4+IFNl
Y3Rpb24gOS4xMyBkaXNjdXNzZXMgImFjY2VzcyIsIHdoaWNoIHJlbGF0ZXMgdG8gc3RhdGVtZW50
cyBpbiANCj4+IFJGQyA4MDQwLCBzdWNoIGFzOg0KPj4gDQo+PiAgICBUaGUgUkVTVENPTkYgc2Vy
dmVyIE1VU1QgYXV0aGVudGljYXRlIGNsaWVudCBhY2Nlc3MgdG8gYW55IHByb3RlY3RlZA0KPj4g
ICAgcmVzb3VyY2UuDQo+PiANCj4+ICAgIFRoZSBzZXJ2ZXIgTVVTVCBOT1QgYWxsb3cgYW55IFJF
U1RDT05GIG9wZXJhdGlvbiBmb3IgYW55IHJlc291cmNlcw0KPj4gICAgdGhhdCB0aGUgY2xpZW50
IGlzIG5vdCBhdXRob3JpemVkIHRvIGFjY2Vzcy4NCj4+IA0KPj4gVG8gcHJvdmlkZSBhIG1vcmUg
Y29tcGxldGUgcGljdHVyZSwgdGhlIGJvb3RzdHJhcCBzZXJ2ZXIgZXhwb3NlcyBqdXN0DQo+PiB0
d28gUlBDcy4gIEVhY2ggUlBDICpyZXF1aXJlcyogYW4gYXV0aGVudGljYXRlZCBjbGllbnQtY3Jl
ZGVudGlhbCB0bw0KPj4gZnVuY3Rpb24uICBUaGF0IGlzLCAiZ2V0LWJvb3RzdHJhcHBpbmctZGF0
YSIgY2FuIG9ubHkgcmV0dXJuIHRoZSANCj4+IGJvb3RzdHJhcHBpbmcgZGF0YSBmb3IgdGhlIGF1
dGhlbnRpY2F0ZWQgY2xpZW50IGNyZWRlbnRpYWw7IHRoZXJlIGlzDQo+PiBubyBvdGhlciBwYXJh
bWV0ZXIgcGFzc2VkIGZvciB0aGUgc2VydmVyIHRvIGRldGVybWluZSB3aGljaCBkYXRhIHRvIA0K
Pj4gcmV0dXJuLiBMaWtld2lzZSwgInJlcG9ydC1wcm9ncmVzcyIgY2FuIG9ubHkgcmVwb3J0IHBy
b2dyZXNzIGZvciB0aGUNCj4+IGF1dGhlbnRpY2F0ZWQgY2xpZW50IGNyZWRlbnRpYWw7IHRoZXJl
IGlzIG5vIG90aGVyIHBhcmFtZXRlciBwYXNzZWQNCj4+IGZvciB0aGUgc2VydmVyIHRvIGRldGVy
bWluZSBmb3Igd2hpY2ggY2xpZW50IGlzIHJlcG9ydGluZyB0aGUgZGF0YS4NCj4+IA0KPj4gVGhp
cyBDT01NRU5UIGJlZ2FuIGJ5IGFza2luZyBpZiB3ZSBtaWdodCB3YW50IHJlZmVyZW5jZXMgZm9y
IFRMUyANCj4+IGFuZC9vciBIVFRQIGNsaWVudCBhdXRoZW50aWNhdGlvbiwgYW5kIG5vdyBtYXli
ZSBhdXRob3JpemF0aW9uLg0KPj4gR2l2ZW4gdGhlIGFib3ZlIGRpc2N1c3Npb24sIHdoYXQgaXMg
eW91ciByZWNvbW1lbmRhdGlvbj8NCj4NCj4gSSB0aGluayB0aGF0IHRoZSBkb2N1bWVudCB3aWxs
IGJlIGdvb2Qgd2l0aCBubyBhZGRpdGlvbmFsIGNoYW5nZSBmb3IgdGhpcw0KPiBtYXR0ZXI7IHRo
ZSBjb250ZW50cyBvZiBSRkMgODA0MCBhbmQgdGhlIHdheSB3ZSB1c2UgUkVTVENPTkYgbWFrZXMg
dGhpbmdzDQo+IGNsZWFyIGVub3VnaC4NCg0KRXhjZWxsZW50LiAgVGhpcyBpdGVtIGlzIGNsb3Nl
ZC4NCg0KDQoNCj4+ID4+ID4gU2VjdGlvbiAzLjQNCj4+ID4+ID4NCj4+ID4+ID4gVGhhbmsgeW91
IGZvciBpbmNsdWRpbmcgdGhlIG1vdGl2YXRpbmcgdGV4dCBhYm91dCBzaWduLXRoZW4tZW5jcnlw
dC4NCj4+ID4+ID4gSSBkbyB3b25kZXIgaWYgaXQncyB3b3J0aCBzYXlpbmcgYW55dGhpbmcgYWJv
dXQgd2h5IHRoZSB3ZWxsLXB1YmxpY2l6ZWQNCj4+ID4+ID4gc2VjdXJpdHkgcmlza3Mgb2YgbWFj
LXRoZW4tZW5jcnlwdCBkbyBub3QgYXBwbHkuICAoVGhlIGF1dGhvcnMgb2YNCj4+ID4+ID4gZHJh
ZnQtY2FtcGJlbGwtc2lwLW1lc3NhZ2luZy1zbWltZSBwcm9iYWJseSBhbHJlYWR5IGhhdmUgc29t
ZSB0ZXh0DQo+Pj4gPj4gPiB0aGF0IGNvdWxkIGJlIHVzZWQsIGJ1dCBpdCBkb2Vzbid0IHNlZW0g
dG8gYmUgaW4gdGhlIHB1YmxpYyB2aWV3IHlldC4pDQo+PiA+PiANCj4+ID4+IEFyZSB5b3UgcmVm
ZXJyaW5nIHRvIHRoZSBwYWRkaW5nIG9yYWNsZSBhdHRhY2s/ICBBcyBtZW50aW9uZWQgYWJvdmUs
IHRoZQ0KPj4gPg0KPj4gPiBSaWdodC4NCj4+ID4NCj4+ID4+IHNvbHV0aW9uIHByZXNlbnRlZCBp
biB0aGlzIGRvY3VtZW50IGRvZXNuJ3QgbGVuZCB0aGUgZGV2aWNlIHRvIGJlaW5nIGENCj4+ID4+
IHZlcnkgZ29vZCBkZWNyeXB0aW9uIG9yYWNsZS4gIEkgc3VwcG9zZSB0aGUgZml4IHdvdWxkIGJl
IHRvIGFkZCB0byB0aGlzDQo+PiA+PiBzZWN0aW9uIChvciB0aGUgU2VjdXJpdHkgQ29uc2lkZXJh
dGlvbnMgc2VjdGlvbj8pIHNvbWV0aGluZyBsaWtlOg0KPj4gPj4gDQo+PiA+PiAgIFRoaXMgZG9j
dW1lbnQgc3BlY2lmaWVzIHRoZSBlbmNyeXB0aW9uIG9mIHNpZ25lZCBvYmplY3RzLCBhcyBvcHBv
c2VkDQo+PiA+PiAgIHRvIHRoZSBzaWduaW5nIG9mIGVuY3J5cHRlZCBvYmplY3RzLCBhcyBtaWdo
dCBiZSBleHBlY3RlZCBnaXZlbiB3ZWxsLQ0KPj4gPj4gICBwdWJsaWNpemVkIG9yYWNsZSBhdHRh
Y2tzIChlLmcuLCB0aGUgcGFkZGluZyBvcmFjbGUgYXR0YWNrKS4gIFRoaXMNCj4+ID4+ICAgZG9j
dW1lbnQgZG9lcyBub3QgdmlldyBzdWNoIGF0dGFja3MgYXMgYmVpbmcgZmVhc2libGUgaW4gdGhl
IGNvbnRleHQNCj4+ID4+ICAgb2YgdGhlIHNvbHV0aW9uIGJlY2F1c2UgaSkgdGhlIGRlY3J5cHRl
ZCB0ZXh0IG5ldmVyIGxlYXZlcyB0aGUgZGV2aWNlDQo+PiA+PiAgIGFuZCBpaSkgdGhlIHNvbHV0
aW9uIGRvZXMgbm90IGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhICJib290c3RyYXAtZXJyb3IiDQo+
PiA+PiAgIGNhdXNlIGJ5IGEgZGVjcnlwdGlvbiBmYWlsdXJlIHZlcnN1cyBhIGZhaWx1cmUgb2Nj
dXJyaW5nIHdoZW4gcGFyc2luZw0KPj4gPj4gICB0aGUgZGVjcnlwdGVkIHRleHQuDQo+PiA+DQo+
PiA+IFRoYXQgd29ya3MgZm9yIG1lLCB0aGFua3MuICAoQnV0IGZlZWwgZnJlZSB0byBsZWF2ZSBp
dCBvdXQgaWYgeW91IGRvbid0DQo+PiA+IHRoaW5rIGl0J3MgYWRkaW5nIHZhbHVlLCB0b28uKQ0K
Pj4gDQo+PiBJIGFkZGVkIGEgc2xpZ2h0bHkgcmVkdWNlZCB2ZXJzaW9uIG9mIHRoZSBhYm92ZSB0
ZXh0ICh0YWtpbmcgb3V0IGNsYXVzZSAiaWkiKToNCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXRj
b25mLXdnL3plcm8tdG91Y2gvY29tbWl0LzM4OGQwMzU1YjNjN2M2Y2U0YWE0ODAyOGE0ZWY4OWRj
NjQxNDczMDQuDQo+PiANCj4+IFN0aWxsIGdvb2Q/DQo+DQo+IFllcy4NCg0KWmlwcGluZyBhbG9u
ZyAoaXRlbSBjbG9zZWQpDQoNCg0KICANCg0KPj4gPj4gPiBTZWN0aW9uIDQuMg0KPj4gPj4gPg0K
Pj4gPj4gPiBJIGFncmVlIHdpdGggQWRhbSBhYm91dCByZWdpc3RlcmluZyAiemVyb3RvdWNoIiAo
YW5kIHRoZSBuYW1lIGlzDQo+PiA+PiA+IHBlcmhhcHMgb3Zlcmx5IGdlbmVyaWM/KS4NCj4+ID4+
ID4NCj4+ID4+ID4gSSdtIGFsc28gbm90IHN1cmUgSSBwcm9wZXJseSB1bmRlcnN0YW5kIHRoZSAi
enQtaW5mbyIvenQtKiBUWFQNCj4+ID4+ID4gcmVjb3JkcycgdXNhZ2U7IHdvdWxkIHRoZXkgbmVl
ZCB0byBiZSByZWdpc3RlcmVkIGFraW4gdG8NCj4+ID4+ID4gZHJhZnQtbW9vbmVzYW15LWRuc29w
LXNwZWNpYWwtdXNlLWxhYmVsLXJlZ2lzdHJ5Pw0KPj4gPj4gDQo+PiA+PiBGaXJzdCwgcmVnYXJk
aW5nIHRoZSB0ZXJtICJ6ZXJvdG91Y2giIGJlaW5nIHBlcmhhcHMgb3Zlcmx5IGdlbmVyaWMsDQo+
PiA+PiBJIGhhdmUgc29tZXdoYXQgZmVsdCB0aGlzIHdheSBmb3IgYSB3aGlsZS4gIE9uZSB0aGlu
ZyB0aGF0IGNvdWxkIGJlDQo+PiA+PiBkb25lIGZhaXJseSBlYXNpbHkgaXMgdG8gbW9yZSB0aGUg
YnVsayBvZiB0aGUgInplcm90b3VjaCIgcmVmZXJlbmNlcw0KPj4gPj4gdG8gInN6dHAiLCB0aGUg
YWNyb255bSBnaXZlbiB0aHJvdWdob3V0LiAgQWRtaXR0ZWRseSwgd2hhdCBTWlRQDQo+PiA+PiBz
dGFuZHMgZm9yIGlzbid0IHRyZW1lbmRvdXNseSBiZXR0ZXIsIGJ1dCBJIHRoaW5rIHRoYXQgaXQg
aXMNCj4+ID4+IGdlbmVyYWxseSBiZXR0ZXIgdGhhbiBqdXN0ICJ6ZXJvdG91Y2giLiAgVGhvdWdo
dHM/DQo+PiA+DQo+PiA+IFNaVFAgZG9lcyBzZWVtIGJldHRlciB0aGFuIGp1c3QgInplcm90b3Vj
aCIgdG8gbWUsIGFsbCB0aGluZ3MgY29uc2lkZXJlZC4NCj4+IA0KPj4gDQo+PiBPa2F5LCBJIGRp
ZCB0aGUgZm9sbG93aW5nOg0KPj4gDQo+PiAgIFdoZW4gcmVmZXJyaW5nIHRvIHRoZSBkcmFmdC9z
b2x1dGlvbjoNCj4+ICAgICBaZXJvIFRvdWNoIC0tPiBTWlRQDQo+PiANCj4+ICAgV2hlbiByZWZl
cnJpbmcgdG8gdGhlIGJvb3RzdHJhcHBpbmcgYXJ0aWZhY3Q6DQo+PiAgICAgemVybyB0b3VjaCBp
bmZvcm1hdGlvbiAtLT4gY29udmV5ZWQgaW5mb3JtYXRpb24NCj4+ICAgICB6ZXJvdG91Y2gtaW5m
b3JtYXRpb24gIC0tPiBjb252ZXllZC1pbmZvcm1hdGlvbg0KPj4gDQo+PiAgIEZvciB0aGUgQ01T
IGNvbnRlbnQgdHlwZXM6DQo+PiAgICAgaWQtY3QtemVyb3RvdWNoSW5mb3JtYXRpb25YTUwgIC0t
PiBpZC1jdC1zenRwQ29udmV5ZWRJbmZvWE1MDQo+PiAgICAgaWQtY3QtemVyb3RvdWNoSW5mb3Jt
YXRpb25KU09OIC0tPiBpZC1jdC1zenRwQ29udmV5ZWRJbmZvSlNPTg0KPj4gDQo+PiAgIEZvciB0
aGUgWUFORyBtb2R1bGVzOg0KPj4gICAgIGlldGYtemVyb3RvdWNoLWluZm9ybWF0aW9uLnlhbmcg
ICAgICAtLT4gaWV0Zi1zenRwLWNvbnZleWVkLWluZm8ueWFuZw0KPj4gICAgIGlldGYtemVyb3Rv
dWNoLWJvb3RzdHJhcC1zZXJ2ZXIueWFuZyAtLT4gaWV0Zi1zenRwLWJvb3RzdHJhcC1zZXJ2ZXIu
eWFuZw0KPj4gDQo+PiAgIEZvciB0aGUgRE5TL3NlcnZpY2UgbmFtZToNCj4+ICAgICBfemVyb3Rv
dWNoIC0tPiBfc3p0cA0KPj4gDQo+PiBBIGJpZyBjaGFuZ2UsIHRob3VnaCBJIHNjcmlwdGVkIG1v
c3Qgb2YgaXQuIEhlcmUncyB0aGUgZGlmZjoNCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXRjb25m
LXdnL3plcm8tdG91Y2gvY29tbWl0LzM5NGI4NjNkMTg1MDAxOWZkNDUxNTU0YTlmODZjM2MxMGQy
ODBkMDgNCj4NCj4gVGhhbmsgeW91IGZvciB5b3VyIHdpbGxpbmduZXNzIHRvIG1ha2UgdGhlc2Ug
ZGlzcnVwdGl2ZSBjaGFuZ2VzICJmb3IgdGhlDQo+IGdvb2Qgb2YgdGhlIHRlYW0iOyBJIGtub3cg
aXQncyBwcmV0dHkgdGhhbmtsZXNzIHdvcmsuDQoNCllvdXIgd2VsY29tZSwgYW5kIHRoYW5rcyBm
b3IgdGhlIGFja25vd2xlZGdlbWVudC4gIChpdGVtIGNsb3NlZCkNCg0KDQoNCg0KPj4gPj4gU2Vj
b25kLCBJIGFtIG5vdCBhIEROUyBleHBlcnQsIGRvIHlvdSBrbm93IHdobyB3ZSBjYW4gZGlzY3Vz
cw0KPj4gPj4gc3VjaCB0aGluZ3Mgd2l0aD8gIFRoYXQgc2FpZCwgSSBndWVzcyBvdXIgaWRlYSB3
YXMgdG8gdXNlIFRYVA0KPj4gPj4gcmVjb3JkcyBsaWtlIFJGQyAxNDY0LCB3aGVyZSB0aGUgVFhU
IHZhbHVlIGl0c2VsZiBoYXMgdGhlIGZvcm0NCj4+ID4+ICI8YXR0cmlidXRlIG5hbWU+PTxhdHRy
aWJ1dGUgdmFsdWU+IiwgaW4gd2hpY2ggY2FzZSBpdCBkb2Vzbid0DQo+PiA+PiBzZWVtIHRvIG5l
ZWQgSUFOQSByZWdpc3RyYXRpb24/DQo+PiA+DQo+PiA+IFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkn
bSB3cm9uZywgYnV0IEkgdGhpbmsgdGhpcyBpc3N1ZSB3YXMNCj4+ID4gYWxyZWFkeSBjb3ZlcmVk
IGluIGEgZGlmZmVyZW50IEFEJ3MgYmFsbG90IHRocmVhZC4NCj4+IA0KPj4gQ29ycmVjdCwgU2Vj
dGlvbiA0LjIgd2FzIHVwZGF0ZWQgKHBvc3RlZCBpbiAtMjYpIHBlciBBbGV4ZXkncyBESVNDVVNT
Lg0KPj4gUGVyIHlvdXIgb3JpZ2luYWwgY29tbWVudCAoYW5kIGhpcywgYW5kIEFkYW0ncyksIFNl
Y3Rpb24gMTAuNiBub3cNCj4+IHJlcXVlc3RzIElBTkEgdG8gcmVnaXN0ZXIgdGhlIHNlcnZpY2Ug
bmFtZSAic3p0cCIgKHdhcyAiemVyb3RvdWNoIikuIA0KPj4gDQo+PiA+IFRoYXQgc2FpZCwgdGhl
IGFkZGl0aW9uIG9mIDxzZXJpYWwgbnVtYmVyPi5femVyb3RvdWNoLmZxZG4gaW4gdGhlDQo+PiA+
IC0yNiBzZWVtcyB0byBpbmRpY2F0ZSB0aGF0IG1lbnRpb24gb2YgZHJhZnQtaWV0Zi1kbnNvcC1h
dHRybGVhZg0KPj4gPiBpcyBhcHByb3ByaWF0ZSwgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkgaG93
IHRoYXQgd29ya3MuDQo+PiANCj4+IEkndmUganVzdCBub3cgcmVhZCBkcmFmdC1pZXRmLWRuc29w
LWF0dHJsZWFmLiAgSSBzZWUgdGhlIGFwcGxpY2FiaWxpdHksDQo+PiBidXQgSSBkb24ndCB1bmRl
cnN0YW5kIHlvdXIgcHJvcG9zYWwuICBMb29raW5nIGF0IERhdGFUcmFja2VyLCBJIHNlZQ0KPj4g
dGhhdCBpdCBpcyBhbHJlYWR5IGluIFJGQyBFZCBRdWV1ZSwgc28gSSB0aGluayB5b3UncmUgc3Vn
Z2VzdGluZyBtZQ0KPj4gdHJlYXQgaXQgYXMgYSBmYWl0IGFjY29tcGxpLCBhbmQgYWRkIGFuIElB
TkEgQ29uc2lkZXJhdGlvbiBzZWN0aW9uDQo+PiB0byByZWdpc3RlciAiX3N6dHAiLCB5ZXM/ICBB
c3N1bWluZyB0aGF0IGlzIHRoZSBjYXNlLCB0aGVuIHdoYXQgc2hvdWxkDQo+DQo+IEZyb20gbWVt
b3J5LCB5ZXMuDQo+DQo+PiBiZSBkb25lIHdpdGggdGhlIHNlcnZpY2UgbmFtZSByZWdpc3RyYXRp
b24gaW4gU2VjdGlvbiAxMC42LCBhZGRlZCBwZXINCj4+IGNvbW1lbnRzIGZyb20gQWxleGV5IGFu
ZCBBZGFtPw0KPg0KPiBJIHRoaW5rIHdlJ2xsIG5lZWQgdG8gZ2V0IHNvbWUgZnVydGhlciBpbnB1
dCBmcm9tIEFsZXhleSBhbmQvb3IgQWRhbSwgYnV0DQo+IG15IHVuZGVyc3RhbmRpbmcgaXMgdGhh
dCB3ZSB3b3VsZCBuZWVkIGJvdGggcmVnaXN0cmF0aW9ucyAtLSB0aGUgc2VydmljZQ0KPiBuYW1l
IHJlZ2lzdHJhdGlvbiBjb3ZlcnMgb3VyIF9zenRwLl90Y3AuZnFkbiBTUlYgcmVjb3JkcywgYnV0
IHdlIGFyZSBhbHNvDQo+IHVzaW5nIDxzZXJpYWwgbnVtYmVyPi5fc3p0cC5fdGNwLmZxZG4gVFhU
IHJlY29yZHMsIGFuZCBzbyAoSUlVQykgd2UnZCBuZWVkDQo+IHRvIGFkZCBhIHJlZmVyZW5jZSB0
byB0aGlzIGRvY3VtZW50IGZvciB0aGUgVFhUIF90Y3AgZW50cnkgdGhhdCBSRkMgNjc2Mw0KPiAo
RE5TLVNEKSBpcyBjdXJyZW50bHkgdGhlIHJlZmVyZW5jZSBmb3IuDQoNClRoaXMgaXRlbSByZW1h
aW5zIG9wZW4uICBIb3BlZnVsbHkgRGF2ZSBjYW4gcHJvdmlkZSBndWlkYW5jZS4NCg0KDQoNCg0K
Pj4gPj4gPiAgIFRoZSBkZXZpY2UgTVVTVCBwYXJzZSB0aGUgcHJvdmlkZWQgb25ib2FyZGluZyBp
bmZvcm1hdGlvbiBkb2N1bWVudCwNCj4+ID4+ID4gICB0byBleHRyYWN0IHZhbHVlcyB1c2VkIGlu
IHN1YnNlcXVlbnQgc3RlcHMuICBXaGV0aGVyIHVzaW5nIGEgc3RyZWFtLQ0KPj4gPj4gPiAgIGJh
c2VkIHBhcnNlciBvciBub3QsIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gcGFyc2luZyB0aGUg
b25ib2FyZGluZw0KPj4gPj4gPg0KPj4gPj4gPiBUaGlzIGxpbmUgbWFrZXMgbWUgY29uc2lkZXIg
dGhlIHNjZW5hcmlvIHdoZXJlIGEgc3RyZWFtLWJhc2VkIHBhcnNlciBpcw0KPj4gPj4gPiB1c2Vk
IHdpdGggYSB0cnVzdGVkIGJvb3RzdHJhcCBzZXJ2ZXIgYW5kIG5vIENNUy1sYXllciBzaWduYXR1
cmUuICBBdCB0aGUNCj4+ID4+ID4gVExTIGxheWVyLCBhIHRydW5jYXRpb24gYXR0YWNrIGJ5IHRo
ZSBuZXR3b3JrIGlzIHBvc3NpYmxlLCBhbmQgaWYNCj4+ID4+ID4gdHJ1bmNhdGlvbiBpcyBub3Qg
ZGV0ZWN0YWJsZSBhdCB0aGUgYXBwbGljYXRpb24gbGF5ZXIsIHRoZSBkZXZpY2UgY291bGQgZW5k
DQo+PiA+PiA+IHVwIG1pc2NvbmZpZ3VyZWQgd2l0aCBuZWl0aGVyIHBhcnR5IGF3YXJlICh1bmxl
c3MgdGhlcmUncyBhbiBhZGRpdGlvbmFsDQo+PiA+PiA+IHJlc3BvbnNlIG9yIHNvbWV0aGluZyB0
aGF0IEknbSBmb3JnZXR0aW5nIGFib3V0KS4gIEkgdGhpbmsgdGhhdCBmb3IgdGhlIFhNTA0KPj4g
Pj4gPiBhbmQgSlNPTiBmb3JtYXRzIHdlIGtub3cgYW5kIGxvdmUsIHRydW5jYXRpb24gd291bGQg
bWFrZSBmb3IgYSBtYWxmb3JtZWQNCj4+ID4+ID4gc3RyZWFtIGR1ZSB0byB0aGUgb3V0ZXJtb3N0
IHNjb3BlIGNvbnRhaW5lciwgYnV0IHBsZWFzZSBjb3JyZWN0IG1lIGlmIEknbQ0KPj4gPj4gPiB3
cm9uZy4gIFRoZXJlIGFyZSBwcm9iYWJseSBzb21lIHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zIHRv
IG1lbnRpb24gdy5yLnQuDQo+PiA+PiA+IGFueSBmdXR1cmUgbmV3IGVuY29kaW5ncyBvZiB0aGlz
IGRhdGEgbW9kZWwsIHRob3VnaC4NCj4+ID4+IA0KPj4gPj4gVGhlIHN0ZXBzIGFyZSByb3VnaGx5
OiANCj4+ID4+ICAgYSkgSFRUUFMgR0VUIGFuIFhNTC9KU09OIGRvY3VtZW50ICh0aGUgZ2V0LWJv
b3RzdHJhcHBpbmctZGF0YSIgcmVzcG9uc2UpLg0KPj4gPj4gICBiKSBleHRyYWN0IHRoZSBDTVMt
YmFzZWQgYXJ0aWZhY3RzIGZyb20gdGhlIFhNTC9KU09OIGRvY3VtZW50Lg0KPj4gPj4gICBjKSBp
ZiBlbmNyeXB0ZWQsIGRlY3J5cHQuDQo+PiA+PiAgIGQpIGlmIHNpZ25lZCwgYXV0aGVudGljYXRl
Lg0KPj4gPj4gICBlKSBleHRyYWN0IHRoZSBvbmJvYXJkaW5nLWluZm9ybWF0aW9uIChhbm90aGVy
IFhNTC9KU09OIGRvYykgZnJvbSB0aGUgQ01TIGFydGlmYWN0Lg0KPj4gPj4gICBmKSBwcm9jZXNz
IHRoZSBvbmJvYXJkaW5nLWluZm9ybWF0aW9uIFhNTC9KU09OIGRvYw0KPj4gPj4gDQo+PiA+PiBT
byBoZXJlIHdlJ3JlIGF0IHN0ZXAgKGYpLCB3aGVyZSB0aGUgdGV4dCBtZW50aW9ucyB0aGUgcG9z
c2libGUgdXNlIG9mIGENCj4+ID4+IHN0cmVhbSBwYXJzZXIuICBUaGlzIGlzIHJhdGhlciBsb25n
IGFmdGVyIHN0ZXAgKGEpLCB3aGVyZSBUTFMgdHJ1bmNhdGlvbg0KPj4gPj4gbWF5IG9jY3VyIGFu
ZCwgcHJlc3VtYWJseSBjYXVnaHQgaW4gc3RlcCAoYikuICBUaGlzIGlzIGJ5IHdheSBvZiBzYXlp
bmcNCj4+ID4+IHRoYXQgSSBkb24ndCB0aGluayB0aGlzIGlzIGFuIGlzc3VlLCBidXQgaW50ZXJl
c3RlZCB0byBoZWFyIHlvdXIgcmVzcG9uc2UuDQo+PiA+PiANCj4+ID4+IEZXSVcsIHRoZSBwb2lu
dCBvZiB0aGlzICJzdHJlYW0tYmFzZWQgcGFyc2VyIiBjb21tZW50IGlzIHRvIGhpZ2hsaWdodA0K
Pj4gPj4gdGhhdCwgdW5saWtlIG1vc3QgYWxsIHRoZSBvdGhlciBwcm9ncmVzcy10eXBlcywgd2hp
Y2ggc2VlbSB0byByZWZsZWN0DQo+PiA+PiBhIHNlcmlhbCBwcm9jZXNzaW5nIG9mIHRoZSBzdGVw
cywgdGhlIHBhcnNpbmcgbWF5IGVpdGhlciBiZSBhIGRpc3RpbmN0DQo+PiA+PiBzdGVwIChlLmcu
LCBhIERPTS1iYXNlZCBwYXJzZXIpIG9yIHNvbWV0aGluZyB0aGF0IGlzIHNwbGF5ZWQgYWNyb3Nz
IGFsbA0KPj4gPj4gdGhlIG90aGVyIHN0ZXBzIChhIHN0cmVhbS1iYXNlZCBwYXJzZWQpLiAgSW4g
dGhlIGZpcnN0IGNhc2UsIHRoZSBhbGwNCj4+ID4+IHRoZSAicGFyc2luZy0qIiBwcm9ncmVzcyBy
ZXBvcnRzIChpbmNsdWRpbmcgYW55IHBhcnNpbmctZXJyb3IgcmVwb3J0KQ0KPj4gPj4gYXJlIGV4
cGVjdGVkIHRvIGJlIHRyYW5zbWl0dGVkIGJlZm9yZSBhbnksIGUuZy4sIGJvb3QtaW1hZ2UtKiBy
ZXBvcnRzDQo+PiA+PiBhcmUgc2VudDsgd2hlcmVhcywgaW4gdGhlIHNlY29uZCBjYXNlLCB0aGUg
cGFyc2luZy0qIHJlcG9ydHMgY2FuIGJlDQo+PiA+PiBpbnRlcm1peGVkLg0KPj4gPj4gDQo+PiA+
PiBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGEgVExTIGNvbmNlcm4sIGJ1dCBwZXJoYXBzIHRoZSBw
YXJhZ3JhcGggbmVlZHMNCj4+ID4+IHRvIGJlIHJld29yZGVkPw0KPj4gPg0KPj4gPiBJIHRoaW5r
IHlvdXIgdW5kZXJzdGFuZGluZyBiYXNpY2FsbHkgbWF0Y2hlcyBtaW5lOyBJIHRyaWVkIHRvIGlu
Y2x1ZGUgaW4gbXkNCj4+ID4gcmVtYXJrIHRoYXQgaXQgd291bGQgb25seSBwb3NzaWJseSBhcHBs
eSB0byB0aGUgY2FzZSB3aGVyZSB0aGUgcHJlZGljYXRlcw0KPj4gPiBmb3IgKGMpIGFuZCAoZCkg
YXJlIGZhbHNlLiAgSSBqdXN0IHBsYWluIGRvbid0IGtub3cgd2hldGhlciAoYSkvKGIpIHdpbGwN
Cj4+ID4gY2hva2UgaWYgdGhlIEdFVCByZXNwb25zZSBpcyBhbiBpbmNvbXBsZXRlIFhNTC9KU09O
IGRvY3VtZW50LiAgSWYgaXQNCj4+ID4gcHJvcGVybHkgZXJyb3JzIG91dCwgdGhlbiB0aGVyZSdz
IG5vIGNvbmNlcm4gaGVyZSwgYW5kIHdlIHNob3VsZCBqdXN0IG1vdmUNCj4+ID4gb24uICBJbiBh
bnkgY2FzZSwgZXZlbiBpZiB0aGVyZSB3YXMgYW4gaXNzdWUsIHRoaXMgcGFyYWdyYXBoIHdvdWxk
IG5vdA0KPj4gPiByZWFsbHkgYmUgdGhlIHBsYWNlIHRvIHRhbGsgYWJvdXQgaXQgLS0gbXkgY29t
bWVudCBpcyBvbmx5IGxvY2F0ZWQgaGVyZQ0KPj4gPiBiZWNhdXNlIHRoaXMgaXMgd2hlcmUgd2Ug
c3RhcnQgdGFsa2luZyBhYm91dCBzdHJlYW0tYmFzZWQgcGFyc2Vycy4gIFRoZQ0KPj4gPiBlcnJv
cnMgaW4gcXVlc3Rpb24gYXJlIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBnZW5lcmF0ZWQgYnkgdGhl
IHN0cmVhbS1iYXNlZA0KPj4gPiBwYXJzZXIsIGJ1dCBjYW4gYWxzbyBpbmNsdWRlIHRob3NlIGdl
bmVyYXRlZCBhdCBlYXJsaWVyIHN0ZXBzLg0KPj4gDQo+PiBPa2F5LCBpZiB3ZSBzdGVwIGJhY2sg
ZnJvbSB0aGUgc3RyZWFtLXBhcnNpbmcgYW5nbGUsIGFuZCBpbnN0ZWFkIGp1c3QgZm9jdXMNCj4+
IG9uIHRoZSBUTFMgdHJ1bmNhdGlvbiBjb25jZXJuLCBteSBmaXJzdCB0aG91Z2h0IGlzIHRoYXQg
c2FpZCBlcnJvciB3aWxsIGJlDQo+PiBkZXRlY3RlZCBpbiAoYSkgYW5kIChiKSB3aWxsIG5vdCBi
ZSBlbnRlcmVkLiAgSW4gY2FzZSAoYikgaXMgZW50ZXJlZCwgdGhlbg0KPj4gaXQgc2VlbXMgdGhh
dCAoYikgd291bGQgZGV0ZWN0IGEgbWFsZm9ybWVkIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlciwg
YXMgaXQNCj4+IHdvdWxkIG5vcm1hbGx5IG5lZWQgdG8gZG8uDQo+DQo+IE9rYXksIGRlZmVuc2Ug
aW4gZGVwdGggaXMgYSBnb29kIHRoaW5nLiAgSXQgc291bmRzIGxpa2Ugd2UgZG9uJ3QgbmVlZCB0
bw0KPiBzYXkgYW55dGhpbmcgYWJvdXQgdGhpcyBpbiB0aGUgZG9jdW1lbnQsIElJVUMuDQoNClRo
YW5rcyBmb3IgbGV0dGluZyB0aGlzIHNsaWRlLiAgKGl0ZW0gY2xvc2VkKQ0KDQoNCiAgDQo+PiA+
PiA+IFNlY3Rpb24gNi4yDQo+PiA+PiA+DQo+PiA+PiA+ICJiYXNlNjRlbmNvZGVkdmFsdWU9PSIg
aXMgcHJldHR5IGN1dGUsIHRob3VnaCBtYXliZSB3ZSBjb3VsZCBhZGQgc29tZQ0KPj4gPj4gPiB0
cmFpbGluZyBudW1iZXJzIHRvIHByb3ZpZGUgZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIGRpZmZl
cmVudCBmaWVsZHM/DQo+PiA+PiANCj4+ID4+IFRoZSBpc3N1ZSBoZXJlIGlzIHRoYXQgdGhlIGV4
YW1wbGUgZG9jdW1lbnRzIG11c3QgYmUgdmFsaWQgKGZ3aXcsIHRoZXkNCj4+ID4+IGFyZSB0ZXN0
ZWQgZWFjaCB0aW1lIGB4bWwycmZjYCBpcyBydW4pLiAgUHJldmlvdXMgdmVyc2lvbnMgb2YgdGhp
cyANCj4+ID4+IGRvY3VtZW50IGluY2x1ZGVkIGNvbXBldGUgYmFzZTY0IGVuY29kaW5nIG9mIHRo
ZSByZWFsIG9iamVjdHMsIGJ1dCANCj4+ID4+IHBlb3BsZSBjb21wbGFpbmVkIHRoYXQgaXQgZ3Jl
YXRseSBkaXN0cmFjdGVkIGZyb20gcmVhZGFiaWxpdHkuICBUbw0KPj4gPj4gYWRkcmVzcyB0aGlz
LCB0aGUgV0cgYWdyZWVkIHRvIHVzZSAiYmFzZTY0ZW5jb2RlZHZhbHVlPT0iIGluIGV4YW1wbGVz
DQo+PiA+PiB0byByZXByZXNlbnQgWUFORyAiYmluYXJ5IiBkYXRhLg0KPj4gPj4gDQo+PiA+PiBJ
cyBpdCBva2F5IHRvIGxlYXZlIHRoaXMgYXMgaXM/DQo+PiA+DQo+PiA+IFRoaXMgaXMgYSBub24t
YmxvY2tpbmcgY29tbWVudCwgc28gYnkgZGVmaW5pdGlvbiBteSBhbnN3ZXIgaXMgInllcyIgOikN
Cj4+ID4gSSBtb3N0bHkganVzdCB3YW50ZWQgdG8gcG9pbnQgb3V0IHRoYXQgdGhlIGV4YW1wbGVz
IHVzZSB0aGUgc2FtZSBsaXRlcmFsDQo+PiA+IHN0cmluZyB0byBmaWxsIGluIGZvciBtYW55IGRp
ZmZlcmVudCBkYXRhIHR5cGVzIC0tIEkgYWdyZWUgd2l0aCBub3QgdXNpbmcNCj4+ID4gInJlYWwi
IGV4YW1wbGVzIHNpbmNlIHRoZXkncmUgYnVsa3kgYW5kIG5vdCByZWFkYWJsZSBpbiBlbmNvZGVk
IGZvcm0sIGJ1dA0KPj4gPiB3YXMganVzdCB3b25kZXJpbmcgaWYgd2UgY291bGQgdXNlIGRpZmZl
cmVudCBzaG9ydCBzdHJpbmdzIHRvIHJlcHJlc2VudA0KPj4gPiBzZW1hbnRpY2FsbHkgZGlmZmVy
ZW50IG9iamVjdHMuDQo+PiANCj4+IE9rYXksIGxldCdzIGNsb3NlIHRoaXMgd2l0aCBubyB1cGRh
dGUuICBUaGF0IHNhaWQsIHlvdSBtYXkgYmUgcGxlYXNlZCAob3INCj4+IGlya2VkKSB0byBzZWUg
dGhhdCB0aGUgbm9uY2UgbWluLWxlbmd0aCBjaGFuZ2UgZm9yY2VkIG9uZSBleGFtcGxlIHRvIGhh
dmUNCj4+IHRvIGNoYW5nZSB0byAiPG5vbmNlPmV4dHJhbG9uZ2Jhc2U2NGVuY29kZWR2YWx1ZT08
L25vbmNlPiIgaW4gb3JkZXIgdG8gcGFzcw0KPj4gYnVpbGQtdGltZSB2YWxpZGF0aW9uIHRlc3Rz
IDspDQo+DQo+IENvb2wsIEkgd2lzaCBteSBDSSB3YXMgdGhhdCBnb29kIDopDQoNClJlYWxseSwg
aXQncyB0aGUgb25seSB3YXkgdG8gZ28uICBUaGUgdGltZSBzcGVudCBzZXR0aW5nIGl0IHVwIGlz
IGVhc2lseQ0KcmVjb3ZlcmVkIGluIHRoZSBjb3Vyc2Ugb2YgdGhlIHByb2plY3QuICBJIHdpc2gg
YWxsIGRyYWZ0IGF1dGhvcnMgZXh0cmENCnRpbWUgaW4gdGhlaXIgbGl2ZXMgdG8gZG8gbW9yZSBy
ZXdhcmRpbmcgc3R1ZmYgdGhhbiBjaGFzZSBkb3duIGlzc3Vlcw0KdGhhdCBvdGhlcndpc2Ugd291
bGQndmUgYmVlbiBlYXNpbHkgY2F1Z2h0Lg0KDQoNCg0KIA0KPj4gPj4gPiBTZWN0aW9uIDcuMg0K
Pj4gPj4gPg0KPj4gPj4gPiBJZiB3ZSdyZSBnb2luZyB0byBzYXkgImFuZCByZWNlaXZlcyBzaWdu
ZWQgZGF0YSBpbiB0aGUgcmVzcG9uc2UiLCBtYXliZSB3ZQ0KPj4gPj4gPiBjb3VsZCBhY3R1YWxs
eSBnaXZlIGFuIGV4YW1wbGUgdGhhdCBzaG93cyB0aGUgKGJhc2U2NCdkKSBDTVMgc3RydWN0dXJl
IHRoYXQNCj4+ID4+ID4gY29ycmVzcG9uZHMgdG8gdGhlIHNpZ25hdHVyZT8gIE5vdCBuZWNlc3Nh
cmlseSB0aGUgd2hvbGUgcGF5bG9hZCwgYnV0DQo+PiA+PiA+IGVub3VnaCB0byBzZWUgdGhlIG91
dGVyIHN0cnVjdHVyZSBhdCBsZWFzdC4uLg0KPj4gPj4gDQo+PiA+PiBTZWUgcHJldmlvdXMgcmVz
cG9uc2UgcmVnYXJkaW5nICJiYXNlNjRlbmNvZGVkdmFsdWU9PSIuICBJdCdzIHRyaWNreQ0KPj4g
Pj4gYnVzaW5lc3MuICBUaGF0IHNhaWQsIGluIGEgc2VwYXJhdGUgImV4cGVydCByZXZpZXciIHJl
c3BvbnNlIGZyb20gUnVzcw0KPj4gPj4gSG91c2xleSwgd2Ugd2VyZSB0aGlua2luZyB0byBhZGQg
YW4gYXBwZW5kaXggc2VjdGlvbiBjb250YWluaW5nIGFsbA0KPj4gPj4gdGhlIHBvc3NpYmxlIEFT
Ti4xIHN0cnVjdHVyZXMuICBGb3IgaW5zdGFuY2U6DQo+PiA+PiANCj4+ID4+ICAgWC4gQVNOLjEg
Zm9yIFZhcmlvdXMgQXJ0aWZhY3RzDQo+PiA+PiAgIFguMS4gWmVybyBUb3VjaCBJbmZvcm1hdGlv
bg0KPj4gPj4gICBYLjIuIFNpZ25lZCBaZXJvIFRvdWNoIEluZm9ybWF0aW9uDQo+PiA+PiAgIFgu
My4gRW5jcnlwdGVkIGFuZCBTaWduZWQgWmVybyBUb3VjaCBJbmZvcm1hdGlvbg0KPj4gPj4gICBY
LjQuIE93bmVyIENlcnRpZmljYXRlDQo+PiA+PiAgIFguNS4gRW5jcnlwdGVkIE93bmVyIENlcnRp
ZmljYXRlDQo+PiA+PiAgIFguNi4gT3duZXJzaGlwIFZvdWNoZXINCj4+ID4+ICAgWC43LiBFbmNy
eXB0ZWQgT3duZXJzaGlwIFZvdWNoZXINCj4+ID4+IA0KPj4gPj4gV291bGQgdGhpcyBicmlkZ2Ug
dGhlIGdhcCBmb3IgeW91Pw0KPj4gPg0KPj4gPiBUaGF0IHdvdWxkIGhlbHAgYSBsb3QsIHRoYW5r
cyENCj4+IA0KPj4gSXMgaXQgb2theSBmb3IgbWUgdG8gYmFjayBvdXQgb2YgdGhpcyBvbmU/ICBJ
IGhhZCB0aG91Z2h0IHByZXZpb3VzbHkNCj4+IHRoYXQgUnVzcyB3b3VsZCBwcm92aWRlIHRoZSBB
U04uMSwgYnV0IGhlIHNhaWQgaGUgZGlkbid0IGhhdmUgdGltZSBhbmQsDQo+PiB3ZWxsLCBJJ2Qg
cmF0aGVyIG5vdCB2ZW50dXJlIGludG8gdGhpcyBpZiBpdCBjYW4gYmUgYXZvaWRlZC4uLg0KPg0K
PiBJdCB3aWxsIGJlIG9rYXkgaWYgbm90aGluZyBoYXBwZW5zIG9uIHRoaXMgZnJvbnQuICAoWW91
J3ZlIGFscmVhZHkgcHV0DQo+IGluIGEgaHVnZSBhbW91bnQgb2YgZWZmb3J0IGFueXdheSEpDQoN
Ck9rYXkgKGl0ZW0gY2xvc2VkKS4NCg0KDQoNCg0KPiBIdWdlIHRoYW5rcyBmb3IgYWxsIHlvdXIg
d29yayBvbiB0aGlzIC0tIGhvcGVmdWxseSB0aGUgZW5kIGlzIGluIHNpZ2h0IQ0KPg0KPiAtQmVu
amFtaW4NCg0KWW91IGJldCwgaXQgd2FzIG15IHBsZWFzdXJlLiAgSSBob3BlIHRvIHRoYW5rIHlv
dSBpbiBwZXJzb24gc29tZXRpbWUuDQoNCg0KQ2hlZXJzLA0KS2VudA0KDQoNCg0KDQoNCg==


From nobody Mon Jan  7 21:43:29 2019
Return-Path: <bill.wu@huawei.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A6E07131067 for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 21:43:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 1yiLLO5tgLYU for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 21:43:26 -0800 (PST)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (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 1D334129A87 for <netconf@ietf.org>; Mon,  7 Jan 2019 21:43:26 -0800 (PST)
Received: from lhreml702-cah.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id 179DA2213C076B8B2F8D for <netconf@ietf.org>; Tue,  8 Jan 2019 05:43:24 +0000 (GMT)
Received: from NKGEML414-HUB.china.huawei.com (10.98.56.75) by lhreml702-cah.china.huawei.com (10.201.108.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 8 Jan 2019 05:43:23 +0000
Received: from NKGEML513-MBX.china.huawei.com ([169.254.1.172]) by nkgeml414-hub.china.huawei.com ([10.98.56.75]) with mapi id 14.03.0415.000; Tue, 8 Jan 2019 13:43:18 +0800
From: Qin Wu <bill.wu@huawei.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Review of draft-ietf-netconf-restconf-notif-11
Thread-Index: AdSnFQ5Z3HWr5jjfQbudBX+zb68cBQ==
Date: Tue, 8 Jan 2019 05:43:18 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABA9B1CA6D8@nkgeml513-mbx.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.138.33.244]
Content-Type: multipart/alternative; boundary="_000_B8F9A780D330094D99AF023C5877DABA9B1CA6D8nkgeml513mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Cf5X9K6OLmb1WebU_FCNMdviBlM>
Subject: [Netconf] Review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 05:43:29 -0000

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6D8nkgeml513mbxchi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi:
I am assigned as acting shepherd to assist Kent to review draft-ietf-netcon=
f-restconf-notif-11
and have the following comments:
1.Clean up configured subscription specific notification such as subscripti=
on-modified, subscription-terminated. My impression is subscription-
modified, subscription-terminated as state change notification are only app=
licable to configured subscription. If the intention is to introduce
notification corresponding to establish-subscription or modify-subscription=
, separate notification name should be made.
2.Coexist of event stream discovery support
   by querying the "streams" container of ietf-subscribed-
   notification.yang and event stream discovery Support by querying the
   "streams" container of ietf-restconf-monitoring.yang in [RFC8040] should=
 be discussed and
3. Additional text is required to discuss how  the server ensure only said
client accesses the resource via URL in the security consideration section.
4. Run ID nits tool and found 2 errors and 8 warnings as follows:
"
  Checking nits according to https://www.ietf.org/id-info/checklist :
  -------------------------------------------------------------------------=
---

  ** There are 10 instances of too long lines in the document, the longest
     one being 37 characters in excess of 72.


  Miscellaneous warnings:
  -------------------------------------------------------------------------=
---

  =3D=3D The copyright year in the IETF Trust and authors Copyright Line do=
es not
     match the current year

  =3D=3D Line 206 has weird spacing: '...ription  estab...'

  =3D=3D Line 225 has weird spacing: '... stream   esta...'

  =3D=3D Line 228 has weird spacing: '...ription    ret...'

  =3D=3D Line 230 has weird spacing: '... stream   modi...'

  -- The document date (December 13, 2018) is 25 days in the past.  Is this
     intentional?


  Checking references for intended status: Proposed Standard
  -------------------------------------------------------------------------=
---

     (See RFCs 3967 and 4897 for information about using normative referenc=
es
     to lower-maturity documents in RFCs)

  =3D=3D Unused Reference: 'RFC5277' is defined on line 535, but no explici=
t
     reference was found in the text

  =3D=3D Unused Reference: 'RFC7230' is defined on line 559, but no explici=
t
     reference was found in the text

  =3D=3D Outdated reference: A later version (-20) exists of
     draft-ietf-netconf-subscribed-notifications-13

  ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446)

"
4. There are 7 errors in YANG validation output.
5. Tree diagram output doesn't show in the section 6.

Note than I have talked with authors on most of these comments. I believe a=
 new version will
Come soon to address these comments.

-Qin

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6D8nkgeml513mbxchi_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:10.5pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple" style=3D"text-justify-t=
rim:punctuation">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I am assigned as acting shepher=
d to assist Kent to review draft-ietf-netconf-restconf-notif-11<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">and have the following comments=
:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">1.Clean up configured subscript=
ion specific notification such as subscription-modified, subscription-termi=
nated. My impression is subscription-<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">modified, subscription-terminat=
ed as state change notification are only applicable to configured subscript=
ion. If the intention is to introduce
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">notification corresponding to e=
stablish-subscription or modify-subscription, separate notification name sh=
ould be made.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">2.Coexist of event stream disco=
very support<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp; by querying the &q=
uot;streams&quot; container of ietf-subscribed-<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp; notification.yang =
and event stream discovery Support by querying the<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp; &quot;streams&quot=
; container of ietf-restconf-monitoring.yang in [RFC8040] should be discuss=
ed and
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">3. Additional text is required =
to discuss how&nbsp; the server ensure only said
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">client accesses the resource vi=
a URL in the security consideration section.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">4. Run ID nits tool and found 2=
 errors and 8 warnings as follows:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; Checking nits according =
to https://www.ietf.org/id-info/checklist :<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ------------------------=
----------------------------------------------------<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ** There are 10 instance=
s of too long lines in the document, the longest<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; one be=
ing 37 characters in excess of 72.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; Miscellaneous warnings:<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ------------------------=
----------------------------------------------------<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D The copyright yea=
r in the IETF Trust and authors Copyright Line does not<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; match =
the current year<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 206 has weir=
d spacing: '...ription&nbsp; estab...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 225 has weir=
d spacing: '... stream&nbsp;&nbsp; esta...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 228 has weir=
d spacing: '...ription&nbsp;&nbsp;&nbsp; ret...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 230 has weir=
d spacing: '... stream&nbsp; &nbsp;modi...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; -- The document date (De=
cember 13, 2018) is 25 days in the past.&nbsp; Is this<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; intent=
ional?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; Checking references for =
intended status: Proposed Standard<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ------------------------=
----------------------------------------------------<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; (See R=
FCs 3967 and 4897 for information about using normative references<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; to low=
er-maturity documents in RFCs)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Unused Reference:=
 'RFC5277' is defined on line 535, but no explicit<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; refere=
nce was found in the text<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Unused Reference:=
 'RFC7230' is defined on line 559, but no explicit<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; refere=
nce was found in the text<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Outdated referenc=
e: A later version (-20) exists of<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; draft-=
ietf-netconf-subscribed-notifications-13<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ** Obsolete normative re=
ference: RFC 5246 (Obsoleted by RFC 8446)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">4. There are 7 errors in YANG v=
alidation output.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">5. Tree diagram output doesn&#8=
217;t show in the section 6.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Note than I have talked with au=
thors on most of these comments. I believe a new version will<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Come soon to address these comm=
ents.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">-Qin<o:p></o:p></span></p>
</div>
</body>
</html>

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6D8nkgeml513mbxchi_--


From nobody Mon Jan  7 21:43:54 2019
Return-Path: <bill.wu@huawei.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C554B131067 for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 21:43:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 q33TgcqvLafv for <netconf@ietfa.amsl.com>; Mon,  7 Jan 2019 21:43:50 -0800 (PST)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (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 2B04F129A87 for <netconf@ietf.org>; Mon,  7 Jan 2019 21:43:50 -0800 (PST)
Received: from lhreml709-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id CBBFCA84726B88065F01 for <netconf@ietf.org>; Tue,  8 Jan 2019 05:43:48 +0000 (GMT)
Received: from NKGEML412-HUB.china.huawei.com (10.98.56.73) by lhreml709-cah.china.huawei.com (10.201.108.32) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 8 Jan 2019 05:43:48 +0000
Received: from NKGEML513-MBX.china.huawei.com ([169.254.1.172]) by nkgeml412-hub.china.huawei.com ([10.98.56.73]) with mapi id 14.03.0415.000; Tue, 8 Jan 2019 13:43:43 +0800
From: Qin Wu <bill.wu@huawei.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Review of draft-ietf-netconf-netconf-event-notifications-15
Thread-Index: AdSnFR0kZXTKNt3GSpKvGLn4+Ir6Fg==
Date: Tue, 8 Jan 2019 05:43:42 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABA9B1CA6E8@nkgeml513-mbx.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.138.33.244]
Content-Type: multipart/alternative; boundary="_000_B8F9A780D330094D99AF023C5877DABA9B1CA6E8nkgeml513mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/mz5Unhvxz-dUG9HefhErNXUWuo4>
Subject: [Netconf] Review of draft-ietf-netconf-netconf-event-notifications-15
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 05:43:53 -0000

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6E8nkgeml513mbxchi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi, All:
I am assigned as acting shepherd to assist Kent to review draft-ietf-netcon=
f-netconf-event-notifications-15
and have the following comments:
1. I see event record can be sent via notification for dynamic subscription=
 based on section 2.6 of draft-ietf-netconf-subscribed-notifications-19, bu=
t I
didn't see subscription state notifications can be sent for dynamic subscri=
ption based on section 2.7 of draft-ietf-netconf-subscribed-
notifications-19. If this is true, Configured subscription example should b=
e cleaned up in the appendix.
2. By reading section 10, it is not clear which document should be updated =
to
support notification after a successful "establish-subscription", RFC6241 i=
tself, or this document?
3. Running nits tools, there are the following errors and warnings:
"
  Checking nits according to https://www.ietf.org/id-info/checklist :
  -------------------------------------------------------------------------=
---

  ** The document seems to lack an IANA Considerations section.  (See Secti=
on
     2.2 of https://www.ietf.org/id-info/checklist for how to handle the ca=
se
     when there are no actions for IANA.)


  Miscellaneous warnings:
  -------------------------------------------------------------------------=
---

  =3D=3D The copyright year in the IETF Trust and authors Copyright Line do=
es not
     match the current year

  =3D=3D Line 195 has weird spacing: '...ription  estab...'

  =3D=3D Line 199 has weird spacing: '...ription    res...'

  =3D=3D Line 211 has weird spacing: '... stream   esta...'

  =3D=3D Line 214 has weird spacing: '...ription    ret...'

  =3D=3D Line 216 has weird spacing: '... stream   modi...'
"
4. RFC6241 needs to be updated but it is not listed on the title page heade=
r.

Note that I have talked with authors on most of these comments, I believe a=
 new version will come soon to address these comments.

-Qin

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6E8nkgeml513mbxchi_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:10.5pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple" style=3D"text-justify-t=
rim:punctuation">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi, All:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I am assigned as acting shepher=
d to assist Kent to review draft-ietf-netconf-netconf-event-notifications-1=
5
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">and have the following comments=
:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">1. I see event record can be se=
nt via notification for dynamic subscription based on section 2.6 of draft-=
ietf-netconf-subscribed-notifications-19, but I
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">didn't see subscription state n=
otifications can be sent for dynamic subscription based on section 2.7 of d=
raft-ietf-netconf-subscribed-<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">notifications-19. If this is tr=
ue, Configured subscription example should be cleaned up in the appendix.<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">2. By reading section 10, it is=
 not clear which document should be updated to
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">support notification after a su=
ccessful &quot;establish-subscription&quot;, RFC6241 itself, or this docume=
nt?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">3. Running nits tools, there ar=
e the following errors and warnings:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; Checking nits according =
to https://www.ietf.org/id-info/checklist :<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ------------------------=
----------------------------------------------------<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ** The document seems to=
 lack an IANA Considerations section.&nbsp; (See Section<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; 2.2 of=
 https://www.ietf.org/id-info/checklist for how to handle the case<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; when t=
here are no actions for IANA.)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; Miscellaneous warnings:<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; ------------------------=
----------------------------------------------------<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D The copyright yea=
r in the IETF Trust and authors Copyright Line does not<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp; match =
the current year<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 195 has weir=
d spacing: '...ription&nbsp; estab...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 199 has weir=
d spacing: '...ription &nbsp;&nbsp;&nbsp;res...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 211 has weir=
d spacing: '... stream&nbsp;&nbsp; esta...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 214 has weir=
d spacing: '...ription&nbsp;&nbsp;&nbsp; ret...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; =3D=3D Line 216 has weir=
d spacing: '... stream&nbsp;&nbsp; modi...'<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&#8221;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">4. RFC6241 needs to be updated =
but it is not listed on the title page header.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Note that I have talked with au=
thors on most of these comments, I believe a new version will come soon to =
address these comments.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">-Qin<o:p></o:p></span></p>
</div>
</body>
</html>

--_000_B8F9A780D330094D99AF023C5877DABA9B1CA6E8nkgeml513mbxchi_--


From nobody Tue Jan  8 10:27:30 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7A73B130F72 for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 10:27:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level: 
X-Spam-Status: No, score=-1.99 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 A6ojlW3r_-5J for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 10:27:26 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 779D2130F6D for <netconf@ietf.org>; Tue,  8 Jan 2019 10:27:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:MIME-Version:Message-ID:Date: Subject:To:From:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=l69JtpQfgF+jAcDK5GT2PekDFM14xIGQ4uuGj4j3UN0=; b=zHuQTKQWnFpyDtAsKWViD6yLP/ ZyiK/ZUkJb0sGot79efF7D8uTdc3XbK+ONyUUEA5Phl+zwO7cT4aioqSo8GqwTvyEcGliv7SjcUEk +HlnSsjsM/+XEpVgGJFh1dW8My/i/Q9Zpd8hSjwSoMr2gvih1j5tCbWjfqxNwzTqPDgYo90NGSwoL 5zI/b49zlP8cK3286+EpUPjccU1ZHpVXJaLIjskRct7A+j86RpSPA2XgxlJ2w7P86AK6UxmuQKius WQQAYrTV6scdGJljsKGRuMnSYvcbZxFVNoInHKcArZaR7HYljp9V1AYxIEucwvmltssIv4iJL8dZV VozwvYNg==;
Received: from hansfords.plus.com ([84.92.116.209]:54881 helo=Vanguard) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1ggw5z-00D42h-KY for netconf@ietf.org; Tue, 08 Jan 2019 18:27:23 +0000
From: <jonathan@hansfords.net>
To: <netconf@ietf.org>
Date: Tue, 8 Jan 2019 18:27:24 -0000
Message-ID: <011801d4a77f$cdad5140$6907f3c0$@hansfords.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0119_01D4A77F.CDAFC240"
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-gb
Thread-Index: AdSneoGz79LxA9jdQkC03Q+X6rX2jw==
X-Antivirus: Avast (VPS 190108-2, 08/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/pYc_1OC_UJjqxxiSwqtgs8wZcJc>
Subject: [Netconf] NETCONF persist-id
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 18:27:29 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0119_01D4A77F.CDAFC240
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi,

 

RFC6241 introduced <persist> and <persist-id> parameters to the commit
operation for NETCONF.

 

In section 7.8 in erratum 5397 it states:

If a NETCONF server receives a <close-session> request while processing a
confirmed commit (Section 8.4) for that session, regardless of whether the
confirmed commit included a <persist> element, it MUST restore the
configuration to its state before the confirmed commit was issued.

 

In section 7.9 in erratum 5397 it states:

If a NETCONF server receives a <kill-session> request while processing a
confirmed commit (Section 8.4) for that session, regardless of whether the
confirmed commit included a <persist> element, it MUST restore the
configuration to its state before the confirmed commit was issued.

 

In section 8.4.1 in erratum 3821 it states:

If the <persist> element is not given in the confirmed commit operation, any
follow-up commit and the confirming commit MUST be issued on the same
session that issued the confirmed commit. If the <persist> element is given
in the confirmed <commit> operation, a follow-up commit and the confirming
commit can be given on any session, and they MUST include a <persist-id>
element with a value equal to the given value of the <persist> element.

 

If the server also advertises the :startup capability, a <copy-config> from
running to startup is also necessary to save the changes to startup. If the
session issuing a sequence of one or more confirmed commits is terminated
for any reason before the confirm timeout expires, the server MUST restore
the configuration to its state before the sequence of confirmed commits was
issued, unless the last confirmed commit also included a <persist> element.

 

In section 8.4.5.1 in erratum 3823 it states:

persist:

Make the confirmed commit survive a session termination, and set a token on
the ongoing sequence of confirmed commits.

 

In Appendix C on page 102 it states:

leaf persist {

if-feature confirmed-commit;

type string;

description

"This parameter is used to make a confirmed commit persistent.  A persistent
confirmed commit is not aborted if the NETCONF session terminates.  The only
way to abort a persistent confirmed commit is to let the timer expire, or to
use the <cancel-commit> operation. The value of this parameter is a token
that must be given in the 'persist-id' parameter of <commit> or
<cancel-commit> operations in order to confirm or cancel the persistent
confirmed commit. The token should be a random string.";

reference "RFC 6241, Section 8.3.4.1";

}

 

It would appear the persist-id is intended to allow a commit operation to
survive a session termination, presumably regardless of whether that
termination results from a <close-session> or <kill-session>. However,
section 7.6 states "An <unlock> operation will not succeed if . the session
issuing the <unlock> operation is not the same session that obtained the
lock", and there is no <persist-id> element for <unlock>. This implies
<lock> cannot be used with a confirmed commit sequence that includes the
termination of the initiating session.

 

Should a <persist-id> element be added to <unlock>, and a new erratum be
raised against sections 7.8 and 7.8 to rescind the previous erratum and
state that any session termination of a persistent confirmed commit will NOT
restore the configuration to its state before the confirmed commit was
issued but continue the persistence until either a timeout or a
<cancel-commit>?

 

Jonathan



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

------=_NextPart_000_0119_01D4A77F.CDAFC240
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dus-ascii"><meta name=3DGenerator content=3D"Micros=
oft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;}
=2EMsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-GB link=3D"#0563C1=
" vlink=3D"#954F72"><div class=3DWordSection1><p class=3DMsoNormal>Hi,<o:p>=
</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>RF=
C6241 introduced &lt;persist&gt; and &lt;persist-id&gt; parameters to the c=
ommit operation for NETCONF.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;=
</o:p></p><p class=3DMsoNormal>In section 7.8 in erratum 5397 it states:<o:=
p></o:p></p><p class=3DMsoNormal style=3D'margin-left:36.0pt'>If a NETCONF =
server receives a &lt;close-session&gt; request while processing a confirme=
d commit (Section 8.4) for that session, regardless of whether the confirme=
d commit included a &lt;persist&gt; element, it MUST restore the configurat=
ion to its state before the confirmed commit was issued.<o:p></o:p></p><p c=
lass=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>In section 7.9 i=
n erratum 5397 it states:<o:p></o:p></p><p class=3DMsoNormal style=3D'margi=
n-left:36.0pt'>If a NETCONF server receives a &lt;kill-session&gt; request =
while processing a confirmed commit (Section 8.4) for that session, regardl=
ess of whether the confirmed commit included a &lt;persist&gt; element, it =
MUST restore the configuration to its state before the confirmed commit was=
 issued.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=
=3DMsoNormal>In section 8.4.1 in erratum 3821 it states:<o:p></o:p></p><p c=
lass=3DMsoNormal style=3D'margin-left:36.0pt'>If the &lt;persist&gt; elemen=
t is not given in the confirmed commit operation, any follow-up commit and =
the confirming commit MUST be issued on the same session that issued the co=
nfirmed commit. If the &lt;persist&gt; element is given in the confirmed &l=
t;commit&gt; operation, a follow-up commit and the confirming commit can be=
 given on any session, and they MUST include a &lt;persist-id&gt; element w=
ith a value equal to the given value of the &lt;persist&gt; element.<o:p></=
o:p></p><p class=3DMsoNormal style=3D'margin-left:36.0pt'><o:p>&nbsp;</o:p>=
</p><p class=3DMsoNormal style=3D'margin-left:36.0pt'>If the server also ad=
vertises the :startup capability, a &lt;copy-config&gt; from running to sta=
rtup is also necessary to save the changes to startup. If the session issui=
ng a sequence of one or more confirmed commits is terminated for any reason=
 before the confirm timeout expires, the server MUST restore the configurat=
ion to its state before the sequence of confirmed commits was issued, unles=
s the last confirmed commit also included a &lt;persist&gt; element.<o:p></=
o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>In s=
ection 8.4.5.1 in erratum 3823 it states:<o:p></o:p></p><p class=3DMsoNorma=
l style=3D'margin-left:36.0pt'>persist:<o:p></o:p></p><p class=3DMsoNormal =
style=3D'margin-left:72.0pt'>Make the confirmed commit survive a session te=
rmination, and set a token on the ongoing sequence of confirmed commits.<o:=
p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>=
In Appendix C on page 102 it states:<o:p></o:p></p><p class=3DMsoNormal sty=
le=3D'margin-left:36.0pt'>leaf persist {<o:p></o:p></p><p class=3DMsoNormal=
 style=3D'margin-left:72.0pt'>if-feature confirmed-commit;<o:p></o:p></p><p=
 class=3DMsoNormal style=3D'margin-left:72.0pt'>type string;<o:p></o:p></p>=
<p class=3DMsoNormal style=3D'margin-left:72.0pt'>description<o:p></o:p></p=
><p class=3DMsoNormal style=3D'margin-left:108.0pt'>&quot;This parameter is=
 used to make a confirmed commit persistent.&nbsp; A persistent confirmed c=
ommit is not aborted if the NETCONF session terminates.&nbsp; The only way =
to abort a persistent confirmed commit is to let the timer expire, or to us=
e the &lt;cancel-commit&gt; operation. The value of this parameter is a tok=
en that must be given in the 'persist-id' parameter of &lt;commit&gt; or &l=
t;cancel-commit&gt; operations in order to confirm or cancel the persistent=
 confirmed commit. The token should be a random string.&quot;;<o:p></o:p></=
p><p class=3DMsoNormal style=3D'margin-left:72.0pt'>reference &quot;RFC 624=
1, Section 8.3.4.1&quot;;<o:p></o:p></p><p class=3DMsoNormal style=3D'margi=
n-left:36.0pt'>}<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p=
 class=3DMsoNormal>It would appear the persist-id is intended to allow a co=
mmit operation to survive a session termination, presumably regardless of w=
hether that termination results from a &lt;close-session&gt; or &lt;kill-se=
ssion&gt;. However, section 7.6 states &#8220;An &lt;unlock&gt; operation w=
ill not succeed if &#8230; the session issuing the &lt;unlock&gt; operation=
 is not the same session that obtained the lock&#8221;, and there is no &lt=
;persist-id&gt; element for &lt;unlock&gt;. This implies &lt;lock&gt; canno=
t be used with a confirmed commit sequence that includes the termination of=
 the initiating session.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:=
p></p><p class=3DMsoNormal>Should a &lt;persist-id&gt; element be added to =
&lt;unlock&gt;, and a new erratum be raised against sections 7.8 and 7.8 to=
 rescind the previous erratum and state that any session termination of a p=
ersistent confirmed commit will NOT restore the configuration to its state =
before the confirmed commit was issued but continue the persistence until e=
ither a timeout or a &lt;cancel-commit&gt;?<o:p></o:p></p><p class=3DMsoNor=
mal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal>Jonathan<o:p></o:p></p></div>=
<div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br />
<table style=3D"border-top: 1px solid #D3D4DE;">
	<tr>
        <td style=3D"width: 55px; padding-top: 13px;"><a href=3D"https://ww=
w.avast.com/sig-email?utm_medium=3Demail&utm_source=3Dlink&utm_campaign=3Ds=
ig-email&utm_content=3Demailclient" target=3D"_blank"><img src=3D"https://i=
pmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-re=
peat-v1.gif" alt=3D"" width=3D"46" height=3D"29" style=3D"width: 46px; heig=
ht: 29px;" /></a></td>
		<td style=3D"width: 470px; padding-top: 12px; color: #41424e; font-size: =
13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Virus-=
free. <a href=3D"https://www.avast.com/sig-email?utm_medium=3Demail&utm_sou=
rce=3Dlink&utm_campaign=3Dsig-email&utm_content=3Demailclient" target=3D"_b=
lank" style=3D"color: #4453ea;">www.avast.com</a>
		</td>
	</tr>
</table><a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" heigh=
t=3D"1"> </a></div></body></html>
------=_NextPart_000_0119_01D4A77F.CDAFC240--


From nobody Tue Jan  8 12:02:17 2019
Return-Path: <muly_i@rad.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EFA4B13115A for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:02:07 -0800 (PST)
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, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=rad365.onmicrosoft.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 BYnoODoSTKfH for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:02:03 -0800 (PST)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03on060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0a::60c]) (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 114B713112B for <netconf@ietf.org>; Tue,  8 Jan 2019 12:02:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rad365.onmicrosoft.com; s=selector1-rad-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M9ik//wPXwvOHYDQE8dWAlVyoTTsTijLwtMC2oCnvYU=; b=Fu81D2IBGDNsYTsXvblImHEmi86LJNDs/4jV/VEK7XjeWkasSEDZqlATOamO9t4WkHHvtXLCKDz3YgmavIpho34UTuX49ewRNsWrT+dQrA3gqiJTH+RH7P27PKFfnaGZxgs40vPxAKn13IC0hfMvwDI4mdlK+7bs+jQ7aFl0LBc=
Received: from AM6PR03MB4552.eurprd03.prod.outlook.com (20.177.34.27) by AM6PR03MB5127.eurprd03.prod.outlook.com (20.178.91.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.14; Tue, 8 Jan 2019 20:02:00 +0000
Received: from AM6PR03MB4552.eurprd03.prod.outlook.com ([fe80::f0b1:7a5e:6586:3baa]) by AM6PR03MB4552.eurprd03.prod.outlook.com ([fe80::f0b1:7a5e:6586:3baa%3]) with mapi id 15.20.1495.011; Tue, 8 Jan 2019 20:02:00 +0000
From: Muly Ilan <muly_i@rad.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Advertisement of imported features
Thread-Index: AdSnjQMY5eKp8OomTrui8VBeVcm7yQ==
Date: Tue, 8 Jan 2019 20:01:59 +0000
Message-ID: <AM6PR03MB45528D27D49E7F090012326BF98A0@AM6PR03MB4552.eurprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=muly_i@rad.com; 
x-originating-ip: [37.142.37.251]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM6PR03MB5127; 6:iNEwhy788JXWG+UvGYdaVeDS+DQNjwMPBFbJLVKySejEunyqw+Q96IBEnOwn4K5d1UJrPoY4jHsvd15xXf2VTVw5r5QhtZ8bNGf5ClbOgi2b8dYjdV6WXv+vRkLtHRzv6Vqsz52QnlVODu1YoTfOtkD7Utm2C2yT3gUsdAFU0ES75qARqCI5VGuKVrz5HtTKMitDa/GlRmiK0lYRlITRob91pJXCZgRoWFee2/fjxymT6DkAkBtdim5JtLsbtEGVWH5iNdLce0hRA3e120TKKTXIM8TGa+Hb0rl76JZbcT3es8B7dTL49O8RTjio2ABXOWEWqcmE0HT2P1HUej3JHX2ZsIoPPAFOIxsGdwk8FT83YH8hZVTn3BqzJi0q//W9k8nT3IckyA6JlDCN15+olWjGvDWOE7rdSs6ffIChik3nA4KdtYdF890Rd/7PHao1ZrO1qadNrfITO4krlbWqyg==; 5:B4CBjrVcYuNtba/ZeQLTokW30T4yf33yjOECJ+KfQ3K29523Osg4Cv3cYcX/TpTxcpxzGOiEFLWG6RxYMLMjsdFKXjv51RNvnt+kW01G4wXZdlVTSQ436g9ECLXv1h04gXIvlLFtp/EDX5+qLww8y8Xu1ZlhDHNEhqYMx0/+Xm8qeTnXaFFMvMJNU8Y+TkXKa5mmopywqjc4b/wVAh7rfg==; 7:+Q8O0gCAmnMEQ3J9nWr32OD7jUPwVniDtB4CjUY722NZ2wgjHR2nIQKZZhT8gPT2JkLdVJT5FjXhSzw9jfLnBi5PUdk8uKx+XHiy/wrGAvEn1Ay4uSLOuoHHuu2i/j9ukd7jEcHFsMM+kQ1/YgdPLA==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 0307ecc0-5c60-4daa-e7e4-08d675a42688
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(49563074)(7193020); SRVR:AM6PR03MB5127; 
x-ms-traffictypediagnostic: AM6PR03MB5127:
x-microsoft-antispam-prvs: <AM6PR03MB5127D7EEE13592FDFF88496CF98A0@AM6PR03MB5127.eurprd03.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(102415395)(6040522)(8220060)(2401047)(8121501046)(3002001)(3231475)(944501520)(4983020)(4982022)(52105112)(93006095)(93001095)(10201501046)(6055026)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:AM6PR03MB5127; BCL:0; PCL:0; RULEID:; SRVR:AM6PR03MB5127; 
x-forefront-prvs: 0911D5CE78
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(366004)(396003)(136003)(189003)(199004)(256004)(33656002)(966005)(5660300001)(45080400002)(106356001)(86362001)(97736004)(186003)(7066003)(25786009)(316002)(26005)(486006)(478600001)(53936002)(71200400001)(6306002)(9686003)(105586002)(3480700005)(54896002)(236005)(54556002)(71190400001)(53376002)(53386004)(2351001)(7696005)(14454004)(476003)(81156014)(81166006)(3846002)(6116002)(1730700003)(7736002)(606006)(99936001)(99286004)(55016002)(6916009)(74316002)(6506007)(66066001)(733005)(102836004)(2906002)(68736007)(2501003)(8676002)(8936002)(861006)(6436002)(9326002)(5640700003)(45103001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR03MB5127; H:AM6PR03MB4552.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: rad.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: JdRnv6j8B6GjByA4RMRvPFr/069tDVHSaS9113VF3jIXzLPhfSsB7cVGxnnKzXJFeTgQXEyHLuj8qHqAk9Axo0ycrVUcPf97yh2RUF/zKJmx/lI1QdrX6oil3aYBIzPg9RzibGs/ZTAiuMYY/lwTldZZ8qMHokDFlI8gsm1mkSQlGkBuu2lpyCn7FQoBzjYsx9TUwPU0bb4/6YyMScPlm8AGVQZRo3p5HXh9EZyqDH9BvGr0zxyw5IpqHwd0fdKxguHHgYBDsHbtv7JFWZGE1DrMpbZXkz0pmod/5QkWmVkdpKDbM9A6jwcFPh43IH0s
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/related; boundary="_004_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: rad.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0307ecc0-5c60-4daa-e7e4-08d675a42688
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2019 20:01:59.9665 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f9047108-cc2c-4e48-97a3-43fad1b3bf9d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5127
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/nEo8RC4FpBRWPyeCC8DiLmADLsw>
Subject: [Netconf] Advertisement of imported features
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 20:02:14 -0000

--_004_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_
Content-Type: multipart/alternative;
 boundary="_000_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_"

--_000_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

Not sure whether import of features from one module to the other is fully s=
upported by YANG and NETCONF.

For example, with these modules:

module alpha {
  namespace "http://example.com/alpha";
  prefix "a";

  feature a-feature;

  leaf aoo {
    if-feature a-feature;
    type string;
  }

  leaf a2 {
    type string;
  }

}


module beta {
  namespace "http://example.com/beta";
  prefix "b";

  import alpha {
    prefix a;
  }

  leaf boo {
    if-feature a:a-feature;
    type string;
  }

  leaf b2 {
    type string;
  }

}

The intension is re-use of the feature "a-feature" in the importing module =
"beta".

Now, how should a server advertise the support of "a-feature" in module "be=
ta"?


1.      YANG 1.0
According to section 5.6.4 of RFC6020 the NETCONF <hello> message is used.
So, I assume the <hello> should contain the following:
<capability>
  http://example.com/beta?module=3Dbeta&amp;features=3Da:a-feature
</capability>

Is the above a valid capability?


2.      YANG 1.1
According to section 5.6.4 of RFC7950 the "ietf-yang-library" defined in RF=
C7895 must be implemented.

The relevant node definition from RFC7895:

       leaf-list feature {
         type yang:yang-identifier;
         description
           "List of all YANG feature names from this module that are
            supported by the server, regardless whether they are defined
            in the module or any included submodule.";
       }

But the pattern of the typedef "yang:yang-identifier" does not permit a pre=
fix.

Can this be fixed in draft-ietf-netconf-rfc7895bis ?


Regards,

Muly


[RAD.jpg]

Muly Ilan
Senior System Architect
M: +972-54-470-1004 | muly_i@rad.com<mailto:muly_i@rad.com>
T:  +972-3-765-7035   | F: +972-3-644-0898

www.rad.com<http://www.rad.com>  |  Follow RAD on LinkedIn<http://www.linke=
din.com/company/7369/>  |  Facebook<http://www.facebook.com/pages/RAD-Data-=
Communications/72479223117>  |  Twitter<http://twitter.com/raddatacomms>  |=
  YouTube<http://www.youtube.com/user/radwebmaster#g/u>








--_000_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:475757695;
	mso-list-type:hybrid;
	mso-list-template-ids:-1037118026 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Not sure whether import of features from one module =
to the other is fully supported by YANG and NETCONF.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">For example, with these modules:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">module alpha {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; namespace &quot;http://example.com/alpha&quot=
;;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; prefix &quot;a&quot;;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; feature a-feature;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; leaf aoo {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; if-feature a-feature;<o:p></o:p><=
/p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; type string;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; }<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; leaf a2 {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; type string;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; }<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">}<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">module beta {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; namespace &quot;http://example.com/beta&quot;=
;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; prefix &quot;b&quot;;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; import alpha {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; prefix a;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; }<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; leaf boo {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; if-feature a:a-feature;<o:p></o:p=
></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; type string;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; }<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp; leaf b2 {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; type string;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; }<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">}<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The intension is re-use of the feature &#8220;a-feat=
ure&#8221; in the importing module &#8220;beta&#8221;.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Now, how should a server advertise the support of &#=
8220;a-feature&#8221; in module &#8220;beta&#8221;?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span dir=3D"LTR"></span>YANG 1.0<o:p></o:p></p>
<p class=3D"MsoNormal">According to section 5.6.4 of RFC6020 the NETCONF &l=
t;hello&gt; message is used.<o:p></o:p></p>
<p class=3D"MsoNormal">So, I assume the &lt;hello&gt; should contain the fo=
llowing:<o:p></o:p></p>
<p class=3D"MsoNormal">&lt;capability&gt;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp; http://example.com/beta?module=3Dbeta&amp;amp=
;features=3Da:a-feature<o:p></o:p></p>
<p class=3D"MsoNormal">&lt;/capability&gt;<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Is the above a valid capability?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><span dir=3D"LTR"></span>YANG 1.1<o:p></o:p></p>
<p class=3D"MsoNormal">According to section 5.6.4 of RFC7950 the &quot;ietf=
-yang-library&quot; defined in RFC7895 must be implemented.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The relevant node definition from RFC7895:<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leaf-list featu=
re {<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typ=
e yang:yang-identifier;<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; des=
cription<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &quot;List of all YANG feature names from this module that are<o:p=
></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; supported by the server, regardless whether they are defined=
<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; in the module or any included submodule.&quot;;<o:p></o:p></=
p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">But the pattern of the typedef &#8220;yang:yang-iden=
tifier&#8221; does not permit a prefix.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Can this be fixed in draft-ietf-netconf-rfc7895bis ?=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Regards,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Muly<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"627" style=3D"width:376.0pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:62.1pt">
<td width=3D"178" valign=3D"top" style=3D"width:106.8pt;padding:0in 5.4pt 0=
in 5.4pt;height:62.1pt">
<p class=3D"MsoNormal"><img width=3D"124" height=3D"74" id=3D"Picture_x0020=
_43" src=3D"cid:image001.jpg@01D4A6B3.192EA0B0" alt=3D"RAD.jpg"><o:p></o:p>=
</p>
</td>
<td width=3D"449" colspan=3D"2" valign=3D"top" style=3D"width:269.2pt;paddi=
ng:0in 5.4pt 0in 5.4pt;height:62.1pt">
<p class=3D"MsoNormal" style=3D"margin-bottom:4.0pt"><b><span style=3D"font=
-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:#5=
95959;letter-spacing:.2pt">Muly Ilan</span></b><span style=3D"color:#595959=
"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:4.0pt"><b><span style=3D"font=
-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:#5=
95959">Senior System Architect</span></b><span style=3D"color:#595959"><o:p=
></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:4.0pt"><span style=3D"font-si=
ze:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:#5959=
59">M: &#43;972-54</span><span dir=3D"RTL"></span><span dir=3D"RTL"></span>=
<span lang=3D"HE" dir=3D"RTL" style=3D"font-size:9.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;color:#595959"><span dir=3D"RTL"></span><s=
pan dir=3D"RTL"></span>-</span><span dir=3D"LTR"></span><span dir=3D"LTR"><=
/span><span style=3D"font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;=
sans-serif&quot;;color:#595959"><span dir=3D"LTR"></span><span dir=3D"LTR">=
</span>470-1004
 | <a href=3D"mailto:muly_i@rad.com"><span style=3D"color:#595959">muly_i@r=
ad.com</span></a></span><span style=3D"color:#1F497D">
</span><span style=3D"font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot=
;sans-serif&quot;;color:#595959">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:4.0pt"><span style=3D"font-si=
ze:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:#5959=
59">T: &nbsp;&#43;972-3</span><span dir=3D"RTL"></span><span dir=3D"RTL"></=
span><span lang=3D"HE" dir=3D"RTL" style=3D"font-size:9.0pt;font-family:&qu=
ot;Arial&quot;,&quot;sans-serif&quot;;color:#595959"><span dir=3D"RTL"></sp=
an><span dir=3D"RTL"></span>-</span><span dir=3D"LTR"></span><span dir=3D"L=
TR"></span><span style=3D"font-size:9.0pt;font-family:&quot;Verdana&quot;,&=
quot;sans-serif&quot;;color:#595959"><span dir=3D"LTR"></span><span dir=3D"=
LTR"></span>765-7035</span><span style=3D"font-size:9.0pt;font-family:&quot=
;Verdana&quot;,&quot;sans-serif&quot;;color:#595959">&nbsp;&nbsp;</span><sp=
an style=3D"font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot;sans-seri=
f&quot;;color:#1F497D">
</span><span style=3D"font-size:9.0pt;font-family:&quot;Verdana&quot;,&quot=
;sans-serif&quot;;color:#595959">| F: &#43;972-3-644-0898</span><o:p></o:p>=
</p>
</td>
</tr>
<tr style=3D"height:19.05pt">
<td width=3D"623" colspan=3D"2" style=3D"width:373.75pt;background:#595959;=
padding:0in 5.4pt 0in 5.4pt;height:19.05pt">
<p class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><a href=
=3D"http://www.rad.com"><span style=3D"font-size:8.0pt;font-family:&quot;Ve=
rdana&quot;,&quot;sans-serif&quot;;color:white">www.rad.com</span></a><span=
 style=3D"font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&=
quot;;color:white">&nbsp;</span><span style=3D"font-size:8.0pt;font-family:=
&quot;Verdana&quot;,&quot;sans-serif&quot;;color:#1F497D">
</span><span style=3D"font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot=
;sans-serif&quot;;color:white">| &nbsp;Follow RAD on
</span><a href=3D"http://www.linkedin.com/company/7369/"><span style=3D"fon=
t-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:w=
hite">LinkedIn</span></a><u><span style=3D"font-size:8.0pt;font-family:&quo=
t;Verdana&quot;,&quot;sans-serif&quot;;color:white">
</span></u><span style=3D"font-size:8.0pt;font-family:&quot;Verdana&quot;,&=
quot;sans-serif&quot;;color:white">&nbsp;| &nbsp;</span><a href=3D"http://w=
ww.facebook.com/pages/RAD-Data-Communications/72479223117" target=3D"_blank=
"><span style=3D"font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans=
-serif&quot;;color:white">Facebook</span></a><u><span style=3D"color:white"=
>
</span></u><span style=3D"color:white">&nbsp;</span><span style=3D"font-siz=
e:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:white"=
>|
</span><span style=3D"color:white">&nbsp;</span><a href=3D"http://twitter.c=
om/raddatacomms"><span style=3D"font-size:8.0pt;font-family:&quot;Verdana&q=
uot;,&quot;sans-serif&quot;;color:white">Twitter</span></a><u><span style=
=3D"color:white">
</span></u><span style=3D"font-size:8.0pt;font-family:&quot;Verdana&quot;,&=
quot;sans-serif&quot;;color:white">&nbsp;| &nbsp;</span><a href=3D"http://w=
ww.youtube.com/user/radwebmaster#g/u" target=3D"_blank"><span style=3D"font=
-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:wh=
ite">YouTube</span></a><u><span style=3D"font-size:8.0pt;font-family:&quot;=
Verdana&quot;,&quot;sans-serif&quot;;color:#1F497D">
</span></u><o:p></o:p></p>
</td>
<td width=3D"4" style=3D"width:2.25pt;padding:0in 0in 0in 0in;height:19.05p=
t">
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</td>
</tr>
<tr>
<td width=3D"178" style=3D"width:106.8pt;padding:0in 0in 0in 0in"></td>
<td width=3D"445" style=3D"width:266.95pt;padding:0in 0in 0in 0in"></td>
<td width=3D"4" style=3D"width:2.25pt;padding:0in 0in 0in 0in"></td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-AU"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_--

--_004_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=9937;
 creation-date="Tue, 08 Jan 2019 20:01:59 GMT";
 modification-date="Tue, 08 Jan 2019 20:01:59 GMT"
Content-ID: <image001.jpg@01D4A6B3.192EA0B0>
Content-Transfer-Encoding: base64

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMraHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
bG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6
Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBo
b3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3NTdDOEMz
NTg0QTExRTRBRUI0Q0EzODQ4NkEyQzJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ3NTdD
OEM0NTg0QTExRTRBRUI0Q0EzODQ4NkEyQzJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmlu
c3RhbmNlSUQ9InhtcC5paWQ6RDc1N0M4QzE1ODRBMTFFNEFFQjRDQTM4NDg2QTJDMkMiIHN0UmVm
OmRvY3VtZW50SUQ9InhtcC5kaWQ6RDc1N0M4QzI1ODRBMTFFNEFFQjRDQTM4NDg2QTJDMkMiLz4g
PC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9
InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
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
P/iX+qfL0QQ5roggaIIGiCP/2Q==

--_004_AM6PR03MB45528D27D49E7F090012326BF98A0AM6PR03MB4552eurp_--


From nobody Tue Jan  8 12:17:49 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 693A0131024 for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:17:47 -0800 (PST)
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, 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 zJ7e9rB_P9WD for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:17:45 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 44E8A130F96 for <netconf@ietf.org>; Tue,  8 Jan 2019 12:17:45 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 3476B1AE02BB; Tue,  8 Jan 2019 21:17:44 +0100 (CET)
Date: Tue, 08 Jan 2019 21:17:44 +0100 (CET)
Message-Id: <20190108.211744.668138017756360782.mbj@tail-f.com>
To: muly_i@rad.com
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <AM6PR03MB45528D27D49E7F090012326BF98A0@AM6PR03MB4552.eurprd03.prod.outlook.com>
References: <AM6PR03MB45528D27D49E7F090012326BF98A0@AM6PR03MB4552.eurprd03.prod.outlook.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/XwZy31r-9FsIaGOv2mFVlHKvJyY>
Subject: Re: [Netconf] Advertisement of imported features
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 20:17:47 -0000

Hi,

Muly Ilan <muly_i@rad.com> wrote:
> Hi,
> 
> Not sure whether import of features from one module to the other is
> fully supported by YANG and NETCONF.
> 
> For example, with these modules:
> 
> module alpha {
>   namespace "http://example.com/alpha";
>   prefix "a";
> 
>   feature a-feature;
> 
>   leaf aoo {
>     if-feature a-feature;
>     type string;
>   }
> 
>   leaf a2 {
>     type string;
>   }
> 
> }
> 
> 
> module beta {
>   namespace "http://example.com/beta";
>   prefix "b";
> 
>   import alpha {
>     prefix a;
>   }
> 
>   leaf boo {
>     if-feature a:a-feature;
>     type string;
>   }
> 
>   leaf b2 {
>     type string;
>   }
> 
> }
> 
> The intension is re-use of the feature "a-feature" in the importing
> module "beta".

The statement

  if-feature a:a-feature;

means that the boo leaf if valid if the "a-feature" in module "a" is
supported in the server.

> Now, how should a server advertise the support of "a-feature" in
> module "beta"?

It doesnt; it should advertise module "alpha" with "a-feature", and
"beta" w/o any features.

> 
> 1.      YANG 1.0
> According to section 5.6.4 of RFC6020 the NETCONF <hello> message is
> used.
> So, I assume the <hello> should contain the following:
> <capability>
>   http://example.com/beta?module=beta&amp;features=a:a-feature
> </capability>
> 
> Is the above a valid capability?

No.  It should be:

 <capability>
   http://example.com/alhpa?module=alpha&amp;features=a:a-feature
 </capability>
 <capability>
   http://example.com/beta?module=beta
 </capability>

> 2.      YANG 1.1
> According to section 5.6.4 of RFC7950 the "ietf-yang-library" defined
> in RFC7895 must be implemented.
> 
> The relevant node definition from RFC7895:
> 
>        leaf-list feature {
>          type yang:yang-identifier;
>          description
>            "List of all YANG feature names from this module that are
>             supported by the server, regardless whether they are defined
>             in the module or any included submodule.";
>        }
> 
> But the pattern of the typedef "yang:yang-identifier" does not permit
> a prefix.
> 
> Can this be fixed in draft-ietf-netconf-rfc7895bis ?

As per above, this is not needed.


/martin

> 
> 
> Regards,
> 
> Muly
> 
> 
> [RAD.jpg]
> 
> Muly Ilan
> Senior System Architect
> M: +972-54-470-1004 | muly_i@rad.com<mailto:muly_i@rad.com>
> T:  +972-3-765-7035   | F: +972-3-644-0898
> 
> www.rad.com<http://www.rad.com> | Follow RAD on
> LinkedIn<http://www.linkedin.com/company/7369/> |
> Facebook<http://www.facebook.com/pages/RAD-Data-Communications/72479223117>
> | Twitter<http://twitter.com/raddatacomms> |
> YouTube<http://www.youtube.com/user/radwebmaster#g/u>
> 
> 
> 
> 
> 
> 
> 


From nobody Tue Jan  8 12:39:45 2019
Return-Path: <muly_i@rad.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6580813113A for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:39:43 -0800 (PST)
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, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=rad365.onmicrosoft.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 mXPLqABd1Sp3 for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 12:39:40 -0800 (PST)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10085.outbound.protection.outlook.com [40.107.1.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 569031310E6 for <netconf@ietf.org>; Tue,  8 Jan 2019 12:39:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rad365.onmicrosoft.com; s=selector1-rad-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FPt3lnNA5HB2y4bZDKKFsUDDfkEJYbdkbteA9Xym1Hk=; b=YaYTIFyUBw8ysfdDMOno5ENAuxYGbDr1aVaumNEmEktUDWmWHTbkFCQHpMrnrFwxrCk+qcdve6UV94vujNonrSxahBOcgqRfQ+f6l3vOoDKcRM4dCTHeevf4ndj4OS+q7iut/NI52rjelysiUX0Ra4hrRNQIvVZfLjlVH2pzvk4=
Received: from AM6PR03MB4552.eurprd03.prod.outlook.com (20.177.34.27) by AM6PR03MB4150.eurprd03.prod.outlook.com (20.177.32.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.9; Tue, 8 Jan 2019 20:39:37 +0000
Received: from AM6PR03MB4552.eurprd03.prod.outlook.com ([fe80::f0b1:7a5e:6586:3baa]) by AM6PR03MB4552.eurprd03.prod.outlook.com ([fe80::f0b1:7a5e:6586:3baa%3]) with mapi id 15.20.1495.011; Tue, 8 Jan 2019 20:39:37 +0000
From: Muly Ilan <muly_i@rad.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Advertisement of imported features
Thread-Index: AdSnjQMY5eKp8OomTrui8VBeVcm7yQAAjOUAAAAvi6A=
Date: Tue, 8 Jan 2019 20:39:37 +0000
Message-ID: <AM6PR03MB455233DEEA7ED4870B10872BF98A0@AM6PR03MB4552.eurprd03.prod.outlook.com>
References: <AM6PR03MB45528D27D49E7F090012326BF98A0@AM6PR03MB4552.eurprd03.prod.outlook.com> <20190108.211744.668138017756360782.mbj@tail-f.com>
In-Reply-To: <20190108.211744.668138017756360782.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=muly_i@rad.com; 
x-originating-ip: [37.142.37.251]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM6PR03MB4150; 6:WYy5SLJvjqL58EncwVpTuIJAmCQXTBYYL8j123RcvAqBa6HZmPrw2VzL2ebw8W1VSKIfamIvf1rUR2zJbdeaUg8PW+O/CVctQ0e5lL9h/g5IWov103EE3uV9XNImblN4zWS2yAvDhybCHwDTN1+V+iWWWvmdMJM1js3MC12k3lq/p2f6mfJpEF7MnyngGwJEC1fiLw05fOJG682+XdyTejNo2fEqAej2AkXOWbBpjhY0GxG7VOF4w+eBEBhY0k8m2CA2BzBTxIRSnXTz2zBW0aDXbDGp01GkMK4KEyoUMGzxcouo/tXc+u01dwGYO2NA4JBZAIkICwOuoIwkcdExur63zfEvUzbXvW5UvoDEwzE5o0uSZ9HoAu4ZxG+HMPIHsED/M9tBnsBImj2XwdCbk9Vg9/G9AtUaf5M7zLFjqvxpvz96/rpfMl6/AW2N8CuwI0JAX/Jg/BFd5GRxk/ocvw==; 5:HgLgRkwsPtOxlNZsReg0ClbeTETHVuzlC1c+Hscpp/+/3Gaj4UNo0phm1OWY0CP4kRDBsOYvXHlmQJ85lb+IcpiuERIDPrJVG5P9avQyRhq8yaUFgbXZQFmpqjom5XgNxnIF4wje4B6NlIrdUfQqSceteTDJ6nXS/7XzHXjyHySRgH2L0NnaTAzTlnuiYIu3L6z6p4M1oSqS3XY18tY7MA==; 7:QIaJY/qTYr7Aa4PX35Kp6b1E++biMVa77FdZyz1aQkEa1/Trkef5eca1Gskml+23DIsBbCnJK5U4UC1JPqaPsaz+Y391to2jYs8vEtVnXsvwDJxzCYi00zBHIJ2UtcAT8LiIQ09lSxR4EeEWSe6KeA==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 0ddaceac-365b-45fc-c52f-08d675a967de
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR03MB4150; 
x-ms-traffictypediagnostic: AM6PR03MB4150:
x-microsoft-antispam-prvs: <AM6PR03MB415003BF6C1FA47C254DE59FF98A0@AM6PR03MB4150.eurprd03.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(3002001)(3231475)(944501520)(4982022)(52105112)(93006095)(93001095)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:AM6PR03MB4150; BCL:0; PCL:0; RULEID:; SRVR:AM6PR03MB4150; 
x-forefront-prvs: 0911D5CE78
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(136003)(366004)(346002)(39860400002)(376002)(189003)(199004)(13464003)(575784001)(316002)(55016002)(26005)(6506007)(256004)(86362001)(102836004)(53546011)(6916009)(7736002)(6306002)(229853002)(53936002)(186003)(97736004)(25786009)(6246003)(4326008)(486006)(74316002)(5660300001)(9686003)(6116002)(3846002)(76176011)(7696005)(11346002)(476003)(66066001)(446003)(2906002)(106356001)(33656002)(71200400001)(71190400001)(14454004)(966005)(8676002)(81156014)(81166006)(8936002)(478600001)(68736007)(45080400002)(99286004)(6436002)(305945005)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR03MB4150; H:AM6PR03MB4552.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: rad.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: +T3fRPb7gtQ346ObiGQAw0HDaFxd9MCU2aYgVcaGJsLULH1kOokKcq8FGCGPo+yCwO6s/7zmJQiwfOrneALScIPOQlXCBhLExoeiElMwQlIkzc11KI0dDpCR08NG7SS34iVHprvXXFOWn4gSYmAGqVLIaa6FY+dIzUi9iQVGMfAUfJiqX+FE0DuFImcJ3xZfIMrAkRqu2rj+sQ6KfnQikzTc0LGaqBrgQhVeJCuoy8C7xdp2aSMT+bZXuRqe82ph770RKqDryZjWlmSx+CWmfFcHGNG7qez4bsSY1AL1Srp/1OnVjzGiFYh4jqobypH3
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: rad.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ddaceac-365b-45fc-c52f-08d675a967de
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2019 20:39:37.0278 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f9047108-cc2c-4e48-97a3-43fad1b3bf9d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4150
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/58-ISvYLHP-I6U57Zra0elZJZ9M>
Subject: Re: [Netconf] Advertisement of imported features
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 20:39:43 -0000

Hi Martin,


-----Original Message-----
From: Martin Bjorklund [mailto:mbj@tail-f.com]=20
Sent: 08/01/2019 22:18
To: Muly Ilan
Cc: netconf@ietf.org
Subject: Re: [Netconf] Advertisement of imported features

Hi,

Muly Ilan <muly_i@rad.com> wrote:
> Hi,
>=20
> Not sure whether import of features from one module to the other is
> fully supported by YANG and NETCONF.
>=20
> For example, with these modules:
>=20
> module alpha {
>   namespace "https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%=
3A%2F%2Fexample.com%2Falpha&amp;data=3D01%7C01%7Cmuly_i%40rad.com%7C5b4c431=
9f5f2434a332408d675a6599c%7Cf9047108cc2c4e4897a343fad1b3bf9d%7C1&amp;sdata=
=3DQEesCuMPU6YgQYnpuhAidhLe7nq2ywAV2BjKPn%2BHcV8%3D&amp;reserved=3D0";
>   prefix "a";
>=20
>   feature a-feature;
>=20
>   leaf aoo {
>     if-feature a-feature;
>     type string;
>   }
>=20
>   leaf a2 {
>     type string;
>   }
>=20
> }
>=20
>=20
> module beta {
>   namespace "https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%=
3A%2F%2Fexample.com%2Fbeta&amp;data=3D01%7C01%7Cmuly_i%40rad.com%7C5b4c4319=
f5f2434a332408d675a6599c%7Cf9047108cc2c4e4897a343fad1b3bf9d%7C1&amp;sdata=
=3D8GyM2bkXE0E0YbSfFWYgxRZUsiRFnN%2BPEzpaKX0fX8M%3D&amp;reserved=3D0";
>   prefix "b";
>=20
>   import alpha {
>     prefix a;
>   }
>=20
>   leaf boo {
>     if-feature a:a-feature;
>     type string;
>   }
>=20
>   leaf b2 {
>     type string;
>   }
>=20
> }
>=20
> The intension is re-use of the feature "a-feature" in the importing
> module "beta".

The statement

  if-feature a:a-feature;

means that the boo leaf if valid if the "a-feature" in module "a" is
supported in the server.

> Now, how should a server advertise the support of "a-feature" in
> module "beta"?

It doesnt; it should advertise module "alpha" with "a-feature", and
"beta" w/o any features.

[Muly Ilan]
This was what I initially thought.
But it didn't work with NSO version 4.7 (the leaf "boo" in module "beta" wa=
s not available).

Then I carefully read, again, section 5.6.4.2 of RFC 6020:

"
Servers indicate the names of supported features via the <hello>
message. In <hello> messages, the features are encoded in the
"features" parameter within the URI. The value of this parameter is
a comma-separated list of feature names that the device supports for
the specific module.
"

My understanding of the last sentence is that per module, feature support s=
hould be declared.
In this example "a-feature" is supported by both modules.


>=20
> 1.      YANG 1.0
> According to section 5.6.4 of RFC6020 the NETCONF <hello> message is
> used.
> So, I assume the <hello> should contain the following:
> <capability>
>   https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fexa=
mple.com%2Fbeta%3Fmodule%3Dbeta%26features%3Da%3Aa-feature&amp;data=3D01%7C=
01%7Cmuly_i%40rad.com%7C5b4c4319f5f2434a332408d675a6599c%7Cf9047108cc2c4e48=
97a343fad1b3bf9d%7C1&amp;sdata=3DrDlo2oLhLyQGP6rihXuPCWCXbMHFPiL74ULx9X6401=
E%3D&amp;reserved=3D0
> </capability>
>=20
> Is the above a valid capability?

No.  It should be:

 <capability>
   https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fexam=
ple.com%2Falhpa%3Fmodule%3Dalpha%26features%3Da%3Aa-feature&amp;data=3D01%7=
C01%7Cmuly_i%40rad.com%7C5b4c4319f5f2434a332408d675a6599c%7Cf9047108cc2c4e4=
897a343fad1b3bf9d%7C1&amp;sdata=3DAXq7oIC7VNUlUtAAGQdAI%2B3%2FpKpQqUF03Y9r2=
mCTGlg%3D&amp;reserved=3D0
 </capability>
 <capability>
   https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fexam=
ple.com%2Fbeta%3Fmodule%3Dbeta&amp;data=3D01%7C01%7Cmuly_i%40rad.com%7C5b4c=
4319f5f2434a332408d675a6599c%7Cf9047108cc2c4e4897a343fad1b3bf9d%7C1&amp;sda=
ta=3DPrczrfDxzOypK5VASbbDtrJrdYLYlg5pCfgprSRuIBw%3D&amp;reserved=3D0
 </capability>

> 2.      YANG 1.1
> According to section 5.6.4 of RFC7950 the "ietf-yang-library" defined
> in RFC7895 must be implemented.
>=20
> The relevant node definition from RFC7895:
>=20
>        leaf-list feature {
>          type yang:yang-identifier;
>          description
>            "List of all YANG feature names from this module that are
>             supported by the server, regardless whether they are defined
>             in the module or any included submodule.";
>        }
>=20
> But the pattern of the typedef "yang:yang-identifier" does not permit
> a prefix.
>=20
> Can this be fixed in draft-ietf-netconf-rfc7895bis ?

As per above, this is not needed.


/martin

>=20
>=20
> Regards,
>=20
> Muly
>=20
>=20


[Muly Ilan]=20
Best,

Muly


From nobody Tue Jan  8 13:30:26 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD80E13117D for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 13:30:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level: 
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 m1zE_9LDDkuK for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 13:30:22 -0800 (PST)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 211DE130F96 for <netconf@ietf.org>; Tue,  8 Jan 2019 13:30:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=23504; q=dns/txt; s=iport; t=1546983022; x=1548192622; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=ap9l9qgzVeSamfGpWdBgnP9aPjoomkd/sIR+mwMIa8E=; b=iuRUOpYLoL43HNmsXop08XCDGYqKOJ0cer3TkhXSbb6VZRgAsRvY9ESK NP9bwjnZIqWwMq6SIh7goqVdqcZzI5Aq2RJIUgtaCdZR1diI5963zKFA/ 7DSqXk5smY8JBWJKBuuBrjOpjOxN8RktvidKTO+V0O1brVXfGHwgcYhLt M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAAAOFjVc/5ldJa1jGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgQ1NKWaBAicKg3aIGo1UJZdwFIFnCwE?= =?us-ascii?q?BIwmEQAIXgXsiNAkNAQMBAQIBAQJtHAyFSgEBAQQjVhACAQgOAwMBAg4dAgI?= =?us-ascii?q?CMB0IAQEEAQ0FgldLAYEdZA+pWYEvhC0BgROEaAWMIh0XgUA/gREnDBOCTIM?= =?us-ascii?q?eAoEmJQYwGIJRMYImAolThgEZhkuLLwkChxaKYBiBY4Ukim6JaoQTdYs1AhE?= =?us-ascii?q?UgScfOIFWcBVlAYJBgicXiF+FP3IBgSeHJyuBAQGBHgEB?=
X-IronPort-AV: E=Sophos;i="5.56,455,1539648000";  d="scan'208,217";a="222680321"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by alln-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2019 21:30:15 +0000
Received: from XCH-RCD-005.cisco.com (xch-rcd-005.cisco.com [173.37.102.15]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id x08LUEjg004793 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 8 Jan 2019 21:30:15 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-RCD-005.cisco.com (173.37.102.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 8 Jan 2019 15:30:14 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Tue, 8 Jan 2019 15:30:14 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: Qin Wu <bill.wu@huawei.com>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Review of draft-ietf-netconf-restconf-notif-11
Thread-Index: AdSnFQ5Z3HWr5jjfQbudBX+zb68cBQAjKpOA
Date: Tue, 8 Jan 2019 21:30:13 +0000
Message-ID: <250CDB6D-657A-4604-B663-B17EFB515B80@cisco.com>
References: <B8F9A780D330094D99AF023C5877DABA9B1CA6D8@nkgeml513-mbx.china.huawei.com>
In-Reply-To: <B8F9A780D330094D99AF023C5877DABA9B1CA6D8@nkgeml513-mbx.china.huawei.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.36]
Content-Type: multipart/alternative; boundary="_000_250CDB6D657A4604B663B17EFB515B80ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.37.102.15, xch-rcd-005.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Wd6EusDevOxIhSNIz7kGBPZ1CdU>
Subject: Re: [Netconf] Review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 21:30:25 -0000

--_000_250CDB6D657A4604B663B17EFB515B80ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgUWluLA0KDQpUaGFua3MgZm9yIGRvaW5nIHRoZSByZXZpZXcuDQoNClBsZWFzZSBzZWUgaW5s
aW5lIDxSUj4uDQoNCkZyb206IFFpbiBXdSA8YmlsbC53dUBodWF3ZWkuY29tPg0KRGF0ZTogVHVl
c2RheSwgSmFudWFyeSA4LCAyMDE5IGF0IDEyOjQzIEFNDQpUbzogIm5ldGNvbmZAaWV0Zi5vcmci
IDxuZXRjb25mQGlldGYub3JnPg0KQ2M6IEtlbnQgV2F0c2VuIDxrd2F0c2VuQGp1bmlwZXIubmV0
PiwgIlJlc2hhZCBSYWhtYW4gKHJyYWhtYW4pIiA8cnJhaG1hbkBjaXNjby5jb20+DQpTdWJqZWN0
OiBSZXZpZXcgb2YgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLTExDQoNCkhpOg0K
SSBhbSBhc3NpZ25lZCBhcyBhY3Rpbmcgc2hlcGhlcmQgdG8gYXNzaXN0IEtlbnQgdG8gcmV2aWV3
IGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi0xMQ0KYW5kIGhhdmUgdGhlIGZvbGxv
d2luZyBjb21tZW50czoNCjEuQ2xlYW4gdXAgY29uZmlndXJlZCBzdWJzY3JpcHRpb24gc3BlY2lm
aWMgbm90aWZpY2F0aW9uIHN1Y2ggYXMgc3Vic2NyaXB0aW9uLW1vZGlmaWVkLCBzdWJzY3JpcHRp
b24tdGVybWluYXRlZC4gTXkgaW1wcmVzc2lvbiBpcyBzdWJzY3JpcHRpb24tDQptb2RpZmllZCwg
c3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQgYXMgc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBhcmUg
b25seSBhcHBsaWNhYmxlIHRvIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLiBJZiB0aGUgaW50ZW50
aW9uIGlzIHRvIGludHJvZHVjZQ0Kbm90aWZpY2F0aW9uIGNvcnJlc3BvbmRpbmcgdG8gZXN0YWJs
aXNoLXN1YnNjcmlwdGlvbiBvciBtb2RpZnktc3Vic2NyaXB0aW9uLCBzZXBhcmF0ZSBub3RpZmlj
YXRpb24gbmFtZSBzaG91bGQgYmUgbWFkZS4NCjxSUj4gQmFzZWQgb24gdGhlIGRpc2N1c3Npb25z
IGJldHdlZW4geW91cnNlbGYgYW5kIEVyaWMgb24gbmV0Y29uZi1ub3RpZiAoY2hhbmdlcyBiZWlu
ZyBtYWRlIGluIDEuMyBvZiBTTiksIGlzIHRoaXMgbm93IGNsb3NlZD8NCg0KMi5Db2V4aXN0IG9m
IGV2ZW50IHN0cmVhbSBkaXNjb3Zlcnkgc3VwcG9ydA0KICAgYnkgcXVlcnlpbmcgdGhlICJzdHJl
YW1zIiBjb250YWluZXIgb2YgaWV0Zi1zdWJzY3JpYmVkLQ0KICAgbm90aWZpY2F0aW9uLnlhbmcg
YW5kIGV2ZW50IHN0cmVhbSBkaXNjb3ZlcnkgU3VwcG9ydCBieSBxdWVyeWluZyB0aGUNCiAgICJz
dHJlYW1zIiBjb250YWluZXIgb2YgaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nLnlhbmcgaW4gW1JG
QzgwNDBdIHNob3VsZCBiZSBkaXNjdXNzZWQgYW5kDQo8UlI+IEnigJlsbCBhZGQgc29tZSB0ZXh0
IHdoaWNoIHNheXMgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiDigJxJZiBtb2R1bGUgaWV0
Zi1yZXN0Y29uZi1tb25pdG9yaW5nLnlhbmcgaXMgYWxzbyBzdXBwb3J0ZWQsIHRoZSBzdHJlYW1z
IHdoaWNoIGFyZSBpbiBpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy55YW5nIFNIT1VMRCBh
bHNvIGJlIGluIGlldGYtcmVzdGNvbmYtbW9uaXRvcmluZy55YW5nLuKAnQ0KDQoNCjMuIEFkZGl0
aW9uYWwgdGV4dCBpcyByZXF1aXJlZCB0byBkaXNjdXNzIGhvdyAgdGhlIHNlcnZlciBlbnN1cmUg
b25seSBzYWlkDQpjbGllbnQgYWNjZXNzZXMgdGhlIHJlc291cmNlIHZpYSBVUkwgaW4gdGhlIHNl
Y3VyaXR5IGNvbnNpZGVyYXRpb24gc2VjdGlvbi4NCjxSUj4gSSB3aWxsIGFkZCBzb21lIHRleHQg
d2hpY2ggZXhwbGFpbnMgdGhhdCB0aGUgVVJMIGlzIGVuY3J5cHRlZCwgYW5kIGFsc28gdGhhdCB1
c2VyIGNyZWRlbnRpYWxzIGNhbiBiZSB1c2VkIChzaW1pbGFyIHRvIHdoYXQgaXMgbWVudGlvbmVk
IGluIHNlY3Rpb24gMy40IHdydCBjcmVkZW50aWFscyByZXF1aXJlZCBmb3IgUlBDcyBtb2RpZnkt
c3Vic2NyaXB0aW9uIGV0YykuIFRoaXMgaXMgaW5saW5lIHdpdGggZGlzY3Vzc2lvbnMgd2hpY2gg
b2NjdXJyZWQgZHVyaW5nIFdHTEMuDQoNCg0KNC4gUnVuIElEIG5pdHMgdG9vbCBhbmQgZm91bmQg
MiBlcnJvcnMgYW5kIDggd2FybmluZ3MgYXMgZm9sbG93czoNCiINCiAgQ2hlY2tpbmcgbml0cyBh
Y2NvcmRpbmcgdG8gaHR0cHM6Ly93d3cuaWV0Zi5vcmcvaWQtaW5mby9jaGVja2xpc3QgOg0KICAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAgKiogVGhlcmUgYXJlIDEwIGluc3RhbmNlcyBvZiB0b28g
bG9uZyBsaW5lcyBpbiB0aGUgZG9jdW1lbnQsIHRoZSBsb25nZXN0DQogICAgIG9uZSBiZWluZyAz
NyBjaGFyYWN0ZXJzIGluIGV4Y2VzcyBvZiA3Mi4NCg0KDQogIE1pc2NlbGxhbmVvdXMgd2Fybmlu
Z3M6DQogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICA9PSBUaGUgY29weXJpZ2h0IHllYXIgaW4g
dGhlIElFVEYgVHJ1c3QgYW5kIGF1dGhvcnMgQ29weXJpZ2h0IExpbmUgZG9lcyBub3QNCiAgICAg
bWF0Y2ggdGhlIGN1cnJlbnQgeWVhcg0KDQogID09IExpbmUgMjA2IGhhcyB3ZWlyZCBzcGFjaW5n
OiAnLi4ucmlwdGlvbiAgZXN0YWIuLi4nDQoNCiAgPT0gTGluZSAyMjUgaGFzIHdlaXJkIHNwYWNp
bmc6ICcuLi4gc3RyZWFtICAgZXN0YS4uLicNCg0KICA9PSBMaW5lIDIyOCBoYXMgd2VpcmQgc3Bh
Y2luZzogJy4uLnJpcHRpb24gICAgcmV0Li4uJw0KDQogID09IExpbmUgMjMwIGhhcyB3ZWlyZCBz
cGFjaW5nOiAnLi4uIHN0cmVhbSAgIG1vZGkuLi4nDQoNCiAgLS0gVGhlIGRvY3VtZW50IGRhdGUg
KERlY2VtYmVyIDEzLCAyMDE4KSBpcyAyNSBkYXlzIGluIHRoZSBwYXN0LiAgSXMgdGhpcw0KICAg
ICBpbnRlbnRpb25hbD8NCg0KDQogIENoZWNraW5nIHJlZmVyZW5jZXMgZm9yIGludGVuZGVkIHN0
YXR1czogUHJvcG9zZWQgU3RhbmRhcmQNCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICAgIChT
ZWUgUkZDcyAzOTY3IGFuZCA0ODk3IGZvciBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBub3JtYXRp
dmUgcmVmZXJlbmNlcw0KICAgICB0byBsb3dlci1tYXR1cml0eSBkb2N1bWVudHMgaW4gUkZDcykN
Cg0KICA9PSBVbnVzZWQgUmVmZXJlbmNlOiAnUkZDNTI3NycgaXMgZGVmaW5lZCBvbiBsaW5lIDUz
NSwgYnV0IG5vIGV4cGxpY2l0DQogICAgIHJlZmVyZW5jZSB3YXMgZm91bmQgaW4gdGhlIHRleHQN
Cg0KICA9PSBVbnVzZWQgUmVmZXJlbmNlOiAnUkZDNzIzMCcgaXMgZGVmaW5lZCBvbiBsaW5lIDU1
OSwgYnV0IG5vIGV4cGxpY2l0DQogICAgIHJlZmVyZW5jZSB3YXMgZm91bmQgaW4gdGhlIHRleHQN
Cg0KICA9PSBPdXRkYXRlZCByZWZlcmVuY2U6IEEgbGF0ZXIgdmVyc2lvbiAoLTIwKSBleGlzdHMg
b2YNCiAgICAgZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy0xMw0K
DQogICoqIE9ic29sZXRlIG5vcm1hdGl2ZSByZWZlcmVuY2U6IFJGQyA1MjQ2IChPYnNvbGV0ZWQg
YnkgUkZDIDg0NDYpDQoNCiINCiA8UlI+IFdpbGwgcnVuIElEIG5pdHMgYW5kIGZpeC4NCg0KNC4g
VGhlcmUgYXJlIDcgZXJyb3JzIGluIFlBTkcgdmFsaWRhdGlvbiBvdXRwdXQuDQo8UlI+IFRoZSBl
cnJvcnMgYXJlIGR1ZSB0byBhbiBpc3N1ZSBpbiB5YW5nbGludCB3aGljaCBoYXMgYmVlbiBmaXhl
ZCBpbiAwLjE2LjY5IGJ1dCBkYXRhdHJhY2tlciBpcyB1c2luZyAwLjE0LjgwLiBTZWUgaHR0cHM6
Ly90cmFjLnRvb2xzLmlldGYub3JnL3Rvb2xzL2lldGZkYi90aWNrZXQvMjY2Nw0KDQo1LiBUcmVl
IGRpYWdyYW0gb3V0cHV0IGRvZXNu4oCZdCBzaG93IGluIHRoZSBzZWN0aW9uIDYuDQo8UlI+IEFj
ay4NCg0KUmVnYXJkcywNClJlc2hhZC4NCg0KTm90ZSB0aGFuIEkgaGF2ZSB0YWxrZWQgd2l0aCBh
dXRob3JzIG9uIG1vc3Qgb2YgdGhlc2UgY29tbWVudHMuIEkgYmVsaWV2ZSBhIG5ldyB2ZXJzaW9u
IHdpbGwNCkNvbWUgc29vbiB0byBhZGRyZXNzIHRoZXNlIGNvbW1lbnRzLg0KDQotUWluDQo=

--_000_250CDB6D657A4604B663B17EFB515B80ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <68939157B0410E4CB30C8A00F6798F6B@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
dGV4dC1hbGlnbjpqdXN0aWZ5Ow0KCWZvbnQtc2l6ZToxMC41cHQ7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5
bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
O30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJp
b3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0K
cC5tc29ub3JtYWwwLCBsaS5tc29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUt
bmFtZTptc29ub3JtYWw7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0
OjBjbTsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpz
cGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWls
eToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4uRW1haWxT
dHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJD
YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5hcHBsZS1jb252
ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUtY29udmVydGVkLXNwYWNlO30NCi5N
c29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZTox
MC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1h
cmdpbjo3Mi4wcHQgOTAuMHB0IDcyLjBwdCA5MC4wcHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtw
YWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4t
Q0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdCI+SGkgUWluLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5UaGFua3MgZm9yIGRvaW5nIHRoZSByZXZp
ZXcuDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdCI+UGxlYXNlIHNlZSBpbmxpbmUgJmx0O1JSJmd0Oy48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5n
OjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5Gcm9tOiA8L3NwYW4+PC9iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5RaW4gV3UgJmx0O2JpbGwud3VAaHVh
d2VpLmNvbSZndDs8YnI+DQo8Yj5EYXRlOiA8L2I+VHVlc2RheSwgSmFudWFyeSA4LCAyMDE5IGF0
IDEyOjQzIEFNPGJyPg0KPGI+VG86IDwvYj4mcXVvdDtuZXRjb25mQGlldGYub3JnJnF1b3Q7ICZs
dDtuZXRjb25mQGlldGYub3JnJmd0Ozxicj4NCjxiPkNjOiA8L2I+S2VudCBXYXRzZW4gJmx0O2t3
YXRzZW5AanVuaXBlci5uZXQmZ3Q7LCAmcXVvdDtSZXNoYWQgUmFobWFuIChycmFobWFuKSZxdW90
OyAmbHQ7cnJhaG1hbkBjaXNjby5jb20mZ3Q7PGJyPg0KPGI+U3ViamVjdDogPC9iPlJldmlldyBv
ZiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYtMTE8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+SGk6PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPkkgYW0gYXNzaWdu
ZWQgYXMgYWN0aW5nIHNoZXBoZXJkIHRvIGFzc2lzdCBLZW50IHRvIHJldmlldyBkcmFmdC1pZXRm
LW5ldGNvbmYtcmVzdGNvbmYtbm90aWYtMTE8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+YW5kIGhhdmUgdGhlIGZvbGxvd2luZyBj
b21tZW50czo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyI+MS5DbGVhbiB1cCBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiBzcGVjaWZp
YyBub3RpZmljYXRpb24gc3VjaCBhcyBzdWJzY3JpcHRpb24tbW9kaWZpZWQsIHN1YnNjcmlwdGlv
bi10ZXJtaW5hdGVkLiBNeSBpbXByZXNzaW9uIGlzIHN1YnNjcmlwdGlvbi08L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+bW9kaWZp
ZWQsIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkIGFzIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24g
YXJlIG9ubHkgYXBwbGljYWJsZSB0byBjb25maWd1cmVkIHN1YnNjcmlwdGlvbi4gSWYgdGhlIGlu
dGVudGlvbiBpcyB0byBpbnRyb2R1Y2UNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5ub3RpZmljYXRpb24gY29ycmVzcG9uZGlu
ZyB0byBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIG9yIG1vZGlmeS1zdWJzY3JpcHRpb24sIHNlcGFy
YXRlIG5vdGlmaWNhdGlvbiBuYW1lIHNob3VsZCBiZSBtYWRlLjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4m
bHQ7UlImZ3Q7IEJhc2VkIG9uIHRoZSBkaXNjdXNzaW9ucyBiZXR3ZWVuIHlvdXJzZWxmIGFuZCBF
cmljIG9uIG5ldGNvbmYtbm90aWYgKGNoYW5nZXMgYmVpbmcgbWFkZSBpbiAxLjMgb2YgU04pLCBp
cyB0aGlzIG5vdyBjbG9zZWQ/PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4yLkNvZXhp
c3Qgb2YgZXZlbnQgc3RyZWFtIGRpc2NvdmVyeSBzdXBwb3J0PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNwOyBi
eSBxdWVyeWluZyB0aGUgJnF1b3Q7c3RyZWFtcyZxdW90OyBjb250YWluZXIgb2YgaWV0Zi1zdWJz
Y3JpYmVkLTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsgbm90aWZpY2F0aW9uLnlhbmcgYW5kIGV2ZW50IHN0
cmVhbSBkaXNjb3ZlcnkgU3VwcG9ydCBieSBxdWVyeWluZyB0aGU8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7
ICZxdW90O3N0cmVhbXMmcXVvdDsgY29udGFpbmVyIG9mIGlldGYtcmVzdGNvbmYtbW9uaXRvcmlu
Zy55YW5nIGluIFtSRkM4MDQwXSBzaG91bGQgYmUgZGlzY3Vzc2VkIGFuZA0KPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJ0ZXh0
LWFsaWduOmxlZnQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbHQ7UlImZ3Q7IEni
gJlsbCBhZGQgc29tZSB0ZXh0DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Y29sb3I6YmxhY2siPndoaWNoIHNheXMgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiDigJxJ
ZiBtb2R1bGUgaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nLnlhbmcgaXMgYWxzbyBzdXBwb3J0ZWQs
IHRoZSBzdHJlYW1zIHdoaWNoIGFyZSBpbiBpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy55
YW5nIFNIT1VMRCBhbHNvIGJlIGluIGlldGYtcmVzdGNvbmYtbW9uaXRvcmluZy55YW5nLuKAnSZu
YnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+My4gQWRkaXRpb25hbCB0
ZXh0IGlzIHJlcXVpcmVkIHRvIGRpc2N1c3MgaG93Jm5ic3A7IHRoZSBzZXJ2ZXIgZW5zdXJlIG9u
bHkgc2FpZA0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiPmNsaWVudCBhY2Nlc3NlcyB0aGUgcmVzb3VyY2UgdmlhIFVSTCBpbiB0
aGUgc2VjdXJpdHkgY29uc2lkZXJhdGlvbiBzZWN0aW9uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jmx0O1JSJmd0Ozwvc3Bhbj48c3BhbiBz
dHlsZT0iY29sb3I6YmxhY2siPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2NvbG9yOmJsYWNrIj5JIHdpbGwgYWRkIHNvbWUgdGV4dCB3aGljaCBleHBsYWlucyB0aGF0IHRo
ZSBVUkwgaXMgZW5jcnlwdGVkLCBhbmQgYWxzbyB0aGF0IHVzZXIgY3JlZGVudGlhbHMgY2FuIGJl
IHVzZWQgKHNpbWlsYXIgdG8gd2hhdCBpcyBtZW50aW9uZWQgaW4gc2VjdGlvbiAzLjQgd3J0IGNy
ZWRlbnRpYWxzIHJlcXVpcmVkIGZvciBSUENzIG1vZGlmeS1zdWJzY3JpcHRpb24gZXRjKS4NCiBU
aGlzIGlzIGlubGluZSB3aXRoIGRpc2N1c3Npb25zIHdoaWNoIG9jY3VycmVkIGR1cmluZyBXR0xD
Ljwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+NC4gUnVuIElEIG5pdHMgdG9v
bCBhbmQgZm91bmQgMiBlcnJvcnMgYW5kIDggd2FybmluZ3MgYXMgZm9sbG93czo8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1
b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPiZuYnNwOyBDaGVja2luZyBuaXRzIGFjY29yZGluZyB0byBodHRwczovL3d3dy5p
ZXRmLm9yZy9pZC1pbmZvL2NoZWNrbGlzdCA6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgKiogVGhlcmUgYXJlIDEwIGluc3RhbmNlcyBv
ZiB0b28gbG9uZyBsaW5lcyBpbiB0aGUgZG9jdW1lbnQsIHRoZSBsb25nZXN0PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyBvbmUgYmVpbmcgMzcgY2hhcmFjdGVycyBpbiBleGNlc3Mgb2Yg
NzIuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7IE1pc2NlbGxhbmVvdXMg
d2FybmluZ3M6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDsgPT0gVGhlIGNvcHlyaWdodCB5ZWFyIGluIHRoZSBJRVRGIFRydXN0IGFuZCBh
dXRob3JzIENvcHlyaWdodCBMaW5lIGRvZXMgbm90PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyBtYXRjaCB0aGUgY3VycmVudCB5ZWFyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgPT0g
TGluZSAyMDYgaGFzIHdlaXJkIHNwYWNpbmc6ICcuLi5yaXB0aW9uJm5ic3A7IGVzdGFiLi4uJzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7ID09IExpbmUgMjI1IGhhcyB3ZWlyZCBzcGFjaW5nOiAn
Li4uIHN0cmVhbSZuYnNwOyZuYnNwOyBlc3RhLi4uJzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7
ID09IExpbmUgMjI4IGhhcyB3ZWlyZCBzcGFjaW5nOiAnLi4ucmlwdGlvbiZuYnNwOyZuYnNwOyZu
YnNwOyByZXQuLi4nPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgPT0gTGluZSAyMzAgaGFzIHdl
aXJkIHNwYWNpbmc6ICcuLi4gc3RyZWFtJm5ic3A7ICZuYnNwO21vZGkuLi4nPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj4mbmJzcDsgLS0gVGhlIGRvY3VtZW50IGRhdGUgKERlY2VtYmVyIDEzLCAyMDE4KSBp
cyAyNSBkYXlzIGluIHRoZSBwYXN0LiZuYnNwOyBJcyB0aGlzPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBpbnRlbnRpb25hbD88L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkVOLVVTIj4mbmJzcDsgQ2hlY2tpbmcgcmVmZXJlbmNlcyBmb3IgaW50ZW5kZWQgc3RhdHVz
OiBQcm9wb3NlZCBTdGFuZGFyZDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChTZWUgUkZDcyAzOTY3IGFu
ZCA0ODk3IGZvciBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBub3JtYXRpdmUgcmVmZXJlbmNlczwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdG8gbG93ZXItbWF0dXJpdHkgZG9jdW1lbnRz
IGluIFJGQ3MpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgPT0gVW51c2VkIFJlZmVyZW5jZTog
J1JGQzUyNzcnIGlzIGRlZmluZWQgb24gbGluZSA1MzUsIGJ1dCBubyBleHBsaWNpdDwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVmZXJlbmNlIHdhcyBmb3VuZCBpbiB0aGUgdGV4dDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7ID09IFVudXNlZCBSZWZlcmVuY2U6ICdSRkM3MjMwJyBp
cyBkZWZpbmVkIG9uIGxpbmUgNTU5LCBidXQgbm8gZXhwbGljaXQ8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IHJlZmVyZW5jZSB3YXMgZm91bmQgaW4gdGhlIHRleHQ8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tVVMiPiZuYnNwOyA9PSBPdXRkYXRlZCByZWZlcmVuY2U6IEEgbGF0ZXIgdmVyc2lvbiAoLTIw
KSBleGlzdHMgb2Y8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRyYWZ0LWlldGYtbmV0
Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMtMTM8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNw
OyAqKiBPYnNvbGV0ZSBub3JtYXRpdmUgcmVmZXJlbmNlOiBSRkMgNTI0NiAoT2Jzb2xldGVkIGJ5
IFJGQyA4NDQ2KTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZsdDtSUiZn
dDsgV2lsbCBydW4gSUQgbml0cyBhbmQgZml4LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V
UyI+NC4gVGhlcmUgYXJlIDcgZXJyb3JzIGluIFlBTkcgdmFsaWRhdGlvbiBvdXRwdXQuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQiPiZsdDtSUiZndDsgVGhlIGVycm9ycyBhcmUgZHVlIHRvIGFuIGlzc3VlIGlu
IHlhbmdsaW50IHdoaWNoIGhhcyBiZWVuIGZpeGVkIGluIDAuMTYuNjkgYnV0IGRhdGF0cmFja2Vy
IGlzIHVzaW5nIDAuMTQuODAuIFNlZSBodHRwczovL3RyYWMudG9vbHMuaWV0Zi5vcmcvdG9vbHMv
aWV0ZmRiL3RpY2tldC8yNjY3PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj41LiBUcmVl
IGRpYWdyYW0gb3V0cHV0IGRvZXNu4oCZdCBzaG93IGluIHRoZSBzZWN0aW9uIDYuPG86cD48L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQiPiZsdDtSUiZndDsgQWNrLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQiPlJlZ2FyZHMsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5SZXNo
YWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Tm90ZSB0aGFu
IEkgaGF2ZSB0YWxrZWQgd2l0aCBhdXRob3JzIG9uIG1vc3Qgb2YgdGhlc2UgY29tbWVudHMuIEkg
YmVsaWV2ZSBhIG5ldyB2ZXJzaW9uIHdpbGw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Q29tZSBzb29uIHRvIGFkZHJlc3MgdGhl
c2UgY29tbWVudHMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4tUWluPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_250CDB6D657A4604B663B17EFB515B80ciscocom_--


From nobody Tue Jan  8 15:19:07 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 19CD412E04D; Tue,  8 Jan 2019 15:18:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level: 
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 wWAJKhD4uUHT; Tue,  8 Jan 2019 15:18:57 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3516C12D4F0; Tue,  8 Jan 2019 15:18:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7888; q=dns/txt; s=iport; t=1546989537; x=1548199137; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Ve8bn4pxwlfZ2Npg2LBE8KO1pCOMs6At0yYoEaMp0RY=; b=TjJoqtAQfu/fdaPk0rM2hj+0DpVWuuYh6usm9XCvxrFNfzXC//oTdpu+ Fp5OXfTK2LBCgmykQ9oGM0Idv5R4iRP2W073r8UiWRKK1Gt0nkTM9jS/W pFvrKiLOEgf7YSXHETBLpWU9eRWsN+j+JJ9vfhl6SPubP/AePGrSyUrmq Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AFAACvLzVc/49dJa1aCRkBAQEBAQE?= =?us-ascii?q?BAQEBAQEHAQEBAQEBgVIDAQEBAQELAYFaKWaBAicKg3auAoF7CwEBLIRAAhe?= =?us-ascii?q?BeyI1CA0BAwEBAgEBAm0ohUsGIwQNRRACAQgaAgkdAgICMBUQAgQBDQWDIgG?= =?us-ascii?q?CAaoVfDOKL4ELizQXgUA/gREnH4JMhFcqFyOCTzGCBCICoWcJApF2GIFjhSS?= =?us-ascii?q?Ha4MDiWqQPQIRFIEnIQE1gVZwFWUBgkGCIgUXgQABB40WcoEoiFMBgR4BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,455,1539648000"; d="scan'208";a="500214261"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2019 23:18:49 +0000
Received: from XCH-ALN-006.cisco.com (xch-aln-006.cisco.com [173.36.7.16]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id x08NImXd003283 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 8 Jan 2019 23:18:49 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-ALN-006.cisco.com (173.36.7.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 8 Jan 2019 17:18:48 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Tue, 8 Jan 2019 17:18:48 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)" <rwilton@cisco.com>,  "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-restconf-notif.all@ietf.org" <draft-ietf-netconf-restconf-notif.all@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
Thread-Index: AQHUprCFOch/e2rpE06mX+DnhAHT46WmFGWA
Date: Tue, 8 Jan 2019 23:18:48 +0000
Message-ID: <D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com>
References: <154688301471.23184.11003837983933531435@ietfa.amsl.com>
In-Reply-To: <154688301471.23184.11003837983933531435@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.36]
Content-Type: text/plain; charset="utf-8"
Content-ID: <5699ED8E4563C841B3D9E820E78F63FF@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.36.7.16, xch-aln-006.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/P6s-_yy4wJAnbiqpVjZWNnMNnU8>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jan 2019 23:18:59 -0000

SGkgUm9iLA0KDQpUaGFua3MgYWdhaW4gZm9yIHRoZSByZXZpZXcsIGlubGluZS4NCg0K77u/T24g
MjAxOS0wMS0wNywgMTI6NDMgUE0sICJSb2JlcnQgV2lsdG9uIiA8cndpbHRvbkBjaXNjby5jb20+
IHdyb3RlOg0KDQogICAgUmV2aWV3ZXI6IFJvYmVydCBXaWx0b24NCiAgICBSZXZpZXcgcmVzdWx0
OiBSZWFkeSB3aXRoIElzc3Vlcw0KICAgIA0KICAgIEkgaGF2ZSByZXZpZXdlZCB0aGlzIGRvY3Vt
ZW50IGFzIHBhcnQgb2YgdGhlIFlBTkcgZG9jdG9ycyBkaXJlY3RvcmF0ZSdzDQogICAgb25nb2lu
ZyBlZmZvcnQgdG8gcmV2aWV3IGFsbCBJRVRGIGRvY3VtZW50cyBiZWluZyBwcm9jZXNzZWQgYnkg
dGhlIElFU0cuICBUaGVzZQ0KICAgIGNvbW1lbnRzIHdlcmUgd3JpdHRlbiB3aXRoIHRoZSBpbnRl
bnQgb2YgaW1wcm92aW5nIHRoZSBvcGVyYXRpb25hbCBhc3BlY3RzIG9mDQogICAgdGhlIElFVEYg
ZHJhZnRzLiBDb21tZW50cyB0aGF0IGFyZSBub3QgYWRkcmVzc2VkIGluIGxhc3QgY2FsbCBtYXkg
YmUgaW5jbHVkZWQNCiAgICBpbiBBRCByZXZpZXdzIGR1cmluZyB0aGUgSUVTRyByZXZpZXcuICBE
b2N1bWVudCBlZGl0b3JzIGFuZCBXRyBjaGFpcnMgc2hvdWxkDQogICAgdHJlYXQgdGhlc2UgY29t
bWVudHMganVzdCBsaWtlIGFueSBvdGhlciBsYXN0IGNhbGwgY29tbWVudHMuDQogICAgDQogICAg
VGhpcyBkb2N1bWVudCBhbmQgdGhlIGFzc29jaWF0ZWQgWUFORyBtb2R1bGUgbG9va3MgbGlrZSBp
dCBpcyBpbiBnb29kIHNoYXBlIHRvDQogICAgbWUuDQogICAgDQogICAgVGhlIHR3byBtaW5vciBp
c3N1ZXMgdGhhdCBJIGhhZCB0aGF0IEkgdGhpbmsgbmVlZCB0byBiZSByZXNvbHZlZCBhcmU6DQog
ICAgLSBUaGUgc2VjdGlvbiAzLjQgaGFuZGxpbmcgc3Vic2NyaXB0aW9ucyBieSBhZG1pbiB1c2Vy
cyB3YXNuJ3QgaW50dWl0aXZlIHRvIG1lDQogICAgKHJlbGF0aXZlIHRvIHdoYXQgaXMgc3RhdGVk
IGluIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMpLiANCiAgICBT
cGVjaWZpY2FsbHkgd2hhdCBzaG91bGQgYW4gYWRtaW4gdXNlciBiZSBhbGxvd2VkIHRvIGRvIHZz
IHRoZSBjbGllbnQgdGhhdA0KICAgIGluaXRpYXRlZCB0aGUgc3Vic2NyaXB0aW9uLiAtIFNlY3Rp
b24gNCBvbiBIVFRQMiBRb1Mgc2VlbWVkIHVuY2xlYXIgdG8gbWUuDQo8UlI+IFNlZSBiZWxvdyBm
b3IgcmVzcG9uc2Ugb24gdGhlIGlzc3VlcyBhYm92ZS4NCiAgICANCiAgICBJIHRoaW5rIHRoYXQg
YWxsIG15IG90aGVyIGNvbW1lbnRzIGFyZSByZWFsbHkganVzdCBuaXRzOg0KICAgIA0KICAgIDEp
IFNlY3Rpb24gMy4yIERpc2NvdmVyeSwgbGFzdCBwYXJhZ3JhcGguDQogICAgDQogICAgV291bGQg
aXQgYmUgYmV0dGVyIGZvciB0aGlzIHRvIHJlZmVyZW5jZSBkcmFmdC1pZXRmLW5ldGNvbmYtbm1k
YS1yZXN0Y29uZiwNCiAgICBzZWN0aW9uIDIgYW5kICcveWFuZy1saWJhcnkvZGF0YXN0b3JlJyBk
cmFmdC1pZXRmLW5ldGNvbmYtcmZjNzg5NWJpcywgc2VjdGlvbiAzPw0KPFJSPiBJIGNhbiBhZGQg
c2VjdGlvbiAyIGluIHRoZSByZWZlcmVuY2UgdG8gbm1kYS1yZXN0Y29uZi4gSSBkb24ndCB0aGlu
ayB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBuZWVkIHRvIHJlZmVyZW5jZSA3ODk1L2JpcywgcGxlYXNl
IG5vdGUgdGhhdCBZUCBhbHJlYWR5IHJlZmVyZW5jZXMgNzg5NS4NCiAgICANCiAgICAyKSBSUEMg
dGFibGUgaW4gc2VjdGlvbiAzLjMuICBUaGUgaWRlbnRpdHkgZm9yICJraWxsLXN1YnNjcmlwdGlv
biIgc2hvdWxkDQogICAgcHJvYmFibHkgYmUgImRlbGV0ZS1zdWJzY3JpcHRpb24tZXJyb3IiIHNp
bmNlICJraWxsLXN1YnNjcmlwdGlvbi1lcnJvciIgaXNuJ3QNCiAgICBkZWZpbmVkLg0KPFJSPiBH
b29kIGNhdGNoLg0KICAgIA0KICAgIDMpIERpYWdyYW0gaW4gMy40LiAgSXQgd2Fzbid0IGltbWVk
aWF0ZWx5IG9idmlvdXMgdG8gbWUgdGhhdCB0aGUgdmVydGljYWwgbGluZXMNCiAgICBpbiB0aGUg
bGluZWQgdXAgd2l0aCBjb25uZWN0aW9ucyAoYSkgYW5kIChiKS4gIEknbSBub3Qgc3VyZSB3aGV0
aGVyIGl0IGlzIHdvcnRoDQogICAgYWRkaW5nIGEgY29tbWVudCB0byBtYWtlIHRoaXMgbW9yZSBl
eHBsaWNpdC4gIEkgZmlndXJlZCBpdCBvdXQgd2hpbHN0IHJlYWRpbmcNCiAgICB0aGUgdGV4dCBi
ZWxvdywgcGVyaGFwcyBtb3N0IG90aGVyIHJlYWRlcnMgd291bGQgYWxzbyBkbyBzby4NCjxSUj4g
SSdsbCB0cnkgdG8gbWFrZSBpdCBjbGVhcmVyLg0KICAgIA0KICAgIDQpIFNlY3Rpb24gMy40LCBi
b3R0b20gb2YgcGFnZSA3LCAibXVzdCBiZSBzZW50IHdpdGhpbiAoYikiIC0+ICJNVVNUIGJlIHNl
bnQNCiAgICB3aXRoaW4gKGIpIg0KPFJSPiBZZXMuDQogICAgDQogICAgNSkgU2VjdGlvbiAzLjQ6
DQogICAgICAgbyAgUlBDcyBtb2RpZnktc3Vic2NyaXB0aW9uLCByZXN5bmMtc3Vic2NyaXB0aW9u
IGFuZCBkZWxldGUtDQogICAgICAgICAgc3Vic2NyaXB0aW9uIGNhbiBvbmx5IGJlIGRvbmUgYnkg
dGhlIHNhbWUgUkVTVENPTkYgdXNlcm5hbWUNCiAgICAgICAgICBbUkZDODA0MF0gd2hvIGRpZCB0
aGUgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiwgb3IgYnkgYSBSRVNUQ09ORg0KICAgICAgICAgIHVz
ZXJuYW1lIHdpdGggdGhlIHJlcXVpcmVkIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zLiAgVGhl
IGxhdHRlcg0KICAgICAgICAgIGFsc28gaGFzIGFjY2VzcyB0byB0aGUga2lsbC1zdWJzY3JpcHRp
b24gUlBDLg0KICAgIA0KICAgIEp1c3QgdG8gY2hlY2ssIGlzIGl0IHRydWUgdGhhdCBhbnkgUkVT
VENPTkYgdXNlcm5hbWUgd2l0aCB0aGUgcmVxdWlyZWQNCiAgICBwZXJtaXNzaW9ucyBpcyBhbGxv
d2VkIHRvIGludm9rZSB0aGUgImRlbGV0ZS1zdWJzY3JpcHRpb24iIFJQQz8gIE9yIHNob3VsZCB0
aGlzDQogICAgYmUgcmVzdHJpY3RlZCB0byBzYW1lIFJFU1RDT05GIHVzZXJuYW1lPyAgSW4gZmFj
dCwgSSB3YXMgd29uZGVyaW5nIHdoZXRoZXIgYW4NCiAgICBhZG1pbmlzdHJhdG9yIHNob3VsZCBi
ZSBhbGxvd2VkIHRvIGludm9rZSBtb2RpZnktc3Vic2NyaXB0aW9uIG9yDQogICAgcmVzeW5jLXN1
YnNjcmlwdGlvbiwgb3Igd2hldGhlciB0aGV5IHNob3VsZCBiZSByZXN0cmljdGVkIHRvIGtpbGwt
c3Vic2NyaXB0aW9uDQogICAgb25seT8NCjxSUj4gSSBkbyBub3Qgc2VlIHRoZSBiZW5lZml0IG9m
IHJlc3RyaWN0aW5nIHdoYXQgYW4gYWRtaW4gdXNlciBjYW4gZG8uIEUuZy4gdGhlIGFkbWluIG1h
eSB3YW50IHRvIGRlY3JlYXNlIHRoZSBmcmVxdWVuY3kgb2YgYSBwZXJpb2RpYyBzdWJzY3JpcHRp
b24uIA0KICAgIA0KICAgIDYpIFNlY3Rpb24gNCBpcyB1bmNsZWFyIHRvIG1lOg0KICAgIA0KICAg
ICAtIFRoZSBwYXJhZ3JhcGggc3RhcnRpbmcgInRha2UgYW55IGV4aXN0aW5nIHN1YnNjcmlwdGlv
biAicHJpb3JpdHkiIC4uLiINCiAgICAgc3RhdGVzIHRoYXQgdGhlICJkc2NwIiBmaWVsZCBpcyBj
b3BpZWQgaW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5LCBidXQgSQ0KICAgICBjb3VsZG4n
dCBmaW5kIHN1Y2ggYSBmaWVsZCBpbiBzZWN0aW9uIDUuMyBvZiBSRkM3NTQwLiAgSGVuY2UsIEkg
d2FzIHdvbmRlcmluZw0KICAgICB3aGV0aGVyIHRoaXMgcGFyYWdyYXBoIHNob3VsZG4ndCBpbnN0
ZWFkIGJlIHN0YXRpbmcgdGhlIHRoZSAid2VpZ2h0aW5nIiBmaWVsZA0KICAgICBpcyBjb3BpZWQg
aW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5IGhlYWRlcj8NCiAgICANCiAgICBFLmcuDQog
ICAgT0xEOg0KICAgICAgIG8gIHRha2UgYW55IGV4aXN0aW5nIHN1YnNjcmlwdGlvbiAicHJpb3Jp
dHkiLCBhcyBzcGVjaWZpZWQgYnkgdGhlDQogICAgICAgICAgImRzY3AiIGxlYWYgbm9kZSBpbg0K
ICAgICAgICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9u
c10sIGFuZCBjb3B5IGl0DQogICAgICAgICAgaW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5
LCBbUkZDNzU0MF0gc2VjdGlvbiA1LjMsIGFuZA0KICAgIA0KICAgIE5FVzoNCiAgICAgICBvICB0
YWtlIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gInByaW9yaXR5IiwgYXMgc3BlY2lmaWVkIGJ5
IHRoZQ0KICAgICAgICAgICJ3ZWlnaHRpbmciIGxlYWYgbm9kZSBpbg0KICAgICAgICAgIFtJLUQu
ZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10sIGFuZCBjb3B5IGl0
DQogICAgICAgICAgaW50byB0aGUgSFRUUDIgc3RyZWFtIHdlaWdodCwgW1JGQzc1NDBdIHNlY3Rp
b24gNS4zLCBhbmQNCiA8UlI+IEdvb2QgY2F0Y2guDQogICANCiAgICBUaGVyZSBpcyBhbHNvIG5v
IG1lbnRpb24gb2YgaG93IHRoZSAiRSIgKEV4Y2x1c2l2ZSkgYml0IHNob3VsZCBiZSBzZXQgaW4g
dGhlDQogICAgSFRUUDIgc3RyZWFtIGhlYWRlcnMuICBJcyB0aGlzIGFuIG9taXNzaW9uPw0KPFJS
PiBJdCBpcyBhbiBvbWlzc2lvbiwgaW1wbGllZCB0aGF0IGl0J3Mgbm90IHVzZWQuIEkgY2FuIGFk
ZCB0ZXh0IHN0YXRpbmcgdGhhdCBpdCdzIHNldCB0byAwLg0KICAgIA0KICAgIDcpIFNlY3Rpb24g
NiBkb2Vzbid0IGNvbnRhaW4gYW55IFlBTkcgVHJlZSBvdXRwdXQuICBQcm9iYWJseSB0aW1lIHRv
IHB1dCB0aGF0DQogICAgaW4sIGJ1dCBJIHdvdWxkIHN1Z2dlc3Qgbm90IHB1dHRpbmcgaW4gdGhl
IGVudGlyZSB0cmVlIG91dHB1dCwganVzdCB0aGUNCiAgICByZWxldmFudCBzbmlwcGV0cy4gIElm
IHlvdSB3YW50IHRvIGluY2x1ZGUgdGhlIGZ1bGwgdHJlZSBvdXRwdXQgdGhlbiBJIHdvdWxkDQog
ICAgc3VnZ2VzdCBwdXR0aW5nIGluIGFuIGFwcGVuZGl4IGluc3RlYWQuICBUaGUgdGV4dCBpbiB0
aGlzIHNlY3Rpb24gZGVzY3JpYmluZw0KICAgIHRoZSBZQU5HIG1vZGVsIG5lZWRzIHRvIGJlIGZp
eGVkIHNpbmNlIHRoZSBZQU5HIG1vZHVsZSBkb2Vzbid0IGFjdHVhbGx5IGRlZmluZQ0KICAgIGFu
eSBpZGVudGl0aWVzLg0KPFJSPiBJIGJlbGlldmUgdGhlIFlBTkcgbW9kdWxlIHdhcyBjaGFuZ2Vk
IGJ1dCBub3QgdGhlIHRleHQuIFdpbGwgZml4IGFuZCBhZGQgdGhlIHRyZWUgZGlhZ3JhbS4NCiAg
ICANCiAgICA4KSBTZWN0aW9uIDcsIFlBTkcgbW9kdWxlIGNvbW1lbnRzDQogICAgDQogICAgSnVz
dCBuaXRzOg0KICAgIA0KICAgIDguMSkgQ2hlY2sgbGluZSBsZW5ndGggb2YgdGhlIGZpbGUsIGl0
IGxvb2tzIGxpa2UgaXQgZ29lcyBvdmVyIDY5IGNoYXJhY3RlcnMuDQogICAgIC0gSW4gcGFydGlj
dWxhciwgdGhlIG5hbWVzcGFjZSBzdGF0ZW1lbnQgbWlnaHQgbmVlZCB0byBiZSBzcGxpdC4NCiAg
ICAgLSBUaGUgbW9kdWxlIGRlc2NyaXB0aW9uIHRleHQgaW5kZW50YXRpb24gbG9va3Mgb2ZmIG9u
IHRoZSBmaXJzdCBsaW5lLCBhbmQNCiAgICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgcmUtZmxvd2Vk
LiAtIFNvbWUgb2YgdGhlIG90aGVyIGRlc2NyaXB0aW9ucyBsb29rIHdpZGUuDQogICAgDQogICAg
OC4yKSBUaGUgZGVzY3JpcHRpb24gZm9yICJzdWJzY3JpcHRpb24tbW9kaWZpZWQiIGRvZXNuJ3Qg
cXVpdGUgc2NhbiAoYXMgaXQgZ29lcw0KICAgIG92ZXIgdGhlIGxpbmUgYnJlYWspLg0KICAgIA0K
ICAgIDkpIE9uZSBvZiB0aGUgZmlsdGVyIGV4YW1wbGVzIGFwcGVuZGl4IEEuMyBpcyBjbGVhcmx5
IG92ZXIgNzIgY2hhcmFjdGVycywNCiAgICBzdWdnZXN0IHNwbGl0aW5nLg0KPFJSPiBBY2suDQoN
ClJlZ2FyZHMsDQpSZXNoYWQuDQogICAgDQogICAgVGhhbmtzLA0KICAgIFJvYg0KICAgIA0KICAg
IA0KDQo=


From nobody Tue Jan  8 16:16:00 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 36C4312D4ED; Tue,  8 Jan 2019 16:15:52 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154699295217.25477.13184977029192244433@ietfa.amsl.com>
Date: Tue, 08 Jan 2019 16:15:52 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/prD8ImpRgj4zmgDTSzEphIYVD1c>
Subject: [Netconf] I-D Action: draft-ietf-netconf-netconf-event-notifications-16.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 00:15:52 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Dynamic subscription to YANG Events and Datastores over NETCONF
        Authors         : Eric Voit
                          Alexander Clemm
                          Alberto Gonzalez Prieto
                          Einar Nilsen-Nygaard
                          Ambika Prasad Tripathy
	Filename        : draft-ietf-netconf-netconf-event-notifications-16.txt
	Pages           : 18
	Date            : 2019-01-08

Abstract:
   This document provides a NETCONF binding to the dynamic subscription
   capability of both subscribed notifications and YANG push.

   RFC Editor note: please replace the four references to pre-RFC
   normative drafts with the actual assigned RFC numbers.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-netconf-event-notifications/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-netconf-event-notifications-16
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-netconf-event-notifications-16

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-netconf-event-notifications-16


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Tue Jan  8 16:16:38 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 20D75131222 for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 16:16:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level: 
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 MnP7BQh_CK2a for <netconf@ietfa.amsl.com>; Tue,  8 Jan 2019 16:16:26 -0800 (PST)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53BEA13123B for <netconf@ietf.org>; Tue,  8 Jan 2019 16:16:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5067; q=dns/txt; s=iport; t=1546992986; x=1548202586; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=im1xgmNa9w4CH8YbU6zRXfiKWjNfdP3aS2x87nCPhHE=; b=IohNv9D9HEHdWjmtj1C2W2XP8o/1od/scL7c45pT6GamYQr8F6zdftEd tBeplyRyiWiO9ssOd2uZ/xjL8HDaQXOEFImv+h50TV6n5WYh6u9K0tcKj UYhm9c6m26J3PWKLxTqgrlxIBHbcBhaC8o2I8T2QKX9m9QkpejWamLxgI c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAAD0OzVc/5hdJa1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZoECJwqMEI14l3AUgWcLAQEfhE0?= =?us-ascii?q?CghIiNAkNAQMBAQIBAQJtHAyFSgEBAQMBdwIFCwIBCA4DBAEBDiEyHQgBAQQ?= =?us-ascii?q?OBQiCT0sBgXkID6s9ii0FjD8XgUA/gRGDEoMeAoEmhhsCiU8EhmKRMgkCkW4?= =?us-ascii?q?ggWOQEopxjzYCERSBJx84gVZwFRqDDYsdhT9BMYl7gR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,455,1539648000"; d="scan'208";a="223300550"
Received: from rcdn-core-1.cisco.com ([173.37.93.152]) by alln-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 00:16:25 +0000
Received: from XCH-RTP-012.cisco.com (xch-rtp-012.cisco.com [64.101.220.152]) by rcdn-core-1.cisco.com (8.15.2/8.15.2) with ESMTPS id x090GOQK002834 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 9 Jan 2019 00:16:25 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-012.cisco.com (64.101.220.152) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 8 Jan 2019 19:16:24 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Tue, 8 Jan 2019 19:16:24 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Qin Wu <bill.wu@huawei.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Review of draft-ietf-netconf-netconf-event-notifications-15
Thread-Index: AdSnqv1zqRH0wmeZS2W8xJ2mden3bAAAApaQ
Date: Wed, 9 Jan 2019 00:16:24 +0000
Message-ID: <36c6d89c01124525a0970079a891c17c@XCH-RTP-013.cisco.com>
References: <22f268ebecad43b58b86432bd0372be9@XCH-RTP-013.cisco.com>
In-Reply-To: <22f268ebecad43b58b86432bd0372be9@XCH-RTP-013.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.152, xch-rtp-012.cisco.com
X-Outbound-Node: rcdn-core-1.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/NAoCOz0mDYqHTJHPZPBqwL5ZqZk>
Subject: Re: [Netconf] Review of draft-ietf-netconf-netconf-event-notifications-15
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 00:16:36 -0000

Hi Qin,

Thank you very much for assisting with the Shepherd role here.   Some thoug=
hts in-line...

> From: Eric Voit, January 8, 2019 6:37 PM
>=20
>=20
>=20
> From: Netconf <netconf-bounces@ietf.org> On Behalf Of Qin Wu
> Sent: Tuesday, January 8, 2019 12:44 AM
> To: netconf@ietf.org
> Subject: [Netconf] Review of draft-ietf-netconf-netconf-event-notificatio=
ns-15
>=20
> Hi, All:
> I am assigned as acting shepherd to assist Kent to review draft-ietf-netc=
onf-
> netconf-event-notifications-15
> and have the following comments:
> 1. I see event record can be sent via notification for dynamic subscripti=
on based
> on section 2.6 of draft-ietf-netconf-subscribed-notifications-19, but I d=
idn't see
> subscription state notifications can be sent for dynamic subscription bas=
ed on
> section 2.7 of draft-ietf-netconf-subscribed- notifications-19. If this i=
s true,
> Configured subscription example should be cleaned up in the appendix.

There are several places in draft-ietf-netconf-subscribed-notifications-19 =
where it describes that subscription state notifications may be sent for dy=
namic subscriptions.   However it is good to add more text on this.  As a r=
esult, I have updates a paragraph in 1.3 with more info on this to say...

"Note that there is no mixing-and-matching of dynamic and configured operat=
ions on a single subscription.  Specifically, a configured subscription can=
not be modified or deleted using RPCs defined in this document.  Similarly,=
 a dynamic subscription cannot be directly modified or deleted by configura=
tion operations.  It is however possible to perform a configuration operati=
on which indirectly impacts a dynamic subscription. By changing value of a =
pre-configured filter referenced by an existing dynamic subscription, the s=
elected event records passed to a receiver might change."

This text is reflected in the just-uploaded version of draft-ietf-netconf-n=
etconf-event-notifications.

> 2. By reading section 10, it is not clear which document should be update=
d to
> support notification after a successful "establish-subscription", RFC6241=
 itself,
> or this document?

RFC 6241 needs to be updated based on the needs of this draft.  RFC-6241 se=
ction 1.2 bullet "(2)" targets RFC-5277 (actually it identifies RFC 5717, b=
ut that was an error fixed after RFC publication).  Anyway the current phra=
sing in RFC-5277 says that a notification message can only be sent after a =
successful "create-subscription".  Therefore the reference text must be mod=
ified to also allow notification messages be sent after a successful "estab=
lish-subscription".=20

As a result I have updated bullet (2) in Section 10 to say:

   (2)  The Messages layer provides a simple, transport-independent
        framing mechanism for encoding RPCs and notifications.
        Section 4 documents the RPC messages, [RFC5277] documents
        Notifications sent as a result of a <create-subscription> RPC,
        and [RFC xxxx] documents Notifications sent as a result of
        an <establish-subscription> RPC. =20
    =20
  (where xxxx should be replaced with this RFC number)


> 3. Running nits tools, there are the following errors and warnings:
> "
> =A0 Checking nits according to https://www.ietf.org/id-info/checklist :
> =A0 ---------------------------------------------------------------------=
-------
>=20
> =A0 ** The document seems to lack an IANA Considerations section.=A0 (See=
 Section
> =A0=A0=A0=A0 2.2 of https://www.ietf.org/id-info/checklist for how to han=
dle the case
> =A0=A0=A0=A0 when there are no actions for IANA.)

I have added the requested section stating that there are no IANA Considera=
tions

> =A0 Miscellaneous warnings:
> =A0 ---------------------------------------------------------------------=
-------
>=20
> =A0 =3D=3D The copyright year in the IETF Trust and authors Copyright Lin=
e does not
> =A0=A0=A0=A0 match the current year

This looks to have corrected itself automatically with the new version.
=20
> =A0 =3D=3D Line 195 has weird spacing: '...ription=A0 estab...'
>=20
> =A0 =3D=3D Line 199 has weird spacing: '...ription =A0=A0=A0res...'
>=20
> =A0 =3D=3D Line 211 has weird spacing: '... stream=A0=A0 esta...'
>=20
> =A0 =3D=3D Line 214 has weird spacing: '...ription=A0=A0=A0 ret...'
>=20
> =A0 =3D=3D Line 216 has weird spacing: '... stream=A0=A0 modi...'

These five items are on table formatting.   Things look much cleaner as cur=
rently shown in the document when the extra spaces are included.

> 4. RFC6241 needs to be updated but it is not listed on the title page hea=
der.

The update to the RFC editor for RFC6241 is noted in a separate section tit=
led: " Notes to the RFC Editor".   Adding this information to the header se=
emed redundant.

Thanks,
Eric
=20
> Note that I have talked with authors on most of these comments, I believe=
 a
> new version will come soon to address these comments.
>=20
> -Qin


From nobody Wed Jan  9 01:05:48 2019
Return-Path: <wwwrun@rfc-editor.org>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 67A17128766 for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 01:05:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, 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 nC_OJ2AsCG0l for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 01:05:44 -0800 (PST)
Received: from rfc-editor.org (rfc-editor.org [4.31.198.49]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 999921274D0 for <netconf@ietf.org>; Wed,  9 Jan 2019 01:05:44 -0800 (PST)
Received: by rfc-editor.org (Postfix, from userid 30) id F28AAB82360; Wed,  9 Jan 2019 01:05:32 -0800 (PST)
To: rob.enns@gmail.com, mbj@tail-f.com, j.schoenwaelder@jacobs-university.de,  andy@yumaworks.com, ibagdona@gmail.com, warren@kumari.net, kwatsen@juniper.net, mjethanandani@gmail.com
X-PHP-Originating-Script: 30:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Cc: jonathan@hansfords.net, netconf@ietf.org, rfc-editor@rfc-editor.org
Content-Type: text/plain; charset=UTF-8
Message-Id: <20190109090532.F28AAB82360@rfc-editor.org>
Date: Wed,  9 Jan 2019 01:05:32 -0800 (PST)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/DgMQnIB3-S25hyqTxk7A6Ym3T6Q>
Subject: [Netconf] [Editorial Errata Reported] RFC6241 (5596)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 09:05:46 -0000

The following errata report has been submitted for RFC6241,
"Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata/eid5596

--------------------------------------
Type: Editorial
Reported by: Jonathan Hansford <jonathan@hansfords.net>

Section: 7.5

Original Text
-------------
      The duration of the lock is defined as beginning when the lock is
      acquired and lasting until either the lock is released or the
      NETCONF session closes.  The session closure can be explicitly
      performed by the client, or implicitly performed by the server
      based on criteria such as failure of the underlying transport,
      simple inactivity timeout, or detection of abusive behavior on the
      part of the client.  These criteria are dependent on the
      implementation and the underlying transport.

Corrected Text
--------------
      The duration of the lock is defined as beginning when the lock is
      acquired and lasting until either the lock is released or the
      NETCONF session closes.  The session closure can be explicitly
      performed by the client, or implicitly performed by the server
      based on criteria such as failure of the underlying transport,
      simple inactivity timeout, or detection of abusive behavior on the
      part of the client.  These criteria are dependent on the
      implementation and the underlying transport. Note that a lock
      associated with a persistent confirmed commit will be released if
      the NETCONF session closes and, if required, a new lock will have
      to be acquired.

Notes
-----
A persistent confirmed commit can survive a session termination, however any lock on that same session cannot. If a new session is established between the client and server, the client will need to acquire new locks if it wishes to protect the ongoing persistent confirmed commit.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6241 (draft-ietf-netconf-4741bis-10)
--------------------------------------
Title               : Network Configuration Protocol (NETCONF)
Publication Date    : June 2011
Author(s)           : R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A. Bierman, Ed.
Category            : PROPOSED STANDARD
Source              : Network Configuration
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Wed Jan  9 04:13:50 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E179128766 for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 04:13:49 -0800 (PST)
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 C8p55ZRB7Gwi for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 04:13:47 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 02E77127133 for <netconf@ietf.org>; Wed,  9 Jan 2019 04:13:47 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id 720551AE0383; Wed,  9 Jan 2019 13:13:45 +0100 (CET)
Date: Wed, 09 Jan 2019 13:13:45 +0100 (CET)
Message-Id: <20190109.131345.733955603346655699.mbj@tail-f.com>
To: rfc-editor@rfc-editor.org
Cc: rob.enns@gmail.com, j.schoenwaelder@jacobs-university.de, andy@yumaworks.com, ibagdona@gmail.com, warren@kumari.net, kwatsen@juniper.net, mjethanandani@gmail.com, jonathan@hansfords.net, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20190109090532.F28AAB82360@rfc-editor.org>
References: <20190109090532.F28AAB82360@rfc-editor.org>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/lNr91W5aK-abxDaqzadftjoE2Pg>
Subject: Re: [Netconf] [Editorial Errata Reported] RFC6241 (5596)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 12:13:49 -0000

Hi,


RFC Errata System <rfc-editor@rfc-editor.org> wrote:
> The following errata report has been submitted for RFC6241,
> "Network Configuration Protocol (NETCONF)".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata/eid5596
> 
> --------------------------------------
> Type: Editorial
> Reported by: Jonathan Hansford <jonathan@hansfords.net>
> 
> Section: 7.5
> 
> Original Text
> -------------
>       The duration of the lock is defined as beginning when the lock is
>       acquired and lasting until either the lock is released or the
>       NETCONF session closes.  The session closure can be explicitly
>       performed by the client, or implicitly performed by the server
>       based on criteria such as failure of the underlying transport,
>       simple inactivity timeout, or detection of abusive behavior on the
>       part of the client.  These criteria are dependent on the
>       implementation and the underlying transport.
> 
> Corrected Text
> --------------
>       The duration of the lock is defined as beginning when the lock is
>       acquired and lasting until either the lock is released or the
>       NETCONF session closes.  The session closure can be explicitly
>       performed by the client, or implicitly performed by the server
>       based on criteria such as failure of the underlying transport,
>       simple inactivity timeout, or detection of abusive behavior on the
>       part of the client.  These criteria are dependent on the
>       implementation and the underlying transport. Note that a lock
>       associated with a persistent confirmed commit will be released if
>       the NETCONF session closes and, if required, a new lock will have
>       to be acquired.

The errata adds the last sentence.  I don't think that this sentence
is necessary; there is no text that indicates that a lock will somehow
be kept if the session terminates - in fact it is clear from section
7.5 what happens:

      A lock will be released by the system if the session holding the
      lock is terminated for any reason.

Also, note that the proposed text is not quite correct; a lock is not
associated with a persistent confirmed commit, but with a session.

(There might be other issues with the text around lock and persist, as
indicated in your email to the list though, but I think that this
specific errata is not needed.)


/martin




> 
> Notes
> -----
> A persistent confirmed commit can survive a session termination, however any lock on that same session cannot. If a new session is established between the client and server, the client will need to acquire new locks if it wishes to protect the ongoing persistent confirmed commit.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party  
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC6241 (draft-ietf-netconf-4741bis-10)
> --------------------------------------
> Title               : Network Configuration Protocol (NETCONF)
> Publication Date    : June 2011
> Author(s)           : R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A. Bierman, Ed.
> Category            : PROPOSED STANDARD
> Source              : Network Configuration
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
> 


From nobody Wed Jan  9 05:30:52 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95E40126CB6 for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 05:30:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.1
X-Spam-Level: 
X-Spam-Status: No, score=-0.1 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 JLurAWOKQepN for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 05:30:48 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 0C68D12426E for <netconf@ietf.org>; Wed,  9 Jan 2019 05:30:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:MIME-Version:Subject:References: In-Reply-To:Message-ID:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=qDgLPnF5/NK4PipUfyMXQPbvXI14gfQQ5kfGYEoMk6E=; b=oM68dvT9pJ0kSoQWNCpMDLHdc FF7/bKCmDOr+xACDCTxCYHg/JbofnCdNtJisuh6chhbs/irqI+2ZhTqMzNw+7fdHPi5DPsV8sTuKL aVd/+nAYZM4LCy2B6D1eEgWCCLzGM/eLtj92h/QLfM2/NkwxeJr/o5sbge5HsgmbL63VWmO4KNVBA DpkXTJX9jicavgQ1nnp7iqDkz7LgHTXa878ueUSCVjkf0ZD2GwWF6PJnBNsi+BtQyrAhA2rlzT4Sx VYjxiHwDJd/5VFXSIRknz7rnv+kqR4AAaLMTmEnYBO5iJiOwtRUtGoHqyJKpB9NExrf/BIvqanAZu qmQel2CDw==;
Received: from hansfords.plus.com ([84.92.116.209]:34131 helo=[192.168.54.23]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1ghDwS-005mlF-Dq; Wed, 09 Jan 2019 13:30:44 +0000
Date: Wed, 9 Jan 2019 13:30:31 +0000
From: Jonathan <jonathan@hansfords.net>
To: rfc-editor@rfc-editor.org, Martin Bjorklund <mbj@tail-f.com>
Cc: rob.enns@gmail.com, j.schoenwaelder@jacobs-university.de,  andy@yumaworks.com, ibagdona@gmail.com, warren@kumari.net,  kwatsen@juniper.net, mjethanandani@gmail.com, netconf@ietf.org
Message-ID: <dd45f575-90fe-4ea5-aebe-b75bac526b64@Spark>
In-Reply-To: <20190109.131345.733955603346655699.mbj@tail-f.com>
References: <20190109090532.F28AAB82360@rfc-editor.org> <20190109.131345.733955603346655699.mbj@tail-f.com>
X-Readdle-Message-ID: dd45f575-90fe-4ea5-aebe-b75bac526b64@Spark
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="5c35f783_79838cb2_1ebb"
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/VjUK2E9RvqZ2htUPb3WQ0UFW2zY>
Subject: Re: [Netconf] [Editorial Errata Reported] RFC6241 (5596)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 13:30:51 -0000

--5c35f783_79838cb2_1ebb
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

At least the erratum got a response, which is more than the original emai=
l did=21

Unlike locks, a persistent confirmed commit isn't aborted if the NETCON=46=
 session terminates and Appendix E, though non-normative, uses locks and =
optionally the candidate configuration datastore. If a persistent confirm=
ed commit is designed not to abort on session termination, what is the co=
rrect client behaviour for handling locks should, for example, either the=
 client or server reboot=3F

Another client could <discard-changes> and acquire a lock on the candidat=
e configuration datastore while being locked out of the running configura=
tion datastore until the confirmed commit times out because, according to=
 section 7.5, =22a lock MUST NOT be granted if =E2=80=A6 the target confi=
guration is <running>, and another NETCON=46 session has an ongoing confi=
rmed commit=22.

Jonathan xx

=3DO)
On 9 Jan 2019, 12:14 +0000, Martin Bjorklund <mbj=40tail-f.com>, wrote:
> Hi,
>
>
> R=46C Errata System <rfc-editor=40rfc-editor.org> wrote:
> > The following errata report has been submitted for R=46C6241,
> > =22Network Configuration Protocol (NETCON=46)=22.
> >
> > --------------------------------------
> > You may review the report below and at:
> > http://www.rfc-editor.org/errata/eid5596
> >
> > --------------------------------------
> > Type: Editorial
> > Reported by: Jonathan Hansford <jonathan=40hansfords.net>
> >
> > Section: 7.5
> >
> > Original Text
> > -------------
> > The duration of the lock is defined as beginning when the lock is
> > acquired and lasting until either the lock is released or the
> > NETCON=46 session closes. The session closure can be explicitly
> > performed by the client, or implicitly performed by the server
> > based on criteria such as failure of the underlying transport,
> > simple inactivity timeout, or detection of abusive behavior on the
> > part of the client. These criteria are dependent on the
> > implementation and the underlying transport.
> >
> > Corrected Text
> > --------------
> > The duration of the lock is defined as beginning when the lock is
> > acquired and lasting until either the lock is released or the
> > NETCON=46 session closes. The session closure can be explicitly
> > performed by the client, or implicitly performed by the server
> > based on criteria such as failure of the underlying transport,
> > simple inactivity timeout, or detection of abusive behavior on the
> > part of the client. These criteria are dependent on the
> > implementation and the underlying transport. Note that a lock
> > associated with a persistent confirmed commit will be released if
> > the NETCON=46 session closes and, if required, a new lock will have
> > to be acquired.
>
> The errata adds the last sentence. I don't think that this sentence
> is necessary; there is no text that indicates that a lock will somehow
> be kept if the session terminates - in fact it is clear from section
> 7.5 what happens:
>
> A lock will be released by the system if the session holding the
> lock is terminated for any reason.
>
> Also, note that the proposed text is not quite correct; a lock is not
> associated with a persistent confirmed commit, but with a session.
>
> (There might be other issues with the text around lock and persist, as
> indicated in your email to the list though, but I think that this
> specific errata is not needed.)
>
>
> /martin
>
>
>
>
> >
> > Notes
> > -----
> > A persistent confirmed commit can survive a session termination, howe=
ver any lock on that same session cannot. If a new session is established=
 between the client and server, the client will need to acquire new locks=
 if it wishes to protect the ongoing persistent confirmed commit.
> >
> > Instructions:
> > -------------
> > This erratum is currently posted as =22Reported=22. If necessary, ple=
ase
> > use =22Reply All=22 to discuss whether it should be verified or
> > rejected. When a decision is reached, the verifying party
> > can log in to change the status and edit the report, if necessary.
> >
> > --------------------------------------
> > R=46C6241 (draft-ietf-netconf-4741bis-10)
> > --------------------------------------
> > Title : Network Configuration Protocol (NETCON=46)
> > Publication Date : June 2011
> > Author(s) : R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A=
. Bierman, Ed.
> > Category : PROPOSED STANDARD
> > Source : Network Configuration
> > Area : Operations and Management
> > Stream : IET=46
> > Verifying Party : IESG
> >

--5c35f783_79838cb2_1ebb
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<html xmlns=3D=22http://www.w3.org/1999/xhtml=22>
<head>
<title></title>
</head>
<body>
<div name=3D=22messageBodySection=22><span style=3D=22-webkit-tap-highlig=
ht-color: rgba(0, 0, 0, 0);=22>At least the erratum got a response, which=
 is more than the original email did=21&=23160;</span>
<div><span style=3D=22-webkit-tap-highlight-color: rgba(0, 0, 0, 0);=22><=
br /></span></div>
<div><span style=3D=22-webkit-tap-highlight-color: rgba(0, 0, 0, 0);=22>U=
nlike locks, a persistent confirmed commit isn't aborted if the NETCON=46=
 session terminates and Appendix E, though non-normative, uses locks and =
optionally the candidate configuration datastore. If a persistent confirm=
ed commit is designed not to abort on session termination, what is the co=
rrect client behaviour for handling locks should, for example, either the=
 client or server reboot=3F&=23160;</span></div>
<div><span style=3D=22-webkit-tap-highlight-color: rgba(0, 0, 0, 0);=22><=
br /></span></div>
<div><span style=3D=22-webkit-tap-highlight-color: rgba(0, 0, 0, 0);=22>A=
nother client could &lt;discard-changes&gt; and acquire a lock on the can=
didate configuration datastore while being locked out of the running conf=
iguration datastore until the confirmed commit times out because, accordi=
ng to section 7.5, =22a lock MUST NOT be granted if =E2=80=A6 the target =
configuration is &lt;running&gt;, and another NETCON=46 session has an on=
going confirmed commit=22.</span></div>
</div>
<div name=3D=22messageSignatureSection=22><br />
Jonathan xx<br />
<br />
=3DO)</div>
<div name=3D=22messageReplySection=22>On 9 Jan 2019, 12:14 +0000, Martin =
Bjorklund &lt;mbj=40tail-f.com&gt;, wrote:<br />
<blockquote type=3D=22cite=22 style=3D=22margin: 5px 5px; padding-left: 1=
0px; border-left: thin solid =231abc9c;=22>Hi,<br />
<br />
<br />
R=46C Errata System &lt;rfc-editor=40rfc-editor.org&gt; wrote:<br />
<blockquote type=3D=22cite=22 style=3D=22margin: 5px 5px; padding-left: 1=
0px; border-left: thin solid =23e67e22;=22>The following errata report ha=
s been submitted for R=46C6241,<br />
=22Network Configuration Protocol (NETCON=46)=22.<br />
<br />
--------------------------------------<br />
You may review the report below and at:<br />
http://www.rfc-editor.org/errata/eid5596<br />
<br />
--------------------------------------<br />
Type: Editorial<br />
Reported by: Jonathan Hansford &lt;jonathan=40hansfords.net&gt;<br />
<br />
Section: 7.5<br />
<br />
Original Text<br />
-------------<br />
The duration of the lock is defined as beginning when the lock is<br />
acquired and lasting until either the lock is released or the<br />
NETCON=46 session closes. The session closure can be explicitly<br />
performed by the client, or implicitly performed by the server<br />
based on criteria such as failure of the underlying transport,<br />
simple inactivity timeout, or detection of abusive behavior on the<br />
part of the client. These criteria are dependent on the<br />
implementation and the underlying transport.<br />
<br />
Corrected Text<br />
--------------<br />
The duration of the lock is defined as beginning when the lock is<br />
acquired and lasting until either the lock is released or the<br />
NETCON=46 session closes. The session closure can be explicitly<br />
performed by the client, or implicitly performed by the server<br />
based on criteria such as failure of the underlying transport,<br />
simple inactivity timeout, or detection of abusive behavior on the<br />
part of the client. These criteria are dependent on the<br />
implementation and the underlying transport. Note that a lock<br />
associated with a persistent confirmed commit will be released if<br />
the NETCON=46 session closes and, if required, a new lock will have<br />=

to be acquired.<br /></blockquote>
<br />
The errata adds the last sentence. I don't think that this sentence<br />=

is necessary; there is no text that indicates that a lock will somehow<br=
 />
be kept if the session terminates - in fact it is clear from section<br /=
>
7.5 what happens:<br />
<br />
A lock will be released by the system if the session holding the<br />
lock is terminated for any reason.<br />
<br />
Also, note that the proposed text is not quite correct; a lock is not<br =
/>
associated with a persistent confirmed commit, but with a session.<br />
<br />
(There might be other issues with the text around lock and persist, as<br=
 />
indicated in your email to the list though, but I think that this<br />
specific errata is not needed.)<br />
<br />
<br />
/martin<br />
<br />
<br />
<br />
<br />
<blockquote type=3D=22cite=22 style=3D=22margin: 5px 5px; padding-left: 1=
0px; border-left: thin solid =23e67e22;=22><br />
Notes<br />
-----<br />
A persistent confirmed commit can survive a session termination, however =
any lock on that same session cannot. If a new session is established bet=
ween the client and server, the client will need to acquire new locks if =
it wishes to protect the ongoing persistent confirmed commit.<br />
<br />
Instructions:<br />
-------------<br />
This erratum is currently posted as =22Reported=22. If necessary, please<=
br />
use =22Reply All=22 to discuss whether it should be verified or<br />
rejected. When a decision is reached, the verifying party<br />
can log in to change the status and edit the report, if necessary.<br />
<br />
--------------------------------------<br />
R=46C6241 (draft-ietf-netconf-4741bis-10)<br />
--------------------------------------<br />
Title : Network Configuration Protocol (NETCON=46)<br />
Publication Date : June 2011<br />
Author(s) : R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed., A. Bi=
erman, Ed.<br />
Category : PROPOSED STANDARD<br />
Source : Network Configuration<br />
Area : Operations and Management<br />
Stream : IET=46<br />
Verifying Party : IESG<br />
<br /></blockquote>
</blockquote>
</div>
</body>
</html>

--5c35f783_79838cb2_1ebb--


From nobody Wed Jan  9 06:26:42 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id CC4C2126C7E; Wed,  9 Jan 2019 06:26:35 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154704399573.4956.8404251479039533507@ietfa.amsl.com>
Date: Wed, 09 Jan 2019 06:26:35 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/prciYyOhOpGY7Bm3GOYzB9r_E8M>
Subject: [Netconf] I-D Action: draft-ietf-netconf-subscribed-notifications-21.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 14:26:36 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Subscription to YANG Event Notifications
        Authors         : Eric Voit
                          Alexander Clemm
                          Alberto Gonzalez Prieto
                          Einar Nilsen-Nygaard
                          Ambika Prasad Tripathy
	Filename        : draft-ietf-netconf-subscribed-notifications-21.txt
	Pages           : 78
	Date            : 2019-01-09

Abstract:
   This document defines a YANG data model and associated mechanisms
   enabling subscriber-specific subscriptions to a publisher's event
   streams.  Applying these elements allows a subscriber to request for
   and receive a continuous, custom feed of publisher generated
   information.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-subscribed-notifications/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-subscribed-notifications-21
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-subscribed-notifications-21

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-subscribed-notifications-21


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Wed Jan  9 06:35:52 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D0DB1277CC for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 06:35:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.154
X-Spam-Level: 
X-Spam-Status: No, score=-17.154 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 AeK879_y2Cdw for <netconf@ietfa.amsl.com>; Wed,  9 Jan 2019 06:35:48 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 80E441277BB for <netconf@ietf.org>; Wed,  9 Jan 2019 06:35:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2441; q=dns/txt; s=iport; t=1547044548; x=1548254148; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=p+h0J/s2suQNRIhl9jmYISOmTEDh4yBV1AosjLQ6uEU=; b=ZLhXNeTwwG2GG52zrO6voucTSBKHTHcE1vWVRvJ91SXUbUdIe3lsHcgN hW0vgFnZ8kLhz9dVrrJFBOsqbMV6llyKk1h0TRywsE9j1zewTqK5o374Q OXEiMBdygc4N/vSnGHmQKB1HKaMcN4hpZshspdMNQe548EEdmiLxfVfr2 w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AEAAAzBjZc/51dJa1jGgEBAQEBAgE?= =?us-ascii?q?BAQEHAgEBAQGBUQUBAQEBCwGBWilmgQInCowQi2qCDZdygXsLAQEYDYQBRgK?= =?us-ascii?q?CHyI0CQ0BAwEBAgEBAm0cAQuFSgEBAQQBATg0CQ4EAgEIEQQBAQ4RECcLHQg?= =?us-ascii?q?CBBMIgk9MggEPrBiEMQIOQIU3jD8XgUA/hCODHgEBAgEBFocnAqFsCQKHF4p?= =?us-ascii?q?cIIFkTYRXim+JbIEHhAOLNgIRFIEnHziBVnAVGiGCbAmLFIU/QTGKFYEfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,457,1539648000"; d="scan'208";a="223163129"
Received: from rcdn-core-6.cisco.com ([173.37.93.157]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 14:35:47 +0000
Received: from XCH-RTP-013.cisco.com (xch-rtp-013.cisco.com [64.101.220.153]) by rcdn-core-6.cisco.com (8.15.2/8.15.2) with ESMTPS id x09EZl5i001258 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netconf@ietf.org>; Wed, 9 Jan 2019 14:35:47 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-013.cisco.com (64.101.220.153) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 9 Jan 2019 09:35:46 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Wed, 9 Jan 2019 09:35:46 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] I-D Action: draft-ietf-netconf-subscribed-notifications-21.txt
Thread-Index: AQHUqCdpb2OLlhR+kUaCn8GkOIesWKWm/pQw
Date: Wed, 9 Jan 2019 14:35:46 +0000
Message-ID: <faeb8f876370407b9a2f02c2ca42a46d@XCH-RTP-013.cisco.com>
References: <154704399573.4956.8404251479039533507@ietfa.amsl.com>
In-Reply-To: <154704399573.4956.8404251479039533507@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.153, xch-rtp-013.cisco.com
X-Outbound-Node: rcdn-core-6.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/afPX83sG3uXUm-n0EtL-_v86blE>
Subject: Re: [Netconf] I-D Action: draft-ietf-netconf-subscribed-notifications-21.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 14:35:50 -0000

Per Qin's shepherd review of NETCONF-Notif and RESTCONF-Notif, there was a =
clarifying text update in Section 1.3.  Basically extra text was added furt=
her describing that dynamic subscriptions can have state change notificatio=
ns.

Eric

> -----Original Message-----
> From: Netconf <netconf-bounces@ietf.org> On Behalf Of internet-
> drafts@ietf.org
> Sent: Wednesday, January 9, 2019 9:27 AM
> To: i-d-announce@ietf.org
> Cc: netconf@ietf.org
> Subject: [Netconf] I-D Action: draft-ietf-netconf-subscribed-notification=
s-21.txt
>=20
>=20
> A New Internet-Draft is available from the on-line Internet-Drafts direct=
ories.
> This draft is a work item of the Network Configuration WG of the IETF.
>=20
>         Title           : Subscription to YANG Event Notifications
>         Authors         : Eric Voit
>                           Alexander Clemm
>                           Alberto Gonzalez Prieto
>                           Einar Nilsen-Nygaard
>                           Ambika Prasad Tripathy
> 	Filename        : draft-ietf-netconf-subscribed-notifications-21.txt
> 	Pages           : 78
> 	Date            : 2019-01-09
>=20
> Abstract:
>    This document defines a YANG data model and associated mechanisms
>    enabling subscriber-specific subscriptions to a publisher's event
>    streams.  Applying these elements allows a subscriber to request for
>    and receive a continuous, custom feed of publisher generated
>    information.
>=20
>=20
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-netconf-subscribed-notificati=
ons/
>=20
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-netconf-subscribed-notifications-2=
1
> https://datatracker.ietf.org/doc/html/draft-ietf-netconf-subscribed-
> notifications-21
>=20
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-netconf-subscribed-notific=
ations-21
>=20
>=20
> Please note that it may take a couple of minutes from the time of submiss=
ion
> until the htmlized version and diff are available at tools.ietf.org.
>=20
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>=20
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf


From nobody Wed Jan  9 08:34:37 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D1421130F0D; Wed,  9 Jan 2019 08:34:28 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Reshad Rahman <rrahman@cisco.com>
To: <yang-doctors@ietf.org>
Cc: draft-ietf-netconf-netconf-event-notifications.all@ietf.org, netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154705166883.4820.16710277209489694478@ietfa.amsl.com>
Date: Wed, 09 Jan 2019 08:34:28 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/1U79AcGPROnn7ptF76Loo9CX6Ys>
Subject: [Netconf] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 16:34:29 -0000

Reviewer: Reshad Rahman
Review result: Ready with Issues

YANG Doctor review of draft-ietf-netconf-netconf-event-notifications-16 (by
Reshad Rahman)

No YANG module in this draft but there are numerous examples based on the YANG
modules in draft-ietf-netconf-subscribed-notifications and
draft-ietf-netconf-yang-push. Validation of the examples was done with yanglint
0.16.59.

The major issues are related to the examples, although in 2) below  the
root-cause might be with the YANG module in
draft-ietf-netconf-subscribed-notifications  and in 3) there is an issue which
has already been reported on draft-ietf-netconf-yang-push: 1) The
establish-subscription request in Figure 3 fails yanglint validation, the
"stream" element has to be moved after the "stream-xpath-filter" element, that
fixed the following issue: err : Invalid order of elements
"stream-xpath-filter" and "stream".
(/ietf-subscribed-notifications:establish-subscription/stream-xpath-filter) 2)
The establish-subscription error response in Figure 5 fails yanglint
validation, the "id" element is missing. This is because
draft-ietf-netconf-subscribed-notifications has leaf id as mandatory in
establish-subscription output, either we remove the mandatory or we reserve a
value as invalid id or we add err : Missing required element "id" in
"establish-subscription".
(/ietf-subscribed-notifications:establish-subscription) 3) The
modify-subscription request in Figure 7 fails yanglint validation because of
missing "datastore" element. err : When condition
"../ietf-subscribed-notifications:target/ietf-yang-push:datastore" not
satisfied.
(/ietf-subscribed-notifications:modify-subscription/ietf-yang-push:periodic)
There are 2 causes here: missing "datastore" element and incorrect when
statements in draft-ietf-netconf-yang-push (as reported by Andy Bierman).
Fixing ietf-yang-push.yang and adding the following before element
"datastore-xpath-filter " fixed the example.
    <yp:datastore
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">ds:running</yp:datastore>

Minor comments and nits:
- Abstract s/YANG Push/YANG-Push/ since YANG-Push is the term introduced in
draft-ietf-netconf-yang-push - Introduction. Last sentence doesn't read well,
"...a RESTCONF client via a dynamic subscription..." may need tweaking -
Section 5 s/terminates/terminates,/ - Section 7 3rd bullet. s/this MAY but does
not have to be included/this MAY be included/? - Section 7
s/kill-subscription-error/delete-subscription-error/ (thanks Rob) - Figure 3,
stream-xpath-filter uses prefix "ds" for example-datastore.yang. Since "ds" is
used by ietf-datastores.yang, might be better to choose another prefix such as
"ex"

Regards,
Reshad.



From nobody Wed Jan  9 10:48:49 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D3CE4130F46; Wed,  9 Jan 2019 10:48:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 HgZAJQ3QZbv1; Wed,  9 Jan 2019 10:48:45 -0800 (PST)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 128CE130F44; Wed,  9 Jan 2019 10:48:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4816; q=dns/txt; s=iport; t=1547059725; x=1548269325; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=LSRXJJ8GUf9RM7N4LMAzhg3nuZYiSaG+aG6qW9P4M+A=; b=UC41jeMWdNhHanJJ7py/hqtW/y2yeuYDxIaWFI7N41+/AKbwv8aXF3Ki QEOr8MPnJRFr5WqUNal8kWUaWGIXRlwcoAmyjUZjPyLTQnrKUVtYOjtgU smn8q/cz4fs3t5XAaF6OkorWiKf7uRKQTNa77AP5ksMNagYa02DJwmwQo U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AHAABsQTZc/5ldJa1jGgEBAQEBAgE?= =?us-ascii?q?BAQEHAgEBAQGBUgQBAQEBCwGBWilmgQInCoN2lW6YFxSBZwsBARgPBYRAAhe?= =?us-ascii?q?CCCI1CA0BAwEBAgEBAm0cAQuFSwIEAQEhEToJAhACAQgaAgkWBwICAiULFRA?= =?us-ascii?q?CBA4FgldLAYIBD6wbgS+EMQIBCwI/AYUsBYELizQXgUA/gTgME4IXNYMeAQE?= =?us-ascii?q?DAYEqARIBHxeCcjGCBCICoRJaCQKHF4NMhxgYgWSIWIc7iWyFCos2AhEUgSc?= =?us-ascii?q?gATZlcXAVOyoBgkGCUYhMhT9ygSiGYw0XB4EBAYEeAQE?=
X-IronPort-AV: E=Sophos;i="5.56,458,1539648000"; d="scan'208";a="493388643"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by rcdn-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 18:48:44 +0000
Received: from XCH-ALN-005.cisco.com (xch-aln-005.cisco.com [173.36.7.15]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id x09ImhiQ031602 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 9 Jan 2019 18:48:44 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-ALN-005.cisco.com (173.36.7.15) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 9 Jan 2019 12:48:42 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Wed, 9 Jan 2019 12:48:43 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "draft-ietf-netconf-netconf-event-notifications.all@ietf.org" <draft-ietf-netconf-netconf-event-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
Thread-Index: AQHUqDk0MEtk4/aZ2E+MAjzaT3aN2aWnWDMA
Date: Wed, 9 Jan 2019 18:48:42 +0000
Message-ID: <B9679402-7DF0-445C-8455-E7FB90A3E9DB@cisco.com>
References: <154705166883.4820.16710277209489694478@ietfa.amsl.com>
In-Reply-To: <154705166883.4820.16710277209489694478@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.37]
Content-Type: text/plain; charset="utf-8"
Content-ID: <014DB4056B1FDC4A86591A047BFC0889@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.36.7.15, xch-aln-005.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/p9tDvcANq8pkLdpgBC-zB71k5f8>
Subject: Re: [Netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 18:48:47 -0000

RG9uJ3Qga25vdyB3aHkgbmV3bGluZXMgYXJlbid0IHNob3dpbmcgdXAgaW4gdGhlIGVtYWlsLCBp
ZiB5b3Ugd2FudCBhIG5pY2VyIHZpZXcgKGFsc28gYSBzbGlnaHQgcmV2aXNpb24pOg0KaHR0cHM6
Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvcmV2aWV3LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2
ZW50LW5vdGlmaWNhdGlvbnMtMTYteWFuZ2RvY3RvcnMtbGMtcmFobWFuLTIwMTktMDEtMDkvDQoN
Cu+7v09uIDIwMTktMDEtMDksIDExOjM0IEFNLCAieWFuZy1kb2N0b3JzIG9uIGJlaGFsZiBvZiBS
ZXNoYWQgUmFobWFuIiA8eWFuZy1kb2N0b3JzLWJvdW5jZXNAaWV0Zi5vcmcgb24gYmVoYWxmIG9m
IHJyYWhtYW5AY2lzY28uY29tPiB3cm90ZToNCg0KICAgIFJldmlld2VyOiBSZXNoYWQgUmFobWFu
DQogICAgUmV2aWV3IHJlc3VsdDogUmVhZHkgd2l0aCBJc3N1ZXMNCiAgICANCiAgICBZQU5HIERv
Y3RvciByZXZpZXcgb2YgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0
aW9ucy0xNiAoYnkNCiAgICBSZXNoYWQgUmFobWFuKQ0KICAgIA0KICAgIE5vIFlBTkcgbW9kdWxl
IGluIHRoaXMgZHJhZnQgYnV0IHRoZXJlIGFyZSBudW1lcm91cyBleGFtcGxlcyBiYXNlZCBvbiB0
aGUgWUFORw0KICAgIG1vZHVsZXMgaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90
aWZpY2F0aW9ucyBhbmQNCiAgICBkcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1wdXNoLiBWYWxpZGF0
aW9uIG9mIHRoZSBleGFtcGxlcyB3YXMgZG9uZSB3aXRoIHlhbmdsaW50DQogICAgMC4xNi41OS4N
CiAgICANCiAgICBUaGUgbWFqb3IgaXNzdWVzIGFyZSByZWxhdGVkIHRvIHRoZSBleGFtcGxlcywg
YWx0aG91Z2ggaW4gMikgYmVsb3cgIHRoZQ0KICAgIHJvb3QtY2F1c2UgbWlnaHQgYmUgd2l0aCB0
aGUgWUFORyBtb2R1bGUgaW4NCiAgICBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zICBhbmQgaW4gMykgdGhlcmUgaXMgYW4gaXNzdWUgd2hpY2gNCiAgICBoYXMgYWxy
ZWFkeSBiZWVuIHJlcG9ydGVkIG9uIGRyYWZ0LWlldGYtbmV0Y29uZi15YW5nLXB1c2g6IDEpIFRo
ZQ0KICAgIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gcmVxdWVzdCBpbiBGaWd1cmUgMyBmYWlscyB5
YW5nbGludCB2YWxpZGF0aW9uLCB0aGUNCiAgICAic3RyZWFtIiBlbGVtZW50IGhhcyB0byBiZSBt
b3ZlZCBhZnRlciB0aGUgInN0cmVhbS14cGF0aC1maWx0ZXIiIGVsZW1lbnQsIHRoYXQNCiAgICBm
aXhlZCB0aGUgZm9sbG93aW5nIGlzc3VlOiBlcnIgOiBJbnZhbGlkIG9yZGVyIG9mIGVsZW1lbnRz
DQogICAgInN0cmVhbS14cGF0aC1maWx0ZXIiIGFuZCAic3RyZWFtIi4NCiAgICAoL2lldGYtc3Vi
c2NyaWJlZC1ub3RpZmljYXRpb25zOmVzdGFibGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhwYXRo
LWZpbHRlcikgMikNCiAgICBUaGUgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiBlcnJvciByZXNwb25z
ZSBpbiBGaWd1cmUgNSBmYWlscyB5YW5nbGludA0KICAgIHZhbGlkYXRpb24sIHRoZSAiaWQiIGVs
ZW1lbnQgaXMgbWlzc2luZy4gVGhpcyBpcyBiZWNhdXNlDQogICAgZHJhZnQtaWV0Zi1uZXRjb25m
LXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucyBoYXMgbGVhZiBpZCBhcyBtYW5kYXRvcnkgaW4NCiAg
ICBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIG91dHB1dCwgZWl0aGVyIHdlIHJlbW92ZSB0aGUgbWFu
ZGF0b3J5IG9yIHdlIHJlc2VydmUgYQ0KICAgIHZhbHVlIGFzIGludmFsaWQgaWQgb3Igd2UgYWRk
IGVyciA6IE1pc3NpbmcgcmVxdWlyZWQgZWxlbWVudCAiaWQiIGluDQogICAgImVzdGFibGlzaC1z
dWJzY3JpcHRpb24iLg0KICAgICgvaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6ZXN0YWJs
aXNoLXN1YnNjcmlwdGlvbikgMykgVGhlDQogICAgbW9kaWZ5LXN1YnNjcmlwdGlvbiByZXF1ZXN0
IGluIEZpZ3VyZSA3IGZhaWxzIHlhbmdsaW50IHZhbGlkYXRpb24gYmVjYXVzZSBvZg0KICAgIG1p
c3NpbmcgImRhdGFzdG9yZSIgZWxlbWVudC4gZXJyIDogV2hlbiBjb25kaXRpb24NCiAgICAiLi4v
aWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6dGFyZ2V0L2lldGYteWFuZy1wdXNoOmRhdGFz
dG9yZSIgbm90DQogICAgc2F0aXNmaWVkLg0KICAgICgvaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNh
dGlvbnM6bW9kaWZ5LXN1YnNjcmlwdGlvbi9pZXRmLXlhbmctcHVzaDpwZXJpb2RpYykNCiAgICBU
aGVyZSBhcmUgMiBjYXVzZXMgaGVyZTogbWlzc2luZyAiZGF0YXN0b3JlIiBlbGVtZW50IGFuZCBp
bmNvcnJlY3Qgd2hlbg0KICAgIHN0YXRlbWVudHMgaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmct
cHVzaCAoYXMgcmVwb3J0ZWQgYnkgQW5keSBCaWVybWFuKS4NCiAgICBGaXhpbmcgaWV0Zi15YW5n
LXB1c2gueWFuZyBhbmQgYWRkaW5nIHRoZSBmb2xsb3dpbmcgYmVmb3JlIGVsZW1lbnQNCiAgICAi
ZGF0YXN0b3JlLXhwYXRoLWZpbHRlciAiIGZpeGVkIHRoZSBleGFtcGxlLg0KICAgICAgICA8eXA6
ZGF0YXN0b3JlDQogICAgICAgIHhtbG5zOmRzPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnlhbmc6
aWV0Zi1kYXRhc3RvcmVzIj5kczpydW5uaW5nPC95cDpkYXRhc3RvcmU+DQogICAgDQogICAgTWlu
b3IgY29tbWVudHMgYW5kIG5pdHM6DQogICAgLSBBYnN0cmFjdCBzL1lBTkcgUHVzaC9ZQU5HLVB1
c2gvIHNpbmNlIFlBTkctUHVzaCBpcyB0aGUgdGVybSBpbnRyb2R1Y2VkIGluDQogICAgZHJhZnQt
aWV0Zi1uZXRjb25mLXlhbmctcHVzaCAtIEludHJvZHVjdGlvbi4gTGFzdCBzZW50ZW5jZSBkb2Vz
bid0IHJlYWQgd2VsbCwNCiAgICAiLi4uYSBSRVNUQ09ORiBjbGllbnQgdmlhIGEgZHluYW1pYyBz
dWJzY3JpcHRpb24uLi4iIG1heSBuZWVkIHR3ZWFraW5nIC0NCiAgICBTZWN0aW9uIDUgcy90ZXJt
aW5hdGVzL3Rlcm1pbmF0ZXMsLyAtIFNlY3Rpb24gNyAzcmQgYnVsbGV0LiBzL3RoaXMgTUFZIGJ1
dCBkb2VzDQogICAgbm90IGhhdmUgdG8gYmUgaW5jbHVkZWQvdGhpcyBNQVkgYmUgaW5jbHVkZWQv
PyAtIFNlY3Rpb24gNw0KICAgIHMva2lsbC1zdWJzY3JpcHRpb24tZXJyb3IvZGVsZXRlLXN1YnNj
cmlwdGlvbi1lcnJvci8gKHRoYW5rcyBSb2IpIC0gRmlndXJlIDMsDQogICAgc3RyZWFtLXhwYXRo
LWZpbHRlciB1c2VzIHByZWZpeCAiZHMiIGZvciBleGFtcGxlLWRhdGFzdG9yZS55YW5nLiBTaW5j
ZSAiZHMiIGlzDQogICAgdXNlZCBieSBpZXRmLWRhdGFzdG9yZXMueWFuZywgbWlnaHQgYmUgYmV0
dGVyIHRvIGNob29zZSBhbm90aGVyIHByZWZpeCBzdWNoIGFzDQogICAgImV4Ig0KICAgIA0KICAg
IFJlZ2FyZHMsDQogICAgUmVzaGFkLg0KICAgIA0KICAgIA0KICAgIF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogICAgeWFuZy1kb2N0b3JzIG1haWxpbmcg
bGlzdA0KICAgIHlhbmctZG9jdG9yc0BpZXRmLm9yZw0KICAgIGh0dHBzOi8vd3d3LmlldGYub3Jn
L21haWxtYW4vbGlzdGluZm8veWFuZy1kb2N0b3JzDQogICAgDQoNCg==


From nobody Wed Jan  9 12:06:27 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2AE6B131032; Wed,  9 Jan 2019 12:06:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.254
X-Spam-Level: 
X-Spam-Status: No, score=-5.254 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, 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=juniper.net
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 NTpwS3p4rsJW; Wed,  9 Jan 2019 12:06:16 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 2C6E113101C; Wed,  9 Jan 2019 12:06:16 -0800 (PST)
Received: from pps.filterd (m0108160.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x09K2qLm001784; Wed, 9 Jan 2019 12:06:10 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=lch3B5HN6VhkcQYxZYybKurQ0+e1PNV9my5DwJmRM8c=; b=OfRPmFatkBjkynQs0XU18vQxCb+BcTKwkWS61Z1wSJxKxU/5+NGgE3slReMPEbT3jlHV 93T9A7a5qZs8lL5A4mGxlLaLoOSAjHnOC4WwbrYed6V1v0Ba7CtIkMqGnK/zA1fRxogy dONnVdqedM/aApzZYGIK+PBgn1LvB1heHIJJks2X57mB3tbVajcYlgJ71xMh9oRpi3pH WeD2KHwX+SNv+SRf8hQh6WGHlgTKjeopLlI6Q/JfTtojOqOLYE0OgpUaQm2jxHn1k1Ax k822yjRXNNUOc36R1uUfAxzYkBuRhPhWcbuAAx50DQnmSKWwO49bFb1XVg3rmCKxK15u GQ== 
Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp2052.outbound.protection.outlook.com [104.47.33.52]) by mx0b-00273201.pphosted.com with ESMTP id 2pwm2fgfj4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 09 Jan 2019 12:06:10 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB5127.namprd05.prod.outlook.com (20.177.231.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.3; Wed, 9 Jan 2019 20:06:07 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1516.010; Wed, 9 Jan 2019 20:06:07 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, Dave Crocker <dcrocker@bbiw.net>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAA==
Date: Wed, 9 Jan 2019 20:06:07 +0000
Message-ID: <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net>
In-Reply-To: <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB5127; 6:mEuuvupmE4R2i9sBT0CXc/aZ77NxuXFQ1ygsAv9QAnKRd6VDM3vIhBemiSEuJK6wy+t9yrWSFijLkF6rV/7pcM4A8zfmvFLp7iE3VdVg+MUAUkSpXNeAGVZsZ5WaUAh/ySAIGbqjtEEtbRHM9I96DvaLG+r83bjnx7XGN/PH2q6VbGt5RlGMkD6PzFSZ0xw2/eLjbWxsY6y9ofNttXbAklwO1HtlBguJzReVh/a8c9dAfa2/EPkeJ8Hffld0QUtGBQH2zYg7BCGLNCFYtHeeWLt1oKDretUdLML6hNXUU213/faQ9lCuHIhG55s9dMlbPciNaOV2+LWD+K2o7yA9dvSKoJNvBkMRNRG5f1pyWOWdOTzuMEEQdVuswbQftkigrp1qwUA2MS+rv5PjgmO/AZM963lSYzIR/ARx2QuMlevcWJ9g+unFn5yA9X+KkHCmruZ08QHlVhAx8D8YNz9dZg==; 5:CHJxkoIrS5DRo+SrQvK4y2ek2xJOIm4282jL6Fb6j8geWZYYQndCRdLhWBQ1FXrITal/2TSYDBQnKcsIr9p+3P18bF1EYP4Qry8PcwbABjKbro2VdvHL744vtVUMylWOG8uI1TZemZgEiTbHum92SLTs7N5K6816342c9ChI/kGdAEMWjiVkr48VjV/7rFlNYasgWKdNgMMIGRmHUihVJg==; 7:uNQjbE56+gLI5FM6oItHZFTLUW5TDqFHj+3CcB2Fy3qL1kvJSl74NLBXieSFnXdjKMaXJkiQpA9BjPlz8ubBS2Ptu6RUV2XOGDZdg88MnceAFzSnlYJnavls3CcxzwvVKdbAJyaIIsInaYA8E7dfIQ==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: c3f1af60-3c7c-4c12-1d9d-08d6766de49a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB5127; 
x-ms-traffictypediagnostic: BYAPR05MB5127:
x-microsoft-antispam-prvs: <BYAPR05MB5127D25DDD96147C14F29EE4A58B0@BYAPR05MB5127.namprd05.prod.outlook.com>
x-forefront-prvs: 0912297777
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(136003)(39860400002)(376002)(396003)(366004)(13464003)(199004)(189003)(26005)(66066001)(106356001)(53546011)(33656002)(561944003)(6506007)(97736004)(102836004)(53936002)(99286004)(2906002)(446003)(6246003)(476003)(81166006)(316002)(58126008)(7736002)(93886005)(110136005)(54906003)(305945005)(81156014)(186003)(8936002)(6306002)(11346002)(6512007)(4326008)(8676002)(2616005)(82746002)(14454004)(256004)(14444005)(71190400001)(68736007)(486006)(36756003)(25786009)(6116002)(3846002)(83716004)(6486002)(105586002)(86362001)(76176011)(6436002)(229853002)(478600001)(966005)(71200400001)(5660300001); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5127; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 1n9tq75yF9Z/Ev+DTVlvjMF+XyRYAeHpOqFoeRwdPbmoU2ribavap/7W8WjUpn8CU1vk38DkLB+EIqv0LaYXdqWwpNdw7RFcfdjmZapwU6gBgcxtpPtQh6p76nf9Nqmp6BF9ffVlgDLvgRu9R8NL6If2AdtKCCfACXg0VCu6vQlUCCr8eoKXfpWf7fR5Jhp8XjstBRT7Z9odxSv+ZNdVVYV/x9Xy/06kaJIBkOUYcPRJ+xQDXpyQNoXKfbLTixcOTBI+GqZv9Z6C5lgOKiwFAhnU6SNPj137ieIhxakOxluvsJ0Q7pd+3xDSrdfV/Vjp
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <6CF453463716A34C89D17F1ED2968DE8@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: c3f1af60-3c7c-4c12-1d9d-08d6766de49a
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2019 20:06:07.7351 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5127
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-09_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901090163
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/4AWXDxFyfFuxZ8ExOzSexg4WRDM>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 20:06:19 -0000

R2VudGxlIHJlbWluZGVyIHRvIERhdmUsIEFsZXhleSwgYW5kIEFkYW0gd3J0IGRyYWZ0LWlldGYt
ZG5zb3AtYXR0cmxlYWYuDQoNCk5vdGU6IEkgZnVydGhlciB0cmltbWVkIHRoZSB0aHJlYWQgZG93
biB0byBqdXN0IHRoaXMgb25lIHJlbWFpbmluZyBJRVNHIENPTU1FTlQuDQoNCktlbnQNCg0KDQrv
u78tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogS2VudCBXYXRzZW4gPGt3YXRzZW5A
anVuaXBlci5uZXQ+DQpEYXRlOiBNb25kYXksIEphbnVhcnkgNywgMjAxOSBhdCA0OjEzIFBNDQpU
bzogQmVuamFtaW4gS2FkdWsgPGthZHVrQG1pdC5lZHU+DQpDYzogVGhlIElFU0cgPGllc2dAaWV0
Zi5vcmc+LCAiZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaEBpZXRmLm9yZyIgPGRyYWZ0LWll
dGYtbmV0Y29uZi16ZXJvdG91Y2hAaWV0Zi5vcmc+LCAibmV0Y29uZi1jaGFpcnNAaWV0Zi5vcmci
IDxuZXRjb25mLWNoYWlyc0BpZXRmLm9yZz4sIE5FVENPTkYgV29ya2luZyBHcm91cCA8bmV0Y29u
ZkBpZXRmLm9yZz4sICJkcmFmdC1pZXRmLWRuc29wLWF0dHJsZWFmQGlldGYub3JnIiA8ZHJhZnQt
aWV0Zi1kbnNvcC1hdHRybGVhZkBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBCZW5qYW1pbiBLYWR1
aydzIERpc2N1c3Mgb24gZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yNTogKHdpdGggRElT
Q1VTUyBhbmQgQ09NTUVOVCkNClJlc2VudC1Gcm9tOiA8YWxpYXMtYm91bmNlc0BpZXRmLm9yZz4N
ClJlc2VudC1UbzogPGt3YXRzZW5AanVuaXBlci5uZXQ+LCA8bWlrYWVsLmFicmFoYW1zc29uQHQt
c3lzdGVtcy5zZT4sIDxpYW5mYXJyZXJAZ214LmNvbT4NClJlc2VudC1EYXRlOiBNb25kYXksIEph
bnVhcnkgNywgMjAxOSBhdCA0OjEzIFBNDQoNClthZGRpbmcgRGF2ZSwgYXV0aG9yIG9mIHRoZSBk
cmFmdC1pZXRmLWRuc29wLWF0dHJsZWFmXQ0KDQoNCkhpIEJlbiwNCg0KICBJIGhhdmUgdHJpbW1l
ZCB0aGUgYmVsb3cgcmVzcG9uc2UgZG93biB0byBqdXN0IHRoZSByZW1haW5pbmcgb3BlbiBpdGVt
cy4NCg0KDQpIaSBEYXZlLA0KDQogIENvdWxkIHlvdSBwbGVhc2Ugc2VhcmNoIGZvciAiZHJhZnQt
aWV0Zi1kbnNvcC1hdHRybGVhZiIgaW4gdGhpcyB0aHJlYWQsDQogIHdoaWNoIHJlZ2FyZHMgdGhp
cyBTZWN0aW9uIDQuMiBvZiB0aGUgemVyb3RvdWNoIGRyYWZ0IFsxXSwgYW5kIHByb3ZpZGUNCiAg
eW91ciBvcGluaW9uPyAgSW4gcGFydGljdWxhciwgc2luY2UgX3N6dHAgaXMgdW5kZXIgX3RjcCwg
ZG9lcyB0aGF0IG1lYW4NCiAgdGhhdCBpdCBpcyBub3QgYSBnbG9iYWxseSBzY29wZWQgZW50cnk/
DQogDQogIFsxXSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1uZXRjb25m
LXplcm90b3VjaC0yNyNzZWN0aW9uLTQuMg0KDQpUaGFua3MsDQpLZW50DQoNCg0KPj4gPj4gPiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQo+PiA+PiA+IENPTU1FTlQ6DQo+PiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+
DQo+Pg0KPj4NCj4+ID4+IFNlY29uZCwgSSBhbSBub3QgYSBETlMgZXhwZXJ0LCBkbyB5b3Uga25v
dyB3aG8gd2UgY2FuIGRpc2N1c3MNCj4+ID4+IHN1Y2ggdGhpbmdzIHdpdGg/ICBUaGF0IHNhaWQs
IEkgZ3Vlc3Mgb3VyIGlkZWEgd2FzIHRvIHVzZSBUWFQNCj4+ID4+IHJlY29yZHMgbGlrZSBSRkMg
MTQ2NCwgd2hlcmUgdGhlIFRYVCB2YWx1ZSBpdHNlbGYgaGFzIHRoZSBmb3JtDQo+PiA+PiAiPGF0
dHJpYnV0ZSBuYW1lPj08YXR0cmlidXRlIHZhbHVlPiIsIGluIHdoaWNoIGNhc2UgaXQgZG9lc24n
dA0KPj4gPj4gc2VlbSB0byBuZWVkIElBTkEgcmVnaXN0cmF0aW9uPw0KPj4gPg0KPj4gPiBQbGVh
c2UgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcsIGJ1dCBJIHRoaW5rIHRoaXMgaXNzdWUgd2FzDQo+
PiA+IGFscmVhZHkgY292ZXJlZCBpbiBhIGRpZmZlcmVudCBBRCdzIGJhbGxvdCB0aHJlYWQuDQo+
PiANCj4+IENvcnJlY3QsIFNlY3Rpb24gNC4yIHdhcyB1cGRhdGVkIChwb3N0ZWQgaW4gLTI2KSBw
ZXIgQWxleGV5J3MgRElTQ1VTUy4NCj4+IFBlciB5b3VyIG9yaWdpbmFsIGNvbW1lbnQgKGFuZCBo
aXMsIGFuZCBBZGFtJ3MpLCBTZWN0aW9uIDEwLjYgbm93DQo+PiByZXF1ZXN0cyBJQU5BIHRvIHJl
Z2lzdGVyIHRoZSBzZXJ2aWNlIG5hbWUgInN6dHAiICh3YXMgInplcm90b3VjaCIpLiANCj4+IA0K
Pj4gPiBUaGF0IHNhaWQsIHRoZSBhZGRpdGlvbiBvZiA8c2VyaWFsIG51bWJlcj4uX3plcm90b3Vj
aC5mcWRuIGluIHRoZQ0KPj4gPiAtMjYgc2VlbXMgdG8gaW5kaWNhdGUgdGhhdCBtZW50aW9uIG9m
IGRyYWZ0LWlldGYtZG5zb3AtYXR0cmxlYWYNCj4+ID4gaXMgYXBwcm9wcmlhdGUsIGlmIEkgcmVt
ZW1iZXIgY29ycmVjdGx5IGhvdyB0aGF0IHdvcmtzLg0KPj4gDQo+PiBJJ3ZlIGp1c3Qgbm93IHJl
YWQgZHJhZnQtaWV0Zi1kbnNvcC1hdHRybGVhZi4gIEkgc2VlIHRoZSBhcHBsaWNhYmlsaXR5LA0K
Pj4gYnV0IEkgZG9uJ3QgdW5kZXJzdGFuZCB5b3VyIHByb3Bvc2FsLiAgTG9va2luZyBhdCBEYXRh
VHJhY2tlciwgSSBzZWUNCj4+IHRoYXQgaXQgaXMgYWxyZWFkeSBpbiBSRkMgRWQgUXVldWUsIHNv
IEkgdGhpbmsgeW91J3JlIHN1Z2dlc3RpbmcgbWUNCj4+IHRyZWF0IGl0IGFzIGEgZmFpdCBhY2Nv
bXBsaSwgYW5kIGFkZCBhbiBJQU5BIENvbnNpZGVyYXRpb24gc2VjdGlvbg0KPj4gdG8gcmVnaXN0
ZXIgIl9zenRwIiwgeWVzPyAgQXNzdW1pbmcgdGhhdCBpcyB0aGUgY2FzZSwgdGhlbiB3aGF0IHNo
b3VsZA0KPg0KPiBGcm9tIG1lbW9yeSwgeWVzLg0KPg0KPj4gYmUgZG9uZSB3aXRoIHRoZSBzZXJ2
aWNlIG5hbWUgcmVnaXN0cmF0aW9uIGluIFNlY3Rpb24gMTAuNiwgYWRkZWQgcGVyDQo+PiBjb21t
ZW50cyBmcm9tIEFsZXhleSBhbmQgQWRhbT8NCj4NCj4gSSB0aGluayB3ZSdsbCBuZWVkIHRvIGdl
dCBzb21lIGZ1cnRoZXIgaW5wdXQgZnJvbSBBbGV4ZXkgYW5kL29yIEFkYW0sIGJ1dA0KPiBteSB1
bmRlcnN0YW5kaW5nIGlzIHRoYXQgd2Ugd291bGQgbmVlZCBib3RoIHJlZ2lzdHJhdGlvbnMgLS0g
dGhlIHNlcnZpY2UNCj4gbmFtZSByZWdpc3RyYXRpb24gY292ZXJzIG91ciBfc3p0cC5fdGNwLmZx
ZG4gU1JWIHJlY29yZHMsIGJ1dCB3ZSBhcmUgYWxzbw0KPiB1c2luZyA8c2VyaWFsIG51bWJlcj4u
X3N6dHAuX3RjcC5mcWRuIFRYVCByZWNvcmRzLCBhbmQgc28gKElJVUMpIHdlJ2QgbmVlZA0KPiB0
byBhZGQgYSByZWZlcmVuY2UgdG8gdGhpcyBkb2N1bWVudCBmb3IgdGhlIFRYVCBfdGNwIGVudHJ5
IHRoYXQgUkZDIDY3NjMNCj4gKEROUy1TRCkgaXMgY3VycmVudGx5IHRoZSByZWZlcmVuY2UgZm9y
Lg0KDQpUaGlzIGl0ZW0gcmVtYWlucyBvcGVuLiAgSG9wZWZ1bGx5IERhdmUgY2FuIHByb3ZpZGUg
Z3VpZGFuY2UuDQoNCg0KDQpDaGVlcnMsDQpLZW50DQoNCg0KDQoNCg0KDQo=


From nobody Wed Jan  9 12:54:49 2019
Return-Path: <dcrocker@bbiw.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7FBCA130FDB; Wed,  9 Jan 2019 12:54:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.401
X-Spam-Level: 
X-Spam-Status: No, score=-2.401 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=bbiw.net
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 dydQoQaueugK; Wed,  9 Jan 2019 12:54:36 -0800 (PST)
Received: from simon.songbird.com (simon.songbird.com [72.52.113.5]) (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 A0B05130F33; Wed,  9 Jan 2019 12:54:36 -0800 (PST)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id x09Ktciq008940 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 12:55:38 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bbiw.net; s=default; t=1547067339; bh=4Snj4yrL2uby5T3p17HEomMyq86c2blSZOiYvt61I80=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=jsRA4ky3XUj27jfV0DsMVTL41zlVlRSePhsXxHTg4RE0hGVXuSIaXl2tJdXAQCIZm zu0+gGq0EbAErimg+OakX1lTv43tydxbG+v8XV+zpzQ6A8V/aGb+vfgPc2D8mCbBWs CdWoxWcBYlIMdb6AvXvNpf5Rrs9r3C7KhTkIOV8E=
To: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net>
From: Dave Crocker <dcrocker@bbiw.net>
Message-ID: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
Date: Wed, 9 Jan 2019 12:54:24 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/eE4YiGsDEkG31oD5tHkaoyfgtZM>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 20:54:39 -0000

On 1/9/2019 12:06 PM, Kent Watsen wrote:
> Gentle reminder to Dave, Alexey, and Adam wrt draft-ietf-dnsop-attrleaf.


While I see that the original note includes an address for attrleaf, I 
can't find a copy of the message in my own archive.  So it's good you 
sent the reminder.


> From: Kent Watsen <kwatsen@juniper.net>
> Date: Monday, January 7, 2019 at 4:13 PM
...
> Hi Dave,
> 
>    Could you please search for "draft-ietf-dnsop-attrleaf" in this thread,
>    which regards this Section 4.2 of the zerotouch draft [1], and provide
>    your opinion?  In particular, since _sztp is under _tcp, does that mean
>    that it is not a globally scoped entry?
>   
>    [1] https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-27#section-4.2


I believe your analysis is correct.

In the names your draft uses, _tcp is the global scoped name, relevant 
to attrleaf, while _sztp is subordinate and therefore not relevant to 
attrleaf.

d/


-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net


From nobody Wed Jan  9 13:06:42 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD2B1130FE4; Wed,  9 Jan 2019 13:06:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 CvuEskLJxnbo; Wed,  9 Jan 2019 13:06:30 -0800 (PST)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-eopbgr760137.outbound.protection.outlook.com [40.107.76.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E069130FD4; Wed,  9 Jan 2019 13:06:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ovpGT8cWlkjBk8K8OI4PXWB+1VrwYflVStulny/WPsM=; b=Ne6qjbQrIabTQXQJi221KkEeCliKizgVuurjNv0M48rUPQ2mJEWWjCQoUjzbr8T3S+0gazCuFre8kF2lc3snfaMhc1vj+AW8atMMIIx8/x/Aw7m580u3toPsbhDR0gHCAKzRdNQ6nFEnYePR4zCaVz1X8JcTmEQrdCssTE0Tz+U=
Received: from CY4PR01CA0003.prod.exchangelabs.com (2603:10b6:903:1f::13) by CY4PR0101MB2952.prod.exchangelabs.com (2603:10b6:910:3f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.9; Wed, 9 Jan 2019 21:06:29 +0000
Received: from DM3NAM03FT047.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::200) by CY4PR01CA0003.outlook.office365.com (2603:10b6:903:1f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.13 via Frontend Transport; Wed, 9 Jan 2019 21:06:29 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by DM3NAM03FT047.mail.protection.outlook.com (10.152.83.124) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Wed, 9 Jan 2019 21:06:28 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x09L6NVU005151 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 16:06:25 -0500
Date: Wed, 9 Jan 2019 15:06:22 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Dave Crocker <dcrocker@bbiw.net>
CC: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
Message-ID: <20190109210622.GH28515@kduck.mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(396003)(346002)(376002)(136003)(2980300002)(189003)(199004)(40224003)(446003)(11346002)(966005)(956004)(126002)(46406003)(104016004)(476003)(305945005)(47776003)(6246003)(426003)(336012)(14444005)(88552002)(53416004)(86362001)(26826003)(478600001)(106002)(5660300001)(356004)(6666004)(4326008)(16586007)(7696005)(23726003)(6916009)(58126008)(76176011)(106466001)(246002)(97756001)(2906002)(93886005)(54906003)(55016002)(8676002)(6306002)(486006)(8936002)(75432002)(36906005)(786003)(316002)(50466002)(26005)(229853002)(33656002)(186003)(53546011)(1076003)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR0101MB2952; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; DM3NAM03FT047; 1:Py7gBJRmXlV2HjERJ7X1lH+e44cLHAJda0NcQ6g2p8q7f/gBYz8mU0WquXOEGURMMNisRbyU7xhrRtgPvS0hs+wHWzIWOSWeA+aS+UNmtcoJmBy1c7ERX7ZIPeHkgOnW
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0ab5c953-0642-4bad-20a4-08d6767652f9
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:CY4PR0101MB2952; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR0101MB2952; 3:pn7sa7rXNoF9OmS0xir5RjOXfEFKozpaj2oyzuOPWAcF4x/YBVZzWeHWItYF4c1V1qkA63/C2iGLDLdZtpZNSJDzlaagw9i+Zc+UKX+d5wbauvbqeda8MyTmdxV82/3KXv/y0fexSOQCo3oE5jYi3XGk0r2Rhp2Qg7f7AXAaTiJ6ZJ/LCfuRy7skbFKojczTXPrUfb8hqs2o+NHlp9FLmxqRGVwapfhDodiqp2qlMJnpPpKxmUvZ7h6iTjuJk7Cr8grOQhcQqS3l8z7yxtZNdBgRo7vg9e6+gZhSGTyiPDqE5Ds/19NoP3ESRb7z1+xmF87A0fQln455m6TxgvpTwjFLqZLx34VW96PozisRDLsDxqUZEiKQtuSsuWU3qyXZ; 25:D6EGt4tJuHiQAo7xog8ELKcsbMfsaCVeHPgwRyGRFxrveoI3yztf5d5QEZnWImZmoe7WwKBGc093PNJKl4grzl8DlHoroqqwlT2DYhv2qQ88Zlv2fbXbT75pLR7MLSflFkBRwASpXG/GY3Stw97qSEUdyA4tvr+az716u4HieyQMkiU6gm9yVuS3Zoq4vX1JrUN1jcaE3dPhu50z21bHMnaIZFTdZNkvPNBIhT4/XqHHF/rgI5W05QeP96CW++BqWETG5L3aGRBVip15Kmt9lGuqVjjWF38/4AdoVx5gReIOIK74SBt8UzNdHBpkFCO0P5gHC0yMOOnDhKWj2BPTXA==
X-MS-TrafficTypeDiagnostic: CY4PR0101MB2952:
X-Microsoft-Exchange-Diagnostics: 1; CY4PR0101MB2952; 31:EI4PGssMbDtUXF+e/tEQ3KsuPjh/4aM3ariPMbeEAeo161ZazwOeqQl80eq5+B8Q1C/QMU5OrOjm7TgF1DiYSvIqe6dBhdvJcJRJztlj7sDAEFSDQhYrHjHd25Ba4pLpFo19H+7E9xd2UOrJaCoyOHwqGUIXP9zuMBuVSvgxkv2eQd1O5+H6ImpUBURebEet/Q7P1VlBry+sAUlBvEJMaOjkKjzKD3slqQ+arq8K+WI=; 20:EZDsQRLPTrhOyYnZgeDWI4h/dr1rCyT9Rky0hFurd1bBKqEnLE8DVHH5jcsF97sHWulS3DUJSoZa3SybLh/hXDsFbd77Cw6lCb98Ljmp1ECipJYifkHcA63E5UFqIeDZ6HrJpM5RfJTYONmqyI4q6a7bARlkoP4tbf0XjCMqDgMnRD/tozL+hDsh6upuvtLwinxcwoIJTXmW3tsqpjmODH2Y6iiUn3ujglNMMPfT/jgoOtnEbUcilt+aVhmdlbIi8XeX9da6Y1jyEbzpEE4C7W6uTMntf53dpk/pRQu6OfUPr43w2vt1RjTr99rnXmwv10ndJOEUHHGByCdoz/RCoYsXbvX51T8ORqlCiDezrAXcHiS3U/b/JZxHYHCVXGuwF2ryV2DjSmZInipl+bmDBcMnafW9V/53K9P5N4/CsrT3MmfCPfd3Qfu1CdMJBYx32EOdaf2vcOf1WXFTnMn1+TT/MDSNwC2cbhI2fnzsH8NtxsTc2ZYd3u0c5mF56CtO
X-Microsoft-Antispam-PRVS: <CY4PR0101MB2952E3D3B30884794C107400A08B0@CY4PR0101MB2952.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; CY4PR0101MB2952; 4:OUp8yLp/jGLzv0fKln8aM3fGFeihQu34GHhyzP9aX3NPyDsDDkDt5XD3iTh55xJ+fQ0GD5C0sjJNSIBxSPCmDUFv/CxCanUr4uAvMv557FRCNPZcIGBW/20Iz3or/NPcyKBj1iq1tLcoVEWTNjxWpUzSh8wX6jOGWMTtpfozWhi2+iKQTQ19NjulKZEYeadXDbjxra6nlTdkdTEAgXw1jgzMSTZFuClePKNsGF3QYoYIaiSGqKqVqT3e0ig8lXvY082qs+mWQ1eN/lf5Y5NwZmVUgDugGXZWO7X3LwcfsT4BrPvSxYVFLNZZOxjvrtPA
X-Forefront-PRVS: 0912297777
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR0101MB2952; 23:5s6itnt0YVS6c9EaYyFcA0PokrguXmtd6fv6Nrf?= =?us-ascii?Q?9t6Zpn4sk25BfwcZn0JGy4wldYycFe/1lSKf1dwYDvhSe24ZeFIXBvAMBqCA?= =?us-ascii?Q?0i+62EDi7uCp+/NG75ViK5G5P6JjhoQZ4eIirHIxoKQGyJ4gSrvhVCxDbTOm?= =?us-ascii?Q?PApaSuFlctAUJBa/ZfH9C77XeXmabF1tBAx7dA8C0noI/eZBYuAyOiMQp3nR?= =?us-ascii?Q?i7MmAQy+35/+HbkZ0Wfu6SzyKQIIYZEFMwZIbn9e9mnBMHKQeGqsdPJGsdvT?= =?us-ascii?Q?PJWJMRsAWQUMFQ9cQ1SjEnVPmdLAxpYxhyA/dvM6aRfabJ+jI+Tu6S/NHu8Z?= =?us-ascii?Q?a6SysFDtnEvD+yOhlcwJVkitlyJov0d5V26P0hxw13EP8m99PWhQOLkcoe1h?= =?us-ascii?Q?bjrBb4XHpm/Tm34h4f5b6llfl/rg6AGnDsD0N3kvkLrszg5FssH210OgbwAU?= =?us-ascii?Q?UT9vDnmSbgGhFzl1Z+1vgIiNEpDi3d0w6jV5iBrUKrCZKsNUPu/LCOVXMPPp?= =?us-ascii?Q?RTVwD4byPQzih8GfU6Ay30mxXHnxjs7YB0rxhF4r5iPOKKONLxYasmzbNVOa?= =?us-ascii?Q?YP3kn/hjLXWSP40YGp/A+knrThkkBEq/64fWpiTbnZYvrrqTOWcBVmjb5PMp?= =?us-ascii?Q?hHTaTXVY55rFd8qhXSpvKoFyjs/mw4EK2TMlSQDXazaItcN7bmL0sGrjAGSf?= =?us-ascii?Q?ltrfuZIF1nKpKc3cU6cbsfu1z6NGIqFD9xh6l5ybcfl72lu3rZ3FAnuj36FC?= =?us-ascii?Q?/9SnEY+BT3UUKnGL6SQjqcOVwednxEJNjap3nUYH5/dL6qv+WK8WFRXITlE3?= =?us-ascii?Q?hzeVEGzqZjPjUAMrqD4DuGldPpZmB1GA9w0WskIio7R3BT7M8PKZl46a+EcM?= =?us-ascii?Q?6vNee7Q08IooLuqeVxgecht6NdyYD2A0XVZjtV8V4AgLDbcfdDaln2/IBiU2?= =?us-ascii?Q?Ra+WOzvXbydZ1lNkIeAxCsSbeKofm63S9jbSPj6cpRKuBPVK2PAGxEBSOuQY?= =?us-ascii?Q?obsEDeEJKO0zqYgLKTt5QyKkxAlJtrKR0bu+cL/wVNaab1NmE3VzJEtHsnem?= =?us-ascii?Q?31nsjCTDS9JYFiZ+qNUUh1y+RwCvtavuJBgxYEfA3RuZtXnf3F5wO4rGxFCe?= =?us-ascii?Q?6dxWqNlWEOJGAy4UlHJmdHBeD2gy3yg0/bzuDgXfvom2vA2Kre6OMmkuMRPU?= =?us-ascii?Q?AtX8bQ4sC1SWSkX7xm16UXZbKaXxSr7vMCZd4ZZ+IHYbF9A2ti75Jf4oTJzN?= =?us-ascii?Q?70GwesauY24tf8fohTOPQUB9GOvpg0YS1tT8hfrOACjduB4WfqGPxEO1vNm7?= =?us-ascii?Q?iJLm33W3d6EDzCZbuWPq+VFyty46rpo5xx6LnMwhm03Dr?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: LHzUymz4UG9F+CReBBIc74F2xnJX63QXS8VcE5yV7yXF9zKsuNJATsRr5neFMdOa/JHGk8SV/k21JMZqeWzwyqo6Gh4ArJRfEenpgcfBMiqVEjcmHKHbHQ7Y9abv/v0zAQcurGa0XxCsr2zfIBddzk1ct0k89m9j6fli6+xpIhBYZ7JhzA7PiRmEfRm3iRyC/2Rq4e/64X6NB7F/TELCLM//BcdB03FqD5xL9dps+xua9xVeAfKhdD3wrpwPLJHt4TNwyMflTuSJBy8ikTE3vUnC4OKqzcGKAHRYNvKx2JdH7ED+FwpZPJ6B5aj7dmfQ
X-Microsoft-Exchange-Diagnostics: 1; CY4PR0101MB2952; 6:xgRtkNZvqGqcx9UmZoJP3G0t8FijsfJ+Naa6njtkxZYafdsWuwAVvMj4D0oSuN9ny6JG0v1mKJMac/Mt5yjxvtB259mf4M8F5AvGfwrCG6wxfTLFmyrTnfhcDeA/F7GsBNE43KrUpX9jpaq2koc1r/727TC1nfC8B+GudEtxxocPjFuIDXQEEahaiRo8rsczfjlIpBFVxgSMv60QnV7EuKRpiW7cTfwKr4pDG6ziBXB7tWHDw2pC/2MZAheDNmNiUoDfPVLtyBAZHIV7htw1cWavdJ6X7+lzGSXIKxB0CsdykXImwstYTjCi4ugsdJASBSlFjkdIFlr3n5qPJiZtZKjNsm0ZueyCRg3hJpAGbSsLc/nx5itg3vJPa7X091m9sa8woNf0qHGUSPu9ri/4LOmxxgPteUYRHGDK4MLlX2TK6cJo2ATcSYuRmeNeHPKa9wT/rHWMt5T3OBIqVYIpXQ==; 5:2oaZc+Meah9HRyV7hVGD1r0nbC2hp8nxEgUSrYA7JLlTSnQwO8Oj/znR/fgHeIPLRNdt5FioYGzINUO33zbSmbHBCDKYQsJlPaunr9i2A6nPbNzILctIOpGqrUgBgOYtwpZDuFj8iszMywBSCcJBvXV+OjVIJl3FOfPCnP0Iht3eYtjA1qLyOeHo8aFpZP2tAOQMhDeU38xWaCNopQTNxg==; 7:pkwEH4GiN1aK26zYJ0QmoKAIjIZCFOkGfESjH9UkOGxf6W87xYbI76AwkNcPpN1DmMBbiYZCm2Bqyu76MVs0k2s0yFMe7ea7o1sQrDIgdiLuJgzYlW2cLNusayafsJ77oyUpoRuODFA69UX2kkvwnA==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2019 21:06:28.3687 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ab5c953-0642-4bad-20a4-08d6767652f9
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR0101MB2952
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/qR1VvZm_41IFeWI4yfO3mJRSUd4>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 21:06:33 -0000

On Wed, Jan 09, 2019 at 12:54:24PM -0800, Dave Crocker wrote:
> On 1/9/2019 12:06 PM, Kent Watsen wrote:
> > Gentle reminder to Dave, Alexey, and Adam wrt draft-ietf-dnsop-attrleaf.
> 
> 
> While I see that the original note includes an address for attrleaf, I 
> can't find a copy of the message in my own archive.  So it's good you 
> sent the reminder.
> 
> 
> > From: Kent Watsen <kwatsen@juniper.net>
> > Date: Monday, January 7, 2019 at 4:13 PM
> ....
> > Hi Dave,
> > 
> >    Could you please search for "draft-ietf-dnsop-attrleaf" in this thread,
> >    which regards this Section 4.2 of the zerotouch draft [1], and provide
> >    your opinion?  In particular, since _sztp is under _tcp, does that mean
> >    that it is not a globally scoped entry?
> >   
> >    [1] https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-27#section-4.2
> 
> 
> I believe your analysis is correct.
> 
> In the names your draft uses, _tcp is the global scoped name, relevant 
> to attrleaf, while _sztp is subordinate and therefore not relevant to 
> attrleaf.

That's true for both
SRV in _sztp._tcp.example.com.
and
TXT in <serial number>._sztp._tcp.example.com.
but it's not clear to me that the "existing" TXT _tcp registration is
appropriate for our usage here.

-Ben


From nobody Wed Jan  9 13:12:18 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4B61B130F33; Wed,  9 Jan 2019 13:12:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.254
X-Spam-Level: 
X-Spam-Status: No, score=-5.254 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, 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=juniper.net
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 Ar7VNcX64yTi; Wed,  9 Jan 2019 13:12:14 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 9A80D130EAB; Wed,  9 Jan 2019 13:12:14 -0800 (PST)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x09L7mo0013600; Wed, 9 Jan 2019 13:12:10 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=DtqTmwTnRF4ha53Hh0Jp97BY7ErNeKRtOz6R7YMqaPM=; b=TiqJHJ8A2srwVFrfhiFzlxDJduUz6p7KIZ7CTwK8hMudtejlj8M59iInaHIXWp9zzADu +IsrgMkCwtmcRbv1ytz/5i20bW9wn7+dh+WUB/RrY9fxiv1OPYC3rD2bRkHiJ+2jATWa shhonRQxcXUBBMrIWd9cJSnubvfz0rS7zS8dkRJVjzXAJ3t9xxxof0yq9G24HbHEM9Xf wwEkjXT1CJCS7brSTuX7GidVNBpCZQTJ7sa5kTesftGFgXYeeFef3MbhQBgb4CQnb7Lx wm4SwgdQSiSl8l78v4EL+4kHqgYLt5MGTCGie8YbWrMWl7Eaj8eCRAYnTAmjsKpBd0EK +g== 
Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp2055.outbound.protection.outlook.com [104.47.33.55]) by mx0a-00273201.pphosted.com with ESMTP id 2pwgjqryxd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 09 Jan 2019 13:12:10 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB5638.namprd05.prod.outlook.com (20.177.186.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.10; Wed, 9 Jan 2019 21:12:06 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1516.010; Wed, 9 Jan 2019 21:12:06 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Dave Crocker <dcrocker@bbiw.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4A=
Date: Wed, 9 Jan 2019 21:12:06 +0000
Message-ID: <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
In-Reply-To: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB5638; 6:TIDA26lkhkRyWj30LEf8RLYTxNUeOY0m/W5JFa48i+jbTt89bP/RbA547P3jcOLgrzP4Xmqt0rmDZUaiyWAqbAWAf+upbsJRvqF7sr0YIaAgiYOkDIMUBb7KcTQJLe6ysla5r8qO+QbAvnczI+E8gz3PKkzb8z9ZXJ9jbW5kGtXnLpcAhUUUfoxNBlPtOJfhOhvsFKHaAu+yRZq3hXnzneY53mq79chckwhtfhka1BBYHWCY2D5aDIP5ZvjL6ePUY14F6vbGRsUk4erxZqkltGTJ2G2w2EgdPnsWGxNYSALpf3mwa+wc0hob4LN8U8TLUM0H8/qD60fbNStPpRZkSVWw1vfxlRpJMtEEMRjiOIMXDRd1zaggPDc0clYOfywX4mQdsUAKshb6yKZCMPc7dcdr2KsPNlaMD+In/YKZ04nrTSHfxs0Ss8o0sx3/gGUxlW6U41/yQ5h1xCctoK3lnQ==; 5:BavsuirjTNkk1dZhGC5lzjS4PKe9w61OGpuW0Upi4e4039A6IEPCKjdxTtkEIcYEjIBvsp2eW4gVHRhveseWHOLobJt4JJIeY2PhU0ah0odn8mNpFN2UNFqFv20JHHsGUOaRZeyaONdR5s393xceb12GlnpI/xncyT+L2b56J8UCezWtS+qe9YWm9mZfbsIDU2jz4cAQlt2arlYeONoJMA==; 7:Qjf4cJf6TzfUZYRVbeIcYgCoDJYuiPOdkRVO4ntUjMOhEwnNlrrKn7isNkib36nkhx5jQl+/HQlGT5+o2SbEuWr3bMWNTiZZLVh+gMy2iQJbpK90MO5KxLZ7P3dLHCqkAe+hi0U2ieafBTOMVV/ajg==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 55213faf-c947-44aa-3079-08d676771c2a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB5638; 
x-ms-traffictypediagnostic: BYAPR05MB5638:
x-microsoft-antispam-prvs: <BYAPR05MB563806EF9ECA5BF72A5827FCA58B0@BYAPR05MB5638.namprd05.prod.outlook.com>
x-forefront-prvs: 0912297777
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(366004)(376002)(346002)(136003)(396003)(189003)(199004)(13464003)(6512007)(6116002)(71190400001)(71200400001)(3846002)(25786009)(36756003)(14454004)(486006)(229853002)(83716004)(6306002)(54906003)(58126008)(76176011)(316002)(66066001)(966005)(53936002)(478600001)(6486002)(97736004)(6436002)(106356001)(53546011)(8936002)(7736002)(6506007)(5660300001)(6246003)(105586002)(93886005)(102836004)(305945005)(81166006)(81156014)(8676002)(2906002)(186003)(4326008)(33656002)(82746002)(99286004)(14444005)(256004)(26005)(110136005)(68736007)(446003)(11346002)(476003)(575784001)(86362001)(2616005); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5638; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: qZWYPkbrIScyzSMDBK8qsEB5SGlfylAF4RpY2wH0LD+9m6RmxzpZLETh4mLxtXAjs8WpTWoaXya9f+hrRM0ajyHH5Mpr//6DnTD5IUkKBUjs2jRlAn2v6OBlXPGYSfJyYliZyeSOq087eI8+MqzDnPygzgIq0ZaHrjhPa8wQvPGRVQSX2zzUBMu0lh6UtHKroj7iv0pssc0PzfIqQ9Ijs/ew90+WB/Gmxaa38CSVuulbZiJD5XEJ4IZenTeVM9kOnk53JUFPnGUXlqj/mB+IvM4ThL2891ETaXsfDpYkxmEhUikVf47hOF6y0pxxhsjC
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <0DE3092C08E45348AE39585DF5A7D5EF@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 55213faf-c947-44aa-3079-08d676771c2a
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2019 21:12:06.3935 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5638
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-09_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901090169
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/3GxcDIgScfme4lc-T7okXsoSU-o>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 21:12:17 -0000

SGkgRGF2ZSwNCg0KVGhhbmtzIGZvciB5b3VyIHByb21wdCByZXBseSBhbmQsIHllYWgsIHNvbWV0
aW1lcyB0aGUgSUVURi1hbGlhc2VzIGFyZSB3b25reS4NCg0KWW91ciByZXNwb25zZSBtYWtlcyBz
ZW5zZSB0byBtZSwgYnV0IGl0IGltbWVkaWF0ZWx5IGNvbmp1cmVkIHRoZSBxdWVzdGlvbiBvZiAq
d2h5KiBpcyBfc3p0cCB1bmRlciBfdGNwLCBmb3IgdGhpcyBjYXNlPyAgVGhpcyBxdWVzdGlvbiBp
c24ndCBzcGVjaWZpY2FsbHkgdG8geW91LCB0aG91Z2ggeW91ciBpbnB1dCB3b3VsZCBiZSBhcHBl
cmVjaWF0ZWQuDQoNClRvIGNsYXJpZnksIHRoZSBkcmFmdCB1c2VzIEROUyBpbiB0d28gd2F5czoN
Cg0KMSkgdGhlIGZpcnN0IGlzIGZvciB0cmFkaXRpb25hbCBTUlYgcmVjb3JkcywgZm9yIHdoaWNo
IGJlaW5nIHVuZGVyIF90Y3AgbWFrZXMgc2Vuc2UuDQoNCjIpIHRoZSBzZWNvbmQgaXMgZm9yIFRY
VCByZWNvcmRzIHRoYXQsIG9mIGFuZCBpbiB0aGVtc2VsdmVzLCBhcmUgbm90IGRlc2NyaWJpbmcg
YSBUQ1Agc2VydmljZSwgc28gbXVjaCBhcyBwcm92aWRpbmcgYm9vdHN0cmFwcGluZyBkYXRhLCB0
aGF0IG1heSBvciBtYXkgbm90IGNhdXNlIHRoZSBkZXZpY2UgdG8gaW5pdGlhdGUgYSBzdWJzZXF1
ZW50IGNvbm5lY3Rpb24gKFRDUCBvciBvdGhlcndpc2UpLiAgIEZvciB0aGlzIGNhc2UsIHdlIGFs
c28gaGF2ZSB0aGUgX3N6dHAgcmVjb3JkIHVuZGVyIF90Y3AsIGJ1dCAqc2hvdWxkKiBpdCBiZSB1
bmRlciB0aGUgVExEIGluc3RlYWQ/DQoNCkRvZXMgYW55b25lIGVsc2UgaGF2ZSBhbiBvcHRpb24/
ICBJZiBub25lLCB0aGFuIHdlJ2xsIGFzc3VtZSB0aGUgY3VycmVudCBpcyBnb29kIGVub3VnaC4N
Cg0KVGhhbmtzLA0KS2VudA0KDQoNCg0K77u/LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy
b206IERhdmUgQ3JvY2tlciA8ZGNyb2NrZXJAYmJpdy5uZXQ+DQpEYXRlOiBXZWRuZXNkYXksIEph
bnVhcnkgOSwgMjAxOSBhdCAzOjU0IFBNDQpUbzogS2VudCBXYXRzZW4gPGt3YXRzZW5AanVuaXBl
ci5uZXQ+LCBBZGFtIFJvYWNoIDxhZGFtQG5vc3RydW0uY29tPiwgQWxleGV5IE1lbG5pa292IDxh
YW1lbG5pa292QGZhc3RtYWlsLmZtPg0KQ2M6IFRoZSBJRVNHIDxpZXNnQGlldGYub3JnPiwgImRy
YWZ0LWlldGYtbmV0Y29uZi16ZXJvdG91Y2hAaWV0Zi5vcmciIDxkcmFmdC1pZXRmLW5ldGNvbmYt
emVyb3RvdWNoQGlldGYub3JnPiwgIm5ldGNvbmYtY2hhaXJzQGlldGYub3JnIiA8bmV0Y29uZi1j
aGFpcnNAaWV0Zi5vcmc+LCBORVRDT05GIFdvcmtpbmcgR3JvdXAgPG5ldGNvbmZAaWV0Zi5vcmc+
LCBCZW5qYW1pbiBLYWR1ayA8a2FkdWtAbWl0LmVkdT4NClN1YmplY3Q6IFJlOiBCZW5qYW1pbiBL
YWR1aydzIERpc2N1c3Mgb24gZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yNTogKHdpdGgg
RElTQ1VTUyBhbmQgQ09NTUVOVCkNCg0KT24gMS85LzIwMTkgMTI6MDYgUE0sIEtlbnQgV2F0c2Vu
IHdyb3RlOg0KPiBHZW50bGUgcmVtaW5kZXIgdG8gRGF2ZSwgQWxleGV5LCBhbmQgQWRhbSB3cnQg
ZHJhZnQtaWV0Zi1kbnNvcC1hdHRybGVhZi4NCg0KDQpXaGlsZSBJIHNlZSB0aGF0IHRoZSBvcmln
aW5hbCBub3RlIGluY2x1ZGVzIGFuIGFkZHJlc3MgZm9yIGF0dHJsZWFmLCBJIA0KY2FuJ3QgZmlu
ZCBhIGNvcHkgb2YgdGhlIG1lc3NhZ2UgaW4gbXkgb3duIGFyY2hpdmUuICBTbyBpdCdzIGdvb2Qg
eW91IA0Kc2VudCB0aGUgcmVtaW5kZXIuDQoNCg0KPiBGcm9tOiBLZW50IFdhdHNlbiA8a3dhdHNl
bkBqdW5pcGVyLm5ldD4NCj4gRGF0ZTogTW9uZGF5LCBKYW51YXJ5IDcsIDIwMTkgYXQgNDoxMyBQ
TQ0KLi4uDQo+IEhpIERhdmUsDQo+IA0KPiAgICBDb3VsZCB5b3UgcGxlYXNlIHNlYXJjaCBmb3Ig
ImRyYWZ0LWlldGYtZG5zb3AtYXR0cmxlYWYiIGluIHRoaXMgdGhyZWFkLA0KPiAgICB3aGljaCBy
ZWdhcmRzIHRoaXMgU2VjdGlvbiA0LjIgb2YgdGhlIHplcm90b3VjaCBkcmFmdCBbMV0sIGFuZCBw
cm92aWRlDQo+ICAgIHlvdXIgb3Bpbmlvbj8gIEluIHBhcnRpY3VsYXIsIHNpbmNlIF9zenRwIGlz
IHVuZGVyIF90Y3AsIGRvZXMgdGhhdCBtZWFuDQo+ICAgIHRoYXQgaXQgaXMgbm90IGEgZ2xvYmFs
bHkgc2NvcGVkIGVudHJ5Pw0KPiAgIA0KPiAgICBbMV0gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29m
cG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX190b29scy5pZXRmLm9yZ19odG1sX2RyYWZ0LTJE
aWV0Zi0yRG5ldGNvbmYtMkR6ZXJvdG91Y2gtMkQyNy0yM3NlY3Rpb24tMkQ0LjImZD1Ed0lDYVEm
Yz1IQWtZdWg2M3JzdWhyNlNjYmZoMFVqQlhlTUstbmRiM3ZvRFRYY1d6b0NJJnI9OXprUDB4bkpV
dlpHSjlFUG9PSDdZaHFuMmdzQllhR1R2aklTbGFKZGNabyZtPUNscHNvWWxrelZzSlB4RzJVbXFh
b0U5b3R5X21lQUpZMFdzWjZpTW9YdWcmcz1zU2pMelVtTFhmN0lxYXViQ1BsTVYxaGdmN0F5S0Vo
OUFmcWM2TTUxS3MwJmU9DQoNCg0KSSBiZWxpZXZlIHlvdXIgYW5hbHlzaXMgaXMgY29ycmVjdC4N
Cg0KSW4gdGhlIG5hbWVzIHlvdXIgZHJhZnQgdXNlcywgX3RjcCBpcyB0aGUgZ2xvYmFsIHNjb3Bl
ZCBuYW1lLCByZWxldmFudCANCnRvIGF0dHJsZWFmLCB3aGlsZSBfc3p0cCBpcyBzdWJvcmRpbmF0
ZSBhbmQgdGhlcmVmb3JlIG5vdCByZWxldmFudCB0byANCmF0dHJsZWFmLg0KDQpkLw0KDQoNCi0t
IA0KRGF2ZSBDcm9ja2VyDQpCcmFuZGVuYnVyZyBJbnRlcm5ldFdvcmtpbmcNCmJiaXcubmV0DQoN
Cg==


From nobody Wed Jan  9 13:13:25 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3765D130FE2; Wed,  9 Jan 2019 13:13:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.254
X-Spam-Level: 
X-Spam-Status: No, score=-5.254 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, 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=juniper.net
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 MLjMWnJgIMrM; Wed,  9 Jan 2019 13:13:22 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 1105D130FD4; Wed,  9 Jan 2019 13:13:22 -0800 (PST)
Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x09L7SBP026786; Wed, 9 Jan 2019 13:13:17 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=E2X3DbGvEw8VxMo1ADnMAjcMYMav2aAs4CUKl7M9LfE=; b=jGaWanJvvHbfyfoSwKV8MW9FO5MaHLYY/jJttuBSG0wr2MDOhoZM3ug8uiTKoCa2TD6b BjMBPCwcmR/tXm3lX2XqkXpw2Z++L/9i2hfkiJX19w13HbEwwyPzyN2G3kRkpL011T4D oMH+ZChZ/JRBu450anjqZHLWQbtb6ophTKPAE7Rsl/a7OuC3xzOtGwkcL7Cs5M9ZkRU7 rsfx1T9o4IMLbKaxW764Y6iHTLJnzEknCotJ/dAMXwSBmTkDEn5lTZFUkgi5OhKhHi0c +czAgDB+9IV/5A3ecOuyMBo2LcY453m+qzmYMvUboeCcsgxHZ6XHdLzq8muoBiAT5Wgl CA== 
Received: from nam04-bn3-obe.outbound.protection.outlook.com (mail-bn3nam04lp2053.outbound.protection.outlook.com [104.47.46.53]) by mx0a-00273201.pphosted.com with ESMTP id 2pwmam0hs0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 09 Jan 2019 13:13:17 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB4885.namprd05.prod.outlook.com (52.135.235.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.11; Wed, 9 Jan 2019 21:13:14 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1516.010; Wed, 9 Jan 2019 21:13:14 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>, Dave Crocker <dcrocker@bbiw.net>
CC: Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAAgAADWAD//64YgA==
Date: Wed, 9 Jan 2019 21:13:13 +0000
Message-ID: <824E4204-E676-4552-8DBF-6653DCE9A68C@juniper.net>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <20190109210622.GH28515@kduck.mit.edu>
In-Reply-To: <20190109210622.GH28515@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB4885; 6:qZZ/DOV3jYxNMdnI/PGkaPDLYt0FvUEclp2wxH2tt56d0WTW0sbVG/XvC2PgqzS7U9oAB9aBHpVytgQahT+nUzIKLAC2IUpMUXkA3gYRPSPmlNcjYLgB8at8p6AB6fs6qOtXcwqExVPCL5WYcOOqWyy1Rp+j977Sg/Ir4hMGcm/Cwi6jGWengSUvQvieTW6Oro0/EjdCqmOQNekn78mmMJNOkKJ7KisN8QqXqvppCmieLF681q2A+ExVAG9gtAMekJ7Lxz2gOUsCXIzPwKhd8YRP1ziJZL4HnaPVTm+McsakLd5iX+XIEMoCdspiani/AOORBKBh9mFsjFZFdGjBwjOREI7oc91bB4XszaU27B7Hq6d8uZFGXERtTz/XIlQqHGLxTAurxwS6VjS+toKRHkroMg4o0aIwKw0Flu7ji1QpejHWgKH9dtIblCBAM0RKJEuUzxtbV9TFvfYVPeQrpA==; 5:2D+Py0k1Q47BB7cmRuqt7vtxqmhYhiswlivGXymo6IFeHyF0YUHY49rgEwXqbAYwb/+2/O0N4j36jLsg+41KekpEL7IlLWiXYpyKllXENc8U2J7pjLE7QWTLc0W+7ia2QXbp3MeJG89gxYS3OeOspX7LKc9dOJv6cwv3npIhqWhsU4QpLGHfQesBXeacRKuey9J+j58XD3dEfn27oE8diA==; 7:H02lpVU/wulNDq9nbPBeJ6TxiAh+1pVl2eXeS55v+lWdbSICyyGmamBfqItN2smBAG8X+PN/pb2RuebF3u0Tyod2Ca0ur4qDmQctIE0CcHoCCNoj/EdomGAlhI6IR7RJ5HPhWUhxLh8NJTOFVW2/1w==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 55462da1-da15-47d5-a070-08d676774469
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB4885; 
x-ms-traffictypediagnostic: BYAPR05MB4885:
x-microsoft-antispam-prvs: <BYAPR05MB4885286105E9DF4B6492D104A58B0@BYAPR05MB4885.namprd05.prod.outlook.com>
x-forefront-prvs: 0912297777
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(39860400002)(376002)(346002)(366004)(396003)(199004)(189003)(13464003)(54906003)(486006)(110136005)(81156014)(26005)(186003)(8676002)(3846002)(99286004)(6436002)(229853002)(97736004)(14444005)(83716004)(6116002)(2906002)(6506007)(53546011)(71200400001)(256004)(5660300001)(76176011)(8936002)(81166006)(102836004)(71190400001)(6512007)(6246003)(966005)(476003)(66066001)(14454004)(2171002)(6486002)(25786009)(33656002)(6306002)(93886005)(2616005)(446003)(53936002)(11346002)(4326008)(305945005)(36756003)(58126008)(106356001)(105586002)(575784001)(86362001)(7736002)(82746002)(68736007)(316002)(478600001); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB4885; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: RwW7qZ9M6Q1tSkCtSvxu42Dp2mjaE9vbEhP1py0t2O8nK5RdqAFtSCuCzcUvpv382qQ8D2ro/EbdaKgfiPaysWSG3e9w2gEZAHvQ4eTwgEgjANcK2l6g0OUSFUDm0dtlPOos3ZKy6lcuU5VbPj+FzulC4ELc09av5MZlws1IKfDGpzalX9HCtTY5N7virN75MdpH1MBpTOi6A8REE7rzZhSgvjUuQQslBlmwZDVnbuv0bdC4xQlRRj3K1uBsxDDmyjX+PvOM36RUB4XRsTN95qynLHVewnJpctE76mcucBx76Csxe/+lHCHJYc2n3bC6
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <877696EB052AA64DB13833EC512B99BA@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 55462da1-da15-47d5-a070-08d676774469
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2019 21:13:13.8871 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4885
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-09_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901090169
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/amG7TbtFgFEH70Wnh3gPkl362zk>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 21:13:24 -0000

SGkgQmVuLA0KDQpJIHRoaW5rIHdlIHNhaWQgdGhlIHNhbWUgdGhpbmcuDQpXaG8gY2FuIHdlIGFz
az8NCg0KS2VudA0KDQoNCu+7vy0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBCZW5q
YW1pbiBLYWR1ayA8a2FkdWtAbWl0LmVkdT4NCkRhdGU6IFdlZG5lc2RheSwgSmFudWFyeSA5LCAy
MDE5IGF0IDQ6MDYgUE0NClRvOiBEYXZlIENyb2NrZXIgPGRjcm9ja2VyQGJiaXcubmV0Pg0KQ2M6
IEtlbnQgV2F0c2VuIDxrd2F0c2VuQGp1bmlwZXIubmV0PiwgQWRhbSBSb2FjaCA8YWRhbUBub3N0
cnVtLmNvbT4sIEFsZXhleSBNZWxuaWtvdiA8YWFtZWxuaWtvdkBmYXN0bWFpbC5mbT4sIE5FVENP
TkYgV29ya2luZyBHcm91cCA8bmV0Y29uZkBpZXRmLm9yZz4sICJkcmFmdC1pZXRmLW5ldGNvbmYt
emVyb3RvdWNoQGlldGYub3JnIiA8ZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaEBpZXRmLm9y
Zz4sIFRoZSBJRVNHIDxpZXNnQGlldGYub3JnPiwgIm5ldGNvbmYtY2hhaXJzQGlldGYub3JnIiA8
bmV0Y29uZi1jaGFpcnNAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogQmVuamFtaW4gS2FkdWsncyBE
aXNjdXNzIG9uIGRyYWZ0LWlldGYtbmV0Y29uZi16ZXJvdG91Y2gtMjU6ICh3aXRoIERJU0NVU1Mg
YW5kIENPTU1FTlQpDQpSZXNlbnQtRnJvbTogPGFsaWFzLWJvdW5jZXNAaWV0Zi5vcmc+DQpSZXNl
bnQtVG86IDxrd2F0c2VuQGp1bmlwZXIubmV0PiwgPG1pa2FlbC5hYnJhaGFtc3NvbkB0LXN5c3Rl
bXMuc2U+LCA8aWFuZmFycmVyQGdteC5jb20+DQpSZXNlbnQtRGF0ZTogV2VkbmVzZGF5LCBKYW51
YXJ5IDksIDIwMTkgYXQgNDowNiBQTQ0KDQpPbiBXZWQsIEphbiAwOSwgMjAxOSBhdCAxMjo1NDoy
NFBNIC0wODAwLCBEYXZlIENyb2NrZXIgd3JvdGU6DQo+IE9uIDEvOS8yMDE5IDEyOjA2IFBNLCBL
ZW50IFdhdHNlbiB3cm90ZToNCj4gPiBHZW50bGUgcmVtaW5kZXIgdG8gRGF2ZSwgQWxleGV5LCBh
bmQgQWRhbSB3cnQgZHJhZnQtaWV0Zi1kbnNvcC1hdHRybGVhZi4NCj4gDQo+IA0KPiBXaGlsZSBJ
IHNlZSB0aGF0IHRoZSBvcmlnaW5hbCBub3RlIGluY2x1ZGVzIGFuIGFkZHJlc3MgZm9yIGF0dHJs
ZWFmLCBJIA0KPiBjYW4ndCBmaW5kIGEgY29weSBvZiB0aGUgbWVzc2FnZSBpbiBteSBvd24gYXJj
aGl2ZS4gIFNvIGl0J3MgZ29vZCB5b3UgDQo+IHNlbnQgdGhlIHJlbWluZGVyLg0KPiANCj4gDQo+
ID4gRnJvbTogS2VudCBXYXRzZW4gPGt3YXRzZW5AanVuaXBlci5uZXQ+DQo+ID4gRGF0ZTogTW9u
ZGF5LCBKYW51YXJ5IDcsIDIwMTkgYXQgNDoxMyBQTQ0KPiAuLi4uDQo+ID4gSGkgRGF2ZSwNCj4g
PiANCj4gPiAgICBDb3VsZCB5b3UgcGxlYXNlIHNlYXJjaCBmb3IgImRyYWZ0LWlldGYtZG5zb3At
YXR0cmxlYWYiIGluIHRoaXMgdGhyZWFkLA0KPiA+ICAgIHdoaWNoIHJlZ2FyZHMgdGhpcyBTZWN0
aW9uIDQuMiBvZiB0aGUgemVyb3RvdWNoIGRyYWZ0IFsxXSwgYW5kIHByb3ZpZGUNCj4gPiAgICB5
b3VyIG9waW5pb24/ICBJbiBwYXJ0aWN1bGFyLCBzaW5jZSBfc3p0cCBpcyB1bmRlciBfdGNwLCBk
b2VzIHRoYXQgbWVhbg0KPiA+ICAgIHRoYXQgaXQgaXMgbm90IGEgZ2xvYmFsbHkgc2NvcGVkIGVu
dHJ5Pw0KPiA+ICAgDQo+ID4gICAgWzFdIGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNv
bS92Mi91cmw/dT1odHRwcy0zQV9fdG9vbHMuaWV0Zi5vcmdfaHRtbF9kcmFmdC0yRGlldGYtMkRu
ZXRjb25mLTJEemVyb3RvdWNoLTJEMjctMjNzZWN0aW9uLTJENC4yJmQ9RHdJQkFnJmM9SEFrWXVo
NjNyc3VocjZTY2JmaDBVakJYZU1LLW5kYjN2b0RUWGNXem9DSSZyPTl6a1AweG5KVXZaR0o5RVBv
T0g3WWhxbjJnc0JZYUdUdmpJU2xhSmRjWm8mbT1sUjRRZW9OYlkybGNvdTVzVTg4cDFicmM1VE5M
MVRYdDl3cXhlOFdlWjd3JnM9MWlwRDBsT2p1YTJCbmhIM0x0TnhvNTJzMHpseDlYbVl6OUczNTJS
cHlHUSZlPQ0KPiANCj4gDQo+IEkgYmVsaWV2ZSB5b3VyIGFuYWx5c2lzIGlzIGNvcnJlY3QuDQo+
IA0KPiBJbiB0aGUgbmFtZXMgeW91ciBkcmFmdCB1c2VzLCBfdGNwIGlzIHRoZSBnbG9iYWwgc2Nv
cGVkIG5hbWUsIHJlbGV2YW50IA0KPiB0byBhdHRybGVhZiwgd2hpbGUgX3N6dHAgaXMgc3Vib3Jk
aW5hdGUgYW5kIHRoZXJlZm9yZSBub3QgcmVsZXZhbnQgdG8gDQo+IGF0dHJsZWFmLg0KDQpUaGF0
J3MgdHJ1ZSBmb3IgYm90aA0KU1JWIGluIF9zenRwLl90Y3AuZXhhbXBsZS5jb20uDQphbmQNClRY
VCBpbiA8c2VyaWFsIG51bWJlcj4uX3N6dHAuX3RjcC5leGFtcGxlLmNvbS4NCmJ1dCBpdCdzIG5v
dCBjbGVhciB0byBtZSB0aGF0IHRoZSAiZXhpc3RpbmciIFRYVCBfdGNwIHJlZ2lzdHJhdGlvbiBp
cw0KYXBwcm9wcmlhdGUgZm9yIG91ciB1c2FnZSBoZXJlLg0KDQotQmVuDQoNCg==


From nobody Wed Jan  9 13:48:43 2019
Return-Path: <dcrocker@bbiw.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B248A12DD85; Wed,  9 Jan 2019 13:48:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.401
X-Spam-Level: 
X-Spam-Status: No, score=-2.401 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=bbiw.net
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 vwBkq1EE6GPb; Wed,  9 Jan 2019 13:48:33 -0800 (PST)
Received: from simon.songbird.com (simon.songbird.com [72.52.113.5]) (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 52092130FE1; Wed,  9 Jan 2019 13:48:33 -0800 (PST)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id x09LnWaZ014114 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 13:49:34 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bbiw.net; s=default; t=1547070575; bh=573XmOFsb9ZtVeHTvhInM66/fhYAKZFceyOWFnzDJUo=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=h9sSHWoUVedgz5LndVErKaFfY6fIsDGSfxyE5QZn83Uxl12BlVwyod2tle8F8rBVE TIwZ9EDLMKx71es0X23Tb347TuFHPZiUjrjk+5uM17laiWC1xDSfvk4/mn+vf1pLTr P2SCRJUEjq6WjAGYWP5zx6ra3maYZ+fquwvEkqyk=
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <20190109210622.GH28515@kduck.mit.edu>
From: Dave Crocker <dcrocker@bbiw.net>
Message-ID: <f00010d6-4a5a-259a-259f-b70efb70eff5@bbiw.net>
Date: Wed, 9 Jan 2019 13:48:18 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <20190109210622.GH28515@kduck.mit.edu>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/gikKVRQFOXnw6ALUjqOA9ZrMaMc>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 21:48:35 -0000

On 1/9/2019 1:06 PM, Benjamin Kaduk wrote:
>> I believe your analysis is correct.
>>
>> In the names your draft uses, _tcp is the global scoped name, relevant
>> to attrleaf, while _sztp is subordinate and therefore not relevant to
>> attrleaf.
> That's true for both
> SRV in _sztp._tcp.example.com.
> and
> TXT in <serial number>._sztp._tcp.example.com.
> but it's not clear to me that the "existing" TXT _tcp registration is
> appropriate for our usage here.


I'm pretty sure it is.

 > TXT        | _tcp                | [RFC6763]

The existing entry for TXT/_tcp in the attrleaf registry reserves the 
global use of _tcp and assigned responsibility for it to RFC 6763.

Worrying about reservation of the /global/ scoped names is the limit to 
the scope of attrleaf.

It intentionally punts on any concern for /subordinate/ underscored 
names, which become the responsibility of the specification to which the 
reserved globally-scoped RR/name combination has been assigned.


d/

-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net


From nobody Wed Jan  9 14:00:26 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3BF36126DBF; Wed,  9 Jan 2019 14:00:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 s_BBYw4hiv8j; Wed,  9 Jan 2019 14:00:16 -0800 (PST)
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680113.outbound.protection.outlook.com [40.107.68.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C94712D84C; Wed,  9 Jan 2019 14:00:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sdIyxKJnCsyXFBhudsoDnN1XU8sZFFyDsIjExKmQxlU=; b=ppOgWiTz29J4/ax5TK0NVfLD1LY52iKcnMqLWkKn2s4C77dEc1NJArDFh6A/oIpyeBU+DuXBnyjkD+imJAhgDbWglRkkif7mzP6qBWibNUrJ95xXGMWzoKVmIczz/c+CpeRfVeFOKzHiPE6DdtTXP9sZhBa7uOpB7i3eCwjbT2U=
Received: from SN6PR0102CA0035.prod.exchangelabs.com (2603:10b6:805:1::48) by DM5PR0101MB2956.prod.exchangelabs.com (2603:10b6:4:2c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.7; Wed, 9 Jan 2019 22:00:13 +0000
Received: from CO1NAM03FT041.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::205) by SN6PR0102CA0035.outlook.office365.com (2603:10b6:805:1::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1495.7 via Frontend Transport; Wed, 9 Jan 2019 22:00:13 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT041.mail.protection.outlook.com (10.152.81.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Wed, 9 Jan 2019 22:00:12 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x09M07Gi023750 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 17:00:09 -0500
Date: Wed, 9 Jan 2019 16:00:07 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Dave Crocker <dcrocker@bbiw.net>
CC: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
Message-ID: <20190109220007.GI28515@kduck.mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <20190109210622.GH28515@kduck.mit.edu> <f00010d6-4a5a-259a-259f-b70efb70eff5@bbiw.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <f00010d6-4a5a-259a-259f-b70efb70eff5@bbiw.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(376002)(136003)(396003)(346002)(39860400002)(2980300002)(199004)(189003)(40224003)(55016002)(76176011)(50466002)(229853002)(786003)(8936002)(75432002)(186003)(5660300001)(6246003)(486006)(36906005)(46406003)(2906002)(47776003)(97756001)(88552002)(246002)(4326008)(104016004)(106002)(305945005)(956004)(8676002)(86362001)(446003)(26826003)(93886005)(126002)(11346002)(33656002)(478600001)(106466001)(54906003)(7696005)(6916009)(336012)(1076003)(426003)(16586007)(53546011)(53416004)(316002)(26005)(14444005)(476003)(23726003)(58126008)(356004)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR0101MB2956; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-Microsoft-Exchange-Diagnostics: 1; CO1NAM03FT041; 1:iirnGXeWCNI3IMfVNiATJl8Mzd3QYg1sgyfjMyaxXWeIM32xxnUBSs5fcPQLoO6crthH+1/nwK/JMOy9VawNJZRvXU5OqIvZBeto43u1SqW+RhRF18P94Zk0DuRL0Cyf
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 2f6b0bc7-3270-4db1-3f4d-08d6767dd48e
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:DM5PR0101MB2956; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR0101MB2956; 3:VDdpJdG+Lok0NTEMB5UiV8XajTNQ5RgBOdIH7cHTGR97nPYXw7Emr19Tq0IO9xBVEuRgSHL3+hJPieBE7oLpENubvCkWmR51pLp68ShFWWuiKL3fhwLb5GgWCg/Ai1X8nYx5siMI5UDgYq8QlLZ33orMbtIjZC7rc6JIgtGb0cZCIeQEhi9vWOKxdkQaKrYiUMIxJUZ+tV+CSRpCtsYrwPhkPmGOGyUYrk7697CEZuMwgF5Gq52i3c9H8XhCTcApLG/zTeq2+rvLC248e5r5nOHmEgUFSgPnO+DWkBhtfTxvmxrTqV/mamBH5ja/fRVG8twYt+lSgfJ5pfLIA9c7UBHEszvkselk96fd5S11D2/oDZfr8vVoVDC/DWy6+kdo; 25:MlN3dY3Ay7eMdC4XofvHLKjGLd6vjuX08hjy7+tLq26qkhYx4/C8lXywdLdfAxP0wz9wW0es/F+wzhfNU2BwqdLx4poQfRcwa13/XgLqWR8RhMw2kLHgzaYOtFWxH4dVcwDan72vOFgR7LQ/rvYm/kaKn4ag29fEQJZY2/kkaUBokYxCSMQYM/Rw3hrviI2Px0mFjidrgSrjUCL02ivz5cg+1OKX4RgwdQQ0ro4nvqDtp5HCXWOaFVIDxU1BJ1X1Q5IVsFEjAxFUvQ7Oo+OUgX91luq6OW1HRE8VAGB1XLgNg81xSvThU/wsJdLK6hkiZpo4Tat5rYP5lKj85cvZAg==
X-MS-TrafficTypeDiagnostic: DM5PR0101MB2956:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR0101MB2956; 31:DCftFcYNAD1ai34d2jE5QUp7wp2ZK+LK7pn7xlyuIw8nHtWp/xIYfzNyAnFdK/PBvC6hvLaStUtFQWdKZf1tEeOTFVVvOjvP4Ygtoltv4ijkvq8y5yqtAF0ddo72GXtZMJMhpzlvPcERCNFXjlzzsq444eeqjGznw9+IQWWni8ZpBxkvHWMDb2sVtAI7+r2ZMbzRv3JfHrjmZnAhPPtNSJ1LRKyJkOgf76PqzYAw05g=; 20:7vTllSojPWQbEu2c5uC9atTw5e0BsTRgysB4mGHitW6cDZcMArVUEOunFfPlyLjhXnkb+nkgYdFGUKOZqBSz4HJuhUY9I0+hVJChAgo64tZ53Z/pZpLl3cy8TgJAkBOLa94hoyK9KgftMz6ZL1fIWkMG1/JWFZhIj4gas3ACThEvybJezDKEexQYnhfdGnrJiHD9/l5KUojkIErsacYw9HqIvkyhhM0KAaRdbHXG/IMr7H0ewyrk6A0lpJMQo8HZT4ijt4PFsERRJ6i1wydNK4NV73HfQaMn2TTzVvw983qridtiPjaX2eykhVTasl37hj5GEDrMIc1zlEO4V5VjRmw7AGsvUsjFRA3tva45teCBmpiQHcxp2MiVYWPa52sb2+q4rQJUmAwYh7SDMZxXiDgY4lI6f5yo+rSzi0UvZy0aeDXVTmlD4GlHGetYVjAs+r8jP4uZX410SdqRGRx/z3PHwqWNsm71Zk+uKcUZcdyThWmp6CM4FHF2/UzplSIB
X-Microsoft-Antispam-PRVS: <DM5PR0101MB2956C0B6EC6C0A3063E7422FA08B0@DM5PR0101MB2956.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; DM5PR0101MB2956; 4:hQtv1pP40+vEgRjcP6+Egimd5xHQhdJrZCu6i4RE5lGOMczbJMZIqDFcNZpXQ6jEesFMNz2rFyQ/1S4+O8AaTr5dvgztZ1UGSFH4y3Evnxtp12QjO9A2Ok1EbAzpSElN8UAHNtbR/IqgEIWAyZDrJ5fovhuSUgYfzsZOQDYbOyilJy72WLAKewY1cQn8rq5uuxGUEdUEMW0JEFqw0fn08C98rpvt+lFQ5eXfXfODrGKCL6HS2bU9Fi35Yu+wacbFKrbNMAscPaGVFZ2KFa8CyxHTyq6YrSLO2zhuAOCOCBNUsastv9zilVPOScaFYxMW
X-Forefront-PRVS: 0912297777
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0101MB2956; 23:RGXb9ftSiHEW7nRy5awGe8BjQeD9BBLJk2zwzpI?= =?us-ascii?Q?Pmwspy8tdIGjhheh04L0IUVSpIdevonllJKEMO31fkH/26RZF4TUP2FfOIRn?= =?us-ascii?Q?v5ZA5yX7OT/SCZgFTl31AP9hP+vVLVN+s1Q+P/LsSrX7CD9tMzQ+jUyjrFEm?= =?us-ascii?Q?ofel5UZ5YGTWtzaXhLN2EpQZANK7tQcFZoVIM3jGnd9O0J11PPeVEQA2oMvD?= =?us-ascii?Q?Pnze56depAyN17mDkuVp4zQsDCm4V1IB70aDciazhgl78h/2XSIAsHbqrGwD?= =?us-ascii?Q?xH59in18kPWleRx/mKtJmpUyZXNvnXYKIZ3YrbrcJvbAOFMlTKIoTRL5IcX3?= =?us-ascii?Q?EswugKDxFP5sbJisxRvbkYe8l5/xrTRIL20rnUVL0T5EzU2Co4y4welz7fXm?= =?us-ascii?Q?8WsSibKgY+ucGbrW8Xw1pb/C97lI4VBxGiqep97clbukpr9SFUv29pz/a6IO?= =?us-ascii?Q?bf1JpAR8cfOmIOFRvpKqWUvX0SlJ5CtBIII4hG7lwqD7ZuE73jFC+5wxaAu5?= =?us-ascii?Q?DeD74oK4ePUnSv/r2lKmxXKR72m3UhfPT9eJExTHsYUHaIoeOachz42J+MGs?= =?us-ascii?Q?qp/4+qlcBREjk6r1D0uOx9/vv+aBB9ebYev4ztVYBMrIU8vKeSHR2HwU658U?= =?us-ascii?Q?fjQ+zgRcUn624TOH8bWIzmEN6OzCOSELI6qLwcqGhZZGUlSNrjX9POPeAj2w?= =?us-ascii?Q?vJne39MCd7nDJBrQKn4DAgj7QDmx6j/qY/wH1jmagRA7AoX1p0kOMoBHIQfM?= =?us-ascii?Q?J/MLTW/ZCmc18iGhJ1Q2YQJb4tak/b2og/oKAqfnJu8UWf2/YS+1OA14sNtl?= =?us-ascii?Q?2YxymEGVfRhbjG5KMYpTrMvYOVjhow2M3TLbNwTtNCf+7MUc2HAWSuxZeHz7?= =?us-ascii?Q?RRXYy/Dr6JKMpqfq45TwhUJoMIePTetAPDc4Lez/K82AEZcng5OKDgwszhW1?= =?us-ascii?Q?7HCSo3/TYtIKEMt5VL9O7C9l0qdpfCdEMQgsymlyigztiBvHGKR99pByHtbz?= =?us-ascii?Q?tUTQKDj4YWHQotHLTi8G2jdNemKoWpJ+KoY3x5vOmjI3qGIrG7SckGhZEmC8?= =?us-ascii?Q?F57BWScXZpx+AmYuBT/U5ImYWE8VG2T9gLrUIhnC1PDgCHA6CKw/66Tk4H/a?= =?us-ascii?Q?lZHny+bPDezO4ees7analLtOzLfzZlUJjhNvgw3xQzCBxk9aG/DqJ1fqV/zd?= =?us-ascii?Q?rfa7xKGOmtuHe5eFLIuCgVodI5Z1dtyOR3cfnN9LIXnOCSh54YH7Xeffc3YW?= =?us-ascii?Q?RE7HrA+axQJEI575HOSC4rDXJfeHBhnIqfXBmg79lssjiI4PXNgraO25jcEO?= =?us-ascii?Q?fLw=3D=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: o3JOqMnwM70yFSLEBBB0Qc9W1eAmW22CqgZJ2CcwVdaaFNMLBE5vR4zS2QnalcPkuOUV3wuW/+vhdKVua4EUL7pwPgafp/tTBH//ADIf76WkP/v6ob7tKXcRjBdvxZShrGwVHI93Ar1o4mzfxM1FAqbT+vm2E3x8yuuqG8RRH7gv1HKOeAD92pvxKQS0AEWk/9DUs6AD8RVORz8vMZpxdCI/gUdpoomcf6ACCx6THu1dBjER97BDCNT3eNmWBIU+jvXIM581X8RuQ5Y0NGOnD54jj+r/MD7x0SPY2xptag4Mze+iPloMCoIpSVCgaE/+
X-Microsoft-Exchange-Diagnostics: 1; DM5PR0101MB2956; 6:5imp9g2q1v+zSECdHL2F7tKWIM3llUJzMM/45iFrTm7w4mfqsf723tJHP/uElfrChQEDv/HLh1gZq3mc2lod+zfBtXPEOu5nVoi+EXTBsKNn2RuCIJIXWRTHF5I0/x3Ojy15XKmxkPmBCUkHbDEHc7YY/gEMg4qDdgiLPNYyUzlHfWRNMYtQr0gnXfssLuKZBveaGh9cmHoAfDhlZSXNNWSymHKGgVibvprWT8xi6VxJlo3PHyPy4P1sew1C/o80rK10G8GFmMsdFIngKTSVlDNWNd6dXRTgt0NRL/sfrSio3pkigkvPQwRGtXgwX9lsPegl/OGJLd52XS9GsS0x86oztAhjJJDOPceXrUO16m0eBQc6y51Nj7EoOzK7GyF+FhVd98jRSpOlcnCTGomeTxi7YQEU58N4xtDsHqC+PYk6LKL9s2rXHQ121riUx+Qd0TaZotn6mFrnhZ/T2gAugA==; 5:xgITdN/DwMCEuh74ywHcgh6PwcLDOFXozHJGjJwr86Ww8QoOjehoZ6GzCpnJ7//X345QvwRpBnHxDi1C0oMUopA0k0e2AMPFRjpg7bV1e3twEfSPgX7aK+q9+jZWoi+1ykBq/OUPGaRKMa1g5gaumJdxKK0CFYHsFDasdBh9hcL9NXw2JWgUVgKXVQT5UfsoVHPSd+gGZGkOuoqYJmaeow==; 7:/k4zjAM6X8g2sRJs1BSjnI9biZDuqB025+A3j1pvcj2KRI1hyUNHmkh2//rRgOKX8uCWh0Nh4lz0e/mgB4wLUC+Gc/dRcgJSO443Aw/2BcuA+fu7gEoPXOVRlsSwcTN/3hXD7y2WwwSbNsS3/YwfiA==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2019 22:00:12.3585 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f6b0bc7-3270-4db1-3f4d-08d6767dd48e
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0101MB2956
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/3Cb0Si8ifUxnWKWJ7rU3uJezR-I>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 22:00:18 -0000

On Wed, Jan 09, 2019 at 01:48:18PM -0800, Dave Crocker wrote:
> On 1/9/2019 1:06 PM, Benjamin Kaduk wrote:
> >> I believe your analysis is correct.
> >>
> >> In the names your draft uses, _tcp is the global scoped name, relevant
> >> to attrleaf, while _sztp is subordinate and therefore not relevant to
> >> attrleaf.
> > That's true for both
> > SRV in _sztp._tcp.example.com.
> > and
> > TXT in <serial number>._sztp._tcp.example.com.
> > but it's not clear to me that the "existing" TXT _tcp registration is
> > appropriate for our usage here.
> 
> 
> I'm pretty sure it is.
> 
>  > TXT        | _tcp                | [RFC6763]
> 
> The existing entry for TXT/_tcp in the attrleaf registry reserves the 
> global use of _tcp and assigned responsibility for it to RFC 6763.

Right.

But RFC 6763 is DNS Service Discovery, whose TXT records have a particular
structure, defined in its (subsections of) Section 6.  That is not what's
going on here.

So what should the attrleaf registry say about TXT _tcp that would actually
be relevant for our usage?

-Benjamin

> Worrying about reservation of the /global/ scoped names is the limit to 
> the scope of attrleaf.
> 
> It intentionally punts on any concern for /subordinate/ underscored 
> names, which become the responsibility of the specification to which the 
> reserved globally-scoped RR/name combination has been assigned.
> 
> 
> d/
> 
> -- 
> Dave Crocker
> Brandenburg InternetWorking
> bbiw.net


From nobody Wed Jan  9 14:20:10 2019
Return-Path: <dcrocker@bbiw.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40304126DBF; Wed,  9 Jan 2019 14:20:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.401
X-Spam-Level: 
X-Spam-Status: No, score=-2.401 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=bbiw.net
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 gTFK9AZFUNVE; Wed,  9 Jan 2019 14:20:01 -0800 (PST)
Received: from simon.songbird.com (simon.songbird.com [72.52.113.5]) (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 B9296124D68; Wed,  9 Jan 2019 14:20:01 -0800 (PST)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id x09ML3V2017396 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 14:21:03 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bbiw.net; s=default; t=1547072464; bh=EsJ48IKFdWbO46o7Zdcp5c7vsXJOXslBdMAF4KZ3JaQ=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=SMImscqHHVqWRaxRQOG/ySnPiozicC3PTKG35g237hw0jJtl0UAOAW+PnqTO8X+Z+ pH+oSkqFsOcKazz3PBjJ5TMObSx0pKm8AERtrCqURzOlEIfUD3I19HSaCZsowl94f7 9mU4kCb7EMRY0z4joRUJeH/+OBlNie2HQcVuqnUc=
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <20190109210622.GH28515@kduck.mit.edu> <f00010d6-4a5a-259a-259f-b70efb70eff5@bbiw.net> <20190109220007.GI28515@kduck.mit.edu>
From: Dave Crocker <dcrocker@bbiw.net>
Message-ID: <1629c7a3-18e3-8479-9928-736b22f39d06@bbiw.net>
Date: Wed, 9 Jan 2019 14:19:49 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <20190109220007.GI28515@kduck.mit.edu>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/-p4HCdvDgaD_15OtpzMtJYQAyDw>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Jan 2019 22:20:03 -0000

On 1/9/2019 2:00 PM, Benjamin Kaduk wrote:
> On Wed, Jan 09, 2019 at 01:48:18PM -0800, Dave Crocker wrote:
>> On 1/9/2019 1:06 PM, Benjamin Kaduk wrote:
>>>> I believe your analysis is correct.
>>>>
>>>> In the names your draft uses, _tcp is the global scoped name, relevant
>>>> to attrleaf, while _sztp is subordinate and therefore not relevant to
>>>> attrleaf.
>>> That's true for both
>>> SRV in _sztp._tcp.example.com.
>>> and
>>> TXT in <serial number>._sztp._tcp.example.com.
>>> but it's not clear to me that the "existing" TXT _tcp registration is
>>> appropriate for our usage here.
>>
>>
>> I'm pretty sure it is.
>>
>>   > TXT        | _tcp                | [RFC6763]
>>
>> The existing entry for TXT/_tcp in the attrleaf registry reserves the
>> global use of _tcp and assigned responsibility for it to RFC 6763.
> 
> Right.
> 
> But RFC 6763 is DNS Service Discovery, whose TXT records have a particular
> structure, defined in its (subsections of) Section 6.  That is not what's
> going on here.
> 
> So what should the attrleaf registry say about TXT _tcp that would actually
> be relevant for our usage?


I'll admit to winging it, as I type this, so I won't be surprised if I'm 
seriously misunderstanding, but...

I think what you are saying is that your planned use conflicts with the 
usage defined in the existing TXT use under 6763.

Unless I'm misreading that doc, it doesn't provide for subordinate 
underscored naming.  Right?

So that means your spec has created a conflict.

I suspect it stems from the fact that you also use SRV, which has 
standardized use of _tcp and you are merely trying to stay with that 
framework.

I think the solution is that you should not stay with that framework, 
for the TXT record and therefore should use some new, global underscored 
name and register in the attrleaf registry.  (Remember, I said I was 
winging it....)

d/


-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net


From nobody Wed Jan  9 17:07:38 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3FA9130E1C; Wed,  9 Jan 2019 17:07:32 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 ZZN-FMfDfxxr; Wed,  9 Jan 2019 17:07:31 -0800 (PST)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-eopbgr800092.outbound.protection.outlook.com [40.107.80.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73CD712DD85; Wed,  9 Jan 2019 17:07:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ovpGT8cWlkjBk8K8OI4PXWB+1VrwYflVStulny/WPsM=; b=Ne6qjbQrIabTQXQJi221KkEeCliKizgVuurjNv0M48rUPQ2mJEWWjCQoUjzbr8T3S+0gazCuFre8kF2lc3snfaMhc1vj+AW8atMMIIx8/x/Aw7m580u3toPsbhDR0gHCAKzRdNQ6nFEnYePR4zCaVz1X8JcTmEQrdCssTE0Tz+U=
Received: from MWHPR0101MB2958.prod.exchangelabs.com (2603:10b6:301:2b::11) by MWHPR0101MB2958.prod.exchangelabs.com (2603:10b6:301:2b::11) with TransportReplication id Version 15.20 (Build 1495.9); Thu, 10 Jan 2019 01:07:29 +0000
Received: from CY4PR01CA0003.prod.exchangelabs.com (2603:10b6:903:1f::13) by CY4PR0101MB2952.prod.exchangelabs.com (2603:10b6:910:3f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.9; Wed, 9 Jan 2019 21:06:29 +0000
Received: from DM3NAM03FT047.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::200) by CY4PR01CA0003.outlook.office365.com (2603:10b6:903:1f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.13 via Frontend Transport; Wed, 9 Jan 2019 21:06:29 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by DM3NAM03FT047.mail.protection.outlook.com (10.152.83.124) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Wed, 9 Jan 2019 21:06:28 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x09L6NVU005151 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 16:06:25 -0500
Date: Wed, 9 Jan 2019 15:06:22 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Dave Crocker <dcrocker@bbiw.net>
CC: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
Message-ID: <20190109210622.GH28515@kduck.mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(136003)(39860400002)(396003)(346002)(376002)(2980300002)(40224003)(199004)(189003)(53416004)(23726003)(46406003)(4326008)(305945005)(93886005)(486006)(33656002)(126002)(476003)(956004)(106466001)(2906002)(97756001)(6246003)(88552002)(6306002)(446003)(11346002)(50466002)(53546011)(76176011)(8936002)(246002)(54906003)(58126008)(186003)(26005)(106002)(1076003)(86362001)(7696005)(47776003)(6666004)(336012)(426003)(356004)(966005)(55016002)(26826003)(478600001)(104016004)(14444005)(229853002)(316002)(6916009)(8676002)(16586007)(75432002)(5660300001)(36906005)(786003)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR0101MB2958; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-Microsoft-Exchange-Diagnostics: 1; DM3NAM03FT047; 1:Py7gBJRmXlV2HjERJ7X1lH+e44cLHAJda0NcQ6g2p8q7f/gBYz8mU0WquXOEGURMMNisRbyU7xhrRtgPvS0hs+wHWzIWOSWeA+aS+UNmtcoJmBy1c7ERX7ZIPeHkgOnW
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 0ab5c953-0642-4bad-20a4-08d6767652f9
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:CY4PR0101MB2952; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR0101MB2952; 3:pn7sa7rXNoF9OmS0xir5RjOXfEFKozpaj2oyzuOPWAcF4x/YBVZzWeHWItYF4c1V1qkA63/C2iGLDLdZtpZNSJDzlaagw9i+Zc+UKX+d5wbauvbqeda8MyTmdxV82/3KXv/y0fexSOQCo3oE5jYi3XGk0r2Rhp2Qg7f7AXAaTiJ6ZJ/LCfuRy7skbFKojczTXPrUfb8hqs2o+NHlp9FLmxqRGVwapfhDodiqp2qlMJnpPpKxmUvZ7h6iTjuJk7Cr8grOQhcQqS3l8z7yxtZNdBgRo7vg9e6+gZhSGTyiPDqE5Ds/19NoP3ESRb7z1+xmF87A0fQln455m6TxgvpTwjFLqZLx34VW96PozisRDLsDxqUZEiKQtuSsuWU3qyXZ
X-MS-TrafficTypeDiagnostic: MWHPR0101MB2958:
X-Microsoft-Exchange-Diagnostics: 1; MWHPR0101MB2958; 25:PiQyu4L5j+FLfjTLYvP7P8LPoDx1LZC31VhsbTnzd4JLrp+H90WDFTPvPWv3hKhts3/CNMaQluFrwjmSZXR99/PBGzKRrP536pMJCMd7V+s7OOplZHBDYlDzlIgWewky9kxRlfsEfFXhYWcVSsbfkwjq3YOQvWzkOliKcIJUwsdSgRfP3E2vr9+dg/0K+P1Ygalj8uv3rpKf4KYlAgpEo/V5SSnfeJsLW5rsf3cL+kyOWGCnKmkSkkH+urp5bEDdzIF9tK0sYurTDfjqmZSenutLXmBjGH2CUfqG06mXin3HZicLJZopsJTE0xXvN70AIlwN4VhdYAKvWXmdV9JnUQ==; 31:LswFnUruNUyDRtZHNv+LvR7zU3Pq0sZxeWcabbqGyfqE5Hl/MdRuau/2hC1/IyViRaBb1WzSf5bwEonSZNFYo9erP1udBOL2uS3ZXgjXEpSQM31+IgbRHqFN+u4zRb0edBSMin1Ptpmr7ZzGYBUbGRNh0nKT/hWyqExnaoO/dqauUXyyGfHw7FCNP+zzBda0jNS+e0AaQclka1h5o2y3YNKbnsvQzmn67qveAh5/G5Q=
X-Microsoft-Exchange-Diagnostics: 1; MWHPR0101MB2958; 20:VZR8UsOpc5zZmwSpJPqq01qzmMlR1TZXo72OwK277AAKVRgPPBjB8BF43uRqpO+zodQuo8+5orlZPcBxmY07l6N6WHJYJGLFLZzqak4/gbnAPvSQSoO3++lU7zYwvHcCqSiAs6IKO/6erTOLC7gG11+cU066mIqEHZUgORhkinCHLaqSAxSD82oyX3xx6rg0DH4U2zCiVTMv34Q0sII8gxgdJAW3QZq5ANSdaLEhAytD2WSkUOEz9GehqVQGxYsYWDnme0L0g2gQkNI+FDBY8YpMvmKKpaSp8xZe0RjvUJ+njqWla4RMdXb03YOpWVSGcO/+pVfd4gVdajbUKwA70L90yU1lWac7tchyOo/xqm40wEWaFusuqfG8eIJtIWI+uKrStgbTWm3eAiuYw18o1CvAruXhETSNIzA8XthGp5Bm75JxoE4wNHqA4b9xxsvpwbCCqssxCfKgjJ/Crl9yZnU8jZPBjyHaWOwNA8q/UJizLPoggY8EXDGd80CNPHBa; 4:TWL8IZeuopSc5b3aAcfPcf/M1cSc/LY75jVYYRCk15BqRQqjT0DUQm/pcd0+NRGf2i0I8a25B0nkxbpocssyBHBk0lvW3uAevh838v5FXeTeDGpGFy3gZ/oPVvfRyOD/0tkK6bcvPbOWxjAmDxYqiHjJQbI5jDz8T5DPzOFTUUQ6t/yyn2dt36mU8AiF7bzhLZ/quRFpnbjMHxCqSQUXcjolMq+JiIauO/FvCtZv6mCYMvyk9kKjyv4khzgzD9bcEAjO3eEXq6DR4+zks4mYimrNhovWeLiDaOLTB3ADOTQ=
X-Microsoft-Antispam-PRVS: <MWHPR0101MB29580C89E8BB6992753F34F1A0840@MWHPR0101MB2958.prod.exchangelabs.com>
X-Forefront-PRVS: 0913EA1D60
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR0101MB2958; 23:SB24/8oSupqaydm/bATfHOFCVmwsn+c64uWmXUt?= =?us-ascii?Q?6wSQrwVUM0pMt/G/4I2M75G+9CafeN/vvN/O+/0zHqT0PYcH/Ly6l9mtSpeU?= =?us-ascii?Q?AWVH+cfdSrSg/+pOG8JUX7nSC9mLd6MG7kKqYGkSlZAdQ3zTgZtwjZRJlbHy?= =?us-ascii?Q?VoEZb0kvygzD9G6V9q2/gjOPkJ+aBHbs78C0TJ2X2VyleO+T0gJjXH8asmSe?= =?us-ascii?Q?L2YVTY8q0+SbGxPt63FVecQGnnO+GbH6tBW/5IMEq8pPeqECE89tWLsDjhZG?= =?us-ascii?Q?+rCuBgTd1Lc+7R5uX9eCD5ecjUeMZ2yZOhc1njBgRHYqKeKOfIoA0WrRiumg?= =?us-ascii?Q?YmYKQSboGBCIoX/vK9QYKiaEdQEGNJRmYD/ELF8Pz3u3PXkNbdg9h360V2g7?= =?us-ascii?Q?KFLYHlpXWS5S36iVLLfS877gQ031ddQbKG0n13PCRqRhe57lNJ0lcMocsi3p?= =?us-ascii?Q?AqYzjNz1qLP4KUK8oMTXkK5F4Rb3oegiXTjG/sx7PxCrzn6VF5qHij3MAXiS?= =?us-ascii?Q?kUk5YOHI4h0tu+YdZhQhytKviJf5uNeoRQSyLkQddmErx7xudNIqd5vPLJKl?= =?us-ascii?Q?oHOz55HrFH/e61W5A5S3q8KPaV7GB4lJvvDajK+exYElHAs1lR6iUjT691Mi?= =?us-ascii?Q?gaaHvC3i26ge1C6MTuEQoChpM+b1pCrOxNrIsZqZ8aP4mkLwCrks8+/3eGx9?= =?us-ascii?Q?Z8bmns0fJH8EjM2Qxb804uh/29jVpxekfaZa8C7OPy9odAJRwxoUDggaOzU5?= =?us-ascii?Q?aLgWph0MUnTgA/rqEgMoWVWncGz+s6wXGABnurUYzcs5RifXRqJbuYLfwBtO?= =?us-ascii?Q?Q/9KSDmk3l/OLAWa0DCd6cWC/z4NIHHnOOgaoA1cjjRinorKeoCT9JqhuN9z?= =?us-ascii?Q?j56J8Ewcv+X0wwujjzMnHKg+pq1zPeO8lBZCbn00gFm1wP+KylabSfU5KaYj?= =?us-ascii?Q?3PjUce0pv50HBqdcDVWTf09dJ2dbePpqgAu5FD4pxIFnKTJxwhZk4Wm+kl/K?= =?us-ascii?Q?7K/t9o7mzxtDgZODm+6gqdhVMP+uMbGr6YgWKdHMIW1K75UWkV6J0BnjM5mj?= =?us-ascii?Q?79dxcH624AVwM39o28y+m9l16nowScomma+PWPA+OA4HXanmbvwUhU/MhaQR?= =?us-ascii?Q?vDqzbXmkCY0wOT+TlWuENOQ1OL+Qn3HMpnKPe3w6YfyXmw0zx9ryncakyFLc?= =?us-ascii?Q?vNgELQkGZ/7N5E1bBbvvSr+D5NDagEZEOAUUKKOQjaifhRTbzoTDj+9qHugh?= =?us-ascii?Q?1jrNzx6edtKHbBgoNp5yzgV3jU/MssSmoxe097TwBrsAoX03j2L2CSr/FaJI?= =?us-ascii?Q?b0KM/+5V4Op+cAVBxkSblVj2YsXOEapRDqV5DZEej7Ek+?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: /rZpPoc7/xuwkLaLLG5tBTec77e5YuA4sd1SZG5/ZCvYrlsb0clUKWOB9jNMDXSSre+sqKHAcyQhvKJs4/4fPypVpK0Y0CeLgDw+/7zLlu5vpr/qjQS7DLPsutQsy8rVYZFzKUCok03Jr6tw+rmKzjHd1Z4H2/vrCR51yzJBEqOOHA3gi/BqHWfve66Gj7Lz+me66DC8S7OiC5LmJ5z89/vZMOXyxYEx5VtCJ1V7GMwXybQ6WfSjVED7YB8nGSncl17y0rVQElVua1sYcC2JEx/OIBfwkBh/udmNzci+4xx9jNgQClNlOvMIS781XAnp
X-Microsoft-Exchange-Diagnostics: 1; MWHPR0101MB2958; 6:4AQkU501F210QzmiaXcpNhLXbzP6P07oVfukK+/3WMliAGJap4p79FMAEKiBi0cllGdMqZ67ckvsfu4UvllQIj0vS8D8ZRo9EzPA9jDSdKQ/BTjaJ5CcERbICiuqMr913e5grUNh307i4WcGeMqX7uO+lPQA1FO511PdMeWkAtXdAjAhv7TN51JErmyzPOYV3lC6Q5fjJZUZtcMMG0ZERIA2rNYFDSXPBEANGAzwxpAYx9puZ4wa9T4uvY7fjHAlughZrh+amM0h/2aIWaVLKs22kW7hO6SkhI2cwoDrjJHwGdtgknKbrp1gGkE/loicpBI3gEH49BbOisKojdOcyiBEU5B09FtBijWECkrPyCXiE8Ggs/JJQ8Gdc08+tkouDBYOQNmcYb0G3dYk4ei9yzbaYT2D+vp1sw9SBKYTD8GHnj7Uqg3RqZwqV1D19HHXYWvZSnEARex9Aixoe5IL9Q==; 5:NtZowmSm9+H8KYMbdx+t/h/lRbuTAsjRiM5oZerjMBeCv6CaaovJxy/Geoq+bF2j0s1CFace8158lzsJsJ+TAO2BPnoFDUi5fpQcYVhAtr9n00/fegFkQhwGGw3qoIP0tTrn6oJUd27JM+cM+BIgkFL0AF5/N0CHN5kGGRWUqlAWpTBOko5jGu7YxVZAEC9thjy2vI7TDKVLV2n9bnJzCw==; 7:pasvHvII3RWP5RXwwEgbO5cX+L6lJbyP0tyffbWbY8p9aYWwzC4d84Bw7DTyoYTMlrjNCoUvqmWUDucVsOAoK6kaJt0b5qshHdNBlRiF94k/i9q9o9mV98rEMKmzMAzFXePXrmW7ESJtarQUccq8EQ==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2019 21:06:28.3687 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ab5c953-0642-4bad-20a4-08d6767652f9
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0101MB2958
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/qR1VvZm_41IFeWI4yfO3mJRSUd4>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 01:07:33 -0000

On Wed, Jan 09, 2019 at 12:54:24PM -0800, Dave Crocker wrote:
> On 1/9/2019 12:06 PM, Kent Watsen wrote:
> > Gentle reminder to Dave, Alexey, and Adam wrt draft-ietf-dnsop-attrleaf.
> 
> 
> While I see that the original note includes an address for attrleaf, I 
> can't find a copy of the message in my own archive.  So it's good you 
> sent the reminder.
> 
> 
> > From: Kent Watsen <kwatsen@juniper.net>
> > Date: Monday, January 7, 2019 at 4:13 PM
> ....
> > Hi Dave,
> > 
> >    Could you please search for "draft-ietf-dnsop-attrleaf" in this thread,
> >    which regards this Section 4.2 of the zerotouch draft [1], and provide
> >    your opinion?  In particular, since _sztp is under _tcp, does that mean
> >    that it is not a globally scoped entry?
> >   
> >    [1] https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-27#section-4.2
> 
> 
> I believe your analysis is correct.
> 
> In the names your draft uses, _tcp is the global scoped name, relevant 
> to attrleaf, while _sztp is subordinate and therefore not relevant to 
> attrleaf.

That's true for both
SRV in _sztp._tcp.example.com.
and
TXT in <serial number>._sztp._tcp.example.com.
but it's not clear to me that the "existing" TXT _tcp registration is
appropriate for our usage here.

-Ben


From nobody Wed Jan  9 17:13:29 2019
Return-Path: <dcrocker@bbiw.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A4D9130E27; Wed,  9 Jan 2019 17:13:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.4
X-Spam-Level: 
X-Spam-Status: No, score=-2.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=bbiw.net
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 97CZNeup4-_R; Wed,  9 Jan 2019 17:13:19 -0800 (PST)
Received: from simon.songbird.com (simon.songbird.com [72.52.113.5]) (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 1DADD130E25; Wed,  9 Jan 2019 17:13:19 -0800 (PST)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id x0A1EG3q029493 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 9 Jan 2019 17:14:19 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bbiw.net; s=default; t=1547082861; bh=U8HE2OmKlFfnG2S0FjPt01O/OylKw7YbeupkrQa/xjY=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=L/YNBxUh4VKHUJdoJD4XG6t8YKIou/qsVrAedJA23x3+5LC+ZDyOY/J6GSnAH5ldf BznCcPqBX3Ottma4NIe3eg0xeauaMaMRRWM29iHHobzlSV4XRPU8zf5Qb8My2iaNbd JUmCpzkdgpYwqMRxnBGTdEUNcLmrui7hS6yz3pQ8=
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: Kent Watsen <kwatsen@juniper.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, The IESG <iesg@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <20190109210622.GH28515@kduck.mit.edu>
From: Dave Crocker <dcrocker@bbiw.net>
Message-ID: <b3a4b1de-0251-d810-c2a7-c9c46baeb827@bbiw.net>
Date: Wed, 9 Jan 2019 17:13:03 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <20190109210622.GH28515@kduck.mit.edu>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/PQHRCefy-uUAavAqyYGd-M_PofE>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 01:13:20 -0000

On 1/9/2019 1:06 PM, Benjamin Kaduk wrote:
>> I believe your analysis is correct.
>>
>> In the names your draft uses, _tcp is the global scoped name, relevant
>> to attrleaf, while _sztp is subordinate and therefore not relevant to
>> attrleaf.
> That's true for both
> SRV in _sztp._tcp.example.com.
> and
> TXT in <serial number>._sztp._tcp.example.com.
> but it's not clear to me that the "existing" TXT _tcp registration is
> appropriate for our usage here.

Your use of SRV looks entirely kosher.

So as I guess in the previous note, I suggest you use a new, globally 
scoped underscored name, and register it in the attrleaf registry.

d/

-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net


From nobody Thu Jan 10 02:18:27 2019
Return-Path: <rwilton@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BFA0E130DC8; Thu, 10 Jan 2019 02:18:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.641
X-Spam-Level: 
X-Spam-Status: No, score=-14.641 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 BHDQQqwS74N3; Thu, 10 Jan 2019 02:18:23 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8669F128CF3; Thu, 10 Jan 2019 02:18:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=17672; q=dns/txt; s=iport; t=1547115503; x=1548325103; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=4jeUwkoeVkA3OWQE9BQQsyKZqBvJJwzCFQpA4gdG2t0=; b=VbV9W0Tiqc/BywwVCOTmmZ0ajoMRbR30x4mR9sVX4GPTAw5JOBNs2HZh Dl2rb366dSClJ+oMFYoSV11GVMqS3J5nvpjE5vlS5bfHMJgeY1LJsUFcu QPBcQ3Nf4Kj8cOM1nM2znoVY5ubIQW/GxGduarCmqViE3P7wRLGv6FWTT Y=;
X-IronPort-AV: E=Sophos;i="5.56,460,1539648000"; d="scan'208,217";a="9355275"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jan 2019 10:18:20 +0000
Received: from [10.63.23.64] (dhcp-ensft1-uk-vla370-10-63-23-64.cisco.com [10.63.23.64]) by aer-core-3.cisco.com (8.15.2/8.15.2) with ESMTP id x0AAIK9K001074; Thu, 10 Jan 2019 10:18:20 GMT
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
Cc: "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-restconf-notif.all@ietf.org" <draft-ietf-netconf-restconf-notif.all@ietf.org>
References: <154688301471.23184.11003837983933531435@ietfa.amsl.com> <D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <dfd6dda9-e67f-1969-e43a-edfd92ef37d5@cisco.com>
Date: Thu, 10 Jan 2019 10:18:20 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com>
Content-Type: multipart/alternative; boundary="------------81056748BCAF61D7062AFBEC"
Content-Language: en-US
X-Outbound-SMTP-Client: 10.63.23.64, dhcp-ensft1-uk-vla370-10-63-23-64.cisco.com
X-Outbound-Node: aer-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/gZNna3X7jlwM0tOs6vds2dlaQMY>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 10:18:26 -0000

This is a multi-part message in MIME format.
--------------81056748BCAF61D7062AFBEC
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Reshad,

Please see inline ...

On 08/01/2019 23:18, Reshad Rahman (rrahman) wrote:
> Hi Rob,
>
> Thanks again for the review, inline.
>
> ï»¿On 2019-01-07, 12:43 PM, "Robert Wilton" <rwilton@cisco.com> wrote:
>
>      Reviewer: Robert Wilton
>      Review result: Ready with Issues
>      
>      I have reviewed this document as part of the YANG doctors directorate's
>      ongoing effort to review all IETF documents being processed by the IESG.  These
>      comments were written with the intent of improving the operational aspects of
>      the IETF drafts. Comments that are not addressed in last call may be included
>      in AD reviews during the IESG review.  Document editors and WG chairs should
>      treat these comments just like any other last call comments.
>      
>      This document and the associated YANG module looks like it is in good shape to
>      me.
>      
>      The two minor issues that I had that I think need to be resolved are:
>      - The section 3.4 handling subscriptions by admin users wasn't intuitive to me
>      (relative to what is stated in draft-ietf-netconf-subscribed-notifications).
>      Specifically what should an admin user be allowed to do vs the client that
>      initiated the subscription. - Section 4 on HTTP2 QoS seemed unclear to me.
> <RR> See below for response on the issues above.
>      
>      I think that all my other comments are really just nits:
>      
>      1) Section 3.2 Discovery, last paragraph.
>      
>      Would it be better for this to reference draft-ietf-netconf-nmda-restconf,
>      section 2 and '/yang-libary/datastore' draft-ietf-netconf-rfc7895bis, section 3?
> <RR> I can add section 2 in the reference to nmda-restconf. I don't think the transport drafts need to reference 7895/bis, please note that YP already references 7895.

OK, sounds reasonable.

Off topic for this thread, but 7895bis should be published soon, and it 
obsoletes 7895, so should YP be updated to reference 7895bis?


>      
>      2) RPC table in section 3.3.  The identity for "kill-subscription" should
>      probably be "delete-subscription-error" since "kill-subscription-error" isn't
>      defined.
> <RR> Good catch.
>      
>      3) Diagram in 3.4.  It wasn't immediately obvious to me that the vertical lines
>      in the lined up with connections (a) and (b).  I'm not sure whether it is worth
>      adding a comment to make this more explicit.  I figured it out whilst reading
>      the text below, perhaps most other readers would also do so.
> <RR> I'll try to make it clearer.
>      
>      4) Section 3.4, bottom of page 7, "must be sent within (b)" -> "MUST be sent
>      within (b)"
> <RR> Yes.
>      
>      5) Section 3.4:
>         o  RPCs modify-subscription, resync-subscription and delete-
>            subscription can only be done by the same RESTCONF username
>            [RFC8040] who did the establish-subscription, or by a RESTCONF
>            username with the required administrative permissions.  The latter
>            also has access to the kill-subscription RPC.
>      
>      Just to check, is it true that any RESTCONF username with the required
>      permissions is allowed to invoke the "delete-subscription" RPC?  Or should this
>      be restricted to same RESTCONF username?  In fact, I was wondering whether an
>      administrator should be allowed to invoke modify-subscription or
>      resync-subscription, or whether they should be restricted to kill-subscription
>      only?
> <RR> I do not see the benefit of restricting what an admin user can do. E.g. the admin may want to decrease the frequency of a periodic subscription.

I had a couple of concerns:
 Â 1) Trying to align the RESTCONF handling of these RPCs to the 
behaviour specified in draft-ietf-netconf-subscribed-notifications and 
draft-ietf-netconf-netconf-event-notifications.
2) If NACM is used as the access control mechanism, then any client that 
has access to the <*-subscription> RPCs is allowed to invoke them for 
any subscription, unless additional checking is performed.Â  However, I 
appreciate that this extra checking could be more difficult/expensive to 
implement on some platforms.

Considering both of these, would the following rewording of the 
paragraph be better?

OLD:

        o  RPCs modify-subscription, resync-subscription and delete-
           subscription can only be done by the same RESTCONF username
           [RFC8040] who did the establish-subscription, or by a RESTCONF
           username with the required administrative permissions.  The latter
           also has access to the kill-subscription RPC.

NEW:

o In addition to any required access permissions (e.g., NACM), RPCs 
modify-subscription, resync-subscription and delete-subscription SHOULD 
only be allowed by the same RESTCONF Â username [RFC8040] who invoked 
establish-subscription. o The kill-subscription RPC can be invoked by 
any RESTCONF username with the required administrative permissions.



>   
>      
>      6) Section 4 is unclear to me:
>      
>       - The paragraph starting "take any existing subscription "priority" ..."
>       states that the "dscp" field is copied into the HTTP2 stream priority, but I
>       couldn't find such a field in section 5.3 of RFC7540.  Hence, I was wondering
>       whether this paragraph shouldn't instead be stating the the "weighting" field
>       is copied into the HTTP2 stream priority header?
>      
>      E.g.
>      OLD:
>         o  take any existing subscription "priority", as specified by the
>            "dscp" leaf node in
>            [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
>            into the HTTP2 stream priority, [RFC7540] section 5.3, and
>      
>      NEW:
>         o  take any existing subscription "priority", as specified by the
>            "weighting" leaf node in
>            [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
>            into the HTTP2 stream weight, [RFC7540] section 5.3, and
>   <RR> Good catch.
>     
>      There is also no mention of how the "E" (Exclusive) bit should be set in the
>      HTTP2 stream headers.  Is this an omission?
> <RR> It is an omission, implied that it's not used. I can add text stating that it's set to 0.

OK.


>      
>      7) Section 6 doesn't contain any YANG Tree output.  Probably time to put that
>      in, but I would suggest not putting in the entire tree output, just the
>      relevant snippets.  If you want to include the full tree output then I would
>      suggest putting in an appendix instead.  The text in this section describing
>      the YANG model needs to be fixed since the YANG module doesn't actually define
>      any identities.
> <RR> I believe the YANG module was changed but not the text. Will fix and add the tree diagram.
>      
>      8) Section 7, YANG module comments
>      
>      Just nits:
>      
>      8.1) Check line length of the file, it looks like it goes over 69 characters.
>       - In particular, the namespace statement might need to be split.
>       - The module description text indentation looks off on the first line, and
>       probably needs to be re-flowed. - Some of the other descriptions look wide.
>      
>      8.2) The description for "subscription-modified" doesn't quite scan (as it goes
>      over the line break).
>      
>      9) One of the filter examples appendix A.3 is clearly over 72 characters,
>      suggest spliting.
> <RR> Ack.
>
> Regards,
> Reshad.
Thanks,
Rob


>      
>      Thanks,
>      Rob
>      
>      
>

--------------81056748BCAF61D7062AFBEC
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Reshad,</p>
    <p>Please see inline ...<br>
    </p>
    <div class="moz-cite-prefix">On 08/01/2019 23:18, Reshad Rahman
      (rrahman) wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com">
      <pre class="moz-quote-pre" wrap="">Hi Rob,

Thanks again for the review, inline.

ï»¿On 2019-01-07, 12:43 PM, "Robert Wilton" <a class="moz-txt-link-rfc2396E" href="mailto:rwilton@cisco.com">&lt;rwilton@cisco.com&gt;</a> wrote:

    Reviewer: Robert Wilton
    Review result: Ready with Issues
    
    I have reviewed this document as part of the YANG doctors directorate's
    ongoing effort to review all IETF documents being processed by the IESG.  These
    comments were written with the intent of improving the operational aspects of
    the IETF drafts. Comments that are not addressed in last call may be included
    in AD reviews during the IESG review.  Document editors and WG chairs should
    treat these comments just like any other last call comments.
    
    This document and the associated YANG module looks like it is in good shape to
    me.
    
    The two minor issues that I had that I think need to be resolved are:
    - The section 3.4 handling subscriptions by admin users wasn't intuitive to me
    (relative to what is stated in draft-ietf-netconf-subscribed-notifications). 
    Specifically what should an admin user be allowed to do vs the client that
    initiated the subscription. - Section 4 on HTTP2 QoS seemed unclear to me.
&lt;RR&gt; See below for response on the issues above.
    
    I think that all my other comments are really just nits:
    
    1) Section 3.2 Discovery, last paragraph.
    
    Would it be better for this to reference draft-ietf-netconf-nmda-restconf,
    section 2 and '/yang-libary/datastore' draft-ietf-netconf-rfc7895bis, section 3?
&lt;RR&gt; I can add section 2 in the reference to nmda-restconf. I don't think the transport drafts need to reference 7895/bis, please note that YP already references 7895.</pre>
    </blockquote>
    <p>OK, sounds reasonable.</p>
    <p>Off topic for this thread, but 7895bis should be published soon,
      and it obsoletes 7895, so should YP be updated to reference
      7895bis?<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com">
      <pre class="moz-quote-pre" wrap="">
    
    2) RPC table in section 3.3.  The identity for "kill-subscription" should
    probably be "delete-subscription-error" since "kill-subscription-error" isn't
    defined.
&lt;RR&gt; Good catch.
    
    3) Diagram in 3.4.  It wasn't immediately obvious to me that the vertical lines
    in the lined up with connections (a) and (b).  I'm not sure whether it is worth
    adding a comment to make this more explicit.  I figured it out whilst reading
    the text below, perhaps most other readers would also do so.
&lt;RR&gt; I'll try to make it clearer.
    
    4) Section 3.4, bottom of page 7, "must be sent within (b)" -&gt; "MUST be sent
    within (b)"
&lt;RR&gt; Yes.
    
    5) Section 3.4:
       o  RPCs modify-subscription, resync-subscription and delete-
          subscription can only be done by the same RESTCONF username
          [RFC8040] who did the establish-subscription, or by a RESTCONF
          username with the required administrative permissions.  The latter
          also has access to the kill-subscription RPC.
    
    Just to check, is it true that any RESTCONF username with the required
    permissions is allowed to invoke the "delete-subscription" RPC?  Or should this
    be restricted to same RESTCONF username?  In fact, I was wondering whether an
    administrator should be allowed to invoke modify-subscription or
    resync-subscription, or whether they should be restricted to kill-subscription
    only?
&lt;RR&gt; I do not see the benefit of restricting what an admin user can do. E.g. the admin may want to decrease the frequency of a periodic subscription.</pre>
    </blockquote>
    <p>I had a couple of concerns:<br>
      Â 1) Trying to align the RESTCONF handling of these RPCs to the
      behaviour specified in draft-ietf-netconf-subscribed-notifications
      and draft-ietf-netconf-netconf-event-notifications.<br>
      2) If NACM is used as the access control mechanism, then any
      client that has access to the &lt;*-subscription&gt; RPCs is
      allowed to invoke them for any subscription, unless additional
      checking is performed.Â  However, I appreciate that this extra
      checking could be more difficult/expensive to implement on some
      platforms.</p>
    <p>Considering both of these, would the following rewording of the
      paragraph be better?<br>
    </p>
    <p>OLD:</p>
    <pre class="moz-quote-pre" wrap="">       o  RPCs modify-subscription, resync-subscription and delete-
          subscription can only be done by the same RESTCONF username
          [RFC8040] who did the establish-subscription, or by a RESTCONF
          username with the required administrative permissions.  The latter
          also has access to the kill-subscription RPC.</pre>
    <p>NEW:<br>
    </p>
    <pre class="newpage" style="margin-top: 0px; margin-bottom: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-size: 10pt;" class="">   o  In addition to any </span><span style="font-size: 10pt;" class=""><span style="font-size: 10pt;" class=""><span style="font-size: 10pt;" class="">required access permissions</span></span> (e.g., NACM),
      RPCs modify-subscription, resync-subscription and
      delete-subscription SHOULD only be allowed by the same RESTCONF
     Â username [RFC8040] who invoked establish-subscription.

   o  </span><span style="font-size: 10pt;" class=""><span style="font-size: 10pt;" class="">The kill-subscription RPC can be invoked by any RESTCONF
      username with the required administrative permissions.</span></span></pre>
    <p><br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com">
      <pre class="moz-quote-pre" wrap=""> 
    
    6) Section 4 is unclear to me:
    
     - The paragraph starting "take any existing subscription "priority" ..."
     states that the "dscp" field is copied into the HTTP2 stream priority, but I
     couldn't find such a field in section 5.3 of RFC7540.  Hence, I was wondering
     whether this paragraph shouldn't instead be stating the the "weighting" field
     is copied into the HTTP2 stream priority header?
    
    E.g.
    OLD:
       o  take any existing subscription "priority", as specified by the
          "dscp" leaf node in
          [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
          into the HTTP2 stream priority, [RFC7540] section 5.3, and
    
    NEW:
       o  take any existing subscription "priority", as specified by the
          "weighting" leaf node in
          [I-D.draft-ietf-netconf-subscribed-notifications], and copy it
          into the HTTP2 stream weight, [RFC7540] section 5.3, and
 &lt;RR&gt; Good catch.
   
    There is also no mention of how the "E" (Exclusive) bit should be set in the
    HTTP2 stream headers.  Is this an omission?
&lt;RR&gt; It is an omission, implied that it's not used. I can add text stating that it's set to 0.</pre>
    </blockquote>
    <p>OK.</p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com">
      <pre class="moz-quote-pre" wrap="">
    
    7) Section 6 doesn't contain any YANG Tree output.  Probably time to put that
    in, but I would suggest not putting in the entire tree output, just the
    relevant snippets.  If you want to include the full tree output then I would
    suggest putting in an appendix instead.  The text in this section describing
    the YANG model needs to be fixed since the YANG module doesn't actually define
    any identities.
&lt;RR&gt; I believe the YANG module was changed but not the text. Will fix and add the tree diagram.
    
    8) Section 7, YANG module comments
    
    Just nits:
    
    8.1) Check line length of the file, it looks like it goes over 69 characters.
     - In particular, the namespace statement might need to be split.
     - The module description text indentation looks off on the first line, and
     probably needs to be re-flowed. - Some of the other descriptions look wide.
    
    8.2) The description for "subscription-modified" doesn't quite scan (as it goes
    over the line break).
    
    9) One of the filter examples appendix A.3 is clearly over 72 characters,
    suggest spliting.
&lt;RR&gt; Ack.

Regards,
Reshad.</pre>
    </blockquote>
    Thanks,<br>
    Rob
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com">
      <pre class="moz-quote-pre" wrap="">
    
    Thanks,
    Rob
    
    

</pre>
    </blockquote>
  </body>
</html>

--------------81056748BCAF61D7062AFBEC--


From nobody Thu Jan 10 05:44:36 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95C3C130EFC; Thu, 10 Jan 2019 05:44:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.052
X-Spam-Level: 
X-Spam-Status: No, score=-19.052 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 tEufRh1XMbcL; Thu, 10 Jan 2019 05:44:32 -0800 (PST)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B64C3130EEC; Thu, 10 Jan 2019 05:44:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=36062; q=dns/txt; s=iport; t=1547127871; x=1548337471; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=wiHivxAtgh7U/HWF6tTNnazC76G4EdEsavQEE22iUak=; b=aY5YIN2Y7a2xmezNAH5QyrYA+S4987/lOfq3kaYtbcFhiPWS+osq4x82 kS18039de8li2oISW1YLDApCxAreHsQczhFNZL106inJkoD9Cwhgv0tXQ AfM52cVgFOsuEk/HtkvncbobwmSd9CPE0Kh7/dtv2MPREea5QSHO0fj05 M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AFAAC5Szdc/40NJK1aCRkBAQEBAQE?= =?us-ascii?q?BAQEBAQEHAQEBAQEBgVIDAQEBAQELAYENTSlmgQInCoN2lAmCDZd3gXsLAQE?= =?us-ascii?q?shEACF4INIjUIDQEDAQECAQECbSiFSgEBAQQjBFIQAgEIEQMBAg4TBwMCAgI?= =?us-ascii?q?wFAkIAgQBDQWCV0sBgR1krD98M4o2jD8XgUA/gREnH4FOfoRXQQkWglMxggQ?= =?us-ascii?q?iAo9chmaLMwkCkX0YgWSFJIdwgwSJbpBMAhEUgScgATaBVnAVZQGCQYIiBRe?= =?us-ascii?q?BAAEHjRUBcoEoiAcBgR4BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,461,1539648000";  d="scan'208,217";a="419397259"
Received: from alln-core-8.cisco.com ([173.36.13.141]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jan 2019 13:44:08 +0000
Received: from XCH-ALN-008.cisco.com (xch-aln-008.cisco.com [173.36.7.18]) by alln-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id x0ADi8wH010965 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 10 Jan 2019 13:44:08 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-ALN-008.cisco.com (173.36.7.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 10 Jan 2019 07:44:08 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Thu, 10 Jan 2019 07:44:08 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)" <rwilton@cisco.com>,  "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-restconf-notif.all@ietf.org" <draft-ietf-netconf-restconf-notif.all@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
Thread-Index: AQHUprCFOch/e2rpE06mX+DnhAHT46WmFGWAgAKebQD//+WkgA==
Date: Thu, 10 Jan 2019 13:44:07 +0000
Message-ID: <BEB99447-A306-4B96-9BAE-1D5C17380561@cisco.com>
References: <154688301471.23184.11003837983933531435@ietfa.amsl.com> <D7FCDD18-260A-40E6-8EF1-0485083FE21B@cisco.com> <dfd6dda9-e67f-1969-e43a-edfd92ef37d5@cisco.com>
In-Reply-To: <dfd6dda9-e67f-1969-e43a-edfd92ef37d5@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.37]
Content-Type: multipart/alternative; boundary="_000_BEB99447A3064B969BAE1D5C17380561ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.36.7.18, xch-aln-008.cisco.com
X-Outbound-Node: alln-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/tTXw2qK1QUZyhC19bEWEVGWFJ_M>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-restconf-notif-11
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 13:44:35 -0000

--_000_BEB99447A3064B969BAE1D5C17380561ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgUm9iLA0KDQpJbmxpbmUuDQoNCkZyb206IFJvYmVydCBXaWx0b24gPHJ3aWx0b25AY2lzY28u
Y29tPg0KRGF0ZTogVGh1cnNkYXksIEphbnVhcnkgMTAsIDIwMTkgYXQgNToxOCBBTQ0KVG86ICJS
ZXNoYWQgUmFobWFuIChycmFobWFuKSIgPHJyYWhtYW5AY2lzY28uY29tPiwgInlhbmctZG9jdG9y
c0BpZXRmLm9yZyIgPHlhbmctZG9jdG9yc0BpZXRmLm9yZz4NCkNjOiAibmV0Y29uZkBpZXRmLm9y
ZyIgPG5ldGNvbmZAaWV0Zi5vcmc+LCAiZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlm
LmFsbEBpZXRmLm9yZyIgPGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi5hbGxAaWV0
Zi5vcmc+DQpTdWJqZWN0OiBSZTogWWFuZ2RvY3RvcnMgbGFzdCBjYWxsIHJldmlldyBvZiBkcmFm
dC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYtMTENCg0KDQpIaSBSZXNoYWQsDQoNClBsZWFz
ZSBzZWUgaW5saW5lIC4uLg0KT24gMDgvMDEvMjAxOSAyMzoxOCwgUmVzaGFkIFJhaG1hbiAocnJh
aG1hbikgd3JvdGU6DQoNCkhpIFJvYiwNCg0KDQoNClRoYW5rcyBhZ2FpbiBmb3IgdGhlIHJldmll
dywgaW5saW5lLg0KDQoNCg0KT24gMjAxOS0wMS0wNywgMTI6NDMgUE0sICJSb2JlcnQgV2lsdG9u
IiA8cndpbHRvbkBjaXNjby5jb20+PG1haWx0bzpyd2lsdG9uQGNpc2NvLmNvbT4gd3JvdGU6DQoN
Cg0KDQogICAgUmV2aWV3ZXI6IFJvYmVydCBXaWx0b24NCg0KICAgIFJldmlldyByZXN1bHQ6IFJl
YWR5IHdpdGggSXNzdWVzDQoNCg0KDQogICAgSSBoYXZlIHJldmlld2VkIHRoaXMgZG9jdW1lbnQg
YXMgcGFydCBvZiB0aGUgWUFORyBkb2N0b3JzIGRpcmVjdG9yYXRlJ3MNCg0KICAgIG9uZ29pbmcg
ZWZmb3J0IHRvIHJldmlldyBhbGwgSUVURiBkb2N1bWVudHMgYmVpbmcgcHJvY2Vzc2VkIGJ5IHRo
ZSBJRVNHLiAgVGhlc2UNCg0KICAgIGNvbW1lbnRzIHdlcmUgd3JpdHRlbiB3aXRoIHRoZSBpbnRl
bnQgb2YgaW1wcm92aW5nIHRoZSBvcGVyYXRpb25hbCBhc3BlY3RzIG9mDQoNCiAgICB0aGUgSUVU
RiBkcmFmdHMuIENvbW1lbnRzIHRoYXQgYXJlIG5vdCBhZGRyZXNzZWQgaW4gbGFzdCBjYWxsIG1h
eSBiZSBpbmNsdWRlZA0KDQogICAgaW4gQUQgcmV2aWV3cyBkdXJpbmcgdGhlIElFU0cgcmV2aWV3
LiAgRG9jdW1lbnQgZWRpdG9ycyBhbmQgV0cgY2hhaXJzIHNob3VsZA0KDQogICAgdHJlYXQgdGhl
c2UgY29tbWVudHMganVzdCBsaWtlIGFueSBvdGhlciBsYXN0IGNhbGwgY29tbWVudHMuDQoNCg0K
DQogICAgVGhpcyBkb2N1bWVudCBhbmQgdGhlIGFzc29jaWF0ZWQgWUFORyBtb2R1bGUgbG9va3Mg
bGlrZSBpdCBpcyBpbiBnb29kIHNoYXBlIHRvDQoNCiAgICBtZS4NCg0KDQoNCiAgICBUaGUgdHdv
IG1pbm9yIGlzc3VlcyB0aGF0IEkgaGFkIHRoYXQgSSB0aGluayBuZWVkIHRvIGJlIHJlc29sdmVk
IGFyZToNCg0KICAgIC0gVGhlIHNlY3Rpb24gMy40IGhhbmRsaW5nIHN1YnNjcmlwdGlvbnMgYnkg
YWRtaW4gdXNlcnMgd2Fzbid0IGludHVpdGl2ZSB0byBtZQ0KDQogICAgKHJlbGF0aXZlIHRvIHdo
YXQgaXMgc3RhdGVkIGluIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlv
bnMpLg0KDQogICAgU3BlY2lmaWNhbGx5IHdoYXQgc2hvdWxkIGFuIGFkbWluIHVzZXIgYmUgYWxs
b3dlZCB0byBkbyB2cyB0aGUgY2xpZW50IHRoYXQNCg0KICAgIGluaXRpYXRlZCB0aGUgc3Vic2Ny
aXB0aW9uLiAtIFNlY3Rpb24gNCBvbiBIVFRQMiBRb1Mgc2VlbWVkIHVuY2xlYXIgdG8gbWUuDQoN
CjxSUj4gU2VlIGJlbG93IGZvciByZXNwb25zZSBvbiB0aGUgaXNzdWVzIGFib3ZlLg0KDQoNCg0K
ICAgIEkgdGhpbmsgdGhhdCBhbGwgbXkgb3RoZXIgY29tbWVudHMgYXJlIHJlYWxseSBqdXN0IG5p
dHM6DQoNCg0KDQogICAgMSkgU2VjdGlvbiAzLjIgRGlzY292ZXJ5LCBsYXN0IHBhcmFncmFwaC4N
Cg0KDQoNCiAgICBXb3VsZCBpdCBiZSBiZXR0ZXIgZm9yIHRoaXMgdG8gcmVmZXJlbmNlIGRyYWZ0
LWlldGYtbmV0Y29uZi1ubWRhLXJlc3Rjb25mLA0KDQogICAgc2VjdGlvbiAyIGFuZCAnL3lhbmct
bGliYXJ5L2RhdGFzdG9yZScgZHJhZnQtaWV0Zi1uZXRjb25mLXJmYzc4OTViaXMsIHNlY3Rpb24g
Mz8NCg0KPFJSPiBJIGNhbiBhZGQgc2VjdGlvbiAyIGluIHRoZSByZWZlcmVuY2UgdG8gbm1kYS1y
ZXN0Y29uZi4gSSBkb24ndCB0aGluayB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBuZWVkIHRvIHJlZmVy
ZW5jZSA3ODk1L2JpcywgcGxlYXNlIG5vdGUgdGhhdCBZUCBhbHJlYWR5IHJlZmVyZW5jZXMgNzg5
NS4NCg0KT0ssIHNvdW5kcyByZWFzb25hYmxlLg0KDQpPZmYgdG9waWMgZm9yIHRoaXMgdGhyZWFk
LCBidXQgNzg5NWJpcyBzaG91bGQgYmUgcHVibGlzaGVkIHNvb24sIGFuZCBpdCBvYnNvbGV0ZXMg
Nzg5NSwgc28gc2hvdWxkIFlQIGJlIHVwZGF0ZWQgdG8gcmVmZXJlbmNlIDc4OTViaXM/DQoNCjxS
UjI+IEkgYmVsaWV2ZSBzbywgSeKAmWxsIGZvcndhcmQgdGhpcyB0byB0aGUgWVAgYXV0aG9ycy4N
Cg0KDQoNCg0KDQogICAgMikgUlBDIHRhYmxlIGluIHNlY3Rpb24gMy4zLiAgVGhlIGlkZW50aXR5
IGZvciAia2lsbC1zdWJzY3JpcHRpb24iIHNob3VsZA0KDQogICAgcHJvYmFibHkgYmUgImRlbGV0
ZS1zdWJzY3JpcHRpb24tZXJyb3IiIHNpbmNlICJraWxsLXN1YnNjcmlwdGlvbi1lcnJvciIgaXNu
J3QNCg0KICAgIGRlZmluZWQuDQoNCjxSUj4gR29vZCBjYXRjaC4NCg0KDQoNCiAgICAzKSBEaWFn
cmFtIGluIDMuNC4gIEl0IHdhc24ndCBpbW1lZGlhdGVseSBvYnZpb3VzIHRvIG1lIHRoYXQgdGhl
IHZlcnRpY2FsIGxpbmVzDQoNCiAgICBpbiB0aGUgbGluZWQgdXAgd2l0aCBjb25uZWN0aW9ucyAo
YSkgYW5kIChiKS4gIEknbSBub3Qgc3VyZSB3aGV0aGVyIGl0IGlzIHdvcnRoDQoNCiAgICBhZGRp
bmcgYSBjb21tZW50IHRvIG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0LiAgSSBmaWd1cmVkIGl0IG91
dCB3aGlsc3QgcmVhZGluZw0KDQogICAgdGhlIHRleHQgYmVsb3csIHBlcmhhcHMgbW9zdCBvdGhl
ciByZWFkZXJzIHdvdWxkIGFsc28gZG8gc28uDQoNCjxSUj4gSSdsbCB0cnkgdG8gbWFrZSBpdCBj
bGVhcmVyLg0KDQoNCg0KICAgIDQpIFNlY3Rpb24gMy40LCBib3R0b20gb2YgcGFnZSA3LCAibXVz
dCBiZSBzZW50IHdpdGhpbiAoYikiIC0+ICJNVVNUIGJlIHNlbnQNCg0KICAgIHdpdGhpbiAoYiki
DQoNCjxSUj4gWWVzLg0KDQoNCg0KICAgIDUpIFNlY3Rpb24gMy40Og0KDQogICAgICAgbyAgUlBD
cyBtb2RpZnktc3Vic2NyaXB0aW9uLCByZXN5bmMtc3Vic2NyaXB0aW9uIGFuZCBkZWxldGUtDQoN
CiAgICAgICAgICBzdWJzY3JpcHRpb24gY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgc2FtZSBSRVNU
Q09ORiB1c2VybmFtZQ0KDQogICAgICAgICAgW1JGQzgwNDBdIHdobyBkaWQgdGhlIGVzdGFibGlz
aC1zdWJzY3JpcHRpb24sIG9yIGJ5IGEgUkVTVENPTkYNCg0KICAgICAgICAgIHVzZXJuYW1lIHdp
dGggdGhlIHJlcXVpcmVkIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zLiAgVGhlIGxhdHRlcg0K
DQogICAgICAgICAgYWxzbyBoYXMgYWNjZXNzIHRvIHRoZSBraWxsLXN1YnNjcmlwdGlvbiBSUEMu
DQoNCg0KDQogICAgSnVzdCB0byBjaGVjaywgaXMgaXQgdHJ1ZSB0aGF0IGFueSBSRVNUQ09ORiB1
c2VybmFtZSB3aXRoIHRoZSByZXF1aXJlZA0KDQogICAgcGVybWlzc2lvbnMgaXMgYWxsb3dlZCB0
byBpbnZva2UgdGhlICJkZWxldGUtc3Vic2NyaXB0aW9uIiBSUEM/ICBPciBzaG91bGQgdGhpcw0K
DQogICAgYmUgcmVzdHJpY3RlZCB0byBzYW1lIFJFU1RDT05GIHVzZXJuYW1lPyAgSW4gZmFjdCwg
SSB3YXMgd29uZGVyaW5nIHdoZXRoZXIgYW4NCg0KICAgIGFkbWluaXN0cmF0b3Igc2hvdWxkIGJl
IGFsbG93ZWQgdG8gaW52b2tlIG1vZGlmeS1zdWJzY3JpcHRpb24gb3INCg0KICAgIHJlc3luYy1z
dWJzY3JpcHRpb24sIG9yIHdoZXRoZXIgdGhleSBzaG91bGQgYmUgcmVzdHJpY3RlZCB0byBraWxs
LXN1YnNjcmlwdGlvbg0KDQogICAgb25seT8NCg0KPFJSPiBJIGRvIG5vdCBzZWUgdGhlIGJlbmVm
aXQgb2YgcmVzdHJpY3Rpbmcgd2hhdCBhbiBhZG1pbiB1c2VyIGNhbiBkby4gRS5nLiB0aGUgYWRt
aW4gbWF5IHdhbnQgdG8gZGVjcmVhc2UgdGhlIGZyZXF1ZW5jeSBvZiBhIHBlcmlvZGljIHN1YnNj
cmlwdGlvbi4NCg0KSSBoYWQgYSBjb3VwbGUgb2YgY29uY2VybnM6DQogMSkgVHJ5aW5nIHRvIGFs
aWduIHRoZSBSRVNUQ09ORiBoYW5kbGluZyBvZiB0aGVzZSBSUENzIHRvIHRoZSBiZWhhdmlvdXIg
c3BlY2lmaWVkIGluIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMg
YW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMuDQoyKSBJ
ZiBOQUNNIGlzIHVzZWQgYXMgdGhlIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSwgdGhlbiBhbnkg
Y2xpZW50IHRoYXQgaGFzIGFjY2VzcyB0byB0aGUgPCotc3Vic2NyaXB0aW9uPiBSUENzIGlzIGFs
bG93ZWQgdG8gaW52b2tlIHRoZW0gZm9yIGFueSBzdWJzY3JpcHRpb24sIHVubGVzcyBhZGRpdGlv
bmFsIGNoZWNraW5nIGlzIHBlcmZvcm1lZC4gIEhvd2V2ZXIsIEkgYXBwcmVjaWF0ZSB0aGF0IHRo
aXMgZXh0cmEgY2hlY2tpbmcgY291bGQgYmUgbW9yZSBkaWZmaWN1bHQvZXhwZW5zaXZlIHRvIGlt
cGxlbWVudCBvbiBzb21lIHBsYXRmb3Jtcy4NCg0KPFJSMj4gSGF2aW5nIHBlcmZlY3QgYWxpZ25t
ZW50IGlzIHByb2JsZW1hdGljIGJlY2F1c2UgdGhlcmUgYXJlIG5vIHRyYW5zcG9ydCBzZXNzaW9u
cyBpbiBSRVNUQ09ORiwgdGhhdOKAmXMgd2h5IHRoZSB1c2VybmFtZS9OQUNNIG1ldGhvZCB3YXMg
cHJvcG9zZWQgYnkgYSBmZXcgcGVvcGxlLiBCdXQgSSBkbyBhZ3JlZSB0aGF0IHlvdXIgcG9pbnQg
MikgaXMgYW4gaXNzdWUgYW5kIHlvdXIgcHJvcG9zZWQgdGV4dCBiZWxvdyBhZGRyZXNzZXMgdGhh
dCwgc28gSeKAmWxsIG1ha2UgdGhlIGNoYW5nZS4NCg0KUmVnYXJkcywNCg0KUmVzaGFkLg0KDQoN
Cg0KQ29uc2lkZXJpbmcgYm90aCBvZiB0aGVzZSwgd291bGQgdGhlIGZvbGxvd2luZyByZXdvcmRp
bmcgb2YgdGhlIHBhcmFncmFwaCBiZSBiZXR0ZXI/DQoNCk9MRDoNCg0KICAgICAgIG8gIFJQQ3Mg
bW9kaWZ5LXN1YnNjcmlwdGlvbiwgcmVzeW5jLXN1YnNjcmlwdGlvbiBhbmQgZGVsZXRlLQ0KDQog
ICAgICAgICAgc3Vic2NyaXB0aW9uIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIHNhbWUgUkVTVENP
TkYgdXNlcm5hbWUNCg0KICAgICAgICAgIFtSRkM4MDQwXSB3aG8gZGlkIHRoZSBlc3RhYmxpc2gt
c3Vic2NyaXB0aW9uLCBvciBieSBhIFJFU1RDT05GDQoNCiAgICAgICAgICB1c2VybmFtZSB3aXRo
IHRoZSByZXF1aXJlZCBhZG1pbmlzdHJhdGl2ZSBwZXJtaXNzaW9ucy4gIFRoZSBsYXR0ZXINCg0K
ICAgICAgICAgIGFsc28gaGFzIGFjY2VzcyB0byB0aGUga2lsbC1zdWJzY3JpcHRpb24gUlBDLg0K
DQpORVc6DQoNCiAgIG8gIEluIGFkZGl0aW9uIHRvIGFueSByZXF1aXJlZCBhY2Nlc3MgcGVybWlz
c2lvbnMgKGUuZy4sIE5BQ00pLA0KDQogICAgICBSUENzIG1vZGlmeS1zdWJzY3JpcHRpb24sIHJl
c3luYy1zdWJzY3JpcHRpb24gYW5kDQoNCiAgICAgIGRlbGV0ZS1zdWJzY3JpcHRpb24gU0hPVUxE
IG9ubHkgYmUgYWxsb3dlZCBieSB0aGUgc2FtZSBSRVNUQ09ORg0KDQogICAgICB1c2VybmFtZSBb
UkZDODA0MF0gd2hvIGludm9rZWQgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi4NCg0KDQoNCiAgIG8g
IFRoZSBraWxsLXN1YnNjcmlwdGlvbiBSUEMgY2FuIGJlIGludm9rZWQgYnkgYW55IFJFU1RDT05G
DQoNCiAgICAgIHVzZXJuYW1lIHdpdGggdGhlIHJlcXVpcmVkIGFkbWluaXN0cmF0aXZlIHBlcm1p
c3Npb25zLg0KDQoNCg0KDQoNCg0KDQoNCg0KICAgIDYpIFNlY3Rpb24gNCBpcyB1bmNsZWFyIHRv
IG1lOg0KDQoNCg0KICAgICAtIFRoZSBwYXJhZ3JhcGggc3RhcnRpbmcgInRha2UgYW55IGV4aXN0
aW5nIHN1YnNjcmlwdGlvbiAicHJpb3JpdHkiIC4uLiINCg0KICAgICBzdGF0ZXMgdGhhdCB0aGUg
ImRzY3AiIGZpZWxkIGlzIGNvcGllZCBpbnRvIHRoZSBIVFRQMiBzdHJlYW0gcHJpb3JpdHksIGJ1
dCBJDQoNCiAgICAgY291bGRuJ3QgZmluZCBzdWNoIGEgZmllbGQgaW4gc2VjdGlvbiA1LjMgb2Yg
UkZDNzU0MC4gIEhlbmNlLCBJIHdhcyB3b25kZXJpbmcNCg0KICAgICB3aGV0aGVyIHRoaXMgcGFy
YWdyYXBoIHNob3VsZG4ndCBpbnN0ZWFkIGJlIHN0YXRpbmcgdGhlIHRoZSAid2VpZ2h0aW5nIiBm
aWVsZA0KDQogICAgIGlzIGNvcGllZCBpbnRvIHRoZSBIVFRQMiBzdHJlYW0gcHJpb3JpdHkgaGVh
ZGVyPw0KDQoNCg0KICAgIEUuZy4NCg0KICAgIE9MRDoNCg0KICAgICAgIG8gIHRha2UgYW55IGV4
aXN0aW5nIHN1YnNjcmlwdGlvbiAicHJpb3JpdHkiLCBhcyBzcGVjaWZpZWQgYnkgdGhlDQoNCiAg
ICAgICAgICAiZHNjcCIgbGVhZiBub2RlIGluDQoNCiAgICAgICAgICBbSS1ELmRyYWZ0LWlldGYt
bmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnNdLCBhbmQgY29weSBpdA0KDQogICAgICAg
ICAgaW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5LCBbUkZDNzU0MF0gc2VjdGlvbiA1LjMs
IGFuZA0KDQoNCg0KICAgIE5FVzoNCg0KICAgICAgIG8gIHRha2UgYW55IGV4aXN0aW5nIHN1YnNj
cmlwdGlvbiAicHJpb3JpdHkiLCBhcyBzcGVjaWZpZWQgYnkgdGhlDQoNCiAgICAgICAgICAid2Vp
Z2h0aW5nIiBsZWFmIG5vZGUgaW4NCg0KICAgICAgICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25m
LXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10sIGFuZCBjb3B5IGl0DQoNCiAgICAgICAgICBpbnRv
IHRoZSBIVFRQMiBzdHJlYW0gd2VpZ2h0LCBbUkZDNzU0MF0gc2VjdGlvbiA1LjMsIGFuZA0KDQog
PFJSPiBHb29kIGNhdGNoLg0KDQoNCg0KICAgIFRoZXJlIGlzIGFsc28gbm8gbWVudGlvbiBvZiBo
b3cgdGhlICJFIiAoRXhjbHVzaXZlKSBiaXQgc2hvdWxkIGJlIHNldCBpbiB0aGUNCg0KICAgIEhU
VFAyIHN0cmVhbSBoZWFkZXJzLiAgSXMgdGhpcyBhbiBvbWlzc2lvbj8NCg0KPFJSPiBJdCBpcyBh
biBvbWlzc2lvbiwgaW1wbGllZCB0aGF0IGl0J3Mgbm90IHVzZWQuIEkgY2FuIGFkZCB0ZXh0IHN0
YXRpbmcgdGhhdCBpdCdzIHNldCB0byAwLg0KDQpPSy4NCg0KDQoNCg0KDQogICAgNykgU2VjdGlv
biA2IGRvZXNuJ3QgY29udGFpbiBhbnkgWUFORyBUcmVlIG91dHB1dC4gIFByb2JhYmx5IHRpbWUg
dG8gcHV0IHRoYXQNCg0KICAgIGluLCBidXQgSSB3b3VsZCBzdWdnZXN0IG5vdCBwdXR0aW5nIGlu
IHRoZSBlbnRpcmUgdHJlZSBvdXRwdXQsIGp1c3QgdGhlDQoNCiAgICByZWxldmFudCBzbmlwcGV0
cy4gIElmIHlvdSB3YW50IHRvIGluY2x1ZGUgdGhlIGZ1bGwgdHJlZSBvdXRwdXQgdGhlbiBJIHdv
dWxkDQoNCiAgICBzdWdnZXN0IHB1dHRpbmcgaW4gYW4gYXBwZW5kaXggaW5zdGVhZC4gIFRoZSB0
ZXh0IGluIHRoaXMgc2VjdGlvbiBkZXNjcmliaW5nDQoNCiAgICB0aGUgWUFORyBtb2RlbCBuZWVk
cyB0byBiZSBmaXhlZCBzaW5jZSB0aGUgWUFORyBtb2R1bGUgZG9lc24ndCBhY3R1YWxseSBkZWZp
bmUNCg0KICAgIGFueSBpZGVudGl0aWVzLg0KDQo8UlI+IEkgYmVsaWV2ZSB0aGUgWUFORyBtb2R1
bGUgd2FzIGNoYW5nZWQgYnV0IG5vdCB0aGUgdGV4dC4gV2lsbCBmaXggYW5kIGFkZCB0aGUgdHJl
ZSBkaWFncmFtLg0KDQoNCg0KICAgIDgpIFNlY3Rpb24gNywgWUFORyBtb2R1bGUgY29tbWVudHMN
Cg0KDQoNCiAgICBKdXN0IG5pdHM6DQoNCg0KDQogICAgOC4xKSBDaGVjayBsaW5lIGxlbmd0aCBv
ZiB0aGUgZmlsZSwgaXQgbG9va3MgbGlrZSBpdCBnb2VzIG92ZXIgNjkgY2hhcmFjdGVycy4NCg0K
ICAgICAtIEluIHBhcnRpY3VsYXIsIHRoZSBuYW1lc3BhY2Ugc3RhdGVtZW50IG1pZ2h0IG5lZWQg
dG8gYmUgc3BsaXQuDQoNCiAgICAgLSBUaGUgbW9kdWxlIGRlc2NyaXB0aW9uIHRleHQgaW5kZW50
YXRpb24gbG9va3Mgb2ZmIG9uIHRoZSBmaXJzdCBsaW5lLCBhbmQNCg0KICAgICBwcm9iYWJseSBu
ZWVkcyB0byBiZSByZS1mbG93ZWQuIC0gU29tZSBvZiB0aGUgb3RoZXIgZGVzY3JpcHRpb25zIGxv
b2sgd2lkZS4NCg0KDQoNCiAgICA4LjIpIFRoZSBkZXNjcmlwdGlvbiBmb3IgInN1YnNjcmlwdGlv
bi1tb2RpZmllZCIgZG9lc24ndCBxdWl0ZSBzY2FuIChhcyBpdCBnb2VzDQoNCiAgICBvdmVyIHRo
ZSBsaW5lIGJyZWFrKS4NCg0KDQoNCiAgICA5KSBPbmUgb2YgdGhlIGZpbHRlciBleGFtcGxlcyBh
cHBlbmRpeCBBLjMgaXMgY2xlYXJseSBvdmVyIDcyIGNoYXJhY3RlcnMsDQoNCiAgICBzdWdnZXN0
IHNwbGl0aW5nLg0KDQo8UlI+IEFjay4NCg0KDQoNClJlZ2FyZHMsDQoNClJlc2hhZC4NClRoYW5r
cywNClJvYg0KDQoNCg0KDQoNCiAgICBUaGFua3MsDQoNCiAgICBSb2INCg0KDQoNCg0KDQoNCg==

--_000_BEB99447A3064B969BAE1D5C17380561ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <70C6076C0ACA024B9FAE79BE1B9B1ABC@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDEx
IDYgOSAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws
IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixz
YW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnByZQ0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJlZm9ybWF0dGVk
IENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6
ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpwLm1zb25vcm1hbDAsIGxp
Lm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsN
Cgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBjbTsNCglmb250LXNpemU6MTEuMHB0
Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uSFRNTFByZWZvcm1h
dHRlZENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkhUTUwgUHJlZm9ybWF0dGVkIENoYXIiOw0KCW1z
by1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0ZWQi
Ow0KCWZvbnQtZmFtaWx5OkNvbnNvbGFzO30NCnNwYW4uRW1haWxTdHlsZTIxDQoJe21zby1zdHls
ZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm
Ow0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6
ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7
c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBw
dDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+
DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1DQSIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+
DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImNvbG9yOmJsYWNrIj5IaSBSb2IsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5JbmxpbmUuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNt
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
O2NvbG9yOmJsYWNrIj5Gcm9tOiA8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0O2NvbG9yOmJsYWNrIj5Sb2JlcnQgV2lsdG9uICZsdDtyd2lsdG9uQGNpc2NvLmNvbSZndDs8
YnI+DQo8Yj5EYXRlOiA8L2I+VGh1cnNkYXksIEphbnVhcnkgMTAsIDIwMTkgYXQgNToxOCBBTTxi
cj4NCjxiPlRvOiA8L2I+JnF1b3Q7UmVzaGFkIFJhaG1hbiAocnJhaG1hbikmcXVvdDsgJmx0O3Jy
YWhtYW5AY2lzY28uY29tJmd0OywgJnF1b3Q7eWFuZy1kb2N0b3JzQGlldGYub3JnJnF1b3Q7ICZs
dDt5YW5nLWRvY3RvcnNAaWV0Zi5vcmcmZ3Q7PGJyPg0KPGI+Q2M6IDwvYj4mcXVvdDtuZXRjb25m
QGlldGYub3JnJnF1b3Q7ICZsdDtuZXRjb25mQGlldGYub3JnJmd0OywgJnF1b3Q7ZHJhZnQtaWV0
Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLmFsbEBpZXRmLm9yZyZxdW90OyAmbHQ7ZHJhZnQtaWV0
Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLmFsbEBpZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0
OiA8L2I+UmU6IFlhbmdkb2N0b3JzIGxhc3QgY2FsbCByZXZpZXcgb2YgZHJhZnQtaWV0Zi1uZXRj
b25mLXJlc3Rjb25mLW5vdGlmLTExPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxw
PkhpIFJlc2hhZCw8bzpwPjwvbzpwPjwvcD4NCjxwPlBsZWFzZSBzZWUgaW5saW5lIC4uLjxvOnA+
PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIDA4LzAxLzIwMTkgMjM6
MTgsIFJlc2hhZCBSYWhtYW4gKHJyYWhtYW4pIHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0
Ij4NCjxwcmU+SGkgUm9iLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wcmU+DQo8cHJlPlRoYW5rcyBhZ2FpbiBmb3IgdGhlIHJldmlldywgaW5saW5lLjxvOnA+PC9v
OnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPk9uIDIwMTktMDEt
MDcsIDEyOjQzIFBNLCAmcXVvdDtSb2JlcnQgV2lsdG9uJnF1b3Q7IDxhIGhyZWY9Im1haWx0bzpy
d2lsdG9uQGNpc2NvLmNvbSI+Jmx0O3J3aWx0b25AY2lzY28uY29tJmd0OzwvYT4gd3JvdGU6PG86
cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7
Jm5ic3A7Jm5ic3A7IFJldmlld2VyOiBSb2JlcnQgV2lsdG9uPG86cD48L286cD48L3ByZT4NCjxw
cmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFJldmlldyByZXN1bHQ6IFJlYWR5IHdpdGggSXNzdWVzPG86
cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wcmU+
DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0kgaGF2ZSByZXZpZXdlZCB0aGlzIGRvY3Vt
ZW50IGFzIHBhcnQgb2YgdGhlIFlBTkcgZG9jdG9ycyBkaXJlY3RvcmF0ZSdzPG86cD48L286cD48
L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IG9uZ29pbmcgZWZmb3J0IHRvIHJldmlldyBh
bGwgSUVURiBkb2N1bWVudHMgYmVpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBJRVNHLiZuYnNwOyBUaGVz
ZTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBjb21tZW50cyB3ZXJl
IHdyaXR0ZW4gd2l0aCB0aGUgaW50ZW50IG9mIGltcHJvdmluZyB0aGUgb3BlcmF0aW9uYWwgYXNw
ZWN0cyBvZjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyB0aGUgSUVU
RiBkcmFmdHMuIENvbW1lbnRzIHRoYXQgYXJlIG5vdCBhZGRyZXNzZWQgaW4gbGFzdCBjYWxsIG1h
eSBiZSBpbmNsdWRlZDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBp
biBBRCByZXZpZXdzIGR1cmluZyB0aGUgSUVTRyByZXZpZXcuJm5ic3A7IERvY3VtZW50IGVkaXRv
cnMgYW5kIFdHIGNoYWlycyBzaG91bGQ8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJz
cDsmbmJzcDsgdHJlYXQgdGhlc2UgY29tbWVudHMganVzdCBsaWtlIGFueSBvdGhlciBsYXN0IGNh
bGwgY29tbWVudHMuPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxv
OnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgZG9jdW1l
bnQgYW5kIHRoZSBhc3NvY2lhdGVkIFlBTkcgbW9kdWxlIGxvb2tzIGxpa2UgaXQgaXMgaW4gZ29v
ZCBzaGFwZSB0bzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBtZS48
bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3By
ZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHR3byBtaW5vciBpc3N1ZXMgdGhh
dCBJIGhhZCB0aGF0IEkgdGhpbmsgbmVlZCB0byBiZSByZXNvbHZlZCBhcmU6PG86cD48L286cD48
L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC0gVGhlIHNlY3Rpb24gMy40IGhhbmRsaW5n
IHN1YnNjcmlwdGlvbnMgYnkgYWRtaW4gdXNlcnMgd2Fzbid0IGludHVpdGl2ZSB0byBtZTxvOnA+
PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyAocmVsYXRpdmUgdG8gd2hhdCBp
cyBzdGF0ZWQgaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucyku
IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NwZWNpZmlj
YWxseSB3aGF0IHNob3VsZCBhbiBhZG1pbiB1c2VyIGJlIGFsbG93ZWQgdG8gZG8gdnMgdGhlIGNs
aWVudCB0aGF0PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGluaXRp
YXRlZCB0aGUgc3Vic2NyaXB0aW9uLiAtIFNlY3Rpb24gNCBvbiBIVFRQMiBRb1Mgc2VlbWVkIHVu
Y2xlYXIgdG8gbWUuPG86cD48L286cD48L3ByZT4NCjxwcmU+Jmx0O1JSJmd0OyBTZWUgYmVsb3cg
Zm9yIHJlc3BvbnNlIG9uIHRoZSBpc3N1ZXMgYWJvdmUuPG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwO0kgdGhpbmsgdGhhdCBhbGwgbXkgb3RoZXIgY29tbWVudHMgYXJlIHJlYWxseSBq
dXN0IG5pdHM6PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxvOnA+
PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzEpIFNlY3Rpb24gMy4y
IERpc2NvdmVyeSwgbGFzdCBwYXJhZ3JhcGguPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7
Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwO1dvdWxkIGl0IGJlIGJldHRlciBmb3IgdGhpcyB0byByZWZlcmVuY2UgZHJhZnQtaWV0Zi1u
ZXRjb25mLW5tZGEtcmVzdGNvbmYsPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7
Jm5ic3A7IHNlY3Rpb24gMiBhbmQgJy95YW5nLWxpYmFyeS9kYXRhc3RvcmUnIGRyYWZ0LWlldGYt
bmV0Y29uZi1yZmM3ODk1YmlzLCBzZWN0aW9uIDM/PG86cD48L286cD48L3ByZT4NCjxwcmU+Jmx0
O1JSJmd0OyBJIGNhbiBhZGQgc2VjdGlvbiAyIGluIHRoZSByZWZlcmVuY2UgdG8gbm1kYS1yZXN0
Y29uZi4gSSBkb24ndCB0aGluayB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBuZWVkIHRvIHJlZmVyZW5j
ZSA3ODk1L2JpcywgcGxlYXNlIG5vdGUgdGhhdCBZUCBhbHJlYWR5IHJlZmVyZW5jZXMgNzg5NS48
bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHA+T0ssIHNvdW5kcyByZWFzb25hYmxl
LjxvOnA+PC9vOnA+PC9wPg0KPHA+T2ZmIHRvcGljIGZvciB0aGlzIHRocmVhZCwgYnV0IDc4OTVi
aXMgc2hvdWxkIGJlIHB1Ymxpc2hlZCBzb29uLCBhbmQgaXQgb2Jzb2xldGVzIDc4OTUsIHNvIHNo
b3VsZCBZUCBiZSB1cGRhdGVkIHRvIHJlZmVyZW5jZSA3ODk1YmlzPzxvOnA+PC9vOnA+PC9wPg0K
PHA+Jmx0O1JSMiZndDsgSSBiZWxpZXZlIHNvLCBJ4oCZbGwgZm9yd2FyZCB0aGlzIHRvIHRoZSBZ
UCBhdXRob3JzLjxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8Ymxv
Y2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxw
cmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOzIpIFJQQyB0YWJsZSBpbiBzZWN0aW9uIDMuMy4mbmJzcDsgVGhlIGlkZW50
aXR5IGZvciAmcXVvdDtraWxsLXN1YnNjcmlwdGlvbiZxdW90OyBzaG91bGQ8bzpwPjwvbzpwPjwv
cHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgcHJvYmFibHkgYmUgJnF1b3Q7ZGVsZXRlLXN1
YnNjcmlwdGlvbi1lcnJvciZxdW90OyBzaW5jZSAmcXVvdDtraWxsLXN1YnNjcmlwdGlvbi1lcnJv
ciZxdW90OyBpc24ndDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBk
ZWZpbmVkLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZsdDtSUiZndDsgR29vZCBjYXRjaC48bzpw
PjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3ByZT4N
CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7MykgRGlhZ3JhbSBpbiAzLjQuJm5ic3A7IEl0
IHdhc24ndCBpbW1lZGlhdGVseSBvYnZpb3VzIHRvIG1lIHRoYXQgdGhlIHZlcnRpY2FsIGxpbmVz
PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGluIHRoZSBsaW5lZCB1
cCB3aXRoIGNvbm5lY3Rpb25zIChhKSBhbmQgKGIpLiZuYnNwOyBJJ20gbm90IHN1cmUgd2hldGhl
ciBpdCBpcyB3b3J0aDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBh
ZGRpbmcgYSBjb21tZW50IHRvIG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0LiZuYnNwOyBJIGZpZ3Vy
ZWQgaXQgb3V0IHdoaWxzdCByZWFkaW5nPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5i
c3A7Jm5ic3A7IHRoZSB0ZXh0IGJlbG93LCBwZXJoYXBzIG1vc3Qgb3RoZXIgcmVhZGVycyB3b3Vs
ZCBhbHNvIGRvIHNvLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZsdDtSUiZndDsgSSdsbCB0cnkg
dG8gbWFrZSBpdCBjbGVhcmVyLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZu
YnNwOyA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs0KSBT
ZWN0aW9uIDMuNCwgYm90dG9tIG9mIHBhZ2UgNywgJnF1b3Q7bXVzdCBiZSBzZW50IHdpdGhpbiAo
YikmcXVvdDsgLSZndDsgJnF1b3Q7TVVTVCBiZSBzZW50PG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdpdGhpbiAoYikmcXVvdDs8bzpwPjwvbzpwPjwvcHJlPg0KPHBy
ZT4mbHQ7UlImZ3Q7IFllcy48bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJz
cDsgPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7NSkgU2Vj
dGlvbiAzLjQ6PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IG8mbmJzcDsgUlBDcyBtb2RpZnktc3Vic2NyaXB0aW9uLCByZXN5bmMtc3Vi
c2NyaXB0aW9uIGFuZCBkZWxldGUtPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN1YnNjcmlwdGlvbiBj
YW4gb25seSBiZSBkb25lIGJ5IHRoZSBzYW1lIFJFU1RDT05GIHVzZXJuYW1lPG86cD48L286cD48
L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFtSRkM4MDQwXSB3aG8gZGlkIHRoZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLCBv
ciBieSBhIFJFU1RDT05GPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJuYW1lIHdpdGggdGhlIHJl
cXVpcmVkIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zLiZuYnNwOyBUaGUgbGF0dGVyPG86cD48
L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IGFsc28gaGFzIGFjY2VzcyB0byB0aGUga2lsbC1zdWJzY3JpcHRpb24g
UlBDLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpw
PjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtKdXN0IHRvIGNoZWNrLCBpcyBp
dCB0cnVlIHRoYXQgYW55IFJFU1RDT05GIHVzZXJuYW1lIHdpdGggdGhlIHJlcXVpcmVkPG86cD48
L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBlcm1pc3Npb25zIGlzIGFsbG93
ZWQgdG8gaW52b2tlIHRoZSAmcXVvdDtkZWxldGUtc3Vic2NyaXB0aW9uJnF1b3Q7IFJQQz8mbmJz
cDsgT3Igc2hvdWxkIHRoaXM8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJz
cDsgYmUgcmVzdHJpY3RlZCB0byBzYW1lIFJFU1RDT05GIHVzZXJuYW1lPyZuYnNwOyBJbiBmYWN0
LCBJIHdhcyB3b25kZXJpbmcgd2hldGhlciBhbjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNw
OyZuYnNwOyZuYnNwOyBhZG1pbmlzdHJhdG9yIHNob3VsZCBiZSBhbGxvd2VkIHRvIGludm9rZSBt
b2RpZnktc3Vic2NyaXB0aW9uIG9yPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7
Jm5ic3A7IHJlc3luYy1zdWJzY3JpcHRpb24sIG9yIHdoZXRoZXIgdGhleSBzaG91bGQgYmUgcmVz
dHJpY3RlZCB0byBraWxsLXN1YnNjcmlwdGlvbjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNw
OyZuYnNwOyZuYnNwOyBvbmx5PzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZsdDtSUiZndDsgSSBk
byBub3Qgc2VlIHRoZSBiZW5lZml0IG9mIHJlc3RyaWN0aW5nIHdoYXQgYW4gYWRtaW4gdXNlciBj
YW4gZG8uIEUuZy4gdGhlIGFkbWluIG1heSB3YW50IHRvIGRlY3JlYXNlIHRoZSBmcmVxdWVuY3kg
b2YgYSBwZXJpb2RpYyBzdWJzY3JpcHRpb24uPG86cD48L286cD48L3ByZT4NCjwvYmxvY2txdW90
ZT4NCjxwPkkgaGFkIGEgY291cGxlIG9mIGNvbmNlcm5zOjxicj4NCiZuYnNwOzEpIFRyeWluZyB0
byBhbGlnbiB0aGUgUkVTVENPTkYgaGFuZGxpbmcgb2YgdGhlc2UgUlBDcyB0byB0aGUgYmVoYXZp
b3VyIHNwZWNpZmllZCBpbiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRp
b25zIGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zLjxi
cj4NCjIpIElmIE5BQ00gaXMgdXNlZCBhcyB0aGUgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtLCB0
aGVuIGFueSBjbGllbnQgdGhhdCBoYXMgYWNjZXNzIHRvIHRoZSAmbHQ7Ki1zdWJzY3JpcHRpb24m
Z3Q7IFJQQ3MgaXMgYWxsb3dlZCB0byBpbnZva2UgdGhlbSBmb3IgYW55IHN1YnNjcmlwdGlvbiwg
dW5sZXNzIGFkZGl0aW9uYWwgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLiZuYnNwOyBIb3dldmVyLCBJ
IGFwcHJlY2lhdGUgdGhhdCB0aGlzIGV4dHJhIGNoZWNraW5nIGNvdWxkIGJlDQogbW9yZSBkaWZm
aWN1bHQvZXhwZW5zaXZlIHRvIGltcGxlbWVudCBvbiBzb21lIHBsYXRmb3Jtcy48bzpwPjwvbzpw
PjwvcD4NCjxwPiZsdDtSUjImZ3Q7IEhhdmluZyBwZXJmZWN0IGFsaWdubWVudCBpcyBwcm9ibGVt
YXRpYyBiZWNhdXNlIHRoZXJlIGFyZSBubyB0cmFuc3BvcnQgc2Vzc2lvbnMgaW4gUkVTVENPTkYs
IHRoYXTigJlzIHdoeSB0aGUgdXNlcm5hbWUvTkFDTSBtZXRob2Qgd2FzIHByb3Bvc2VkIGJ5IGEg
ZmV3IHBlb3BsZS4gQnV0IEkgZG8gYWdyZWUgdGhhdCB5b3VyIHBvaW50IDIpIGlzIGFuIGlzc3Vl
IGFuZCB5b3VyIHByb3Bvc2VkIHRleHQgYmVsb3cgYWRkcmVzc2VzIHRoYXQsDQogc28gSeKAmWxs
IG1ha2UgdGhlIGNoYW5nZS4gPG86cD48L286cD48L3A+DQo8cD5SZWdhcmRzLDxvOnA+PC9vOnA+
PC9wPg0KPHA+UmVzaGFkLjxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8cD5Db25zaWRlcmluZyBib3RoIG9mIHRoZXNlLCB3b3VsZCB0aGUgZm9sbG93aW5nIHJld29y
ZGluZyBvZiB0aGUgcGFyYWdyYXBoIGJlIGJldHRlcj88bzpwPjwvbzpwPjwvcD4NCjxwPk9MRDo8
bzpwPjwvbzpwPjwvcD4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
IG8mbmJzcDsgUlBDcyBtb2RpZnktc3Vic2NyaXB0aW9uLCByZXN5bmMtc3Vic2NyaXB0aW9uIGFu
ZCBkZWxldGUtPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN1YnNjcmlwdGlvbiBjYW4gb25seSBiZSBk
b25lIGJ5IHRoZSBzYW1lIFJFU1RDT05GIHVzZXJuYW1lPG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFtS
RkM4MDQwXSB3aG8gZGlkIHRoZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLCBvciBieSBhIFJFU1RD
T05GPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXJuYW1lIHdpdGggdGhlIHJlcXVpcmVkIGFkbWlu
aXN0cmF0aXZlIHBlcm1pc3Npb25zLiZuYnNwOyBUaGUgbGF0dGVyPG86cD48L286cD48L3ByZT4N
CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IGFsc28gaGFzIGFjY2VzcyB0byB0aGUga2lsbC1zdWJzY3JpcHRpb24gUlBDLjxvOnA+PC9v
OnA+PC9wcmU+DQo8cD5ORVc6PG86cD48L286cD48L3A+DQo8cHJlIHN0eWxlPSJmb250LXZhcmlh
bnQtbGlnYXR1cmVzOiBub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDt0ZXh0LWFsaWdu
OnN0YXJ0Oy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4m
bmJzcDsmbmJzcDsgbyZuYnNwOyBJbiBhZGRpdGlvbiB0byBhbnkgcmVxdWlyZWQgYWNjZXNzIHBl
cm1pc3Npb25zIChlLmcuLCBOQUNNKSw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgUlBDcyBtb2RpZnktc3Vic2NyaXB0aW9uLCByZXN5bmMtc3Vi
c2NyaXB0aW9uIGFuZDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBkZWxldGUtc3Vic2NyaXB0aW9uIFNIT1VMRCBvbmx5IGJlIGFsbG93ZWQgYnkg
dGhlIHNhbWUgUkVTVENPTkY8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsgJm5ic3A7dXNlcm5hbWUgW1JGQzgwNDBdIHdobyBpbnZva2VkIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24uPG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3By
ZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7IG8mbmJzcDsgVGhlIGtpbGwtc3Vic2NyaXB0aW9uIFJQQyBj
YW4gYmUgaW52b2tlZCBieSBhbnkgUkVTVENPTkY8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXNlcm5hbWUgd2l0aCB0aGUgcmVxdWlyZWQgYWRt
aW5pc3RyYXRpdmUgcGVybWlzc2lvbnMuPG86cD48L286cD48L3ByZT4NCjxwPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0i
bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxwcmU+IDxvOnA+PC9vOnA+
PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxvOnA+PC9vOnA+PC9wcmU+DQo8
cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzYpIFNlY3Rpb24gNCBpcyB1bmNsZWFyIHRvIG1l
OjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwv
cHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstIFRoZSBwYXJhZ3JhcGgg
c3RhcnRpbmcgJnF1b3Q7dGFrZSBhbnkgZXhpc3Rpbmcgc3Vic2NyaXB0aW9uICZxdW90O3ByaW9y
aXR5JnF1b3Q7IC4uLiZxdW90OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBzdGF0ZXMgdGhhdCB0aGUgJnF1b3Q7ZHNjcCZxdW90OyBmaWVsZCBpcyBjb3Bp
ZWQgaW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5LCBidXQgSTxvOnA+PC9vOnA+PC9wcmU+
DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb3VsZG4ndCBmaW5kIHN1Y2ggYSBmaWVs
ZCBpbiBzZWN0aW9uIDUuMyBvZiBSRkM3NTQwLiZuYnNwOyBIZW5jZSwgSSB3YXMgd29uZGVyaW5n
PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdoZXRoZXIg
dGhpcyBwYXJhZ3JhcGggc2hvdWxkbid0IGluc3RlYWQgYmUgc3RhdGluZyB0aGUgdGhlICZxdW90
O3dlaWdodGluZyZxdW90OyBmaWVsZDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyBpcyBjb3BpZWQgaW50byB0aGUgSFRUUDIgc3RyZWFtIHByaW9yaXR5IGhl
YWRlcj88bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286
cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RS5nLjxvOnA+PC9vOnA+PC9w
cmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBPTEQ6PG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG8mbmJzcDsgdGFrZSBhbnkgZXhp
c3Rpbmcgc3Vic2NyaXB0aW9uICZxdW90O3ByaW9yaXR5JnF1b3Q7LCBhcyBzcGVjaWZpZWQgYnkg
dGhlPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZxdW90O2RzY3AmcXVvdDsgbGVhZiBub2RlIGluPG86
cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90
aWZpY2F0aW9uc10sIGFuZCBjb3B5IGl0PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludG8gdGhlIEhU
VFAyIHN0cmVhbSBwcmlvcml0eSwgW1JGQzc1NDBdIHNlY3Rpb24gNS4zLCBhbmQ8bzpwPjwvbzpw
PjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TkVXOjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvJm5ic3A7IHRha2UgYW55IGV4aXN0aW5n
IHN1YnNjcmlwdGlvbiAmcXVvdDtwcmlvcml0eSZxdW90OywgYXMgc3BlY2lmaWVkIGJ5IHRoZTxv
OnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyAmcXVvdDt3ZWlnaHRpbmcmcXVvdDsgbGVhZiBub2RlIGluPG86
cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90
aWZpY2F0aW9uc10sIGFuZCBjb3B5IGl0PG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludG8gdGhlIEhU
VFAyIHN0cmVhbSB3ZWlnaHQsIFtSRkM3NTQwXSBzZWN0aW9uIDUuMywgYW5kPG86cD48L286cD48
L3ByZT4NCjxwcmU+ICZsdDtSUiZndDsgR29vZCBjYXRjaC48bzpwPjwvbzpwPjwvcHJlPg0KPHBy
ZT4mbmJzcDsmbmJzcDsgPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7VGhlcmUgaXMgYWxzbyBubyBtZW50aW9uIG9mIGhvdyB0aGUgJnF1b3Q7RSZxdW90OyAo
RXhjbHVzaXZlKSBiaXQgc2hvdWxkIGJlIHNldCBpbiB0aGU8bzpwPjwvbzpwPjwvcHJlPg0KPHBy
ZT4mbmJzcDsmbmJzcDsmbmJzcDsgSFRUUDIgc3RyZWFtIGhlYWRlcnMuJm5ic3A7IElzIHRoaXMg
YW4gb21pc3Npb24/PG86cD48L286cD48L3ByZT4NCjxwcmU+Jmx0O1JSJmd0OyBJdCBpcyBhbiBv
bWlzc2lvbiwgaW1wbGllZCB0aGF0IGl0J3Mgbm90IHVzZWQuIEkgY2FuIGFkZCB0ZXh0IHN0YXRp
bmcgdGhhdCBpdCdzIHNldCB0byAwLjxvOnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8
cD5PSy48bzpwPjwvbzpwPjwvcD4NCjxwPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGJsb2NrcXVv
dGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cHJlPiZu
YnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDs3KSBTZWN0aW9uIDYgZG9lc24ndCBjb250YWluIGFueSBZQU5HIFRyZWUgb3V0cHV0
LiZuYnNwOyBQcm9iYWJseSB0aW1lIHRvIHB1dCB0aGF0PG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IGluLCBidXQgSSB3b3VsZCBzdWdnZXN0IG5vdCBwdXR0aW5nIGlu
IHRoZSBlbnRpcmUgdHJlZSBvdXRwdXQsIGp1c3QgdGhlPG86cD48L286cD48L3ByZT4NCjxwcmU+
Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlbGV2YW50IHNuaXBwZXRzLiZuYnNwOyBJZiB5b3Ugd2FudCB0
byBpbmNsdWRlIHRoZSBmdWxsIHRyZWUgb3V0cHV0IHRoZW4gSSB3b3VsZDxvOnA+PC9vOnA+PC9w
cmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBzdWdnZXN0IHB1dHRpbmcgaW4gYW4gYXBwZW5k
aXggaW5zdGVhZC4mbmJzcDsgVGhlIHRleHQgaW4gdGhpcyBzZWN0aW9uIGRlc2NyaWJpbmc8bzpw
PjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgdGhlIFlBTkcgbW9kZWwgbmVl
ZHMgdG8gYmUgZml4ZWQgc2luY2UgdGhlIFlBTkcgbW9kdWxlIGRvZXNuJ3QgYWN0dWFsbHkgZGVm
aW5lPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFueSBpZGVudGl0
aWVzLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZsdDtSUiZndDsgSSBiZWxpZXZlIHRoZSBZQU5H
IG1vZHVsZSB3YXMgY2hhbmdlZCBidXQgbm90IHRoZSB0ZXh0LiBXaWxsIGZpeCBhbmQgYWRkIHRo
ZSB0cmVlIGRpYWdyYW0uPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7
IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzgpIFNlY3Rp
b24gNywgWUFORyBtb2R1bGUgY29tbWVudHM8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsm
bmJzcDsmbmJzcDsgPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7SnVzdCBuaXRzOjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyA8
bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs4LjEpIENoZWNr
IGxpbmUgbGVuZ3RoIG9mIHRoZSBmaWxlLCBpdCBsb29rcyBsaWtlIGl0IGdvZXMgb3ZlciA2OSBj
aGFyYWN0ZXJzLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyAtIEluIHBhcnRpY3VsYXIsIHRoZSBuYW1lc3BhY2Ugc3RhdGVtZW50IG1pZ2h0IG5lZWQgdG8g
YmUgc3BsaXQuPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
IC0gVGhlIG1vZHVsZSBkZXNjcmlwdGlvbiB0ZXh0IGluZGVudGF0aW9uIGxvb2tzIG9mZiBvbiB0
aGUgZmlyc3QgbGluZSwgYW5kPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwO3Byb2JhYmx5IG5lZWRzIHRvIGJlIHJlLWZsb3dlZC4gLSBTb21lIG9mIHRoZSBv
dGhlciBkZXNjcmlwdGlvbnMgbG9vayB3aWRlLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNw
OyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDs4LjIpIFRoZSBkZXNjcmlwdGlvbiBmb3IgJnF1b3Q7c3Vic2NyaXB0aW9uLW1vZGlmaWVk
JnF1b3Q7IGRvZXNuJ3QgcXVpdGUgc2NhbiAoYXMgaXQgZ29lczxvOnA+PC9vOnA+PC9wcmU+DQo8
cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBvdmVyIHRoZSBsaW5lIGJyZWFrKS48bzpwPjwvbzpwPjwv
cHJlPg0KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsgPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OSkgT25lIG9mIHRoZSBmaWx0ZXIgZXhhbXBsZXMgYXBwZW5k
aXggQS4zIGlzIGNsZWFybHkgb3ZlciA3MiBjaGFyYWN0ZXJzLDxvOnA+PC9vOnA+PC9wcmU+DQo8
cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyBzdWdnZXN0IHNwbGl0aW5nLjxvOnA+PC9vOnA+PC9wcmU+
DQo8cHJlPiZsdDtSUiZndDsgQWNrLjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wcmU+DQo8cHJlPlJlZ2FyZHMsPG86cD48L286cD48L3ByZT4NCjxwcmU+UmVzaGFk
LjxvOnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5U
aGFua3MsPGJyPg0KUm9iIDxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0
Ij4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwO1RoYW5rcyw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4mbmJzcDsm
bmJzcDsmbmJzcDsgUm9iPG86cD48L286cD48L3ByZT4NCjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7
IDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxvOnA+PC9v
OnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8
L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_BEB99447A3064B969BAE1D5C17380561ciscocom_--


From nobody Thu Jan 10 09:26:47 2019
Return-Path: <dcrocker@bbiw.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 18879130EC1; Thu, 10 Jan 2019 09:26:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.4
X-Spam-Level: 
X-Spam-Status: No, score=-2.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=bbiw.net
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 qREgmKyal5x0; Thu, 10 Jan 2019 09:26:36 -0800 (PST)
Received: from simon.songbird.com (simon.songbird.com [72.52.113.5]) (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 ACD69128D52; Thu, 10 Jan 2019 09:26:36 -0800 (PST)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id x0AHRa0Z024045 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Jan 2019 09:27:37 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bbiw.net; s=default; t=1547141258; bh=6HjfQaDEX/dKUSmO/4IKOPph2u+RlDDTy4IPdJ6vsYc=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=Ksbve6fTHVr5OwSNw13hYnuwzFpWwxqMLtmlmFBPSahggxNwfg2p/DkOxjPQFwi7E SpwcVLP/D6RXjm+5yEYJ/2xctmZMjt82Uva295IUufNZTjoWMYidSwHCWEQ+mfgPdU kzUkbrD1ZEl3qPu1dWDvl5cW5G156G2lTavVlBGI=
To: Kent Watsen <kwatsen@juniper.net>, Dave Crocker <dcrocker@bbiw.net>, Adam Roach <adam@nostrum.com>, Alexey Melnikov <aamelnikov@fastmail.fm>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net>
From: Dave Crocker <dcrocker@bbiw.net>
Message-ID: <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net>
Date: Thu, 10 Jan 2019 09:26:22 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/N6HmspeEEJo_FEE0NtPPxhyOWkg>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 17:26:38 -0000

On 1/9/2019 1:12 PM, Kent Watsen wrote:
> Thanks for your prompt reply and, yeah, sometimes the IETF-aliases are wonky.

Seems to have mostly worked for/with me in the past.Â  I hadn't heard 
that it is inconsistent.Â  Hmmm...Â  Might be worth getting ietf sysadmin 
involved to look at logs.

> Your response makes sense to me, but it immediately conjured the question of *why* is _sztp under _tcp, for this case?  This question isn't specifically to you, though your input would be appereciated.

Having no history of the group's activity, and merely looking at the 
relevant draft spec text, I'd assume it merely seemed natural, given 
that (entirely appropriate) use of _tcp for the corresponding SRV record 
-- on its own it certainly looks natural to me, especially given the 
long history of no registration discipline for use of TXT RRsets.

> To clarify, the draft uses DNS in two ways:
>
> 1) the first is for traditional SRV records, for which being under _tcp makes sense.

+1
> 2) the second is for TXT records that, of and in themselves, are not describing a TCP service, so much as providing bootstrapping data, that may or may not cause the device to initiate a subsequent connection (TCP or otherwise).   For this case, we also have the _sztp record under _tcp, but *should* it be under the TLD instead?

Absent deep involvement in the work of the spec, and just basing my view 
on the small bits of the spec I've read, I'd suggest dropping use of 
_tcp for the TXT and just using _sztp as a globally-scoped attrleaf node 
name, registering it in the new attrleaf registry.

d/

-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net


From nobody Thu Jan 10 10:22:29 2019
Return-Path: <adam@nostrum.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7575713101B; Thu, 10 Jan 2019 10:22:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.679
X-Spam-Level: 
X-Spam-Status: No, score=-1.679 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=nostrum.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 uxR_tFEyHev1; Thu, 10 Jan 2019 10:22:20 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 7C5841311DE; Thu, 10 Jan 2019 10:22:18 -0800 (PST)
Received: from Svantevit.local (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id x0AIM8hv077513 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 10 Jan 2019 12:22:10 -0600 (CST) (envelope-from adam@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1547144531; bh=I8Dp7EzSMT0HxJndKI0d3aWBpdLGtm1nVg1j05yVLZc=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=XJhA2j+gBqTqbzTfL43jT8srt4jlEGJn+b0ygTUy5B/4LY2eJYNonzVMABfeoR/Ad mmEObTHpvUMGt8NVfbezFgF6u6D8pmvgrW2VNvp962/baoATC6rnnV3U/67x9Er3+s fICOWTtvVhoG0KkW/LWNfHZhxaXU8wSaXQJTljXY=
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Svantevit.local
To: Dave Crocker <dcrocker@bbiw.net>, Kent Watsen <kwatsen@juniper.net>, Alexey Melnikov <aamelnikov@fastmail.fm>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Benjamin Kaduk <kaduk@mit.edu>
References: <154390493154.31734.13025584839857369253.idtracker@ietfa.amsl.com> <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net>
From: Adam Roach <adam@nostrum.com>
Message-ID: <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com>
Date: Thu, 10 Jan 2019 12:22:03 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/MIqTNLsEQcmeem_YF8PVZelUkMY>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 18:22:22 -0000

On 1/10/19 11:26 AM, Dave Crocker wrote:
> On 1/9/2019 1:12 PM, Kent Watsen wrote:
> ...
>> To clarify, the draft uses DNS in two ways:
>>
>> 1) the first is for traditional SRV records, for which being under 
>> _tcp makes sense.
>
> +1
>> 2) the second is for TXT records that, of and in themselves, are not 
>> describing a TCP service, so much as providing bootstrapping data, 
>> that may or may not cause the device to initiate a subsequent 
>> connection (TCP or otherwise). For this case, we also have the _sztp 
>> record under _tcp, but *should* it be under the TLD instead?
>
> Absent deep involvement in the work of the spec, and just basing my 
> view on the small bits of the spec I've read, I'd suggest dropping use 
> of _tcp for the TXT and just using _sztp as a globally-scoped attrleaf 
> node name, registering it in the new attrleaf registry. 


I don't think this is right. Draft-ietf-netconf-zerotouch is explicitly 
using DNS-SD procedures [1]. In turn, DNS-SD absolutely mandates the 
presence of both SRV and TXT records with the same name [2]. So the 
names need to match.

Dave's assertion that the use of _sztp._tcp... is not under the purview 
of draft-ietf-dnsop-attrleaf is correct [3]. The assumption in attrleaf 
is that whatever document ends up registering a global underscored name 
will provide guidance for those name elements that precede (are lower 
down in the tree than) the global underscored name.

In the case of DNS-SD, both the SRV and TXT _tcp global leaf namespace 
is clearly spelled out to be governed by 
<http://www.iana.org/assignments/port-numbers> [4][5][6][7].

In short, unless we're making radical changes to zerotouch so that it no 
longer uses RFC 6763, there is no valid path forward other than 
registering a corresponding service in the IANA table cited above (such 
as "sztp").

/a

____
[1] draft-ietf-netconf-zerotouch Â§4.2.1: "Devices claiming to support 
DNS as a source of bootstrapping data MUST first query for 
device-specific DNS records using DNS-SD [RFC6763]"

[2] RFC 6763 Â§6: "Every DNS-SD service MUST have a TXT record in 
addition to its SRV record, with the same name"

[3] draft-ietf-dnsop-attrleaf Â§2: "Only global underscored names are 
registered in the IANA Underscore Global table."

[4] draft-ietf-dnsop-attrleaf Â§4.3 defers authority for SRV/_tcp to RFC 
2782 and authority for TXT/_tcp to RFC 6763.

[5] RFC 6763 Â§7: "The first label of the pair is an underscore character 
followed by the Service Name [RFC6335]."

[6] RFC 6335 Â§10, which is too long too reasonably quote here.

[7] RFC2782 Â§"The format of the SRV RR"; see definition of "Service", 
with STD 2/RFC 1700 -> RFC 3232 -> iana.org



From nobody Thu Jan 10 10:34:59 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A6C2C130F8A; Thu, 10 Jan 2019 10:34:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level: 
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=mit.edu
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 mpAWueT003OF; Thu, 10 Jan 2019 10:34:55 -0800 (PST)
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700121.outbound.protection.outlook.com [40.107.70.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 47116130F89; Thu, 10 Jan 2019 10:34:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7VQXgbMgLcsgCYpobZJvhPN4nIr8FQnQWy0JtBPd+Lg=; b=j69ryRMI/rpzkwRz/eRQGuTp4c9o5LSikOTeHX2xLx+8Fl8BV1EHCJ7KklBHzxwnx0J5r3aj2isTAAqJwmp1ntWVdBeONYa4yrbG85YNfvIv/CXW1YdiZkM1S4NX99tm1Bb6hOWte3JRU0S/XEx5o8Odd/OMZX32U/jU2yjlvAY=
Received: from MWHPR01CA0026.prod.exchangelabs.com (2603:10b6:300:101::12) by DM5PR01MB2507.prod.exchangelabs.com (2603:10b6:3:3c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.14; Thu, 10 Jan 2019 18:34:52 +0000
Received: from CO1NAM03FT057.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::202) by MWHPR01CA0026.outlook.office365.com (2603:10b6:300:101::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.14 via Frontend Transport; Thu, 10 Jan 2019 18:34:51 +0000
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT057.mail.protection.outlook.com (10.152.81.124) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Thu, 10 Jan 2019 18:34:50 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0AIYiDl012797 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Jan 2019 13:34:47 -0500
Date: Thu, 10 Jan 2019 12:34:44 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Adam Roach <adam@nostrum.com>
CC: Dave Crocker <dcrocker@bbiw.net>, Kent Watsen <kwatsen@juniper.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190110183444.GN28515@kduck.mit.edu>
References: <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(376002)(396003)(136003)(346002)(2980300002)(189003)(199004)(356004)(8676002)(47776003)(4326008)(53546011)(104016004)(229853002)(956004)(11346002)(186003)(446003)(476003)(336012)(50466002)(426003)(26005)(6916009)(5660300001)(6666004)(2906002)(6346003)(76176011)(246002)(88552002)(75432002)(126002)(2870700001)(7696005)(8936002)(33656002)(86362001)(6246003)(23756003)(54906003)(305945005)(93886005)(36906005)(106002)(55016002)(486006)(6306002)(316002)(1076003)(26826003)(786003)(106466001)(478600001)(53416004)(58126008)(567974002)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR01MB2507; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; CO1NAM03FT057; 1:oqX9pKlPUv0v/+yMARssPpUQSz5eCEn8eV7bNCdjS837B9SpFNlqqrIWLa/gMPH4ok1A/JChH11XQ2722S2u2sqJJOHqRBMWSovodvPf2ZbZVcgEWHI8evUwNusxcxRO
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 5603849e-c4a9-4b0a-06b7-08d6772a4f06
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:DM5PR01MB2507; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2507; 3:wPmOkpgJoqn8Sav4M+uj/E4TWee+c7me6T2JyvS4AMxFWeLqu+DyCdiA7UDOCBFNrs3DKXqx0Y60jUR+nfiWMbaUi3zMkr1p3IT5JROXod/vzEkkva8VLGsqtFKozhV+FcVi8vtJ8Ioje1ZxurbTMQJ/h6x55G55S6/H1V5eKMccsYtBkJTNtwuCycEoMG93rqIw5JRwkBUXanaZZeA6N9D2CTenFA4cgeVraYDqwffI/XBlYD1T6sJgsd5OYOz9Ms6kESGj7VhkxDrTrQ0H++uAapYdXRXhOHM8kPbcVOFGBhTuNHpl9ouhZqqOGkQqTt+6rNvxC0SO+ys7rfV6T23gUSm3EiNmfM6m6ZfB7J4juCZQ9ubJkmhfX+WgCuUC; 25:+MLJvPFX3FL3I4VL6ZsnPY2ZtUh6GP0zklWAjPvaqPfhxiXxeEwFX5gQu4Lsb6Um3B/XMVO7hBuYPDETZaxeVaCzNfVFu4Np6lxfGGyF/JzXcnjYQEw/pKptZya4x2sGBBo3E0zcBgXk9PHmfVz7ZlF7RuS2A3Il4Cj6SPuCMOdmTB5RVLwF2VMh3Ep0eSLUlZFvEWzXQejnuEs3dioA7gnu0ee8X+G7DxH3zBKBwMti9pqs9H9mmOsud0saqSCC2K681nXqCD0zV+USuaDKJGaiyhRcrwQttoWGOMKiGwVCg5xCiHNcPBxB6WWWvqV+PuNDPvOoK1S5evemlfbemw==
X-MS-TrafficTypeDiagnostic: DM5PR01MB2507:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2507; 31:LPJOKvwwqEtfiPDA+41/u6Ex9d9aM0pSLTVxEj4wPzghCmd4VT+bc3borwEEbHGsG0Gdr5/xMhelndJJ+GKthTyfIppnGhAxkraN2bF/Q/EEbxpv+5gPHxwVZvjLvm5T7R5BGJvOHpVWcov7p9uyEGq9MHqk60Son1dcQvNSzaYa6Sbb1eTeviBiBSVkKjLITy0aIXzEACaXDLY2+oZYKccAKe8JAK5ileBol35sc1c=; 20:why5Ec7LmQ0jC/4pqsUUliHPtTYEvNhRiopvMIwe0BVBeEq52ZY3xSQWaGr+d4h0Kwl51L1m84Snq+sEdgrj8DTSqtyIqsvYVnk3N82/NE/S92RxTLlcZs4Hp2y/Lofuar3gZj6EwBn1PNZPn13JjogSt1sF+hMyzkFneZocp0EaMLwmHPCiY6YtmvuOjlHZDY0LxO7NwIkldWI17RkZvTkhTiHgYdEt7oEG6dbhKXVbXRkVqNg97O+Y3KtyXrHqjLR7t+RjRWjj4keKFfxuz9vmUvJ8H/68+SP6oxmYmaXeAEn6UekjuO3d/EUTtC3d67u2z9f76NqabMRyZZe4tHu/pDexMvU6Q2EBAM8M1OdQ2OfmW8IenC+Oz7l6uDBjnrdAnRuG4P2BpaRfBsZTFzkNKqg4XGxrAbKvDG/u+X2f+SXIp4dmcxir6QMRbKX6JiTE95S273CtlnH/2TY1O/2FiCXWis1i4i4/QzMux8f+0jIUIm2Der0TMiffzFen
X-Microsoft-Antispam-PRVS: <DM5PR01MB2507FE115E991F1BF1C2E9D0A0840@DM5PR01MB2507.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2507; 4:RE4XHOabDO1voa5oJnbzXG1RuJsy7DrQxNnZ6iyvPDQN6nwE1FiHK6u3L9uBN9QCiY0ijL6A6wjuYmwkWQ06yoqjRicJIaSd6w1h7D6d0iEMQx/UTrESZKbEiHW1YXkdJaU6YsrO9xutMjZxPOGE3xRw5cFknQY+ir0v6HFmaaSlSuBLAhzRNnEw1ALHcdCSN6zQPSwtPnq+HO3WpeWn623fvu1uTCU1xbNhM67FytYrfXi6npHNQzZieq0RnWsQqEetag+IIgszcAW6Ac2/zz1xJexOvHEdz5GL/bfU0rtKeZnvbbrvbt3GYM8BSNxT
X-Forefront-PRVS: 0913EA1D60
X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1; DM5PR01MB2507; 23:loYSXgknfDmzRqZUSFSrXWEONm0sC9d4ggGOfrq?= =?iso-8859-1?Q?+OcdivXWHpAfscsO5CW2GXEAmUmS9lzPSmvz25ZXsU4gfBaoAGWm7pPvPK?= =?iso-8859-1?Q?l/2VPRXs24G0E7hjx/l4vZ+nHNXfDfpRGHJChr8MR0B1I8ZCXwnt5xKjJR?= =?iso-8859-1?Q?7WVzqE+udo2OgV6LWxlP+VsXOzcoQERgJfmiC4TQi7G/w9rq3oa7QPAgoj?= =?iso-8859-1?Q?1W93id++VNGr9xerWylOM5m1F100nLUpjvky9IDlL/03n4OmMMbXBT/b5W?= =?iso-8859-1?Q?AeLz2q/oMcJuQyIC+DrjPv3Bte7EyMMAjb13yED2qDjk+onOB+sp+2BdnS?= =?iso-8859-1?Q?pH4mopeOMlWQdCfY8KgVszdAxAc3vinklSCR9e8ylHvqkKIn4xvjngliN6?= =?iso-8859-1?Q?ntBMoAOgVW8SiVolcJh7H6Tl/o8b+Jiq9i92rreKt+0fVWXgPwBkvDhs6H?= =?iso-8859-1?Q?0C+uEofnCSdmVEcKMa7L6TZidO1tKZydrC7fDlQ3AvbOdBiBWITIdLQGpH?= =?iso-8859-1?Q?T+SRZ29I3K+Ii5KrB9s8yge3b1DEJazF6gMLQ4o6Cdih8yeJLOqdHBBCA7?= =?iso-8859-1?Q?zC3wvDRQgXJds2+W5V750dGKe2PRCZ9jTyhmoK9S37abiOEfyl6OEVHbyy?= =?iso-8859-1?Q?Zarhs6ku3jyeQnEkK/ZG2RK8Un99WD8dEg1/DeVZkdPwYOtbsfZU7khrYz?= =?iso-8859-1?Q?AuNXcn4RhparyDPHhI6+dvRkTvvchINfaXowTMtQFsfmoavYOLcm+AFfx+?= =?iso-8859-1?Q?jiS69iPFKgxRnrLHBxlgwtS/RLEa5NwYZAT+vG0xyNpkgvZf6TCWa2oBXo?= =?iso-8859-1?Q?A1bwbQbzNX665i78v8bVS9K3LzPZmjTok/e6rav0WimFhFAJ+5qeqcidYK?= =?iso-8859-1?Q?+BC/HMAF4jafDJXm3eZ8Wag0ocQrRUfhvc2kY5Yoc9ipczdAr+2iJ3VvJW?= =?iso-8859-1?Q?Dpt/rZpJZyVGjhOZ7xg0wrziy+DBgyuEw5GdhQmuDRVTQYRJJrl0vYVsHW?= =?iso-8859-1?Q?tJ0n6DaqYWvhKpFHkZhMgFZPuaJoIj+czMT7AHPFlt2+19HeArdrUE+YMl?= =?iso-8859-1?Q?Rj/dhrYKl8s7NUdQkFU/84EyOs5E8SW74l0L3mYctFHDqGDKM2y/gg/RaG?= =?iso-8859-1?Q?jZYXVYAt10kSC1CVc9etzvtgNMEmW+n/JrXOPpLUnegaMaeU0HDoOC2kS0?= =?iso-8859-1?Q?slkM7ayTqGzy+f1g51obwkY39VG83Sja4WfB+RYNvK2Z2+i+Ifzz60b0zN?= =?iso-8859-1?Q?sQokUFh8KjyxU3Bsb7lRzjTiV4L4+UZFtHuOfqzREToDz7MPN6wAbLlXKP?= =?iso-8859-1?Q?wXA0H58t3IeYATK5y5O87ZySx4lqSBM9URUdS48DMLcOg=3D=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: 2bc3mS4YGDX0CR9T4MuiHaBrBd0L3kNX7iLaiup8UBo9+Zu8gQbPDqCPq8p95Uc6wL3/KT94JSKAAJ5qxMLPCIYz3mFEn7+rN0C6/uRwVViPoHuiccrYarOvFZosF1SWlW5Jby2wilJvPATFOEoxnbM45AAeh946LCpTcPTqt/WygWB3KkeuwclLB4E003IZ6bwMkTUpDvdf48/hS0aT8knU/TUpY9tj3mh3sa/hS69TRI7m0x3ORVNiYNF9+KT5wS6M9YitPxOE9wRe3GGhSC5EWBvqOgJ2Zpkm71rGzTbwZ1trHeW+GZ7hSFZUcDQV
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2507; 6:iJ9JX/BBYdYoqyB/cIvZqe6G1yIwBc+O4WKCSKw7WofHHoi6kq6VcotB/Qd/oF37wcJsaAfLmk4U0iCghX7AAysNYL3QxjcERqU01ikc/aIoiHiAkMMgMukdwzBxyiXvSnsXXnoWpnu5+XgaKcL2bKa+6y00RJ39q3TnXD48aMP/+RLCXfMg/ank8fviT4iDNgcwKtWcb5+xd3yuOpb/9mZgCUtB9XZ4sXDuN3RHfsebJGYOAFA+pid4EJhRzWP73DkHokaGO5U6Vf8THSqZg+kzIDjI0jxxJr+PihlbLKpQcnQ1LN7onNK6KCB5xzZT5ecAnMK+rBKjbA2YIB2LNA+vFj9ut7Vn4p9MCCc46RFwfOhLsXmYNjD+0EBXLVjBGSKXVEZ+XK2BweBA6D/RMKdh+2j//iULKdy4iOW6WfMX+96tvtMwsju4SDq1F7zh4AlVWolz4/bdmjAwaIHP8g==; 5:7BTWCyDVqLRHrHvxiGlBEZ63EQ/fs4vVuYxtC/yMVRKUc+H3u5iKLUAK5QukIUQ/VDN2l3WfDOQwXEmXfG3B8c+Dz+VDXL1uo2yHmcFijSxr6uomNDOipKhlmDMbDWvU0alLU08qMDaU8lHbL7Yr0LuaVGf57vYU/JCqFocn7cbjphYi5ugzn9tfBlq+7iJ0R/pdzivWnBE9xIDnLoO7ig==; 7:NFV/Xc83w1Os3fA0iX9AzX9mG2uXyMfdccbela7oodjgcTot7a1jMIC3OLXTYedbObdryUuHon/zi/puzKh3vLHtBEDHSIr07Fde37QbjlnL/FBsYIBpHsoAmvzNAfQ+t/3RU/hvqU7v+l/S2OhX0Q==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2019 18:34:50.9505 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5603849e-c4a9-4b0a-06b7-08d6772a4f06
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR01MB2507
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/wQ3n5hyqkxViBtMWJgRlg6NMIv8>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 18:34:58 -0000

On Thu, Jan 10, 2019 at 12:22:03PM -0600, Adam Roach wrote:
> On 1/10/19 11:26 AM, Dave Crocker wrote:
> > On 1/9/2019 1:12 PM, Kent Watsen wrote:
> > ...
> >> To clarify, the draft uses DNS in two ways:
> >>
> >> 1) the first is for traditional SRV records, for which being under 
> >> _tcp makes sense.
> >
> > +1
> >> 2) the second is for TXT records that, of and in themselves, are not 
> >> describing a TCP service, so much as providing bootstrapping data, 
> >> that may or may not cause the device to initiate a subsequent 
> >> connection (TCP or otherwise). For this case, we also have the _sztp 
> >> record under _tcp, but *should* it be under the TLD instead?
> >
> > Absent deep involvement in the work of the spec, and just basing my 
> > view on the small bits of the spec I've read, I'd suggest dropping use 
> > of _tcp for the TXT and just using _sztp as a globally-scoped attrleaf 
> > node name, registering it in the new attrleaf registry. 
> 
> 
> I don't think this is right. Draft-ietf-netconf-zerotouch is explicitly 
> using DNS-SD procedures [1]. In turn, DNS-SD absolutely mandates the 
> presence of both SRV and TXT records with the same name [2]. So the 
> names need to match.

Whoops, that's totally an error on my part.  If we're explicitly doing
DNS-SD, then there's "nothing to see here".

Sorry for missing that.

-Benjamin

> Dave's assertion that the use of _sztp._tcp... is not under the purview 
> of draft-ietf-dnsop-attrleaf is correct [3]. The assumption in attrleaf 
> is that whatever document ends up registering a global underscored name 
> will provide guidance for those name elements that precede (are lower 
> down in the tree than) the global underscored name.
> 
> In the case of DNS-SD, both the SRV and TXT _tcp global leaf namespace 
> is clearly spelled out to be governed by 
> <http://www.iana.org/assignments/port-numbers> [4][5][6][7].
> 
> In short, unless we're making radical changes to zerotouch so that it no 
> longer uses RFC 6763, there is no valid path forward other than 
> registering a corresponding service in the IANA table cited above (such 
> as "sztp").
> 
> /a
> 
> ____
> [1] draft-ietf-netconf-zerotouch §4.2.1: "Devices claiming to support 
> DNS as a source of bootstrapping data MUST first query for 
> device-specific DNS records using DNS-SD [RFC6763]"
> 
> [2] RFC 6763 §6: "Every DNS-SD service MUST have a TXT record in 
> addition to its SRV record, with the same name"
> 
> [3] draft-ietf-dnsop-attrleaf §2: "Only global underscored names are 
> registered in the IANA Underscore Global table."
> 
> [4] draft-ietf-dnsop-attrleaf §4.3 defers authority for SRV/_tcp to RFC 
> 2782 and authority for TXT/_tcp to RFC 6763.
> 
> [5] RFC 6763 §7: "The first label of the pair is an underscore character 
> followed by the Service Name [RFC6335]."
> 
> [6] RFC 6335 §10, which is too long too reasonably quote here.
> 
> [7] RFC2782 §"The format of the SRV RR"; see definition of "Service", 
> with STD 2/RFC 1700 -> RFC 3232 -> iana.org
> 
> 


From nobody Thu Jan 10 12:09:20 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 48619131008; Thu, 10 Jan 2019 12:09:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.253
X-Spam-Level: 
X-Spam-Status: No, score=-5.253 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 6VxbIBAbPZK0; Thu, 10 Jan 2019 12:09:16 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 2CC9A131007; Thu, 10 Jan 2019 12:09:16 -0800 (PST)
Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0AK6kdm003007; Thu, 10 Jan 2019 12:09:11 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=i5EoRNt8LcCfrH/LM0mXFZiidEyJjyVtz0NKWk5m7sA=; b=cQ7HacHRMrY0zK7hVnmafmoaijgqL6kSVvYlwqa33GNupOTVbmHhmF3pWljI2P+QuEY3 HQqoofxyyW99vS3UwSIa3YvszcCcvRvMeJvbBcsV+fe5iJE6NwYGQOLOuRqTzY+iDM4s ZzUp8tEhihBk68L1pW2aFaUne6mDRUGoz2kNSpE0FHnGM9su6O1z9xT5haBaEhdNkkKj PS6HvdabZuTLEED+XnciApxuIz4MvXQYQ9Xop2Q9+6sQLWZ8DFuy1zSXXlEyLhe9b2MR oYrhJyYutSC60kO+fIeKW4s5ZjZpKYuALY9BkyOI0fshH0K+jY+l6ifksEDMNOJ6cZ3r Vg== 
Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2058.outbound.protection.outlook.com [104.47.36.58]) by mx0a-00273201.pphosted.com with ESMTP id 2px1pyh1eg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 10 Jan 2019 12:09:11 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB4552.namprd05.prod.outlook.com (52.135.203.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.7; Thu, 10 Jan 2019 20:09:08 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1516.015; Thu, 10 Jan 2019 20:09:08 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>, Adam Roach <adam@nostrum.com>
CC: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4CAAacWAIAAD4+AgAADiwD//8aMAA==
Date: Thu, 10 Jan 2019 20:09:08 +0000
Message-ID: <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net>
References: <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu>
In-Reply-To: <20190110183444.GN28515@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB4552; 6:ZT3W5UqKrTWFJgGosAPC55Tl70jxzZq/oAoBx+VbfYVhygKG9yeYN5rVKBvbjMwOCm9vntMs6woc/HEnYkHjEKy0pK3ckjNkRQlixwzHrcWt5Y5cKWSf8DkYGjVCpJdkggDH4XesZ3HF/ZJlT2UO2a75EBmCVQ//3uSs/gKCsH5a4APX1fJYJ8BT/18JCgcYBAF5iXRmlvopKBXpNusi19/+3BbZ76+pUhDE/N0Fs/4hiEMsCYeEv6SI9yXEIZihL5Puz5qZWWOw3N3tn+dat6EirEqg6nXjRQbep4nJMXSSmpLcu485FCrRlT+FO+6f7Zgd/4dqpSl5//zzuAfoF35Wv2NOQbiAd/KI1xU1A7+vkVP1iUpEps0qie38Z52zPf8EZPmZ3uGJoHP3Fa6jteVeeFPf18XKMHjkVE43aurCJ4MA3Ae5idAXj+PTQu7XiT3oUaLcnLnp+reYvbjDXQ==; 5:QR/dhBLXNZTK5Og0qKIJXijMfEjUM4ppm62QnqfApZhlNJ0QDR3YXJ+IeHYQ81G9aepY3rKh9Y9oNb+GhxQrkQUnaE2FTu9OxKeEig1RUoP8wktF3FpHcMNvVIkLeuRS8N3ykgrchZSDv1iZeICn4EfRk/3FQivccC/NztvBPCquQGhXOgVGtbLPlI4gbD1nrN/cyj5BgzVeYEUgRWolSQ==; 7:SZCHnm/vKqWfLO4pYFsqfe5jbOiX6obSvWNQXgFJuq5FDF2ecCa22TEQNmUjVSkbhdsmuwQHgrunftTXym0kPmvxx2SGfIFEDJ878FRy2VczaR3kpbEwEbu0JJR48bPj/j0HNZLW++dI3c74ouJDBw==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: c1a664ca-2cbb-4bbb-672d-08d677377a90
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB4552; 
x-ms-traffictypediagnostic: BYAPR05MB4552:
x-microsoft-antispam-prvs: <BYAPR05MB455257B6F032E6268DB4368DA5840@BYAPR05MB4552.namprd05.prod.outlook.com>
x-forefront-prvs: 0913EA1D60
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(366004)(396003)(346002)(376002)(136003)(199004)(189003)(40224003)(51444003)(229853002)(83716004)(14454004)(316002)(25786009)(71200400001)(71190400001)(58126008)(53936002)(81166006)(567974002)(4326008)(76176011)(8936002)(6486002)(8676002)(478600001)(33656002)(81156014)(86362001)(93886005)(82746002)(2906002)(305945005)(6512007)(66066001)(97736004)(6246003)(54906003)(6506007)(110136005)(5660300001)(6436002)(99286004)(102836004)(36756003)(26005)(2171002)(486006)(7736002)(14444005)(68736007)(6116002)(256004)(3846002)(106356001)(446003)(186003)(105586002)(11346002)(476003)(2616005); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB4552; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: Ov1w4VYk59WFBGcMhsIMiHLf78zD/ANyeLcvVN9uudIEvoMHNZ6LuHFmu+KDIH3wwVxqgZm5loJI6VV9dWGmG7jaw/medLrZw0SwcX9+Tvfeyp8vP9HBo583FJztAor4ioWvNrhK8MYbSOJQV+zzRknkyKrJkOSoWoRoxpWcGuUcl52CvG9Tz7Y0ZYtfzT4Ry/GmmONTeA9SSA0gofrT1/hlb+EyDwBouVFa2asUzmtJQ7KNQDLFsH6BI+KGhd7SBZ4+ZGWeMTHFj+t4/Wvug+IjLgXUyAXv0U1dwat6/WDx3l7vN0SEE/HTf9z5ubfxL7WPBEdBEXYiSuzmqaLbe7y3qeMkfuzQ5R8ltyiSB9onctGWN90VWP7WzjgWT3CJ3rVuu5CStgnbKcRENKJVIQca2HZbpgsKjti1aIirsy9Ct8PtsahmHM+3FWPPIOi4sXtXL4TN+0XhNifcwnOEaQ==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <F5BC4C289819464799B8D2253256AA7F@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: c1a664ca-2cbb-4bbb-672d-08d677377a90
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jan 2019 20:09:08.1213 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4552
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=842 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901100155
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/mpHIjurTY3w0kVc4nxNT9IhoN4Q>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 20:09:18 -0000

Pj4gSSBkb24ndCB0aGluayB0aGlzIGlzIHJpZ2h0LiBEcmFmdC1pZXRmLW5ldGNvbmYtemVyb3Rv
dWNoIGlzIGV4cGxpY2l0bHkgDQo+PiB1c2luZyBETlMtU0QgcHJvY2VkdXJlcyBbMV0uIEluIHR1
cm4sIEROUy1TRCBhYnNvbHV0ZWx5IG1hbmRhdGVzIHRoZSANCj4+IHByZXNlbmNlIG9mIGJvdGgg
U1JWIGFuZCBUWFQgcmVjb3JkcyB3aXRoIHRoZSBzYW1lIG5hbWUgWzJdLiBTbyB0aGUgDQo+PiBu
YW1lcyBuZWVkIHRvIG1hdGNoLg0KPg0KPiBXaG9vcHMsIHRoYXQncyB0b3RhbGx5IGFuIGVycm9y
IG9uIG15IHBhcnQuICBJZiB3ZSdyZSBleHBsaWNpdGx5IGRvaW5nDQo+IEROUy1TRCwgdGhlbiB0
aGVyZSdzICJub3RoaW5nIHRvIHNlZSBoZXJlIi4NCj4NCj4gU29ycnkgZm9yIG1pc3NpbmcgdGhh
dC4NCg0KTm8sIHdhaXQsIEkgdGhpbmsgdGhhdCB0aGUgZHJhZnQncyBzdGF0aW5nIHRoYXQgaXQg
dXNlcyBETlMtU0QgcHJvY2VkdXJlcw0KbWF5IGJlIGluIGVycm9yLiAgSXQgbWlnaHQgYmUgbW9y
ZSBjb3JyZWN0IHRvIHNheSB0aGF0IGl0IHVzZXMgRE5TIGluIHRoZQ0KZm9sbG93aW5nIHR3byBz
ZXBhcmF0ZS9kaXN0aW5jdCB3YXlzIChpbiBvcmRlciBvZiBkZXZpY2UtcHJvY2Vzc2luZyk6DQoN
CiAgIDEpIEEgbG9va3VwIGZvciBkZXZpY2Utc3BlY2lmaWMgZGF0YSAoZm9yIHRoZSBUWFQgUlJz
KQ0KDQogICAgICBDdXJyZW50bHkgaXMgdGhpczo8c2VyaWFsLW51bWJlcj4uX3N6dHAuX3RjcC5l
eGFtcGxlLmNvbQ0KICAgICAgQnV0IG1heWJlIHNob3VsZCBiZTogPHNlcmlhbC1udW1iZXI+Ll9z
enRwLmV4YW1wbGUuY29tID8/Pw0KDQogICAgICBSZXR1cm5zIFRYVCByZWNvcmRzIChubyBTUlYg
cmVjb3Jkcykgc3VwcGx5aW5nIGJvb3RzdHJhcHBpbmcNCiAgICAgIGRhdGEuDQoNCiAgICAgIE9u
bHkgaWYgdGhpcyBsb29rdXAgZmFpbHMgKG5vdCBpbiBhZGRpdGlvbiB0byksIHRoZW4gdGhlIA0K
ICAgICAgZGV2aWNlIG1vdmVzIHRvICgyKSwgaW4gY29uZmxpY3Qgd2l0aCBSRkMgNjc2MyDCpzYu
MyBzYXlzOg0KDQogICAgICAgICJETlMtU0QgdXNlcyBETlMgVFhUIHJlY29yZHMgdG8gc3RvcmUg
YXJiaXRyYXJ5IGtleS92YWx1ZSBwYWlycw0KICAgICAgICAgY29udmV5aW5nICphZGRpdGlvbmFs
KiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbmFtZWQgc2VydmljZS4iDQogICAgICAgIChlbXBoYXNp
cyBtaW5lKQ0KDQoNCiAgIDIpIEEgdHJhZGl0aW9uYWwgU1JWIGxvb2t1cCAocGVyIFJGQyAyNzgy
LCBub3QgRE5TLVNELCByaWdodD8pDQoNCiAgICAgIEV4YW1wbGU6IF9zenB0Ll90Y3AuZXhhbXBs
ZS5jb20NCg0KICAgICAgUmV0dXJucyBTUlYgcmVjb3JkcyAobm8gVFhUIG9yIFBUUiByZWNvcmRz
KSBzdXBwbHlpbmcgDQogICAgICB0cmFkaXRpb25hbCBzZXJ2aWNlIGluZm8gKGFkZHJlc3MsIHBv
cnQsIHByaW9yaXR5LCB3ZWlnaHQpLg0KDQogICAgICBGV0lXLCB0ZWNobmljYWxseSwgU1pUUCBk
ZWZpbmVzIGFuIGFwcGxpY2F0aW9uLWxldmVsIHByb3RvY29sDQogICAgICBvbiB0b3Agb2YgUkVT
VENPTkYsIHdoaWNoIGlzIG9uIHRvcCBvZiBIVFRQUywgYnV0IEkgZG9uJ3QNCiAgICAgIHRoaW5r
IGFueW9uZSBpcyBzdWdnZXN0aW5nIHRoaXM6DQoNCiAgICAgICAgICBfc3p0cC5fcmVzdGNvbmYu
X2h0dHAuX3Rscy5fdGNwLmV4YW1wbGUuY29tICAgOykNCg0KDQpNb3JlIHJlYXNvbnMgd2h5IGl0
IG1heSBiZSBhIG1vcmUgY29ycmVjdCB0byBzYXkgRE5TLVNEIGlzIE5PVCB1c2VkOg0KDQogIDEp
IFRoaXMgZHJhZnQgZG9lc24ndCB1c2UgYW55IFBUUiByZWNvcmRzLCBzaW5jZSBQVFIgcmVjb3Jk
cyANCiAgICAgYXJlIG1vcmUgb3JpZW50ZWQgZm9yIGh1bWFuLWluLXRoZS1sb29wLiAgSW5zdGVh
ZCwgdGhlIGRyYWZ0IA0KICAgICBlZmZlY3RpdmVseSBoYXJkY29kZXMgdGhlIFBUUiByZXNwb25z
ZSB0byBiZSB0aGUgZGV2aWNlJ3MNCiAgICAgc2VyaWFsIG51bWJlci4NCg0KICAgICBGV0lXLCB0
aGlzIHdpdGhpbiBpdHNlbGYgaXMgbGlrZWx5IG5vdCB0aGF0IGJpZyBvZiBhIGRlYWwsIHNpbmNl
IA0KICAgICBSRkMgNjc2MyBhbGxvd3MgdGhhdCB6ZXJvIFBUUiBhcmUgcmV0dXJuZWQuDQoNCg0K
ICAyKSBUaGUgZHJhZnQncyBkZWZpbml0aW9uIG9mIHNvbWUgb2YgdGhlIGNvbnRlbnRzIG9mIHRo
ZSBUWFQgcmVjb3Jkcw0KICAgICBvdmVyYWxwcyB3aXRoIFNSViBpbmZvcm1hdGlvbiwgaW4gY29u
ZmxpY3Qgd2l0aCBSRkMgNjc2MzoNCg0KICAgICBSRkMgNjc2MyDCpzYuMyBzYXlzOg0KDQogICAg
ICAiVGhlIHRhcmdldCBob3N0IG5hbWUgYW5kIFRDUCAob3IgVURQKSBwb3J0IG51bWJlciBvZiB0
aGUgc2VydmljZQ0KICAgICAgIGFyZSBnaXZlbiBpbiB0aGUgU1JWIHJlY29yZC4gIFRoaXMgaW5m
b3JtYXRpb24gLS0gdGFyZ2V0IGhvc3QgDQogICAgICAgbmFtZSBhbmQgcG9ydCBudW1iZXIgLS0g
TVVTVCBOT1QgYmUgZHVwbGljYXRlZCB1c2luZyBrZXkvdmFsdWUNCiAgICAgICBhdHRyaWJ1dGVz
IGluIHRoZSBUWFQgcmVjb3JkLiINCg0KICAgICBCdXQgdGhpcyBpc24ndCB0aGUgY2FzZSBpbiB0
aGlzIGRyYWZ0LiAgSWYgYSBkZXZpY2UgZ2V0cyBhIGRldmljZS0NCiAgICAgc3BlY2lmaWMgcmVz
cG9uc2UgKGkuZS4sIFRYVCBSUnMgZnJvbSA8c24+Ll9zenRwWy5fdGNwXS5leGFtcGxlLmNvbSkN
CiAgICAgdGhlbiBpdCBpcyBOT1Qgc3VwcG9zZWQgdG8gcXVlcnkgZm9yIHRoZSBkZXZpY2UtaW5k
ZXBlbmRlbnQgU1JWDQogICAgIHJlY29yZHMuDQoNCg0KTm90ZSB0aGF0IHRoZSBXRyBkaWRuJ3Qg
a25vdyBhYm91dCBkcmFmdC1pZXRmLWRuc29wLWF0dHJsZWFmIHVudGlsIGp1c3QNCm5vdyBpbiB0
aGUgSUVTRyByZXZpZXcuICBXZSB3ZXJlIHNob2UtaG9ybmluZyBpbiBETlMtU0QgYXMgaXQgdGhl
IGNsb3Nlc3QNCmZpdC4gIEJ1dCBub3cgdGhhdCBkcmFmdC1pZXRmLWRuc29wLWF0dHJsZWFmIGlz
IGJyb3VnaHQgdG8gb3VyIGF0dGVudGlvbiwNCnBlcmhhcHMgaXQgbWFrZXMgbW9yZSBzZW5zZSB0
byBkZWZpbmUgYSB0b3AtbGV2ZWwgIl9zenRwIiBhdHRyaWJ1dGUgZm9yDQp0aGUgZGV2aWNlLXNw
ZWNpZmljIGJvb3RzdHJhcHBpbmcgZGF0YT8NCg0KDQo+PiBJbiBzaG9ydCwgdW5sZXNzIHdlJ3Jl
IG1ha2luZyByYWRpY2FsIGNoYW5nZXMgdG8gemVyb3RvdWNoIHNvIHRoYXQgaXQgbm8gDQo+PiBs
b25nZXIgdXNlcyBSRkMgNjc2MywgdGhlcmUgaXMgbm8gdmFsaWQgcGF0aCBmb3J3YXJkIG90aGVy
IHRoYW4gDQo+PiByZWdpc3RlcmluZyBhIGNvcnJlc3BvbmRpbmcgc2VydmljZSBpbiB0aGUgSUFO
QSB0YWJsZSBjaXRlZCBhYm92ZSAoc3VjaCANCj4+IGFzICJzenRwIikuDQoNClJpZ2h0LCBtYXli
ZSB0aGlzIGRyYWZ0IHNob3VsZG4ndCBzYXkgaXQncyB1c2luZyBSRkMgNjc2Mz8NClRoYXQgc2Fp
ZCwgaGFwcHkgdG8ga2VlcCBpdCBhcyBpcyBhcyB3ZWxsLCBpZiB0aGF0J3Mgb2theS4uLg0KDQpU
aGFua3MsDQpLZW50DQoNCg0KPiAvYQ0KPiANCj4gX19fXw0KPiBbMV0gZHJhZnQtaWV0Zi1uZXRj
b25mLXplcm90b3VjaCDCpzQuMi4xOiAiRGV2aWNlcyBjbGFpbWluZyB0byBzdXBwb3J0IA0KPiBE
TlMgYXMgYSBzb3VyY2Ugb2YgYm9vdHN0cmFwcGluZyBkYXRhIE1VU1QgZmlyc3QgcXVlcnkgZm9y
IA0KPiBkZXZpY2Utc3BlY2lmaWMgRE5TIHJlY29yZHMgdXNpbmcgRE5TLVNEIFtSRkM2NzYzXSIN
Cj4gDQo+IFsyXSBSRkMgNjc2MyDCpzY6ICJFdmVyeSBETlMtU0Qgc2VydmljZSBNVVNUIGhhdmUg
YSBUWFQgcmVjb3JkIGluIA0KPiBhZGRpdGlvbiB0byBpdHMgU1JWIHJlY29yZCwgd2l0aCB0aGUg
c2FtZSBuYW1lIg0KPiANCj4gWzNdIGRyYWZ0LWlldGYtZG5zb3AtYXR0cmxlYWYgwqcyOiAiT25s
eSBnbG9iYWwgdW5kZXJzY29yZWQgbmFtZXMgYXJlIA0KPiByZWdpc3RlcmVkIGluIHRoZSBJQU5B
IFVuZGVyc2NvcmUgR2xvYmFsIHRhYmxlLiINCj4gDQo+IFs0XSBkcmFmdC1pZXRmLWRuc29wLWF0
dHJsZWFmIMKnNC4zIGRlZmVycyBhdXRob3JpdHkgZm9yIFNSVi9fdGNwIHRvIFJGQyANCj4gMjc4
MiBhbmQgYXV0aG9yaXR5IGZvciBUWFQvX3RjcCB0byBSRkMgNjc2My4NCj4gDQo+IFs1XSBSRkMg
Njc2MyDCpzc6ICJUaGUgZmlyc3QgbGFiZWwgb2YgdGhlIHBhaXIgaXMgYW4gdW5kZXJzY29yZSBj
aGFyYWN0ZXIgDQo+IGZvbGxvd2VkIGJ5IHRoZSBTZXJ2aWNlIE5hbWUgW1JGQzYzMzVdLiINCj4g
DQo+IFs2XSBSRkMgNjMzNSDCpzEwLCB3aGljaCBpcyB0b28gbG9uZyB0b28gcmVhc29uYWJseSBx
dW90ZSBoZXJlLg0KPiANCj4gWzddIFJGQzI3ODIgwqciVGhlIGZvcm1hdCBvZiB0aGUgU1JWIFJS
Ijsgc2VlIGRlZmluaXRpb24gb2YgIlNlcnZpY2UiLCANCj4gd2l0aCBTVEQgMi9SRkMgMTcwMCAt
PiBSRkMgMzIzMiAtPiBpYW5hLm9yZw0KPiANCj4gDQoNCg==


From nobody Thu Jan 10 14:00:27 2019
Return-Path: <adam@nostrum.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD90013127E; Thu, 10 Jan 2019 14:00:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.68
X-Spam-Level: 
X-Spam-Status: No, score=-1.68 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=nostrum.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 wpCFXEz_8ePU; Thu, 10 Jan 2019 14:00:24 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 4D0A1131218; Thu, 10 Jan 2019 14:00:24 -0800 (PST)
Received: from Svantevit.roach.at (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id x0AM0CUU013261 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 10 Jan 2019 16:00:14 -0600 (CST) (envelope-from adam@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1547157616; bh=GZ6WbFvhYNjbnQJ6u+TWxv/SjAlUYpXp04ZZ0jRKbaY=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=YIW2sbys3LbIFz6yCvi9EoIY9Fj6HKe3kp90RjGkPnbkQ+URJrfvK2WanNVng/Gx0 56/b+rxYuervjPSFzfDgX0AigT85H9fs7oCAN9mVBmP7U3DLFvTXwynAWnncr1mLFl f+vVuzba8eZxYr9VByaYebFcSBgd/Z1Lp2PQjl5k=
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Svantevit.roach.at
To: Kent Watsen <kwatsen@juniper.net>, Benjamin Kaduk <kaduk@mit.edu>
Cc: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
References: <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net>
From: Adam Roach <adam@nostrum.com>
Message-ID: <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com>
Date: Thu, 10 Jan 2019 16:00:07 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/9J_1gBo0lp63OeZz86Bzb0Y7T-Y>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jan 2019 22:00:26 -0000

On 1/10/19 2:09 PM, Kent Watsen wrote:
>>> I don't think this is right. Draft-ietf-netconf-zerotouch is explicitly
>>> using DNS-SD procedures [1]. In turn, DNS-SD absolutely mandates the
>>> presence of both SRV and TXT records with the same name [2]. So the
>>> names need to match.
>> Whoops, that's totally an error on my part.  If we're explicitly doing
>> DNS-SD, then there's "nothing to see here".
>>
>> Sorry for missing that.
> No, wait, I think that the draft's stating that it uses DNS-SD procedures
> may be in error.  It might be more correct to say that it uses DNS in the
> following two separate/distinct ways (in order of device-processing):
>
>     1) A lookup for device-specific data (for the TXT RRs)
>
>        Currently is this:<serial-number>._sztp._tcp.example.com
>        But maybe should be: <serial-number>._sztp.example.com ???
>
>        Returns TXT records (no SRV records) supplying bootstrapping
>        data.


Aha! Okay, I had missed this in my read of the zeroconf document. I 
think I just saw "DNS-SD" and made certain assumptions. If this is the 
procedure you've specced out, then you can't use a TXT record with the 
_tcp global underscored name (since its use has to be consistent with 
the procedures spelled out in RFC 6763). The use of 
<serial-number>._zrtp.example.com would be fine, and would call for a 
registration in the attrleaf registry.


>        Only if this lookup fails (not in addition to), then the
>        device moves to (2), in conflict with RFC 6763 Â§6.3 says:
>
>          "DNS-SD uses DNS TXT records to store arbitrary key/value pairs
>           conveying *additional* information about the named service."
>          (emphasis mine)
>
>
>     2) A traditional SRV lookup (per RFC 2782, not DNS-SD, right?)
>
>        Example: _szpt._tcp.example.com
>
>        Returns SRV records (no TXT or PTR records) supplying
>        traditional service info (address, port, priority, weight).


Kind of? The issue here is that 2782 uses normal DNS lookup procedures, 
while zerotouch uses mDNS lookup procedures (if I've read things 
correctly). Doing mDNS with SRV records using _tcp but *not* using 
DNS-SD ends up stepping on DNS-SD's toes, at least a little bit. I 
suppose as long as "szpt" is registered in the service table (which is 
required for 2782 use), there's no practical risk of collisions.


>        FWIW, technically, SZTP defines an application-level protocol
>        on top of RESTCONF, which is on top of HTTPS, but I don't
>        think anyone is suggesting this:
>
>            _sztp._restconf._http._tls._tcp.example.com   ;)


I hate to admit that there's (kind of) precedent there, but it's *bad* 
precedent resulting from a misreading of 2782, and not something I'd 
encourage. :)

<snip>


> Note that the WG didn't know about draft-ietf-dnsop-attrleaf until just
> now in the IESG review.  We were shoe-horning in DNS-SD as it the closest
> fit.  But now that draft-ietf-dnsop-attrleaf is brought to our attention,
> perhaps it makes more sense to define a top-level "_sztp" attribute for
> the device-specific bootstrapping data?


FWIW, before attrleaf, the accepted approach was to land-grab a label 
and naÃ¯vely hope that no one ever tried to grab the same label twice. In 
any case, even with attrleaf (and based on your clarifications above), I 
think the <serial-number>._sztp.example.com formulation for TXT is 
correct. With attrleaf, it's even more clearly so.

All of that said, you'll need to put additional language in here about 
using SRV with mDNS, but *NOT* using DNS-SD procedures. I'd advise 
copying and modifying appropriate passages from DNS-SD as the basis for 
such language. Also, please be certain to be very clear about the 
relationship between this mechanism and DNS-SD.

/a


From nobody Fri Jan 11 10:25:58 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D53EE1286D9; Fri, 11 Jan 2019 10:25:52 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154723115280.21850.8344066934261712419@ietfa.amsl.com>
Date: Fri, 11 Jan 2019 10:25:52 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/TLBcuuG-k3g9zcp9z2CzKH-iQvg>
Subject: [Netconf] I-D Action: draft-ietf-netconf-restconf-notif-12.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 18:25:53 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Dynamic subscription to YANG Events and Datastores over RESTCONF
        Authors         : Eric Voit
                          Reshad Rahman
                          Einar Nilsen-Nygaard
                          Alexander Clemm
                          Andy Bierman
	Filename        : draft-ietf-netconf-restconf-notif-12.txt
	Pages           : 26
	Date            : 2019-01-11

Abstract:
   This document provides a RESTCONF binding to the dynamic subscription
   capability of both subscribed notifications and YANG-Push.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-restconf-notif/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-restconf-notif-12
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-restconf-notif-12

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-restconf-notif-12


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Fri Jan 11 10:29:03 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 470BA1286D9 for <netconf@ietfa.amsl.com>; Fri, 11 Jan 2019 10:29:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 ugRrkt4Xifi3 for <netconf@ietfa.amsl.com>; Fri, 11 Jan 2019 10:29:00 -0800 (PST)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1305127AC2 for <netconf@ietf.org>; Fri, 11 Jan 2019 10:29:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2990; q=dns/txt; s=iport; t=1547231340; x=1548440940; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=81+QD2CYdiQlHm9pT/r1Q4gd+IYrblu9a6gbQg26YVM=; b=W1E/SXuL7eS2UBdoIWuBtlDcnhnRIeq78E1GJ90zeSyh2lLxAs3yxsIj Y8f9BIeCz99IoCLFS0XXPVbymY2pNXKHrWffhHAhjeKue/mHiHWawueIk jlcncQ/TrAQv4KMBMZtl+Vb159y6EhSiP9rB1kMc+tpCc1rvWcm08SkeQ w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0C2AQBh3zhc/4sNJK0
X-IronPort-AV: E=Sophos;i="5.56,466,1539648000"; d="scan'208";a="502532480"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jan 2019 18:29:00 +0000
Received: from XCH-RCD-001.cisco.com (xch-rcd-001.cisco.com [173.37.102.11]) by alln-core-6.cisco.com (8.15.2/8.15.2) with ESMTPS id x0BISxOP018558 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netconf@ietf.org>; Fri, 11 Jan 2019 18:28:59 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-RCD-001.cisco.com (173.37.102.11) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 11 Jan 2019 12:28:59 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Fri, 11 Jan 2019 12:28:59 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] I-D Action: draft-ietf-netconf-restconf-notif-12.txt
Thread-Index: AQHUqdswdQspRP0rJkqk15Y9qsvvr6WqdBUA
Date: Fri, 11 Jan 2019 18:28:59 +0000
Message-ID: <AB6552D2-8A3E-4A2F-9A0A-9D233F386226@cisco.com>
References: <154723115280.21850.8344066934261712419@ietfa.amsl.com>
In-Reply-To: <154723115280.21850.8344066934261712419@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.37]
Content-Type: text/plain; charset="utf-8"
Content-ID: <E8E2D91FD36166438ACA637A811C5996@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.37.102.11, xch-rcd-001.cisco.com
X-Outbound-Node: alln-core-6.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/cAfUhRVncBmsGdfxh2LcDVZZ-xY>
Subject: Re: [Netconf] I-D Action: draft-ietf-netconf-restconf-notif-12.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 18:29:02 -0000

VGhpcyByZXZpc2lvbiBhZGRyZXNzZXMgdGhlIGNvbW1lbnRzIGZyb20gUWluIChzaGVwaGVyZCkg
YW5kIFJvYiAoWUQpLiBTb21lIG9mIHRoZSBkaXNjdXNzaW9ucyB3aXRoIFFpbiB0b29rIHBsYWNl
IG9uIHRoZSBuZXRjb25mLWNoYWlycyBhbGlhcyBidXQgdGhlIGNvbW1lbnRzIHdlcmUgcG9zdGVk
IG9uIG5ldGNvbmYgYWxpYXMuIA0KDQpQbGVhc2UgcmV2aWV3IHRoZSBkaWZmcywgY29uc2Vuc3Vz
IHdpbGwgYmUgYXNzdW1lZCBpZiBubyBvYmplY3Rpb25zIGFyZSByYWlzZWQgYnkgSmFuIDE4dGgu
DQoNClJlZ2FyZHMsDQpSZXNoYWQuDQoNCg0K77u/T24gMjAxOS0wMS0xMSwgMToyNiBQTSwgIk5l
dGNvbmYgb24gYmVoYWxmIG9mIGludGVybmV0LWRyYWZ0c0BpZXRmLm9yZyIgPG5ldGNvbmYtYm91
bmNlc0BpZXRmLm9yZyBvbiBiZWhhbGYgb2YgaW50ZXJuZXQtZHJhZnRzQGlldGYub3JnPiB3cm90
ZToNCg0KICAgIA0KICAgIEEgTmV3IEludGVybmV0LURyYWZ0IGlzIGF2YWlsYWJsZSBmcm9tIHRo
ZSBvbi1saW5lIEludGVybmV0LURyYWZ0cyBkaXJlY3Rvcmllcy4NCiAgICBUaGlzIGRyYWZ0IGlz
IGEgd29yayBpdGVtIG9mIHRoZSBOZXR3b3JrIENvbmZpZ3VyYXRpb24gV0cgb2YgdGhlIElFVEYu
DQogICAgDQogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgOiBEeW5hbWljIHN1YnNjcmlwdGlv
biB0byBZQU5HIEV2ZW50cyBhbmQgRGF0YXN0b3JlcyBvdmVyIFJFU1RDT05GDQogICAgICAgICAg
ICBBdXRob3JzICAgICAgICAgOiBFcmljIFZvaXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJlc2hhZCBSYWhtYW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVpbmFyIE5p
bHNlbi1OeWdhYXJkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGV4YW5kZXIgQ2xl
bW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZHkgQmllcm1hbg0KICAgIAlGaWxl
bmFtZSAgICAgICAgOiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYtMTIudHh0DQog
ICAgCVBhZ2VzICAgICAgICAgICA6IDI2DQogICAgCURhdGUgICAgICAgICAgICA6IDIwMTktMDEt
MTENCiAgICANCiAgICBBYnN0cmFjdDoNCiAgICAgICBUaGlzIGRvY3VtZW50IHByb3ZpZGVzIGEg
UkVTVENPTkYgYmluZGluZyB0byB0aGUgZHluYW1pYyBzdWJzY3JpcHRpb24NCiAgICAgICBjYXBh
YmlsaXR5IG9mIGJvdGggc3Vic2NyaWJlZCBub3RpZmljYXRpb25zIGFuZCBZQU5HLVB1c2guDQog
ICAgDQogICAgDQogICAgVGhlIElFVEYgZGF0YXRyYWNrZXIgc3RhdHVzIHBhZ2UgZm9yIHRoaXMg
ZHJhZnQgaXM6DQogICAgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvZHJhZnQtaWV0
Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLw0KICAgIA0KICAgIFRoZXJlIGFyZSBhbHNvIGh0bWxp
emVkIHZlcnNpb25zIGF2YWlsYWJsZSBhdDoNCiAgICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0
bWwvZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLTEyDQogICAgaHR0cHM6Ly9kYXRh
dHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90
aWYtMTINCiAgICANCiAgICBBIGRpZmYgZnJvbSB0aGUgcHJldmlvdXMgdmVyc2lvbiBpcyBhdmFp
bGFibGUgYXQ6DQogICAgaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjZGlmZj91cmwyPWRyYWZ0LWll
dGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi0xMg0KICAgIA0KICAgIA0KICAgIFBsZWFzZSBub3Rl
IHRoYXQgaXQgbWF5IHRha2UgYSBjb3VwbGUgb2YgbWludXRlcyBmcm9tIHRoZSB0aW1lIG9mIHN1
Ym1pc3Npb24NCiAgICB1bnRpbCB0aGUgaHRtbGl6ZWQgdmVyc2lvbiBhbmQgZGlmZiBhcmUgYXZh
aWxhYmxlIGF0IHRvb2xzLmlldGYub3JnLg0KICAgIA0KICAgIEludGVybmV0LURyYWZ0cyBhcmUg
YWxzbyBhdmFpbGFibGUgYnkgYW5vbnltb3VzIEZUUCBhdDoNCiAgICBmdHA6Ly9mdHAuaWV0Zi5v
cmcvaW50ZXJuZXQtZHJhZnRzLw0KICAgIA0KICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fDQogICAgTmV0Y29uZiBtYWlsaW5nIGxpc3QNCiAgICBOZXRj
b25mQGlldGYub3JnDQogICAgaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9u
ZXRjb25mDQogICAgDQoNCg==


From nobody Fri Jan 11 13:06:18 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D03D6128CE4; Fri, 11 Jan 2019 13:06:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.643
X-Spam-Level: 
X-Spam-Status: No, score=-14.643 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 rce35JfEz5eK; Fri, 11 Jan 2019 13:06:15 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC325128B14; Fri, 11 Jan 2019 13:06:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6258; q=dns/txt; s=iport; t=1547240774; x=1548450374; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=j4uHJzywoOL4M8bLsmM49jRvGvEhLiOFSkKfERJfBOo=; b=N943ugVl1z1LjDKeiyzfZdq6dxl4Gof0dRuqYZJ43ayyJ5lniMzWc6RU D4BN1DmgIZkYds2Wx683bb6xzSOP2E3J8vdpIEFPiou5KG3peOmiKHZBS SATwj2cqsms4UBUy4My9hM/a8WSz8l3aBF8nh+tw+FEf5eqPEm68qxSRI Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AFAACbBDlc/4sNJK1jGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUgMBAQEBAQsBgVopZoECJwqDd5YXg0aUNBSBZwsBARg?= =?us-ascii?q?LhEkCF4ISIjUIDQEDAQECAQECbRwMhUoBAQEDAQEBIRE6CQIFCwIBCBUDAgI?= =?us-ascii?q?JFgcCAgIlCxUQAgQBDQUIgk9LAYF5CA+va4EvhEJAhSkFgQuLNBeBQD+DbjW?= =?us-ascii?q?DHgEBAgEBgSoBEgESJIJygjUiAqEhWgkChxiDT4cSIIFkiFqHP4lwgQiEBos?= =?us-ascii?q?+AhEUgSchAzNlcXAVO4JsglGITIU/QTGIDA0XB4EBgR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,466,1539648000"; d="scan'208";a="507818880"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jan 2019 21:06:13 +0000
Received: from XCH-RTP-004.cisco.com (xch-rtp-004.cisco.com [64.101.220.144]) by alln-core-6.cisco.com (8.15.2/8.15.2) with ESMTPS id x0BL6Dax027430 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 11 Jan 2019 21:06:13 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-004.cisco.com (64.101.220.144) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 11 Jan 2019 16:06:12 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 11 Jan 2019 16:06:12 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, Alexander Clemm <alexander.clemm@huawei.com>
CC: "draft-ietf-netconf-netconf-event-notifications.all@ietf.org" <draft-ietf-netconf-netconf-event-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
Thread-Index: AQHUqDk0MEtk4/aZ2E+MAjzaT3aN2aWnWDMAgAMikDA=
Date: Fri, 11 Jan 2019 21:06:12 +0000
Message-ID: <4507042659b84a01b5738f368edc95e4@XCH-RTP-013.cisco.com>
References: <154705166883.4820.16710277209489694478@ietfa.amsl.com> <B9679402-7DF0-445C-8455-E7FB90A3E9DB@cisco.com>
In-Reply-To: <B9679402-7DF0-445C-8455-E7FB90A3E9DB@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.144, xch-rtp-004.cisco.com
X-Outbound-Node: alln-core-6.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FFB5VGVpxMdI78oKOis2cOzJhHI>
Subject: Re: [Netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 21:06:17 -0000

SGkgUmVzaGFkLA0KDQpUaGFua3MgZm9yIHRoZSByZXZpZXcuICAgU29tZSB0aG91Z2h0cyBpbi1s
aW5lLi4uDQoNCj4gRnJvbTogUmVzaGFkIFJhaG1hbiwgSmFudWFyeSA5LCAyMDE5IDE6NDkgUE0N
Cj4gDQo+IERvbid0IGtub3cgd2h5IG5ld2xpbmVzIGFyZW4ndCBzaG93aW5nIHVwIGluIHRoZSBl
bWFpbCwgaWYgeW91IHdhbnQgYSBuaWNlcg0KPiB2aWV3IChhbHNvIGEgc2xpZ2h0IHJldmlzaW9u
KToNCj4gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvcmV2aWV3LWlldGYtbmV0Y29u
Zi1uZXRjb25mLWV2ZW50LQ0KPiBub3RpZmljYXRpb25zLTE2LXlhbmdkb2N0b3JzLWxjLXJhaG1h
bi0yMDE5LTAxLTA5Lw0KPiANCj4g77u/T24gMjAxOS0wMS0wOSwgMTE6MzQgQU0sICJ5YW5nLWRv
Y3RvcnMgb24gYmVoYWxmIG9mIFJlc2hhZCBSYWhtYW4iIDx5YW5nLQ0KPiBkb2N0b3JzLWJvdW5j
ZXNAaWV0Zi5vcmcgb24gYmVoYWxmIG9mIHJyYWhtYW5AY2lzY28uY29tPiB3cm90ZToNCj4gDQo+
ICAgICBSZXZpZXdlcjogUmVzaGFkIFJhaG1hbg0KPiAgICAgUmV2aWV3IHJlc3VsdDogUmVhZHkg
d2l0aCBJc3N1ZXMNCj4gDQo+ICAgICBZQU5HIERvY3RvciByZXZpZXcgb2YgZHJhZnQtaWV0Zi1u
ZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucy0xNiAoYnkNCj4gICAgIFJlc2hhZCBS
YWhtYW4pDQo+IA0KPiAgICAgTm8gWUFORyBtb2R1bGUgaW4gdGhpcyBkcmFmdCBidXQgdGhlcmUg
YXJlIG51bWVyb3VzIGV4YW1wbGVzIGJhc2VkIG9uDQo+IHRoZSBZQU5HDQo+ICAgICBtb2R1bGVz
IGluIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMgYW5kDQo+ICAg
ICBkcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1wdXNoLiBWYWxpZGF0aW9uIG9mIHRoZSBleGFtcGxl
cyB3YXMgZG9uZSB3aXRoDQo+IHlhbmdsaW50DQo+ICAgICAwLjE2LjU5Lg0KPiANCj4gICAgIFRo
ZSBtYWpvciBpc3N1ZXMgYXJlIHJlbGF0ZWQgdG8gdGhlIGV4YW1wbGVzLCBhbHRob3VnaCBpbiAy
KSBiZWxvdyAgdGhlDQo+ICAgICByb290LWNhdXNlIG1pZ2h0IGJlIHdpdGggdGhlIFlBTkcgbW9k
dWxlIGluDQo+ICAgICBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25z
ICBhbmQgaW4gMykgdGhlcmUgaXMgYW4gaXNzdWUgd2hpY2gNCj4gICAgIGhhcyBhbHJlYWR5IGJl
ZW4gcmVwb3J0ZWQgb24gZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaDogDQo+ICAgICAxKSBU
aGUgIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gcmVxdWVzdCBpbiBGaWd1cmUgMyBmYWlscyB5YW5n
bGludCB2YWxpZGF0aW9uLCB0aGUNCj4gICAgICJzdHJlYW0iIGVsZW1lbnQgaGFzIHRvIGJlIG1v
dmVkIGFmdGVyIHRoZSAic3RyZWFtLXhwYXRoLWZpbHRlciIgZWxlbWVudCwNCj4gICAgICB0aGF0
ICBmaXhlZCB0aGUgZm9sbG93aW5nIGlzc3VlOiBlcnIgOiBJbnZhbGlkIG9yZGVyIG9mIGVsZW1l
bnRzDQo+ICAgICAic3RyZWFtLXhwYXRoLWZpbHRlciIgYW5kICJzdHJlYW0iLg0KPiAgICAgKC9p
ZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczplc3RhYmxpc2gtc3Vic2NyaXB0aW9uL3N0cmVh
bS14cGF0aC1maWx0ZXIpIA0KRG9uZS4NCg0KPiAgICAyKSBUaGUgZXN0YWJsaXNoLXN1YnNjcmlw
dGlvbiBlcnJvciByZXNwb25zZSBpbiBGaWd1cmUgNSBmYWlscyB5YW5nbGludA0KPiAgICAgdmFs
aWRhdGlvbiwgdGhlICJpZCIgZWxlbWVudCBpcyBtaXNzaW5nLiBUaGlzIGlzIGJlY2F1c2UNCj4g
ICAgIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMgaGFzIGxlYWYg
aWQgYXMgbWFuZGF0b3J5IGluDQo+ICAgICBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIG91dHB1dCwg
ZWl0aGVyIHdlIHJlbW92ZSB0aGUgbWFuZGF0b3J5IG9yIHdlDQo+ICAgICByZXNlcnZlIGENCj4g
ICAgIHZhbHVlIGFzIGludmFsaWQgaWQgb3Igd2UgYWRkIGVyciA6IE1pc3NpbmcgcmVxdWlyZWQg
ZWxlbWVudCAiaWQiIGluDQo+ICAgICAiZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiIuDQo+ICAgICAo
L2lldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zOmVzdGFibGlzaC1zdWJzY3JpcHRpb24pDQpU
aGUgaWQgaXMgbWFuZGF0b3J5IGZvciB0aGUgPGVzdGFibGlzaC1zdWJzY3JpcHRpb24+IFJQQyBy
ZXNwb25zZSBvZiB0aGF0IFJQQy4gIEl0IGlzIG5vdCBuZWVkZWQgYXMgcGFydCBvZiB0aGUgZ2Vu
ZXJhbCA8cnBjLWVycm9yPiByZXNwb25zZS4gICBTbyBJIGJlbGlldmUgd2UgYXJlIGdvb2QgaGVy
ZS4gIChOb3RlOiBZYW5nbGludCB3b3VsZCBuZWVkIHRvIGJlIHVwZ3JhZGVkIHRvIGRvIGZhaXJs
eSBjb21wbGV4IFJQQyBjb3JyZWxhdGlvbiB0byBiZSBhYmxlIHRvIGF1dG9tYXRpY2FsbHkgY292
ZXIgc3VjaCBpc3N1ZSB0eXBlcy4pDQoNCj4gICAgIDMpIFRoZSAgbW9kaWZ5LXN1YnNjcmlwdGlv
biByZXF1ZXN0IGluIEZpZ3VyZSA3IGZhaWxzIHlhbmdsaW50IHZhbGlkYXRpb24gDQo+ICAgICBi
ZWNhdXNlIG9mIG1pc3NpbmcgImRhdGFzdG9yZSIgZWxlbWVudC4gZXJyIDogV2hlbiBjb25kaXRp
b24NCj4gICAgICIuLi9pZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczp0YXJnZXQvaWV0Zi15
YW5nLXB1c2g6ZGF0YXN0b3JlIiBub3QNCj4gICAgIHNhdGlzZmllZC4NCj4gICAgICgvaWV0Zi1z
dWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6bW9kaWZ5LXN1YnNjcmlwdGlvbi9pZXRmLXlhbmctcHVz
aDpwZXJpb2RpYykNCj4gICAgIFRoZXJlIGFyZSAyIGNhdXNlcyBoZXJlOiBtaXNzaW5nICJkYXRh
c3RvcmUiIGVsZW1lbnQgYW5kIGluY29ycmVjdCB3aGVuDQo+ICAgICBzdGF0ZW1lbnRzIGluIGRy
YWZ0LWlldGYtbmV0Y29uZi15YW5nLXB1c2ggKGFzIHJlcG9ydGVkIGJ5IEFuZHkgQmllcm1hbiku
DQo+ICAgICBGaXhpbmcgaWV0Zi15YW5nLXB1c2gueWFuZyBhbmQgYWRkaW5nIHRoZSBmb2xsb3dp
bmcgYmVmb3JlIGVsZW1lbnQNCj4gICAgICJkYXRhc3RvcmUteHBhdGgtZmlsdGVyICIgZml4ZWQg
dGhlIGV4YW1wbGUuDQo+ICAgICAgICAgPHlwOmRhdGFzdG9yZQ0KPiAgICAgICAgIHhtbG5zOmRz
PSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOnlhbmc6aWV0Zi0NCj4gICAgICBkYXRhc3RvcmVzIj5k
czpydW5uaW5nPC95cDpkYXRhc3RvcmU+DQpBbGV4IGlzIGdvaW5nIHRvIGJlIG1ha2luZyB0aGUg
Y2hhbmdlIHRvIHRoZSBZQU5HIHB1c2ggZGF0YXN0b3JlIGRyYWZ0cyBzaG9ydGx5IChJIGp1c3Qg
dGFsa2VkIHdpdGggaGltKS4gIEkgYW0gaGFwcHkgdG8gbW9kaWZ5IHRoZSBleGFtcGxlIChpZiBu
ZWNlc3NhcnkpIGJhc2VkIG9uICB0aGUgIndoZW4iIHN0YXRlbWVudCBpbmNvcnBvcmF0ZWQgdW5k
ZXIgdXBkYXRlLXBvbGljeS1tb2RpZmlhYmxlLiAgDQoNCj4gICAgIE1pbm9yIGNvbW1lbnRzIGFu
ZCBuaXRzOg0KPiAgICAgLSBBYnN0cmFjdCBzL1lBTkcgUHVzaC9ZQU5HLVB1c2gvIHNpbmNlIFlB
TkctUHVzaCBpcyB0aGUgdGVybSBpbnRyb2R1Y2VkDQo+IGluDQo+ICAgICBkcmFmdC1pZXRmLW5l
dGNvbmYteWFuZy1wdXNoIA0KRG9uZQ0KDQo+ICAgIEludHJvZHVjdGlvbi4gTGFzdCBzZW50ZW5j
ZSBkb2Vzbid0IHJlYWQgd2VsbCwNCj4gICAgICIuLi5hIFJFU1RDT05GIGNsaWVudCB2aWEgYSBk
eW5hbWljIHN1YnNjcmlwdGlvbi4uLiIgbWF5IG5lZWQgdHdlYWtpbmcgLQ0KVGhhdCB0ZXh0IGhh
cyBiZWVuIHRvdWNoZWQgc28gbWFueSB0aW1lcywgSSBhbSBhZnJhaWQgb2YgdG91Y2hpbmcgaXQg
YWdhaW4uDQoNCj4gICAgIFNlY3Rpb24gNSBzL3Rlcm1pbmF0ZXMvdGVybWluYXRlcywvIA0KRG9u
ZQ0KDQo+ICAgICBTZWN0aW9uIDcgM3JkIGJ1bGxldC4gcy90aGlzIE1BWSBidXQgZG9lcw0KPiAg
ICAgbm90IGhhdmUgdG8gYmUgaW5jbHVkZWQvdGhpcyBNQVkgYmUgaW5jbHVkZWQvPyANCkRvbmUN
Cg0KPiAgICAgU2VjdGlvbiA3DQo+ICAgICBzL2tpbGwtc3Vic2NyaXB0aW9uLWVycm9yL2RlbGV0
ZS1zdWJzY3JpcHRpb24tZXJyb3IvICh0aGFua3MgUm9iKSANCkRvbmUNCg0KPiAgICAgRmlndXJl
IDMsDQo+ICAgICBzdHJlYW0teHBhdGgtZmlsdGVyIHVzZXMgcHJlZml4ICJkcyIgZm9yIGV4YW1w
bGUtZGF0YXN0b3JlLnlhbmcuIFNpbmNlICJkcyIgaXMNCj4gICAgIHVzZWQgYnkgaWV0Zi1kYXRh
c3RvcmVzLnlhbmcsIG1pZ2h0IGJlIGJldHRlciB0byBjaG9vc2UgYW5vdGhlciBwcmVmaXggc3Vj
aA0KPiAgICAgYXMgICJleCINCkRvbmUuDQoNCkkgd2lsbCBwb3N0IGFmdGVyIGEgY291cGxlIGRh
eXMsIG9yIGFmdGVyIHRoZSAid2hlbiIgcXVlc3Rpb24gY2xvc2VzICh3aGF0ZXZlciBjb21lcyBm
aXJzdCkuDQoNCkVyaWMNCg0KPiAgICAgUmVnYXJkcywNCj4gICAgIFJlc2hhZC4NCj4gDQo+IA0K
PiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
ICAgIHlhbmctZG9jdG9ycyBtYWlsaW5nIGxpc3QNCj4gICAgIHlhbmctZG9jdG9yc0BpZXRmLm9y
Zw0KPiAgICAgaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby95YW5nLWRvY3Rv
cnMNCj4gDQoNCg==


From nobody Fri Jan 11 13:59:57 2019
Return-Path: <rrahman@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78B1712896A; Fri, 11 Jan 2019 13:59:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 Y39-7iq64nGk; Fri, 11 Jan 2019 13:59:52 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 80B431200D7; Fri, 11 Jan 2019 13:59:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7234; q=dns/txt; s=iport; t=1547243992; x=1548453592; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=aZatFE1rAEyViX0F6aeUSy6wh/yIEqcbtnOnxczFryU=; b=SIKl+Cr1xixtGoyE91XK3UstFYImJT/BMRbChE63UiPeQnKzTXQ6kZqG d/cIpeQR9plymTumZH0FC8TxQl1SK0fh+bN75ZA96udEr//2N7g5Ts2zV Ls/7NfwKYoXlEX6rw50Xelin+e3NIpcbb4Q3oY5WG13WAO7zAYvn3UQvY o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AFAACZEDlc/4cNJK1jGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUgMBAQEBAQsBgVopZoECJwqDd5VxJZd6FIFnCwEBGAu?= =?us-ascii?q?EA0YCF4ISIjUIDQEDAQECAQECbRwMhUoBAQEDAQEBIRE6CQIQAgEIFQMCAgk?= =?us-ascii?q?WBwICAiULFRACBAENBYJXSwGBeQgPrzyBL4QuARNAhSkFgQuLNBeBQD+BOAw?= =?us-ascii?q?Tghc1gx4BAQIBAYEqARIBEg0XgnIxggQiAolVl0xaCQKHGINPhxoYgWSIWoc?= =?us-ascii?q?/iXCBCIQGiz4CERSBJyECNGVxcBU7KgGCQYJRgziFFIU/QTGIDA0XB4EBgR8?= =?us-ascii?q?BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,466,1539648000"; d="scan'208";a="501407291"
Received: from alln-core-2.cisco.com ([173.36.13.135]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jan 2019 21:59:51 +0000
Received: from XCH-RCD-013.cisco.com (xch-rcd-013.cisco.com [173.37.102.23]) by alln-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id x0BLxoWj029348 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 11 Jan 2019 21:59:50 GMT
Received: from xch-rcd-005.cisco.com (173.37.102.15) by XCH-RCD-013.cisco.com (173.37.102.23) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 11 Jan 2019 15:59:50 -0600
Received: from xch-rcd-005.cisco.com ([173.37.102.15]) by XCH-RCD-005.cisco.com ([173.37.102.15]) with mapi id 15.00.1395.000; Fri, 11 Jan 2019 15:59:50 -0600
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, Alexander Clemm <alexander.clemm@huawei.com>
CC: "draft-ietf-netconf-netconf-event-notifications.all@ietf.org" <draft-ietf-netconf-netconf-event-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
Thread-Index: AQHUqDk0MEtk4/aZ2E+MAjzaT3aN2aWnWDMAgAMikDCAADd9gA==
Date: Fri, 11 Jan 2019 21:59:50 +0000
Message-ID: <5EBE9EF0-C7AD-4318-B54C-292D99157717@cisco.com>
References: <154705166883.4820.16710277209489694478@ietfa.amsl.com> <B9679402-7DF0-445C-8455-E7FB90A3E9DB@cisco.com> <4507042659b84a01b5738f368edc95e4@XCH-RTP-013.cisco.com>
In-Reply-To: <4507042659b84a01b5738f368edc95e4@XCH-RTP-013.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.82.229.86]
Content-Type: text/plain; charset="utf-8"
Content-ID: <367A4E1B6AF1744598B4D98C5A34F680@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.37.102.23, xch-rcd-013.cisco.com
X-Outbound-Node: alln-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FarEICMheoBD7ic22WNHB6C8_sQ>
Subject: Re: [Netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-netconf-event-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 21:59:56 -0000

SGkgRXJpYywNCg0KQWxsIGdvb2QuIEZvciBpc3N1ZSAjMiBiZWxvdywgTWljaGFsIGNvbmZpcm1l
ZCB0aGF0IHlhbmdsaW50IGRvZXNuJ3QgaGFuZGxlIHJwYy1lcnJvciwgc28gdGhlcmUncyBubyBp
c3N1ZSBpbiB0aGUgZHJhZnQgYXMgeW91IG1lbnRpb25lZC4NCmh0dHBzOi8vZ2l0aHViLmNvbS9D
RVNORVQvbGlieWFuZy9pc3N1ZXMvNjk2DQoNClJlZ2FyZHMsDQpSZXNoYWQuDQoNCg0K77u/T24g
MjAxOS0wMS0xMSwgNDowNiBQTSwgIkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29t
PiB3cm90ZToNCg0KICAgIEhpIFJlc2hhZCwNCiAgICANCiAgICBUaGFua3MgZm9yIHRoZSByZXZp
ZXcuICAgU29tZSB0aG91Z2h0cyBpbi1saW5lLi4uDQogICAgDQogICAgPiBGcm9tOiBSZXNoYWQg
UmFobWFuLCBKYW51YXJ5IDksIDIwMTkgMTo0OSBQTQ0KICAgID4gDQogICAgPiBEb24ndCBrbm93
IHdoeSBuZXdsaW5lcyBhcmVuJ3Qgc2hvd2luZyB1cCBpbiB0aGUgZW1haWwsIGlmIHlvdSB3YW50
IGEgbmljZXINCiAgICA+IHZpZXcgKGFsc28gYSBzbGlnaHQgcmV2aXNpb24pOg0KICAgID4gaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvcmV2aWV3LWlldGYtbmV0Y29uZi1uZXRjb25m
LWV2ZW50LQ0KICAgID4gbm90aWZpY2F0aW9ucy0xNi15YW5nZG9jdG9ycy1sYy1yYWhtYW4tMjAx
OS0wMS0wOS8NCiAgICA+IA0KICAgID4gT24gMjAxOS0wMS0wOSwgMTE6MzQgQU0sICJ5YW5nLWRv
Y3RvcnMgb24gYmVoYWxmIG9mIFJlc2hhZCBSYWhtYW4iIDx5YW5nLQ0KICAgID4gZG9jdG9ycy1i
b3VuY2VzQGlldGYub3JnIG9uIGJlaGFsZiBvZiBycmFobWFuQGNpc2NvLmNvbT4gd3JvdGU6DQog
ICAgPiANCiAgICA+ICAgICBSZXZpZXdlcjogUmVzaGFkIFJhaG1hbg0KICAgID4gICAgIFJldmll
dyByZXN1bHQ6IFJlYWR5IHdpdGggSXNzdWVzDQogICAgPiANCiAgICA+ICAgICBZQU5HIERvY3Rv
ciByZXZpZXcgb2YgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9u
cy0xNiAoYnkNCiAgICA+ICAgICBSZXNoYWQgUmFobWFuKQ0KICAgID4gDQogICAgPiAgICAgTm8g
WUFORyBtb2R1bGUgaW4gdGhpcyBkcmFmdCBidXQgdGhlcmUgYXJlIG51bWVyb3VzIGV4YW1wbGVz
IGJhc2VkIG9uDQogICAgPiB0aGUgWUFORw0KICAgID4gICAgIG1vZHVsZXMgaW4gZHJhZnQtaWV0
Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucyBhbmQNCiAgICA+ICAgICBkcmFmdC1p
ZXRmLW5ldGNvbmYteWFuZy1wdXNoLiBWYWxpZGF0aW9uIG9mIHRoZSBleGFtcGxlcyB3YXMgZG9u
ZSB3aXRoDQogICAgPiB5YW5nbGludA0KICAgID4gICAgIDAuMTYuNTkuDQogICAgPiANCiAgICA+
ICAgICBUaGUgbWFqb3IgaXNzdWVzIGFyZSByZWxhdGVkIHRvIHRoZSBleGFtcGxlcywgYWx0aG91
Z2ggaW4gMikgYmVsb3cgIHRoZQ0KICAgID4gICAgIHJvb3QtY2F1c2UgbWlnaHQgYmUgd2l0aCB0
aGUgWUFORyBtb2R1bGUgaW4NCiAgICA+ICAgICBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJl
ZC1ub3RpZmljYXRpb25zICBhbmQgaW4gMykgdGhlcmUgaXMgYW4gaXNzdWUgd2hpY2gNCiAgICA+
ICAgICBoYXMgYWxyZWFkeSBiZWVuIHJlcG9ydGVkIG9uIGRyYWZ0LWlldGYtbmV0Y29uZi15YW5n
LXB1c2g6IA0KICAgID4gICAgIDEpIFRoZSAgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiByZXF1ZXN0
IGluIEZpZ3VyZSAzIGZhaWxzIHlhbmdsaW50IHZhbGlkYXRpb24sIHRoZQ0KICAgID4gICAgICJz
dHJlYW0iIGVsZW1lbnQgaGFzIHRvIGJlIG1vdmVkIGFmdGVyIHRoZSAic3RyZWFtLXhwYXRoLWZp
bHRlciIgZWxlbWVudCwNCiAgICA+ICAgICAgdGhhdCAgZml4ZWQgdGhlIGZvbGxvd2luZyBpc3N1
ZTogZXJyIDogSW52YWxpZCBvcmRlciBvZiBlbGVtZW50cw0KICAgID4gICAgICJzdHJlYW0teHBh
dGgtZmlsdGVyIiBhbmQgInN0cmVhbSIuDQogICAgPiAgICAgKC9pZXRmLXN1YnNjcmliZWQtbm90
aWZpY2F0aW9uczplc3RhYmxpc2gtc3Vic2NyaXB0aW9uL3N0cmVhbS14cGF0aC1maWx0ZXIpIA0K
ICAgIERvbmUuDQogICAgDQogICAgPiAgICAyKSBUaGUgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiBl
cnJvciByZXNwb25zZSBpbiBGaWd1cmUgNSBmYWlscyB5YW5nbGludA0KICAgID4gICAgIHZhbGlk
YXRpb24sIHRoZSAiaWQiIGVsZW1lbnQgaXMgbWlzc2luZy4gVGhpcyBpcyBiZWNhdXNlDQogICAg
PiAgICAgZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucyBoYXMgbGVh
ZiBpZCBhcyBtYW5kYXRvcnkgaW4NCiAgICA+ICAgICBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIG91
dHB1dCwgZWl0aGVyIHdlIHJlbW92ZSB0aGUgbWFuZGF0b3J5IG9yIHdlDQogICAgPiAgICAgcmVz
ZXJ2ZSBhDQogICAgPiAgICAgdmFsdWUgYXMgaW52YWxpZCBpZCBvciB3ZSBhZGQgZXJyIDogTWlz
c2luZyByZXF1aXJlZCBlbGVtZW50ICJpZCIgaW4NCiAgICA+ICAgICAiZXN0YWJsaXNoLXN1YnNj
cmlwdGlvbiIuDQogICAgPiAgICAgKC9pZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczplc3Rh
Ymxpc2gtc3Vic2NyaXB0aW9uKQ0KICAgIFRoZSBpZCBpcyBtYW5kYXRvcnkgZm9yIHRoZSA8ZXN0
YWJsaXNoLXN1YnNjcmlwdGlvbj4gUlBDIHJlc3BvbnNlIG9mIHRoYXQgUlBDLiAgSXQgaXMgbm90
IG5lZWRlZCBhcyBwYXJ0IG9mIHRoZSBnZW5lcmFsIDxycGMtZXJyb3I+IHJlc3BvbnNlLiAgIFNv
IEkgYmVsaWV2ZSB3ZSBhcmUgZ29vZCBoZXJlLiAgKE5vdGU6IFlhbmdsaW50IHdvdWxkIG5lZWQg
dG8gYmUgdXBncmFkZWQgdG8gZG8gZmFpcmx5IGNvbXBsZXggUlBDIGNvcnJlbGF0aW9uIHRvIGJl
IGFibGUgdG8gYXV0b21hdGljYWxseSBjb3ZlciBzdWNoIGlzc3VlIHR5cGVzLikNCiAgICANCiAg
ICA+ICAgICAzKSBUaGUgIG1vZGlmeS1zdWJzY3JpcHRpb24gcmVxdWVzdCBpbiBGaWd1cmUgNyBm
YWlscyB5YW5nbGludCB2YWxpZGF0aW9uIA0KICAgID4gICAgIGJlY2F1c2Ugb2YgbWlzc2luZyAi
ZGF0YXN0b3JlIiBlbGVtZW50LiBlcnIgOiBXaGVuIGNvbmRpdGlvbg0KICAgID4gICAgICIuLi9p
ZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uczp0YXJnZXQvaWV0Zi15YW5nLXB1c2g6ZGF0YXN0
b3JlIiBub3QNCiAgICA+ICAgICBzYXRpc2ZpZWQuDQogICAgPiAgICAgKC9pZXRmLXN1YnNjcmli
ZWQtbm90aWZpY2F0aW9uczptb2RpZnktc3Vic2NyaXB0aW9uL2lldGYteWFuZy1wdXNoOnBlcmlv
ZGljKQ0KICAgID4gICAgIFRoZXJlIGFyZSAyIGNhdXNlcyBoZXJlOiBtaXNzaW5nICJkYXRhc3Rv
cmUiIGVsZW1lbnQgYW5kIGluY29ycmVjdCB3aGVuDQogICAgPiAgICAgc3RhdGVtZW50cyBpbiBk
cmFmdC1pZXRmLW5ldGNvbmYteWFuZy1wdXNoIChhcyByZXBvcnRlZCBieSBBbmR5IEJpZXJtYW4p
Lg0KICAgID4gICAgIEZpeGluZyBpZXRmLXlhbmctcHVzaC55YW5nIGFuZCBhZGRpbmcgdGhlIGZv
bGxvd2luZyBiZWZvcmUgZWxlbWVudA0KICAgID4gICAgICJkYXRhc3RvcmUteHBhdGgtZmlsdGVy
ICIgZml4ZWQgdGhlIGV4YW1wbGUuDQogICAgPiAgICAgICAgIDx5cDpkYXRhc3RvcmUNCiAgICA+
ICAgICAgICAgeG1sbnM6ZHM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6eWFuZzppZXRmLQ0KICAg
ID4gICAgICBkYXRhc3RvcmVzIj5kczpydW5uaW5nPC95cDpkYXRhc3RvcmU+DQogICAgQWxleCBp
cyBnb2luZyB0byBiZSBtYWtpbmcgdGhlIGNoYW5nZSB0byB0aGUgWUFORyBwdXNoIGRhdGFzdG9y
ZSBkcmFmdHMgc2hvcnRseSAoSSBqdXN0IHRhbGtlZCB3aXRoIGhpbSkuICBJIGFtIGhhcHB5IHRv
IG1vZGlmeSB0aGUgZXhhbXBsZSAoaWYgbmVjZXNzYXJ5KSBiYXNlZCBvbiAgdGhlICJ3aGVuIiBz
dGF0ZW1lbnQgaW5jb3Jwb3JhdGVkIHVuZGVyIHVwZGF0ZS1wb2xpY3ktbW9kaWZpYWJsZS4gIA0K
ICAgIA0KICAgID4gICAgIE1pbm9yIGNvbW1lbnRzIGFuZCBuaXRzOg0KICAgID4gICAgIC0gQWJz
dHJhY3Qgcy9ZQU5HIFB1c2gvWUFORy1QdXNoLyBzaW5jZSBZQU5HLVB1c2ggaXMgdGhlIHRlcm0g
aW50cm9kdWNlZA0KICAgID4gaW4NCiAgICA+ICAgICBkcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1w
dXNoIA0KICAgIERvbmUNCiAgICANCiAgICA+ICAgIEludHJvZHVjdGlvbi4gTGFzdCBzZW50ZW5j
ZSBkb2Vzbid0IHJlYWQgd2VsbCwNCiAgICA+ICAgICAiLi4uYSBSRVNUQ09ORiBjbGllbnQgdmlh
IGEgZHluYW1pYyBzdWJzY3JpcHRpb24uLi4iIG1heSBuZWVkIHR3ZWFraW5nIC0NCiAgICBUaGF0
IHRleHQgaGFzIGJlZW4gdG91Y2hlZCBzbyBtYW55IHRpbWVzLCBJIGFtIGFmcmFpZCBvZiB0b3Vj
aGluZyBpdCBhZ2Fpbi4NCiAgICANCiAgICA+ICAgICBTZWN0aW9uIDUgcy90ZXJtaW5hdGVzL3Rl
cm1pbmF0ZXMsLyANCiAgICBEb25lDQogICAgDQogICAgPiAgICAgU2VjdGlvbiA3IDNyZCBidWxs
ZXQuIHMvdGhpcyBNQVkgYnV0IGRvZXMNCiAgICA+ICAgICBub3QgaGF2ZSB0byBiZSBpbmNsdWRl
ZC90aGlzIE1BWSBiZSBpbmNsdWRlZC8/IA0KICAgIERvbmUNCiAgICANCiAgICA+ICAgICBTZWN0
aW9uIDcNCiAgICA+ICAgICBzL2tpbGwtc3Vic2NyaXB0aW9uLWVycm9yL2RlbGV0ZS1zdWJzY3Jp
cHRpb24tZXJyb3IvICh0aGFua3MgUm9iKSANCiAgICBEb25lDQogICAgDQogICAgPiAgICAgRmln
dXJlIDMsDQogICAgPiAgICAgc3RyZWFtLXhwYXRoLWZpbHRlciB1c2VzIHByZWZpeCAiZHMiIGZv
ciBleGFtcGxlLWRhdGFzdG9yZS55YW5nLiBTaW5jZSAiZHMiIGlzDQogICAgPiAgICAgdXNlZCBi
eSBpZXRmLWRhdGFzdG9yZXMueWFuZywgbWlnaHQgYmUgYmV0dGVyIHRvIGNob29zZSBhbm90aGVy
IHByZWZpeCBzdWNoDQogICAgPiAgICAgYXMgICJleCINCiAgICBEb25lLg0KICAgIA0KICAgIEkg
d2lsbCBwb3N0IGFmdGVyIGEgY291cGxlIGRheXMsIG9yIGFmdGVyIHRoZSAid2hlbiIgcXVlc3Rp
b24gY2xvc2VzICh3aGF0ZXZlciBjb21lcyBmaXJzdCkuDQogICAgDQogICAgRXJpYw0KICAgIA0K
ICAgID4gICAgIFJlZ2FyZHMsDQogICAgPiAgICAgUmVzaGFkLg0KICAgID4gDQogICAgPiANCiAg
ICA+ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
ICAgID4gICAgIHlhbmctZG9jdG9ycyBtYWlsaW5nIGxpc3QNCiAgICA+ICAgICB5YW5nLWRvY3Rv
cnNAaWV0Zi5vcmcNCiAgICA+ICAgICBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL3lhbmctZG9jdG9ycw0KICAgID4gDQogICAgDQogICAgDQoNCg==


From nobody Fri Jan 11 14:58:57 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CC3B128CE4; Fri, 11 Jan 2019 14:58:55 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.2
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154724753540.21850.7622554956551415262@ietfa.amsl.com>
Date: Fri, 11 Jan 2019 14:58:55 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/QuZjBgYKiteAYOdaId1grVR1DC4>
Subject: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-28.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 22:58:56 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Secure Zero Touch Provisioning (SZTP)
        Authors         : Kent Watsen
                          Mikael Abrahamsson
                          Ian Farrer
	Filename        : draft-ietf-netconf-zerotouch-28.txt
	Pages           : 97
	Date            : 2019-01-11

Abstract:
   This draft presents a technique to securely provision a networking
   device when it is booting in a factory-default state.  Variations in
   the solution enables it to be used on both public and private
   networks.  The provisioning steps are able to update the boot image,
   commit an initial configuration, and execute arbitrary scripts to
   address auxiliary needs.  The updated device is subsequently able to
   establish secure connections with other systems.  For instance, a
   device may establish NETCONF (RFC 6241) and/or RESTCONF (RFC 8040)
   connections with deployment-specific network management systems.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-zerotouch/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-zerotouch-28

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-zerotouch-28


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Fri Jan 11 15:11:10 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F8AA128B14; Fri, 11 Jan 2019 15:11:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.254
X-Spam-Level: 
X-Spam-Status: No, score=-5.254 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, 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=juniper.net
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 vV1CfltDxSF0; Fri, 11 Jan 2019 15:10:57 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 EDCC1128AFB; Fri, 11 Jan 2019 15:10:56 -0800 (PST)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0BN70w5030209; Fri, 11 Jan 2019 15:10:51 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=GSqah2wMIhkCgejkLCHhmUnh+XAUPqqp+AJU9MqKars=; b=FRJYjokGm/4bfcjRysxje0Sncl0xTKbmmHrumie5uDXU2VZ2rVBf7ArX+TudCrQVTXwB isEVOUr4APSk7L9yS1ufXWcWr8efkztu8nwGe+/zqt+9JofwdPY4dSKAQV+3+jNTZE+q Am4PjDK9KoS2DGHUjX4NhAvKyUtFlubpZkNKG1jCi6TWy0J/V1GblfAAJRusBmBk+I9h AxYzTbIlZ9hwMEj3aVHt6JO6UZ8oeciOX4T89XS8QGdCDoyF5vWWeymuNSNm0zbMzAzF QkVTnNShXUNUxHvdPFqS93tGWmNLjQ8AQxNScSOwOj0VtXDtXBXimeHwsTnbKQQVGhlU Uw== 
Received: from nam04-co1-obe.outbound.protection.outlook.com (mail-co1nam04lp2056.outbound.protection.outlook.com [104.47.45.56]) by mx0a-00273201.pphosted.com with ESMTP id 2pxw8cgmkw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 11 Jan 2019 15:10:51 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB5080.namprd05.prod.outlook.com (20.177.231.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.16; Fri, 11 Jan 2019 23:10:49 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1537.017; Fri, 11 Jan 2019 23:10:49 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Adam Roach <adam@nostrum.com>, Benjamin Kaduk <kaduk@mit.edu>
CC: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4CAAacWAIAAD4+AgAADiwD//8aMAIAActaAgAFSQoA=
Date: Fri, 11 Jan 2019 23:10:48 +0000
Message-ID: <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net>
References: <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com>
In-Reply-To: <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.10]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB5080; 6:eBhSaBf1++A+4yN7jgwHzaIxJ42HivBCtAhxwoOr0tDQmYWl49MYedbDT43RwUp1UhCOvEM1j3fm6LptGvVd0jhuCZjdVKutcr4qWaXmVwC41lg2zvm1cWOyIcP2vAX9pOHDfmjltM1zN+RlAkS8gJ1e2QTatf0yDAYCplAd6mmlYwJiZTpm8EopupTQN4At6eNpAv9bku28OqGD69ke/B1E805RFqpOFszD8KWtWRZ23FWKTe6UKhX+A3wsPsXAPE0QpeZKtfCBZ82ZsFHHzHwLp+Fom1rA9Ej+ulFPWqwOvnNyRL0hMS/9HMuCGyyOj7BqLwoteuhMdNFgc1XPFF5n4gVG9LhGevAeY7xD6EVMCYB4uE6L/qI7quvkClfDgHziFHpM41v3SaAWK96Xe731GASoKpaN7/wZUv4gr43KeCPO05R6Wn+ziexrDhVVpgU/rqpmYZf+L2kfmpK8IQ==; 5:bxDdPT9OcNYx0v7MJB4eNdYuK6ZmUoYLzVe40x4wgtZDkPZ5cQVb810xah0wnx3AmiI1kLGm1F6BsCFG1Rcvruk38psPletxp2SAlEcojWaQdeRcdSnZC8eG1sfHdYdcKgFdJdbv4ouUUMz6cchC1MLij+PMLT6gI+yubSzsECD+x0jScMX5PFSl/o1PFnDGqZHZCtn4T/17Fc9qdzOqJA==; 7:l/VemA9X3vsZXe3prNYBnD2HqdydpBKKijUWEC5CSIfDgevUUWNs/yWqLOrHuVYwypUwE5iRTnmPBH1JxvZXgNorROoYJTIdNXU+/T34o6+bnngScLF5P5Uu81s2XmCirdIi2SViCDCyDwDEzK6IMA==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: ab08fa30-bc9b-42bd-7358-08d6781a065f
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB5080; 
x-ms-traffictypediagnostic: BYAPR05MB5080:
x-microsoft-antispam-prvs: <BYAPR05MB5080EFA941BA9DE1BE649850A5850@BYAPR05MB5080.namprd05.prod.outlook.com>
x-forefront-prvs: 09144DB0F7
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(136003)(39860400002)(346002)(396003)(13464003)(199004)(189003)(51444003)(14454004)(6506007)(102836004)(256004)(53546011)(99286004)(186003)(86362001)(25786009)(6436002)(6486002)(486006)(83716004)(71200400001)(36756003)(6512007)(2906002)(81156014)(66574012)(6306002)(81166006)(8676002)(7736002)(305945005)(11346002)(2616005)(71190400001)(66066001)(478600001)(26005)(446003)(476003)(53936002)(110136005)(68736007)(76176011)(54906003)(6246003)(4326008)(8936002)(58126008)(82746002)(33656002)(966005)(316002)(105586002)(14444005)(93886005)(229853002)(97736004)(5660300001)(2171002)(6116002)(3846002)(106356001); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5080; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: sOexugKPhUCgbGCUTBPk445nFCUb4diz+XBZSggKeT/01iKR3nb1mFOH0OBfvc2HbFcSqzidDyPpzUJEIv0DgtnJdf7SqjojaBwzM/EoFYuwa3CjwhaCGJa1Ep6iom6eKUf0qCzj7Db0Oe2xaTmjGin6iGfBxNPtfbFRiocCOu2b1E0XX9nlk2TBo188Jyfx34cqsP0ymXlcwI5CuDrm5HmPcXAaeKBntZM1oDWEdjxq/ZznKRe+dJHcAFURq56b6HV7mPfRLvz5LMV91NlcnszsknaqeJrBwcQ7+o9gw964n+QQgj9rU2PbOer6RPoFNPHgtJmXj0jol22LN8yEu4M1JH37iNIltgi+tWZVFcimAfxBMHgxelIRzNSBNkfPbs0BwIaRih/vErYDdqkGGs8MBfsd5QTUdjY5288EXv4=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <BC28D8FA7BBA0D48BE95FD6A2CE71CE9@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: ab08fa30-bc9b-42bd-7358-08d6781a065f
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2019 23:10:48.9424 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5080
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-11_12:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901110182
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/sPR53O1RqgCtxqfJZiLa7M9RY38>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Jan 2019 23:11:00 -0000

SGkgQWRhbSwgQmVuamFtaW4sIGFuZCBEYXZlLA0KDQogIEkganVzdCBwb3N0ZWQgLTI4IHRvIGFk
ZHJlc3MgdGhpcyBsYXN0IENPTU1FTlQuDQogIFBsZWFzZSByZXZpZXcgdG8gc2VlIGhvdyBpdCBj
YW4gYmUgaW1wcm92ZWQuDQoNCiAgVGhlIGRyYWZ0IG5vIGxvbmdlciBzYXlzIGl0IHVzZXMgRE5T
LVNEIGFuZCBpdA0KICBub3cgcmVnaXN0ZXJzICJfc3p0cCIgaW4gRE5TIFVuZGVyc2NvcmUgR2xv
YmFsDQogIFNjb3BlZCBFbnRyeSBSZWdpc3RyeS4NCiAgDQogIEhlcmUncyBhIGRpcmVjdCBsaW5r
IHRvIHVwZGF0ZWQvbmV3IHNlY3Rpb25zOg0KICAgLSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0
bWwvZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yOCNzZWN0aW9uLTQuMg0KICAgLSBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yOCNz
ZWN0aW9uLTEwLjcNCg0KDQpBZGFtLA0KDQogIEkgYWRkZWQgdGV4dCBhYm91dCB0aGlzIGRyYWZ0
IG5vdCB1c2luZyBETlMtU0QuDQoNCiAgQWxzbywgYWZ0ZXIgcmV2aWV3aW5nIFJGQzY3NjMsIGNv
cGllZCBvdmVyIHRoZSANCiAgcmVjb21tZW5kYXRpb24gdGhhdCBtRE5TIFNSViByZXNwb25zZXMg
YWxzbyANCiAgaW5jbHVkZSBhZGRyZXNzIChBIGFuZCBBQUFBKSByZWNvcmRzLiAgVGhpcyB3YXMN
CiAgdGhlIG9ubHkgdGhpbmcgSSBjYW4gZmluZCBvZiBtZXJpdCBhZnRlciBzZWFyY2hpbmcNCiAg
Zm9yIGJvdGggdGhlIHN0cmluZ3MgIm11bHRpY2FzdCIgYW5kICJtZG5zIi4gIFdhcw0KICB0aGVy
ZSBzb21ldGhpbmcgZWxzZSB5b3UgaGFkIGluIG1pbmQ/DQoNCg0KVGhhbmtzLA0KS2VudA0KDQoN
Cu+7vy0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBZGFtIFJvYWNoIDxhZGFtQG5v
c3RydW0uY29tPg0KRGF0ZTogVGh1cnNkYXksIEphbnVhcnkgMTAsIDIwMTkgYXQgNTowMCBQTQ0K
VG86IEtlbnQgV2F0c2VuIDxrd2F0c2VuQGp1bmlwZXIubmV0PiwgQmVuamFtaW4gS2FkdWsgPGth
ZHVrQG1pdC5lZHU+DQpDYzogRGF2ZSBDcm9ja2VyIDxkY3JvY2tlckBiYml3Lm5ldD4sIEFsZXhl
eSBNZWxuaWtvdiA8YWFtZWxuaWtvdkBmYXN0bWFpbC5mbT4sIFRoZSBJRVNHIDxpZXNnQGlldGYu
b3JnPiwgImRyYWZ0LWlldGYtbmV0Y29uZi16ZXJvdG91Y2hAaWV0Zi5vcmciIDxkcmFmdC1pZXRm
LW5ldGNvbmYtemVyb3RvdWNoQGlldGYub3JnPiwgIm5ldGNvbmYtY2hhaXJzQGlldGYub3JnIiA8
bmV0Y29uZi1jaGFpcnNAaWV0Zi5vcmc+LCBORVRDT05GIFdvcmtpbmcgR3JvdXAgPG5ldGNvbmZA
aWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW05ldGNvbmZdIEJlbmphbWluIEthZHVrJ3MgRGlzY3Vz
cyBvbiBkcmFmdC1pZXRmLW5ldGNvbmYtemVyb3RvdWNoLTI1OiAod2l0aCBESVNDVVNTIGFuZCBD
T01NRU5UKQ0KDQpPbiAxLzEwLzE5IDI6MDkgUE0sIEtlbnQgV2F0c2VuIHdyb3RlOg0KPj4+IEkg
ZG9uJ3QgdGhpbmsgdGhpcyBpcyByaWdodC4gRHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaCBp
cyBleHBsaWNpdGx5DQo+Pj4gdXNpbmcgRE5TLVNEIHByb2NlZHVyZXMgWzFdLiBJbiB0dXJuLCBE
TlMtU0QgYWJzb2x1dGVseSBtYW5kYXRlcyB0aGUNCj4+PiBwcmVzZW5jZSBvZiBib3RoIFNSViBh
bmQgVFhUIHJlY29yZHMgd2l0aCB0aGUgc2FtZSBuYW1lIFsyXS4gU28gdGhlDQo+Pj4gbmFtZXMg
bmVlZCB0byBtYXRjaC4NCj4+IFdob29wcywgdGhhdCdzIHRvdGFsbHkgYW4gZXJyb3Igb24gbXkg
cGFydC4gIElmIHdlJ3JlIGV4cGxpY2l0bHkgZG9pbmcNCj4+IEROUy1TRCwgdGhlbiB0aGVyZSdz
ICJub3RoaW5nIHRvIHNlZSBoZXJlIi4NCj4+DQo+PiBTb3JyeSBmb3IgbWlzc2luZyB0aGF0Lg0K
PiBObywgd2FpdCwgSSB0aGluayB0aGF0IHRoZSBkcmFmdCdzIHN0YXRpbmcgdGhhdCBpdCB1c2Vz
IEROUy1TRCBwcm9jZWR1cmVzDQo+IG1heSBiZSBpbiBlcnJvci4gIEl0IG1pZ2h0IGJlIG1vcmUg
Y29ycmVjdCB0byBzYXkgdGhhdCBpdCB1c2VzIEROUyBpbiB0aGUNCj4gZm9sbG93aW5nIHR3byBz
ZXBhcmF0ZS9kaXN0aW5jdCB3YXlzIChpbiBvcmRlciBvZiBkZXZpY2UtcHJvY2Vzc2luZyk6DQo+
DQo+ICAgICAxKSBBIGxvb2t1cCBmb3IgZGV2aWNlLXNwZWNpZmljIGRhdGEgKGZvciB0aGUgVFhU
IFJScykNCj4NCj4gICAgICAgIEN1cnJlbnRseSBpcyB0aGlzOjxzZXJpYWwtbnVtYmVyPi5fc3p0
cC5fdGNwLmV4YW1wbGUuY29tDQo+ICAgICAgICBCdXQgbWF5YmUgc2hvdWxkIGJlOiA8c2VyaWFs
LW51bWJlcj4uX3N6dHAuZXhhbXBsZS5jb20gPz8/DQo+DQo+ICAgICAgICBSZXR1cm5zIFRYVCBy
ZWNvcmRzIChubyBTUlYgcmVjb3Jkcykgc3VwcGx5aW5nIGJvb3RzdHJhcHBpbmcNCj4gICAgICAg
IGRhdGEuDQoNCg0KQWhhISBPa2F5LCBJIGhhZCBtaXNzZWQgdGhpcyBpbiBteSByZWFkIG9mIHRo
ZSB6ZXJvY29uZiBkb2N1bWVudC4gSSANCnRoaW5rIEkganVzdCBzYXcgIkROUy1TRCIgYW5kIG1h
ZGUgY2VydGFpbiBhc3N1bXB0aW9ucy4gSWYgdGhpcyBpcyB0aGUgDQpwcm9jZWR1cmUgeW91J3Zl
IHNwZWNjZWQgb3V0LCB0aGVuIHlvdSBjYW4ndCB1c2UgYSBUWFQgcmVjb3JkIHdpdGggdGhlIA0K
X3RjcCBnbG9iYWwgdW5kZXJzY29yZWQgbmFtZSAoc2luY2UgaXRzIHVzZSBoYXMgdG8gYmUgY29u
c2lzdGVudCB3aXRoIA0KdGhlIHByb2NlZHVyZXMgc3BlbGxlZCBvdXQgaW4gUkZDIDY3NjMpLiBU
aGUgdXNlIG9mIA0KPHNlcmlhbC1udW1iZXI+Ll96cnRwLmV4YW1wbGUuY29tIHdvdWxkIGJlIGZp
bmUsIGFuZCB3b3VsZCBjYWxsIGZvciBhIA0KcmVnaXN0cmF0aW9uIGluIHRoZSBhdHRybGVhZiBy
ZWdpc3RyeS4NCg0KDQo+ICAgICAgICBPbmx5IGlmIHRoaXMgbG9va3VwIGZhaWxzIChub3QgaW4g
YWRkaXRpb24gdG8pLCB0aGVuIHRoZQ0KPiAgICAgICAgZGV2aWNlIG1vdmVzIHRvICgyKSwgaW4g
Y29uZmxpY3Qgd2l0aCBSRkMgNjc2MyDCpzYuMyBzYXlzOg0KPg0KPiAgICAgICAgICAiRE5TLVNE
IHVzZXMgRE5TIFRYVCByZWNvcmRzIHRvIHN0b3JlIGFyYml0cmFyeSBrZXkvdmFsdWUgcGFpcnMN
Cj4gICAgICAgICAgIGNvbnZleWluZyAqYWRkaXRpb25hbCogaW5mb3JtYXRpb24gYWJvdXQgdGhl
IG5hbWVkIHNlcnZpY2UuIg0KPiAgICAgICAgICAoZW1waGFzaXMgbWluZSkNCj4NCj4NCj4gICAg
IDIpIEEgdHJhZGl0aW9uYWwgU1JWIGxvb2t1cCAocGVyIFJGQyAyNzgyLCBub3QgRE5TLVNELCBy
aWdodD8pDQo+DQo+ICAgICAgICBFeGFtcGxlOiBfc3pwdC5fdGNwLmV4YW1wbGUuY29tDQo+DQo+
ICAgICAgICBSZXR1cm5zIFNSViByZWNvcmRzIChubyBUWFQgb3IgUFRSIHJlY29yZHMpIHN1cHBs
eWluZw0KPiAgICAgICAgdHJhZGl0aW9uYWwgc2VydmljZSBpbmZvIChhZGRyZXNzLCBwb3J0LCBw
cmlvcml0eSwgd2VpZ2h0KS4NCg0KDQpLaW5kIG9mPyBUaGUgaXNzdWUgaGVyZSBpcyB0aGF0IDI3
ODIgdXNlcyBub3JtYWwgRE5TIGxvb2t1cCBwcm9jZWR1cmVzLCANCndoaWxlIHplcm90b3VjaCB1
c2VzIG1ETlMgbG9va3VwIHByb2NlZHVyZXMgKGlmIEkndmUgcmVhZCB0aGluZ3MgDQpjb3JyZWN0
bHkpLiBEb2luZyBtRE5TIHdpdGggU1JWIHJlY29yZHMgdXNpbmcgX3RjcCBidXQgKm5vdCogdXNp
bmcgDQpETlMtU0QgZW5kcyB1cCBzdGVwcGluZyBvbiBETlMtU0QncyB0b2VzLCBhdCBsZWFzdCBh
IGxpdHRsZSBiaXQuIEkgDQpzdXBwb3NlIGFzIGxvbmcgYXMgInN6cHQiIGlzIHJlZ2lzdGVyZWQg
aW4gdGhlIHNlcnZpY2UgdGFibGUgKHdoaWNoIGlzIA0KcmVxdWlyZWQgZm9yIDI3ODIgdXNlKSwg
dGhlcmUncyBubyBwcmFjdGljYWwgcmlzayBvZiBjb2xsaXNpb25zLg0KDQoNCj4gICAgICAgIEZX
SVcsIHRlY2huaWNhbGx5LCBTWlRQIGRlZmluZXMgYW4gYXBwbGljYXRpb24tbGV2ZWwgcHJvdG9j
b2wNCj4gICAgICAgIG9uIHRvcCBvZiBSRVNUQ09ORiwgd2hpY2ggaXMgb24gdG9wIG9mIEhUVFBT
LCBidXQgSSBkb24ndA0KPiAgICAgICAgdGhpbmsgYW55b25lIGlzIHN1Z2dlc3RpbmcgdGhpczoN
Cj4NCj4gICAgICAgICAgICBfc3p0cC5fcmVzdGNvbmYuX2h0dHAuX3Rscy5fdGNwLmV4YW1wbGUu
Y29tICAgOykNCg0KDQpJIGhhdGUgdG8gYWRtaXQgdGhhdCB0aGVyZSdzIChraW5kIG9mKSBwcmVj
ZWRlbnQgdGhlcmUsIGJ1dCBpdCdzICpiYWQqIA0KcHJlY2VkZW50IHJlc3VsdGluZyBmcm9tIGEg
bWlzcmVhZGluZyBvZiAyNzgyLCBhbmQgbm90IHNvbWV0aGluZyBJJ2QgDQplbmNvdXJhZ2UuIDop
DQoNCjxzbmlwPg0KDQoNCj4gTm90ZSB0aGF0IHRoZSBXRyBkaWRuJ3Qga25vdyBhYm91dCBkcmFm
dC1pZXRmLWRuc29wLWF0dHJsZWFmIHVudGlsIGp1c3QNCj4gbm93IGluIHRoZSBJRVNHIHJldmll
dy4gIFdlIHdlcmUgc2hvZS1ob3JuaW5nIGluIEROUy1TRCBhcyBpdCB0aGUgY2xvc2VzdA0KPiBm
aXQuICBCdXQgbm93IHRoYXQgZHJhZnQtaWV0Zi1kbnNvcC1hdHRybGVhZiBpcyBicm91Z2h0IHRv
IG91ciBhdHRlbnRpb24sDQo+IHBlcmhhcHMgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBkZWZpbmUg
YSB0b3AtbGV2ZWwgIl9zenRwIiBhdHRyaWJ1dGUgZm9yDQo+IHRoZSBkZXZpY2Utc3BlY2lmaWMg
Ym9vdHN0cmFwcGluZyBkYXRhPw0KDQoNCkZXSVcsIGJlZm9yZSBhdHRybGVhZiwgdGhlIGFjY2Vw
dGVkIGFwcHJvYWNoIHdhcyB0byBsYW5kLWdyYWIgYSBsYWJlbCANCmFuZCBuYcOvdmVseSBob3Bl
IHRoYXQgbm8gb25lIGV2ZXIgdHJpZWQgdG8gZ3JhYiB0aGUgc2FtZSBsYWJlbCB0d2ljZS4gSW4g
DQphbnkgY2FzZSwgZXZlbiB3aXRoIGF0dHJsZWFmIChhbmQgYmFzZWQgb24geW91ciBjbGFyaWZp
Y2F0aW9ucyBhYm92ZSksIEkgDQp0aGluayB0aGUgPHNlcmlhbC1udW1iZXI+Ll9zenRwLmV4YW1w
bGUuY29tIGZvcm11bGF0aW9uIGZvciBUWFQgaXMgDQpjb3JyZWN0LiBXaXRoIGF0dHJsZWFmLCBp
dCdzIGV2ZW4gbW9yZSBjbGVhcmx5IHNvLg0KDQpBbGwgb2YgdGhhdCBzYWlkLCB5b3UnbGwgbmVl
ZCB0byBwdXQgYWRkaXRpb25hbCBsYW5ndWFnZSBpbiBoZXJlIGFib3V0IA0KdXNpbmcgU1JWIHdp
dGggbUROUywgYnV0ICpOT1QqIHVzaW5nIEROUy1TRCBwcm9jZWR1cmVzLiBJJ2QgYWR2aXNlIA0K
Y29weWluZyBhbmQgbW9kaWZ5aW5nIGFwcHJvcHJpYXRlIHBhc3NhZ2VzIGZyb20gRE5TLVNEIGFz
IHRoZSBiYXNpcyBmb3IgDQpzdWNoIGxhbmd1YWdlLiBBbHNvLCBwbGVhc2UgYmUgY2VydGFpbiB0
byBiZSB2ZXJ5IGNsZWFyIGFib3V0IHRoZSANCnJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoaXMgbWVj
aGFuaXNtIGFuZCBETlMtU0QuDQoNCi9hDQoNCg0K


From nobody Fri Jan 11 16:54:25 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 87279130E65; Fri, 11 Jan 2019 16:54:17 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 EnfncY-3v5NI; Fri, 11 Jan 2019 16:54:14 -0800 (PST)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-eopbgr760109.outbound.protection.outlook.com [40.107.76.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6CCC5129508; Fri, 11 Jan 2019 16:54:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cplQSBUb6C+KVo88AplI0Yx1FufcOHEXomkl+DDLWkM=; b=F2P/kjbiQwQgYzhML/wJCwffBuibZtd200wsK+omHTwPHrqGw/G5y4MeCFh1Z9T48OJnuF0PiqYCIUhbKw//EvjhWhQImCW1sNuZGATrOCxbt4BF0o7Zu0CFa4iDtFvICYc8YdmhW0Du+dM3p3V1LU2xSkerqCQIRP3Ua15nIV4=
Received: from SN6PR0102CA0023.prod.exchangelabs.com (2603:10b6:805:1::36) by SN6PR01MB4814.prod.exchangelabs.com (2603:10b6:805:d5::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.15; Sat, 12 Jan 2019 00:54:12 +0000
Received: from CO1NAM03FT031.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::205) by SN6PR0102CA0023.outlook.office365.com (2603:10b6:805:1::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.15 via Frontend Transport; Sat, 12 Jan 2019 00:54:12 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT031.mail.protection.outlook.com (10.152.80.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Sat, 12 Jan 2019 00:54:11 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0C0s6nm025943 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 11 Jan 2019 19:54:09 -0500
Date: Fri, 11 Jan 2019 18:54:06 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Kent Watsen <kwatsen@juniper.net>
CC: Adam Roach <adam@nostrum.com>, Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190112005406.GU28515@kduck.mit.edu>
References: <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(396003)(376002)(136003)(39860400002)(346002)(2980300002)(40224003)(51444003)(189003)(199004)(13464003)(53416004)(47776003)(75432002)(104016004)(53546011)(956004)(476003)(486006)(2906002)(2870700001)(88552002)(126002)(5660300001)(86362001)(6916009)(186003)(33656002)(26005)(106466001)(446003)(426003)(11346002)(336012)(8676002)(50466002)(6306002)(55016002)(23676004)(8936002)(1941001)(26826003)(229853002)(305945005)(478600001)(1076003)(66574012)(93886005)(6246003)(6666004)(4326008)(106002)(246002)(36906005)(54906003)(7696005)(58126008)(76176011)(966005)(14444005)(2486003)(356004)(786003)(316002)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR01MB4814; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; CO1NAM03FT031; 1:OhLvm7Ipa6w+bXUDb+nc4zhEfzIGZ6vKyC6Ku0AzSG14af3cRjILoDTmx7nQgYEp1ZhEm47ho6xUWfiFtkSc6QIMsF9cmAqWcBIHv2j6tnyZBJXCtGNEhDvpxhCdjA3P
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 18a987a6-1c39-4145-99f6-08d67828779b
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:SN6PR01MB4814; 
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4814; 3:vw2wgL0Z8oAQRaQuJrOfL3sluDnXFHL8HM9cNP449qm6gHYn3sS6b8SFWcfmm4RkJ+7Nc/Q6farjQz8ERNeygRfpxTZDdvpt+Ui2qryJNJZajbfLnEHDIHDXc6E7PEYDQ9OsU87DJiuxK23jfIspiZfqSO4j7KnD/C53yoAW9AXf5nmFyoQQbx6c9qFLtiGVxumzn29eK6/vAQNwHBibw4LTYjww8orwnoeMf5J97gyelV650Y3yqhq5c9jlHJ19H1j/sYR75XeLu1TZfpwH9w+R7dWBQVDWWMdeoyKRqXl4NM76NhrcrsQzq8a8NcxU+6WQbGkM0aXRohYbqIge5O+nEN1GC/y1xckVqH8WIs64s3N+Z9mz9XQgJt6dYDWO; 25:XCqsrMT8vz06d48tbW4ffV5YwJUGOHEF+4KeSg8wkCOob1870utsbhQs54tNv0ugggrHgnmAy3IrxtDUcaMWP1XTBW+Yig7uhmPQcDC0Uf/WodsSdtWcwxMIE3ZQ3CjJRg3F3y1XlEzJyCKx6/lxGLdkzuBgMro29COJgTMUyzmH8wu6LbvXRj5/aU98zmzzY3fC3YFBs3I9OVgaXs2D9xtVftjruIi7TP3aIm8Z1/m3V0/JRnYUAt7MmXujk6+bOBc12F2ZWsmoh3HhdWfUmSAud4t1dHPBtWVN22XRXFvvtkzej6a/Dc3XPaqv//jlA6ux++oPgHFKSMJe33UYTQ==
X-MS-TrafficTypeDiagnostic: SN6PR01MB4814:
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4814; 31:iKu6xT9GGsEIc5cWqOYDuNcJWwkR1FGBWMcW5MrwhSnCHUENCPtnbeG4mJEfto39rs6OmRtbbk5Ks8s9f5aDWBy01nsF6q2EjxgjZtO2x0Tvx5AFjcHCAKStZ/7vp+lpV3PalsnzrhcgHB0Pp1cF6bB2aA6KxLFAEN3oMwYQTQEr5DSIti2Soh1C26BOWcRVQLYcBmjufsh8pU6WNsvp4Y28jGC8gBSNTzG299R3uRg=; 20:MzSxP0Fi27G5FC0ZVNHL729KDF+nZHUFfU03/zI3TPsSzrSfBBpxOvo4UOQrnnaILkVJjJL+VetLbOwZRNX7DUQzz+oRh9ZbSR/7wu+ONnLGbsLoULuZLk/r7WGVyKZQstwMQJk0Ip4o+dMOI+JB9/dKOkXjNpTPUlRGdO3YZVoA96/R619FXRU1daawujM31neIWpvqcvz+0EgVrM+sTZkLzZpyoAthxFhss1629GNRJiWlTFsV1pAFubxyl5ACh2aIVDBOlW23IAoY81x5VLJQ5BA0fdr+YjrRAW2B4o3Qr/V8axrhsDxpoUvsKIQajP20WU4o6b7ZZfY6/9sVdn4men3G5HQb3yAnBulnWzL/G6mr5RurYinHc1D050KOcGkZ6v8kO8jI+kw1xktxGaB4u3mS8wFw7D1efK6armMPvT1BDG5B8NzTPsYKR+Baz1km29Ee2zcABN4RtnZZkQUifyf9vLsLBrsPqkzG0CCfvCGbNBIEbLSFBXT9kLS+d6CmVUzBaprPBawLfhqk6btWRYsTxgZc5aeCAZeMf8uhKUP9Ly8cGqcN4Vv8hPYyAdT65gTNQDwlA/XqXTRHWiuDe7JWMas8pmox5XOrkj0=
X-Microsoft-Antispam-PRVS: <SN6PR01MB48144ABB597792F33E551251A0860@SN6PR01MB4814.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4814; 4:UmFB5mqzgzV5Ij+zZwEVn0P9y1oSFHu2KhcuZmAxYIV9HnDH/myRJUkT25tzCnTlp6UAgDXjXpoVNjjjIkB+S60hM8UH5iE937SATDAo1Q+gHq9eJK9dr6SFhDdAjd0yRxisQqGrnxS3jjWU3cXlFOfeFqWY6O5Hq1ZxxmTkIuRiyvWul3KM/Zkw3z4sdI6VSRFoUUQSH6bRVsBy/f9kpA55eoHZcHu/Kzf/ICXtQmotiFryO99nxytD1VPlClh5oe1KWKiIArMB8QD7D/ppONM317xxZPczYlGJRpzaswQ=
X-Forefront-PRVS: 0915875B28
X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjZQUjAxTUI0ODE0OzIzOmh6NlFHek5yZFV2MDlmbGZmU0NMTG1kTmh6?= =?utf-8?B?b3c1akp4b3lJMnVUMmFKUkVzMXBna2hrUVIzOFBPVXRTNE1hUVJGMHllVGRj?= =?utf-8?B?SVpDaHo4dE9rc0drWVFnaFd1REhoeWxMaVBUSHprQUdocU5ONHdNNFBQY2Fl?= =?utf-8?B?ck1nWEhtVmwwRG0vWUlPOGR4US9obXRHdzhYYk1LQy95dUhORkRCQ2szTGRK?= =?utf-8?B?RjJYbU5YKzU4c1V4a0hjSU1IU3V2am10OUMrRFBmL0kyUm02Wi9qem5RZUdw?= =?utf-8?B?SVV0U3JkdTk4YzBhOFgrSDhLTGdQU3ZUbHhuRHJ2M2Z0dDBQSDlvV3dSc0JT?= =?utf-8?B?aXFPTldmRUVVT3l5M3I4aDV0YTVvdUJuaXU1OE8zek9Mb3diUzRtSksrcHZH?= =?utf-8?B?RmJ3YytvdUQwNDNvWFp6SThYM2loU0ZSdE1NSTBnd0lvUitjWm93NXJNUHFN?= =?utf-8?B?YzZhdVBTRTEya2lmS3UyZFFyQTd2MlIya1Q5WXQxOU9hZWhkL096MlR6M2Uy?= =?utf-8?B?OVEwWnVNS1pnSkd2SkVOZDM5OU5BM2dwVUtFZHpBSVRCTDZ3Q2UvaFJvZklE?= =?utf-8?B?bUZ6bXZFckFtMklSQ3h5dlNyYXBaQzkxU1RLQXVHZDlmN1ZQZEFCTTZrSDlh?= =?utf-8?B?RUIzNjE5b0ljOUc0VVdrc3N2aDUwWUZaMjUxZjNYNHkxeGNpUDB6RS9MeUY0?= =?utf-8?B?MTBDUWpOOG1EdEw5dDZmYW1xTmg0dnNWejRtb2lMOEtxamNuMHlBSzBBZXg4?= =?utf-8?B?VVI4M3d3Q3c4RG5ieUVPM1psa2JpWmNwV1h6SEZiZWQzcTgvaEx3WFdKUVNk?= =?utf-8?B?Rm1zQUE0Vk9CRHRMdkxRVWdMNlpFUjZmSmwxWjZzb2lJT0FhblpJK2ZHaUFx?= =?utf-8?B?K2Z0SGxHMmNJQkQ3T1htRVA0QnhQRWdWb3o4akVtaHhCR2RDYXJON2prM2s3?= =?utf-8?B?N1lYajhIenl0T0JjTlAzcmpnVWJlUDVOS2U3cm5FKzJiRU5qZ0t5VzFBZ0Zl?= =?utf-8?B?Ri9jY09odWE4TkZkeVhnZVUxM2QybGl3S25EbXdFZGs1OXdxc2JlZnprNzh3?= =?utf-8?B?WmYxclQ4ak8rNS9OMC9pWXdPek9oY0FvZVkvSHE5M2VLYlZKT3BDWUhuQmhq?= =?utf-8?B?R1ZxQWtjWUYrek5uTWt3VEZ6dHhldTlLMkJzSk85cHFQK0N5S1NMZ1I2V3k2?= =?utf-8?B?OVg5cG1yYnllcjVGNGZSM2pLWW94SWJNblNkc0kyY052WDIwYmdkQWlqUHE2?= =?utf-8?B?VjFkMHJYUHJ1MHFYdGVkWjNzakhmeEY3Vm44T0Z3VWFwMGVheUk2Qm1BenB3?= =?utf-8?B?Nmkra25LMWFiTWVTZEVsdVlKdmNtcExHQUlYT0NHNTM5bisyZk90aFNZV0pD?= =?utf-8?B?STB1TFhOK05mZ3lsVzNEMHBPNytSUWJnVE9ubFpHSzRnSUJUOFVsdkJHNDdq?= =?utf-8?B?d1diK1ZURGRCOWZIN3ovMWFmdFJzYW8yQWdWN3NocldxcXpnVnZ1Y1NvUkxI?= =?utf-8?B?RUZaK2lZbmFwUFNad1IvYmhPeWpTaXVDdEhrM21OR2lhR25XZmllbnp6dGha?= =?utf-8?B?MUM5MnVONWxEN2VVQVAxZi9YL0VoZlJZdjFaVWJSWHVXR0paSHVxYlR3ZEwx?= =?utf-8?B?YkpOamo0R3dtb3VBOXlSYVlUZDVUZzVwODRvUjhwS2pERFlvbmN0K0FxY2dW?= =?utf-8?B?cEFWWk1zN0YrL3crSDc2dDZTalRzM0FsU2tPMkNIWXFhZmxab3A3WFFpZ0JR?= =?utf-8?B?azBXZ1dRbnZkSFZhOU4remIzNGEvKzBhaUc0L1hlL3lLQStMV1dXdG90V2N6?= =?utf-8?B?WTRUUXBjTWFwRDBhZ2Roa0FYbWRyUVAzVzBwY3Z0ZDQ3Y00yUGlMZEgzbjQ1?= =?utf-8?Q?kqsC7aCVoPr2l0JaINeTj2oCjWLNx+3W?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: giD+D/MdJFJTyYLkF1oOA+skAzRXk4nW5UxqtNWwUk1yTtkAVNr9wTvm9bnV84TqIlj7NOLhJTe4q7iScPfUNO32P5wGgW561WF5IcqB6i5gzoKlAr7jNOu+pxM7tETLOqrlUH+ZFZcQnBLY0qgOR+OJ7Yn/5vdie0PnFaK1HicAuRI4qh9cfW4BeH5NjclRHy8P1dGJMAl2lrsePsmZBZcIZ//xUsGLdNXM+0UcuxpbWt0HktQVdG1dvFsfMdHDgLT45g1qlTa+GbZoR0aiLEnYhf9ctbOy16QMxLIkKzvgGpNQA//nGYzpnss5XU11xQqqiVA92+qHERbg4I8B2ZZ/bNTk3IadVE6/+9/TG9q4nBkKgwQO5tjEQLdQ374Swm8L/ItoF6g9oHsL/hYJ1iVa/A++X2isLpUa1Bgjjq8=
X-Microsoft-Exchange-Diagnostics: 1; SN6PR01MB4814; 6:EmWy3S8MxawnzGekmyJEm1dGwL2JGJ74DGL1AwVgdXw7HqwHMDUcjbGHiTRXPM5PUN48TymM0kOCPerW1YJ//770Z+VDa9lYLN6WHBXM+Ly7Fp7GlJVapR5KhI59cUdjo7fR9wvIr3wNvWiP3Njq2mzJm0PefmpwTHGL4Ve5ogCiiIUyGpQoFv/OHxwO6jx1e1U3tRzd/fuzH+ffW5N/+dYBSaUq4YzDRq7qSHyECzpUPpCjcuZZJBWyyb3Av/4mCMB/y+dvOJjtdVM+tGB99TGwUQVKQrY3gLC1e/7JIihsn2+o9pBFIeok7kkM54/Uxoa6SHOFKMHow2UiP52+zVKGBFVIWYgPd83RJbN/RHWnqX9FgqVj8EYVGzFIym2lciZj+PbqZyledj5ivFFZJ2/TiMLJG4+XIZwhiorzOD2QlebA4kVyUg7mKCnbMzTsG/ZblTYJcgrgQAu3zYPVlg==; 5:jtfZW9nxXFjBeMTZBvOgzIH9fAylXcfg1lvm8rqsabB8Sg5AA8aZuBBniPNGQRovHwGOxWoU+/R7NtF5c5pU5aD3a8tH8ymYBx2BA3dxsgz7elEmPcasDMqUQ3FJyQ3ESZ+RrYiimAJDb+mObyAsNPncq1ro2XVfcFmwMeXemWZYr0SWCN8jOtASAXvKqSv+aMOguGmeFfb+t3g7LsleqQ==; 7:BUv+qXPyPVsfMXEZPgp1NvTSMvo+g6PM+qgdJ3FxFlsFwr0M1MsJthW2npDOI3mrmBZGEFt5j/6auQHg6kSUpMk0aW4o5rmrSI7Ht3Rycy7aDmCN4jymcf7PITzzDaeOTveFiaq5ty/PDdZNm8eklg==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2019 00:54:11.5214 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 18a987a6-1c39-4145-99f6-08d67828779b
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4814
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/K5beIaX6WI0h2RakpMC_viAgNSM>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 12 Jan 2019 00:54:18 -0000

On Fri, Jan 11, 2019 at 11:10:48PM +0000, Kent Watsen wrote:
> Hi Adam, Benjamin, and Dave,
> 
>   I just posted -28 to address this last COMMENT.
>   Please review to see how it can be improved.
> 
>   The draft no longer says it uses DNS-SD and it
>   now registers "_sztp" in DNS Underscore Global
>   Scoped Entry Registry.
>   
>   Here's a direct link to updated/new sections:
>    - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-4.2
>    - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-10.7

Thanks, this seems to be a fine resolution of the issues.
While looking at the diff, I managed to confuse myself as to where it is
specified how the device serial number is encoded in the identity
certificate (so that we are confident that that encoding is usable as a
DNS label).  Am I correct in assuming that that's in 802.1AR?  (Also, the
URL in the -28 gave me a 404, and I ended up at
https://standards.ieee.org/standard/802_1AR-2018.html by searching.)

-Benjamin

> 
> Adam,
> 
>   I added text about this draft not using DNS-SD.
> 
>   Also, after reviewing RFC6763, copied over the 
>   recommendation that mDNS SRV responses also 
>   include address (A and AAAA) records.  This was
>   the only thing I can find of merit after searching
>   for both the strings "multicast" and "mdns".  Was
>   there something else you had in mind?
> 
> 
> Thanks,
> Kent
> 
> 
> ï»¿-----Original Message-----
> From: Adam Roach <adam@nostrum.com>
> Date: Thursday, January 10, 2019 at 5:00 PM
> To: Kent Watsen <kwatsen@juniper.net>, Benjamin Kaduk <kaduk@mit.edu>
> Cc: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, NETCONF Working Group <netconf@ietf.org>
> Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
> 
> On 1/10/19 2:09 PM, Kent Watsen wrote:
> >>> I don't think this is right. Draft-ietf-netconf-zerotouch is explicitly
> >>> using DNS-SD procedures [1]. In turn, DNS-SD absolutely mandates the
> >>> presence of both SRV and TXT records with the same name [2]. So the
> >>> names need to match.
> >> Whoops, that's totally an error on my part.  If we're explicitly doing
> >> DNS-SD, then there's "nothing to see here".
> >>
> >> Sorry for missing that.
> > No, wait, I think that the draft's stating that it uses DNS-SD procedures
> > may be in error.  It might be more correct to say that it uses DNS in the
> > following two separate/distinct ways (in order of device-processing):
> >
> >     1) A lookup for device-specific data (for the TXT RRs)
> >
> >        Currently is this:<serial-number>._sztp._tcp.example.com
> >        But maybe should be: <serial-number>._sztp.example.com ???
> >
> >        Returns TXT records (no SRV records) supplying bootstrapping
> >        data.
> 
> 
> Aha! Okay, I had missed this in my read of the zeroconf document. I 
> think I just saw "DNS-SD" and made certain assumptions. If this is the 
> procedure you've specced out, then you can't use a TXT record with the 
> _tcp global underscored name (since its use has to be consistent with 
> the procedures spelled out in RFC 6763). The use of 
> <serial-number>._zrtp.example.com would be fine, and would call for a 
> registration in the attrleaf registry.
> 
> 
> >        Only if this lookup fails (not in addition to), then the
> >        device moves to (2), in conflict with RFC 6763 Â§6.3 says:
> >
> >          "DNS-SD uses DNS TXT records to store arbitrary key/value pairs
> >           conveying *additional* information about the named service."
> >          (emphasis mine)
> >
> >
> >     2) A traditional SRV lookup (per RFC 2782, not DNS-SD, right?)
> >
> >        Example: _szpt._tcp.example.com
> >
> >        Returns SRV records (no TXT or PTR records) supplying
> >        traditional service info (address, port, priority, weight).
> 
> 
> Kind of? The issue here is that 2782 uses normal DNS lookup procedures, 
> while zerotouch uses mDNS lookup procedures (if I've read things 
> correctly). Doing mDNS with SRV records using _tcp but *not* using 
> DNS-SD ends up stepping on DNS-SD's toes, at least a little bit. I 
> suppose as long as "szpt" is registered in the service table (which is 
> required for 2782 use), there's no practical risk of collisions.
> 
> 
> >        FWIW, technically, SZTP defines an application-level protocol
> >        on top of RESTCONF, which is on top of HTTPS, but I don't
> >        think anyone is suggesting this:
> >
> >            _sztp._restconf._http._tls._tcp.example.com   ;)
> 
> 
> I hate to admit that there's (kind of) precedent there, but it's *bad* 
> precedent resulting from a misreading of 2782, and not something I'd 
> encourage. :)
> 
> <snip>
> 
> 
> > Note that the WG didn't know about draft-ietf-dnsop-attrleaf until just
> > now in the IESG review.  We were shoe-horning in DNS-SD as it the closest
> > fit.  But now that draft-ietf-dnsop-attrleaf is brought to our attention,
> > perhaps it makes more sense to define a top-level "_sztp" attribute for
> > the device-specific bootstrapping data?
> 
> 
> FWIW, before attrleaf, the accepted approach was to land-grab a label 
> and naÃ¯vely hope that no one ever tried to grab the same label twice. In 
> any case, even with attrleaf (and based on your clarifications above), I 
> think the <serial-number>._sztp.example.com formulation for TXT is 
> correct. With attrleaf, it's even more clearly so.
> 
> All of that said, you'll need to put additional language in here about 
> using SRV with mDNS, but *NOT* using DNS-SD procedures. I'd advise 
> copying and modifying appropriate passages from DNS-SD as the basis for 
> such language. Also, please be certain to be very clear about the 
> relationship between this mechanism and DNS-SD.
> 
> /a
> 
> 


From nobody Mon Jan 14 04:50:39 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A9B50129BBF for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 04:50:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.091
X-Spam-Level: 
X-Spam-Status: No, score=-0.091 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 j29wWHuUWQxP for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 04:50:34 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 E93C8131060 for <netconf@ietf.org>; Mon, 14 Jan 2019 04:50:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:Mime-Version:Reply-To:Message-Id: Date:Subject:To:From:Sender:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=XCXNnEfJDHDiBu98EPyx94TQCDWt6fHkF1lxASQWvPg=; b=G5f/7AVKS5a2EnhE9O5b7ZIf9Y LpPyv4ZYubRyToPVPnhCiArqSkQXpz0boETTLzifun2CjF3rrgQ7jIcjkAMFtldgwZu3EOftfGPuf Pbms9nY7tF8DvtlYm28ii/pB7zQ8H8A7AnHM6ILvcJ6Q31SNuV5gW1VqUaVNTh+3UzOAAEeJ+UXhK lKMg3vMeoGQSnPrjlx/f7XWIHE7zgRSaY9lp79sA0EiWsM1a8uy5UrnCUROKVdvHOUsapXT3jI/T4 MHJtoIHeK7+vQmQz/UT5k9sezzoYtX9yK8oslQQ+G8igwjcbAzT1gzD96yrPA256OWkmV6Ga9cNe4 w8gb/WMQ==;
Received: from [51.52.247.166] (port=49676 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj1hH-00FsDh-PV for netconf@ietf.org; Mon, 14 Jan 2019 12:50:31 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "netconf@ietf.org" <netconf@ietf.org>
Date: Mon, 14 Jan 2019 12:50:38 +0000
Message-Id: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MB1F53A85D-C947-40D0-9D1A-CFDCDC8BD38D"
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Qir0ilcwkK5VGavWef8cI9ebK4M>
Subject: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 12:50:37 -0000

--------=_MB1F53A85D-C947-40D0-9D1A-CFDCDC8BD38D
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi,

No one seems to be responding to my email and proposed erratum around 
the subject of confirmed commits (apart from Martin), but I would really 
like to know it I am missing something here. As far as I can tell, 
session termination during a confirmed commit leads to unpredictable 
behaviour and I would like to know whether anyone is using confirmed 
commits and how (if at all) they address the issues outlined below. My 
assumptions are that locks are used and :writable-running is not 
supported.

If the <candidate> and <running> configuration datastores are locked to 
prevent concurrent access, and a confirmed commit sequence is 
interrupted by the session terminating, the locks will automatically be 
released but the server MUST NOT accept a lock on <running> from any 
session if another session has an ongoing confirmed <commit>. 
Consequently, after session termination no client can acquire a <lock> 
on <running>, not even the one that initiated the confirmed <commit>, 
until after the confirmed <commit> has timed out. However, if the 
confirmed <commit> included the <persist> parameter, the original client 
could still issue a <commit> using the persist-id to complete the 
sequence prior to the timeout, even without a lock.

Of course, the problem now is the race for the new lock on <candidate>. 
If the original client is successful then all is good. But if a new 
client locks <candidate> before the timeout on the confirmed commit, 
whether or not they precede <lock> with <discard-changes>, <candidate> 
will be the same as <running> and the new client will pick up everything 
from the previous session. However, the client won=E2=80=99t be able to loc=
k 
<running> until after the timeout, at which point <running> reverts but 
<candidate> still represents the previous session. If the client tries 
to lock <candidate> after the timeout, <running> will have reverted and 
the lock will only be granted after a <discard-changes> which will cause 
the <candidate> to revert. So, depending on when the lock on <candidate> 
occurs relative to the confirmed commit timeout, the client could be 
editing <candidate> in one of two states. Further, before the timeout on 
the confirmed commit, even if the new client has locked candidate, the 
original client could still issue a confirming commit (they don=E2=80=99t n=
eed a 
lock on <candidate> to do so) which would persistently commit any edits 
made by the new client. NOTE: it is not the use of the persist-id that 
introduces this behaviour; a new client would have the same problem even 
if a confirmed commit was not intended to persist beyond a session 
termination.

If the server also supports the :startup capability then, if the session 
termination was due to the server rebooting, the behaviour above would 
be further complicated by <running> now containing the configuration 
from the <startup> configuration datastore.

Am I right?

Jonathan

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

--------=_MB1F53A85D-C947-40D0-9D1A-CFDCDC8BD38D
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><style>#x52784a52eeec40a0a79281f2226cc36b{
	font-family:'Segoe UI';
	font-size:12pt;
}</style>

<style id=3D"css_styles">
blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; =
padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; =
padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding=
-top: 0px; }
a img { border: 0px; }
li[style=3D'text-align: center;'], li[style=3D'text-align: right;'] {  list=
-style-position: inside;}
body { font-family: Segoe UI; font-size: 12pt;   }
</style>
</head>
<body>Hi,<div><br /></div><div>No one seems to be responding to my email an=
d proposed erratum around the subject of confirmed commits (apart from Mart=
in), but I would really like to know it I am missing something here. As far=
 as I can tell, session termination during a confirmed commit leads to unpr=
edictable behaviour and I would like to know whether anyone is using confir=
med commits and how (if at all) they address the issues outlined below. My =
assumptions are that locks are used and :writable-running is not supported.=
</div><div><br /></div><div>If the &lt;candidate&gt; and &lt;running&gt; co=
nfiguration datastores are locked to prevent concurrent access, and a confi=
rmed commit sequence is interrupted by the session terminating, the locks w=
ill automatically=C2=A0be=C2=A0released but the server MUST NOT accept a lo=
ck on &lt;running&gt; from any session if another session has an ongoing co=
nfirmed &lt;commit&gt;. Consequently, after session termination no client c=
an acquire a &lt;lock&gt; on &lt;running&gt;, not even the one that initiat=
ed the confirmed &lt;commit&gt;, until after the confirmed &lt;commit&gt; h=
as timed out. However, if the confirmed &lt;commit&gt; included the &lt;per=
sist&gt; parameter, the original client could still issue a &lt;commit&gt; =
using the persist-id to complete the sequence prior to the timeout, even wi=
thout a lock.</div><div><br /></div><div>Of course, the problem now is the =
race for the new lock on &lt;candidate&gt;. If the original client is succe=
ssful then all is good. But if a new client locks &lt;candidate&gt; before =
the timeout on the confirmed commit, whether or not they precede &lt;lock&g=
t; with &lt;discard-changes&gt;, &lt;candidate&gt; will be the same as &lt;=
running&gt; and the new client will pick up everything from the previous se=
ssion. However, the client won=E2=80=99t be able to lock &lt;running&gt; un=
til after the timeout, at which point &lt;running&gt; reverts but &lt;candi=
date&gt; still represents the previous session. If the client tries to lock=
 &lt;candidate&gt; after the timeout, &lt;running&gt; will have reverted an=
d the lock will only be granted after a &lt;discard-changes&gt; which will =
cause the &lt;candidate&gt; to revert. So, depending on when the lock on &l=
t;candidate&gt; occurs relative to the confirmed commit timeout, the client=
 could be editing &lt;candidate&gt; in one of two states. Further, before t=
he timeout on the confirmed commit, even if the new client has locked candi=
date, the original client could still issue a confirming commit (they don=
=E2=80=99t need a lock on &lt;candidate&gt; to do so) which would persisten=
tly commit any edits made by the new client. NOTE: it is not the use of the=
 persist-id that introduces this behaviour; a new client would have the sam=
e problem even if a confirmed commit was not intended to persist beyond a s=
ession termination.</div><div><br /></div><div>If the server also supports =
the :startup capability then, if the session termination was due to the ser=
ver rebooting, the behaviour above would be further complicated by &lt;runn=
ing&gt; now containing the configuration from the &lt;startup&gt; configura=
tion datastore.</div><div><br /></div><div>Am I right?</div><div><br /></di=
v><div>Jonathan</div><div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style=3D'border:none; color:#909090; background-color:#B0B0B0; height: =
1px; width: 99%;' />
<table style=3D'border-collapse:collapse;border:none;'>
	<tr>
		<td style=3D'border:none;padding:0px 15px 0px 8px'>
			<a href=3D"https://www.avast.com/antivirus">
				<img border=3D0 src=3D"http://static.avast.com/emails/avast-mail-stamp.=
png" alt=3D"Avast logo" />
			</a>
		</td>
		<td>
			<p style=3D'color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helv=
etica"; font-size:12pt;'>
				This email has been checked for viruses by Avast antivirus software.
				<br><a href=3D"https://www.avast.com/antivirus">www.avast.com</a>
			</p>
		</td>
	</tr>
</table>
<br />
<a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" height=3D"1">=
 </a></div></body></html>
--------=_MB1F53A85D-C947-40D0-9D1A-CFDCDC8BD38D--


From nobody Mon Jan 14 05:23:47 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25BA6131063 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 05:23:46 -0800 (PST)
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, 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 zP-RlwllEgqv for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 05:23:44 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 25E7F131060 for <netconf@ietf.org>; Mon, 14 Jan 2019 05:23:44 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id 3459B1AE0443; Mon, 14 Jan 2019 14:23:43 +0100 (CET)
Date: Mon, 14 Jan 2019 14:23:42 +0100 (CET)
Message-Id: <20190114.142342.615845671480649604.mbj@tail-f.com>
To: jonathan@hansfords.net
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/wCuBzaywWp2OECx3BOUTDLUtkf4>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 13:23:46 -0000

IkpvbmF0aGFuIEhhbnNmb3JkIiA8am9uYXRoYW5AaGFuc2ZvcmRzLm5ldD4gd3JvdGU6DQo+IEhp
LA0KPiANCj4gTm8gb25lIHNlZW1zIHRvIGJlIHJlc3BvbmRpbmcgdG8gbXkgZW1haWwgYW5kIHBy
b3Bvc2VkIGVycmF0dW0gYXJvdW5kDQo+IHRoZSBzdWJqZWN0IG9mIGNvbmZpcm1lZCBjb21taXRz
IChhcGFydCBmcm9tIE1hcnRpbiksIGJ1dCBJIHdvdWxkDQo+IHJlYWxseSBsaWtlIHRvIGtub3cg
aXQgSSBhbSBtaXNzaW5nIHNvbWV0aGluZyBoZXJlLiBBcyBmYXIgYXMgSSBjYW4NCj4gdGVsbCwg
c2Vzc2lvbiB0ZXJtaW5hdGlvbiBkdXJpbmcgYSBjb25maXJtZWQgY29tbWl0IGxlYWRzIHRvDQo+
IHVucHJlZGljdGFibGUgYmVoYXZpb3VyIGFuZCBJIHdvdWxkIGxpa2UgdG8ga25vdyB3aGV0aGVy
IGFueW9uZSBpcw0KPiB1c2luZyBjb25maXJtZWQgY29tbWl0cyBhbmQgaG93IChpZiBhdCBhbGwp
IHRoZXkgYWRkcmVzcyB0aGUgaXNzdWVzDQo+IG91dGxpbmVkIGJlbG93LiBNeSBhc3N1bXB0aW9u
cyBhcmUgdGhhdCBsb2NrcyBhcmUgdXNlZCBhbmQNCj4gOndyaXRhYmxlLXJ1bm5pbmcgaXMgbm90
IHN1cHBvcnRlZC4NCj4gDQo+IElmIHRoZSA8Y2FuZGlkYXRlPiBhbmQgPHJ1bm5pbmc+IGNvbmZp
Z3VyYXRpb24gZGF0YXN0b3JlcyBhcmUgbG9ja2VkDQo+IHRvIHByZXZlbnQgY29uY3VycmVudCBh
Y2Nlc3MsIGFuZCBhIGNvbmZpcm1lZCBjb21taXQgc2VxdWVuY2UgaXMNCj4gaW50ZXJydXB0ZWQg
YnkgdGhlIHNlc3Npb24gdGVybWluYXRpbmcsIHRoZSBsb2NrcyB3aWxsIGF1dG9tYXRpY2FsbHkN
Cj4gYmUgcmVsZWFzZWQgYnV0IHRoZSBzZXJ2ZXIgTVVTVCBOT1QgYWNjZXB0IGEgbG9jayBvbiA8
cnVubmluZz4gZnJvbQ0KPiBhbnkgc2Vzc2lvbiBpZiBhbm90aGVyIHNlc3Npb24gaGFzIGFuIG9u
Z29pbmcgY29uZmlybWVkDQo+IDxjb21taXQ+LiBDb25zZXF1ZW50bHksIGFmdGVyIHNlc3Npb24g
dGVybWluYXRpb24gbm8gY2xpZW50IGNhbg0KPiBhY3F1aXJlIGEgPGxvY2s+IG9uIDxydW5uaW5n
Piwgbm90IGV2ZW4gdGhlIG9uZSB0aGF0IGluaXRpYXRlZCB0aGUNCj4gY29uZmlybWVkIDxjb21t
aXQ+LCB1bnRpbCBhZnRlciB0aGUgY29uZmlybWVkIDxjb21taXQ+IGhhcyB0aW1lZA0KPiBvdXQu
IEhvd2V2ZXIsIGlmIHRoZSBjb25maXJtZWQgPGNvbW1pdD4gaW5jbHVkZWQgdGhlIDxwZXJzaXN0
Pg0KPiBwYXJhbWV0ZXIsIHRoZSBvcmlnaW5hbCBjbGllbnQgY291bGQgc3RpbGwgaXNzdWUgYSA8
Y29tbWl0PiB1c2luZyB0aGUNCj4gcGVyc2lzdC1pZCB0byBjb21wbGV0ZSB0aGUgc2VxdWVuY2Ug
cHJpb3IgdG8gdGhlIHRpbWVvdXQsIGV2ZW4gd2l0aG91dA0KPiBhIGxvY2suDQo+IA0KPiBPZiBj
b3Vyc2UsIHRoZSBwcm9ibGVtIG5vdyBpcyB0aGUgcmFjZSBmb3IgdGhlIG5ldyBsb2NrIG9uDQo+
IDxjYW5kaWRhdGU+Lg0KDQpBY2NvcmRpbmcgdG8gNy41LCBhIGxvY2sgaXMgbm90IGdyYW50ZWQg
aWY6DQoNCiAgICAgICogIFRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBpcyA8Y2FuZGlkYXRlPiwg
aXQgaGFzIGFscmVhZHkgYmVlbg0KICAgICAgICAgbW9kaWZpZWQsIGFuZCB0aGVzZSBjaGFuZ2Vz
IGhhdmUgbm90IGJlZW4gY29tbWl0dGVkIG9yIHJvbGxlZA0KICAgICAgICAgYmFjay4NCg0KICAg
ICAgKiAgVGhlIHRhcmdldCBjb25maWd1cmF0aW9uIGlzIDxydW5uaW5nPiwgYW5kIGFub3RoZXIg
TkVUQ09ORg0KICAgICAgICAgc2Vzc2lvbiBoYXMgYW4gb25nb2luZyBjb25maXJtZWQgY29tbWl0
IChTZWN0aW9uIDguNCkuDQoNClNvIEkgdGhpbmsgdGhhdCBpdCB3aWxsIG5vdCBiZSBwb3NzaWJs
ZSB0byB0YWtlIHRoZSBsb2NrIG9uIGVpdGhlcg0KZGF0YXN0b3JlIGluIHRoaXMgc2l0dWF0aW9u
Lg0KDQoNCi9tYXJ0aW4NCg0KDQo+IElmIHRoZSBvcmlnaW5hbCBjbGllbnQgaXMgc3VjY2Vzc2Z1
bCB0aGVuIGFsbCBpcw0KPiBnb29kLiBCdXQgaWYgYSBuZXcgY2xpZW50IGxvY2tzIDxjYW5kaWRh
dGU+IGJlZm9yZSB0aGUgdGltZW91dCBvbiB0aGUNCj4gY29uZmlybWVkIGNvbW1pdCwgd2hldGhl
ciBvciBub3QgdGhleSBwcmVjZWRlIDxsb2NrPiB3aXRoDQo+IDxkaXNjYXJkLWNoYW5nZXM+LCA8
Y2FuZGlkYXRlPiB3aWxsIGJlIHRoZSBzYW1lIGFzIDxydW5uaW5nPiBhbmQgdGhlDQo+IG5ldyBj
bGllbnQgd2lsbCBwaWNrIHVwIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgcHJldmlvdXMgc2Vzc2lvbi4g
SG93ZXZlciwNCj4gdGhlIGNsaWVudCB3b27igJl0IGJlIGFibGUgdG8gbG9jayA8cnVubmluZz4g
dW50aWwgYWZ0ZXIgdGhlIHRpbWVvdXQsIGF0DQo+IHdoaWNoIHBvaW50IDxydW5uaW5nPiByZXZl
cnRzIGJ1dCA8Y2FuZGlkYXRlPiBzdGlsbCByZXByZXNlbnRzIHRoZQ0KPiBwcmV2aW91cyBzZXNz
aW9uLiBJZiB0aGUgY2xpZW50IHRyaWVzIHRvIGxvY2sgPGNhbmRpZGF0ZT4gYWZ0ZXIgdGhlDQo+
IHRpbWVvdXQsIDxydW5uaW5nPiB3aWxsIGhhdmUgcmV2ZXJ0ZWQgYW5kIHRoZSBsb2NrIHdpbGwg
b25seSBiZQ0KPiBncmFudGVkIGFmdGVyIGEgPGRpc2NhcmQtY2hhbmdlcz4gd2hpY2ggd2lsbCBj
YXVzZSB0aGUgPGNhbmRpZGF0ZT4gdG8NCj4gcmV2ZXJ0LiBTbywgZGVwZW5kaW5nIG9uIHdoZW4g
dGhlIGxvY2sgb24gPGNhbmRpZGF0ZT4gb2NjdXJzIHJlbGF0aXZlDQo+IHRvIHRoZSBjb25maXJt
ZWQgY29tbWl0IHRpbWVvdXQsIHRoZSBjbGllbnQgY291bGQgYmUgZWRpdGluZw0KPiA8Y2FuZGlk
YXRlPiBpbiBvbmUgb2YgdHdvIHN0YXRlcy4gRnVydGhlciwgYmVmb3JlIHRoZSB0aW1lb3V0IG9u
IHRoZQ0KPiBjb25maXJtZWQgY29tbWl0LCBldmVuIGlmIHRoZSBuZXcgY2xpZW50IGhhcyBsb2Nr
ZWQgY2FuZGlkYXRlLCB0aGUNCj4gb3JpZ2luYWwgY2xpZW50IGNvdWxkIHN0aWxsIGlzc3VlIGEg
Y29uZmlybWluZyBjb21taXQgKHRoZXkgZG9u4oCZdCBuZWVkDQo+IGEgbG9jayBvbiA8Y2FuZGlk
YXRlPiB0byBkbyBzbykgd2hpY2ggd291bGQgcGVyc2lzdGVudGx5IGNvbW1pdCBhbnkNCj4gZWRp
dHMgbWFkZSBieSB0aGUgbmV3IGNsaWVudC4gTk9URTogaXQgaXMgbm90IHRoZSB1c2Ugb2YgdGhl
DQo+IHBlcnNpc3QtaWQgdGhhdCBpbnRyb2R1Y2VzIHRoaXMgYmVoYXZpb3VyOyBhIG5ldyBjbGll
bnQgd291bGQgaGF2ZSB0aGUNCj4gc2FtZSBwcm9ibGVtIGV2ZW4gaWYgYSBjb25maXJtZWQgY29t
bWl0IHdhcyBub3QgaW50ZW5kZWQgdG8gcGVyc2lzdA0KPiBiZXlvbmQgYSBzZXNzaW9uIHRlcm1p
bmF0aW9uLg0KPiANCj4gSWYgdGhlIHNlcnZlciBhbHNvIHN1cHBvcnRzIHRoZSA6c3RhcnR1cCBj
YXBhYmlsaXR5IHRoZW4sIGlmIHRoZQ0KPiBzZXNzaW9uIHRlcm1pbmF0aW9uIHdhcyBkdWUgdG8g
dGhlIHNlcnZlciByZWJvb3RpbmcsIHRoZSBiZWhhdmlvdXINCj4gYWJvdmUgd291bGQgYmUgZnVy
dGhlciBjb21wbGljYXRlZCBieSA8cnVubmluZz4gbm93IGNvbnRhaW5pbmcgdGhlDQo+IGNvbmZp
Z3VyYXRpb24gZnJvbSB0aGUgPHN0YXJ0dXA+IGNvbmZpZ3VyYXRpb24gZGF0YXN0b3JlLg0KPiAN
Cj4gQW0gSSByaWdodD8NCj4gDQo+IEpvbmF0aGFuDQo+IA0KPiAtLS0NCj4gVGhpcyBlbWFpbCBo
YXMgYmVlbiBjaGVja2VkIGZvciB2aXJ1c2VzIGJ5IEF2YXN0IGFudGl2aXJ1cyBzb2Z0d2FyZS4N
Cj4gaHR0cHM6Ly93d3cuYXZhc3QuY29tL2FudGl2aXJ1cw0K


From nobody Mon Jan 14 05:51:03 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0CE0131060 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 05:51:01 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 VCe9xsFGgYBX for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 05:50:59 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 46361129A87 for <netconf@ietf.org>; Mon, 14 Jan 2019 05:50:59 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 0767EFB3; Mon, 14 Jan 2019 14:50:58 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id OpFoof9OIGnm; Mon, 14 Jan 2019 14:50:57 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 14:50:57 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id E1F3C20045; Mon, 14 Jan 2019 14:50:57 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id HdZ1bhdRqabv; Mon, 14 Jan 2019 14:50:57 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb03.jacobs.jacobs-university.de [10.70.0.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 6110220046; Mon, 14 Jan 2019 14:50:57 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 14:50:56 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 690183005A2440; Mon, 14 Jan 2019 14:50:56 +0100 (CET)
Date: Mon, 14 Jan 2019 14:50:56 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/5SLOpg5ee_U1wafAkhXnx252gQs>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 13:51:02 -0000

Hi,

I have not yet understood where you see a problem. In general,
<candidate/> contains arbitrary stuff and hence it is the client's
responsibility to clear any arbitrary stuff found in <candidate/>
after obtaining a lock. If does not really matter whether there has
been a failed confirmed commit before or something else. I think the
general safe pattern is:

lock(candidate)
discard_changes()
push_whatever_needed()
commit()
unlock(candidate)

If you do a confirmed commit and the session disappears, then the lock
will disappear as well. But I do not think this creates a race
condition, or I am just not yet seeing it. Perhaps it helps to write
down the sequence of actions that leads to a race.

/js

On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
> Hi,
> 
> No one seems to be responding to my email and proposed erratum around
> the subject of confirmed commits (apart from Martin), but I would really
> like to know it I am missing something here. As far as I can tell,
> session termination during a confirmed commit leads to unpredictable
> behaviour and I would like to know whether anyone is using confirmed
> commits and how (if at all) they address the issues outlined below. My
> assumptions are that locks are used and :writable-running is not
> supported.
> 
> If the <candidate> and <running> configuration datastores are locked to
> prevent concurrent access, and a confirmed commit sequence is
> interrupted by the session terminating, the locks will automatically be
> released but the server MUST NOT accept a lock on <running> from any
> session if another session has an ongoing confirmed <commit>.
> Consequently, after session termination no client can acquire a <lock>
> on <running>, not even the one that initiated the confirmed <commit>,
> until after the confirmed <commit> has timed out. However, if the
> confirmed <commit> included the <persist> parameter, the original client
> could still issue a <commit> using the persist-id to complete the
> sequence prior to the timeout, even without a lock.
> 
> Of course, the problem now is the race for the new lock on <candidate>.
> If the original client is successful then all is good. But if a new
> client locks <candidate> before the timeout on the confirmed commit,
> whether or not they precede <lock> with <discard-changes>, <candidate>
> will be the same as <running> and the new client will pick up everything
> from the previous session. However, the client wonâ€™t be able to lock
> <running> until after the timeout, at which point <running> reverts but
> <candidate> still represents the previous session. If the client tries
> to lock <candidate> after the timeout, <running> will have reverted and
> the lock will only be granted after a <discard-changes> which will cause
> the <candidate> to revert. So, depending on when the lock on <candidate>
> occurs relative to the confirmed commit timeout, the client could be
> editing <candidate> in one of two states. Further, before the timeout on
> the confirmed commit, even if the new client has locked candidate, the
> original client could still issue a confirming commit (they donâ€™t need a
> lock on <candidate> to do so) which would persistently commit any edits
> made by the new client. NOTE: it is not the use of the persist-id that
> introduces this behaviour; a new client would have the same problem even
> if a confirmed commit was not intended to persist beyond a session
> termination.
> 
> If the server also supports the :startup capability then, if the session
> termination was due to the server rebooting, the behaviour above would
> be further complicated by <running> now containing the configuration
> from the <startup> configuration datastore.
> 
> Am I right?
> 
> Jonathan
> 
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus

> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 06:47:13 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EDA1A12D4EC for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 06:47:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level: 
X-Spam-Status: No, score=-1.989 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 JqZ-xQl0ATZs for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 06:47:09 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 3652C128CF2 for <netconf@ietf.org>; Mon, 14 Jan 2019 06:47:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:Mime-Version:Reply-To:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=SIfjJCVnZmYsnoXknW31E4gQ0swyi5/57expjIswMIg=; b=abxqCCrSDOzFdUj6sp31afGqn bE1zqYr+CQ6n+YGye7iiX1kMq/zmUl2swj4wRFEGIYxTbFyLNFeZvUTLSxyVk0+7alAz79YjieaQG iD6aUir1fMs5ZJlwLMiqhePz3z/kgPd2KYa8pYXQkFmE1HFr5Gq294U5nGcNEpCzQibe/nwujC53U nVOHdWWijQuztO5Ie0An5PXdc2wZbfrKKmx08z/VXdF59Ba6NG1W5hQYiLLVbGD+5Dg6QPdpcENeu UK6mFtYjJos5XeNHOYU0UuZiKIdF+R7c4143MqoOmRAIDVARKeq57+5mCNvQ0bMdMYo76D6Dm1s/E 3QcbZ1lvA==;
Received: from [51.52.247.166] (port=50648 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj3W7-00GRHK-MJ for netconf@ietf.org; Mon, 14 Jan 2019 14:47:07 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "netconf@ietf.org" <netconf@ietf.org>
Date: Mon, 14 Jan 2019 14:47:14 +0000
Message-Id: <em074e85b0-0b46-4b04-b6c4-5ea64a0f328b@morpheus>
In-Reply-To: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MB75A471B5-D2C9-4154-AB08-3AF25EFEFCEC"
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/EZN3Sik7Np2fMJUOzcdjThgcRkk>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 14:47:12 -0000

--------=_MB75A471B5-D2C9-4154-AB08-3AF25EFEFCEC
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

RFC 6241, Section 8.2.4.1 states, 'If the running or candidate 
configuration is currently locked by a different session, the <commit> 
operation MUST fail with an <error-tag> value of "in-use".' So if the 
new client acquires a lock on <candidate>, the original client cannot 
<commit> to <running>. So that fixes one of the issues below.

Section 8.3.5.2 states, 'When a client fails with outstanding changes to 
the candidate configuration, recovery can be difficult.  To facilitate 
easy recovery, any outstanding changes are discarded when the lock is 
released, whether explicitly with the <unlock> operation or implicitly 
from session failure.' So this means <candidate> would revert. Section 
8.4.1 also states, 'If the device reboots for any reason before the 
confirm timeout expires, the server MUST restore the configuration to 
its state before the confirmed commit was issued.' However, earlier in 
Section 8.4.1 it states, 'If the session issuing the confirmed commit is 
terminated for any reason before the confirm timeout expires, the server 
MUST restore the configuration to its state before the confirmed commit 
was issued, unless the confirmed commit also included a <persist> 
element.', Section 8.4.5.1 states the persist parameter makes 'the 
confirmed commit survive a session termination, and set a token on the 
ongoing confirmed commit' and its description in Appendix C states, 
'This parameter is used to make a confirmed commit persistent.  A 
persistent confirmed commit is not aborted if the NETCONF session 
terminates.  The only way to abort a persistent confirmed commit is to 
let the timer expire, or to use the <cancel-commit> operation.'

So it is the persist-id that is the cause of all the problems, not just 
the use of confirmed commit as I previously stated. But is there a way 
to resolve the outstanding issues around the use of the persist-id?

Thanks

------ Original Message ------
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "netconf@ietf.org" <netconf@ietf.org>
Sent: 14/01/2019 12:50:38
Subject: [Netconf] Is there a problem with confirmed commits?

>Hi,
>
>No one seems to be responding to my email and proposed erratum around 
>the subject of confirmed commits (apart from Martin), but I would 
>really like to know it I am missing something here. As far as I can 
>tell, session termination during a confirmed commit leads to 
>unpredictable behaviour and I would like to know whether anyone is 
>using confirmed commits and how (if at all) they address the issues 
>outlined below. My assumptions are that locks are used and 
>:writable-running is not supported.
>
>If the <candidate> and <running> configuration datastores are locked to 
>prevent concurrent access, and a confirmed commit sequence is 
>interrupted by the session terminating, the locks will automatically be 
>released but the server MUST NOT accept a lock on <running> from any 
>session if another session has an ongoing confirmed <commit>. 
>Consequently, after session termination no client can acquire a <lock> 
>on <running>, not even the one that initiated the confirmed <commit>, 
>until after the confirmed <commit> has timed out. However, if the 
>confirmed <commit> included the <persist> parameter, the original 
>client could still issue a <commit> using the persist-id to complete 
>the sequence prior to the timeout, even without a lock.
>
>Of course, the problem now is the race for the new lock on <candidate>. 
>If the original client is successful then all is good. But if a new 
>client locks <candidate> before the timeout on the confirmed commit, 
>whether or not they precede <lock> with <discard-changes>, <candidate> 
>will be the same as <running> and the new client will pick up 
>everything from the previous session. However, the client won=E2=80=99t be=
 able 
>to lock <running> until after the timeout, at which point <running> 
>reverts but <candidate> still represents the previous session. If the 
>client tries to lock <candidate> after the timeout, <running> will have 
>reverted and the lock will only be granted after a <discard-changes> 
>which will cause the <candidate> to revert. So, depending on when the 
>lock on <candidate> occurs relative to the confirmed commit timeout, 
>the client could be editing <candidate> in one of two states. Further, 
>before the timeout on the confirmed commit, even if the new client has 
>locked candidate, the original client could still issue a confirming 
>commit (they don=E2=80=99t need a lock on <candidate> to do so) which woul=
d 
>persistently commit any edits made by the new client. NOTE: it is not 
>the use of the persist-id that introduces this behaviour; a new client 
>would have the same problem even if a confirmed commit was not intended 
>to persist beyond a session termination.
>
>If the server also supports the :startup capability then, if the 
>session termination was due to the server rebooting, the behaviour 
>above would be further complicated by <running> now containing the 
>configuration from the <startup> configuration datastore.
>
>Am I right?
>
>Jonathan
>
>
>--------------------------------------------------------------------------=
------
>Avast logo
><https://www.avast.com/antivirus>
>				This email has been checked for viruses by Avast antivirus 
>software. 				
>www.avast.com <https://www.avast.com/antivirus>
>
>
><#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

--------=_MB75A471B5-D2C9-4154-AB08-3AF25EFEFCEC
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><style type=3D"text/css">#x3d3efda91c86479 blockquote.cite2
{margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right: 0p=
x; border-left-width: 1px; border-left-style: solid; border-left-color: rgb=
(204, 204, 204); margin-top: 3px; padding-top: 0px;}
#x3d3efda91c86479 a img
{border: 0px;}
#x3d3efda91c86479
{font-family: 'Segoe UI'; font-size: 12pt;}
</style><style id=3D"css_styles" type=3D"text/css">blockquote.cite { margin=
-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; borde=
r-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px;=
 padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding=
-top: 0px; }
a img { border: 0px; }
li[style=3D'text-align: center;'], li[style=3D'text-align: right;'] {  list=
-style-position: inside;}
body { font-family: Segoe UI; font-size: 12pt;   }</style>


</head>
<body><div>RFC 6241, Section 8.2.4.1 states, 'If the running or candidate c=
onfiguration is currently locked=C2=A0by a different session, the &lt;commi=
t&gt; operation MUST fail with=C2=A0an &lt;error-tag&gt; value of "in-use".=
' So if the new client acquires a lock on &lt;candidate&gt;, the original c=
lient cannot &lt;commit&gt; to &lt;running&gt;. So that fixes one of the is=
sues below.</div><div><br /></div><div>Section 8.3.5.2 states, 'When a clie=
nt fails with outstanding changes to the candidate=C2=A0configuration, reco=
very can be difficult.=C2=A0 To facilitate easy=C2=A0recovery, any outstand=
ing changes are discarded when the lock is=C2=A0released, whether explicitl=
y with the &lt;unlock&gt; operation or=C2=A0implicitly from session failure=
.' So this means &lt;candidate&gt; would revert. Section 8.4.1 also states, =
'If the device reboots for any reason before the confirm timeout=C2=A0expi=
res, the server MUST restore the configuration to its state=C2=A0before the =
confirmed commit was issued.' However, earlier in Section 8.4.1 it states, =
'If the session issuing the confirmed commit is terminated for any=C2=A0re=
ason before the confirm timeout expires, the server MUST restore=C2=A0the c=
onfiguration to its state before the confirmed commit was=C2=A0issued, unle=
ss the confirmed commit also included a &lt;persist&gt;=C2=A0element.', Sec=
tion 8.4.5.1 states the persist parameter makes 'the confirmed commit survi=
ve a session termination, and=C2=A0set a token on the ongoing confirmed com=
mit' and its description in Appendix C states, 'This parameter is used to m=
ake a confirmed commit=C2=A0persistent.=C2=A0 A persistent confirmed commit =
is not aborted=C2=A0if the NETCONF session terminates.=C2=A0 The only way=
 to abort=C2=A0a persistent confirmed commit is to let the timer expire,=C2=
=A0or to use the &lt;cancel-commit&gt; operation.'</div><div><br /></div><d=
iv>So it is the persist-id that is the cause of all the problems, not just=
 the use of confirmed commit as I previously stated. But is there a way to r=
esolve the outstanding issues around the use of the persist-id?</div><div><=
br /></div><div>Thanks</div>
<div><br /></div>
<div>------ Original Message ------</div>
<div>From: "Jonathan Hansford" &lt;<a href=3D"mailto:jonathan@hansfords.net=
">jonathan@hansfords.net</a>&gt;</div>
<div>To: "netconf@ietf.org" &lt;<a href=3D"mailto:netconf@ietf.org">netconf=
@ietf.org</a>&gt;</div>
<div>Sent: 14/01/2019 12:50:38</div>
<div>Subject: [Netconf] Is there a problem with confirmed commits?</div><di=
v><br /></div>
<div id=3D"x3d3efda91c86479"><blockquote cite=3D"em106ef27b-c989-4e0b-b819-=
413fef852d53@morpheus" type=3D"cite" class=3D"cite2">
Hi,<div><br /></div><div>No one seems to be responding to my email and prop=
osed erratum around the subject of confirmed commits (apart from Martin), b=
ut I would really like to know it I am missing something here. As far as I=
 can tell, session termination during a confirmed commit leads to unpredicta=
ble behaviour and I would like to know whether anyone is using confirmed co=
mmits and how (if at all) they address the issues outlined below. My assump=
tions are that locks are used and :writable-running is not supported.</div>=
<div><br /></div><div>If the &lt;candidate&gt; and &lt;running&gt; configur=
ation datastores are locked to prevent concurrent access, and a confirmed c=
ommit sequence is interrupted by the session terminating, the locks will au=
tomatically=C2=A0be=C2=A0released but the server MUST NOT accept a lock on=
 &lt;running&gt; from any session if another session has an ongoing confirme=
d &lt;commit&gt;. Consequently, after session termination no client can acq=
uire a &lt;lock&gt; on &lt;running&gt;, not even the one that initiated the =
confirmed &lt;commit&gt;, until after the confirmed &lt;commit&gt; has tim=
ed out. However, if the confirmed &lt;commit&gt; included the &lt;persist&g=
t; parameter, the original client could still issue a &lt;commit&gt; using=
 the persist-id to complete the sequence prior to the timeout, even without=
 a lock.</div><div><br /></div><div>Of course, the problem now is the race f=
or the new lock on &lt;candidate&gt;. If the original client is successful=
 then all is good. But if a new client locks &lt;candidate&gt; before the ti=
meout on the confirmed commit, whether or not they precede &lt;lock&gt; wit=
h &lt;discard-changes&gt;, &lt;candidate&gt; will be the same as &lt;runnin=
g&gt; and the new client will pick up everything from the previous session. =
However, the client won=E2=80=99t be able to lock &lt;running&gt; until af=
ter the timeout, at which point &lt;running&gt; reverts but &lt;candidate&g=
t; still represents the previous session. If the client tries to lock &lt;c=
andidate&gt; after the timeout, &lt;running&gt; will have reverted and the=
 lock will only be granted after a &lt;discard-changes&gt; which will cause=
 the &lt;candidate&gt; to revert. So, depending on when the lock on &lt;cand=
idate&gt; occurs relative to the confirmed commit timeout, the client could =
be editing &lt;candidate&gt; in one of two states. Further, before the tim=
eout on the confirmed commit, even if the new client has locked candidate,=
 the original client could still issue a confirming commit (they don=E2=80=
=99t need a lock on &lt;candidate&gt; to do so) which would persistently co=
mmit any edits made by the new client. NOTE: it is not the use of the persi=
st-id that introduces this behaviour; a new client would have the same prob=
lem even if a confirmed commit was not intended to persist beyond a session =
termination.</div><div><br /></div><div>If the server also supports the :s=
tartup capability then, if the session termination was due to the server re=
booting, the behaviour above would be further complicated by &lt;running&gt=
; now containing the configuration from the &lt;startup&gt; configuration d=
atastore.</div><div><br /></div><div>Am I right?</div><div><br /></div><div=
>Jonathan</div><div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style=3D"border:none; color:#909090; background-color:#B0B0B0; height:=
 1px; width: 99%;" />
<table style=3D"border-collapse:collapse;border:none;">
	<tbody><tr>
		<td style=3D"border:none;padding:0px 15px 0px 8px">
			<a href=3D"https://www.avast.com/antivirus">
				<img border=3D"0" src=3D"http://static.avast.com/emails/avast-mail-stam=
p.png" alt=3D"Avast logo" />
			</a>
		</td>
		<td>
			<p style=3D"color:#3d4d5a; font-family:&quot;Calibri&quot;,&quot;Verdana=
&quot;,&quot;Arial&quot;,&quot;Helvetica&quot;; font-size:12pt;">
				This email has been checked for viruses by Avast antivirus software.
				<br /><a href=3D"https://www.avast.com/antivirus">www.avast.com</a>
			</p>
		</td>
	</tr>
</tbody></table>
<br />
<a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" height=3D"1"> =
</a></div></blockquote></div>
</body></html>
--------=_MB75A471B5-D2C9-4154-AB08-3AF25EFEFCEC--


From nobody Mon Jan 14 06:51:42 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34A86128CF2 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 06:51:41 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 8fcwCl0yJ37z for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 06:51:38 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDD8612D4EC for <netconf@ietf.org>; Mon, 14 Jan 2019 06:51:37 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 9F2B6E33; Mon, 14 Jan 2019 15:51:36 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id QRQ3kvoHqZdc; Mon, 14 Jan 2019 15:51:36 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 15:51:36 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8648620046; Mon, 14 Jan 2019 15:51:36 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Oiq03nLAaC94; Mon, 14 Jan 2019 15:51:36 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb03.jacobs.jacobs-university.de [10.70.0.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 054CB20045; Mon, 14 Jan 2019 15:51:35 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 15:51:35 +0100
Received: by anna.localdomain (Postfix, from userid 501) id F3D673005A298C; Mon, 14 Jan 2019 15:51:34 +0100 (CET)
Date: Mon, 14 Jan 2019 15:51:34 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114145134.hnjxxyqgqzkx2h7q@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <em074e85b0-0b46-4b04-b6c4-5ea64a0f328b@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <em074e85b0-0b46-4b04-b6c4-5ea64a0f328b@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/-LHOm9TguB7OdukC4YoLZ6UuSZ4>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 14:51:41 -0000

Dear Jonathan,

can you please explain how we get into a race condition? What is the
sequence of actions the clients involved have to go through to arrive
at a race?

/js

On Mon, Jan 14, 2019 at 02:47:14PM +0000, Jonathan Hansford wrote:
> RFC 6241, Section 8.2.4.1 states, 'If the running or candidate
> configuration is currently locked by a different session, the <commit>
> operation MUST fail with an <error-tag> value of "in-use".' So if the
> new client acquires a lock on <candidate>, the original client cannot
> <commit> to <running>. So that fixes one of the issues below.
> 
> Section 8.3.5.2 states, 'When a client fails with outstanding changes to
> the candidate configuration, recovery can be difficult.  To facilitate
> easy recovery, any outstanding changes are discarded when the lock is
> released, whether explicitly with the <unlock> operation or implicitly
> from session failure.' So this means <candidate> would revert. Section
> 8.4.1 also states, 'If the device reboots for any reason before the
> confirm timeout expires, the server MUST restore the configuration to
> its state before the confirmed commit was issued.' However, earlier in
> Section 8.4.1 it states, 'If the session issuing the confirmed commit is
> terminated for any reason before the confirm timeout expires, the server
> MUST restore the configuration to its state before the confirmed commit
> was issued, unless the confirmed commit also included a <persist>
> element.', Section 8.4.5.1 states the persist parameter makes 'the
> confirmed commit survive a session termination, and set a token on the
> ongoing confirmed commit' and its description in Appendix C states,
> 'This parameter is used to make a confirmed commit persistent.  A
> persistent confirmed commit is not aborted if the NETCONF session
> terminates.  The only way to abort a persistent confirmed commit is to
> let the timer expire, or to use the <cancel-commit> operation.'
> 
> So it is the persist-id that is the cause of all the problems, not just
> the use of confirmed commit as I previously stated. But is there a way
> to resolve the outstanding issues around the use of the persist-id?
> 
> Thanks
> 
> ------ Original Message ------
> From: "Jonathan Hansford" <jonathan@hansfords.net>
> To: "netconf@ietf.org" <netconf@ietf.org>
> Sent: 14/01/2019 12:50:38
> Subject: [Netconf] Is there a problem with confirmed commits?
> 
> > Hi,
> > 
> > No one seems to be responding to my email and proposed erratum around
> > the subject of confirmed commits (apart from Martin), but I would
> > really like to know it I am missing something here. As far as I can
> > tell, session termination during a confirmed commit leads to
> > unpredictable behaviour and I would like to know whether anyone is
> > using confirmed commits and how (if at all) they address the issues
> > outlined below. My assumptions are that locks are used and
> > :writable-running is not supported.
> > 
> > If the <candidate> and <running> configuration datastores are locked to
> > prevent concurrent access, and a confirmed commit sequence is
> > interrupted by the session terminating, the locks will automatically be
> > released but the server MUST NOT accept a lock on <running> from any
> > session if another session has an ongoing confirmed <commit>.
> > Consequently, after session termination no client can acquire a <lock>
> > on <running>, not even the one that initiated the confirmed <commit>,
> > until after the confirmed <commit> has timed out. However, if the
> > confirmed <commit> included the <persist> parameter, the original
> > client could still issue a <commit> using the persist-id to complete
> > the sequence prior to the timeout, even without a lock.
> > 
> > Of course, the problem now is the race for the new lock on <candidate>.
> > If the original client is successful then all is good. But if a new
> > client locks <candidate> before the timeout on the confirmed commit,
> > whether or not they precede <lock> with <discard-changes>, <candidate>
> > will be the same as <running> and the new client will pick up
> > everything from the previous session. However, the client wonâ€™t be able
> > to lock <running> until after the timeout, at which point <running>
> > reverts but <candidate> still represents the previous session. If the
> > client tries to lock <candidate> after the timeout, <running> will have
> > reverted and the lock will only be granted after a <discard-changes>
> > which will cause the <candidate> to revert. So, depending on when the
> > lock on <candidate> occurs relative to the confirmed commit timeout,
> > the client could be editing <candidate> in one of two states. Further,
> > before the timeout on the confirmed commit, even if the new client has
> > locked candidate, the original client could still issue a confirming
> > commit (they donâ€™t need a lock on <candidate> to do so) which would
> > persistently commit any edits made by the new client. NOTE: it is not
> > the use of the persist-id that introduces this behaviour; a new client
> > would have the same problem even if a confirmed commit was not intended
> > to persist beyond a session termination.
> > 
> > If the server also supports the :startup capability then, if the
> > session termination was due to the server rebooting, the behaviour
> > above would be further complicated by <running> now containing the
> > configuration from the <startup> configuration datastore.
> > 
> > Am I right?
> > 
> > Jonathan
> > 
> > 
> > --------------------------------------------------------------------------------
> > Avast logo
> > <https://www.avast.com/antivirus>
> > 				This email has been checked for viruses by Avast antivirus
> > software.
> > www.avast.com <https://www.avast.com/antivirus>
> > 
> > 
> > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> 
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus

> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 07:14:02 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C939F128CF2 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:13:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level: 
X-Spam-Status: No, score=-1.989 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 geDhU0xa1PWV for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:13:58 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 B5A17124BAA for <netconf@ietf.org>; Mon, 14 Jan 2019 07:13:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:Mime-Version:Reply-To:References: In-Reply-To:Message-Id:Date:Cc:Subject:To:From:Sender: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=EuBaC3MBrBBxSb22fEyVA9ILWMcyySN/ZcNtRpT+Mo0=; b=WH80b6z84AnKljzd+TP3vwFJ3 7h6lJMdj0588Lom9MTP87cI5+MEfs6MaKaYkOfleC1zoX/OZ5CrYW+hQ3IBJp1xORmDUfc5n+GsRF zioF7cdaFmxNSSENKcO38HjJY/raC3U9LzwBVCwBjwws/HU6OGb2+MiSm9jv5hyIMN2BpXOsXPNh2 U/AmL7C6zSEZHs3Civ9wC49qaNuTylRGy4izeGXdvq8DugbcfslulfIyVcd4NKrYWbfOkP6XWuhN8 6DdF8OWKtE/elp35H7KqCjcpOStxqSnJhOveYDMz0CqI9LG3lYyZ0bCeXFL37o2ott1Abg2+JAXld paNwIzxpQ==;
Received: from [51.52.247.166] (port=60869 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj3w3-00GYaw-TB; Mon, 14 Jan 2019 15:13:55 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
Cc: "netconf@ietf.org" <netconf@ietf.org>
Date: Mon, 14 Jan 2019 15:14:02 +0000
Message-Id: <em5dfb175c-7835-43eb-a767-38e270601427@morpheus>
In-Reply-To: <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MBF7FDBA9F-016C-44F8-B6C1-0823831E5924"
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/nDUm8WEq8CRIQil3W7ynFQaSQ1A>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 15:14:00 -0000

--------=_MBF7FDBA9F-016C-44F8-B6C1-0823831E5924
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

If a persistent confirmed commit has not timed out, the running=20
configuration datastore will be the same as the candidate and=20
<discard-changes> won't change its contents. Any edit of candidate will=20
be based on the configuration resulting from the persistent confirmed=20
commit.

If the persistent confirmed commit has timed out, the running=20
configuration datastore will have reverted and <discard-changes> will=20
change candidate. Any edit of candidate in this case will be based on=20
the configuration prior to the start of the persistent confirmed commit.

------ Original Message ------
From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
To: "Jonathan Hansford" <jonathan@hansfords.net>
Cc: "netconf@ietf.org" <netconf@ietf.org>
Sent: 14/01/2019 13:50:56
Subject: Re: [Netconf] Is there a problem with confirmed commits?

>Hi,
>
>I have not yet understood where you see a problem. In general,
><candidate/> contains arbitrary stuff and hence it is the client's
>responsibility to clear any arbitrary stuff found in <candidate/>
>after obtaining a lock. If does not really matter whether there has
>been a failed confirmed commit before or something else. I think the
>general safe pattern is:
>
>lock(candidate)
>discard_changes()
>push_whatever_needed()
>commit()
>unlock(candidate)
>
>If you do a confirmed commit and the session disappears, then the lock
>will disappear as well. But I do not think this creates a race
>condition, or I am just not yet seeing it. Perhaps it helps to write
>down the sequence of actions that leads to a race.
>
>/js
>
>On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
>>  Hi,
>>
>>  No one seems to be responding to my email and proposed erratum around
>>  the subject of confirmed commits (apart from Martin), but I would reall=
y
>>  like to know it I am missing something here. As far as I can tell,
>>  session termination during a confirmed commit leads to unpredictable
>>  behaviour and I would like to know whether anyone is using confirmed
>>  commits and how (if at all) they address the issues outlined below. My
>>  assumptions are that locks are used and :writable-running is not
>>  supported.
>>
>>  If the <candidate> and <running> configuration datastores are locked to
>>  prevent concurrent access, and a confirmed commit sequence is
>>  interrupted by the session terminating, the locks will automatically be
>>  released but the server MUST NOT accept a lock on <running> from any
>>  session if another session has an ongoing confirmed <commit>.
>>  Consequently, after session termination no client can acquire a <lock>
>>  on <running>, not even the one that initiated the confirmed <commit>,
>>  until after the confirmed <commit> has timed out. However, if the
>>  confirmed <commit> included the <persist> parameter, the original clien=
t
>>  could still issue a <commit> using the persist-id to complete the
>>  sequence prior to the timeout, even without a lock.
>>
>>  Of course, the problem now is the race for the new lock on <candidate>.
>>  If the original client is successful then all is good. But if a new
>>  client locks <candidate> before the timeout on the confirmed commit,
>>  whether or not they precede <lock> with <discard-changes>, <candidate>
>>  will be the same as <running> and the new client will pick up everythin=
g
>>  from the previous session. However, the client won=E2=80=99t be able to =
lock
>>  <running> until after the timeout, at which point <running> reverts but
>>  <candidate> still represents the previous session. If the client tries
>>  to lock <candidate> after the timeout, <running> will have reverted and
>>  the lock will only be granted after a <discard-changes> which will caus=
e
>>  the <candidate> to revert. So, depending on when the lock on <candidate=
>
>>  occurs relative to the confirmed commit timeout, the client could be
>>  editing <candidate> in one of two states. Further, before the timeout o=
n
>>  the confirmed commit, even if the new client has locked candidate, the
>>  original client could still issue a confirming commit (they don=E2=80=
=99t need a
>>  lock on <candidate> to do so) which would persistently commit any edits
>>  made by the new client. NOTE: it is not the use of the persist-id that
>>  introduces this behaviour; a new client would have the same problem eve=
n
>>  if a confirmed commit was not intended to persist beyond a session
>>  termination.
>>
>>  If the server also supports the :startup capability then, if the sessio=
n
>>  termination was due to the server rebooting, the behaviour above would
>>  be further complicated by <running> now containing the configuration
>>  from the <startup> configuration datastore.
>>
>>  Am I right?
>>
>>  Jonathan
>>
>>  ---
>>  This email has been checked for viruses by Avast antivirus software.
>>  https://www.avast.com/antivirus
>
>>  _______________________________________________
>>  Netconf mailing list
>>  Netconf@ietf.org
>>  https://www.ietf.org/mailman/listinfo/netconf
>
>
>--
>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
--------=_MBF7FDBA9F-016C-44F8-B6C1-0823831E5924
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><style>#x483bedd762a048f58444e4792a4e5014{
	font-family:'Segoe UI';
	font-size:12pt;
}</style>

<style id=3D"css_styles" type=3D"text/css">blockquote.cite { margin-left: 5=
px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: =
1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; =
padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding=
-top: 0px; }
a img { border: 0px; }
li[style=3D'text-align: center;'], li[style=3D'text-align: right;'] {  list=
-style-position: inside;}
body { font-family: Segoe UI; font-size: 12pt;   }</style></head><body clas=
s=3D"plain"><div>If a persistent confirmed commit has not timed out, the ru=
nning configuration datastore will be the same as the candidate and &lt;dis=
card-changes&gt; won't change its contents. Any edit of candidate will be b=
ased on the configuration resulting from the persistent confirmed commit.=
=C2=A0</div><div><br /></div><div>If the persistent confirmed commit has ti=
med out, the running configuration datastore will have reverted and &lt;dis=
card-changes&gt; will change candidate.=C2=A0Any edit of candidate in this =
case will be based on the configuration prior to the start of the persisten=
t confirmed commit.</div>
<div><br /></div>
<div>------ Original Message ------</div>
<div>From: "Juergen Schoenwaelder" &lt;j.schoenwaelder@jacobs-university.de=
&gt;</div>
<div>To: "Jonathan Hansford" &lt;jonathan@hansfords.net&gt;</div>
<div>Cc: "netconf@ietf.org" &lt;netconf@ietf.org&gt;</div>
<div>Sent: 14/01/2019 13:50:56</div>
<div>Subject: Re: [Netconf] Is there a problem with confirmed commits?</div=
><div><br /></div>
<div id=3D"x77fc3fafae1140e"><blockquote type=3D"cite" class=3D"cite2">

<div class=3D"plain_line">Hi,</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">I have not yet understood where you see a problem=
=2E In general,</div>
<div class=3D"plain_line">&lt;candidate/&gt; contains arbitrary stuff and h=
ence it is the client's</div>
<div class=3D"plain_line">responsibility to clear any arbitrary stuff found=
 in &lt;candidate/&gt;</div>
<div class=3D"plain_line">after obtaining a lock. If does not really matter=
 whether there has</div>
<div class=3D"plain_line">been a failed confirmed commit before or somethin=
g else. I think the</div>
<div class=3D"plain_line">general safe pattern is:</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">lock(candidate)</div>
<div class=3D"plain_line">discard_changes()</div>
<div class=3D"plain_line">push_whatever_needed()</div>
<div class=3D"plain_line">commit()</div>
<div class=3D"plain_line">unlock(candidate)</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">If you do a confirmed commit and the session disa=
ppears, then the lock</div>
<div class=3D"plain_line">will disappear as well. But I do not think this c=
reates a race</div>
<div class=3D"plain_line">condition, or I am just not yet seeing it. Perhap=
s it helps to write</div>
<div class=3D"plain_line">down the sequence of actions that leads to a race=
=2E</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">/js</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonatha=
n Hansford wrote:</div>
<blockquote type=3D"cite" class=3D"cite">
<div class=3D"plain_line"> Hi,</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> No one seems to be responding to my email and pr=
oposed erratum around</div>
<div class=3D"plain_line"> the subject of confirmed commits (apart from Mar=
tin), but I would really</div>
<div class=3D"plain_line"> like to know it I am missing something here. As =
far as I can tell,</div>
<div class=3D"plain_line"> session termination during a confirmed commit le=
ads to unpredictable</div>
<div class=3D"plain_line"> behaviour and I would like to know whether anyon=
e is using confirmed</div>
<div class=3D"plain_line"> commits and how (if at all) they address the iss=
ues outlined below. My</div>
<div class=3D"plain_line"> assumptions are that locks are used and :writabl=
e-running is not</div>
<div class=3D"plain_line"> supported.</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> If the &lt;candidate&gt; and &lt;running&gt; con=
figuration datastores are locked to</div>
<div class=3D"plain_line"> prevent concurrent access, and a confirmed commi=
t sequence is</div>
<div class=3D"plain_line"> interrupted by the session terminating, the lock=
s will automatically be</div>
<div class=3D"plain_line"> released but the server MUST NOT accept a lock o=
n &lt;running&gt; from any</div>
<div class=3D"plain_line"> session if another session has an ongoing confir=
med &lt;commit&gt;.</div>
<div class=3D"plain_line"> Consequently, after session termination no clien=
t can acquire a &lt;lock&gt;</div>
<div class=3D"plain_line"> on &lt;running&gt;, not even the one that initia=
ted the confirmed &lt;commit&gt;,</div>
<div class=3D"plain_line"> until after the confirmed &lt;commit&gt; has tim=
ed out. However, if the</div>
<div class=3D"plain_line"> confirmed &lt;commit&gt; included the &lt;persis=
t&gt; parameter, the original client</div>
<div class=3D"plain_line"> could still issue a &lt;commit&gt; using the per=
sist-id to complete the</div>
<div class=3D"plain_line"> sequence prior to the timeout, even without a lo=
ck.</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> Of course, the problem now is the race for the n=
ew lock on &lt;candidate&gt;.</div>
<div class=3D"plain_line"> If the original client is successful then all is=
 good. But if a new</div>
<div class=3D"plain_line"> client locks &lt;candidate&gt; before the timeou=
t on the confirmed commit,</div>
<div class=3D"plain_line"> whether or not they precede &lt;lock&gt; with &l=
t;discard-changes&gt;, &lt;candidate&gt;</div>
<div class=3D"plain_line"> will be the same as &lt;running&gt; and the new =
client will pick up everything</div>
<div class=3D"plain_line"> from the previous session. However, the client w=
on=E2=80=99t be able to lock</div>
<div class=3D"plain_line"> &lt;running&gt; until after the timeout, at whic=
h point &lt;running&gt; reverts but</div>
<div class=3D"plain_line"> &lt;candidate&gt; still represents the previous =
session. If the client tries</div>
<div class=3D"plain_line"> to lock &lt;candidate&gt; after the timeout, &lt=
;running&gt; will have reverted and</div>
<div class=3D"plain_line"> the lock will only be granted after a &lt;discar=
d-changes&gt; which will cause</div>
<div class=3D"plain_line"> the &lt;candidate&gt; to revert. So, depending o=
n when the lock on &lt;candidate&gt;</div>
<div class=3D"plain_line"> occurs relative to the confirmed commit timeout,=
 the client could be</div>
<div class=3D"plain_line"> editing &lt;candidate&gt; in one of two states. =
Further, before the timeout on</div>
<div class=3D"plain_line"> the confirmed commit, even if the new client has=
 locked candidate, the</div>
<div class=3D"plain_line"> original client could still issue a confirming c=
ommit (they don=E2=80=99t need a</div>
<div class=3D"plain_line"> lock on &lt;candidate&gt; to do so) which would =
persistently commit any edits</div>
<div class=3D"plain_line"> made by the new client. NOTE: it is not the use =
of the persist-id that</div>
<div class=3D"plain_line"> introduces this behaviour; a new client would ha=
ve the same problem even</div>
<div class=3D"plain_line"> if a confirmed commit was not intended to persis=
t beyond a session</div>
<div class=3D"plain_line"> termination.</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> If the server also supports the :startup capabil=
ity then, if the session</div>
<div class=3D"plain_line"> termination was due to the server rebooting, the=
 behaviour above would</div>
<div class=3D"plain_line"> be further complicated by &lt;running&gt; now co=
ntaining the configuration</div>
<div class=3D"plain_line"> from the &lt;startup&gt; configuration datastore=
=2E</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> Am I right?</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> Jonathan</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> ---</div>
<div class=3D"plain_line"> This email has been checked for viruses by Avast=
 antivirus software.</div>
<div class=3D"plain_line"> https://www.avast.com/antivirus</div>
</blockquote>
<div class=3D"plain_line">=C2=A0</div>
<blockquote type=3D"cite" class=3D"cite2">
<div class=3D"plain_line"> _______________________________________________<=
/div>
<div class=3D"plain_line"> Netconf mailing list</div>
<div class=3D"plain_line"> Netconf@ietf.org</div>
<div class=3D"plain_line"> https://www.ietf.org/mailman/listinfo/netconf</d=
iv>
</blockquote>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">--</div>
<div class=3D"plain_line">Juergen Schoenwaelder           Jacobs University=
 Bremen gGmbH</div>
<div class=3D"plain_line">Phone: +49 421 200 3587         Campus Ring 1 | 2=
8759 Bremen | Germany</div>
<div class=3D"plain_line">Fax:   +49 421 200 3103         &lt;https://www.j=
acobs-university.de/&gt;</div>
</blockquote></div>
<div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style=3D'border:none; color:#909090; background-color:#B0B0B0; height: =
1px; width: 99%;' />
<table style=3D'border-collapse:collapse;border:none;'>
	<tr>
		<td style=3D'border:none;padding:0px 15px 0px 8px'>
			<a href=3D"https://www.avast.com/antivirus">
				<img border=3D0 src=3D"http://static.avast.com/emails/avast-mail-stamp.=
png" alt=3D"Avast logo" />
			</a>
		</td>
		<td>
			<p style=3D'color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helv=
etica"; font-size:12pt;'>
				This email has been checked for viruses by Avast antivirus software.
				<br><a href=3D"https://www.avast.com/antivirus">www.avast.com</a>
			</p>
		</td>
	</tr>
</table>
<br />
<a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" height=3D"1">=
 </a></div></body></html>
--------=_MBF7FDBA9F-016C-44F8-B6C1-0823831E5924--


From nobody Mon Jan 14 07:16:45 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9F5E11228B7 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:16:43 -0800 (PST)
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, SPF_PASS=-0.001,  URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 zI7K0tnKKcT6 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:16:42 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 23E9F124B0C for <netconf@ietf.org>; Mon, 14 Jan 2019 07:16:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Transfer-Encoding:Content-Type: Mime-Version:Reply-To:References:In-Reply-To:Message-Id:Date:Cc:Subject:To: From:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=FmJvDVt8sKJnG62FQXsdx8GKqetPp6oTmxOH11kMKRA=; b=oqScu0TifW1rkXQ6MySUec/c2x LANLn+59uJQkImLNa+uB/Oh41aJ8OQTxIDeSQSsoAaoFYEYaoP635c6++jCDIYL9VSA6GB6n3qwqQ pPJ2DHj1FJ15ixz8rcGyHMM932NVU/q8hAy87ResBbHBj7PE43uDRNPHDD0lo18IbKycMT3E67rDK no76bF1DBcLUWTMCL+by931pwZj2g+pqYlEprkCwMp3pDSAMlUanFhTkEuKVHfYQEnKTsSu98G9/P 5YDAOC4GEg6jXKGpb+se5/aiHaYxJlRsTqdbbPrWVqUFd7edShGjDwZsujKgsL45jv4ueQWvo68ok 5Nrp2tVw==;
Received: from [51.52.247.166] (port=60883 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj3yi-00GZOJ-GZ; Mon, 14 Jan 2019 15:16:40 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Martin Bjorklund" <mbj@tail-f.com>
Cc: netconf@ietf.org
Date: Mon, 14 Jan 2019 15:16:47 +0000
Message-Id: <emaa9a60e2-f15d-4158-a75a-5d9e7215cd82@morpheus>
In-Reply-To: <20190114.142342.615845671480649604.mbj@tail-f.com>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114.142342.615845671480649604.mbj@tail-f.com>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/2XNCYiOqcWOarmU6oENreHMfH_c>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 15:16:43 -0000

The candidate can be locked because the changes have been committed,=20
just not confirmed.

------ Original Message ------
From: "Martin Bjorklund" <mbj@tail-f.com>
To: jonathan@hansfords.net
Cc: netconf@ietf.org
Sent: 14/01/2019 13:23:42
Subject: Re: [Netconf] Is there a problem with confirmed commits?

>"Jonathan Hansford" <jonathan@hansfords.net> wrote:
>>  Hi,
>>
>>  No one seems to be responding to my email and proposed erratum around
>>  the subject of confirmed commits (apart from Martin), but I would
>>  really like to know it I am missing something here. As far as I can
>>  tell, session termination during a confirmed commit leads to
>>  unpredictable behaviour and I would like to know whether anyone is
>>  using confirmed commits and how (if at all) they address the issues
>>  outlined below. My assumptions are that locks are used and
>>  :writable-running is not supported.
>>
>>  If the <candidate> and <running> configuration datastores are locked
>>  to prevent concurrent access, and a confirmed commit sequence is
>>  interrupted by the session terminating, the locks will automatically
>>  be released but the server MUST NOT accept a lock on <running> from
>>  any session if another session has an ongoing confirmed
>>  <commit>. Consequently, after session termination no client can
>>  acquire a <lock> on <running>, not even the one that initiated the
>>  confirmed <commit>, until after the confirmed <commit> has timed
>>  out. However, if the confirmed <commit> included the <persist>
>>  parameter, the original client could still issue a <commit> using the
>>  persist-id to complete the sequence prior to the timeout, even without
>>  a lock.
>>
>>  Of course, the problem now is the race for the new lock on
>>  <candidate>.
>
>According to 7.5, a lock is not granted if:
>
>       *  The target configuration is <candidate>, it has already been
>          modified, and these changes have not been committed or rolled
>          back.
>
>       *  The target configuration is <running>, and another NETCONF
>          session has an ongoing confirmed commit (Section 8.4).
>
>So I think that it will not be possible to take the lock on either
>datastore in this situation.
>
>
>/martin
>
>
>>  If the original client is successful then all is
>>  good. But if a new client locks <candidate> before the timeout on the
>>  confirmed commit, whether or not they precede <lock> with
>>  <discard-changes>, <candidate> will be the same as <running> and the
>>  new client will pick up everything from the previous session. However,
>>  the client won=E2=80=99t be able to lock <running> until after the time=
out, at
>>  which point <running> reverts but <candidate> still represents the
>>  previous session. If the client tries to lock <candidate> after the
>>  timeout, <running> will have reverted and the lock will only be
>>  granted after a <discard-changes> which will cause the <candidate> to
>>  revert. So, depending on when the lock on <candidate> occurs relative
>>  to the confirmed commit timeout, the client could be editing
>>  <candidate> in one of two states. Further, before the timeout on the
>>  confirmed commit, even if the new client has locked candidate, the
>>  original client could still issue a confirming commit (they don=E2=80=
=99t need
>>  a lock on <candidate> to do so) which would persistently commit any
>>  edits made by the new client. NOTE: it is not the use of the
>>  persist-id that introduces this behaviour; a new client would have the
>>  same problem even if a confirmed commit was not intended to persist
>>  beyond a session termination.
>>
>>  If the server also supports the :startup capability then, if the
>>  session termination was due to the server rebooting, the behaviour
>>  above would be further complicated by <running> now containing the
>>  configuration from the <startup> configuration datastore.
>>
>>  Am I right?
>>
>>  Jonathan
>>
>>  ---
>>  This email has been checked for viruses by Avast antivirus software.
>>  https://www.avast.com/antivirus


From nobody Mon Jan 14 07:40:34 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7982B1310D3 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:40:32 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 kUj5A8PgGDZp for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:40:30 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D01EF1310CB for <netconf@ietf.org>; Mon, 14 Jan 2019 07:40:29 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 972BEFAC; Mon, 14 Jan 2019 16:40:28 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id eTNvkxJfp-yA; Mon, 14 Jan 2019 16:40:28 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 16:40:28 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 77F8A20046; Mon, 14 Jan 2019 16:40:28 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id lJd02HC9u69q; Mon, 14 Jan 2019 16:40:27 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb03.jacobs.jacobs-university.de [10.70.0.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id CEBFE20045; Mon, 14 Jan 2019 16:40:27 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 16:40:27 +0100
Received: by anna.localdomain (Postfix, from userid 501) id F141B3005A2E3D; Mon, 14 Jan 2019 16:40:26 +0100 (CET)
Date: Mon, 14 Jan 2019 16:40:26 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <em5dfb175c-7835-43eb-a767-38e270601427@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/2_jIJszTsSF3WH0khNbbXMIcDiE>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 15:40:33 -0000

It seems the <candidate> datastore should not be allowed to be used as
long as a persistent confirmed commit is still ongoing. I leave it to
Martin to check whether this is said somewhere or an omission.

In general, an application can't assume that <candidate> contains
anything sensible. Hence, the proper way is to lock <candidate> and
then to make sure it contains something sensible, i.e., issuing a
discard_changes. And I think implementations should not allow an
application to obtain a lock on <candidate> while a commit is active.
The text on page 45 already says:

      A lock MUST NOT be granted if any of the following conditions is
      true:

      [...]

      *  The target configuration is <candidate>, it has already been
         modified, and these changes have not been committed or rolled
         back.

I think this covers the case of an ongoing but not completed
persistent confirmed commit, no?

/js

On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
> If a persistent confirmed commit has not timed out, the running
> configuration datastore will be the same as the candidate and
> <discard-changes> won't change its contents. Any edit of candidate will be
> based on the configuration resulting from the persistent confirmed commit.
> 
> If the persistent confirmed commit has timed out, the running configuration
> datastore will have reverted and <discard-changes> will change candidate.
> Any edit of candidate in this case will be based on the configuration prior
> to the start of the persistent confirmed commit.
> 
> ------ Original Message ------
> From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
> To: "Jonathan Hansford" <jonathan@hansfords.net>
> Cc: "netconf@ietf.org" <netconf@ietf.org>
> Sent: 14/01/2019 13:50:56
> Subject: Re: [Netconf] Is there a problem with confirmed commits?
> 
> > Hi,
> > 
> > I have not yet understood where you see a problem. In general,
> > <candidate/> contains arbitrary stuff and hence it is the client's
> > responsibility to clear any arbitrary stuff found in <candidate/>
> > after obtaining a lock. If does not really matter whether there has
> > been a failed confirmed commit before or something else. I think the
> > general safe pattern is:
> > 
> > lock(candidate)
> > discard_changes()
> > push_whatever_needed()
> > commit()
> > unlock(candidate)
> > 
> > If you do a confirmed commit and the session disappears, then the lock
> > will disappear as well. But I do not think this creates a race
> > condition, or I am just not yet seeing it. Perhaps it helps to write
> > down the sequence of actions that leads to a race.
> > 
> > /js
> > 
> > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
> > >  Hi,
> > > 
> > >  No one seems to be responding to my email and proposed erratum around
> > >  the subject of confirmed commits (apart from Martin), but I would really
> > >  like to know it I am missing something here. As far as I can tell,
> > >  session termination during a confirmed commit leads to unpredictable
> > >  behaviour and I would like to know whether anyone is using confirmed
> > >  commits and how (if at all) they address the issues outlined below. My
> > >  assumptions are that locks are used and :writable-running is not
> > >  supported.
> > > 
> > >  If the <candidate> and <running> configuration datastores are locked to
> > >  prevent concurrent access, and a confirmed commit sequence is
> > >  interrupted by the session terminating, the locks will automatically be
> > >  released but the server MUST NOT accept a lock on <running> from any
> > >  session if another session has an ongoing confirmed <commit>.
> > >  Consequently, after session termination no client can acquire a <lock>
> > >  on <running>, not even the one that initiated the confirmed <commit>,
> > >  until after the confirmed <commit> has timed out. However, if the
> > >  confirmed <commit> included the <persist> parameter, the original client
> > >  could still issue a <commit> using the persist-id to complete the
> > >  sequence prior to the timeout, even without a lock.
> > > 
> > >  Of course, the problem now is the race for the new lock on <candidate>.
> > >  If the original client is successful then all is good. But if a new
> > >  client locks <candidate> before the timeout on the confirmed commit,
> > >  whether or not they precede <lock> with <discard-changes>, <candidate>
> > >  will be the same as <running> and the new client will pick up everything
> > >  from the previous session. However, the client wonâ€™t be able to lock
> > >  <running> until after the timeout, at which point <running> reverts but
> > >  <candidate> still represents the previous session. If the client tries
> > >  to lock <candidate> after the timeout, <running> will have reverted and
> > >  the lock will only be granted after a <discard-changes> which will cause
> > >  the <candidate> to revert. So, depending on when the lock on <candidate>
> > >  occurs relative to the confirmed commit timeout, the client could be
> > >  editing <candidate> in one of two states. Further, before the timeout on
> > >  the confirmed commit, even if the new client has locked candidate, the
> > >  original client could still issue a confirming commit (they donâ€™t need a
> > >  lock on <candidate> to do so) which would persistently commit any edits
> > >  made by the new client. NOTE: it is not the use of the persist-id that
> > >  introduces this behaviour; a new client would have the same problem even
> > >  if a confirmed commit was not intended to persist beyond a session
> > >  termination.
> > > 
> > >  If the server also supports the :startup capability then, if the session
> > >  termination was due to the server rebooting, the behaviour above would
> > >  be further complicated by <running> now containing the configuration
> > >  from the <startup> configuration datastore.
> > > 
> > >  Am I right?
> > > 
> > >  Jonathan
> > > 
> > >  ---
> > >  This email has been checked for viruses by Avast antivirus software.
> > >  https://www.avast.com/antivirus
> > 
> > >  _______________________________________________
> > >  Netconf mailing list
> > >  Netconf@ietf.org
> > >  https://www.ietf.org/mailman/listinfo/netconf
> > 
> > 
> > --
> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 07:49:20 2019
Return-Path: <rwilton@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC0971310DC for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:49:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.053
X-Spam-Level: 
X-Spam-Status: No, score=-19.053 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 A-TapWPcFPJP for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 07:49:16 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6C6201310DD for <netconf@ietf.org>; Mon, 14 Jan 2019 07:49:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6983; q=dns/txt; s=iport; t=1547480955; x=1548690555; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=qPRgOyQA1n0ciBISsZUC+TlsTB2WYOXsONUIk+qKwS4=; b=IJ3ntSgwuPeiUMduC7UXHCKb9CGU5h8ahiJEhuJpAWWRtAZDt6P5Cx2R mw1huT3hObfP/Nvr7YAdOxRLC8EQSfghzbfY5bDvkdhXj9mRB8Ph8qqXJ ZVt/VhEPKpHjXZneGW2hglD0/qQfoYq9wJKWhi3ysU0jkXcS5G34+pIj7 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BDAAD3rjxc/xbLJq1bBQMZAQEBAQE?= =?us-ascii?q?BAQEBAQEBBwEBAQEBAYFlgVuBD08hEieEAYh5jG4IJXyXFIFnDRgLgVSCL0Y?= =?us-ascii?q?CgmE4EgEDAQECAQECbRwBC4VKAQEBAQIBAQEhDwEFNgsFBwICCxABBAEBAQI?= =?us-ascii?q?CJgICGwwoCAYNBgIBARuDAwGBeQgPrU6BL4VChF0FBYEGi0uBQD+BEScMgio?= =?us-ascii?q?HLoMeAQGBLgENBQEJNyaCQoJXAolSh32QNQmSAgYYihqHZYFiiBOJbYcKgV0?= =?us-ascii?q?hZXEzGggbFTuCNAougicXg0szhGGFPz8DMIghgj4BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,478,1539648000";  d="scan'208";a="9378922"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jan 2019 15:48:58 +0000
Received: from [10.63.23.64] (dhcp-ensft1-uk-vla370-10-63-23-64.cisco.com [10.63.23.64]) by aer-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id x0EFmw24020548; Mon, 14 Jan 2019 15:48:58 GMT
To: "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <2492d27d-d64f-58bd-6006-2b10128f2813@cisco.com>
Date: Mon, 14 Jan 2019 15:48:58 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
X-Outbound-SMTP-Client: 10.63.23.64, dhcp-ensft1-uk-vla370-10-63-23-64.cisco.com
X-Outbound-Node: aer-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/cVXpOuG6CkKC18-A9-9L9N3GtNs>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 15:49:19 -0000

Hi Juergen,

On 14/01/2019 15:40, Juergen Schoenwaelder wrote:
> It seems the <candidate> datastore should not be allowed to be used as
> long as a persistent confirmed commit is still ongoing. I leave it to
> Martin to check whether this is said somewhere or an omission.
>
> In general, an application can't assume that <candidate> contains
> anything sensible. Hence, the proper way is to lock <candidate> and
> then to make sure it contains something sensible, i.e., issuing a
> discard_changes.

But the text that you quote below states that a client cannot acquire a 
lock on candidate if it contains any changes.Â  Doesn't this implies that 
discard_changes after acquiring the lock should be unnecessary?

Thanks,
Rob


>   And I think implementations should not allow an
> application to obtain a lock on <candidate> while a commit is active.
> The text on page 45 already says:
>
>        A lock MUST NOT be granted if any of the following conditions is
>        true:
>
>        [...]
>
>        *  The target configuration is <candidate>, it has already been
>           modified, and these changes have not been committed or rolled
>           back.
>
> I think this covers the case of an ongoing but not completed
> persistent confirmed commit, no?
>
> /js
>
> On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
>> If a persistent confirmed commit has not timed out, the running
>> configuration datastore will be the same as the candidate and
>> <discard-changes> won't change its contents. Any edit of candidate will be
>> based on the configuration resulting from the persistent confirmed commit.
>>
>> If the persistent confirmed commit has timed out, the running configuration
>> datastore will have reverted and <discard-changes> will change candidate.
>> Any edit of candidate in this case will be based on the configuration prior
>> to the start of the persistent confirmed commit.
>>
>> ------ Original Message ------
>> From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
>> To: "Jonathan Hansford" <jonathan@hansfords.net>
>> Cc: "netconf@ietf.org" <netconf@ietf.org>
>> Sent: 14/01/2019 13:50:56
>> Subject: Re: [Netconf] Is there a problem with confirmed commits?
>>
>>> Hi,
>>>
>>> I have not yet understood where you see a problem. In general,
>>> <candidate/> contains arbitrary stuff and hence it is the client's
>>> responsibility to clear any arbitrary stuff found in <candidate/>
>>> after obtaining a lock. If does not really matter whether there has
>>> been a failed confirmed commit before or something else. I think the
>>> general safe pattern is:
>>>
>>> lock(candidate)
>>> discard_changes()
>>> push_whatever_needed()
>>> commit()
>>> unlock(candidate)
>>>
>>> If you do a confirmed commit and the session disappears, then the lock
>>> will disappear as well. But I do not think this creates a race
>>> condition, or I am just not yet seeing it. Perhaps it helps to write
>>> down the sequence of actions that leads to a race.
>>>
>>> /js
>>>
>>> On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
>>>>   Hi,
>>>>
>>>>   No one seems to be responding to my email and proposed erratum around
>>>>   the subject of confirmed commits (apart from Martin), but I would really
>>>>   like to know it I am missing something here. As far as I can tell,
>>>>   session termination during a confirmed commit leads to unpredictable
>>>>   behaviour and I would like to know whether anyone is using confirmed
>>>>   commits and how (if at all) they address the issues outlined below. My
>>>>   assumptions are that locks are used and :writable-running is not
>>>>   supported.
>>>>
>>>>   If the <candidate> and <running> configuration datastores are locked to
>>>>   prevent concurrent access, and a confirmed commit sequence is
>>>>   interrupted by the session terminating, the locks will automatically be
>>>>   released but the server MUST NOT accept a lock on <running> from any
>>>>   session if another session has an ongoing confirmed <commit>.
>>>>   Consequently, after session termination no client can acquire a <lock>
>>>>   on <running>, not even the one that initiated the confirmed <commit>,
>>>>   until after the confirmed <commit> has timed out. However, if the
>>>>   confirmed <commit> included the <persist> parameter, the original client
>>>>   could still issue a <commit> using the persist-id to complete the
>>>>   sequence prior to the timeout, even without a lock.
>>>>
>>>>   Of course, the problem now is the race for the new lock on <candidate>.
>>>>   If the original client is successful then all is good. But if a new
>>>>   client locks <candidate> before the timeout on the confirmed commit,
>>>>   whether or not they precede <lock> with <discard-changes>, <candidate>
>>>>   will be the same as <running> and the new client will pick up everything
>>>>   from the previous session. However, the client wonâ€™t be able to lock
>>>>   <running> until after the timeout, at which point <running> reverts but
>>>>   <candidate> still represents the previous session. If the client tries
>>>>   to lock <candidate> after the timeout, <running> will have reverted and
>>>>   the lock will only be granted after a <discard-changes> which will cause
>>>>   the <candidate> to revert. So, depending on when the lock on <candidate>
>>>>   occurs relative to the confirmed commit timeout, the client could be
>>>>   editing <candidate> in one of two states. Further, before the timeout on
>>>>   the confirmed commit, even if the new client has locked candidate, the
>>>>   original client could still issue a confirming commit (they donâ€™t need a
>>>>   lock on <candidate> to do so) which would persistently commit any edits
>>>>   made by the new client. NOTE: it is not the use of the persist-id that
>>>>   introduces this behaviour; a new client would have the same problem even
>>>>   if a confirmed commit was not intended to persist beyond a session
>>>>   termination.
>>>>
>>>>   If the server also supports the :startup capability then, if the session
>>>>   termination was due to the server rebooting, the behaviour above would
>>>>   be further complicated by <running> now containing the configuration
>>>>   from the <startup> configuration datastore.
>>>>
>>>>   Am I right?
>>>>
>>>>   Jonathan
>>>>
>>>>   ---
>>>>   This email has been checked for viruses by Avast antivirus software.
>>>>   https://www.avast.com/antivirus
>>>>   _______________________________________________
>>>>   Netconf mailing list
>>>>   Netconf@ietf.org
>>>>   https://www.ietf.org/mailman/listinfo/netconf
>>>
>>> --
>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 08:02:01 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6F741131107 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:01:59 -0800 (PST)
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, SPF_PASS=-0.001,  URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 P2BkdK6f9Dak for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:01:56 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 457C7131102 for <netconf@ietf.org>; Mon, 14 Jan 2019 08:01:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Transfer-Encoding:Content-Type: Mime-Version:Reply-To:References:In-Reply-To:Message-Id:Date:Cc:Subject:To: From:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=mnOhuHPyxhp0L9HMCH5u+uXeLQzrkqNVwxt+6AagyMQ=; b=DzFriu3JNG1z7AI8lc6tdHl+jv u2jjr96qRcIFhpo0XyX6L5V3hlqNhJm6DrINXqnUKsljB7Awrax9AIyckSzXBRsO752tQ8MSgi19r RiiKepykQrwcHE/wJM97vgimFHnnCu2JqmDCFNWDLU94O/RvuEgihBKt8Ur0Y2ivEtSYHQqPYH4Ow QM6ytBZqpjYB9J4q5CUAN16Z/R8qbuxqsAM/Wve0EA9ZzPVGcADBZHcq42tUET+P0EbNqhhscYNA9 2CaxrNml5slBuHOd6ooeDnnRtDkBcqQyS8nkpU4pccw0yuNNiExO9x8BZTTxteyCLa+9ByaIlLXlX x5fLfslA==;
Received: from [51.52.247.166] (port=61252 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj4gU-00GnfI-AI; Mon, 14 Jan 2019 16:01:54 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
Cc: "netconf@ietf.org" <netconf@ietf.org>
Date: Mon, 14 Jan 2019 16:01:59 +0000
Message-Id: <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus>
In-Reply-To: <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/bY9JoWDL0CLfGkzH8OLnz3U7TBM>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 16:02:00 -0000

I think the text you refer to on page 45 is open to interpretation. If a=20
persistent confirmed commit has occurred then the changes have been=20
committed (albeit in a confirmed commit), and the candidate and running=20
configuration datastores are the same (unless and until the confirmed=20
commit times out). The text depends on the definition of 'modified' (and=20
how the server detects it) and 'committed'.

------ Original Message ------
From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
To: "Jonathan Hansford" <jonathan@hansfords.net>
Cc: "netconf@ietf.org" <netconf@ietf.org>
Sent: 14/01/2019 15:40:26
Subject: Re: [Netconf] Is there a problem with confirmed commits?

>It seems the <candidate> datastore should not be allowed to be used as
>long as a persistent confirmed commit is still ongoing. I leave it to
>Martin to check whether this is said somewhere or an omission.
>
>In general, an application can't assume that <candidate> contains
>anything sensible. Hence, the proper way is to lock <candidate> and
>then to make sure it contains something sensible, i.e., issuing a
>discard_changes. And I think implementations should not allow an
>application to obtain a lock on <candidate> while a commit is active.
>The text on page 45 already says:
>
>       A lock MUST NOT be granted if any of the following conditions is
>       true:
>
>       [...]
>
>       *  The target configuration is <candidate>, it has already been
>          modified, and these changes have not been committed or rolled
>          back.
>
>I think this covers the case of an ongoing but not completed
>persistent confirmed commit, no?
>
>/js
>
>On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
>>  If a persistent confirmed commit has not timed out, the running
>>  configuration datastore will be the same as the candidate and
>>  <discard-changes> won't change its contents. Any edit of candidate will =
be
>>  based on the configuration resulting from the persistent confirmed comm=
it.
>>
>>  If the persistent confirmed commit has timed out, the running configura=
tion
>>  datastore will have reverted and <discard-changes> will change candidat=
e.
>>  Any edit of candidate in this case will be based on the configuration p=
rior
>>  to the start of the persistent confirmed commit.
>>
>>  ------ Original Message ------
>>  From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
>>  To: "Jonathan Hansford" <jonathan@hansfords.net>
>>  Cc: "netconf@ietf.org" <netconf@ietf.org>
>>  Sent: 14/01/2019 13:50:56
>>  Subject: Re: [Netconf] Is there a problem with confirmed commits?
>>
>>  > Hi,
>>  >
>>  > I have not yet understood where you see a problem. In general,
>>  > <candidate/> contains arbitrary stuff and hence it is the client's
>>  > responsibility to clear any arbitrary stuff found in <candidate/>
>>  > after obtaining a lock. If does not really matter whether there has
>>  > been a failed confirmed commit before or something else. I think the
>>  > general safe pattern is:
>>  >
>>  > lock(candidate)
>>  > discard_changes()
>>  > push_whatever_needed()
>>  > commit()
>>  > unlock(candidate)
>>  >
>>  > If you do a confirmed commit and the session disappears, then the loc=
k
>>  > will disappear as well. But I do not think this creates a race
>>  > condition, or I am just not yet seeing it. Perhaps it helps to write
>>  > down the sequence of actions that leads to a race.
>>  >
>>  > /js
>>  >
>>  > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
>>  > >  Hi,
>>  > >
>>  > >  No one seems to be responding to my email and proposed erratum aro=
und
>>  > >  the subject of confirmed commits (apart from Martin), but I would=
 really
>>  > >  like to know it I am missing something here. As far as I can tell,
>>  > >  session termination during a confirmed commit leads to unpredictab=
le
>>  > >  behaviour and I would like to know whether anyone is using confirm=
ed
>>  > >  commits and how (if at all) they address the issues outlined below=
. My
>>  > >  assumptions are that locks are used and :writable-running is not
>>  > >  supported.
>>  > >
>>  > >  If the <candidate> and <running> configuration datastores are lock=
ed to
>>  > >  prevent concurrent access, and a confirmed commit sequence is
>>  > >  interrupted by the session terminating, the locks will automatical=
ly be
>>  > >  released but the server MUST NOT accept a lock on <running> from a=
ny
>>  > >  session if another session has an ongoing confirmed <commit>.
>>  > >  Consequently, after session termination no client can acquire a <l=
ock>
>>  > >  on <running>, not even the one that initiated the confirmed <commi=
t>,
>>  > >  until after the confirmed <commit> has timed out. However, if the
>>  > >  confirmed <commit> included the <persist> parameter, the original=
 client
>>  > >  could still issue a <commit> using the persist-id to complete the
>>  > >  sequence prior to the timeout, even without a lock.
>>  > >
>>  > >  Of course, the problem now is the race for the new lock on <candid=
ate>.
>>  > >  If the original client is successful then all is good. But if a ne=
w
>>  > >  client locks <candidate> before the timeout on the confirmed commi=
t,
>>  > >  whether or not they precede <lock> with <discard-changes>, <candid=
ate>
>>  > >  will be the same as <running> and the new client will pick up ever=
ything
>>  > >  from the previous session. However, the client won=E2=80=99t be ab=
le to lock
>>  > >  <running> until after the timeout, at which point <running> revert=
s but
>>  > >  <candidate> still represents the previous session. If the client t=
ries
>>  > >  to lock <candidate> after the timeout, <running> will have reverte=
d and
>>  > >  the lock will only be granted after a <discard-changes> which will =
cause
>>  > >  the <candidate> to revert. So, depending on when the lock on <cand=
idate>
>>  > >  occurs relative to the confirmed commit timeout, the client could=
 be
>>  > >  editing <candidate> in one of two states. Further, before the time=
out on
>>  > >  the confirmed commit, even if the new client has locked candidate, =
the
>>  > >  original client could still issue a confirming commit (they don=E2=
=80=99t need a
>>  > >  lock on <candidate> to do so) which would persistently commit any=
 edits
>>  > >  made by the new client. NOTE: it is not the use of the persist-id=
 that
>>  > >  introduces this behaviour; a new client would have the same proble=
m even
>>  > >  if a confirmed commit was not intended to persist beyond a session
>>  > >  termination.
>>  > >
>>  > >  If the server also supports the :startup capability then, if the s=
ession
>>  > >  termination was due to the server rebooting, the behaviour above w=
ould
>>  > >  be further complicated by <running> now containing the configurati=
on
>>  > >  from the <startup> configuration datastore.
>>  > >
>>  > >  Am I right?
>>  > >
>>  > >  Jonathan
>>  > >
>>  > >  ---
>>  > >  This email has been checked for viruses by Avast antivirus softwar=
e.
>>  > >  https://www.avast.com/antivirus
>>  >
>>  > >  _______________________________________________
>>  > >  Netconf mailing list
>>  > >  Netconf@ietf.org
>>  > >  https://www.ietf.org/mailman/listinfo/netconf
>>  >
>>  >
>>  > --
>>  > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>  > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | German=
y
>>  > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>
>--
>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 08:05:04 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3FC5E12894E for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:05:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level: 
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (2048-bit key) reason="fail (body has been altered)" header.d=hansfords.net
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 U3J_A-bO5Pki for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:04:59 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 68D0013110B for <netconf@ietf.org>; Mon, 14 Jan 2019 08:04:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Transfer-Encoding:Content-Type: Mime-Version:Reply-To:References:In-Reply-To:Message-Id:Date:Subject:To:From: Sender:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=e3LDffkbQQBJgaanwB/e44fN4TfpcOpnRWd9BwFTCow=; b=NwcMqYMwqa9IozfF548cm2qRal frpTAozpFK4b5jFm4fNMoHpoFbM4tEaeddWnxCY4cCX4iDth0Q5CFM/D2d+em/10GcnwAb6bLyLHh SoHjd/09OKF8xkQd5+PwehCPpRD1ArqDJbdBEPS+kg5IoAPtNyRA7mGWBfgnCoeVBN+X2SlFsNESl Yda68Gfj9nwGZIqVaWKRO6DWHTawTS0smyfDR1PRSLTm6zSUAcg/cJs3fX7NV6AmrDEHdvLrUUj7D In+QhJ8mc4cpEMoRH92Gy6phSDh7zFd56Q6eIVO2OQcvV1ByAOS5H/uZsa4wAWBpXQpwC6r4tMoXv okDsvDZA==;
Received: from [51.52.247.166] (port=61279 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj4jQ-00Goap-FX; Mon, 14 Jan 2019 16:04:57 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Robert Wilton" <rwilton@cisco.com>, "netconf@ietf.org" <netconf@ietf.org>
Date: Mon, 14 Jan 2019 16:05:03 +0000
Message-Id: <em586327fb-0cd6-4300-9bf2-3a4c22f2ae3b@morpheus>
In-Reply-To: <2492d27d-d64f-58bd-6006-2b10128f2813@cisco.com>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <2492d27d-d64f-58bd-6006-2b10128f2813@cisco.com>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Antivirus: Avast (VPS 190114-0, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/RbAeQt_DDy7XjtC-gwZ5ntpkCx4>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 16:05:02 -0000

And maybe a discard_changes before the lock is better behaviour (or is=20
there something that prevents that?) to ensure the lock will succeed.

------ Original Message ------
From: "Robert Wilton" <rwilton@cisco.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Cc: "Jonathan Hansford" <jonathan@hansfords.net>
Sent: 14/01/2019 15:48:58
Subject: Re: [Netconf] Is there a problem with confirmed commits?

>Hi Juergen,
>
>On 14/01/2019 15:40, Juergen Schoenwaelder wrote:
>>It seems the <candidate> datastore should not be allowed to be used as
>>long as a persistent confirmed commit is still ongoing. I leave it to
>>Martin to check whether this is said somewhere or an omission.
>>
>>In general, an application can't assume that <candidate> contains
>>anything sensible. Hence, the proper way is to lock <candidate> and
>>then to make sure it contains something sensible, i.e., issuing a
>>discard_changes.
>
>But the text that you quote below states that a client cannot acquire a lo=
ck on candidate if it contains any changes.  Doesn't this implies that disc=
ard_changes after acquiring the lock should be unnecessary?
>
>Thanks,
>Rob
>
>
>>   And I think implementations should not allow an
>>application to obtain a lock on <candidate> while a commit is active.
>>The text on page 45 already says:
>>
>>        A lock MUST NOT be granted if any of the following conditions is
>>        true:
>>
>>        [...]
>>
>>        *  The target configuration is <candidate>, it has already been
>>           modified, and these changes have not been committed or rolled
>>           back.
>>
>>I think this covers the case of an ongoing but not completed
>>persistent confirmed commit, no?
>>
>>/js
>>
>>On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
>>>If a persistent confirmed commit has not timed out, the running
>>>configuration datastore will be the same as the candidate and
>>><discard-changes> won't change its contents. Any edit of candidate will=
 be
>>>based on the configuration resulting from the persistent confirmed commi=
t.
>>>
>>>If the persistent confirmed commit has timed out, the running configurat=
ion
>>>datastore will have reverted and <discard-changes> will change candidate=
.
>>>Any edit of candidate in this case will be based on the configuration pr=
ior
>>>to the start of the persistent confirmed commit.
>>>
>>>------ Original Message ------
>>>From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
>>>To: "Jonathan Hansford" <jonathan@hansfords.net>
>>>Cc: "netconf@ietf.org" <netconf@ietf.org>
>>>Sent: 14/01/2019 13:50:56
>>>Subject: Re: [Netconf] Is there a problem with confirmed commits?
>>>
>>>>Hi,
>>>>
>>>>I have not yet understood where you see a problem. In general,
>>>><candidate/> contains arbitrary stuff and hence it is the client's
>>>>responsibility to clear any arbitrary stuff found in <candidate/>
>>>>after obtaining a lock. If does not really matter whether there has
>>>>been a failed confirmed commit before or something else. I think the
>>>>general safe pattern is:
>>>>
>>>>lock(candidate)
>>>>discard_changes()
>>>>push_whatever_needed()
>>>>commit()
>>>>unlock(candidate)
>>>>
>>>>If you do a confirmed commit and the session disappears, then the lock
>>>>will disappear as well. But I do not think this creates a race
>>>>condition, or I am just not yet seeing it. Perhaps it helps to write
>>>>down the sequence of actions that leads to a race.
>>>>
>>>>/js
>>>>
>>>>On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
>>>>>   Hi,
>>>>>
>>>>>   No one seems to be responding to my email and proposed erratum arou=
nd
>>>>>   the subject of confirmed commits (apart from Martin), but I would r=
eally
>>>>>   like to know it I am missing something here. As far as I can tell,
>>>>>   session termination during a confirmed commit leads to unpredictabl=
e
>>>>>   behaviour and I would like to know whether anyone is using confirme=
d
>>>>>   commits and how (if at all) they address the issues outlined below. =
My
>>>>>   assumptions are that locks are used and :writable-running is not
>>>>>   supported.
>>>>>
>>>>>   If the <candidate> and <running> configuration datastores are locke=
d to
>>>>>   prevent concurrent access, and a confirmed commit sequence is
>>>>>   interrupted by the session terminating, the locks will automaticall=
y be
>>>>>   released but the server MUST NOT accept a lock on <running> from an=
y
>>>>>   session if another session has an ongoing confirmed <commit>.
>>>>>   Consequently, after session termination no client can acquire a <lo=
ck>
>>>>>   on <running>, not even the one that initiated the confirmed <commit=
>,
>>>>>   until after the confirmed <commit> has timed out. However, if the
>>>>>   confirmed <commit> included the <persist> parameter, the original c=
lient
>>>>>   could still issue a <commit> using the persist-id to complete the
>>>>>   sequence prior to the timeout, even without a lock.
>>>>>
>>>>>   Of course, the problem now is the race for the new lock on <candida=
te>.
>>>>>   If the original client is successful then all is good. But if a new
>>>>>   client locks <candidate> before the timeout on the confirmed commit=
,
>>>>>   whether or not they precede <lock> with <discard-changes>, <candida=
te>
>>>>>   will be the same as <running> and the new client will pick up every=
thing
>>>>>   from the previous session. However, the client won=E2=80=99t be abl=
e to lock
>>>>>   <running> until after the timeout, at which point <running> reverts =
but
>>>>>   <candidate> still represents the previous session. If the client tr=
ies
>>>>>   to lock <candidate> after the timeout, <running> will have reverted =
and
>>>>>   the lock will only be granted after a <discard-changes> which will=
 cause
>>>>>   the <candidate> to revert. So, depending on when the lock on <candi=
date>
>>>>>   occurs relative to the confirmed commit timeout, the client could b=
e
>>>>>   editing <candidate> in one of two states. Further, before the timeo=
ut on
>>>>>   the confirmed commit, even if the new client has locked candidate,=
 the
>>>>>   original client could still issue a confirming commit (they don=E2=
=80=99t need a
>>>>>   lock on <candidate> to do so) which would persistently commit any e=
dits
>>>>>   made by the new client. NOTE: it is not the use of the persist-id t=
hat
>>>>>   introduces this behaviour; a new client would have the same problem =
even
>>>>>   if a confirmed commit was not intended to persist beyond a session
>>>>>   termination.
>>>>>
>>>>>   If the server also supports the :startup capability then, if the se=
ssion
>>>>>   termination was due to the server rebooting, the behaviour above wo=
uld
>>>>>   be further complicated by <running> now containing the configuratio=
n
>>>>>   from the <startup> configuration datastore.
>>>>>
>>>>>   Am I right?
>>>>>
>>>>>   Jonathan
>>>>>
>>>>>   ---
>>>>>   This email has been checked for viruses by Avast antivirus software=
.
>>>>>   https://www.avast.com/antivirus
>>>>>   _______________________________________________
>>>>>   Netconf mailing list
>>>>>   Netconf@ietf.org
>>>>>   https://www.ietf.org/mailman/listinfo/netconf
>>>>
>>>>--
>>>>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 08:19:28 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 62618131054 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:19:26 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 fXlccrD6hPft for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:19:24 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD0F1130FEB for <netconf@ietf.org>; Mon, 14 Jan 2019 08:19:23 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 9D3C1F85; Mon, 14 Jan 2019 17:19:22 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id XSa08BY9Bu5U; Mon, 14 Jan 2019 17:19:22 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 17:19:22 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 827942004A; Mon, 14 Jan 2019 17:19:22 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id hgXQJ1L0nSzc; Mon, 14 Jan 2019 17:19:21 +0100 (CET)
Received: from exchange.jacobs-university.de (SXCHMB02.jacobs.jacobs-university.de [10.70.0.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 8A10B20045; Mon, 14 Jan 2019 17:19:21 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 17:19:20 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 848EC3005A2FB8; Mon, 14 Jan 2019 17:19:19 +0100 (CET)
Date: Mon, 14 Jan 2019 17:19:19 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: Robert Wilton <rwilton@cisco.com>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114161919.wlc7kfogae3t7n3r@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, Robert Wilton <rwilton@cisco.com>, "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <2492d27d-d64f-58bd-6006-2b10128f2813@cisco.com> <em586327fb-0cd6-4300-9bf2-3a4c22f2ae3b@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <em586327fb-0cd6-4300-9bf2-3a4c22f2ae3b@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB03.jacobs.jacobs-university.de (10.70.0.155) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/GmPLfFr96wao0prvn7SLgaCXtgs>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 16:19:26 -0000

Someone can modify candidate between your discard_changes() and
lock().  I have to check whether lock requires <candidate/> to match
<running/>.

/js

On Mon, Jan 14, 2019 at 04:05:03PM +0000, Jonathan Hansford wrote:
> And maybe a discard_changes before the lock is better behaviour (or is there
> something that prevents that?) to ensure the lock will succeed.
> 
> ------ Original Message ------
> From: "Robert Wilton" <rwilton@cisco.com>
> To: "netconf@ietf.org" <netconf@ietf.org>
> Cc: "Jonathan Hansford" <jonathan@hansfords.net>
> Sent: 14/01/2019 15:48:58
> Subject: Re: [Netconf] Is there a problem with confirmed commits?
> 
> > Hi Juergen,
> > 
> > On 14/01/2019 15:40, Juergen Schoenwaelder wrote:
> > > It seems the <candidate> datastore should not be allowed to be used as
> > > long as a persistent confirmed commit is still ongoing. I leave it to
> > > Martin to check whether this is said somewhere or an omission.
> > > 
> > > In general, an application can't assume that <candidate> contains
> > > anything sensible. Hence, the proper way is to lock <candidate> and
> > > then to make sure it contains something sensible, i.e., issuing a
> > > discard_changes.
> > 
> > But the text that you quote below states that a client cannot acquire a lock on candidate if it contains any changes.  Doesn't this implies that discard_changes after acquiring the lock should be unnecessary?
> > 
> > Thanks,
> > Rob
> > 
> > 
> > >   And I think implementations should not allow an
> > > application to obtain a lock on <candidate> while a commit is active.
> > > The text on page 45 already says:
> > > 
> > >        A lock MUST NOT be granted if any of the following conditions is
> > >        true:
> > > 
> > >        [...]
> > > 
> > >        *  The target configuration is <candidate>, it has already been
> > >           modified, and these changes have not been committed or rolled
> > >           back.
> > > 
> > > I think this covers the case of an ongoing but not completed
> > > persistent confirmed commit, no?
> > > 
> > > /js
> > > 
> > > On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
> > > > If a persistent confirmed commit has not timed out, the running
> > > > configuration datastore will be the same as the candidate and
> > > > <discard-changes> won't change its contents. Any edit of candidate will be
> > > > based on the configuration resulting from the persistent confirmed commit.
> > > > 
> > > > If the persistent confirmed commit has timed out, the running configuration
> > > > datastore will have reverted and <discard-changes> will change candidate.
> > > > Any edit of candidate in this case will be based on the configuration prior
> > > > to the start of the persistent confirmed commit.
> > > > 
> > > > ------ Original Message ------
> > > > From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
> > > > To: "Jonathan Hansford" <jonathan@hansfords.net>
> > > > Cc: "netconf@ietf.org" <netconf@ietf.org>
> > > > Sent: 14/01/2019 13:50:56
> > > > Subject: Re: [Netconf] Is there a problem with confirmed commits?
> > > > 
> > > > > Hi,
> > > > > 
> > > > > I have not yet understood where you see a problem. In general,
> > > > > <candidate/> contains arbitrary stuff and hence it is the client's
> > > > > responsibility to clear any arbitrary stuff found in <candidate/>
> > > > > after obtaining a lock. If does not really matter whether there has
> > > > > been a failed confirmed commit before or something else. I think the
> > > > > general safe pattern is:
> > > > > 
> > > > > lock(candidate)
> > > > > discard_changes()
> > > > > push_whatever_needed()
> > > > > commit()
> > > > > unlock(candidate)
> > > > > 
> > > > > If you do a confirmed commit and the session disappears, then the lock
> > > > > will disappear as well. But I do not think this creates a race
> > > > > condition, or I am just not yet seeing it. Perhaps it helps to write
> > > > > down the sequence of actions that leads to a race.
> > > > > 
> > > > > /js
> > > > > 
> > > > > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
> > > > > >   Hi,
> > > > > > 
> > > > > >   No one seems to be responding to my email and proposed erratum around
> > > > > >   the subject of confirmed commits (apart from Martin), but I would really
> > > > > >   like to know it I am missing something here. As far as I can tell,
> > > > > >   session termination during a confirmed commit leads to unpredictable
> > > > > >   behaviour and I would like to know whether anyone is using confirmed
> > > > > >   commits and how (if at all) they address the issues outlined below. My
> > > > > >   assumptions are that locks are used and :writable-running is not
> > > > > >   supported.
> > > > > > 
> > > > > >   If the <candidate> and <running> configuration datastores are locked to
> > > > > >   prevent concurrent access, and a confirmed commit sequence is
> > > > > >   interrupted by the session terminating, the locks will automatically be
> > > > > >   released but the server MUST NOT accept a lock on <running> from any
> > > > > >   session if another session has an ongoing confirmed <commit>.
> > > > > >   Consequently, after session termination no client can acquire a <lock>
> > > > > >   on <running>, not even the one that initiated the confirmed <commit>,
> > > > > >   until after the confirmed <commit> has timed out. However, if the
> > > > > >   confirmed <commit> included the <persist> parameter, the original client
> > > > > >   could still issue a <commit> using the persist-id to complete the
> > > > > >   sequence prior to the timeout, even without a lock.
> > > > > > 
> > > > > >   Of course, the problem now is the race for the new lock on <candidate>.
> > > > > >   If the original client is successful then all is good. But if a new
> > > > > >   client locks <candidate> before the timeout on the confirmed commit,
> > > > > >   whether or not they precede <lock> with <discard-changes>, <candidate>
> > > > > >   will be the same as <running> and the new client will pick up everything
> > > > > >   from the previous session. However, the client wonâ€™t be able to lock
> > > > > >   <running> until after the timeout, at which point <running> reverts but
> > > > > >   <candidate> still represents the previous session. If the client tries
> > > > > >   to lock <candidate> after the timeout, <running> will have reverted and
> > > > > >   the lock will only be granted after a <discard-changes> which will cause
> > > > > >   the <candidate> to revert. So, depending on when the lock on <candidate>
> > > > > >   occurs relative to the confirmed commit timeout, the client could be
> > > > > >   editing <candidate> in one of two states. Further, before the timeout on
> > > > > >   the confirmed commit, even if the new client has locked candidate, the
> > > > > >   original client could still issue a confirming commit (they donâ€™t need a
> > > > > >   lock on <candidate> to do so) which would persistently commit any edits
> > > > > >   made by the new client. NOTE: it is not the use of the persist-id that
> > > > > >   introduces this behaviour; a new client would have the same problem even
> > > > > >   if a confirmed commit was not intended to persist beyond a session
> > > > > >   termination.
> > > > > > 
> > > > > >   If the server also supports the :startup capability then, if the session
> > > > > >   termination was due to the server rebooting, the behaviour above would
> > > > > >   be further complicated by <running> now containing the configuration
> > > > > >   from the <startup> configuration datastore.
> > > > > > 
> > > > > >   Am I right?
> > > > > > 
> > > > > >   Jonathan
> > > > > > 
> > > > > >   ---
> > > > > >   This email has been checked for viruses by Avast antivirus software.
> > > > > >   https://www.avast.com/antivirus
> > > > > >   _______________________________________________
> > > > > >   Netconf mailing list
> > > > > >   Netconf@ietf.org
> > > > > >   https://www.ietf.org/mailman/listinfo/netconf
> > > > > 
> > > > > --
> > > > > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > > > > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> > > > > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> 
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 08:25:40 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 71B1913115E for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:25:38 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 sNUbB3gX9lWQ for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:25:36 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B5A3B13115D for <netconf@ietf.org>; Mon, 14 Jan 2019 08:25:35 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 3E920C4A; Mon, 14 Jan 2019 17:25:34 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id MHoyUGhY-8V1; Mon, 14 Jan 2019 17:25:34 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 17:25:34 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 20BA720046; Mon, 14 Jan 2019 17:25:34 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id rvflGEu4is9k; Mon, 14 Jan 2019 17:25:33 +0100 (CET)
Received: from exchange.jacobs-university.de (SXCHMB01.jacobs.jacobs-university.de [10.70.0.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 8189D20045; Mon, 14 Jan 2019 17:25:33 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 17:25:32 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 8E2DB3005A3011; Mon, 14 Jan 2019 17:25:32 +0100 (CET)
Date: Mon, 14 Jan 2019 17:25:32 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/3VylmSOV2Q3KTXxB40YsXFBRFLQ>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 16:25:38 -0000

For me, a confirmed commit is not complete if it can still timeout.

/js

On Mon, Jan 14, 2019 at 04:01:59PM +0000, Jonathan Hansford wrote:
> I think the text you refer to on page 45 is open to interpretation. If a
> persistent confirmed commit has occurred then the changes have been
> committed (albeit in a confirmed commit), and the candidate and running
> configuration datastores are the same (unless and until the confirmed commit
> times out). The text depends on the definition of 'modified' (and how the
> server detects it) and 'committed'.
> 
> ------ Original Message ------
> From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
> To: "Jonathan Hansford" <jonathan@hansfords.net>
> Cc: "netconf@ietf.org" <netconf@ietf.org>
> Sent: 14/01/2019 15:40:26
> Subject: Re: [Netconf] Is there a problem with confirmed commits?
> 
> > It seems the <candidate> datastore should not be allowed to be used as
> > long as a persistent confirmed commit is still ongoing. I leave it to
> > Martin to check whether this is said somewhere or an omission.
> > 
> > In general, an application can't assume that <candidate> contains
> > anything sensible. Hence, the proper way is to lock <candidate> and
> > then to make sure it contains something sensible, i.e., issuing a
> > discard_changes. And I think implementations should not allow an
> > application to obtain a lock on <candidate> while a commit is active.
> > The text on page 45 already says:
> > 
> >       A lock MUST NOT be granted if any of the following conditions is
> >       true:
> > 
> >       [...]
> > 
> >       *  The target configuration is <candidate>, it has already been
> >          modified, and these changes have not been committed or rolled
> >          back.
> > 
> > I think this covers the case of an ongoing but not completed
> > persistent confirmed commit, no?
> > 
> > /js
> > 
> > On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
> > >  If a persistent confirmed commit has not timed out, the running
> > >  configuration datastore will be the same as the candidate and
> > >  <discard-changes> won't change its contents. Any edit of candidate will be
> > >  based on the configuration resulting from the persistent confirmed commit.
> > > 
> > >  If the persistent confirmed commit has timed out, the running configuration
> > >  datastore will have reverted and <discard-changes> will change candidate.
> > >  Any edit of candidate in this case will be based on the configuration prior
> > >  to the start of the persistent confirmed commit.
> > > 
> > >  ------ Original Message ------
> > >  From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
> > >  To: "Jonathan Hansford" <jonathan@hansfords.net>
> > >  Cc: "netconf@ietf.org" <netconf@ietf.org>
> > >  Sent: 14/01/2019 13:50:56
> > >  Subject: Re: [Netconf] Is there a problem with confirmed commits?
> > > 
> > >  > Hi,
> > >  >
> > >  > I have not yet understood where you see a problem. In general,
> > >  > <candidate/> contains arbitrary stuff and hence it is the client's
> > >  > responsibility to clear any arbitrary stuff found in <candidate/>
> > >  > after obtaining a lock. If does not really matter whether there has
> > >  > been a failed confirmed commit before or something else. I think the
> > >  > general safe pattern is:
> > >  >
> > >  > lock(candidate)
> > >  > discard_changes()
> > >  > push_whatever_needed()
> > >  > commit()
> > >  > unlock(candidate)
> > >  >
> > >  > If you do a confirmed commit and the session disappears, then the lock
> > >  > will disappear as well. But I do not think this creates a race
> > >  > condition, or I am just not yet seeing it. Perhaps it helps to write
> > >  > down the sequence of actions that leads to a race.
> > >  >
> > >  > /js
> > >  >
> > >  > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrote:
> > >  > >  Hi,
> > >  > >
> > >  > >  No one seems to be responding to my email and proposed erratum around
> > >  > >  the subject of confirmed commits (apart from Martin), but I would really
> > >  > >  like to know it I am missing something here. As far as I can tell,
> > >  > >  session termination during a confirmed commit leads to unpredictable
> > >  > >  behaviour and I would like to know whether anyone is using confirmed
> > >  > >  commits and how (if at all) they address the issues outlined below. My
> > >  > >  assumptions are that locks are used and :writable-running is not
> > >  > >  supported.
> > >  > >
> > >  > >  If the <candidate> and <running> configuration datastores are locked to
> > >  > >  prevent concurrent access, and a confirmed commit sequence is
> > >  > >  interrupted by the session terminating, the locks will automatically be
> > >  > >  released but the server MUST NOT accept a lock on <running> from any
> > >  > >  session if another session has an ongoing confirmed <commit>.
> > >  > >  Consequently, after session termination no client can acquire a <lock>
> > >  > >  on <running>, not even the one that initiated the confirmed <commit>,
> > >  > >  until after the confirmed <commit> has timed out. However, if the
> > >  > >  confirmed <commit> included the <persist> parameter, the original client
> > >  > >  could still issue a <commit> using the persist-id to complete the
> > >  > >  sequence prior to the timeout, even without a lock.
> > >  > >
> > >  > >  Of course, the problem now is the race for the new lock on <candidate>.
> > >  > >  If the original client is successful then all is good. But if a new
> > >  > >  client locks <candidate> before the timeout on the confirmed commit,
> > >  > >  whether or not they precede <lock> with <discard-changes>, <candidate>
> > >  > >  will be the same as <running> and the new client will pick up everything
> > >  > >  from the previous session. However, the client wonâ€™t be able to lock
> > >  > >  <running> until after the timeout, at which point <running> reverts but
> > >  > >  <candidate> still represents the previous session. If the client tries
> > >  > >  to lock <candidate> after the timeout, <running> will have reverted and
> > >  > >  the lock will only be granted after a <discard-changes> which will cause
> > >  > >  the <candidate> to revert. So, depending on when the lock on <candidate>
> > >  > >  occurs relative to the confirmed commit timeout, the client could be
> > >  > >  editing <candidate> in one of two states. Further, before the timeout on
> > >  > >  the confirmed commit, even if the new client has locked candidate, the
> > >  > >  original client could still issue a confirming commit (they donâ€™t need a
> > >  > >  lock on <candidate> to do so) which would persistently commit any edits
> > >  > >  made by the new client. NOTE: it is not the use of the persist-id that
> > >  > >  introduces this behaviour; a new client would have the same problem even
> > >  > >  if a confirmed commit was not intended to persist beyond a session
> > >  > >  termination.
> > >  > >
> > >  > >  If the server also supports the :startup capability then, if the session
> > >  > >  termination was due to the server rebooting, the behaviour above would
> > >  > >  be further complicated by <running> now containing the configuration
> > >  > >  from the <startup> configuration datastore.
> > >  > >
> > >  > >  Am I right?
> > >  > >
> > >  > >  Jonathan
> > >  > >
> > >  > >  ---
> > >  > >  This email has been checked for viruses by Avast antivirus software.
> > >  > >  https://www.avast.com/antivirus
> > >  >
> > >  > >  _______________________________________________
> > >  > >  Netconf mailing list
> > >  > >  Netconf@ietf.org
> > >  > >  https://www.ietf.org/mailman/listinfo/netconf
> > >  >
> > >  >
> > >  > --
> > >  > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > >  > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> > >  > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> > 
> > --
> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> 

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 08:57:25 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 032431311B8 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:57:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.041
X-Spam-Level: 
X-Spam-Status: No, score=-2.041 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 t1GUG1EPIdCf for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 08:57:20 -0800 (PST)
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) (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 8F42C1311B2 for <netconf@ietf.org>; Mon, 14 Jan 2019 08:57:19 -0800 (PST)
Received: by mail-lf1-x129.google.com with SMTP id p6so16164270lfc.1 for <netconf@ietf.org>; Mon, 14 Jan 2019 08:57:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=jsXQPmNyXExNzKBibb970Ve/SOV278k9VSPu5objjTY=; b=VIZz/nviU1TRJWrI6kart+FYc4OB3En72e1wbtCKSdJQRg2A1FkvKdceKwlAGQY2kJ zRzi8t7LtUObNGZlheXUxkjgtH051wu2F2/oOQl8et3R2/TFuqHp7IERQV302NpJ6SgG jD1D4r/Yxwj2exNDPEo/qZA4YceuFZyICuGSgdujJoPsNHtMZzhf5ladHK9kZ4aX/79h Ul9qZmgz1ScRXAAhNFjirLMBWx9Qy/CByXSkcL5ig4yHzaTEj6/n2t3ihcMMgQxhfuph 8qY7B8Hn4XWoWN+NaNHWRxO/SqFVRBCRG1vXIHSayHZ0acDSq1b1uOQuwcJm0BVkF+X9 r4sQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=jsXQPmNyXExNzKBibb970Ve/SOV278k9VSPu5objjTY=; b=mjhUUNf/s5w31Fj0LhaMZplOpqMrwa8+PQ51VeSR62l7H5rXPrp/6Z/nxQFg8xLqaf rZnRK9zWls4qhHy9uRVVpvQh8lh+RmC8H5lW+YoT0JT+uT1yhvyQ1jSCFvf0N9cxClkl gvMEhIUcrH0KVG8PEb5xABt+iYiD/2ZSmNXyUp5cPB7gTdUrjACaSWBHJu3KpEeVjZKt 4VX/lW8Ah7oovIvnqbowPz06e2PLWh4BCVYNjqzerY53xN2TpIGmhxgdh+FF5llESP1i kNQEC9p6FIt5N/x2Yd/tbbnY53HVQJ78zsDwzzt3UwLH8Xts+V0m0KTob1WwdIcofztg 2Gdg==
X-Gm-Message-State: AJcUukctXQeZv4CLuyJmEhxLHaQA+UIaD3ODqfOZAVNOaea6l75DbpfX Kv6O758eYgcAXlcu+3DxM05GJPX0F9EvQufZiGGqKA==
X-Google-Smtp-Source: ALg8bN4qDh1SXoz9jkoB2Cfal7YtV5h19CXnNCQOXdCgZRp9+oBQpzgSqphkrCN2GuRDghnsyzrg9GSbeCHfS/bUXnA=
X-Received: by 2002:a19:ca51:: with SMTP id h17mr13423589lfj.126.1547485037368;  Mon, 14 Jan 2019 08:57:17 -0800 (PST)
MIME-Version: 1.0
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de>
In-Reply-To: <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 14 Jan 2019 08:57:06 -0800
Message-ID: <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>,  Jonathan Hansford <jonathan@hansfords.net>, "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000f2b9a5057f6def97"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/9_eqCJ1Tsf9tzvUMEDt5yevknQE>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 16:57:24 -0000

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

On Mon, Jan 14, 2019 at 8:25 AM Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> For me, a confirmed commit is not complete if it can still timeout.
>
>
It is hard to imagine how a confirmed-commit could be considered complete
if the server is still waiting for the confirming commit.



> /js
>

Andy


>
> On Mon, Jan 14, 2019 at 04:01:59PM +0000, Jonathan Hansford wrote:
> > I think the text you refer to on page 45 is open to interpretation. If =
a
> > persistent confirmed commit has occurred then the changes have been
> > committed (albeit in a confirmed commit), and the candidate and running
> > configuration datastores are the same (unless and until the confirmed
> commit
> > times out). The text depends on the definition of 'modified' (and how t=
he
> > server detects it) and 'committed'.
> >
> > ------ Original Message ------
> > From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
> > To: "Jonathan Hansford" <jonathan@hansfords.net>
> > Cc: "netconf@ietf.org" <netconf@ietf.org>
> > Sent: 14/01/2019 15:40:26
> > Subject: Re: [Netconf] Is there a problem with confirmed commits?
> >
> > > It seems the <candidate> datastore should not be allowed to be used a=
s
> > > long as a persistent confirmed commit is still ongoing. I leave it to
> > > Martin to check whether this is said somewhere or an omission.
> > >
> > > In general, an application can't assume that <candidate> contains
> > > anything sensible. Hence, the proper way is to lock <candidate> and
> > > then to make sure it contains something sensible, i.e., issuing a
> > > discard_changes. And I think implementations should not allow an
> > > application to obtain a lock on <candidate> while a commit is active.
> > > The text on page 45 already says:
> > >
> > >       A lock MUST NOT be granted if any of the following conditions i=
s
> > >       true:
> > >
> > >       [...]
> > >
> > >       *  The target configuration is <candidate>, it has already been
> > >          modified, and these changes have not been committed or rolle=
d
> > >          back.
> > >
> > > I think this covers the case of an ongoing but not completed
> > > persistent confirmed commit, no?
> > >
> > > /js
> > >
> > > On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
> > > >  If a persistent confirmed commit has not timed out, the running
> > > >  configuration datastore will be the same as the candidate and
> > > >  <discard-changes> won't change its contents. Any edit of candidate
> will be
> > > >  based on the configuration resulting from the persistent confirmed
> commit.
> > > >
> > > >  If the persistent confirmed commit has timed out, the running
> configuration
> > > >  datastore will have reverted and <discard-changes> will change
> candidate.
> > > >  Any edit of candidate in this case will be based on the
> configuration prior
> > > >  to the start of the persistent confirmed commit.
> > > >
> > > >  ------ Original Message ------
> > > >  From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.d=
e
> >
> > > >  To: "Jonathan Hansford" <jonathan@hansfords.net>
> > > >  Cc: "netconf@ietf.org" <netconf@ietf.org>
> > > >  Sent: 14/01/2019 13:50:56
> > > >  Subject: Re: [Netconf] Is there a problem with confirmed commits?
> > > >
> > > >  > Hi,
> > > >  >
> > > >  > I have not yet understood where you see a problem. In general,
> > > >  > <candidate/> contains arbitrary stuff and hence it is the client=
's
> > > >  > responsibility to clear any arbitrary stuff found in <candidate/=
>
> > > >  > after obtaining a lock. If does not really matter whether there
> has
> > > >  > been a failed confirmed commit before or something else. I think
> the
> > > >  > general safe pattern is:
> > > >  >
> > > >  > lock(candidate)
> > > >  > discard_changes()
> > > >  > push_whatever_needed()
> > > >  > commit()
> > > >  > unlock(candidate)
> > > >  >
> > > >  > If you do a confirmed commit and the session disappears, then th=
e
> lock
> > > >  > will disappear as well. But I do not think this creates a race
> > > >  > condition, or I am just not yet seeing it. Perhaps it helps to
> write
> > > >  > down the sequence of actions that leads to a race.
> > > >  >
> > > >  > /js
> > > >  >
> > > >  > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford wrot=
e:
> > > >  > >  Hi,
> > > >  > >
> > > >  > >  No one seems to be responding to my email and proposed erratu=
m
> around
> > > >  > >  the subject of confirmed commits (apart from Martin), but I
> would really
> > > >  > >  like to know it I am missing something here. As far as I can
> tell,
> > > >  > >  session termination during a confirmed commit leads to
> unpredictable
> > > >  > >  behaviour and I would like to know whether anyone is using
> confirmed
> > > >  > >  commits and how (if at all) they address the issues outlined
> below. My
> > > >  > >  assumptions are that locks are used and :writable-running is
> not
> > > >  > >  supported.
> > > >  > >
> > > >  > >  If the <candidate> and <running> configuration datastores are
> locked to
> > > >  > >  prevent concurrent access, and a confirmed commit sequence is
> > > >  > >  interrupted by the session terminating, the locks will
> automatically be
> > > >  > >  released but the server MUST NOT accept a lock on <running>
> from any
> > > >  > >  session if another session has an ongoing confirmed <commit>.
> > > >  > >  Consequently, after session termination no client can acquire
> a <lock>
> > > >  > >  on <running>, not even the one that initiated the confirmed
> <commit>,
> > > >  > >  until after the confirmed <commit> has timed out. However, if
> the
> > > >  > >  confirmed <commit> included the <persist> parameter, the
> original client
> > > >  > >  could still issue a <commit> using the persist-id to complete
> the
> > > >  > >  sequence prior to the timeout, even without a lock.
> > > >  > >
> > > >  > >  Of course, the problem now is the race for the new lock on
> <candidate>.
> > > >  > >  If the original client is successful then all is good. But if
> a new
> > > >  > >  client locks <candidate> before the timeout on the confirmed
> commit,
> > > >  > >  whether or not they precede <lock> with <discard-changes>,
> <candidate>
> > > >  > >  will be the same as <running> and the new client will pick up
> everything
> > > >  > >  from the previous session. However, the client won=E2=80=99t =
be able
> to lock
> > > >  > >  <running> until after the timeout, at which point <running>
> reverts but
> > > >  > >  <candidate> still represents the previous session. If the
> client tries
> > > >  > >  to lock <candidate> after the timeout, <running> will have
> reverted and
> > > >  > >  the lock will only be granted after a <discard-changes> which
> will cause
> > > >  > >  the <candidate> to revert. So, depending on when the lock on
> <candidate>
> > > >  > >  occurs relative to the confirmed commit timeout, the client
> could be
> > > >  > >  editing <candidate> in one of two states. Further, before the
> timeout on
> > > >  > >  the confirmed commit, even if the new client has locked
> candidate, the
> > > >  > >  original client could still issue a confirming commit (they
> don=E2=80=99t need a
> > > >  > >  lock on <candidate> to do so) which would persistently commit
> any edits
> > > >  > >  made by the new client. NOTE: it is not the use of the
> persist-id that
> > > >  > >  introduces this behaviour; a new client would have the same
> problem even
> > > >  > >  if a confirmed commit was not intended to persist beyond a
> session
> > > >  > >  termination.
> > > >  > >
> > > >  > >  If the server also supports the :startup capability then, if
> the session
> > > >  > >  termination was due to the server rebooting, the behaviour
> above would
> > > >  > >  be further complicated by <running> now containing the
> configuration
> > > >  > >  from the <startup> configuration datastore.
> > > >  > >
> > > >  > >  Am I right?
> > > >  > >
> > > >  > >  Jonathan
> > > >  > >
> > > >  > >  ---
> > > >  > >  This email has been checked for viruses by Avast antivirus
> software.
> > > >  > >  https://www.avast.com/antivirus
> > > >  >
> > > >  > >  _______________________________________________
> > > >  > >  Netconf mailing list
> > > >  > >  Netconf@ietf.org
> > > >  > >  https://www.ietf.org/mailman/listinfo/netconf
> > > >  >
> > > >  >
> > > >  > --
> > > >  > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > > >  > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen |
> Germany
> > > >  > Fax:   +49 421 200 3103         <
> https://www.jacobs-university.de/>
> > >
> > > --
> > > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | German=
y
> > > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> >
>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Mon, Jan 14, 2019 at 8:25 AM Juergen Schoenwaelder &lt;=
<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jac=
obs-university.de</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p=
adding-left:1ex">For me, a confirmed commit is not complete if it can still=
 timeout.<br>
<br></blockquote><div><br></div><div>It is hard to imagine how a confirmed-=
commit could be considered complete</div><div>if the server is still waitin=
g for the confirming commit.</div><div><br></div><div>=C2=A0</div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">
/js<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
<br>
On Mon, Jan 14, 2019 at 04:01:59PM +0000, Jonathan Hansford wrote:<br>
&gt; I think the text you refer to on page 45 is open to interpretation. If=
 a<br>
&gt; persistent confirmed commit has occurred then the changes have been<br=
>
&gt; committed (albeit in a confirmed commit), and the candidate and runnin=
g<br>
&gt; configuration datastores are the same (unless and until the confirmed =
commit<br>
&gt; times out). The text depends on the definition of &#39;modified&#39; (=
and how the<br>
&gt; server detects it) and &#39;committed&#39;.<br>
&gt; <br>
&gt; ------ Original Message ------<br>
&gt; From: &quot;Juergen Schoenwaelder&quot; &lt;<a href=3D"mailto:j.schoen=
waelder@jacobs-university.de" target=3D"_blank">j.schoenwaelder@jacobs-univ=
ersity.de</a>&gt;<br>
&gt; To: &quot;Jonathan Hansford&quot; &lt;<a href=3D"mailto:jonathan@hansf=
ords.net" target=3D"_blank">jonathan@hansfords.net</a>&gt;<br>
&gt; Cc: &quot;<a href=3D"mailto:netconf@ietf.org" target=3D"_blank">netcon=
f@ietf.org</a>&quot; &lt;<a href=3D"mailto:netconf@ietf.org" target=3D"_bla=
nk">netconf@ietf.org</a>&gt;<br>
&gt; Sent: 14/01/2019 15:40:26<br>
&gt; Subject: Re: [Netconf] Is there a problem with confirmed commits?<br>
&gt; <br>
&gt; &gt; It seems the &lt;candidate&gt; datastore should not be allowed to=
 be used as<br>
&gt; &gt; long as a persistent confirmed commit is still ongoing. I leave i=
t to<br>
&gt; &gt; Martin to check whether this is said somewhere or an omission.<br=
>
&gt; &gt; <br>
&gt; &gt; In general, an application can&#39;t assume that &lt;candidate&gt=
; contains<br>
&gt; &gt; anything sensible. Hence, the proper way is to lock &lt;candidate=
&gt; and<br>
&gt; &gt; then to make sure it contains something sensible, i.e., issuing a=
<br>
&gt; &gt; discard_changes. And I think implementations should not allow an<=
br>
&gt; &gt; application to obtain a lock on &lt;candidate&gt; while a commit =
is active.<br>
&gt; &gt; The text on page 45 already says:<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0A lock MUST NOT be granted if any of th=
e following conditions is<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0true:<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0[...]<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0*=C2=A0 The target configuration is &lt=
;candidate&gt;, it has already been<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 modified, and these changes hav=
e not been committed or rolled<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 back.<br>
&gt; &gt; <br>
&gt; &gt; I think this covers the case of an ongoing but not completed<br>
&gt; &gt; persistent confirmed commit, no?<br>
&gt; &gt; <br>
&gt; &gt; /js<br>
&gt; &gt; <br>
&gt; &gt; On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote=
:<br>
&gt; &gt; &gt;=C2=A0 If a persistent confirmed commit has not timed out, th=
e running<br>
&gt; &gt; &gt;=C2=A0 configuration datastore will be the same as the candid=
ate and<br>
&gt; &gt; &gt;=C2=A0 &lt;discard-changes&gt; won&#39;t change its contents.=
 Any edit of candidate will be<br>
&gt; &gt; &gt;=C2=A0 based on the configuration resulting from the persiste=
nt confirmed commit.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt;=C2=A0 If the persistent confirmed commit has timed out, the =
running configuration<br>
&gt; &gt; &gt;=C2=A0 datastore will have reverted and &lt;discard-changes&g=
t; will change candidate.<br>
&gt; &gt; &gt;=C2=A0 Any edit of candidate in this case will be based on th=
e configuration prior<br>
&gt; &gt; &gt;=C2=A0 to the start of the persistent confirmed commit.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt;=C2=A0 ------ Original Message ------<br>
&gt; &gt; &gt;=C2=A0 From: &quot;Juergen Schoenwaelder&quot; &lt;<a href=3D=
"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_blank">j.schoenwae=
lder@jacobs-university.de</a>&gt;<br>
&gt; &gt; &gt;=C2=A0 To: &quot;Jonathan Hansford&quot; &lt;<a href=3D"mailt=
o:jonathan@hansfords.net" target=3D"_blank">jonathan@hansfords.net</a>&gt;<=
br>
&gt; &gt; &gt;=C2=A0 Cc: &quot;<a href=3D"mailto:netconf@ietf.org" target=
=3D"_blank">netconf@ietf.org</a>&quot; &lt;<a href=3D"mailto:netconf@ietf.o=
rg" target=3D"_blank">netconf@ietf.org</a>&gt;<br>
&gt; &gt; &gt;=C2=A0 Sent: 14/01/2019 13:50:56<br>
&gt; &gt; &gt;=C2=A0 Subject: Re: [Netconf] Is there a problem with confirm=
ed commits?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt;=C2=A0 &gt; Hi,<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; I have not yet understood where you see a problem=
. In general,<br>
&gt; &gt; &gt;=C2=A0 &gt; &lt;candidate/&gt; contains arbitrary stuff and h=
ence it is the client&#39;s<br>
&gt; &gt; &gt;=C2=A0 &gt; responsibility to clear any arbitrary stuff found=
 in &lt;candidate/&gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; after obtaining a lock. If does not really matter=
 whether there has<br>
&gt; &gt; &gt;=C2=A0 &gt; been a failed confirmed commit before or somethin=
g else. I think the<br>
&gt; &gt; &gt;=C2=A0 &gt; general safe pattern is:<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; lock(candidate)<br>
&gt; &gt; &gt;=C2=A0 &gt; discard_changes()<br>
&gt; &gt; &gt;=C2=A0 &gt; push_whatever_needed()<br>
&gt; &gt; &gt;=C2=A0 &gt; commit()<br>
&gt; &gt; &gt;=C2=A0 &gt; unlock(candidate)<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; If you do a confirmed commit and the session disa=
ppears, then the lock<br>
&gt; &gt; &gt;=C2=A0 &gt; will disappear as well. But I do not think this c=
reates a race<br>
&gt; &gt; &gt;=C2=A0 &gt; condition, or I am just not yet seeing it. Perhap=
s it helps to write<br>
&gt; &gt; &gt;=C2=A0 &gt; down the sequence of actions that leads to a race=
.<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; /js<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonatha=
n Hansford wrote:<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Hi,<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 No one seems to be responding to my em=
ail and proposed erratum around<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 the subject of confirmed commits (apar=
t from Martin), but I would really<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 like to know it I am missing something=
 here. As far as I can tell,<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 session termination during a confirmed=
 commit leads to unpredictable<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 behaviour and I would like to know whe=
ther anyone is using confirmed<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 commits and how (if at all) they addre=
ss the issues outlined below. My<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 assumptions are that locks are used an=
d :writable-running is not<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 supported.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 If the &lt;candidate&gt; and &lt;runni=
ng&gt; configuration datastores are locked to<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 prevent concurrent access, and a confi=
rmed commit sequence is<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 interrupted by the session terminating=
, the locks will automatically be<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 released but the server MUST NOT accep=
t a lock on &lt;running&gt; from any<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 session if another session has an ongo=
ing confirmed &lt;commit&gt;.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Consequently, after session terminatio=
n no client can acquire a &lt;lock&gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 on &lt;running&gt;, not even the one t=
hat initiated the confirmed &lt;commit&gt;,<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 until after the confirmed &lt;commit&g=
t; has timed out. However, if the<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 confirmed &lt;commit&gt; included the =
&lt;persist&gt; parameter, the original client<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 could still issue a &lt;commit&gt; usi=
ng the persist-id to complete the<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 sequence prior to the timeout, even wi=
thout a lock.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Of course, the problem now is the race=
 for the new lock on &lt;candidate&gt;.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 If the original client is successful t=
hen all is good. But if a new<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 client locks &lt;candidate&gt; before =
the timeout on the confirmed commit,<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 whether or not they precede &lt;lock&g=
t; with &lt;discard-changes&gt;, &lt;candidate&gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 will be the same as &lt;running&gt; an=
d the new client will pick up everything<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 from the previous session. However, th=
e client won=E2=80=99t be able to lock<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 &lt;running&gt; until after the timeou=
t, at which point &lt;running&gt; reverts but<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 &lt;candidate&gt; still represents the=
 previous session. If the client tries<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 to lock &lt;candidate&gt; after the ti=
meout, &lt;running&gt; will have reverted and<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 the lock will only be granted after a =
&lt;discard-changes&gt; which will cause<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 the &lt;candidate&gt; to revert. So, d=
epending on when the lock on &lt;candidate&gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 occurs relative to the confirmed commi=
t timeout, the client could be<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 editing &lt;candidate&gt; in one of tw=
o states. Further, before the timeout on<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 the confirmed commit, even if the new =
client has locked candidate, the<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 original client could still issue a co=
nfirming commit (they don=E2=80=99t need a<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 lock on &lt;candidate&gt; to do so) wh=
ich would persistently commit any edits<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 made by the new client. NOTE: it is no=
t the use of the persist-id that<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 introduces this behaviour; a new clien=
t would have the same problem even<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 if a confirmed commit was not intended=
 to persist beyond a session<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 termination.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 If the server also supports the :start=
up capability then, if the session<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 termination was due to the server rebo=
oting, the behaviour above would<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 be further complicated by &lt;running&=
gt; now containing the configuration<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 from the &lt;startup&gt; configuration=
 datastore.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Am I right?<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Jonathan<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 ---<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 This email has been checked for viruse=
s by Avast antivirus software.<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 <a href=3D"https://www.avast.com/antiv=
irus" rel=3D"noreferrer" target=3D"_blank">https://www.avast.com/antivirus<=
/a><br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 ______________________________________=
_________<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 Netconf mailing list<br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 <a href=3D"mailto:Netconf@ietf.org" ta=
rget=3D"_blank">Netconf@ietf.org</a><br>
&gt; &gt; &gt;=C2=A0 &gt; &gt;=C2=A0 <a href=3D"https://www.ietf.org/mailma=
n/listinfo/netconf" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.o=
rg/mailman/listinfo/netconf</a><br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt;<br>
&gt; &gt; &gt;=C2=A0 &gt; --<br>
&gt; &gt; &gt;=C2=A0 &gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0Jacobs University Bremen gGmbH<br>
&gt; &gt; &gt;=C2=A0 &gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0Campus Ring 1 | 28759 Bremen | Germany<br>
&gt; &gt; &gt;=C2=A0 &gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0&lt;<a href=3D"https://www.jacobs-university.de/" rel=
=3D"noreferrer" target=3D"_blank">https://www.jacobs-university.de/</a>&gt;=
<br>
&gt; &gt; <br>
&gt; &gt; --<br>
&gt; &gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jac=
obs University Bremen gGmbH<br>
&gt; &gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus R=
ing 1 | 28759 Bremen | Germany<br>
&gt; &gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0&lt;<a href=3D"https://www.jacobs-university.de/" rel=3D"noreferrer" tar=
get=3D"_blank">https://www.jacobs-university.de/</a>&gt;<br>
&gt; <br>
<br>
-- <br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"https://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_bla=
nk">https://www.jacobs-university.de/</a>&gt;<br>
<br>
_______________________________________________<br>
Netconf mailing list<br>
<a href=3D"mailto:Netconf@ietf.org" target=3D"_blank">Netconf@ietf.org</a><=
br>
<a href=3D"https://www.ietf.org/mailman/listinfo/netconf" rel=3D"noreferrer=
" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netconf</a><br>
</blockquote></div></div>

--000000000000f2b9a5057f6def97--


From nobody Mon Jan 14 12:07:32 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5436413128D for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 12:07:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level: 
X-Spam-Status: No, score=-1.989 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 JbNp2SZLRFMS for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 12:07:25 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 7D06213128A for <netconf@ietf.org>; Mon, 14 Jan 2019 12:07:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:MIME-Version:Message-ID:Date: Subject:In-Reply-To:References:To:From:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=R0r9hob2LzVywZZ3dos78K7xg2UCAEjyrefoqTj+MDA=; b=E3J1g1w8FIBPvoLAJ9TOpwTZq yvbBnt4NwbvEPCUHQVsgrE4v1j5tuhQ/zC+uu7rVMK4LTeUERNPl5IDUDMV3Hvv/NzXcTI+dazC2Q BMoMhh0bg1/+52im3xYSAlOEmIY7HRuA2UnGoyKpJjVtORGsbE2vb8GbE4sn1ue4QtFnLBC/TiNft CmUvYG5YyAcc5TXRsOs35zhivtqiLl3nLhj3MeC1OF32HBBax8ST34AJfg0MiGskcx1hzMEoRo1eD vHaE3yrs0tAsbx7q43GqnHqAsN069Plzz4c6ptUoUMncK+KE8u0yJmBzfnkfVCGENts4cv/hpb9vT gpl9SGNTQ==;
Received: from hansfords.plus.com ([84.92.116.209]:53876 helo=Vanguard) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gj8W3-000Q8u-Lc; Mon, 14 Jan 2019 20:07:24 +0000
From: <jonathan@hansfords.net>
To: "'Andy Bierman'" <andy@yumaworks.com>, "'Juergen Schoenwaelder'" <j.schoenwaelder@jacobs-university.de>, <netconf@ietf.org>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com>
In-Reply-To: <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com>
Date: Mon, 14 Jan 2019 20:07:26 -0000
Message-ID: <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0094_01D4AC44.C5623BD0"
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-gb
Thread-Index: AQLE0RaQ1Uz4CppdTOUjYIi6BiQW6AJU4JgjAirII84C+DiKVALt8NSsAdIEl3wA1BF+DqNmd0aA
X-Antivirus: Avast (VPS 190114-4, 14/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/20g-21_zOKRGSuXZx8UVLTa9Q5s>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 20:07:30 -0000

This is a multipart message in MIME format.

------=_NextPart_000_0094_01D4AC44.C5623BD0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

So what you are both saying is that a commit isn=E2=80=99t a commit if =
it is a confirmed commit that hasn=E2=80=99t been followed by a =
confirming commit. That being the case, it would be helpful if, rather =
than trying to come up with a form of words that clarifies the second =
bullet on page 45, the third bullet was modified to state =E2=80=98The =
target configuration is <candidate> or <running>, and another NETCONF =
session has an ongoing confirmed commit (Section 8.4).=E2=80=99

=20

In summary:

*	If a non-persistent confirmed commit suffers a session termination, =
any locks are released and the <running> configuration datastore rolls =
back to its state prior to the confirmed commit, or the first confirmed =
commit in a sequence, being issued.
*	If a persistent confirmed commit suffers a session termination, any =
locks are released but the <running> configuration datastore does not =
roll back until the confirmed commit times out. In the meantime, neither =
the <candidate> nor the <running> configuration datastore can be locked =
by any session, but any session that knows the persist-id can prevent =
the rollback on the timeout by issuing a confirming commit which will =
irrevocably commit the <candidate> configuration datastore to <running>.

=20

Is that everyone=E2=80=99s understanding of how non-persistent and =
persistent confirmed commits work?

=20

Just as a footnote, if the cause of the session termination was the =
device rebooting and the :startup capability was supported, the =
<running> configuration datastore will contain whatever was in the =
<startup> configuration datastore. However, a confirming commit on a =
persistent confirmed commit would still commit the <candidate> =
configuration datastore to <running>. If the purpose of the confirmed =
commit was to test the new configuration prior to making it permanent, =
it would therefore make sense to copy the <candidate> configuration =
datastore to the <startup> configuration datastore prior to the =
confirmed commit.

=20

From: Andy Bierman <andy@yumaworks.com>=20
Sent: 14 January 2019 16:57
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>; =
Jonathan Hansford <jonathan@hansfords.net>; netconf@ietf.org
Subject: Re: [Netconf] Is there a problem with confirmed commits?

=20

=20

=20

On Mon, Jan 14, 2019 at 8:25 AM Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de =
<mailto:j.schoenwaelder@jacobs-university.de> > wrote:

For me, a confirmed commit is not complete if it can still timeout.

=20

It is hard to imagine how a confirmed-commit could be considered =
complete

if the server is still waiting for the confirming commit.

=20

=20

/js

=20

Andy

=20


On Mon, Jan 14, 2019 at 04:01:59PM +0000, Jonathan Hansford wrote:
> I think the text you refer to on page 45 is open to interpretation. If =
a
> persistent confirmed commit has occurred then the changes have been
> committed (albeit in a confirmed commit), and the candidate and =
running
> configuration datastores are the same (unless and until the confirmed =
commit
> times out). The text depends on the definition of 'modified' (and how =
the
> server detects it) and 'committed'.
>=20
> ------ Original Message ------
> From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de =
<mailto:j.schoenwaelder@jacobs-university.de> >
> To: "Jonathan Hansford" <jonathan@hansfords.net =
<mailto:jonathan@hansfords.net> >
> Cc: "netconf@ietf.org <mailto:netconf@ietf.org> " <netconf@ietf.org =
<mailto:netconf@ietf.org> >
> Sent: 14/01/2019 15:40:26
> Subject: Re: [Netconf] Is there a problem with confirmed commits?
>=20
> > It seems the <candidate> datastore should not be allowed to be used =
as
> > long as a persistent confirmed commit is still ongoing. I leave it =
to
> > Martin to check whether this is said somewhere or an omission.
> >=20
> > In general, an application can't assume that <candidate> contains
> > anything sensible. Hence, the proper way is to lock <candidate> and
> > then to make sure it contains something sensible, i.e., issuing a
> > discard_changes. And I think implementations should not allow an
> > application to obtain a lock on <candidate> while a commit is =
active.
> > The text on page 45 already says:
> >=20
> >       A lock MUST NOT be granted if any of the following conditions =
is
> >       true:
> >=20
> >       [...]
> >=20
> >       *  The target configuration is <candidate>, it has already =
been
> >          modified, and these changes have not been committed or =
rolled
> >          back.
> >=20
> > I think this covers the case of an ongoing but not completed
> > persistent confirmed commit, no?
> >=20
> > /js
> >=20
> > On Mon, Jan 14, 2019 at 03:14:02PM +0000, Jonathan Hansford wrote:
> > >  If a persistent confirmed commit has not timed out, the running
> > >  configuration datastore will be the same as the candidate and
> > >  <discard-changes> won't change its contents. Any edit of =
candidate will be
> > >  based on the configuration resulting from the persistent =
confirmed commit.
> > >=20
> > >  If the persistent confirmed commit has timed out, the running =
configuration
> > >  datastore will have reverted and <discard-changes> will change =
candidate.
> > >  Any edit of candidate in this case will be based on the =
configuration prior
> > >  to the start of the persistent confirmed commit.
> > >=20
> > >  ------ Original Message ------
> > >  From: "Juergen Schoenwaelder" =
<j.schoenwaelder@jacobs-university.de =
<mailto:j.schoenwaelder@jacobs-university.de> >
> > >  To: "Jonathan Hansford" <jonathan@hansfords.net =
<mailto:jonathan@hansfords.net> >
> > >  Cc: "netconf@ietf.org <mailto:netconf@ietf.org> " =
<netconf@ietf.org <mailto:netconf@ietf.org> >
> > >  Sent: 14/01/2019 13:50:56
> > >  Subject: Re: [Netconf] Is there a problem with confirmed commits?
> > >=20
> > >  > Hi,
> > >  >
> > >  > I have not yet understood where you see a problem. In general,
> > >  > <candidate/> contains arbitrary stuff and hence it is the =
client's
> > >  > responsibility to clear any arbitrary stuff found in =
<candidate/>
> > >  > after obtaining a lock. If does not really matter whether there =
has
> > >  > been a failed confirmed commit before or something else. I =
think the
> > >  > general safe pattern is:
> > >  >
> > >  > lock(candidate)
> > >  > discard_changes()
> > >  > push_whatever_needed()
> > >  > commit()
> > >  > unlock(candidate)
> > >  >
> > >  > If you do a confirmed commit and the session disappears, then =
the lock
> > >  > will disappear as well. But I do not think this creates a race
> > >  > condition, or I am just not yet seeing it. Perhaps it helps to =
write
> > >  > down the sequence of actions that leads to a race.
> > >  >
> > >  > /js
> > >  >
> > >  > On Mon, Jan 14, 2019 at 12:50:38PM +0000, Jonathan Hansford =
wrote:
> > >  > >  Hi,
> > >  > >
> > >  > >  No one seems to be responding to my email and proposed =
erratum around
> > >  > >  the subject of confirmed commits (apart from Martin), but I =
would really
> > >  > >  like to know it I am missing something here. As far as I can =
tell,
> > >  > >  session termination during a confirmed commit leads to =
unpredictable
> > >  > >  behaviour and I would like to know whether anyone is using =
confirmed
> > >  > >  commits and how (if at all) they address the issues outlined =
below. My
> > >  > >  assumptions are that locks are used and :writable-running is =
not
> > >  > >  supported.
> > >  > >
> > >  > >  If the <candidate> and <running> configuration datastores =
are locked to
> > >  > >  prevent concurrent access, and a confirmed commit sequence =
is
> > >  > >  interrupted by the session terminating, the locks will =
automatically be
> > >  > >  released but the server MUST NOT accept a lock on <running> =
from any
> > >  > >  session if another session has an ongoing confirmed =
<commit>.
> > >  > >  Consequently, after session termination no client can =
acquire a <lock>
> > >  > >  on <running>, not even the one that initiated the confirmed =
<commit>,
> > >  > >  until after the confirmed <commit> has timed out. However, =
if the
> > >  > >  confirmed <commit> included the <persist> parameter, the =
original client
> > >  > >  could still issue a <commit> using the persist-id to =
complete the
> > >  > >  sequence prior to the timeout, even without a lock.
> > >  > >
> > >  > >  Of course, the problem now is the race for the new lock on =
<candidate>.
> > >  > >  If the original client is successful then all is good. But =
if a new
> > >  > >  client locks <candidate> before the timeout on the confirmed =
commit,
> > >  > >  whether or not they precede <lock> with <discard-changes>, =
<candidate>
> > >  > >  will be the same as <running> and the new client will pick =
up everything
> > >  > >  from the previous session. However, the client won=E2=80=99t =
be able to lock
> > >  > >  <running> until after the timeout, at which point <running> =
reverts but
> > >  > >  <candidate> still represents the previous session. If the =
client tries
> > >  > >  to lock <candidate> after the timeout, <running> will have =
reverted and
> > >  > >  the lock will only be granted after a <discard-changes> =
which will cause
> > >  > >  the <candidate> to revert. So, depending on when the lock on =
<candidate>
> > >  > >  occurs relative to the confirmed commit timeout, the client =
could be
> > >  > >  editing <candidate> in one of two states. Further, before =
the timeout on
> > >  > >  the confirmed commit, even if the new client has locked =
candidate, the
> > >  > >  original client could still issue a confirming commit (they =
don=E2=80=99t need a
> > >  > >  lock on <candidate> to do so) which would persistently =
commit any edits
> > >  > >  made by the new client. NOTE: it is not the use of the =
persist-id that
> > >  > >  introduces this behaviour; a new client would have the same =
problem even
> > >  > >  if a confirmed commit was not intended to persist beyond a =
session
> > >  > >  termination.
> > >  > >
> > >  > >  If the server also supports the :startup capability then, if =
the session
> > >  > >  termination was due to the server rebooting, the behaviour =
above would
> > >  > >  be further complicated by <running> now containing the =
configuration
> > >  > >  from the <startup> configuration datastore.
> > >  > >
> > >  > >  Am I right?
> > >  > >
> > >  > >  Jonathan
> > >  > >
> > >  > >  ---
> > >  > >  This email has been checked for viruses by Avast antivirus =
software.
> > >  > >  https://www.avast.com/antivirus
> > >  >
> > >  > >  _______________________________________________
> > >  > >  Netconf mailing list
> > >  > >  Netconf@ietf.org <mailto:Netconf@ietf.org>=20
> > >  > >  https://www.ietf.org/mailman/listinfo/netconf
> > >  >
> > >  >
> > >  > --
> > >  > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > >  > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | =
Germany
> > >  > Fax:   +49 421 200 3103         =
<https://www.jacobs-university.de/>
> >=20
> > --
> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | =
Germany
> > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>=20

--=20
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

_______________________________________________
Netconf mailing list
Netconf@ietf.org <mailto:Netconf@ietf.org>=20
https://www.ietf.org/mailman/listinfo/netconf


------=_NextPart_000_0094_01D4AC44.C5623BD0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft=
 Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;}
span.EmailStyle19
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;}
=2EMsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:602685576;
	mso-list-type:hybrid;
	mso-list-template-ids:-69178976 134807553 134807555 134807557 134807553 13=
4807555 134807557 134807553 134807555 134807557;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-GB link=3Dblue vli=
nk=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span style=3D'm=
so-fareast-language:EN-US'>So what you are both saying is that a commit isn=
=E2=80=99t a commit if it is a confirmed commit that hasn=E2=80=99t been fo=
llowed by a confirming commit. That being the case, it would be helpful if,=
 rather than trying to come up with a form of words that clarifies the seco=
nd bullet on page 45, the third bullet was modified to state =E2=80=98The t=
arget configuration is &lt;candidate&gt; or &lt;running&gt;, and another NE=
TCONF session has an ongoing confirmed commit (Section 8.4).=E2=80=99<o:p><=
/o:p></span></p><p class=3DMsoNormal><span style=3D'mso-fareast-language:EN=
-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'mso-fa=
reast-language:EN-US'>In summary:<o:p></o:p></span></p><ul style=3D'margin-=
top:0cm' type=3Ddisc><li class=3DMsoListParagraph style=3D'margin-left:0cm;=
mso-list:l0 level1 lfo1'><span style=3D'mso-fareast-language:EN-US'>If a no=
n-persistent confirmed commit suffers a session termination, any locks are =
released and the &lt;running&gt; configuration datastore rolls back to its =
state prior to the confirmed commit, or the first confirmed commit in a seq=
uence, being issued.<o:p></o:p></span></li><li class=3DMsoListParagraph sty=
le=3D'margin-left:0cm;mso-list:l0 level1 lfo1'><span style=3D'mso-fareast-l=
anguage:EN-US'>If a persistent confirmed commit suffers a session terminati=
on, any locks are released but the &lt;running&gt; configuration datastore =
does not roll back until the confirmed commit times out. In the meantime, n=
either the &lt;candidate&gt; nor the &lt;running&gt; configuration datastor=
e can be locked by any session, but any session that knows the persist-id c=
an prevent the rollback on the timeout by issuing a confirming commit which=
 will irrevocably commit the &lt;candidate&gt; configuration datastore to &=
lt;running&gt;.<o:p></o:p></span></li></ul><p class=3DMsoNormal><span style=
=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoN=
ormal><span style=3D'mso-fareast-language:EN-US'>Is that everyone=E2=80=99s=
 understanding of how non-persistent and persistent confirmed commits work?=
<o:p></o:p></span></p><p class=3DMsoNormal><span style=3D'mso-fareast-langu=
age:EN-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'=
mso-fareast-language:EN-US'>Just as a footnote, if the cause of the session=
 termination was the device rebooting and the :startup capability was suppo=
rted, the &lt;running&gt; configuration datastore will contain whatever was=
 in the &lt;startup&gt; configuration datastore. However, a confirming comm=
it on a persistent confirmed commit would still commit the &lt;candidate&gt=
; configuration datastore to &lt;running&gt;. If the purpose of the confirm=
ed commit was to test the new configuration prior to making it permanent, i=
t would therefore make sense to copy the &lt;candidate&gt; configuration da=
tastore to the &lt;startup&gt; configuration datastore prior to the confirm=
ed commit.<o:p></o:p></span></p><p class=3DMsoNormal><span style=3D'mso-far=
east-language:EN-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><b><s=
pan lang=3DEN-US>From:</span></b><span lang=3DEN-US> Andy Bierman &lt;andy@=
yumaworks.com&gt; <br><b>Sent:</b> 14 January 2019 16:57<br><b>To:</b> Juer=
gen Schoenwaelder &lt;j.schoenwaelder@jacobs-university.de&gt;; Jonathan Ha=
nsford &lt;jonathan@hansfords.net&gt;; netconf@ietf.org<br><b>Subject:</b> =
Re: [Netconf] Is there a problem with confirmed commits?<o:p></o:p></span><=
/p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal=
><o:p>&nbsp;</o:p></p></div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><div>=
<div><p class=3DMsoNormal>On Mon, Jan 14, 2019 at 8:25 AM Juergen Schoenwae=
lder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwa=
elder@jacobs-university.de</a>&gt; wrote:<o:p></o:p></p></div><blockquote s=
tyle=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0=
pt;margin-left:4.8pt;margin-right:0cm'><p class=3DMsoNormal style=3D'margin=
-bottom:12.0pt'>For me, a confirmed commit is not complete if it can still =
timeout.<o:p></o:p></p></blockquote><div><p class=3DMsoNormal><o:p>&nbsp;</=
o:p></p></div><div><p class=3DMsoNormal>It is hard to imagine how a confirm=
ed-commit could be considered complete<o:p></o:p></p></div><div><p class=3D=
MsoNormal>if the server is still waiting for the confirming commit.<o:p></o=
:p></p></div><div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p c=
lass=3DMsoNormal>&nbsp;<o:p></o:p></p></div><blockquote style=3D'border:non=
e;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8=
pt;margin-right:0cm'><p class=3DMsoNormal>/js<o:p></o:p></p></blockquote><d=
iv><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=3DMsoNorma=
l>Andy<o:p></o:p></p></div><div><p class=3DMsoNormal>&nbsp;<o:p></o:p></p><=
/div><blockquote style=3D'border:none;border-left:solid #CCCCCC 1.0pt;paddi=
ng:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=3DMsoNorm=
al><br>On Mon, Jan 14, 2019 at 04:01:59PM +0000, Jonathan Hansford wrote:<b=
r>&gt; I think the text you refer to on page 45 is open to interpretation. =
If a<br>&gt; persistent confirmed commit has occurred then the changes have=
 been<br>&gt; committed (albeit in a confirmed commit), and the candidate a=
nd running<br>&gt; configuration datastores are the same (unless and until =
the confirmed commit<br>&gt; times out). The text depends on the definition=
 of 'modified' (and how the<br>&gt; server detects it) and 'committed'.<br>=
&gt; <br>&gt; ------ Original Message ------<br>&gt; From: &quot;Juergen Sc=
hoenwaelder&quot; &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.d=
e" target=3D"_blank">j.schoenwaelder@jacobs-university.de</a>&gt;<br>&gt; T=
o: &quot;Jonathan Hansford&quot; &lt;<a href=3D"mailto:jonathan@hansfords.n=
et" target=3D"_blank">jonathan@hansfords.net</a>&gt;<br>&gt; Cc: &quot;<a h=
ref=3D"mailto:netconf@ietf.org" target=3D"_blank">netconf@ietf.org</a>&quot=
; &lt;<a href=3D"mailto:netconf@ietf.org" target=3D"_blank">netconf@ietf.or=
g</a>&gt;<br>&gt; Sent: 14/01/2019 15:40:26<br>&gt; Subject: Re: [Netconf] =
Is there a problem with confirmed commits?<br>&gt; <br>&gt; &gt; It seems t=
he &lt;candidate&gt; datastore should not be allowed to be used as<br>&gt; =
&gt; long as a persistent confirmed commit is still ongoing. I leave it to<=
br>&gt; &gt; Martin to check whether this is said somewhere or an omission.=
<br>&gt; &gt; <br>&gt; &gt; In general, an application can't assume that &l=
t;candidate&gt; contains<br>&gt; &gt; anything sensible. Hence, the proper =
way is to lock &lt;candidate&gt; and<br>&gt; &gt; then to make sure it cont=
ains something sensible, i.e., issuing a<br>&gt; &gt; discard_changes. And =
I think implementations should not allow an<br>&gt; &gt; application to obt=
ain a lock on &lt;candidate&gt; while a commit is active.<br>&gt; &gt; The =
text on page 45 already says:<br>&gt; &gt; <br>&gt; &gt;&nbsp; &nbsp; &nbsp=
; &nbsp;A lock MUST NOT be granted if any of the following conditions is<br=
>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp;true:<br>&gt; &gt; <br>&gt; &gt;&nbsp;=
 &nbsp; &nbsp; &nbsp;[...]<br>&gt; &gt; <br>&gt; &gt;&nbsp; &nbsp; &nbsp; &=
nbsp;*&nbsp; The target configuration is &lt;candidate&gt;, it has already =
been<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; modified, and these cha=
nges have not been committed or rolled<br>&gt; &gt;&nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; back.<br>&gt; &gt; <br>&gt; &gt; I think this covers the case of=
 an ongoing but not completed<br>&gt; &gt; persistent confirmed commit, no?=
<br>&gt; &gt; <br>&gt; &gt; /js<br>&gt; &gt; <br>&gt; &gt; On Mon, Jan 14, =
2019 at 03:14:02PM +0000, Jonathan Hansford wrote:<br>&gt; &gt; &gt;&nbsp; =
If a persistent confirmed commit has not timed out, the running<br>&gt; &gt=
; &gt;&nbsp; configuration datastore will be the same as the candidate and<=
br>&gt; &gt; &gt;&nbsp; &lt;discard-changes&gt; won't change its contents. =
Any edit of candidate will be<br>&gt; &gt; &gt;&nbsp; based on the configur=
ation resulting from the persistent confirmed commit.<br>&gt; &gt; &gt; <br=
>&gt; &gt; &gt;&nbsp; If the persistent confirmed commit has timed out, the=
 running configuration<br>&gt; &gt; &gt;&nbsp; datastore will have reverted=
 and &lt;discard-changes&gt; will change candidate.<br>&gt; &gt; &gt;&nbsp;=
 Any edit of candidate in this case will be based on the configuration prio=
r<br>&gt; &gt; &gt;&nbsp; to the start of the persistent confirmed commit.<=
br>&gt; &gt; &gt; <br>&gt; &gt; &gt;&nbsp; ------ Original Message ------<b=
r>&gt; &gt; &gt;&nbsp; From: &quot;Juergen Schoenwaelder&quot; &lt;<a href=
=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_blank">j.schoen=
waelder@jacobs-university.de</a>&gt;<br>&gt; &gt; &gt;&nbsp; To: &quot;Jona=
than Hansford&quot; &lt;<a href=3D"mailto:jonathan@hansfords.net" target=3D=
"_blank">jonathan@hansfords.net</a>&gt;<br>&gt; &gt; &gt;&nbsp; Cc: &quot;<=
a href=3D"mailto:netconf@ietf.org" target=3D"_blank">netconf@ietf.org</a>&q=
uot; &lt;<a href=3D"mailto:netconf@ietf.org" target=3D"_blank">netconf@ietf=
=2Eorg</a>&gt;<br>&gt; &gt; &gt;&nbsp; Sent: 14/01/2019 13:50:56<br>&gt; &g=
t; &gt;&nbsp; Subject: Re: [Netconf] Is there a problem with confirmed comm=
its?<br>&gt; &gt; &gt; <br>&gt; &gt; &gt;&nbsp; &gt; Hi,<br>&gt; &gt; &gt;&=
nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; I have not yet understood where you=
 see a problem. In general,<br>&gt; &gt; &gt;&nbsp; &gt; &lt;candidate/&gt;=
 contains arbitrary stuff and hence it is the client's<br>&gt; &gt; &gt;&nb=
sp; &gt; responsibility to clear any arbitrary stuff found in &lt;candidate=
/&gt;<br>&gt; &gt; &gt;&nbsp; &gt; after obtaining a lock. If does not real=
ly matter whether there has<br>&gt; &gt; &gt;&nbsp; &gt; been a failed conf=
irmed commit before or something else. I think the<br>&gt; &gt; &gt;&nbsp; =
&gt; general safe pattern is:<br>&gt; &gt; &gt;&nbsp; &gt;<br>&gt; &gt; &gt=
;&nbsp; &gt; lock(candidate)<br>&gt; &gt; &gt;&nbsp; &gt; discard_changes()=
<br>&gt; &gt; &gt;&nbsp; &gt; push_whatever_needed()<br>&gt; &gt; &gt;&nbsp=
; &gt; commit()<br>&gt; &gt; &gt;&nbsp; &gt; unlock(candidate)<br>&gt; &gt;=
 &gt;&nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; If you do a confirmed commit =
and the session disappears, then the lock<br>&gt; &gt; &gt;&nbsp; &gt; will=
 disappear as well. But I do not think this creates a race<br>&gt; &gt; &gt=
;&nbsp; &gt; condition, or I am just not yet seeing it. Perhaps it helps to=
 write<br>&gt; &gt; &gt;&nbsp; &gt; down the sequence of actions that leads=
 to a race.<br>&gt; &gt; &gt;&nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; /js<b=
r>&gt; &gt; &gt;&nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; On Mon, Jan 14, 20=
19 at 12:50:38PM +0000, Jonathan Hansford wrote:<br>&gt; &gt; &gt;&nbsp; &g=
t; &gt;&nbsp; Hi,<br>&gt; &gt; &gt;&nbsp; &gt; &gt;<br>&gt; &gt; &gt;&nbsp;=
 &gt; &gt;&nbsp; No one seems to be responding to my email and proposed err=
atum around<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; the subject of confirme=
d commits (apart from Martin), but I would really<br>&gt; &gt; &gt;&nbsp; &=
gt; &gt;&nbsp; like to know it I am missing something here. As far as I can=
 tell,<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; session termination during a=
 confirmed commit leads to unpredictable<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&=
nbsp; behaviour and I would like to know whether anyone is using confirmed<=
br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; commits and how (if at all) they ad=
dress the issues outlined below. My<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp;=
 assumptions are that locks are used and :writable-running is not<br>&gt; &=
gt; &gt;&nbsp; &gt; &gt;&nbsp; supported.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;=
<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; If the &lt;candidate&gt; and &lt;r=
unning&gt; configuration datastores are locked to<br>&gt; &gt; &gt;&nbsp; &=
gt; &gt;&nbsp; prevent concurrent access, and a confirmed commit sequence i=
s<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; interrupted by the session termin=
ating, the locks will automatically be<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nb=
sp; released but the server MUST NOT accept a lock on &lt;running&gt; from =
any<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; session if another session has =
an ongoing confirmed &lt;commit&gt;.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp=
; Consequently, after session termination no client can acquire a &lt;lock&=
gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; on &lt;running&gt;, not even th=
e one that initiated the confirmed &lt;commit&gt;,<br>&gt; &gt; &gt;&nbsp; =
&gt; &gt;&nbsp; until after the confirmed &lt;commit&gt; has timed out. How=
ever, if the<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; confirmed &lt;commit&g=
t; included the &lt;persist&gt; parameter, the original client<br>&gt; &gt;=
 &gt;&nbsp; &gt; &gt;&nbsp; could still issue a &lt;commit&gt; using the pe=
rsist-id to complete the<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; sequence p=
rior to the timeout, even without a lock.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;=
<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; Of course, the problem now is the =
race for the new lock on &lt;candidate&gt;.<br>&gt; &gt; &gt;&nbsp; &gt; &g=
t;&nbsp; If the original client is successful then all is good. But if a ne=
w<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; client locks &lt;candidate&gt; be=
fore the timeout on the confirmed commit,<br>&gt; &gt; &gt;&nbsp; &gt; &gt;=
&nbsp; whether or not they precede &lt;lock&gt; with &lt;discard-changes&gt=
;, &lt;candidate&gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; will be the sa=
me as &lt;running&gt; and the new client will pick up everything<br>&gt; &g=
t; &gt;&nbsp; &gt; &gt;&nbsp; from the previous session. However, the clien=
t won=E2=80=99t be able to lock<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; &lt=
;running&gt; until after the timeout, at which point &lt;running&gt; revert=
s but<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; &lt;candidate&gt; still repre=
sents the previous session. If the client tries<br>&gt; &gt; &gt;&nbsp; &gt=
; &gt;&nbsp; to lock &lt;candidate&gt; after the timeout, &lt;running&gt; w=
ill have reverted and<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; the lock will=
 only be granted after a &lt;discard-changes&gt; which will cause<br>&gt; &=
gt; &gt;&nbsp; &gt; &gt;&nbsp; the &lt;candidate&gt; to revert. So, dependi=
ng on when the lock on &lt;candidate&gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&=
nbsp; occurs relative to the confirmed commit timeout, the client could be<=
br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; editing &lt;candidate&gt; in one of=
 two states. Further, before the timeout on<br>&gt; &gt; &gt;&nbsp; &gt; &g=
t;&nbsp; the confirmed commit, even if the new client has locked candidate,=
 the<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; original client could still is=
sue a confirming commit (they don=E2=80=99t need a<br>&gt; &gt; &gt;&nbsp; =
&gt; &gt;&nbsp; lock on &lt;candidate&gt; to do so) which would persistentl=
y commit any edits<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; made by the new =
client. NOTE: it is not the use of the persist-id that<br>&gt; &gt; &gt;&nb=
sp; &gt; &gt;&nbsp; introduces this behaviour; a new client would have the =
same problem even<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; if a confirmed co=
mmit was not intended to persist beyond a session<br>&gt; &gt; &gt;&nbsp; &=
gt; &gt;&nbsp; termination.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;<br>&gt; &gt; =
&gt;&nbsp; &gt; &gt;&nbsp; If the server also supports the :startup capabil=
ity then, if the session<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; terminatio=
n was due to the server rebooting, the behaviour above would<br>&gt; &gt; &=
gt;&nbsp; &gt; &gt;&nbsp; be further complicated by &lt;running&gt; now con=
taining the configuration<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; from the =
&lt;startup&gt; configuration datastore.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;<=
br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; Am I right?<br>&gt; &gt; &gt;&nbsp;=
 &gt; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; Jonathan<br>&gt; &gt; &g=
t;&nbsp; &gt; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; ---<br>&gt; &gt;=
 &gt;&nbsp; &gt; &gt;&nbsp; This email has been checked for viruses by Avas=
t antivirus software.<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; <a href=3D"ht=
tps://www.avast.com/antivirus" target=3D"_blank">https://www.avast.com/anti=
virus</a><br>&gt; &gt; &gt;&nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nb=
sp; _______________________________________________<br>&gt; &gt; &gt;&nbsp;=
 &gt; &gt;&nbsp; Netconf mailing list<br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbs=
p; <a href=3D"mailto:Netconf@ietf.org" target=3D"_blank">Netconf@ietf.org</=
a><br>&gt; &gt; &gt;&nbsp; &gt; &gt;&nbsp; <a href=3D"https://www.ietf.org/=
mailman/listinfo/netconf" target=3D"_blank">https://www.ietf.org/mailman/li=
stinfo/netconf</a><br>&gt; &gt; &gt;&nbsp; &gt;<br>&gt; &gt; &gt;&nbsp; &gt=
;<br>&gt; &gt; &gt;&nbsp; &gt; --<br>&gt; &gt; &gt;&nbsp; &gt; Juergen Scho=
enwaelder&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Jacobs University Bremen =
gGmbH<br>&gt; &gt; &gt;&nbsp; &gt; Phone: +49 421 200 3587&nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp;Campus Ring 1 | 28759 Bremen | Germany<br>&gt; &gt; &gt;&n=
bsp; &gt; Fax:&nbsp; &nbsp;+49 421 200 3103&nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p;&lt;<a href=3D"https://www.jacobs-university.de/" target=3D"_blank">https=
://www.jacobs-university.de/</a>&gt;<br>&gt; &gt; <br>&gt; &gt; --<br>&gt; =
&gt; Juergen Schoenwaelder&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Jacobs U=
niversity Bremen gGmbH<br>&gt; &gt; Phone: +49 421 200 3587&nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;Campus Ring 1 | 28759 Bremen | Germany<br>&gt; &gt; Fax:&=
nbsp; &nbsp;+49 421 200 3103&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;<a href=
=3D"https://www.jacobs-university.de/" target=3D"_blank">https://www.jacobs=
-university.de/</a>&gt;<br>&gt; <br><br>-- <br>Juergen Schoenwaelder&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Jacobs University Bremen gGmbH<br>Phone: =
+49 421 200 3587&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Campus Ring 1 | 28759 Bre=
men | Germany<br>Fax:&nbsp; &nbsp;+49 421 200 3103&nbsp; &nbsp; &nbsp; &nbs=
p; &nbsp;&lt;<a href=3D"https://www.jacobs-university.de/" target=3D"_blank=
">https://www.jacobs-university.de/</a>&gt;<br><br>________________________=
_______________________<br>Netconf mailing list<br><a href=3D"mailto:Netcon=
f@ietf.org" target=3D"_blank">Netconf@ietf.org</a><br><a href=3D"https://ww=
w.ietf.org/mailman/listinfo/netconf" target=3D"_blank">https://www.ietf.org=
/mailman/listinfo/netconf</a><o:p></o:p></p></blockquote></div></div></div>=
<div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br />
<table style=3D"border-top: 1px solid #D3D4DE;">
	<tr>
        <td style=3D"width: 55px; padding-top: 13px;"><a href=3D"https://ww=
w.avast.com/sig-email?utm_medium=3Demail&utm_source=3Dlink&utm_campaign=3Ds=
ig-email&utm_content=3Demailclient" target=3D"_blank"><img src=3D"https://i=
pmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-re=
peat-v1.gif" alt=3D"" width=3D"46" height=3D"29" style=3D"width: 46px; heig=
ht: 29px;" /></a></td>
		<td style=3D"width: 470px; padding-top: 12px; color: #41424e; font-size: =
13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">Virus-=
free. <a href=3D"https://www.avast.com/sig-email?utm_medium=3Demail&utm_sou=
rce=3Dlink&utm_campaign=3Dsig-email&utm_content=3Demailclient" target=3D"_b=
lank" style=3D"color: #4453ea;">www.avast.com</a>
		</td>
	</tr>
</table><a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" heigh=
t=3D"1"> </a></div></body></html>
------=_NextPart_000_0094_01D4AC44.C5623BD0--



From nobody Mon Jan 14 12:43:48 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6171A1312E4; Mon, 14 Jan 2019 12:43:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.253
X-Spam-Level: 
X-Spam-Status: No, score=-5.253 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 ifku9APgTNif; Mon, 14 Jan 2019 12:43:36 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 113F11312A8; Mon, 14 Jan 2019 12:43:36 -0800 (PST)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0EKgT2v000459; Mon, 14 Jan 2019 12:43:31 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=wE8k7aLfkeGkRLfxpZkKYScWUfAgdyaKoJL14/W3iYc=; b=oulCqCGQn+40JNfNeIvKSp2RM2u5IXSOuhwsYS2JxbQTBPy8Unbd9qZO2kiMPOLgDhzF kZonI3LeSa0Qao3Y3fxA6tDwUj4jJDX1ArkjHoEI+hxNy9G/qwlJEbOzkrYAQTKgxzs3 4GsMP28FbPCVa0fTLTg0ORtysmb2dG8eF9syebTmTEkypuzex1lbvcLLdBQ3DweW5Juw B/8125/hUj4zVl8XagyJtd5Zd0XfFHyDu2RlUObW52ipsM2j9CNJalfT/XDOx5MQXT9d AN3EbV4xlejXfgOnXvcfmAXhTIp4nnBzwG32cBGgJimHui622qehru/uHWEnvsLA9m/3 7Q== 
Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2059.outbound.protection.outlook.com [104.47.36.59]) by mx0a-00273201.pphosted.com with ESMTP id 2q0p6ts2bf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 14 Jan 2019 12:43:31 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB3944.namprd05.prod.outlook.com (52.135.195.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.17; Mon, 14 Jan 2019 20:43:28 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1537.018; Mon, 14 Jan 2019 20:43:28 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>
CC: Adam Roach <adam@nostrum.com>, Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4CAAacWAIAAD4+AgAADiwD//8aMAIAActaAgAFSQoCAAHCvAIAEHSWA
Date: Mon, 14 Jan 2019 20:43:28 +0000
Message-ID: <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net>
References: <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net> <20190112005406.GU28515@kduck.mit.edu>
In-Reply-To: <20190112005406.GU28515@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB3944; 6:jblcMbGk//h9UKZHHdnC2pV+t3XZDgbFG8UrJIRaktQ2HeAzzgQFxu5Ti2uG56983EesHyqHgd/lMK6H6+ZHoKRUm8E37zK8Wg/MPaPnkKy1vuui+erhRSPY4hGrt7JOmzEYcsm+iuEOBp0iNuCmsYH8BfID7OJAqUit7rxB7kyM/PKJEedyL2+4inoFjyM6jbwxS7yIw1pehbStM0QLd7EGuEyX6ZgORMcnKxEYh5s7lH0/lK3xMLCDVULRiIjIrG7PRVd5QQvm/U46SaWBChZPiqcwGG5G9bmp/G/Lq6xbI9dA0pwB3+911nYucIrT883RATqxnjMsKwgQYklOanMRzge+P1A59hKdCQIh7JRBJ9rLZXidg1ifrzv6S8xFRjMRGfUkXmWUiRK54yXDslt6iacGgCO3WYZNz9W93Kb5T1VVmXEig/WujHJktHsaQ6XbRhUNI6n3SNsK9d9Tcw==; 5:hDO8jtrqcXbSxhHkziz3fU8d+/mH7tSVkzAYOAo+zy+Xnu5s90WI8+7EBv5G2e+1BW48yNBAJoandErhW3O9rKQe6PKpkcYfIClKV5cI/C+Mzxolr11IeAypk33cP7jAfHT3WvtcFxj9UIFI5H9OIoh0k0O1GIBGahHfnI05grhfabnbXvVJMCvz7ucML/RgiLmfZogme97XmBKZJU2Ecw==; 7:sT+t82+eGNwePMDcDQwJDJhHvMy02mnNNuYWvQdAk3Qt481Y1JfXMMkSq+jODUmabu8W1D8DoUheoWorfpSjKKCchZg06cdW0DnFxfxifeK4DAvM82DdLeo5GLKioiFjm++T6DNtI+2AnFIAivwBZA==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: a411554d-010a-4ddb-6817-08d67a60f065
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB3944; 
x-ms-traffictypediagnostic: BYAPR05MB3944:
x-microsoft-antispam-prvs: <BYAPR05MB39448E6CCFFF15857E81161EA5800@BYAPR05MB3944.namprd05.prod.outlook.com>
x-forefront-prvs: 0917DFAC67
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(346002)(396003)(366004)(136003)(40224003)(199004)(189003)(3846002)(6116002)(25786009)(97736004)(33656002)(105586002)(86362001)(7736002)(229853002)(83716004)(8936002)(71190400001)(2906002)(71200400001)(6916009)(81166006)(8676002)(305945005)(99286004)(81156014)(6486002)(6436002)(58126008)(54906003)(446003)(93886005)(76176011)(4326008)(11346002)(476003)(14444005)(6306002)(2171002)(26005)(53936002)(36756003)(5660300001)(66066001)(186003)(966005)(14454004)(478600001)(106356001)(114624004)(68736007)(486006)(6506007)(102836004)(82746002)(316002)(256004)(6512007)(2616005)(6246003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB3944; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: fx3jBADlxipEAgPZBvMSguDAW50iRWc0Q+4Sjh0Rb9JPnQmF1nxlbiwfCPYzuF24WU+lzkx81Udm2fmgS23SL2tzqDkLHSmRA++MbV6mJUbmAYeePLydJrRcq0KZUk3xgYQj8DIbwMycHi4vRrFLqE3Kqfk6LXKNkp35f/BNFjzYF0oXoG/QeZQ5gu94lpzQs8h6j7/Sqjdrmhq2bOMpQ5Nerlh9CsBT/zM2/PCqoFJyvrNX7vTZHDRiy1nW7ckI4vYvQmjrontt6vLVnT1xzm90woQaJ0nR8RM35yWOkQIdGUo/PSHq32Mc4Pkjht4TCZon/wOojxH2SPr5s0Nu3piS5lgNwjHXgcqWH95KFqkEKAaiJ1JSV6VR/ZHBzyIEO/FL7ZdQyDSwtI+ikYu5wq1U7Mqru3FcgitxKgM12sc=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <BEAB38C57B4E174ABDED75A4020218A6@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: a411554d-010a-4ddb-6817-08d67a60f065
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2019 20:43:28.6359 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB3944
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-14_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901140160
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/hCItEw93iXCCuKLGq9glF9jNth8>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 20:43:39 -0000

SGkgQmVuLA0KDQo+PiAgIEkganVzdCBwb3N0ZWQgLTI4IHRvIGFkZHJlc3MgdGhpcyBsYXN0IENP
TU1FTlQuDQo+PiAgIFBsZWFzZSByZXZpZXcgdG8gc2VlIGhvdyBpdCBjYW4gYmUgaW1wcm92ZWQu
DQo+PiANCj4+ICAgVGhlIGRyYWZ0IG5vIGxvbmdlciBzYXlzIGl0IHVzZXMgRE5TLVNEIGFuZCBp
dA0KPj4gICBub3cgcmVnaXN0ZXJzICJfc3p0cCIgaW4gRE5TIFVuZGVyc2NvcmUgR2xvYmFsDQo+
PiAgIFNjb3BlZCBFbnRyeSBSZWdpc3RyeS4NCj4+ICAgDQo+PiAgIEhlcmUncyBhIGRpcmVjdCBs
aW5rIHRvIHVwZGF0ZWQvbmV3IHNlY3Rpb25zOg0KPj4gICAgLSBodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90b3VjaC0yOCNzZWN0aW9uLTQuMg0KPj4g
ICAgLSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1uZXRjb25mLXplcm90
b3VjaC0yOCNzZWN0aW9uLTEwLjcNCj4NCj4gVGhhbmtzLCB0aGlzIHNlZW1zIHRvIGJlIGEgZmlu
ZSByZXNvbHV0aW9uIG9mIHRoZSBpc3N1ZXMuDQoNCkdyZWF0IQ0KDQoNCj4gV2hpbGUgbG9va2lu
ZyBhdCB0aGUgZGlmZiwgSSBtYW5hZ2VkIHRvIGNvbmZ1c2UgbXlzZWxmIGFzIHRvIHdoZXJlIGl0
IGlzDQo+IHNwZWNpZmllZCBob3cgdGhlIGRldmljZSBzZXJpYWwgbnVtYmVyIGlzIGVuY29kZWQg
aW4gdGhlIGlkZW50aXR5DQo+IGNlcnRpZmljYXRlIChzbyB0aGF0IHdlIGFyZSBjb25maWRlbnQg
dGhhdCB0aGF0IGVuY29kaW5nIGlzIHVzYWJsZSBhcyBhDQo+IEROUyBsYWJlbCkuICBBbSBJIGNv
cnJlY3QgaW4gYXNzdW1pbmcgdGhhdCB0aGF0J3MgaW4gODAyLjFBUj8gIChBbHNvLCB0aGUNCj4g
VVJMIGluIHRoZSAtMjggZ2F2ZSBtZSBhIDQwNCwgYW5kIEkgZW5kZWQgdXAgYXQNCj4gaHR0cHM6
Ly9zdGFuZGFyZHMuaWVlZS5vcmcvc3RhbmRhcmQvODAyXzFBUi0yMDE4Lmh0bWwgYnkgc2VhcmNo
aW5nLikNCg0KWWVzLCB0aGF0IGlzIHRoZSBjb3JyZWN0IFVSTC4gIEkndmUgZml4ZWQgaXQgaW4g
bXkgbG9jYWwgY29weS4gIFRoZSA4MDIuMUFSIHNwZWMgaXMgYmVoaW5kIGEgcGF5d2FsbCwgYnV0
IGl0IHNheXMgdGhpcyBhYm91dCB0aGUgc2VyaWFsIG51bWJlcjoNCg0KICBBbiBJRGV2SUQgY2Vy
dGlmaWNhdGUgc3ViamVjdCBmaWVsZCBiZSBub24tbnVsbCBhbmQgc2hvdWxkDQogIGluY2x1ZGUg
YSAgIHVuaXF1ZSBkZXZpY2Ugc2VyaWFsIG51bWJlciBlbmNvZGVkIGFzIHRoZSANCiAgc2VyaWFs
TnVtYmVyIGF0dHJpYnV0ZShSRkMgNTI4MCBYNTIwU2VyaWFsTnVtYmVyKS4NCg0KRnJvbSBSRkMg
NTI4MDoNCg0KICAgWDUyMFNlcmlhbE51bWJlciA6Oj0gICAgUHJpbnRhYmxlU3RyaW5nIChTSVpF
ICgxLi51Yi1zZXJpYWwtbnVtYmVyKSkNCg0KICAgdWItc2VyaWFsLW51bWJlciBJTlRFR0VSIDo6
PSA2NA0KDQogICBUaGUgY2hhcmFjdGVyIHN0cmluZyB0eXBlIFByaW50YWJsZVN0cmluZyBzdXBw
b3J0cyBhIHZlcnkgYmFzaWMgTGF0aW4NCiAgIGNoYXJhY3RlciBzZXQ6IHRoZSBsb3dlcmNhc2Ug
bGV0dGVycyAnYScgdGhyb3VnaCAneicsIHVwcGVyY2FzZQ0KICAgbGV0dGVycyAnQScgdGhyb3Vn
aCAnWicsIHRoZSBkaWdpdHMgJzAnIHRocm91Z2ggJzknLCBlbGV2ZW4gc3BlY2lhbA0KICAgY2hh
cmFjdGVycyAnID0gKCApICsgLCAtIC4gLyA6ID8gYW5kIHNwYWNlLg0KDQpBbnkgY29tbWVudHMv
Y29uY2VybnMgYWJvdXQgdGhpcz8NCg0KDQpQUzogSSdsbCBkZWZlciBwdWJsaXNoaW5nIHRoZSB1
cGRhdGUgdW50aWwgc3VyZSBub3RoaW5nIG1vcmUgaXMgY29taW5nLiAgDQoNClBQUzogTG9va2lu
ZyBhdCBEYXRhdHJhY2tlciwgYWxsIGl0ZW1zIGFyZSBjbGVhcmVkIGFuZCB0aGUgc3VtbWFyeSBu
b3cgc2F5cyAiSGFzIGVub3VnaCBwb3NpdGlvbnMgdG8gcGFzcyIuICBPdXQgb2YgY3VyaW9zaXR5
LCBob3cgZG9lcyB0aGUgZG9jdW1lbnQgcHJvZ3Jlc3MgdG8gdGhlIG5leHQgc3RhdGUgLSBpcyBp
dCB0aGUgUmVzcG9uc2libGUgQUQgcHVzaGluZyBhIGJ1dHRvbiBvZiBzb21lIHNvcnQ/DQoNCktl
bnQNCg0KDQo=


From nobody Mon Jan 14 14:12:10 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 31E1A1313C2; Mon, 14 Jan 2019 14:12:08 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 Z76mNwESWCzq; Mon, 14 Jan 2019 14:12:05 -0800 (PST)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-eopbgr790092.outbound.protection.outlook.com [40.107.79.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2AA341313BE; Mon, 14 Jan 2019 14:12:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SLnPQ9/b6u5KvvfwgIUC9YIu2bMkuQr8TkjvJvmmA8c=; b=Wm7+aeq6+MJGhtCSDWq7mbDwhXpaRfdjdzfrQcd+iumJIqQJ3jiUgqS863cPSGHou9KiMp7RpygmAkb0l3MW/oY77kVRvZDvL3itiMjY8De81IXtmDygmOkzOBjPI/oEb4EAQKgy9xrf83Fza5msh8vnBnvsOiHkwYWpUYCTOLI=
Received: from SN2PR01CA0028.prod.exchangelabs.com (2603:10b6:804:2::38) by DM5PR01MB2265.prod.exchangelabs.com (2603:10b6:3:8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.15; Mon, 14 Jan 2019 22:12:03 +0000
Received: from BY2NAM03FT031.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::201) by SN2PR01CA0028.outlook.office365.com (2603:10b6:804:2::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.13 via Frontend Transport; Mon, 14 Jan 2019 22:12:03 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT031.mail.protection.outlook.com (10.152.84.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Mon, 14 Jan 2019 22:12:02 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0EMBuug004578 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 14 Jan 2019 17:11:58 -0500
Date: Mon, 14 Jan 2019 16:11:56 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Kent Watsen <kwatsen@juniper.net>
CC: Adam Roach <adam@nostrum.com>, Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190114221155.GL28515@kduck.mit.edu>
References: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net> <20190112005406.GU28515@kduck.mit.edu> <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(396003)(346002)(136003)(376002)(2980300002)(189003)(199004)(40224003)(356004)(7696005)(486006)(1076003)(229853002)(75432002)(316002)(55016002)(76176011)(47776003)(336012)(426003)(97756001)(106466001)(1941001)(966005)(46406003)(6306002)(186003)(26005)(53416004)(23726003)(50466002)(6916009)(58126008)(478600001)(8676002)(88552002)(246002)(11346002)(446003)(54906003)(2906002)(14444005)(106002)(8936002)(26826003)(476003)(126002)(16586007)(956004)(305945005)(93886005)(33656002)(786003)(4326008)(6246003)(104016004)(36906005)(86362001)(5660300001)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR01MB2265; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT031; 1:07vqWLBEgMqUdpdFonkU8BZqCMkUfP13+UgsxzeDpH9LOSnlcMW3szXcApxvp+VGXikWvwuK7qyvZeWn3izeQhqhOW6Vy2E7UP4tXYBo4i5hr1bIiHb9NWkj3lGfqn7j
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 88027ffb-5052-4f60-b1a3-08d67a6d4fd9
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:DM5PR01MB2265; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2265; 3:stZuPCQ0jKBI9SvKxHEkrplIedioAEJqwPWJe4d+k/wMWg1AXGtP3Cm9Y0x4RTqBHR1coIaAJxzHyp8VBI2vCYor/Z4/Wpl86oFGAL1xrCh4HMGrKy0nn6M6XWoYw+7862q0gBjLq/NYwr4YkErdGEIMXHs/Sv8bXOcgRukMEzpYoFGhdW0SKtbHvqPNjPyWa+CpNx24WtfCQKsu2oI1sPA3k6/eLA+/CdVS0SqQo8aoPAhX9sm8zpNoiLaVc39/Ndh0G3XlDMVny5t9c3/ma3V2eFBD+dQk/POQDREGQWM+N/N2KWZ60E8XT6O269EN4Z0UJoaqI9anKYwK6FEki4NgxlKVIHon+Gl98lSVRYU5lDpo6NCIoBSpSG201uRJ; 25:n+5B8QWmBMHshkPqA8JuUi+n9frr3IG3pSc5NzkKxVJFRIBHntg/MZ6+Fay7ykoOrfu7wZR8x/ToWmpBoCPjvc9zTw+O989zGrr8TGExgZGFuMsyHkFhZfur7yaHPEhuxZ8ZmUQ+jdtnsU4EueABFdqtYlQx1/D4aSkahxoQH90huuCYeIV8Yxbte+7F/HcdT1fFfoY98NW9qdfP0QsL8D2ht+TTpZUfi7yLRg2ONuE6AQHKLUnkNvXc9qtz11HeSelAq4ouKQo9Cz83GnqIIxl4NQ/74RC0GL2SWHFCVarGCOje4YqBB9Uo1i7Q08Ef8f6ylJliz+MgdzZeUAbQYA==
X-MS-TrafficTypeDiagnostic: DM5PR01MB2265:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2265; 31:xxZST5brx8qhWHozXn2zz+KFz2AqxIt3op0fRvwc9wFieIjdgYa6nlfSghnXrF8XgvH89S3Z/cfisxliZ5Y39pVSYQaAoyqKF8FLyTs3IHC4rDqcq7UhP+6ubW65W+7eMxb7yvVUGRFfBmtdn6vDymyeu5OKwK+AaGbSg9V0g0ys28HGfsfrCua3RoEB0/Mdgmk48xZEj8oNqPhh3Nzty4JsXMG6DT2Sbhe6Fh6ncts=; 20:LrtrnUtNVHFsS9sh1YP3qvxV0xKVJ6D7GM/VVrVc2vsakfMNHCtLDRApaBvEwmejrzhY4RqQm0ydI1R06YCZD5qCmeLJevNq0IT5Yz7MdQUwOEnlr7uuSCqIQz9ZpZBpUWtZ6iz6fogRvCQbPovalNh+aF9xIpnjkdsOx3oDA1cIBqEhhyTzw6B4H8wKBmVAHjIPY1V9pkqo+7SGmkmxpiMsVpOaKAnn12ZFbGay3YSL2Dt6iGTY9OWeDHZtaPgB7rgM+3RQADscqAmNkoKLIeAndAT48tJ5Ozyh5j+Kn7yGptMNI01s5GdE6+SdEawUTIpqwAErfH/S43rmk4fXL9VQvABtBOFQK8PYOprQOgefplQq+VWQdrauhXRoG27NgWPLmxLNaRHclVfblOnKSMKlEIIU6q5YqiGvK6xlqrTXIFKxr9pU6BNzE+UOOjkH4W2dxdr+wCN4zFWSUEX88u+GA2pdxDrSE2ExzzZaLd5vBxQeXv96lcUVOQSZcZ8ZH9pUs57HSjHhlXr9c2YbipwTw3ADf6ODqUPmSIivTWiNwMD0QrDdjcat4NnsFjPkf+quX8S5UZSml+ibSxKIi5R1TrWKA+wjL6/TshR0fDI=
X-Microsoft-Antispam-PRVS: <DM5PR01MB22650541E5618067330E71E1A0800@DM5PR01MB2265.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2265; 4:445TT9FijNLUw2ET7XI8RSA2JoMNEyT9gI0ghoEjnRaA+7qrJRKsj3433Qq6PdrIeVmO35xBOTEo3YXxpQGNzV1CLYh9lbqBKS2icduI0//IWdO08xjcG0BesYiRmXq35gYkyA+6Pb3rN9kdWCx/GJmGflUeJ/z7f6KTx+Kykk0bFWq+hHqlOkaE8wRhF0jNsASGlPQPiBcL8gtl67mtW0lpDhw4M5ftuzwoNoe9stdHvJ/p3l+lSn4rn+Njm4IzQmvM+oFEP6mz1X78krg/uQdXZgaR4rd1HPZgWXZDGhYqVDmbjUWPYyqWnihhYk50
X-Forefront-PRVS: 0917DFAC67
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR01MB2265; 23:pneRsXN85rNmxUB/zrW/o9w8ZrwCkq759tVa+OGjS?= =?us-ascii?Q?HiwLKAHpdZW77LB4VYMspBHonBx3c0LNUT+9+OIC95PGXcIZFnGwiHGviFvn?= =?us-ascii?Q?BLNLZ3zmDAVM4i3JrYrai8vyUJDvDG+6boThmmLWH+QziL6TGiuSYB7/4ioN?= =?us-ascii?Q?Rtze2mUYbdPPv+1WDZpbpNDgj3fmBj29mFFlnLcoOT2MZuSAU2S0fSD1wIZF?= =?us-ascii?Q?RcK531P485EfSWVWLtLbxtmNvL244O69qBeV8/QAWy39UL4SICOmiB6wcdyh?= =?us-ascii?Q?amdX/pr1ng40BuAHWCaDuHHs/3KuUy1VJc0qDAepL5CMGjrYoWxewRlvzGqV?= =?us-ascii?Q?FaRXQgp6MlISXgtqmsbhFpbVo3R6Msahq8eMUJjAskXWqBgWqRfBi59EIUuu?= =?us-ascii?Q?OgMNfXgYCCUwRzRU6KolsOpql0d2TCsmZL2V/SXTexOLOj50ACsdLiLYJziR?= =?us-ascii?Q?GXfR7usf3bV0o8X5NjsZLdxtHEONoA7SxCWKCZpSv6Xe5cDimcxK5thV7iF/?= =?us-ascii?Q?RHNbdb0Gzv0sJf8iPuNbwoEJ+AgGJb7r5NKLgZdVXnNBT325zD80on6qyQ1z?= =?us-ascii?Q?bYpntZWqQyhcsHJWaKISZUGh4Lbmkb4gQZRjC0CnK4uDfo07gcYWFqvoaztG?= =?us-ascii?Q?ld23xVD7HJQBSMNitGsSOTDxxENqe8+LsiuKW7v2l0TuhIPtLabICR98nof0?= =?us-ascii?Q?yQiKVkW67OqQ3i5UwzejEZM+rz6ilpo4b+G60BDvcawLKmBR5OGM8KkhPOuZ?= =?us-ascii?Q?6J55zXfO5xbwWa7FseBwlpWg2GLZmTmUh9n8bgDje6GLyPAJV8IC+Sh0AIKi?= =?us-ascii?Q?LVkir/0ijuQptJHKIGTgZBpK0r2AuBA2iPsnWFhpBoJQ452A9EPSZiSbrucy?= =?us-ascii?Q?81lFfcMW0aIuVwhjoqQ/Rybk6X20g0M6RrZsbotwJeU63O2EGUHr+AiB7Sm0?= =?us-ascii?Q?z4UIMcRL4ggn/WgIuimQbz0H38VA49oGmzajVxSSE+B+bCXzs47lTyVlGaKS?= =?us-ascii?Q?lMaC+wwRZqrw7/AVThGCIn3ad8DBBaco8nBPmA1BCfGx3FizsExN88OTs7wU?= =?us-ascii?Q?rkhPEe+4HZKWvihxoXJBD+iGhu5/XkMuiZ2CGzV1Asz1czXYLZFAKbmBKJ1M?= =?us-ascii?Q?jXLs9nSRu8/mKO8TJPzn1yUQkyhQncs0zFuesHQDCYPd86NHkPOPBpjqqJT7?= =?us-ascii?Q?2ZkoyS6zXKkQoVF28iDkHD48cDGq0VaXFmp6cOaE3Wti7lyb3IWMwXbOvOci?= =?us-ascii?Q?CaXqEp06jldrkppzI1cTfJYJCjfqNR+xdlUACOyjjteq8/xDICsv/C6F3bSF?= =?us-ascii?Q?syR47RrQqFh15XZWNVlOmE=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: rLt2M5o+hBMT0/CIZeVzyu6+IsZFW0alEkFmyGdOp7NmH7U7zIcjpQGG17P9ov0Z/hBtBxxN0G2rtwDdzfFDCFTj+6i8blIVQ8cF/syGs+FQLH4Kw818LLJEhF36TT0fOtujypvhPz8mMBLVhQrCXfpxx6rRt1TYV6IhZVYajn1za+ei7ILWb8hK4iIMihk5kechRBhNpvGGoNWzpqeUHnlsa4qeYfXCdrhFD+MwvnDM3Zd9C45fYPwcUuCrb0hSBBD15Icg0kEAAYl0QEjD2/vpgyh93fyYVFPXgjB4B3JKE36mXyeP1T/2eh9QJ4W5AjTWOa8mfQty+qThfWj7LQRG3Skicu5qNpbfrjYUVR0pyZPe1wAABeWN62YvorHF2+lvJ0nkztoXTT9tr64/0+wMc1PUOmMPZw7LQLsfxxs=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR01MB2265; 6:063j06M0lCyhCns/LcPGX8W35LARbpF6HYynwUcr8Av78r6ig6uCyzS7sVx2WqRTvBd6w+GfuRT7R0QbuCcXBed/37/zyOhJpFWtLZ0WGYMUWqmQO11LiSoCihG+ZorUqQMANM6Sw9F7yFijsa1G4CD99/uzEulgcMLPoaOqjy3cPtMlIeyQFzU3+ONJAEtUK4fEalWzPstj9vH7hxD9hx0xSYFS0z1kQ/kxz1vv3tY51Mhqnka1zYkGPQIpjL7dMmAl71Ba44dVwTjBsPiZwO+7yw7iyyEwWOvNmurrM0N2+3YgXxwP7VkHRXhp2wxJmtsGYgrK4obqv0CJW42rl8ZKde1p2uqc4e4xNaF0AtSmsdFyJGQGRtRj2jWAvLWtCr4sMmQoGqGnL4gbie1DBxF/qui0daFz+5z34p02ve88VP+aZJBzDnZtJyj3aHZ9r9xeR+KwszJsHUJRkMzEVg==; 5:nqbP/25Deil5UB3OnzzBzLPL/V8fgif8wRMHwWvGEZS0V3ZAqmQmHg6DNp0ItMvIsm8XRzyIWIRD55MLSvX5oNk4luxQtFdK+Kpx46BQU1XCppLd49RkOrIoQVbBkbWrATU+d/6bt8YTauVWTovTXJLGDEpLVBZx96Fzz9s2n3QKC/ck1Vt0Pcj2mWy2BXhV4ci9ufyFSY1iI8F5x1EWxA==; 7:KopOOQ+vbI/SLfgTef/X3wc8kBu9pMITjG2PMaGjS/3D/BlVX//X4MEr/zpjR5Tb3poAHz8n4gJ5K1pXhm4xNBaTyklTDzor9LbX4J+Iz0EY4zPR1wbgbLAQ7TnD+3asteZJG3Gz76g42TsTv2Yyfw==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2019 22:12:02.4975 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 88027ffb-5052-4f60-b1a3-08d67a6d4fd9
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR01MB2265
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/8iwsNLd9IC1YvmEBmywZxeMtoM0>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 22:12:08 -0000

On Mon, Jan 14, 2019 at 08:43:28PM +0000, Kent Watsen wrote:
> Hi Ben,
> 
> >>   I just posted -28 to address this last COMMENT.
> >>   Please review to see how it can be improved.
> >> 
> >>   The draft no longer says it uses DNS-SD and it
> >>   now registers "_sztp" in DNS Underscore Global
> >>   Scoped Entry Registry.
> >>   
> >>   Here's a direct link to updated/new sections:
> >>    - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-4.2
> >>    - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-10.7
> >
> > Thanks, this seems to be a fine resolution of the issues.
> 
> Great!
> 
> 
> > While looking at the diff, I managed to confuse myself as to where it is
> > specified how the device serial number is encoded in the identity
> > certificate (so that we are confident that that encoding is usable as a
> > DNS label).  Am I correct in assuming that that's in 802.1AR?  (Also, the
> > URL in the -28 gave me a 404, and I ended up at
> > https://standards.ieee.org/standard/802_1AR-2018.html by searching.)
> 
> Yes, that is the correct URL.  I've fixed it in my local copy.  The 802.1AR spec is behind a paywall, but it says this about the serial number:
> 
>   An IDevID certificate subject field be non-null and should
>   include a   unique device serial number encoded as the 
>   serialNumber attribute(RFC 5280 X520SerialNumber).
> 
> From RFC 5280:
> 
>    X520SerialNumber ::=    PrintableString (SIZE (1..ub-serial-number))
> 
>    ub-serial-number INTEGER ::= 64
> 
>    The character string type PrintableString supports a very basic Latin
>    character set: the lowercase letters 'a' through 'z', uppercase
>    letters 'A' through 'Z', the digits '0' through '9', eleven special
>    characters ' = ( ) + , - . / : ? and space.
> 
> Any comments/concerns about this?

Sigh.  There could be some excitement here (but might not be), but I think
I'm going to have to defer to some people with more DNS (and X.500)
expertise.  There's several potential (but not certain) issues here,
including at least:

(1) ub-serial-number is 64, and the maximum length of a DNS label is 64
octets, so we have no room for escaping or encoding at the margins.

(2) RFC 1034 suggests that DNS domain name comparisons should be performed
in a case-insensitive manner (for alphabetic ASCII a-z/A-Z), but that
labels themselves can contain arbitrary octets.  There is some placation
here in that X.520 appears to define the Serial Number attribute should use
a caseIgnoreMatch equality matching rule, so maybe this is a non-issue.

(3) Those extra characters (other than '-') are not allowed in DNS host
names.  AIUI, that technically shouldn't be a problem for this usage, but
I'm not 100% confident, and maybe some implementations are wrong.

(4) Using '.' in a label is pretty rare and require escaping for textual
presentation (but this is not inherently a fatal flaw and would not hit the
64-character limit on label length).

But on the whole, the question I want to ask myself here is along the lines
of "how likely is there to be implementation incompatibility in this
space?".  If serial numbers in practice are not using the full flexibility,
this could still be a non-issue.

> 
> PS: I'll defer publishing the update until sure nothing more is coming.  
> 
> PPS: Looking at Datatracker, all items are cleared and the summary now says "Has enough positions to pass".  Out of curiosity, how does the document progress to the next state - is it the Responsible AD pushing a button of some sort?

The next step is the responsible AD informing the Secretariat that the
document is approved.

-Benjamin


From nobody Mon Jan 14 14:32:29 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 12AFC131402 for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 14:32:28 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, 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 wwUjvpHg68cS for <netconf@ietfa.amsl.com>; Mon, 14 Jan 2019 14:32:25 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 30B09128766 for <netconf@ietf.org>; Mon, 14 Jan 2019 14:32:25 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id E66C0F85; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id t0fKAYDK31vs; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 96F8D20046; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id zavUdvojwatm; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb03.jacobs.jacobs-university.de [10.70.0.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 5495D20045; Mon, 14 Jan 2019 23:32:23 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Mon, 14 Jan 2019 23:32:22 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 43B933005A34F5; Mon, 14 Jan 2019 23:32:22 +0100 (CET)
Date: Mon, 14 Jan 2019 23:32:21 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: <jonathan@hansfords.net>
CC: 'Andy Bierman' <andy@yumaworks.com>, <netconf@ietf.org>
Message-ID: <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: jonathan@hansfords.net, 'Andy Bierman' <andy@yumaworks.com>, netconf@ietf.org
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/E3-EFrm6Vi6tTdzhvSALl7ARYrs>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 22:32:28 -0000

On Mon, Jan 14, 2019 at 08:07:26PM -0000, jonathan@hansfords.net wrote:
> 
> Just as a footnote, if the cause of the session termination was the device rebooting and the :startup capability was supported, the <running> configuration datastore will contain whatever was in the <startup> configuration datastore. However, a confirming commit on a persistent confirmed commit would still commit the <candidate> configuration datastore to <running>. If the purpose of the confirmed commit was to test the new configuration prior to making it permanent, it would therefore make sense to copy the <candidate> configuration datastore to the <startup> configuration datastore prior to the confirmed commit.
>

My understanding of a confirmed commit is:

    copy condidate to running and wait for a confirmation that
    everything is OK; if no confirmation is received within a certain
    time window, rollback to the original state of <running>.

The situation you describe is a bit unclear for me; when does the
device reboot, after the confirmed commit has been issued but before
<candidate> was copied to <running>? That would be a rare situation
and I have some doubts that implementations after the reboot would
start the confirmed commit or they would not execute a reboot before
copying <candidate> to <running>.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Mon Jan 14 17:07:52 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A8D512F1A2; Mon, 14 Jan 2019 17:07:51 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Andy Bierman <andy@yumaworks.com>
To: <yang-doctors@ietf.org>
Cc: draft-ietf-netconf-subscribed-notifications.all@ietf.org, netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.3
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154751447121.9624.9621514728857769626@ietfa.amsl.com>
Date: Mon, 14 Jan 2019 17:07:51 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/RL-rFM1KHvJdGIR-6eegc67fOtk>
Subject: [Netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 01:07:51 -0000

Reviewer: Andy Bierman
Review result: Ready with Issues

based on draft-21
ietf-subscribed-notifications@2018-12-19

General Comments:

  -- the document is well-written and the feature-set is
     very comprehensive. There are a lot of YANG features (10)
     but they are defined to allow for a large set of
     publisher platforms.

  -- the extensibility mechanisms for filters, transport,
     and encoding should be valuable over time. There is
     a risk of proprietary solutions that do not interoperate
     but this base YANG module provides enough functionality.
     Reliance on future augmentations is new but should be OK

  -- advanced use of groupings, refine-stmt and augment-stmt
     within groupings makes the module difficult for humans
     to fully understand without additional tools, and without
     the normative text outside the YANG module.

Issues:

I1) 1.4.  Relationship to RFC 5277

  -- this section should mention that stop-time is not coupled to
     notification replay like RFC 5277. This parameter can be used
     on any stream, even if replay is not supported at all.

I2) sec 2.1 para 5:
   If subscriber permissions change during the lifecycle of a
   subscription and event stream access is no longer permitted, then the
   subscription MUST be terminated.

  -- Why can't server suspend until NACM configured
   (i.e., MUST be terminated or suspended). Should be clear somewhere that
   suspend is for CPU and other resources, and NACM not considered
   to be a resource.

I3) sec 2.1 para 6:
   Event records MUST NOT be delivered to a receiver in a different
   order than they were placed onto an event stream.

  -- does this apply to subscription-state? Think not, they are not events
    placed in event stream. Need to allow ended or suspended to be sent
    head-of-line whenever state changes
  -- Maybe another table or more text should be added listing the
     notifications that indicates
       (a) sent-for-configured
       (b) sent-for-dynamic
       (c) inserted at end of event stream, middle, or sent head-of-line

     replay-completed         Y  Y  end
     subscription-completed   Y  N  end
     subscription-modified    Y  Y  middle [1]
     subscription-resumed     Y  Y  head [2]
     subscription-started     Y  N  head
     subscription-suspended   Y  Y  head
     subscription-terminated  Y  Y  head [3]

  -- [1] not clear where in the event stream subscription-modified is sent.
     Maybe implementation-dependent? e.g. does filter-change inserted
     at slot N means all events N+i are done with new filter?
  -- [2] not clear where in the event stream subscription-resumed is sent.
     There may be events ready to send. Clearly resumed is sent before
     any of these after transition to active state
  -- [3] not clear that subscription terminated right away then all
     events for all receivers are deleted and only subscription-terminated
     is sent to all receivers; sec 2.7.3 says this but not in module
  -- insert point may be specific to each receiver, not each subscription
  -- how long does the server wait for a receiver when sending
     subscription-terminated?

I4) sec 2.4.6: RPC Failures
  -- concern about a subscription-specific error reporting system
     must make sure protocol error reporting system is used correctly

  -- The error-tag value needs to be identified for each 'reason' identity

   2.  "modify-subscription-stream-error-info": This MUST be returned
       with the leaf "reason" populated if an RPC error reason has not
       been placed elsewhere within the transport portion of a failed
       "modify-subscription" RPC response.  This MUST be sent if hints

  -- all 3 paragraphs like this; unclear what "placed elsewhere"
      text means; not appropriate for MUST;  Only 3 fields seem
      to be relevant (error-tag, error-app-tag, error-info).
      Protcol operations are expected to document server requirements
      for these 3 fields, if applicable.  Only the error-tag
      is mandatory-to-use.

  -- the error assignments are extremely specific. e.g., it is not
     possible for <kill-subscription> to fail with an
     'insufficient-resources' error; Do not agree that scoping each
     identity to specific RPC operations is a good idea.

  -- how are errors in these parameters reported for configured
     subscriptions when <edit-config> is the RPC that has the error?
     How are the yang-data structs used for edit-config or commit errors?

I5) sec 2.5

   Multiple configured subscriptions MUST be supportable over
   a single transport session.

  -- why is this a MUST instead of SHOULD? explain harm to
     interoperability if not supported

I6) sec 2.5, para 3:

   On a receiver of a
   configured subscription, support for dynamic subscriptions is
   optional except where replaying missed event records is required.

  -- confusing because text in 1.3:
     Note that there is no mixing-and-matching of dynamic and configured
     operations on a single subscription.  Specifically, a configured
  -- clarify the receiver may have multiple subscriptions here
  -- not clear what "except where replaying..." text means


I7) leaf stream-xpath-filter: [multiple uses]

           The expression is evaluated in the following XPath context:

             o   The set of namespace declarations is the set of prefix
                 and namespace pairs for all YANG modules implemented
                 by the server, where the prefix is the YANG module
                 name and the namespace is as defined by the
                 'namespace' statement in the YANG module.

  -- This prefix processing is not done anywhere else in NETCONF
     or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
     should be required for processing of XML encoding.  YANG
     module prefixes are not required to be unique, unlike
     the prefix mappings in XML
  -- NMDA allows the same module to appear in multiple module-sets
     and different in each datastore. This text about "implemented by
     the server" does not work for NMDA


I8) leaf /subscriptions/subscription/encoding {
      when 'not(../transport) or derived-from(../transport,
      "sn:configurable-encoding")';
      type encoding;

  -- when-stmt is odd; there are no configurable-encodings specified
  -- there should be an example of a configurable encoding provided
  -- maybe add some text noting this is not the "encoding" leaf in
     establish-subscription.  Text is confusing since not clear how
     a dynamic subscription would use this leaf inside subscription-policy
     grouping
  -- it is only clear in the YANG tree that modify-subscription does
     not allow encoding to be changed.  Is this worth mentioning in
     the establish-subscription/input/encoding leaf?

I9) leaf /streams/stream/description {
        type string;
        mandatory true;

  -- it is odd to see an admin-string be mandatory. should add explanation
     why this is mandatory (in config false even more odd)

I10) leaf /subscriptions/subscription/configured-subscription-state
        if-feature "configured";
          enum concluded {
            value 3;
              description
                "A subscription is inactive as it has hit a stop time,
                but not yet been removed from configuration.";
          }

  -- it is also possible for stop-time to be reached but not all
     events delivered to all receivers on the subscription.
     Is this a different state or part of 'concluded'?

I11) extension subscription-state-notification {

       This statement is not for use
       outside of this YANG module.";

  -- this text should be removed. There is no value in limiting
     the scope of this extension.  It prevents even this WG from
     creating a module that uses the extension again.

I12)   notification replay-completed {

    description
      "This notification is sent to indicate that all of the replay
        notifications have been sent. It must not be sent for any other
       reason.";

  -- 2nd sentence should be removed. It is implied that the notification
     is only sent for its defined purpose.  No other notifications
     have this type of text.

I13)   notification subscription-started {
    sn:subscription-state-notification;
    if-feature "configured";
    description
      "This notification indicates that a subscription has started and
        notifications are beginning to be sent. This notification shall
       only be sent to receivers of a subscription; it does not
       constitute a general-purpose notification.";

  -- 2nd sentence is confusing; all notifications are sent to
     receivers of a subscription. last part is redundant since
     the sn:subscription-state-notification extension is used

I14)   rc:yang-data modify-subscription-stream-error-info {

      leaf filter-failure-hint {
        type string;
          description
            "Information describing where and/or why a provided filter
             was unsupportable for a subscription.";
      }

  -- rpc-error already allows more precise error reporting
     It uses error-tag, error-path, error-string, and error-info extensions
     to identify which parameters/conditions caused the RPC to be rejected.
     This error reporting will continue to be used, Not sure this failure-hint
     has any standards value. Perhaps real-use example can be added

I15)  notification subscription-completed {
    sn:subscription-state-notification;
    if-feature "configured";
    description
      "This notification is sent to indicate that a subscription has
       finished passing event records, as the 'stop-time' has been
       reached.";

  -- Could be more clear:
     A) replay in use and stop-time has past:
        * send replay-completed
        * send subscription-completed
     B) no replay and stop-time has past:
        * send subscription-completed

I16) leaf replay-previous-event-time {

  -- It is not clear why this leaf is needed
     How does this relate to replay-log-creation-time
     and replay-log-aged-time?

Nits:

2.3:
This document provide for several QoS parameters
  -- s/provide/provides

2.4, para 1:
  -- term 'target' usage is confusing, inconsistent with sec 1.2

reference-stmt:
    "RFC XXXX:Customized Subscriptions to a Publisher's Event Streams";
 -- Does not match document title

feature configured:
      "This feature indicates that configuration of subscription is
      supported.";
 -- s/subscription/subscriptions/

refine "target/stream/replay-start-time" {
  description
    "Indicates the time that a replay using for the streaming of

 -- sentence seems mangled; needs repair



From nobody Tue Jan 15 02:02:10 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8028F130DEA for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:02:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 8xMgSePhsRsH for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:02:05 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 E1351130E27 for <netconf@ietf.org>; Tue, 15 Jan 2019 02:02:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Transfer-Encoding:Content-Type: Mime-Version:Reply-To:References:In-Reply-To:Message-Id:Date:Cc:Subject:To: From:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=PXdK8RSBrxFTnT0qLQtwl6FHnBkP28slUhdVnd0WW+A=; b=cjSN41+tjlSEOzmsDhQekgnKJO RukB5xtyjmvOzSbopGQUBMOrTtl7IhpuVGW56tMwul+9HVfxCeraWEx+1eoHTW0AwpHNdQY4GXHoB fG+uxObY+FD4zLJ5sBvrIlFzvpqKOkkKVda6rUPyLO41wrUYzflEvGy7Of8VMt99Sp8hsPUfYGW9j NieRwuepCMIcQa5dXDZNblXK1sJUjL2EBe7VKObx4hdgbZ54gnqL2lKjx+YHhDe9GPCI8VFYggnMs EcidA4L7TFIFJ5Wdgkz+hEMd/86l/Te4jbYr+OkfhNPuSuMJfa45ciGmt+R5UyXzdpSh3Pb4Ic+nH MTLsCQng==;
Received: from [51.52.247.166] (port=51078 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gjLXm-0043G3-86; Tue, 15 Jan 2019 10:02:02 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
Cc: "'Andy Bierman'" <andy@yumaworks.com>, netconf@ietf.org
Date: Tue, 15 Jan 2019 10:02:09 +0000
Message-Id: <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus>
In-Reply-To: <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net> <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Antivirus: Avast (VPS 190115-0, 15/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/JDjKGI-6M1xc9R5K3EE5ZnHZ5ns>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 10:02:09 -0000

The issue I am trying to address is one where the original session is 
terminated. This could occur, for example, if the device's IP address is 
changed by the confirmed commit. I have also worked with devices in the 
past where certain configuration changes caused the device to reboot. In 
both circumstances the <candidate> has been copied to <running> but the 
commit hasn't been confirmed. Consequently there is still the need to 
issue a confirming commit which, according to my reading of the RFC, 
would copy <candidate> to <running> again. Clearly if <candidate> hasn't 
changed the server can choose not to make any changes to <running> but, 
if another client has in the meantime updated <candidate>, the 
confirming commit should (by my reading) copy those changes over.

>From the last few emails on this subject it seems the persist-id can be 
considered a de facto lock on both <candidate> and <running> that is 
released on a confirming <commit>, a timeout on the confirmed <commit> 
or a <cancel-commit>. Unlike other locks, this "lock" could be shared 
between clients by sharing the persist-id. Is that a fair summary?

------ Original Message ------
From: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
To: jonathan@hansfords.net
Cc: "'Andy Bierman'" <andy@yumaworks.com>; netconf@ietf.org
Sent: 14/01/2019 22:32:21
Subject: Re: [Netconf] Is there a problem with confirmed commits?

>On Mon, Jan 14, 2019 at 08:07:26PM -0000, jonathan@hansfords.net wrote:
>>
>>  Just as a footnote, if the cause of the session termination was the dev=
ice rebooting and the :startup capability was supported, the <running> conf=
iguration datastore will contain whatever was in the <startup> configuratio=
n datastore. However, a confirming commit on a persistent confirmed commit =
would still commit the <candidate> configuration datastore to <running>. If=
 the purpose of the confirmed commit was to test the new configuration prio=
r to making it permanent, it would therefore make sense to copy the <candid=
ate> configuration datastore to the <startup> configuration datastore prior=
 to the confirmed commit.
>>
>
>My understanding of a confirmed commit is:
>
>     copy condidate to running and wait for a confirmation that
>     everything is OK; if no confirmation is received within a certain
>     time window, rollback to the original state of <running>.
>
>The situation you describe is a bit unclear for me; when does the
>device reboot, after the confirmed commit has been issued but before
><candidate> was copied to <running>? That would be a rare situation
>and I have some doubts that implementations after the reboot would
>start the confirmed commit or they would not execute a reboot before
>copying <candidate> to <running>.
>
>/js
>
>--
>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


From nobody Tue Jan 15 02:14:18 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E20E130DEA for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:14:16 -0800 (PST)
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] 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 31CwpsRTRiNT for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:14:13 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35242127133 for <netconf@ietf.org>; Tue, 15 Jan 2019 02:14:13 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id ACE82679; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id WcT5G6VpAh4O; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8BDD920046; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id d--arw_56KnL; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb04.jacobs.jacobs-university.de [10.70.0.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 2D36320045; Tue, 15 Jan 2019 11:14:11 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Tue, 15 Jan 2019 11:14:10 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 270003005A3FA2; Tue, 15 Jan 2019 11:14:09 +0100 (CET)
Date: Tue, 15 Jan 2019 11:14:09 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: 'Andy Bierman' <andy@yumaworks.com>, <netconf@ietf.org>
Message-ID: <20190115101409.jn4ygedezyy53nih@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, 'Andy Bierman' <andy@yumaworks.com>, netconf@ietf.org
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net> <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de> <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB03.jacobs.jacobs-university.de (10.70.0.155) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/sDQVz9dzv1wic3YSnmp95HNGXXQ>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 10:14:16 -0000

On Tue, Jan 15, 2019 at 10:02:09AM +0000, Jonathan Hansford wrote:
> The issue I am trying to address is one where the original session is
> terminated. This could occur, for example, if the device's IP address is
> changed by the confirmed commit. I have also worked with devices in the past
> where certain configuration changes caused the device to reboot. In both
> circumstances the <candidate> has been copied to <running> but the commit
> hasn't been confirmed. Consequently there is still the need to issue a
> confirming commit which, according to my reading of the RFC, would copy
> <candidate> to <running> again. Clearly if <candidate> hasn't changed the
> server can choose not to make any changes to <running> but, if another
> client has in the meantime updated <candidate>, the confirming commit should
> (by my reading) copy those changes over.

Why copy again? The flow would be:

  upon confirmed-commit:
     copy <candidate> to <running>
     reinitialize what needs to be reinitialized
     wait for the confirmation
     if (timeout) rollback <running>

> From the last few emails on this subject it seems the persist-id can be
> considered a de facto lock on both <candidate> and <running> that is
> released on a confirming <commit>, a timeout on the confirmed <commit> or a
> <cancel-commit>. Unlike other locks, this "lock" could be shared between
> clients by sharing the persist-id. Is that a fair summary?

Yes, this may be one way to look at it.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Tue Jan 15 02:36:05 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A7712130E2B for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:36:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level: 
X-Spam-Status: No, score=-1.99 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 t1UKU7W1bcnE for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:36:00 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 21D32127133 for <netconf@ietf.org>; Tue, 15 Jan 2019 02:35:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:Mime-Version:Reply-To:References: In-Reply-To:Message-Id:Date:Cc:Subject:To:From:Sender: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=NusI4y7JdPidaujuYrScMW7ohl6D3/6PBwKKpRQPzIQ=; b=CEeH8E81aGCPANaa8GZwU+QtS OluA2yVGKaP710GgjrkwfGA+2dHZRAfp8uuJbx4AusgA/4G8BTIWIHknLYxJDfg3u/v2Yfuc86wn0 EyCDcwrNvC+ecqM83JniMppkLvhq8S2HKhcYILjRDNOziJNJ3mmLxda9n/h2lwevDx05iCne/OigS rpai++55qlfzIyZq75rMNCJKE7fjSwk7xAbOMFNMWexdq2tW0KP5LJGsg4M0yHnpalHY5UO51b1lQ ogwcxmsD+dlZKXPrMM4cMIZwKTKLx6HEOWB9NF9aGLF8zF1aiwMX+Lvo3Dl0CAbEp4KolzSqzQnFr ciB9pvqCg==;
Received: from [51.52.247.166] (port=51405 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gjM4c-004F8Q-4x; Tue, 15 Jan 2019 10:35:58 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
Cc: "'Andy Bierman'" <andy@yumaworks.com>, netconf@ietf.org
Date: Tue, 15 Jan 2019 10:36:02 +0000
Message-Id: <em915d9278-7fc2-4163-b580-95e4d7ac5442@morpheus>
In-Reply-To: <20190115101409.jn4ygedezyy53nih@anna.jacobs.jacobs-university.de>
References: <em106ef27b-c989-4e0b-b819-413fef852d53@morpheus> <20190114135056.t6sow7dbcyow6qcn@anna.jacobs.jacobs-university.de> <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net> <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de> <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus> <20190115101409.jn4ygedezyy53nih@anna.jacobs.jacobs-university.de>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MB466B7D08-3E34-4472-BFDB-63B7DC8B9847"
X-Antivirus: Avast (VPS 190115-0, 15/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FgJFyM50eTqksr2c-ZTetdA5Sgg>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 10:36:03 -0000

--------=_MB466B7D08-3E34-4472-BFDB-63B7DC8B9847
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 15/01/2019 10:14:09, "Juergen Schoenwaelder" 
<j.schoenwaelder@jacobs-university.de> wrote:

>On Tue, Jan 15, 2019 at 10:02:09AM +0000, Jonathan Hansford wrote:
>>  The issue I am trying to address is one where the original session is
>>  terminated. This could occur, for example, if the device's IP address i=
s
>>  changed by the confirmed commit. I have also worked with devices in the=
 past
>>  where certain configuration changes caused the device to reboot. In bot=
h
>>  circumstances the <candidate> has been copied to <running> but the comm=
it
>>  hasn't been confirmed. Consequently there is still the need to issue a
>>  confirming commit which, according to my reading of the RFC, would copy=

>>  <candidate> to <running> again. Clearly if <candidate> hasn't changed t=
he
>>  server can choose not to make any changes to <running> but, if another
>>  client has in the meantime updated <candidate>, the confirming commit s=
hould
>>  (by my reading) copy those changes over.
>
>Why copy again? The flow would be:
>
>   upon confirmed-commit:
>      copy <candidate> to <running>
>      reinitialize what needs to be reinitialized
>      wait for the confirmation
>      if (timeout) rollback <running>
Section 8.4.1 states, 'A confirmed <commit> operation MUST be reverted 
if a confirming commit is not issued within the timeout period (by 
default 600 seconds =3D 10 minutes). The confirming commit is a <commit> 
operation without the <confirmed> parameter... the confirming commit ... 
MAY introduce additional changes to the configuration' So the 
confirmation comes in the form of a confirming commit which is not 
described as being different to any other commit, other than it 
completes a confirmed commit.

Section 8.3.4.1 states, 'The <commit> operation instructs the device to 
implement the configuration data contained in the candidate 
configuration.' So a confirming commit has to copy to <running> any 
changes, if any, that have been made to <candidate> since the previous 
confirmed commit.

>
>
>>  From the last few emails on this subject it seems the persist-id can be=

>>  considered a de facto lock on both <candidate> and <running> that is
>>  released on a confirming <commit>, a timeout on the confirmed <commit> =
or a
>>  <cancel-commit>. Unlike other locks, this "lock" could be shared betwee=
n
>>  clients by sharing the persist-id. Is that a fair summary?
>
>Yes, this may be one way to look at it.
>
>/js
>
>--
>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

--------=_MB466B7D08-3E34-4472-BFDB-63B7DC8B9847
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head>

<style id=3D"css_styles" type=3D"text/css">blockquote.cite { margin-left: 5=
px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: =
1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; =
padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding=
-top: 0px; }
a img { border: 0px; }
li[style=3D'text-align: center;'], li[style=3D'text-align: right;'] {  list=
-style-position: inside;}
body { font-family: Segoe UI; font-size: 12pt;   }</style></head><body clas=
s=3D"plain"><div><br /></div>
<div><br /></div>
<div>On 15/01/2019 10:14:09, "Juergen Schoenwaelder" &lt;j.schoenwaelder@ja=
cobs-university.de&gt; wrote:</div><div><br /></div>
<div id=3D"xf37c7aa461c9420"><blockquote type=3D"cite" class=3D"cite2">

<div class=3D"plain_line">On Tue, Jan 15, 2019 at 10:02:09AM +0000, Jonatha=
n Hansford wrote:</div>
<blockquote type=3D"cite" class=3D"cite">
<div class=3D"plain_line"> The issue I am trying to address is one where th=
e original session is</div>
<div class=3D"plain_line"> terminated. This could occur, for example, if th=
e device's IP address is</div>
<div class=3D"plain_line"> changed by the confirmed commit. I have also wor=
ked with devices in the past</div>
<div class=3D"plain_line"> where certain configuration changes caused the d=
evice to reboot. In both</div>
<div class=3D"plain_line"> circumstances the &lt;candidate&gt; has been cop=
ied to &lt;running&gt; but the commit</div>
<div class=3D"plain_line"> hasn't been confirmed. Consequently there is sti=
ll the need to issue a</div>
<div class=3D"plain_line"> confirming commit which, according to my reading=
 of the RFC, would copy</div>
<div class=3D"plain_line"> &lt;candidate&gt; to &lt;running&gt; again. Clea=
rly if &lt;candidate&gt; hasn't changed the</div>
<div class=3D"plain_line"> server can choose not to make any changes to &lt=
;running&gt; but, if another</div>
<div class=3D"plain_line"> client has in the meantime updated &lt;candidate=
&gt;, the confirming commit should</div>
<div class=3D"plain_line"> (by my reading) copy those changes over.</div>
</blockquote>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">Why copy again? The flow would be:</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">  upon confirmed-commit:</div>
<div class=3D"plain_line">     copy &lt;candidate&gt; to &lt;running&gt;</d=
iv>
<div class=3D"plain_line">     reinitialize what needs to be reinitialized<=
/div>
<div class=3D"plain_line">     wait for the confirmation</div>
<div class=3D"plain_line">     if (timeout) rollback &lt;running&gt;</div><=
/blockquote>Section 8.4.1 states, 'A confirmed &lt;commit&gt; operation MUS=
T be reverted if a confirming commit is not issued within the timeout perio=
d (by default 600 seconds =3D 10 minutes).  The confirming commit is a &lt;=
commit&gt; operation without the &lt;confirmed&gt; parameter...=C2=A0the=C2=
=A0confirming commit ... MAY=C2=A0introduce additional changes to the confi=
guration' So the confirmation comes in the form of a confirming commit whic=
h is not described as being different to any other commit, other than it co=
mpletes a confirmed commit.</div><div id=3D"xf37c7aa461c9420"><br /></div><=
div id=3D"xf37c7aa461c9420">Section 8.3.4.1 states, 'The &lt;commit&gt; ope=
ration instructs the device to implement the=C2=A0configuration data contai=
ned in the candidate configuration.' So a confirming commit has to copy to =
&lt;running&gt; any changes, if any, that have been made to &lt;candidate&g=
t; since the previous confirmed commit.</div><div id=3D"xf37c7aa461c9420"><=
br /></div><div id=3D"xf37c7aa461c9420"><blockquote type=3D"cite" class=3D"=
cite2"><div class=3D"plain_line"><br /></div>
<div class=3D"plain_line">=C2=A0</div>
<blockquote type=3D"cite" class=3D"cite2">
<div class=3D"plain_line"> From the last few emails on this subject it seem=
s the persist-id can be</div>
<div class=3D"plain_line"> considered a de facto lock on both &lt;candidate=
&gt; and &lt;running&gt; that is</div>
<div class=3D"plain_line"> released on a confirming &lt;commit&gt;, a timeo=
ut on the confirmed &lt;commit&gt; or a</div>
<div class=3D"plain_line"> &lt;cancel-commit&gt;. Unlike other locks, this =
"lock" could be shared between</div>
<div class=3D"plain_line"> clients by sharing the persist-id. Is that a fai=
r summary?</div>
</blockquote>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">Yes, this may be one way to look at it.</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">/js</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">--</div>
<div class=3D"plain_line">Juergen Schoenwaelder           Jacobs University=
 Bremen gGmbH</div>
<div class=3D"plain_line">Phone: +49 421 200 3587         Campus Ring 1 | 2=
8759 Bremen | Germany</div>
<div class=3D"plain_line">Fax:   +49 421 200 3103         &lt;https://www.j=
acobs-university.de/&gt;</div>
</blockquote></div>
<div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style=3D'border:none; color:#909090; background-color:#B0B0B0; height: =
1px; width: 99%;' />
<table style=3D'border-collapse:collapse;border:none;'>
	<tr>
		<td style=3D'border:none;padding:0px 15px 0px 8px'>
			<a href=3D"https://www.avast.com/antivirus">
				<img border=3D0 src=3D"http://static.avast.com/emails/avast-mail-stamp.=
png" alt=3D"Avast logo" />
			</a>
		</td>
		<td>
			<p style=3D'color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helv=
etica"; font-size:12pt;'>
				This email has been checked for viruses by Avast antivirus software.
				<br><a href=3D"https://www.avast.com/antivirus">www.avast.com</a>
			</p>
		</td>
	</tr>
</table>
<br />
<a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" height=3D"1">=
 </a></div></body></html>
--------=_MB466B7D08-3E34-4472-BFDB-63B7DC8B9847--


From nobody Tue Jan 15 02:59:42 2019
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A08C130DEA for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:59:41 -0800 (PST)
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] 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 kMo50bCV2zRA for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 02:59:39 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0ED53127133 for <netconf@ietf.org>; Tue, 15 Jan 2019 02:59:39 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 9D39CFDE; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id SPh2mogOvbt0; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8653F20046; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id pG_AiyKulASz; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
Received: from exchange.jacobs-university.de (sxchmb03.jacobs.jacobs-university.de [10.70.0.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id 292ED20045; Tue, 15 Jan 2019 11:59:37 +0100 (CET)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1591.10; Tue, 15 Jan 2019 11:59:36 +0100
Received: by anna.localdomain (Postfix, from userid 501) id 6A58E3005A4089; Tue, 15 Jan 2019 11:59:35 +0100 (CET)
Date: Tue, 15 Jan 2019 11:59:35 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jonathan Hansford <jonathan@hansfords.net>
CC: 'Andy Bierman' <andy@yumaworks.com>, <netconf@ietf.org>
Message-ID: <20190115105935.7xs43rlsngntedia@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Jonathan Hansford <jonathan@hansfords.net>, 'Andy Bierman' <andy@yumaworks.com>, netconf@ietf.org
References: <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net> <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de> <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus> <20190115101409.jn4ygedezyy53nih@anna.jacobs.jacobs-university.de> <em915d9278-7fc2-4163-b580-95e4d7ac5442@morpheus>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <em915d9278-7fc2-4163-b580-95e4d7ac5442@morpheus>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB04.jacobs.jacobs-university.de (10.70.0.156) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/PcGtOVBRWq3fxaVuz8XogTyNPUo>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 10:59:41 -0000

On Tue, Jan 15, 2019 at 10:36:02AM +0000, Jonathan Hansford wrote:
> 
> > Why copy again? The flow would be:
> > 
> >   upon confirmed-commit:
> >      copy <candidate> to <running>
> >      reinitialize what needs to be reinitialized
> >      wait for the confirmation
> >      if (timeout) rollback <running>
>
> Section 8.4.1 states, 'A confirmed <commit> operation MUST be reverted
> if a confirming commit is not issued within the timeout period (by
> default 600 seconds = 10 minutes). The confirming commit is a <commit>
> operation without the <confirmed> parameter... the confirming commit ...
> MAY introduce additional changes to the configuration' So the
> confirmation comes in the form of a confirming commit which is not
> described as being different to any other commit, other than it
> completes a confirmed commit.
> 
> Section 8.3.4.1 states, 'The <commit> operation instructs the device to
> implement the configuration data contained in the candidate
> configuration.' So a confirming commit has to copy to <running> any
> changes, if any, that have been made to <candidate> since the previous
> confirmed commit.
>

Since the data has already been copied and the server is just waiting
for the confirming commit to finish the confirmed commit, there is no
need to copy data again.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Tue Jan 15 03:10:19 2019
Return-Path: <jonathan@hansfords.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69296130E2B for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 03:10:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level: 
X-Spam-Status: No, score=-1.99 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, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hansfords.net
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 dzKIa5w0LM0c for <netconf@ietfa.amsl.com>; Tue, 15 Jan 2019 03:10:15 -0800 (PST)
Received: from mail.myfast.site (mail.myfast.site [109.203.117.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 6FB42127133 for <netconf@ietf.org>; Tue, 15 Jan 2019 03:10:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hansfords.net; s=default; h=Content-Type:Mime-Version:Reply-To:References: In-Reply-To:Message-Id:Date:Cc:Subject:To:From:Sender: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=9dOl4Myqn6nIRdxthVTQhMywyjgY11gSDtI21d9BmM4=; b=2FkOPJvgt5dVtKkSHAUwHjtQ9 tpe8HIGpL5dtf1Qo6ofQsYCIEyg6/cyC62jMEsF4P8VnDFiiyfOhwWf5lVmJnWDFVQbnZ1a25qJuf FdLP2UTHBgVQS1Nx4OoqBgKcckpzVzsPAn4vt1dz6XRNz7vIqEJJwN3zLgWEhcd5EJg0kIQ5lrzDQ sC7+IgR3xfs3grXwKt0xcmiYKAs+CYMDFHKs+b3/UugV8K9t0rAdeTG0OXchAFxY7J6Nrs08/ZhZl 1+mXtogx3FE5eUqP9kAo/5CQXWepvGE/kV3BuV8lcBK/mqi4u0BfKbeTz3wYL37DiyW40NaAb/Nlm jVLmE0Hhw==;
Received: from [51.52.247.166] (port=51563 helo=[172.16.1.65]) by mail.myfast.site with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <jonathan@hansfords.net>) id 1gjMbk-004Qb8-5v; Tue, 15 Jan 2019 11:10:12 +0000
From: "Jonathan Hansford" <jonathan@hansfords.net>
To: "Juergen Schoenwaelder" <j.schoenwaelder@jacobs-university.de>
Cc: "'Andy Bierman'" <andy@yumaworks.com>, netconf@ietf.org
Date: Tue, 15 Jan 2019 11:10:19 +0000
Message-Id: <em78cf0e94-3893-444f-af27-af785829bb37@morpheus>
In-Reply-To: <20190115105935.7xs43rlsngntedia@anna.jacobs.jacobs-university.de>
References: <em5dfb175c-7835-43eb-a767-38e270601427@morpheus> <20190114154026.tbevjbcdn3oh34uz@anna.jacobs.jacobs-university.de> <emd3042eae-a670-4eb3-8055-5f3379acc4d8@morpheus> <20190114162532.ptmzaxwghowda2o7@anna.jacobs.jacobs-university.de> <CABCOCHTTMPq54_HPYOLBGavX2Q1NqzHPXLv0BVofBaKSxd=TdQ@mail.gmail.com> <009301d4ac44$c55b0fe0$50112fa0$@hansfords.net> <20190114223221.ohkqjlqvtwbdjkx6@anna.jacobs.jacobs-university.de> <em2395bee5-1d9f-40c5-8162-314dad97f6d3@morpheus> <20190115101409.jn4ygedezyy53nih@anna.jacobs.jacobs-university.de> <em915d9278-7fc2-4163-b580-95e4d7ac5442@morpheus> <20190115105935.7xs43rlsngntedia@anna.jacobs.jacobs-university.de>
Reply-To: "Jonathan Hansford" <jonathan@hansfords.net>
User-Agent: eM_Client/7.2.34062.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MBACA99D09-65F1-4C38-A977-8D5F59377C10"
X-Antivirus: Avast (VPS 190115-0, 15/01/2019), Outbound message
X-Antivirus-Status: Clean
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - mail.myfast.site
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - hansfords.net
X-Get-Message-Sender-Via: mail.myfast.site: authenticated_id: jonathan@hansfords.net
X-Authenticated-Sender: mail.myfast.site: jonathan@hansfords.net
X-Source: 
X-Source-Args: 
X-Source-Dir: 
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/S_V8fGi6Gp0lcuA0_KLxoUe4HeQ>
Subject: Re: [Netconf] Is there a problem with confirmed commits?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 11:10:17 -0000

--------=_MBACA99D09-65F1-4C38-A977-8D5F59377C10
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 15/01/2019 10:59:35, "Juergen Schoenwaelder" 
<j.schoenwaelder@jacobs-university.de> wrote:

>On Tue, Jan 15, 2019 at 10:36:02AM +0000, Jonathan Hansford wrote:
>>
>>  > Why copy again? The flow would be:
>>  >
>>  >   upon confirmed-commit:
>>  >      copy <candidate> to <running>
>>  >      reinitialize what needs to be reinitialized
>>  >      wait for the confirmation
>>  >      if (timeout) rollback <running>
>>
>>  Section 8.4.1 states, 'A confirmed <commit> operation MUST be reverted
>>  if a confirming commit is not issued within the timeout period (by
>>  default 600 seconds =3D 10 minutes). The confirming commit is a <commit=
>
>>  operation without the <confirmed> parameter... the confirming commit ..=
=2E
>>  MAY introduce additional changes to the configuration' So the
>>  confirmation comes in the form of a confirming commit which is not
>>  described as being different to any other commit, other than it
>>  completes a confirmed commit.
>>
>>  Section 8.3.4.1 states, 'The <commit> operation instructs the device to=

>>  implement the configuration data contained in the candidate
>>  configuration.' So a confirming commit has to copy to <running> any
>>  changes, if any, that have been made to <candidate> since the previous
>>  confirmed commit.
>>
>
>Since the data has already been copied and the server is just waiting
>for the confirming commit to finish the confirmed commit, there is no
>need to copy data again.
But that is not what the RFC suggests and there is nothing to stop 
changes being introduced to <candidate>. That is why Section 8.4.1 
states, 'the confirming commit ... MAY introduce additional changes to 
the configuration'. So if <candidate> has changed, those changes need to 
be committed.

>
>
>/js
>
>--
>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

--------=_MBACA99D09-65F1-4C38-A977-8D5F59377C10
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head>

<style id=3D"css_styles" type=3D"text/css">blockquote.cite { margin-left: 5=
px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: =
1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; =
padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding=
-top: 0px; }
a img { border: 0px; }
li[style=3D'text-align: center;'], li[style=3D'text-align: right;'] {  list=
-style-position: inside;}
body { font-family: Segoe UI; font-size: 12pt;   }</style></head><body clas=
s=3D"plain"><div><br /></div>
<div><br /></div>
<div>On 15/01/2019 10:59:35, "Juergen Schoenwaelder" &lt;j.schoenwaelder@ja=
cobs-university.de&gt; wrote:</div><div><br /></div>
<div id=3D"x6f09d9f4766244a"><blockquote type=3D"cite" class=3D"cite2">

<div class=3D"plain_line">On Tue, Jan 15, 2019 at 10:36:02AM +0000, Jonatha=
n Hansford wrote:</div>
<blockquote type=3D"cite" class=3D"cite">
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> &gt; Why copy again? The flow would be:</div>
<div class=3D"plain_line"> &gt;</div>
<div class=3D"plain_line"> &gt;   upon confirmed-commit:</div>
<div class=3D"plain_line"> &gt;      copy &lt;candidate&gt; to &lt;running&=
gt;</div>
<div class=3D"plain_line"> &gt;      reinitialize what needs to be reinitia=
lized</div>
<div class=3D"plain_line"> &gt;      wait for the confirmation</div>
<div class=3D"plain_line"> &gt;      if (timeout) rollback &lt;running&gt;<=
/div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> Section 8.4.1 states, 'A confirmed &lt;commit&gt=
; operation MUST be reverted</div>
<div class=3D"plain_line"> if a confirming commit is not issued within the =
timeout period (by</div>
<div class=3D"plain_line"> default 600 seconds =3D 10 minutes). The confirm=
ing commit is a &lt;commit&gt;</div>
<div class=3D"plain_line"> operation without the &lt;confirmed&gt; paramete=
r... the confirming commit ...</div>
<div class=3D"plain_line"> MAY introduce additional changes to the configur=
ation' So the</div>
<div class=3D"plain_line"> confirmation comes in the form of a confirming c=
ommit which is not</div>
<div class=3D"plain_line"> described as being different to any other commit=
, other than it</div>
<div class=3D"plain_line"> completes a confirmed commit.</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line"> Section 8.3.4.1 states, 'The &lt;commit&gt; oper=
ation instructs the device to</div>
<div class=3D"plain_line"> implement the configuration data contained in th=
e candidate</div>
<div class=3D"plain_line"> configuration.' So a confirming commit has to co=
py to &lt;running&gt; any</div>
<div class=3D"plain_line"> changes, if any, that have been made to &lt;cand=
idate&gt; since the previous</div>
<div class=3D"plain_line"> confirmed commit.</div>
<div class=3D"plain_line">=C2=A0</div>
</blockquote>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">Since the data has already been copied and the se=
rver is just waiting</div>
<div class=3D"plain_line">for the confirming commit to finish the confirmed=
 commit, there is no</div>
<div class=3D"plain_line">need to copy data again.</div></blockquote>But th=
at is not what the RFC suggests and there is nothing to stop changes being =
introduced to &lt;candidate&gt;. That is why Section 8.4.1 states, 'the con=
firming commit ... MAY introduce additional changes to the configuration'. =
So if &lt;candidate&gt; has changed, those changes need to be committed.</d=
iv><div id=3D"x6f09d9f4766244a"><br /></div><div id=3D"x6f09d9f4766244a"><b=
lockquote type=3D"cite" class=3D"cite2"><div class=3D"plain_line"><br /></d=
iv>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">/js</div>
<div class=3D"plain_line">=C2=A0</div>
<div class=3D"plain_line">--</div>
<div class=3D"plain_line">Juergen Schoenwaelder           Jacobs University=
 Bremen gGmbH</div>
<div class=3D"plain_line">Phone: +49 421 200 3587         Campus Ring 1 | 2=
8759 Bremen | Germany</div>
<div class=3D"plain_line">Fax:   +49 421 200 3103         &lt;https://www.j=
acobs-university.de/&gt;</div>
</blockquote></div>
<div id=3D"DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style=3D'border:none; color:#909090; background-color:#B0B0B0; height: =
1px; width: 99%;' />
<table style=3D'border-collapse:collapse;border:none;'>
	<tr>
		<td style=3D'border:none;padding:0px 15px 0px 8px'>
			<a href=3D"https://www.avast.com/antivirus">
				<img border=3D0 src=3D"http://static.avast.com/emails/avast-mail-stamp.=
png" alt=3D"Avast logo" />
			</a>
		</td>
		<td>
			<p style=3D'color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helv=
etica"; font-size:12pt;'>
				This email has been checked for viruses by Avast antivirus software.
				<br><a href=3D"https://www.avast.com/antivirus">www.avast.com</a>
			</p>
		</td>
	</tr>
</table>
<br />
<a href=3D"#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width=3D"1" height=3D"1">=
 </a></div></body></html>
--------=_MBACA99D09-65F1-4C38-A977-8D5F59377C10--


From nobody Tue Jan 15 09:58:51 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 81DB9130DCB; Tue, 15 Jan 2019 09:58:33 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: The IESG <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.3
Auto-Submitted: auto-generated
Precedence: bulk
Cc: ibagdona@gmail.com, The IESG <iesg@ietf.org>, Bert Wijnen <bwijnen@bwijnen.net>, Mahesh Jethanandani <mjethanandani@gmail.com>, draft-ietf-netconf-zerotouch@ietf.org, netconf@ietf.org, Bert Wijnen <bwietf@bwijnen.net>, mjethanandani@gmail.com, rfc-editor@rfc-editor.org, netconf-chairs@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-ID: <154757511352.10701.1534423198247822469.idtracker@ietfa.amsl.com>
Date: Tue, 15 Jan 2019 09:58:33 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Noh5oMC7Gu7LNkjJCLpuzsfDwkY>
Subject: [Netconf] Protocol Action: 'Secure Zero Touch Provisioning (SZTP)' to Proposed Standard (draft-ietf-netconf-zerotouch-28.txt)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 17:58:34 -0000

The IESG has approved the following document:
- 'Secure Zero Touch Provisioning (SZTP)'
  (draft-ietf-netconf-zerotouch-28.txt) as Proposed Standard

This document is the product of the Network Configuration Working Group.

The IESG contact persons are Warren Kumari and Ignas Bagdonas.

A URL of this Internet Draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-zerotouch/




Technical Summary

This draft presents a technique to securely provision a networking device when it is booting in a factory-default state. Variations in the solution enables it to be used on both public and private networks. The provisioning steps are able to update the boot image, commit an initial configuration, and execute arbitrary scripts to address auxiliary needs. The updated device is subsequently able to establish secure management connections with other systems.  


Working Group Summary

There were no exceptional events during WG process for this document. It received a substantial amount of attention, multiple detailed reviews, and the development from the start has been driven by operational requirements. There was a smooth consensus reached for the document. 


Document Quality

There are no known implementations as of the time of publication. There is interest from vendor community to implement it. There is a significant interest from operator community to have this mechanism implemented. 


Personnel

Document Shepherd is Mahesh Jethanandani. Responsible Area Director is Ignas Bagdonas. 


IANA Note

The document adds new entries to existing IANA registries. The document does not create any new IANA registries. 





From nobody Tue Jan 15 14:44:16 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE22312870E; Tue, 15 Jan 2019 14:44:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.254
X-Spam-Level: 
X-Spam-Status: No, score=-5.254 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, 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=juniper.net
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 8U4_ibekDjFf; Tue, 15 Jan 2019 14:44:12 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 F3C0412867A; Tue, 15 Jan 2019 14:44:11 -0800 (PST)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0FMdQxf008715; Tue, 15 Jan 2019 14:44:05 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=26/1ja9Fclg/a1i55FHG+LhRxs8ORh1JNmyNS84PgXg=; b=sYWWz8//x+BLBgn44cyAsMfvmSw425eflZEOL6nk5sIPaLSVwYUB2cGNSPjHpZZQ4Ugr 36D8W3lZYXBM1CxazQsFFN7rnngJhqRuuVmPmIG+FYBf3kOUckdqjdKB/t+1oFuFV73d Z5Mqv4JqhqfVDJ8niljby0X0BU5V2mWr9xHPm/q7ZD8QP3n6yI5F1S0jPZan0QWoSqv+ fG78t+9Du+dFl08IcipEWAgEyVV9KhDswPSWLJN1AmMMNzR8oSIZVk7s9VdO23NlVVzZ y0VrIaIEnzmdYBTyqOBA515UOikLnn7QrS2JxdqC9RD6FO1GnthJtTkJmaty3XwP0w8z 0g== 
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2055.outbound.protection.outlook.com [104.47.37.55]) by mx0a-00273201.pphosted.com with ESMTP id 2q1m0k8e0w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 15 Jan 2019 14:44:05 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB5960.namprd05.prod.outlook.com (20.178.52.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.10; Tue, 15 Jan 2019 22:43:59 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1537.018; Tue, 15 Jan 2019 22:43:59 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>
CC: Adam Roach <adam@nostrum.com>, Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4CAAacWAIAAD4+AgAADiwD//8aMAIAActaAgAFSQoCAAHCvAIAEHSWAgABsiwCAAUd1gA==
Date: Tue, 15 Jan 2019 22:43:59 +0000
Message-ID: <F68D5933-715C-4475-92B2-22DD06B5CA20@juniper.net>
References: <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net> <20190112005406.GU28515@kduck.mit.edu> <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net> <20190114221155.GL28515@kduck.mit.edu>
In-Reply-To: <20190114221155.GL28515@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB5960; 6:2QLc75PrpN1JS3RJ9vCC5bCjiI5Z5cP0PsX3ekvXlla9bzu3lQ4eByBIqo/OABEj+6o3jrJlH2QMJSpIGUKK6X8C118P4tAwnUTNOy1wBSKbVgiKuHS6bAP+dCBz1GnKGxKck/O/ykC0CV9Qcj5f2QyL8O+svZm94uHnkm2qBqP/AeeYFI7x3NF7iNl37Fa9w//de5tT3oeXpxuUNhNZ/cm8OuDkE3qGMJJakekVc825hHOlVSV2nVBDE6v2Cwkns8ZtlW8dMoc0zEvEl2bx0MBOm2JINNGY2g1EtAKe3LP6PvLaAfT3JQiSqIhn6EGrJz4zRnawasjFZiMNbOaRbTSHwNjYSTyVpC+9tWrA4gLIIT/n1Qn5gW0YIEGs5Xk0BRc3o6294gQzvCI9RsPAOeLpqx9eab+1mwIsSLfZPIU8pF7Vh0549um0SUKF8O3N9YWaqj1rO1NFkhSp8jo46Q==; 5:+/YvYXRJCSR5yp85J8GbJcvpillSPD7iNjhy3gbyrYThPb/50rePN+O+4QmvMyxQCP0SmYO4IN5GUGYABD8GOOJKKWfFSP0z0D1YuYDQz5jE9kytkYryVaMMcRNhz4mQrLp1pjrJhcZ5BsjHE9HWCuzXGxWCRdIl+QgPEuMVBdHswk0j/RDwkhb1dcjd/RY+I73lGU/HlvKUI2nwnpEJLQ==; 7:YD4m428vDejgGy4oA30pKHaGx45PZPLrDVvTeoWNOZPb9OMPLMRkfBJjTgIOoTVtjQl0no8+z5i0s9GrqpMQKukZVOEUNqH1gX6iobPPHfaIZkPA/NYo+bitn68pjBNvJBtkMKpiOM4z1WrRqG5/Yw==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: b108d873-3e38-4e3e-abd4-08d67b3af087
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB5960; 
x-ms-traffictypediagnostic: BYAPR05MB5960:
x-microsoft-antispam-prvs: <BYAPR05MB5960C12F8B0544885836A585A5810@BYAPR05MB5960.namprd05.prod.outlook.com>
x-forefront-prvs: 0918748D70
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(396003)(39860400002)(376002)(136003)(366004)(199004)(189003)(40224003)(81156014)(5660300001)(2906002)(14454004)(81166006)(6486002)(76176011)(478600001)(6436002)(83716004)(8676002)(71200400001)(66066001)(71190400001)(25786009)(53936002)(8936002)(86362001)(14444005)(256004)(58126008)(6916009)(4326008)(54906003)(97736004)(316002)(2616005)(2171002)(3846002)(82746002)(6116002)(6246003)(6506007)(26005)(68736007)(486006)(106356001)(446003)(105586002)(36756003)(305945005)(99286004)(11346002)(229853002)(6512007)(476003)(102836004)(93886005)(7736002)(186003)(33656002); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5960; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: IaYHi4w3BAcwVKzQ4y9fkDYxhC4vgpNKHL68l0AQxp39cL1xLFNV5M/YZc4jz3o6nK2fPb+oc0dyUyKZYa4gxTZSbQCo1Q/hlT8kd7bHRulvzxgo/MzV01byip4WAVsqNJaRZy8dhRaHj2X8zzE5GiINOnqifaDg26olVRkBlDSRSuBYhLgtqqn4hhwoaPn4XEX8fow3GvEB+nTFstfVEj9lnBNHzbC1clUehyiKNbNnuPQqufWYRR0Iz0BiNimnAHUz3nmvEuxgpljA9o6fuBhHDkSMNkDPkg12daB820VjQxn4nUG5+ZnLrsZsoelFH5O/YSzEjHcXo2pYInfGEZa8F9IPGlZkyD2xPUOTlh1Gi9QIsbDAt1+zkrjrZbo7iETclAVwXeXyxxr2em6kvpmTpPByJH4I0GQCxnt9IE0=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <A4866D055A11234FB256232073F27CB6@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: b108d873-3e38-4e3e-abd4-08d67b3af087
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jan 2019 22:43:59.1475 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5960
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-15_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901150179
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/dhx123BdGEwbmaGngvzUBHQU7ko>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 22:44:15 -0000

SGkgQmVuamFtaW4sDQoNCg0KPj4gWWVzLCB0aGF0IGlzIHRoZSBjb3JyZWN0IFVSTC4gIEkndmUg
Zml4ZWQgaXQgaW4gbXkgbG9jYWwgY29weS4gIA0KPj4gVGhlIDgwMi4xQVIgc3BlYyBpcyBiZWhp
bmQgYSBwYXl3YWxsLCBidXQgaXQgc2F5cyB0aGlzIGFib3V0IHRoZSBzZXJpYWwgbnVtYmVyOg0K
Pj4gDQo+PiAgIEFuIElEZXZJRCBjZXJ0aWZpY2F0ZSBzdWJqZWN0IGZpZWxkIGJlIG5vbi1udWxs
IGFuZCBzaG91bGQNCj4+ICAgaW5jbHVkZSBhICAgdW5pcXVlIGRldmljZSBzZXJpYWwgbnVtYmVy
IGVuY29kZWQgYXMgdGhlIA0KPj4gICBzZXJpYWxOdW1iZXIgYXR0cmlidXRlKFJGQyA1MjgwIFg1
MjBTZXJpYWxOdW1iZXIpLg0KPj4gDQo+PiBGcm9tIFJGQyA1MjgwOg0KPj4gDQo+PiAgICBYNTIw
U2VyaWFsTnVtYmVyIDo6PSAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLXNlcmlhbC1u
dW1iZXIpKQ0KPj4gDQo+PiAgICB1Yi1zZXJpYWwtbnVtYmVyIElOVEVHRVIgOjo9IDY0DQo+PiAN
Cj4+ICAgIFRoZSBjaGFyYWN0ZXIgc3RyaW5nIHR5cGUgUHJpbnRhYmxlU3RyaW5nIHN1cHBvcnRz
IGEgdmVyeSBiYXNpYyBMYXRpbg0KPj4gICAgY2hhcmFjdGVyIHNldDogdGhlIGxvd2VyY2FzZSBs
ZXR0ZXJzICdhJyB0aHJvdWdoICd6JywgdXBwZXJjYXNlDQo+PiAgICBsZXR0ZXJzICdBJyB0aHJv
dWdoICdaJywgdGhlIGRpZ2l0cyAnMCcgdGhyb3VnaCAnOScsIGVsZXZlbiBzcGVjaWFsDQo+PiAg
ICBjaGFyYWN0ZXJzICcgPSAoICkgKyAsIC0gLiAvIDogPyBhbmQgc3BhY2UuDQo+PiANCj4+IEFu
eSBjb21tZW50cy9jb25jZXJucyBhYm91dCB0aGlzPw0KPg0KPiBTaWdoLiAgVGhlcmUgY291bGQg
YmUgc29tZSBleGNpdGVtZW50IGhlcmUgKGJ1dCBtaWdodCBub3QgYmUpLCBidXQgSSB0aGluaw0K
PiBJJ20gZ29pbmcgdG8gaGF2ZSB0byBkZWZlciB0byBzb21lIHBlb3BsZSB3aXRoIG1vcmUgRE5T
IChhbmQgWC41MDApDQo+IGV4cGVydGlzZS4gIFRoZXJlJ3Mgc2V2ZXJhbCBwb3RlbnRpYWwgKGJ1
dCBub3QgY2VydGFpbikgaXNzdWVzIGhlcmUsDQo+IGluY2x1ZGluZyBhdCBsZWFzdDoNCj4NCj4g
KDEpIHViLXNlcmlhbC1udW1iZXIgaXMgNjQsIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBE
TlMgbGFiZWwgaXMgNjQNCj4gb2N0ZXRzLCBzbyB3ZSBoYXZlIG5vIHJvb20gZm9yIGVzY2FwaW5n
IG9yIGVuY29kaW5nIGF0IHRoZSBtYXJnaW5zLg0KPg0KPiAoMikgUkZDIDEwMzQgc3VnZ2VzdHMg
dGhhdCBETlMgZG9tYWluIG5hbWUgY29tcGFyaXNvbnMgc2hvdWxkIGJlIHBlcmZvcm1lZA0KPiBp
biBhIGNhc2UtaW5zZW5zaXRpdmUgbWFubmVyIChmb3IgYWxwaGFiZXRpYyBBU0NJSSBhLXovQS1a
KSwgYnV0IHRoYXQNCj4gbGFiZWxzIHRoZW1zZWx2ZXMgY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IG9j
dGV0cy4gIFRoZXJlIGlzIHNvbWUgcGxhY2F0aW9uDQo+IGhlcmUgaW4gdGhhdCBYLjUyMCBhcHBl
YXJzIHRvIGRlZmluZSB0aGUgU2VyaWFsIE51bWJlciBhdHRyaWJ1dGUgc2hvdWxkIHVzZQ0KPiBh
IGNhc2VJZ25vcmVNYXRjaCBlcXVhbGl0eSBtYXRjaGluZyBydWxlLCBzbyBtYXliZSB0aGlzIGlz
IGEgbm9uLWlzc3VlLg0KPg0KPiAoMykgVGhvc2UgZXh0cmEgY2hhcmFjdGVycyAob3RoZXIgdGhh
biAnLScpIGFyZSBub3QgYWxsb3dlZCBpbiBETlMgaG9zdA0KPiBuYW1lcy4gIEFJVUksIHRoYXQg
dGVjaG5pY2FsbHkgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBmb3IgdGhpcyB1c2FnZSwgYnV0DQo+
IEknbSBub3QgMTAwJSBjb25maWRlbnQsIGFuZCBtYXliZSBzb21lIGltcGxlbWVudGF0aW9ucyBh
cmUgd3JvbmcuDQo+DQo+ICg0KSBVc2luZyAnLicgaW4gYSBsYWJlbCBpcyBwcmV0dHkgcmFyZSBh
bmQgcmVxdWlyZSBlc2NhcGluZyBmb3IgdGV4dHVhbA0KPiBwcmVzZW50YXRpb24gKGJ1dCB0aGlz
IGlzIG5vdCBpbmhlcmVudGx5IGEgZmF0YWwgZmxhdyBhbmQgd291bGQgbm90IGhpdCB0aGUNCj4g
NjQtY2hhcmFjdGVyIGxpbWl0IG9uIGxhYmVsIGxlbmd0aCkuDQo+DQo+IEJ1dCBvbiB0aGUgd2hv
bGUsIHRoZSBxdWVzdGlvbiBJIHdhbnQgdG8gYXNrIG15c2VsZiBoZXJlIGlzIGFsb25nIHRoZSBs
aW5lcw0KPiBvZiAiaG93IGxpa2VseSBpcyB0aGVyZSB0byBiZSBpbXBsZW1lbnRhdGlvbiBpbmNv
bXBhdGliaWxpdHkgaW4gdGhpcw0KPiBzcGFjZT8iLiAgSWYgc2VyaWFsIG51bWJlcnMgaW4gcHJh
Y3RpY2UgYXJlIG5vdCB1c2luZyB0aGUgZnVsbCBmbGV4aWJpbGl0eSwNCj4gdGhpcyBjb3VsZCBz
dGlsbCBiZSBhIG5vbi1pc3N1ZS4NCg0KQmUgYXdhcmUgdGhhdCB0aGUgZHJhZnQgbXVzdCwgaW4g
Z2VuZXJhbCwgc2F5IHNvbWV0aGluZyBhYm91dCB0aGUgc2VyaWFsDQpudW1iZXIgZm9yIGVhY2gg
c291cmNlIG9mIGJvb3RzdHJhcHBpbmcgaW5mb3JtYXRpb24gKGFuZCBub3RlIHRoYXQgdGhlDQpk
cmFmdCBsZWF2ZXMgb3BlbiB0aGUgcG9zc2liaWxpdHkgdGhhdCBtb3JlICJzb3VyY2VzIiBtYXkg
YmUgZGVmaW5lZCBpbg0KdGhlIGZ1dHVyZSk6DQoNCiAgUmVtb3ZhYmxlIFN0b3JhZ2U6DQogICAg
LSBva2F5LCB3ZWxsLCB0aGUgZHJhZnQgcHVudHMgb24gcHJvdmlkaW5nIGFuIGFjdHVhbCBmaWxl
LW5hbWluZw0KICAgICAgY29udmVudGlvbiBidXQsIGluIHRoZW9yeSwgdGhlcmUgY291bGQgYmUg
YSBkaXJlY3RvcnkgcGVyIA0KICAgICAgc2VyaWFsLW51bWJlci4gIEUuZy4sIC88c2VyaWFsLW51
bWJlcj4vPGFydGlmYWN0LWZpbGU+Lg0KDQogIEROUzoNCiAgICAtIFRYVCBpbiA8c2VyaWFsLW51
bWJlcj4uX3N6dHAubG9jYWwuICAgKG11bHRpY2FzdCkNCiAgICAtIFRYVCBpbiA8c2VyaWFsLW51
bWJlcj4uX3N6dHAuPGRvbWFpbj4uICAodW5pY2FzdCkNCg0KICBESENQOg0KICAgIC0gdGhlIGRy
YWZ0IHB1bnRzIGhlcmUgYXMgd2VsbC4gREhDUCBpcyB0aGUgb25seSBzb3VyY2Ugb2YNCiAgICAg
IGJvb3RzdHJhcHBpbmcgaW5mb3JtYXRpb24gZGVmaW5lZCBieSB0aGUgZG9jdW1lbnQgdGhhdA0K
ICAgICAgZG9lc24ndCBzdXBwb3J0IGRldmljZS1zcGVjaWZpYyByZXNwb25zZSAoYm9vdHAgcGF5
bG9hZHMNCiAgICAgIGFyZSAqd2F5KiB0b28gc21hbGwhKQ0KDQogIFNaVFAgQm9vdHN0cmFwIFNl
cnZlcjoNCiAgICAtIGRldmljZSBNVVNUIGlkZW50aWZ5L2F1dGhlbnRpY2F0ZSBpdHNlbGYgdXNp
bmcgaXRzIHNlcmlhbC1udW1iZXIuDQogICAgLSBkZXZpY2UgU0hPVUxEIHVzZSBhIGNsaWVudC1j
ZXJ0aWZpY2F0ZSAoRGV2SUQgUkVDT01NRU5ERUQpDQogICAgLSBkZXZpY2UgTUFZIHVzZSBhbiBI
VFRQIGF1dGhlbnRpY2F0aW9uIHNjaGVtZSBidXQsIGlmIGl0IGRvZXMgc28sDQogICAgICBpdCBN
VVNUIGlkZW50aWZ5IGl0c2VsZiB1c2luZyBpdHMgc2VyaWFsLW51bWJlci4NCg0KTGFzdGx5LCBm
b3IgYW55IHNvdXJjZSwgaWYgInNpZ25lZCBkYXRhIiBpcyByZXR1cm5lZCwgdGhlIG93bmVyc2hp
cA0Kdm91Y2hlciBbUkZDIDgzNjZdIGRlZmluZXMgYSAic2VyaWFsLW51bWJlciIgbGVhZiB0aGF0
IE1VU1QgYmUNCnBvcHVsYXRlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyIHZhbHVlLg0KDQpJbiBn
ZW5lcmFsLCBpdCBpcyBmZWx0IHRoYXQsIGlmIGEgZGV2aWNlIHZlbmRvcidzIHNlcmlhbC1udW1i
ZXJzDQpjb250YWluIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSBzb21lIHBy
b3RvY29sIG9yIGZvcm1hdCwNCnRoZW4gdGhhdCBpcyB0aGVpciBwcm9ibGVtIHRvIHNvbHZlLiAg
VGhhdCBzYWlkLCBtb3N0IHByb3RvY29sL2Zvcm1hdHMNCndpbGwgZGVmaW5lIHNvbWUgZXNjYXBp
bmcgbWVjaGFuaXNtIGFuZCwgaWYgbm90LCB0aGUgdmVuZG9yIGNhbiBjcmVhdGUNCnNvbWUgbWFw
cGluZy4NCg0KQXMgZm9yIHNlcmlhbC1udW1iZXIgbGVuZ3RocyBleGNlZWRpbmcgc29tZSBsaW1p
dCwgdGhlbiBpdCBtYXkgbWVhbg0KdGhhdCB0aGUgZGV2aWNlIHZlbmRvciBlaXRoZXIgY2FuJ3Qg
dXNlIHRoYXQgYm9vdHN0cmFwcGluZyBzdHJhdGVneSwNCm9yLCBhZ2FpbiwgdGhleSBjb21lIHVw
IHdpdGggYSBtYXBwaW5nIG9mIHNvbWUgc29ydCAoZS5nLiwgYSBoYXNoKS4NCkJ1dCBJIGRvdWJ0
IHNlcmlhbCBudW1iZXJzIGV2ZXIgZ2V0IHNvIGxvbmcsIGFzIHRoZXkgYXJlIG1hbnkgdGltZXMN
CnR5cGVkIG9yIHNwb2tlbiwgYW5kIHVzZXJzIHdvdWxkIHJldm9sdCBpZiB0aGV5IHdlcmUgdG9v
IGxvbmcgOykNCg0KTXkgaG9wZSBpcyB0aGF0IHdlIGNhbiBpZ25vcmUgdGhpcyBjb25jZXJuIGFs
dG9nZXRoZXIsIG9yIG1heWJlIGp1c3QNCmhhdmUgYSBTZWN1cml0eSBDb25zaWRlcmF0aW9ucyBz
ZWN0aW9uIHRoYXQgZXNzZW50aWFsbHkgY2FwdHVyZXMgdGhlDQphYm92ZS4gIFRob3VnaHRzPw0K
DQpLZW50DQoNCg0KDQoNCg==


From nobody Tue Jan 15 15:01:14 2019
Return-Path: <adam@nostrum.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB3A9130F2F; Tue, 15 Jan 2019 15:01:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.68
X-Spam-Level: 
X-Spam-Status: No, score=-1.68 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=nostrum.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 wY6xsI3cymPf; Tue, 15 Jan 2019 15:01:05 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 1FD2F130F1F; Tue, 15 Jan 2019 15:01:04 -0800 (PST)
Received: from Svantevit.local (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id x0FN0tHu091601 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 15 Jan 2019 17:00:57 -0600 (CST) (envelope-from adam@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1547593260; bh=4xwUj0qHdoPg7bkgMyXZaruE2n6jJjxiPJ8Cs6QKDZA=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=m0TZMY1LgJzZl1uKUarLIMyHrsI+Tha0jEyIbNdSVtkWdFG0MIQLDfQNCNeuzd9Nw Glyp4w/s4PoH7/ZQp1a147lSRcYtDJUyudNZqQC0gUtk6aF26UJxZ8F30sQrOhIfDZ simQ9qc+ZuF3wKEpWmOHcajlrOh13seSgRdtnHgE=
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Svantevit.local
To: Kent Watsen <kwatsen@juniper.net>, Benjamin Kaduk <kaduk@mit.edu>
Cc: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
References: <F526DA60-77EC-45D6-ADE0-B345020A89BF@juniper.net> <20181230003002.GC57547@kduck.kaduk.org> <5DCD6C74-7918-45AB-BEA7-2C1A020B4411@juniper.net> <20190106050255.GJ28515@kduck.kaduk.org> <35A436B3-5D57-4015-A51E-5F9A1E349D31@juniper.net> <DAC627AC-8453-41D2-B95C-BC25746E66C1@juniper.net> <cc5adc78-6751-fabf-03d2-e0c65f8a6c91@bbiw.net> <F844EDFB-3E15-47FB-A714-06363B996FC2@juniper.net> <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net>
From: Adam Roach <adam@nostrum.com>
Message-ID: <3d0efc38-edcd-4733-9093-884cea2733a2@nostrum.com>
Date: Tue, 15 Jan 2019 17:00:50 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/s34L0yexfzFvr99PCiLUKFHqa8I>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 23:01:07 -0000

The changes regarding DNS handling appear to be fine to me. Thanks for 
being so patient as we worked through the proper course of action here.

/a

On 1/11/19 5:10 PM, Kent Watsen wrote:
> Hi Adam, Benjamin, and Dave,
>
>    I just posted -28 to address this last COMMENT.
>    Please review to see how it can be improved.
>
>    The draft no longer says it uses DNS-SD and it
>    now registers "_sztp" in DNS Underscore Global
>    Scoped Entry Registry.
>    
>    Here's a direct link to updated/new sections:
>     - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-4.2
>     - https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-28#section-10.7
>
>
> Adam,
>
>    I added text about this draft not using DNS-SD.
>
>    Also, after reviewing RFC6763, copied over the
>    recommendation that mDNS SRV responses also
>    include address (A and AAAA) records.  This was
>    the only thing I can find of merit after searching
>    for both the strings "multicast" and "mdns".  Was
>    there something else you had in mind?
>
>
> Thanks,
> Kent
>
>
> ï»¿-----Original Message-----
> From: Adam Roach <adam@nostrum.com>
> Date: Thursday, January 10, 2019 at 5:00 PM
> To: Kent Watsen <kwatsen@juniper.net>, Benjamin Kaduk <kaduk@mit.edu>
> Cc: Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, NETCONF Working Group <netconf@ietf.org>
> Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
>
> On 1/10/19 2:09 PM, Kent Watsen wrote:
>>>> I don't think this is right. Draft-ietf-netconf-zerotouch is explicitly
>>>> using DNS-SD procedures [1]. In turn, DNS-SD absolutely mandates the
>>>> presence of both SRV and TXT records with the same name [2]. So the
>>>> names need to match.
>>> Whoops, that's totally an error on my part.  If we're explicitly doing
>>> DNS-SD, then there's "nothing to see here".
>>>
>>> Sorry for missing that.
>> No, wait, I think that the draft's stating that it uses DNS-SD procedures
>> may be in error.  It might be more correct to say that it uses DNS in the
>> following two separate/distinct ways (in order of device-processing):
>>
>>      1) A lookup for device-specific data (for the TXT RRs)
>>
>>         Currently is this:<serial-number>._sztp._tcp.example.com
>>         But maybe should be: <serial-number>._sztp.example.com ???
>>
>>         Returns TXT records (no SRV records) supplying bootstrapping
>>         data.
>
> Aha! Okay, I had missed this in my read of the zeroconf document. I
> think I just saw "DNS-SD" and made certain assumptions. If this is the
> procedure you've specced out, then you can't use a TXT record with the
> _tcp global underscored name (since its use has to be consistent with
> the procedures spelled out in RFC 6763). The use of
> <serial-number>._zrtp.example.com would be fine, and would call for a
> registration in the attrleaf registry.
>
>
>>         Only if this lookup fails (not in addition to), then the
>>         device moves to (2), in conflict with RFC 6763 Â§6.3 says:
>>
>>           "DNS-SD uses DNS TXT records to store arbitrary key/value pairs
>>            conveying *additional* information about the named service."
>>           (emphasis mine)
>>
>>
>>      2) A traditional SRV lookup (per RFC 2782, not DNS-SD, right?)
>>
>>         Example: _szpt._tcp.example.com
>>
>>         Returns SRV records (no TXT or PTR records) supplying
>>         traditional service info (address, port, priority, weight).
>
> Kind of? The issue here is that 2782 uses normal DNS lookup procedures,
> while zerotouch uses mDNS lookup procedures (if I've read things
> correctly). Doing mDNS with SRV records using _tcp but *not* using
> DNS-SD ends up stepping on DNS-SD's toes, at least a little bit. I
> suppose as long as "szpt" is registered in the service table (which is
> required for 2782 use), there's no practical risk of collisions.
>
>
>>         FWIW, technically, SZTP defines an application-level protocol
>>         on top of RESTCONF, which is on top of HTTPS, but I don't
>>         think anyone is suggesting this:
>>
>>             _sztp._restconf._http._tls._tcp.example.com   ;)
>
> I hate to admit that there's (kind of) precedent there, but it's *bad*
> precedent resulting from a misreading of 2782, and not something I'd
> encourage. :)
>
> <snip>
>
>
>> Note that the WG didn't know about draft-ietf-dnsop-attrleaf until just
>> now in the IESG review.  We were shoe-horning in DNS-SD as it the closest
>> fit.  But now that draft-ietf-dnsop-attrleaf is brought to our attention,
>> perhaps it makes more sense to define a top-level "_sztp" attribute for
>> the device-specific bootstrapping data?
>
> FWIW, before attrleaf, the accepted approach was to land-grab a label
> and naÃ¯vely hope that no one ever tried to grab the same label twice. In
> any case, even with attrleaf (and based on your clarifications above), I
> think the <serial-number>._sztp.example.com formulation for TXT is
> correct. With attrleaf, it's even more clearly so.
>
> All of that said, you'll need to put additional language in here about
> using SRV with mDNS, but *NOT* using DNS-SD procedures. I'd advise
> copying and modifying appropriate passages from DNS-SD as the basis for
> such language. Also, please be certain to be very clear about the
> relationship between this mechanism and DNS-SD.
>
> /a
>
>


From nobody Tue Jan 15 15:31:45 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0AEE212D4F2; Tue, 15 Jan 2019 15:31:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 OKjcwcyNdF6K; Tue, 15 Jan 2019 15:31:33 -0800 (PST)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-eopbgr800122.outbound.protection.outlook.com [40.107.80.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 824281292F1; Tue, 15 Jan 2019 15:31:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QMpryjLgEsyu6qPVsYXw967evkahaH4koJu9LCuJZok=; b=VpXH96uKaNHotfq8d5VbxVLOout8mbNeIPnZxEyR0weMJNSAMQYxNE8zDmORJvMj29KvQOfMGnCQK0TNZmyJDuNuPLxDODyTpBz6n/XVkwmSi6EHpavFIR0wNUMoNhGLXnCPB8afp+tU2fRDm4Ro0mO7pcKbk+RtYGwxK8YLgLE=
Received: from DM5PR0101CA0004.prod.exchangelabs.com (2603:10b6:4:28::17) by BN6PR0101MB2977.prod.exchangelabs.com (2603:10b6:405:2d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.18; Tue, 15 Jan 2019 23:31:32 +0000
Received: from BY2NAM03FT056.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::205) by DM5PR0101CA0004.outlook.office365.com (2603:10b6:4:28::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1516.18 via Frontend Transport; Tue, 15 Jan 2019 23:31:31 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT056.mail.protection.outlook.com (10.152.85.45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Tue, 15 Jan 2019 23:31:31 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0FNVQWL006218 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 15 Jan 2019 18:31:28 -0500
Date: Tue, 15 Jan 2019 17:31:26 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Kent Watsen <kwatsen@juniper.net>
CC: Adam Roach <adam@nostrum.com>, Dave Crocker <dcrocker@bbiw.net>, Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190115233125.GB91727@kduck.mit.edu>
References: <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net> <20190112005406.GU28515@kduck.mit.edu> <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net> <20190114221155.GL28515@kduck.mit.edu> <F68D5933-715C-4475-92B2-22DD06B5CA20@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <F68D5933-715C-4475-92B2-22DD06B5CA20@juniper.net>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(346002)(396003)(376002)(136003)(2980300002)(189003)(199004)(40224003)(336012)(7696005)(426003)(86362001)(229853002)(186003)(76176011)(36906005)(8936002)(54906003)(58126008)(316002)(16586007)(8676002)(75432002)(786003)(104016004)(26005)(6916009)(5660300001)(246002)(478600001)(1076003)(26826003)(33656002)(106002)(55016002)(305945005)(14444005)(486006)(93886005)(23726003)(53416004)(1941001)(4326008)(97756001)(106466001)(46406003)(2906002)(356004)(88552002)(126002)(50466002)(47776003)(956004)(476003)(11346002)(6246003)(446003)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR0101MB2977; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT056; 1:yG9UD9rLWcfG2tL9smM7X2Xa1o/JuZBviaypFOroGiTzX0sD3eywOlLL81Ea8xThgVAb79kYT55YIdXcV6Gu8K8V3pvqkj+rs4fcYw1wxmjwaTVa67H6fEfAi3wEHY7m
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 82e83cf3-86c3-46ed-d680-08d67b419493
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:BN6PR0101MB2977; 
X-Microsoft-Exchange-Diagnostics: 1; BN6PR0101MB2977; 3:ZN9FmorrEvexpypeh3A3umktwyOo/TkiC5+xve6Nxq2YnwYEyFe2qiRhxOaoE/+EalSW6VslsO4KDURmLLTe3nPJBcexxMqgoyKLogZJ2kCdPtcNcKbtWz8KypI5i1a8hZAU63Iqh7/iAY7Ht4o8QX6zqavvrULC5Q7334/tFw/CvkNCx+mXU1FDp+8ekdphr6t0NVWy24JMBTbAluXEvTxJuK/ns0O6Ve60oPvvXd11szcoq3zyfcUvz2k7mYogRnlq3w59sDSzmyYhoaeyAzOKkMG28u/7euuNFaE9VdEGlFZdCZ7ozu4I+4BUkNFVy39M+0Z45VXKKAWHTYghBKNBQ5WLUdi8glWrZ6zm1itu+W0jsKmU/dhp3G5GA2+p; 25:IGwQe0OJaM+fRFH2s6OFZcNMdIUuYVu7FjBMOLNl/bBn+2wh54636ZB0d/vxNZjMQWXMRF0/lQ6Fo74rICeMCLqW+/t/u+JfCFO2/X/qh03dn537OGKr1Td5ElTha+9PTvzFcTbryzLIqFx1qUb5rTh4ju6iCaXBn66l7MnJYTUcExxVd+GUUwQNrYjtBg7NW+0/Efq/zgrEODjumP2QvKADzVvp2+xCHNrMm30xvAKq+EULQrvNRZh2kxrudcgyJ8LrAtjT1EYWkG1Xo/+X37LzE1JY+njiDGjdrfWilOO9is5abmeAqcSfbWhGbhDewLDNn65+kB9JlEnyrVf/Nw==
X-MS-TrafficTypeDiagnostic: BN6PR0101MB2977:
X-Microsoft-Exchange-Diagnostics: 1; BN6PR0101MB2977; 31:EYWZ6i6UwOInorbOkGAhDlLjl5nCU3MlIzZ4sPIw4DeVj8ERyFGh2Ip+FY3EkaYZl0ZbS0L6IekHJ4H+pJTmlWPGAOHSlfh5/DOBjAvfCwsZoe/4W79URb6zQcQXlGgCGVUZdbMU2FbCn6XI/rO7Ju9F2th6QvbAcUgLOPKHkch/z4xBqqDFxEQGoaHvOEbN3OYbeF0p7MuRnH/+ovFbLo4bfqWqnKdMTmVdumfUIL4=; 20:G3JSEu+0O/3iVPBf6amCGehdzCc5A/xt0/RuZmVJa4I2WuzIQ7dz5jedtryeSO/RYXJG5+M17/anRss9tt64h1Tc3oDPyjhVm7BdLgisUo8b/O6JtGrXN0+911GAiAwS/tr2oA7lBHhKM1jxaOQDJAZUh8kaC6sOv9BP6ZDfAHywKa2rp0qN6GR+IADKIkrkOvu48D4Z4KXNaHr144KcsFiScytlYvBboKHhIGMRy7JkqiqiX0OiD7gwQDEiFbZVxC7nyP6ndAlTI9Npv1iFbvnkG3xc231xr1FaZJqVvOWHoy51xZyNDPU+ocQHRkDan8An/JDqnRm/pNhhqnA5K3923iFxW9yNwa4f+eYbpl6ZnSBMunoWU1rpAG813sUW0gh5eE7zACOTwjg7k77zmgyNdJ0I+oXprrnnrcdbO8JHEgJH+u4xqAIZoWwMkkUABxhKKgK/MnaRyTA/GJAyxZHDm3mTcGAIK73fnjF3ycSc1CtXtceycYKBwf4D3lnFxm2DwDWwbXli7pk+6jZXKIH+x0ZWLJhKqqFltk4DtXThNoTRgACzljePVYAS8KoETlboFLJgtZ1SDg1YZUY64V59tnr6X66KdTspUkSQY/0=
X-Microsoft-Antispam-PRVS: <BN6PR0101MB29772753DCCDBDBEA1425800A0810@BN6PR0101MB2977.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; BN6PR0101MB2977; 4:SF6YlqmUpzVYSYm/35cVK2co3rVqOjx8QRCiUwYJfncTbbMvHnre2k6gjL1Abp1e2rm3gWB+zD41KJcup93w6bi5IWiGRDzQiPY+f70303aLoe2sC4ScxsbwcjNCgd0v2ZF1gGWPh3gKFkKeGcrOoOcqgna+ZPQFscRu/Gt2DAH4WEL/o4qB+ZjlARSFWRFoHRmxges1kpyYLjPMppABIiPn9/SfG6T/5h3yFqITJiOneDNeIHZ11DdkVwJmJFQvBP3fH9x14jufMoqLMMH08bivXCKgeLtWhccYW7ZITrw2WsKG6AhtB3Lrmnvr9PnB
X-Forefront-PRVS: 0918748D70
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR0101MB2977; 23:2cC+JYpoS8f/liPPpcZJMwGp+TVSBk+FHfegMUu?= =?us-ascii?Q?p0G2vxp4HhWWJ5XPZoiM0Hi4NkrIICUe91z1jUPaqDVm3o+8XZMCCwqBphmn?= =?us-ascii?Q?uuKK0blJzPLfD2j5SXQfafIpTpjVojYo1BnmJK017Ydyol3sG1asOtQcOafD?= =?us-ascii?Q?3yABuETj/2LfBui7ytBifeqd+GjuHvPDrcrUoYxZ2rWeMEdLVGBRLNXP70Hq?= =?us-ascii?Q?Ii9MBG5jyH90vf7GwnBKzy59STcFtpIb6DI8khZW3AZr5a54ba4JtaXnWwHz?= =?us-ascii?Q?NflCaV2g/GRWfomc8rTTjJ/SgPX5jGVvmgcEYpgXvxQPU0Q070Ffkv2TRwGu?= =?us-ascii?Q?7MqhgM49LJqW+I9fwy7vTbgW/BIa87GZH4VYIeZT6Is7gQIVZ5PaFCH5LEU5?= =?us-ascii?Q?si25Q5N9w1H7zDK/oZT0HyOmgR8xnagw2+8jaJ9xKM+W2RZUVDgLFdHUoE9y?= =?us-ascii?Q?V+Sg8xj6wcack312risGNT2qTwlO+HYEG7I6MXodjM3NdM78qROCFueBZau7?= =?us-ascii?Q?sbNe/+mx0hZ+BGsSTyKIhimEvm59xWp3CNK9Zuv4zqUUAxm2vwkfO70vigi6?= =?us-ascii?Q?hxcuK5gp6x2zZ8/lAGjGAcjVswYRKWJ2VaH2yjTJ3sLf+zXzvANTAb9dSb5r?= =?us-ascii?Q?o/9Vyzy/BnwGSlgqU8aOH9wBTziQt3xvNF44OIUFN3m6zVI+g9YT9np8sAma?= =?us-ascii?Q?TcWakORGwIChFC0ABG8xDn797RrcG2j3Anz+rWI/h2uIxYwvwT89sFyjciDp?= =?us-ascii?Q?CzgIHqnaggA5xJsZStyBjzTvRibTLc1S9bjFeKLtZoxuEIuPP7kkH4aMiheY?= =?us-ascii?Q?M3LO84I5XPPBS5arj+0WobTFN57yj5wIShGun/elavrnew4DOTz7tevs1krx?= =?us-ascii?Q?pmxhCCzlNSHZyYBm0mB2dxBMxnVWVi+fwBJGO2YKGycOYWMlrfTmnijgBD0g?= =?us-ascii?Q?q77/lz0c0mHH92bOvjlwd41cZ0aRsCLqTF1Qsml2JM3xFoU/Gh21WCJWARWV?= =?us-ascii?Q?vKHQ78u4Pz5EMcQeNc2JRfhmYHnTcLWkZOnxjrMYOiK0SXiZPWe4mDmVF2Cb?= =?us-ascii?Q?I7sUbpvI3BPip9xahi3JFjaaY2D3ERwcjn2a0djHislJyEL4edIqj39LmuqF?= =?us-ascii?Q?WFhcPhfEpMmYkY72iZZF3dcH/StxPag5NK08Fnl5rGD96KA/A7aUIJhQLXBU?= =?us-ascii?Q?XzwQc6MelgeguMoq342NMLsOVR12i8527gptdSipoInxVNnSPoouhi07o1Tv?= =?us-ascii?Q?rzc5iw8Y9XcRBgV8Ixa164D4hD7RTMIKYDPpTFb1Rcw/Ho1UdyaaMIqFWXkM?= =?us-ascii?Q?EWg=3D=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: WS+BxoOovyjttQahKfuDBiKrRSv3LfB/cRsyuH52JBcmaEvK240XmOC1ZGIh74O4w+nupEEvDg2BGvn1gMwsLQMVrvdHY05QmgvlDbT9ubsa1oMmL73s+WNHuRWhg9UvUcH3Vt/GsccurFt+pkxy16hnr4YSspNwMO3wAT7yMSNSRIBoPb1Ityf8bimTZdYVEW0Zor4hAP7gka4Y5dVUOaKR44YG4bnDxOxYn/aeHVBRhzXDVSqunUtEUpAObH+PXWJ669lrbRejIX0YkwOrMEv9bhlO3gDCJ2+OJEyeAyOlDS0vcyNzYKF1DvA5y4k6Or8UHBOXxlOAxPhAej6ACwhcvJ2tT+NMnPu/KJ4YwEzZExT2rrJfoGDpegCJPhsdzytp88bBcJY6zd4526fgdbHXbHUyWb37giXxRfMajeM=
X-Microsoft-Exchange-Diagnostics: 1; BN6PR0101MB2977; 6:okOUAWJ5mnWFPsoYVDCryzY4XbeK/Zg9ItFQCe5M14x9R+YSrQ8qR6A66z7JRApkcH9UwkGp8omNjL2iELSK2JOrSz4YRUkVUpBBcA44+FwknOHAsnOmScMO9liHLjWb7UwndZ2AbI76aub88Ad8HBN6fAhEQEZJKK/UH/BnZ8L5hGb8Onblr2OGX99rHjj3ZjAmUQ7JxDxvt7uPtZKvVSWbisdW6oqkf7avM8UsgBoDJ8ZE1B6v+w6DM68p+tU/0Tup6I0Iu4kLaRpnkr4ve4SSrg2PSI7lv+5JT7INWmX/fo12PYm+SgDIrP4U1WuKll2DMYUsdZg4pkPmXM/rsEW4uEk+YavfdMaX0X4GOlRB9sx8OGgccD+/qmaD7gUNnoExh2D08sPX6NsMEwn5aqG+RGK/JuaVpFT8S2Ow/irbCdG6EZJ6kLA8lM1JTk6DJ7O3QwuoGEiDbaOD39HMVg==; 5:1cge2qFzKuF+OYGgqotc/vMgcDJ5pzJkTMhHPe1IIvDlI4Og+1Ezkhk/pEDwDSLB52Q+I8EtqGwn6Xh1FvhjRiuUGqxnbV9lWVdtUy0EuMIwGxIO8UaEODqtK4PIasv1bNiR4xGRv1kPrd1ZFuTImIKUP6S0uwyf8eq5NUk2gpjGjSz5trxTzm5YlwUWaQiUrWxox4xxZ1z2FJemlufQvA==; 7:JeBa+c0tth74hcQEhNZxGeqsqh3bvQMtrVDaXX1B3fk/wt3XPeUScskMrpbpysL1LyWux9v3ypHVTzENfgYnxX9CYXyxCqKuEysYeiZyKP/0tDb2uby6Ra4Uzqypjdfyu6+idSpVBcHEtyg8ztZzDw==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2019 23:31:31.1248 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82e83cf3-86c3-46ed-d680-08d67b419493
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR0101MB2977
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/6YoEA6FvvR2igG3wBAwJ3qpBPOg>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Jan 2019 23:31:36 -0000

On Tue, Jan 15, 2019 at 10:43:59PM +0000, Kent Watsen wrote:
> Hi Benjamin,
> 
> 
> >> Yes, that is the correct URL.  I've fixed it in my local copy.  
> >> The 802.1AR spec is behind a paywall, but it says this about the serial number:
> >> 
> >>   An IDevID certificate subject field be non-null and should
> >>   include a   unique device serial number encoded as the 
> >>   serialNumber attribute(RFC 5280 X520SerialNumber).
> >> 
> >> From RFC 5280:
> >> 
> >>    X520SerialNumber ::=    PrintableString (SIZE (1..ub-serial-number))
> >> 
> >>    ub-serial-number INTEGER ::= 64
> >> 
> >>    The character string type PrintableString supports a very basic Latin
> >>    character set: the lowercase letters 'a' through 'z', uppercase
> >>    letters 'A' through 'Z', the digits '0' through '9', eleven special
> >>    characters ' = ( ) + , - . / : ? and space.
> >> 
> >> Any comments/concerns about this?
> >
> > Sigh.  There could be some excitement here (but might not be), but I think
> > I'm going to have to defer to some people with more DNS (and X.500)
> > expertise.  There's several potential (but not certain) issues here,
> > including at least:
> >
> > (1) ub-serial-number is 64, and the maximum length of a DNS label is 64
> > octets, so we have no room for escaping or encoding at the margins.
> >
> > (2) RFC 1034 suggests that DNS domain name comparisons should be performed
> > in a case-insensitive manner (for alphabetic ASCII a-z/A-Z), but that
> > labels themselves can contain arbitrary octets.  There is some placation
> > here in that X.520 appears to define the Serial Number attribute should use
> > a caseIgnoreMatch equality matching rule, so maybe this is a non-issue.
> >
> > (3) Those extra characters (other than '-') are not allowed in DNS host
> > names.  AIUI, that technically shouldn't be a problem for this usage, but
> > I'm not 100% confident, and maybe some implementations are wrong.
> >
> > (4) Using '.' in a label is pretty rare and require escaping for textual
> > presentation (but this is not inherently a fatal flaw and would not hit the
> > 64-character limit on label length).
> >
> > But on the whole, the question I want to ask myself here is along the lines
> > of "how likely is there to be implementation incompatibility in this
> > space?".  If serial numbers in practice are not using the full flexibility,
> > this could still be a non-issue.
> 
> Be aware that the draft must, in general, say something about the serial
> number for each source of bootstrapping information (and note that the
> draft leaves open the possibility that more "sources" may be defined in
> the future):
> 
>   Removable Storage:
>     - okay, well, the draft punts on providing an actual file-naming
>       convention but, in theory, there could be a directory per 
>       serial-number.  E.g., /<serial-number>/<artifact-file>.
> 
>   DNS:
>     - TXT in <serial-number>._sztp.local.   (multicast)
>     - TXT in <serial-number>._sztp.<domain>.  (unicast)
> 
>   DHCP:
>     - the draft punts here as well. DHCP is the only source of
>       bootstrapping information defined by the document that
>       doesn't support device-specific response (bootp payloads
>       are *way* too small!)
> 
>   SZTP Bootstrap Server:
>     - device MUST identify/authenticate itself using its serial-number.
>     - device SHOULD use a client-certificate (DevID RECOMMENDED)
>     - device MAY use an HTTP authentication scheme but, if it does so,
>       it MUST identify itself using its serial-number.
> 
> Lastly, for any source, if "signed data" is returned, the ownership
> voucher [RFC 8366] defines a "serial-number" leaf that MUST be
> populated with the serial number value.
> 
> In general, it is felt that, if a device vendor's serial-numbers
> contain characters that are not supported by some protocol or format,
> then that is their problem to solve.  That said, most protocol/formats
> will define some escaping mechanism and, if not, the vendor can create
> some mapping.
> 
> As for serial-number lengths exceeding some limit, then it may mean
> that the device vendor either can't use that bootstrapping strategy,
> or, again, they come up with a mapping of some sort (e.g., a hash).
> But I doubt serial numbers ever get so long, as they are many times
> typed or spoken, and users would revolt if they were too long ;)
> 
> My hope is that we can ignore this concern altogether, or maybe just
> have a Security Considerations section that essentially captures the
> above.  Thoughts?

I'm inclined to believe that we can just ignore this concern for now, based
on the above discussion and having thought about the issues a bit more.

(I also see that Ignas has already pushed the "approve" button, so the
publication process is underway.)

Thanks again for all your work getting this one over the finish line.

-Benjamin


From nobody Tue Jan 15 16:59:25 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id C0848130F4D; Tue, 15 Jan 2019 16:59:23 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.89.3
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154760036374.10899.14662997193238053662@ietfa.amsl.com>
Date: Tue, 15 Jan 2019 16:59:23 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/wJkHrwsKfFa8K4TiDL4v0MFs2Tw>
Subject: [Netconf] I-D Action: draft-ietf-netconf-zerotouch-29.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2019 00:59:24 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Secure Zero Touch Provisioning (SZTP)
        Authors         : Kent Watsen
                          Mikael Abrahamsson
                          Ian Farrer
	Filename        : draft-ietf-netconf-zerotouch-29.txt
	Pages           : 97
	Date            : 2019-01-15

Abstract:
   This draft presents a technique to securely provision a networking
   device when it is booting in a factory-default state.  Variations in
   the solution enables it to be used on both public and private
   networks.  The provisioning steps are able to update the boot image,
   commit an initial configuration, and execute arbitrary scripts to
   address auxiliary needs.  The updated device is subsequently able to
   establish secure connections with other systems.  For instance, a
   device may establish NETCONF (RFC 6241) and/or RESTCONF (RFC 8040)
   connections with deployment-specific network management systems.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-zerotouch/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-zerotouch-29
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-zerotouch-29

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-zerotouch-29


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Tue Jan 15 17:10:38 2019
Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CECD112D4EA; Tue, 15 Jan 2019 17:10:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.253
X-Spam-Level: 
X-Spam-Status: No, score=-5.253 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 ZJvC2EysVTLe; Tue, 15 Jan 2019 17:10:29 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 D80CD130F80; Tue, 15 Jan 2019 17:10:29 -0800 (PST)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0G16oSf020179; Tue, 15 Jan 2019 17:10:29 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=wE6Fboc0dF620CnUTxvkG/m92lquXOpI7CAttntyqTA=; b=1Cxjb3vLFRCLX9qZFEEggPrGk6esraT1rHjyqqPNXXpLVcssE125K6UPSv8GgLx4ZjmX D/15o0AqBQPbpXBpvbFruwPvek21HKOmGjQ6dwiqNlmoZ2twq+zU+xBr4lMzKoWzE03A fxF0JJEWasOU+BAOqhBLMiJcRtqfNTmg3hdLWScAhVnKoKL1KGwruqsYptySf/pivlYu 1mT4vMfsCZLorS13B7vA63+6yUqyP5W00pThBEsw1LJDGcxG0qHE3qT0aHyhnhw9r6Q6 eNhl+PPQu+usv4mNI+xqOV4n6VGVbM/QIb8Z/PYUkyiVVmdL4qiL4iTm+CdL2yn7gk+2 9w== 
Received: from nam05-by2-obe.outbound.protection.outlook.com (mail-by2nam05lp2059.outbound.protection.outlook.com [104.47.50.59]) by mx0a-00273201.pphosted.com with ESMTP id 2q1m0k8k03-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 15 Jan 2019 17:10:29 -0800
Received: from BYAPR05MB5416.namprd05.prod.outlook.com (20.177.184.221) by BYAPR05MB4504.namprd05.prod.outlook.com (52.135.203.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.16; Wed, 16 Jan 2019 01:10:20 +0000
Received: from BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b]) by BYAPR05MB5416.namprd05.prod.outlook.com ([fe80::ccee:5d54:3370:e50b%5]) with mapi id 15.20.1537.018; Wed, 16 Jan 2019 01:10:20 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Benjamin Kaduk <kaduk@mit.edu>
CC: The IESG <iesg@ietf.org>, "draft-ietf-netconf-zerotouch@ietf.org" <draft-ietf-netconf-zerotouch@ietf.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
Thread-Index: AQHUi5qky69pAtgeuk6GIUpsNSYi7qVz1VIAgCLBFICAB70FgIADj4qAgAJJm4CAAxXrAIAAYVAA//+xH4CAAacWAIAAD4+AgAADiwD//8aMAIAActaAgAFSQoCAAHCvAIAEHSWAgABsiwCAAUd1gIAAYRYA///Hz4A=
Date: Wed, 16 Jan 2019 01:10:20 +0000
Message-ID: <0D451A2F-0F05-4474-94B0-ED3FAA1135BE@juniper.net>
References: <42cddba1-9f59-f19f-176f-197f0c0c0c96@bbiw.net> <32cfe06c-8204-a63a-263d-cb5b30a7a2fc@nostrum.com> <20190110183444.GN28515@kduck.mit.edu> <0CDD631D-47A4-4478-A250-85603C653D23@juniper.net> <f9e64452-a2e1-fb18-80b1-b2c5fa9c54ac@nostrum.com> <3ABB2B04-DB2C-4E2C-86C7-40D83D440DFB@juniper.net> <20190112005406.GU28515@kduck.mit.edu> <A1F059FB-5229-45B9-9EBB-CF60B78FF454@juniper.net> <20190114221155.GL28515@kduck.mit.edu> <F68D5933-715C-4475-92B2-22DD06B5CA20@juniper.net> <20190115233125.GB91727@kduck.mit.edu>
In-Reply-To: <20190115233125.GB91727@kduck.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.10.5.181209
x-originating-ip: [66.129.241.12]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB4504; 6:fHDXuJgPwpUUe5+T4daiXpFI+6p/7PxE3eXPawAzqKdOBB4VXP9EkCCHACT1n9eI3/ddhZM7X2+DYK1H0vMiWEUfRN2fjhE2XeoMEme+iTNUdlo1J8gToVNtLLjycBCn4PjZv4JzicsoLz8zu354wiyOGA6J13c+K1NXJGcIIQKc8XkJX7uqo2ceWwk2lSQ9jKrN1CpBn7bgQXZCo6ApSdlVKk/vDQ7EarSV6vGkcyzlwUQ+cFSeBwbi2y+XNj8Ukd3o3zlMY1HwMcLE8mShZ4oJJi0XM+9avM4fA24RKyfJ5lmzRtPsN12SvYWpkxWtrf6iu+SqwpIW3DL/YBsTrPVlCvwb7fusaWQIfwjFaRPz6JvQmSq7lOXYkfQfmqL575H7LuQtYnKCdofkDPPq1tKxaMur8NStv4OeSwIg3bNRGxEnCWksykse107N1Sl6/R7/cmVrNvYifjg/xfgHIg==; 5:eyQEmIlOiJXXGUNnfS+IU8PpeEmzWQdJAo1SbewRB+BUiQb52tjWTpg7kkYYT9RMJ8qqt7Ea8hAPgh8t8CJOiTRNS55P1pVciI6ygYPlxzjp4IIUVbcoCPUfRJ9jAWY9WB8fAR1esFbV06/jAI5Rw+qC6/FhMsQamo8IrPxIA9EmeggK096i0am9O4BNvs+Tq1vEm1WMlRZCsV0HSE5YcQ==; 7:o4rSs0y8dcqaJ0f+teBXsMx7P6QCMck9hsg8yvA6akVQNx/qwM4IODAufbxM+uSXS68Gu1lPPp3Y3t8gEqs6ugB3cmsDL0XlqRUEiHOOziYJLW5O+eYHIpYB6QWFnJZYl+yqj8+wRkgHSA2yP0itnQ==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: dc31ca7f-f309-4225-88ad-08d67b4f62a8
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB4504; 
x-ms-traffictypediagnostic: BYAPR05MB4504:
x-microsoft-antispam-prvs: <BYAPR05MB45046668D8F2C2179ABDB047A5820@BYAPR05MB4504.namprd05.prod.outlook.com>
x-forefront-prvs: 091949432C
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(346002)(136003)(376002)(396003)(366004)(13464003)(189003)(199004)(40224003)(476003)(486006)(86362001)(11346002)(446003)(105586002)(6436002)(97736004)(99286004)(53936002)(83716004)(71190400001)(71200400001)(6916009)(36756003)(6512007)(2171002)(66066001)(6116002)(3846002)(7736002)(6246003)(305945005)(2906002)(33656002)(8936002)(256004)(14444005)(54906003)(478600001)(14454004)(5660300001)(58126008)(25786009)(2616005)(81166006)(81156014)(229853002)(6486002)(106356001)(316002)(8676002)(76176011)(6506007)(53546011)(4326008)(102836004)(68736007)(82746002)(93886005)(6346003)(26005)(186003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB4504; H:BYAPR05MB5416.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: hBwHjhTZGO4zuKVTQueta5CZXZxs+N/9FnSz1Rqp2Lzt8Jnh4Y6+v2ESUq/YghzdQ5YHviY8wkinrkpxOsHk4v1QH6OzXiqUm5w/TfJVL0+HhVQSEFtOFgoWfxfYaHUP+K7SiWUPXwVk8AfWptk0ysNU1ehhoaD4xmcpitVlumrapwNFld/CrPPFSXfcVYIkGe106tbLonviC9970ha86C1kJWWg55kjTdjbhPIO+0vl2uMfQz3MfZ3T9/mvbZUbzLlhLiVCRMq+8W5z/oZAJVNaH0t3uDg80NdwcNRucuM66FQiPJbLwS0B8JTaEQkqqxGwOqbW7us3CJ8ZatihQL9+xI4o2HhwKn8nRALdJRE8fUB0Qbuocu/yKn4RcPbaoStrr5065u+VlTDtMw7v9ykIsUwTJ+3YhwVup2semCk=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <3B07351255ADA349A7936357FBDD6EBE@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: dc31ca7f-f309-4225-88ad-08d67b4f62a8
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2019 01:10:20.6007 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4504
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-15_09:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901160006
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/6ukgbRKNbjTZRKwbygoEFgSoNjQ>
Subject: Re: [Netconf] Benjamin Kaduk's Discuss on draft-ietf-netconf-zerotouch-25: (with DISCUSS and COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2019 01:10:32 -0000

T2theSwgSSBqdXN0IHBvc3RlZCB0aGUgdXBkYXRlIHdpdGggdGhlIDgwMi4xQVIgVVJMIGZpeGVk
Lg0KDQpBbmQsIGFzIHRoZXkgc2F5IGluIEJCJkZzLCB0aGF0J3MgYWxsIGZvbGtzISAgIDopDQoN
CktlbnQNCg0KDQrvu78tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQmVuamFtaW4g
S2FkdWsgPGthZHVrQG1pdC5lZHU+DQpEYXRlOiBUdWVzZGF5LCBKYW51YXJ5IDE1LCAyMDE5IGF0
IDY6MzEgUE0NClRvOiBLZW50IFdhdHNlbiA8a3dhdHNlbkBqdW5pcGVyLm5ldD4NCkNjOiBBZGFt
IFJvYWNoIDxhZGFtQG5vc3RydW0uY29tPiwgRGF2ZSBDcm9ja2VyIDxkY3JvY2tlckBiYml3Lm5l
dD4sIEFsZXhleSBNZWxuaWtvdiA8YWFtZWxuaWtvdkBmYXN0bWFpbC5mbT4sIFRoZSBJRVNHIDxp
ZXNnQGlldGYub3JnPiwgImRyYWZ0LWlldGYtbmV0Y29uZi16ZXJvdG91Y2hAaWV0Zi5vcmciIDxk
cmFmdC1pZXRmLW5ldGNvbmYtemVyb3RvdWNoQGlldGYub3JnPiwgIm5ldGNvbmYtY2hhaXJzQGll
dGYub3JnIiA8bmV0Y29uZi1jaGFpcnNAaWV0Zi5vcmc+LCBORVRDT05GIFdvcmtpbmcgR3JvdXAg
PG5ldGNvbmZAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW05ldGNvbmZdIEJlbmphbWluIEthZHVr
J3MgRGlzY3VzcyBvbiBkcmFmdC1pZXRmLW5ldGNvbmYtemVyb3RvdWNoLTI1OiAod2l0aCBESVND
VVNTIGFuZCBDT01NRU5UKQ0KDQpPbiBUdWUsIEphbiAxNSwgMjAxOSBhdCAxMDo0Mzo1OVBNICsw
MDAwLCBLZW50IFdhdHNlbiB3cm90ZToNCj4gSGkgQmVuamFtaW4sDQo+IA0KPiANCj4gPj4gWWVz
LCB0aGF0IGlzIHRoZSBjb3JyZWN0IFVSTC4gIEkndmUgZml4ZWQgaXQgaW4gbXkgbG9jYWwgY29w
eS4gIA0KPiA+PiBUaGUgODAyLjFBUiBzcGVjIGlzIGJlaGluZCBhIHBheXdhbGwsIGJ1dCBpdCBz
YXlzIHRoaXMgYWJvdXQgdGhlIHNlcmlhbCBudW1iZXI6DQo+ID4+IA0KPiA+PiAgIEFuIElEZXZJ
RCBjZXJ0aWZpY2F0ZSBzdWJqZWN0IGZpZWxkIGJlIG5vbi1udWxsIGFuZCBzaG91bGQNCj4gPj4g
ICBpbmNsdWRlIGEgICB1bmlxdWUgZGV2aWNlIHNlcmlhbCBudW1iZXIgZW5jb2RlZCBhcyB0aGUg
DQo+ID4+ICAgc2VyaWFsTnVtYmVyIGF0dHJpYnV0ZShSRkMgNTI4MCBYNTIwU2VyaWFsTnVtYmVy
KS4NCj4gPj4gDQo+ID4+IEZyb20gUkZDIDUyODA6DQo+ID4+IA0KPiA+PiAgICBYNTIwU2VyaWFs
TnVtYmVyIDo6PSAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLXNlcmlhbC1udW1iZXIp
KQ0KPiA+PiANCj4gPj4gICAgdWItc2VyaWFsLW51bWJlciBJTlRFR0VSIDo6PSA2NA0KPiA+PiAN
Cj4gPj4gICAgVGhlIGNoYXJhY3RlciBzdHJpbmcgdHlwZSBQcmludGFibGVTdHJpbmcgc3VwcG9y
dHMgYSB2ZXJ5IGJhc2ljIExhdGluDQo+ID4+ICAgIGNoYXJhY3RlciBzZXQ6IHRoZSBsb3dlcmNh
c2UgbGV0dGVycyAnYScgdGhyb3VnaCAneicsIHVwcGVyY2FzZQ0KPiA+PiAgICBsZXR0ZXJzICdB
JyB0aHJvdWdoICdaJywgdGhlIGRpZ2l0cyAnMCcgdGhyb3VnaCAnOScsIGVsZXZlbiBzcGVjaWFs
DQo+ID4+ICAgIGNoYXJhY3RlcnMgJyA9ICggKSArICwgLSAuIC8gOiA/IGFuZCBzcGFjZS4NCj4g
Pj4gDQo+ID4+IEFueSBjb21tZW50cy9jb25jZXJucyBhYm91dCB0aGlzPw0KPiA+DQo+ID4gU2ln
aC4gIFRoZXJlIGNvdWxkIGJlIHNvbWUgZXhjaXRlbWVudCBoZXJlIChidXQgbWlnaHQgbm90IGJl
KSwgYnV0IEkgdGhpbmsNCj4gPiBJJ20gZ29pbmcgdG8gaGF2ZSB0byBkZWZlciB0byBzb21lIHBl
b3BsZSB3aXRoIG1vcmUgRE5TIChhbmQgWC41MDApDQo+ID4gZXhwZXJ0aXNlLiAgVGhlcmUncyBz
ZXZlcmFsIHBvdGVudGlhbCAoYnV0IG5vdCBjZXJ0YWluKSBpc3N1ZXMgaGVyZSwNCj4gPiBpbmNs
dWRpbmcgYXQgbGVhc3Q6DQo+ID4NCj4gPiAoMSkgdWItc2VyaWFsLW51bWJlciBpcyA2NCwgYW5k
IHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIEROUyBsYWJlbCBpcyA2NA0KPiA+IG9jdGV0cywgc28g
d2UgaGF2ZSBubyByb29tIGZvciBlc2NhcGluZyBvciBlbmNvZGluZyBhdCB0aGUgbWFyZ2lucy4N
Cj4gPg0KPiA+ICgyKSBSRkMgMTAzNCBzdWdnZXN0cyB0aGF0IEROUyBkb21haW4gbmFtZSBjb21w
YXJpc29ucyBzaG91bGQgYmUgcGVyZm9ybWVkDQo+ID4gaW4gYSBjYXNlLWluc2Vuc2l0aXZlIG1h
bm5lciAoZm9yIGFscGhhYmV0aWMgQVNDSUkgYS16L0EtWiksIGJ1dCB0aGF0DQo+ID4gbGFiZWxz
IHRoZW1zZWx2ZXMgY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IG9jdGV0cy4gIFRoZXJlIGlzIHNvbWUg
cGxhY2F0aW9uDQo+ID4gaGVyZSBpbiB0aGF0IFguNTIwIGFwcGVhcnMgdG8gZGVmaW5lIHRoZSBT
ZXJpYWwgTnVtYmVyIGF0dHJpYnV0ZSBzaG91bGQgdXNlDQo+ID4gYSBjYXNlSWdub3JlTWF0Y2gg
ZXF1YWxpdHkgbWF0Y2hpbmcgcnVsZSwgc28gbWF5YmUgdGhpcyBpcyBhIG5vbi1pc3N1ZS4NCj4g
Pg0KPiA+ICgzKSBUaG9zZSBleHRyYSBjaGFyYWN0ZXJzIChvdGhlciB0aGFuICctJykgYXJlIG5v
dCBhbGxvd2VkIGluIEROUyBob3N0DQo+ID4gbmFtZXMuICBBSVVJLCB0aGF0IHRlY2huaWNhbGx5
IHNob3VsZG4ndCBiZSBhIHByb2JsZW0gZm9yIHRoaXMgdXNhZ2UsIGJ1dA0KPiA+IEknbSBub3Qg
MTAwJSBjb25maWRlbnQsIGFuZCBtYXliZSBzb21lIGltcGxlbWVudGF0aW9ucyBhcmUgd3Jvbmcu
DQo+ID4NCj4gPiAoNCkgVXNpbmcgJy4nIGluIGEgbGFiZWwgaXMgcHJldHR5IHJhcmUgYW5kIHJl
cXVpcmUgZXNjYXBpbmcgZm9yIHRleHR1YWwNCj4gPiBwcmVzZW50YXRpb24gKGJ1dCB0aGlzIGlz
IG5vdCBpbmhlcmVudGx5IGEgZmF0YWwgZmxhdyBhbmQgd291bGQgbm90IGhpdCB0aGUNCj4gPiA2
NC1jaGFyYWN0ZXIgbGltaXQgb24gbGFiZWwgbGVuZ3RoKS4NCj4gPg0KPiA+IEJ1dCBvbiB0aGUg
d2hvbGUsIHRoZSBxdWVzdGlvbiBJIHdhbnQgdG8gYXNrIG15c2VsZiBoZXJlIGlzIGFsb25nIHRo
ZSBsaW5lcw0KPiA+IG9mICJob3cgbGlrZWx5IGlzIHRoZXJlIHRvIGJlIGltcGxlbWVudGF0aW9u
IGluY29tcGF0aWJpbGl0eSBpbiB0aGlzDQo+ID4gc3BhY2U/Ii4gIElmIHNlcmlhbCBudW1iZXJz
IGluIHByYWN0aWNlIGFyZSBub3QgdXNpbmcgdGhlIGZ1bGwgZmxleGliaWxpdHksDQo+ID4gdGhp
cyBjb3VsZCBzdGlsbCBiZSBhIG5vbi1pc3N1ZS4NCj4gDQo+IEJlIGF3YXJlIHRoYXQgdGhlIGRy
YWZ0IG11c3QsIGluIGdlbmVyYWwsIHNheSBzb21ldGhpbmcgYWJvdXQgdGhlIHNlcmlhbA0KPiBu
dW1iZXIgZm9yIGVhY2ggc291cmNlIG9mIGJvb3RzdHJhcHBpbmcgaW5mb3JtYXRpb24gKGFuZCBu
b3RlIHRoYXQgdGhlDQo+IGRyYWZ0IGxlYXZlcyBvcGVuIHRoZSBwb3NzaWJpbGl0eSB0aGF0IG1v
cmUgInNvdXJjZXMiIG1heSBiZSBkZWZpbmVkIGluDQo+IHRoZSBmdXR1cmUpOg0KPiANCj4gICBS
ZW1vdmFibGUgU3RvcmFnZToNCj4gICAgIC0gb2theSwgd2VsbCwgdGhlIGRyYWZ0IHB1bnRzIG9u
IHByb3ZpZGluZyBhbiBhY3R1YWwgZmlsZS1uYW1pbmcNCj4gICAgICAgY29udmVudGlvbiBidXQs
IGluIHRoZW9yeSwgdGhlcmUgY291bGQgYmUgYSBkaXJlY3RvcnkgcGVyIA0KPiAgICAgICBzZXJp
YWwtbnVtYmVyLiAgRS5nLiwgLzxzZXJpYWwtbnVtYmVyPi88YXJ0aWZhY3QtZmlsZT4uDQo+IA0K
PiAgIEROUzoNCj4gICAgIC0gVFhUIGluIDxzZXJpYWwtbnVtYmVyPi5fc3p0cC5sb2NhbC4gICAo
bXVsdGljYXN0KQ0KPiAgICAgLSBUWFQgaW4gPHNlcmlhbC1udW1iZXI+Ll9zenRwLjxkb21haW4+
LiAgKHVuaWNhc3QpDQo+IA0KPiAgIERIQ1A6DQo+ICAgICAtIHRoZSBkcmFmdCBwdW50cyBoZXJl
IGFzIHdlbGwuIERIQ1AgaXMgdGhlIG9ubHkgc291cmNlIG9mDQo+ICAgICAgIGJvb3RzdHJhcHBp
bmcgaW5mb3JtYXRpb24gZGVmaW5lZCBieSB0aGUgZG9jdW1lbnQgdGhhdA0KPiAgICAgICBkb2Vz
bid0IHN1cHBvcnQgZGV2aWNlLXNwZWNpZmljIHJlc3BvbnNlIChib290cCBwYXlsb2Fkcw0KPiAg
ICAgICBhcmUgKndheSogdG9vIHNtYWxsISkNCj4gDQo+ICAgU1pUUCBCb290c3RyYXAgU2VydmVy
Og0KPiAgICAgLSBkZXZpY2UgTVVTVCBpZGVudGlmeS9hdXRoZW50aWNhdGUgaXRzZWxmIHVzaW5n
IGl0cyBzZXJpYWwtbnVtYmVyLg0KPiAgICAgLSBkZXZpY2UgU0hPVUxEIHVzZSBhIGNsaWVudC1j
ZXJ0aWZpY2F0ZSAoRGV2SUQgUkVDT01NRU5ERUQpDQo+ICAgICAtIGRldmljZSBNQVkgdXNlIGFu
IEhUVFAgYXV0aGVudGljYXRpb24gc2NoZW1lIGJ1dCwgaWYgaXQgZG9lcyBzbywNCj4gICAgICAg
aXQgTVVTVCBpZGVudGlmeSBpdHNlbGYgdXNpbmcgaXRzIHNlcmlhbC1udW1iZXIuDQo+IA0KPiBM
YXN0bHksIGZvciBhbnkgc291cmNlLCBpZiAic2lnbmVkIGRhdGEiIGlzIHJldHVybmVkLCB0aGUg
b3duZXJzaGlwDQo+IHZvdWNoZXIgW1JGQyA4MzY2XSBkZWZpbmVzIGEgInNlcmlhbC1udW1iZXIi
IGxlYWYgdGhhdCBNVVNUIGJlDQo+IHBvcHVsYXRlZCB3aXRoIHRoZSBzZXJpYWwgbnVtYmVyIHZh
bHVlLg0KPiANCj4gSW4gZ2VuZXJhbCwgaXQgaXMgZmVsdCB0aGF0LCBpZiBhIGRldmljZSB2ZW5k
b3IncyBzZXJpYWwtbnVtYmVycw0KPiBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHN1
cHBvcnRlZCBieSBzb21lIHByb3RvY29sIG9yIGZvcm1hdCwNCj4gdGhlbiB0aGF0IGlzIHRoZWly
IHByb2JsZW0gdG8gc29sdmUuICBUaGF0IHNhaWQsIG1vc3QgcHJvdG9jb2wvZm9ybWF0cw0KPiB3
aWxsIGRlZmluZSBzb21lIGVzY2FwaW5nIG1lY2hhbmlzbSBhbmQsIGlmIG5vdCwgdGhlIHZlbmRv
ciBjYW4gY3JlYXRlDQo+IHNvbWUgbWFwcGluZy4NCj4gDQo+IEFzIGZvciBzZXJpYWwtbnVtYmVy
IGxlbmd0aHMgZXhjZWVkaW5nIHNvbWUgbGltaXQsIHRoZW4gaXQgbWF5IG1lYW4NCj4gdGhhdCB0
aGUgZGV2aWNlIHZlbmRvciBlaXRoZXIgY2FuJ3QgdXNlIHRoYXQgYm9vdHN0cmFwcGluZyBzdHJh
dGVneSwNCj4gb3IsIGFnYWluLCB0aGV5IGNvbWUgdXAgd2l0aCBhIG1hcHBpbmcgb2Ygc29tZSBz
b3J0IChlLmcuLCBhIGhhc2gpLg0KPiBCdXQgSSBkb3VidCBzZXJpYWwgbnVtYmVycyBldmVyIGdl
dCBzbyBsb25nLCBhcyB0aGV5IGFyZSBtYW55IHRpbWVzDQo+IHR5cGVkIG9yIHNwb2tlbiwgYW5k
IHVzZXJzIHdvdWxkIHJldm9sdCBpZiB0aGV5IHdlcmUgdG9vIGxvbmcgOykNCj4gDQo+IE15IGhv
cGUgaXMgdGhhdCB3ZSBjYW4gaWdub3JlIHRoaXMgY29uY2VybiBhbHRvZ2V0aGVyLCBvciBtYXli
ZSBqdXN0DQo+IGhhdmUgYSBTZWN1cml0eSBDb25zaWRlcmF0aW9ucyBzZWN0aW9uIHRoYXQgZXNz
ZW50aWFsbHkgY2FwdHVyZXMgdGhlDQo+IGFib3ZlLiAgVGhvdWdodHM/DQoNCkknbSBpbmNsaW5l
ZCB0byBiZWxpZXZlIHRoYXQgd2UgY2FuIGp1c3QgaWdub3JlIHRoaXMgY29uY2VybiBmb3Igbm93
LCBiYXNlZA0Kb24gdGhlIGFib3ZlIGRpc2N1c3Npb24gYW5kIGhhdmluZyB0aG91Z2h0IGFib3V0
IHRoZSBpc3N1ZXMgYSBiaXQgbW9yZS4NCg0KKEkgYWxzbyBzZWUgdGhhdCBJZ25hcyBoYXMgYWxy
ZWFkeSBwdXNoZWQgdGhlICJhcHByb3ZlIiBidXR0b24sIHNvIHRoZQ0KcHVibGljYXRpb24gcHJv
Y2VzcyBpcyB1bmRlcndheS4pDQoNClRoYW5rcyBhZ2FpbiBmb3IgYWxsIHlvdXIgd29yayBnZXR0
aW5nIHRoaXMgb25lIG92ZXIgdGhlIGZpbmlzaCBsaW5lLg0KDQotQmVuamFtaW4NCg0K


From nobody Wed Jan 16 01:39:11 2019
Return-Path: <yves.beauville@nokia.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DA1DF130DEF for <netconf@ietfa.amsl.com>; Wed, 16 Jan 2019 01:39:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.454
X-Spam-Level: 
X-Spam-Status: No, score=-6.454 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 GMkgsjsreDb4 for <netconf@ietfa.amsl.com>; Wed, 16 Jan 2019 01:39:07 -0800 (PST)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70091.outbound.protection.outlook.com [40.107.7.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B63F9130DDA for <netconf@ietf.org>; Wed, 16 Jan 2019 01:39:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B+kGA88+K1yMI9dLtdLLwu/quS15HBl+8INLIsRUH/o=; b=kQ1GmmfWfYt2n9huRqZ5ULu67jiUKjqguFhdNNVFtemVNqydNdwGpDgZg/nviKbqFri4QzF91+TVmIuRXvsk7RkARiISyMm5OgLZHUqmTj23lWER6Ovl5uKSTvrBxfO9PnahFNDL5lDYo71FpfvPZ1/XPiPvn/DGRNabSiir7Uo=
Received: from VI1PR07MB5934.eurprd07.prod.outlook.com (20.178.81.148) by VI1PR07MB3262.eurprd07.prod.outlook.com (10.175.243.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.22; Wed, 16 Jan 2019 09:39:04 +0000
Received: from VI1PR07MB5934.eurprd07.prod.outlook.com ([fe80::a5e7:5e7e:306f:628b]) by VI1PR07MB5934.eurprd07.prod.outlook.com ([fe80::a5e7:5e7e:306f:628b%7]) with mapi id 15.20.1537.018; Wed, 16 Jan 2019 09:39:04 +0000
From: "Beauville, Yves (Nokia - BE/Antwerp)" <yves.beauville@nokia.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Question on notification filtering with RFC5277
Thread-Index: AQHUrX9RAMatarqDfEOQcaNrKQorHg==
Date: Wed, 16 Jan 2019 09:39:03 +0000
Message-ID: <c23152a0-d640-5bca-f609-5c1de0cb3162@nokia.com>
Accept-Language: fr-BE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.245.212.94]
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
x-clientproxiedby: PR2P264CA0017.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101::29) To VI1PR07MB5934.eurprd07.prod.outlook.com (2603:10a6:803:c6::20)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=yves.beauville@nokia.com; 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; VI1PR07MB3262; 6:rwZ63UXzXmTuEe/wE9CR9Lf/5lv7jG1HbOjsuvqgmozLOuZrgrTZ/TKvvd61ObEBF3nDP3ytgYs2Q1vVWX8L/EB5z5ejm5pduedUBxOz891C1iFs6TAesTZjfMWa2gxzfnDAADG7lCue+msuRdWBFWfmSdfj4TkHpxUCayBxtp/Wsi5Tjfx/fttIgsDrKAAiyTEP4IVZ5r7zS/0LEqBBDVmqzW573t5zq68LGKpOX7XRRrR86FTWtlZkjYMhrrwiMj9ske4VLxPv865ZnMN45CbKxSQCSgFQJZns6G+YOvnOKxNCTw8gngb53T9b0Fa2URmdhRvsAGttQjHTqkefSSVws2bnGRkwHw4Svc8z+UOdRTQWibQzy1H9waQMFFO7qFtDjutPW6bDsY+C5Reo9tnpWJRA0bJGTM7V5vPqAD/apct4BnUysiq/Ve1vL0mCVogc9YrNXmviKF2NHqZM1g==; 5:gzeEn9/39dr3HJ9/Ruo/jdfiszNA/dBqniskT4Eq+lZQRx0y+Pl7lt00UlT0IsRj5NKknV4fSbQVv8Tre8fb6v2bldn38Vp2h+Wm3uWovX1rv6ydngoZhrverRcJha6eU/JcLzBWUan2+Bfp2emRb+zlQDWvy9aW8T0Nu/6nRemP9rmW7PJFU8L1JSSu3v08/7lL5jI9VCb9sTYVwAqWzQ==; 7:TZVCqXIdA4v1Hyw4M5zR16vxZZEJqFzfZaay5naSiJuK9SkL17dSAjtN/z9zNZrDldr/lBdVdJxNhL5yyRmtkfhxuBQ8OfxGpiytAIjzUxFcP+J7HVYf+9bTvUfr6CqjbZC6iUhSb1IHPdkGe+YDUg==
x-ms-office365-filtering-correlation-id: 82965fe6-ab19-4df8-5d57-08d67b967398
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7193020); SRVR:VI1PR07MB3262; 
x-ms-traffictypediagnostic: VI1PR07MB3262:
x-microsoft-antispam-prvs: <VI1PR07MB32629109DDF05D9A7373E63789820@VI1PR07MB3262.eurprd07.prod.outlook.com>
x-forefront-prvs: 091949432C
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(136003)(346002)(376002)(39860400002)(396003)(199004)(189003)(53936002)(2501003)(14444005)(8676002)(256004)(3846002)(6116002)(52116002)(8936002)(81156014)(81166006)(1730700003)(86362001)(6512007)(5660300001)(6506007)(386003)(186003)(7736002)(6916009)(102836004)(26005)(71200400001)(65826007)(71190400001)(305945005)(316002)(15650500001)(6486002)(31686004)(25786009)(478600001)(66066001)(65956001)(476003)(97736004)(64126003)(2906002)(65806001)(31696002)(2616005)(6436002)(99286004)(36756003)(105586002)(58126008)(106356001)(68736007)(2351001)(5640700003)(14454004)(486006); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR07MB3262; H:VI1PR07MB5934.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: eCUhjZ9W+SyPBx/G3tVrIQIf8Xjni6Y9vxSSgOKnDuirO+cIiLoXnUI+djNZuo3OYAFO+W/ae2ePeTGcHQOZGm//fg/+wu4uMQMN4tcf3gDn4UMwIZLZPGOyv+5tQGPpL0OMgGS/vvDGwkWG3k6Dv4xS/Z4R+engDszOCy4XI40lmhvpzfcpLtTIwJM6LN+Q1+3yo9oawuZA1ykGmq5m76sT83vrl1vrJEwp2pudQlnw+Ug+iEZWE6Ncg88SYOwzvjrIaVAsADqOBEoYQSy7gBF6VgPdpJ6VJtfYB5GgHZ1yMayWMOaWPu8DFhiHeNTuG+YSv4qi1TiVGdjt5OVv8SZEPQ03moKgdGx+m2vtfO1rNtXwgGNGk8uHBkY5zkjaERPwAB8sw1qU5zO+5lHDdc+NuX6erccu+C6qFB3QO/Y=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <11CB743349BF1D4A91C91535D1916B22@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82965fe6-ab19-4df8-5d57-08d67b967398
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2019 09:39:03.2758 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB3262
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/I5QpSYomsWPecwM-rRsnYBaRTFM>
Subject: [Netconf] Question on notification filtering with RFC5277
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2019 09:39:09 -0000

SGVsbG8sDQoNCkNhbiBhbnlvbmUgaGVscCBtZSB3aXRoIHRoZSBmb2xsb3dpbmc/DQoNCkkgYW0g
bWFuYWdpbmcgYSBORVRDT05GIHNlcnZlciB0aGF0IGltcGxlbWVudHMgUkZDNTI3NyAoTkVUQ09O
RiBFdmVudCANCk5vdGlmaWNhdGlvbnMpDQphbmQgUkZDNjQ3MCAoTkVUQ09ORiBCYXNlIE5vdGlm
aWNhdGlvbnMpLg0KDQpJIHdvdWxkIGxpa2UgdG8ga25vdyBpZiBpdCBpcyBwb3NzaWJsZSB0byBj
cmVhdGUgYSBub3RpZmljYXRpb24gDQpzdWJzY3JpcHRpb24NCnRvIHJlY2VpdmUgbm90aWZpY2F0
aW9ucyBvZiB0eXBlICduZXRjb25mLWNvbmZpZy1jaGFuZ2UnIGZvciBhIFNQRUNJRklDIA0KU1VC
VFJFRQ0Kb2YgdGhlIGRhdGEgbW9kZWwgaW1wbGVtZW50ZWQgYnkgdGhlIHNlcnZlci4NCg0KTGV0
J3Mgc2F5IHRoYXQgaW4gYWRkaXRpb24gdG8gUkZDNTI3NyBhbmQgUkZDNjQ3MCwgdGhlIHNlcnZl
ciBpbXBsZW1lbnRzIA0KdGhlDQpmb2xsb3dpbmcgZHVtbXkgWUFORyBtb2R1bGU6DQoNCiDCoMKg
wqDCoCBtb2R1bGUgZXhhbXBsZS1mb28gew0KIMKgwqDCoMKgwqDCoCB5YW5nLXZlcnNpb24gMS4x
Ow0KIMKgwqDCoMKgwqDCoCBuYW1lc3BhY2UgInVybjpleGFtcGxlOmZvbyI7DQogwqDCoMKgwqDC
oMKgIHByZWZpeCAiZm9vIjsNCg0KIMKgwqDCoMKgwqDCoCBjb250YWluZXIgY29udGFpbmVyLWEg
ew0KIMKgwqDCoMKgwqDCoMKgwqAgLy8gc29tZSBkYXRhDQogwqDCoMKgwqDCoMKgwqDCoCB9DQoN
CiDCoMKgwqDCoMKgwqAgY29udGFpbmVyIGNvbnRhaW5lci1iIHsNCiDCoMKgwqDCoMKgwqDCoMKg
IC8vIHNvbWUgZGF0YQ0KIMKgwqDCoMKgwqDCoMKgwqAgfQ0KDQogwqDCoMKgwqAgfQ0KDQpJIHdv
dWxkIGxpa2UgdG8gcmVjZWl2ZSBub3RpZmljYXRpb25zIG9mIHR5cGUgJ25ldGNvbmYtY29uZmln
LWNoYW5nZScsIGJ1dA0Kb25seSBmb3IgY2hhbmdlcyBoYXBwZW5pbmcgaW4gJ2NvbnRhaW5lci1i
Jy4NCg0KRmlyc3QsIEkgbmVlZCB0byBmaWx0ZXIgbm90aWZpY2F0aW9ucyBvZiB0eXBlICduZXRj
b25mLWNvbmZpZy1jaGFuZ2UnLiANClNvbWV0aGluZyBsaWtlOg0KDQogwqDCoMKgwqDCoMKgwqAg
PGNyZWF0ZS1zdWJzY3JpcHRpb24NCnhtbG5zPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOm5ldGNv
bmY6bm90aWZpY2F0aW9uOjEuMCI+DQogwqDCoMKgwqDCoMKgwqDCoMKgIDxmaWx0ZXIgdHlwZT0i
eHBhdGgiDQp4bWxuczpuY249InVybjppZXRmOnBhcmFtczp4bWw6bnM6eWFuZzppZXRmLW5ldGNv
bmYtbm90aWZpY2F0aW9ucyINCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZWN0PSIvbmNu
Om5ldGNvbmYtY29uZmlnLWNoYW5nZSIvPg0KIMKgwqDCoMKgwqDCoMKgIDwvY3JlYXRlLXN1YnNj
cmlwdGlvbj4NCg0KVGhlICduZXRjb25mLWNvbmZpZy1jaGFuZ2UnIG5vdGlmaWNhdGlvbiBjb250
YWlucyBhIGxpc3Qgb2YgZWRpdHMgDQpkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCiDCoMKgwqDCoCBu
b3RpZmljYXRpb24gbmV0Y29uZi1jb25maWctY2hhbmdlIHsNCiDCoMKgwqDCoMKgwqAgbGlzdCBl
ZGl0IHsNCiDCoMKgwqDCoMKgwqDCoMKgIGxlYWYgdGFyZ2V0IHsNCiDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7DQoNClF1ZXN0aW9uOiBJcyBpdCBwb3NzaWJs
ZSB0byByZWZpbmUgdGhlIGFib3ZlIGZpbHRlciB0byBvbmx5IHN1YnNjcmliZSANCmZvciBub3Rp
ZmljYXRpb25zDQpoYXZpbmcgYSAndGFyZ2V0JyBpbiAnY29udGFpbmVyLWInIG9mIHRoZSAnZXhh
bXBsZS1mb28nIFlBTkcgbW9kdWxlPw0KDQpUaGFua3MNCll2ZXMgQmVhdXZpbGxlDQoNCg==


From nobody Wed Jan 16 10:35:16 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DDAC3130E91; Wed, 16 Jan 2019 10:35:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.053
X-Spam-Level: 
X-Spam-Status: No, score=-19.053 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 zQaeioLwjxz7; Wed, 16 Jan 2019 10:35:10 -0800 (PST)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C3AE0130EA9; Wed, 16 Jan 2019 10:35:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=33016; q=dns/txt; s=iport; t=1547663710; x=1548873310; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=eICuy9FteqALVwVeQVOwuNSM17Dmn0NkqX8cLo1l2Nc=; b=GeQo0Tcku+1E7knCl0352D80HhwAlMBM1pvi7yXfsa8AgR9GwmlvFBxY I9YI/+U87e16zRowKMmiAXliM3l2tV+LI5ZegdiovoyMN7d0jA3rzLEz4 Jk7s9W2IE+GMvL6iX8jx5/v9PEeMSLKRzcQzL7Agp3X80PfXPFtzgEHC/ Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AGAACMeD9c/5xdJa1ZAQIHGgEBAQE?= =?us-ascii?q?BAgEBAQEHAgEBAQGBUQUBAQEBCwGBWilmgQInCoN3Yoc4i16CDXyXAhSBZws?= =?us-ascii?q?BASWEAUYCF4I8IjQJDQEDAQECAQECbRwMhUoBAQEBAgEaCRE+BQIFCwIBCBU?= =?us-ascii?q?FAgkdAgICMBUQAgQBDQ0TgjxMgXkIDwOrSoEvhC4BhXsFgQuLNBeBQD+BEYJ?= =?us-ascii?q?dNYMeAgGBNQEKAQEGAgODHII1IgKJPBIIMAuFcYFWhGyLTAkChyCDU4cWIIt?= =?us-ascii?q?0AoYViX0DhRiLTwIRFIEnHziBVnAVGoMNgicXE20BAgaCQoUUhT9BMQGIZQ8?= =?us-ascii?q?XA4EFgR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,487,1539648000"; d="scan'208";a="226903048"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by alln-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jan 2019 18:35:08 +0000
Received: from XCH-RTP-012.cisco.com (xch-rtp-012.cisco.com [64.101.220.152]) by rcdn-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id x0GIZ7Ya025909 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 16 Jan 2019 18:35:08 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-012.cisco.com (64.101.220.152) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 16 Jan 2019 13:35:06 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Wed, 16 Jan 2019 13:35:07 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36Ag
Date: Wed, 16 Jan 2019 18:35:07 +0000
Message-ID: <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com>
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com>
In-Reply-To: <154751447121.9624.9621514728857769626@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.152, xch-rtp-012.cisco.com
X-Outbound-Node: rcdn-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/E71PPS6ZS3SZmVewGTDwYN03dNA>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2019 18:35:16 -0000

SGkgQW5keSwNCg0KVGhhbmtzIGZvciB0aGUgcmV2aWV3LiAgU29tZSB0aG91Z2h0cy4uLi4NCg0K
PiBGcm9tOiBBbmR5IEJpZXJtYW4sIEphbnVhcnkgMTQsIDIwMTkgODowOCBQTQ0KPiANCj4gUmV2
aWV3ZXI6IEFuZHkgQmllcm1hbg0KPiBSZXZpZXcgcmVzdWx0OiBSZWFkeSB3aXRoIElzc3Vlcw0K
PiANCj4gYmFzZWQgb24gZHJhZnQtMjENCj4gaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnNA
MjAxOC0xMi0xOQ0KPiANCj4gR2VuZXJhbCBDb21tZW50czoNCj4gDQo+ICAgLS0gdGhlIGRvY3Vt
ZW50IGlzIHdlbGwtd3JpdHRlbiBhbmQgdGhlIGZlYXR1cmUtc2V0IGlzDQo+ICAgICAgdmVyeSBj
b21wcmVoZW5zaXZlLiBUaGVyZSBhcmUgYSBsb3Qgb2YgWUFORyBmZWF0dXJlcyAoMTApDQo+ICAg
ICAgYnV0IHRoZXkgYXJlIGRlZmluZWQgdG8gYWxsb3cgZm9yIGEgbGFyZ2Ugc2V0IG9mDQo+ICAg
ICAgcHVibGlzaGVyIHBsYXRmb3Jtcy4NCj4gDQo+ICAgLS0gdGhlIGV4dGVuc2liaWxpdHkgbWVj
aGFuaXNtcyBmb3IgZmlsdGVycywgdHJhbnNwb3J0LA0KPiAgICAgIGFuZCBlbmNvZGluZyBzaG91
bGQgYmUgdmFsdWFibGUgb3ZlciB0aW1lLiBUaGVyZSBpcw0KPiAgICAgIGEgcmlzayBvZiBwcm9w
cmlldGFyeSBzb2x1dGlvbnMgdGhhdCBkbyBub3QgaW50ZXJvcGVyYXRlDQo+ICAgICAgYnV0IHRo
aXMgYmFzZSBZQU5HIG1vZHVsZSBwcm92aWRlcyBlbm91Z2ggZnVuY3Rpb25hbGl0eS4NCj4gICAg
ICBSZWxpYW5jZSBvbiBmdXR1cmUgYXVnbWVudGF0aW9ucyBpcyBuZXcgYnV0IHNob3VsZCBiZSBP
Sw0KPiANCj4gICAtLSBhZHZhbmNlZCB1c2Ugb2YgZ3JvdXBpbmdzLCByZWZpbmUtc3RtdCBhbmQg
YXVnbWVudC1zdG10DQo+ICAgICAgd2l0aGluIGdyb3VwaW5ncyBtYWtlcyB0aGUgbW9kdWxlIGRp
ZmZpY3VsdCBmb3IgaHVtYW5zDQo+ICAgICAgdG8gZnVsbHkgdW5kZXJzdGFuZCB3aXRob3V0IGFk
ZGl0aW9uYWwgdG9vbHMsIGFuZCB3aXRob3V0DQo+ICAgICAgdGhlIG5vcm1hdGl2ZSB0ZXh0IG91
dHNpZGUgdGhlIFlBTkcgbW9kdWxlLg0KPiANCj4gSXNzdWVzOg0KPiANCj4gSTEpIDEuNC4gIFJl
bGF0aW9uc2hpcCB0byBSRkMgNTI3Nw0KPiANCj4gICAtLSB0aGlzIHNlY3Rpb24gc2hvdWxkIG1l
bnRpb24gdGhhdCBzdG9wLXRpbWUgaXMgbm90IGNvdXBsZWQgdG8NCj4gICAgICBub3RpZmljYXRp
b24gcmVwbGF5IGxpa2UgUkZDIDUyNzcuIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkDQo+ICAg
ICAgb24gYW55IHN0cmVhbSwgZXZlbiBpZiByZXBsYXkgaXMgbm90IHN1cHBvcnRlZCBhdCBhbGwu
DQoNCklmIHlvdSBhcmUgb2sgd2l0aCB0aGUgZm9sbG93aW5nIHRleHQsIEkgY2FuIGFkZCB0aGUg
YSBuZXcgY2xhcmlmaWNhdGlvbiBidWxsZXQgdG8gdGhpcyBzZWN0aW9uOg0KIkEgc3Vic2NyaXB0
aW9uICJzdG9wLXRpbWUiIGNhbiBiZSBzcGVjaWZpZWQgYXMgcGFydCBvZiBhIG5vdGlmaWNhdGlv
biByZXBsYXkuICBUaGlzIHN1cHBvcnRzIGFuIGFuYWxvZ291cyBjYXBhYmlsaXR5IHRvIHRoZSBz
dG9wVGltZSBwYXJhbWV0ZXIgb2YgW1JGQyA1Mjc3XS4gIEhvd2V2ZXIgaW4gdGhpcyBzcGVjaWZp
Y2F0aW9uLCBhICJzdG9wLXRpbWUiIHBhcmFtZXRlciBjYW4gYWxzbyBiZSBhcHBsaWVkIHdpdGhv
dXQgcmVwbGF5LiIgDQoNCj4gSTIpIHNlYyAyLjEgcGFyYSA1Og0KPiAgICBJZiBzdWJzY3JpYmVy
IHBlcm1pc3Npb25zIGNoYW5nZSBkdXJpbmcgdGhlIGxpZmVjeWNsZSBvZiBhDQo+ICAgIHN1YnNj
cmlwdGlvbiBhbmQgZXZlbnQgc3RyZWFtIGFjY2VzcyBpcyBubyBsb25nZXIgcGVybWl0dGVkLCB0
aGVuIHRoZQ0KPiAgICBzdWJzY3JpcHRpb24gTVVTVCBiZSB0ZXJtaW5hdGVkLg0KPiANCj4gICAt
LSBXaHkgY2FuJ3Qgc2VydmVyIHN1c3BlbmQgdW50aWwgTkFDTSBjb25maWd1cmVkDQo+ICAgIChp
LmUuLCBNVVNUIGJlIHRlcm1pbmF0ZWQgb3Igc3VzcGVuZGVkKS4NCg0KVGhlIG9yaWdpbmFsIHJl
YXNvbiBmb3IgJ01VU1QgYmUgdGVybWluYXRlZCcgd2FzIHRoYXQgaXQgd2FzIG1vcmUgZGV0ZXJt
aW5pc3RpYyAvIHNpbXBsZXIgb3B0aW9uLiAgQW5kIGl0IHNlZW1zIGEgcmVhc29uYWJsZSBzb2x1
dGlvbiBjb25zaWRlcmluZyBwZXJtaXNzaW9ucyBjaGFuZ2VzIHRoYXQgY29sbGlkZSB3aXRoIGV4
aXN0aW5nIHN1YnNjcmlwdGlvbiBpcyBzb21ldGhpbmcgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIGEg
cmFyZSBjb3JuZXIgY2FzZS4gICBJZiBhbiBpbXBsZW1lbnRhdGlvbiBkb2VzIGFsc28gd2FudCB0
byBzdXBwb3J0IHN1c3BlbmRlZCwgdGhlbiB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCB0aGVuIGhh
dmUgdG8gbW9uaXRvciBwZXJtaXNzaW9ucyB0byBnZXQgdGhhdCBzdWJzY3JpcHRpb24gb3V0IG9m
IHN1c3BlbnNpb24uICBBbmQgYWRkaW5nIHN1cHBvcnQgZm9yIHRoaXMgd291bGQgYWRkIG1vcmUg
dGV4dCwgY29tcGxleGl0eSwgYW5kIE5BQ00gaW50ZWdyYXRpb24gdG8gdGhlIHNwZWNpZmljYXRp
b24uICBUaGUgYmVzdCBvcHRpb24gb2YgY291cnNlIHdvdWxkIGJlIHRvIGNvbnNpZGVyIE5BQ00g
aW1wbGljYXRpb25zIGZvciBzdWJzY3JpcHRpb25zIGluIGZsaWdodCBwcmlvciB0byBtYWtpbmcg
cGVybWlzc2lvbnMgY2hhbmdlcy4gIFdpdGggdGhpcywgYWRkaW5nIHRoZSBleHRyYSBjb21wbGV4
aXR5IG9mIHN1c3BlbnNpb24gd291bGRuJ3QgYmUgbmVjZXNzYXJ5Lg0KDQo+ICAgIFNob3VsZCBi
ZSBjbGVhciBzb21ld2hlcmUgdGhhdA0KPiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5kIG90aGVy
IHJlc291cmNlcywgYW5kIE5BQ00gbm90IGNvbnNpZGVyZWQNCj4gICAgdG8gYmUgYSByZXNvdXJj
ZS4NCg0KSWYgTkFDTSBpcyBhY3RpdmUsIGl0IG5lZWRzIHRvIGJlIGZvbGxvd2VkLiAgVGhlIHRl
eHQgd2UgaGF2ZSBmb3IgTkFDTSBpcyBpbiBTZWN0aW9uIDUuNC4gIERvIHlvdSBzZWUgc29tZXRo
aW5nIGVsc2Ugc3BlY2lmaWMgdG8gc3Vic2NyaXB0aW9uIHN1c3BlbnNpb24gbmVlZGVkIGhlcmU/
ICAoTWF5YmUgSSBhbSBub3QgZ2V0dGluZyB5b3VyIHBvaW50LikNCiANCj4gSTMpIHNlYyAyLjEg
cGFyYSA2Og0KPiAgICBFdmVudCByZWNvcmRzIE1VU1QgTk9UIGJlIGRlbGl2ZXJlZCB0byBhIHJl
Y2VpdmVyIGluIGEgZGlmZmVyZW50DQo+ICAgIG9yZGVyIHRoYW4gdGhleSB3ZXJlIHBsYWNlZCBv
bnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gDQo+ICAgLS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1YnNj
cmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LCB0aGV5IGFyZSBub3QgZXZlbnRzDQo+ICAgICBwbGFj
ZWQgaW4gZXZlbnQgc3RyZWFtLiANCg0KQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhlIGV2
ZW50IHN0cmVhbS4gIFNvIHRoZXkgZG8gbm90IHZpb2xhdGUgdGhpcyByZXF1aXJlbWVudC4gIA0K
DQpBZGRpdGlvbmFsbHkgdGhlcmUgaXMgc3VwcG9ydGluZyB0ZXh0IGluICJTZWN0aW9uIDIuNzog
c3Vic2NyaXB0aW9uIHN0YXRlIG5vdGlmaWNhdGlvbnMiLCBpbmNsdWRpbmcuLi4NCg0KIiBJbnN0
ZWFkLCB0aGV5IGFyZSBpbnNlcnRlZCAoYXMgZGVmaW5lZCBpbiB0aGlzIHNlY3Rpb24pIHdpdGhp
biB0aGUgc2VxdWVuY2Ugb2Ygbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHNlbnQgdG8gYSBwYXJ0aWN1
bGFyIHJlY2VpdmVyLiINCg0KPiAgICAgTmVlZCB0byBhbGxvdyBlbmRlZCBvciBzdXNwZW5kZWQg
dG8gYmUgc2VudA0KPiAgICAgaGVhZC1vZi1saW5lIHdoZW5ldmVyIHN0YXRlIGNoYW5nZXMNCg0K
SSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1v
Zi1saW5lLiAgIENvbnNpZGVyIHRoYXQgaW1wbGVtZW50YXRpb24gbWlnaHQgd2FudCB0byBsZXQg
dGhlIGV4aXN0aW5nIHF1ZXVlIG9mIGZpbHRlcmVkIGV2ZW50IHJlY29yZHMgYmUgc2VudCBpZiBp
cyBmaWx0ZXIgY29tcGxleGl0eSBjYXVzaW5nIHRoZSBDUFUgaXNzdWUuICAgVGhhdCBjb3VsZCBi
ZSBkaWZmZXJlbnQgdGhhbiBpZiBpdCBpcyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5nIHRoZSBz
dXNwZW5zaW9uLCBhbmQgeW91IGRlZmluaXRlbHkgd2FudCB0aGUgJ3N1YnNjcmlwdGlvbi1zdXNw
ZW5kZWQnIHRvIGJlIHBsYWNlZCBhdCB0aGUgaGVhZCBvZiBsaW5lLg0KDQo+ICAgLS0gTWF5YmUg
YW5vdGhlciB0YWJsZSBvciBtb3JlIHRleHQgc2hvdWxkIGJlIGFkZGVkIGxpc3RpbmcgdGhlDQo+
ICAgICAgbm90aWZpY2F0aW9ucyB0aGF0IGluZGljYXRlcw0KPiAgICAgICAgKGEpIHNlbnQtZm9y
LWNvbmZpZ3VyZWQNCj4gICAgICAgIChiKSBzZW50LWZvci1keW5hbWljDQo+ICAgICAgICAoYykg
aW5zZXJ0ZWQgYXQgZW5kIG9mIGV2ZW50IHN0cmVhbSwgbWlkZGxlLCBvciBzZW50IGhlYWQtb2Yt
bGluZQ0KPiANCj4gICAgICByZXBsYXktY29tcGxldGVkICAgICAgICAgWSAgWSAgZW5kDQo+ICAg
ICAgc3Vic2NyaXB0aW9uLWNvbXBsZXRlZCAgIFkgIE4gIGVuZA0KPiAgICAgIHN1YnNjcmlwdGlv
bi1tb2RpZmllZCAgICBZICBZICBtaWRkbGUgWzFdDQo+ICAgICAgc3Vic2NyaXB0aW9uLXJlc3Vt
ZWQgICAgIFkgIFkgIGhlYWQgWzJdDQo+ICAgICAgc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgICAgIFkg
IE4gIGhlYWQNCj4gICAgICBzdWJzY3JpcHRpb24tc3VzcGVuZGVkICAgWSAgWSAgaGVhZA0KPiAg
ICAgIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkICBZICBZICBoZWFkIFszXQ0KDQpTZWUgdGhpbmtp
bmcgb24gdGhpcyB0YWJsZSBiZWxvdyBhdCAqKip0YWJsZSB0aG91Z2h0cyoqKg0KIA0KPiAgIC0t
IFsxXSBub3QgY2xlYXIgd2hlcmUgaW4gdGhlIGV2ZW50IHN0cmVhbSBzdWJzY3JpcHRpb24tbW9k
aWZpZWQgaXMgc2VudC4NCj4gICAgICBNYXliZSBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQ/IGUu
Zy4gZG9lcyBmaWx0ZXItY2hhbmdlIGluc2VydGVkDQo+ICAgICAgYXQgc2xvdCBOIG1lYW5zIGFs
bCBldmVudHMgTitpIGFyZSBkb25lIHdpdGggbmV3IGZpbHRlcj8NCg0KWWVzLiAgVGhlIHRleHQg
d2hpY2ggaW5kaWNhdGVzIHRoaXMgaXMgaW4gU2VjdGlvbiAyLjUuMS4uLg0KDQoiQSAic3Vic2Ny
aXB0aW9uLW1vZGlmaWVkIiBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiB3
aWxsDQogICBiZSBzZW50IHRvIGFsbCBhY3RpdmUgcmVjZWl2ZXJzLCBpbW1lZGlhdGVseSBmb2xs
b3dlZCBieSBub3RpZmljYXRpb24NCiAgIG1lc3NhZ2VzIGNvbmZvcm1pbmcgdG8gdGhlIG5ldyBw
YXJhbWV0ZXJzLiINCg0KVGhlcmUgaXMgYWxzbyB0ZXh0IGluIHRoZSBZQU5HIG1vZGVsICJub3Rp
ZmljYXRpb24gc3Vic2NyaXB0aW9uLW1vZGlmaWVkIiBzYXlpbmcNCg0KICAgICAgIk5vdGlmaWNh
dGlvbiBtZXNzYWdlcyBzZW50IGZyb20gdGhpcyBwb2ludCBvbiB3aWxsIA0KICAgICAgIGNvbmZv
cm0gdG8gdGhlIG1vZGlmaWVkIHRlcm1zIG9mIHRoZSBzdWJzY3JpcHRpb24uIg0KDQpCZXlvbmQg
dGhhdCBpdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVjaWRlIGlmIHNvbWUgdW4t
dHJhbnNtaXR0ZWQgcXVldWUgb2YgZXZlbnQgcmVjb3JkcyBzaG91bGQgYmUgZmx1c2hlZCBhbmQg
cmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlIG1vZGlmaWNhdGlvbi4gIEkgZG8gbm90IGV4cGVjdCB0
aGlzIHdvdWxkIHBvcHVsYXIsIGFzIGEgcmVwbGF5IHN1YnNjcmlwdGlvbiBjb3VsZCBhY2NvbXBs
aXNoIHRoaXMgc2FtZSBmdW5jdGlvbmFsIG5lZWQuDQoNCj4gICAtLSBbMl0gbm90IGNsZWFyIHdo
ZXJlIGluIHRoZSBldmVudCBzdHJlYW0gc3Vic2NyaXB0aW9uLXJlc3VtZWQgaXMgc2VudC4NCj4g
ICAgICBUaGVyZSBtYXkgYmUgZXZlbnRzIHJlYWR5IHRvIHNlbmQuIENsZWFybHkgcmVzdW1lZCBp
cyBzZW50IGJlZm9yZQ0KPiAgICAgIGFueSBvZiB0aGVzZSBhZnRlciB0cmFuc2l0aW9uIHRvIGFj
dGl2ZSBzdGF0ZS4NCg0KWWVzLiAgVGhlIHRleHQgb24gdGhpcyBpcyBpbiBTZWN0aW9uIDIuNy41
IHNob3VsZCBoZWxwLiAgVGhlcmUgaXMgYWxzbyB0ZXh0IGluIHRoZSBZQU5HIG1vZHVsZS4uLg0K
DQogICAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdlbmVyYXRlZCBhZnRlciB0aGUgaXNzdWFu
Y2Ugb2YgdGhpcw0KICAgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5
IG5vdyBiZSBzZW50LiINCg0KVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBtaWdodCBi
ZSB3b3J0aCB0d2Vha2luZyBhIGNvdXBsZSB3b3JkcyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5l
IHBsYWNlbWVudCBvZiAic3Vic2NyaXB0aW9uLXN1c3BlbmRlZCIuDQoNCiAgICJTdWJzY3JpYmVk
IGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZSBpc3N1YW5jZSBvZiB0
aGlzDQogICBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJl
IHNlbnQuIg0KDQpBcmUgeW91IGdvb2Qgd2l0aCB0aGlzIHN1Z2dlc3RlZCBjaGFuZ2U/DQoNCj4g
ICAtLSBbM10gbm90IGNsZWFyIHRoYXQgc3Vic2NyaXB0aW9uIHRlcm1pbmF0ZWQgcmlnaHQgYXdh
eSB0aGVuIGFsbA0KPiAgICAgIGV2ZW50cyBmb3IgYWxsIHJlY2VpdmVycyBhcmUgZGVsZXRlZCBh
bmQgb25seSBzdWJzY3JpcHRpb24tdGVybWluYXRlZA0KPiAgICAgIGlzIHNlbnQgdG8gYWxsIHJl
Y2VpdmVyczsgc2VjIDIuNy4zIHNheXMgdGhpcyBidXQgbm90IGluIG1vZHVsZQ0KDQpJIGFtIG5v
dCBzdXJlIGlmIHRoZSBtb2R1bGUgaXMgdGhlIGJlc3QgcGxhY2UgdG8gZW1iZWQgdGhpcy4gIE15
IHRoaW5raW5nIHdhcyB0aGUgbW9kdWxlIHNob3VsZCBkZWZpbmluZyB0aGUgbWVhbmluZyBvZiB0
aGUgbm90aWZpY2F0aW9uIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIG90aGVyIG1vZGVsIGVsZW1l
bnRzLCBhbmQgdGhlIGJlaGF2aW9yIG9mIHRoZSBwdWJsaXNoZXIgcHJpb3IgdG8gdGhlIGlzc3Vh
bmNlIG9mIHRoZSBub3RpZmljYXRpb24gY2FuIGJlIGluY2x1ZGVkIGluIHRoZSBzcGVjaWZpY2F0
aW9uIHRleHQuICBBcyBhIHJlc3VsdCBiZXlvbmQgU2VjdGlvbiAyLjcuMywgdGhlcmUgaXMgYWxz
byByZWxhdGVkIHRleHQgaW4gU2VjdGlvbiAyLjUuNC4uLg0KDQogICAiSW1tZWRpYXRlbHkgYWZ0
ZXIgYSBzdWJzY3JpcHRpb24gaXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQsIHRoZQ0KICAgcHVibGlz
aGVyIHNlbmRzIHRvIGFsbCByZWNlaXZlcnMgb2YgdGhhdCBzdWJzY3JpcHRpb24gYSBzdWJzY3Jp
cHRpb24NCiAgIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gc3RhdGluZyB0aGUgc3Vic2NyaXB0
aW9uIGhhcyBlbmRlZCAoaS5lLiwNCiAgICJzdWJzY3JpcHRpb24tdGVybWluYXRlZCIpLiINCg0K
PiAgIC0tIGluc2VydCBwb2ludCBtYXkgYmUgc3BlY2lmaWMgdG8gZWFjaCByZWNlaXZlciwgbm90
IGVhY2ggc3Vic2NyaXB0aW9uDQoNClRoaXMgaXMgdHJ1ZSwgYW5kIGlzIGEgbmF0dXJhbCBmdW5j
dGlvbiBvZiB0aGUgdGV4dCBpcyBTZWN0aW9uIDIuNS40Lg0KDQo+ICAgLS0gaG93IGxvbmcgZG9l
cyB0aGUgc2VydmVyIHdhaXQgZm9yIGEgcmVjZWl2ZXIgd2hlbiBzZW5kaW5nDQo+ICAgICAgc3Vi
c2NyaXB0aW9uLXRlcm1pbmF0ZWQ/DQoNClBlciBTZWN0aW9uIDIuNS40LiB0aGVyZSBpcyBubyB3
YWl0Lg0KDQoqKip0YWJsZSB0aG91Z2h0cyoqKiBUaGUgdGFibGUgZG9lcyBwcm92aWRlIGFuIGlu
dGVyZXN0aW5nIHN1bW1hcnkgdmlldy4gICBBbmQgZG8gSSBhcHByZWNpYXRlIHlvdSBwdXR0aW5n
IGl0IHRvZ2V0aGVyLiAgQmFzZWQgb24gdGhlIG5vdGVzIGZvciBbMV0sIFsyXSwgYW5kIFszXSwg
bXkgcGVyY2VwdGlvbiBpcyB0aGF0IHRoZSByZXF1aXJlbWVudHMgYXJlIGNvdmVyZWQgd2l0aGlu
IHRoZSBleGlzdGluZyB0ZXh0LiAgSXMgaXQgYW4gYWJzb2x1dGUgcmVxdWlyZW1lbnQgZnJvbSB0
aGUgWUFORyBEb2N0b3JzIHRoYXQgdGhpcyBzdW1tYXJ5IHRhYmxlIGJlIGVtYmVkZGVkIGFzIGEg
bmV3IHNlY3Rpb24gb2YgdGhlIGRyYWZ0IChwZXJoYXBzIGFzIGEgU2VjdGlvbiAyLjcuOD8pICBJ
IGFtIGhvcGluZyB0byBhdm9pZCBtYWpvciBuZXcgdGV4dCBhZGRpdGlvbnMgYXQgdGhpcyBwb2lu
dC4NCg0KPiBJNCkgc2VjIDIuNC42OiBSUEMgRmFpbHVyZXMNCj4gICAtLSBjb25jZXJuIGFib3V0
IGEgc3Vic2NyaXB0aW9uLXNwZWNpZmljIGVycm9yIHJlcG9ydGluZyBzeXN0ZW0NCj4gICAgICBt
dXN0IG1ha2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzIHVzZWQgY29y
cmVjdGx5DQoNClllcy4gIFdlIGhhdmUgZG9uZSBvdXIgYmVzdCB0byBpbnRlZ3JhdGUgd2l0aCB0
aGUgZW1iZWRkZWQgTkVUQ09ORiBhbmQgUkVTVENPTkYgbWVjaGFuaXNtcy4gIFRoZXJlIGlzIG11
Y2ggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBoZXJlLg0K
IA0KPiAgIC0tIFRoZSBlcnJvci10YWcgdmFsdWUgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBmb3Ig
ZWFjaCAncmVhc29uJyBpZGVudGl0eQ0KDQpUaGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBk
cmFmdHMuICAgRS5nLiwgc2VlIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlm
aWNhdGlvbnMgU2VjdGlvbiA3DQogDQo+ICAgIDIuICAibW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJl
YW0tZXJyb3ItaW5mbyI6IFRoaXMgTVVTVCBiZSByZXR1cm5lZA0KPiAgICAgICAgd2l0aCB0aGUg
bGVhZiAicmVhc29uIiBwb3B1bGF0ZWQgaWYgYW4gUlBDIGVycm9yIHJlYXNvbiBoYXMgbm90DQo+
ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSB0cmFuc3BvcnQgcG9ydGlv
biBvZiBhIGZhaWxlZA0KPiAgICAgICAgIm1vZGlmeS1zdWJzY3JpcHRpb24iIFJQQyByZXNwb25z
ZS4gIFRoaXMgTVVTVCBiZSBzZW50IGlmIGhpbnRzDQo+IA0KPiAgIC0tIGFsbCAzIHBhcmFncmFw
aHMgbGlrZSB0aGlzOyB1bmNsZWFyIHdoYXQgInBsYWNlZCBlbHNld2hlcmUiDQo+ICAgICAgIHRl
eHQgbWVhbnM7IG5vdCBhcHByb3ByaWF0ZSBmb3IgTVVTVDsgIA0KDQpJbnN0ZWFkIG9mICJwbGFj
ZWQgZWxzZXdoZXJlIiwgaG93IGFib3V0OiAicGxhY2VkIGluIHN1YnNjcmlwdGlvbiB0cmFuc3Bv
cnQgZG9jdW1lbnQgZGVmaW5lZCBvYmplY3QiLiAgV291bGQgdGhpcyBiZSBzdWZmaWNpZW50Pw0K
DQpJbiBhbnkgY2FzZSwgdGhlIC12MjEgd29yZGluZyByZXN1bHRzIGZyb20gdGhlIGF0dGVtcHRl
ZCBiYWxhbmNpbmcgdGhlIFdHIHJlcXVlc3RzIGZvcjoNCiogbWVyZ2luZyB3aXRoIHRyYW5zcG9y
dCBwcm90b2NvbCBlcnJvciBtZWNoYW5pc21zDQoqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8g
cHJvdmlkZSByZXF1aXJlbWVudHMgZm9yIHRyYW5zcG9ydCBkb2N1bWVudHMNCg0KPiAgICAgIE9u
bHkgMyBmaWVsZHMgc2VlbQ0KPiAgICAgICB0byBiZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJv
ci1hcHAtdGFnLCBlcnJvci1pbmZvKS4NCj4gICAgICAgUHJvdGNvbCBvcGVyYXRpb25zIGFyZSBl
eHBlY3RlZCB0byBkb2N1bWVudCBzZXJ2ZXIgcmVxdWlyZW1lbnRzDQo+ICAgICAgIGZvciB0aGVz
ZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS4gIE9ubHkgdGhlIGVycm9yLXRhZw0KPiAgICAgICBp
cyBtYW5kYXRvcnktdG8tdXNlLg0KDQpIb3BlZnVsbHkgdGhlc2UgYXJlIGNvdmVyZWQgc3VmZmlj
aWVudGx5IHdoZW4gdGhpcyBkb2N1bWVudCBpcyBjb3VwbGVkIHdpdGggdGhlIE5FVENPTkYgYW5k
IFJFU1RDT05GIE5vdGlmIHRyYW5zcG9ydCBkb2N1bWVudHMuICAgRm9yIG90aGVyIHRyYW5zcG9y
dHMsIHRoZSB0YWdzIHlvdSBpZGVudGlmeSBhYm91dCB3b3VsZCBub3QgYmUgYXBwbGljYWJsZS4N
CiANCj4gICAtLSB0aGUgZXJyb3IgYXNzaWdubWVudHMgYXJlIGV4dHJlbWVseSBzcGVjaWZpYy4g
ZS5nLiwgaXQgaXMgbm90DQo+ICAgICAgcG9zc2libGUgZm9yIDxraWxsLXN1YnNjcmlwdGlvbj4g
dG8gZmFpbCB3aXRoIGFuDQo+ICAgICAgJ2luc3VmZmljaWVudC1yZXNvdXJjZXMnIGVycm9yOyAN
Cg0KVGhpcyBpcyB0aGUgaW50ZW50IG9mIHRoZSBiYXNlIHNwZWNpZmljYXRpb24sIGUuZy4sIHdl
IGRvbid0IGJlbGlldmUgYSBraWxsLXN1YnNjcmlwdGlvbiBzaG91bGQgZmFpbCBmb3IgYW4gaW5z
dWZmaWNpZW50LXJlc291cmNlcyByZWFzb24uICAgQnV0IHZlbmRvcnMgbWlnaHQgZGVzaXJlIG1v
cmUgc3BlY2lmaWNpdHkuICBBcyBhIHJlc3VsdCBpcyBjZXJ0YWlubHkgb2sgZm9yIHZlbmRvciBp
bXBsZW1lbnRhdGlvbnMgdG8gYWRkIG5ldyBlcnJvciBpZGVudGl0aWVzLg0KDQo+ICAgICAgRG8g
bm90IGFncmVlIHRoYXQgc2NvcGluZyBlYWNoDQo+ICAgICAgaWRlbnRpdHkgdG8gc3BlY2lmaWMg
UlBDIG9wZXJhdGlvbnMgaXMgYSBnb29kIGlkZWEuDQoNClRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNp
dHkgd2FzIG5vdCB0aGUgYXV0aG9yJ3Mgb3JpZ2luYWwgcGxhbnMuICBOb3Igd2FzIHRoaXMgbGV2
ZWwgb2Ygc3BlY2lmaWNpdHkgcGFydCBvZiBlYXJsaWVyIGRyYWZ0IHZlcnNpb25zIHVwIHRocm91
Z2ggLXYwOC4gICBIb3dldmVyIG1lbWJlcnMgb2YgdGhlIFdHIG1hZGUgaXQgY2xlYXIgdGhhdCBz
dWNoIHNwZWNpZmljaXR5IHdhcyBuZWNlc3NhcnkgZm9yIGRyYWZ0IHByb2dyZXNzaW9uLg0KIA0K
PiAgIC0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9yIGNv
bmZpZ3VyZWQNCj4gICAgICBzdWJzY3JpcHRpb25zIHdoZW4gPGVkaXQtY29uZmlnPiBpcyB0aGUg
UlBDIHRoYXQgaGFzIHRoZSBlcnJvcj8NCj4gICAgICBIb3cgYXJlIHRoZSB5YW5nLWRhdGEgc3Ry
dWN0cyB1c2VkIGZvciBlZGl0LWNvbmZpZyBvciBjb21taXQgZXJyb3JzPw0KDQpOb25lIG9mIHRo
ZXNlIHlhbmctZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzcGVjaWZpZWQgZm9yIHVzZSB3aXRoIDxlZGl0
LWNvbmZpZz4gb3BlcmF0aW9ucy4gICBGb3IgPGVkaXQtY29uZmlnPiwgdGhlIGNoYW5nZSB0byBh
IGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9y
ZSBpZiBpdCB3ZXJlIHNlbWFudGljYWxseSB2YWxpZC4gICBBdCB0aGlzIHBvaW50IHRoZSBzdWJz
Y3JpcHRpb24gZW50ZXJzIHRoZSBbZXZhbHVhdGVdIHBvaW50cyBvZiBGaWd1cmUgOC4gIElzc3Vl
cyBmcm9tIHRoaXMgcG9pbnQgb3V0IHdvdWxkIGJlIHJlcG9ydGVkIHdpdGggYSB2ZW5kb3Igc3Bl
Y2lmaWMgY29uc3RydWN0IHN1Y2ggYXMgU1lTTE9HLg0KIA0KPiBJNSkgc2VjIDIuNQ0KPiANCj4g
ICAgTXVsdGlwbGUgY29uZmlndXJlZCBzdWJzY3JpcHRpb25zIE1VU1QgYmUgc3VwcG9ydGFibGUg
b3Zlcg0KPiAgICBhIHNpbmdsZSB0cmFuc3BvcnQgc2Vzc2lvbi4NCj4gDQo+ICAgLS0gd2h5IGlz
IHRoaXMgYSBNVVNUIGluc3RlYWQgb2YgU0hPVUxEPyBleHBsYWluIGhhcm0gdG8NCj4gICAgICBp
bnRlcm9wZXJhYmlsaXR5IGlmIG5vdCBzdXBwb3J0ZWQNCg0KRnJvbSB0aGUgcmVjZWl2ZXIgc2lk
ZSwgYSByZWNlaXZlciBtdXN0IGJlIGFibGUgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHN0YXRl
IG5vdGlmaWNhdGlvbnMgZm9yIGRpZmZlcmVudCBzdWJzY3JpcHRpb25zLiAgSWYgYSBwdWJsaXNo
ZXIgY2FuJ3Qgc3VwcG9ydCBtb3JlIHRoYW4gb25lLCBpdCBkb2Vzbid0IGFjdHVhbGx5IGh1cnQg
aW50ZXJvcGVyYWJpbGl0eSB3aXRoIGEgcmVjZWl2ZXIuICBJdCBqdXN0IGRvZXNuJ3QgbWVldCB0
aGUgbWluaW11bSBjcml0ZXJpYSBzZXQgZm9yIGZlYXR1cmUgc3VwcG9ydCBmb3IgdGhlIGNhcGFi
aWxpdHkgYXMgZGVmaW5lZCBpbiB0aGlzIGRvY3VtZW50Lg0KIA0KPiBJNikgc2VjIDIuNSwgcGFy
YSAzOg0KPiANCj4gICAgT24gYSByZWNlaXZlciBvZiBhDQo+ICAgIGNvbmZpZ3VyZWQgc3Vic2Ny
aXB0aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMgaXMNCj4gICAgb3B0aW9u
YWwgZXhjZXB0IHdoZXJlIHJlcGxheWluZyBtaXNzZWQgZXZlbnQgcmVjb3JkcyBpcyByZXF1aXJl
ZC4NCj4gDQo+ICAgLS0gY29uZnVzaW5nIGJlY2F1c2UgdGV4dCBpbiAxLjM6DQo+ICAgICAgTm90
ZSB0aGF0IHRoZXJlIGlzIG5vIG1peGluZy1hbmQtbWF0Y2hpbmcgb2YgZHluYW1pYyBhbmQgY29u
ZmlndXJlZA0KPiAgICAgIG9wZXJhdGlvbnMgb24gYSBzaW5nbGUgc3Vic2NyaXB0aW9uLiAgU3Bl
Y2lmaWNhbGx5LCBhIGNvbmZpZ3VyZWQNCj4gICAtLSBjbGFyaWZ5IHRoZSByZWNlaXZlciBtYXkg
aGF2ZSBtdWx0aXBsZSBzdWJzY3JpcHRpb25zIGhlcmUNCj4gICAtLSBub3QgY2xlYXIgd2hhdCAi
ZXhjZXB0IHdoZXJlIHJlcGxheWluZy4uLiIgdGV4dCBtZWFucw0KDQpIb3cgYWJvdXQgdGhlIGZv
bGxvd2luZyB0d2VhazoNCg0KIk9uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlw
dGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zIGlzIG9wdGlvbmFsLiAgSG93
ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMgaXMgcmVxdWlyZWQgZm9yIGEg
Y29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9u
IGlzIGhpZ2hseSByZWNvbW1lbmRlZC4gIEluIHRoaXMgY2FzZSwgYSBzZXBhcmF0ZSBkeW5hbWlj
IHN1YnNjcmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gcmV0cmFuc21pdCB0aGUgbWlzc2lu
ZyBldmVudCByZWNvcmRzLiINCg0KPiBJNykgbGVhZiBzdHJlYW0teHBhdGgtZmlsdGVyOiBbbXVs
dGlwbGUgdXNlc10NCj4gDQo+ICAgICAgICAgICAgVGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVk
IGluIHRoZSBmb2xsb3dpbmcgWFBhdGggY29udGV4dDoNCj4gDQo+ICAgICAgICAgICAgICBvICAg
VGhlIHNldCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGlzIHRoZSBzZXQgb2YgcHJlZml4DQo+
ICAgICAgICAgICAgICAgICAgYW5kIG5hbWVzcGFjZSBwYWlycyBmb3IgYWxsIFlBTkcgbW9kdWxl
cyBpbXBsZW1lbnRlZA0KPiAgICAgICAgICAgICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRo
ZSBwcmVmaXggaXMgdGhlIFlBTkcgbW9kdWxlDQo+ICAgICAgICAgICAgICAgICAgbmFtZSBhbmQg
dGhlIG5hbWVzcGFjZSBpcyBhcyBkZWZpbmVkIGJ5IHRoZQ0KPiAgICAgICAgICAgICAgICAgICdu
YW1lc3BhY2UnIHN0YXRlbWVudCBpbiB0aGUgWUFORyBtb2R1bGUuDQo+IA0KPiAgIC0tIFRoaXMg
cHJlZml4IHByb2Nlc3NpbmcgaXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZSBpbiBORVRDT05GDQo+
ICAgICAgb3IgUkVTVENPTkYuICBJTU8gYSBiYWQgcHJlY2VkZW50LiAgT25seSB0aGUgWE1MIHBy
ZWZpeGVzDQo+ICAgICAgc2hvdWxkIGJlIHJlcXVpcmVkIGZvciBwcm9jZXNzaW5nIG9mIFhNTCBl
bmNvZGluZy4gIFlBTkcNCj4gICAgICBtb2R1bGUgcHJlZml4ZXMgYXJlIG5vdCByZXF1aXJlZCB0
byBiZSB1bmlxdWUsIHVubGlrZQ0KPiAgICAgIHRoZSBwcmVmaXggbWFwcGluZ3MgaW4gWE1MDQoN
ClRoaXMgdGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9mIHRoZSAieHBh
dGggZXhwcmVzc2lvbnMgaW4gSlNPTiIgdGhyZWFkIGxhc3QgT2N0b2JlciBpbiBORVRNT0QuDQoN
CkkgYW0gaGFwcHkgdG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4g
IEkgd2FzIGhvcGluZyB0aGF0IHRoZSBzdWdnZXN0ZWQgdGV4dCB3YXMgc3VmZmljaWVudCBmb3Ig
bm93LiAgS2VudCBoYXMgYWxyZWFkeSBpbmNvcnBvcmF0ZWQgdGhpcyBhcyBhbiBpc3N1ZSBmb3Ig
eWFuZy1uZXh0DQpodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMv
NTUgDQpTbyBob3BlZnVsbHkgdGhlcmUgaXMgbm8gZmluYWwgcHJlY2VkZW50IGJlaW5nIGNsYWlt
ZWQuIA0KDQo+ICAgLS0gTk1EQSBhbGxvd3MgdGhlIHNhbWUgbW9kdWxlIHRvIGFwcGVhciBpbiBt
dWx0aXBsZSBtb2R1bGUtc2V0cw0KPiAgICAgIGFuZCBkaWZmZXJlbnQgaW4gZWFjaCBkYXRhc3Rv
cmUuIFRoaXMgdGV4dCBhYm91dCAiaW1wbGVtZW50ZWQgYnkNCj4gICAgICB0aGUgc2VydmVyIiBk
b2VzIG5vdCB3b3JrIGZvciBOTURBDQoNCkkgYW0gaGFwcHkgdG8gYWRvcHQgd2hhdGV2ZXIgdGV4
dCBtZWV0cyBZQU5HIGRvY3RvciBhcHByb3ZhbC4gICBDYW4geW91IHN1Z2dlc3Q/IA0KDQo+IEk4
KSBsZWFmIC9zdWJzY3JpcHRpb25zL3N1YnNjcmlwdGlvbi9lbmNvZGluZyB7DQo+ICAgICAgIHdo
ZW4gJ25vdCguLi90cmFuc3BvcnQpIG9yIGRlcml2ZWQtZnJvbSguLi90cmFuc3BvcnQsDQo+ICAg
ICAgICJzbjpjb25maWd1cmFibGUtZW5jb2RpbmciKSc7DQo+ICAgICAgIHR5cGUgZW5jb2Rpbmc7
DQo+IA0KPiAgIC0tIHdoZW4tc3RtdCBpcyBvZGQ7IHRoZXJlIGFyZSBubyBjb25maWd1cmFibGUt
ZW5jb2RpbmdzIHNwZWNpZmllZA0KDQpUaGlzIGNvbnN0cmFpbnQgd2FzIHN1Z2dlc3RlZCBieSBN
YXJ0aW4gbGFzdCBKdW5lIGluIHRoZSB0aHJlYWQ6DQpodHRwczovL3d3dy5pZXRmLm9yZy9tYWls
LWFyY2hpdmUvd2ViL25ldGNvbmYvY3VycmVudC9tc2cxNDQwMi5odG1sIA0KbW9yZSBkZXRhaWxz
IGNhbiBiZSBzZWVuIGF0Og0KaHR0cHM6Ly9tYWlsYXJjaGl2ZS5pZXRmLm9yZy9hcmNoL21zZy9u
ZXRjb25mL3dIUWpadUpuaDdhc0p2cEUxbklvdlBEbkVTTSANCg0KPiAgIC0tIHRoZXJlIHNob3Vs
ZCBiZSBhbiBleGFtcGxlIG9mIGEgY29uZmlndXJhYmxlIGVuY29kaW5nIHByb3ZpZGVkDQoNCkkg
YW0gaGFwcHkgdG8gZW5oYW5jZSB0aGUgZGVmaW5pdGlvbiBZQU5HIG1vZGVsJ3MgaWRlbnRpdHkg
ZGVmaW5pdGlvbiBvZiAiY29uZmlndXJhYmxlLWVuY29kaW5nIi4gIEkgY291bGQgZG8gdGhpcyBi
eSBhZGRpbmcgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHRleHQgdG8gdGhlIGRlc2NyaXB0aW9u
OiAiQW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJsZSBlbmNvZGluZyBtaWdodCBiZSBhIG5ldyBp
ZGVudGl0eSBzdWNoIGFzICdlbmNvZGUtY2JvcicuICBTdWNoIGFuIGlkZW50aXR5IGNvdWxkIHVz
ZSAnY29uZmlndXJhYmxlLWVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRoaXMgd291bGQgYWxsb3cg
YSBkeW5hbWljIHN1YnNjcmlwdGlvbiBlbmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1
ZXN0IG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBiZSBlbmNvZGVkIHZpYSBDQk9SIFtSRkMtNzA0OV0u
ICBGdXJ0aGVyIGRldGFpbHMgZm9yIGFueSBzcGVjaWZpYyBjb25maWd1cmFibGUgZW5jb2Rpbmcg
d291bGQgYmUgZXhwbG9yZWQgaW4gYSB0cmFuc3BvcnQgZG9jdW1lbnQgYmFzZWQgb24gdGhpcyBz
cGVjaWZpY2F0aW9uLiIgICBEb2VzIHRoaXMgbWVldCB5b3VyIGFzaz8NCg0KPiAgIC0tIG1heWJl
IGFkZCBzb21lIHRleHQgbm90aW5nIHRoaXMgaXMgbm90IHRoZSAiZW5jb2RpbmciIGxlYWYgaW4N
Cj4gICAgICBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLiAgVGV4dCBpcyBjb25mdXNpbmcgc2luY2Ug
bm90IGNsZWFyIGhvdw0KPiAgICAgIGEgZHluYW1pYyBzdWJzY3JpcHRpb24gd291bGQgdXNlIHRo
aXMgbGVhZiBpbnNpZGUgc3Vic2NyaXB0aW9uLXBvbGljeQ0KPiAgICAgIGdyb3VwaW5nDQoNCkR5
bmFtaWMgc3Vic2NyaXB0aW9uIGlzIHBvc3NpYmxlLiAgVGhpcyBpcyB0aGUgaW50ZW50IG9mIGRy
YWZ0cyBsaWtlIA0KZHJhZnQtYmlya2hvbHoteWFuZy1jb3JlLXRlbGVtZXRyeS0wMQ0KDQo+ICAg
LS0gaXQgaXMgb25seSBjbGVhciBpbiB0aGUgWUFORyB0cmVlIHRoYXQgbW9kaWZ5LXN1YnNjcmlw
dGlvbiBkb2VzDQo+ICAgICAgbm90IGFsbG93IGVuY29kaW5nIHRvIGJlIGNoYW5nZWQuICBJcyB0
aGlzIHdvcnRoIG1lbnRpb25pbmcgaW4NCj4gICAgICB0aGUgZXN0YWJsaXNoLXN1YnNjcmlwdGlv
bi9pbnB1dC9lbmNvZGluZyBsZWFmPw0KDQpJIGRvbid0IHRoaW5rIHRoZSBlbmNvZGluZyBsZWFm
IG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gbmVlZHMgdG8gbm90ZSB0aGF0IGl0IGNhbm5vdCBi
ZSBtb2RpZmllZC4gIFRoZXJlIGFyZSBvdGhlciBvYmplY3RzIHdoaWNoIGNhbm5vdCBiZSBtb2Rp
ZmllZCBhcyB3ZWxsLCB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBjYWxsZWQgb3V0LiAgIEluIHRo
ZSBlbmQsIHRoZSBjdXJyZW50IG1vZGVsIG1hdGNoZXMgdGhlIGludGVuZGVkIGJlaGF2aW9yIHBl
ciB0aGUgdGV4dCBhYm92ZS4gIEFuZCBpdCBpcyBvbmx5IHBvc3NpYmxlIHRvIHJlcXVlc3QgYW4g
ZW5jb2RpbmcgZm9yIGRlbGl2ZXJlZCBldmVudCByZWNvcmRzIGJlIGRpZmZlcmVudCBmcm9tIHRo
YXQgb2YgdGhlIFJQQyBkdXJpbmcgdGhlIGVzdGFibGlzaCBzdWJzY3JpcHRpb24uDQoNCj4gSTkp
IGxlYWYgL3N0cmVhbXMvc3RyZWFtL2Rlc2NyaXB0aW9uIHsNCj4gICAgICAgICB0eXBlIHN0cmlu
ZzsNCj4gICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsNCj4gDQo+ICAgLS0gaXQgaXMgb2RkIHRvIHNl
ZSBhbiBhZG1pbi1zdHJpbmcgYmUgbWFuZGF0b3J5LiBzaG91bGQgYWRkIGV4cGxhbmF0aW9uDQo+
ICAgICAgd2h5IHRoaXMgaXMgbWFuZGF0b3J5IChpbiBjb25maWcgZmFsc2UgZXZlbiBtb3JlIG9k
ZCkNCg0KVGhpbmtpbmcgYWJvdXQgdGhpcyBzb21lLCBpdCBjZXJ0YWlubHkgc2hvdWxkIGJlIHRo
ZXJlLiAgQnV0IGRvZXMgbm90IG5lZWQgdG8gYmUgbWFuZGF0b3J5LiAgU28gSSBoYXZlIGNoYW5n
ZWQgdGhlIGxlYWYgZGVzY3JpcHRpb24gc28gdGhhdCBpdCBpcyBubyBsb25nZXIgbWFuZGF0b3J5
Lg0KDQo+IEkxMCkgbGVhZiAvc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb24vY29uZmlndXJlZC1z
dWJzY3JpcHRpb24tc3RhdGUNCj4gICAgICAgICBpZi1mZWF0dXJlICJjb25maWd1cmVkIjsNCj4g
ICAgICAgICAgIGVudW0gY29uY2x1ZGVkIHsNCj4gICAgICAgICAgICAgdmFsdWUgMzsNCj4gICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbg0KPiAgICAgICAgICAgICAgICAgIkEgc3Vic2NyaXB0aW9u
IGlzIGluYWN0aXZlIGFzIGl0IGhhcyBoaXQgYSBzdG9wIHRpbWUsDQo+ICAgICAgICAgICAgICAg
ICBidXQgbm90IHlldCBiZWVuIHJlbW92ZWQgZnJvbSBjb25maWd1cmF0aW9uLiI7DQo+ICAgICAg
ICAgICB9DQo+IA0KPiAgIC0tIGl0IGlzIGFsc28gcG9zc2libGUgZm9yIHN0b3AtdGltZSB0byBi
ZSByZWFjaGVkIGJ1dCBub3QgYWxsDQo+ICAgICAgZXZlbnRzIGRlbGl2ZXJlZCB0byBhbGwgcmVj
ZWl2ZXJzIG9uIHRoZSBzdWJzY3JpcHRpb24uDQo+ICAgICAgSXMgdGhpcyBhIGRpZmZlcmVudCBz
dGF0ZSBvciBwYXJ0IG9mICdjb25jbHVkZWQnPw0KDQpJIGhhdmUgbm8gcHJvYmxlbSBzdXBwb3J0
aW5nIHlvdXIgcmVxdWVzdCBmb3IgcmVmaW5lbWVudC9zcGVjaWZpY2l0eS4gIEFzIGEgcmVzdWx0
LCBJIGhhdmUgdHdlYWtlZCB0aGUgZGVmaW5pdGlvbiBhcyBmb2xsb3dzLi4uDQoNCiAgICAgICAg
ICAgICAgICAiQSBzdWJzY3JpcHRpb24gaXMgaW5hY3RpdmUgYXMgaXQgaGFzIGhpdCBhIHN0b3Ag
dGltZSwgDQogICAgICAgICAgICAgICAgaXQgbm8gbG9uZ2VyIGhhcyByZWNlaXZlcnMgaW4gdGhl
ICdyZWNlaXZlciBhY3RpdmUnIG9yIA0KICAgICAgICAgICAgICAgICdyZWNlaXZlciBzdXNwZW5k
ZWQnIHN0YXRlLCBidXQgbm90IHlldCBiZWVuIA0KICAgICAgICAgICAgICAgIHJlbW92ZWQgZnJv
bSBjb25maWd1cmF0aW9uLiI7DQoNCj4gSTExKSBleHRlbnNpb24gc3Vic2NyaXB0aW9uLXN0YXRl
LW5vdGlmaWNhdGlvbiB7DQo+IA0KPiAgICAgICAgVGhpcyBzdGF0ZW1lbnQgaXMgbm90IGZvciB1
c2UNCj4gICAgICAgIG91dHNpZGUgb2YgdGhpcyBZQU5HIG1vZHVsZS4iOw0KPiANCj4gICAtLSB0
aGlzIHRleHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRoZXJlIGlzIG5vIHZhbHVlIGluIGxpbWl0aW5n
DQo+ICAgICAgdGhlIHNjb3BlIG9mIHRoaXMgZXh0ZW5zaW9uLiAgSXQgcHJldmVudHMgZXZlbiB0
aGlzIFdHIGZyb20NCj4gICAgICBjcmVhdGluZyBhIG1vZHVsZSB0aGF0IHVzZXMgdGhlIGV4dGVu
c2lvbiBhZ2Fpbi4NCg0KVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRl
IGluIHRoZSBXRy4gIFRoZSBhdXRob3JzIGRpZCBub3Qgd2FudCB0aGlzIHJlc3RyaWN0aW9uIGVp
dGhlci4gIA0KDQpUbyBiZSBhbGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5z
ZXJ0ZWQgdGhlIGRvY3VtZW50LiAgSWYgdGhpcyByZWFsbHkgaXMgbWFuZGF0b3J5LXRvLXJlbW92
ZSBmcm9tIGEgWUFORyBkb2N0b3IgcG9pbnQtb2Ytdmlldywgd2hhdCBpcyB0aGUgcHJvY2VzcyBm
b3IgcXVpY2sgY2xvc3VyZSBvbiB0aGlzIGlzc3VlIGJldHdlZW4gV0cgbGVhZGVyc2hpcCBhbmQg
dGhlIFlBTkcgZG9jdG9ycz8NCiANCj4gSTEyKSAgIG5vdGlmaWNhdGlvbiByZXBsYXktY29tcGxl
dGVkIHsNCj4gDQo+ICAgICBkZXNjcmlwdGlvbg0KPiAgICAgICAiVGhpcyBub3RpZmljYXRpb24g
aXMgc2VudCB0byBpbmRpY2F0ZSB0aGF0IGFsbCBvZiB0aGUgcmVwbGF5DQo+ICAgICAgICAgbm90
aWZpY2F0aW9ucyBoYXZlIGJlZW4gc2VudC4gSXQgbXVzdCBub3QgYmUgc2VudCBmb3IgYW55IG90
aGVyDQo+ICAgICAgICByZWFzb24uIjsNCj4gDQo+ICAgLS0gMm5kIHNlbnRlbmNlIHNob3VsZCBi
ZSByZW1vdmVkLiBJdCBpcyBpbXBsaWVkIHRoYXQgdGhlIG5vdGlmaWNhdGlvbg0KPiAgICAgIGlz
IG9ubHkgc2VudCBmb3IgaXRzIGRlZmluZWQgcHVycG9zZS4gIE5vIG90aGVyIG5vdGlmaWNhdGlv
bnMNCj4gICAgICBoYXZlIHRoaXMgdHlwZSBvZiB0ZXh0Lg0KDQpEb25lDQogDQo+IEkxMykgICBu
b3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgew0KPiAgICAgc246c3Vic2NyaXB0aW9u
LXN0YXRlLW5vdGlmaWNhdGlvbjsNCj4gICAgIGlmLWZlYXR1cmUgImNvbmZpZ3VyZWQiOw0KPiAg
ICAgZGVzY3JpcHRpb24NCj4gICAgICAgIlRoaXMgbm90aWZpY2F0aW9uIGluZGljYXRlcyB0aGF0
IGEgc3Vic2NyaXB0aW9uIGhhcyBzdGFydGVkIGFuZA0KPiAgICAgICAgIG5vdGlmaWNhdGlvbnMg
YXJlIGJlZ2lubmluZyB0byBiZSBzZW50LiBUaGlzIG5vdGlmaWNhdGlvbiBzaGFsbA0KPiAgICAg
ICAgb25seSBiZSBzZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQgZG9lcyBu
b3QNCj4gICAgICAgIGNvbnN0aXR1dGUgYSBnZW5lcmFsLXB1cnBvc2Ugbm90aWZpY2F0aW9uLiI7
DQo+IA0KPiAgIC0tIDJuZCBzZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFsbCBub3RpZmljYXRpb25z
IGFyZSBzZW50IHRvDQo+ICAgICAgcmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBh
cnQgaXMgcmVkdW5kYW50IHNpbmNlDQo+ICAgICAgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1u
b3RpZmljYXRpb24gZXh0ZW5zaW9uIGlzIHVzZWQNCg0KVGhlcmUgaXMgbm8gaXNzdWUgd2l0aCBy
ZW1vdmluZyB0aGlzIHNlY29uZCBzZW50ZW5jZSBjb21wbGV0ZWx5LiAgSWYgSSBkaWQgdGhhdCwg
d291bGQgdGhpcyBhZGRyZXNzIHlvdXIgY29uY2Vybj8NCg0KPiBJMTQpICAgcmM6eWFuZy1kYXRh
IG1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8gew0KPiANCj4gICAgICAgbGVh
ZiBmaWx0ZXItZmFpbHVyZS1oaW50IHsNCj4gICAgICAgICB0eXBlIHN0cmluZzsNCj4gICAgICAg
ICAgIGRlc2NyaXB0aW9uDQo+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmliaW5nIHdo
ZXJlIGFuZC9vciB3aHkgYSBwcm92aWRlZCBmaWx0ZXINCj4gICAgICAgICAgICAgIHdhcyB1bnN1
cHBvcnRhYmxlIGZvciBhIHN1YnNjcmlwdGlvbi4iOw0KPiAgICAgICB9DQo+IA0KPiAgIC0tIHJw
Yy1lcnJvciBhbHJlYWR5IGFsbG93cyBtb3JlIHByZWNpc2UgZXJyb3IgcmVwb3J0aW5nDQo+ICAg
ICAgSXQgdXNlcyBlcnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kIGVycm9y
LWluZm8gZXh0ZW5zaW9ucw0KPiAgICAgIHRvIGlkZW50aWZ5IHdoaWNoIHBhcmFtZXRlcnMvY29u
ZGl0aW9ucyBjYXVzZWQgdGhlIFJQQyB0byBiZSByZWplY3RlZC4NCj4gICAgICBUaGlzIGVycm9y
IHJlcG9ydGluZyB3aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQsIE5vdCBzdXJlIHRoaXMgZmFpbHVy
ZS1oaW50DQo+ICAgICAgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBlcmhhcHMgcmVhbC11c2Ug
ZXhhbXBsZSBjYW4gYmUgYWRkZWQNCg0KUGVyIHlvdXIgdGhvdWdodHMgb24gcnBjLWVycm9yLi4u
ICAgRm9yIE5FVENPTkYgYW5kIFJFU1RDT05GLCB5b3UgcG9pbnQgdG8gZXJyb3Igc3RydWN0dXJl
cyB3aGljaCBoaXN0b3JpY2FsbHkgYmVlbiB1c2VkIHdpdGggdGhvc2UgdHJhbnNwb3J0cy4gIE9m
IGNvdXJzZSB3ZSB3ZXJlIGxvb2tpbmcgdG8gaGF2ZSBhbGwgc3Vic2NyaXB0aW9uIGhpbnRzIHN1
cHBvcnRhYmxlIGFjcm9zcyB0cmFuc3BvcnRzIHZpYSBhIHNpbmdsZSBwb3J0YWJsZSBZQU5HIGRh
dGEgc3RydWN0dXJlLiAgU28gdGhlIHZhbHVlIGlzIHRoYXQgYSBzaW5nbGUgc3RyaW5nIG9iamVj
dCBleGlzdHMgc28gdG8gdHJhbnNwb3J0IHdoYXRldmVyIHRoZSB2ZW5kb3IgdGhpbmtzIHdvdWxk
IGJlIHVzZWZ1bCBhcyBhIGhpbnQgaW4gdGhpcyBjYXNlLiAgSS5lLiwgdGhlcmUgaGFzIGJlZW4g
bm8gYXR0ZW1wdCB0byBzdGFuZGFyZGl6ZSB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJpbmcuICBJ
ZiBvcGVyYXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3VjaCBzdHJ1Y3R1
cmluZywgdGhpcyBjb3VsZCBwcm92aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQgYnVpbGRp
bmcgb2ZmIG9mIHRoaXMgc3RhcnRpbmcgcG9pbnQuICANCg0KPiBJMTUpICBub3RpZmljYXRpb24g
c3Vic2NyaXB0aW9uLWNvbXBsZXRlZCB7DQo+ICAgICBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90
aWZpY2F0aW9uOw0KPiAgICAgaWYtZmVhdHVyZSAiY29uZmlndXJlZCI7DQo+ICAgICBkZXNjcmlw
dGlvbg0KPiAgICAgICAiVGhpcyBub3RpZmljYXRpb24gaXMgc2VudCB0byBpbmRpY2F0ZSB0aGF0
IGEgc3Vic2NyaXB0aW9uIGhhcw0KPiAgICAgICAgZmluaXNoZWQgcGFzc2luZyBldmVudCByZWNv
cmRzLCBhcyB0aGUgJ3N0b3AtdGltZScgaGFzIGJlZW4NCj4gICAgICAgIHJlYWNoZWQuIjsNCj4g
DQo+ICAgLS0gQ291bGQgYmUgbW9yZSBjbGVhcjoNCj4gICAgICBBKSByZXBsYXkgaW4gdXNlIGFu
ZCBzdG9wLXRpbWUgaGFzIHBhc3Q6DQo+ICAgICAgICAgKiBzZW5kIHJlcGxheS1jb21wbGV0ZWQN
Cj4gICAgICAgICAqIHNlbmQgc3Vic2NyaXB0aW9uLWNvbXBsZXRlZA0KPiAgICAgIEIpIG5vIHJl
cGxheSBhbmQgc3RvcC10aW1lIGhhcyBwYXN0Og0KPiAgICAgICAgICogc2VuZCBzdWJzY3JpcHRp
b24tY29tcGxldGVkDQoNCkEgInJlcGxheS1jb21wbGV0ZWQiIG1pZ2h0IGhhdmUgYWxyZWFkeSBi
ZWVuIHNlbnQgaWYgdGhlIHN1YnNjcmlwdGlvbiBzdGFydGVkIHdpdGggcmVwbGF5LCBidXQgdGhl
IHJlcGxheSBjb25jbHVkZWQgYmVmb3JlIHRoZSAic3RvcC10aW1lIi4gIEJhc2VkIG9uIHRoaXMs
IGFyZSB5b3UgZ29vZCB3aXRoIHRoZSBmb2xsb3dpbmcgY2xhcmlmaWNhdGlvbiBzZW50ZW5jZSBh
dCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGRlc2NyaXB0aW9uPy4uLi4NCg0KICAgICAgICJJZiB0
aGlzIGlzIGEgcmVwbGF5IHN1YnNjcmlwdGlvbiwgYW5kIGEgJ3JlcGxheS1jb21wbGV0ZWQnIHN1
YnNjcmlwdGlvbiBzdGF0ZSBub3RpZmljYXRpb24gaGFzIG5vdCBiZWVuIHNlbnQsIHRoZSAncmVw
bGF5LWNvbXBsZXRlZCcgbXVzdCBiZSBzZW50IHByaW9yIHRvIHRoZSAnc3Vic2NyaXB0aW9uLWNv
bXBsZXRlZCcuIiANCg0KPiBJMTYpIGxlYWYgcmVwbGF5LXByZXZpb3VzLWV2ZW50LXRpbWUgew0K
PiANCj4gICAtLSBJdCBpcyBub3QgY2xlYXIgd2h5IHRoaXMgbGVhZiBpcyBuZWVkZWQNCg0KVGhl
IHB1cnBvc2Ugb2YgdGhlIGxlYWYgaXMgaW5jbHVkZWQgaW4gdGhlIHNlY29uZCBwYXJhZ3JhcGgg
b2YgdGhlIGRlc2NyaXB0aW9uDQoNCiAgICAgICAgICAgIElmIGEgcmVjZWl2ZXIgcHJldmlvdXNs
eSByZWNlaXZlZCBldmVudCByZWNvcmRzIGZvciB0aGlzIA0KICAgICAgICAgICAgY29uZmlndXJl
ZCBzdWJzY3JpcHRpb24sIGl0IGNhbiBjb21wYXJlIHRoaXMgdGltZSB0byB0aGUNCiAgICAgICAg
ICAgIGxhc3QgZXZlbnQgcmVjb3JkIHByZXZpb3VzbHkgcmVjZWl2ZWQuICBJZiB0aGUgdHdvIGFy
ZSBub3QgDQogICAgICAgICAgICB0aGUgc2FtZSAocGVyaGFwcyBkdWUgdG8gYSByZWJvb3QpLCB0
aGVuIGEgZHluYW1pYyByZXBsYXkgDQogICAgICAgICAgICBjYW4gYmUgaW5pdGlhdGVkIHRvIGFj
cXVpcmUgYW55IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQoNCk1vcmUgb24gdGhlIGxlYWYgaXMg
YWxzbyBkZXNjcmliZWQgaW4gU2VjdGlvbiAyLjUuNi4sIHBhcmFncmFwaCA0LiAgICANCg0KPiAg
ICAgIEhvdyBkb2VzIHRoaXMgcmVsYXRlIHRvIHJlcGxheS1sb2ctY3JlYXRpb24tdGltZQ0KPiAg
ICAgIGFuZCByZXBsYXktbG9nLWFnZWQtdGltZT8NCg0KSXQgZG9lcyBub3QgcmVsYXRlIGRpcmVj
dGx5IHRvIHRob3NlIG9iamVjdHMuICBCdXQgaW5kaXJlY3RseSBpZiB0aGUgcmVwbGF5IGxvZyBp
cyBlbXB0eSAob3IgdGltZWQgb3V0KSwgdGhlbiB0aGUgZmlyc3QgcGFyYWdyYXBoIG9mIHRoZSBk
ZXNjcmlwdGlvbiBhcHBsaWVzLi4uDQoNCiAgICAgICAgICAgICJJZiB0aGVyZSBpcyBhdCBsZWFz
dCBvbmUgZXZlbnQgaW4gdGhlIHJlcGxheSBidWZmZXIgcHJpb3IgDQogICAgICAgICAgICB0byAn
cmVwbGF5LXN0YXJ0LXRpbWUnLCB0aGlzIGdpdmVzIHRoZSB0aW1lIG9mIHRoZSBldmVudCANCiAg
ICAgICAgICAgIGdlbmVyYXRlZCBpbW1lZGlhdGVseSBwcmlvciB0byB0aGUgJ3JlcGxheS1zdGFy
dC10aW1lJy4NCg0KSWYgaXQgaGVscHMsIEkgY291bGQgYWRkIG9uZSBtb3JlIHNlbnRlbmNlIHRv
IHRoZSBmaXJzdCBwYXJhZ3JhcGg6DQoNCiAgICAgICAgICAgICAiSWYgdGhlcmUgaXMgbm8gcHJp
b3IgZXZlbnQgaW4gdGhlIHJlcGxheSBidWZmZXIsIHRoaXMgb2JqZWN0IE1VU1QgTk9UIGJlIHBv
cHVsYXRlZC4iDQoNCkJ1dCB0aGlzIHNlZW1zIGxpa2Ugb3Zlci1zcGVjaWZ5aW5nIHRvIG1lLiAN
Cg0KPiBOaXRzOg0KPiANCj4gMi4zOg0KPiBUaGlzIGRvY3VtZW50IHByb3ZpZGUgZm9yIHNldmVy
YWwgUW9TIHBhcmFtZXRlcnMNCj4gICAtLSBzL3Byb3ZpZGUvcHJvdmlkZXMNCg0KRml4ZWQNCg0K
PiAyLjQsIHBhcmEgMToNCj4gICAtLSB0ZXJtICd0YXJnZXQnIHVzYWdlIGlzIGNvbmZ1c2luZywg
aW5jb25zaXN0ZW50IHdpdGggc2VjIDEuMg0KDQpBcmUgeW91IG9rIGlmIEkgdHdlYWsgdGhlIHRl
eHQgdG86DQoiVGhlc2UgUlBDcyBoYXZlIGJlZW4gZGVzaWduZWQgZXh0ZW5zaWJseSBzbyB0aGF0
IHRoZXkgbWF5IGJlIGF1Z21lbnRlZCBmb3IgdXNlIGJleW9uZCBldmVudCBzdHJlYW1zLiINCg0K
PiByZWZlcmVuY2Utc3RtdDoNCj4gICAgICJSRkMgWFhYWDpDdXN0b21pemVkIFN1YnNjcmlwdGlv
bnMgdG8gYSBQdWJsaXNoZXIncyBFdmVudCBTdHJlYW1zIjsNCj4gIC0tIERvZXMgbm90IG1hdGNo
IGRvY3VtZW50IHRpdGxlDQoNCkZpeGVkIHRvOg0KIlJGQyBYWFhYOlN1YnNjcmlwdGlvbiB0byBZ
QU5HIEV2ZW50IE5vdGlmaWNhdGlvbnMiDQoNCj4gZmVhdHVyZSBjb25maWd1cmVkOg0KPiAgICAg
ICAiVGhpcyBmZWF0dXJlIGluZGljYXRlcyB0aGF0IGNvbmZpZ3VyYXRpb24gb2Ygc3Vic2NyaXB0
aW9uIGlzDQo+ICAgICAgIHN1cHBvcnRlZC4iOw0KPiAgLS0gcy9zdWJzY3JpcHRpb24vc3Vic2Ny
aXB0aW9ucy8NCg0KRG9uZQ0KDQo+IHJlZmluZSAidGFyZ2V0L3N0cmVhbS9yZXBsYXktc3RhcnQt
dGltZSIgew0KPiAgIGRlc2NyaXB0aW9uDQo+ICAgICAiSW5kaWNhdGVzIHRoZSB0aW1lIHRoYXQg
YSByZXBsYXkgdXNpbmcgZm9yIHRoZSBzdHJlYW1pbmcgb2YNCj4gDQo+ICAtLSBzZW50ZW5jZSBz
ZWVtcyBtYW5nbGVkOyBuZWVkcyByZXBhaXINCg0KTWFkZSBpdDoNCiJyZXBsYXkgaXMgdXNpbmci
DQoNClRoYW5rcyBhZ2FpbiBmb3IgZG9pbmcgYSB2ZXJ5IGNvbXBsZXRlIFlBTkcgRG9jdG9yIHJl
dmlldy4NCg0KRXJpYw0K


From nobody Thu Jan 17 10:39:03 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 99395130F5B for <netconf@ietfa.amsl.com>; Thu, 17 Jan 2019 10:39:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=yumaworks-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 P12n2bQx7I6j for <netconf@ietfa.amsl.com>; Thu, 17 Jan 2019 10:38:56 -0800 (PST)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (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 49725130F61 for <netconf@ietf.org>; Thu, 17 Jan 2019 10:38:55 -0800 (PST)
Received: by mail-lf1-x12b.google.com with SMTP id i26so8618613lfc.0 for <netconf@ietf.org>; Thu, 17 Jan 2019 10:38:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ns1FzMoPpVyVPJZaFecFH2spyVqjY6IsWzI7Furyufk=; b=NXwCOVQVqS3OIUqjd7DCoBPEZ03zdWT0lGdssfjOPwbB+njnFSq8cAeLpXjXDHbSO7 y2Ro4r9BVfzM5+o5IOAX89y+NKuimSO17hqV/Qfr09PBYzjCO/Qr3iGI2nH5Q89a2KzC 8Y4TcyBzoCZlLKiwXSDkLhRaoGmFCAwt6uY5ppiTLlmxSZWNgxpW8HIxIBvrbcAdgdw9 PSO7PUO2rR2BH3v3YnIlY/N9tk1oAhEm5LenBuznDFRlgXXARL9qALiM3W0BG7CrCcQ7 M4y+pWf3gdPxQMHE3chVSeP4RFiJdSsNijtdCnHDWADmvs7uMRaYpS8/Wk/3bMPVBY41 XN1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ns1FzMoPpVyVPJZaFecFH2spyVqjY6IsWzI7Furyufk=; b=Fz0BkvcWEvTwgyQB7GUrQOdgRnR8O7iptrVXa6FQVLLh5x+0tTWlJB5VHabXKZEoE9 2D9+ZFzjgWeAHUIsIa/rOpzHix3xOcB1+tOTPqZc1LFIWJIv9UG/hx2D8xSzfif4OFnL CDGGQt9TmHUJKL6lsL8FE9J1bd7t90/04zbTFimjUwXfP14bDmLJ7OIiUdf62VmiSI0O YqXI77kWzqbqvhpvtkTld7zmcKPDMLZBHYIT95sR7kujlhveK9KhxyZXIgTkQuHXigHC AmNnB5xNVDMRxkPAEstOyBU9tpHO5hKCNyR8pcAxrZkGsfGP6cUE17buFlV2229zrjQO 8Pig==
X-Gm-Message-State: AJcUukeGLJfIq3yYSF3wLlXvE6nB4O5hdIThLzEI2F3LFhb5X/V89yGg fYKzgYcKV2HAoZPCgQmI3JhKfvp+VBjecy5XeiAgGD+G
X-Google-Smtp-Source: ALg8bN4fq73zMmHaKgY+3cxczsqEd03FH6JTF0t4k2Wkb+qAMnS5MiyVwXzBuM21cGlv+NzCkLlKxjrqb2pKewdPI+o=
X-Received: by 2002:a19:d58e:: with SMTP id m136mr11711398lfg.70.1547750333019;  Thu, 17 Jan 2019 10:38:53 -0800 (PST)
MIME-Version: 1.0
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com>
In-Reply-To: <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 17 Jan 2019 10:38:41 -0800
Message-ID: <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>,  "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000cd1088057fabb4d3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/p10qeeLUN-1nEfb4NB2vJWBkzA0>
Subject: Re: [Netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Jan 2019 18:39:02 -0000

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

On Wed, Jan 16, 2019 at 10:35 AM Eric Voit (evoit) <evoit@cisco.com> wrote:

> Hi Andy,
>
> Thanks for the review.  Some thoughts....
>
> > From: Andy Bierman, January 14, 2019 8:08 PM
> >
> > Reviewer: Andy Bierman
> > Review result: Ready with Issues
> >
> > based on draft-21
> > ietf-subscribed-notifications@2018-12-19
> >
> > General Comments:
> >
> >   -- the document is well-written and the feature-set is
> >      very comprehensive. There are a lot of YANG features (10)
> >      but they are defined to allow for a large set of
> >      publisher platforms.
> >
> >   -- the extensibility mechanisms for filters, transport,
> >      and encoding should be valuable over time. There is
> >      a risk of proprietary solutions that do not interoperate
> >      but this base YANG module provides enough functionality.
> >      Reliance on future augmentations is new but should be OK
> >
> >   -- advanced use of groupings, refine-stmt and augment-stmt
> >      within groupings makes the module difficult for humans
> >      to fully understand without additional tools, and without
> >      the normative text outside the YANG module.
> >
> > Issues:
> >
> > I1) 1.4.  Relationship to RFC 5277
> >
> >   -- this section should mention that stop-time is not coupled to
> >      notification replay like RFC 5277. This parameter can be used
> >      on any stream, even if replay is not supported at all.
>
> If you are ok with the following text, I can add the a new clarification
> bullet to this section:
> "A subscription "stop-time" can be specified as part of a notification
> replay.  This supports an analogous capability to the stopTime parameter of
> [RFC 5277].  However in this specification, a "stop-time" parameter can
> also be applied without replay."
>
>

OK



> > I2) sec 2.1 para 5:
> >    If subscriber permissions change during the lifecycle of a
> >    subscription and event stream access is no longer permitted, then the
> >    subscription MUST be terminated.
> >
> >   -- Why can't server suspend until NACM configured
> >    (i.e., MUST be terminated or suspended).
>
> The original reason for 'MUST be terminated' was that it was more
> deterministic / simpler option.  And it seems a reasonable solution
> considering permissions changes that collide with existing subscription is
> something which is likely to be a rare corner case.   If an implementation
> does also want to support suspended, then the implementation will then have
> to monitor permissions to get that subscription out of suspension.  And
> adding support for this would add more text, complexity, and NACM
> integration to the specification.  The best option of course would be to
> consider NACM implications for subscriptions in flight prior to making
> permissions changes.  With this, adding the extra complexity of suspension
> wouldn't be necessary.
>
>
OK to leave as-is. Agree it is more complex.


> >    Should be clear somewhere that
> >    suspend is for CPU and other resources, and NACM not considered
> >    to be a resource.
>
> If NACM is active, it needs to be followed.  The text we have for NACM is
> in Section 5.4.  Do you see something else specific to subscription
> suspension needed here?  (Maybe I am not getting your point.)
>
>
No -- OK to leave NACM as terminate-if-loss-of-rights
(Is there an error identity for this event?)



> > I3) sec 2.1 para 6:
> >    Event records MUST NOT be delivered to a receiver in a different
> >    order than they were placed onto an event stream.
> >
> >   -- does this apply to subscription-state? Think not, they are not
> events
> >     placed in event stream.
>
> Agree that they are not on the event stream.  So they do not violate this
> requirement.
>
> Additionally there is supporting text in "Section 2.7: subscription state
> notifications", including...
>
> " Instead, they are inserted (as defined in this section) within the
> sequence of notification messages sent to a particular receiver."
>
> >     Need to allow ended or suspended to be sent
> >     head-of-line whenever state changes
>
> I am not sure that suspended should always be sent head-of-line.
>  Consider that implementation might want to let the existing queue of
> filtered event records be sent if is filter complexity causing the CPU
> issue.   That could be different than if it is a bandwidth issue driving
> the suspension, and you definitely want the 'subscription-suspended' to be
> placed at the head of line.
>
>

It is up to the publisher to decide when to stop sending events on a
subscription.
Obviously the publisher cannot wait until the subscription is idle.
The reason it is getting suspended is it is far from idle

So also up to the publisher wrt/ what to do with any events that have not
been delivered yet on a subscription.  Could delete them or save them for
when more bandwidth available (for example)



> >   -- Maybe another table or more text should be added listing the
> >      notifications that indicates
> >        (a) sent-for-configured
> >        (b) sent-for-dynamic
> >        (c) inserted at end of event stream, middle, or sent head-of-line
> >
> >      replay-completed         Y  Y  end
> >      subscription-completed   Y  N  end
> >      subscription-modified    Y  Y  middle [1]
> >      subscription-resumed     Y  Y  head [2]
> >      subscription-started     Y  N  head
> >      subscription-suspended   Y  Y  head
> >      subscription-terminated  Y  Y  head [3]
>
> See thinking on this table below at ***table thoughts***
>
> >   -- [1] not clear where in the event stream subscription-modified is
> sent.
> >      Maybe implementation-dependent? e.g. does filter-change inserted
> >      at slot N means all events N+i are done with new filter?
>
> Yes.  The text which indicates this is in Section 2.5.1...
>

OK



>
> "A "subscription-modified" subscription state change notification will
>    be sent to all active receivers, immediately followed by notification
>    messages conforming to the new parameters."
>
> There is also text in the YANG model "notification subscription-modified"
> saying
>
>       "Notification messages sent from this point on will
>        conform to the modified terms of the subscription."
>
> Beyond that it is up to the implementation to decide if some
> un-transmitted queue of event records should be flushed and reprocessed
> based on the modification.  I do not expect this would popular, as a replay
> subscription could accomplish this same functional need.
>

Agreed that an implementation can drop at any time and increment the
appropriate counters. It will try to to do this, but no requirements except
maybe subscription events like 'replay-completed' cannot be dropped



>
> >   -- [2] not clear where in the event stream subscription-resumed is
> sent.
> >      There may be events ready to send. Clearly resumed is sent before
> >      any of these after transition to active state.
>
> Yes.  The text on this is in Section 2.7.5 should help.  There is also
> text in the YANG module...
>
>    "Subscribed event records generated after the issuance of this
>    subscription state change notification may now be sent."
>
>
OK


> Thinking more on your point, it might be worth tweaking a couple words to
> allow for head-of-line placement of "subscription-suspended".
>
>    "Subscribed event records queued for sending after the issuance of this
>    subscription state change notification may now be sent."
>
> Are you good with this suggested change?
>
>
Not sure -- it needs to be clear that subscription-suspended is the
last event sent before suspending and subscription-resumed is
the first event sent after transition from suspended to active.
The next event could also be subscription-terminated.

Implementation details do not need to be mentioned



> >   -- [3] not clear that subscription terminated right away then all
> >      events for all receivers are deleted and only
> subscription-terminated
> >      is sent to all receivers; sec 2.7.3 says this but not in module
>
> I am not sure if the module is the best place to embed this.  My thinking
> was the module should defining the meaning of the notification and its
> relationship to other model elements, and the behavior of the publisher
> prior to the issuance of the notification can be included in the
> specification text.  As a result beyond Section 2.7.3, there is also
> related text in Section 2.5.4...
>
>
OK to leave as-is


>    "Immediately after a subscription is successfully deleted, the
>    publisher sends to all receivers of that subscription a subscription
>    state change notification stating the subscription has ended (i.e.,
>    "subscription-terminated")."
>
> >   -- insert point may be specific to each receiver, not each subscription
>
> This is true, and is a natural function of the text is Section 2.5.4.
>
>
OK


> >   -- how long does the server wait for a receiver when sending
> >      subscription-terminated?
>
> Per Section 2.5.4. there is no wait.
>
>
OK


> ***table thoughts*** The table does provide an interesting summary view.
>  And do I appreciate you putting it together.  Based on the notes for [1],
> [2], and [3], my perception is that the requirements are covered within the
> existing text.  Is it an absolute requirement from the YANG Doctors that
> this summary table be embedded as a new section of the draft (perhaps as a
> Section 2.7.8?)  I am hoping to avoid major new text additions at this
> point.
>
>
there is no need to add a new table


> > I4) sec 2.4.6: RPC Failures
> >   -- concern about a subscription-specific error reporting system
> >      must make sure protocol error reporting system is used correctly
>
> Yes.  We have done our best to integrate with the embedded NETCONF and
> RESTCONF mechanisms.  There is much additional information in the transport
> drafts here.
>
> >   -- The error-tag value needs to be identified for each 'reason'
> identity
>
> This is done in the transport drafts.   E.g., see
> draft-ietf-netconf-netconf-event-notifications Section 7
>
>
I do not agree this is a good idea.
Each error identity should simply state the required "error-tag"
that is associated with the error.  This is expected of protocol operations
that are added to NETCONF and RESTCONF.

Both NETCONF and RESTCONF use a compatible error reporting data structure.
The "error-tag" is used in both of them.  IMO client developers do not
want a different set of error codes for the same error conditions.

I agree that transport drafts could define their own error identities,
which would document the expected error-tag there.


>    2.  "modify-subscription-stream-error-info": This MUST be returned
> >        with the leaf "reason" populated if an RPC error reason has not
> >        been placed elsewhere within the transport portion of a failed
> >        "modify-subscription" RPC response.  This MUST be sent if hints
> >
> >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> >       text means; not appropriate for MUST;
>
> Instead of "placed elsewhere", how about: "placed in subscription
> transport document defined object".  Would this be sufficient?
>
>
No -- NETCONF and RESTCONF have well-defined error reporting.
The server requirements for this error reporting must be documented.

I agree with the following approach:
  - each operation MUST identify the error-tags that are expected for
    various error conditions (such s is done in RFC 6241)
  - the server MUST return the specified error-tags. If a condition not
explicitly
    defined then the server MUST pick the appropriate error-tag from RFC
6241
 - the server MAY include the specified rc:yang-data in the <error-info>
data structure
 - the server MUST use the appropriate rc:yang-data to report hints
 - for protocols other than NETCONF and RESTCONF, they can map error-tag or
ignore it,
   but the document defining the protocol operation MUST provide

In any case, the -v21 wording results from the attempted balancing the WG
> requests for:
> * merging with transport protocol error mechanisms
> * WG leadership guidance to provide requirements for transport documents
>
> >      Only 3 fields seem
> >       to be relevant (error-tag, error-app-tag, error-info).
> >       Protcol operations are expected to document server requirements
> >       for these 3 fields, if applicable.  Only the error-tag
> >       is mandatory-to-use.
>
> Hopefully these are covered sufficiently when this document is coupled
> with the NETCONF and RESTCONF Notif transport documents.   For other
> transports, the tags you identify about would not be applicable.
>
> >   -- the error assignments are extremely specific. e.g., it is not
> >      possible for <kill-subscription> to fail with an
> >      'insufficient-resources' error;
>
> This is the intent of the base specification, e.g., we don't believe a
> kill-subscription should fail for an insufficient-resources reason.   But
> vendors might desire more specificity.  As a result is certainly ok for
> vendor implementations to add new error identities.
>
>
IMO anything can fail for insufficient resources. That is very
implementation-specific.



> >      Do not agree that scoping each
> >      identity to specific RPC operations is a good idea.
>
> This level of specificity was not the author's original plans.  Nor was
> this level of specificity part of earlier draft versions up through -v08.
>  However members of the WG made it clear that such specificity was
> necessary for draft progression.
>
> >   -- how are errors in these parameters reported for configured
> >      subscriptions when <edit-config> is the RPC that has the error?
> >      How are the yang-data structs used for edit-config or commit errors?
>
> None of these yang-data structures are specified for use with
> <edit-config> operations.   For <edit-config>, the change to a configured
> subscription would be written to the datastore if it were semantically
> valid.   At this point the subscription enters the [evaluate] points of
> Figure 8.  Issues from this point out would be reported with a vendor
> specific construct such as SYSLOG.
>
>
So how are hints reported for configured subscriptions?



> > I5) sec 2.5
> >
> >    Multiple configured subscriptions MUST be supportable over
> >    a single transport session.
> >
> >   -- why is this a MUST instead of SHOULD? explain harm to
> >      interoperability if not supported
>
> From the receiver side, a receiver must be able to differentiate between
> state notifications for different subscriptions.  If a publisher can't
> support more than one, it doesn't actually hurt interoperability with a
> receiver.  It just doesn't meet the minimum criteria set for feature
> support for the capability as defined in this document.
>
>
OK - the vendor can use deviations to change it if they want



> > I6) sec 2.5, para 3:
> >
> >    On a receiver of a
> >    configured subscription, support for dynamic subscriptions is
> >    optional except where replaying missed event records is required.
> >
> >   -- confusing because text in 1.3:
> >      Note that there is no mixing-and-matching of dynamic and configured
> >      operations on a single subscription.  Specifically, a configured
> >   -- clarify the receiver may have multiple subscriptions here
> >   -- not clear what "except where replaying..." text means
>
> How about the following tweak:
>
> "On a receiver of a configured subscription, support for dynamic
> subscriptions is optional.  However if replaying missed event records is
> required for a configured subscription, support for dynamic subscription is
> highly recommended.  In this case, a separate dynamic subscription can be
> established to retransmit the missing event records."
>
>
OK


> > I7) leaf stream-xpath-filter: [multiple uses]
> >
> >            The expression is evaluated in the following XPath context:
> >
> >              o   The set of namespace declarations is the set of prefix
> >                  and namespace pairs for all YANG modules implemented
> >                  by the server, where the prefix is the YANG module
> >                  name and the namespace is as defined by the
> >                  'namespace' statement in the YANG module.
> >
> >   -- This prefix processing is not done anywhere else in NETCONF
> >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> >      should be required for processing of XML encoding.  YANG
> >      module prefixes are not required to be unique, unlike
> >      the prefix mappings in XML
>
> This text was proposed by Martin as a result of the "xpath expressions in
> JSON" thread last October in NETMOD.
>
> I am happy to incorporate whatever text is appropriate.  I was hoping that
> the suggested text was sufficient for now.  Kent has already incorporated
> this as an issue for yang-next
> https://github.com/netmod-wg/yang-next/issues/55
> So hopefully there is no final precedent being claimed.
>
>
I do not agree that this YANG module should define a new way to encode XPath
into XML instance documents. This will require significant changes to server
implementations.  YANG module prefixes are not even required to be unique
so the set of prefixes used by the server in XML instance documents may be
different,
since it must be unique.




> >   -- NMDA allows the same module to appear in multiple module-sets
> >      and different in each datastore. This text about "implemented by
> >      the server" does not work for NMDA
>
> I am happy to adopt whatever text meets YANG doctor approval.   Can you
> suggest?
>
>

Remove all text about YANG prefixes and continue using XML encoding without
modification


> I8) leaf /subscriptions/subscription/encoding {
> >       when 'not(../transport) or derived-from(../transport,
> >       "sn:configurable-encoding")';
> >       type encoding;
> >
> >   -- when-stmt is odd; there are no configurable-encodings specified
>
> This constraint was suggested by Martin last June in the thread:
> https://www.ietf.org/mail-archive/web/netconf/current/msg14402.html
> more details can be seen at:
> https://mailarchive.ietf.org/arch/msg/netconf/wHQjZuJnh7asJvpE1nIovPDnESM
>
>
OK


> >   -- there should be an example of a configurable encoding provided
>
> I am happy to enhance the definition YANG model's identity definition of
> "configurable-encoding".  I could do this by adding the following
> additional text to the description: "An example of a configurable encoding
> might be a new identity such as 'encode-cbor'.  Such an identity could use
> 'configurable-encoding' as its base.  This would allow a dynamic
> subscription encoded in JSON [RFC-8259] to request notification messages be
> encoded via CBOR [RFC-7049].  Further details for any specific configurable
> encoding would be explored in a transport document based on this
> specification."   Does this meet your ask?
>
>

OK



> >   -- maybe add some text noting this is not the "encoding" leaf in
> >      establish-subscription.  Text is confusing since not clear how
> >      a dynamic subscription would use this leaf inside
> subscription-policy
> >      grouping
>
> Dynamic subscription is possible.  This is the intent of drafts like
> draft-birkholz-yang-core-telemetry-01
>
> >   -- it is only clear in the YANG tree that modify-subscription does
> >      not allow encoding to be changed.  Is this worth mentioning in
> >      the establish-subscription/input/encoding leaf?
>
> I don't think the encoding leaf of establish-subscription needs to note
> that it cannot be modified.  There are other objects which cannot be
> modified as well, they are not explicitly called out.   In the end, the
> current model matches the intended behavior per the text above.  And it is
> only possible to request an encoding for delivered event records be
> different from that of the RPC during the establish subscription.
>
>
OK



> > I9) leaf /streams/stream/description {
> >         type string;
> >         mandatory true;
> >
> >   -- it is odd to see an admin-string be mandatory. should add
> explanation
> >      why this is mandatory (in config false even more odd)
>
> Thinking about this some, it certainly should be there.  But does not need
> to be mandatory.  So I have changed the leaf description so that it is no
> longer mandatory.
>
>
OK



> > I10) leaf /subscriptions/subscription/configured-subscription-state
> >         if-feature "configured";
> >           enum concluded {
> >             value 3;
> >               description
> >                 "A subscription is inactive as it has hit a stop time,
> >                 but not yet been removed from configuration.";
> >           }
> >
> >   -- it is also possible for stop-time to be reached but not all
> >      events delivered to all receivers on the subscription.
> >      Is this a different state or part of 'concluded'?
>
> I have no problem supporting your request for refinement/specificity.  As
> a result, I have tweaked the definition as follows...
>
>                 "A subscription is inactive as it has hit a stop time,
>                 it no longer has receivers in the 'receiver active' or
>                 'receiver suspended' state, but not yet been
>                 removed from configuration.";
>
>

OK



> > I11) extension subscription-state-notification {
> >
> >        This statement is not for use
> >        outside of this YANG module.";
> >
> >   -- this text should be removed. There is no value in limiting
> >      the scope of this extension.  It prevents even this WG from
> >      creating a module that uses the extension again.
>
> This was the subject of significant debate in the WG.  The authors did not
> want this restriction either.
>
> To be allowed to progress the document, we inserted the document.  If this
> really is mandatory-to-remove from a YANG doctor point-of-view, what is the
> process for quick closure on this issue between WG leadership and the YANG
> doctors?
>
>

The YANG language makes no restrictions about exporting statements.
I guess I missed that debate so I will just say OK and wonder what problem
this is supposed to solve. I guess the WG wants to give YANG Doctors more
things to check. (This is what we called a CLR in SNMP-land ;-)



> > I12)   notification replay-completed {
> >
> >     description
> >       "This notification is sent to indicate that all of the replay
> >         notifications have been sent. It must not be sent for any other
> >        reason.";
> >
> >   -- 2nd sentence should be removed. It is implied that the notification
> >      is only sent for its defined purpose.  No other notifications
> >      have this type of text.
>
> Done
>
> > I13)   notification subscription-started {
> >     sn:subscription-state-notification;
> >     if-feature "configured";
> >     description
> >       "This notification indicates that a subscription has started and
> >         notifications are beginning to be sent. This notification shall
> >        only be sent to receivers of a subscription; it does not
> >        constitute a general-purpose notification.";
> >
> >   -- 2nd sentence is confusing; all notifications are sent to
> >      receivers of a subscription. last part is redundant since
> >      the sn:subscription-state-notification extension is used
>
> There is no issue with removing this second sentence completely.  If I did
> that, would this address your concern?
>
>
OK



> > I14)   rc:yang-data modify-subscription-stream-error-info {
> >
> >       leaf filter-failure-hint {
> >         type string;
> >           description
> >             "Information describing where and/or why a provided filter
> >              was unsupportable for a subscription.";
> >       }
> >
> >   -- rpc-error already allows more precise error reporting
> >      It uses error-tag, error-path, error-string, and error-info
> extensions
> >      to identify which parameters/conditions caused the RPC to be
> rejected.
> >      This error reporting will continue to be used, Not sure this
> failure-hint
> >      has any standards value. Perhaps real-use example can be added
>
> Per your thoughts on rpc-error...   For NETCONF and RESTCONF, you point to
> error structures which historically been used with those transports.  Of
> course we were looking to have all subscription hints supportable across
> transports via a single portable YANG data structure.  So the value is that
> a single string object exists so to transport whatever the vendor thinks
> would be useful as a hint in this case.  I.e., there has been no attempt to
> standardize the contents of this string.  If operational experiences drive
> a desire for such structuring, this could provide the basis for a new draft
> building off of this starting point.
>
>
I guess I do not consider NETCONF and RESTCONF "historic" quite yet.
There are many implementations using the rpc-error reporting with no intent
to replace it with something else.

I was just asking for an example, since I have no idea what an implementor
would put in this leaf.




> > I15)  notification subscription-completed {
> >     sn:subscription-state-notification;
> >     if-feature "configured";
> >     description
> >       "This notification is sent to indicate that a subscription has
> >        finished passing event records, as the 'stop-time' has been
> >        reached.";
> >
> >   -- Could be more clear:
> >      A) replay in use and stop-time has past:
> >         * send replay-completed
> >         * send subscription-completed
> >      B) no replay and stop-time has past:
> >         * send subscription-completed
>
> A "replay-completed" might have already been sent if the subscription
> started with replay, but the replay concluded before the "stop-time".
> Based on this, are you good with the following clarification sentence at
> the end of the current description?....
>
>
OK -- no changes needed



>        "If this is a replay subscription, and a 'replay-completed'
> subscription state notification has not been sent, the 'replay-completed'
> must be sent prior to the 'subscription-completed'."
>
> > I16) leaf replay-previous-event-time {
> >
> >   -- It is not clear why this leaf is needed
>
> The purpose of the leaf is included in the second paragraph of the
> description
>
>             If a receiver previously received event records for this
>             configured subscription, it can compare this time to the
>             last event record previously received.  If the two are not
>             the same (perhaps due to a reboot), then a dynamic replay
>             can be initiated to acquire any missing event records."
>
> More on the leaf is also described in Section 2.5.6., paragraph 4.
>
>
OK



> >      How does this relate to replay-log-creation-time
> >      and replay-log-aged-time?
>
> It does not relate directly to those objects.  But indirectly if the
> replay log is empty (or timed out), then the first paragraph of the
> description applies...
>
>             "If there is at least one event in the replay buffer prior
>             to 'replay-start-time', this gives the time of the event
>             generated immediately prior to the 'replay-start-time'.
>
> If it helps, I could add one more sentence to the first paragraph:
>
>              "If there is no prior event in the replay buffer, this object
> MUST NOT be populated."
>
> But this seems like over-specifying to me.
>
>
OK -- leave unchanged



> > Nits:
> >
> > 2.3:
> > This document provide for several QoS parameters
> >   -- s/provide/provides
>
> Fixed
>
> > 2.4, para 1:
> >   -- term 'target' usage is confusing, inconsistent with sec 1.2
>
> Are you ok if I tweak the text to:
> "These RPCs have been designed extensibly so that they may be augmented
> for use beyond event streams."
>
> > reference-stmt:
> >     "RFC XXXX:Customized Subscriptions to a Publisher's Event Streams";
> >  -- Does not match document title
>
> Fixed to:
> "RFC XXXX:Subscription to YANG Event Notifications"
>
> > feature configured:
> >       "This feature indicates that configuration of subscription is
> >       supported.";
> >  -- s/subscription/subscriptions/
>
> Done
>
> > refine "target/stream/replay-start-time" {
> >   description
> >     "Indicates the time that a replay using for the streaming of
> >
> >  -- sentence seems mangled; needs repair
>
> Made it:
> "replay is using"
>
> Thanks again for doing a very complete YANG Doctor review.
>
> Eric
>


Andy

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Wed, Jan 16, 2019 at 10:35 AM Eric Voit (evoit) &lt;<a =
href=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">Hi Andy,<br>
<br>
Thanks for the review.=C2=A0 Some thoughts....<br>
<br>
&gt; From: Andy Bierman, January 14, 2019 8:08 PM<br>
&gt; <br>
&gt; Reviewer: Andy Bierman<br>
&gt; Review result: Ready with Issues<br>
&gt; <br>
&gt; based on draft-21<br>
&gt; ietf-subscribed-notifications@2018-12-19<br>
&gt; <br>
&gt; General Comments:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- the document is well-written and the feature-set is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 very comprehensive. There are a lot of YANG featur=
es (10)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 but they are defined to allow for a large set of<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 publisher platforms.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- the extensibility mechanisms for filters, transport,<br=
>
&gt;=C2=A0 =C2=A0 =C2=A0 and encoding should be valuable over time. There i=
s<br>
&gt;=C2=A0 =C2=A0 =C2=A0 a risk of proprietary solutions that do not intero=
perate<br>
&gt;=C2=A0 =C2=A0 =C2=A0 but this base YANG module provides enough function=
ality.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 Reliance on future augmentations is new but should=
 be OK<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- advanced use of groupings, refine-stmt and augment-stmt=
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 within groupings makes the module difficult for hu=
mans<br>
&gt;=C2=A0 =C2=A0 =C2=A0 to fully understand without additional tools, and =
without<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the normative text outside the YANG module.<br>
&gt; <br>
&gt; Issues:<br>
&gt; <br>
&gt; I1) 1.4.=C2=A0 Relationship to RFC 5277<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- this section should mention that stop-time is not coupl=
ed to<br>
&gt;=C2=A0 =C2=A0 =C2=A0 notification replay like RFC 5277. This parameter =
can be used<br>
&gt;=C2=A0 =C2=A0 =C2=A0 on any stream, even if replay is not supported at =
all.<br>
<br>
If you are ok with the following text, I can add the a new clarification bu=
llet to this section:<br>
&quot;A subscription &quot;stop-time&quot; can be specified as part of a no=
tification replay.=C2=A0 This supports an analogous capability to the stopT=
ime parameter of [RFC 5277].=C2=A0 However in this specification, a &quot;s=
top-time&quot; parameter can also be applied without replay.&quot; <br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I2) sec 2.1 para 5:<br>
&gt;=C2=A0 =C2=A0 If subscriber permissions change during the lifecycle of =
a<br>
&gt;=C2=A0 =C2=A0 subscription and event stream access is no longer permitt=
ed, then the<br>
&gt;=C2=A0 =C2=A0 subscription MUST be terminated.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- Why can&#39;t server suspend until NACM configured<br>
&gt;=C2=A0 =C2=A0 (i.e., MUST be terminated or suspended).<br>
<br>
The original reason for &#39;MUST be terminated&#39; was that it was more d=
eterministic / simpler option.=C2=A0 And it seems a reasonable solution con=
sidering permissions changes that collide with existing subscription is som=
ething which is likely to be a rare corner case.=C2=A0 =C2=A0If an implemen=
tation does also want to support suspended, then the implementation will th=
en have to monitor permissions to get that subscription out of suspension.=
=C2=A0 And adding support for this would add more text, complexity, and NAC=
M integration to the specification.=C2=A0 The best option of course would b=
e to consider NACM implications for subscriptions in flight prior to making=
 permissions changes.=C2=A0 With this, adding the extra complexity of suspe=
nsion wouldn&#39;t be necessary.<br>
<br></blockquote><div><br></div><div>OK to leave as-is. Agree it is more co=
mplex.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex">
&gt;=C2=A0 =C2=A0 Should be clear somewhere that<br>
&gt;=C2=A0 =C2=A0 suspend is for CPU and other resources, and NACM not cons=
idered<br>
&gt;=C2=A0 =C2=A0 to be a resource.<br>
<br>
If NACM is active, it needs to be followed.=C2=A0 The text we have for NACM=
 is in Section 5.4.=C2=A0 Do you see something else specific to subscriptio=
n suspension needed here?=C2=A0 (Maybe I am not getting your point.)<br>
<br></blockquote><div><br></div><div>No -- OK to leave NACM as terminate-if=
-loss-of-rights</div><div>(Is there an error identity for this event?)</div=
><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex">
&gt; I3) sec 2.1 para 6:<br>
&gt;=C2=A0 =C2=A0 Event records MUST NOT be delivered to a receiver in a di=
fferent<br>
&gt;=C2=A0 =C2=A0 order than they were placed onto an event stream.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- does this apply to subscription-state? Think not, they =
are not events<br>
&gt;=C2=A0 =C2=A0 =C2=A0placed in event stream. <br>
<br>
Agree that they are not on the event stream.=C2=A0 So they do not violate t=
his requirement.=C2=A0 <br>
<br>
Additionally there is supporting text in &quot;Section 2.7: subscription st=
ate notifications&quot;, including...<br>
<br>
&quot; Instead, they are inserted (as defined in this section) within the s=
equence of notification messages sent to a particular receiver.&quot;<br>
<br>
&gt;=C2=A0 =C2=A0 =C2=A0Need to allow ended or suspended to be sent<br>
&gt;=C2=A0 =C2=A0 =C2=A0head-of-line whenever state changes<br>
<br>
I am not sure that suspended should always be sent head-of-line.=C2=A0 =C2=
=A0Consider that implementation might want to let the existing queue of fil=
tered event records be sent if is filter complexity causing the CPU issue.=
=C2=A0 =C2=A0That could be different than if it is a bandwidth issue drivin=
g the suspension, and you definitely want the &#39;subscription-suspended&#=
39; to be placed at the head of line.<br>
<br></blockquote><div><br></div><div><br></div><div>It is up to the publish=
er to decide when to stop sending events on a subscription.</div><div>Obvio=
usly the publisher cannot wait until the subscription is idle.</div><div>Th=
e reason it is getting suspended is it is far from idle</div><div><br></div=
><div>So also up to the publisher wrt/ what to do with any events that have=
 not</div><div>been delivered yet on a subscription.=C2=A0 Could delete the=
m or save them for</div><div>when more bandwidth available (for example)</d=
iv><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
&gt;=C2=A0 =C2=A0-- Maybe another table or more text should be added listin=
g the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 notifications that indicates<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 (a) sent-for-configured<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 (b) sent-for-dynamic<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 (c) inserted at end of event stream, middle=
, or sent head-of-line<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 replay-completed=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
Y=C2=A0 Y=C2=A0 end<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-completed=C2=A0 =C2=A0Y=C2=A0 N=C2=A0=
 end<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-modified=C2=A0 =C2=A0 Y=C2=A0 Y=C2=A0=
 middle [1]<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-resumed=C2=A0 =C2=A0 =C2=A0Y=C2=A0 Y=
=C2=A0 head [2]<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-started=C2=A0 =C2=A0 =C2=A0Y=C2=A0 N=
=C2=A0 head<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-suspended=C2=A0 =C2=A0Y=C2=A0 Y=C2=A0=
 head<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-terminated=C2=A0 Y=C2=A0 Y=C2=A0 head=
 [3]<br>
<br>
See thinking on this table below at ***table thoughts***<br>
<br>
&gt;=C2=A0 =C2=A0-- [1] not clear where in the event stream subscription-mo=
dified is sent.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 Maybe implementation-dependent? e.g. does filter-c=
hange inserted<br>
&gt;=C2=A0 =C2=A0 =C2=A0 at slot N means all events N+i are done with new f=
ilter?<br>
<br>
Yes.=C2=A0 The text which indicates this is in Section 2.5.1...<br></blockq=
uote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">
<br>
&quot;A &quot;subscription-modified&quot; subscription state change notific=
ation will<br>
=C2=A0 =C2=A0be sent to all active receivers, immediately followed by notif=
ication<br>
=C2=A0 =C2=A0messages conforming to the new parameters.&quot;<br>
<br>
There is also text in the YANG model &quot;notification subscription-modifi=
ed&quot; saying<br>
<br>
=C2=A0 =C2=A0 =C2=A0 &quot;Notification messages sent from this point on wi=
ll <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0conform to the modified terms of the subscriptio=
n.&quot;<br>
<br>
Beyond that it is up to the implementation to decide if some un-transmitted=
 queue of event records should be flushed and reprocessed based on the modi=
fication.=C2=A0 I do not expect this would popular, as a replay subscriptio=
n could accomplish this same functional need.<br></blockquote><div><br></di=
v><div>Agreed that an implementation can drop at any time and increment the=
</div><div>appropriate counters. It will try to to do this, but no requirem=
ents except</div><div>maybe subscription events like &#39;replay-completed&=
#39; cannot be dropped</div><div><br></div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">
<br>
&gt;=C2=A0 =C2=A0-- [2] not clear where in the event stream subscription-re=
sumed is sent.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 There may be events ready to send. Clearly resumed=
 is sent before<br>
&gt;=C2=A0 =C2=A0 =C2=A0 any of these after transition to active state.<br>
<br>
Yes.=C2=A0 The text on this is in Section 2.7.5 should help.=C2=A0 There is=
 also text in the YANG module...<br>
<br>
=C2=A0 =C2=A0&quot;Subscribed event records generated after the issuance of=
 this<br>
=C2=A0 =C2=A0subscription state change notification may now be sent.&quot;<=
br>
<br></blockquote><div><br></div><div>OK</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
Thinking more on your point, it might be worth tweaking a couple words to a=
llow for head-of-line placement of &quot;subscription-suspended&quot;.<br>
<br>
=C2=A0 =C2=A0&quot;Subscribed event records queued for sending after the is=
suance of this<br>
=C2=A0 =C2=A0subscription state change notification may now be sent.&quot;<=
br>
<br>
Are you good with this suggested change?<br>
<br></blockquote><div><br></div><div>Not sure -- it needs to be clear that =
subscription-suspended is the</div><div>last event sent before suspending a=
nd subscription-resumed is</div><div>the first event sent after transition =
from suspended to active.</div><div>The next event could also be subscripti=
on-terminated.</div><div><br></div><div>Implementation details do not need =
to be mentioned</div><div><br></div><div>=C2=A0</div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0-- [3] not clear that subscription terminated right away t=
hen all<br>
&gt;=C2=A0 =C2=A0 =C2=A0 events for all receivers are deleted and only subs=
cription-terminated<br>
&gt;=C2=A0 =C2=A0 =C2=A0 is sent to all receivers; sec 2.7.3 says this but =
not in module<br>
<br>
I am not sure if the module is the best place to embed this.=C2=A0 My think=
ing was the module should defining the meaning of the notification and its =
relationship to other model elements, and the behavior of the publisher pri=
or to the issuance of the notification can be included in the specification=
 text.=C2=A0 As a result beyond Section 2.7.3, there is also related text i=
n Section 2.5.4...<br>
<br></blockquote><div><br></div><div>OK to leave as-is</div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
=C2=A0 =C2=A0&quot;Immediately after a subscription is successfully deleted=
, the<br>
=C2=A0 =C2=A0publisher sends to all receivers of that subscription a subscr=
iption<br>
=C2=A0 =C2=A0state change notification stating the subscription has ended (=
i.e.,<br>
=C2=A0 =C2=A0&quot;subscription-terminated&quot;).&quot;<br>
<br>
&gt;=C2=A0 =C2=A0-- insert point may be specific to each receiver, not each=
 subscription<br>
<br>
This is true, and is a natural function of the text is Section 2.5.4.<br>
<br></blockquote><div><br></div><div>OK</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0-- how long does the server wait for a receiver when sendi=
ng<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscription-terminated?<br>
<br>
Per Section 2.5.4. there is no wait.<br>
<br></blockquote><div><br></div><div>OK</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
***table thoughts*** The table does provide an interesting summary view.=C2=
=A0 =C2=A0And do I appreciate you putting it together.=C2=A0 Based on the n=
otes for [1], [2], and [3], my perception is that the requirements are cove=
red within the existing text.=C2=A0 Is it an absolute requirement from the =
YANG Doctors that this summary table be embedded as a new section of the dr=
aft (perhaps as a Section 2.7.8?)=C2=A0 I am hoping to avoid major new text=
 additions at this point.<br>
<br></blockquote><div><br></div><div>there is no need to add a new table</d=
iv><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I4) sec 2.4.6: RPC Failures<br>
&gt;=C2=A0 =C2=A0-- concern about a subscription-specific error reporting s=
ystem<br>
&gt;=C2=A0 =C2=A0 =C2=A0 must make sure protocol error reporting system is =
used correctly<br>
<br>
Yes.=C2=A0 We have done our best to integrate with the embedded NETCONF and=
 RESTCONF mechanisms.=C2=A0 There is much additional information in the tra=
nsport drafts here.<br>
<br>
&gt;=C2=A0 =C2=A0-- The error-tag value needs to be identified for each &#3=
9;reason&#39; identity<br>
<br>
This is done in the transport drafts.=C2=A0 =C2=A0E.g., see draft-ietf-netc=
onf-netconf-event-notifications Section 7<br>
<br></blockquote><div><br></div><div>I do not agree this is a good idea.</d=
iv><div>Each error identity should simply state the required &quot;error-ta=
g&quot;</div><div>that is associated with the error.=C2=A0 This is expected=
 of protocol operations</div><div>that are added to NETCONF and RESTCONF.</=
div><div><br></div><div>Both NETCONF and RESTCONF use a compatible error re=
porting data structure.</div><div>The &quot;error-tag&quot; is used in both=
 of them.=C2=A0 IMO client developers do not</div><div>want a different set=
 of error codes for the same error conditions.</div><div><br></div><div>I a=
gree that transport drafts could define their own error identities,</div><d=
iv>which would document the expected error-tag there.</div><div><br></div><=
div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0 2.=C2=A0 &quot;modify-subscription-stream-error-info&quot=
;: This MUST be returned<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with the leaf &quot;reason&quot; populated =
if an RPC error reason has not<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 been placed elsewhere within the transport =
portion of a failed<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;modify-subscription&quot; RPC respons=
e.=C2=A0 This MUST be sent if hints<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- all 3 paragraphs like this; unclear what &quot;placed e=
lsewhere&quot;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0text means; not appropriate for MUST;=C2=A0 =
<br>
<br>
Instead of &quot;placed elsewhere&quot;, how about: &quot;placed in subscri=
ption transport document defined object&quot;.=C2=A0 Would this be sufficie=
nt?<br>
<br></blockquote><div><br></div><div>No -- NETCONF and RESTCONF have well-d=
efined error reporting.</div><div>The server requirements for this error re=
porting must be documented.</div><div><br></div><div>I agree with the follo=
wing approach:</div><div>=C2=A0 - each operation MUST identify the error-ta=
gs that are expected for</div><div>=C2=A0 =C2=A0 various error conditions (=
such s is done in RFC 6241)</div><div>=C2=A0 - the server MUST return the s=
pecified error-tags. If a condition not explicitly</div><div>=C2=A0 =C2=A0 =
defined then the server MUST pick the appropriate error-tag from RFC 6241</=
div><div>=C2=A0- the server MAY include the specified rc:yang-data in the &=
lt;error-info&gt; data structure</div><div>=C2=A0- the server MUST use the =
appropriate rc:yang-data to report hints</div><div>=C2=A0- for protocols ot=
her than NETCONF and RESTCONF, they can map error-tag or ignore it,</div><d=
iv>=C2=A0 =C2=A0but the document defining the protocol operation MUST provi=
de=C2=A0</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1=
ex">
In any case, the -v21 wording results from the attempted balancing the WG r=
equests for:<br>
* merging with transport protocol error mechanisms<br>
* WG leadership guidance to provide requirements for transport documents<br=
>
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 Only 3 fields seem<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to be relevant (error-tag, error-app-tag, er=
ror-info).<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Protcol operations are expected to document =
server requirements<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0for these 3 fields, if applicable.=C2=A0 Onl=
y the error-tag<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0is mandatory-to-use.<br>
<br>
Hopefully these are covered sufficiently when this document is coupled with=
 the NETCONF and RESTCONF Notif transport documents.=C2=A0 =C2=A0For other =
transports, the tags you identify about would not be applicable.<br>
<br>
&gt;=C2=A0 =C2=A0-- the error assignments are extremely specific. e.g., it =
is not<br>
&gt;=C2=A0 =C2=A0 =C2=A0 possible for &lt;kill-subscription&gt; to fail wit=
h an<br>
&gt;=C2=A0 =C2=A0 =C2=A0 &#39;insufficient-resources&#39; error; <br>
<br>
This is the intent of the base specification, e.g., we don&#39;t believe a =
kill-subscription should fail for an insufficient-resources reason.=C2=A0 =
=C2=A0But vendors might desire more specificity.=C2=A0 As a result is certa=
inly ok for vendor implementations to add new error identities.<br>
<br></blockquote><div><br></div><div>IMO anything can fail for insufficient=
 resources. That is very implementation-specific.</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0 =C2=A0 Do not agree that scoping each<br>
&gt;=C2=A0 =C2=A0 =C2=A0 identity to specific RPC operations is a good idea=
.<br>
<br>
This level of specificity was not the author&#39;s original plans.=C2=A0 No=
r was this level of specificity part of earlier draft versions up through -=
v08.=C2=A0 =C2=A0However members of the WG made it clear that such specific=
ity was necessary for draft progression.<br>
<br>
&gt;=C2=A0 =C2=A0-- how are errors in these parameters reported for configu=
red<br>
&gt;=C2=A0 =C2=A0 =C2=A0 subscriptions when &lt;edit-config&gt; is the RPC =
that has the error?<br>
&gt;=C2=A0 =C2=A0 =C2=A0 How are the yang-data structs used for edit-config=
 or commit errors?<br>
<br>
None of these yang-data structures are specified for use with &lt;edit-conf=
ig&gt; operations.=C2=A0 =C2=A0For &lt;edit-config&gt;, the change to a con=
figured subscription would be written to the datastore if it were semantica=
lly valid.=C2=A0 =C2=A0At this point the subscription enters the [evaluate]=
 points of Figure 8.=C2=A0 Issues from this point out would be reported wit=
h a vendor specific construct such as SYSLOG.<br>
<br></blockquote><div><br></div><div>So how are hints reported for configur=
ed subscriptions?</div><div><br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
&gt; I5) sec 2.5<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 Multiple configured subscriptions MUST be supportable ove=
r<br>
&gt;=C2=A0 =C2=A0 a single transport session.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- why is this a MUST instead of SHOULD? explain harm to<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 interoperability if not supported<br>
<br>
>From the receiver side, a receiver must be able to differentiate between st=
ate notifications for different subscriptions.=C2=A0 If a publisher can&#39=
;t support more than one, it doesn&#39;t actually hurt interoperability wit=
h a receiver.=C2=A0 It just doesn&#39;t meet the minimum criteria set for f=
eature support for the capability as defined in this document.<br>
<br></blockquote><div><br></div><div>OK - the vendor can use deviations to =
change it if they want</div><div><br></div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">
&gt; I6) sec 2.5, para 3:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 On a receiver of a<br>
&gt;=C2=A0 =C2=A0 configured subscription, support for dynamic subscription=
s is<br>
&gt;=C2=A0 =C2=A0 optional except where replaying missed event records is r=
equired.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- confusing because text in 1.3:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 Note that there is no mixing-and-matching of dynam=
ic and configured<br>
&gt;=C2=A0 =C2=A0 =C2=A0 operations on a single subscription.=C2=A0 Specifi=
cally, a configured<br>
&gt;=C2=A0 =C2=A0-- clarify the receiver may have multiple subscriptions he=
re<br>
&gt;=C2=A0 =C2=A0-- not clear what &quot;except where replaying...&quot; te=
xt means<br>
<br>
How about the following tweak:<br>
<br>
&quot;On a receiver of a configured subscription, support for dynamic subsc=
riptions is optional.=C2=A0 However if replaying missed event records is re=
quired for a configured subscription, support for dynamic subscription is h=
ighly recommended.=C2=A0 In this case, a separate dynamic subscription can =
be established to retransmit the missing event records.&quot;<br>
<br></blockquote><div><br></div><div>OK</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
&gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression is evaluated i=
n the following XPath context:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0 =C2=A0The set =
of namespace declarations is the set of prefix<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and name=
space pairs for all YANG modules implemented<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by the s=
erver, where the prefix is the YANG module<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name and=
 the namespace is as defined by the<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;nam=
espace&#39; statement in the YANG module.<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- This prefix processing is not done anywhere else in NET=
CONF<br>
&gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad precedent.=C2=A0 Only=
 the XML prefixes<br>
&gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing of XML encoding.=
=C2=A0 YANG<br>
&gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to be unique, unl=
ike<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
<br>
This text was proposed by Martin as a result of the &quot;xpath expressions=
 in JSON&quot; thread last October in NETMOD.<br>
<br>
I am happy to incorporate whatever text is appropriate.=C2=A0 I was hoping =
that the suggested text was sufficient for now.=C2=A0 Kent has already inco=
rporated this as an issue for yang-next<br>
<a href=3D"https://github.com/netmod-wg/yang-next/issues/55" rel=3D"norefer=
rer" target=3D"_blank">https://github.com/netmod-wg/yang-next/issues/55</a>=
 <br>
So hopefully there is no final precedent being claimed. <br>
<br></blockquote><div><br></div><div>I do not agree that this YANG module s=
hould define a new way to encode XPath</div><div>into XML instance document=
s. This will require significant changes to server</div><div>implementation=
s.=C2=A0 YANG module prefixes are not even required to be unique</div><div>=
so the set of prefixes used by the server in XML instance documents may be =
different,</div><div>since it must be unique.</div><div><br></div><div><br>=
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0-- NMDA allows the same module to appear in multiple modul=
e-sets<br>
&gt;=C2=A0 =C2=A0 =C2=A0 and different in each datastore. This text about &=
quot;implemented by<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the server&quot; does not work for NMDA<br>
<br>
I am happy to adopt whatever text meets YANG doctor approval.=C2=A0 =C2=A0C=
an you suggest? <br>
<br></blockquote><div><br></div><div><br></div><div>Remove all text about Y=
ANG prefixes and continue using XML encoding without modification</div><div=
><br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
>
&gt; I8) leaf /subscriptions/subscription/encoding {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0when &#39;not(../transport) or derived-from(=
../transport,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;sn:configurable-encoding&quot;)&#39;;<=
br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type encoding;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- when-stmt is odd; there are no configurable-encodings s=
pecified<br>
<br>
This constraint was suggested by Martin last June in the thread:<br>
<a href=3D"https://www.ietf.org/mail-archive/web/netconf/current/msg14402.h=
tml" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mail-archive=
/web/netconf/current/msg14402.html</a> <br>
more details can be seen at:<br>
<a href=3D"https://mailarchive.ietf.org/arch/msg/netconf/wHQjZuJnh7asJvpE1n=
IovPDnESM" rel=3D"noreferrer" target=3D"_blank">https://mailarchive.ietf.or=
g/arch/msg/netconf/wHQjZuJnh7asJvpE1nIovPDnESM</a> <br>
<br></blockquote><div><br></div><div>OK</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0-- there should be an example of a configurable encoding p=
rovided<br>
<br>
I am happy to enhance the definition YANG model&#39;s identity definition o=
f &quot;configurable-encoding&quot;.=C2=A0 I could do this by adding the fo=
llowing additional text to the description: &quot;An example of a configura=
ble encoding might be a new identity such as &#39;encode-cbor&#39;.=C2=A0 S=
uch an identity could use &#39;configurable-encoding&#39; as its base.=C2=
=A0 This would allow a dynamic subscription encoded in JSON [RFC-8259] to r=
equest notification messages be encoded via CBOR [RFC-7049].=C2=A0 Further =
details for any specific configurable encoding would be explored in a trans=
port document based on this specification.&quot;=C2=A0 =C2=A0Does this meet=
 your ask?<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0-- maybe add some text noting this is not the &quot;encodi=
ng&quot; leaf in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 establish-subscription.=C2=A0 Text is confusing si=
nce not clear how<br>
&gt;=C2=A0 =C2=A0 =C2=A0 a dynamic subscription would use this leaf inside =
subscription-policy<br>
&gt;=C2=A0 =C2=A0 =C2=A0 grouping<br>
<br>
Dynamic subscription is possible.=C2=A0 This is the intent of drafts like <=
br>
draft-birkholz-yang-core-telemetry-01<br>
<br>
&gt;=C2=A0 =C2=A0-- it is only clear in the YANG tree that modify-subscript=
ion does<br>
&gt;=C2=A0 =C2=A0 =C2=A0 not allow encoding to be changed.=C2=A0 Is this wo=
rth mentioning in<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the establish-subscription/input/encoding leaf?<br=
>
<br>
I don&#39;t think the encoding leaf of establish-subscription needs to note=
 that it cannot be modified.=C2=A0 There are other objects which cannot be =
modified as well, they are not explicitly called out.=C2=A0 =C2=A0In the en=
d, the current model matches the intended behavior per the text above.=C2=
=A0 And it is only possible to request an encoding for delivered event reco=
rds be different from that of the RPC during the establish subscription.<br=
>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I9) leaf /streams/stream/description {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mandatory true;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- it is odd to see an admin-string be mandatory. should a=
dd explanation<br>
&gt;=C2=A0 =C2=A0 =C2=A0 why this is mandatory (in config false even more o=
dd)<br>
<br>
Thinking about this some, it certainly should be there.=C2=A0 But does not =
need to be mandatory.=C2=A0 So I have changed the leaf description so that =
it is no longer mandatory.<br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I10) leaf /subscriptions/subscription/configured-subscription-state<br=
>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br=
>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum concluded {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0value 3;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;A s=
ubscription is inactive as it has hit a stop time,<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0but not y=
et been removed from configuration.&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- it is also possible for stop-time to be reached but not=
 all<br>
&gt;=C2=A0 =C2=A0 =C2=A0 events delivered to all receivers on the subscript=
ion.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 Is this a different state or part of &#39;conclude=
d&#39;?<br>
<br>
I have no problem supporting your request for refinement/specificity.=C2=A0=
 As a result, I have tweaked the definition as follows...<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;A subscriptio=
n is inactive as it has hit a stop time, <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 it no longer has re=
ceivers in the &#39;receiver active&#39; or <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;receiver suspe=
nded&#39; state, but not yet been <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 removed from config=
uration.&quot;;<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I11) extension subscription-state-notification {<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This statement is not for use<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 outside of this YANG module.&quot;;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- this text should be removed. There is no value in limit=
ing<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the scope of this extension.=C2=A0 It prevents eve=
n this WG from<br>
&gt;=C2=A0 =C2=A0 =C2=A0 creating a module that uses the extension again.<b=
r>
<br>
This was the subject of significant debate in the WG.=C2=A0 The authors did=
 not want this restriction either.=C2=A0 <br>
<br>
To be allowed to progress the document, we inserted the document.=C2=A0 If =
this really is mandatory-to-remove from a YANG doctor point-of-view, what i=
s the process for quick closure on this issue between WG leadership and the=
 YANG doctors?<br>
<br></blockquote><div><br></div><div><br></div><div>The YANG language makes=
 no restrictions about exporting statements.</div><div>I guess I missed tha=
t debate so I will just say OK and wonder what problem</div><div>this is su=
pposed to solve. I guess the WG wants to give YANG Doctors more</div><div>t=
hings to check. (This is what we called a CLR in SNMP-land ;-)</div><div><b=
r></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I12)=C2=A0 =C2=A0notification replay-completed {<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification is sent to indicate =
that all of the replay<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications have been sent. It must=
 not be sent for any other<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 reason.&quot;;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- 2nd sentence should be removed. It is implied that the =
notification<br>
&gt;=C2=A0 =C2=A0 =C2=A0 is only sent for its defined purpose.=C2=A0 No oth=
er notifications<br>
&gt;=C2=A0 =C2=A0 =C2=A0 have this type of text.<br>
<br>
Done<br>
<br>
&gt; I13)=C2=A0 =C2=A0notification subscription-started {<br>
&gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<br>
&gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification indicates that a sub=
scription has started and<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications are beginning to be sen=
t. This notification shall<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 only be sent to receivers of a subscription=
; it does not<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 constitute a general-purpose notification.&=
quot;;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- 2nd sentence is confusing; all notifications are sent t=
o<br>
&gt;=C2=A0 =C2=A0 =C2=A0 receivers of a subscription. last part is redundan=
t since<br>
&gt;=C2=A0 =C2=A0 =C2=A0 the sn:subscription-state-notification extension i=
s used<br>
<br>
There is no issue with removing this second sentence completely.=C2=A0 If I=
 did that, would this address your concern?<br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; I14)=C2=A0 =C2=A0rc:yang-data modify-subscription-stream-error-info {<=
br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf filter-failure-hint {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;Information descr=
ibing where and/or why a provided filter<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 was unsupportable for =
a subscription.&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- rpc-error already allows more precise error reporting<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 It uses error-tag, error-path, error-string, and e=
rror-info extensions<br>
&gt;=C2=A0 =C2=A0 =C2=A0 to identify which parameters/conditions caused the=
 RPC to be rejected.<br>
&gt;=C2=A0 =C2=A0 =C2=A0 This error reporting will continue to be used, Not=
 sure this failure-hint<br>
&gt;=C2=A0 =C2=A0 =C2=A0 has any standards value. Perhaps real-use example =
can be added<br>
<br>
Per your thoughts on rpc-error...=C2=A0 =C2=A0For NETCONF and RESTCONF, you=
 point to error structures which historically been used with those transpor=
ts.=C2=A0 Of course we were looking to have all subscription hints supporta=
ble across transports via a single portable YANG data structure.=C2=A0 So t=
he value is that a single string object exists so to transport whatever the=
 vendor thinks would be useful as a hint in this case.=C2=A0 I.e., there ha=
s been no attempt to standardize the contents of this string.=C2=A0 If oper=
ational experiences drive a desire for such structuring, this could provide=
 the basis for a new draft building off of this starting point.=C2=A0 <br>
<br></blockquote><div><br></div><div>I guess I do not consider NETCONF and =
RESTCONF &quot;historic&quot; quite yet.</div><div>There are many implement=
ations using the rpc-error reporting with no intent</div><div>to replace it=
 with something else.</div><div><br></div><div>I was just asking for an exa=
mple, since I have no idea what an implementor</div><div>would put in this =
leaf.=C2=A0</div><div><br></div><div><br></div><div>=C2=A0</div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);padding-left:1ex">
&gt; I15)=C2=A0 notification subscription-completed {<br>
&gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<br>
&gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification is sent to indicate =
that a subscription has<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 finished passing event records, as the &#39=
;stop-time&#39; has been<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 reached.&quot;;<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- Could be more clear:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 A) replay in use and stop-time has past:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* send replay-completed<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* send subscription-completed<br>
&gt;=C2=A0 =C2=A0 =C2=A0 B) no replay and stop-time has past:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* send subscription-completed<br>
<br>
A &quot;replay-completed&quot; might have already been sent if the subscrip=
tion started with replay, but the replay concluded before the &quot;stop-ti=
me&quot;.=C2=A0 Based on this, are you good with the following clarificatio=
n sentence at the end of the current description?....<br>
<br></blockquote><div><br></div><div>OK -- no changes needed</div><div><br>=
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;If this is a replay subscription, and a &#=
39;replay-completed&#39; subscription state notification has not been sent,=
 the &#39;replay-completed&#39; must be sent prior to the &#39;subscription=
-completed&#39;.&quot; <br>
<br>
&gt; I16) leaf replay-previous-event-time {<br>
&gt; <br>
&gt;=C2=A0 =C2=A0-- It is not clear why this leaf is needed<br>
<br>
The purpose of the leaf is included in the second paragraph of the descript=
ion<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 If a receiver previously received=
 event records for this <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 configured subscription, it can c=
ompare this time to the<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 last event record previously rece=
ived.=C2=A0 If the two are not <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 the same (perhaps due to a reboot=
), then a dynamic replay <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 can be initiated to acquire any m=
issing event records.&quot;<br>
<br>
More on the leaf is also described in Section 2.5.6., paragraph 4.=C2=A0 =
=C2=A0 <br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt;=C2=A0 =C2=A0 =C2=A0 How does this relate to replay-log-creation-time<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 and replay-log-aged-time?<br>
<br>
It does not relate directly to those objects.=C2=A0 But indirectly if the r=
eplay log is empty (or timed out), then the first paragraph of the descript=
ion applies...<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;If there is at least one ev=
ent in the replay buffer prior <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 to &#39;replay-start-time&#39;, t=
his gives the time of the event <br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 generated immediately prior to th=
e &#39;replay-start-time&#39;.<br>
<br>
If it helps, I could add one more sentence to the first paragraph:<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;If there is no prior =
event in the replay buffer, this object MUST NOT be populated.&quot;<br>
<br>
But this seems like over-specifying to me. <br>
<br></blockquote><div><br></div><div>OK -- leave unchanged</div><div><br></=
div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; Nits:<br>
&gt; <br>
&gt; 2.3:<br>
&gt; This document provide for several QoS parameters<br>
&gt;=C2=A0 =C2=A0-- s/provide/provides<br>
<br>
Fixed<br>
<br>
&gt; 2.4, para 1:<br>
&gt;=C2=A0 =C2=A0-- term &#39;target&#39; usage is confusing, inconsistent =
with sec 1.2<br>
<br>
Are you ok if I tweak the text to:<br>
&quot;These RPCs have been designed extensibly so that they may be augmente=
d for use beyond event streams.&quot;<br>
<br>
&gt; reference-stmt:<br>
&gt;=C2=A0 =C2=A0 =C2=A0&quot;RFC XXXX:Customized Subscriptions to a Publis=
her&#39;s Event Streams&quot;;<br>
&gt;=C2=A0 -- Does not match document title<br>
<br>
Fixed to:<br>
&quot;RFC XXXX:Subscription to YANG Event Notifications&quot;<br>
<br>
&gt; feature configured:<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This feature indicates that configurat=
ion of subscription is<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0supported.&quot;;<br>
&gt;=C2=A0 -- s/subscription/subscriptions/<br>
<br>
Done<br>
<br>
&gt; refine &quot;target/stream/replay-start-time&quot; {<br>
&gt;=C2=A0 =C2=A0description<br>
&gt;=C2=A0 =C2=A0 =C2=A0&quot;Indicates the time that a replay using for th=
e streaming of<br>
&gt; <br>
&gt;=C2=A0 -- sentence seems mangled; needs repair<br>
<br>
Made it:<br>
&quot;replay is using&quot;<br>
<br>
Thanks again for doing a very complete YANG Doctor review.<br>
<br>
Eric<br></blockquote><div><br></div><div><br></div><div>Andy</div><div><br>=
</div><div>=C2=A0</div></div></div>

--000000000000cd1088057fabb4d3--


From nobody Fri Jan 18 11:53:26 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 62C2813136E; Fri, 18 Jan 2019 11:53:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 f2NzZep8hiHh; Fri, 18 Jan 2019 11:53:21 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F1BD313136D; Fri, 18 Jan 2019 11:53:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=26604; q=dns/txt; s=iport; t=1547841201; x=1549050801; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zZjJVRVl/ilyMNIC2OFXP9Y4uKm+S3S/YIAk+ds48sI=; b=ZU1OigwQNsCdXdLjVk26SRlJtwU9oHhxWtCgJtxB7TVoTJtFfLVBlMMb ZcDsYCedU3gmgdBh8GYqRZz1/p8WszUJASvdAaRTpap1eYW5+19BDCkMS yBLJCeOzax5/TwL+j+5QHOY8tR0zERvFPnci0NO9XlEASQKXGTq823AOj Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AKAAAqLkJc/5BdJa1aAQIHGgEBAQE?= =?us-ascii?q?BAgEBAQEHAgEBAQGBUQUBAQEBCwGBWilmgQIxg3dihziLaIINmAEUgWcLAQE?= =?us-ascii?q?jhEkCF4JFIjQJDQEDAQECAQECbRwMhUoBAQEBAgEjEUMCBQsCAQYCGgIJHQI?= =?us-ascii?q?CAjAVEAIEDg2CT0yBeQgPkC+bYYEviigFgQuLNheBQD+BEYMSgx4CgTYBEgI?= =?us-ascii?q?DgxyCNSICiVMIMAuFcwGBWIRtEoplWgkChyKDV4cYIIFmiGaBMoYWigGFH4t?= =?us-ascii?q?WAhEUgScfOIFWcBWDKIImFxODOIpTQYd4KYEFgR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,491,1539648000"; d="scan'208";a="510309000"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2019 19:53:19 +0000
Received: from XCH-RTP-012.cisco.com (xch-rtp-012.cisco.com [64.101.220.152]) by rcdn-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id x0IJrIa2026379 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 18 Jan 2019 19:53:19 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-012.cisco.com (64.101.220.152) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 18 Jan 2019 14:53:17 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 18 Jan 2019 14:53:18 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJg
Date: Fri, 18 Jan 2019 19:53:17 +0000
Message-ID: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com>
In-Reply-To: <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.152, xch-rtp-012.cisco.com
X-Outbound-Node: rcdn-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/T2tcAyk5a1HHowboXuAAXada-U4>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Jan 2019 19:53:26 -0000

SGkgQW5keSwNCg0KVGhhbmtzLiAgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVy
ZSB3YXMgYWdyZWVtZW50LiAgSSBoYXZlIHJlbW92ZWQgdGhlIGl0ZW1zIGJlbG93IHdoZXJlIHlv
dSB3ZXJlIG9rLiAgDQoNClJlbWFpbmluZyBiZWxvdyBhcmUgdGhlIG9wZW4gaXRlbXMsIHdpdGgg
cmVzcG9uc2VzLg0KDQo+ID7CoCDCoCBTaG91bGQgYmUgY2xlYXIgc29tZXdoZXJlIHRoYXQNCj4g
PsKgIMKgIHN1c3BlbmQgaXMgZm9yIENQVSBhbmQgb3RoZXIgcmVzb3VyY2VzLCBhbmQgTkFDTSBu
b3QgY29uc2lkZXJlZA0KPiA+wqAgwqAgdG8gYmUgYSByZXNvdXJjZS4NCj4gDQo+IElmIE5BQ00g
aXMgYWN0aXZlLCBpdCBuZWVkcyB0byBiZSBmb2xsb3dlZC7CoCBUaGUgdGV4dCB3ZSBoYXZlIGZv
ciBOQUNNIGlzIGluDQo+IFNlY3Rpb24gNS40LsKgIERvIHlvdSBzZWUgc29tZXRoaW5nIGVsc2Ug
c3BlY2lmaWMgdG8gc3Vic2NyaXB0aW9uIHN1c3BlbnNpb24NCj4gbmVlZGVkIGhlcmU/wqAgKE1h
eWJlIEkgYW0gbm90IGdldHRpbmcgeW91ciBwb2ludC4pDQo+IA0KPiBObyAtLSBPSyB0byBsZWF2
ZSBOQUNNIGFzIHRlcm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cw0KPiAoSXMgdGhlcmUgYW4gZXJy
b3IgaWRlbnRpdHkgZm9yIHRoaXMgZXZlbnQ/KQ0KDQpUaGUgaWRlbnRpdHkgd2hpY2ggYXBwbGll
cyBoZXJlIGlzICJzdHJlYW0tdW5hdmFpbGFibGUiLiAgVGhpcyBpcyB0aGUgc2FtZSBpZGVudGl0
eSB3aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXIgc3VmZmljaWVu
dCBwZXJtaXNzaW9ucyBpbiB0aGUgZmlyc3QgcGxhY2UuICBJIGRvbid0IGJlbGlldmUgd2Ugd291
bGQgd2FudCB0byByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hlbiBOQUNNIHdoZW4g
cGVybWlzc2lvbnMgaGF2ZSBqdXN0IGJlZW4gY2hhbmdlZC4NCg0KPiA+IEkzKSBzZWMgMi4xIHBh
cmEgNjoNCj4gPsKgIMKgIEV2ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVsaXZlcmVkIHRvIGEg
cmVjZWl2ZXIgaW4gYSBkaWZmZXJlbnQNCj4gPsKgIMKgIG9yZGVyIHRoYW4gdGhleSB3ZXJlIHBs
YWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPg0KPiA+wqAgwqAtLSBkb2VzIHRoaXMgYXBw
bHkgdG8gc3Vic2NyaXB0aW9uLXN0YXRlPyBUaGluayBub3QsIHRoZXkgYXJlIG5vdCBldmVudHMN
Cj4gPsKgIMKgIMKgcGxhY2VkIGluIGV2ZW50IHN0cmVhbS4NCj4gDQo+IEFncmVlIHRoYXQgdGhl
eSBhcmUgbm90IG9uIHRoZSBldmVudCBzdHJlYW0uwqAgU28gdGhleSBkbyBub3QgdmlvbGF0ZSB0
aGlzDQo+IHJlcXVpcmVtZW50Lg0KPiANCj4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRp
bmcgdGV4dCBpbiAiU2VjdGlvbiAyLjc6IHN1YnNjcmlwdGlvbiBzdGF0ZQ0KPiBub3RpZmljYXRp
b25zIiwgaW5jbHVkaW5nLi4uDQo+IA0KPiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChh
cyBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbikgd2l0aGluIHRoZSBzZXF1ZW5jZSBvZg0KPiBub3Rp
ZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBhIHBhcnRpY3VsYXIgcmVjZWl2ZXIuIg0KPiANCj4g
PsKgIMKgIMKgTmVlZCB0byBhbGxvdyBlbmRlZCBvciBzdXNwZW5kZWQgdG8gYmUgc2VudA0KPiA+
wqAgwqAgwqBoZWFkLW9mLWxpbmUgd2hlbmV2ZXIgc3RhdGUgY2hhbmdlcw0KPiANCj4gSSBhbSBu
b3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1vZi1saW5l
LsKgIMKgQ29uc2lkZXINCj4gdGhhdCBpbXBsZW1lbnRhdGlvbiBtaWdodCB3YW50IHRvIGxldCB0
aGUgZXhpc3RpbmcgcXVldWUgb2YgZmlsdGVyZWQgZXZlbnQNCj4gcmVjb3JkcyBiZSBzZW50IGlm
IGlzIGZpbHRlciBjb21wbGV4aXR5IGNhdXNpbmcgdGhlIENQVSBpc3N1ZS7CoCDCoFRoYXQgY291
bGQgYmUNCj4gZGlmZmVyZW50IHRoYW4gaWYgaXQgaXMgYSBiYW5kd2lkdGggaXNzdWUgZHJpdmlu
ZyB0aGUgc3VzcGVuc2lvbiwgYW5kIHlvdQ0KPiBkZWZpbml0ZWx5IHdhbnQgdGhlICdzdWJzY3Jp
cHRpb24tc3VzcGVuZGVkJyB0byBiZSBwbGFjZWQgYXQgdGhlIGhlYWQgb2YgbGluZS4NCj4gDQo+
IA0KPiBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVyIHRvIGRlY2lkZSB3aGVuIHRvIHN0b3Agc2Vu
ZGluZyBldmVudHMgb24gYQ0KPiBzdWJzY3JpcHRpb24uDQo+IE9idmlvdXNseSB0aGUgcHVibGlz
aGVyIGNhbm5vdCB3YWl0IHVudGlsIHRoZSBzdWJzY3JpcHRpb24gaXMgaWRsZS4NCj4gVGhlIHJl
YXNvbiBpdCBpcyBnZXR0aW5nIHN1c3BlbmRlZCBpcyBpdCBpcyBmYXIgZnJvbSBpZGxlDQo+IA0K
PiBTbyBhbHNvIHVwIHRvIHRoZSBwdWJsaXNoZXIgd3J0LyB3aGF0IHRvIGRvIHdpdGggYW55IGV2
ZW50cyB0aGF0IGhhdmUgbm90DQo+IGJlZW4gZGVsaXZlcmVkIHlldCBvbiBhIHN1YnNjcmlwdGlv
bi7CoCBDb3VsZCBkZWxldGUgdGhlbSBvciBzYXZlIHRoZW0gZm9yDQo+IHdoZW4gbW9yZSBiYW5k
d2lkdGggYXZhaWxhYmxlIChmb3IgZXhhbXBsZSkNCg0KQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiAg
SXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQgaGVyZT8NCg0KLi4uIA0KPiBCZXlv
bmQgdGhhdCBpdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVjaWRlIGlmIHNvbWUg
dW4tdHJhbnNtaXR0ZWQNCj4gcXVldWUgb2YgZXZlbnQgcmVjb3JkcyBzaG91bGQgYmUgZmx1c2hl
ZCBhbmQgcmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlDQo+IG1vZGlmaWNhdGlvbi7CoCBJIGRvIG5v
dCBleHBlY3QgdGhpcyB3b3VsZCBwb3B1bGFyLCBhcyBhIHJlcGxheSBzdWJzY3JpcHRpb24gY291
bGQNCj4gYWNjb21wbGlzaCB0aGlzIHNhbWUgZnVuY3Rpb25hbCBuZWVkLg0KPiANCj4gQWdyZWVk
IHRoYXQgYW4gaW1wbGVtZW50YXRpb24gY2FuIGRyb3AgYXQgYW55IHRpbWUgYW5kIGluY3JlbWVu
dCB0aGUNCj4gYXBwcm9wcmlhdGUgY291bnRlcnMuIEl0IHdpbGwgdHJ5IHRvIHRvIGRvIHRoaXMs
IGJ1dCBubyByZXF1aXJlbWVudHMgZXhjZXB0DQo+IG1heWJlIHN1YnNjcmlwdGlvbiBldmVudHMg
bGlrZSAncmVwbGF5LWNvbXBsZXRlZCcgY2Fubm90IGJlIGRyb3BwZWQNCg0KSGF2ZSBwdXQgYSBt
aW5vciB0d2VhayBpbnRvIFNlY3Rpb24gMi43Og0KDQpbb2xkXSAgc3Vic2NyaXB0aW9uIHN0YXRl
IGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBmaWx0ZXJlZCBvdXQNCg0KW25ld10gc3Vi
c2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBkcm9wcGVkIG9y
IGZpbHRlcmVkIG91dA0KDQouLi4NCj4gVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBt
aWdodCBiZSB3b3J0aCB0d2Vha2luZyBhIGNvdXBsZSB3b3JkcyB0bw0KPiBhbGxvdyBmb3IgaGVh
ZC1vZi1saW5lIHBsYWNlbWVudCBvZiAic3Vic2NyaXB0aW9uLXN1c3BlbmRlZCIuDQo+IA0KPiDC
oCDCoCJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRo
ZSBpc3N1YW5jZSBvZiB0aGlzDQo+IMKgIMKgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3Rp
ZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gDQo+IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMg
c3VnZ2VzdGVkIGNoYW5nZT8NCj4gDQo+IE5vdCBzdXJlIC0tIGl0IG5lZWRzIHRvIGJlIGNsZWFy
IHRoYXQgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCBpcyB0aGUNCj4gbGFzdCBldmVudCBzZW50IGJl
Zm9yZSBzdXNwZW5kaW5nIGFuZCBzdWJzY3JpcHRpb24tcmVzdW1lZCBpcw0KPiB0aGUgZmlyc3Qg
ZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRvIGFjdGl2ZS4NCj4g
VGhlIG5leHQgZXZlbnQgY291bGQgYWxzbyBiZSBzdWJzY3JpcHRpb24tdGVybWluYXRlZC4NCg0K
SSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhlIHRleHQuICBGb3Ig
U2VjdGlvbiAyLjcuNCBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIHRoZSBjdXJyZW50IHRleHQgaXM6
DQoNCiJObyBmdXJ0aGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50aWwgdGhlIHN1YnNj
cmlwdGlvbiByZXN1bWVzIG9yIGlzIHRlcm1pbmF0ZWQuIg0KDQpBbmQgU2VjdGlvbiAyLjcuNSBz
dWJzY3JpcHRpb24tcmVzdW1lZCBzYXlzIjoNCiJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgZ2Vu
ZXJhdGVkIGFmdGVyIHRoZSBpc3N1YW5jZSBvZiB0aGlzIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQoNCkJhc2VkIG9uIHRoZSBkaXNjdXNz
aW9uLCBJIGNhbiBtYWtlIGl0Og0KDQoiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGFyZSBhZ2Fp
biBwZXJtaXR0ZWQgdG8gYmUgc2VudCBmb2xsb3dpbmcgdGhpcyBzdWJzY3JpcHRpb24gc3RhdGUg
Y2hhbmdlIG5vdGlmaWNhdGlvbi4iDQoNCklzIHRoaXMgc3VmZmljaWVudCBmb3IgeW91Pw0KDQou
Li4NCj4gPiBJNCkgc2VjIDIuNC42OiBSUEMgRmFpbHVyZXMNCj4gPsKgIMKgLS0gY29uY2VybiBh
Ym91dCBhIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBlcnJvciByZXBvcnRpbmcgc3lzdGVtDQo+ID7C
oCDCoCDCoCBtdXN0IG1ha2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlz
IHVzZWQgY29ycmVjdGx5DQo+IA0KPiBZZXMuwqAgV2UgaGF2ZSBkb25lIG91ciBiZXN0IHRvIGlu
dGVncmF0ZSB3aXRoIHRoZSBlbWJlZGRlZCBORVRDT05GIGFuZA0KPiBSRVNUQ09ORiBtZWNoYW5p
c21zLsKgIFRoZXJlIGlzIG11Y2ggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0aGUgdHJhbnNw
b3J0DQo+IGRyYWZ0cyBoZXJlLg0KPiANCj4gPsKgIMKgLS0gVGhlIGVycm9yLXRhZyB2YWx1ZSBu
ZWVkcyB0byBiZSBpZGVudGlmaWVkIGZvciBlYWNoICdyZWFzb24nIGlkZW50aXR5DQo+IA0KPiBU
aGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMuwqAgwqBFLmcuLCBzZWUgZHJhZnQt
aWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtDQo+IG5vdGlmaWNhdGlvbnMgU2VjdGlvbiA3DQo+
IA0KPiBJIGRvIG5vdCBhZ3JlZSB0aGlzIGlzIGEgZ29vZCBpZGVhLg0KPiBFYWNoIGVycm9yIGlk
ZW50aXR5IHNob3VsZCBzaW1wbHkgc3RhdGUgdGhlIHJlcXVpcmVkICJlcnJvci10YWciDQo+IHRo
YXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci7CoCBUaGlzIGlzIGV4cGVjdGVkIG9mIHBy
b3RvY29sIG9wZXJhdGlvbnMNCj4gdGhhdCBhcmUgYWRkZWQgdG8gTkVUQ09ORiBhbmQgUkVTVENP
TkYuDQoNCkluIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMs
IHNlY3Rpb24gNywgdGhlIHJlcXVpcmVkICJlcnJvci10YWciIGlzIGlkZW50aWZpZWQgYXMgIm9w
ZXJhdGlvbi1mYWlsZWQiLiAgIElmIHdlIGluc3RlYWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIg
aW5mb3JtYXRpb24gaW4gdGhlIFlBTkcgbW9kZWwsIHRoZW4gd2UgaGF2ZSB0aWVkIHRoZSBZQU5H
IG1vZGVsIHRvIHRoZSBSRVNUQ09ORiBhbmQgTkVUQ09ORiB0cmFuc3BvcnRzLg0KDQo+IEJvdGgg
TkVUQ09ORiBhbmQgUkVTVENPTkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciByZXBvcnRpbmcgZGF0
YSBzdHJ1Y3R1cmUuDQo+IFRoZSAiZXJyb3ItdGFnIiBpcyB1c2VkIGluIGJvdGggb2YgdGhlbS7C
oCBJTU8gY2xpZW50IGRldmVsb3BlcnMgZG8gbm90DQo+IHdhbnQgYSBkaWZmZXJlbnQgc2V0IG9m
IGVycm9yIGNvZGVzIGZvciB0aGUgc2FtZSBlcnJvciBjb25kaXRpb25zLg0KDQpkcmFmdC1pZXRm
LW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxzbyByZXF1aXJlcyBhbiAiZXJy
b3ItdGFnIiBub2RlIG9mICJvcGVyYXRpb24tZmFpbGVkIi4gIFNvIHdlIHVzZWQgdGhlIHRyYW5z
cG9ydCBkcmFmdHMgcmF0aGVyIHRoYW4gdGhlIFlBTkcgbW9kZWwgdG8gc3VwcG9ydCB0aGUgc2Ft
ZSBlcnJvciBjb2RlcyBmb3IgdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCiANCj4gSSBhZ3Jl
ZSB0aGF0IHRyYW5zcG9ydCBkcmFmdHMgY291bGQgZGVmaW5lIHRoZWlyIG93biBlcnJvciBpZGVu
dGl0aWVzLA0KPiB3aGljaCB3b3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgZXJyb3ItdGFnIHRo
ZXJlLg0KPiANCj4gDQo+ID7CoCDCoCAyLsKgICJtb2RpZnktc3Vic2NyaXB0aW9uLXN0cmVhbS1l
cnJvci1pbmZvIjogVGhpcyBNVVNUIGJlIHJldHVybmVkDQo+ID7CoCDCoCDCoCDCoCB3aXRoIHRo
ZSBsZWFmICJyZWFzb24iIHBvcHVsYXRlZCBpZiBhbiBSUEMgZXJyb3IgcmVhc29uIGhhcyBub3QN
Cj4gPsKgIMKgIMKgIMKgIGJlZW4gcGxhY2VkIGVsc2V3aGVyZSB3aXRoaW4gdGhlIHRyYW5zcG9y
dCBwb3J0aW9uIG9mIGEgZmFpbGVkDQo+ID7CoCDCoCDCoCDCoCAibW9kaWZ5LXN1YnNjcmlwdGlv
biIgUlBDIHJlc3BvbnNlLsKgIFRoaXMgTVVTVCBiZSBzZW50IGlmIGhpbnRzDQo+ID4NCj4gPsKg
IMKgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAicGxhY2VkIGVs
c2V3aGVyZSINCj4gPsKgIMKgIMKgIMKgdGV4dCBtZWFuczsgbm90IGFwcHJvcHJpYXRlIGZvciBN
VVNUOw0KPiANCj4gSW5zdGVhZCBvZiAicGxhY2VkIGVsc2V3aGVyZSIsIGhvdyBhYm91dDogInBs
YWNlZCBpbiBzdWJzY3JpcHRpb24gdHJhbnNwb3J0DQo+IGRvY3VtZW50IGRlZmluZWQgb2JqZWN0
Ii7CoCBXb3VsZCB0aGlzIGJlIHN1ZmZpY2llbnQ/DQo+IA0KPiBObyAtLSBORVRDT05GIGFuZCBS
RVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciByZXBvcnRpbmcuDQo+IFRoZSBzZXJ2ZXIg
cmVxdWlyZW1lbnRzIGZvciB0aGlzIGVycm9yIHJlcG9ydGluZyBtdXN0IGJlIGRvY3VtZW50ZWQu
DQo+DQo+IEkgYWdyZWUgd2l0aCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoOg0KPiDCoCAtIGVhY2gg
b3BlcmF0aW9uIE1VU1QgaWRlbnRpZnkgdGhlIGVycm9yLXRhZ3MgdGhhdCBhcmUgZXhwZWN0ZWQg
Zm9yDQo+IMKgIMKgIHZhcmlvdXMgZXJyb3IgY29uZGl0aW9ucyAoc3VjaCBzIGlzIGRvbmUgaW4g
UkZDIDYyNDEpDQo+IMKgIC0gdGhlIHNlcnZlciBNVVNUIHJldHVybiB0aGUgc3BlY2lmaWVkIGVy
cm9yLXRhZ3MuIElmIGEgY29uZGl0aW9uIG5vdCBleHBsaWNpdGx5DQo+IMKgIMKgIGRlZmluZWQg
dGhlbiB0aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlhdGUgZXJyb3ItdGFnIGZyb20g
UkZDIDYyNDENCj4gwqAtIHRoZSBzZXJ2ZXIgTUFZIGluY2x1ZGUgdGhlIHNwZWNpZmllZCByYzp5
YW5nLWRhdGEgaW4gdGhlIDxlcnJvci1pbmZvPiBkYXRhDQo+IHN0cnVjdHVyZQ0KPiDCoC0gdGhl
IHNlcnZlciBNVVNUIHVzZSB0aGUgYXBwcm9wcmlhdGUgcmM6eWFuZy1kYXRhIHRvIHJlcG9ydCBo
aW50cw0KPiDCoC0gZm9yIHByb3RvY29scyBvdGhlciB0aGFuIE5FVENPTkYgYW5kIFJFU1RDT05G
LCB0aGV5IGNhbiBtYXAgZXJyb3ItdGFnIG9yDQo+IGlnbm9yZSBpdCwNCj4gwqAgwqBidXQgdGhl
IGRvY3VtZW50IGRlZmluaW5nIHRoZSBwcm90b2NvbCBvcGVyYXRpb24gTVVTVCBwcm92aWRlDQoN
CkZ1bmN0aW9uYWxseSwgZXZlcnl0aGluZyB5b3UgYXNrIGZvciBpcyBmdWxseSBjb3ZlcmVkIHdo
ZW4geW91IGluY2x1ZGUgY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQt
bm90aWZpY2F0aW9ucyAoc2VjdGlvbiA3KSBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25m
LW5vdGlmIChzZWN0aW9uIDMuMykuDQoNCk15IHJlYWQgb2YgdGhlIGlzc3VlIGlzIHRoYXQgeW91
IGJlbGlldmUgImVycm9yLXRhZyIgbXVzdCBiZSBzcGVjaWZpZWQgaW4gdGhlIFlBTkcgbW9kZWwu
ICBJIGJlbGlldmUgdGhhdCAiZXJyb3ItdGFnIiBzaG91bGRuJ3QgYmUgaW4gdGhlIFlBTkcgbW9k
ZWwgYmVjYXVzZSB0aGF0IHdvdWxkIHRpZSB0aGUgbW9kZWwgdG8gYSB0cmFuc3BvcnQgdHlwZS4N
Cg0KQW55IHRob3VnaHRzIG9uIGhvdyB3ZSBtaWdodCBjbG9zZSB0aGlzPyAgICBJZiBhYnNvbHV0
ZWx5IHJlcXVpcmVkIEkgY291bGQgcGxhY2UgYSBuZXcgY29tbWVudCBsaW5lIGluIHRoZSBZQU5H
IG1vZGVsIHVuZGVyDQovKiBJZGVudGl0aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlvbiBlcnJv
cnMgKi8NCg0KVGhlIGNvbW1lbnQgd291bGQgYmUgc29tZXRoaW5nIGxpa2U6DQovKiBXaGVuIHVz
ZWQgd2l0aCBORVRDT05GIGFuZCBSRVNUQ09ORiBSUENzOg0KICAgICJlcnJvci10eXBlIiBub2Rl
IHRvIGJlIHVzZWQgaXMgImFwcGxpY2F0aW9uIg0KICAgICAiZXJyb3ItdGFnIiBtdXN0IGJlICJv
cGVyYXRpb24tZmFpbGVkIi4gICovDQoNClRoaXMgc2VlbXMgaW5jb25ncnVvdXMuICBKdXN0IHRo
cm93aW5nIGl0IG91dCBhcyBhIHN1Z2dlc3Rpb24uDQoNCj4gSW4gYW55IGNhc2UsIHRoZSAtdjIx
IHdvcmRpbmcgcmVzdWx0cyBmcm9tIHRoZSBhdHRlbXB0ZWQgYmFsYW5jaW5nIHRoZSBXRw0KPiBy
ZXF1ZXN0cyBmb3I6DQo+ICogbWVyZ2luZyB3aXRoIHRyYW5zcG9ydCBwcm90b2NvbCBlcnJvciBt
ZWNoYW5pc21zDQo+ICogV0cgbGVhZGVyc2hpcCBndWlkYW5jZSB0byBwcm92aWRlIHJlcXVpcmVt
ZW50cyBmb3IgdHJhbnNwb3J0IGRvY3VtZW50cw0KPiANCj4gPsKgIMKgIMKgIE9ubHkgMyBmaWVs
ZHMgc2VlbQ0KPiA+wqAgwqAgwqAgwqB0byBiZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJvci1h
cHAtdGFnLCBlcnJvci1pbmZvKS4NCj4gPsKgIMKgIMKgIMKgUHJvdGNvbCBvcGVyYXRpb25zIGFy
ZSBleHBlY3RlZCB0byBkb2N1bWVudCBzZXJ2ZXIgcmVxdWlyZW1lbnRzDQo+ID7CoCDCoCDCoCDC
oGZvciB0aGVzZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS7CoCBPbmx5IHRoZSBlcnJvci10YWcN
Cj4gPsKgIMKgIMKgIMKgaXMgbWFuZGF0b3J5LXRvLXVzZS4NCj4gDQo+IEhvcGVmdWxseSB0aGVz
ZSBhcmUgY292ZXJlZCBzdWZmaWNpZW50bHkgd2hlbiB0aGlzIGRvY3VtZW50IGlzIGNvdXBsZWQg
d2l0aA0KPiB0aGUgTkVUQ09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3VtZW50
cy7CoCDCoEZvciBvdGhlciB0cmFuc3BvcnRzLA0KPiB0aGUgdGFncyB5b3UgaWRlbnRpZnkgYWJv
dXQgd291bGQgbm90IGJlIGFwcGxpY2FibGUuDQo+IA0KPiA+wqAgwqAtLSB0aGUgZXJyb3IgYXNz
aWdubWVudHMgYXJlIGV4dHJlbWVseSBzcGVjaWZpYy4gZS5nLiwgaXQgaXMgbm90DQo+ID7CoCDC
oCDCoCBwb3NzaWJsZSBmb3IgPGtpbGwtc3Vic2NyaXB0aW9uPiB0byBmYWlsIHdpdGggYW4NCj4g
PsKgIMKgIMKgICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gDQo+IFRoaXMgaXMg
dGhlIGludGVudCBvZiB0aGUgYmFzZSBzcGVjaWZpY2F0aW9uLCBlLmcuLCB3ZSBkb24ndCBiZWxp
ZXZlIGEga2lsbC0NCj4gc3Vic2NyaXB0aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2ll
bnQtcmVzb3VyY2VzIHJlYXNvbi7CoCDCoEJ1dCB2ZW5kb3JzIG1pZ2h0DQo+IGRlc2lyZSBtb3Jl
IHNwZWNpZmljaXR5LsKgIEFzIGEgcmVzdWx0IGlzIGNlcnRhaW5seSBvayBmb3IgdmVuZG9yIGlt
cGxlbWVudGF0aW9ucw0KPiB0byBhZGQgbmV3IGVycm9yIGlkZW50aXRpZXMuDQo+IA0KPiBJTU8g
YW55dGhpbmcgY2FuIGZhaWwgZm9yIGluc3VmZmljaWVudCByZXNvdXJjZXMuIFRoYXQgaXMgdmVy
eSBpbXBsZW1lbnRhdGlvbi0NCj4gc3BlY2lmaWMuDQoNCkluc3RlYWQgb2YgaW1wbGVtZW50YXRp
b24gc3BlY2lmaWMgSSB3b3VsZCBjYWxsIGl0IGFwcGxpY2F0aW9uIHNwZWNpZmljLiAgIFJpZ2h0
IG5vdyB3ZSBkb24ndCBoYXZlIGEgY2F0Y2gtYWxsIGVycm9yLWlkZW50aXR5IG9mICdvdGhlci1l
cnJvcicuICBXZSBwcmVmZXJyZWQgdGhhdCBlcnJvciBjb25kaXRpb25zIGJleW9uZCB0aGUgY3Vy
cmVudCBvbmVzIGxpc3RlZCBjb3VsZCBiZSBpbmNsdWRlZCBieSB2ZW5kb3JzIGFzIG5lZWRlZC4g
IEZ1cnRoZXIgZGVwbG95bWVudCBleHBlcmllbmNlIGNvdWxkIHJlc3VsdCBpbiBuZXcgZXJyb3Ig
aWRlbnRpdGllcyBzdXJmYWNpbmcgZm9yIHN0YW5kYXJkaXphdGlvbiBzaG91bGQgdGhpcyBkcmFm
dCBjYXRjaCBvbi4NCg0KPiA+wqAgwqAgwqAgRG8gbm90IGFncmVlIHRoYXQgc2NvcGluZyBlYWNo
DQo+ID7CoCDCoCDCoCBpZGVudGl0eSB0byBzcGVjaWZpYyBSUEMgb3BlcmF0aW9ucyBpcyBhIGdv
b2QgaWRlYS4NCj4gDQo+IFRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkgd2FzIG5vdCB0aGUgYXV0
aG9yJ3Mgb3JpZ2luYWwgcGxhbnMuwqAgTm9yIHdhcyB0aGlzIGxldmVsIG9mDQo+IHNwZWNpZmlj
aXR5IHBhcnQgb2YgZWFybGllciBkcmFmdCB2ZXJzaW9ucyB1cCB0aHJvdWdoIC12MDguwqAgwqBI
b3dldmVyIG1lbWJlcnMgb2YNCj4gdGhlIFdHIG1hZGUgaXQgY2xlYXIgdGhhdCBzdWNoIHNwZWNp
ZmljaXR5IHdhcyBuZWNlc3NhcnkgZm9yIGRyYWZ0IHByb2dyZXNzaW9uLg0KPiANCj4gPsKgIMKg
LS0gaG93IGFyZSBlcnJvcnMgaW4gdGhlc2UgcGFyYW1ldGVycyByZXBvcnRlZCBmb3IgY29uZmln
dXJlZA0KPiA+wqAgwqAgwqAgc3Vic2NyaXB0aW9ucyB3aGVuIDxlZGl0LWNvbmZpZz4gaXMgdGhl
IFJQQyB0aGF0IGhhcyB0aGUgZXJyb3I/DQo+ID7CoCDCoCDCoCBIb3cgYXJlIHRoZSB5YW5nLWRh
dGEgc3RydWN0cyB1c2VkIGZvciBlZGl0LWNvbmZpZyBvciBjb21taXQgZXJyb3JzPw0KPiANCj4g
Tm9uZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUgc3BlY2lmaWVkIGZvciB1c2Ug
d2l0aCA8ZWRpdC1jb25maWc+DQo+IG9wZXJhdGlvbnMuwqAgwqBGb3IgPGVkaXQtY29uZmlnPiwg
dGhlIGNoYW5nZSB0byBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uIHdvdWxkDQo+IGJlIHdyaXR0
ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZiBpdCB3ZXJlIHNlbWFudGljYWxseSB2YWxpZC7CoCDCoEF0
IHRoaXMgcG9pbnQgdGhlDQo+IHN1YnNjcmlwdGlvbiBlbnRlcnMgdGhlIFtldmFsdWF0ZV0gcG9p
bnRzIG9mIEZpZ3VyZSA4LsKgIElzc3VlcyBmcm9tIHRoaXMgcG9pbnQgb3V0DQo+IHdvdWxkIGJl
IHJlcG9ydGVkIHdpdGggYSB2ZW5kb3Igc3BlY2lmaWMgY29uc3RydWN0IHN1Y2ggYXMgU1lTTE9H
Lg0KPiANCj4gU28gaG93IGFyZSBoaW50cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZCBzdWJzY3Jp
cHRpb25zPw0KDQpUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJl
cXVpcmVzIHRoaXMuICAgQW4gaW1wbGVtZW50YXRpb24gY291bGQgY2hvb3NlIHRvIHBsYWNlIHRo
ZXNlIGluIHNvbWUgZm9ybSBvZiBTWVNMT0cuDQouLi4NCj4gPiBJNikgc2VjIDIuNSwgcGFyYSAz
Og0KPiA+DQo+ID7CoCDCoCBPbiBhIHJlY2VpdmVyIG9mIGENCj4gPsKgIMKgIGNvbmZpZ3VyZWQg
c3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMgaXMNCj4gPsKg
IMKgIG9wdGlvbmFsIGV4Y2VwdCB3aGVyZSByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMg
aXMgcmVxdWlyZWQuDQo+ID4NCj4gPsKgIMKgLS0gY29uZnVzaW5nIGJlY2F1c2UgdGV4dCBpbiAx
LjM6DQo+ID7CoCDCoCDCoCBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gbWl4aW5nLWFuZC1tYXRjaGlu
ZyBvZiBkeW5hbWljIGFuZCBjb25maWd1cmVkDQo+ID7CoCDCoCDCoCBvcGVyYXRpb25zIG9uIGEg
c2luZ2xlIHN1YnNjcmlwdGlvbi7CoCBTcGVjaWZpY2FsbHksIGEgY29uZmlndXJlZA0KPiA+wqAg
wqAtLSBjbGFyaWZ5IHRoZSByZWNlaXZlciBtYXkgaGF2ZSBtdWx0aXBsZSBzdWJzY3JpcHRpb25z
IGhlcmUNCj4gPsKgIMKgLS0gbm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcu
Li4iIHRleHQgbWVhbnMNCj4gDQo+IEhvdyBhYm91dCB0aGUgZm9sbG93aW5nIHR3ZWFrOg0KPiAN
Cj4gIk9uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBm
b3IgZHluYW1pYyBzdWJzY3JpcHRpb25zDQo+IGlzIG9wdGlvbmFsLsKgIEhvd2V2ZXIgaWYgcmVw
bGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVkIGZvciBhDQo+IGNvbmZpZ3Vy
ZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbiBpcyBoaWdo
bHkNCj4gcmVjb21tZW5kZWQuwqAgSW4gdGhpcyBjYXNlLCBhIHNlcGFyYXRlIGR5bmFtaWMgc3Vi
c2NyaXB0aW9uIGNhbiBiZSBlc3RhYmxpc2hlZA0KPiB0byByZXRyYW5zbWl0IHRoZSBtaXNzaW5n
IGV2ZW50IHJlY29yZHMuIg0KPiANCj4gT0sNCg0KQ2hhbmdlIG1hZGUuDQoNCj4gPiBJNykgbGVh
ZiBzdHJlYW0teHBhdGgtZmlsdGVyOiBbbXVsdGlwbGUgdXNlc10NCj4gPg0KPiA+wqAgwqAgwqAg
wqAgwqAgwqAgVGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBh
dGggY29udGV4dDoNCj4gPg0KPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgb8KgIMKgVGhlIHNldCBv
ZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGlzIHRoZSBzZXQgb2YgcHJlZml4DQo+ID7CoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCBhbmQgbmFtZXNwYWNlIHBhaXJzIGZvciBhbGwgWUFORyBtb2R1
bGVzIGltcGxlbWVudGVkDQo+ID7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBieSB0aGUgc2Vy
dmVyLCB3aGVyZSB0aGUgcHJlZml4IGlzIHRoZSBZQU5HIG1vZHVsZQ0KPiA+wqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgbmFtZSBhbmQgdGhlIG5hbWVzcGFjZSBpcyBhcyBkZWZpbmVkIGJ5IHRo
ZQ0KPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgJ25hbWVzcGFjZScgc3RhdGVtZW50IGlu
IHRoZSBZQU5HIG1vZHVsZS4NCj4gPg0KPiA+wqAgwqAtLSBUaGlzIHByZWZpeCBwcm9jZXNzaW5n
IGlzIG5vdCBkb25lIGFueXdoZXJlIGVsc2UgaW4gTkVUQ09ORg0KPiA+wqAgwqAgwqAgb3IgUkVT
VENPTkYuwqAgSU1PIGEgYmFkIHByZWNlZGVudC7CoCBPbmx5IHRoZSBYTUwgcHJlZml4ZXMNCj4g
PsKgIMKgIMKgIHNob3VsZCBiZSByZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBvZiBYTUwgZW5jb2Rp
bmcuwqAgWUFORw0KPiA+wqAgwqAgwqAgbW9kdWxlIHByZWZpeGVzIGFyZSBub3QgcmVxdWlyZWQg
dG8gYmUgdW5pcXVlLCB1bmxpa2UNCj4gPsKgIMKgIMKgIHRoZSBwcmVmaXggbWFwcGluZ3MgaW4g
WE1MDQo+IA0KPiBUaGlzIHRleHQgd2FzIHByb3Bvc2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBv
ZiB0aGUgInhwYXRoIGV4cHJlc3Npb25zIGluIEpTT04iDQo+IHRocmVhZCBsYXN0IE9jdG9iZXIg
aW4gTkVUTU9ELg0KPiANCj4gSSBhbSBoYXBweSB0byBpbmNvcnBvcmF0ZSB3aGF0ZXZlciB0ZXh0
IGlzIGFwcHJvcHJpYXRlLsKgIEkgd2FzIGhvcGluZyB0aGF0IHRoZQ0KPiBzdWdnZXN0ZWQgdGV4
dCB3YXMgc3VmZmljaWVudCBmb3Igbm93LsKgIEtlbnQgaGFzIGFscmVhZHkgaW5jb3Jwb3JhdGVk
IHRoaXMgYXMgYW4NCj4gaXNzdWUgZm9yIHlhbmctbmV4dA0KPiBodHRwczovL2dpdGh1Yi5jb20v
bmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUNCj4gU28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5v
IGZpbmFsIHByZWNlZGVudCBiZWluZyBjbGFpbWVkLg0KPiANCj4gSSBkbyBub3QgYWdyZWUgdGhh
dCB0aGlzIFlBTkcgbW9kdWxlIHNob3VsZCBkZWZpbmUgYSBuZXcgd2F5IHRvIGVuY29kZSBYUGF0
aA0KPiBpbnRvIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMuIFRoaXMgd2lsbCByZXF1aXJlIHNpZ25p
ZmljYW50IGNoYW5nZXMgdG8gc2VydmVyDQo+IGltcGxlbWVudGF0aW9ucy7CoCBZQU5HIG1vZHVs
ZSBwcmVmaXhlcyBhcmUgbm90IGV2ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVlDQo+IHNvIHRoZSBz
ZXQgb2YgcHJlZml4ZXMgdXNlZCBieSB0aGUgc2VydmVyIGluIFhNTCBpbnN0YW5jZSBkb2N1bWVu
dHMgbWF5IGJlDQo+IGRpZmZlcmVudCwNCj4gc2luY2UgaXQgbXVzdCBiZSB1bmlxdWUuDQoNClNl
ZSBuZXh0IG5vdGUNCg0KPiA+wqAgwqAtLSBOTURBIGFsbG93cyB0aGUgc2FtZSBtb2R1bGUgdG8g
YXBwZWFyIGluIG11bHRpcGxlIG1vZHVsZS1zZXRzDQo+ID7CoCDCoCDCoCBhbmQgZGlmZmVyZW50
IGluIGVhY2ggZGF0YXN0b3JlLiBUaGlzIHRleHQgYWJvdXQgImltcGxlbWVudGVkIGJ5DQo+ID7C
oCDCoCDCoCB0aGUgc2VydmVyIiBkb2VzIG5vdCB3b3JrIGZvciBOTURBDQo+IA0KPiBJIGFtIGhh
cHB5IHRvIGFkb3B0IHdoYXRldmVyIHRleHQgbWVldHMgWUFORyBkb2N0b3IgYXBwcm92YWwuwqAg
wqBDYW4geW91DQo+IHN1Z2dlc3Q/DQo+IA0KPiANCj4gUmVtb3ZlIGFsbCB0ZXh0IGFib3V0IFlB
TkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nIFhNTCBlbmNvZGluZyB3aXRob3V0DQo+IG1v
ZGlmaWNhdGlvbg0KDQpBcyBhIGRpZmZlcmVudCBZQU5HIGRvY3RvciBoYXMgcmVxdWlyZWQgdGhl
IGN1cnJlbnQgdGV4dCBtb2RpZmljYXRpb24sIEkgYmVsaWV2ZSB0aGlzIGlzIGEgYmxvY2tlci4g
IFdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIFlBTkcgbW9kZWwgcmV2aWV3cyBpbiBzdWNoIGEgY2Fz
ZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuICBBbnkgc3VnZ2VzdGlvbnMg
b24gbmV4dCBzdGVwcz8NCg0KLi4uDQo+ID7CoCDCoC0tIHRoZXJlIHNob3VsZCBiZSBhbiBleGFt
cGxlIG9mIGEgY29uZmlndXJhYmxlIGVuY29kaW5nIHByb3ZpZGVkDQo+IA0KPiBJIGFtIGhhcHB5
IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24gWUFORyBtb2RlbCdzIGlkZW50aXR5IGRlZmluaXRp
b24gb2YNCj4gImNvbmZpZ3VyYWJsZS1lbmNvZGluZyIuwqAgSSBjb3VsZCBkbyB0aGlzIGJ5IGFk
ZGluZyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgdGV4dA0KPiB0byB0aGUgZGVzY3JpcHRpb246
ICJBbiBleGFtcGxlIG9mIGEgY29uZmlndXJhYmxlIGVuY29kaW5nIG1pZ2h0IGJlIGEgbmV3DQo+
IGlkZW50aXR5IHN1Y2ggYXMgJ2VuY29kZS1jYm9yJy7CoCBTdWNoIGFuIGlkZW50aXR5IGNvdWxk
IHVzZSAnY29uZmlndXJhYmxlLQ0KPiBlbmNvZGluZycgYXMgaXRzIGJhc2UuwqAgVGhpcyB3b3Vs
ZCBhbGxvdyBhIGR5bmFtaWMgc3Vic2NyaXB0aW9uIGVuY29kZWQgaW4gSlNPTg0KPiBbUkZDLTgy
NTldIHRvIHJlcXVlc3Qgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGJlIGVuY29kZWQgdmlhIENCT1Ig
W1JGQy0NCj4gNzA0OV0uwqAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkgc3BlY2lmaWMgY29uZmln
dXJhYmxlIGVuY29kaW5nIHdvdWxkIGJlIGV4cGxvcmVkDQo+IGluIGEgdHJhbnNwb3J0IGRvY3Vt
ZW50IGJhc2VkIG9uIHRoaXMgc3BlY2lmaWNhdGlvbi4iwqAgwqBEb2VzIHRoaXMgbWVldCB5b3Vy
IGFzaz8NCj4gDQo+IA0KPiBPSw0KDQpBZGRlZA0KDQo+ID4gSTExKSBleHRlbnNpb24gc3Vic2Ny
aXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbiB7DQo+ID4NCj4gPsKgIMKgIMKgIMKgIFRoaXMgc3Rh
dGVtZW50IGlzIG5vdCBmb3IgdXNlDQo+ID7CoCDCoCDCoCDCoCBvdXRzaWRlIG9mIHRoaXMgWUFO
RyBtb2R1bGUuIjsNCj4gPg0KPiA+wqAgwqAtLSB0aGlzIHRleHQgc2hvdWxkIGJlIHJlbW92ZWQu
IFRoZXJlIGlzIG5vIHZhbHVlIGluIGxpbWl0aW5nDQo+ID7CoCDCoCDCoCB0aGUgc2NvcGUgb2Yg
dGhpcyBleHRlbnNpb24uwqAgSXQgcHJldmVudHMgZXZlbiB0aGlzIFdHIGZyb20NCj4gPsKgIMKg
IMKgIGNyZWF0aW5nIGEgbW9kdWxlIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIGFnYWluLg0KPiAN
Cj4gVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRlIGluIHRoZSBXRy7C
oCBUaGUgYXV0aG9ycyBkaWQgbm90IHdhbnQNCj4gdGhpcyByZXN0cmljdGlvbiBlaXRoZXIuDQo+
IA0KPiBUbyBiZSBhbGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5zZXJ0ZWQg
dGhlIGRvY3VtZW50LsKgIElmIHRoaXMNCj4gcmVhbGx5IGlzIG1hbmRhdG9yeS10by1yZW1vdmUg
ZnJvbSBhIFlBTkcgZG9jdG9yIHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlDQo+IHByb2Nlc3Mg
Zm9yIHF1aWNrIGNsb3N1cmUgb24gdGhpcyBpc3N1ZSBiZXR3ZWVuIFdHIGxlYWRlcnNoaXAgYW5k
IHRoZSBZQU5HDQo+IGRvY3RvcnM/DQo+IA0KPiANCj4gVGhlIFlBTkcgbGFuZ3VhZ2UgbWFrZXMg
bm8gcmVzdHJpY3Rpb25zIGFib3V0IGV4cG9ydGluZyBzdGF0ZW1lbnRzLg0KPiBJIGd1ZXNzIEkg
bWlzc2VkIHRoYXQgZGViYXRlIHNvIEkgd2lsbCBqdXN0IHNheSBPSyBhbmQgd29uZGVyIHdoYXQg
cHJvYmxlbQ0KPiB0aGlzIGlzIHN1cHBvc2VkIHRvIHNvbHZlLiBJIGd1ZXNzIHRoZSBXRyB3YW50
cyB0byBnaXZlIFlBTkcgRG9jdG9ycyBtb3JlDQo+IHRoaW5ncyB0byBjaGVjay4gKFRoaXMgaXMg
d2hhdCB3ZSBjYWxsZWQgYSBDTFIgaW4gU05NUC1sYW5kIDstKQ0KDQpUaGFua3MuICBObyBhY3Rp
b24gdGFrZW4uDQoNCj4gPiBJMTMpwqAgwqBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0
ZWQgew0KPiA+wqAgwqAgwqBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uOw0KPiA+
wqAgwqAgwqBpZi1mZWF0dXJlICJjb25maWd1cmVkIjsNCj4gPsKgIMKgIMKgZGVzY3JpcHRpb24N
Cj4gPsKgIMKgIMKgIMKgIlRoaXMgbm90aWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IGEgc3Vic2Ny
aXB0aW9uIGhhcyBzdGFydGVkIGFuZA0KPiA+wqAgwqAgwqAgwqAgwqBub3RpZmljYXRpb25zIGFy
ZSBiZWdpbm5pbmcgdG8gYmUgc2VudC4gVGhpcyBub3RpZmljYXRpb24gc2hhbGwNCj4gPsKgIMKg
IMKgIMKgIG9ubHkgYmUgc2VudCB0byByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb247IGl0IGRv
ZXMgbm90DQo+ID7CoCDCoCDCoCDCoCBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJwb3NlIG5vdGlm
aWNhdGlvbi4iOw0KPiA+DQo+ID7CoCDCoC0tIDJuZCBzZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFs
bCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvDQo+ID7CoCDCoCDCoCByZWNlaXZlcnMgb2YgYSBz
dWJzY3JpcHRpb24uIGxhc3QgcGFydCBpcyByZWR1bmRhbnQgc2luY2UNCj4gPsKgIMKgIMKgIHRo
ZSBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uIGV4dGVuc2lvbiBpcyB1c2VkDQo+
IA0KPiBUaGVyZSBpcyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNlbnRlbmNl
IGNvbXBsZXRlbHkuwqAgSWYgSSBkaWQgdGhhdCwNCj4gd291bGQgdGhpcyBhZGRyZXNzIHlvdXIg
Y29uY2Vybj8NCj4gDQo+IE9LDQoNCkRvbmUNCg0KPiA+IEkxNCnCoCDCoHJjOnlhbmctZGF0YSBt
b2RpZnktc3Vic2NyaXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvIHsNCj4gPg0KPiA+wqAgwqAgwqAg
wqBsZWFmIGZpbHRlci1mYWlsdXJlLWhpbnQgew0KPiA+wqAgwqAgwqAgwqAgwqB0eXBlIHN0cmlu
ZzsNCj4gPsKgIMKgIMKgIMKgIMKgIMKgZGVzY3JpcHRpb24NCj4gPsKgIMKgIMKgIMKgIMKgIMKg
IMKgIkluZm9ybWF0aW9uIGRlc2NyaWJpbmcgd2hlcmUgYW5kL29yIHdoeSBhIHByb3ZpZGVkIGZp
bHRlcg0KPiA+wqAgwqAgwqAgwqAgwqAgwqAgwqAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vi
c2NyaXB0aW9uLiI7DQo+ID7CoCDCoCDCoCDCoH0NCj4gPg0KPiA+wqAgwqAtLSBycGMtZXJyb3Ig
YWxyZWFkeSBhbGxvd3MgbW9yZSBwcmVjaXNlIGVycm9yIHJlcG9ydGluZw0KPiA+wqAgwqAgwqAg
SXQgdXNlcyBlcnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kIGVycm9yLWlu
Zm8gZXh0ZW5zaW9ucw0KPiA+wqAgwqAgwqAgdG8gaWRlbnRpZnkgd2hpY2ggcGFyYW1ldGVycy9j
b25kaXRpb25zIGNhdXNlZCB0aGUgUlBDIHRvIGJlIHJlamVjdGVkLg0KPiA+wqAgwqAgwqAgVGhp
cyBlcnJvciByZXBvcnRpbmcgd2lsbCBjb250aW51ZSB0byBiZSB1c2VkLCBOb3Qgc3VyZSB0aGlz
IGZhaWx1cmUtaGludA0KPiA+wqAgwqAgwqAgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBlcmhh
cHMgcmVhbC11c2UgZXhhbXBsZSBjYW4gYmUgYWRkZWQNCj4gDQo+IFBlciB5b3VyIHRob3VnaHRz
IG9uIHJwYy1lcnJvci4uLsKgIMKgRm9yIE5FVENPTkYgYW5kIFJFU1RDT05GLCB5b3UgcG9pbnQg
dG8NCj4gZXJyb3Igc3RydWN0dXJlcyB3aGljaCBoaXN0b3JpY2FsbHkgYmVlbiB1c2VkIHdpdGgg
dGhvc2UgdHJhbnNwb3J0cy7CoCBPZiBjb3Vyc2UNCj4gd2Ugd2VyZSBsb29raW5nIHRvIGhhdmUg
YWxsIHN1YnNjcmlwdGlvbiBoaW50cyBzdXBwb3J0YWJsZSBhY3Jvc3MgdHJhbnNwb3J0cyB2aWEN
Cj4gYSBzaW5nbGUgcG9ydGFibGUgWUFORyBkYXRhIHN0cnVjdHVyZS7CoCBTbyB0aGUgdmFsdWUg
aXMgdGhhdCBhIHNpbmdsZSBzdHJpbmcNCj4gb2JqZWN0IGV4aXN0cyBzbyB0byB0cmFuc3BvcnQg
d2hhdGV2ZXIgdGhlIHZlbmRvciB0aGlua3Mgd291bGQgYmUgdXNlZnVsIGFzIGENCj4gaGludCBp
biB0aGlzIGNhc2UuwqAgSS5lLiwgdGhlcmUgaGFzIGJlZW4gbm8gYXR0ZW1wdCB0byBzdGFuZGFy
ZGl6ZSB0aGUgY29udGVudHMgb2YNCj4gdGhpcyBzdHJpbmcuwqAgSWYgb3BlcmF0aW9uYWwgZXhw
ZXJpZW5jZXMgZHJpdmUgYSBkZXNpcmUgZm9yIHN1Y2ggc3RydWN0dXJpbmcsIHRoaXMNCj4gY291
bGQgcHJvdmlkZSB0aGUgYmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZiB0aGlz
IHN0YXJ0aW5nIHBvaW50Lg0KPiANCj4gSSBndWVzcyBJIGRvIG5vdCBjb25zaWRlciBORVRDT05G
IGFuZCBSRVNUQ09ORiAiaGlzdG9yaWMiIHF1aXRlIHlldC4NCj4gVGhlcmUgYXJlIG1hbnkgaW1w
bGVtZW50YXRpb25zIHVzaW5nIHRoZSBycGMtZXJyb3IgcmVwb3J0aW5nIHdpdGggbm8gaW50ZW50
DQo+IHRvIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZS4NCj4gDQo+IEkgd2FzIGp1c3Qg
YXNraW5nIGZvciBhbiBleGFtcGxlLCBzaW5jZSBJIGhhdmUgbm8gaWRlYSB3aGF0IGFuIGltcGxl
bWVudG9yDQo+IHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYuDQoNCkhlcmUgaXMgYW4gZXhhbXBsZSBm
cm9tIG91ciBpbXBsZW1lbnRhdGlvbi4gIFNheSB5b3UgbWlzdHlwZSBhbiBleHRyYSAiXCIgdG8g
YW4geHBhdGggZmlsdGVyOg0KL2lmOmludGVyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25hbWU9Ikdp
Z2FiaXRFdGhlcm5ldDAvMCJdL29wZXItc3RhdHVzDQpBcyBhIHJlc3VsdCwgdGhlIGZpbHRlciBp
cyBwYXNzZWQgdG8gdGhlIHB1Ymxpc2hlciBpczoNCi9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRl
cmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMNCg0KV2hhdCB3ZSB3
b3VsZCByZXR1cm4gaW4gdGhlIGZhaWx1cmUtaGludCBzdHJpbmcgaXM6DQpJbnZhbGlkIGV4cHJl
c3Npb246IG9mZnNldCg5KSBpbiAnL2lmOmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1l
PSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0YXR1cycNCg0KRXJpYw0KDQo+IEFuZHkNCiAN
Cg==


From nobody Fri Jan 18 15:15:30 2019
Return-Path: <mersue@gmail.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 542BF13145C; Fri, 18 Jan 2019 15:15:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, URIBL_BLOCKED=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 vCPBpOMCGZUp; Fri, 18 Jan 2019 15:15:19 -0800 (PST)
Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) (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 6F8B2131493; Fri, 18 Jan 2019 15:15:18 -0800 (PST)
Received: by mail-wm1-x343.google.com with SMTP id d15so5964971wmb.3; Fri, 18 Jan 2019 15:15:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:thread-index :content-language; bh=dhdkFlgOaktXoyngY06KnOZapiUN5i8Tw+IQiLAWtF4=; b=mFJU8VKW6Aq9sna3bFxVrvdkjajpTrBDfWQn2W6X4lUvMUUD7YoMWroZcuUGg4xc3z cBtDSOWeF6haKtc2bNFx+fTnuIfCwO6klPlf3Pm4j/ouEIDaBLspA51UkPct3u3FBZLX sel9/zzUZ6tYwMfjDdxFskHp7JcA/o7UBFy606HH4JBKgkqNQr0QlFGGOI13brhLLe8H vEZ2XKHt/id/aLOJKrJCOGrW4rekgzMlRiEeDymKfPBb/tUNiy4w1OHeLZhuIVF7AX9o INl/b5xNpLERUSfy1uctE+wipXqH5H7y59X8ZBGunDH3b8MjubUFUGihnsawEbUDEbcZ vQsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=dhdkFlgOaktXoyngY06KnOZapiUN5i8Tw+IQiLAWtF4=; b=n52JUxHuzSuyNMjag89mDwlt4pxkVc1T0/L4pEkyN/I5kfuxKxZGDT5jKWSDAWG2+b 8UgXSfnXGmmYayEcGqDudaWve4BzTEgAUQH8xBEwh6IRF/IlL9N55uavO6HAwZyTlyqs 6Rs+GQQkGB8rkVLYFoLuDrO5lGTMNjgCw+lcceAe4PssKTKTDJ+eGHGGJnvWg5hvzofP Hf+TGxJ52XOEA0zsXnLhGNBb6ZWDaFbfuve03NvSZ6P2nHwtfFSmI79amAvkrXgPXmo2 kphkajrF0/86TXnXfA217eOV2mJ1Vjjcm7Z2NluPYTYo5J9HZoFZHMc8tWp0pvWY1ikY Rvhw==
X-Gm-Message-State: AJcUukdlPZ93QklsZBoyBJ7J/DQSsJW4V6vZnIRL1VpbcP75PEkYofnR nQkYakhWlaaPEnKkp/PGf/g=
X-Google-Smtp-Source: ALg8bN4iTmZPWGUfYfM6xfvRKILWRZMMGDDDyC4Yk6FWd6rPFxFY6B6FvkwBKYfYXD0s1G9RfVvGeQ==
X-Received: by 2002:a1c:8f41:: with SMTP id r62mr16358404wmd.141.1547853316648;  Fri, 18 Jan 2019 15:15:16 -0800 (PST)
Received: from DESKTOPFLHJVQJ ([2001:16b8:2d3f:ce00:1c25:4812:5563:b615]) by smtp.gmail.com with ESMTPSA id t4sm57112343wrb.64.2019.01.18.15.15.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Jan 2019 15:15:15 -0800 (PST)
From: "Mehmet Ersue" <mersue@gmail.com>
To: "'Eric Voit \(evoit\)'" <evoit@cisco.com>, "'Andy Bierman'" <andy@yumaworks.com>
Cc: <yang-doctors@ietf.org>, <netconf@ietf.org>, <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com> <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
In-Reply-To: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
Date: Sat, 19 Jan 2019 00:15:15 +0100
Message-ID: <000901d4af83$ac3f4070$04bdc150$@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQDzf+GJhvTfI1axJ0rlTZoe0F2mJgKtolD5ATUanysCzMTc2wHNz9nppzQajTA=
Content-Language: de
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/fGW3xb9Ni0_kjVmtyt4LqSGCiHk>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Jan 2019 23:15:23 -0000

Hi Eric,

once again I appreciate your tremendous efforts and engagement to get =
the notification drafts done.

There is nothing like YANG Doctors approval. The YANG Doctor in charge =
does the review and suggests changes following RFC6087bis and the YANG =
language standard. The YANG doctors (reviewers) are actually supposed to =
help the OPS AD responsible for Network Management to review YANG =
documents that are destined to be on the IESG agenda.

As  draft-ietf-netconf-subscribed-notifications is a Netconf WG =
document, I think the WG needs decide on issues which are not very clear =
and require some discussion on how to change.=20

Cheers,
Mehmet

> -----Original Message-----
> From: netconf <netconf-bounces@ietf.org> On Behalf Of Eric Voit =
(evoit)
> Sent: Friday, January 18, 2019 8:53 PM
> To: Andy Bierman <andy@yumaworks.com>
> Cc: yang-doctors@ietf.org; netconf@ietf.org; =
draft-ietf-netconf-subscribed-
> notifications.all@ietf.org
> Subject: Re: [netconf] Yangdoctors last call review of =
draft-ietf-netconf-
> subscribed-notifications-21
>=20
> Hi Andy,
>=20
> Thanks.  I have incorporated items where there was agreement.  I have
> removed the items below where you were ok.
>=20
> Remaining below are the open items, with responses.
>=20
> > >    Should be clear somewhere that
> > >    suspend is for CPU and other resources, and NACM not considered
> > >    to be a resource.
> >
> > If NACM is active, it needs to be followed.  The text we have for =
NACM
> > is in Section 5.4.  Do you see something else specific to =
subscription
> > suspension needed here?  (Maybe I am not getting your point.)
> >
> > No -- OK to leave NACM as terminate-if-loss-of-rights (Is there an
> > error identity for this event?)
>=20
> The identity which applies here is "stream-unavailable".  This is the =
same
> identity which would be used if a subscriber had never sufficient =
permissions
> in the first place.  I don't believe we would want to return an =
identity specific
> to when NACM when permissions have just been changed.
>=20
> > > I3) sec 2.1 para 6:
> > >    Event records MUST NOT be delivered to a receiver in a =
different
> > >    order than they were placed onto an event stream.
> > >
> > >   -- does this apply to subscription-state? Think not, they are =
not
> > >events
> > >     placed in event stream.
> >
> > Agree that they are not on the event stream.  So they do not violate
> > this requirement.
> >
> > Additionally there is supporting text in "Section 2.7: subscription
> > state notifications", including...
> >
> > " Instead, they are inserted (as defined in this section) within the
> > sequence of notification messages sent to a particular receiver."
> >
> > >     Need to allow ended or suspended to be sent
> > >     head-of-line whenever state changes
> >
> > I am not sure that suspended should always be sent head-of-line.
> > Consider that implementation might want to let the existing queue of
> > filtered event records be sent if is filter complexity causing the =
CPU
> > issue.   That could be different than if it is a bandwidth issue
> > driving the suspension, and you definitely want the 'subscription-
> suspended' to be placed at the head of line.
> >
> >
> > It is up to the publisher to decide when to stop sending events on a
> > subscription.
> > Obviously the publisher cannot wait until the subscription is idle.
> > The reason it is getting suspended is it is far from idle
> >
> > So also up to the publisher wrt/ what to do with any events that =
have
> > not been delivered yet on a subscription.  Could delete them or save
> > them for when more bandwidth available (for example)
>=20
> Agree fully with this.  Is there text required in the draft here?
>=20
> ...
> > Beyond that it is up to the implementation to decide if some
> > un-transmitted queue of event records should be flushed and
> > reprocessed based on the modification.  I do not expect this would
> > popular, as a replay subscription could accomplish this same =
functional
> need.
> >
> > Agreed that an implementation can drop at any time and increment the
> > appropriate counters. It will try to to do this, but no requirements
> > except maybe subscription events like 'replay-completed' cannot be
> > dropped
>=20
> Have put a minor tweak into Section 2.7:
>=20
> [old]  subscription state change notifications cannot be filtered out
>=20
> [new] subscription state change notifications cannot be dropped or =
filtered
> out
>=20
> ...
> > Thinking more on your point, it might be worth tweaking a couple =
words
> > to allow for head-of-line placement of "subscription-suspended".
> >
> >    "Subscribed event records queued for sending after the issuance =
of
> > this
> >    subscription state change notification may now be sent."
> >
> > Are you good with this suggested change?
> >
> > Not sure -- it needs to be clear that subscription-suspended is the
> > last event sent before suspending and subscription-resumed is the
> > first event sent after transition from suspended to active.
> > The next event could also be subscription-terminated.
>=20
> I do think this possibility is covered in the text.  For Section 2.7.4 =
subscription-
> suspended the current text is:
>=20
> "No further notification will be sent until the subscription resumes =
or is
> terminated."
>=20
> And Section 2.7.5 subscription-resumed says":
> "Subscribed event records generated after the issuance of this =
subscription
> state change notification may now be sent."
>=20
> Based on the discussion, I can make it:
>=20
> "Subscribed event records are again permitted to be sent following =
this
> subscription state change notification."
>=20
> Is this sufficient for you?
>=20
> ...
> > > I4) sec 2.4.6: RPC Failures
> > >   -- concern about a subscription-specific error reporting system
> > >      must make sure protocol error reporting system is used
> > >correctly
> >
> > Yes.  We have done our best to integrate with the embedded NETCONF
> and
> > RESTCONF mechanisms.  There is much additional information in the
> > transport drafts here.
> >
> > >   -- The error-tag value needs to be identified for each 'reason'
> > >identity
> >
> > This is done in the transport drafts.   E.g., see
> > draft-ietf-netconf-netconf-event- notifications Section 7
> >
> > I do not agree this is a good idea.
> > Each error identity should simply state the required "error-tag"
> > that is associated with the error.  This is expected of protocol
> > operations that are added to NETCONF and RESTCONF.
>=20
> In draft-ietf-netconf-netconf-event-notifications, section 7, the =
required
> "error-tag" is identified as "operation-failed".   If we instead =
placed that
> "error-tag" information in the YANG model, then we have tied the YANG
> model to the RESTCONF and NETCONF transports.
>=20
> > Both NETCONF and RESTCONF use a compatible error reporting data
> structure.
> > The "error-tag" is used in both of them.  IMO client developers do =
not
> > want a different set of error codes for the same error conditions.
>=20
> draft-ietf-netconf-restconf-notif Section 3.3 also requires an =
"error-tag"
> node of "operation-failed".  So we used the transport drafts rather =
than the
> YANG model to support the same error codes for the same error =
conditions.
>=20
> > I agree that transport drafts could define their own error =
identities,
> > which would document the expected error-tag there.
> >
> >
> > >    2.  "modify-subscription-stream-error-info": This MUST be
> > >returned
> > >        with the leaf "reason" populated if an RPC error reason has
> > >not
> > >        been placed elsewhere within the transport portion of a
> > >failed
> > >        "modify-subscription" RPC response.  This MUST be sent if
> > >hints
> > >
> > >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> > >       text means; not appropriate for MUST;
> >
> > Instead of "placed elsewhere", how about: "placed in subscription
> > transport document defined object".  Would this be sufficient?
> >
> > No -- NETCONF and RESTCONF have well-defined error reporting.
> > The server requirements for this error reporting must be documented.
> >
> > I agree with the following approach:
> >   - each operation MUST identify the error-tags that are expected =
for
> >     various error conditions (such s is done in RFC 6241)
> >   - the server MUST return the specified error-tags. If a condition
> > not explicitly
> >     defined then the server MUST pick the appropriate error-tag from
> > RFC 6241
> >  - the server MAY include the specified rc:yang-data in the
> > <error-info> data structure
> >  - the server MUST use the appropriate rc:yang-data to report hints
> >  - for protocols other than NETCONF and RESTCONF, they can map
> > error-tag or ignore it,
> >    but the document defining the protocol operation MUST provide
>=20
> Functionally, everything you ask for is fully covered when you include
> consider draft-ietf-netconf-netconf-event-notifications (section 7) =
and draft-
> ietf-netconf-restconf-notif (section 3.3).
>=20
> My read of the issue is that you believe "error-tag" must be specified =
in the
> YANG model.  I believe that "error-tag" shouldn't be in the YANG model
> because that would tie the model to a transport type.
>=20
> Any thoughts on how we might close this?    If absolutely required I =
could
> place a new comment line in the YANG model under
> /* Identities for RPC and Notification errors */
>=20
> The comment would be something like:
> /* When used with NETCONF and RESTCONF RPCs:
>     "error-type" node to be used is "application"
>      "error-tag" must be "operation-failed".  */
>=20
> This seems incongruous.  Just throwing it out as a suggestion.
>=20
> > In any case, the -v21 wording results from the attempted balancing =
the
> > WG requests for:
> > * merging with transport protocol error mechanisms
> > * WG leadership guidance to provide requirements for transport
> > documents
> >
> > >      Only 3 fields seem
> > >       to be relevant (error-tag, error-app-tag, error-info).
> > >       Protcol operations are expected to document server
> > >requirements
> > >       for these 3 fields, if applicable.  Only the error-tag
> > >       is mandatory-to-use.
> >
> > Hopefully these are covered sufficiently when this document is =
coupled
> > with the NETCONF and RESTCONF Notif transport documents.   For other
> > transports, the tags you identify about would not be applicable.
> >
> > >   -- the error assignments are extremely specific. e.g., it is not
> > >      possible for <kill-subscription> to fail with an
> > >      'insufficient-resources' error;
> >
> > This is the intent of the base specification, e.g., we don't believe =
a
> > kill- subscription should fail for an insufficient-resources reason.
> > But vendors might desire more specificity.  As a result is certainly
> > ok for vendor implementations to add new error identities.
> >
> > IMO anything can fail for insufficient resources. That is very
> > implementation- specific.
>=20
> Instead of implementation specific I would call it application =
specific.   Right
> now we don't have a catch-all error-identity of 'other-error'.  We =
preferred
> that error conditions beyond the current ones listed could be included =
by
> vendors as needed.  Further deployment experience could result in new
> error identities surfacing for standardization should this draft catch =
on.
>=20
> > >      Do not agree that scoping each
> > >      identity to specific RPC operations is a good idea.
> >
> > This level of specificity was not the author's original plans.  Nor
> > was this level of specificity part of earlier draft versions up
> > through -v08.   However members of the WG made it clear that such
> specificity was necessary for draft progression.
> >
> > >   -- how are errors in these parameters reported for configured
> > >      subscriptions when <edit-config> is the RPC that has the =
error?
> > >      How are the yang-data structs used for edit-config or commit =
errors?
> >
> > None of these yang-data structures are specified for use with
> > <edit-config> operations.   For <edit-config>, the change to a
> > configured subscription would be written to the datastore if it were
> > semantically valid.   At this point the subscription enters the
> > [evaluate] points of Figure 8.  Issues from this point out would be =
reported
> with a vendor specific construct such as SYSLOG.
> >
> > So how are hints reported for configured subscriptions?
>=20
> There is nothing in the specification which requires this.   An =
implementation
> could choose to place these in some form of SYSLOG.
> ...
> > > I6) sec 2.5, para 3:
> > >
> > >    On a receiver of a
> > >    configured subscription, support for dynamic subscriptions is
> > >    optional except where replaying missed event records is =
required.
> > >
> > >   -- confusing because text in 1.3:
> > >      Note that there is no mixing-and-matching of dynamic and
> > >configured
> > >      operations on a single subscription.  Specifically, a
> > >configured
> > >   -- clarify the receiver may have multiple subscriptions here
> > >   -- not clear what "except where replaying..." text means
> >
> > How about the following tweak:
> >
> > "On a receiver of a configured subscription, support for dynamic
> > subscriptions is optional.  However if replaying missed event =
records
> > is required for a configured subscription, support for dynamic
> > subscription is highly recommended.  In this case, a separate =
dynamic
> > subscription can be established to retransmit the missing event =
records."
> >
> > OK
>=20
> Change made.
>=20
> > > I7) leaf stream-xpath-filter: [multiple uses]
> > >
> > >            The expression is evaluated in the following XPath =
context:
> > >
> > >              o   The set of namespace declarations is the set of
> > >prefix
> > >                  and namespace pairs for all YANG modules
> > >implemented
> > >                  by the server, where the prefix is the YANG =
module
> > >                  name and the namespace is as defined by the
> > >                  'namespace' statement in the YANG module.
> > >
> > >   -- This prefix processing is not done anywhere else in NETCONF
> > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > >      should be required for processing of XML encoding.  YANG
> > >      module prefixes are not required to be unique, unlike
> > >      the prefix mappings in XML
> >
> > This text was proposed by Martin as a result of the "xpath =
expressions in
> JSON"
> > thread last October in NETMOD.
> >
> > I am happy to incorporate whatever text is appropriate.  I was =
hoping
> > that the suggested text was sufficient for now.  Kent has already
> > incorporated this as an issue for yang-next
> > https://github.com/netmod-wg/yang-next/issues/55
> > So hopefully there is no final precedent being claimed.
> >
> > I do not agree that this YANG module should define a new way to =
encode
> > XPath into XML instance documents. This will require significant
> > changes to server implementations.  YANG module prefixes are not =
even
> > required to be unique so the set of prefixes used by the server in =
XML
> > instance documents may be different, since it must be unique.
>=20
> See next note
>=20
> > >   -- NMDA allows the same module to appear in multiple module-sets
> > >      and different in each datastore. This text about "implemented
> > >by
> > >      the server" does not work for NMDA
> >
> > I am happy to adopt whatever text meets YANG doctor approval.   Can
> > you suggest?
> >
> >
> > Remove all text about YANG prefixes and continue using XML encoding
> > without modification
>=20
> As a different YANG doctor has required the current text modification, =
I
> believe this is a blocker.  What is the process for YANG model reviews =
in such
> a case.  I am happy to accept whatever here.  Any suggestions on next =
steps?
>=20
> ...
> > >   -- there should be an example of a configurable encoding =
provided
> >
> > I am happy to enhance the definition YANG model's identity =
definition
> > of "configurable-encoding".  I could do this by adding the following
> > additional text to the description: "An example of a configurable
> > encoding might be a new identity such as 'encode-cbor'.  Such an
> > identity could use 'configurable- encoding' as its base.  This would
> > allow a dynamic subscription encoded in JSON [RFC-8259] to request
> > notification messages be encoded via CBOR [RFC- 7049].  Further
> > details for any specific configurable encoding would be explored in =
a
> transport document based on this specification."   Does this meet your =
ask?
> >
> >
> > OK
>=20
> Added
>=20
> > > I11) extension subscription-state-notification {
> > >
> > >        This statement is not for use
> > >        outside of this YANG module.";
> > >
> > >   -- this text should be removed. There is no value in limiting
> > >      the scope of this extension.  It prevents even this WG from
> > >      creating a module that uses the extension again.
> >
> > This was the subject of significant debate in the WG.  The authors =
did
> > not want this restriction either.
> >
> > To be allowed to progress the document, we inserted the document.  =
If
> > this really is mandatory-to-remove from a YANG doctor point-of-view,
> > what is the process for quick closure on this issue between WG
> > leadership and the YANG doctors?
> >
> >
> > The YANG language makes no restrictions about exporting statements.
> > I guess I missed that debate so I will just say OK and wonder what
> > problem this is supposed to solve. I guess the WG wants to give YANG
> > Doctors more things to check. (This is what we called a CLR in
> > SNMP-land ;-)
>=20
> Thanks.  No action taken.
>=20
> > > I13)   notification subscription-started {
> > >     sn:subscription-state-notification;
> > >     if-feature "configured";
> > >     description
> > >       "This notification indicates that a subscription has started
> > >and
> > >         notifications are beginning to be sent. This notification
> > >shall
> > >        only be sent to receivers of a subscription; it does not
> > >        constitute a general-purpose notification.";
> > >
> > >   -- 2nd sentence is confusing; all notifications are sent to
> > >      receivers of a subscription. last part is redundant since
> > >      the sn:subscription-state-notification extension is used
> >
> > There is no issue with removing this second sentence completely.  If =
I
> > did that, would this address your concern?
> >
> > OK
>=20
> Done
>=20
> > > I14)   rc:yang-data modify-subscription-stream-error-info {
> > >
> > >       leaf filter-failure-hint {
> > >         type string;
> > >           description
> > >             "Information describing where and/or why a provided
> > >filter
> > >              was unsupportable for a subscription.";
> > >       }
> > >
> > >   -- rpc-error already allows more precise error reporting
> > >      It uses error-tag, error-path, error-string, and error-info
> > >extensions
> > >      to identify which parameters/conditions caused the RPC to be
> rejected.
> > >      This error reporting will continue to be used, Not sure this
> > >failure-hint
> > >      has any standards value. Perhaps real-use example can be =
added
> >
> > Per your thoughts on rpc-error...   For NETCONF and RESTCONF, you
> > point to error structures which historically been used with those
> > transports.  Of course we were looking to have all subscription =
hints
> > supportable across transports via a single portable YANG data
> > structure.  So the value is that a single string object exists so to
> > transport whatever the vendor thinks would be useful as a hint in =
this
> > case.  I.e., there has been no attempt to standardize the contents =
of
> > this string.  If operational experiences drive a desire for such =
structuring,
> this could provide the basis for a new draft building off of this =
starting point.
> >
> > I guess I do not consider NETCONF and RESTCONF "historic" quite yet.
> > There are many implementations using the rpc-error reporting with no
> > intent to replace it with something else.
> >
> > I was just asking for an example, since I have no idea what an
> > implementor would put in this leaf.
>=20
> Here is an example from our implementation.  Say you mistype an extra =
"\"
> to an xpath filter:
> =
/if:interfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status
> As a result, the filter is passed to the publisher is:
> =
/if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status
>=20
> What we would return in the failure-hint string is:
> Invalid expression: offset(9) in '/if:inte\rfaces-
> state/interface[name=3D"GigabitEthernet0/0"]/oper-status'
>=20
> Eric
>=20
> > Andy
>=20
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf


From nobody Sat Jan 19 08:17:32 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0327130DCD for <netconf@ietfa.amsl.com>; Sat, 19 Jan 2019 08:17:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=yumaworks-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 nKb9FA3Tb7f6 for <netconf@ietfa.amsl.com>; Sat, 19 Jan 2019 08:17:25 -0800 (PST)
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (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 6056012D4E7 for <netconf@ietf.org>; Sat, 19 Jan 2019 08:17:24 -0800 (PST)
Received: by mail-lf1-x12c.google.com with SMTP id a8so12649455lfk.5 for <netconf@ietf.org>; Sat, 19 Jan 2019 08:17:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gBPlet2wxYvkbzn+9zpkRc/ZoJasjxrzQpev+WeqCuA=; b=QxtYLkNFzqp7SmE9x29eXvod4L+m1j7a14LHFaYyjCbdv2i1g0yYg4vTGO66jL4LBe D7UW2GR8lXn27rqiyGw8CS49DKW4HNt37pAEtAPwYc1B8+eLN1GI+9R49NFJ0Wvv0sCk 7lqlz+xFWHfDUpBITek6yy/1Nc2idQG8rumHsCP5dKQjlJuKjrf2z5lP5Q2w00IsA87c 2seC0kf5oTxxXaghUCjtqw/S0xREm4iEMu331h3QBy6LDtwlVt8qCDqhjUwpWtH//ygT AnQDfv0SZ14rrZPWtSxmMezQyevepu9sIVB/CRaHBC0FBMGdD6OPNqMnGC4RHWr1nTm/ V+Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gBPlet2wxYvkbzn+9zpkRc/ZoJasjxrzQpev+WeqCuA=; b=X9kyFDWbvn3spM+SxwpPUCMGKxA4U4l3/bJunaTStn4LwCtnFt3rZejrJOLu3Hg5Y/ B/Rr27tZfYQQQoNqcMcJ9SeKeqbC0tGo4qwN6h5/W8N/BpXRdsG3gb63GSzMVoO49Ogn HVjoVWr26JoucsiRTKLcB54MZd+lQCk+bWjLVl+ADZtOFd7gJ7d3BfZjuXadDGfvnHR8 CbWN7yfz2X/hwf6E3e4x4+gydVwuDQ73lMVMR6nnFRc6IKw/MMtI3sDpQnxMoj9yjckl B7CAK7XaMrXUTy5TRsmrm3Mid/78Hs0pr+Jo1FSxGmWpF8ny9Hn910wJIkLCxHb9cUuv 1P7g==
X-Gm-Message-State: AJcUukf4HbxFY+s+dq+2jvO5YOs6OFXzNRno50movJS5RVq3MeTu3G2A fJzUMUQG3Or2FgdJgjDGjPl+lxCsBpPyPHEuHc6zXg==
X-Google-Smtp-Source: ALg8bN4uU9PXY9nBhREBP+zNuDIXMXTX/5koz/v18p14mFP8Bs1n3GN49m6Wa0DKMMEaJ/OUhZ13nreqWooOofSG70E=
X-Received: by 2002:a19:690d:: with SMTP id e13mr14917025lfc.84.1547914642029;  Sat, 19 Jan 2019 08:17:22 -0800 (PST)
MIME-Version: 1.0
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com> <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
In-Reply-To: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Sat, 19 Jan 2019 08:17:10 -0800
Message-ID: <CABCOCHSpaRFZNovL0pQ2Y-jrYughpxALyOoU3ziicQKn4AtxHA@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>,  "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000061a358057fd1f61e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/z1GIq9bJy1Mdj6SKwy8kni4a930>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 19 Jan 2019 16:17:30 -0000

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

On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit) <evoit@cisco.com> wrote:

> Hi Andy,
>
> Thanks.  I have incorporated items where there was agreement.  I have
> removed the items below where you were ok.
>
> Remaining below are the open items, with responses.
>
> > >    Should be clear somewhere that
> > >    suspend is for CPU and other resources, and NACM not considered
> > >    to be a resource.
> >
> > If NACM is active, it needs to be followed.  The text we have for NACM
> is in
> > Section 5.4.  Do you see something else specific to subscription
> suspension
> > needed here?  (Maybe I am not getting your point.)
> >
> > No -- OK to leave NACM as terminate-if-loss-of-rights
> > (Is there an error identity for this event?)
>
> The identity which applies here is "stream-unavailable".  This is the same
> identity which would be used if a subscriber had never sufficient
> permissions in the first place.  I don't believe we would want to return an
> identity specific to when NACM when permissions have just been changed.
>
>
OK



> > > I3) sec 2.1 para 6:
> > >    Event records MUST NOT be delivered to a receiver in a different
> > >    order than they were placed onto an event stream.
> > >
> > >   -- does this apply to subscription-state? Think not, they are not
> events
> > >     placed in event stream.
> >
> > Agree that they are not on the event stream.  So they do not violate this
> > requirement.
> >
> > Additionally there is supporting text in "Section 2.7: subscription state
> > notifications", including...
> >
> > " Instead, they are inserted (as defined in this section) within the
> sequence of
> > notification messages sent to a particular receiver."
> >
> > >     Need to allow ended or suspended to be sent
> > >     head-of-line whenever state changes
> >
> > I am not sure that suspended should always be sent head-of-line.
>  Consider
> > that implementation might want to let the existing queue of filtered
> event
> > records be sent if is filter complexity causing the CPU issue.   That
> could be
> > different than if it is a bandwidth issue driving the suspension, and you
> > definitely want the 'subscription-suspended' to be placed at the head of
> line.
> >
> >
> > It is up to the publisher to decide when to stop sending events on a
> > subscription.
> > Obviously the publisher cannot wait until the subscription is idle.
> > The reason it is getting suspended is it is far from idle
> >
> > So also up to the publisher wrt/ what to do with any events that have not
> > been delivered yet on a subscription.  Could delete them or save them for
> > when more bandwidth available (for example)
>
> Agree fully with this.  Is there text required in the draft here?
>
>
no - I do not have any text to suggest

...
> > Beyond that it is up to the implementation to decide if some
> un-transmitted
> > queue of event records should be flushed and reprocessed based on the
> > modification.  I do not expect this would popular, as a replay
> subscription could
> > accomplish this same functional need.
> >
> > Agreed that an implementation can drop at any time and increment the
> > appropriate counters. It will try to to do this, but no requirements
> except
> > maybe subscription events like 'replay-completed' cannot be dropped
>
> Have put a minor tweak into Section 2.7:
>
> [old]  subscription state change notifications cannot be filtered out
>
> [new] subscription state change notifications cannot be dropped or
> filtered out
>
>
Not sure this is a good addition because the event might get dropped
further down the stack out of the server process that sent the event.


...
> > Thinking more on your point, it might be worth tweaking a couple words to
> > allow for head-of-line placement of "subscription-suspended".
> >
> >    "Subscribed event records queued for sending after the issuance of
> this
> >    subscription state change notification may now be sent."
> >
> > Are you good with this suggested change?
> >
> > Not sure -- it needs to be clear that subscription-suspended is the
> > last event sent before suspending and subscription-resumed is
> > the first event sent after transition from suspended to active.
> > The next event could also be subscription-terminated.
>
> I do think this possibility is covered in the text.  For Section 2.7.4
> subscription-suspended the current text is:
>
> "No further notification will be sent until the subscription resumes or is
> terminated."
>
>
OK



> And Section 2.7.5 subscription-resumed says":
> "Subscribed event records generated after the issuance of this
> subscription state change notification may now be sent."
>
> Based on the discussion, I can make it:
>
> "Subscribed event records are again permitted to be sent following this
> subscription state change notification."
>
> Is this sufficient for you?
>
>
old text is OK



> ...
> > > I4) sec 2.4.6: RPC Failures
> > >   -- concern about a subscription-specific error reporting system
> > >      must make sure protocol error reporting system is used correctly
> >
> > Yes.  We have done our best to integrate with the embedded NETCONF and
> > RESTCONF mechanisms.  There is much additional information in the
> transport
> > drafts here.
> >
> > >   -- The error-tag value needs to be identified for each 'reason'
> identity
> >
> > This is done in the transport drafts.   E.g., see
> draft-ietf-netconf-netconf-event-
> > notifications Section 7
> >
> > I do not agree this is a good idea.
> > Each error identity should simply state the required "error-tag"
> > that is associated with the error.  This is expected of protocol
> operations
> > that are added to NETCONF and RESTCONF.
>
> In draft-ietf-netconf-netconf-event-notifications, section 7, the required
> "error-tag" is identified as "operation-failed".   If we instead placed
> that "error-tag" information in the YANG model, then we have tied the YANG
> model to the RESTCONF and NETCONF transports.
>
>
The subscribed-notifications draft contains rpc-stmts.
Every other RFC with such statements specifies the error handling details
for them.
This document creates a new error reporting system just for 3 or 4 RPC
operations,
and fails to specify even the mandatory fields for the error reporting
system
for NETCONF and RESTCONF.



> > Both NETCONF and RESTCONF use a compatible error reporting data
> structure.
> > The "error-tag" is used in both of them.  IMO client developers do not
> > want a different set of error codes for the same error conditions.
>
> draft-ietf-netconf-restconf-notif Section 3.3 also requires an "error-tag"
> node of "operation-failed".  So we used the transport drafts rather than
> the YANG model to support the same error codes for the same error
> conditions.
>
> > I agree that transport drafts could define their own error identities,
> > which would document the expected error-tag there.
> >
> >
> > >    2.  "modify-subscription-stream-error-info": This MUST be returned
> > >        with the leaf "reason" populated if an RPC error reason has not
> > >        been placed elsewhere within the transport portion of a failed
> > >        "modify-subscription" RPC response.  This MUST be sent if hints
> > >
> > >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> > >       text means; not appropriate for MUST;
> >
> > Instead of "placed elsewhere", how about: "placed in subscription
> transport
> > document defined object".  Would this be sufficient?
> >
> > No -- NETCONF and RESTCONF have well-defined error reporting.
> > The server requirements for this error reporting must be documented.
> >
> > I agree with the following approach:
> >   - each operation MUST identify the error-tags that are expected for
> >     various error conditions (such s is done in RFC 6241)
> >   - the server MUST return the specified error-tags. If a condition not
> explicitly
> >     defined then the server MUST pick the appropriate error-tag from RFC
> 6241
> >  - the server MAY include the specified rc:yang-data in the <error-info>
> data
> > structure
> >  - the server MUST use the appropriate rc:yang-data to report hints
> >  - for protocols other than NETCONF and RESTCONF, they can map error-tag
> or
> > ignore it,
> >    but the document defining the protocol operation MUST provide
>
> Functionally, everything you ask for is fully covered when you include
> consider draft-ietf-netconf-netconf-event-notifications (section 7) and
> draft-ietf-netconf-restconf-notif (section 3.3).
>
> My read of the issue is that you believe "error-tag" must be specified in
> the YANG model.  I believe that "error-tag" shouldn't be in the YANG model
> because that would tie the model to a transport type.
>
>
The RFC containing the protocol operation defined with the rpc-stmt
needs to document at least the mandatory-to-implement "error-tag" field.

This is a WG or IESG review issue and maybe the IESG will not care at all
about it.



> Any thoughts on how we might close this?    If absolutely required I could
> place a new comment line in the YANG model under
> /* Identities for RPC and Notification errors */
>
> The comment would be something like:
> /* When used with NETCONF and RESTCONF RPCs:
>     "error-type" node to be used is "application"
>      "error-tag" must be "operation-failed".  */
>
> This seems incongruous.  Just throwing it out as a suggestion.
>
>
Usually the normative text contains the error-tag info.
No other operations use a YANG module to define their own error reporting
system


Andy




> > In any case, the -v21 wording results from the attempted balancing the WG
> > requests for:
> > * merging with transport protocol error mechanisms
> > * WG leadership guidance to provide requirements for transport documents
> >
> > >      Only 3 fields seem
> > >       to be relevant (error-tag, error-app-tag, error-info).
> > >       Protcol operations are expected to document server requirements
> > >       for these 3 fields, if applicable.  Only the error-tag
> > >       is mandatory-to-use.
> >
> > Hopefully these are covered sufficiently when this document is coupled
> with
> > the NETCONF and RESTCONF Notif transport documents.   For other
> transports,
> > the tags you identify about would not be applicable.
> >
> > >   -- the error assignments are extremely specific. e.g., it is not
> > >      possible for <kill-subscription> to fail with an
> > >      'insufficient-resources' error;
> >
> > This is the intent of the base specification, e.g., we don't believe a
> kill-
> > subscription should fail for an insufficient-resources reason.   But
> vendors might
> > desire more specificity.  As a result is certainly ok for vendor
> implementations
> > to add new error identities.
> >
> > IMO anything can fail for insufficient resources. That is very
> implementation-
> > specific.
>
> Instead of implementation specific I would call it application specific.
>  Right now we don't have a catch-all error-identity of 'other-error'.  We
> preferred that error conditions beyond the current ones listed could be
> included by vendors as needed.  Further deployment experience could result
> in new error identities surfacing for standardization should this draft
> catch on.
>
> > >      Do not agree that scoping each
> > >      identity to specific RPC operations is a good idea.
> >
> > This level of specificity was not the author's original plans.  Nor was
> this level of
> > specificity part of earlier draft versions up through -v08.   However
> members of
> > the WG made it clear that such specificity was necessary for draft
> progression.
> >
> > >   -- how are errors in these parameters reported for configured
> > >      subscriptions when <edit-config> is the RPC that has the error?
> > >      How are the yang-data structs used for edit-config or commit
> errors?
> >
> > None of these yang-data structures are specified for use with
> <edit-config>
> > operations.   For <edit-config>, the change to a configured subscription
> would
> > be written to the datastore if it were semantically valid.   At this
> point the
> > subscription enters the [evaluate] points of Figure 8.  Issues from this
> point out
> > would be reported with a vendor specific construct such as SYSLOG.
> >
> > So how are hints reported for configured subscriptions?
>
> There is nothing in the specification which requires this.   An
> implementation could choose to place these in some form of SYSLOG.
> ...
> > > I6) sec 2.5, para 3:
> > >
> > >    On a receiver of a
> > >    configured subscription, support for dynamic subscriptions is
> > >    optional except where replaying missed event records is required.
> > >
> > >   -- confusing because text in 1.3:
> > >      Note that there is no mixing-and-matching of dynamic and
> configured
> > >      operations on a single subscription.  Specifically, a configured
> > >   -- clarify the receiver may have multiple subscriptions here
> > >   -- not clear what "except where replaying..." text means
> >
> > How about the following tweak:
> >
> > "On a receiver of a configured subscription, support for dynamic
> subscriptions
> > is optional.  However if replaying missed event records is required for a
> > configured subscription, support for dynamic subscription is highly
> > recommended.  In this case, a separate dynamic subscription can be
> established
> > to retransmit the missing event records."
> >
> > OK
>
> Change made.
>
> > > I7) leaf stream-xpath-filter: [multiple uses]
> > >
> > >            The expression is evaluated in the following XPath context:
> > >
> > >              o   The set of namespace declarations is the set of prefix
> > >                  and namespace pairs for all YANG modules implemented
> > >                  by the server, where the prefix is the YANG module
> > >                  name and the namespace is as defined by the
> > >                  'namespace' statement in the YANG module.
> > >
> > >   -- This prefix processing is not done anywhere else in NETCONF
> > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > >      should be required for processing of XML encoding.  YANG
> > >      module prefixes are not required to be unique, unlike
> > >      the prefix mappings in XML
> >
> > This text was proposed by Martin as a result of the "xpath expressions
> in JSON"
> > thread last October in NETMOD.
> >
> > I am happy to incorporate whatever text is appropriate.  I was hoping
> that the
> > suggested text was sufficient for now.  Kent has already incorporated
> this as an
> > issue for yang-next
> > https://github.com/netmod-wg/yang-next/issues/55
> > So hopefully there is no final precedent being claimed.
> >
> > I do not agree that this YANG module should define a new way to encode
> XPath
> > into XML instance documents. This will require significant changes to
> server
> > implementations.  YANG module prefixes are not even required to be unique
> > so the set of prefixes used by the server in XML instance documents may
> be
> > different,
> > since it must be unique.
>
> See next note
>
> > >   -- NMDA allows the same module to appear in multiple module-sets
> > >      and different in each datastore. This text about "implemented by
> > >      the server" does not work for NMDA
> >
> > I am happy to adopt whatever text meets YANG doctor approval.   Can you
> > suggest?
> >
> >
> > Remove all text about YANG prefixes and continue using XML encoding
> without
> > modification
>
> As a different YANG doctor has required the current text modification, I
> believe this is a blocker.  What is the process for YANG model reviews in
> such a case.  I am happy to accept whatever here.  Any suggestions on next
> steps?
>
> ...
> > >   -- there should be an example of a configurable encoding provided
> >
> > I am happy to enhance the definition YANG model's identity definition of
> > "configurable-encoding".  I could do this by adding the following
> additional text
> > to the description: "An example of a configurable encoding might be a new
> > identity such as 'encode-cbor'.  Such an identity could use
> 'configurable-
> > encoding' as its base.  This would allow a dynamic subscription encoded
> in JSON
> > [RFC-8259] to request notification messages be encoded via CBOR [RFC-
> > 7049].  Further details for any specific configurable encoding would be
> explored
> > in a transport document based on this specification."   Does this meet
> your ask?
> >
> >
> > OK
>
> Added
>
> > > I11) extension subscription-state-notification {
> > >
> > >        This statement is not for use
> > >        outside of this YANG module.";
> > >
> > >   -- this text should be removed. There is no value in limiting
> > >      the scope of this extension.  It prevents even this WG from
> > >      creating a module that uses the extension again.
> >
> > This was the subject of significant debate in the WG.  The authors did
> not want
> > this restriction either.
> >
> > To be allowed to progress the document, we inserted the document.  If
> this
> > really is mandatory-to-remove from a YANG doctor point-of-view, what is
> the
> > process for quick closure on this issue between WG leadership and the
> YANG
> > doctors?
> >
> >
> > The YANG language makes no restrictions about exporting statements.
> > I guess I missed that debate so I will just say OK and wonder what
> problem
> > this is supposed to solve. I guess the WG wants to give YANG Doctors more
> > things to check. (This is what we called a CLR in SNMP-land ;-)
>
> Thanks.  No action taken.
>
> > > I13)   notification subscription-started {
> > >     sn:subscription-state-notification;
> > >     if-feature "configured";
> > >     description
> > >       "This notification indicates that a subscription has started and
> > >         notifications are beginning to be sent. This notification shall
> > >        only be sent to receivers of a subscription; it does not
> > >        constitute a general-purpose notification.";
> > >
> > >   -- 2nd sentence is confusing; all notifications are sent to
> > >      receivers of a subscription. last part is redundant since
> > >      the sn:subscription-state-notification extension is used
> >
> > There is no issue with removing this second sentence completely.  If I
> did that,
> > would this address your concern?
> >
> > OK
>
> Done
>
> > > I14)   rc:yang-data modify-subscription-stream-error-info {
> > >
> > >       leaf filter-failure-hint {
> > >         type string;
> > >           description
> > >             "Information describing where and/or why a provided filter
> > >              was unsupportable for a subscription.";
> > >       }
> > >
> > >   -- rpc-error already allows more precise error reporting
> > >      It uses error-tag, error-path, error-string, and error-info
> extensions
> > >      to identify which parameters/conditions caused the RPC to be
> rejected.
> > >      This error reporting will continue to be used, Not sure this
> failure-hint
> > >      has any standards value. Perhaps real-use example can be added
> >
> > Per your thoughts on rpc-error...   For NETCONF and RESTCONF, you point
> to
> > error structures which historically been used with those transports.  Of
> course
> > we were looking to have all subscription hints supportable across
> transports via
> > a single portable YANG data structure.  So the value is that a single
> string
> > object exists so to transport whatever the vendor thinks would be useful
> as a
> > hint in this case.  I.e., there has been no attempt to standardize the
> contents of
> > this string.  If operational experiences drive a desire for such
> structuring, this
> > could provide the basis for a new draft building off of this starting
> point.
> >
> > I guess I do not consider NETCONF and RESTCONF "historic" quite yet.
> > There are many implementations using the rpc-error reporting with no
> intent
> > to replace it with something else.
> >
> > I was just asking for an example, since I have no idea what an
> implementor
> > would put in this leaf.
>
> Here is an example from our implementation.  Say you mistype an extra "\"
> to an xpath filter:
> /if:interfaces-state/interface[name="GigabitEthernet0/0"]/oper-status
> As a result, the filter is passed to the publisher is:
> /if:inte\rfaces-state/interface[name="GigabitEthernet0/0"]/oper-status
>
> What we would return in the failure-hint string is:
> Invalid expression: offset(9) in
> '/if:inte\rfaces-state/interface[name="GigabitEthernet0/0"]/oper-status'
>
> Eric
>
> > Andy
>
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit) &lt;<a =
href=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">Hi Andy,<br>
<br>
Thanks.=C2=A0 I have incorporated items where there was agreement.=C2=A0 I =
have removed the items below where you were ok.=C2=A0 <br>
<br>
Remaining below are the open items, with responses.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 Should be clear somewhere that<br>
&gt; &gt;=C2=A0 =C2=A0 suspend is for CPU and other resources, and NACM not=
 considered<br>
&gt; &gt;=C2=A0 =C2=A0 to be a resource.<br>
&gt; <br>
&gt; If NACM is active, it needs to be followed.=C2=A0 The text we have for=
 NACM is in<br>
&gt; Section 5.4.=C2=A0 Do you see something else specific to subscription =
suspension<br>
&gt; needed here?=C2=A0 (Maybe I am not getting your point.)<br>
&gt; <br>
&gt; No -- OK to leave NACM as terminate-if-loss-of-rights<br>
&gt; (Is there an error identity for this event?)<br>
<br>
The identity which applies here is &quot;stream-unavailable&quot;.=C2=A0 Th=
is is the same identity which would be used if a subscriber had never suffi=
cient permissions in the first place.=C2=A0 I don&#39;t believe we would wa=
nt to return an identity specific to when NACM when permissions have just b=
een changed.<br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; &gt; I3) sec 2.1 para 6:<br>
&gt; &gt;=C2=A0 =C2=A0 Event records MUST NOT be delivered to a receiver in=
 a different<br>
&gt; &gt;=C2=A0 =C2=A0 order than they were placed onto an event stream.<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- does this apply to subscription-state? Think not, =
they are not events<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0placed in event stream.<br>
&gt; <br>
&gt; Agree that they are not on the event stream.=C2=A0 So they do not viol=
ate this<br>
&gt; requirement.<br>
&gt; <br>
&gt; Additionally there is supporting text in &quot;Section 2.7: subscripti=
on state<br>
&gt; notifications&quot;, including...<br>
&gt; <br>
&gt; &quot; Instead, they are inserted (as defined in this section) within =
the sequence of<br>
&gt; notification messages sent to a particular receiver.&quot;<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Need to allow ended or suspended to be sent<br=
>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0head-of-line whenever state changes<br>
&gt; <br>
&gt; I am not sure that suspended should always be sent head-of-line.=C2=A0=
 =C2=A0Consider<br>
&gt; that implementation might want to let the existing queue of filtered e=
vent<br>
&gt; records be sent if is filter complexity causing the CPU issue.=C2=A0 =
=C2=A0That could be<br>
&gt; different than if it is a bandwidth issue driving the suspension, and =
you<br>
&gt; definitely want the &#39;subscription-suspended&#39; to be placed at t=
he head of line.<br>
&gt; <br>
&gt; <br>
&gt; It is up to the publisher to decide when to stop sending events on a<b=
r>
&gt; subscription.<br>
&gt; Obviously the publisher cannot wait until the subscription is idle.<br=
>
&gt; The reason it is getting suspended is it is far from idle<br>
&gt; <br>
&gt; So also up to the publisher wrt/ what to do with any events that have =
not<br>
&gt; been delivered yet on a subscription.=C2=A0 Could delete them or save =
them for<br>
&gt; when more bandwidth available (for example)<br>
<br>
Agree fully with this.=C2=A0 Is there text required in the draft here?<br>
<br></blockquote><div><br></div><div>no - I do not have any text to suggest=
=C2=A0</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex=
">
... <br>
&gt; Beyond that it is up to the implementation to decide if some un-transm=
itted<br>
&gt; queue of event records should be flushed and reprocessed based on the<=
br>
&gt; modification.=C2=A0 I do not expect this would popular, as a replay su=
bscription could<br>
&gt; accomplish this same functional need.<br>
&gt; <br>
&gt; Agreed that an implementation can drop at any time and increment the<b=
r>
&gt; appropriate counters. It will try to to do this, but no requirements e=
xcept<br>
&gt; maybe subscription events like &#39;replay-completed&#39; cannot be dr=
opped<br>
<br>
Have put a minor tweak into Section 2.7:<br>
<br>
[old]=C2=A0 subscription state change notifications cannot be filtered out<=
br>
<br>
[new] subscription state change notifications cannot be dropped or filtered=
 out<br>
<br></blockquote><div><br></div><div>Not sure this is a good addition becau=
se the event might get dropped</div><div>further down the stack out of the =
server process that sent the event.</div><div><br></div><div><br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex">
...<br>
&gt; Thinking more on your point, it might be worth tweaking a couple words=
 to<br>
&gt; allow for head-of-line placement of &quot;subscription-suspended&quot;=
.<br>
&gt; <br>
&gt; =C2=A0 =C2=A0&quot;Subscribed event records queued for sending after t=
he issuance of this<br>
&gt; =C2=A0 =C2=A0subscription state change notification may now be sent.&q=
uot;<br>
&gt; <br>
&gt; Are you good with this suggested change?<br>
&gt; <br>
&gt; Not sure -- it needs to be clear that subscription-suspended is the<br=
>
&gt; last event sent before suspending and subscription-resumed is<br>
&gt; the first event sent after transition from suspended to active.<br>
&gt; The next event could also be subscription-terminated.<br>
<br>
I do think this possibility is covered in the text.=C2=A0 For Section 2.7.4=
 subscription-suspended the current text is:<br>
<br>
&quot;No further notification will be sent until the subscription resumes o=
r is terminated.&quot;<br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
And Section 2.7.5 subscription-resumed says&quot;:<br>
&quot;Subscribed event records generated after the issuance of this subscri=
ption state change notification may now be sent.&quot;<br>
<br>
Based on the discussion, I can make it:<br>
<br>
&quot;Subscribed event records are again permitted to be sent following thi=
s subscription state change notification.&quot;<br>
<br>
Is this sufficient for you?<br>
<br></blockquote><div><br></div><div>old text is OK</div><div><br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
...<br>
&gt; &gt; I4) sec 2.4.6: RPC Failures<br>
&gt; &gt;=C2=A0 =C2=A0-- concern about a subscription-specific error report=
ing system<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 must make sure protocol error reporting syste=
m is used correctly<br>
&gt; <br>
&gt; Yes.=C2=A0 We have done our best to integrate with the embedded NETCON=
F and<br>
&gt; RESTCONF mechanisms.=C2=A0 There is much additional information in the=
 transport<br>
&gt; drafts here.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- The error-tag value needs to be identified for eac=
h &#39;reason&#39; identity<br>
&gt; <br>
&gt; This is done in the transport drafts.=C2=A0 =C2=A0E.g., see draft-ietf=
-netconf-netconf-event-<br>
&gt; notifications Section 7<br>
&gt; <br>
&gt; I do not agree this is a good idea.<br>
&gt; Each error identity should simply state the required &quot;error-tag&q=
uot;<br>
&gt; that is associated with the error.=C2=A0 This is expected of protocol =
operations<br>
&gt; that are added to NETCONF and RESTCONF.<br>
<br>
In draft-ietf-netconf-netconf-event-notifications, section 7, the required =
&quot;error-tag&quot; is identified as &quot;operation-failed&quot;.=C2=A0 =
=C2=A0If we instead placed that &quot;error-tag&quot; information in the YA=
NG model, then we have tied the YANG model to the RESTCONF and NETCONF tran=
sports.<br>
<br></blockquote><div><br></div><div>The subscribed-notifications draft con=
tains rpc-stmts.</div><div>Every other RFC with such statements specifies t=
he error handling details for them.</div><div>This document creates a new e=
rror reporting system just for 3 or 4 RPC operations,</div><div>and fails t=
o specify even the mandatory fields for the error reporting system</div><di=
v>for NETCONF and RESTCONF.</div><div><br></div><div>=C2=A0<br></div><block=
quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1=
px solid rgb(204,204,204);padding-left:1ex">
&gt; Both NETCONF and RESTCONF use a compatible error reporting data struct=
ure.<br>
&gt; The &quot;error-tag&quot; is used in both of them.=C2=A0 IMO client de=
velopers do not<br>
&gt; want a different set of error codes for the same error conditions.<br>
<br>
draft-ietf-netconf-restconf-notif Section 3.3 also requires an &quot;error-=
tag&quot; node of &quot;operation-failed&quot;.=C2=A0 So we used the transp=
ort drafts rather than the YANG model to support the same error codes for t=
he same error conditions.<br>
<br>
&gt; I agree that transport drafts could define their own error identities,=
<br>
&gt; which would document the expected error-tag there.<br>
&gt; <br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 2.=C2=A0 &quot;modify-subscription-stream-error-info=
&quot;: This MUST be returned<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with the leaf &quot;reason&quot; popul=
ated if an RPC error reason has not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 been placed elsewhere within the trans=
port portion of a failed<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;modify-subscription&quot; RPC re=
sponse.=C2=A0 This MUST be sent if hints<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- all 3 paragraphs like this; unclear what &quot;pla=
ced elsewhere&quot;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0text means; not appropriate for MUST;<b=
r>
&gt; <br>
&gt; Instead of &quot;placed elsewhere&quot;, how about: &quot;placed in su=
bscription transport<br>
&gt; document defined object&quot;.=C2=A0 Would this be sufficient?<br>
&gt; <br>
&gt; No -- NETCONF and RESTCONF have well-defined error reporting.<br>
&gt; The server requirements for this error reporting must be documented.<b=
r>
&gt;<br>
&gt; I agree with the following approach:<br>
&gt; =C2=A0 - each operation MUST identify the error-tags that are expected=
 for<br>
&gt; =C2=A0 =C2=A0 various error conditions (such s is done in RFC 6241)<br=
>
&gt; =C2=A0 - the server MUST return the specified error-tags. If a conditi=
on not explicitly<br>
&gt; =C2=A0 =C2=A0 defined then the server MUST pick the appropriate error-=
tag from RFC 6241<br>
&gt; =C2=A0- the server MAY include the specified rc:yang-data in the &lt;e=
rror-info&gt; data<br>
&gt; structure<br>
&gt; =C2=A0- the server MUST use the appropriate rc:yang-data to report hin=
ts<br>
&gt; =C2=A0- for protocols other than NETCONF and RESTCONF, they can map er=
ror-tag or<br>
&gt; ignore it,<br>
&gt; =C2=A0 =C2=A0but the document defining the protocol operation MUST pro=
vide<br>
<br>
Functionally, everything you ask for is fully covered when you include cons=
ider draft-ietf-netconf-netconf-event-notifications (section 7) and draft-i=
etf-netconf-restconf-notif (section 3.3).<br>
<br>
My read of the issue is that you believe &quot;error-tag&quot; must be spec=
ified in the YANG model.=C2=A0 I believe that &quot;error-tag&quot; shouldn=
&#39;t be in the YANG model because that would tie the model to a transport=
 type.<br>
<br></blockquote><div><br></div><div>The RFC containing the protocol operat=
ion defined with the rpc-stmt</div><div>needs to document at least the mand=
atory-to-implement &quot;error-tag&quot; field.</div><div><br></div><div>Th=
is is a WG or IESG review issue and maybe the IESG will not care at all abo=
ut it.</div><div><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex">
Any thoughts on how we might close this?=C2=A0 =C2=A0 If absolutely require=
d I could place a new comment line in the YANG model under<br>
/* Identities for RPC and Notification errors */<br>
<br>
The comment would be something like:<br>
/* When used with NETCONF and RESTCONF RPCs:<br>
=C2=A0 =C2=A0 &quot;error-type&quot; node to be used is &quot;application&q=
uot;<br>
=C2=A0 =C2=A0 =C2=A0&quot;error-tag&quot; must be &quot;operation-failed&qu=
ot;.=C2=A0 */<br>
<br>
This seems incongruous.=C2=A0 Just throwing it out as a suggestion.<br>
<br></blockquote><div><br></div><div>Usually the normative text contains th=
e error-tag info.</div><div>No other operations use a YANG module to define=
 their own error reporting system</div><div><br></div><div><br></div><div>A=
ndy</div><div><br></div><div><br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">
&gt; In any case, the -v21 wording results from the attempted balancing the=
 WG<br>
&gt; requests for:<br>
&gt; * merging with transport protocol error mechanisms<br>
&gt; * WG leadership guidance to provide requirements for transport documen=
ts<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Only 3 fields seem<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to be relevant (error-tag, error-app-ta=
g, error-info).<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Protcol operations are expected to docu=
ment server requirements<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0for these 3 fields, if applicable.=C2=
=A0 Only the error-tag<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0is mandatory-to-use.<br>
&gt; <br>
&gt; Hopefully these are covered sufficiently when this document is coupled=
 with<br>
&gt; the NETCONF and RESTCONF Notif transport documents.=C2=A0 =C2=A0For ot=
her transports,<br>
&gt; the tags you identify about would not be applicable.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- the error assignments are extremely specific. e.g.=
, it is not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 possible for &lt;kill-subscription&gt; to fai=
l with an<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 &#39;insufficient-resources&#39; error;<br>
&gt; <br>
&gt; This is the intent of the base specification, e.g., we don&#39;t belie=
ve a kill-<br>
&gt; subscription should fail for an insufficient-resources reason.=C2=A0 =
=C2=A0But vendors might<br>
&gt; desire more specificity.=C2=A0 As a result is certainly ok for vendor =
implementations<br>
&gt; to add new error identities.<br>
&gt; <br>
&gt; IMO anything can fail for insufficient resources. That is very impleme=
ntation-<br>
&gt; specific.<br>
<br>
Instead of implementation specific I would call it application specific.=C2=
=A0 =C2=A0Right now we don&#39;t have a catch-all error-identity of &#39;ot=
her-error&#39;.=C2=A0 We preferred that error conditions beyond the current=
 ones listed could be included by vendors as needed.=C2=A0 Further deployme=
nt experience could result in new error identities surfacing for standardiz=
ation should this draft catch on.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Do not agree that scoping each<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 identity to specific RPC operations is a good=
 idea.<br>
&gt; <br>
&gt; This level of specificity was not the author&#39;s original plans.=C2=
=A0 Nor was this level of<br>
&gt; specificity part of earlier draft versions up through -v08.=C2=A0 =C2=
=A0However members of<br>
&gt; the WG made it clear that such specificity was necessary for draft pro=
gression.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- how are errors in these parameters reported for co=
nfigured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 subscriptions when &lt;edit-config&gt; is the=
 RPC that has the error?<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 How are the yang-data structs used for edit-c=
onfig or commit errors?<br>
&gt; <br>
&gt; None of these yang-data structures are specified for use with &lt;edit=
-config&gt;<br>
&gt; operations.=C2=A0 =C2=A0For &lt;edit-config&gt;, the change to a confi=
gured subscription would<br>
&gt; be written to the datastore if it were semantically valid.=C2=A0 =C2=
=A0At this point the<br>
&gt; subscription enters the [evaluate] points of Figure 8.=C2=A0 Issues fr=
om this point out<br>
&gt; would be reported with a vendor specific construct such as SYSLOG.<br>
&gt; <br>
&gt; So how are hints reported for configured subscriptions?<br>
<br>
There is nothing in the specification which requires this.=C2=A0 =C2=A0An i=
mplementation could choose to place these in some form of SYSLOG.<br>
...<br>
&gt; &gt; I6) sec 2.5, para 3:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 On a receiver of a<br>
&gt; &gt;=C2=A0 =C2=A0 configured subscription, support for dynamic subscri=
ptions is<br>
&gt; &gt;=C2=A0 =C2=A0 optional except where replaying missed event records=
 is required.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- confusing because text in 1.3:<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Note that there is no mixing-and-matching of =
dynamic and configured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 operations on a single subscription.=C2=A0 Sp=
ecifically, a configured<br>
&gt; &gt;=C2=A0 =C2=A0-- clarify the receiver may have multiple subscriptio=
ns here<br>
&gt; &gt;=C2=A0 =C2=A0-- not clear what &quot;except where replaying...&quo=
t; text means<br>
&gt; <br>
&gt; How about the following tweak:<br>
&gt; <br>
&gt; &quot;On a receiver of a configured subscription, support for dynamic =
subscriptions<br>
&gt; is optional.=C2=A0 However if replaying missed event records is requir=
ed for a<br>
&gt; configured subscription, support for dynamic subscription is highly<br=
>
&gt; recommended.=C2=A0 In this case, a separate dynamic subscription can b=
e established<br>
&gt; to retransmit the missing event records.&quot;<br>
&gt; <br>
&gt; OK<br>
<br>
Change made.<br>
<br>
&gt; &gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression is evalua=
ted in the following XPath context:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0 =C2=A0The=
 set of namespace declarations is the set of prefix<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and=
 namespace pairs for all YANG modules implemented<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by =
the server, where the prefix is the YANG module<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nam=
e and the namespace is as defined by the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#3=
9;namespace&#39; statement in the YANG module.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- This prefix processing is not done anywhere else i=
n NETCONF<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad precedent.=C2=A0=
 Only the XML prefixes<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing of XML enco=
ding.=C2=A0 YANG<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to be unique=
, unlike<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
&gt; <br>
&gt; This text was proposed by Martin as a result of the &quot;xpath expres=
sions in JSON&quot;<br>
&gt; thread last October in NETMOD.<br>
&gt; <br>
&gt; I am happy to incorporate whatever text is appropriate.=C2=A0 I was ho=
ping that the<br>
&gt; suggested text was sufficient for now.=C2=A0 Kent has already incorpor=
ated this as an<br>
&gt; issue for yang-next<br>
&gt; <a href=3D"https://github.com/netmod-wg/yang-next/issues/55" rel=3D"no=
referrer" target=3D"_blank">https://github.com/netmod-wg/yang-next/issues/5=
5</a><br>
&gt; So hopefully there is no final precedent being claimed.<br>
&gt; <br>
&gt; I do not agree that this YANG module should define a new way to encode=
 XPath<br>
&gt; into XML instance documents. This will require significant changes to =
server<br>
&gt; implementations.=C2=A0 YANG module prefixes are not even required to b=
e unique<br>
&gt; so the set of prefixes used by the server in XML instance documents ma=
y be<br>
&gt; different,<br>
&gt; since it must be unique.<br>
<br>
See next note<br>
<br>
&gt; &gt;=C2=A0 =C2=A0-- NMDA allows the same module to appear in multiple =
module-sets<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 and different in each datastore. This text ab=
out &quot;implemented by<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the server&quot; does not work for NMDA<br>
&gt; <br>
&gt; I am happy to adopt whatever text meets YANG doctor approval.=C2=A0 =
=C2=A0Can you<br>
&gt; suggest?<br>
&gt; <br>
&gt; <br>
&gt; Remove all text about YANG prefixes and continue using XML encoding wi=
thout<br>
&gt; modification<br>
<br>
As a different YANG doctor has required the current text modification, I be=
lieve this is a blocker.=C2=A0 What is the process for YANG model reviews i=
n such a case.=C2=A0 I am happy to accept whatever here.=C2=A0 Any suggesti=
ons on next steps?<br>
<br>
...<br>
&gt; &gt;=C2=A0 =C2=A0-- there should be an example of a configurable encod=
ing provided<br>
&gt; <br>
&gt; I am happy to enhance the definition YANG model&#39;s identity definit=
ion of<br>
&gt; &quot;configurable-encoding&quot;.=C2=A0 I could do this by adding the=
 following additional text<br>
&gt; to the description: &quot;An example of a configurable encoding might =
be a new<br>
&gt; identity such as &#39;encode-cbor&#39;.=C2=A0 Such an identity could u=
se &#39;configurable-<br>
&gt; encoding&#39; as its base.=C2=A0 This would allow a dynamic subscripti=
on encoded in JSON<br>
&gt; [RFC-8259] to request notification messages be encoded via CBOR [RFC-<=
br>
&gt; 7049].=C2=A0 Further details for any specific configurable encoding wo=
uld be explored<br>
&gt; in a transport document based on this specification.&quot;=C2=A0 =C2=
=A0Does this meet your ask?<br>
&gt; <br>
&gt; <br>
&gt; OK<br>
<br>
Added<br>
<br>
&gt; &gt; I11) extension subscription-state-notification {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This statement is not for use<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 outside of this YANG module.&quot;;<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- this text should be removed. There is no value in =
limiting<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the scope of this extension.=C2=A0 It prevent=
s even this WG from<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 creating a module that uses the extension aga=
in.<br>
&gt; <br>
&gt; This was the subject of significant debate in the WG.=C2=A0 The author=
s did not want<br>
&gt; this restriction either.<br>
&gt; <br>
&gt; To be allowed to progress the document, we inserted the document.=C2=
=A0 If this<br>
&gt; really is mandatory-to-remove from a YANG doctor point-of-view, what i=
s the<br>
&gt; process for quick closure on this issue between WG leadership and the =
YANG<br>
&gt; doctors?<br>
&gt; <br>
&gt; <br>
&gt; The YANG language makes no restrictions about exporting statements.<br=
>
&gt; I guess I missed that debate so I will just say OK and wonder what pro=
blem<br>
&gt; this is supposed to solve. I guess the WG wants to give YANG Doctors m=
ore<br>
&gt; things to check. (This is what we called a CLR in SNMP-land ;-)<br>
<br>
Thanks.=C2=A0 No action taken.<br>
<br>
&gt; &gt; I13)=C2=A0 =C2=A0notification subscription-started {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification indicates that =
a subscription has started and<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications are beginning to b=
e sent. This notification shall<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 only be sent to receivers of a subscri=
ption; it does not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 constitute a general-purpose notificat=
ion.&quot;;<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- 2nd sentence is confusing; all notifications are s=
ent to<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 receivers of a subscription. last part is red=
undant since<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the sn:subscription-state-notification extens=
ion is used<br>
&gt; <br>
&gt; There is no issue with removing this second sentence completely.=C2=A0=
 If I did that,<br>
&gt; would this address your concern?<br>
&gt; <br>
&gt; OK<br>
<br>
Done<br>
<br>
&gt; &gt; I14)=C2=A0 =C2=A0rc:yang-data modify-subscription-stream-error-in=
fo {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf filter-failure-hint {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;Information =
describing where and/or why a provided filter<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 was unsupportable=
 for a subscription.&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- rpc-error already allows more precise error report=
ing<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 It uses error-tag, error-path, error-string, =
and error-info extensions<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 to identify which parameters/conditions cause=
d the RPC to be rejected.<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 This error reporting will continue to be used=
, Not sure this failure-hint<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 has any standards value. Perhaps real-use exa=
mple can be added<br>
&gt; <br>
&gt; Per your thoughts on rpc-error...=C2=A0 =C2=A0For NETCONF and RESTCONF=
, you point to<br>
&gt; error structures which historically been used with those transports.=
=C2=A0 Of course<br>
&gt; we were looking to have all subscription hints supportable across tran=
sports via<br>
&gt; a single portable YANG data structure.=C2=A0 So the value is that a si=
ngle string<br>
&gt; object exists so to transport whatever the vendor thinks would be usef=
ul as a<br>
&gt; hint in this case.=C2=A0 I.e., there has been no attempt to standardiz=
e the contents of<br>
&gt; this string.=C2=A0 If operational experiences drive a desire for such =
structuring, this<br>
&gt; could provide the basis for a new draft building off of this starting =
point.<br>
&gt; <br>
&gt; I guess I do not consider NETCONF and RESTCONF &quot;historic&quot; qu=
ite yet.<br>
&gt; There are many implementations using the rpc-error reporting with no i=
ntent<br>
&gt; to replace it with something else.<br>
&gt; <br>
&gt; I was just asking for an example, since I have no idea what an impleme=
ntor<br>
&gt; would put in this leaf.<br>
<br>
Here is an example from our implementation.=C2=A0 Say you mistype an extra =
&quot;\&quot; to an xpath filter:<br>
/if:interfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper-=
status<br>
As a result, the filter is passed to the publisher is:<br>
/if:inte\rfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper=
-status<br>
<br>
What we would return in the failure-hint string is:<br>
Invalid expression: offset(9) in &#39;/if:inte\rfaces-state/interface[name=
=3D&quot;GigabitEthernet0/0&quot;]/oper-status&#39;<br>
<br>
Eric<br>
<br>
&gt; Andy<br>
<br>
</blockquote></div></div>

--00000000000061a358057fd1f61e--


From nobody Mon Jan 21 01:49:56 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0A531130E9A; Mon, 21 Jan 2019 01:49:55 -0800 (PST)
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 EndZW69wCz36; Mon, 21 Jan 2019 01:49:53 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 626B8128CE4; Mon, 21 Jan 2019 01:49:53 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id 499C61AE028C; Mon, 21 Jan 2019 10:49:52 +0100 (CET)
Date: Mon, 21 Jan 2019 10:49:51 +0100 (CET)
Message-Id: <20190121.104951.444527646937998070.mbj@tail-f.com>
To: andy@yumaworks.com
Cc: evoit@cisco.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com>
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/qSYwp2tQG8aU0uPoabgHi3DlbEI>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Jan 2019 09:49:55 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Wed, Jan 16, 2019 at 10:35 AM Eric Voit (evoit) <evoit@cisco.com> wrote:
> 
> > Hi Andy,
> >
> > Thanks for the review.  Some thoughts....
> >
> > > From: Andy Bierman, January 14, 2019 8:08 PM

[...]

> > > I7) leaf stream-xpath-filter: [multiple uses]
> > >
> > >            The expression is evaluated in the following XPath context:
> > >
> > >              o   The set of namespace declarations is the set of prefix
> > >                  and namespace pairs for all YANG modules implemented
> > >                  by the server, where the prefix is the YANG module
> > >                  name and the namespace is as defined by the
> > >                  'namespace' statement in the YANG module.
> > >
> > >   -- This prefix processing is not done anywhere else in NETCONF
> > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > >      should be required for processing of XML encoding.  YANG
> > >      module prefixes are not required to be unique, unlike
> > >      the prefix mappings in XML
> >
> > This text was proposed by Martin as a result of the "xpath expressions in
> > JSON" thread last October in NETMOD.
> >
> > I am happy to incorporate whatever text is appropriate.  I was hoping that
> > the suggested text was sufficient for now.  Kent has already incorporated
> > this as an issue for yang-next
> > https://github.com/netmod-wg/yang-next/issues/55
> > So hopefully there is no final precedent being claimed.
> >
> >
> I do not agree that this YANG module should define a new way to encode XPath
> into XML instance documents.

This mechanism was first used in RFC 8040, section 4.8.4, in order to
have a transport-agnostic encoding of XPath expressions (same for XML
and JSON).

There was long debate on the ML for this issue, and this was the
outcome that the WG decided.

> This will require significant changes to server
> implementations.  YANG module prefixes are not even required to be unique
> so the set of prefixes used by the server in XML instance documents may be
> different,
> since it must be unique.

YANG module prefixes are not used here.  The module *name* is used as
the identifier prefix in XPath expressions:

  /ietf-interfaces:interfaces/ietf-interfaces:interface/...



/martin


From nobody Mon Jan 21 11:17:28 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D3BEC130F11 for <netconf@ietfa.amsl.com>; Mon, 21 Jan 2019 11:17:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 J1vDX4J8w6Ev for <netconf@ietfa.amsl.com>; Mon, 21 Jan 2019 11:17:19 -0800 (PST)
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::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 03924130F0F for <netconf@ietf.org>; Mon, 21 Jan 2019 11:17:16 -0800 (PST)
Received: by mail-lj1-x229.google.com with SMTP id v1-v6so18510542ljd.0 for <netconf@ietf.org>; Mon, 21 Jan 2019 11:17:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hwuz7GFI47uvUwZa6Y3N0UkL/qlldXwjZoTWZ44qmks=; b=kiQRHuu+jbYJ1gX15qD23+excAzdrmwfqoUq6lhcL+lcmonYHEPmB3k3MU5dlgxwa5 fU/3U77rz0X9hJ/xcoaeOvdzhJMZQu0ySOb16hrOxFkyj9m04yj3HWVGpJdRbw2cmf/d YvuSGwkLpzgVDkXkF2dOETnm4TDGQoZYC56vnjekoGb6nLFWtXaoPvWFSpnlAcWPj+C8 0Y9zny+xwHvEMZ0d7cd6c1bJniCTnO3qKG6UY2QPNVXpi/4xn1b4Sg52f56abdRbHd9T xnfmxev7Luvx9blR1b6hCKyfFz2g6LYE7mKYsHua/kh2zS1bqsAR/2OvFrtMKdnW3ytc XiRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hwuz7GFI47uvUwZa6Y3N0UkL/qlldXwjZoTWZ44qmks=; b=n2iACOSGa44ekjucKg4nXl0cmqo0gnqo1uAYv/5VdGaLuROk05sky8vyHduLzqPUOA uHmRs4X4L2WfLkowPkyzPVLIaYiTcrKo8AfWmIo2Mfkoc1rokRBocDLrD+DKNrSQPyHW 3r/Xb97dYtLjXuWBT8nnoWk5FFo7p2P9CcuU//7KAl7r0suzQ4t3frvq1TfN+UMHSHeu 9vrB9YBHAPH4I3sEsnVP8aVXZlhWU41jV3fwia/ntcyCWm1tLwsrB+cMbNe/ObGyXJQI eoGMGbZM3n6nc62haXKcBoUQBb7hC04SOPSgvJdjpe4iifs0yecb9SbHh0rAf/ruEzmR 4Ktw==
X-Gm-Message-State: AJcUukfGgPY/mCTiYwZSWpc9UbXDYnhMI9bdZCCkjfo9ixLp9lWbNxZk dO32DSX4qF6Kwf6z67MKN6DdnTMbzdo9Agig+j3C0Q==
X-Google-Smtp-Source: ALg8bN4P1qNTH6z1x2qPBm4MhoPei9gmdHBbUTDrIHoxJ/qMqRQSkPBL+CoHmmdok2ZW5OV2sde9G+ntfBiOeYODGYA=
X-Received: by 2002:a05:651c:14e:: with SMTP id c14mr18007257ljd.20.1548098234013;  Mon, 21 Jan 2019 11:17:14 -0800 (PST)
MIME-Version: 1.0
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <20190121.104951.444527646937998070.mbj@tail-f.com>
In-Reply-To: <20190121.104951.444527646937998070.mbj@tail-f.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 21 Jan 2019 11:17:02 -0800
Message-ID: <CABCOCHSPLkAQY_Q5-ge8JCiLVTHUEO0pHSE+8TmaTnThQCGNcg@mail.gmail.com>
To: Martin Bjorklund <mbj@tail-f.com>
Cc: "Eric Voit (evoit)" <evoit@cisco.com>, YANG Doctors <yang-doctors@ietf.org>, Netconf <netconf@ietf.org>,  draft-ietf-netconf-subscribed-notifications.all@ietf.org
Content-Type: multipart/alternative; boundary="00000000000050e26a057ffcb54d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/av0lQVetyX9oWPE3T7T-yd0bcD8>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Jan 2019 19:17:21 -0000

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

On Mon, Jan 21, 2019 at 1:49 AM Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Wed, Jan 16, 2019 at 10:35 AM Eric Voit (evoit) <evoit@cisco.com>
> wrote:
> >
> > > Hi Andy,
> > >
> > > Thanks for the review.  Some thoughts....
> > >
> > > > From: Andy Bierman, January 14, 2019 8:08 PM
>
> [...]
>
> > > > I7) leaf stream-xpath-filter: [multiple uses]
> > > >
> > > >            The expression is evaluated in the following XPath
> context:
> > > >
> > > >              o   The set of namespace declarations is the set of
> prefix
> > > >                  and namespace pairs for all YANG modules implemented
> > > >                  by the server, where the prefix is the YANG module
> > > >                  name and the namespace is as defined by the
> > > >                  'namespace' statement in the YANG module.
> > > >
> > > >   -- This prefix processing is not done anywhere else in NETCONF
> > > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > > >      should be required for processing of XML encoding.  YANG
> > > >      module prefixes are not required to be unique, unlike
> > > >      the prefix mappings in XML
> > >
> > > This text was proposed by Martin as a result of the "xpath expressions
> in
> > > JSON" thread last October in NETMOD.
> > >
> > > I am happy to incorporate whatever text is appropriate.  I was hoping
> that
> > > the suggested text was sufficient for now.  Kent has already
> incorporated
> > > this as an issue for yang-next
> > > https://github.com/netmod-wg/yang-next/issues/55
> > > So hopefully there is no final precedent being claimed.
> > >
> > >
> > I do not agree that this YANG module should define a new way to encode
> XPath
> > into XML instance documents.
>
> This mechanism was first used in RFC 8040, section 4.8.4, in order to
> have a transport-agnostic encoding of XPath expressions (same for XML
> and JSON).
>
> There was long debate on the ML for this issue, and this was the
> outcome that the WG decided.
>
>
OK -- no need to change anything then.
I do not agree that "xmlns" attributes pose an implementation challenge for
clients
but servers already need custom XPath to process YANG so this just adds to
that list.



> > This will require significant changes to server
> > implementations.  YANG module prefixes are not even required to be unique
> > so the set of prefixes used by the server in XML instance documents may
> be
> > different,
> > since it must be unique.
>
> YANG module prefixes are not used here.  The module *name* is used as
> the identifier prefix in XPath expressions:
>
>   /ietf-interfaces:interfaces/ietf-interfaces:interface/...
>
>
>
> /martin
>


Andy

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Mon, Jan 21, 2019 at 1:49 AM Martin Bjorklund &lt;<a hr=
ef=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">Andy Bierman &lt;<a href=3D"mail=
to:andy@yumaworks.com" target=3D"_blank">andy@yumaworks.com</a>&gt; wrote:<=
br>
&gt; On Wed, Jan 16, 2019 at 10:35 AM Eric Voit (evoit) &lt;<a href=3D"mail=
to:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; <br>
&gt; &gt; Hi Andy,<br>
&gt; &gt;<br>
&gt; &gt; Thanks for the review.=C2=A0 Some thoughts....<br>
&gt; &gt;<br>
&gt; &gt; &gt; From: Andy Bierman, January 14, 2019 8:08 PM<br>
<br>
[...]<br>
<br>
&gt; &gt; &gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression is e=
valuated in the following XPath context:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0 =C2=
=A0The set of namespace declarations is the set of prefix<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 and namespace pairs for all YANG modules implemented<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 by the server, where the prefix is the YANG module<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 name and the namespace is as defined by the<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 &#39;namespace&#39; statement in the YANG module.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0-- This prefix processing is not done anywhere e=
lse in NETCONF<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad precedent.=
=C2=A0 Only the XML prefixes<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing of XML=
 encoding.=C2=A0 YANG<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to be u=
nique, unlike<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
&gt; &gt;<br>
&gt; &gt; This text was proposed by Martin as a result of the &quot;xpath e=
xpressions in<br>
&gt; &gt; JSON&quot; thread last October in NETMOD.<br>
&gt; &gt;<br>
&gt; &gt; I am happy to incorporate whatever text is appropriate.=C2=A0 I w=
as hoping that<br>
&gt; &gt; the suggested text was sufficient for now.=C2=A0 Kent has already=
 incorporated<br>
&gt; &gt; this as an issue for yang-next<br>
&gt; &gt; <a href=3D"https://github.com/netmod-wg/yang-next/issues/55" rel=
=3D"noreferrer" target=3D"_blank">https://github.com/netmod-wg/yang-next/is=
sues/55</a><br>
&gt; &gt; So hopefully there is no final precedent being claimed.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; I do not agree that this YANG module should define a new way to encode=
 XPath<br>
&gt; into XML instance documents.<br>
<br>
This mechanism was first used in RFC 8040, section 4.8.4, in order to<br>
have a transport-agnostic encoding of XPath expressions (same for XML<br>
and JSON).<br>
<br>
There was long debate on the ML for this issue, and this was the<br>
outcome that the WG decided.<br>
<br></blockquote><div><br></div><div>OK -- no need to change anything then.=
</div><div>I do not agree that &quot;xmlns&quot; attributes pose an impleme=
ntation challenge for clients</div><div>but servers already need custom XPa=
th to process YANG so this just adds to that list.</div><div><br></div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; This will require significant changes to server<br>
&gt; implementations.=C2=A0 YANG module prefixes are not even required to b=
e unique<br>
&gt; so the set of prefixes used by the server in XML instance documents ma=
y be<br>
&gt; different,<br>
&gt; since it must be unique.<br>
<br>
YANG module prefixes are not used here.=C2=A0 The module *name* is used as<=
br>
the identifier prefix in XPath expressions:<br>
<br>
=C2=A0 /ietf-interfaces:interfaces/ietf-interfaces:interface/...<br>
<br>
<br>
<br>
/martin<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=
=C2=A0</div></div></div>

--00000000000050e26a057ffcb54d--


From nobody Mon Jan 21 11:26:34 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 077111286D9 for <netconf@ietfa.amsl.com>; Mon, 21 Jan 2019 11:26:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 w40CHPIR1oLS for <netconf@ietfa.amsl.com>; Mon, 21 Jan 2019 11:26:26 -0800 (PST)
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::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 118E5126BED for <netconf@ietf.org>; Mon, 21 Jan 2019 11:26:22 -0800 (PST)
Received: by mail-lj1-x235.google.com with SMTP id c19-v6so18497462lja.5 for <netconf@ietf.org>; Mon, 21 Jan 2019 11:26:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dL1RpyHyx2UMlXstHor5YPNtFtmTPhdKKNdy9CT5NTE=; b=SKG5Eq049NuqLEitWxEJxVah3qeiVU8z9AnSHxM8+N3cnBtUpv6Pof03oM43QzOqIV Bzt/oF4q5vP5JBy6KSqhb1PMvtHaWwt3nvymwlRcS8HuLEiAnKUUITJcvmZh8TQaRkSb 2HTx2W4CAoBsFAv4yN5GC4chJs67IHbc4llamrJ0kQ0OTobekIkpvXunY3FKepfGOifQ 3ShDSt9yzYc25eOnYG81my7QGe8Ew56FMFQLCafbmkOwunXn73vnwOCfq+zxn9uKWsbT DJAS9IAB3jOZnTLDRi8TnQ0eC02NDrGd8CeeFjy7LbJOZX+HK7QDQYaqxvdKcGhFdX+R 9A5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dL1RpyHyx2UMlXstHor5YPNtFtmTPhdKKNdy9CT5NTE=; b=OpsuecxtABOg72kkXNbQlCSWhXXB73jtjpHSg7XLbA7IrHoThnlnYv721wDxhyeHHa 7uq/3Z97mrWr3vkty47l3DWHxHuj6vGugif5JXpj4SFdCntWeit+No0TGKOyO+AvtATa Nl+lhiOX2mqA54/II4g440LzXFD4Sfs5E4PkM7XBaQ3qTwpF78CCuQJWAjTQSVqaOjn+ 4TM28uDZVTFvwa9PN7Evd+IoDqTbRITtxIAKAJwM+WPIE1F+ZBdOAb7LzHNcTM2WXiug o6ACQN+Tfm7/Gybb+aOwBDxA0JClgIm9S5ukCT2c+wb8EsdrPO5QIGypbH8b8CrLqgDY rctg==
X-Gm-Message-State: AJcUukc2gBu6w5nHsS3eCf23GIMMu4zToNgG0MDf2QO5SAqXmupXr5cT 01BmTARnuQBja3YyeS+fHUi637RBeFtcwC9zSY90P0+FmCA=
X-Google-Smtp-Source: ALg8bN6H6M7FlNn5FfKAEYevlJ6jr+59NsU3YRcT4DY52IF5LGdEUnK2BOsTudQJA0km1EyjnXFlVGYIVd+kSlujTks=
X-Received: by 2002:a2e:458b:: with SMTP id s133-v6mr18388435lja.170.1548098779940;  Mon, 21 Jan 2019 11:26:19 -0800 (PST)
MIME-Version: 1.0
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com> <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
In-Reply-To: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 21 Jan 2019 11:26:08 -0800
Message-ID: <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>,  "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000db268d057ffcd577"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/AEjfehcfnKgSkffsxwwKXzyEcVo>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Jan 2019 19:26:31 -0000

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

Hi,

I think the error-tag issue can be resolved by including 1 extra sentence
in each error identity.
I know this is NETCONF and RESTCONF centric but those are the only 2
standard protocols
supported for the YANG language right now.

       If the 'error-tag' field is used in error reporting,
       then the value '<correct error-tag>' MUST be used.

For example:


OLD:

  identity insufficient-resources {
    base establish-subscription-error;
    base modify-subscription-error;
    base subscription-suspended-reason;
    description
      "The publisher has insufficient resources to support the
       requested subscription.  An example might be that allocated CPU
       is too limited to generate the desired set of notification
       messages.";
  }


NEW:

  identity insufficient-resources {
    base establish-subscription-error;
    base modify-subscription-error;
    base subscription-suspended-reason;
    description
      "The publisher has insufficient resources to support the
       requested subscription.  An example might be that allocated CPU
       is too limited to generate the desired set of notification
       messages. If the 'error-tag' field is used in error reporting,
       then the value 'resource-denied' MUST be used.";
  }


Andy


On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit) <evoit@cisco.com> wrote:

> Hi Andy,
>
> Thanks.  I have incorporated items where there was agreement.  I have
> removed the items below where you were ok.
>
> Remaining below are the open items, with responses.
>
> > >    Should be clear somewhere that
> > >    suspend is for CPU and other resources, and NACM not considered
> > >    to be a resource.
> >
> > If NACM is active, it needs to be followed.  The text we have for NACM
> is in
> > Section 5.4.  Do you see something else specific to subscription
> suspension
> > needed here?  (Maybe I am not getting your point.)
> >
> > No -- OK to leave NACM as terminate-if-loss-of-rights
> > (Is there an error identity for this event?)
>
> The identity which applies here is "stream-unavailable".  This is the same
> identity which would be used if a subscriber had never sufficient
> permissions in the first place.  I don't believe we would want to return an
> identity specific to when NACM when permissions have just been changed.
>
> > > I3) sec 2.1 para 6:
> > >    Event records MUST NOT be delivered to a receiver in a different
> > >    order than they were placed onto an event stream.
> > >
> > >   -- does this apply to subscription-state? Think not, they are not
> events
> > >     placed in event stream.
> >
> > Agree that they are not on the event stream.  So they do not violate this
> > requirement.
> >
> > Additionally there is supporting text in "Section 2.7: subscription state
> > notifications", including...
> >
> > " Instead, they are inserted (as defined in this section) within the
> sequence of
> > notification messages sent to a particular receiver."
> >
> > >     Need to allow ended or suspended to be sent
> > >     head-of-line whenever state changes
> >
> > I am not sure that suspended should always be sent head-of-line.
>  Consider
> > that implementation might want to let the existing queue of filtered
> event
> > records be sent if is filter complexity causing the CPU issue.   That
> could be
> > different than if it is a bandwidth issue driving the suspension, and you
> > definitely want the 'subscription-suspended' to be placed at the head of
> line.
> >
> >
> > It is up to the publisher to decide when to stop sending events on a
> > subscription.
> > Obviously the publisher cannot wait until the subscription is idle.
> > The reason it is getting suspended is it is far from idle
> >
> > So also up to the publisher wrt/ what to do with any events that have not
> > been delivered yet on a subscription.  Could delete them or save them for
> > when more bandwidth available (for example)
>
> Agree fully with this.  Is there text required in the draft here?
>
> ...
> > Beyond that it is up to the implementation to decide if some
> un-transmitted
> > queue of event records should be flushed and reprocessed based on the
> > modification.  I do not expect this would popular, as a replay
> subscription could
> > accomplish this same functional need.
> >
> > Agreed that an implementation can drop at any time and increment the
> > appropriate counters. It will try to to do this, but no requirements
> except
> > maybe subscription events like 'replay-completed' cannot be dropped
>
> Have put a minor tweak into Section 2.7:
>
> [old]  subscription state change notifications cannot be filtered out
>
> [new] subscription state change notifications cannot be dropped or
> filtered out
>
> ...
> > Thinking more on your point, it might be worth tweaking a couple words to
> > allow for head-of-line placement of "subscription-suspended".
> >
> >    "Subscribed event records queued for sending after the issuance of
> this
> >    subscription state change notification may now be sent."
> >
> > Are you good with this suggested change?
> >
> > Not sure -- it needs to be clear that subscription-suspended is the
> > last event sent before suspending and subscription-resumed is
> > the first event sent after transition from suspended to active.
> > The next event could also be subscription-terminated.
>
> I do think this possibility is covered in the text.  For Section 2.7.4
> subscription-suspended the current text is:
>
> "No further notification will be sent until the subscription resumes or is
> terminated."
>
> And Section 2.7.5 subscription-resumed says":
> "Subscribed event records generated after the issuance of this
> subscription state change notification may now be sent."
>
> Based on the discussion, I can make it:
>
> "Subscribed event records are again permitted to be sent following this
> subscription state change notification."
>
> Is this sufficient for you?
>
> ...
> > > I4) sec 2.4.6: RPC Failures
> > >   -- concern about a subscription-specific error reporting system
> > >      must make sure protocol error reporting system is used correctly
> >
> > Yes.  We have done our best to integrate with the embedded NETCONF and
> > RESTCONF mechanisms.  There is much additional information in the
> transport
> > drafts here.
> >
> > >   -- The error-tag value needs to be identified for each 'reason'
> identity
> >
> > This is done in the transport drafts.   E.g., see
> draft-ietf-netconf-netconf-event-
> > notifications Section 7
> >
> > I do not agree this is a good idea.
> > Each error identity should simply state the required "error-tag"
> > that is associated with the error.  This is expected of protocol
> operations
> > that are added to NETCONF and RESTCONF.
>
> In draft-ietf-netconf-netconf-event-notifications, section 7, the required
> "error-tag" is identified as "operation-failed".   If we instead placed
> that "error-tag" information in the YANG model, then we have tied the YANG
> model to the RESTCONF and NETCONF transports.
>
> > Both NETCONF and RESTCONF use a compatible error reporting data
> structure.
> > The "error-tag" is used in both of them.  IMO client developers do not
> > want a different set of error codes for the same error conditions.
>
> draft-ietf-netconf-restconf-notif Section 3.3 also requires an "error-tag"
> node of "operation-failed".  So we used the transport drafts rather than
> the YANG model to support the same error codes for the same error
> conditions.
>
> > I agree that transport drafts could define their own error identities,
> > which would document the expected error-tag there.
> >
> >
> > >    2.  "modify-subscription-stream-error-info": This MUST be returned
> > >        with the leaf "reason" populated if an RPC error reason has not
> > >        been placed elsewhere within the transport portion of a failed
> > >        "modify-subscription" RPC response.  This MUST be sent if hints
> > >
> > >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> > >       text means; not appropriate for MUST;
> >
> > Instead of "placed elsewhere", how about: "placed in subscription
> transport
> > document defined object".  Would this be sufficient?
> >
> > No -- NETCONF and RESTCONF have well-defined error reporting.
> > The server requirements for this error reporting must be documented.
> >
> > I agree with the following approach:
> >   - each operation MUST identify the error-tags that are expected for
> >     various error conditions (such s is done in RFC 6241)
> >   - the server MUST return the specified error-tags. If a condition not
> explicitly
> >     defined then the server MUST pick the appropriate error-tag from RFC
> 6241
> >  - the server MAY include the specified rc:yang-data in the <error-info>
> data
> > structure
> >  - the server MUST use the appropriate rc:yang-data to report hints
> >  - for protocols other than NETCONF and RESTCONF, they can map error-tag
> or
> > ignore it,
> >    but the document defining the protocol operation MUST provide
>
> Functionally, everything you ask for is fully covered when you include
> consider draft-ietf-netconf-netconf-event-notifications (section 7) and
> draft-ietf-netconf-restconf-notif (section 3.3).
>
> My read of the issue is that you believe "error-tag" must be specified in
> the YANG model.  I believe that "error-tag" shouldn't be in the YANG model
> because that would tie the model to a transport type.
>
> Any thoughts on how we might close this?    If absolutely required I could
> place a new comment line in the YANG model under
> /* Identities for RPC and Notification errors */
>
> The comment would be something like:
> /* When used with NETCONF and RESTCONF RPCs:
>     "error-type" node to be used is "application"
>      "error-tag" must be "operation-failed".  */
>
> This seems incongruous.  Just throwing it out as a suggestion.
>
> > In any case, the -v21 wording results from the attempted balancing the WG
> > requests for:
> > * merging with transport protocol error mechanisms
> > * WG leadership guidance to provide requirements for transport documents
> >
> > >      Only 3 fields seem
> > >       to be relevant (error-tag, error-app-tag, error-info).
> > >       Protcol operations are expected to document server requirements
> > >       for these 3 fields, if applicable.  Only the error-tag
> > >       is mandatory-to-use.
> >
> > Hopefully these are covered sufficiently when this document is coupled
> with
> > the NETCONF and RESTCONF Notif transport documents.   For other
> transports,
> > the tags you identify about would not be applicable.
> >
> > >   -- the error assignments are extremely specific. e.g., it is not
> > >      possible for <kill-subscription> to fail with an
> > >      'insufficient-resources' error;
> >
> > This is the intent of the base specification, e.g., we don't believe a
> kill-
> > subscription should fail for an insufficient-resources reason.   But
> vendors might
> > desire more specificity.  As a result is certainly ok for vendor
> implementations
> > to add new error identities.
> >
> > IMO anything can fail for insufficient resources. That is very
> implementation-
> > specific.
>
> Instead of implementation specific I would call it application specific.
>  Right now we don't have a catch-all error-identity of 'other-error'.  We
> preferred that error conditions beyond the current ones listed could be
> included by vendors as needed.  Further deployment experience could result
> in new error identities surfacing for standardization should this draft
> catch on.
>
> > >      Do not agree that scoping each
> > >      identity to specific RPC operations is a good idea.
> >
> > This level of specificity was not the author's original plans.  Nor was
> this level of
> > specificity part of earlier draft versions up through -v08.   However
> members of
> > the WG made it clear that such specificity was necessary for draft
> progression.
> >
> > >   -- how are errors in these parameters reported for configured
> > >      subscriptions when <edit-config> is the RPC that has the error?
> > >      How are the yang-data structs used for edit-config or commit
> errors?
> >
> > None of these yang-data structures are specified for use with
> <edit-config>
> > operations.   For <edit-config>, the change to a configured subscription
> would
> > be written to the datastore if it were semantically valid.   At this
> point the
> > subscription enters the [evaluate] points of Figure 8.  Issues from this
> point out
> > would be reported with a vendor specific construct such as SYSLOG.
> >
> > So how are hints reported for configured subscriptions?
>
> There is nothing in the specification which requires this.   An
> implementation could choose to place these in some form of SYSLOG.
> ...
> > > I6) sec 2.5, para 3:
> > >
> > >    On a receiver of a
> > >    configured subscription, support for dynamic subscriptions is
> > >    optional except where replaying missed event records is required.
> > >
> > >   -- confusing because text in 1.3:
> > >      Note that there is no mixing-and-matching of dynamic and
> configured
> > >      operations on a single subscription.  Specifically, a configured
> > >   -- clarify the receiver may have multiple subscriptions here
> > >   -- not clear what "except where replaying..." text means
> >
> > How about the following tweak:
> >
> > "On a receiver of a configured subscription, support for dynamic
> subscriptions
> > is optional.  However if replaying missed event records is required for a
> > configured subscription, support for dynamic subscription is highly
> > recommended.  In this case, a separate dynamic subscription can be
> established
> > to retransmit the missing event records."
> >
> > OK
>
> Change made.
>
> > > I7) leaf stream-xpath-filter: [multiple uses]
> > >
> > >            The expression is evaluated in the following XPath context:
> > >
> > >              o   The set of namespace declarations is the set of prefix
> > >                  and namespace pairs for all YANG modules implemented
> > >                  by the server, where the prefix is the YANG module
> > >                  name and the namespace is as defined by the
> > >                  'namespace' statement in the YANG module.
> > >
> > >   -- This prefix processing is not done anywhere else in NETCONF
> > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > >      should be required for processing of XML encoding.  YANG
> > >      module prefixes are not required to be unique, unlike
> > >      the prefix mappings in XML
> >
> > This text was proposed by Martin as a result of the "xpath expressions
> in JSON"
> > thread last October in NETMOD.
> >
> > I am happy to incorporate whatever text is appropriate.  I was hoping
> that the
> > suggested text was sufficient for now.  Kent has already incorporated
> this as an
> > issue for yang-next
> > https://github.com/netmod-wg/yang-next/issues/55
> > So hopefully there is no final precedent being claimed.
> >
> > I do not agree that this YANG module should define a new way to encode
> XPath
> > into XML instance documents. This will require significant changes to
> server
> > implementations.  YANG module prefixes are not even required to be unique
> > so the set of prefixes used by the server in XML instance documents may
> be
> > different,
> > since it must be unique.
>
> See next note
>
> > >   -- NMDA allows the same module to appear in multiple module-sets
> > >      and different in each datastore. This text about "implemented by
> > >      the server" does not work for NMDA
> >
> > I am happy to adopt whatever text meets YANG doctor approval.   Can you
> > suggest?
> >
> >
> > Remove all text about YANG prefixes and continue using XML encoding
> without
> > modification
>
> As a different YANG doctor has required the current text modification, I
> believe this is a blocker.  What is the process for YANG model reviews in
> such a case.  I am happy to accept whatever here.  Any suggestions on next
> steps?
>
> ...
> > >   -- there should be an example of a configurable encoding provided
> >
> > I am happy to enhance the definition YANG model's identity definition of
> > "configurable-encoding".  I could do this by adding the following
> additional text
> > to the description: "An example of a configurable encoding might be a new
> > identity such as 'encode-cbor'.  Such an identity could use
> 'configurable-
> > encoding' as its base.  This would allow a dynamic subscription encoded
> in JSON
> > [RFC-8259] to request notification messages be encoded via CBOR [RFC-
> > 7049].  Further details for any specific configurable encoding would be
> explored
> > in a transport document based on this specification."   Does this meet
> your ask?
> >
> >
> > OK
>
> Added
>
> > > I11) extension subscription-state-notification {
> > >
> > >        This statement is not for use
> > >        outside of this YANG module.";
> > >
> > >   -- this text should be removed. There is no value in limiting
> > >      the scope of this extension.  It prevents even this WG from
> > >      creating a module that uses the extension again.
> >
> > This was the subject of significant debate in the WG.  The authors did
> not want
> > this restriction either.
> >
> > To be allowed to progress the document, we inserted the document.  If
> this
> > really is mandatory-to-remove from a YANG doctor point-of-view, what is
> the
> > process for quick closure on this issue between WG leadership and the
> YANG
> > doctors?
> >
> >
> > The YANG language makes no restrictions about exporting statements.
> > I guess I missed that debate so I will just say OK and wonder what
> problem
> > this is supposed to solve. I guess the WG wants to give YANG Doctors more
> > things to check. (This is what we called a CLR in SNMP-land ;-)
>
> Thanks.  No action taken.
>
> > > I13)   notification subscription-started {
> > >     sn:subscription-state-notification;
> > >     if-feature "configured";
> > >     description
> > >       "This notification indicates that a subscription has started and
> > >         notifications are beginning to be sent. This notification shall
> > >        only be sent to receivers of a subscription; it does not
> > >        constitute a general-purpose notification.";
> > >
> > >   -- 2nd sentence is confusing; all notifications are sent to
> > >      receivers of a subscription. last part is redundant since
> > >      the sn:subscription-state-notification extension is used
> >
> > There is no issue with removing this second sentence completely.  If I
> did that,
> > would this address your concern?
> >
> > OK
>
> Done
>
> > > I14)   rc:yang-data modify-subscription-stream-error-info {
> > >
> > >       leaf filter-failure-hint {
> > >         type string;
> > >           description
> > >             "Information describing where and/or why a provided filter
> > >              was unsupportable for a subscription.";
> > >       }
> > >
> > >   -- rpc-error already allows more precise error reporting
> > >      It uses error-tag, error-path, error-string, and error-info
> extensions
> > >      to identify which parameters/conditions caused the RPC to be
> rejected.
> > >      This error reporting will continue to be used, Not sure this
> failure-hint
> > >      has any standards value. Perhaps real-use example can be added
> >
> > Per your thoughts on rpc-error...   For NETCONF and RESTCONF, you point
> to
> > error structures which historically been used with those transports.  Of
> course
> > we were looking to have all subscription hints supportable across
> transports via
> > a single portable YANG data structure.  So the value is that a single
> string
> > object exists so to transport whatever the vendor thinks would be useful
> as a
> > hint in this case.  I.e., there has been no attempt to standardize the
> contents of
> > this string.  If operational experiences drive a desire for such
> structuring, this
> > could provide the basis for a new draft building off of this starting
> point.
> >
> > I guess I do not consider NETCONF and RESTCONF "historic" quite yet.
> > There are many implementations using the rpc-error reporting with no
> intent
> > to replace it with something else.
> >
> > I was just asking for an example, since I have no idea what an
> implementor
> > would put in this leaf.
>
> Here is an example from our implementation.  Say you mistype an extra "\"
> to an xpath filter:
> /if:interfaces-state/interface[name="GigabitEthernet0/0"]/oper-status
> As a result, the filter is passed to the publisher is:
> /if:inte\rfaces-state/interface[name="GigabitEthernet0/0"]/oper-status
>
> What we would return in the failure-hint string is:
> Invalid expression: offset(9) in
> '/if:inte\rfaces-state/interface[name="GigabitEthernet0/0"]/oper-status'
>
> Eric
>
> > Andy
>
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Hi,<div><br></div><div>I=
 think the error-tag issue can be resolved by including 1 extra sentence in=
 each error identity.</div><div>I know this is NETCONF and RESTCONF centric=
 but those are the only 2 standard protocols</div><div>supported for the YA=
NG language right now.</div><div><br></div><div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0If the &#39;error-tag&#39; field is used in error reporting,</div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0then the value &#39;&lt;correct error-tag&gt;&=
#39; MUST be used.</div></div><div><br></div><div>For example:</div><div><b=
r></div><div><br></div><div>OLD:</div><div><br></div><div><div>=C2=A0 ident=
ity insufficient-resources {</div><div>=C2=A0 =C2=A0 base establish-subscri=
ption-error;</div><div>=C2=A0 =C2=A0 base modify-subscription-error;</div><=
div>=C2=A0 =C2=A0 base subscription-suspended-reason;</div><div>=C2=A0 =C2=
=A0 description</div><div>=C2=A0 =C2=A0 =C2=A0 &quot;The publisher has insu=
fficient resources to support the</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0requ=
ested subscription.=C2=A0 An example might be that allocated CPU</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0is too limited to generate the desired set of no=
tification</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0messages.&quot;;</div><div>=
=C2=A0 }</div></div><div><br></div><div><br></div><div>NEW:</div><div><br><=
/div><div><div>=C2=A0 identity insufficient-resources {</div><div>=C2=A0 =
=C2=A0 base establish-subscription-error;</div><div>=C2=A0 =C2=A0 base modi=
fy-subscription-error;</div><div>=C2=A0 =C2=A0 base subscription-suspended-=
reason;</div><div>=C2=A0 =C2=A0 description</div><div>=C2=A0 =C2=A0 =C2=A0 =
&quot;The publisher has insufficient resources to support the</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0requested subscription.=C2=A0 An example might be t=
hat allocated CPU</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0is too limited to ge=
nerate the desired set of notification</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0messages. If the &#39;error-tag&#39; field is used in error reporting,</=
div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0then the value &#39;resource-denied&#39=
; MUST be used.&quot;;</div><div>=C2=A0 }</div></div><div><br></div><div><b=
r></div><div>Andy</div><div><br></div></div></div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr">On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (ev=
oit) &lt;<a href=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Andy,<br>
<br>
Thanks.=C2=A0 I have incorporated items where there was agreement.=C2=A0 I =
have removed the items below where you were ok.=C2=A0 <br>
<br>
Remaining below are the open items, with responses.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 Should be clear somewhere that<br>
&gt; &gt;=C2=A0 =C2=A0 suspend is for CPU and other resources, and NACM not=
 considered<br>
&gt; &gt;=C2=A0 =C2=A0 to be a resource.<br>
&gt; <br>
&gt; If NACM is active, it needs to be followed.=C2=A0 The text we have for=
 NACM is in<br>
&gt; Section 5.4.=C2=A0 Do you see something else specific to subscription =
suspension<br>
&gt; needed here?=C2=A0 (Maybe I am not getting your point.)<br>
&gt; <br>
&gt; No -- OK to leave NACM as terminate-if-loss-of-rights<br>
&gt; (Is there an error identity for this event?)<br>
<br>
The identity which applies here is &quot;stream-unavailable&quot;.=C2=A0 Th=
is is the same identity which would be used if a subscriber had never suffi=
cient permissions in the first place.=C2=A0 I don&#39;t believe we would wa=
nt to return an identity specific to when NACM when permissions have just b=
een changed.<br>
<br>
&gt; &gt; I3) sec 2.1 para 6:<br>
&gt; &gt;=C2=A0 =C2=A0 Event records MUST NOT be delivered to a receiver in=
 a different<br>
&gt; &gt;=C2=A0 =C2=A0 order than they were placed onto an event stream.<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- does this apply to subscription-state? Think not, =
they are not events<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0placed in event stream.<br>
&gt; <br>
&gt; Agree that they are not on the event stream.=C2=A0 So they do not viol=
ate this<br>
&gt; requirement.<br>
&gt; <br>
&gt; Additionally there is supporting text in &quot;Section 2.7: subscripti=
on state<br>
&gt; notifications&quot;, including...<br>
&gt; <br>
&gt; &quot; Instead, they are inserted (as defined in this section) within =
the sequence of<br>
&gt; notification messages sent to a particular receiver.&quot;<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Need to allow ended or suspended to be sent<br=
>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0head-of-line whenever state changes<br>
&gt; <br>
&gt; I am not sure that suspended should always be sent head-of-line.=C2=A0=
 =C2=A0Consider<br>
&gt; that implementation might want to let the existing queue of filtered e=
vent<br>
&gt; records be sent if is filter complexity causing the CPU issue.=C2=A0 =
=C2=A0That could be<br>
&gt; different than if it is a bandwidth issue driving the suspension, and =
you<br>
&gt; definitely want the &#39;subscription-suspended&#39; to be placed at t=
he head of line.<br>
&gt; <br>
&gt; <br>
&gt; It is up to the publisher to decide when to stop sending events on a<b=
r>
&gt; subscription.<br>
&gt; Obviously the publisher cannot wait until the subscription is idle.<br=
>
&gt; The reason it is getting suspended is it is far from idle<br>
&gt; <br>
&gt; So also up to the publisher wrt/ what to do with any events that have =
not<br>
&gt; been delivered yet on a subscription.=C2=A0 Could delete them or save =
them for<br>
&gt; when more bandwidth available (for example)<br>
<br>
Agree fully with this.=C2=A0 Is there text required in the draft here?<br>
<br>
... <br>
&gt; Beyond that it is up to the implementation to decide if some un-transm=
itted<br>
&gt; queue of event records should be flushed and reprocessed based on the<=
br>
&gt; modification.=C2=A0 I do not expect this would popular, as a replay su=
bscription could<br>
&gt; accomplish this same functional need.<br>
&gt; <br>
&gt; Agreed that an implementation can drop at any time and increment the<b=
r>
&gt; appropriate counters. It will try to to do this, but no requirements e=
xcept<br>
&gt; maybe subscription events like &#39;replay-completed&#39; cannot be dr=
opped<br>
<br>
Have put a minor tweak into Section 2.7:<br>
<br>
[old]=C2=A0 subscription state change notifications cannot be filtered out<=
br>
<br>
[new] subscription state change notifications cannot be dropped or filtered=
 out<br>
<br>
...<br>
&gt; Thinking more on your point, it might be worth tweaking a couple words=
 to<br>
&gt; allow for head-of-line placement of &quot;subscription-suspended&quot;=
.<br>
&gt; <br>
&gt; =C2=A0 =C2=A0&quot;Subscribed event records queued for sending after t=
he issuance of this<br>
&gt; =C2=A0 =C2=A0subscription state change notification may now be sent.&q=
uot;<br>
&gt; <br>
&gt; Are you good with this suggested change?<br>
&gt; <br>
&gt; Not sure -- it needs to be clear that subscription-suspended is the<br=
>
&gt; last event sent before suspending and subscription-resumed is<br>
&gt; the first event sent after transition from suspended to active.<br>
&gt; The next event could also be subscription-terminated.<br>
<br>
I do think this possibility is covered in the text.=C2=A0 For Section 2.7.4=
 subscription-suspended the current text is:<br>
<br>
&quot;No further notification will be sent until the subscription resumes o=
r is terminated.&quot;<br>
<br>
And Section 2.7.5 subscription-resumed says&quot;:<br>
&quot;Subscribed event records generated after the issuance of this subscri=
ption state change notification may now be sent.&quot;<br>
<br>
Based on the discussion, I can make it:<br>
<br>
&quot;Subscribed event records are again permitted to be sent following thi=
s subscription state change notification.&quot;<br>
<br>
Is this sufficient for you?<br>
<br>
...<br>
&gt; &gt; I4) sec 2.4.6: RPC Failures<br>
&gt; &gt;=C2=A0 =C2=A0-- concern about a subscription-specific error report=
ing system<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 must make sure protocol error reporting syste=
m is used correctly<br>
&gt; <br>
&gt; Yes.=C2=A0 We have done our best to integrate with the embedded NETCON=
F and<br>
&gt; RESTCONF mechanisms.=C2=A0 There is much additional information in the=
 transport<br>
&gt; drafts here.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- The error-tag value needs to be identified for eac=
h &#39;reason&#39; identity<br>
&gt; <br>
&gt; This is done in the transport drafts.=C2=A0 =C2=A0E.g., see draft-ietf=
-netconf-netconf-event-<br>
&gt; notifications Section 7<br>
&gt; <br>
&gt; I do not agree this is a good idea.<br>
&gt; Each error identity should simply state the required &quot;error-tag&q=
uot;<br>
&gt; that is associated with the error.=C2=A0 This is expected of protocol =
operations<br>
&gt; that are added to NETCONF and RESTCONF.<br>
<br>
In draft-ietf-netconf-netconf-event-notifications, section 7, the required =
&quot;error-tag&quot; is identified as &quot;operation-failed&quot;.=C2=A0 =
=C2=A0If we instead placed that &quot;error-tag&quot; information in the YA=
NG model, then we have tied the YANG model to the RESTCONF and NETCONF tran=
sports.<br>
<br>
&gt; Both NETCONF and RESTCONF use a compatible error reporting data struct=
ure.<br>
&gt; The &quot;error-tag&quot; is used in both of them.=C2=A0 IMO client de=
velopers do not<br>
&gt; want a different set of error codes for the same error conditions.<br>
<br>
draft-ietf-netconf-restconf-notif Section 3.3 also requires an &quot;error-=
tag&quot; node of &quot;operation-failed&quot;.=C2=A0 So we used the transp=
ort drafts rather than the YANG model to support the same error codes for t=
he same error conditions.<br>
<br>
&gt; I agree that transport drafts could define their own error identities,=
<br>
&gt; which would document the expected error-tag there.<br>
&gt; <br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 2.=C2=A0 &quot;modify-subscription-stream-error-info=
&quot;: This MUST be returned<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with the leaf &quot;reason&quot; popul=
ated if an RPC error reason has not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 been placed elsewhere within the trans=
port portion of a failed<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;modify-subscription&quot; RPC re=
sponse.=C2=A0 This MUST be sent if hints<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- all 3 paragraphs like this; unclear what &quot;pla=
ced elsewhere&quot;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0text means; not appropriate for MUST;<b=
r>
&gt; <br>
&gt; Instead of &quot;placed elsewhere&quot;, how about: &quot;placed in su=
bscription transport<br>
&gt; document defined object&quot;.=C2=A0 Would this be sufficient?<br>
&gt; <br>
&gt; No -- NETCONF and RESTCONF have well-defined error reporting.<br>
&gt; The server requirements for this error reporting must be documented.<b=
r>
&gt;<br>
&gt; I agree with the following approach:<br>
&gt; =C2=A0 - each operation MUST identify the error-tags that are expected=
 for<br>
&gt; =C2=A0 =C2=A0 various error conditions (such s is done in RFC 6241)<br=
>
&gt; =C2=A0 - the server MUST return the specified error-tags. If a conditi=
on not explicitly<br>
&gt; =C2=A0 =C2=A0 defined then the server MUST pick the appropriate error-=
tag from RFC 6241<br>
&gt; =C2=A0- the server MAY include the specified rc:yang-data in the &lt;e=
rror-info&gt; data<br>
&gt; structure<br>
&gt; =C2=A0- the server MUST use the appropriate rc:yang-data to report hin=
ts<br>
&gt; =C2=A0- for protocols other than NETCONF and RESTCONF, they can map er=
ror-tag or<br>
&gt; ignore it,<br>
&gt; =C2=A0 =C2=A0but the document defining the protocol operation MUST pro=
vide<br>
<br>
Functionally, everything you ask for is fully covered when you include cons=
ider draft-ietf-netconf-netconf-event-notifications (section 7) and draft-i=
etf-netconf-restconf-notif (section 3.3).<br>
<br>
My read of the issue is that you believe &quot;error-tag&quot; must be spec=
ified in the YANG model.=C2=A0 I believe that &quot;error-tag&quot; shouldn=
&#39;t be in the YANG model because that would tie the model to a transport=
 type.<br>
<br>
Any thoughts on how we might close this?=C2=A0 =C2=A0 If absolutely require=
d I could place a new comment line in the YANG model under<br>
/* Identities for RPC and Notification errors */<br>
<br>
The comment would be something like:<br>
/* When used with NETCONF and RESTCONF RPCs:<br>
=C2=A0 =C2=A0 &quot;error-type&quot; node to be used is &quot;application&q=
uot;<br>
=C2=A0 =C2=A0 =C2=A0&quot;error-tag&quot; must be &quot;operation-failed&qu=
ot;.=C2=A0 */<br>
<br>
This seems incongruous.=C2=A0 Just throwing it out as a suggestion.<br>
<br>
&gt; In any case, the -v21 wording results from the attempted balancing the=
 WG<br>
&gt; requests for:<br>
&gt; * merging with transport protocol error mechanisms<br>
&gt; * WG leadership guidance to provide requirements for transport documen=
ts<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Only 3 fields seem<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to be relevant (error-tag, error-app-ta=
g, error-info).<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Protcol operations are expected to docu=
ment server requirements<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0for these 3 fields, if applicable.=C2=
=A0 Only the error-tag<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0is mandatory-to-use.<br>
&gt; <br>
&gt; Hopefully these are covered sufficiently when this document is coupled=
 with<br>
&gt; the NETCONF and RESTCONF Notif transport documents.=C2=A0 =C2=A0For ot=
her transports,<br>
&gt; the tags you identify about would not be applicable.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- the error assignments are extremely specific. e.g.=
, it is not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 possible for &lt;kill-subscription&gt; to fai=
l with an<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 &#39;insufficient-resources&#39; error;<br>
&gt; <br>
&gt; This is the intent of the base specification, e.g., we don&#39;t belie=
ve a kill-<br>
&gt; subscription should fail for an insufficient-resources reason.=C2=A0 =
=C2=A0But vendors might<br>
&gt; desire more specificity.=C2=A0 As a result is certainly ok for vendor =
implementations<br>
&gt; to add new error identities.<br>
&gt; <br>
&gt; IMO anything can fail for insufficient resources. That is very impleme=
ntation-<br>
&gt; specific.<br>
<br>
Instead of implementation specific I would call it application specific.=C2=
=A0 =C2=A0Right now we don&#39;t have a catch-all error-identity of &#39;ot=
her-error&#39;.=C2=A0 We preferred that error conditions beyond the current=
 ones listed could be included by vendors as needed.=C2=A0 Further deployme=
nt experience could result in new error identities surfacing for standardiz=
ation should this draft catch on.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Do not agree that scoping each<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 identity to specific RPC operations is a good=
 idea.<br>
&gt; <br>
&gt; This level of specificity was not the author&#39;s original plans.=C2=
=A0 Nor was this level of<br>
&gt; specificity part of earlier draft versions up through -v08.=C2=A0 =C2=
=A0However members of<br>
&gt; the WG made it clear that such specificity was necessary for draft pro=
gression.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- how are errors in these parameters reported for co=
nfigured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 subscriptions when &lt;edit-config&gt; is the=
 RPC that has the error?<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 How are the yang-data structs used for edit-c=
onfig or commit errors?<br>
&gt; <br>
&gt; None of these yang-data structures are specified for use with &lt;edit=
-config&gt;<br>
&gt; operations.=C2=A0 =C2=A0For &lt;edit-config&gt;, the change to a confi=
gured subscription would<br>
&gt; be written to the datastore if it were semantically valid.=C2=A0 =C2=
=A0At this point the<br>
&gt; subscription enters the [evaluate] points of Figure 8.=C2=A0 Issues fr=
om this point out<br>
&gt; would be reported with a vendor specific construct such as SYSLOG.<br>
&gt; <br>
&gt; So how are hints reported for configured subscriptions?<br>
<br>
There is nothing in the specification which requires this.=C2=A0 =C2=A0An i=
mplementation could choose to place these in some form of SYSLOG.<br>
...<br>
&gt; &gt; I6) sec 2.5, para 3:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 On a receiver of a<br>
&gt; &gt;=C2=A0 =C2=A0 configured subscription, support for dynamic subscri=
ptions is<br>
&gt; &gt;=C2=A0 =C2=A0 optional except where replaying missed event records=
 is required.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- confusing because text in 1.3:<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Note that there is no mixing-and-matching of =
dynamic and configured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 operations on a single subscription.=C2=A0 Sp=
ecifically, a configured<br>
&gt; &gt;=C2=A0 =C2=A0-- clarify the receiver may have multiple subscriptio=
ns here<br>
&gt; &gt;=C2=A0 =C2=A0-- not clear what &quot;except where replaying...&quo=
t; text means<br>
&gt; <br>
&gt; How about the following tweak:<br>
&gt; <br>
&gt; &quot;On a receiver of a configured subscription, support for dynamic =
subscriptions<br>
&gt; is optional.=C2=A0 However if replaying missed event records is requir=
ed for a<br>
&gt; configured subscription, support for dynamic subscription is highly<br=
>
&gt; recommended.=C2=A0 In this case, a separate dynamic subscription can b=
e established<br>
&gt; to retransmit the missing event records.&quot;<br>
&gt; <br>
&gt; OK<br>
<br>
Change made.<br>
<br>
&gt; &gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression is evalua=
ted in the following XPath context:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0 =C2=A0The=
 set of namespace declarations is the set of prefix<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and=
 namespace pairs for all YANG modules implemented<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by =
the server, where the prefix is the YANG module<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nam=
e and the namespace is as defined by the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#3=
9;namespace&#39; statement in the YANG module.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- This prefix processing is not done anywhere else i=
n NETCONF<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad precedent.=C2=A0=
 Only the XML prefixes<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing of XML enco=
ding.=C2=A0 YANG<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to be unique=
, unlike<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
&gt; <br>
&gt; This text was proposed by Martin as a result of the &quot;xpath expres=
sions in JSON&quot;<br>
&gt; thread last October in NETMOD.<br>
&gt; <br>
&gt; I am happy to incorporate whatever text is appropriate.=C2=A0 I was ho=
ping that the<br>
&gt; suggested text was sufficient for now.=C2=A0 Kent has already incorpor=
ated this as an<br>
&gt; issue for yang-next<br>
&gt; <a href=3D"https://github.com/netmod-wg/yang-next/issues/55" rel=3D"no=
referrer" target=3D"_blank">https://github.com/netmod-wg/yang-next/issues/5=
5</a><br>
&gt; So hopefully there is no final precedent being claimed.<br>
&gt; <br>
&gt; I do not agree that this YANG module should define a new way to encode=
 XPath<br>
&gt; into XML instance documents. This will require significant changes to =
server<br>
&gt; implementations.=C2=A0 YANG module prefixes are not even required to b=
e unique<br>
&gt; so the set of prefixes used by the server in XML instance documents ma=
y be<br>
&gt; different,<br>
&gt; since it must be unique.<br>
<br>
See next note<br>
<br>
&gt; &gt;=C2=A0 =C2=A0-- NMDA allows the same module to appear in multiple =
module-sets<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 and different in each datastore. This text ab=
out &quot;implemented by<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the server&quot; does not work for NMDA<br>
&gt; <br>
&gt; I am happy to adopt whatever text meets YANG doctor approval.=C2=A0 =
=C2=A0Can you<br>
&gt; suggest?<br>
&gt; <br>
&gt; <br>
&gt; Remove all text about YANG prefixes and continue using XML encoding wi=
thout<br>
&gt; modification<br>
<br>
As a different YANG doctor has required the current text modification, I be=
lieve this is a blocker.=C2=A0 What is the process for YANG model reviews i=
n such a case.=C2=A0 I am happy to accept whatever here.=C2=A0 Any suggesti=
ons on next steps?<br>
<br>
...<br>
&gt; &gt;=C2=A0 =C2=A0-- there should be an example of a configurable encod=
ing provided<br>
&gt; <br>
&gt; I am happy to enhance the definition YANG model&#39;s identity definit=
ion of<br>
&gt; &quot;configurable-encoding&quot;.=C2=A0 I could do this by adding the=
 following additional text<br>
&gt; to the description: &quot;An example of a configurable encoding might =
be a new<br>
&gt; identity such as &#39;encode-cbor&#39;.=C2=A0 Such an identity could u=
se &#39;configurable-<br>
&gt; encoding&#39; as its base.=C2=A0 This would allow a dynamic subscripti=
on encoded in JSON<br>
&gt; [RFC-8259] to request notification messages be encoded via CBOR [RFC-<=
br>
&gt; 7049].=C2=A0 Further details for any specific configurable encoding wo=
uld be explored<br>
&gt; in a transport document based on this specification.&quot;=C2=A0 =C2=
=A0Does this meet your ask?<br>
&gt; <br>
&gt; <br>
&gt; OK<br>
<br>
Added<br>
<br>
&gt; &gt; I11) extension subscription-state-notification {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This statement is not for use<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 outside of this YANG module.&quot;;<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- this text should be removed. There is no value in =
limiting<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the scope of this extension.=C2=A0 It prevent=
s even this WG from<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 creating a module that uses the extension aga=
in.<br>
&gt; <br>
&gt; This was the subject of significant debate in the WG.=C2=A0 The author=
s did not want<br>
&gt; this restriction either.<br>
&gt; <br>
&gt; To be allowed to progress the document, we inserted the document.=C2=
=A0 If this<br>
&gt; really is mandatory-to-remove from a YANG doctor point-of-view, what i=
s the<br>
&gt; process for quick closure on this issue between WG leadership and the =
YANG<br>
&gt; doctors?<br>
&gt; <br>
&gt; <br>
&gt; The YANG language makes no restrictions about exporting statements.<br=
>
&gt; I guess I missed that debate so I will just say OK and wonder what pro=
blem<br>
&gt; this is supposed to solve. I guess the WG wants to give YANG Doctors m=
ore<br>
&gt; things to check. (This is what we called a CLR in SNMP-land ;-)<br>
<br>
Thanks.=C2=A0 No action taken.<br>
<br>
&gt; &gt; I13)=C2=A0 =C2=A0notification subscription-started {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification indicates that =
a subscription has started and<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications are beginning to b=
e sent. This notification shall<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 only be sent to receivers of a subscri=
ption; it does not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 constitute a general-purpose notificat=
ion.&quot;;<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- 2nd sentence is confusing; all notifications are s=
ent to<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 receivers of a subscription. last part is red=
undant since<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the sn:subscription-state-notification extens=
ion is used<br>
&gt; <br>
&gt; There is no issue with removing this second sentence completely.=C2=A0=
 If I did that,<br>
&gt; would this address your concern?<br>
&gt; <br>
&gt; OK<br>
<br>
Done<br>
<br>
&gt; &gt; I14)=C2=A0 =C2=A0rc:yang-data modify-subscription-stream-error-in=
fo {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf filter-failure-hint {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;Information =
describing where and/or why a provided filter<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 was unsupportable=
 for a subscription.&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- rpc-error already allows more precise error report=
ing<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 It uses error-tag, error-path, error-string, =
and error-info extensions<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 to identify which parameters/conditions cause=
d the RPC to be rejected.<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 This error reporting will continue to be used=
, Not sure this failure-hint<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 has any standards value. Perhaps real-use exa=
mple can be added<br>
&gt; <br>
&gt; Per your thoughts on rpc-error...=C2=A0 =C2=A0For NETCONF and RESTCONF=
, you point to<br>
&gt; error structures which historically been used with those transports.=
=C2=A0 Of course<br>
&gt; we were looking to have all subscription hints supportable across tran=
sports via<br>
&gt; a single portable YANG data structure.=C2=A0 So the value is that a si=
ngle string<br>
&gt; object exists so to transport whatever the vendor thinks would be usef=
ul as a<br>
&gt; hint in this case.=C2=A0 I.e., there has been no attempt to standardiz=
e the contents of<br>
&gt; this string.=C2=A0 If operational experiences drive a desire for such =
structuring, this<br>
&gt; could provide the basis for a new draft building off of this starting =
point.<br>
&gt; <br>
&gt; I guess I do not consider NETCONF and RESTCONF &quot;historic&quot; qu=
ite yet.<br>
&gt; There are many implementations using the rpc-error reporting with no i=
ntent<br>
&gt; to replace it with something else.<br>
&gt; <br>
&gt; I was just asking for an example, since I have no idea what an impleme=
ntor<br>
&gt; would put in this leaf.<br>
<br>
Here is an example from our implementation.=C2=A0 Say you mistype an extra =
&quot;\&quot; to an xpath filter:<br>
/if:interfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper-=
status<br>
As a result, the filter is passed to the publisher is:<br>
/if:inte\rfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper=
-status<br>
<br>
What we would return in the failure-hint string is:<br>
Invalid expression: offset(9) in &#39;/if:inte\rfaces-state/interface[name=
=3D&quot;GigabitEthernet0/0&quot;]/oper-status&#39;<br>
<br>
Eric<br>
<br>
&gt; Andy<br>
<br>
</blockquote></div>

--000000000000db268d057ffcd577--


From nobody Tue Jan 22 12:11:33 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id A2727128AFB; Tue, 22 Jan 2019 12:11:25 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.90.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154818788522.13365.9410594404841164926@ietfa.amsl.com>
Date: Tue, 22 Jan 2019 12:11:25 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/tI8lpOWJRL9jsxZ-KV4vnvStdT8>
Subject: [netconf] Network Configuration (netconf) WG Virtual Meeting: 2019-02-06
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Jan 2019 20:11:26 -0000

The Network Configuration (netconf) Working Group will hold
a virtual interim meeting on 2019-02-06 from 10:00 to 12:00 America/New_York.

Agenda:
Goal: To continue scoring the YANG Next feature requests listed here: https://github.com/netmod-wg/yang-next/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc.  

Non-Goal: This is NOT a YANG-next planning meeting.  We only want to score the items in preparation for a planning meeting to take place at IETF 104 in Prague.


Meeting Link: https://ietf.webex.com/ietf/j.php?MTID=m43c8c25cbece0879a425f3cab6bff338
Early joins may occur 5-minutes before start.
Meeting number: 646 020 675
Meeting password: 5p45ZVKa

Audio connection:
1-650-479-3208 Call-in toll number (US/Canada)
Access code: 646 020 675


From nobody Tue Jan 22 14:25:29 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 89F00131147; Tue, 22 Jan 2019 14:25:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.052
X-Spam-Level: 
X-Spam-Status: No, score=-19.052 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 gQq6MWDUoR5C; Tue, 22 Jan 2019 14:25:22 -0800 (PST)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E838012950A; Tue, 22 Jan 2019 14:25:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=74316; q=dns/txt; s=iport; t=1548195921; x=1549405521; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=YjRpj7vz0BiR8fJIYIpVf59E78AWXjgHXa3fTX0eMuM=; b=c0kyL41pSBkUXm0FQWrad2EUg9WaDb1cD1CYMuiZoYMFnOLeFlMC4+Qd kPIEciMZdONr46xM1rEm1bIWHzFt2Z2Dcwad4RQPsOUjnmTx6d7YmaXQp 9UdRAYke2KOM+WgSYSrtBaNo4PuAz1XItHVfv5NkWLQQvnvNzvd1DYvUC Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAADllkdc/5xdJa1ZAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgQ1NKWZLNycKg3eIGotsgg2YARS?= =?us-ascii?q?BZwsBASOESQIXglYiNAkNAQMBAQIBAQJtHAyFSgEBAQECARoBCApKAgULAgE?= =?us-ascii?q?IFRATAQYDAgICMBQRAgQOBQiCT0yBHVwID61UgS+KLAWMQReBQD+BEYMSgx4?= =?us-ascii?q?CgTYBAw8CA0mCU4I1IgKJUAMIMAuFWxgBgViEbRKKZVoJAocig1eHGCCBZoh?= =?us-ascii?q?mgTKGFooBhR+LVgIRFIEnHzgogS5wFYMngicXE4M4ilNBMYhKKYEFgR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,508,1539648000";  d="scan'208,217";a="508297056"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Jan 2019 22:25:19 +0000
Received: from XCH-RTP-014.cisco.com (xch-rtp-014.cisco.com [64.101.220.154]) by rcdn-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id x0MMPJe3025925 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 22 Jan 2019 22:25:19 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-014.cisco.com (64.101.220.154) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 22 Jan 2019 17:25:18 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Tue, 22 Jan 2019 17:25:18 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIA==
Date: Tue, 22 Jan 2019 22:25:18 +0000
Message-ID: <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com>
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com> <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com>
In-Reply-To: <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: multipart/alternative; boundary="_000_2ff23fa29204403489b6d69fdc5ecd74XCHRTP013ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.154, xch-rtp-014.cisco.com
X-Outbound-Node: rcdn-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/xLWFpKD1EewW9IlBIL7fKG3qsPI>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Jan 2019 22:25:28 -0000

--_000_2ff23fa29204403489b6d69fdc5ecd74XCHRTP013ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQW5keSwNCg0KTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uICBNeSByZWFkaW5nIGlzIHRo
YXQgaXQgdGFrZXMgdGhlIHRyYW5zcG9ydCBzcGVjaWZpYyBlcnJvciBpbmZvIGNvbnRhaW5lZCBp
biBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zIHNlY3Rpb24g
NywgYW5kIHRoZW4gcmVwbGljYXRlcyB0aGF0IGluZm8gd2l0aGluIDEyIHNlcGFyYXRlIGRlc2Ny
aXB0aW9uIG9iamVjdHMgb2YgdGhlIHRyYW5zcG9ydCBpbmRlcGVuZGVudCBpZXRmLXN1YnNjcmli
ZWQtbm90aWZpY2F0aW9ucy55YW5nLiAgICBUaGUgdmFsdWUgeW91IGFyZSBhc3NlcnRpbmcgaXMg
dGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMgY29udGFpbmluZyB0aGUgcnBjLXN0bXQg
aGF2ZSB0cmFkaXRpb25hbGx5IGRvY3VtZW50IHRoZSBtYW5kYXRvcnktdG8taW1wbGVtZW50ICJl
cnJvci10YWciIGZpZWxkIHdpdGhpbiB0aGUgbW9kZWwuICBBbmQgcHJlc3VtYWJseSB5b3UgYXJl
IGNvbmNlcm5lZCB0aGF0IGRldmVsb3BlcnMgc2hvdWxkIG5vdCBoYXZlIHRvIGxvb2sgZWxzZXdo
ZXJlIGZvciB0aGlzIGluZm9ybWF0aW9uLg0KDQpJZiB0aGUgWUFORyBkb2N0b3JzIHJlcXVpcmUg
dGhpcywgaXQgY2FuIGJlIGluc2VydGVkLiAgQSBzaW1pbGFyIHRleHQgY2hhbmdlIHdvdWxkIGJl
IG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4gWUFORyBQdXNo
LiAgIFBlcnNvbmFsbHkgSSBkb27igJl0IGxpa2UgdGhhdCBZQU5HIG1vZGVscyBzaG91bGQgYmUg
cmVxdWlyZWQgdG8gZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUg
Y2hhbmdlIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzLCBhbmQgbm9ib2R5IGVsc2Ugb2JqZWN0cy4N
Cg0KT3RoZXIgdGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3BlbiBpc3N1
ZXMgaW4gdGhlIFlBTkcgRG9jdG9yIHJldmlldy4gIERvIHlvdSBrbm93IG9mIGFueXRoaW5nIGVs
c2U/DQoNCkVyaWMNCg0KDQpGcm9tOiBBbmR5IEJpZXJtYW4sIEphbnVhcnkgMjEsIDIwMTkgMjoy
NiBQTQ0KDQpIaSwNCg0KSSB0aGluayB0aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZl
ZCBieSBpbmNsdWRpbmcgMSBleHRyYSBzZW50ZW5jZSBpbiBlYWNoIGVycm9yIGlkZW50aXR5Lg0K
SSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVTVENPTkYgY2VudHJpYyBidXQgdGhvc2UgYXJl
IHRoZSBvbmx5IDIgc3RhbmRhcmQgcHJvdG9jb2xzDQpzdXBwb3J0ZWQgZm9yIHRoZSBZQU5HIGxh
bmd1YWdlIHJpZ2h0IG5vdy4NCg0KICAgICAgIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1
c2VkIGluIGVycm9yIHJlcG9ydGluZywNCiAgICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3Qg
ZXJyb3ItdGFnPicgTVVTVCBiZSB1c2VkLg0KDQpGb3IgZXhhbXBsZToNCg0KDQpPTEQ6DQoNCiAg
aWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQogICAgYmFzZSBlc3RhYmxpc2gtc3Vi
c2NyaXB0aW9uLWVycm9yOw0KICAgIGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjsNCiAg
ICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KICAgIGRlc2NyaXB0aW9uDQog
ICAgICAiVGhlIHB1Ymxpc2hlciBoYXMgaW5zdWZmaWNpZW50IHJlc291cmNlcyB0byBzdXBwb3J0
IHRoZQ0KICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJl
IHRoYXQgYWxsb2NhdGVkIENQVQ0KICAgICAgIGlzIHRvbyBsaW1pdGVkIHRvIGdlbmVyYXRlIHRo
ZSBkZXNpcmVkIHNldCBvZiBub3RpZmljYXRpb24NCiAgICAgICBtZXNzYWdlcy4iOw0KICB9DQoN
Cg0KTkVXOg0KDQogIGlkZW50aXR5IGluc3VmZmljaWVudC1yZXNvdXJjZXMgew0KICAgIGJhc2Ug
ZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCiAgICBiYXNlIG1vZGlmeS1zdWJzY3JpcHRp
b24tZXJyb3I7DQogICAgYmFzZSBzdWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjsNCiAgICBk
ZXNjcmlwdGlvbg0KICAgICAgIlRoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVudCByZXNvdXJj
ZXMgdG8gc3VwcG9ydCB0aGUNCiAgICAgICByZXF1ZXN0ZWQgc3Vic2NyaXB0aW9uLiAgQW4gZXhh
bXBsZSBtaWdodCBiZSB0aGF0IGFsbG9jYXRlZCBDUFUNCiAgICAgICBpcyB0b28gbGltaXRlZCB0
byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQogICAgICAgbWVzc2Fn
ZXMuIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1c2VkIGluIGVycm9yIHJlcG9ydGluZywN
CiAgICAgICB0aGVuIHRoZSB2YWx1ZSAncmVzb3VyY2UtZGVuaWVkJyBNVVNUIGJlIHVzZWQuIjsN
CiAgfQ0KDQoNCkFuZHkNCg0KDQpPbiBGcmksIEphbiAxOCwgMjAxOSBhdCAxMTo1MyBBTSBFcmlj
IFZvaXQgKGV2b2l0KSA8ZXZvaXRAY2lzY28uY29tPG1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3
cm90ZToNCkhpIEFuZHksDQoNClRoYW5rcy4gIEkgaGF2ZSBpbmNvcnBvcmF0ZWQgaXRlbXMgd2hl
cmUgdGhlcmUgd2FzIGFncmVlbWVudC4gIEkgaGF2ZSByZW1vdmVkIHRoZSBpdGVtcyBiZWxvdyB3
aGVyZSB5b3Ugd2VyZSBvay4NCg0KUmVtYWluaW5nIGJlbG93IGFyZSB0aGUgb3BlbiBpdGVtcywg
d2l0aCByZXNwb25zZXMuDQoNCj4gPiAgICBTaG91bGQgYmUgY2xlYXIgc29tZXdoZXJlIHRoYXQN
Cj4gPiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5kIG90aGVyIHJlc291cmNlcywgYW5kIE5BQ00g
bm90IGNvbnNpZGVyZWQNCj4gPiAgICB0byBiZSBhIHJlc291cmNlLg0KPg0KPiBJZiBOQUNNIGlz
IGFjdGl2ZSwgaXQgbmVlZHMgdG8gYmUgZm9sbG93ZWQuICBUaGUgdGV4dCB3ZSBoYXZlIGZvciBO
QUNNIGlzIGluDQo+IFNlY3Rpb24gNS40LiAgRG8geW91IHNlZSBzb21ldGhpbmcgZWxzZSBzcGVj
aWZpYyB0byBzdWJzY3JpcHRpb24gc3VzcGVuc2lvbg0KPiBuZWVkZWQgaGVyZT8gIChNYXliZSBJ
IGFtIG5vdCBnZXR0aW5nIHlvdXIgcG9pbnQuKQ0KPg0KPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNN
IGFzIHRlcm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cw0KPiAoSXMgdGhlcmUgYW4gZXJyb3IgaWRl
bnRpdHkgZm9yIHRoaXMgZXZlbnQ/KQ0KDQpUaGUgaWRlbnRpdHkgd2hpY2ggYXBwbGllcyBoZXJl
IGlzICJzdHJlYW0tdW5hdmFpbGFibGUiLiAgVGhpcyBpcyB0aGUgc2FtZSBpZGVudGl0eSB3aGlj
aCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXIgc3VmZmljaWVudCBwZXJt
aXNzaW9ucyBpbiB0aGUgZmlyc3QgcGxhY2UuICBJIGRvbid0IGJlbGlldmUgd2Ugd291bGQgd2Fu
dCB0byByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hlbiBOQUNNIHdoZW4gcGVybWlz
c2lvbnMgaGF2ZSBqdXN0IGJlZW4gY2hhbmdlZC4NCg0KPiA+IEkzKSBzZWMgMi4xIHBhcmEgNjoN
Cj4gPiAgICBFdmVudCByZWNvcmRzIE1VU1QgTk9UIGJlIGRlbGl2ZXJlZCB0byBhIHJlY2VpdmVy
IGluIGEgZGlmZmVyZW50DQo+ID4gICAgb3JkZXIgdGhhbiB0aGV5IHdlcmUgcGxhY2VkIG9udG8g
YW4gZXZlbnQgc3RyZWFtLg0KPiA+DQo+ID4gICAtLSBkb2VzIHRoaXMgYXBwbHkgdG8gc3Vic2Ny
aXB0aW9uLXN0YXRlPyBUaGluayBub3QsIHRoZXkgYXJlIG5vdCBldmVudHMNCj4gPiAgICAgcGxh
Y2VkIGluIGV2ZW50IHN0cmVhbS4NCj4NCj4gQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhl
IGV2ZW50IHN0cmVhbS4gIFNvIHRoZXkgZG8gbm90IHZpb2xhdGUgdGhpcw0KPiByZXF1aXJlbWVu
dC4NCj4NCj4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBpbiAiU2VjdGlv
biAyLjc6IHN1YnNjcmlwdGlvbiBzdGF0ZQ0KPiBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4u
DQo+DQo+ICIgSW5zdGVhZCwgdGhleSBhcmUgaW5zZXJ0ZWQgKGFzIGRlZmluZWQgaW4gdGhpcyBz
ZWN0aW9uKSB3aXRoaW4gdGhlIHNlcXVlbmNlIG9mDQo+IG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBz
ZW50IHRvIGEgcGFydGljdWxhciByZWNlaXZlci4iDQo+DQo+ID4gICAgIE5lZWQgdG8gYWxsb3cg
ZW5kZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPiAgICAgaGVhZC1vZi1saW5lIHdoZW5l
dmVyIHN0YXRlIGNoYW5nZXMNCj4NCj4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91
bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1vZi1saW5lLiAgIENvbnNpZGVyDQo+IHRoYXQgaW1wbGVt
ZW50YXRpb24gbWlnaHQgd2FudCB0byBsZXQgdGhlIGV4aXN0aW5nIHF1ZXVlIG9mIGZpbHRlcmVk
IGV2ZW50DQo+IHJlY29yZHMgYmUgc2VudCBpZiBpcyBmaWx0ZXIgY29tcGxleGl0eSBjYXVzaW5n
IHRoZSBDUFUgaXNzdWUuICAgVGhhdCBjb3VsZCBiZQ0KPiBkaWZmZXJlbnQgdGhhbiBpZiBpdCBp
cyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5nIHRoZSBzdXNwZW5zaW9uLCBhbmQgeW91DQo+IGRl
ZmluaXRlbHkgd2FudCB0aGUgJ3N1YnNjcmlwdGlvbi1zdXNwZW5kZWQnIHRvIGJlIHBsYWNlZCBh
dCB0aGUgaGVhZCBvZiBsaW5lLg0KPg0KPg0KPiBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVyIHRv
IGRlY2lkZSB3aGVuIHRvIHN0b3Agc2VuZGluZyBldmVudHMgb24gYQ0KPiBzdWJzY3JpcHRpb24u
DQo+IE9idmlvdXNseSB0aGUgcHVibGlzaGVyIGNhbm5vdCB3YWl0IHVudGlsIHRoZSBzdWJzY3Jp
cHRpb24gaXMgaWRsZS4NCj4gVGhlIHJlYXNvbiBpdCBpcyBnZXR0aW5nIHN1c3BlbmRlZCBpcyBp
dCBpcyBmYXIgZnJvbSBpZGxlDQo+DQo+IFNvIGFsc28gdXAgdG8gdGhlIHB1Ymxpc2hlciB3cnQv
IHdoYXQgdG8gZG8gd2l0aCBhbnkgZXZlbnRzIHRoYXQgaGF2ZSBub3QNCj4gYmVlbiBkZWxpdmVy
ZWQgeWV0IG9uIGEgc3Vic2NyaXB0aW9uLiAgQ291bGQgZGVsZXRlIHRoZW0gb3Igc2F2ZSB0aGVt
IGZvcg0KPiB3aGVuIG1vcmUgYmFuZHdpZHRoIGF2YWlsYWJsZSAoZm9yIGV4YW1wbGUpDQoNCkFn
cmVlIGZ1bGx5IHdpdGggdGhpcy4gIElzIHRoZXJlIHRleHQgcmVxdWlyZWQgaW4gdGhlIGRyYWZ0
IGhlcmU/DQoNCi4uLg0KPiBCZXlvbmQgdGhhdCBpdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50YXRp
b24gdG8gZGVjaWRlIGlmIHNvbWUgdW4tdHJhbnNtaXR0ZWQNCj4gcXVldWUgb2YgZXZlbnQgcmVj
b3JkcyBzaG91bGQgYmUgZmx1c2hlZCBhbmQgcmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlDQo+IG1v
ZGlmaWNhdGlvbi4gIEkgZG8gbm90IGV4cGVjdCB0aGlzIHdvdWxkIHBvcHVsYXIsIGFzIGEgcmVw
bGF5IHN1YnNjcmlwdGlvbiBjb3VsZA0KPiBhY2NvbXBsaXNoIHRoaXMgc2FtZSBmdW5jdGlvbmFs
IG5lZWQuDQo+DQo+IEFncmVlZCB0aGF0IGFuIGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFu
eSB0aW1lIGFuZCBpbmNyZW1lbnQgdGhlDQo+IGFwcHJvcHJpYXRlIGNvdW50ZXJzLiBJdCB3aWxs
IHRyeSB0byB0byBkbyB0aGlzLCBidXQgbm8gcmVxdWlyZW1lbnRzIGV4Y2VwdA0KPiBtYXliZSBz
dWJzY3JpcHRpb24gZXZlbnRzIGxpa2UgJ3JlcGxheS1jb21wbGV0ZWQnIGNhbm5vdCBiZSBkcm9w
cGVkDQoNCkhhdmUgcHV0IGEgbWlub3IgdHdlYWsgaW50byBTZWN0aW9uIDIuNzoNCg0KW29sZF0g
IHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3QgYmUgZmlsdGVy
ZWQgb3V0DQoNCltuZXddIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBj
YW5ub3QgYmUgZHJvcHBlZCBvciBmaWx0ZXJlZCBvdXQNCg0KLi4uDQo+IFRoaW5raW5nIG1vcmUg
b24geW91ciBwb2ludCwgaXQgbWlnaHQgYmUgd29ydGggdHdlYWtpbmcgYSBjb3VwbGUgd29yZHMg
dG8NCj4gYWxsb3cgZm9yIGhlYWQtb2YtbGluZSBwbGFjZW1lbnQgb2YgInN1YnNjcmlwdGlvbi1z
dXNwZW5kZWQiLg0KPg0KPiAgICAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIHF1ZXVlZCBmb3Ig
c2VuZGluZyBhZnRlciB0aGUgaXNzdWFuY2Ugb2YgdGhpcw0KPiAgICBzdWJzY3JpcHRpb24gc3Rh
dGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNlbnQuIg0KPg0KPiBBcmUgeW91IGdv
b2Qgd2l0aCB0aGlzIHN1Z2dlc3RlZCBjaGFuZ2U/DQo+DQo+IE5vdCBzdXJlIC0tIGl0IG5lZWRz
IHRvIGJlIGNsZWFyIHRoYXQgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCBpcyB0aGUNCj4gbGFzdCBl
dmVudCBzZW50IGJlZm9yZSBzdXNwZW5kaW5nIGFuZCBzdWJzY3JpcHRpb24tcmVzdW1lZCBpcw0K
PiB0aGUgZmlyc3QgZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRv
IGFjdGl2ZS4NCj4gVGhlIG5leHQgZXZlbnQgY291bGQgYWxzbyBiZSBzdWJzY3JpcHRpb24tdGVy
bWluYXRlZC4NCg0KSSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhl
IHRleHQuICBGb3IgU2VjdGlvbiAyLjcuNCBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIHRoZSBjdXJy
ZW50IHRleHQgaXM6DQoNCiJObyBmdXJ0aGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50
aWwgdGhlIHN1YnNjcmlwdGlvbiByZXN1bWVzIG9yIGlzIHRlcm1pbmF0ZWQuIg0KDQpBbmQgU2Vj
dGlvbiAyLjcuNSBzdWJzY3JpcHRpb24tcmVzdW1lZCBzYXlzIjoNCiJTdWJzY3JpYmVkIGV2ZW50
IHJlY29yZHMgZ2VuZXJhdGVkIGFmdGVyIHRoZSBpc3N1YW5jZSBvZiB0aGlzIHN1YnNjcmlwdGlv
biBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQoNCkJhc2VkIG9u
IHRoZSBkaXNjdXNzaW9uLCBJIGNhbiBtYWtlIGl0Og0KDQoiU3Vic2NyaWJlZCBldmVudCByZWNv
cmRzIGFyZSBhZ2FpbiBwZXJtaXR0ZWQgdG8gYmUgc2VudCBmb2xsb3dpbmcgdGhpcyBzdWJzY3Jp
cHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbi4iDQoNCklzIHRoaXMgc3VmZmljaWVudCBm
b3IgeW91Pw0KDQouLi4NCj4gPiBJNCkgc2VjIDIuNC42OiBSUEMgRmFpbHVyZXMNCj4gPiAgIC0t
IGNvbmNlcm4gYWJvdXQgYSBzdWJzY3JpcHRpb24tc3BlY2lmaWMgZXJyb3IgcmVwb3J0aW5nIHN5
c3RlbQ0KPiA+ICAgICAgbXVzdCBtYWtlIHN1cmUgcHJvdG9jb2wgZXJyb3IgcmVwb3J0aW5nIHN5
c3RlbSBpcyB1c2VkIGNvcnJlY3RseQ0KPg0KPiBZZXMuICBXZSBoYXZlIGRvbmUgb3VyIGJlc3Qg
dG8gaW50ZWdyYXRlIHdpdGggdGhlIGVtYmVkZGVkIE5FVENPTkYgYW5kDQo+IFJFU1RDT05GIG1l
Y2hhbmlzbXMuICBUaGVyZSBpcyBtdWNoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGhlIHRy
YW5zcG9ydA0KPiBkcmFmdHMgaGVyZS4NCj4NCj4gPiAgIC0tIFRoZSBlcnJvci10YWcgdmFsdWUg
bmVlZHMgdG8gYmUgaWRlbnRpZmllZCBmb3IgZWFjaCAncmVhc29uJyBpZGVudGl0eQ0KPg0KPiBU
aGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMuICAgRS5nLiwgc2VlIGRyYWZ0LWll
dGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LQ0KPiBub3RpZmljYXRpb25zIFNlY3Rpb24gNw0KPg0K
PiBJIGRvIG5vdCBhZ3JlZSB0aGlzIGlzIGEgZ29vZCBpZGVhLg0KPiBFYWNoIGVycm9yIGlkZW50
aXR5IHNob3VsZCBzaW1wbHkgc3RhdGUgdGhlIHJlcXVpcmVkICJlcnJvci10YWciDQo+IHRoYXQg
aXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMgaXMgZXhwZWN0ZWQgb2YgcHJvdG9j
b2wgb3BlcmF0aW9ucw0KPiB0aGF0IGFyZSBhZGRlZCB0byBORVRDT05GIGFuZCBSRVNUQ09ORi4N
Cg0KSW4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgc2Vj
dGlvbiA3LCB0aGUgcmVxdWlyZWQgImVycm9yLXRhZyIgaXMgaWRlbnRpZmllZCBhcyAib3BlcmF0
aW9uLWZhaWxlZCIuICAgSWYgd2UgaW5zdGVhZCBwbGFjZWQgdGhhdCAiZXJyb3ItdGFnIiBpbmZv
cm1hdGlvbiBpbiB0aGUgWUFORyBtb2RlbCwgdGhlbiB3ZSBoYXZlIHRpZWQgdGhlIFlBTkcgbW9k
ZWwgdG8gdGhlIFJFU1RDT05GIGFuZCBORVRDT05GIHRyYW5zcG9ydHMuDQoNCj4gQm90aCBORVRD
T05GIGFuZCBSRVNUQ09ORiB1c2UgYSBjb21wYXRpYmxlIGVycm9yIHJlcG9ydGluZyBkYXRhIHN0
cnVjdHVyZS4NCj4gVGhlICJlcnJvci10YWciIGlzIHVzZWQgaW4gYm90aCBvZiB0aGVtLiAgSU1P
IGNsaWVudCBkZXZlbG9wZXJzIGRvIG5vdA0KPiB3YW50IGEgZGlmZmVyZW50IHNldCBvZiBlcnJv
ciBjb2RlcyBmb3IgdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCg0KZHJhZnQtaWV0Zi1uZXRj
b25mLXJlc3Rjb25mLW5vdGlmIFNlY3Rpb24gMy4zIGFsc28gcmVxdWlyZXMgYW4gImVycm9yLXRh
ZyIgbm9kZSBvZiAib3BlcmF0aW9uLWZhaWxlZCIuICBTbyB3ZSB1c2VkIHRoZSB0cmFuc3BvcnQg
ZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1vZGVsIHRvIHN1cHBvcnQgdGhlIHNhbWUgZXJy
b3IgY29kZXMgZm9yIHRoZSBzYW1lIGVycm9yIGNvbmRpdGlvbnMuDQoNCj4gSSBhZ3JlZSB0aGF0
IHRyYW5zcG9ydCBkcmFmdHMgY291bGQgZGVmaW5lIHRoZWlyIG93biBlcnJvciBpZGVudGl0aWVz
LA0KPiB3aGljaCB3b3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgZXJyb3ItdGFnIHRoZXJlLg0K
Pg0KPg0KPiA+ICAgIDIuICAibW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyI6
IFRoaXMgTVVTVCBiZSByZXR1cm5lZA0KPiA+ICAgICAgICB3aXRoIHRoZSBsZWFmICJyZWFzb24i
IHBvcHVsYXRlZCBpZiBhbiBSUEMgZXJyb3IgcmVhc29uIGhhcyBub3QNCj4gPiAgICAgICAgYmVl
biBwbGFjZWQgZWxzZXdoZXJlIHdpdGhpbiB0aGUgdHJhbnNwb3J0IHBvcnRpb24gb2YgYSBmYWls
ZWQNCj4gPiAgICAgICAgIm1vZGlmeS1zdWJzY3JpcHRpb24iIFJQQyByZXNwb25zZS4gIFRoaXMg
TVVTVCBiZSBzZW50IGlmIGhpbnRzDQo+ID4NCj4gPiAgIC0tIGFsbCAzIHBhcmFncmFwaHMgbGlr
ZSB0aGlzOyB1bmNsZWFyIHdoYXQgInBsYWNlZCBlbHNld2hlcmUiDQo+ID4gICAgICAgdGV4dCBt
ZWFuczsgbm90IGFwcHJvcHJpYXRlIGZvciBNVVNUOw0KPg0KPiBJbnN0ZWFkIG9mICJwbGFjZWQg
ZWxzZXdoZXJlIiwgaG93IGFib3V0OiAicGxhY2VkIGluIHN1YnNjcmlwdGlvbiB0cmFuc3BvcnQN
Cj4gZG9jdW1lbnQgZGVmaW5lZCBvYmplY3QiLiAgV291bGQgdGhpcyBiZSBzdWZmaWNpZW50Pw0K
Pg0KPiBObyAtLSBORVRDT05GIGFuZCBSRVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciBy
ZXBvcnRpbmcuDQo+IFRoZSBzZXJ2ZXIgcmVxdWlyZW1lbnRzIGZvciB0aGlzIGVycm9yIHJlcG9y
dGluZyBtdXN0IGJlIGRvY3VtZW50ZWQuDQo+DQo+IEkgYWdyZWUgd2l0aCB0aGUgZm9sbG93aW5n
IGFwcHJvYWNoOg0KPiAgIC0gZWFjaCBvcGVyYXRpb24gTVVTVCBpZGVudGlmeSB0aGUgZXJyb3It
dGFncyB0aGF0IGFyZSBleHBlY3RlZCBmb3INCj4gICAgIHZhcmlvdXMgZXJyb3IgY29uZGl0aW9u
cyAoc3VjaCBzIGlzIGRvbmUgaW4gUkZDIDYyNDEpDQo+ICAgLSB0aGUgc2VydmVyIE1VU1QgcmV0
dXJuIHRoZSBzcGVjaWZpZWQgZXJyb3ItdGFncy4gSWYgYSBjb25kaXRpb24gbm90IGV4cGxpY2l0
bHkNCj4gICAgIGRlZmluZWQgdGhlbiB0aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlh
dGUgZXJyb3ItdGFnIGZyb20gUkZDIDYyNDENCj4gIC0gdGhlIHNlcnZlciBNQVkgaW5jbHVkZSB0
aGUgc3BlY2lmaWVkIHJjOnlhbmctZGF0YSBpbiB0aGUgPGVycm9yLWluZm8+IGRhdGENCj4gc3Ry
dWN0dXJlDQo+ICAtIHRoZSBzZXJ2ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlhbmct
ZGF0YSB0byByZXBvcnQgaGludHMNCj4gIC0gZm9yIHByb3RvY29scyBvdGhlciB0aGFuIE5FVENP
TkYgYW5kIFJFU1RDT05GLCB0aGV5IGNhbiBtYXAgZXJyb3ItdGFnIG9yDQo+IGlnbm9yZSBpdCwN
Cj4gICAgYnV0IHRoZSBkb2N1bWVudCBkZWZpbmluZyB0aGUgcHJvdG9jb2wgb3BlcmF0aW9uIE1V
U1QgcHJvdmlkZQ0KDQpGdW5jdGlvbmFsbHksIGV2ZXJ5dGhpbmcgeW91IGFzayBmb3IgaXMgZnVs
bHkgY292ZXJlZCB3aGVuIHlvdSBpbmNsdWRlIGNvbnNpZGVyIGRyYWZ0LWlldGYtbmV0Y29uZi1u
ZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgKHNlY3Rpb24gNykgYW5kIGRyYWZ0LWlldGYtbmV0
Y29uZi1yZXN0Y29uZi1ub3RpZiAoc2VjdGlvbiAzLjMpLg0KDQpNeSByZWFkIG9mIHRoZSBpc3N1
ZSBpcyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QgYmUgc3BlY2lmaWVkIGluIHRo
ZSBZQU5HIG1vZGVsLiAgSSBiZWxpZXZlIHRoYXQgImVycm9yLXRhZyIgc2hvdWxkbid0IGJlIGlu
IHRoZSBZQU5HIG1vZGVsIGJlY2F1c2UgdGhhdCB3b3VsZCB0aWUgdGhlIG1vZGVsIHRvIGEgdHJh
bnNwb3J0IHR5cGUuDQoNCkFueSB0aG91Z2h0cyBvbiBob3cgd2UgbWlnaHQgY2xvc2UgdGhpcz8g
ICAgSWYgYWJzb2x1dGVseSByZXF1aXJlZCBJIGNvdWxkIHBsYWNlIGEgbmV3IGNvbW1lbnQgbGlu
ZSBpbiB0aGUgWUFORyBtb2RlbCB1bmRlcg0KLyogSWRlbnRpdGllcyBmb3IgUlBDIGFuZCBOb3Rp
ZmljYXRpb24gZXJyb3JzICovDQoNClRoZSBjb21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtl
Og0KLyogV2hlbiB1c2VkIHdpdGggTkVUQ09ORiBhbmQgUkVTVENPTkYgUlBDczoNCiAgICAiZXJy
b3ItdHlwZSIgbm9kZSB0byBiZSB1c2VkIGlzICJhcHBsaWNhdGlvbiINCiAgICAgImVycm9yLXRh
ZyIgbXVzdCBiZSAib3BlcmF0aW9uLWZhaWxlZCIuICAqLw0KDQpUaGlzIHNlZW1zIGluY29uZ3J1
b3VzLiAgSnVzdCB0aHJvd2luZyBpdCBvdXQgYXMgYSBzdWdnZXN0aW9uLg0KDQo+IEluIGFueSBj
YXNlLCB0aGUgLXYyMSB3b3JkaW5nIHJlc3VsdHMgZnJvbSB0aGUgYXR0ZW1wdGVkIGJhbGFuY2lu
ZyB0aGUgV0cNCj4gcmVxdWVzdHMgZm9yOg0KPiAqIG1lcmdpbmcgd2l0aCB0cmFuc3BvcnQgcHJv
dG9jb2wgZXJyb3IgbWVjaGFuaXNtcw0KPiAqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8gcHJv
dmlkZSByZXF1aXJlbWVudHMgZm9yIHRyYW5zcG9ydCBkb2N1bWVudHMNCj4NCj4gPiAgICAgIE9u
bHkgMyBmaWVsZHMgc2VlbQ0KPiA+ICAgICAgIHRvIGJlIHJlbGV2YW50IChlcnJvci10YWcsIGVy
cm9yLWFwcC10YWcsIGVycm9yLWluZm8pLg0KPiA+ICAgICAgIFByb3Rjb2wgb3BlcmF0aW9ucyBh
cmUgZXhwZWN0ZWQgdG8gZG9jdW1lbnQgc2VydmVyIHJlcXVpcmVtZW50cw0KPiA+ICAgICAgIGZv
ciB0aGVzZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS4gIE9ubHkgdGhlIGVycm9yLXRhZw0KPiA+
ICAgICAgIGlzIG1hbmRhdG9yeS10by11c2UuDQo+DQo+IEhvcGVmdWxseSB0aGVzZSBhcmUgY292
ZXJlZCBzdWZmaWNpZW50bHkgd2hlbiB0aGlzIGRvY3VtZW50IGlzIGNvdXBsZWQgd2l0aA0KPiB0
aGUgTkVUQ09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3VtZW50cy4gICBGb3Ig
b3RoZXIgdHJhbnNwb3J0cywNCj4gdGhlIHRhZ3MgeW91IGlkZW50aWZ5IGFib3V0IHdvdWxkIG5v
dCBiZSBhcHBsaWNhYmxlLg0KPg0KPiA+ICAgLS0gdGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBl
eHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sIGl0IGlzIG5vdA0KPiA+ICAgICAgcG9zc2libGUgZm9y
IDxraWxsLXN1YnNjcmlwdGlvbj4gdG8gZmFpbCB3aXRoIGFuDQo+ID4gICAgICAnaW5zdWZmaWNp
ZW50LXJlc291cmNlcycgZXJyb3I7DQo+DQo+IFRoaXMgaXMgdGhlIGludGVudCBvZiB0aGUgYmFz
ZSBzcGVjaWZpY2F0aW9uLCBlLmcuLCB3ZSBkb24ndCBiZWxpZXZlIGEga2lsbC0NCj4gc3Vic2Ny
aXB0aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlYXNvbi4g
ICBCdXQgdmVuZG9ycyBtaWdodA0KPiBkZXNpcmUgbW9yZSBzcGVjaWZpY2l0eS4gIEFzIGEgcmVz
dWx0IGlzIGNlcnRhaW5seSBvayBmb3IgdmVuZG9yIGltcGxlbWVudGF0aW9ucw0KPiB0byBhZGQg
bmV3IGVycm9yIGlkZW50aXRpZXMuDQo+DQo+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5z
dWZmaWNpZW50IHJlc291cmNlcy4gVGhhdCBpcyB2ZXJ5IGltcGxlbWVudGF0aW9uLQ0KPiBzcGVj
aWZpYy4NCg0KSW5zdGVhZCBvZiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBJIHdvdWxkIGNhbGwg
aXQgYXBwbGljYXRpb24gc3BlY2lmaWMuICAgUmlnaHQgbm93IHdlIGRvbid0IGhhdmUgYSBjYXRj
aC1hbGwgZXJyb3ItaWRlbnRpdHkgb2YgJ290aGVyLWVycm9yJy4gIFdlIHByZWZlcnJlZCB0aGF0
IGVycm9yIGNvbmRpdGlvbnMgYmV5b25kIHRoZSBjdXJyZW50IG9uZXMgbGlzdGVkIGNvdWxkIGJl
IGluY2x1ZGVkIGJ5IHZlbmRvcnMgYXMgbmVlZGVkLiAgRnVydGhlciBkZXBsb3ltZW50IGV4cGVy
aWVuY2UgY291bGQgcmVzdWx0IGluIG5ldyBlcnJvciBpZGVudGl0aWVzIHN1cmZhY2luZyBmb3Ig
c3RhbmRhcmRpemF0aW9uIHNob3VsZCB0aGlzIGRyYWZ0IGNhdGNoIG9uLg0KDQo+ID4gICAgICBE
byBub3QgYWdyZWUgdGhhdCBzY29waW5nIGVhY2gNCj4gPiAgICAgIGlkZW50aXR5IHRvIHNwZWNp
ZmljIFJQQyBvcGVyYXRpb25zIGlzIGEgZ29vZCBpZGVhLg0KPg0KPiBUaGlzIGxldmVsIG9mIHNw
ZWNpZmljaXR5IHdhcyBub3QgdGhlIGF1dGhvcidzIG9yaWdpbmFsIHBsYW5zLiAgTm9yIHdhcyB0
aGlzIGxldmVsIG9mDQo+IHNwZWNpZmljaXR5IHBhcnQgb2YgZWFybGllciBkcmFmdCB2ZXJzaW9u
cyB1cCB0aHJvdWdoIC12MDguICAgSG93ZXZlciBtZW1iZXJzIG9mDQo+IHRoZSBXRyBtYWRlIGl0
IGNsZWFyIHRoYXQgc3VjaCBzcGVjaWZpY2l0eSB3YXMgbmVjZXNzYXJ5IGZvciBkcmFmdCBwcm9n
cmVzc2lvbi4NCj4NCj4gPiAgIC0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMg
cmVwb3J0ZWQgZm9yIGNvbmZpZ3VyZWQNCj4gPiAgICAgIHN1YnNjcmlwdGlvbnMgd2hlbiA8ZWRp
dC1jb25maWc+IGlzIHRoZSBSUEMgdGhhdCBoYXMgdGhlIGVycm9yPw0KPiA+ICAgICAgSG93IGFy
ZSB0aGUgeWFuZy1kYXRhIHN0cnVjdHMgdXNlZCBmb3IgZWRpdC1jb25maWcgb3IgY29tbWl0IGVy
cm9ycz8NCj4NCj4gTm9uZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUgc3BlY2lm
aWVkIGZvciB1c2Ugd2l0aCA8ZWRpdC1jb25maWc+DQo+IG9wZXJhdGlvbnMuICAgRm9yIDxlZGl0
LWNvbmZpZz4sIHRoZSBjaGFuZ2UgdG8gYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiB3b3VsZA0K
PiBiZSB3cml0dGVuIHRvIHRoZSBkYXRhc3RvcmUgaWYgaXQgd2VyZSBzZW1hbnRpY2FsbHkgdmFs
aWQuICAgQXQgdGhpcyBwb2ludCB0aGUNCj4gc3Vic2NyaXB0aW9uIGVudGVycyB0aGUgW2V2YWx1
YXRlXSBwb2ludHMgb2YgRmlndXJlIDguICBJc3N1ZXMgZnJvbSB0aGlzIHBvaW50IG91dA0KPiB3
b3VsZCBiZSByZXBvcnRlZCB3aXRoIGEgdmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFz
IFNZU0xPRy4NCj4NCj4gU28gaG93IGFyZSBoaW50cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZCBz
dWJzY3JpcHRpb25zPw0KDQpUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdo
aWNoIHJlcXVpcmVzIHRoaXMuICAgQW4gaW1wbGVtZW50YXRpb24gY291bGQgY2hvb3NlIHRvIHBs
YWNlIHRoZXNlIGluIHNvbWUgZm9ybSBvZiBTWVNMT0cuDQouLi4NCj4gPiBJNikgc2VjIDIuNSwg
cGFyYSAzOg0KPiA+DQo+ID4gICAgT24gYSByZWNlaXZlciBvZiBhDQo+ID4gICAgY29uZmlndXJl
ZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9ucyBpcw0KPiA+
ICAgIG9wdGlvbmFsIGV4Y2VwdCB3aGVyZSByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMg
aXMgcmVxdWlyZWQuDQo+ID4NCj4gPiAgIC0tIGNvbmZ1c2luZyBiZWNhdXNlIHRleHQgaW4gMS4z
Og0KPiA+ICAgICAgTm90ZSB0aGF0IHRoZXJlIGlzIG5vIG1peGluZy1hbmQtbWF0Y2hpbmcgb2Yg
ZHluYW1pYyBhbmQgY29uZmlndXJlZA0KPiA+ICAgICAgb3BlcmF0aW9ucyBvbiBhIHNpbmdsZSBz
dWJzY3JpcHRpb24uICBTcGVjaWZpY2FsbHksIGEgY29uZmlndXJlZA0KPiA+ICAgLS0gY2xhcmlm
eSB0aGUgcmVjZWl2ZXIgbWF5IGhhdmUgbXVsdGlwbGUgc3Vic2NyaXB0aW9ucyBoZXJlDQo+ID4g
ICAtLSBub3QgY2xlYXIgd2hhdCAiZXhjZXB0IHdoZXJlIHJlcGxheWluZy4uLiIgdGV4dCBtZWFu
cw0KPg0KPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyB0d2VhazoNCj4NCj4gIk9uIGEgcmVjZWl2
ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYyBzdWJz
Y3JpcHRpb25zDQo+IGlzIG9wdGlvbmFsLiAgSG93ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkIGV2
ZW50IHJlY29yZHMgaXMgcmVxdWlyZWQgZm9yIGENCj4gY29uZmlndXJlZCBzdWJzY3JpcHRpb24s
IHN1cHBvcnQgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9uIGlzIGhpZ2hseQ0KPiByZWNvbW1lbmRl
ZC4gIEluIHRoaXMgY2FzZSwgYSBzZXBhcmF0ZSBkeW5hbWljIHN1YnNjcmlwdGlvbiBjYW4gYmUg
ZXN0YWJsaXNoZWQNCj4gdG8gcmV0cmFuc21pdCB0aGUgbWlzc2luZyBldmVudCByZWNvcmRzLiIN
Cj4NCj4gT0sNCg0KQ2hhbmdlIG1hZGUuDQoNCj4gPiBJNykgbGVhZiBzdHJlYW0teHBhdGgtZmls
dGVyOiBbbXVsdGlwbGUgdXNlc10NCj4gPg0KPiA+ICAgICAgICAgICAgVGhlIGV4cHJlc3Npb24g
aXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBhdGggY29udGV4dDoNCj4gPg0KPiA+ICAg
ICAgICAgICAgICBvICAgVGhlIHNldCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGlzIHRoZSBz
ZXQgb2YgcHJlZml4DQo+ID4gICAgICAgICAgICAgICAgICBhbmQgbmFtZXNwYWNlIHBhaXJzIGZv
ciBhbGwgWUFORyBtb2R1bGVzIGltcGxlbWVudGVkDQo+ID4gICAgICAgICAgICAgICAgICBieSB0
aGUgc2VydmVyLCB3aGVyZSB0aGUgcHJlZml4IGlzIHRoZSBZQU5HIG1vZHVsZQ0KPiA+ICAgICAg
ICAgICAgICAgICAgbmFtZSBhbmQgdGhlIG5hbWVzcGFjZSBpcyBhcyBkZWZpbmVkIGJ5IHRoZQ0K
PiA+ICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZScgc3RhdGVtZW50IGluIHRoZSBZQU5HIG1v
ZHVsZS4NCj4gPg0KPiA+ICAgLS0gVGhpcyBwcmVmaXggcHJvY2Vzc2luZyBpcyBub3QgZG9uZSBh
bnl3aGVyZSBlbHNlIGluIE5FVENPTkYNCj4gPiAgICAgIG9yIFJFU1RDT05GLiAgSU1PIGEgYmFk
IHByZWNlZGVudC4gIE9ubHkgdGhlIFhNTCBwcmVmaXhlcw0KPiA+ICAgICAgc2hvdWxkIGJlIHJl
cXVpcmVkIGZvciBwcm9jZXNzaW5nIG9mIFhNTCBlbmNvZGluZy4gIFlBTkcNCj4gPiAgICAgIG1v
ZHVsZSBwcmVmaXhlcyBhcmUgbm90IHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSwgdW5saWtlDQo+ID4g
ICAgICB0aGUgcHJlZml4IG1hcHBpbmdzIGluIFhNTA0KPg0KPiBUaGlzIHRleHQgd2FzIHByb3Bv
c2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBvZiB0aGUgInhwYXRoIGV4cHJlc3Npb25zIGluIEpT
T04iDQo+IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9ELg0KPg0KPiBJIGFtIGhhcHB5IHRv
IGluY29ycG9yYXRlIHdoYXRldmVyIHRleHQgaXMgYXBwcm9wcmlhdGUuICBJIHdhcyBob3Bpbmcg
dGhhdCB0aGUNCj4gc3VnZ2VzdGVkIHRleHQgd2FzIHN1ZmZpY2llbnQgZm9yIG5vdy4gIEtlbnQg
aGFzIGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMgYW4NCj4gaXNzdWUgZm9yIHlhbmctbmV4
dA0KPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUNCj4g
U28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5vIGZpbmFsIHByZWNlZGVudCBiZWluZyBjbGFpbWVkLg0K
Pg0KPiBJIGRvIG5vdCBhZ3JlZSB0aGF0IHRoaXMgWUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBh
IG5ldyB3YXkgdG8gZW5jb2RlIFhQYXRoDQo+IGludG8gWE1MIGluc3RhbmNlIGRvY3VtZW50cy4g
VGhpcyB3aWxsIHJlcXVpcmUgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byBzZXJ2ZXINCj4gaW1wbGVt
ZW50YXRpb25zLiAgWUFORyBtb2R1bGUgcHJlZml4ZXMgYXJlIG5vdCBldmVuIHJlcXVpcmVkIHRv
IGJlIHVuaXF1ZQ0KPiBzbyB0aGUgc2V0IG9mIHByZWZpeGVzIHVzZWQgYnkgdGhlIHNlcnZlciBp
biBYTUwgaW5zdGFuY2UgZG9jdW1lbnRzIG1heSBiZQ0KPiBkaWZmZXJlbnQsDQo+IHNpbmNlIGl0
IG11c3QgYmUgdW5pcXVlLg0KDQpTZWUgbmV4dCBub3RlDQoNCj4gPiAgIC0tIE5NREEgYWxsb3dz
IHRoZSBzYW1lIG1vZHVsZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUgbW9kdWxlLXNldHMNCj4gPiAg
ICAgIGFuZCBkaWZmZXJlbnQgaW4gZWFjaCBkYXRhc3RvcmUuIFRoaXMgdGV4dCBhYm91dCAiaW1w
bGVtZW50ZWQgYnkNCj4gPiAgICAgIHRoZSBzZXJ2ZXIiIGRvZXMgbm90IHdvcmsgZm9yIE5NREEN
Cj4NCj4gSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0ZXZlciB0ZXh0IG1lZXRzIFlBTkcgZG9jdG9y
IGFwcHJvdmFsLiAgIENhbiB5b3UNCj4gc3VnZ2VzdD8NCj4NCj4NCj4gUmVtb3ZlIGFsbCB0ZXh0
IGFib3V0IFlBTkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nIFhNTCBlbmNvZGluZyB3aXRo
b3V0DQo+IG1vZGlmaWNhdGlvbg0KDQpBcyBhIGRpZmZlcmVudCBZQU5HIGRvY3RvciBoYXMgcmVx
dWlyZWQgdGhlIGN1cnJlbnQgdGV4dCBtb2RpZmljYXRpb24sIEkgYmVsaWV2ZSB0aGlzIGlzIGEg
YmxvY2tlci4gIFdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIFlBTkcgbW9kZWwgcmV2aWV3cyBpbiBz
dWNoIGEgY2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuICBBbnkgc3Vn
Z2VzdGlvbnMgb24gbmV4dCBzdGVwcz8NCg0KLi4uDQo+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUg
YW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJsZSBlbmNvZGluZyBwcm92aWRlZA0KPg0KPiBJIGFt
IGhhcHB5IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24gWUFORyBtb2RlbCdzIGlkZW50aXR5IGRl
ZmluaXRpb24gb2YNCj4gImNvbmZpZ3VyYWJsZS1lbmNvZGluZyIuICBJIGNvdWxkIGRvIHRoaXMg
YnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCB0ZXh0DQo+IHRvIHRoZSBkZXNjcmlw
dGlvbjogIkFuIGV4YW1wbGUgb2YgYSBjb25maWd1cmFibGUgZW5jb2RpbmcgbWlnaHQgYmUgYSBu
ZXcNCj4gaWRlbnRpdHkgc3VjaCBhcyAnZW5jb2RlLWNib3InLiAgU3VjaCBhbiBpZGVudGl0eSBj
b3VsZCB1c2UgJ2NvbmZpZ3VyYWJsZS0NCj4gZW5jb2RpbmcnIGFzIGl0cyBiYXNlLiAgVGhpcyB3
b3VsZCBhbGxvdyBhIGR5bmFtaWMgc3Vic2NyaXB0aW9uIGVuY29kZWQgaW4gSlNPTg0KPiBbUkZD
LTgyNTldIHRvIHJlcXVlc3Qgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGJlIGVuY29kZWQgdmlhIENC
T1IgW1JGQy0NCj4gNzA0OV0uICBGdXJ0aGVyIGRldGFpbHMgZm9yIGFueSBzcGVjaWZpYyBjb25m
aWd1cmFibGUgZW5jb2Rpbmcgd291bGQgYmUgZXhwbG9yZWQNCj4gaW4gYSB0cmFuc3BvcnQgZG9j
dW1lbnQgYmFzZWQgb24gdGhpcyBzcGVjaWZpY2F0aW9uLiIgICBEb2VzIHRoaXMgbWVldCB5b3Vy
IGFzaz8NCj4NCj4NCj4gT0sNCg0KQWRkZWQNCg0KPiA+IEkxMSkgZXh0ZW5zaW9uIHN1YnNjcmlw
dGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gew0KPiA+DQo+ID4gICAgICAgIFRoaXMgc3RhdGVtZW50
IGlzIG5vdCBmb3IgdXNlDQo+ID4gICAgICAgIG91dHNpZGUgb2YgdGhpcyBZQU5HIG1vZHVsZS4i
Ow0KPiA+DQo+ID4gICAtLSB0aGlzIHRleHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRoZXJlIGlzIG5v
IHZhbHVlIGluIGxpbWl0aW5nDQo+ID4gICAgICB0aGUgc2NvcGUgb2YgdGhpcyBleHRlbnNpb24u
ICBJdCBwcmV2ZW50cyBldmVuIHRoaXMgV0cgZnJvbQ0KPiA+ICAgICAgY3JlYXRpbmcgYSBtb2R1
bGUgdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gYWdhaW4uDQo+DQo+IFRoaXMgd2FzIHRoZSBzdWJq
ZWN0IG9mIHNpZ25pZmljYW50IGRlYmF0ZSBpbiB0aGUgV0cuICBUaGUgYXV0aG9ycyBkaWQgbm90
IHdhbnQNCj4gdGhpcyByZXN0cmljdGlvbiBlaXRoZXIuDQo+DQo+IFRvIGJlIGFsbG93ZWQgdG8g
cHJvZ3Jlc3MgdGhlIGRvY3VtZW50LCB3ZSBpbnNlcnRlZCB0aGUgZG9jdW1lbnQuICBJZiB0aGlz
DQo+IHJlYWxseSBpcyBtYW5kYXRvcnktdG8tcmVtb3ZlIGZyb20gYSBZQU5HIGRvY3RvciBwb2lu
dC1vZi12aWV3LCB3aGF0IGlzIHRoZQ0KPiBwcm9jZXNzIGZvciBxdWljayBjbG9zdXJlIG9uIHRo
aXMgaXNzdWUgYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFuZCB0aGUgWUFORw0KPiBkb2N0b3JzPw0K
Pg0KPg0KPiBUaGUgWUFORyBsYW5ndWFnZSBtYWtlcyBubyByZXN0cmljdGlvbnMgYWJvdXQgZXhw
b3J0aW5nIHN0YXRlbWVudHMuDQo+IEkgZ3Vlc3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3
aWxsIGp1c3Qgc2F5IE9LIGFuZCB3b25kZXIgd2hhdCBwcm9ibGVtDQo+IHRoaXMgaXMgc3VwcG9z
ZWQgdG8gc29sdmUuIEkgZ3Vlc3MgdGhlIFdHIHdhbnRzIHRvIGdpdmUgWUFORyBEb2N0b3JzIG1v
cmUNCj4gdGhpbmdzIHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdlIGNhbGxlZCBhIENMUiBpbiBT
Tk1QLWxhbmQgOy0pDQoNClRoYW5rcy4gIE5vIGFjdGlvbiB0YWtlbi4NCg0KPiA+IEkxMykgICBu
b3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgew0KPiA+ICAgICBzbjpzdWJzY3JpcHRp
b24tc3RhdGUtbm90aWZpY2F0aW9uOw0KPiA+ICAgICBpZi1mZWF0dXJlICJjb25maWd1cmVkIjsN
Cj4gPiAgICAgZGVzY3JpcHRpb24NCj4gPiAgICAgICAiVGhpcyBub3RpZmljYXRpb24gaW5kaWNh
dGVzIHRoYXQgYSBzdWJzY3JpcHRpb24gaGFzIHN0YXJ0ZWQgYW5kDQo+ID4gICAgICAgICBub3Rp
ZmljYXRpb25zIGFyZSBiZWdpbm5pbmcgdG8gYmUgc2VudC4gVGhpcyBub3RpZmljYXRpb24gc2hh
bGwNCj4gPiAgICAgICAgb25seSBiZSBzZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlv
bjsgaXQgZG9lcyBub3QNCj4gPiAgICAgICAgY29uc3RpdHV0ZSBhIGdlbmVyYWwtcHVycG9zZSBu
b3RpZmljYXRpb24uIjsNCj4gPg0KPiA+ICAgLS0gMm5kIHNlbnRlbmNlIGlzIGNvbmZ1c2luZzsg
YWxsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8NCj4gPiAgICAgIHJlY2VpdmVycyBvZiBhIHN1
YnNjcmlwdGlvbi4gbGFzdCBwYXJ0IGlzIHJlZHVuZGFudCBzaW5jZQ0KPiA+ICAgICAgdGhlIHNu
OnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gZXh0ZW5zaW9uIGlzIHVzZWQNCj4NCj4g
VGhlcmUgaXMgbm8gaXNzdWUgd2l0aCByZW1vdmluZyB0aGlzIHNlY29uZCBzZW50ZW5jZSBjb21w
bGV0ZWx5LiAgSWYgSSBkaWQgdGhhdCwNCj4gd291bGQgdGhpcyBhZGRyZXNzIHlvdXIgY29uY2Vy
bj8NCj4NCj4gT0sNCg0KRG9uZQ0KDQo+ID4gSTE0KSAgIHJjOnlhbmctZGF0YSBtb2RpZnktc3Vi
c2NyaXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvIHsNCj4gPg0KPiA+ICAgICAgIGxlYWYgZmlsdGVy
LWZhaWx1cmUtaGludCB7DQo+ID4gICAgICAgICB0eXBlIHN0cmluZzsNCj4gPiAgICAgICAgICAg
ZGVzY3JpcHRpb24NCj4gPiAgICAgICAgICAgICAiSW5mb3JtYXRpb24gZGVzY3JpYmluZyB3aGVy
ZSBhbmQvb3Igd2h5IGEgcHJvdmlkZWQgZmlsdGVyDQo+ID4gICAgICAgICAgICAgIHdhcyB1bnN1
cHBvcnRhYmxlIGZvciBhIHN1YnNjcmlwdGlvbi4iOw0KPiA+ICAgICAgIH0NCj4gPg0KPiA+ICAg
LS0gcnBjLWVycm9yIGFscmVhZHkgYWxsb3dzIG1vcmUgcHJlY2lzZSBlcnJvciByZXBvcnRpbmcN
Cj4gPiAgICAgIEl0IHVzZXMgZXJyb3ItdGFnLCBlcnJvci1wYXRoLCBlcnJvci1zdHJpbmcsIGFu
ZCBlcnJvci1pbmZvIGV4dGVuc2lvbnMNCj4gPiAgICAgIHRvIGlkZW50aWZ5IHdoaWNoIHBhcmFt
ZXRlcnMvY29uZGl0aW9ucyBjYXVzZWQgdGhlIFJQQyB0byBiZSByZWplY3RlZC4NCj4gPiAgICAg
IFRoaXMgZXJyb3IgcmVwb3J0aW5nIHdpbGwgY29udGludWUgdG8gYmUgdXNlZCwgTm90IHN1cmUg
dGhpcyBmYWlsdXJlLWhpbnQNCj4gPiAgICAgIGhhcyBhbnkgc3RhbmRhcmRzIHZhbHVlLiBQZXJo
YXBzIHJlYWwtdXNlIGV4YW1wbGUgY2FuIGJlIGFkZGVkDQo+DQo+IFBlciB5b3VyIHRob3VnaHRz
IG9uIHJwYy1lcnJvci4uLiAgIEZvciBORVRDT05GIGFuZCBSRVNUQ09ORiwgeW91IHBvaW50IHRv
DQo+IGVycm9yIHN0cnVjdHVyZXMgd2hpY2ggaGlzdG9yaWNhbGx5IGJlZW4gdXNlZCB3aXRoIHRo
b3NlIHRyYW5zcG9ydHMuICBPZiBjb3Vyc2UNCj4gd2Ugd2VyZSBsb29raW5nIHRvIGhhdmUgYWxs
IHN1YnNjcmlwdGlvbiBoaW50cyBzdXBwb3J0YWJsZSBhY3Jvc3MgdHJhbnNwb3J0cyB2aWENCj4g
YSBzaW5nbGUgcG9ydGFibGUgWUFORyBkYXRhIHN0cnVjdHVyZS4gIFNvIHRoZSB2YWx1ZSBpcyB0
aGF0IGEgc2luZ2xlIHN0cmluZw0KPiBvYmplY3QgZXhpc3RzIHNvIHRvIHRyYW5zcG9ydCB3aGF0
ZXZlciB0aGUgdmVuZG9yIHRoaW5rcyB3b3VsZCBiZSB1c2VmdWwgYXMgYQ0KPiBoaW50IGluIHRo
aXMgY2FzZS4gIEkuZS4sIHRoZXJlIGhhcyBiZWVuIG5vIGF0dGVtcHQgdG8gc3RhbmRhcmRpemUg
dGhlIGNvbnRlbnRzIG9mDQo+IHRoaXMgc3RyaW5nLiAgSWYgb3BlcmF0aW9uYWwgZXhwZXJpZW5j
ZXMgZHJpdmUgYSBkZXNpcmUgZm9yIHN1Y2ggc3RydWN0dXJpbmcsIHRoaXMNCj4gY291bGQgcHJv
dmlkZSB0aGUgYmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZiB0aGlzIHN0YXJ0
aW5nIHBvaW50Lg0KPg0KPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENPTkYgYW5kIFJF
U1RDT05GICJoaXN0b3JpYyIgcXVpdGUgeWV0Lg0KPiBUaGVyZSBhcmUgbWFueSBpbXBsZW1lbnRh
dGlvbnMgdXNpbmcgdGhlIHJwYy1lcnJvciByZXBvcnRpbmcgd2l0aCBubyBpbnRlbnQNCj4gdG8g
cmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLg0KPg0KPiBJIHdhcyBqdXN0IGFza2luZyBm
b3IgYW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlkZWEgd2hhdCBhbiBpbXBsZW1lbnRvcg0K
PiB3b3VsZCBwdXQgaW4gdGhpcyBsZWFmLg0KDQpIZXJlIGlzIGFuIGV4YW1wbGUgZnJvbSBvdXIg
aW1wbGVtZW50YXRpb24uICBTYXkgeW91IG1pc3R5cGUgYW4gZXh0cmEgIlwiIHRvIGFuIHhwYXRo
IGZpbHRlcjoNCi9pZjppbnRlcmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRo
ZXJuZXQwLzAiXS9vcGVyLXN0YXR1cw0KQXMgYSByZXN1bHQsIHRoZSBmaWx0ZXIgaXMgcGFzc2Vk
IHRvIHRoZSBwdWJsaXNoZXIgaXM6DQovaWY6aW50ZVxyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25h
bWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJdL29wZXItc3RhdHVzDQoNCldoYXQgd2Ugd291bGQgcmV0
dXJuIGluIHRoZSBmYWlsdXJlLWhpbnQgc3RyaW5nIGlzOg0KSW52YWxpZCBleHByZXNzaW9uOiBv
ZmZzZXQoOSkgaW4gJy9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJp
dEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMnDQoNCkVyaWMNCg0KPiBBbmR5DQo=

--_000_2ff23fa29204403489b6d69fdc5ecd74XCHRTP013ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1z
b0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJw
bGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25v
cm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21z
by1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm
Ow0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTkNCgl7bXNvLXN0eWxlLXR5
cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsN
Cgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4
cG9ydC1vbmx5O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCglt
YXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdl
OldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86
c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2Vu
ZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVk
aXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+
PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1
ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+SGkgQW5keSw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TG9va2luZyBhdCB5
b3VyIHByb3Bvc2FsLi4uJm5ic3A7IE15IHJlYWRpbmcgaXMgdGhhdCBpdCB0YWtlcyB0aGUgdHJh
bnNwb3J0IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFpbmVkIGluIGRyYWZ0LWlldGYtbmV0Y29u
Zi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgc2VjdGlvbiA3LCBhbmQgdGhlbiByZXBsaWNh
dGVzIHRoYXQgaW5mbyB3aXRoaW4gMTIgc2VwYXJhdGUgZGVzY3JpcHRpb24gb2JqZWN0cyBvZiB0
aGUNCiB0cmFuc3BvcnQgaW5kZXBlbmRlbnQgaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMu
eWFuZy4mbmJzcDsmbmJzcDsgJm5ic3A7VGhlIHZhbHVlIHlvdSBhcmUgYXNzZXJ0aW5nIGlzIHRo
YXQgUkZDcyBjb250YWluaW5nIFlBTkcgbW9kZWxzIGNvbnRhaW5pbmcgdGhlIHJwYy1zdG10IGhh
dmUgdHJhZGl0aW9uYWxseSBkb2N1bWVudCB0aGUgbWFuZGF0b3J5LXRvLWltcGxlbWVudCAmcXVv
dDtlcnJvci10YWcmcXVvdDsgZmllbGQgd2l0aGluIHRoZSBtb2RlbC4mbmJzcDsgQW5kIHByZXN1
bWFibHkNCiB5b3UgYXJlIGNvbmNlcm5lZCB0aGF0IGRldmVsb3BlcnMgc2hvdWxkIG5vdCBoYXZl
IHRvIGxvb2sgZWxzZXdoZXJlIGZvciB0aGlzIGluZm9ybWF0aW9uLjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5JZiB0aGUgWUFORyBkb2N0b3JzIHJlcXVpcmUgdGhpcywgaXQgY2FuIGJlIGluc2Vy
dGVkLiZuYnNwOyBBIHNpbWlsYXIgdGV4dCBjaGFuZ2Ugd291bGQgYmUgbmVlZGVkIGZvciBxdWl0
ZSBhIGZldyBlcnJvciBpZGVudGl0aWVzIHdpdGhpbiBZQU5HIFB1c2guJm5ic3A7Jm5ic3A7IFBl
cnNvbmFsbHkgSSBkb27igJl0IGxpa2UgdGhhdCBZQU5HIG1vZGVscyBzaG91bGQgYmUgcmVxdWly
ZWQgdG8gZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4mbmJzcDsgQnV0DQogSSB3aWxsIG1ha2UgdGhl
IGNoYW5nZSBpZiB5b3UgcmVhbGx5IHdhbnQgdGhpcywgYW5kIG5vYm9keSBlbHNlIG9iamVjdHMu
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk90aGVyIHRoYW4gdGhhdCwgSSBhbSBub3QgYXdhcmUg
b2YgYW55IG90aGVyIG9wZW4gaXNzdWVzIGluIHRoZSBZQU5HIERvY3RvciByZXZpZXcuJm5ic3A7
IERvIHlvdSBrbm93IG9mIGFueXRoaW5nIGVsc2U/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkVy
aWM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGlu
IDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10
b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiBBbmR5IEJpZXJtYW4sIEphbnVhcnkgMjEsIDIw
MTkgMjoyNiBQTTxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpLDxvOnA+PC9vOnA+PC9w
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB0aGluayB0aGUgZXJyb3ItdGFnIGlz
c3VlIGNhbiBiZSByZXNvbHZlZCBieSBpbmNsdWRpbmcgMSBleHRyYSBzZW50ZW5jZSBpbiBlYWNo
IGVycm9yIGlkZW50aXR5LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+SSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVTVENPTkYgY2VudHJpYyBi
dXQgdGhvc2UgYXJlIHRoZSBvbmx5IDIgc3RhbmRhcmQgcHJvdG9jb2xzPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5zdXBwb3J0ZWQgZm9yIHRoZSBZ
QU5HIGxhbmd1YWdlIHJpZ2h0IG5vdy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0lm
IHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1c2VkIGluIGVycm9yIHJlcG9ydGluZyw8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3RoZW4gdGhlIHZhbHVlICcmbHQ7Y29ycmVjdCBlcnJvci10YWcmZ3Q7
JyBNVVNUIGJlIHVzZWQuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Rm9yIGV4YW1wbGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T0xEOjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IGlkZW50aXR5
IGluc3VmZmljaWVudC1yZXNvdXJjZXMgezxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyBiYXNlIGVzdGFibGlzaC1zdWJzY3Jp
cHRpb24tZXJyb3I7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mbmJzcDsgJm5ic3A7IGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAm
bmJzcDsgYmFzZSBzdWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgZGVzY3Jp
cHRpb248bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZxdW90O1RoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVu
dCByZXNvdXJjZXMgdG8gc3VwcG9ydCB0aGU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JlcXVlc3Rl
ZCBzdWJzY3JpcHRpb24uJm5ic3A7IEFuIGV4YW1wbGUgbWlnaHQgYmUgdGhhdCBhbGxvY2F0ZWQg
Q1BVPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUg
ZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDttZXNzYWdl
cy4mcXVvdDs7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDsgfTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+TkVXOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IGlkZW50aXR5IGluc3VmZmljaWVu
dC1yZXNvdXJjZXMgezxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+Jm5ic3A7ICZuYnNwOyBiYXNlIGVzdGFibGlzaC1zdWJzY3JpcHRpb24tZXJyb3I7
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJz
cDsgJm5ic3A7IGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgYmFzZSBz
dWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgZGVzY3JpcHRpb248bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZxdW90O1RoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVudCByZXNvdXJjZXMg
dG8gc3VwcG9ydCB0aGU8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JlcXVlc3RlZCBzdWJzY3JpcHRp
b24uJm5ic3A7IEFuIGV4YW1wbGUgbWlnaHQgYmUgdGhhdCBhbGxvY2F0ZWQgQ1BVPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQg
b2Ygbm90aWZpY2F0aW9uPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDttZXNzYWdlcy4gSWYgdGhlICdl
cnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3IgcmVwb3J0aW5nLDxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7dGhlbiB0aGUgdmFsdWUgJ3Jlc291cmNlLWRlbmllZCcgTVVTVCBiZSB1c2VkLiZx
dW90Ozs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOyB9PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5BbmR5PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIEZyaSwgSmFuIDE4LCAyMDE5
IGF0IDExOjUzIEFNIEVyaWMgVm9pdCAoZXZvaXQpICZsdDs8YSBocmVmPSJtYWlsdG86ZXZvaXRA
Y2lzY28uY29tIj5ldm9pdEBjaXNjby5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlk
ICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0Ljhw
dDttYXJnaW4tcmlnaHQ6MGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4t
Ym90dG9tOjEyLjBwdCI+SGkgQW5keSw8YnI+DQo8YnI+DQpUaGFua3MuJm5ic3A7IEkgaGF2ZSBp
bmNvcnBvcmF0ZWQgaXRlbXMgd2hlcmUgdGhlcmUgd2FzIGFncmVlbWVudC4mbmJzcDsgSSBoYXZl
IHJlbW92ZWQgdGhlIGl0ZW1zIGJlbG93IHdoZXJlIHlvdSB3ZXJlIG9rLiZuYnNwOw0KPGJyPg0K
PGJyPg0KUmVtYWluaW5nIGJlbG93IGFyZSB0aGUgb3BlbiBpdGVtcywgd2l0aCByZXNwb25zZXMu
PGJyPg0KPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBTaG91bGQgYmUgY2xlYXIgc29tZXdo
ZXJlIHRoYXQ8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IHN1c3BlbmQgaXMgZm9yIENQVSBh
bmQgb3RoZXIgcmVzb3VyY2VzLCBhbmQgTkFDTSBub3QgY29uc2lkZXJlZDxicj4NCiZndDsgJmd0
OyZuYnNwOyAmbmJzcDsgdG8gYmUgYSByZXNvdXJjZS48YnI+DQomZ3Q7IDxicj4NCiZndDsgSWYg
TkFDTSBpcyBhY3RpdmUsIGl0IG5lZWRzIHRvIGJlIGZvbGxvd2VkLiZuYnNwOyBUaGUgdGV4dCB3
ZSBoYXZlIGZvciBOQUNNIGlzIGluPGJyPg0KJmd0OyBTZWN0aW9uIDUuNC4mbmJzcDsgRG8geW91
IHNlZSBzb21ldGhpbmcgZWxzZSBzcGVjaWZpYyB0byBzdWJzY3JpcHRpb24gc3VzcGVuc2lvbjxi
cj4NCiZndDsgbmVlZGVkIGhlcmU/Jm5ic3A7IChNYXliZSBJIGFtIG5vdCBnZXR0aW5nIHlvdXIg
cG9pbnQuKTxicj4NCiZndDsgPGJyPg0KJmd0OyBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFzIHRl
cm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0czxicj4NCiZndDsgKElzIHRoZXJlIGFuIGVycm9yIGlk
ZW50aXR5IGZvciB0aGlzIGV2ZW50Pyk8YnI+DQo8YnI+DQpUaGUgaWRlbnRpdHkgd2hpY2ggYXBw
bGllcyBoZXJlIGlzICZxdW90O3N0cmVhbS11bmF2YWlsYWJsZSZxdW90Oy4mbmJzcDsgVGhpcyBp
cyB0aGUgc2FtZSBpZGVudGl0eSB3aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBo
YWQgbmV2ZXIgc3VmZmljaWVudCBwZXJtaXNzaW9ucyBpbiB0aGUgZmlyc3QgcGxhY2UuJm5ic3A7
IEkgZG9uJ3QgYmVsaWV2ZSB3ZSB3b3VsZCB3YW50IHRvIHJldHVybiBhbiBpZGVudGl0eSBzcGVj
aWZpYyB0byB3aGVuIE5BQ00gd2hlbiBwZXJtaXNzaW9ucw0KIGhhdmUganVzdCBiZWVuIGNoYW5n
ZWQuPGJyPg0KPGJyPg0KJmd0OyAmZ3Q7IEkzKSBzZWMgMi4xIHBhcmEgNjo8YnI+DQomZ3Q7ICZn
dDsmbmJzcDsgJm5ic3A7IEV2ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVsaXZlcmVkIHRvIGEg
cmVjZWl2ZXIgaW4gYSBkaWZmZXJlbnQ8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IG9yZGVy
IHRoYW4gdGhleSB3ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS48YnI+DQomZ3Q7ICZn
dDs8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1YnNj
cmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LCB0aGV5IGFyZSBub3QgZXZlbnRzPGJyPg0KJmd0OyAm
Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDtwbGFjZWQgaW4gZXZlbnQgc3RyZWFtLjxicj4NCiZndDsg
PGJyPg0KJmd0OyBBZ3JlZSB0aGF0IHRoZXkgYXJlIG5vdCBvbiB0aGUgZXZlbnQgc3RyZWFtLiZu
YnNwOyBTbyB0aGV5IGRvIG5vdCB2aW9sYXRlIHRoaXM8YnI+DQomZ3Q7IHJlcXVpcmVtZW50Ljxi
cj4NCiZndDsgPGJyPg0KJmd0OyBBZGRpdGlvbmFsbHkgdGhlcmUgaXMgc3VwcG9ydGluZyB0ZXh0
IGluICZxdW90O1NlY3Rpb24gMi43OiBzdWJzY3JpcHRpb24gc3RhdGU8YnI+DQomZ3Q7IG5vdGlm
aWNhdGlvbnMmcXVvdDssIGluY2x1ZGluZy4uLjxicj4NCiZndDsgPGJyPg0KJmd0OyAmcXVvdDsg
SW5zdGVhZCwgdGhleSBhcmUgaW5zZXJ0ZWQgKGFzIGRlZmluZWQgaW4gdGhpcyBzZWN0aW9uKSB3
aXRoaW4gdGhlIHNlcXVlbmNlIG9mPGJyPg0KJmd0OyBub3RpZmljYXRpb24gbWVzc2FnZXMgc2Vu
dCB0byBhIHBhcnRpY3VsYXIgcmVjZWl2ZXIuJnF1b3Q7PGJyPg0KJmd0OyA8YnI+DQomZ3Q7ICZn
dDsmbmJzcDsgJm5ic3A7ICZuYnNwO05lZWQgdG8gYWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVkIHRv
IGJlIHNlbnQ8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2hlYWQtb2YtbGluZSB3
aGVuZXZlciBzdGF0ZSBjaGFuZ2VzPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IEkgYW0gbm90IHN1cmUg
dGhhdCBzdXNwZW5kZWQgc2hvdWxkIGFsd2F5cyBiZSBzZW50IGhlYWQtb2YtbGluZS4mbmJzcDsg
Jm5ic3A7Q29uc2lkZXI8YnI+DQomZ3Q7IHRoYXQgaW1wbGVtZW50YXRpb24gbWlnaHQgd2FudCB0
byBsZXQgdGhlIGV4aXN0aW5nIHF1ZXVlIG9mIGZpbHRlcmVkIGV2ZW50PGJyPg0KJmd0OyByZWNv
cmRzIGJlIHNlbnQgaWYgaXMgZmlsdGVyIGNvbXBsZXhpdHkgY2F1c2luZyB0aGUgQ1BVIGlzc3Vl
LiZuYnNwOyAmbmJzcDtUaGF0IGNvdWxkIGJlPGJyPg0KJmd0OyBkaWZmZXJlbnQgdGhhbiBpZiBp
dCBpcyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5nIHRoZSBzdXNwZW5zaW9uLCBhbmQgeW91PGJy
Pg0KJmd0OyBkZWZpbml0ZWx5IHdhbnQgdGhlICdzdWJzY3JpcHRpb24tc3VzcGVuZGVkJyB0byBi
ZSBwbGFjZWQgYXQgdGhlIGhlYWQgb2YgbGluZS48YnI+DQomZ3Q7IDxicj4NCiZndDsgPGJyPg0K
Jmd0OyBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVyIHRvIGRlY2lkZSB3aGVuIHRvIHN0b3Agc2Vu
ZGluZyBldmVudHMgb24gYTxicj4NCiZndDsgc3Vic2NyaXB0aW9uLjxicj4NCiZndDsgT2J2aW91
c2x5IHRoZSBwdWJsaXNoZXIgY2Fubm90IHdhaXQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbiBpcyBp
ZGxlLjxicj4NCiZndDsgVGhlIHJlYXNvbiBpdCBpcyBnZXR0aW5nIHN1c3BlbmRlZCBpcyBpdCBp
cyBmYXIgZnJvbSBpZGxlPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFNvIGFsc28gdXAgdG8gdGhlIHB1
Ymxpc2hlciB3cnQvIHdoYXQgdG8gZG8gd2l0aCBhbnkgZXZlbnRzIHRoYXQgaGF2ZSBub3Q8YnI+
DQomZ3Q7IGJlZW4gZGVsaXZlcmVkIHlldCBvbiBhIHN1YnNjcmlwdGlvbi4mbmJzcDsgQ291bGQg
ZGVsZXRlIHRoZW0gb3Igc2F2ZSB0aGVtIGZvcjxicj4NCiZndDsgd2hlbiBtb3JlIGJhbmR3aWR0
aCBhdmFpbGFibGUgKGZvciBleGFtcGxlKTxicj4NCjxicj4NCkFncmVlIGZ1bGx5IHdpdGggdGhp
cy4mbmJzcDsgSXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQgaGVyZT88YnI+DQo8
YnI+DQouLi4gPGJyPg0KJmd0OyBCZXlvbmQgdGhhdCBpdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50
YXRpb24gdG8gZGVjaWRlIGlmIHNvbWUgdW4tdHJhbnNtaXR0ZWQ8YnI+DQomZ3Q7IHF1ZXVlIG9m
IGV2ZW50IHJlY29yZHMgc2hvdWxkIGJlIGZsdXNoZWQgYW5kIHJlcHJvY2Vzc2VkIGJhc2VkIG9u
IHRoZTxicj4NCiZndDsgbW9kaWZpY2F0aW9uLiZuYnNwOyBJIGRvIG5vdCBleHBlY3QgdGhpcyB3
b3VsZCBwb3B1bGFyLCBhcyBhIHJlcGxheSBzdWJzY3JpcHRpb24gY291bGQ8YnI+DQomZ3Q7IGFj
Y29tcGxpc2ggdGhpcyBzYW1lIGZ1bmN0aW9uYWwgbmVlZC48YnI+DQomZ3Q7IDxicj4NCiZndDsg
QWdyZWVkIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gY2FuIGRyb3AgYXQgYW55IHRpbWUgYW5kIGlu
Y3JlbWVudCB0aGU8YnI+DQomZ3Q7IGFwcHJvcHJpYXRlIGNvdW50ZXJzLiBJdCB3aWxsIHRyeSB0
byB0byBkbyB0aGlzLCBidXQgbm8gcmVxdWlyZW1lbnRzIGV4Y2VwdDxicj4NCiZndDsgbWF5YmUg
c3Vic2NyaXB0aW9uIGV2ZW50cyBsaWtlICdyZXBsYXktY29tcGxldGVkJyBjYW5ub3QgYmUgZHJv
cHBlZDxicj4NCjxicj4NCkhhdmUgcHV0IGEgbWlub3IgdHdlYWsgaW50byBTZWN0aW9uIDIuNzo8
YnI+DQo8YnI+DQpbb2xkXSZuYnNwOyBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgY2Fubm90IGJlIGZpbHRlcmVkIG91dDxicj4NCjxicj4NCltuZXddIHN1YnNjcmlwdGlv
biBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3QgYmUgZHJvcHBlZCBvciBmaWx0ZXJl
ZCBvdXQ8YnI+DQo8YnI+DQouLi48YnI+DQomZ3Q7IFRoaW5raW5nIG1vcmUgb24geW91ciBwb2lu
dCwgaXQgbWlnaHQgYmUgd29ydGggdHdlYWtpbmcgYSBjb3VwbGUgd29yZHMgdG88YnI+DQomZ3Q7
IGFsbG93IGZvciBoZWFkLW9mLWxpbmUgcGxhY2VtZW50IG9mICZxdW90O3N1YnNjcmlwdGlvbi1z
dXNwZW5kZWQmcXVvdDsuPGJyPg0KJmd0OyA8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsmcXVvdDtT
dWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZSBpc3N1
YW5jZSBvZiB0aGlzPGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7c3Vic2NyaXB0aW9uIHN0YXRlIGNo
YW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiZxdW90Ozxicj4NCiZndDsgPGJyPg0K
Jmd0OyBBcmUgeW91IGdvb2Qgd2l0aCB0aGlzIHN1Z2dlc3RlZCBjaGFuZ2U/PGJyPg0KJmd0OyA8
YnI+DQomZ3Q7IE5vdCBzdXJlIC0tIGl0IG5lZWRzIHRvIGJlIGNsZWFyIHRoYXQgc3Vic2NyaXB0
aW9uLXN1c3BlbmRlZCBpcyB0aGU8YnI+DQomZ3Q7IGxhc3QgZXZlbnQgc2VudCBiZWZvcmUgc3Vz
cGVuZGluZyBhbmQgc3Vic2NyaXB0aW9uLXJlc3VtZWQgaXM8YnI+DQomZ3Q7IHRoZSBmaXJzdCBl
dmVudCBzZW50IGFmdGVyIHRyYW5zaXRpb24gZnJvbSBzdXNwZW5kZWQgdG8gYWN0aXZlLjxicj4N
CiZndDsgVGhlIG5leHQgZXZlbnQgY291bGQgYWxzbyBiZSBzdWJzY3JpcHRpb24tdGVybWluYXRl
ZC48YnI+DQo8YnI+DQpJIGRvIHRoaW5rIHRoaXMgcG9zc2liaWxpdHkgaXMgY292ZXJlZCBpbiB0
aGUgdGV4dC4mbmJzcDsgRm9yIFNlY3Rpb24gMi43LjQgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCB0
aGUgY3VycmVudCB0ZXh0IGlzOjxicj4NCjxicj4NCiZxdW90O05vIGZ1cnRoZXIgbm90aWZpY2F0
aW9uIHdpbGwgYmUgc2VudCB1bnRpbCB0aGUgc3Vic2NyaXB0aW9uIHJlc3VtZXMgb3IgaXMgdGVy
bWluYXRlZC4mcXVvdDs8YnI+DQo8YnI+DQpBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3JpcHRpb24t
cmVzdW1lZCBzYXlzJnF1b3Q7Ojxicj4NCiZxdW90O1N1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBn
ZW5lcmF0ZWQgYWZ0ZXIgdGhlIGlzc3VhbmNlIG9mIHRoaXMgc3Vic2NyaXB0aW9uIHN0YXRlIGNo
YW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiZxdW90Ozxicj4NCjxicj4NCkJhc2Vk
IG9uIHRoZSBkaXNjdXNzaW9uLCBJIGNhbiBtYWtlIGl0Ojxicj4NCjxicj4NCiZxdW90O1N1YnNj
cmliZWQgZXZlbnQgcmVjb3JkcyBhcmUgYWdhaW4gcGVybWl0dGVkIHRvIGJlIHNlbnQgZm9sbG93
aW5nIHRoaXMgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24uJnF1b3Q7PGJy
Pg0KPGJyPg0KSXMgdGhpcyBzdWZmaWNpZW50IGZvciB5b3U/PGJyPg0KPGJyPg0KLi4uPGJyPg0K
Jmd0OyAmZ3Q7IEk0KSBzZWMgMi40LjY6IFJQQyBGYWlsdXJlczxicj4NCiZndDsgJmd0OyZuYnNw
OyAmbmJzcDstLSBjb25jZXJuIGFib3V0IGEgc3Vic2NyaXB0aW9uLXNwZWNpZmljIGVycm9yIHJl
cG9ydGluZyBzeXN0ZW08YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBtdXN0IG1h
a2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzIHVzZWQgY29ycmVjdGx5
PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFllcy4mbmJzcDsgV2UgaGF2ZSBkb25lIG91ciBiZXN0IHRv
IGludGVncmF0ZSB3aXRoIHRoZSBlbWJlZGRlZCBORVRDT05GIGFuZDxicj4NCiZndDsgUkVTVENP
TkYgbWVjaGFuaXNtcy4mbmJzcDsgVGhlcmUgaXMgbXVjaCBhZGRpdGlvbmFsIGluZm9ybWF0aW9u
IGluIHRoZSB0cmFuc3BvcnQ8YnI+DQomZ3Q7IGRyYWZ0cyBoZXJlLjxicj4NCiZndDsgPGJyPg0K
Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIFRoZSBlcnJvci10YWcgdmFsdWUgbmVlZHMgdG8gYmUg
aWRlbnRpZmllZCBmb3IgZWFjaCAncmVhc29uJyBpZGVudGl0eTxicj4NCiZndDsgPGJyPg0KJmd0
OyBUaGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMuJm5ic3A7ICZuYnNwO0UuZy4s
IHNlZSBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC08YnI+DQomZ3Q7IG5vdGlmaWNh
dGlvbnMgU2VjdGlvbiA3PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IEkgZG8gbm90IGFncmVlIHRoaXMg
aXMgYSBnb29kIGlkZWEuPGJyPg0KJmd0OyBFYWNoIGVycm9yIGlkZW50aXR5IHNob3VsZCBzaW1w
bHkgc3RhdGUgdGhlIHJlcXVpcmVkICZxdW90O2Vycm9yLXRhZyZxdW90Ozxicj4NCiZndDsgdGhh
dCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yLiZuYnNwOyBUaGlzIGlzIGV4cGVjdGVkIG9m
IHByb3RvY29sIG9wZXJhdGlvbnM8YnI+DQomZ3Q7IHRoYXQgYXJlIGFkZGVkIHRvIE5FVENPTkYg
YW5kIFJFU1RDT05GLjxicj4NCjxicj4NCkluIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2
ZW50LW5vdGlmaWNhdGlvbnMsIHNlY3Rpb24gNywgdGhlIHJlcXVpcmVkICZxdW90O2Vycm9yLXRh
ZyZxdW90OyBpcyBpZGVudGlmaWVkIGFzICZxdW90O29wZXJhdGlvbi1mYWlsZWQmcXVvdDsuJm5i
c3A7ICZuYnNwO0lmIHdlIGluc3RlYWQgcGxhY2VkIHRoYXQgJnF1b3Q7ZXJyb3ItdGFnJnF1b3Q7
IGluZm9ybWF0aW9uIGluIHRoZSBZQU5HIG1vZGVsLCB0aGVuIHdlIGhhdmUgdGllZCB0aGUgWUFO
RyBtb2RlbCB0byB0aGUgUkVTVENPTkYgYW5kIE5FVENPTkYgdHJhbnNwb3J0cy48YnI+DQo8YnI+
DQomZ3Q7IEJvdGggTkVUQ09ORiBhbmQgUkVTVENPTkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciBy
ZXBvcnRpbmcgZGF0YSBzdHJ1Y3R1cmUuPGJyPg0KJmd0OyBUaGUgJnF1b3Q7ZXJyb3ItdGFnJnF1
b3Q7IGlzIHVzZWQgaW4gYm90aCBvZiB0aGVtLiZuYnNwOyBJTU8gY2xpZW50IGRldmVsb3BlcnMg
ZG8gbm90PGJyPg0KJmd0OyB3YW50IGEgZGlmZmVyZW50IHNldCBvZiBlcnJvciBjb2RlcyBmb3Ig
dGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy48YnI+DQo8YnI+DQpkcmFmdC1pZXRmLW5ldGNvbmYt
cmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxzbyByZXF1aXJlcyBhbiAmcXVvdDtlcnJvci10
YWcmcXVvdDsgbm9kZSBvZiAmcXVvdDtvcGVyYXRpb24tZmFpbGVkJnF1b3Q7LiZuYnNwOyBTbyB3
ZSB1c2VkIHRoZSB0cmFuc3BvcnQgZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1vZGVsIHRv
IHN1cHBvcnQgdGhlIHNhbWUgZXJyb3IgY29kZXMgZm9yIHRoZSBzYW1lIGVycm9yIGNvbmRpdGlv
bnMuPGJyPg0KPGJyPg0KJmd0OyBJIGFncmVlIHRoYXQgdHJhbnNwb3J0IGRyYWZ0cyBjb3VsZCBk
ZWZpbmUgdGhlaXIgb3duIGVycm9yIGlkZW50aXRpZXMsPGJyPg0KJmd0OyB3aGljaCB3b3VsZCBk
b2N1bWVudCB0aGUgZXhwZWN0ZWQgZXJyb3ItdGFnIHRoZXJlLjxicj4NCiZndDsgPGJyPg0KJmd0
OyA8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IDIuJm5ic3A7ICZxdW90O21vZGlmeS1zdWJz
Y3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8mcXVvdDs6IFRoaXMgTVVTVCBiZSByZXR1cm5lZDxi
cj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB3aXRoIHRoZSBsZWFmICZx
dW90O3JlYXNvbiZxdW90OyBwb3B1bGF0ZWQgaWYgYW4gUlBDIGVycm9yIHJlYXNvbiBoYXMgbm90
PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJlZW4gcGxhY2VkIGVs
c2V3aGVyZSB3aXRoaW4gdGhlIHRyYW5zcG9ydCBwb3J0aW9uIG9mIGEgZmFpbGVkPGJyPg0KJmd0
OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZxdW90O21vZGlmeS1zdWJzY3JpcHRp
b24mcXVvdDsgUlBDIHJlc3BvbnNlLiZuYnNwOyBUaGlzIE1VU1QgYmUgc2VudCBpZiBoaW50czxi
cj4NCiZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBhbGwgMyBwYXJhZ3Jh
cGhzIGxpa2UgdGhpczsgdW5jbGVhciB3aGF0ICZxdW90O3BsYWNlZCBlbHNld2hlcmUmcXVvdDs8
YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0ZXh0IG1lYW5zOyBub3Qg
YXBwcm9wcmlhdGUgZm9yIE1VU1Q7PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IEluc3RlYWQgb2YgJnF1
b3Q7cGxhY2VkIGVsc2V3aGVyZSZxdW90OywgaG93IGFib3V0OiAmcXVvdDtwbGFjZWQgaW4gc3Vi
c2NyaXB0aW9uIHRyYW5zcG9ydDxicj4NCiZndDsgZG9jdW1lbnQgZGVmaW5lZCBvYmplY3QmcXVv
dDsuJm5ic3A7IFdvdWxkIHRoaXMgYmUgc3VmZmljaWVudD88YnI+DQomZ3Q7IDxicj4NCiZndDsg
Tm8gLS0gTkVUQ09ORiBhbmQgUkVTVENPTkYgaGF2ZSB3ZWxsLWRlZmluZWQgZXJyb3IgcmVwb3J0
aW5nLjxicj4NCiZndDsgVGhlIHNlcnZlciByZXF1aXJlbWVudHMgZm9yIHRoaXMgZXJyb3IgcmVw
b3J0aW5nIG11c3QgYmUgZG9jdW1lbnRlZC48YnI+DQomZ3Q7PGJyPg0KJmd0OyBJIGFncmVlIHdp
dGggdGhlIGZvbGxvd2luZyBhcHByb2FjaDo8YnI+DQomZ3Q7ICZuYnNwOyAtIGVhY2ggb3BlcmF0
aW9uIE1VU1QgaWRlbnRpZnkgdGhlIGVycm9yLXRhZ3MgdGhhdCBhcmUgZXhwZWN0ZWQgZm9yPGJy
Pg0KJmd0OyAmbmJzcDsgJm5ic3A7IHZhcmlvdXMgZXJyb3IgY29uZGl0aW9ucyAoc3VjaCBzIGlz
IGRvbmUgaW4gUkZDIDYyNDEpPGJyPg0KJmd0OyAmbmJzcDsgLSB0aGUgc2VydmVyIE1VU1QgcmV0
dXJuIHRoZSBzcGVjaWZpZWQgZXJyb3ItdGFncy4gSWYgYSBjb25kaXRpb24gbm90IGV4cGxpY2l0
bHk8YnI+DQomZ3Q7ICZuYnNwOyAmbmJzcDsgZGVmaW5lZCB0aGVuIHRoZSBzZXJ2ZXIgTVVTVCBw
aWNrIHRoZSBhcHByb3ByaWF0ZSBlcnJvci10YWcgZnJvbSBSRkMgNjI0MTxicj4NCiZndDsgJm5i
c3A7LSB0aGUgc2VydmVyIE1BWSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgcmM6eWFuZy1kYXRhIGlu
IHRoZSAmbHQ7ZXJyb3ItaW5mbyZndDsgZGF0YTxicj4NCiZndDsgc3RydWN0dXJlPGJyPg0KJmd0
OyAmbmJzcDstIHRoZSBzZXJ2ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlhbmctZGF0
YSB0byByZXBvcnQgaGludHM8YnI+DQomZ3Q7ICZuYnNwOy0gZm9yIHByb3RvY29scyBvdGhlciB0
aGFuIE5FVENPTkYgYW5kIFJFU1RDT05GLCB0aGV5IGNhbiBtYXAgZXJyb3ItdGFnIG9yPGJyPg0K
Jmd0OyBpZ25vcmUgaXQsPGJyPg0KJmd0OyAmbmJzcDsgJm5ic3A7YnV0IHRoZSBkb2N1bWVudCBk
ZWZpbmluZyB0aGUgcHJvdG9jb2wgb3BlcmF0aW9uIE1VU1QgcHJvdmlkZTxicj4NCjxicj4NCkZ1
bmN0aW9uYWxseSwgZXZlcnl0aGluZyB5b3UgYXNrIGZvciBpcyBmdWxseSBjb3ZlcmVkIHdoZW4g
eW91IGluY2x1ZGUgY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90
aWZpY2F0aW9ucyAoc2VjdGlvbiA3KSBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5v
dGlmIChzZWN0aW9uIDMuMykuPGJyPg0KPGJyPg0KTXkgcmVhZCBvZiB0aGUgaXNzdWUgaXMgdGhh
dCB5b3UgYmVsaWV2ZSAmcXVvdDtlcnJvci10YWcmcXVvdDsgbXVzdCBiZSBzcGVjaWZpZWQgaW4g
dGhlIFlBTkcgbW9kZWwuJm5ic3A7IEkgYmVsaWV2ZSB0aGF0ICZxdW90O2Vycm9yLXRhZyZxdW90
OyBzaG91bGRuJ3QgYmUgaW4gdGhlIFlBTkcgbW9kZWwgYmVjYXVzZSB0aGF0IHdvdWxkIHRpZSB0
aGUgbW9kZWwgdG8gYSB0cmFuc3BvcnQgdHlwZS48YnI+DQo8YnI+DQpBbnkgdGhvdWdodHMgb24g
aG93IHdlIG1pZ2h0IGNsb3NlIHRoaXM/Jm5ic3A7ICZuYnNwOyBJZiBhYnNvbHV0ZWx5IHJlcXVp
cmVkIEkgY291bGQgcGxhY2UgYSBuZXcgY29tbWVudCBsaW5lIGluIHRoZSBZQU5HIG1vZGVsIHVu
ZGVyPGJyPg0KLyogSWRlbnRpdGllcyBmb3IgUlBDIGFuZCBOb3RpZmljYXRpb24gZXJyb3JzICov
PGJyPg0KPGJyPg0KVGhlIGNvbW1lbnQgd291bGQgYmUgc29tZXRoaW5nIGxpa2U6PGJyPg0KLyog
V2hlbiB1c2VkIHdpdGggTkVUQ09ORiBhbmQgUkVTVENPTkYgUlBDczo8YnI+DQombmJzcDsgJm5i
c3A7ICZxdW90O2Vycm9yLXR5cGUmcXVvdDsgbm9kZSB0byBiZSB1c2VkIGlzICZxdW90O2FwcGxp
Y2F0aW9uJnF1b3Q7PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsmcXVvdDtlcnJvci10YWcmcXVv
dDsgbXVzdCBiZSAmcXVvdDtvcGVyYXRpb24tZmFpbGVkJnF1b3Q7LiZuYnNwOyAqLzxicj4NCjxi
cj4NClRoaXMgc2VlbXMgaW5jb25ncnVvdXMuJm5ic3A7IEp1c3QgdGhyb3dpbmcgaXQgb3V0IGFz
IGEgc3VnZ2VzdGlvbi48YnI+DQo8YnI+DQomZ3Q7IEluIGFueSBjYXNlLCB0aGUgLXYyMSB3b3Jk
aW5nIHJlc3VsdHMgZnJvbSB0aGUgYXR0ZW1wdGVkIGJhbGFuY2luZyB0aGUgV0c8YnI+DQomZ3Q7
IHJlcXVlc3RzIGZvcjo8YnI+DQomZ3Q7ICogbWVyZ2luZyB3aXRoIHRyYW5zcG9ydCBwcm90b2Nv
bCBlcnJvciBtZWNoYW5pc21zPGJyPg0KJmd0OyAqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8g
cHJvdmlkZSByZXF1aXJlbWVudHMgZm9yIHRyYW5zcG9ydCBkb2N1bWVudHM8YnI+DQomZ3Q7IDxi
cj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7IE9ubHkgMyBmaWVsZHMgc2VlbTxicj4N
CiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3RvIGJlIHJlbGV2YW50IChlcnJv
ci10YWcsIGVycm9yLWFwcC10YWcsIGVycm9yLWluZm8pLjxicj4NCiZndDsgJmd0OyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO1Byb3Rjb2wgb3BlcmF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gZG9j
dW1lbnQgc2VydmVyIHJlcXVpcmVtZW50czxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwO2ZvciB0aGVzZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS4mbmJzcDsgT25seSB0
aGUgZXJyb3ItdGFnPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aXMg
bWFuZGF0b3J5LXRvLXVzZS48YnI+DQomZ3Q7IDxicj4NCiZndDsgSG9wZWZ1bGx5IHRoZXNlIGFy
ZSBjb3ZlcmVkIHN1ZmZpY2llbnRseSB3aGVuIHRoaXMgZG9jdW1lbnQgaXMgY291cGxlZCB3aXRo
PGJyPg0KJmd0OyB0aGUgTkVUQ09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3Vt
ZW50cy4mbmJzcDsgJm5ic3A7Rm9yIG90aGVyIHRyYW5zcG9ydHMsPGJyPg0KJmd0OyB0aGUgdGFn
cyB5b3UgaWRlbnRpZnkgYWJvdXQgd291bGQgbm90IGJlIGFwcGxpY2FibGUuPGJyPg0KJmd0OyA8
YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gdGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBl
eHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sIGl0IGlzIG5vdDxicj4NCiZndDsgJmd0OyZuYnNwOyAm
bmJzcDsgJm5ic3A7IHBvc3NpYmxlIGZvciAmbHQ7a2lsbC1zdWJzY3JpcHRpb24mZ3Q7IHRvIGZh
aWwgd2l0aCBhbjxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICdpbnN1ZmZpY2ll
bnQtcmVzb3VyY2VzJyBlcnJvcjs8YnI+DQomZ3Q7IDxicj4NCiZndDsgVGhpcyBpcyB0aGUgaW50
ZW50IG9mIHRoZSBiYXNlIHNwZWNpZmljYXRpb24sIGUuZy4sIHdlIGRvbid0IGJlbGlldmUgYSBr
aWxsLTxicj4NCiZndDsgc3Vic2NyaXB0aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2ll
bnQtcmVzb3VyY2VzIHJlYXNvbi4mbmJzcDsgJm5ic3A7QnV0IHZlbmRvcnMgbWlnaHQ8YnI+DQom
Z3Q7IGRlc2lyZSBtb3JlIHNwZWNpZmljaXR5LiZuYnNwOyBBcyBhIHJlc3VsdCBpcyBjZXJ0YWlu
bHkgb2sgZm9yIHZlbmRvciBpbXBsZW1lbnRhdGlvbnM8YnI+DQomZ3Q7IHRvIGFkZCBuZXcgZXJy
b3IgaWRlbnRpdGllcy48YnI+DQomZ3Q7IDxicj4NCiZndDsgSU1PIGFueXRoaW5nIGNhbiBmYWls
IGZvciBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzLiBUaGF0IGlzIHZlcnkgaW1wbGVtZW50YXRpb24t
PGJyPg0KJmd0OyBzcGVjaWZpYy48YnI+DQo8YnI+DQpJbnN0ZWFkIG9mIGltcGxlbWVudGF0aW9u
IHNwZWNpZmljIEkgd291bGQgY2FsbCBpdCBhcHBsaWNhdGlvbiBzcGVjaWZpYy4mbmJzcDsgJm5i
c3A7UmlnaHQgbm93IHdlIGRvbid0IGhhdmUgYSBjYXRjaC1hbGwgZXJyb3ItaWRlbnRpdHkgb2Yg
J290aGVyLWVycm9yJy4mbmJzcDsgV2UgcHJlZmVycmVkIHRoYXQgZXJyb3IgY29uZGl0aW9ucyBi
ZXlvbmQgdGhlIGN1cnJlbnQgb25lcyBsaXN0ZWQgY291bGQgYmUgaW5jbHVkZWQgYnkgdmVuZG9y
cyBhcyBuZWVkZWQuJm5ic3A7IEZ1cnRoZXINCiBkZXBsb3ltZW50IGV4cGVyaWVuY2UgY291bGQg
cmVzdWx0IGluIG5ldyBlcnJvciBpZGVudGl0aWVzIHN1cmZhY2luZyBmb3Igc3RhbmRhcmRpemF0
aW9uIHNob3VsZCB0aGlzIGRyYWZ0IGNhdGNoIG9uLjxicj4NCjxicj4NCiZndDsgJmd0OyZuYnNw
OyAmbmJzcDsgJm5ic3A7IERvIG5vdCBhZ3JlZSB0aGF0IHNjb3BpbmcgZWFjaDxicj4NCiZndDsg
Jmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7IGlkZW50aXR5IHRvIHNwZWNpZmljIFJQQyBvcGVyYXRp
b25zIGlzIGEgZ29vZCBpZGVhLjxicj4NCiZndDsgPGJyPg0KJmd0OyBUaGlzIGxldmVsIG9mIHNw
ZWNpZmljaXR5IHdhcyBub3QgdGhlIGF1dGhvcidzIG9yaWdpbmFsIHBsYW5zLiZuYnNwOyBOb3Ig
d2FzIHRoaXMgbGV2ZWwgb2Y8YnI+DQomZ3Q7IHNwZWNpZmljaXR5IHBhcnQgb2YgZWFybGllciBk
cmFmdCB2ZXJzaW9ucyB1cCB0aHJvdWdoIC12MDguJm5ic3A7ICZuYnNwO0hvd2V2ZXIgbWVtYmVy
cyBvZjxicj4NCiZndDsgdGhlIFdHIG1hZGUgaXQgY2xlYXIgdGhhdCBzdWNoIHNwZWNpZmljaXR5
IHdhcyBuZWNlc3NhcnkgZm9yIGRyYWZ0IHByb2dyZXNzaW9uLjxicj4NCiZndDsgPGJyPg0KJmd0
OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMg
cmVwb3J0ZWQgZm9yIGNvbmZpZ3VyZWQ8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyBzdWJzY3JpcHRpb25zIHdoZW4gJmx0O2VkaXQtY29uZmlnJmd0OyBpcyB0aGUgUlBDIHRoYXQg
aGFzIHRoZSBlcnJvcj88YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBIb3cgYXJl
IHRoZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvciBlZGl0LWNvbmZpZyBvciBjb21taXQgZXJy
b3JzPzxicj4NCiZndDsgPGJyPg0KJmd0OyBOb25lIG9mIHRoZXNlIHlhbmctZGF0YSBzdHJ1Y3R1
cmVzIGFyZSBzcGVjaWZpZWQgZm9yIHVzZSB3aXRoICZsdDtlZGl0LWNvbmZpZyZndDs8YnI+DQom
Z3Q7IG9wZXJhdGlvbnMuJm5ic3A7ICZuYnNwO0ZvciAmbHQ7ZWRpdC1jb25maWcmZ3Q7LCB0aGUg
Y2hhbmdlIHRvIGEgY29uZmlndXJlZCBzdWJzY3JpcHRpb24gd291bGQ8YnI+DQomZ3Q7IGJlIHdy
aXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZiBpdCB3ZXJlIHNlbWFudGljYWxseSB2YWxpZC4mbmJz
cDsgJm5ic3A7QXQgdGhpcyBwb2ludCB0aGU8YnI+DQomZ3Q7IHN1YnNjcmlwdGlvbiBlbnRlcnMg
dGhlIFtldmFsdWF0ZV0gcG9pbnRzIG9mIEZpZ3VyZSA4LiZuYnNwOyBJc3N1ZXMgZnJvbSB0aGlz
IHBvaW50IG91dDxicj4NCiZndDsgd291bGQgYmUgcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBzcGVj
aWZpYyBjb25zdHJ1Y3Qgc3VjaCBhcyBTWVNMT0cuPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFNvIGhv
dyBhcmUgaGludHMgcmVwb3J0ZWQgZm9yIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucz88YnI+DQo8
YnI+DQpUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJlcXVpcmVz
IHRoaXMuJm5ic3A7ICZuYnNwO0FuIGltcGxlbWVudGF0aW9uIGNvdWxkIGNob29zZSB0byBwbGFj
ZSB0aGVzZSBpbiBzb21lIGZvcm0gb2YgU1lTTE9HLjxicj4NCi4uLjxicj4NCiZndDsgJmd0OyBJ
Nikgc2VjIDIuNSwgcGFyYSAzOjxicj4NCiZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAm
bmJzcDsgT24gYSByZWNlaXZlciBvZiBhPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBjb25m
aWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zIGlz
PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBvcHRpb25hbCBleGNlcHQgd2hlcmUgcmVwbGF5
aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVkLjxicj4NCiZndDsgJmd0Ozxicj4N
CiZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0IGluIDEuMzo8
YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBOb3RlIHRoYXQgdGhlcmUgaXMgbm8g
bWl4aW5nLWFuZC1tYXRjaGluZyBvZiBkeW5hbWljIGFuZCBjb25maWd1cmVkPGJyPg0KJmd0OyAm
Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgb3BlcmF0aW9ucyBvbiBhIHNpbmdsZSBzdWJzY3JpcHRp
b24uJm5ic3A7IFNwZWNpZmljYWxseSwgYSBjb25maWd1cmVkPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7
ICZuYnNwOy0tIGNsYXJpZnkgdGhlIHJlY2VpdmVyIG1heSBoYXZlIG11bHRpcGxlIHN1YnNjcmlw
dGlvbnMgaGVyZTxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBub3QgY2xlYXIgd2hhdCAm
cXVvdDtleGNlcHQgd2hlcmUgcmVwbGF5aW5nLi4uJnF1b3Q7IHRleHQgbWVhbnM8YnI+DQomZ3Q7
IDxicj4NCiZndDsgSG93IGFib3V0IHRoZSBmb2xsb3dpbmcgdHdlYWs6PGJyPg0KJmd0OyA8YnI+
DQomZ3Q7ICZxdW90O09uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwg
c3VwcG9ydCBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zPGJyPg0KJmd0OyBpcyBvcHRpb25hbC4m
bmJzcDsgSG93ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMgaXMgcmVxdWly
ZWQgZm9yIGE8YnI+DQomZ3Q7IGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZvciBk
eW5hbWljIHN1YnNjcmlwdGlvbiBpcyBoaWdobHk8YnI+DQomZ3Q7IHJlY29tbWVuZGVkLiZuYnNw
OyBJbiB0aGlzIGNhc2UsIGEgc2VwYXJhdGUgZHluYW1pYyBzdWJzY3JpcHRpb24gY2FuIGJlIGVz
dGFibGlzaGVkPGJyPg0KJmd0OyB0byByZXRyYW5zbWl0IHRoZSBtaXNzaW5nIGV2ZW50IHJlY29y
ZHMuJnF1b3Q7PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IE9LPGJyPg0KPGJyPg0KQ2hhbmdlIG1hZGUu
PGJyPg0KPGJyPg0KJmd0OyAmZ3Q7IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1maWx0ZXI6IFttdWx0
aXBsZSB1c2VzXTxicj4NCiZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBpbiB0
aGUgZm9sbG93aW5nIFhQYXRoIGNvbnRleHQ6PGJyPg0KJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG8mbmJzcDsg
Jm5ic3A7VGhlIHNldCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGlzIHRoZSBzZXQgb2YgcHJl
Zml4PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYW5kIG5hbWVzcGFjZSBwYWlycyBmb3IgYWxsIFlBTkcg
bW9kdWxlcyBpbXBsZW1lbnRlZDxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJ5IHRoZSBzZXJ2ZXIsIHdo
ZXJlIHRoZSBwcmVmaXggaXMgdGhlIFlBTkcgbW9kdWxlPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgbmFt
ZSBhbmQgdGhlIG5hbWVzcGFjZSBpcyBhcyBkZWZpbmVkIGJ5IHRoZTxicj4NCiZndDsgJmd0OyZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICduYW1lc3BhY2UnIHN0YXRlbWVudCBpbiB0aGUgWUFORyBtb2R1bGUuPGJyPg0KJmd0OyAm
Z3Q7PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIFRoaXMgcHJlZml4IHByb2Nlc3Npbmcg
aXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZSBpbiBORVRDT05GPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgb3IgUkVTVENPTkYuJm5ic3A7IElNTyBhIGJhZCBwcmVjZWRlbnQuJm5i
c3A7IE9ubHkgdGhlIFhNTCBwcmVmaXhlczxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7IHNob3VsZCBiZSByZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBvZiBYTUwgZW5jb2RpbmcuJm5i
c3A7IFlBTkc8YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBtb2R1bGUgcHJlZml4
ZXMgYXJlIG5vdCByZXF1aXJlZCB0byBiZSB1bmlxdWUsIHVubGlrZTxicj4NCiZndDsgJmd0OyZu
YnNwOyAmbmJzcDsgJm5ic3A7IHRoZSBwcmVmaXggbWFwcGluZ3MgaW4gWE1MPGJyPg0KJmd0OyA8
YnI+DQomZ3Q7IFRoaXMgdGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9m
IHRoZSAmcXVvdDt4cGF0aCBleHByZXNzaW9ucyBpbiBKU09OJnF1b3Q7PGJyPg0KJmd0OyB0aHJl
YWQgbGFzdCBPY3RvYmVyIGluIE5FVE1PRC48YnI+DQomZ3Q7IDxicj4NCiZndDsgSSBhbSBoYXBw
eSB0byBpbmNvcnBvcmF0ZSB3aGF0ZXZlciB0ZXh0IGlzIGFwcHJvcHJpYXRlLiZuYnNwOyBJIHdh
cyBob3BpbmcgdGhhdCB0aGU8YnI+DQomZ3Q7IHN1Z2dlc3RlZCB0ZXh0IHdhcyBzdWZmaWNpZW50
IGZvciBub3cuJm5ic3A7IEtlbnQgaGFzIGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMgYW48
YnI+DQomZ3Q7IGlzc3VlIGZvciB5YW5nLW5leHQ8YnI+DQomZ3Q7IDxhIGhyZWY9Imh0dHBzOi8v
Z2l0aHViLmNvbS9uZXRtb2Qtd2cveWFuZy1uZXh0L2lzc3Vlcy81NSIgdGFyZ2V0PSJfYmxhbmsi
Pmh0dHBzOi8vZ2l0aHViLmNvbS9uZXRtb2Qtd2cveWFuZy1uZXh0L2lzc3Vlcy81NTwvYT48YnI+
DQomZ3Q7IFNvIGhvcGVmdWxseSB0aGVyZSBpcyBubyBmaW5hbCBwcmVjZWRlbnQgYmVpbmcgY2xh
aW1lZC48YnI+DQomZ3Q7IDxicj4NCiZndDsgSSBkbyBub3QgYWdyZWUgdGhhdCB0aGlzIFlBTkcg
bW9kdWxlIHNob3VsZCBkZWZpbmUgYSBuZXcgd2F5IHRvIGVuY29kZSBYUGF0aDxicj4NCiZndDsg
aW50byBYTUwgaW5zdGFuY2UgZG9jdW1lbnRzLiBUaGlzIHdpbGwgcmVxdWlyZSBzaWduaWZpY2Fu
dCBjaGFuZ2VzIHRvIHNlcnZlcjxicj4NCiZndDsgaW1wbGVtZW50YXRpb25zLiZuYnNwOyBZQU5H
IG1vZHVsZSBwcmVmaXhlcyBhcmUgbm90IGV2ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVlPGJyPg0K
Jmd0OyBzbyB0aGUgc2V0IG9mIHByZWZpeGVzIHVzZWQgYnkgdGhlIHNlcnZlciBpbiBYTUwgaW5z
dGFuY2UgZG9jdW1lbnRzIG1heSBiZTxicj4NCiZndDsgZGlmZmVyZW50LDxicj4NCiZndDsgc2lu
Y2UgaXQgbXVzdCBiZSB1bmlxdWUuPGJyPg0KPGJyPg0KU2VlIG5leHQgbm90ZTxicj4NCjxicj4N
CiZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBOTURBIGFsbG93cyB0aGUgc2FtZSBtb2R1bGUgdG8g
YXBwZWFyIGluIG11bHRpcGxlIG1vZHVsZS1zZXRzPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgYW5kIGRpZmZlcmVudCBpbiBlYWNoIGRhdGFzdG9yZS4gVGhpcyB0ZXh0IGFib3V0
ICZxdW90O2ltcGxlbWVudGVkIGJ5PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
dGhlIHNlcnZlciZxdW90OyBkb2VzIG5vdCB3b3JrIGZvciBOTURBPGJyPg0KJmd0OyA8YnI+DQom
Z3Q7IEkgYW0gaGFwcHkgdG8gYWRvcHQgd2hhdGV2ZXIgdGV4dCBtZWV0cyBZQU5HIGRvY3RvciBh
cHByb3ZhbC4mbmJzcDsgJm5ic3A7Q2FuIHlvdTxicj4NCiZndDsgc3VnZ2VzdD88YnI+DQomZ3Q7
IDxicj4NCiZndDsgPGJyPg0KJmd0OyBSZW1vdmUgYWxsIHRleHQgYWJvdXQgWUFORyBwcmVmaXhl
cyBhbmQgY29udGludWUgdXNpbmcgWE1MIGVuY29kaW5nIHdpdGhvdXQ8YnI+DQomZ3Q7IG1vZGlm
aWNhdGlvbjxicj4NCjxicj4NCkFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyByZXF1aXJl
ZCB0aGUgY3VycmVudCB0ZXh0IG1vZGlmaWNhdGlvbiwgSSBiZWxpZXZlIHRoaXMgaXMgYSBibG9j
a2VyLiZuYnNwOyBXaGF0IGlzIHRoZSBwcm9jZXNzIGZvciBZQU5HIG1vZGVsIHJldmlld3MgaW4g
c3VjaCBhIGNhc2UuJm5ic3A7IEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuJm5i
c3A7IEFueSBzdWdnZXN0aW9ucyBvbiBuZXh0IHN0ZXBzPzxicj4NCjxicj4NCi4uLjxicj4NCiZn
dDsgJmd0OyZuYnNwOyAmbmJzcDstLSB0aGVyZSBzaG91bGQgYmUgYW4gZXhhbXBsZSBvZiBhIGNv
bmZpZ3VyYWJsZSBlbmNvZGluZyBwcm92aWRlZDxicj4NCiZndDsgPGJyPg0KJmd0OyBJIGFtIGhh
cHB5IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24gWUFORyBtb2RlbCdzIGlkZW50aXR5IGRlZmlu
aXRpb24gb2Y8YnI+DQomZ3Q7ICZxdW90O2NvbmZpZ3VyYWJsZS1lbmNvZGluZyZxdW90Oy4mbmJz
cDsgSSBjb3VsZCBkbyB0aGlzIGJ5IGFkZGluZyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgdGV4
dDxicj4NCiZndDsgdG8gdGhlIGRlc2NyaXB0aW9uOiAmcXVvdDtBbiBleGFtcGxlIG9mIGEgY29u
ZmlndXJhYmxlIGVuY29kaW5nIG1pZ2h0IGJlIGEgbmV3PGJyPg0KJmd0OyBpZGVudGl0eSBzdWNo
IGFzICdlbmNvZGUtY2JvcicuJm5ic3A7IFN1Y2ggYW4gaWRlbnRpdHkgY291bGQgdXNlICdjb25m
aWd1cmFibGUtPGJyPg0KJmd0OyBlbmNvZGluZycgYXMgaXRzIGJhc2UuJm5ic3A7IFRoaXMgd291
bGQgYWxsb3cgYSBkeW5hbWljIHN1YnNjcmlwdGlvbiBlbmNvZGVkIGluIEpTT048YnI+DQomZ3Q7
IFtSRkMtODI1OV0gdG8gcmVxdWVzdCBub3RpZmljYXRpb24gbWVzc2FnZXMgYmUgZW5jb2RlZCB2
aWEgQ0JPUiBbUkZDLTxicj4NCiZndDsgNzA0OV0uJm5ic3A7IEZ1cnRoZXIgZGV0YWlscyBmb3Ig
YW55IHNwZWNpZmljIGNvbmZpZ3VyYWJsZSBlbmNvZGluZyB3b3VsZCBiZSBleHBsb3JlZDxicj4N
CiZndDsgaW4gYSB0cmFuc3BvcnQgZG9jdW1lbnQgYmFzZWQgb24gdGhpcyBzcGVjaWZpY2F0aW9u
LiZxdW90OyZuYnNwOyAmbmJzcDtEb2VzIHRoaXMgbWVldCB5b3VyIGFzaz88YnI+DQomZ3Q7IDxi
cj4NCiZndDsgPGJyPg0KJmd0OyBPSzxicj4NCjxicj4NCkFkZGVkPGJyPg0KPGJyPg0KJmd0OyAm
Z3Q7IEkxMSkgZXh0ZW5zaW9uIHN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gezxicj4N
CiZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlz
IHN0YXRlbWVudCBpcyBub3QgZm9yIHVzZTxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyBvdXRzaWRlIG9mIHRoaXMgWUFORyBtb2R1bGUuJnF1b3Q7Ozxicj4NCiZndDsg
Jmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSB0aGlzIHRleHQgc2hvdWxkIGJlIHJl
bW92ZWQuIFRoZXJlIGlzIG5vIHZhbHVlIGluIGxpbWl0aW5nPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgdGhlIHNjb3BlIG9mIHRoaXMgZXh0ZW5zaW9uLiZuYnNwOyBJdCBwcmV2
ZW50cyBldmVuIHRoaXMgV0cgZnJvbTxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7
IGNyZWF0aW5nIGEgbW9kdWxlIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIGFnYWluLjxicj4NCiZn
dDsgPGJyPg0KJmd0OyBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBzaWduaWZpY2FudCBkZWJhdGUg
aW4gdGhlIFdHLiZuYnNwOyBUaGUgYXV0aG9ycyBkaWQgbm90IHdhbnQ8YnI+DQomZ3Q7IHRoaXMg
cmVzdHJpY3Rpb24gZWl0aGVyLjxicj4NCiZndDsgPGJyPg0KJmd0OyBUbyBiZSBhbGxvd2VkIHRv
IHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5zZXJ0ZWQgdGhlIGRvY3VtZW50LiZuYnNwOyBJ
ZiB0aGlzPGJyPg0KJmd0OyByZWFsbHkgaXMgbWFuZGF0b3J5LXRvLXJlbW92ZSBmcm9tIGEgWUFO
RyBkb2N0b3IgcG9pbnQtb2Ytdmlldywgd2hhdCBpcyB0aGU8YnI+DQomZ3Q7IHByb2Nlc3MgZm9y
IHF1aWNrIGNsb3N1cmUgb24gdGhpcyBpc3N1ZSBiZXR3ZWVuIFdHIGxlYWRlcnNoaXAgYW5kIHRo
ZSBZQU5HPGJyPg0KJmd0OyBkb2N0b3JzPzxicj4NCiZndDsgPGJyPg0KJmd0OyA8YnI+DQomZ3Q7
IFRoZSBZQU5HIGxhbmd1YWdlIG1ha2VzIG5vIHJlc3RyaWN0aW9ucyBhYm91dCBleHBvcnRpbmcg
c3RhdGVtZW50cy48YnI+DQomZ3Q7IEkgZ3Vlc3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3
aWxsIGp1c3Qgc2F5IE9LIGFuZCB3b25kZXIgd2hhdCBwcm9ibGVtPGJyPg0KJmd0OyB0aGlzIGlz
IHN1cHBvc2VkIHRvIHNvbHZlLiBJIGd1ZXNzIHRoZSBXRyB3YW50cyB0byBnaXZlIFlBTkcgRG9j
dG9ycyBtb3JlPGJyPg0KJmd0OyB0aGluZ3MgdG8gY2hlY2suIChUaGlzIGlzIHdoYXQgd2UgY2Fs
bGVkIGEgQ0xSIGluIFNOTVAtbGFuZCA7LSk8YnI+DQo8YnI+DQpUaGFua3MuJm5ic3A7IE5vIGFj
dGlvbiB0YWtlbi48YnI+DQo8YnI+DQomZ3Q7ICZndDsgSTEzKSZuYnNwOyAmbmJzcDtub3RpZmlj
YXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgezxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsg
Jm5ic3A7c246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbjs8YnI+DQomZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwO2lmLWZlYXR1cmUgJnF1b3Q7Y29uZmlndXJlZCZxdW90Ozs8YnI+
DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2Rlc2NyaXB0aW9uPGJyPg0KJmd0OyAmZ3Q7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7JnF1b3Q7VGhpcyBub3RpZmljYXRpb24gaW5kaWNh
dGVzIHRoYXQgYSBzdWJzY3JpcHRpb24gaGFzIHN0YXJ0ZWQgYW5kPGJyPg0KJmd0OyAmZ3Q7Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO25vdGlmaWNhdGlvbnMgYXJlIGJlZ2lubmlu
ZyB0byBiZSBzZW50LiBUaGlzIG5vdGlmaWNhdGlvbiBzaGFsbDxicj4NCiZndDsgJmd0OyZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBvbmx5IGJlIHNlbnQgdG8gcmVjZWl2ZXJzIG9mIGEgc3Vi
c2NyaXB0aW9uOyBpdCBkb2VzIG5vdDxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlvbi4mcXVvdDs7
PGJyPg0KJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIDJuZCBzZW50ZW5j
ZSBpcyBjb25mdXNpbmc7IGFsbCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvPGJyPg0KJmd0OyAm
Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgcmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0
IHBhcnQgaXMgcmVkdW5kYW50IHNpbmNlPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gZXh0ZW5zaW9uIGlzIHVz
ZWQ8YnI+DQomZ3Q7IDxicj4NCiZndDsgVGhlcmUgaXMgbm8gaXNzdWUgd2l0aCByZW1vdmluZyB0
aGlzIHNlY29uZCBzZW50ZW5jZSBjb21wbGV0ZWx5LiZuYnNwOyBJZiBJIGRpZCB0aGF0LDxicj4N
CiZndDsgd291bGQgdGhpcyBhZGRyZXNzIHlvdXIgY29uY2Vybj88YnI+DQomZ3Q7IDxicj4NCiZn
dDsgT0s8YnI+DQo8YnI+DQpEb25lPGJyPg0KPGJyPg0KJmd0OyAmZ3Q7IEkxNCkmbmJzcDsgJm5i
c3A7cmM6eWFuZy1kYXRhIG1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8gezxi
cj4NCiZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xl
YWYgZmlsdGVyLWZhaWx1cmUtaGludCB7PGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwO3R5cGUgc3RyaW5nOzxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVzY3JpcHRpb248YnI+DQomZ3Q7ICZndDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmcXVvdDtJbmZvcm1h
dGlvbiBkZXNjcmliaW5nIHdoZXJlIGFuZC9vciB3aHkgYSBwcm92aWRlZCBmaWx0ZXI8YnI+DQom
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
d2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiZxdW90Ozs8YnI+DQomZ3Q7ICZn
dDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPg0KJmd0OyAmZ3Q7PGJyPg0KJmd0OyAm
Z3Q7Jm5ic3A7ICZuYnNwOy0tIHJwYy1lcnJvciBhbHJlYWR5IGFsbG93cyBtb3JlIHByZWNpc2Ug
ZXJyb3IgcmVwb3J0aW5nPGJyPg0KJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgSXQgdXNl
cyBlcnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kIGVycm9yLWluZm8gZXh0
ZW5zaW9uczxicj4NCiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7IHRvIGlkZW50aWZ5IHdo
aWNoIHBhcmFtZXRlcnMvY29uZGl0aW9ucyBjYXVzZWQgdGhlIFJQQyB0byBiZSByZWplY3RlZC48
YnI+DQomZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGVycm9yIHJlcG9ydGluZyB3
aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQsIE5vdCBzdXJlIHRoaXMgZmFpbHVyZS1oaW50PGJyPg0K
Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBl
cmhhcHMgcmVhbC11c2UgZXhhbXBsZSBjYW4gYmUgYWRkZWQ8YnI+DQomZ3Q7IDxicj4NCiZndDsg
UGVyIHlvdXIgdGhvdWdodHMgb24gcnBjLWVycm9yLi4uJm5ic3A7ICZuYnNwO0ZvciBORVRDT05G
IGFuZCBSRVNUQ09ORiwgeW91IHBvaW50IHRvPGJyPg0KJmd0OyBlcnJvciBzdHJ1Y3R1cmVzIHdo
aWNoIGhpc3RvcmljYWxseSBiZWVuIHVzZWQgd2l0aCB0aG9zZSB0cmFuc3BvcnRzLiZuYnNwOyBP
ZiBjb3Vyc2U8YnI+DQomZ3Q7IHdlIHdlcmUgbG9va2luZyB0byBoYXZlIGFsbCBzdWJzY3JpcHRp
b24gaGludHMgc3VwcG9ydGFibGUgYWNyb3NzIHRyYW5zcG9ydHMgdmlhPGJyPg0KJmd0OyBhIHNp
bmdsZSBwb3J0YWJsZSBZQU5HIGRhdGEgc3RydWN0dXJlLiZuYnNwOyBTbyB0aGUgdmFsdWUgaXMg
dGhhdCBhIHNpbmdsZSBzdHJpbmc8YnI+DQomZ3Q7IG9iamVjdCBleGlzdHMgc28gdG8gdHJhbnNw
b3J0IHdoYXRldmVyIHRoZSB2ZW5kb3IgdGhpbmtzIHdvdWxkIGJlIHVzZWZ1bCBhcyBhPGJyPg0K
Jmd0OyBoaW50IGluIHRoaXMgY2FzZS4mbmJzcDsgSS5lLiwgdGhlcmUgaGFzIGJlZW4gbm8gYXR0
ZW1wdCB0byBzdGFuZGFyZGl6ZSB0aGUgY29udGVudHMgb2Y8YnI+DQomZ3Q7IHRoaXMgc3RyaW5n
LiZuYnNwOyBJZiBvcGVyYXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3Vj
aCBzdHJ1Y3R1cmluZywgdGhpczxicj4NCiZndDsgY291bGQgcHJvdmlkZSB0aGUgYmFzaXMgZm9y
IGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZiB0aGlzIHN0YXJ0aW5nIHBvaW50Ljxicj4NCiZn
dDsgPGJyPg0KJmd0OyBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENPTkYgYW5kIFJFU1RD
T05GICZxdW90O2hpc3RvcmljJnF1b3Q7IHF1aXRlIHlldC48YnI+DQomZ3Q7IFRoZXJlIGFyZSBt
YW55IGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGUgcnBjLWVycm9yIHJlcG9ydGluZyB3aXRoIG5v
IGludGVudDxicj4NCiZndDsgdG8gcmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLjxicj4N
CiZndDsgPGJyPg0KJmd0OyBJIHdhcyBqdXN0IGFza2luZyBmb3IgYW4gZXhhbXBsZSwgc2luY2Ug
SSBoYXZlIG5vIGlkZWEgd2hhdCBhbiBpbXBsZW1lbnRvcjxicj4NCiZndDsgd291bGQgcHV0IGlu
IHRoaXMgbGVhZi48YnI+DQo8YnI+DQpIZXJlIGlzIGFuIGV4YW1wbGUgZnJvbSBvdXIgaW1wbGVt
ZW50YXRpb24uJm5ic3A7IFNheSB5b3UgbWlzdHlwZSBhbiBleHRyYSAmcXVvdDtcJnF1b3Q7IHRv
IGFuIHhwYXRoIGZpbHRlcjo8YnI+DQovaWY6aW50ZXJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFt
ZT0mcXVvdDtHaWdhYml0RXRoZXJuZXQwLzAmcXVvdDtdL29wZXItc3RhdHVzPGJyPg0KQXMgYSBy
ZXN1bHQsIHRoZSBmaWx0ZXIgaXMgcGFzc2VkIHRvIHRoZSBwdWJsaXNoZXIgaXM6PGJyPg0KL2lm
OmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSZxdW90O0dpZ2FiaXRFdGhlcm5ldDAv
MCZxdW90O10vb3Blci1zdGF0dXM8YnI+DQo8YnI+DQpXaGF0IHdlIHdvdWxkIHJldHVybiBpbiB0
aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczo8YnI+DQpJbnZhbGlkIGV4cHJlc3Npb246IG9mZnNl
dCg5KSBpbiAnL2lmOmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSZxdW90O0dpZ2Fi
aXRFdGhlcm5ldDAvMCZxdW90O10vb3Blci1zdGF0dXMnPGJyPg0KPGJyPg0KRXJpYzxicj4NCjxi
cj4NCiZndDsgQW5keTxvOnA+PC9vOnA+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_2ff23fa29204403489b6d69fdc5ecd74XCHRTP013ciscocom_--


From nobody Tue Jan 22 16:43:36 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C83E1311CF for <netconf@ietfa.amsl.com>; Tue, 22 Jan 2019 16:43:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=yumaworks-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 zb4S99ybK9JF for <netconf@ietfa.amsl.com>; Tue, 22 Jan 2019 16:43:26 -0800 (PST)
Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) (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 B8A391311D1 for <netconf@ietf.org>; Tue, 22 Jan 2019 16:43:25 -0800 (PST)
Received: by mail-lj1-x244.google.com with SMTP id x85-v6so388394ljb.2 for <netconf@ietf.org>; Tue, 22 Jan 2019 16:43:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qhi+BxOzz0JjtcV9Yz6basJIJBhSRegTZxXFqu9v1HE=; b=gEtuqx9IOOz2E1lVAVQyLO2LmSG+LAs9c7k2O4LuEnehXDGuNTRWcJgcHmtOKyD6JS jyEXGB3Kubadhrmq6JMnslh+LMX5BBNFWu16fkBdO/uItqcipmt8QnM1nTIYOSLlvpYP tkgjQdARiJorymxosZ19bUvoXSLPea2dqFla+QiTHf1VmIe4i4ZLEkhrQOwOFWkfnIWc aMxyN41XXdotFRrv3jxKxr9bfGZAZz1iACGybudvUJbiW2glT7Z5pkgu7A2sx0zmSH0S 8Ps6PBfvB2O5FCF5ctc9mW1Rg05NPXTx+vrK9cuqes7atLtwTf8v3z7QOuUbxsnRUpz1 Scjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qhi+BxOzz0JjtcV9Yz6basJIJBhSRegTZxXFqu9v1HE=; b=Enb7PMjPkC5TGomL4NVPrbBVExHgh/EIMhWm2DJZwRMNSZ7ccaFTWbLq4C/heCK/YM LcFFWtgT0wAmYwxE+M55L6u9uoVQEk0XOsLiTH2kV39Zlj7PziXrmZUguG/zLgKFyLyU wg2ta1I0XG+9PuzBLsQUIFLvS7Vj7MTa922XU56zclBWSClbNnjer5e7s5N/eJeP00pZ q5gG1YLaCHxPdwlbid4Rjosn/TO/9Z6fGKrBw+lPmbetR5+6u9oUcksug5MPMV01EFWT JoyxxNwH6EmBRuDo+n7BNs0nKdXM9q9WIAwukhR5eOrTfa5sxow8FQSm0usLgYC/wNzw 2umw==
X-Gm-Message-State: AJcUukfkAFCBDkrKiWB+qkcRu9GR+ox5Ehkg6V7TRC+YmaZuFqTXtjQ7 o3TARcsaemRPVVcghgwrl5IMIRUcLHrT0EGxyjmFZA==
X-Google-Smtp-Source: ALg8bN5/BtqWlYEOEeNjA3G0CcMadUJfWrRGg4J4889ApV1LMQQxeddheCQoqU5cmGdN9biBZo/e7rQ1DR12Zp7BKkE=
X-Received: by 2002:a2e:9e95:: with SMTP id f21-v6mr96258ljk.128.1548204203651;  Tue, 22 Jan 2019 16:43:23 -0800 (PST)
MIME-Version: 1.0
References: <154751447121.9624.9621514728857769626@ietfa.amsl.com> <ece835a85a55419f875537f0ca4b90c6@XCH-RTP-013.cisco.com> <CABCOCHTQ4VD49zZ4LLOFHiTWhKJgOOhMyX0DAV-hrwYO8MZkCQ@mail.gmail.com> <5470793368f1424b9d554957bc45fcc4@XCH-RTP-013.cisco.com> <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com> <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com>
In-Reply-To: <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Tue, 22 Jan 2019 16:43:12 -0800
Message-ID: <CABCOCHQ=CcwY9Jq-8cMdXeKWabrOufwf8rt0VZy8fpjM4U5PXg@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>,  "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000994f9e058015610b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Xcxk9MDfAjhR-6UwOZlj3Xz5JcA>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 00:43:34 -0000

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

On Tue, Jan 22, 2019 at 2:25 PM Eric Voit (evoit) <evoit@cisco.com> wrote:

> Hi Andy,
>
>
>
> Looking at your proposal...  My reading is that it takes the transport
> specific error info contained in
> draft-ietf-netconf-netconf-event-notifications section 7, and then
> replicates that info within 12 separate description objects of the
> transport independent ietf-subscribed-notifications.yang.    The value yo=
u
> are asserting is that RFCs containing YANG models containing the rpc-stmt
> have traditionally document the mandatory-to-implement "error-tag" field
> within the model.  And presumably you are concerned that developers shoul=
d
> not have to look elsewhere for this information.
>
>
>
> If the YANG doctors require this, it can be inserted.  A similar text
> change would be needed for quite a few error identities within YANG Push.
> Personally I don=E2=80=99t like that YANG models should be required to em=
bed this
> information.  But I will make the change if you really want this, and
> nobody else objects.
>
>
>

YANG Doctors does not make requirements, just comments.


> Other than that, I am not aware of any other open issues in the YANG
> Doctor review.  Do you know of anything else?
>
>
>

No


> Eric
>
>
>


Andy


>
>
> *From:* Andy Bierman, January 21, 2019 2:26 PM
>
> Hi,
>
>
>
> I think the error-tag issue can be resolved by including 1 extra sentence
> in each error identity.
>
> I know this is NETCONF and RESTCONF centric but those are the only 2
> standard protocols
>
> supported for the YANG language right now.
>
>
>
>        If the 'error-tag' field is used in error reporting,
>
>        then the value '<correct error-tag>' MUST be used.
>
>
>
> For example:
>
>
>
>
>
> OLD:
>
>
>
>   identity insufficient-resources {
>
>     base establish-subscription-error;
>
>     base modify-subscription-error;
>
>     base subscription-suspended-reason;
>
>     description
>
>       "The publisher has insufficient resources to support the
>
>        requested subscription.  An example might be that allocated CPU
>
>        is too limited to generate the desired set of notification
>
>        messages.";
>
>   }
>
>
>
>
>
> NEW:
>
>
>
>   identity insufficient-resources {
>
>     base establish-subscription-error;
>
>     base modify-subscription-error;
>
>     base subscription-suspended-reason;
>
>     description
>
>       "The publisher has insufficient resources to support the
>
>        requested subscription.  An example might be that allocated CPU
>
>        is too limited to generate the desired set of notification
>
>        messages. If the 'error-tag' field is used in error reporting,
>
>        then the value 'resource-denied' MUST be used.";
>
>   }
>
>
>
>
>
> Andy
>
>
>
>
>
> On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit) <evoit@cisco.com>
> wrote:
>
> Hi Andy,
>
> Thanks.  I have incorporated items where there was agreement.  I have
> removed the items below where you were ok.
>
> Remaining below are the open items, with responses.
>
> > >    Should be clear somewhere that
> > >    suspend is for CPU and other resources, and NACM not considered
> > >    to be a resource.
> >
> > If NACM is active, it needs to be followed.  The text we have for NACM
> is in
> > Section 5.4.  Do you see something else specific to subscription
> suspension
> > needed here?  (Maybe I am not getting your point.)
> >
> > No -- OK to leave NACM as terminate-if-loss-of-rights
> > (Is there an error identity for this event?)
>
> The identity which applies here is "stream-unavailable".  This is the sam=
e
> identity which would be used if a subscriber had never sufficient
> permissions in the first place.  I don't believe we would want to return =
an
> identity specific to when NACM when permissions have just been changed.
>
> > > I3) sec 2.1 para 6:
> > >    Event records MUST NOT be delivered to a receiver in a different
> > >    order than they were placed onto an event stream.
> > >
> > >   -- does this apply to subscription-state? Think not, they are not
> events
> > >     placed in event stream.
> >
> > Agree that they are not on the event stream.  So they do not violate th=
is
> > requirement.
> >
> > Additionally there is supporting text in "Section 2.7: subscription sta=
te
> > notifications", including...
> >
> > " Instead, they are inserted (as defined in this section) within the
> sequence of
> > notification messages sent to a particular receiver."
> >
> > >     Need to allow ended or suspended to be sent
> > >     head-of-line whenever state changes
> >
> > I am not sure that suspended should always be sent head-of-line.
>  Consider
> > that implementation might want to let the existing queue of filtered
> event
> > records be sent if is filter complexity causing the CPU issue.   That
> could be
> > different than if it is a bandwidth issue driving the suspension, and y=
ou
> > definitely want the 'subscription-suspended' to be placed at the head o=
f
> line.
> >
> >
> > It is up to the publisher to decide when to stop sending events on a
> > subscription.
> > Obviously the publisher cannot wait until the subscription is idle.
> > The reason it is getting suspended is it is far from idle
> >
> > So also up to the publisher wrt/ what to do with any events that have n=
ot
> > been delivered yet on a subscription.  Could delete them or save them f=
or
> > when more bandwidth available (for example)
>
> Agree fully with this.  Is there text required in the draft here?
>
> ...
> > Beyond that it is up to the implementation to decide if some
> un-transmitted
> > queue of event records should be flushed and reprocessed based on the
> > modification.  I do not expect this would popular, as a replay
> subscription could
> > accomplish this same functional need.
> >
> > Agreed that an implementation can drop at any time and increment the
> > appropriate counters. It will try to to do this, but no requirements
> except
> > maybe subscription events like 'replay-completed' cannot be dropped
>
> Have put a minor tweak into Section 2.7:
>
> [old]  subscription state change notifications cannot be filtered out
>
> [new] subscription state change notifications cannot be dropped or
> filtered out
>
> ...
> > Thinking more on your point, it might be worth tweaking a couple words =
to
> > allow for head-of-line placement of "subscription-suspended".
> >
> >    "Subscribed event records queued for sending after the issuance of
> this
> >    subscription state change notification may now be sent."
> >
> > Are you good with this suggested change?
> >
> > Not sure -- it needs to be clear that subscription-suspended is the
> > last event sent before suspending and subscription-resumed is
> > the first event sent after transition from suspended to active.
> > The next event could also be subscription-terminated.
>
> I do think this possibility is covered in the text.  For Section 2.7.4
> subscription-suspended the current text is:
>
> "No further notification will be sent until the subscription resumes or i=
s
> terminated."
>
> And Section 2.7.5 subscription-resumed says":
> "Subscribed event records generated after the issuance of this
> subscription state change notification may now be sent."
>
> Based on the discussion, I can make it:
>
> "Subscribed event records are again permitted to be sent following this
> subscription state change notification."
>
> Is this sufficient for you?
>
> ...
> > > I4) sec 2.4.6: RPC Failures
> > >   -- concern about a subscription-specific error reporting system
> > >      must make sure protocol error reporting system is used correctly
> >
> > Yes.  We have done our best to integrate with the embedded NETCONF and
> > RESTCONF mechanisms.  There is much additional information in the
> transport
> > drafts here.
> >
> > >   -- The error-tag value needs to be identified for each 'reason'
> identity
> >
> > This is done in the transport drafts.   E.g., see
> draft-ietf-netconf-netconf-event-
> > notifications Section 7
> >
> > I do not agree this is a good idea.
> > Each error identity should simply state the required "error-tag"
> > that is associated with the error.  This is expected of protocol
> operations
> > that are added to NETCONF and RESTCONF.
>
> In draft-ietf-netconf-netconf-event-notifications, section 7, the require=
d
> "error-tag" is identified as "operation-failed".   If we instead placed
> that "error-tag" information in the YANG model, then we have tied the YAN=
G
> model to the RESTCONF and NETCONF transports.
>
> > Both NETCONF and RESTCONF use a compatible error reporting data
> structure.
> > The "error-tag" is used in both of them.  IMO client developers do not
> > want a different set of error codes for the same error conditions.
>
> draft-ietf-netconf-restconf-notif Section 3.3 also requires an "error-tag=
"
> node of "operation-failed".  So we used the transport drafts rather than
> the YANG model to support the same error codes for the same error
> conditions.
>
> > I agree that transport drafts could define their own error identities,
> > which would document the expected error-tag there.
> >
> >
> > >    2.  "modify-subscription-stream-error-info": This MUST be returned
> > >        with the leaf "reason" populated if an RPC error reason has no=
t
> > >        been placed elsewhere within the transport portion of a failed
> > >        "modify-subscription" RPC response.  This MUST be sent if hint=
s
> > >
> > >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> > >       text means; not appropriate for MUST;
> >
> > Instead of "placed elsewhere", how about: "placed in subscription
> transport
> > document defined object".  Would this be sufficient?
> >
> > No -- NETCONF and RESTCONF have well-defined error reporting.
> > The server requirements for this error reporting must be documented.
> >
> > I agree with the following approach:
> >   - each operation MUST identify the error-tags that are expected for
> >     various error conditions (such s is done in RFC 6241)
> >   - the server MUST return the specified error-tags. If a condition not
> explicitly
> >     defined then the server MUST pick the appropriate error-tag from RF=
C
> 6241
> >  - the server MAY include the specified rc:yang-data in the <error-info=
>
> data
> > structure
> >  - the server MUST use the appropriate rc:yang-data to report hints
> >  - for protocols other than NETCONF and RESTCONF, they can map error-ta=
g
> or
> > ignore it,
> >    but the document defining the protocol operation MUST provide
>
> Functionally, everything you ask for is fully covered when you include
> consider draft-ietf-netconf-netconf-event-notifications (section 7) and
> draft-ietf-netconf-restconf-notif (section 3.3).
>
> My read of the issue is that you believe "error-tag" must be specified in
> the YANG model.  I believe that "error-tag" shouldn't be in the YANG mode=
l
> because that would tie the model to a transport type.
>
> Any thoughts on how we might close this?    If absolutely required I coul=
d
> place a new comment line in the YANG model under
> /* Identities for RPC and Notification errors */
>
> The comment would be something like:
> /* When used with NETCONF and RESTCONF RPCs:
>     "error-type" node to be used is "application"
>      "error-tag" must be "operation-failed".  */
>
> This seems incongruous.  Just throwing it out as a suggestion.
>
> > In any case, the -v21 wording results from the attempted balancing the =
WG
> > requests for:
> > * merging with transport protocol error mechanisms
> > * WG leadership guidance to provide requirements for transport document=
s
> >
> > >      Only 3 fields seem
> > >       to be relevant (error-tag, error-app-tag, error-info).
> > >       Protcol operations are expected to document server requirements
> > >       for these 3 fields, if applicable.  Only the error-tag
> > >       is mandatory-to-use.
> >
> > Hopefully these are covered sufficiently when this document is coupled
> with
> > the NETCONF and RESTCONF Notif transport documents.   For other
> transports,
> > the tags you identify about would not be applicable.
> >
> > >   -- the error assignments are extremely specific. e.g., it is not
> > >      possible for <kill-subscription> to fail with an
> > >      'insufficient-resources' error;
> >
> > This is the intent of the base specification, e.g., we don't believe a
> kill-
> > subscription should fail for an insufficient-resources reason.   But
> vendors might
> > desire more specificity.  As a result is certainly ok for vendor
> implementations
> > to add new error identities.
> >
> > IMO anything can fail for insufficient resources. That is very
> implementation-
> > specific.
>
> Instead of implementation specific I would call it application specific.
>  Right now we don't have a catch-all error-identity of 'other-error'.  We
> preferred that error conditions beyond the current ones listed could be
> included by vendors as needed.  Further deployment experience could resul=
t
> in new error identities surfacing for standardization should this draft
> catch on.
>
> > >      Do not agree that scoping each
> > >      identity to specific RPC operations is a good idea.
> >
> > This level of specificity was not the author's original plans.  Nor was
> this level of
> > specificity part of earlier draft versions up through -v08.   However
> members of
> > the WG made it clear that such specificity was necessary for draft
> progression.
> >
> > >   -- how are errors in these parameters reported for configured
> > >      subscriptions when <edit-config> is the RPC that has the error?
> > >      How are the yang-data structs used for edit-config or commit
> errors?
> >
> > None of these yang-data structures are specified for use with
> <edit-config>
> > operations.   For <edit-config>, the change to a configured subscriptio=
n
> would
> > be written to the datastore if it were semantically valid.   At this
> point the
> > subscription enters the [evaluate] points of Figure 8.  Issues from thi=
s
> point out
> > would be reported with a vendor specific construct such as SYSLOG.
> >
> > So how are hints reported for configured subscriptions?
>
> There is nothing in the specification which requires this.   An
> implementation could choose to place these in some form of SYSLOG.
> ...
> > > I6) sec 2.5, para 3:
> > >
> > >    On a receiver of a
> > >    configured subscription, support for dynamic subscriptions is
> > >    optional except where replaying missed event records is required.
> > >
> > >   -- confusing because text in 1.3:
> > >      Note that there is no mixing-and-matching of dynamic and
> configured
> > >      operations on a single subscription.  Specifically, a configured
> > >   -- clarify the receiver may have multiple subscriptions here
> > >   -- not clear what "except where replaying..." text means
> >
> > How about the following tweak:
> >
> > "On a receiver of a configured subscription, support for dynamic
> subscriptions
> > is optional.  However if replaying missed event records is required for=
 a
> > configured subscription, support for dynamic subscription is highly
> > recommended.  In this case, a separate dynamic subscription can be
> established
> > to retransmit the missing event records."
> >
> > OK
>
> Change made.
>
> > > I7) leaf stream-xpath-filter: [multiple uses]
> > >
> > >            The expression is evaluated in the following XPath context=
:
> > >
> > >              o   The set of namespace declarations is the set of pref=
ix
> > >                  and namespace pairs for all YANG modules implemented
> > >                  by the server, where the prefix is the YANG module
> > >                  name and the namespace is as defined by the
> > >                  'namespace' statement in the YANG module.
> > >
> > >   -- This prefix processing is not done anywhere else in NETCONF
> > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > >      should be required for processing of XML encoding.  YANG
> > >      module prefixes are not required to be unique, unlike
> > >      the prefix mappings in XML
> >
> > This text was proposed by Martin as a result of the "xpath expressions
> in JSON"
> > thread last October in NETMOD.
> >
> > I am happy to incorporate whatever text is appropriate.  I was hoping
> that the
> > suggested text was sufficient for now.  Kent has already incorporated
> this as an
> > issue for yang-next
> > https://github.com/netmod-wg/yang-next/issues/55
> > So hopefully there is no final precedent being claimed.
> >
> > I do not agree that this YANG module should define a new way to encode
> XPath
> > into XML instance documents. This will require significant changes to
> server
> > implementations.  YANG module prefixes are not even required to be uniq=
ue
> > so the set of prefixes used by the server in XML instance documents may
> be
> > different,
> > since it must be unique.
>
> See next note
>
> > >   -- NMDA allows the same module to appear in multiple module-sets
> > >      and different in each datastore. This text about "implemented by
> > >      the server" does not work for NMDA
> >
> > I am happy to adopt whatever text meets YANG doctor approval.   Can you
> > suggest?
> >
> >
> > Remove all text about YANG prefixes and continue using XML encoding
> without
> > modification
>
> As a different YANG doctor has required the current text modification, I
> believe this is a blocker.  What is the process for YANG model reviews in
> such a case.  I am happy to accept whatever here.  Any suggestions on nex=
t
> steps?
>
> ...
> > >   -- there should be an example of a configurable encoding provided
> >
> > I am happy to enhance the definition YANG model's identity definition o=
f
> > "configurable-encoding".  I could do this by adding the following
> additional text
> > to the description: "An example of a configurable encoding might be a n=
ew
> > identity such as 'encode-cbor'.  Such an identity could use
> 'configurable-
> > encoding' as its base.  This would allow a dynamic subscription encoded
> in JSON
> > [RFC-8259] to request notification messages be encoded via CBOR [RFC-
> > 7049].  Further details for any specific configurable encoding would be
> explored
> > in a transport document based on this specification."   Does this meet
> your ask?
> >
> >
> > OK
>
> Added
>
> > > I11) extension subscription-state-notification {
> > >
> > >        This statement is not for use
> > >        outside of this YANG module.";
> > >
> > >   -- this text should be removed. There is no value in limiting
> > >      the scope of this extension.  It prevents even this WG from
> > >      creating a module that uses the extension again.
> >
> > This was the subject of significant debate in the WG.  The authors did
> not want
> > this restriction either.
> >
> > To be allowed to progress the document, we inserted the document.  If
> this
> > really is mandatory-to-remove from a YANG doctor point-of-view, what is
> the
> > process for quick closure on this issue between WG leadership and the
> YANG
> > doctors?
> >
> >
> > The YANG language makes no restrictions about exporting statements.
> > I guess I missed that debate so I will just say OK and wonder what
> problem
> > this is supposed to solve. I guess the WG wants to give YANG Doctors mo=
re
> > things to check. (This is what we called a CLR in SNMP-land ;-)
>
> Thanks.  No action taken.
>
> > > I13)   notification subscription-started {
> > >     sn:subscription-state-notification;
> > >     if-feature "configured";
> > >     description
> > >       "This notification indicates that a subscription has started an=
d
> > >         notifications are beginning to be sent. This notification sha=
ll
> > >        only be sent to receivers of a subscription; it does not
> > >        constitute a general-purpose notification.";
> > >
> > >   -- 2nd sentence is confusing; all notifications are sent to
> > >      receivers of a subscription. last part is redundant since
> > >      the sn:subscription-state-notification extension is used
> >
> > There is no issue with removing this second sentence completely.  If I
> did that,
> > would this address your concern?
> >
> > OK
>
> Done
>
> > > I14)   rc:yang-data modify-subscription-stream-error-info {
> > >
> > >       leaf filter-failure-hint {
> > >         type string;
> > >           description
> > >             "Information describing where and/or why a provided filte=
r
> > >              was unsupportable for a subscription.";
> > >       }
> > >
> > >   -- rpc-error already allows more precise error reporting
> > >      It uses error-tag, error-path, error-string, and error-info
> extensions
> > >      to identify which parameters/conditions caused the RPC to be
> rejected.
> > >      This error reporting will continue to be used, Not sure this
> failure-hint
> > >      has any standards value. Perhaps real-use example can be added
> >
> > Per your thoughts on rpc-error...   For NETCONF and RESTCONF, you point
> to
> > error structures which historically been used with those transports.  O=
f
> course
> > we were looking to have all subscription hints supportable across
> transports via
> > a single portable YANG data structure.  So the value is that a single
> string
> > object exists so to transport whatever the vendor thinks would be usefu=
l
> as a
> > hint in this case.  I.e., there has been no attempt to standardize the
> contents of
> > this string.  If operational experiences drive a desire for such
> structuring, this
> > could provide the basis for a new draft building off of this starting
> point.
> >
> > I guess I do not consider NETCONF and RESTCONF "historic" quite yet.
> > There are many implementations using the rpc-error reporting with no
> intent
> > to replace it with something else.
> >
> > I was just asking for an example, since I have no idea what an
> implementor
> > would put in this leaf.
>
> Here is an example from our implementation.  Say you mistype an extra "\"
> to an xpath filter:
> /if:interfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status
> As a result, the filter is passed to the publisher is:
> /if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status
>
> What we would return in the failure-hint string is:
> Invalid expression: offset(9) in
> '/if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status=
'
>
> Eric
>
> > Andy
>
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Tue, Jan 22, 2019 at 2:25 PM Eric Voit (evoit) &lt;<a h=
ref=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_6077071884964112041WordSection1">
<p class=3D"MsoNormal">Hi Andy,<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">Looking at your proposal...=C2=A0 My reading is that=
 it takes the transport specific error info contained in draft-ietf-netconf=
-netconf-event-notifications section 7, and then replicates that info withi=
n 12 separate description objects of the
 transport independent ietf-subscribed-notifications.yang.=C2=A0=C2=A0 =C2=
=A0The value you are asserting is that RFCs containing YANG models containi=
ng the rpc-stmt have traditionally document the mandatory-to-implement &quo=
t;error-tag&quot; field within the model.=C2=A0 And presumably
 you are concerned that developers should not have to look elsewhere for th=
is information.<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">If the YANG doctors require this, it can be inserted=
.=C2=A0 A similar text change would be needed for quite a few error identit=
ies within YANG Push.=C2=A0=C2=A0 Personally I don=E2=80=99t like that YANG=
 models should be required to embed this information.=C2=A0 But
 I will make the change if you really want this, and nobody else objects.<u=
></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></blockquote><div><br><=
/div><div>YANG Doctors does not make requirements, just comments.</div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D=
"EN-US"><div class=3D"gmail-m_6077071884964112041WordSection1"><p class=3D"=
MsoNormal"><u></u></p>
<p class=3D"MsoNormal">Other than that, I am not aware of any other open is=
sues in the YANG Doctor review.=C2=A0 Do you know of anything else?<u></u><=
u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></blockquote><div><br><=
/div><div>No</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div lang=3D"EN-US"><div class=3D"gmail-m_6077071884964112041Wor=
dSection1"><p class=3D"MsoNormal"><u></u></p>
<p class=3D"MsoNormal">Eric<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></blockquote><div><br><=
/div><div><br></div><div>Andy</div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmail-m_607707=
1884964112041WordSection1"><p class=3D"MsoNormal"><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Andy Bierman, January 21, 2019 2:26 PM<=
br>
<br>
<u></u><u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">Hi,<u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I think the error-tag issue can be resolved by inclu=
ding 1 extra sentence in each error identity.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I know this is NETCONF and RESTCONF centric but thos=
e are the only 2 standard protocols<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">supported for the YANG language right now.<u></u><u>=
</u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0If the &#39;error-tag&#39=
; field is used in error reporting,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0then the value &#39;&lt;c=
orrect error-tag&gt;&#39; MUST be used.<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">For example:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">OLD:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 identity insufficient-resources {<u></u><u></=
u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base establish-subscription-error;<u><=
/u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base modify-subscription-error;<u></u>=
<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base subscription-suspended-reason;<u>=
</u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 description<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 &quot;The publisher has insuffi=
cient resources to support the<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0requested subscription.=
=C2=A0 An example might be that allocated CPU<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0is too limited to generat=
e the desired set of notification<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0messages.&quot;;<u></u><u=
></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 }<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">NEW:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 identity insufficient-resources {<u></u><u></=
u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base establish-subscription-error;<u><=
/u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base modify-subscription-error;<u></u>=
<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 base subscription-suspended-reason;<u>=
</u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 description<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 &quot;The publisher has insuffi=
cient resources to support the<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0requested subscription.=
=C2=A0 An example might be that allocated CPU<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0is too limited to generat=
e the desired set of notification<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0messages. If the &#39;err=
or-tag&#39; field is used in error reporting,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 =C2=A0 =C2=A0 =C2=A0then the value &#39;resou=
rce-denied&#39; MUST be used.&quot;;<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 }<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Andy<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal">On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit) &=
lt;<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>=
&gt; wrote:<u></u><u></u></p>
</div>
<blockquote style=3D"border-top:none;border-right:none;border-bottom:none;b=
order-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4=
.8pt;margin-right:0in">
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt">Hi Andy,<br>
<br>
Thanks.=C2=A0 I have incorporated items where there was agreement.=C2=A0 I =
have removed the items below where you were ok.=C2=A0
<br>
<br>
Remaining below are the open items, with responses.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 Should be clear somewhere that<br>
&gt; &gt;=C2=A0 =C2=A0 suspend is for CPU and other resources, and NACM not=
 considered<br>
&gt; &gt;=C2=A0 =C2=A0 to be a resource.<br>
&gt; <br>
&gt; If NACM is active, it needs to be followed.=C2=A0 The text we have for=
 NACM is in<br>
&gt; Section 5.4.=C2=A0 Do you see something else specific to subscription =
suspension<br>
&gt; needed here?=C2=A0 (Maybe I am not getting your point.)<br>
&gt; <br>
&gt; No -- OK to leave NACM as terminate-if-loss-of-rights<br>
&gt; (Is there an error identity for this event?)<br>
<br>
The identity which applies here is &quot;stream-unavailable&quot;.=C2=A0 Th=
is is the same identity which would be used if a subscriber had never suffi=
cient permissions in the first place.=C2=A0 I don&#39;t believe we would wa=
nt to return an identity specific to when NACM when permissions
 have just been changed.<br>
<br>
&gt; &gt; I3) sec 2.1 para 6:<br>
&gt; &gt;=C2=A0 =C2=A0 Event records MUST NOT be delivered to a receiver in=
 a different<br>
&gt; &gt;=C2=A0 =C2=A0 order than they were placed onto an event stream.<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- does this apply to subscription-state? Think not, =
they are not events<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0placed in event stream.<br>
&gt; <br>
&gt; Agree that they are not on the event stream.=C2=A0 So they do not viol=
ate this<br>
&gt; requirement.<br>
&gt; <br>
&gt; Additionally there is supporting text in &quot;Section 2.7: subscripti=
on state<br>
&gt; notifications&quot;, including...<br>
&gt; <br>
&gt; &quot; Instead, they are inserted (as defined in this section) within =
the sequence of<br>
&gt; notification messages sent to a particular receiver.&quot;<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Need to allow ended or suspended to be sent<br=
>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0head-of-line whenever state changes<br>
&gt; <br>
&gt; I am not sure that suspended should always be sent head-of-line.=C2=A0=
 =C2=A0Consider<br>
&gt; that implementation might want to let the existing queue of filtered e=
vent<br>
&gt; records be sent if is filter complexity causing the CPU issue.=C2=A0 =
=C2=A0That could be<br>
&gt; different than if it is a bandwidth issue driving the suspension, and =
you<br>
&gt; definitely want the &#39;subscription-suspended&#39; to be placed at t=
he head of line.<br>
&gt; <br>
&gt; <br>
&gt; It is up to the publisher to decide when to stop sending events on a<b=
r>
&gt; subscription.<br>
&gt; Obviously the publisher cannot wait until the subscription is idle.<br=
>
&gt; The reason it is getting suspended is it is far from idle<br>
&gt; <br>
&gt; So also up to the publisher wrt/ what to do with any events that have =
not<br>
&gt; been delivered yet on a subscription.=C2=A0 Could delete them or save =
them for<br>
&gt; when more bandwidth available (for example)<br>
<br>
Agree fully with this.=C2=A0 Is there text required in the draft here?<br>
<br>
... <br>
&gt; Beyond that it is up to the implementation to decide if some un-transm=
itted<br>
&gt; queue of event records should be flushed and reprocessed based on the<=
br>
&gt; modification.=C2=A0 I do not expect this would popular, as a replay su=
bscription could<br>
&gt; accomplish this same functional need.<br>
&gt; <br>
&gt; Agreed that an implementation can drop at any time and increment the<b=
r>
&gt; appropriate counters. It will try to to do this, but no requirements e=
xcept<br>
&gt; maybe subscription events like &#39;replay-completed&#39; cannot be dr=
opped<br>
<br>
Have put a minor tweak into Section 2.7:<br>
<br>
[old]=C2=A0 subscription state change notifications cannot be filtered out<=
br>
<br>
[new] subscription state change notifications cannot be dropped or filtered=
 out<br>
<br>
...<br>
&gt; Thinking more on your point, it might be worth tweaking a couple words=
 to<br>
&gt; allow for head-of-line placement of &quot;subscription-suspended&quot;=
.<br>
&gt; <br>
&gt; =C2=A0 =C2=A0&quot;Subscribed event records queued for sending after t=
he issuance of this<br>
&gt; =C2=A0 =C2=A0subscription state change notification may now be sent.&q=
uot;<br>
&gt; <br>
&gt; Are you good with this suggested change?<br>
&gt; <br>
&gt; Not sure -- it needs to be clear that subscription-suspended is the<br=
>
&gt; last event sent before suspending and subscription-resumed is<br>
&gt; the first event sent after transition from suspended to active.<br>
&gt; The next event could also be subscription-terminated.<br>
<br>
I do think this possibility is covered in the text.=C2=A0 For Section 2.7.4=
 subscription-suspended the current text is:<br>
<br>
&quot;No further notification will be sent until the subscription resumes o=
r is terminated.&quot;<br>
<br>
And Section 2.7.5 subscription-resumed says&quot;:<br>
&quot;Subscribed event records generated after the issuance of this subscri=
ption state change notification may now be sent.&quot;<br>
<br>
Based on the discussion, I can make it:<br>
<br>
&quot;Subscribed event records are again permitted to be sent following thi=
s subscription state change notification.&quot;<br>
<br>
Is this sufficient for you?<br>
<br>
...<br>
&gt; &gt; I4) sec 2.4.6: RPC Failures<br>
&gt; &gt;=C2=A0 =C2=A0-- concern about a subscription-specific error report=
ing system<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 must make sure protocol error reporting syste=
m is used correctly<br>
&gt; <br>
&gt; Yes.=C2=A0 We have done our best to integrate with the embedded NETCON=
F and<br>
&gt; RESTCONF mechanisms.=C2=A0 There is much additional information in the=
 transport<br>
&gt; drafts here.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- The error-tag value needs to be identified for eac=
h &#39;reason&#39; identity<br>
&gt; <br>
&gt; This is done in the transport drafts.=C2=A0 =C2=A0E.g., see draft-ietf=
-netconf-netconf-event-<br>
&gt; notifications Section 7<br>
&gt; <br>
&gt; I do not agree this is a good idea.<br>
&gt; Each error identity should simply state the required &quot;error-tag&q=
uot;<br>
&gt; that is associated with the error.=C2=A0 This is expected of protocol =
operations<br>
&gt; that are added to NETCONF and RESTCONF.<br>
<br>
In draft-ietf-netconf-netconf-event-notifications, section 7, the required =
&quot;error-tag&quot; is identified as &quot;operation-failed&quot;.=C2=A0 =
=C2=A0If we instead placed that &quot;error-tag&quot; information in the YA=
NG model, then we have tied the YANG model to the RESTCONF and NETCONF tran=
sports.<br>
<br>
&gt; Both NETCONF and RESTCONF use a compatible error reporting data struct=
ure.<br>
&gt; The &quot;error-tag&quot; is used in both of them.=C2=A0 IMO client de=
velopers do not<br>
&gt; want a different set of error codes for the same error conditions.<br>
<br>
draft-ietf-netconf-restconf-notif Section 3.3 also requires an &quot;error-=
tag&quot; node of &quot;operation-failed&quot;.=C2=A0 So we used the transp=
ort drafts rather than the YANG model to support the same error codes for t=
he same error conditions.<br>
<br>
&gt; I agree that transport drafts could define their own error identities,=
<br>
&gt; which would document the expected error-tag there.<br>
&gt; <br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 2.=C2=A0 &quot;modify-subscription-stream-error-info=
&quot;: This MUST be returned<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with the leaf &quot;reason&quot; popul=
ated if an RPC error reason has not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 been placed elsewhere within the trans=
port portion of a failed<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;modify-subscription&quot; RPC re=
sponse.=C2=A0 This MUST be sent if hints<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- all 3 paragraphs like this; unclear what &quot;pla=
ced elsewhere&quot;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0text means; not appropriate for MUST;<b=
r>
&gt; <br>
&gt; Instead of &quot;placed elsewhere&quot;, how about: &quot;placed in su=
bscription transport<br>
&gt; document defined object&quot;.=C2=A0 Would this be sufficient?<br>
&gt; <br>
&gt; No -- NETCONF and RESTCONF have well-defined error reporting.<br>
&gt; The server requirements for this error reporting must be documented.<b=
r>
&gt;<br>
&gt; I agree with the following approach:<br>
&gt; =C2=A0 - each operation MUST identify the error-tags that are expected=
 for<br>
&gt; =C2=A0 =C2=A0 various error conditions (such s is done in RFC 6241)<br=
>
&gt; =C2=A0 - the server MUST return the specified error-tags. If a conditi=
on not explicitly<br>
&gt; =C2=A0 =C2=A0 defined then the server MUST pick the appropriate error-=
tag from RFC 6241<br>
&gt; =C2=A0- the server MAY include the specified rc:yang-data in the &lt;e=
rror-info&gt; data<br>
&gt; structure<br>
&gt; =C2=A0- the server MUST use the appropriate rc:yang-data to report hin=
ts<br>
&gt; =C2=A0- for protocols other than NETCONF and RESTCONF, they can map er=
ror-tag or<br>
&gt; ignore it,<br>
&gt; =C2=A0 =C2=A0but the document defining the protocol operation MUST pro=
vide<br>
<br>
Functionally, everything you ask for is fully covered when you include cons=
ider draft-ietf-netconf-netconf-event-notifications (section 7) and draft-i=
etf-netconf-restconf-notif (section 3.3).<br>
<br>
My read of the issue is that you believe &quot;error-tag&quot; must be spec=
ified in the YANG model.=C2=A0 I believe that &quot;error-tag&quot; shouldn=
&#39;t be in the YANG model because that would tie the model to a transport=
 type.<br>
<br>
Any thoughts on how we might close this?=C2=A0 =C2=A0 If absolutely require=
d I could place a new comment line in the YANG model under<br>
/* Identities for RPC and Notification errors */<br>
<br>
The comment would be something like:<br>
/* When used with NETCONF and RESTCONF RPCs:<br>
=C2=A0 =C2=A0 &quot;error-type&quot; node to be used is &quot;application&q=
uot;<br>
=C2=A0 =C2=A0 =C2=A0&quot;error-tag&quot; must be &quot;operation-failed&qu=
ot;.=C2=A0 */<br>
<br>
This seems incongruous.=C2=A0 Just throwing it out as a suggestion.<br>
<br>
&gt; In any case, the -v21 wording results from the attempted balancing the=
 WG<br>
&gt; requests for:<br>
&gt; * merging with transport protocol error mechanisms<br>
&gt; * WG leadership guidance to provide requirements for transport documen=
ts<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Only 3 fields seem<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to be relevant (error-tag, error-app-ta=
g, error-info).<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Protcol operations are expected to docu=
ment server requirements<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0for these 3 fields, if applicable.=C2=
=A0 Only the error-tag<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0is mandatory-to-use.<br>
&gt; <br>
&gt; Hopefully these are covered sufficiently when this document is coupled=
 with<br>
&gt; the NETCONF and RESTCONF Notif transport documents.=C2=A0 =C2=A0For ot=
her transports,<br>
&gt; the tags you identify about would not be applicable.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- the error assignments are extremely specific. e.g.=
, it is not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 possible for &lt;kill-subscription&gt; to fai=
l with an<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 &#39;insufficient-resources&#39; error;<br>
&gt; <br>
&gt; This is the intent of the base specification, e.g., we don&#39;t belie=
ve a kill-<br>
&gt; subscription should fail for an insufficient-resources reason.=C2=A0 =
=C2=A0But vendors might<br>
&gt; desire more specificity.=C2=A0 As a result is certainly ok for vendor =
implementations<br>
&gt; to add new error identities.<br>
&gt; <br>
&gt; IMO anything can fail for insufficient resources. That is very impleme=
ntation-<br>
&gt; specific.<br>
<br>
Instead of implementation specific I would call it application specific.=C2=
=A0 =C2=A0Right now we don&#39;t have a catch-all error-identity of &#39;ot=
her-error&#39;.=C2=A0 We preferred that error conditions beyond the current=
 ones listed could be included by vendors as needed.=C2=A0 Further
 deployment experience could result in new error identities surfacing for s=
tandardization should this draft catch on.<br>
<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Do not agree that scoping each<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 identity to specific RPC operations is a good=
 idea.<br>
&gt; <br>
&gt; This level of specificity was not the author&#39;s original plans.=C2=
=A0 Nor was this level of<br>
&gt; specificity part of earlier draft versions up through -v08.=C2=A0 =C2=
=A0However members of<br>
&gt; the WG made it clear that such specificity was necessary for draft pro=
gression.<br>
&gt; <br>
&gt; &gt;=C2=A0 =C2=A0-- how are errors in these parameters reported for co=
nfigured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 subscriptions when &lt;edit-config&gt; is the=
 RPC that has the error?<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 How are the yang-data structs used for edit-c=
onfig or commit errors?<br>
&gt; <br>
&gt; None of these yang-data structures are specified for use with &lt;edit=
-config&gt;<br>
&gt; operations.=C2=A0 =C2=A0For &lt;edit-config&gt;, the change to a confi=
gured subscription would<br>
&gt; be written to the datastore if it were semantically valid.=C2=A0 =C2=
=A0At this point the<br>
&gt; subscription enters the [evaluate] points of Figure 8.=C2=A0 Issues fr=
om this point out<br>
&gt; would be reported with a vendor specific construct such as SYSLOG.<br>
&gt; <br>
&gt; So how are hints reported for configured subscriptions?<br>
<br>
There is nothing in the specification which requires this.=C2=A0 =C2=A0An i=
mplementation could choose to place these in some form of SYSLOG.<br>
...<br>
&gt; &gt; I6) sec 2.5, para 3:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 On a receiver of a<br>
&gt; &gt;=C2=A0 =C2=A0 configured subscription, support for dynamic subscri=
ptions is<br>
&gt; &gt;=C2=A0 =C2=A0 optional except where replaying missed event records=
 is required.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- confusing because text in 1.3:<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 Note that there is no mixing-and-matching of =
dynamic and configured<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 operations on a single subscription.=C2=A0 Sp=
ecifically, a configured<br>
&gt; &gt;=C2=A0 =C2=A0-- clarify the receiver may have multiple subscriptio=
ns here<br>
&gt; &gt;=C2=A0 =C2=A0-- not clear what &quot;except where replaying...&quo=
t; text means<br>
&gt; <br>
&gt; How about the following tweak:<br>
&gt; <br>
&gt; &quot;On a receiver of a configured subscription, support for dynamic =
subscriptions<br>
&gt; is optional.=C2=A0 However if replaying missed event records is requir=
ed for a<br>
&gt; configured subscription, support for dynamic subscription is highly<br=
>
&gt; recommended.=C2=A0 In this case, a separate dynamic subscription can b=
e established<br>
&gt; to retransmit the missing event records.&quot;<br>
&gt; <br>
&gt; OK<br>
<br>
Change made.<br>
<br>
&gt; &gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression is evalua=
ted in the following XPath context:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0 =C2=A0The=
 set of namespace declarations is the set of prefix<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and=
 namespace pairs for all YANG modules implemented<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by =
the server, where the prefix is the YANG module<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nam=
e and the namespace is as defined by the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#3=
9;namespace&#39; statement in the YANG module.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- This prefix processing is not done anywhere else i=
n NETCONF<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad precedent.=C2=A0=
 Only the XML prefixes<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing of XML enco=
ding.=C2=A0 YANG<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to be unique=
, unlike<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
&gt; <br>
&gt; This text was proposed by Martin as a result of the &quot;xpath expres=
sions in JSON&quot;<br>
&gt; thread last October in NETMOD.<br>
&gt; <br>
&gt; I am happy to incorporate whatever text is appropriate.=C2=A0 I was ho=
ping that the<br>
&gt; suggested text was sufficient for now.=C2=A0 Kent has already incorpor=
ated this as an<br>
&gt; issue for yang-next<br>
&gt; <a href=3D"https://github.com/netmod-wg/yang-next/issues/55" target=3D=
"_blank">https://github.com/netmod-wg/yang-next/issues/55</a><br>
&gt; So hopefully there is no final precedent being claimed.<br>
&gt; <br>
&gt; I do not agree that this YANG module should define a new way to encode=
 XPath<br>
&gt; into XML instance documents. This will require significant changes to =
server<br>
&gt; implementations.=C2=A0 YANG module prefixes are not even required to b=
e unique<br>
&gt; so the set of prefixes used by the server in XML instance documents ma=
y be<br>
&gt; different,<br>
&gt; since it must be unique.<br>
<br>
See next note<br>
<br>
&gt; &gt;=C2=A0 =C2=A0-- NMDA allows the same module to appear in multiple =
module-sets<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 and different in each datastore. This text ab=
out &quot;implemented by<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the server&quot; does not work for NMDA<br>
&gt; <br>
&gt; I am happy to adopt whatever text meets YANG doctor approval.=C2=A0 =
=C2=A0Can you<br>
&gt; suggest?<br>
&gt; <br>
&gt; <br>
&gt; Remove all text about YANG prefixes and continue using XML encoding wi=
thout<br>
&gt; modification<br>
<br>
As a different YANG doctor has required the current text modification, I be=
lieve this is a blocker.=C2=A0 What is the process for YANG model reviews i=
n such a case.=C2=A0 I am happy to accept whatever here.=C2=A0 Any suggesti=
ons on next steps?<br>
<br>
...<br>
&gt; &gt;=C2=A0 =C2=A0-- there should be an example of a configurable encod=
ing provided<br>
&gt; <br>
&gt; I am happy to enhance the definition YANG model&#39;s identity definit=
ion of<br>
&gt; &quot;configurable-encoding&quot;.=C2=A0 I could do this by adding the=
 following additional text<br>
&gt; to the description: &quot;An example of a configurable encoding might =
be a new<br>
&gt; identity such as &#39;encode-cbor&#39;.=C2=A0 Such an identity could u=
se &#39;configurable-<br>
&gt; encoding&#39; as its base.=C2=A0 This would allow a dynamic subscripti=
on encoded in JSON<br>
&gt; [RFC-8259] to request notification messages be encoded via CBOR [RFC-<=
br>
&gt; 7049].=C2=A0 Further details for any specific configurable encoding wo=
uld be explored<br>
&gt; in a transport document based on this specification.&quot;=C2=A0 =C2=
=A0Does this meet your ask?<br>
&gt; <br>
&gt; <br>
&gt; OK<br>
<br>
Added<br>
<br>
&gt; &gt; I11) extension subscription-state-notification {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This statement is not for use<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 outside of this YANG module.&quot;;<br=
>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- this text should be removed. There is no value in =
limiting<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the scope of this extension.=C2=A0 It prevent=
s even this WG from<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 creating a module that uses the extension aga=
in.<br>
&gt; <br>
&gt; This was the subject of significant debate in the WG.=C2=A0 The author=
s did not want<br>
&gt; this restriction either.<br>
&gt; <br>
&gt; To be allowed to progress the document, we inserted the document.=C2=
=A0 If this<br>
&gt; really is mandatory-to-remove from a YANG doctor point-of-view, what i=
s the<br>
&gt; process for quick closure on this issue between WG leadership and the =
YANG<br>
&gt; doctors?<br>
&gt; <br>
&gt; <br>
&gt; The YANG language makes no restrictions about exporting statements.<br=
>
&gt; I guess I missed that debate so I will just say OK and wonder what pro=
blem<br>
&gt; this is supposed to solve. I guess the WG wants to give YANG Doctors m=
ore<br>
&gt; things to check. (This is what we called a CLR in SNMP-land ;-)<br>
<br>
Thanks.=C2=A0 No action taken.<br>
<br>
&gt; &gt; I13)=C2=A0 =C2=A0notification subscription-started {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification indicates that =
a subscription has started and<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications are beginning to b=
e sent. This notification shall<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 only be sent to receivers of a subscri=
ption; it does not<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 constitute a general-purpose notificat=
ion.&quot;;<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- 2nd sentence is confusing; all notifications are s=
ent to<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 receivers of a subscription. last part is red=
undant since<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 the sn:subscription-state-notification extens=
ion is used<br>
&gt; <br>
&gt; There is no issue with removing this second sentence completely.=C2=A0=
 If I did that,<br>
&gt; would this address your concern?<br>
&gt; <br>
&gt; OK<br>
<br>
Done<br>
<br>
&gt; &gt; I14)=C2=A0 =C2=A0rc:yang-data modify-subscription-stream-error-in=
fo {<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf filter-failure-hint {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;Information =
describing where and/or why a provided filter<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 was unsupportable=
 for a subscription.&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0-- rpc-error already allows more precise error report=
ing<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 It uses error-tag, error-path, error-string, =
and error-info extensions<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 to identify which parameters/conditions cause=
d the RPC to be rejected.<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 This error reporting will continue to be used=
, Not sure this failure-hint<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 has any standards value. Perhaps real-use exa=
mple can be added<br>
&gt; <br>
&gt; Per your thoughts on rpc-error...=C2=A0 =C2=A0For NETCONF and RESTCONF=
, you point to<br>
&gt; error structures which historically been used with those transports.=
=C2=A0 Of course<br>
&gt; we were looking to have all subscription hints supportable across tran=
sports via<br>
&gt; a single portable YANG data structure.=C2=A0 So the value is that a si=
ngle string<br>
&gt; object exists so to transport whatever the vendor thinks would be usef=
ul as a<br>
&gt; hint in this case.=C2=A0 I.e., there has been no attempt to standardiz=
e the contents of<br>
&gt; this string.=C2=A0 If operational experiences drive a desire for such =
structuring, this<br>
&gt; could provide the basis for a new draft building off of this starting =
point.<br>
&gt; <br>
&gt; I guess I do not consider NETCONF and RESTCONF &quot;historic&quot; qu=
ite yet.<br>
&gt; There are many implementations using the rpc-error reporting with no i=
ntent<br>
&gt; to replace it with something else.<br>
&gt; <br>
&gt; I was just asking for an example, since I have no idea what an impleme=
ntor<br>
&gt; would put in this leaf.<br>
<br>
Here is an example from our implementation.=C2=A0 Say you mistype an extra =
&quot;\&quot; to an xpath filter:<br>
/if:interfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper-=
status<br>
As a result, the filter is passed to the publisher is:<br>
/if:inte\rfaces-state/interface[name=3D&quot;GigabitEthernet0/0&quot;]/oper=
-status<br>
<br>
What we would return in the failure-hint string is:<br>
Invalid expression: offset(9) in &#39;/if:inte\rfaces-state/interface[name=
=3D&quot;GigabitEthernet0/0&quot;]/oper-status&#39;<br>
<br>
Eric<br>
<br>
&gt; Andy<u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
</div>

</blockquote></div></div>

--000000000000994f9e058015610b--


From nobody Wed Jan 23 00:31:51 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 77F16130E59; Wed, 23 Jan 2019 00:31:43 -0800 (PST)
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 qk40rQH-EHl2; Wed, 23 Jan 2019 00:31:40 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id C2739128D52; Wed, 23 Jan 2019 00:31:39 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id 7CE961AE028C; Wed, 23 Jan 2019 09:31:36 +0100 (CET)
Date: Wed, 23 Jan 2019 09:31:35 +0100 (CET)
Message-Id: <20190123.093135.970106755262082435.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com>
References: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com> <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/CBvijQVi4g2cf116o4DU2pYId0M>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 08:31:44 -0000

SGksDQoNCiJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+IEhp
IEFuZHksDQo+IA0KPiBMb29raW5nIGF0IHlvdXIgcHJvcG9zYWwuLi4gIE15IHJlYWRpbmcgaXMg
dGhhdCBpdCB0YWtlcyB0aGUgdHJhbnNwb3J0DQo+IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFp
bmVkIGluDQo+IGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMg
c2VjdGlvbiA3LCBhbmQgdGhlbg0KPiByZXBsaWNhdGVzIHRoYXQgaW5mbyB3aXRoaW4gMTIgc2Vw
YXJhdGUgZGVzY3JpcHRpb24gb2JqZWN0cyBvZiB0aGUNCj4gdHJhbnNwb3J0IGluZGVwZW5kZW50
IGlldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLnlhbmcuICBUaGUgdmFsdWUNCj4geW91IGFy
ZSBhc3NlcnRpbmcgaXMgdGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMgY29udGFpbmlu
ZyB0aGUNCj4gcnBjLXN0bXQgaGF2ZSB0cmFkaXRpb25hbGx5IGRvY3VtZW50IHRoZSBtYW5kYXRv
cnktdG8taW1wbGVtZW50DQo+ICJlcnJvci10YWciIGZpZWxkIHdpdGhpbiB0aGUgbW9kZWwuICBB
bmQgcHJlc3VtYWJseSB5b3UgYXJlIGNvbmNlcm5lZA0KPiB0aGF0IGRldmVsb3BlcnMgc2hvdWxk
IG5vdCBoYXZlIHRvIGxvb2sgZWxzZXdoZXJlIGZvciB0aGlzDQo+IGluZm9ybWF0aW9uLg0KDQpJ
IHRoaW5rIHRoYXQgbWF5YmUgdGhlcmUgYXJlIHR3byBzZXBhcmF0ZSBpc3N1ZXMgaGVyZS4NCg0K
VGhlIGZpcnN0IGlzc3VlIGlzIHRoYXQgZm9yIGVhY2ggZXJyb3IgaWRlbnRpdHkgZGVmaW5lZCwg
dGhlcmUgbmVlZHMNCnRvIGJlIGEgbWFwcGluZyB0byB0aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJy
b3IgaGFuZGxpbmcuICBBbmR5DQpzdWdnZXN0cyB0aGF0IHRoaXMgaW5mbyBpcyBhZGRlZCB0byB0
aGlzIGRvY3VtZW50LCBidXQgY3VycmVudGx5IHRoaXMNCmluZm9ybWF0aW9uIGlzIGF2YWlsYWJs
ZSBpbiB0aGUgcHJvdGNvbC1tYXBwaW5nIGRvY3VtZW50cw0KKG5ldGNvbmYtbm90aWYgYW5kIHJl
c3Rjb25mLW5vdGlmKS4gIFBlcnNvbmFsbHksIEkgdGhpbmsgdGhhdCB0aGUNCmN1cnJlbnQgc3Bs
aXQgb2YgdGV4dCBiZXR3ZWVuIGRvY3VtZW50cyBpcyBmaW5lLg0KDQpUaGUgc2Vjb25kIGlzc3Vl
IGlzIHRoYXQgY3VycmVudGx5LCBib3RoIG5ldGNvbmYtbm90aWYgYW5kDQpyZXN0Y29uZi1ub3Rp
ZiBzYXkgdGhhdCAqYWxsKiB0aGVzZSBlcnJvcnMgdXNlIHRoZSBlcnJvci10YWcNCiJvcGVyYXRp
b24tZmFpbGVkIi4gIEVzc2VudGlhbGx5IGl0IG1lYW5zIHRoYXQgd2UgYnlwYXNzIHRoZSBlcnJv
cg0KaGFuZGxpbmcgaW4gdGhlIHByb3RvY29scy4gIEFzIEFuZHkgcG9pbnRzIG91dCBiZWxvdywg
dGhlIGVycm9yDQoiaW5zdWZmaWNpZW50LXJlc291cmNlcyIgc2hvdWxkIGJlIG1hcHBlZCB0byAi
cmVzb3VyY2UtZGVuaWVkIiBpbg0KTkVUQ09ORiBhbmQgUkVTVENPTkYgKHRoZXkgbWVhbiB0aGUg
c2FtZSB0aGluZykuICBTbyBpdCBtaWdodCBtYWtlDQpzZW5zZSB0byBjYXJlZnVsbHkgZ28gdGhy
b3VnaCB0aGUgbGlzdCBvZiBlcnJvcnMgYW5kIG1hcCB0aGVtIHRvIHRoZQ0KY29ycmVjdCBlcnJv
ci10YWcgKGJ1dCBzcGVjaWZpeSB0aGlzIGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzKS4NCg0KDQov
bWFydGluDQoNCg0KDQoNCj4gDQo+IElmIHRoZSBZQU5HIGRvY3RvcnMgcmVxdWlyZSB0aGlzLCBp
dCBjYW4gYmUgaW5zZXJ0ZWQuICBBIHNpbWlsYXIgdGV4dA0KPiBjaGFuZ2Ugd291bGQgYmUgbmVl
ZGVkIGZvciBxdWl0ZSBhIGZldyBlcnJvciBpZGVudGl0aWVzIHdpdGhpbiBZQU5HDQo+IFB1c2gu
ICBQZXJzb25hbGx5IEkgZG9u4oCZdCBsaWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlIHJl
cXVpcmVkIHRvDQo+IGVtYmVkIHRoaXMgaW5mb3JtYXRpb24uICBCdXQgSSB3aWxsIG1ha2UgdGhl
IGNoYW5nZSBpZiB5b3UgcmVhbGx5IHdhbnQNCj4gdGhpcywgYW5kIG5vYm9keSBlbHNlIG9iamVj
dHMuDQo+IA0KPiBPdGhlciB0aGFuIHRoYXQsIEkgYW0gbm90IGF3YXJlIG9mIGFueSBvdGhlciBv
cGVuIGlzc3VlcyBpbiB0aGUgWUFORw0KPiBEb2N0b3IgcmV2aWV3LiAgRG8geW91IGtub3cgb2Yg
YW55dGhpbmcgZWxzZT8NCj4gDQo+IEVyaWMNCj4gDQo+IA0KPiBGcm9tOiBBbmR5IEJpZXJtYW4s
IEphbnVhcnkgMjEsIDIwMTkgMjoyNiBQTQ0KPiANCj4gSGksDQo+IA0KPiBJIHRoaW5rIHRoZSBl
cnJvci10YWcgaXNzdWUgY2FuIGJlIHJlc29sdmVkIGJ5IGluY2x1ZGluZyAxIGV4dHJhDQo+IHNl
bnRlbmNlIGluIGVhY2ggZXJyb3IgaWRlbnRpdHkuDQo+IEkga25vdyB0aGlzIGlzIE5FVENPTkYg
YW5kIFJFU1RDT05GIGNlbnRyaWMgYnV0IHRob3NlIGFyZSB0aGUgb25seSAyDQo+IHN0YW5kYXJk
IHByb3RvY29scw0KPiBzdXBwb3J0ZWQgZm9yIHRoZSBZQU5HIGxhbmd1YWdlIHJpZ2h0IG5vdy4N
Cj4gDQo+ICAgICAgICBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMgdXNlZCBpbiBlcnJvciBy
ZXBvcnRpbmcsDQo+ICAgICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3QgZXJyb3ItdGFnPicg
TVVTVCBiZSB1c2VkLg0KPiANCj4gRm9yIGV4YW1wbGU6DQo+IA0KPiANCj4gT0xEOg0KPiANCj4g
ICBpZGVudGl0eSBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHsNCj4gICAgIGJhc2UgZXN0YWJsaXNo
LXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gICAgIGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJv
cjsNCj4gICAgIGJhc2Ugc3Vic2NyaXB0aW9uLXN1c3BlbmRlZC1yZWFzb247DQo+ICAgICBkZXNj
cmlwdGlvbg0KPiAgICAgICAiVGhlIHB1Ymxpc2hlciBoYXMgaW5zdWZmaWNpZW50IHJlc291cmNl
cyB0byBzdXBwb3J0IHRoZQ0KPiAgICAgICAgcmVxdWVzdGVkIHN1YnNjcmlwdGlvbi4gIEFuIGV4
YW1wbGUgbWlnaHQgYmUgdGhhdCBhbGxvY2F0ZWQgQ1BVDQo+ICAgICAgICBpcyB0b28gbGltaXRl
ZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+ICAgICAgICBt
ZXNzYWdlcy4iOw0KPiAgIH0NCj4gDQo+IA0KPiBORVc6DQo+IA0KPiAgIGlkZW50aXR5IGluc3Vm
ZmljaWVudC1yZXNvdXJjZXMgew0KPiAgICAgYmFzZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLWVy
cm9yOw0KPiAgICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiAgICAgYmFzZSBz
dWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjsNCj4gICAgIGRlc2NyaXB0aW9uDQo+ICAgICAg
ICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhl
DQo+ICAgICAgICByZXF1ZXN0ZWQgc3Vic2NyaXB0aW9uLiAgQW4gZXhhbXBsZSBtaWdodCBiZSB0
aGF0IGFsbG9jYXRlZCBDUFUNCj4gICAgICAgIGlzIHRvbyBsaW1pdGVkIHRvIGdlbmVyYXRlIHRo
ZSBkZXNpcmVkIHNldCBvZiBub3RpZmljYXRpb24NCj4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUg
J2Vycm9yLXRhZycgZmllbGQgaXMgdXNlZCBpbiBlcnJvciByZXBvcnRpbmcsDQo+ICAgICAgICB0
aGVuIHRoZSB2YWx1ZSAncmVzb3VyY2UtZGVuaWVkJyBNVVNUIGJlIHVzZWQuIjsNCj4gICB9DQo+
IA0KPiANCj4gQW5keQ0KPiANCj4gDQo+IE9uIEZyaSwgSmFuIDE4LCAyMDE5IGF0IDExOjUzIEFN
IEVyaWMgVm9pdCAoZXZvaXQpDQo+IDxldm9pdEBjaXNjby5jb208bWFpbHRvOmV2b2l0QGNpc2Nv
LmNvbT4+IHdyb3RlOg0KPiBIaSBBbmR5LA0KPiANCj4gVGhhbmtzLiAgSSBoYXZlIGluY29ycG9y
YXRlZCBpdGVtcyB3aGVyZSB0aGVyZSB3YXMgYWdyZWVtZW50LiAgSSBoYXZlDQo+IHJlbW92ZWQg
dGhlIGl0ZW1zIGJlbG93IHdoZXJlIHlvdSB3ZXJlIG9rLg0KPiANCj4gUmVtYWluaW5nIGJlbG93
IGFyZSB0aGUgb3BlbiBpdGVtcywgd2l0aCByZXNwb25zZXMuDQo+IA0KPiA+ID4gICAgU2hvdWxk
IGJlIGNsZWFyIHNvbWV3aGVyZSB0aGF0DQo+ID4gPiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5k
IG90aGVyIHJlc291cmNlcywgYW5kIE5BQ00gbm90IGNvbnNpZGVyZWQNCj4gPiA+ICAgIHRvIGJl
IGEgcmVzb3VyY2UuDQo+ID4NCj4gPiBJZiBOQUNNIGlzIGFjdGl2ZSwgaXQgbmVlZHMgdG8gYmUg
Zm9sbG93ZWQuICBUaGUgdGV4dCB3ZSBoYXZlIGZvciBOQUNNDQo+ID4gaXMgaW4NCj4gPiBTZWN0
aW9uIDUuNC4gIERvIHlvdSBzZWUgc29tZXRoaW5nIGVsc2Ugc3BlY2lmaWMgdG8gc3Vic2NyaXB0
aW9uDQo+ID4gc3VzcGVuc2lvbg0KPiA+IG5lZWRlZCBoZXJlPyAgKE1heWJlIEkgYW0gbm90IGdl
dHRpbmcgeW91ciBwb2ludC4pDQo+ID4NCj4gPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFzIHRl
cm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cw0KPiA+IChJcyB0aGVyZSBhbiBlcnJvciBpZGVudGl0
eSBmb3IgdGhpcyBldmVudD8pDQo+IA0KPiBUaGUgaWRlbnRpdHkgd2hpY2ggYXBwbGllcyBoZXJl
IGlzICJzdHJlYW0tdW5hdmFpbGFibGUiLiAgVGhpcyBpcyB0aGUNCj4gc2FtZSBpZGVudGl0eSB3
aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXIgc3VmZmljaWVudA0K
PiBwZXJtaXNzaW9ucyBpbiB0aGUgZmlyc3QgcGxhY2UuICBJIGRvbid0IGJlbGlldmUgd2Ugd291
bGQgd2FudCB0bw0KPiByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hlbiBOQUNNIHdo
ZW4gcGVybWlzc2lvbnMgaGF2ZSBqdXN0DQo+IGJlZW4gY2hhbmdlZC4NCj4gDQo+ID4gPiBJMykg
c2VjIDIuMSBwYXJhIDY6DQo+ID4gPiAgICBFdmVudCByZWNvcmRzIE1VU1QgTk9UIGJlIGRlbGl2
ZXJlZCB0byBhIHJlY2VpdmVyIGluIGEgZGlmZmVyZW50DQo+ID4gPiAgICBvcmRlciB0aGFuIHRo
ZXkgd2VyZSBwbGFjZWQgb250byBhbiBldmVudCBzdHJlYW0uDQo+ID4gPg0KPiA+ID4gICAtLSBk
b2VzIHRoaXMgYXBwbHkgdG8gc3Vic2NyaXB0aW9uLXN0YXRlPyBUaGluayBub3QsIHRoZXkgYXJl
IG5vdCBldmVudHMNCj4gPiA+ICAgICBwbGFjZWQgaW4gZXZlbnQgc3RyZWFtLg0KPiA+DQo+ID4g
QWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRoZXkgZG8g
bm90IHZpb2xhdGUNCj4gPiB0aGlzDQo+ID4gcmVxdWlyZW1lbnQuDQo+ID4NCj4gPiBBZGRpdGlv
bmFsbHkgdGhlcmUgaXMgc3VwcG9ydGluZyB0ZXh0IGluICJTZWN0aW9uIDIuNzogc3Vic2NyaXB0
aW9uDQo+ID4gc3RhdGUNCj4gPiBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4uDQo+ID4NCj4g
PiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChhcyBkZWZpbmVkIGluIHRoaXMgc2VjdGlv
bikgd2l0aGluIHRoZQ0KPiA+IHNlcXVlbmNlIG9mDQo+ID4gbm90aWZpY2F0aW9uIG1lc3NhZ2Vz
IHNlbnQgdG8gYSBwYXJ0aWN1bGFyIHJlY2VpdmVyLiINCj4gPg0KPiA+ID4gICAgIE5lZWQgdG8g
YWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPiA+ICAgICBoZWFkLW9mLWxp
bmUgd2hlbmV2ZXIgc3RhdGUgY2hhbmdlcw0KPiA+DQo+ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1
c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1vZi1saW5lLg0KPiA+IENvbnNpZGVy
DQo+ID4gdGhhdCBpbXBsZW1lbnRhdGlvbiBtaWdodCB3YW50IHRvIGxldCB0aGUgZXhpc3Rpbmcg
cXVldWUgb2YgZmlsdGVyZWQNCj4gPiBldmVudA0KPiA+IHJlY29yZHMgYmUgc2VudCBpZiBpcyBm
aWx0ZXIgY29tcGxleGl0eSBjYXVzaW5nIHRoZSBDUFUgaXNzdWUuICBUaGF0DQo+ID4gY291bGQg
YmUNCj4gPiBkaWZmZXJlbnQgdGhhbiBpZiBpdCBpcyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5n
IHRoZSBzdXNwZW5zaW9uLCBhbmQNCj4gPiB5b3UNCj4gPiBkZWZpbml0ZWx5IHdhbnQgdGhlICdz
dWJzY3JpcHRpb24tc3VzcGVuZGVkJyB0byBiZSBwbGFjZWQgYXQgdGhlIGhlYWQNCj4gPiBvZiBs
aW5lLg0KPiA+DQo+ID4NCj4gPiBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVyIHRvIGRlY2lkZSB3
aGVuIHRvIHN0b3Agc2VuZGluZyBldmVudHMgb24gYQ0KPiA+IHN1YnNjcmlwdGlvbi4NCj4gPiBP
YnZpb3VzbHkgdGhlIHB1Ymxpc2hlciBjYW5ub3Qgd2FpdCB1bnRpbCB0aGUgc3Vic2NyaXB0aW9u
IGlzIGlkbGUuDQo+ID4gVGhlIHJlYXNvbiBpdCBpcyBnZXR0aW5nIHN1c3BlbmRlZCBpcyBpdCBp
cyBmYXIgZnJvbSBpZGxlDQo+ID4NCj4gPiBTbyBhbHNvIHVwIHRvIHRoZSBwdWJsaXNoZXIgd3J0
LyB3aGF0IHRvIGRvIHdpdGggYW55IGV2ZW50cyB0aGF0IGhhdmUNCj4gPiBub3QNCj4gPiBiZWVu
IGRlbGl2ZXJlZCB5ZXQgb24gYSBzdWJzY3JpcHRpb24uICBDb3VsZCBkZWxldGUgdGhlbSBvciBz
YXZlIHRoZW0NCj4gPiBmb3INCj4gPiB3aGVuIG1vcmUgYmFuZHdpZHRoIGF2YWlsYWJsZSAoZm9y
IGV4YW1wbGUpDQo+IA0KPiBBZ3JlZSBmdWxseSB3aXRoIHRoaXMuICBJcyB0aGVyZSB0ZXh0IHJl
cXVpcmVkIGluIHRoZSBkcmFmdCBoZXJlPw0KPiANCj4gLi4uDQo+ID4gQmV5b25kIHRoYXQgaXQg
aXMgdXAgdG8gdGhlIGltcGxlbWVudGF0aW9uIHRvIGRlY2lkZSBpZiBzb21lDQo+ID4gdW4tdHJh
bnNtaXR0ZWQNCj4gPiBxdWV1ZSBvZiBldmVudCByZWNvcmRzIHNob3VsZCBiZSBmbHVzaGVkIGFu
ZCByZXByb2Nlc3NlZCBiYXNlZCBvbiB0aGUNCj4gPiBtb2RpZmljYXRpb24uICBJIGRvIG5vdCBl
eHBlY3QgdGhpcyB3b3VsZCBwb3B1bGFyLCBhcyBhIHJlcGxheQ0KPiA+IHN1YnNjcmlwdGlvbiBj
b3VsZA0KPiA+IGFjY29tcGxpc2ggdGhpcyBzYW1lIGZ1bmN0aW9uYWwgbmVlZC4NCj4gPg0KPiA+
IEFncmVlZCB0aGF0IGFuIGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFueSB0aW1lIGFuZCBp
bmNyZW1lbnQgdGhlDQo+ID4gYXBwcm9wcmlhdGUgY291bnRlcnMuIEl0IHdpbGwgdHJ5IHRvIHRv
IGRvIHRoaXMsIGJ1dCBubyByZXF1aXJlbWVudHMNCj4gPiBleGNlcHQNCj4gPiBtYXliZSBzdWJz
Y3JpcHRpb24gZXZlbnRzIGxpa2UgJ3JlcGxheS1jb21wbGV0ZWQnIGNhbm5vdCBiZSBkcm9wcGVk
DQo+IA0KPiBIYXZlIHB1dCBhIG1pbm9yIHR3ZWFrIGludG8gU2VjdGlvbiAyLjc6DQo+IA0KPiBb
b2xkXSAgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBm
aWx0ZXJlZCBvdXQNCj4gDQo+IFtuZXddIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucyBjYW5ub3QgYmUgZHJvcHBlZCBvcg0KPiBmaWx0ZXJlZCBvdXQNCj4gDQo+IC4uLg0K
PiA+IFRoaW5raW5nIG1vcmUgb24geW91ciBwb2ludCwgaXQgbWlnaHQgYmUgd29ydGggdHdlYWtp
bmcgYSBjb3VwbGUgd29yZHMNCj4gPiB0bw0KPiA+IGFsbG93IGZvciBoZWFkLW9mLWxpbmUgcGxh
Y2VtZW50IG9mICJzdWJzY3JpcHRpb24tc3VzcGVuZGVkIi4NCj4gPg0KPiA+ICAgICJTdWJzY3Jp
YmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZSBpc3N1YW5jZSBv
Zg0KPiA+ICAgIHRoaXMNCj4gPiAgICBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNh
dGlvbiBtYXkgbm93IGJlIHNlbnQuIg0KPiA+DQo+ID4gQXJlIHlvdSBnb29kIHdpdGggdGhpcyBz
dWdnZXN0ZWQgY2hhbmdlPw0KPiA+DQo+ID4gTm90IHN1cmUgLS0gaXQgbmVlZHMgdG8gYmUgY2xl
YXIgdGhhdCBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIGlzIHRoZQ0KPiA+IGxhc3QgZXZlbnQgc2Vu
dCBiZWZvcmUgc3VzcGVuZGluZyBhbmQgc3Vic2NyaXB0aW9uLXJlc3VtZWQgaXMNCj4gPiB0aGUg
Zmlyc3QgZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRvIGFjdGl2
ZS4NCj4gPiBUaGUgbmV4dCBldmVudCBjb3VsZCBhbHNvIGJlIHN1YnNjcmlwdGlvbi10ZXJtaW5h
dGVkLg0KPiANCj4gSSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhl
IHRleHQuICBGb3IgU2VjdGlvbiAyLjcuNA0KPiBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIHRoZSBj
dXJyZW50IHRleHQgaXM6DQo+IA0KPiAiTm8gZnVydGhlciBub3RpZmljYXRpb24gd2lsbCBiZSBz
ZW50IHVudGlsIHRoZSBzdWJzY3JpcHRpb24gcmVzdW1lcw0KPiBvciBpcyB0ZXJtaW5hdGVkLiIN
Cj4gDQo+IEFuZCBTZWN0aW9uIDIuNy41IHN1YnNjcmlwdGlvbi1yZXN1bWVkIHNheXMiOg0KPiAi
U3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdlbmVyYXRlZCBhZnRlciB0aGUgaXNzdWFuY2Ugb2Yg
dGhpcw0KPiBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJl
IHNlbnQuIg0KPiANCj4gQmFzZWQgb24gdGhlIGRpc2N1c3Npb24sIEkgY2FuIG1ha2UgaXQ6DQo+
IA0KPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGFyZSBhZ2FpbiBwZXJtaXR0ZWQgdG8gYmUg
c2VudCBmb2xsb3dpbmcNCj4gdGhpcyBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNh
dGlvbi4iDQo+IA0KPiBJcyB0aGlzIHN1ZmZpY2llbnQgZm9yIHlvdT8NCj4gDQo+IC4uLg0KPiA+
ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQo+ID4gPiAgIC0tIGNvbmNlcm4gYWJvdXQg
YSBzdWJzY3JpcHRpb24tc3BlY2lmaWMgZXJyb3IgcmVwb3J0aW5nIHN5c3RlbQ0KPiA+ID4gICAg
ICBtdXN0IG1ha2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzIHVzZWQg
Y29ycmVjdGx5DQo+ID4NCj4gPiBZZXMuICBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdy
YXRlIHdpdGggdGhlIGVtYmVkZGVkIE5FVENPTkYgYW5kDQo+ID4gUkVTVENPTkYgbWVjaGFuaXNt
cy4gIFRoZXJlIGlzIG11Y2ggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0aGUNCj4gPiB0cmFu
c3BvcnQNCj4gPiBkcmFmdHMgaGVyZS4NCj4gPg0KPiA+ID4gICAtLSBUaGUgZXJyb3ItdGFnIHZh
bHVlIG5lZWRzIHRvIGJlIGlkZW50aWZpZWQgZm9yIGVhY2ggJ3JlYXNvbicgaWRlbnRpdHkNCj4g
Pg0KPiA+IFRoaXMgaXMgZG9uZSBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cy4gIEUuZy4sIHNlZQ0K
PiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LQ0KPiA+IG5vdGlmaWNhdGlvbnMg
U2VjdGlvbiA3DQo+ID4NCj4gPiBJIGRvIG5vdCBhZ3JlZSB0aGlzIGlzIGEgZ29vZCBpZGVhLg0K
PiA+IEVhY2ggZXJyb3IgaWRlbnRpdHkgc2hvdWxkIHNpbXBseSBzdGF0ZSB0aGUgcmVxdWlyZWQg
ImVycm9yLXRhZyINCj4gPiB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuICBUaGlz
IGlzIGV4cGVjdGVkIG9mIHByb3RvY29sDQo+ID4gb3BlcmF0aW9ucw0KPiA+IHRoYXQgYXJlIGFk
ZGVkIHRvIE5FVENPTkYgYW5kIFJFU1RDT05GLg0KPiANCj4gSW4gZHJhZnQtaWV0Zi1uZXRjb25m
LW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgc2VjdGlvbiA3LCB0aGUNCj4gcmVxdWlyZWQg
ImVycm9yLXRhZyIgaXMgaWRlbnRpZmllZCBhcyAib3BlcmF0aW9uLWZhaWxlZCIuICBJZiB3ZQ0K
PiBpbnN0ZWFkIHBsYWNlZCB0aGF0ICJlcnJvci10YWciIGluZm9ybWF0aW9uIGluIHRoZSBZQU5H
IG1vZGVsLCB0aGVuIHdlDQo+IGhhdmUgdGllZCB0aGUgWUFORyBtb2RlbCB0byB0aGUgUkVTVENP
TkYgYW5kIE5FVENPTkYgdHJhbnNwb3J0cy4NCj4gDQo+ID4gQm90aCBORVRDT05GIGFuZCBSRVNU
Q09ORiB1c2UgYSBjb21wYXRpYmxlIGVycm9yIHJlcG9ydGluZyBkYXRhDQo+ID4gc3RydWN0dXJl
Lg0KPiA+IFRoZSAiZXJyb3ItdGFnIiBpcyB1c2VkIGluIGJvdGggb2YgdGhlbS4gIElNTyBjbGll
bnQgZGV2ZWxvcGVycyBkbyBub3QNCj4gPiB3YW50IGEgZGlmZmVyZW50IHNldCBvZiBlcnJvciBj
b2RlcyBmb3IgdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCj4gDQo+IGRyYWZ0LWlldGYtbmV0
Y29uZi1yZXN0Y29uZi1ub3RpZiBTZWN0aW9uIDMuMyBhbHNvIHJlcXVpcmVzIGFuDQo+ICJlcnJv
ci10YWciIG5vZGUgb2YgIm9wZXJhdGlvbi1mYWlsZWQiLiAgU28gd2UgdXNlZCB0aGUgdHJhbnNw
b3J0DQo+IGRyYWZ0cyByYXRoZXIgdGhhbiB0aGUgWUFORyBtb2RlbCB0byBzdXBwb3J0IHRoZSBz
YW1lIGVycm9yIGNvZGVzIGZvcg0KPiB0aGUgc2FtZSBlcnJvciBjb25kaXRpb25zLg0KPiANCj4g
PiBJIGFncmVlIHRoYXQgdHJhbnNwb3J0IGRyYWZ0cyBjb3VsZCBkZWZpbmUgdGhlaXIgb3duIGVy
cm9yIGlkZW50aXRpZXMsDQo+ID4gd2hpY2ggd291bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGVy
cm9yLXRhZyB0aGVyZS4NCj4gPg0KPiA+DQo+ID4gPiAgICAyLiAgIm1vZGlmeS1zdWJzY3JpcHRp
b24tc3RyZWFtLWVycm9yLWluZm8iOiBUaGlzIE1VU1QgYmUgcmV0dXJuZWQNCj4gPiA+ICAgICAg
ICB3aXRoIHRoZSBsZWFmICJyZWFzb24iIHBvcHVsYXRlZCBpZiBhbiBSUEMgZXJyb3IgcmVhc29u
IGhhcyBub3QNCj4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSB0
cmFuc3BvcnQgcG9ydGlvbiBvZiBhIGZhaWxlZA0KPiA+ID4gICAgICAgICJtb2RpZnktc3Vic2Ny
aXB0aW9uIiBSUEMgcmVzcG9uc2UuICBUaGlzIE1VU1QgYmUgc2VudCBpZiBoaW50cw0KPiA+ID4N
Cj4gPiA+ICAgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAicGxh
Y2VkIGVsc2V3aGVyZSINCj4gPiA+ICAgICAgIHRleHQgbWVhbnM7IG5vdCBhcHByb3ByaWF0ZSBm
b3IgTVVTVDsNCj4gPg0KPiA+IEluc3RlYWQgb2YgInBsYWNlZCBlbHNld2hlcmUiLCBob3cgYWJv
dXQ6ICJwbGFjZWQgaW4gc3Vic2NyaXB0aW9uDQo+ID4gdHJhbnNwb3J0DQo+ID4gZG9jdW1lbnQg
ZGVmaW5lZCBvYmplY3QiLiAgV291bGQgdGhpcyBiZSBzdWZmaWNpZW50Pw0KPiA+DQo+ID4gTm8g
LS0gTkVUQ09ORiBhbmQgUkVTVENPTkYgaGF2ZSB3ZWxsLWRlZmluZWQgZXJyb3IgcmVwb3J0aW5n
Lg0KPiA+IFRoZSBzZXJ2ZXIgcmVxdWlyZW1lbnRzIGZvciB0aGlzIGVycm9yIHJlcG9ydGluZyBt
dXN0IGJlIGRvY3VtZW50ZWQuDQo+ID4NCj4gPiBJIGFncmVlIHdpdGggdGhlIGZvbGxvd2luZyBh
cHByb2FjaDoNCj4gPiAgIC0gZWFjaCBvcGVyYXRpb24gTVVTVCBpZGVudGlmeSB0aGUgZXJyb3It
dGFncyB0aGF0IGFyZSBleHBlY3RlZCBmb3INCj4gPiAgICAgdmFyaW91cyBlcnJvciBjb25kaXRp
b25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMgNjI0MSkNCj4gPiAgIC0gdGhlIHNlcnZlciBNVVNU
IHJldHVybiB0aGUgc3BlY2lmaWVkIGVycm9yLXRhZ3MuIElmIGEgY29uZGl0aW9uIG5vdA0KPiA+
ICAgLSBleHBsaWNpdGx5DQo+ID4gICAgIGRlZmluZWQgdGhlbiB0aGUgc2VydmVyIE1VU1QgcGlj
ayB0aGUgYXBwcm9wcmlhdGUgZXJyb3ItdGFnIGZyb20gUkZDDQo+ID4gICAgIDYyNDENCj4gPiAg
LSB0aGUgc2VydmVyIE1BWSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgcmM6eWFuZy1kYXRhIGluIHRo
ZSA8ZXJyb3ItaW5mbz4NCj4gPiAgLSBkYXRhDQo+ID4gc3RydWN0dXJlDQo+ID4gIC0gdGhlIHNl
cnZlciBNVVNUIHVzZSB0aGUgYXBwcm9wcmlhdGUgcmM6eWFuZy1kYXRhIHRvIHJlcG9ydCBoaW50
cw0KPiA+ICAtIGZvciBwcm90b2NvbHMgb3RoZXIgdGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwg
dGhleSBjYW4gbWFwIGVycm9yLXRhZw0KPiA+ICAtIG9yDQo+ID4gaWdub3JlIGl0LA0KPiA+ICAg
IGJ1dCB0aGUgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHByb3RvY29sIG9wZXJhdGlvbiBNVVNUIHBy
b3ZpZGUNCj4gDQo+IEZ1bmN0aW9uYWxseSwgZXZlcnl0aGluZyB5b3UgYXNrIGZvciBpcyBmdWxs
eSBjb3ZlcmVkIHdoZW4geW91IGluY2x1ZGUNCj4gY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25m
LW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucyAoc2VjdGlvbiA3KQ0KPiBhbmQgZHJhZnQtaWV0
Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIChzZWN0aW9uIDMuMykuDQo+IA0KPiBNeSByZWFkIG9m
IHRoZSBpc3N1ZSBpcyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QgYmUgc3BlY2lm
aWVkDQo+IGluIHRoZSBZQU5HIG1vZGVsLiAgSSBiZWxpZXZlIHRoYXQgImVycm9yLXRhZyIgc2hv
dWxkbid0IGJlIGluIHRoZQ0KPiBZQU5HIG1vZGVsIGJlY2F1c2UgdGhhdCB3b3VsZCB0aWUgdGhl
IG1vZGVsIHRvIGEgdHJhbnNwb3J0IHR5cGUuDQo+IA0KPiBBbnkgdGhvdWdodHMgb24gaG93IHdl
IG1pZ2h0IGNsb3NlIHRoaXM/ICBJZiBhYnNvbHV0ZWx5IHJlcXVpcmVkIEkNCj4gY291bGQgcGxh
Y2UgYSBuZXcgY29tbWVudCBsaW5lIGluIHRoZSBZQU5HIG1vZGVsIHVuZGVyDQo+IC8qIElkZW50
aXRpZXMgZm9yIFJQQyBhbmQgTm90aWZpY2F0aW9uIGVycm9ycyAqLw0KPiANCj4gVGhlIGNvbW1l
bnQgd291bGQgYmUgc29tZXRoaW5nIGxpa2U6DQo+IC8qIFdoZW4gdXNlZCB3aXRoIE5FVENPTkYg
YW5kIFJFU1RDT05GIFJQQ3M6DQo+ICAgICAiZXJyb3ItdHlwZSIgbm9kZSB0byBiZSB1c2VkIGlz
ICJhcHBsaWNhdGlvbiINCj4gICAgICAiZXJyb3ItdGFnIiBtdXN0IGJlICJvcGVyYXRpb24tZmFp
bGVkIi4gICovDQo+IA0KPiBUaGlzIHNlZW1zIGluY29uZ3J1b3VzLiAgSnVzdCB0aHJvd2luZyBp
dCBvdXQgYXMgYSBzdWdnZXN0aW9uLg0KPiANCj4gPiBJbiBhbnkgY2FzZSwgdGhlIC12MjEgd29y
ZGluZyByZXN1bHRzIGZyb20gdGhlIGF0dGVtcHRlZCBiYWxhbmNpbmcgdGhlDQo+ID4gV0cNCj4g
PiByZXF1ZXN0cyBmb3I6DQo+ID4gKiBtZXJnaW5nIHdpdGggdHJhbnNwb3J0IHByb3RvY29sIGVy
cm9yIG1lY2hhbmlzbXMNCj4gPiAqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8gcHJvdmlkZSBy
ZXF1aXJlbWVudHMgZm9yIHRyYW5zcG9ydCBkb2N1bWVudHMNCj4gPg0KPiA+ID4gICAgICBPbmx5
IDMgZmllbGRzIHNlZW0NCj4gPiA+ICAgICAgIHRvIGJlIHJlbGV2YW50IChlcnJvci10YWcsIGVy
cm9yLWFwcC10YWcsIGVycm9yLWluZm8pLg0KPiA+ID4gICAgICAgUHJvdGNvbCBvcGVyYXRpb25z
IGFyZSBleHBlY3RlZCB0byBkb2N1bWVudCBzZXJ2ZXIgcmVxdWlyZW1lbnRzDQo+ID4gPiAgICAg
ICBmb3IgdGhlc2UgMyBmaWVsZHMsIGlmIGFwcGxpY2FibGUuICBPbmx5IHRoZSBlcnJvci10YWcN
Cj4gPiA+ICAgICAgIGlzIG1hbmRhdG9yeS10by11c2UuDQo+ID4NCj4gPiBIb3BlZnVsbHkgdGhl
c2UgYXJlIGNvdmVyZWQgc3VmZmljaWVudGx5IHdoZW4gdGhpcyBkb2N1bWVudCBpcyBjb3VwbGVk
DQo+ID4gd2l0aA0KPiA+IHRoZSBORVRDT05GIGFuZCBSRVNUQ09ORiBOb3RpZiB0cmFuc3BvcnQg
ZG9jdW1lbnRzLiAgRm9yIG90aGVyDQo+ID4gdHJhbnNwb3J0cywNCj4gPiB0aGUgdGFncyB5b3Ug
aWRlbnRpZnkgYWJvdXQgd291bGQgbm90IGJlIGFwcGxpY2FibGUuDQo+ID4NCj4gPiA+ICAgLS0g
dGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBleHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sIGl0IGlz
IG5vdA0KPiA+ID4gICAgICBwb3NzaWJsZSBmb3IgPGtpbGwtc3Vic2NyaXB0aW9uPiB0byBmYWls
IHdpdGggYW4NCj4gPiA+ICAgICAgJ2luc3VmZmljaWVudC1yZXNvdXJjZXMnIGVycm9yOw0KPiA+
DQo+ID4gVGhpcyBpcyB0aGUgaW50ZW50IG9mIHRoZSBiYXNlIHNwZWNpZmljYXRpb24sIGUuZy4s
IHdlIGRvbid0IGJlbGlldmUgYQ0KPiA+IGtpbGwtDQo+ID4gc3Vic2NyaXB0aW9uIHNob3VsZCBm
YWlsIGZvciBhbiBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlYXNvbi4gIEJ1dA0KPiA+IHZlbmRv
cnMgbWlnaHQNCj4gPiBkZXNpcmUgbW9yZSBzcGVjaWZpY2l0eS4gIEFzIGEgcmVzdWx0IGlzIGNl
cnRhaW5seSBvayBmb3IgdmVuZG9yDQo+ID4gaW1wbGVtZW50YXRpb25zDQo+ID4gdG8gYWRkIG5l
dyBlcnJvciBpZGVudGl0aWVzLg0KPiA+DQo+ID4gSU1PIGFueXRoaW5nIGNhbiBmYWlsIGZvciBp
bnN1ZmZpY2llbnQgcmVzb3VyY2VzLiBUaGF0IGlzIHZlcnkNCj4gPiBpbXBsZW1lbnRhdGlvbi0N
Cj4gPiBzcGVjaWZpYy4NCj4gDQo+IEluc3RlYWQgb2YgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMg
SSB3b3VsZCBjYWxsIGl0IGFwcGxpY2F0aW9uDQo+IHNwZWNpZmljLiAgUmlnaHQgbm93IHdlIGRv
bid0IGhhdmUgYSBjYXRjaC1hbGwgZXJyb3ItaWRlbnRpdHkgb2YNCj4gJ290aGVyLWVycm9yJy4g
IFdlIHByZWZlcnJlZCB0aGF0IGVycm9yIGNvbmRpdGlvbnMgYmV5b25kIHRoZSBjdXJyZW50DQo+
IG9uZXMgbGlzdGVkIGNvdWxkIGJlIGluY2x1ZGVkIGJ5IHZlbmRvcnMgYXMgbmVlZGVkLiAgRnVy
dGhlcg0KPiBkZXBsb3ltZW50IGV4cGVyaWVuY2UgY291bGQgcmVzdWx0IGluIG5ldyBlcnJvciBp
ZGVudGl0aWVzIHN1cmZhY2luZw0KPiBmb3Igc3RhbmRhcmRpemF0aW9uIHNob3VsZCB0aGlzIGRy
YWZ0IGNhdGNoIG9uLg0KPiANCj4gPiA+ICAgICAgRG8gbm90IGFncmVlIHRoYXQgc2NvcGluZyBl
YWNoDQo+ID4gPiAgICAgIGlkZW50aXR5IHRvIHNwZWNpZmljIFJQQyBvcGVyYXRpb25zIGlzIGEg
Z29vZCBpZGVhLg0KPiA+DQo+ID4gVGhpcyBsZXZlbCBvZiBzcGVjaWZpY2l0eSB3YXMgbm90IHRo
ZSBhdXRob3IncyBvcmlnaW5hbCBwbGFucy4gIE5vcg0KPiA+IHdhcyB0aGlzIGxldmVsIG9mDQo+
ID4gc3BlY2lmaWNpdHkgcGFydCBvZiBlYXJsaWVyIGRyYWZ0IHZlcnNpb25zIHVwIHRocm91Z2gg
LXYwOC4gIEhvd2V2ZXINCj4gPiBtZW1iZXJzIG9mDQo+ID4gdGhlIFdHIG1hZGUgaXQgY2xlYXIg
dGhhdCBzdWNoIHNwZWNpZmljaXR5IHdhcyBuZWNlc3NhcnkgZm9yIGRyYWZ0DQo+ID4gcHJvZ3Jl
c3Npb24uDQo+ID4NCj4gPiA+ICAgLS0gaG93IGFyZSBlcnJvcnMgaW4gdGhlc2UgcGFyYW1ldGVy
cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZA0KPiA+ID4gICAgICBzdWJzY3JpcHRpb25zIHdoZW4g
PGVkaXQtY29uZmlnPiBpcyB0aGUgUlBDIHRoYXQgaGFzIHRoZSBlcnJvcj8NCj4gPiA+ICAgICAg
SG93IGFyZSB0aGUgeWFuZy1kYXRhIHN0cnVjdHMgdXNlZCBmb3IgZWRpdC1jb25maWcgb3IgY29t
bWl0IGVycm9ycz8NCj4gPg0KPiA+IE5vbmUgb2YgdGhlc2UgeWFuZy1kYXRhIHN0cnVjdHVyZXMg
YXJlIHNwZWNpZmllZCBmb3IgdXNlIHdpdGgNCj4gPiA8ZWRpdC1jb25maWc+DQo+ID4gb3BlcmF0
aW9ucy4gIEZvciA8ZWRpdC1jb25maWc+LCB0aGUgY2hhbmdlIHRvIGEgY29uZmlndXJlZA0KPiA+
IHN1YnNjcmlwdGlvbiB3b3VsZA0KPiA+IGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZiBp
dCB3ZXJlIHNlbWFudGljYWxseSB2YWxpZC4gIEF0IHRoaXMNCj4gPiBwb2ludCB0aGUNCj4gPiBz
dWJzY3JpcHRpb24gZW50ZXJzIHRoZSBbZXZhbHVhdGVdIHBvaW50cyBvZiBGaWd1cmUgOC4gIElz
c3VlcyBmcm9tDQo+ID4gdGhpcyBwb2ludCBvdXQNCj4gPiB3b3VsZCBiZSByZXBvcnRlZCB3aXRo
IGEgdmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xPRy4NCj4gPg0KPiA+IFNv
IGhvdyBhcmUgaGludHMgcmVwb3J0ZWQgZm9yIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucz8NCj4g
DQo+IFRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHNwZWNpZmljYXRpb24gd2hpY2ggcmVxdWlyZXMg
dGhpcy4gIEFuDQo+IGltcGxlbWVudGF0aW9uIGNvdWxkIGNob29zZSB0byBwbGFjZSB0aGVzZSBp
biBzb21lIGZvcm0gb2YgU1lTTE9HLg0KPiAuLi4NCj4gPiA+IEk2KSBzZWMgMi41LCBwYXJhIDM6
DQo+ID4gPg0KPiA+ID4gICAgT24gYSByZWNlaXZlciBvZiBhDQo+ID4gPiAgICBjb25maWd1cmVk
IHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zIGlzDQo+ID4g
PiAgICBvcHRpb25hbCBleGNlcHQgd2hlcmUgcmVwbGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRz
IGlzIHJlcXVpcmVkLg0KPiA+ID4NCj4gPiA+ICAgLS0gY29uZnVzaW5nIGJlY2F1c2UgdGV4dCBp
biAxLjM6DQo+ID4gPiAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBtaXhpbmctYW5kLW1hdGNo
aW5nIG9mIGR5bmFtaWMgYW5kIGNvbmZpZ3VyZWQNCj4gPiA+ICAgICAgb3BlcmF0aW9ucyBvbiBh
IHNpbmdsZSBzdWJzY3JpcHRpb24uICBTcGVjaWZpY2FsbHksIGEgY29uZmlndXJlZA0KPiA+ID4g
ICAtLSBjbGFyaWZ5IHRoZSByZWNlaXZlciBtYXkgaGF2ZSBtdWx0aXBsZSBzdWJzY3JpcHRpb25z
IGhlcmUNCj4gPiA+ICAgLS0gbm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcu
Li4iIHRleHQgbWVhbnMNCj4gPg0KPiA+IEhvdyBhYm91dCB0aGUgZm9sbG93aW5nIHR3ZWFrOg0K
PiA+DQo+ID4gIk9uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3Vw
cG9ydCBmb3IgZHluYW1pYw0KPiA+IHN1YnNjcmlwdGlvbnMNCj4gPiBpcyBvcHRpb25hbC4gIEhv
d2V2ZXIgaWYgcmVwbGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVkDQo+ID4g
Zm9yIGENCj4gPiBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYyBz
dWJzY3JpcHRpb24gaXMgaGlnaGx5DQo+ID4gcmVjb21tZW5kZWQuICBJbiB0aGlzIGNhc2UsIGEg
c2VwYXJhdGUgZHluYW1pYyBzdWJzY3JpcHRpb24gY2FuIGJlDQo+ID4gZXN0YWJsaXNoZWQNCj4g
PiB0byByZXRyYW5zbWl0IHRoZSBtaXNzaW5nIGV2ZW50IHJlY29yZHMuIg0KPiA+DQo+ID4gT0sN
Cj4gDQo+IENoYW5nZSBtYWRlLg0KPiANCj4gPiA+IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1maWx0
ZXI6IFttdWx0aXBsZSB1c2VzXQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICAgVGhlIGV4cHJlc3Np
b24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBhdGggY29udGV4dDoNCj4gPiA+DQo+
ID4gPiAgICAgICAgICAgICAgbyAgIFRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBp
cyB0aGUgc2V0IG9mIHByZWZpeA0KPiA+ID4gICAgICAgICAgICAgICAgICBhbmQgbmFtZXNwYWNl
IHBhaXJzIGZvciBhbGwgWUFORyBtb2R1bGVzIGltcGxlbWVudGVkDQo+ID4gPiAgICAgICAgICAg
ICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRoZSBwcmVmaXggaXMgdGhlIFlBTkcgbW9kdWxl
DQo+ID4gPiAgICAgICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVm
aW5lZCBieSB0aGUNCj4gPiA+ICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZScgc3RhdGVtZW50
IGluIHRoZSBZQU5HIG1vZHVsZS4NCj4gPiA+DQo+ID4gPiAgIC0tIFRoaXMgcHJlZml4IHByb2Nl
c3NpbmcgaXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZSBpbiBORVRDT05GDQo+ID4gPiAgICAgIG9y
IFJFU1RDT05GLiAgSU1PIGEgYmFkIHByZWNlZGVudC4gIE9ubHkgdGhlIFhNTCBwcmVmaXhlcw0K
PiA+ID4gICAgICBzaG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Npbmcgb2YgWE1MIGVuY29k
aW5nLiAgWUFORw0KPiA+ID4gICAgICBtb2R1bGUgcHJlZml4ZXMgYXJlIG5vdCByZXF1aXJlZCB0
byBiZSB1bmlxdWUsIHVubGlrZQ0KPiA+ID4gICAgICB0aGUgcHJlZml4IG1hcHBpbmdzIGluIFhN
TA0KPiA+DQo+ID4gVGhpcyB0ZXh0IHdhcyBwcm9wb3NlZCBieSBNYXJ0aW4gYXMgYSByZXN1bHQg
b2YgdGhlICJ4cGF0aCBleHByZXNzaW9ucw0KPiA+IGluIEpTT04iDQo+ID4gdGhyZWFkIGxhc3Qg
T2N0b2JlciBpbiBORVRNT0QuDQo+ID4NCj4gPiBJIGFtIGhhcHB5IHRvIGluY29ycG9yYXRlIHdo
YXRldmVyIHRleHQgaXMgYXBwcm9wcmlhdGUuICBJIHdhcyBob3BpbmcNCj4gPiB0aGF0IHRoZQ0K
PiA+IHN1Z2dlc3RlZCB0ZXh0IHdhcyBzdWZmaWNpZW50IGZvciBub3cuICBLZW50IGhhcyBhbHJl
YWR5IGluY29ycG9yYXRlZA0KPiA+IHRoaXMgYXMgYW4NCj4gPiBpc3N1ZSBmb3IgeWFuZy1uZXh0
DQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL25ldG1vZC13Zy95YW5nLW5leHQvaXNzdWVzLzU1DQo+
ID4gU28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5vIGZpbmFsIHByZWNlZGVudCBiZWluZyBjbGFpbWVk
Lg0KPiA+DQo+ID4gSSBkbyBub3QgYWdyZWUgdGhhdCB0aGlzIFlBTkcgbW9kdWxlIHNob3VsZCBk
ZWZpbmUgYSBuZXcgd2F5IHRvIGVuY29kZQ0KPiA+IFhQYXRoDQo+ID4gaW50byBYTUwgaW5zdGFu
Y2UgZG9jdW1lbnRzLiBUaGlzIHdpbGwgcmVxdWlyZSBzaWduaWZpY2FudCBjaGFuZ2VzIHRvDQo+
ID4gc2VydmVyDQo+ID4gaW1wbGVtZW50YXRpb25zLiAgWUFORyBtb2R1bGUgcHJlZml4ZXMgYXJl
IG5vdCBldmVuIHJlcXVpcmVkIHRvIGJlDQo+ID4gdW5pcXVlDQo+ID4gc28gdGhlIHNldCBvZiBw
cmVmaXhlcyB1c2VkIGJ5IHRoZSBzZXJ2ZXIgaW4gWE1MIGluc3RhbmNlIGRvY3VtZW50cw0KPiA+
IG1heSBiZQ0KPiA+IGRpZmZlcmVudCwNCj4gPiBzaW5jZSBpdCBtdXN0IGJlIHVuaXF1ZS4NCj4g
DQo+IFNlZSBuZXh0IG5vdGUNCj4gDQo+ID4gPiAgIC0tIE5NREEgYWxsb3dzIHRoZSBzYW1lIG1v
ZHVsZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUgbW9kdWxlLXNldHMNCj4gPiA+ICAgICAgYW5kIGRp
ZmZlcmVudCBpbiBlYWNoIGRhdGFzdG9yZS4gVGhpcyB0ZXh0IGFib3V0ICJpbXBsZW1lbnRlZCBi
eQ0KPiA+ID4gICAgICB0aGUgc2VydmVyIiBkb2VzIG5vdCB3b3JrIGZvciBOTURBDQo+ID4NCj4g
PiBJIGFtIGhhcHB5IHRvIGFkb3B0IHdoYXRldmVyIHRleHQgbWVldHMgWUFORyBkb2N0b3IgYXBw
cm92YWwuICBDYW4geW91DQo+ID4gc3VnZ2VzdD8NCj4gPg0KPiA+DQo+ID4gUmVtb3ZlIGFsbCB0
ZXh0IGFib3V0IFlBTkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nIFhNTCBlbmNvZGluZw0K
PiA+IHdpdGhvdXQNCj4gPiBtb2RpZmljYXRpb24NCj4gDQo+IEFzIGEgZGlmZmVyZW50IFlBTkcg
ZG9jdG9yIGhhcyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0IG1vZGlmaWNhdGlvbiwNCj4gSSBi
ZWxpZXZlIHRoaXMgaXMgYSBibG9ja2VyLiAgV2hhdCBpcyB0aGUgcHJvY2VzcyBmb3IgWUFORyBt
b2RlbA0KPiByZXZpZXdzIGluIHN1Y2ggYSBjYXNlLiAgSSBhbSBoYXBweSB0byBhY2NlcHQgd2hh
dGV2ZXIgaGVyZS4gIEFueQ0KPiBzdWdnZXN0aW9ucyBvbiBuZXh0IHN0ZXBzPw0KPiANCj4gLi4u
DQo+ID4gPiAgIC0tIHRoZXJlIHNob3VsZCBiZSBhbiBleGFtcGxlIG9mIGEgY29uZmlndXJhYmxl
IGVuY29kaW5nIHByb3ZpZGVkDQo+ID4NCj4gPiBJIGFtIGhhcHB5IHRvIGVuaGFuY2UgdGhlIGRl
ZmluaXRpb24gWUFORyBtb2RlbCdzIGlkZW50aXR5IGRlZmluaXRpb24NCj4gPiBvZg0KPiA+ICJj
b25maWd1cmFibGUtZW5jb2RpbmciLiAgSSBjb3VsZCBkbyB0aGlzIGJ5IGFkZGluZyB0aGUgZm9s
bG93aW5nDQo+ID4gYWRkaXRpb25hbCB0ZXh0DQo+ID4gdG8gdGhlIGRlc2NyaXB0aW9uOiAiQW4g
ZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJsZSBlbmNvZGluZyBtaWdodCBiZSBhDQo+ID4gbmV3DQo+
ID4gaWRlbnRpdHkgc3VjaCBhcyAnZW5jb2RlLWNib3InLiAgU3VjaCBhbiBpZGVudGl0eSBjb3Vs
ZCB1c2UNCj4gPiAnY29uZmlndXJhYmxlLQ0KPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRo
aXMgd291bGQgYWxsb3cgYSBkeW5hbWljIHN1YnNjcmlwdGlvbg0KPiA+IGVuY29kZWQgaW4gSlNP
Tg0KPiA+IFtSRkMtODI1OV0gdG8gcmVxdWVzdCBub3RpZmljYXRpb24gbWVzc2FnZXMgYmUgZW5j
b2RlZCB2aWEgQ0JPUiBbUkZDLQ0KPiA+IDcwNDldLiAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkg
c3BlY2lmaWMgY29uZmlndXJhYmxlIGVuY29kaW5nIHdvdWxkDQo+ID4gYmUgZXhwbG9yZWQNCj4g
PiBpbiBhIHRyYW5zcG9ydCBkb2N1bWVudCBiYXNlZCBvbiB0aGlzIHNwZWNpZmljYXRpb24uIiAg
RG9lcyB0aGlzIG1lZXQNCj4gPiB5b3VyIGFzaz8NCj4gPg0KPiA+DQo+ID4gT0sNCj4gDQo+IEFk
ZGVkDQo+IA0KPiA+ID4gSTExKSBleHRlbnNpb24gc3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNh
dGlvbiB7DQo+ID4gPg0KPiA+ID4gICAgICAgIFRoaXMgc3RhdGVtZW50IGlzIG5vdCBmb3IgdXNl
DQo+ID4gPiAgICAgICAgb3V0c2lkZSBvZiB0aGlzIFlBTkcgbW9kdWxlLiI7DQo+ID4gPg0KPiA+
ID4gICAtLSB0aGlzIHRleHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRoZXJlIGlzIG5vIHZhbHVlIGlu
IGxpbWl0aW5nDQo+ID4gPiAgICAgIHRoZSBzY29wZSBvZiB0aGlzIGV4dGVuc2lvbi4gIEl0IHBy
ZXZlbnRzIGV2ZW4gdGhpcyBXRyBmcm9tDQo+ID4gPiAgICAgIGNyZWF0aW5nIGEgbW9kdWxlIHRo
YXQgdXNlcyB0aGUgZXh0ZW5zaW9uIGFnYWluLg0KPiA+DQo+ID4gVGhpcyB3YXMgdGhlIHN1Ympl
Y3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRlIGluIHRoZSBXRy4gIFRoZSBhdXRob3JzIGRpZA0KPiA+
IG5vdCB3YW50DQo+ID4gdGhpcyByZXN0cmljdGlvbiBlaXRoZXIuDQo+ID4NCj4gPiBUbyBiZSBh
bGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5zZXJ0ZWQgdGhlIGRvY3VtZW50
LiAgSWYNCj4gPiB0aGlzDQo+ID4gcmVhbGx5IGlzIG1hbmRhdG9yeS10by1yZW1vdmUgZnJvbSBh
IFlBTkcgZG9jdG9yIHBvaW50LW9mLXZpZXcsIHdoYXQNCj4gPiBpcyB0aGUNCj4gPiBwcm9jZXNz
IGZvciBxdWljayBjbG9zdXJlIG9uIHRoaXMgaXNzdWUgYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFu
ZCB0aGUNCj4gPiBZQU5HDQo+ID4gZG9jdG9ycz8NCj4gPg0KPiA+DQo+ID4gVGhlIFlBTkcgbGFu
Z3VhZ2UgbWFrZXMgbm8gcmVzdHJpY3Rpb25zIGFib3V0IGV4cG9ydGluZyBzdGF0ZW1lbnRzLg0K
PiA+IEkgZ3Vlc3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3aWxsIGp1c3Qgc2F5IE9LIGFu
ZCB3b25kZXIgd2hhdA0KPiA+IHByb2JsZW0NCj4gPiB0aGlzIGlzIHN1cHBvc2VkIHRvIHNvbHZl
LiBJIGd1ZXNzIHRoZSBXRyB3YW50cyB0byBnaXZlIFlBTkcgRG9jdG9ycw0KPiA+IG1vcmUNCj4g
PiB0aGluZ3MgdG8gY2hlY2suIChUaGlzIGlzIHdoYXQgd2UgY2FsbGVkIGEgQ0xSIGluIFNOTVAt
bGFuZCA7LSkNCj4gDQo+IFRoYW5rcy4gIE5vIGFjdGlvbiB0YWtlbi4NCj4gDQo+ID4gPiBJMTMp
ICAgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbi1zdGFydGVkIHsNCj4gPiA+ICAgICBzbjpzdWJz
Y3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uOw0KPiA+ID4gICAgIGlmLWZlYXR1cmUgImNvbmZp
Z3VyZWQiOw0KPiA+ID4gICAgIGRlc2NyaXB0aW9uDQo+ID4gPiAgICAgICAiVGhpcyBub3RpZmlj
YXRpb24gaW5kaWNhdGVzIHRoYXQgYSBzdWJzY3JpcHRpb24gaGFzIHN0YXJ0ZWQgYW5kDQo+ID4g
PiAgICAgICAgIG5vdGlmaWNhdGlvbnMgYXJlIGJlZ2lubmluZyB0byBiZSBzZW50LiBUaGlzIG5v
dGlmaWNhdGlvbiBzaGFsbA0KPiA+ID4gICAgICAgIG9ubHkgYmUgc2VudCB0byByZWNlaXZlcnMg
b2YgYSBzdWJzY3JpcHRpb247IGl0IGRvZXMgbm90DQo+ID4gPiAgICAgICAgY29uc3RpdHV0ZSBh
IGdlbmVyYWwtcHVycG9zZSBub3RpZmljYXRpb24uIjsNCj4gPiA+DQo+ID4gPiAgIC0tIDJuZCBz
ZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFsbCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvDQo+ID4g
PiAgICAgIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbi4gbGFzdCBwYXJ0IGlzIHJlZHVuZGFu
dCBzaW5jZQ0KPiA+ID4gICAgICB0aGUgc246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlv
biBleHRlbnNpb24gaXMgdXNlZA0KPiA+DQo+ID4gVGhlcmUgaXMgbm8gaXNzdWUgd2l0aCByZW1v
dmluZyB0aGlzIHNlY29uZCBzZW50ZW5jZSBjb21wbGV0ZWx5LiAgSWYgSQ0KPiA+IGRpZCB0aGF0
LA0KPiA+IHdvdWxkIHRoaXMgYWRkcmVzcyB5b3VyIGNvbmNlcm4/DQo+ID4NCj4gPiBPSw0KPiAN
Cj4gRG9uZQ0KPiANCj4gPiA+IEkxNCkgICByYzp5YW5nLWRhdGEgbW9kaWZ5LXN1YnNjcmlwdGlv
bi1zdHJlYW0tZXJyb3ItaW5mbyB7DQo+ID4gPg0KPiA+ID4gICAgICAgbGVhZiBmaWx0ZXItZmFp
bHVyZS1oaW50IHsNCj4gPiA+ICAgICAgICAgdHlwZSBzdHJpbmc7DQo+ID4gPiAgICAgICAgICAg
ZGVzY3JpcHRpb24NCj4gPiA+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmliaW5nIHdo
ZXJlIGFuZC9vciB3aHkgYSBwcm92aWRlZCBmaWx0ZXINCj4gPiA+ICAgICAgICAgICAgICB3YXMg
dW5zdXBwb3J0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uIjsNCj4gPiA+ICAgICAgIH0NCj4gPiA+
DQo+ID4gPiAgIC0tIHJwYy1lcnJvciBhbHJlYWR5IGFsbG93cyBtb3JlIHByZWNpc2UgZXJyb3Ig
cmVwb3J0aW5nDQo+ID4gPiAgICAgIEl0IHVzZXMgZXJyb3ItdGFnLCBlcnJvci1wYXRoLCBlcnJv
ci1zdHJpbmcsIGFuZCBlcnJvci1pbmZvDQo+ID4gPiAgICAgIGV4dGVuc2lvbnMNCj4gPiA+ICAg
ICAgdG8gaWRlbnRpZnkgd2hpY2ggcGFyYW1ldGVycy9jb25kaXRpb25zIGNhdXNlZCB0aGUgUlBD
IHRvIGJlDQo+ID4gPiAgICAgIHJlamVjdGVkLg0KPiA+ID4gICAgICBUaGlzIGVycm9yIHJlcG9y
dGluZyB3aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQsIE5vdCBzdXJlIHRoaXMNCj4gPiA+ICAgICAg
ZmFpbHVyZS1oaW50DQo+ID4gPiAgICAgIGhhcyBhbnkgc3RhbmRhcmRzIHZhbHVlLiBQZXJoYXBz
IHJlYWwtdXNlIGV4YW1wbGUgY2FuIGJlIGFkZGVkDQo+ID4NCj4gPiBQZXIgeW91ciB0aG91Z2h0
cyBvbiBycGMtZXJyb3IuLi4gIEZvciBORVRDT05GIGFuZCBSRVNUQ09ORiwgeW91IHBvaW50DQo+
ID4gdG8NCj4gPiBlcnJvciBzdHJ1Y3R1cmVzIHdoaWNoIGhpc3RvcmljYWxseSBiZWVuIHVzZWQg
d2l0aCB0aG9zZSB0cmFuc3BvcnRzLg0KPiA+IE9mIGNvdXJzZQ0KPiA+IHdlIHdlcmUgbG9va2lu
ZyB0byBoYXZlIGFsbCBzdWJzY3JpcHRpb24gaGludHMgc3VwcG9ydGFibGUgYWNyb3NzDQo+ID4g
dHJhbnNwb3J0cyB2aWENCj4gPiBhIHNpbmdsZSBwb3J0YWJsZSBZQU5HIGRhdGEgc3RydWN0dXJl
LiAgU28gdGhlIHZhbHVlIGlzIHRoYXQgYSBzaW5nbGUNCj4gPiBzdHJpbmcNCj4gPiBvYmplY3Qg
ZXhpc3RzIHNvIHRvIHRyYW5zcG9ydCB3aGF0ZXZlciB0aGUgdmVuZG9yIHRoaW5rcyB3b3VsZCBi
ZQ0KPiA+IHVzZWZ1bCBhcyBhDQo+ID4gaGludCBpbiB0aGlzIGNhc2UuICBJLmUuLCB0aGVyZSBo
YXMgYmVlbiBubyBhdHRlbXB0IHRvIHN0YW5kYXJkaXplIHRoZQ0KPiA+IGNvbnRlbnRzIG9mDQo+
ID4gdGhpcyBzdHJpbmcuICBJZiBvcGVyYXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2ly
ZSBmb3Igc3VjaA0KPiA+IHN0cnVjdHVyaW5nLCB0aGlzDQo+ID4gY291bGQgcHJvdmlkZSB0aGUg
YmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZiB0aGlzIHN0YXJ0aW5nDQo+ID4g
cG9pbnQuDQo+ID4NCj4gPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENPTkYgYW5kIFJF
U1RDT05GICJoaXN0b3JpYyIgcXVpdGUgeWV0Lg0KPiA+IFRoZXJlIGFyZSBtYW55IGltcGxlbWVu
dGF0aW9ucyB1c2luZyB0aGUgcnBjLWVycm9yIHJlcG9ydGluZyB3aXRoIG5vDQo+ID4gaW50ZW50
DQo+ID4gdG8gcmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLg0KPiA+DQo+ID4gSSB3YXMg
anVzdCBhc2tpbmcgZm9yIGFuIGV4YW1wbGUsIHNpbmNlIEkgaGF2ZSBubyBpZGVhIHdoYXQgYW4N
Cj4gPiBpbXBsZW1lbnRvcg0KPiA+IHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYuDQo+IA0KPiBIZXJl
IGlzIGFuIGV4YW1wbGUgZnJvbSBvdXIgaW1wbGVtZW50YXRpb24uICBTYXkgeW91IG1pc3R5cGUg
YW4gZXh0cmENCj4gIlwiIHRvIGFuIHhwYXRoIGZpbHRlcjoNCj4gL2lmOmludGVyZmFjZXMtc3Rh
dGUvaW50ZXJmYWNlW25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJdL29wZXItc3RhdHVzDQo+IEFz
IGEgcmVzdWx0LCB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0byB0aGUgcHVibGlzaGVyIGlzOg0KPiAv
aWY6aW50ZVxyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJd
L29wZXItc3RhdHVzDQo+IA0KPiBXaGF0IHdlIHdvdWxkIHJldHVybiBpbiB0aGUgZmFpbHVyZS1o
aW50IHN0cmluZyBpczoNCj4gSW52YWxpZCBleHByZXNzaW9uOiBvZmZzZXQoOSkgaW4NCj4gJy9p
ZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0v
b3Blci1zdGF0dXMnDQo+IA0KPiBFcmljDQo+IA0KPiA+IEFuZHkNCg==


From nobody Wed Jan 23 04:35:26 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D6EA612DF71; Wed, 23 Jan 2019 04:35:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 ms5zNKA0T4G1; Wed, 23 Jan 2019 04:35:21 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 20576126F72; Wed, 23 Jan 2019 04:35:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=34268; q=dns/txt; s=iport; t=1548246921; x=1549456521; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=OUBuvliBLiq1WYwyLloQJHu2CRkSpe+8zw54U2GpZ7Q=; b=R9/YT4tP/+7gaJN00NYjsQFAD1i2QaE/I2knE7QNlhUrAqzCTrWP1IkJ 0M6+lFuClhH/khV4XKMK84zhSl5/QgjERNtzjL/yalTUElgrBLOxqDaOZ B8A2QS4eRslDemtdNBgDdEpdZbZZthzG4mkIhjFkqMPQuRXem1xsZQst5 w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAAAHX0hc/5hdJa1ZAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZoECJwqDd4gajX2DRpQ9FIF?= =?us-ascii?q?nCwEBI4RJAheCYCI0CQ0BAwEBAgEBAm0cDIVKAQEBAQIBGgkRQwIFCwIBCA4?= =?us-ascii?q?HAwICCRoDAgICMBQBEAIEAQ0FCIJPTIF5CA+sGYEviisFgQuLNheBQD+BEYM?= =?us-ascii?q?Sgx4CgTYBAw8CA4McgjUiAolSAwgwC4VzAYFYhG2KeVwJAockg1qHGCCBZoh?= =?us-ascii?q?pgTKGFooEA4Uhi10CERSBJx84gVZwFTuCbIInFxNtAQiCQopTQTGIVimBBYE?= =?us-ascii?q?fAQE?=
X-IronPort-AV: E=Sophos;i="5.56,511,1539648000"; d="scan'208";a="229398683"
Received: from rcdn-core-1.cisco.com ([173.37.93.152]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Jan 2019 12:35:19 +0000
Received: from XCH-RTP-011.cisco.com (xch-rtp-011.cisco.com [64.101.220.151]) by rcdn-core-1.cisco.com (8.15.2/8.15.2) with ESMTPS id x0NCZISM013437 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 23 Jan 2019 12:35:19 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-011.cisco.com (64.101.220.151) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 23 Jan 2019 07:35:17 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Wed, 23 Jan 2019 07:35:18 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>, "andy@yumaworks.com" <andy@yumaworks.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GA=
Date: Wed, 23 Jan 2019 12:35:18 +0000
Message-ID: <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com>
References: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com> <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com> <20190123.093135.970106755262082435.mbj@tail-f.com>
In-Reply-To: <20190123.093135.970106755262082435.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.151, xch-rtp-011.cisco.com
X-Outbound-Node: rcdn-core-1.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Klw3wD8CH_V9pgUvmgEkA_GpBd4>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 12:35:25 -0000

PiBGcm9tOiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDIzLCAyMDE5IDM6MzIgQU0NCj4gDQo+
IEhpLA0KPiANCj4gIkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToN
Cj4gPiBIaSBBbmR5LA0KPiA+DQo+ID4gTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uICBNeSBy
ZWFkaW5nIGlzIHRoYXQgaXQgdGFrZXMgdGhlIHRyYW5zcG9ydA0KPiA+IHNwZWNpZmljIGVycm9y
IGluZm8gY29udGFpbmVkIGluDQo+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQt
bm90aWZpY2F0aW9ucyBzZWN0aW9uIDcsIGFuZCB0aGVuDQo+ID4gcmVwbGljYXRlcyB0aGF0IGlu
Zm8gd2l0aGluIDEyIHNlcGFyYXRlIGRlc2NyaXB0aW9uIG9iamVjdHMgb2YgdGhlDQo+ID4gdHJh
bnNwb3J0IGluZGVwZW5kZW50IGlldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLnlhbmcuICBU
aGUgdmFsdWUNCj4gPiB5b3UgYXJlIGFzc2VydGluZyBpcyB0aGF0IFJGQ3MgY29udGFpbmluZyBZ
QU5HIG1vZGVscyBjb250YWluaW5nIHRoZQ0KPiA+IHJwYy1zdG10IGhhdmUgdHJhZGl0aW9uYWxs
eSBkb2N1bWVudCB0aGUgbWFuZGF0b3J5LXRvLWltcGxlbWVudA0KPiA+ICJlcnJvci10YWciIGZp
ZWxkIHdpdGhpbiB0aGUgbW9kZWwuICBBbmQgcHJlc3VtYWJseSB5b3UgYXJlIGNvbmNlcm5lZA0K
PiA+IHRoYXQgZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gbG9vayBlbHNld2hlcmUgZm9y
IHRoaXMNCj4gPiBpbmZvcm1hdGlvbi4NCj4gDQo+IEkgdGhpbmsgdGhhdCBtYXliZSB0aGVyZSBh
cmUgdHdvIHNlcGFyYXRlIGlzc3VlcyBoZXJlLg0KPiANCj4gVGhlIGZpcnN0IGlzc3VlIGlzIHRo
YXQgZm9yIGVhY2ggZXJyb3IgaWRlbnRpdHkgZGVmaW5lZCwgdGhlcmUgbmVlZHMgdG8gYmUgYQ0K
PiBtYXBwaW5nIHRvIHRoZSBwcm90b2NvbC1zcGVjaWZpYyBlcnJvciBoYW5kbGluZy4gIEFuZHkg
c3VnZ2VzdHMgdGhhdCB0aGlzIGluZm8gaXMNCj4gYWRkZWQgdG8gdGhpcyBkb2N1bWVudCwgYnV0
IGN1cnJlbnRseSB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGUNCj4gcHJvdGNv
bC1tYXBwaW5nIGRvY3VtZW50cyAobmV0Y29uZi1ub3RpZiBhbmQgcmVzdGNvbmYtbm90aWYpLiAg
UGVyc29uYWxseSwgSQ0KPiB0aGluayB0aGF0IHRoZSBjdXJyZW50IHNwbGl0IG9mIHRleHQgYmV0
d2VlbiBkb2N1bWVudHMgaXMgZmluZS4NCj4gDQo+IFRoZSBzZWNvbmQgaXNzdWUgaXMgdGhhdCBj
dXJyZW50bHksIGJvdGggbmV0Y29uZi1ub3RpZiBhbmQgcmVzdGNvbmYtbm90aWYgc2F5DQo+IHRo
YXQgKmFsbCogdGhlc2UgZXJyb3JzIHVzZSB0aGUgZXJyb3ItdGFnICJvcGVyYXRpb24tZmFpbGVk
Ii4gIEVzc2VudGlhbGx5IGl0IG1lYW5zDQo+IHRoYXQgd2UgYnlwYXNzIHRoZSBlcnJvciBoYW5k
bGluZyBpbiB0aGUgcHJvdG9jb2xzLiAgQXMgQW5keSBwb2ludHMgb3V0IGJlbG93LA0KPiB0aGUg
ZXJyb3IgImluc3VmZmljaWVudC1yZXNvdXJjZXMiIHNob3VsZCBiZSBtYXBwZWQgdG8gInJlc291
cmNlLWRlbmllZCIgaW4NCj4gTkVUQ09ORiBhbmQgUkVTVENPTkYgKHRoZXkgbWVhbiB0aGUgc2Ft
ZSB0aGluZykuICBTbyBpdCBtaWdodCBtYWtlIHNlbnNlDQo+IHRvIGNhcmVmdWxseSBnbyB0aHJv
dWdoIHRoZSBsaXN0IG9mIGVycm9ycyBhbmQgbWFwIHRoZW0gdG8gdGhlIGNvcnJlY3QgZXJyb3It
dGFnDQo+IChidXQgc3BlY2lmaXkgdGhpcyBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cykuDQoNCkkg
YW0gY29tcGxldGVseSBnb29kIHdpdGggdGhpcy4gICBEb2VzIHRoaXMgd29yayBmb3IgeW91IEFu
ZHk/DQoNCkVyaWMNCg0KPiAvbWFydGluDQo+IA0KPiANCj4gDQo+IA0KPiA+DQo+ID4gSWYgdGhl
IFlBTkcgZG9jdG9ycyByZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRlZC4gIEEgc2ltaWxh
ciB0ZXh0DQo+ID4gY2hhbmdlIHdvdWxkIGJlIG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3Ig
aWRlbnRpdGllcyB3aXRoaW4gWUFORw0KPiA+IFB1c2guICBQZXJzb25hbGx5IEkgZG9u4oCZdCBs
aWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvDQo+ID4gZW1iZWQgdGhp
cyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUgY2hhbmdlIGlmIHlvdSByZWFsbHkg
d2FudA0KPiA+IHRoaXMsIGFuZCBub2JvZHkgZWxzZSBvYmplY3RzLg0KPiA+DQo+ID4gT3RoZXIg
dGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3BlbiBpc3N1ZXMgaW4gdGhl
IFlBTkcNCj4gPiBEb2N0b3IgcmV2aWV3LiAgRG8geW91IGtub3cgb2YgYW55dGhpbmcgZWxzZT8N
Cj4gPg0KPiA+IEVyaWMNCj4gPg0KPiA+DQo+ID4gRnJvbTogQW5keSBCaWVybWFuLCBKYW51YXJ5
IDIxLCAyMDE5IDI6MjYgUE0NCj4gPg0KPiA+IEhpLA0KPiA+DQo+ID4gSSB0aGluayB0aGUgZXJy
b3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZlZCBieSBpbmNsdWRpbmcgMSBleHRyYQ0KPiA+IHNl
bnRlbmNlIGluIGVhY2ggZXJyb3IgaWRlbnRpdHkuDQo+ID4gSSBrbm93IHRoaXMgaXMgTkVUQ09O
RiBhbmQgUkVTVENPTkYgY2VudHJpYyBidXQgdGhvc2UgYXJlIHRoZSBvbmx5IDINCj4gPiBzdGFu
ZGFyZCBwcm90b2NvbHMgc3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFnZSByaWdodCBub3cu
DQo+ID4NCj4gPiAgICAgICAgSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJy
b3IgcmVwb3J0aW5nLA0KPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3QgZXJyb3It
dGFnPicgTVVTVCBiZSB1c2VkLg0KPiA+DQo+ID4gRm9yIGV4YW1wbGU6DQo+ID4NCj4gPg0KPiA+
IE9MRDoNCj4gPg0KPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+ID4g
ICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiAgICAgYmFzZSBtb2Rp
Znktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5k
ZWQtcmVhc29uOw0KPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ICAgICAgICJUaGUgcHVibGlzaGVy
IGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQo+ID4gICAgICAgIHJl
cXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQgYWxsb2NhdGVk
IENQVQ0KPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBz
ZXQgb2Ygbm90aWZpY2F0aW9uDQo+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQo+ID4gICB9DQo+ID4N
Cj4gPg0KPiA+IE5FVzoNCj4gPg0KPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNl
cyB7DQo+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiAgICAg
YmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlv
bi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ICAgICAgICJUaGUg
cHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQo+ID4g
ICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQg
YWxsb2NhdGVkIENQVQ0KPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUg
ZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+ID4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUg
J2Vycm9yLXRhZycgZmllbGQgaXMgdXNlZCBpbiBlcnJvciByZXBvcnRpbmcsDQo+ID4gICAgICAg
IHRoZW4gdGhlIHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1VU1QgYmUgdXNlZC4iOw0KPiA+ICAg
fQ0KPiA+DQo+ID4NCj4gPiBBbmR5DQo+ID4NCj4gPg0KPiA+IE9uIEZyaSwgSmFuIDE4LCAyMDE5
IGF0IDExOjUzIEFNIEVyaWMgVm9pdCAoZXZvaXQpDQo+ID4gPGV2b2l0QGNpc2NvLmNvbTxtYWls
dG86ZXZvaXRAY2lzY28uY29tPj4gd3JvdGU6DQo+ID4gSGkgQW5keSwNCj4gPg0KPiA+IFRoYW5r
cy4gIEkgaGF2ZSBpbmNvcnBvcmF0ZWQgaXRlbXMgd2hlcmUgdGhlcmUgd2FzIGFncmVlbWVudC4g
IEkgaGF2ZQ0KPiA+IHJlbW92ZWQgdGhlIGl0ZW1zIGJlbG93IHdoZXJlIHlvdSB3ZXJlIG9rLg0K
PiA+DQo+ID4gUmVtYWluaW5nIGJlbG93IGFyZSB0aGUgb3BlbiBpdGVtcywgd2l0aCByZXNwb25z
ZXMuDQo+ID4NCj4gPiA+ID4gICAgU2hvdWxkIGJlIGNsZWFyIHNvbWV3aGVyZSB0aGF0DQo+ID4g
PiA+ICAgIHN1c3BlbmQgaXMgZm9yIENQVSBhbmQgb3RoZXIgcmVzb3VyY2VzLCBhbmQgTkFDTSBu
b3QgY29uc2lkZXJlZA0KPiA+ID4gPiAgICB0byBiZSBhIHJlc291cmNlLg0KPiA+ID4NCj4gPiA+
IElmIE5BQ00gaXMgYWN0aXZlLCBpdCBuZWVkcyB0byBiZSBmb2xsb3dlZC4gIFRoZSB0ZXh0IHdl
IGhhdmUgZm9yDQo+ID4gPiBOQUNNIGlzIGluIFNlY3Rpb24gNS40LiAgRG8geW91IHNlZSBzb21l
dGhpbmcgZWxzZSBzcGVjaWZpYyB0bw0KPiA+ID4gc3Vic2NyaXB0aW9uIHN1c3BlbnNpb24gbmVl
ZGVkIGhlcmU/ICAoTWF5YmUgSSBhbSBub3QgZ2V0dGluZyB5b3VyDQo+ID4gPiBwb2ludC4pDQo+
ID4gPg0KPiA+ID4gTm8gLS0gT0sgdG8gbGVhdmUgTkFDTSBhcyB0ZXJtaW5hdGUtaWYtbG9zcy1v
Zi1yaWdodHMgKElzIHRoZXJlIGFuDQo+ID4gPiBlcnJvciBpZGVudGl0eSBmb3IgdGhpcyBldmVu
dD8pDQo+ID4NCj4gPiBUaGUgaWRlbnRpdHkgd2hpY2ggYXBwbGllcyBoZXJlIGlzICJzdHJlYW0t
dW5hdmFpbGFibGUiLiAgVGhpcyBpcyB0aGUNCj4gPiBzYW1lIGlkZW50aXR5IHdoaWNoIHdvdWxk
IGJlIHVzZWQgaWYgYSBzdWJzY3JpYmVyIGhhZCBuZXZlciBzdWZmaWNpZW50DQo+ID4gcGVybWlz
c2lvbnMgaW4gdGhlIGZpcnN0IHBsYWNlLiAgSSBkb24ndCBiZWxpZXZlIHdlIHdvdWxkIHdhbnQg
dG8NCj4gPiByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hlbiBOQUNNIHdoZW4gcGVy
bWlzc2lvbnMgaGF2ZSBqdXN0DQo+ID4gYmVlbiBjaGFuZ2VkLg0KPiA+DQo+ID4gPiA+IEkzKSBz
ZWMgMi4xIHBhcmEgNjoNCj4gPiA+ID4gICAgRXZlbnQgcmVjb3JkcyBNVVNUIE5PVCBiZSBkZWxp
dmVyZWQgdG8gYSByZWNlaXZlciBpbiBhIGRpZmZlcmVudA0KPiA+ID4gPiAgICBvcmRlciB0aGFu
IHRoZXkgd2VyZSBwbGFjZWQgb250byBhbiBldmVudCBzdHJlYW0uDQo+ID4gPiA+DQo+ID4gPiA+
ICAgLS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1YnNjcmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LCB0
aGV5IGFyZSBub3QgZXZlbnRzDQo+ID4gPiA+ICAgICBwbGFjZWQgaW4gZXZlbnQgc3RyZWFtLg0K
PiA+ID4NCj4gPiA+IEFncmVlIHRoYXQgdGhleSBhcmUgbm90IG9uIHRoZSBldmVudCBzdHJlYW0u
ICBTbyB0aGV5IGRvIG5vdCB2aW9sYXRlDQo+ID4gPiB0aGlzIHJlcXVpcmVtZW50Lg0KPiA+ID4N
Cj4gPiA+IEFkZGl0aW9uYWxseSB0aGVyZSBpcyBzdXBwb3J0aW5nIHRleHQgaW4gIlNlY3Rpb24g
Mi43OiBzdWJzY3JpcHRpb24NCj4gPiA+IHN0YXRlIG5vdGlmaWNhdGlvbnMiLCBpbmNsdWRpbmcu
Li4NCj4gPiA+DQo+ID4gPiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChhcyBkZWZpbmVk
IGluIHRoaXMgc2VjdGlvbikgd2l0aGluIHRoZQ0KPiA+ID4gc2VxdWVuY2Ugb2Ygbm90aWZpY2F0
aW9uIG1lc3NhZ2VzIHNlbnQgdG8gYSBwYXJ0aWN1bGFyIHJlY2VpdmVyLiINCj4gPiA+DQo+ID4g
PiA+ICAgICBOZWVkIHRvIGFsbG93IGVuZGVkIG9yIHN1c3BlbmRlZCB0byBiZSBzZW50DQo+ID4g
PiA+ICAgICBoZWFkLW9mLWxpbmUgd2hlbmV2ZXIgc3RhdGUgY2hhbmdlcw0KPiA+ID4NCj4gPiA+
IEkgYW0gbm90IHN1cmUgdGhhdCBzdXNwZW5kZWQgc2hvdWxkIGFsd2F5cyBiZSBzZW50IGhlYWQt
b2YtbGluZS4NCj4gPiA+IENvbnNpZGVyDQo+ID4gPiB0aGF0IGltcGxlbWVudGF0aW9uIG1pZ2h0
IHdhbnQgdG8gbGV0IHRoZSBleGlzdGluZyBxdWV1ZSBvZiBmaWx0ZXJlZA0KPiA+ID4gZXZlbnQg
cmVjb3JkcyBiZSBzZW50IGlmIGlzIGZpbHRlciBjb21wbGV4aXR5IGNhdXNpbmcgdGhlIENQVSBp
c3N1ZS4NCj4gPiA+IFRoYXQgY291bGQgYmUgZGlmZmVyZW50IHRoYW4gaWYgaXQgaXMgYSBiYW5k
d2lkdGggaXNzdWUgZHJpdmluZyB0aGUNCj4gPiA+IHN1c3BlbnNpb24sIGFuZCB5b3UgZGVmaW5p
dGVseSB3YW50IHRoZSAnc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCcgdG8NCj4gPiA+IGJlIHBsYWNl
ZCBhdCB0aGUgaGVhZCBvZiBsaW5lLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBJdCBpcyB1cCB0byB0
aGUgcHVibGlzaGVyIHRvIGRlY2lkZSB3aGVuIHRvIHN0b3Agc2VuZGluZyBldmVudHMgb24gYQ0K
PiA+ID4gc3Vic2NyaXB0aW9uLg0KPiA+ID4gT2J2aW91c2x5IHRoZSBwdWJsaXNoZXIgY2Fubm90
IHdhaXQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbiBpcyBpZGxlLg0KPiA+ID4gVGhlIHJlYXNvbiBp
dCBpcyBnZXR0aW5nIHN1c3BlbmRlZCBpcyBpdCBpcyBmYXIgZnJvbSBpZGxlDQo+ID4gPg0KPiA+
ID4gU28gYWxzbyB1cCB0byB0aGUgcHVibGlzaGVyIHdydC8gd2hhdCB0byBkbyB3aXRoIGFueSBl
dmVudHMgdGhhdA0KPiA+ID4gaGF2ZSBub3QgYmVlbiBkZWxpdmVyZWQgeWV0IG9uIGEgc3Vic2Ny
aXB0aW9uLiAgQ291bGQgZGVsZXRlIHRoZW0gb3INCj4gPiA+IHNhdmUgdGhlbSBmb3Igd2hlbiBt
b3JlIGJhbmR3aWR0aCBhdmFpbGFibGUgKGZvciBleGFtcGxlKQ0KPiA+DQo+ID4gQWdyZWUgZnVs
bHkgd2l0aCB0aGlzLiAgSXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQgaGVyZT8N
Cj4gPg0KPiA+IC4uLg0KPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVu
dGF0aW9uIHRvIGRlY2lkZSBpZiBzb21lDQo+ID4gPiB1bi10cmFuc21pdHRlZCBxdWV1ZSBvZiBl
dmVudCByZWNvcmRzIHNob3VsZCBiZSBmbHVzaGVkIGFuZA0KPiA+ID4gcmVwcm9jZXNzZWQgYmFz
ZWQgb24gdGhlIG1vZGlmaWNhdGlvbi4gIEkgZG8gbm90IGV4cGVjdCB0aGlzIHdvdWxkDQo+ID4g
PiBwb3B1bGFyLCBhcyBhIHJlcGxheSBzdWJzY3JpcHRpb24gY291bGQgYWNjb21wbGlzaCB0aGlz
IHNhbWUNCj4gPiA+IGZ1bmN0aW9uYWwgbmVlZC4NCj4gPiA+DQo+ID4gPiBBZ3JlZWQgdGhhdCBh
biBpbXBsZW1lbnRhdGlvbiBjYW4gZHJvcCBhdCBhbnkgdGltZSBhbmQgaW5jcmVtZW50IHRoZQ0K
PiA+ID4gYXBwcm9wcmlhdGUgY291bnRlcnMuIEl0IHdpbGwgdHJ5IHRvIHRvIGRvIHRoaXMsIGJ1
dCBubyByZXF1aXJlbWVudHMNCj4gPiA+IGV4Y2VwdCBtYXliZSBzdWJzY3JpcHRpb24gZXZlbnRz
IGxpa2UgJ3JlcGxheS1jb21wbGV0ZWQnIGNhbm5vdCBiZQ0KPiA+ID4gZHJvcHBlZA0KPiA+DQo+
ID4gSGF2ZSBwdXQgYSBtaW5vciB0d2VhayBpbnRvIFNlY3Rpb24gMi43Og0KPiA+DQo+ID4gW29s
ZF0gIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3QgYmUgZmls
dGVyZWQgb3V0DQo+ID4NCj4gPiBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMgY2Fubm90IGJlIGRyb3BwZWQgb3INCj4gPiBmaWx0ZXJlZCBvdXQNCj4gPg0KPiA+
IC4uLg0KPiA+ID4gVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBtaWdodCBiZSB3b3J0
aCB0d2Vha2luZyBhIGNvdXBsZQ0KPiA+ID4gd29yZHMgdG8gYWxsb3cgZm9yIGhlYWQtb2YtbGlu
ZSBwbGFjZW1lbnQgb2YNCj4gPiA+ICJzdWJzY3JpcHRpb24tc3VzcGVuZGVkIi4NCj4gPiA+DQo+
ID4gPiAgICAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIHF1ZXVlZCBmb3Igc2VuZGluZyBhZnRl
ciB0aGUgaXNzdWFuY2Ugb2YNCj4gPiA+ICAgIHRoaXMNCj4gPiA+ICAgIHN1YnNjcmlwdGlvbiBz
dGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQo+ID4gPg0KPiA+ID4g
QXJlIHlvdSBnb29kIHdpdGggdGhpcyBzdWdnZXN0ZWQgY2hhbmdlPw0KPiA+ID4NCj4gPiA+IE5v
dCBzdXJlIC0tIGl0IG5lZWRzIHRvIGJlIGNsZWFyIHRoYXQgc3Vic2NyaXB0aW9uLXN1c3BlbmRl
ZCBpcyB0aGUNCj4gPiA+IGxhc3QgZXZlbnQgc2VudCBiZWZvcmUgc3VzcGVuZGluZyBhbmQgc3Vi
c2NyaXB0aW9uLXJlc3VtZWQgaXMgdGhlDQo+ID4gPiBmaXJzdCBldmVudCBzZW50IGFmdGVyIHRy
YW5zaXRpb24gZnJvbSBzdXNwZW5kZWQgdG8gYWN0aXZlLg0KPiA+ID4gVGhlIG5leHQgZXZlbnQg
Y291bGQgYWxzbyBiZSBzdWJzY3JpcHRpb24tdGVybWluYXRlZC4NCj4gPg0KPiA+IEkgZG8gdGhp
bmsgdGhpcyBwb3NzaWJpbGl0eSBpcyBjb3ZlcmVkIGluIHRoZSB0ZXh0LiAgRm9yIFNlY3Rpb24g
Mi43LjQNCj4gPiBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIHRoZSBjdXJyZW50IHRleHQgaXM6DQo+
ID4NCj4gPiAiTm8gZnVydGhlciBub3RpZmljYXRpb24gd2lsbCBiZSBzZW50IHVudGlsIHRoZSBz
dWJzY3JpcHRpb24gcmVzdW1lcw0KPiA+IG9yIGlzIHRlcm1pbmF0ZWQuIg0KPiA+DQo+ID4gQW5k
IFNlY3Rpb24gMi43LjUgc3Vic2NyaXB0aW9uLXJlc3VtZWQgc2F5cyI6DQo+ID4gIlN1YnNjcmli
ZWQgZXZlbnQgcmVjb3JkcyBnZW5lcmF0ZWQgYWZ0ZXIgdGhlIGlzc3VhbmNlIG9mIHRoaXMNCj4g
PiBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNlbnQu
Ig0KPiA+DQo+ID4gQmFzZWQgb24gdGhlIGRpc2N1c3Npb24sIEkgY2FuIG1ha2UgaXQ6DQo+ID4N
Cj4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGFyZSBhZ2FpbiBwZXJtaXR0ZWQgdG8gYmUg
c2VudCBmb2xsb3dpbmcNCj4gPiB0aGlzIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9uLiINCj4gPg0KPiA+IElzIHRoaXMgc3VmZmljaWVudCBmb3IgeW91Pw0KPiA+DQo+ID4g
Li4uDQo+ID4gPiA+IEk0KSBzZWMgMi40LjY6IFJQQyBGYWlsdXJlcw0KPiA+ID4gPiAgIC0tIGNv
bmNlcm4gYWJvdXQgYSBzdWJzY3JpcHRpb24tc3BlY2lmaWMgZXJyb3IgcmVwb3J0aW5nIHN5c3Rl
bQ0KPiA+ID4gPiAgICAgIG11c3QgbWFrZSBzdXJlIHByb3RvY29sIGVycm9yIHJlcG9ydGluZyBz
eXN0ZW0gaXMgdXNlZA0KPiA+ID4gPiBjb3JyZWN0bHkNCj4gPiA+DQo+ID4gPiBZZXMuICBXZSBo
YXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdpdGggdGhlIGVtYmVkZGVkIE5FVENPTkYN
Cj4gPiA+IGFuZCBSRVNUQ09ORiBtZWNoYW5pc21zLiAgVGhlcmUgaXMgbXVjaCBhZGRpdGlvbmFs
IGluZm9ybWF0aW9uIGluDQo+ID4gPiB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBoZXJlLg0KPiA+ID4N
Cj4gPiA+ID4gICAtLSBUaGUgZXJyb3ItdGFnIHZhbHVlIG5lZWRzIHRvIGJlIGlkZW50aWZpZWQg
Zm9yIGVhY2ggJ3JlYXNvbicNCj4gPiA+ID4gaWRlbnRpdHkNCj4gPiA+DQo+ID4gPiBUaGlzIGlz
IGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMuICBFLmcuLCBzZWUNCj4gPiA+IGRyYWZ0LWll
dGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LQ0KPiA+ID4gbm90aWZpY2F0aW9ucyBTZWN0aW9uIDcN
Cj4gPiA+DQo+ID4gPiBJIGRvIG5vdCBhZ3JlZSB0aGlzIGlzIGEgZ29vZCBpZGVhLg0KPiA+ID4g
RWFjaCBlcnJvciBpZGVudGl0eSBzaG91bGQgc2ltcGx5IHN0YXRlIHRoZSByZXF1aXJlZCAiZXJy
b3ItdGFnIg0KPiA+ID4gdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yLiAgVGhpcyBp
cyBleHBlY3RlZCBvZiBwcm90b2NvbA0KPiA+ID4gb3BlcmF0aW9ucyB0aGF0IGFyZSBhZGRlZCB0
byBORVRDT05GIGFuZCBSRVNUQ09ORi4NCj4gPg0KPiA+IEluIGRyYWZ0LWlldGYtbmV0Y29uZi1u
ZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMsIHNlY3Rpb24gNywgdGhlDQo+ID4gcmVxdWlyZWQg
ImVycm9yLXRhZyIgaXMgaWRlbnRpZmllZCBhcyAib3BlcmF0aW9uLWZhaWxlZCIuICBJZiB3ZQ0K
PiA+IGluc3RlYWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIgaW5mb3JtYXRpb24gaW4gdGhlIFlB
TkcgbW9kZWwsIHRoZW4gd2UNCj4gPiBoYXZlIHRpZWQgdGhlIFlBTkcgbW9kZWwgdG8gdGhlIFJF
U1RDT05GIGFuZCBORVRDT05GIHRyYW5zcG9ydHMuDQo+ID4NCj4gPiA+IEJvdGggTkVUQ09ORiBh
bmQgUkVTVENPTkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciByZXBvcnRpbmcgZGF0YQ0KPiA+ID4g
c3RydWN0dXJlLg0KPiA+ID4gVGhlICJlcnJvci10YWciIGlzIHVzZWQgaW4gYm90aCBvZiB0aGVt
LiAgSU1PIGNsaWVudCBkZXZlbG9wZXJzIGRvDQo+ID4gPiBub3Qgd2FudCBhIGRpZmZlcmVudCBz
ZXQgb2YgZXJyb3IgY29kZXMgZm9yIHRoZSBzYW1lIGVycm9yIGNvbmRpdGlvbnMuDQo+ID4NCj4g
PiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxzbyByZXF1
aXJlcyBhbg0KPiA+ICJlcnJvci10YWciIG5vZGUgb2YgIm9wZXJhdGlvbi1mYWlsZWQiLiAgU28g
d2UgdXNlZCB0aGUgdHJhbnNwb3J0DQo+ID4gZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1v
ZGVsIHRvIHN1cHBvcnQgdGhlIHNhbWUgZXJyb3IgY29kZXMgZm9yDQo+ID4gdGhlIHNhbWUgZXJy
b3IgY29uZGl0aW9ucy4NCj4gPg0KPiA+ID4gSSBhZ3JlZSB0aGF0IHRyYW5zcG9ydCBkcmFmdHMg
Y291bGQgZGVmaW5lIHRoZWlyIG93biBlcnJvcg0KPiA+ID4gaWRlbnRpdGllcywgd2hpY2ggd291
bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGVycm9yLXRhZyB0aGVyZS4NCj4gPiA+DQo+ID4gPg0K
PiA+ID4gPiAgICAyLiAgIm1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8iOiBU
aGlzIE1VU1QgYmUgcmV0dXJuZWQNCj4gPiA+ID4gICAgICAgIHdpdGggdGhlIGxlYWYgInJlYXNv
biIgcG9wdWxhdGVkIGlmIGFuIFJQQyBlcnJvciByZWFzb24gaGFzIG5vdA0KPiA+ID4gPiAgICAg
ICAgYmVlbiBwbGFjZWQgZWxzZXdoZXJlIHdpdGhpbiB0aGUgdHJhbnNwb3J0IHBvcnRpb24gb2Yg
YSBmYWlsZWQNCj4gPiA+ID4gICAgICAgICJtb2RpZnktc3Vic2NyaXB0aW9uIiBSUEMgcmVzcG9u
c2UuICBUaGlzIE1VU1QgYmUgc2VudCBpZg0KPiA+ID4gPiBoaW50cw0KPiA+ID4gPg0KPiA+ID4g
PiAgIC0tIGFsbCAzIHBhcmFncmFwaHMgbGlrZSB0aGlzOyB1bmNsZWFyIHdoYXQgInBsYWNlZCBl
bHNld2hlcmUiDQo+ID4gPiA+ICAgICAgIHRleHQgbWVhbnM7IG5vdCBhcHByb3ByaWF0ZSBmb3Ig
TVVTVDsNCj4gPiA+DQo+ID4gPiBJbnN0ZWFkIG9mICJwbGFjZWQgZWxzZXdoZXJlIiwgaG93IGFi
b3V0OiAicGxhY2VkIGluIHN1YnNjcmlwdGlvbg0KPiA+ID4gdHJhbnNwb3J0IGRvY3VtZW50IGRl
ZmluZWQgb2JqZWN0Ii4gIFdvdWxkIHRoaXMgYmUgc3VmZmljaWVudD8NCj4gPiA+DQo+ID4gPiBO
byAtLSBORVRDT05GIGFuZCBSRVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciByZXBvcnRp
bmcuDQo+ID4gPiBUaGUgc2VydmVyIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRp
bmcgbXVzdCBiZSBkb2N1bWVudGVkLg0KPiA+ID4NCj4gPiA+IEkgYWdyZWUgd2l0aCB0aGUgZm9s
bG93aW5nIGFwcHJvYWNoOg0KPiA+ID4gICAtIGVhY2ggb3BlcmF0aW9uIE1VU1QgaWRlbnRpZnkg
dGhlIGVycm9yLXRhZ3MgdGhhdCBhcmUgZXhwZWN0ZWQgZm9yDQo+ID4gPiAgICAgdmFyaW91cyBl
cnJvciBjb25kaXRpb25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMgNjI0MSkNCj4gPiA+ICAgLSB0
aGUgc2VydmVyIE1VU1QgcmV0dXJuIHRoZSBzcGVjaWZpZWQgZXJyb3ItdGFncy4gSWYgYSBjb25k
aXRpb24gbm90DQo+ID4gPiAgIC0gZXhwbGljaXRseQ0KPiA+ID4gICAgIGRlZmluZWQgdGhlbiB0
aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlhdGUgZXJyb3ItdGFnIGZyb20gUkZDDQo+
ID4gPiAgICAgNjI0MQ0KPiA+ID4gIC0gdGhlIHNlcnZlciBNQVkgaW5jbHVkZSB0aGUgc3BlY2lm
aWVkIHJjOnlhbmctZGF0YSBpbiB0aGUNCj4gPiA+IDxlcnJvci1pbmZvPg0KPiA+ID4gIC0gZGF0
YQ0KPiA+ID4gc3RydWN0dXJlDQo+ID4gPiAgLSB0aGUgc2VydmVyIE1VU1QgdXNlIHRoZSBhcHBy
b3ByaWF0ZSByYzp5YW5nLWRhdGEgdG8gcmVwb3J0IGhpbnRzDQo+ID4gPiAgLSBmb3IgcHJvdG9j
b2xzIG90aGVyIHRoYW4gTkVUQ09ORiBhbmQgUkVTVENPTkYsIHRoZXkgY2FuIG1hcA0KPiA+ID4g
ZXJyb3ItdGFnDQo+ID4gPiAgLSBvcg0KPiA+ID4gaWdub3JlIGl0LA0KPiA+ID4gICAgYnV0IHRo
ZSBkb2N1bWVudCBkZWZpbmluZyB0aGUgcHJvdG9jb2wgb3BlcmF0aW9uIE1VU1QgcHJvdmlkZQ0K
PiA+DQo+ID4gRnVuY3Rpb25hbGx5LCBldmVyeXRoaW5nIHlvdSBhc2sgZm9yIGlzIGZ1bGx5IGNv
dmVyZWQgd2hlbiB5b3UgaW5jbHVkZQ0KPiA+IGNvbnNpZGVyIGRyYWZ0LWlldGYtbmV0Y29uZi1u
ZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgKHNlY3Rpb24gNykNCj4gPiBhbmQgZHJhZnQtaWV0
Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIChzZWN0aW9uIDMuMykuDQo+ID4NCj4gPiBNeSByZWFk
IG9mIHRoZSBpc3N1ZSBpcyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QgYmUgc3Bl
Y2lmaWVkDQo+ID4gaW4gdGhlIFlBTkcgbW9kZWwuICBJIGJlbGlldmUgdGhhdCAiZXJyb3ItdGFn
IiBzaG91bGRuJ3QgYmUgaW4gdGhlDQo+ID4gWUFORyBtb2RlbCBiZWNhdXNlIHRoYXQgd291bGQg
dGllIHRoZSBtb2RlbCB0byBhIHRyYW5zcG9ydCB0eXBlLg0KPiA+DQo+ID4gQW55IHRob3VnaHRz
IG9uIGhvdyB3ZSBtaWdodCBjbG9zZSB0aGlzPyAgSWYgYWJzb2x1dGVseSByZXF1aXJlZCBJDQo+
ID4gY291bGQgcGxhY2UgYSBuZXcgY29tbWVudCBsaW5lIGluIHRoZSBZQU5HIG1vZGVsIHVuZGVy
DQo+ID4gLyogSWRlbnRpdGllcyBmb3IgUlBDIGFuZCBOb3RpZmljYXRpb24gZXJyb3JzICovDQo+
ID4NCj4gPiBUaGUgY29tbWVudCB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZToNCj4gPiAvKiBXaGVu
IHVzZWQgd2l0aCBORVRDT05GIGFuZCBSRVNUQ09ORiBSUENzOg0KPiA+ICAgICAiZXJyb3ItdHlw
ZSIgbm9kZSB0byBiZSB1c2VkIGlzICJhcHBsaWNhdGlvbiINCj4gPiAgICAgICJlcnJvci10YWci
IG11c3QgYmUgIm9wZXJhdGlvbi1mYWlsZWQiLiAgKi8NCj4gPg0KPiA+IFRoaXMgc2VlbXMgaW5j
b25ncnVvdXMuICBKdXN0IHRocm93aW5nIGl0IG91dCBhcyBhIHN1Z2dlc3Rpb24uDQo+ID4NCj4g
PiA+IEluIGFueSBjYXNlLCB0aGUgLXYyMSB3b3JkaW5nIHJlc3VsdHMgZnJvbSB0aGUgYXR0ZW1w
dGVkIGJhbGFuY2luZw0KPiA+ID4gdGhlIFdHIHJlcXVlc3RzIGZvcjoNCj4gPiA+ICogbWVyZ2lu
ZyB3aXRoIHRyYW5zcG9ydCBwcm90b2NvbCBlcnJvciBtZWNoYW5pc21zDQo+ID4gPiAqIFdHIGxl
YWRlcnNoaXAgZ3VpZGFuY2UgdG8gcHJvdmlkZSByZXF1aXJlbWVudHMgZm9yIHRyYW5zcG9ydA0K
PiA+ID4gZG9jdW1lbnRzDQo+ID4gPg0KPiA+ID4gPiAgICAgIE9ubHkgMyBmaWVsZHMgc2VlbQ0K
PiA+ID4gPiAgICAgICB0byBiZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJvci1hcHAtdGFnLCBl
cnJvci1pbmZvKS4NCj4gPiA+ID4gICAgICAgUHJvdGNvbCBvcGVyYXRpb25zIGFyZSBleHBlY3Rl
ZCB0byBkb2N1bWVudCBzZXJ2ZXIgcmVxdWlyZW1lbnRzDQo+ID4gPiA+ICAgICAgIGZvciB0aGVz
ZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS4gIE9ubHkgdGhlIGVycm9yLXRhZw0KPiA+ID4gPiAg
ICAgICBpcyBtYW5kYXRvcnktdG8tdXNlLg0KPiA+ID4NCj4gPiA+IEhvcGVmdWxseSB0aGVzZSBh
cmUgY292ZXJlZCBzdWZmaWNpZW50bHkgd2hlbiB0aGlzIGRvY3VtZW50IGlzDQo+ID4gPiBjb3Vw
bGVkIHdpdGggdGhlIE5FVENPTkYgYW5kIFJFU1RDT05GIE5vdGlmIHRyYW5zcG9ydCBkb2N1bWVu
dHMuDQo+ID4gPiBGb3Igb3RoZXIgdHJhbnNwb3J0cywgdGhlIHRhZ3MgeW91IGlkZW50aWZ5IGFi
b3V0IHdvdWxkIG5vdCBiZQ0KPiA+ID4gYXBwbGljYWJsZS4NCj4gPiA+DQo+ID4gPiA+ICAgLS0g
dGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBleHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sIGl0IGlz
IG5vdA0KPiA+ID4gPiAgICAgIHBvc3NpYmxlIGZvciA8a2lsbC1zdWJzY3JpcHRpb24+IHRvIGZh
aWwgd2l0aCBhbg0KPiA+ID4gPiAgICAgICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsN
Cj4gPiA+DQo+ID4gPiBUaGlzIGlzIHRoZSBpbnRlbnQgb2YgdGhlIGJhc2Ugc3BlY2lmaWNhdGlv
biwgZS5nLiwgd2UgZG9uJ3QgYmVsaWV2ZQ0KPiA+ID4gYQ0KPiA+ID4ga2lsbC0NCj4gPiA+IHN1
YnNjcmlwdGlvbiBzaG91bGQgZmFpbCBmb3IgYW4gaW5zdWZmaWNpZW50LXJlc291cmNlcyByZWFz
b24uICBCdXQNCj4gPiA+IHZlbmRvcnMgbWlnaHQgZGVzaXJlIG1vcmUgc3BlY2lmaWNpdHkuICBB
cyBhIHJlc3VsdCBpcyBjZXJ0YWlubHkgb2sNCj4gPiA+IGZvciB2ZW5kb3IgaW1wbGVtZW50YXRp
b25zIHRvIGFkZCBuZXcgZXJyb3IgaWRlbnRpdGllcy4NCj4gPiA+DQo+ID4gPiBJTU8gYW55dGhp
bmcgY2FuIGZhaWwgZm9yIGluc3VmZmljaWVudCByZXNvdXJjZXMuIFRoYXQgaXMgdmVyeQ0KPiA+
ID4gaW1wbGVtZW50YXRpb24tDQo+ID4gPiBzcGVjaWZpYy4NCj4gPg0KPiA+IEluc3RlYWQgb2Yg
aW1wbGVtZW50YXRpb24gc3BlY2lmaWMgSSB3b3VsZCBjYWxsIGl0IGFwcGxpY2F0aW9uDQo+ID4g
c3BlY2lmaWMuICBSaWdodCBub3cgd2UgZG9uJ3QgaGF2ZSBhIGNhdGNoLWFsbCBlcnJvci1pZGVu
dGl0eSBvZg0KPiA+ICdvdGhlci1lcnJvcicuICBXZSBwcmVmZXJyZWQgdGhhdCBlcnJvciBjb25k
aXRpb25zIGJleW9uZCB0aGUgY3VycmVudA0KPiA+IG9uZXMgbGlzdGVkIGNvdWxkIGJlIGluY2x1
ZGVkIGJ5IHZlbmRvcnMgYXMgbmVlZGVkLiAgRnVydGhlcg0KPiA+IGRlcGxveW1lbnQgZXhwZXJp
ZW5jZSBjb3VsZCByZXN1bHQgaW4gbmV3IGVycm9yIGlkZW50aXRpZXMgc3VyZmFjaW5nDQo+ID4g
Zm9yIHN0YW5kYXJkaXphdGlvbiBzaG91bGQgdGhpcyBkcmFmdCBjYXRjaCBvbi4NCj4gPg0KPiA+
ID4gPiAgICAgIERvIG5vdCBhZ3JlZSB0aGF0IHNjb3BpbmcgZWFjaA0KPiA+ID4gPiAgICAgIGlk
ZW50aXR5IHRvIHNwZWNpZmljIFJQQyBvcGVyYXRpb25zIGlzIGEgZ29vZCBpZGVhLg0KPiA+ID4N
Cj4gPiA+IFRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkgd2FzIG5vdCB0aGUgYXV0aG9yJ3Mgb3Jp
Z2luYWwgcGxhbnMuICBOb3INCj4gPiA+IHdhcyB0aGlzIGxldmVsIG9mIHNwZWNpZmljaXR5IHBh
cnQgb2YgZWFybGllciBkcmFmdCB2ZXJzaW9ucyB1cA0KPiA+ID4gdGhyb3VnaCAtdjA4LiAgSG93
ZXZlciBtZW1iZXJzIG9mIHRoZSBXRyBtYWRlIGl0IGNsZWFyIHRoYXQgc3VjaA0KPiA+ID4gc3Bl
Y2lmaWNpdHkgd2FzIG5lY2Vzc2FyeSBmb3IgZHJhZnQgcHJvZ3Jlc3Npb24uDQo+ID4gPg0KPiA+
ID4gPiAgIC0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9y
IGNvbmZpZ3VyZWQNCj4gPiA+ID4gICAgICBzdWJzY3JpcHRpb25zIHdoZW4gPGVkaXQtY29uZmln
PiBpcyB0aGUgUlBDIHRoYXQgaGFzIHRoZSBlcnJvcj8NCj4gPiA+ID4gICAgICBIb3cgYXJlIHRo
ZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvciBlZGl0LWNvbmZpZyBvciBjb21taXQgZXJyb3Jz
Pw0KPiA+ID4NCj4gPiA+IE5vbmUgb2YgdGhlc2UgeWFuZy1kYXRhIHN0cnVjdHVyZXMgYXJlIHNw
ZWNpZmllZCBmb3IgdXNlIHdpdGgNCj4gPiA+IDxlZGl0LWNvbmZpZz4gb3BlcmF0aW9ucy4gIEZv
ciA8ZWRpdC1jb25maWc+LCB0aGUgY2hhbmdlIHRvIGENCj4gPiA+IGNvbmZpZ3VyZWQgc3Vic2Ny
aXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZiBpdCB3ZXJlDQo+ID4g
PiBzZW1hbnRpY2FsbHkgdmFsaWQuICBBdCB0aGlzIHBvaW50IHRoZSBzdWJzY3JpcHRpb24gZW50
ZXJzIHRoZQ0KPiA+ID4gW2V2YWx1YXRlXSBwb2ludHMgb2YgRmlndXJlIDguICBJc3N1ZXMgZnJv
bSB0aGlzIHBvaW50IG91dCB3b3VsZCBiZQ0KPiA+ID4gcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBz
cGVjaWZpYyBjb25zdHJ1Y3Qgc3VjaCBhcyBTWVNMT0cuDQo+ID4gPg0KPiA+ID4gU28gaG93IGFy
ZSBoaW50cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZCBzdWJzY3JpcHRpb25zPw0KPiA+DQo+ID4g
VGhlcmUgaXMgbm90aGluZyBpbiB0aGUgc3BlY2lmaWNhdGlvbiB3aGljaCByZXF1aXJlcyB0aGlz
LiAgQW4NCj4gPiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBjaG9vc2UgdG8gcGxhY2UgdGhlc2UgaW4g
c29tZSBmb3JtIG9mIFNZU0xPRy4NCj4gPiAuLi4NCj4gPiA+ID4gSTYpIHNlYyAyLjUsIHBhcmEg
MzoNCj4gPiA+ID4NCj4gPiA+ID4gICAgT24gYSByZWNlaXZlciBvZiBhDQo+ID4gPiA+ICAgIGNv
bmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMg
aXMNCj4gPiA+ID4gICAgb3B0aW9uYWwgZXhjZXB0IHdoZXJlIHJlcGxheWluZyBtaXNzZWQgZXZl
bnQgcmVjb3JkcyBpcyByZXF1aXJlZC4NCj4gPiA+ID4NCj4gPiA+ID4gICAtLSBjb25mdXNpbmcg
YmVjYXVzZSB0ZXh0IGluIDEuMzoNCj4gPiA+ID4gICAgICBOb3RlIHRoYXQgdGhlcmUgaXMgbm8g
bWl4aW5nLWFuZC1tYXRjaGluZyBvZiBkeW5hbWljIGFuZCBjb25maWd1cmVkDQo+ID4gPiA+ICAg
ICAgb3BlcmF0aW9ucyBvbiBhIHNpbmdsZSBzdWJzY3JpcHRpb24uICBTcGVjaWZpY2FsbHksIGEg
Y29uZmlndXJlZA0KPiA+ID4gPiAgIC0tIGNsYXJpZnkgdGhlIHJlY2VpdmVyIG1heSBoYXZlIG11
bHRpcGxlIHN1YnNjcmlwdGlvbnMgaGVyZQ0KPiA+ID4gPiAgIC0tIG5vdCBjbGVhciB3aGF0ICJl
eGNlcHQgd2hlcmUgcmVwbGF5aW5nLi4uIiB0ZXh0IG1lYW5zDQo+ID4gPg0KPiA+ID4gSG93IGFi
b3V0IHRoZSBmb2xsb3dpbmcgdHdlYWs6DQo+ID4gPg0KPiA+ID4gIk9uIGEgcmVjZWl2ZXIgb2Yg
YSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3IgZHluYW1pYw0KPiA+ID4gc3Vi
c2NyaXB0aW9ucyBpcyBvcHRpb25hbC4gIEhvd2V2ZXIgaWYgcmVwbGF5aW5nIG1pc3NlZCBldmVu
dA0KPiA+ID4gcmVjb3JkcyBpcyByZXF1aXJlZCBmb3IgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlv
biwgc3VwcG9ydCBmb3INCj4gPiA+IGR5bmFtaWMgc3Vic2NyaXB0aW9uIGlzIGhpZ2hseSByZWNv
bW1lbmRlZC4gIEluIHRoaXMgY2FzZSwgYQ0KPiA+ID4gc2VwYXJhdGUgZHluYW1pYyBzdWJzY3Jp
cHRpb24gY2FuIGJlIGVzdGFibGlzaGVkIHRvIHJldHJhbnNtaXQgdGhlDQo+ID4gPiBtaXNzaW5n
IGV2ZW50IHJlY29yZHMuIg0KPiA+ID4NCj4gPiA+IE9LDQo+ID4NCj4gPiBDaGFuZ2UgbWFkZS4N
Cj4gPg0KPiA+ID4gPiBJNykgbGVhZiBzdHJlYW0teHBhdGgtZmlsdGVyOiBbbXVsdGlwbGUgdXNl
c10NCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgICBUaGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0
ZWQgaW4gdGhlIGZvbGxvd2luZyBYUGF0aCBjb250ZXh0Og0KPiA+ID4gPg0KPiA+ID4gPiAgICAg
ICAgICAgICAgbyAgIFRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBpcyB0aGUgc2V0
IG9mIHByZWZpeA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgIGFuZCBuYW1lc3BhY2UgcGFpcnMg
Zm9yIGFsbCBZQU5HIG1vZHVsZXMgaW1wbGVtZW50ZWQNCj4gPiA+ID4gICAgICAgICAgICAgICAg
ICBieSB0aGUgc2VydmVyLCB3aGVyZSB0aGUgcHJlZml4IGlzIHRoZSBZQU5HIG1vZHVsZQ0KPiA+
ID4gPiAgICAgICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVmaW5l
ZCBieSB0aGUNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJyBzdGF0ZW1lbnQg
aW4gdGhlIFlBTkcgbW9kdWxlLg0KPiA+ID4gPg0KPiA+ID4gPiAgIC0tIFRoaXMgcHJlZml4IHBy
b2Nlc3NpbmcgaXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZSBpbiBORVRDT05GDQo+ID4gPiA+ICAg
ICAgb3IgUkVTVENPTkYuICBJTU8gYSBiYWQgcHJlY2VkZW50LiAgT25seSB0aGUgWE1MIHByZWZp
eGVzDQo+ID4gPiA+ICAgICAgc2hvdWxkIGJlIHJlcXVpcmVkIGZvciBwcm9jZXNzaW5nIG9mIFhN
TCBlbmNvZGluZy4gIFlBTkcNCj4gPiA+ID4gICAgICBtb2R1bGUgcHJlZml4ZXMgYXJlIG5vdCBy
ZXF1aXJlZCB0byBiZSB1bmlxdWUsIHVubGlrZQ0KPiA+ID4gPiAgICAgIHRoZSBwcmVmaXggbWFw
cGluZ3MgaW4gWE1MDQo+ID4gPg0KPiA+ID4gVGhpcyB0ZXh0IHdhcyBwcm9wb3NlZCBieSBNYXJ0
aW4gYXMgYSByZXN1bHQgb2YgdGhlICJ4cGF0aA0KPiA+ID4gZXhwcmVzc2lvbnMgaW4gSlNPTiIN
Cj4gPiA+IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9ELg0KPiA+ID4NCj4gPiA+IEkgYW0g
aGFwcHkgdG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4gIEkgd2Fz
DQo+ID4gPiBob3BpbmcgdGhhdCB0aGUgc3VnZ2VzdGVkIHRleHQgd2FzIHN1ZmZpY2llbnQgZm9y
IG5vdy4gIEtlbnQgaGFzDQo+ID4gPiBhbHJlYWR5IGluY29ycG9yYXRlZCB0aGlzIGFzIGFuIGlz
c3VlIGZvciB5YW5nLW5leHQNCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXRtb2Qtd2cveWFu
Zy1uZXh0L2lzc3Vlcy81NQ0KPiA+ID4gU28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5vIGZpbmFsIHBy
ZWNlZGVudCBiZWluZyBjbGFpbWVkLg0KPiA+ID4NCj4gPiA+IEkgZG8gbm90IGFncmVlIHRoYXQg
dGhpcyBZQU5HIG1vZHVsZSBzaG91bGQgZGVmaW5lIGEgbmV3IHdheSB0bw0KPiA+ID4gZW5jb2Rl
IFhQYXRoIGludG8gWE1MIGluc3RhbmNlIGRvY3VtZW50cy4gVGhpcyB3aWxsIHJlcXVpcmUNCj4g
PiA+IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gc2VydmVyIGltcGxlbWVudGF0aW9ucy4gIFlBTkcg
bW9kdWxlIHByZWZpeGVzDQo+ID4gPiBhcmUgbm90IGV2ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVl
IHNvIHRoZSBzZXQgb2YgcHJlZml4ZXMgdXNlZCBieQ0KPiA+ID4gdGhlIHNlcnZlciBpbiBYTUwg
aW5zdGFuY2UgZG9jdW1lbnRzIG1heSBiZSBkaWZmZXJlbnQsIHNpbmNlIGl0IG11c3QNCj4gPiA+
IGJlIHVuaXF1ZS4NCj4gPg0KPiA+IFNlZSBuZXh0IG5vdGUNCj4gPg0KPiA+ID4gPiAgIC0tIE5N
REEgYWxsb3dzIHRoZSBzYW1lIG1vZHVsZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUgbW9kdWxlLXNl
dHMNCj4gPiA+ID4gICAgICBhbmQgZGlmZmVyZW50IGluIGVhY2ggZGF0YXN0b3JlLiBUaGlzIHRl
eHQgYWJvdXQgImltcGxlbWVudGVkIGJ5DQo+ID4gPiA+ICAgICAgdGhlIHNlcnZlciIgZG9lcyBu
b3Qgd29yayBmb3IgTk1EQQ0KPiA+ID4NCj4gPiA+IEkgYW0gaGFwcHkgdG8gYWRvcHQgd2hhdGV2
ZXIgdGV4dCBtZWV0cyBZQU5HIGRvY3RvciBhcHByb3ZhbC4gIENhbg0KPiA+ID4geW91IHN1Z2dl
c3Q/DQo+ID4gPg0KPiA+ID4NCj4gPiA+IFJlbW92ZSBhbGwgdGV4dCBhYm91dCBZQU5HIHByZWZp
eGVzIGFuZCBjb250aW51ZSB1c2luZyBYTUwgZW5jb2RpbmcNCj4gPiA+IHdpdGhvdXQgbW9kaWZp
Y2F0aW9uDQo+ID4NCj4gPiBBcyBhIGRpZmZlcmVudCBZQU5HIGRvY3RvciBoYXMgcmVxdWlyZWQg
dGhlIGN1cnJlbnQgdGV4dCBtb2RpZmljYXRpb24sDQo+ID4gSSBiZWxpZXZlIHRoaXMgaXMgYSBi
bG9ja2VyLiAgV2hhdCBpcyB0aGUgcHJvY2VzcyBmb3IgWUFORyBtb2RlbA0KPiA+IHJldmlld3Mg
aW4gc3VjaCBhIGNhc2UuICBJIGFtIGhhcHB5IHRvIGFjY2VwdCB3aGF0ZXZlciBoZXJlLiAgQW55
DQo+ID4gc3VnZ2VzdGlvbnMgb24gbmV4dCBzdGVwcz8NCj4gPg0KPiA+IC4uLg0KPiA+ID4gPiAg
IC0tIHRoZXJlIHNob3VsZCBiZSBhbiBleGFtcGxlIG9mIGEgY29uZmlndXJhYmxlIGVuY29kaW5n
DQo+ID4gPiA+IHByb3ZpZGVkDQo+ID4gPg0KPiA+ID4gSSBhbSBoYXBweSB0byBlbmhhbmNlIHRo
ZSBkZWZpbml0aW9uIFlBTkcgbW9kZWwncyBpZGVudGl0eQ0KPiA+ID4gZGVmaW5pdGlvbiBvZiAi
Y29uZmlndXJhYmxlLWVuY29kaW5nIi4gIEkgY291bGQgZG8gdGhpcyBieSBhZGRpbmcNCj4gPiA+
IHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCB0ZXh0IHRvIHRoZSBkZXNjcmlwdGlvbjogIkFuIGV4
YW1wbGUgb2YgYQ0KPiA+ID4gY29uZmlndXJhYmxlIGVuY29kaW5nIG1pZ2h0IGJlIGEgbmV3IGlk
ZW50aXR5IHN1Y2ggYXMgJ2VuY29kZS1jYm9yJy4NCj4gPiA+IFN1Y2ggYW4gaWRlbnRpdHkgY291
bGQgdXNlDQo+ID4gPiAnY29uZmlndXJhYmxlLQ0KPiA+ID4gZW5jb2RpbmcnIGFzIGl0cyBiYXNl
LiAgVGhpcyB3b3VsZCBhbGxvdyBhIGR5bmFtaWMgc3Vic2NyaXB0aW9uDQo+ID4gPiBlbmNvZGVk
IGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1ZXN0IG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBiZQ0K
PiA+ID4gZW5jb2RlZCB2aWEgQ0JPUiBbUkZDLSA3MDQ5XS4gIEZ1cnRoZXIgZGV0YWlscyBmb3Ig
YW55IHNwZWNpZmljDQo+ID4gPiBjb25maWd1cmFibGUgZW5jb2Rpbmcgd291bGQgYmUgZXhwbG9y
ZWQgaW4gYSB0cmFuc3BvcnQgZG9jdW1lbnQNCj4gPiA+IGJhc2VkIG9uIHRoaXMgc3BlY2lmaWNh
dGlvbi4iICBEb2VzIHRoaXMgbWVldCB5b3VyIGFzaz8NCj4gPiA+DQo+ID4gPg0KPiA+ID4gT0sN
Cj4gPg0KPiA+IEFkZGVkDQo+ID4NCj4gPiA+ID4gSTExKSBleHRlbnNpb24gc3Vic2NyaXB0aW9u
LXN0YXRlLW5vdGlmaWNhdGlvbiB7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICBUaGlzIHN0YXRl
bWVudCBpcyBub3QgZm9yIHVzZQ0KPiA+ID4gPiAgICAgICAgb3V0c2lkZSBvZiB0aGlzIFlBTkcg
bW9kdWxlLiI7DQo+ID4gPiA+DQo+ID4gPiA+ICAgLS0gdGhpcyB0ZXh0IHNob3VsZCBiZSByZW1v
dmVkLiBUaGVyZSBpcyBubyB2YWx1ZSBpbiBsaW1pdGluZw0KPiA+ID4gPiAgICAgIHRoZSBzY29w
ZSBvZiB0aGlzIGV4dGVuc2lvbi4gIEl0IHByZXZlbnRzIGV2ZW4gdGhpcyBXRyBmcm9tDQo+ID4g
PiA+ICAgICAgY3JlYXRpbmcgYSBtb2R1bGUgdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gYWdhaW4u
DQo+ID4gPg0KPiA+ID4gVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRl
IGluIHRoZSBXRy4gIFRoZSBhdXRob3JzDQo+ID4gPiBkaWQgbm90IHdhbnQgdGhpcyByZXN0cmlj
dGlvbiBlaXRoZXIuDQo+ID4gPg0KPiA+ID4gVG8gYmUgYWxsb3dlZCB0byBwcm9ncmVzcyB0aGUg
ZG9jdW1lbnQsIHdlIGluc2VydGVkIHRoZSBkb2N1bWVudC4NCj4gPiA+IElmIHRoaXMgcmVhbGx5
IGlzIG1hbmRhdG9yeS10by1yZW1vdmUgZnJvbSBhIFlBTkcgZG9jdG9yDQo+ID4gPiBwb2ludC1v
Zi12aWV3LCB3aGF0IGlzIHRoZSBwcm9jZXNzIGZvciBxdWljayBjbG9zdXJlIG9uIHRoaXMgaXNz
dWUNCj4gPiA+IGJldHdlZW4gV0cgbGVhZGVyc2hpcCBhbmQgdGhlIFlBTkcgZG9jdG9ycz8NCj4g
PiA+DQo+ID4gPg0KPiA+ID4gVGhlIFlBTkcgbGFuZ3VhZ2UgbWFrZXMgbm8gcmVzdHJpY3Rpb25z
IGFib3V0IGV4cG9ydGluZyBzdGF0ZW1lbnRzLg0KPiA+ID4gSSBndWVzcyBJIG1pc3NlZCB0aGF0
IGRlYmF0ZSBzbyBJIHdpbGwganVzdCBzYXkgT0sgYW5kIHdvbmRlciB3aGF0DQo+ID4gPiBwcm9i
bGVtIHRoaXMgaXMgc3VwcG9zZWQgdG8gc29sdmUuIEkgZ3Vlc3MgdGhlIFdHIHdhbnRzIHRvIGdp
dmUgWUFORw0KPiA+ID4gRG9jdG9ycyBtb3JlIHRoaW5ncyB0byBjaGVjay4gKFRoaXMgaXMgd2hh
dCB3ZSBjYWxsZWQgYSBDTFIgaW4NCj4gPiA+IFNOTVAtbGFuZCA7LSkNCj4gPg0KPiA+IFRoYW5r
cy4gIE5vIGFjdGlvbiB0YWtlbi4NCj4gPg0KPiA+ID4gPiBJMTMpICAgbm90aWZpY2F0aW9uIHN1
YnNjcmlwdGlvbi1zdGFydGVkIHsNCj4gPiA+ID4gICAgIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1u
b3RpZmljYXRpb247DQo+ID4gPiA+ICAgICBpZi1mZWF0dXJlICJjb25maWd1cmVkIjsNCj4gPiA+
ID4gICAgIGRlc2NyaXB0aW9uDQo+ID4gPiA+ICAgICAgICJUaGlzIG5vdGlmaWNhdGlvbiBpbmRp
Y2F0ZXMgdGhhdCBhIHN1YnNjcmlwdGlvbiBoYXMgc3RhcnRlZCBhbmQNCj4gPiA+ID4gICAgICAg
ICBub3RpZmljYXRpb25zIGFyZSBiZWdpbm5pbmcgdG8gYmUgc2VudC4gVGhpcyBub3RpZmljYXRp
b24gc2hhbGwNCj4gPiA+ID4gICAgICAgIG9ubHkgYmUgc2VudCB0byByZWNlaXZlcnMgb2YgYSBz
dWJzY3JpcHRpb247IGl0IGRvZXMgbm90DQo+ID4gPiA+ICAgICAgICBjb25zdGl0dXRlIGEgZ2Vu
ZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlvbi4iOw0KPiA+ID4gPg0KPiA+ID4gPiAgIC0tIDJuZCBz
ZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFsbCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvDQo+ID4g
PiA+ICAgICAgcmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBhcnQgaXMgcmVkdW5k
YW50IHNpbmNlDQo+ID4gPiA+ICAgICAgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmlj
YXRpb24gZXh0ZW5zaW9uIGlzIHVzZWQNCj4gPiA+DQo+ID4gPiBUaGVyZSBpcyBubyBpc3N1ZSB3
aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNlbnRlbmNlIGNvbXBsZXRlbHkuICBJZg0KPiA+ID4g
SSBkaWQgdGhhdCwgd291bGQgdGhpcyBhZGRyZXNzIHlvdXIgY29uY2Vybj8NCj4gPiA+DQo+ID4g
PiBPSw0KPiA+DQo+ID4gRG9uZQ0KPiA+DQo+ID4gPiA+IEkxNCkgICByYzp5YW5nLWRhdGEgbW9k
aWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyB7DQo+ID4gPiA+DQo+ID4gPiA+ICAg
ICAgIGxlYWYgZmlsdGVyLWZhaWx1cmUtaGludCB7DQo+ID4gPiA+ICAgICAgICAgdHlwZSBzdHJp
bmc7DQo+ID4gPiA+ICAgICAgICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiAgICAgICAgICAgICAi
SW5mb3JtYXRpb24gZGVzY3JpYmluZyB3aGVyZSBhbmQvb3Igd2h5IGEgcHJvdmlkZWQgZmlsdGVy
DQo+ID4gPiA+ICAgICAgICAgICAgICB3YXMgdW5zdXBwb3J0YWJsZSBmb3IgYSBzdWJzY3JpcHRp
b24uIjsNCj4gPiA+ID4gICAgICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgIC0tIHJwYy1lcnJvciBh
bHJlYWR5IGFsbG93cyBtb3JlIHByZWNpc2UgZXJyb3IgcmVwb3J0aW5nDQo+ID4gPiA+ICAgICAg
SXQgdXNlcyBlcnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kIGVycm9yLWlu
Zm8NCj4gPiA+ID4gICAgICBleHRlbnNpb25zDQo+ID4gPiA+ICAgICAgdG8gaWRlbnRpZnkgd2hp
Y2ggcGFyYW1ldGVycy9jb25kaXRpb25zIGNhdXNlZCB0aGUgUlBDIHRvIGJlDQo+ID4gPiA+ICAg
ICAgcmVqZWN0ZWQuDQo+ID4gPiA+ICAgICAgVGhpcyBlcnJvciByZXBvcnRpbmcgd2lsbCBjb250
aW51ZSB0byBiZSB1c2VkLCBOb3Qgc3VyZSB0aGlzDQo+ID4gPiA+ICAgICAgZmFpbHVyZS1oaW50
DQo+ID4gPiA+ICAgICAgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBlcmhhcHMgcmVhbC11c2Ug
ZXhhbXBsZSBjYW4gYmUNCj4gPiA+ID4gYWRkZWQNCj4gPiA+DQo+ID4gPiBQZXIgeW91ciB0aG91
Z2h0cyBvbiBycGMtZXJyb3IuLi4gIEZvciBORVRDT05GIGFuZCBSRVNUQ09ORiwgeW91DQo+ID4g
PiBwb2ludCB0byBlcnJvciBzdHJ1Y3R1cmVzIHdoaWNoIGhpc3RvcmljYWxseSBiZWVuIHVzZWQg
d2l0aCB0aG9zZQ0KPiA+ID4gdHJhbnNwb3J0cy4NCj4gPiA+IE9mIGNvdXJzZQ0KPiA+ID4gd2Ug
d2VyZSBsb29raW5nIHRvIGhhdmUgYWxsIHN1YnNjcmlwdGlvbiBoaW50cyBzdXBwb3J0YWJsZSBh
Y3Jvc3MNCj4gPiA+IHRyYW5zcG9ydHMgdmlhIGEgc2luZ2xlIHBvcnRhYmxlIFlBTkcgZGF0YSBz
dHJ1Y3R1cmUuICBTbyB0aGUgdmFsdWUNCj4gPiA+IGlzIHRoYXQgYSBzaW5nbGUgc3RyaW5nIG9i
amVjdCBleGlzdHMgc28gdG8gdHJhbnNwb3J0IHdoYXRldmVyIHRoZQ0KPiA+ID4gdmVuZG9yIHRo
aW5rcyB3b3VsZCBiZSB1c2VmdWwgYXMgYSBoaW50IGluIHRoaXMgY2FzZS4gIEkuZS4sIHRoZXJl
DQo+ID4gPiBoYXMgYmVlbiBubyBhdHRlbXB0IHRvIHN0YW5kYXJkaXplIHRoZSBjb250ZW50cyBv
ZiB0aGlzIHN0cmluZy4gIElmDQo+ID4gPiBvcGVyYXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBh
IGRlc2lyZSBmb3Igc3VjaCBzdHJ1Y3R1cmluZywgdGhpcw0KPiA+ID4gY291bGQgcHJvdmlkZSB0
aGUgYmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZiB0aGlzDQo+ID4gPiBzdGFy
dGluZyBwb2ludC4NCj4gPiA+DQo+ID4gPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENP
TkYgYW5kIFJFU1RDT05GICJoaXN0b3JpYyIgcXVpdGUgeWV0Lg0KPiA+ID4gVGhlcmUgYXJlIG1h
bnkgaW1wbGVtZW50YXRpb25zIHVzaW5nIHRoZSBycGMtZXJyb3IgcmVwb3J0aW5nIHdpdGggbm8N
Cj4gPiA+IGludGVudCB0byByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGVsc2UuDQo+ID4gPg0K
PiA+ID4gSSB3YXMganVzdCBhc2tpbmcgZm9yIGFuIGV4YW1wbGUsIHNpbmNlIEkgaGF2ZSBubyBp
ZGVhIHdoYXQgYW4NCj4gPiA+IGltcGxlbWVudG9yIHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYuDQo+
ID4NCj4gPiBIZXJlIGlzIGFuIGV4YW1wbGUgZnJvbSBvdXIgaW1wbGVtZW50YXRpb24uICBTYXkg
eW91IG1pc3R5cGUgYW4gZXh0cmENCj4gPiAiXCIgdG8gYW4geHBhdGggZmlsdGVyOg0KPiA+IC9p
ZjppbnRlcmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9v
cGVyLXN0YXR1cw0KPiA+IEFzIGEgcmVzdWx0LCB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0byB0aGUg
cHVibGlzaGVyIGlzOg0KPiA+IC9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0i
R2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMNCj4gPg0KPiA+IFdoYXQgd2Ugd291bGQg
cmV0dXJuIGluIHRoZSBmYWlsdXJlLWhpbnQgc3RyaW5nIGlzOg0KPiA+IEludmFsaWQgZXhwcmVz
c2lvbjogb2Zmc2V0KDkpIGluDQo+ID4gJy9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2Vb
bmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMnDQo+ID4NCj4gPiBFcmljDQo+
ID4NCj4gPiA+IEFuZHkNCg==


From nobody Wed Jan 23 10:14:51 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5B7C131251 for <netconf@ietfa.amsl.com>; Wed, 23 Jan 2019 10:14:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 xszVVMyynrYN for <netconf@ietfa.amsl.com>; Wed, 23 Jan 2019 10:14:46 -0800 (PST)
Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) (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 3C1D21315FD for <netconf@ietf.org>; Wed, 23 Jan 2019 09:42:30 -0800 (PST)
Received: by mail-lf1-x143.google.com with SMTP id i26so2253063lfc.0 for <netconf@ietf.org>; Wed, 23 Jan 2019 09:42:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YFjI4vchCr099xfJ513nkOXLbCPqWwqsCkjLb+riHro=; b=wxQHprIWSjHoA0ulGzCslHdQLeA9kRhnU1VnCNUGLjk8PcaaJO2LKhAejXGGro3Zzs R/OecjKZlcP5XWJZEsFGJXa04MxJlLbTdMNQ77dELBifpZznt3Dt4JrVsdxA+ze51r4k QlOOUHcyNLTMBXnfs5j9LVZ7o4pU/CPRtpd/zYxfIkcRD09ofi6ukiYQuLQNAZr2WTSa vLog2YT5tefb/+78pA0W0PdxP4lL1o4dAQmBotwrjhh5nQBepjr+3Q5H23pYDHtzNJKB Bb7d4bRTtpADxDYmg8omUfINbnArD3srEN/AUMUwq4+74DnOU+ZQ/6ebRtCVuynwH24l 48YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YFjI4vchCr099xfJ513nkOXLbCPqWwqsCkjLb+riHro=; b=szzaz+0BTCdBwbd7HA03mkeMBN10W61nPWSavBB/ICYH12+c6Hsmu7oBYFO5PhCPf9 Et3KWXhXS8QAoAXzt8NexxppOmqvBqjKmEgWt4HUyxXB7AxVtqeVxma9bSbZBtzNLqWm mSJTn0TH0WwkV5ZMF1JAjdXE2LUp98GGPr5hSTxMOLp6NdvT3DktzBAmgPJphUNUvYnU CicljIqGRuMSiEevNbmej2l4y4bRBh/+vI2CKk1Tj/lA74rzqTyjHKAk3pesSaswYuDq SERHOynuTwJEb2Qj4UC6IuJP3gahmJdDVToIZiXJQ5KYRZJ6cf3tzHgXwxAnksVzrWUE sULw==
X-Gm-Message-State: AJcUukdbgMCSz9zNooOq/WPJah4lc0btHu5ZSG3b1iSuBEaTuJx30Zhr mGkbfJMqwB3k3ZPwyDadyo6aju/SmqtsqReVJMCS6g==
X-Google-Smtp-Source: ALg8bN7KvXEeF1wOh8EYuPilApM6UxNV/vu26HXxoPmXwQIf9/2DPHFRFZG1gOGf7Nm/GRPT2izEyKVVUsdCp7Y1v1c=
X-Received: by 2002:a19:7352:: with SMTP id o79mr2706075lfc.104.1548265347954;  Wed, 23 Jan 2019 09:42:27 -0800 (PST)
MIME-Version: 1.0
References: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com> <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com> <20190123.093135.970106755262082435.mbj@tail-f.com> <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com>
In-Reply-To: <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 23 Jan 2019 09:42:16 -0800
Message-ID: <CABCOCHSo1Fv3-QWfpNUFHXsZxcWCT=dAWNmekYjs1j=64ndneg@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>,  "netconf@ietf.org" <netconf@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000155ca90580239e9b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/QZ8j8rjeE-EgShT2pCli1zEeJwE>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 18:14:50 -0000

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

On Wed, Jan 23, 2019 at 4:35 AM Eric Voit (evoit) <evoit@cisco.com> wrote:

> > From: Martin Bjorklund, January 23, 2019 3:32 AM
> >
> > Hi,
> >
> > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > Hi Andy,
> > >
> > > Looking at your proposal...  My reading is that it takes the transpor=
t
> > > specific error info contained in
> > > draft-ietf-netconf-netconf-event-notifications section 7, and then
> > > replicates that info within 12 separate description objects of the
> > > transport independent ietf-subscribed-notifications.yang.  The value
> > > you are asserting is that RFCs containing YANG models containing the
> > > rpc-stmt have traditionally document the mandatory-to-implement
> > > "error-tag" field within the model.  And presumably you are concerned
> > > that developers should not have to look elsewhere for this
> > > information.
> >
> > I think that maybe there are two separate issues here.
> >
> > The first issue is that for each error identity defined, there needs to
> be a
> > mapping to the protocol-specific error handling.  Andy suggests that
> this info is
> > added to this document, but currently this information is available in
> the
> > protcol-mapping documents (netconf-notif and restconf-notif).
> Personally, I
> > think that the current split of text between documents is fine.
> >
> > The second issue is that currently, both netconf-notif and
> restconf-notif say
> > that *all* these errors use the error-tag "operation-failed".
> Essentially it means
> > that we bypass the error handling in the protocols.  As Andy points out
> below,
> > the error "insufficient-resources" should be mapped to "resource-denied=
"
> in
> > NETCONF and RESTCONF (they mean the same thing).  So it might make sens=
e
> > to carefully go through the list of errors and map them to the correct
> error-tag
> > (but specifiy this in the transport drafts).
>
> I am completely good with this.   Does this work for you Andy?
>
>
This is better.
I'm glad no other drafts are creating their own error reporting system for
each rpc-stmt.
This is a bad precedent and likely to be skipped in implementations.


> Eric
>
> > /martin
> >
>

Andy



> >
> >
> >
> > >
> > > If the YANG doctors require this, it can be inserted.  A similar text
> > > change would be needed for quite a few error identities within YANG
> > > Push.  Personally I don=E2=80=99t like that YANG models should be req=
uired to
> > > embed this information.  But I will make the change if you really wan=
t
> > > this, and nobody else objects.
> > >
> > > Other than that, I am not aware of any other open issues in the YANG
> > > Doctor review.  Do you know of anything else?
> > >
> > > Eric
> > >
> > >
> > > From: Andy Bierman, January 21, 2019 2:26 PM
> > >
> > > Hi,
> > >
> > > I think the error-tag issue can be resolved by including 1 extra
> > > sentence in each error identity.
> > > I know this is NETCONF and RESTCONF centric but those are the only 2
> > > standard protocols supported for the YANG language right now.
> > >
> > >        If the 'error-tag' field is used in error reporting,
> > >        then the value '<correct error-tag>' MUST be used.
> > >
> > > For example:
> > >
> > >
> > > OLD:
> > >
> > >   identity insufficient-resources {
> > >     base establish-subscription-error;
> > >     base modify-subscription-error;
> > >     base subscription-suspended-reason;
> > >     description
> > >       "The publisher has insufficient resources to support the
> > >        requested subscription.  An example might be that allocated CP=
U
> > >        is too limited to generate the desired set of notification
> > >        messages.";
> > >   }
> > >
> > >
> > > NEW:
> > >
> > >   identity insufficient-resources {
> > >     base establish-subscription-error;
> > >     base modify-subscription-error;
> > >     base subscription-suspended-reason;
> > >     description
> > >       "The publisher has insufficient resources to support the
> > >        requested subscription.  An example might be that allocated CP=
U
> > >        is too limited to generate the desired set of notification
> > >        messages. If the 'error-tag' field is used in error reporting,
> > >        then the value 'resource-denied' MUST be used.";
> > >   }
> > >
> > >
> > > Andy
> > >
> > >
> > > On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit)
> > > <evoit@cisco.com<mailto:evoit@cisco.com>> wrote:
> > > Hi Andy,
> > >
> > > Thanks.  I have incorporated items where there was agreement.  I have
> > > removed the items below where you were ok.
> > >
> > > Remaining below are the open items, with responses.
> > >
> > > > >    Should be clear somewhere that
> > > > >    suspend is for CPU and other resources, and NACM not considere=
d
> > > > >    to be a resource.
> > > >
> > > > If NACM is active, it needs to be followed.  The text we have for
> > > > NACM is in Section 5.4.  Do you see something else specific to
> > > > subscription suspension needed here?  (Maybe I am not getting your
> > > > point.)
> > > >
> > > > No -- OK to leave NACM as terminate-if-loss-of-rights (Is there an
> > > > error identity for this event?)
> > >
> > > The identity which applies here is "stream-unavailable".  This is the
> > > same identity which would be used if a subscriber had never sufficien=
t
> > > permissions in the first place.  I don't believe we would want to
> > > return an identity specific to when NACM when permissions have just
> > > been changed.
> > >
> > > > > I3) sec 2.1 para 6:
> > > > >    Event records MUST NOT be delivered to a receiver in a differe=
nt
> > > > >    order than they were placed onto an event stream.
> > > > >
> > > > >   -- does this apply to subscription-state? Think not, they are
> not events
> > > > >     placed in event stream.
> > > >
> > > > Agree that they are not on the event stream.  So they do not violat=
e
> > > > this requirement.
> > > >
> > > > Additionally there is supporting text in "Section 2.7: subscription
> > > > state notifications", including...
> > > >
> > > > " Instead, they are inserted (as defined in this section) within th=
e
> > > > sequence of notification messages sent to a particular receiver."
> > > >
> > > > >     Need to allow ended or suspended to be sent
> > > > >     head-of-line whenever state changes
> > > >
> > > > I am not sure that suspended should always be sent head-of-line.
> > > > Consider
> > > > that implementation might want to let the existing queue of filtere=
d
> > > > event records be sent if is filter complexity causing the CPU issue=
.
> > > > That could be different than if it is a bandwidth issue driving the
> > > > suspension, and you definitely want the 'subscription-suspended' to
> > > > be placed at the head of line.
> > > >
> > > >
> > > > It is up to the publisher to decide when to stop sending events on =
a
> > > > subscription.
> > > > Obviously the publisher cannot wait until the subscription is idle.
> > > > The reason it is getting suspended is it is far from idle
> > > >
> > > > So also up to the publisher wrt/ what to do with any events that
> > > > have not been delivered yet on a subscription.  Could delete them o=
r
> > > > save them for when more bandwidth available (for example)
> > >
> > > Agree fully with this.  Is there text required in the draft here?
> > >
> > > ...
> > > > Beyond that it is up to the implementation to decide if some
> > > > un-transmitted queue of event records should be flushed and
> > > > reprocessed based on the modification.  I do not expect this would
> > > > popular, as a replay subscription could accomplish this same
> > > > functional need.
> > > >
> > > > Agreed that an implementation can drop at any time and increment th=
e
> > > > appropriate counters. It will try to to do this, but no requirement=
s
> > > > except maybe subscription events like 'replay-completed' cannot be
> > > > dropped
> > >
> > > Have put a minor tweak into Section 2.7:
> > >
> > > [old]  subscription state change notifications cannot be filtered out
> > >
> > > [new] subscription state change notifications cannot be dropped or
> > > filtered out
> > >
> > > ...
> > > > Thinking more on your point, it might be worth tweaking a couple
> > > > words to allow for head-of-line placement of
> > > > "subscription-suspended".
> > > >
> > > >    "Subscribed event records queued for sending after the issuance =
of
> > > >    this
> > > >    subscription state change notification may now be sent."
> > > >
> > > > Are you good with this suggested change?
> > > >
> > > > Not sure -- it needs to be clear that subscription-suspended is the
> > > > last event sent before suspending and subscription-resumed is the
> > > > first event sent after transition from suspended to active.
> > > > The next event could also be subscription-terminated.
> > >
> > > I do think this possibility is covered in the text.  For Section 2.7.=
4
> > > subscription-suspended the current text is:
> > >
> > > "No further notification will be sent until the subscription resumes
> > > or is terminated."
> > >
> > > And Section 2.7.5 subscription-resumed says":
> > > "Subscribed event records generated after the issuance of this
> > > subscription state change notification may now be sent."
> > >
> > > Based on the discussion, I can make it:
> > >
> > > "Subscribed event records are again permitted to be sent following
> > > this subscription state change notification."
> > >
> > > Is this sufficient for you?
> > >
> > > ...
> > > > > I4) sec 2.4.6: RPC Failures
> > > > >   -- concern about a subscription-specific error reporting system
> > > > >      must make sure protocol error reporting system is used
> > > > > correctly
> > > >
> > > > Yes.  We have done our best to integrate with the embedded NETCONF
> > > > and RESTCONF mechanisms.  There is much additional information in
> > > > the transport drafts here.
> > > >
> > > > >   -- The error-tag value needs to be identified for each 'reason'
> > > > > identity
> > > >
> > > > This is done in the transport drafts.  E.g., see
> > > > draft-ietf-netconf-netconf-event-
> > > > notifications Section 7
> > > >
> > > > I do not agree this is a good idea.
> > > > Each error identity should simply state the required "error-tag"
> > > > that is associated with the error.  This is expected of protocol
> > > > operations that are added to NETCONF and RESTCONF.
> > >
> > > In draft-ietf-netconf-netconf-event-notifications, section 7, the
> > > required "error-tag" is identified as "operation-failed".  If we
> > > instead placed that "error-tag" information in the YANG model, then w=
e
> > > have tied the YANG model to the RESTCONF and NETCONF transports.
> > >
> > > > Both NETCONF and RESTCONF use a compatible error reporting data
> > > > structure.
> > > > The "error-tag" is used in both of them.  IMO client developers do
> > > > not want a different set of error codes for the same error
> conditions.
> > >
> > > draft-ietf-netconf-restconf-notif Section 3.3 also requires an
> > > "error-tag" node of "operation-failed".  So we used the transport
> > > drafts rather than the YANG model to support the same error codes for
> > > the same error conditions.
> > >
> > > > I agree that transport drafts could define their own error
> > > > identities, which would document the expected error-tag there.
> > > >
> > > >
> > > > >    2.  "modify-subscription-stream-error-info": This MUST be
> returned
> > > > >        with the leaf "reason" populated if an RPC error reason ha=
s
> not
> > > > >        been placed elsewhere within the transport portion of a
> failed
> > > > >        "modify-subscription" RPC response.  This MUST be sent if
> > > > > hints
> > > > >
> > > > >   -- all 3 paragraphs like this; unclear what "placed elsewhere"
> > > > >       text means; not appropriate for MUST;
> > > >
> > > > Instead of "placed elsewhere", how about: "placed in subscription
> > > > transport document defined object".  Would this be sufficient?
> > > >
> > > > No -- NETCONF and RESTCONF have well-defined error reporting.
> > > > The server requirements for this error reporting must be documented=
.
> > > >
> > > > I agree with the following approach:
> > > >   - each operation MUST identify the error-tags that are expected f=
or
> > > >     various error conditions (such s is done in RFC 6241)
> > > >   - the server MUST return the specified error-tags. If a condition
> not
> > > >   - explicitly
> > > >     defined then the server MUST pick the appropriate error-tag fro=
m
> RFC
> > > >     6241
> > > >  - the server MAY include the specified rc:yang-data in the
> > > > <error-info>
> > > >  - data
> > > > structure
> > > >  - the server MUST use the appropriate rc:yang-data to report hints
> > > >  - for protocols other than NETCONF and RESTCONF, they can map
> > > > error-tag
> > > >  - or
> > > > ignore it,
> > > >    but the document defining the protocol operation MUST provide
> > >
> > > Functionally, everything you ask for is fully covered when you includ=
e
> > > consider draft-ietf-netconf-netconf-event-notifications (section 7)
> > > and draft-ietf-netconf-restconf-notif (section 3.3).
> > >
> > > My read of the issue is that you believe "error-tag" must be specifie=
d
> > > in the YANG model.  I believe that "error-tag" shouldn't be in the
> > > YANG model because that would tie the model to a transport type.
> > >
> > > Any thoughts on how we might close this?  If absolutely required I
> > > could place a new comment line in the YANG model under
> > > /* Identities for RPC and Notification errors */
> > >
> > > The comment would be something like:
> > > /* When used with NETCONF and RESTCONF RPCs:
> > >     "error-type" node to be used is "application"
> > >      "error-tag" must be "operation-failed".  */
> > >
> > > This seems incongruous.  Just throwing it out as a suggestion.
> > >
> > > > In any case, the -v21 wording results from the attempted balancing
> > > > the WG requests for:
> > > > * merging with transport protocol error mechanisms
> > > > * WG leadership guidance to provide requirements for transport
> > > > documents
> > > >
> > > > >      Only 3 fields seem
> > > > >       to be relevant (error-tag, error-app-tag, error-info).
> > > > >       Protcol operations are expected to document server
> requirements
> > > > >       for these 3 fields, if applicable.  Only the error-tag
> > > > >       is mandatory-to-use.
> > > >
> > > > Hopefully these are covered sufficiently when this document is
> > > > coupled with the NETCONF and RESTCONF Notif transport documents.
> > > > For other transports, the tags you identify about would not be
> > > > applicable.
> > > >
> > > > >   -- the error assignments are extremely specific. e.g., it is no=
t
> > > > >      possible for <kill-subscription> to fail with an
> > > > >      'insufficient-resources' error;
> > > >
> > > > This is the intent of the base specification, e.g., we don't believ=
e
> > > > a
> > > > kill-
> > > > subscription should fail for an insufficient-resources reason.  But
> > > > vendors might desire more specificity.  As a result is certainly ok
> > > > for vendor implementations to add new error identities.
> > > >
> > > > IMO anything can fail for insufficient resources. That is very
> > > > implementation-
> > > > specific.
> > >
> > > Instead of implementation specific I would call it application
> > > specific.  Right now we don't have a catch-all error-identity of
> > > 'other-error'.  We preferred that error conditions beyond the current
> > > ones listed could be included by vendors as needed.  Further
> > > deployment experience could result in new error identities surfacing
> > > for standardization should this draft catch on.
> > >
> > > > >      Do not agree that scoping each
> > > > >      identity to specific RPC operations is a good idea.
> > > >
> > > > This level of specificity was not the author's original plans.  Nor
> > > > was this level of specificity part of earlier draft versions up
> > > > through -v08.  However members of the WG made it clear that such
> > > > specificity was necessary for draft progression.
> > > >
> > > > >   -- how are errors in these parameters reported for configured
> > > > >      subscriptions when <edit-config> is the RPC that has the
> error?
> > > > >      How are the yang-data structs used for edit-config or commit
> errors?
> > > >
> > > > None of these yang-data structures are specified for use with
> > > > <edit-config> operations.  For <edit-config>, the change to a
> > > > configured subscription would be written to the datastore if it wer=
e
> > > > semantically valid.  At this point the subscription enters the
> > > > [evaluate] points of Figure 8.  Issues from this point out would be
> > > > reported with a vendor specific construct such as SYSLOG.
> > > >
> > > > So how are hints reported for configured subscriptions?
> > >
> > > There is nothing in the specification which requires this.  An
> > > implementation could choose to place these in some form of SYSLOG.
> > > ...
> > > > > I6) sec 2.5, para 3:
> > > > >
> > > > >    On a receiver of a
> > > > >    configured subscription, support for dynamic subscriptions is
> > > > >    optional except where replaying missed event records is
> required.
> > > > >
> > > > >   -- confusing because text in 1.3:
> > > > >      Note that there is no mixing-and-matching of dynamic and
> configured
> > > > >      operations on a single subscription.  Specifically, a
> configured
> > > > >   -- clarify the receiver may have multiple subscriptions here
> > > > >   -- not clear what "except where replaying..." text means
> > > >
> > > > How about the following tweak:
> > > >
> > > > "On a receiver of a configured subscription, support for dynamic
> > > > subscriptions is optional.  However if replaying missed event
> > > > records is required for a configured subscription, support for
> > > > dynamic subscription is highly recommended.  In this case, a
> > > > separate dynamic subscription can be established to retransmit the
> > > > missing event records."
> > > >
> > > > OK
> > >
> > > Change made.
> > >
> > > > > I7) leaf stream-xpath-filter: [multiple uses]
> > > > >
> > > > >            The expression is evaluated in the following XPath
> context:
> > > > >
> > > > >              o   The set of namespace declarations is the set of
> prefix
> > > > >                  and namespace pairs for all YANG modules
> implemented
> > > > >                  by the server, where the prefix is the YANG modu=
le
> > > > >                  name and the namespace is as defined by the
> > > > >                  'namespace' statement in the YANG module.
> > > > >
> > > > >   -- This prefix processing is not done anywhere else in NETCONF
> > > > >      or RESTCONF.  IMO a bad precedent.  Only the XML prefixes
> > > > >      should be required for processing of XML encoding.  YANG
> > > > >      module prefixes are not required to be unique, unlike
> > > > >      the prefix mappings in XML
> > > >
> > > > This text was proposed by Martin as a result of the "xpath
> > > > expressions in JSON"
> > > > thread last October in NETMOD.
> > > >
> > > > I am happy to incorporate whatever text is appropriate.  I was
> > > > hoping that the suggested text was sufficient for now.  Kent has
> > > > already incorporated this as an issue for yang-next
> > > > https://github.com/netmod-wg/yang-next/issues/55
> > > > So hopefully there is no final precedent being claimed.
> > > >
> > > > I do not agree that this YANG module should define a new way to
> > > > encode XPath into XML instance documents. This will require
> > > > significant changes to server implementations.  YANG module prefixe=
s
> > > > are not even required to be unique so the set of prefixes used by
> > > > the server in XML instance documents may be different, since it mus=
t
> > > > be unique.
> > >
> > > See next note
> > >
> > > > >   -- NMDA allows the same module to appear in multiple module-set=
s
> > > > >      and different in each datastore. This text about "implemente=
d
> by
> > > > >      the server" does not work for NMDA
> > > >
> > > > I am happy to adopt whatever text meets YANG doctor approval.  Can
> > > > you suggest?
> > > >
> > > >
> > > > Remove all text about YANG prefixes and continue using XML encoding
> > > > without modification
> > >
> > > As a different YANG doctor has required the current text modification=
,
> > > I believe this is a blocker.  What is the process for YANG model
> > > reviews in such a case.  I am happy to accept whatever here.  Any
> > > suggestions on next steps?
> > >
> > > ...
> > > > >   -- there should be an example of a configurable encoding
> > > > > provided
> > > >
> > > > I am happy to enhance the definition YANG model's identity
> > > > definition of "configurable-encoding".  I could do this by adding
> > > > the following additional text to the description: "An example of a
> > > > configurable encoding might be a new identity such as 'encode-cbor'=
.
> > > > Such an identity could use
> > > > 'configurable-
> > > > encoding' as its base.  This would allow a dynamic subscription
> > > > encoded in JSON [RFC-8259] to request notification messages be
> > > > encoded via CBOR [RFC- 7049].  Further details for any specific
> > > > configurable encoding would be explored in a transport document
> > > > based on this specification."  Does this meet your ask?
> > > >
> > > >
> > > > OK
> > >
> > > Added
> > >
> > > > > I11) extension subscription-state-notification {
> > > > >
> > > > >        This statement is not for use
> > > > >        outside of this YANG module.";
> > > > >
> > > > >   -- this text should be removed. There is no value in limiting
> > > > >      the scope of this extension.  It prevents even this WG from
> > > > >      creating a module that uses the extension again.
> > > >
> > > > This was the subject of significant debate in the WG.  The authors
> > > > did not want this restriction either.
> > > >
> > > > To be allowed to progress the document, we inserted the document.
> > > > If this really is mandatory-to-remove from a YANG doctor
> > > > point-of-view, what is the process for quick closure on this issue
> > > > between WG leadership and the YANG doctors?
> > > >
> > > >
> > > > The YANG language makes no restrictions about exporting statements.
> > > > I guess I missed that debate so I will just say OK and wonder what
> > > > problem this is supposed to solve. I guess the WG wants to give YAN=
G
> > > > Doctors more things to check. (This is what we called a CLR in
> > > > SNMP-land ;-)
> > >
> > > Thanks.  No action taken.
> > >
> > > > > I13)   notification subscription-started {
> > > > >     sn:subscription-state-notification;
> > > > >     if-feature "configured";
> > > > >     description
> > > > >       "This notification indicates that a subscription has starte=
d
> and
> > > > >         notifications are beginning to be sent. This notification
> shall
> > > > >        only be sent to receivers of a subscription; it does not
> > > > >        constitute a general-purpose notification.";
> > > > >
> > > > >   -- 2nd sentence is confusing; all notifications are sent to
> > > > >      receivers of a subscription. last part is redundant since
> > > > >      the sn:subscription-state-notification extension is used
> > > >
> > > > There is no issue with removing this second sentence completely.  I=
f
> > > > I did that, would this address your concern?
> > > >
> > > > OK
> > >
> > > Done
> > >
> > > > > I14)   rc:yang-data modify-subscription-stream-error-info {
> > > > >
> > > > >       leaf filter-failure-hint {
> > > > >         type string;
> > > > >           description
> > > > >             "Information describing where and/or why a provided
> filter
> > > > >              was unsupportable for a subscription.";
> > > > >       }
> > > > >
> > > > >   -- rpc-error already allows more precise error reporting
> > > > >      It uses error-tag, error-path, error-string, and error-info
> > > > >      extensions
> > > > >      to identify which parameters/conditions caused the RPC to be
> > > > >      rejected.
> > > > >      This error reporting will continue to be used, Not sure this
> > > > >      failure-hint
> > > > >      has any standards value. Perhaps real-use example can be
> > > > > added
> > > >
> > > > Per your thoughts on rpc-error...  For NETCONF and RESTCONF, you
> > > > point to error structures which historically been used with those
> > > > transports.
> > > > Of course
> > > > we were looking to have all subscription hints supportable across
> > > > transports via a single portable YANG data structure.  So the value
> > > > is that a single string object exists so to transport whatever the
> > > > vendor thinks would be useful as a hint in this case.  I.e., there
> > > > has been no attempt to standardize the contents of this string.  If
> > > > operational experiences drive a desire for such structuring, this
> > > > could provide the basis for a new draft building off of this
> > > > starting point.
> > > >
> > > > I guess I do not consider NETCONF and RESTCONF "historic" quite yet=
.
> > > > There are many implementations using the rpc-error reporting with n=
o
> > > > intent to replace it with something else.
> > > >
> > > > I was just asking for an example, since I have no idea what an
> > > > implementor would put in this leaf.
> > >
> > > Here is an example from our implementation.  Say you mistype an extra
> > > "\" to an xpath filter:
> > > /if:interfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-stat=
us
> > > As a result, the filter is passed to the publisher is:
> > > /if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-sta=
tus
> > >
> > > What we would return in the failure-hint string is:
> > > Invalid expression: offset(9) in
> > >
> '/if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/0"]/oper-status=
'
> > >
> > > Eric
> > >
> > > > Andy
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Wed, Jan 23, 2019 at 4:35 AM Eric Voit (evoit) &lt;<a h=
ref=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex">&gt; From: Martin Bjorklund, =
January 23, 2019 3:32 AM<br>
&gt; <br>
&gt; Hi,<br>
&gt; <br>
&gt; &quot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailto:evoit@cisco.com" t=
arget=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; Hi Andy,<br>
&gt; &gt;<br>
&gt; &gt; Looking at your proposal...=C2=A0 My reading is that it takes the=
 transport<br>
&gt; &gt; specific error info contained in<br>
&gt; &gt; draft-ietf-netconf-netconf-event-notifications section 7, and the=
n<br>
&gt; &gt; replicates that info within 12 separate description objects of th=
e<br>
&gt; &gt; transport independent ietf-subscribed-notifications.yang.=C2=A0 T=
he value<br>
&gt; &gt; you are asserting is that RFCs containing YANG models containing =
the<br>
&gt; &gt; rpc-stmt have traditionally document the mandatory-to-implement<b=
r>
&gt; &gt; &quot;error-tag&quot; field within the model.=C2=A0 And presumabl=
y you are concerned<br>
&gt; &gt; that developers should not have to look elsewhere for this<br>
&gt; &gt; information.<br>
&gt; <br>
&gt; I think that maybe there are two separate issues here.<br>
&gt; <br>
&gt; The first issue is that for each error identity defined, there needs t=
o be a<br>
&gt; mapping to the protocol-specific error handling.=C2=A0 Andy suggests t=
hat this info is<br>
&gt; added to this document, but currently this information is available in=
 the<br>
&gt; protcol-mapping documents (netconf-notif and restconf-notif).=C2=A0 Pe=
rsonally, I<br>
&gt; think that the current split of text between documents is fine.<br>
&gt; <br>
&gt; The second issue is that currently, both netconf-notif and restconf-no=
tif say<br>
&gt; that *all* these errors use the error-tag &quot;operation-failed&quot;=
.=C2=A0 Essentially it means<br>
&gt; that we bypass the error handling in the protocols.=C2=A0 As Andy poin=
ts out below,<br>
&gt; the error &quot;insufficient-resources&quot; should be mapped to &quot=
;resource-denied&quot; in<br>
&gt; NETCONF and RESTCONF (they mean the same thing).=C2=A0 So it might mak=
e sense<br>
&gt; to carefully go through the list of errors and map them to the correct=
 error-tag<br>
&gt; (but specifiy this in the transport drafts).<br>
<br>
I am completely good with this.=C2=A0 =C2=A0Does this work for you Andy?<br=
>
<br></blockquote><div><br></div><div>This is better.</div><div>I&#39;m glad=
 no other drafts are creating their own error reporting system for each rpc=
-stmt.</div><div>This is a bad precedent and likely to be skipped in implem=
entations.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex">
Eric<br>
<br>
&gt; /martin<br>
&gt; <br></blockquote><div><br></div><div>Andy</div><div><br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; <br>
&gt; <br>
&gt; <br>
&gt; &gt;<br>
&gt; &gt; If the YANG doctors require this, it can be inserted.=C2=A0 A sim=
ilar text<br>
&gt; &gt; change would be needed for quite a few error identities within YA=
NG<br>
&gt; &gt; Push.=C2=A0 Personally I don=E2=80=99t like that YANG models shou=
ld be required to<br>
&gt; &gt; embed this information.=C2=A0 But I will make the change if you r=
eally want<br>
&gt; &gt; this, and nobody else objects.<br>
&gt; &gt;<br>
&gt; &gt; Other than that, I am not aware of any other open issues in the Y=
ANG<br>
&gt; &gt; Doctor review.=C2=A0 Do you know of anything else?<br>
&gt; &gt;<br>
&gt; &gt; Eric<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; From: Andy Bierman, January 21, 2019 2:26 PM<br>
&gt; &gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; I think the error-tag issue can be resolved by including 1 extra<=
br>
&gt; &gt; sentence in each error identity.<br>
&gt; &gt; I know this is NETCONF and RESTCONF centric but those are the onl=
y 2<br>
&gt; &gt; standard protocols supported for the YANG language right now.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 If the &#39;error-tag&#39; field is us=
ed in error reporting,<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 then the value &#39;&lt;correct error-=
tag&gt;&#39; MUST be used.<br>
&gt; &gt;<br>
&gt; &gt; For example:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; OLD:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0identity insufficient-resources {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base establish-subscription-error;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base modify-subscription-error;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base subscription-suspended-reason;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;The publisher has insufficient re=
sources to support the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 requested subscription.=C2=A0 An examp=
le might be that allocated CPU<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 is too limited to generate the desired=
 set of notification<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 messages.&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; NEW:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0identity insufficient-resources {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base establish-subscription-error;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base modify-subscription-error;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0base subscription-suspended-reason;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;The publisher has insufficient re=
sources to support the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 requested subscription.=C2=A0 An examp=
le might be that allocated CPU<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 is too limited to generate the desired=
 set of notification<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 messages. If the &#39;error-tag&#39; f=
ield is used in error reporting,<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 then the value &#39;resource-denied&#3=
9; MUST be used.&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Andy<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit)<br>
&gt; &gt; &lt;<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">evoit@ci=
sco.com</a>&lt;mailto:<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">=
evoit@cisco.com</a>&gt;&gt; wrote:<br>
&gt; &gt; Hi Andy,<br>
&gt; &gt;<br>
&gt; &gt; Thanks.=C2=A0 I have incorporated items where there was agreement=
.=C2=A0 I have<br>
&gt; &gt; removed the items below where you were ok.<br>
&gt; &gt;<br>
&gt; &gt; Remaining below are the open items, with responses.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 Should be clear somewhere that<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 suspend is for CPU and other resources, an=
d NACM not considered<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 to be a resource.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If NACM is active, it needs to be followed.=C2=A0 The text w=
e have for<br>
&gt; &gt; &gt; NACM is in Section 5.4.=C2=A0 Do you see something else spec=
ific to<br>
&gt; &gt; &gt; subscription suspension needed here?=C2=A0 (Maybe I am not g=
etting your<br>
&gt; &gt; &gt; point.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; No -- OK to leave NACM as terminate-if-loss-of-rights (Is th=
ere an<br>
&gt; &gt; &gt; error identity for this event?)<br>
&gt; &gt;<br>
&gt; &gt; The identity which applies here is &quot;stream-unavailable&quot;=
.=C2=A0 This is the<br>
&gt; &gt; same identity which would be used if a subscriber had never suffi=
cient<br>
&gt; &gt; permissions in the first place.=C2=A0 I don&#39;t believe we woul=
d want to<br>
&gt; &gt; return an identity specific to when NACM when permissions have ju=
st<br>
&gt; &gt; been changed.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; I3) sec 2.1 para 6:<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 Event records MUST NOT be delivered to a r=
eceiver in a different<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 order than they were placed onto an event =
stream.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- does this apply to subscription-state? T=
hink not, they are not events<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0placed in event stream.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Agree that they are not on the event stream.=C2=A0 So they d=
o not violate<br>
&gt; &gt; &gt; this requirement.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Additionally there is supporting text in &quot;Section 2.7: =
subscription<br>
&gt; &gt; &gt; state notifications&quot;, including...<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &quot; Instead, they are inserted (as defined in this sectio=
n) within the<br>
&gt; &gt; &gt; sequence of notification messages sent to a particular recei=
ver.&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0Need to allow ended or suspended to =
be sent<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0head-of-line whenever state changes<=
br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I am not sure that suspended should always be sent head-of-l=
ine.<br>
&gt; &gt; &gt; Consider<br>
&gt; &gt; &gt; that implementation might want to let the existing queue of =
filtered<br>
&gt; &gt; &gt; event records be sent if is filter complexity causing the CP=
U issue.<br>
&gt; &gt; &gt; That could be different than if it is a bandwidth issue driv=
ing the<br>
&gt; &gt; &gt; suspension, and you definitely want the &#39;subscription-su=
spended&#39; to<br>
&gt; &gt; &gt; be placed at the head of line.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; It is up to the publisher to decide when to stop sending eve=
nts on a<br>
&gt; &gt; &gt; subscription.<br>
&gt; &gt; &gt; Obviously the publisher cannot wait until the subscription i=
s idle.<br>
&gt; &gt; &gt; The reason it is getting suspended is it is far from idle<br=
>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; So also up to the publisher wrt/ what to do with any events =
that<br>
&gt; &gt; &gt; have not been delivered yet on a subscription.=C2=A0 Could d=
elete them or<br>
&gt; &gt; &gt; save them for when more bandwidth available (for example)<br=
>
&gt; &gt;<br>
&gt; &gt; Agree fully with this.=C2=A0 Is there text required in the draft =
here?<br>
&gt; &gt;<br>
&gt; &gt; ...<br>
&gt; &gt; &gt; Beyond that it is up to the implementation to decide if some=
<br>
&gt; &gt; &gt; un-transmitted queue of event records should be flushed and<=
br>
&gt; &gt; &gt; reprocessed based on the modification.=C2=A0 I do not expect=
 this would<br>
&gt; &gt; &gt; popular, as a replay subscription could accomplish this same=
<br>
&gt; &gt; &gt; functional need.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Agreed that an implementation can drop at any time and incre=
ment the<br>
&gt; &gt; &gt; appropriate counters. It will try to to do this, but no requ=
irements<br>
&gt; &gt; &gt; except maybe subscription events like &#39;replay-completed&=
#39; cannot be<br>
&gt; &gt; &gt; dropped<br>
&gt; &gt;<br>
&gt; &gt; Have put a minor tweak into Section 2.7:<br>
&gt; &gt;<br>
&gt; &gt; [old]=C2=A0 subscription state change notifications cannot be fil=
tered out<br>
&gt; &gt;<br>
&gt; &gt; [new] subscription state change notifications cannot be dropped o=
r<br>
&gt; &gt; filtered out<br>
&gt; &gt;<br>
&gt; &gt; ...<br>
&gt; &gt; &gt; Thinking more on your point, it might be worth tweaking a co=
uple<br>
&gt; &gt; &gt; words to allow for head-of-line placement of<br>
&gt; &gt; &gt; &quot;subscription-suspended&quot;.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 &quot;Subscribed event records queued for sendi=
ng after the issuance of<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 this<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 subscription state change notification may now =
be sent.&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Are you good with this suggested change?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Not sure -- it needs to be clear that subscription-suspended=
 is the<br>
&gt; &gt; &gt; last event sent before suspending and subscription-resumed i=
s the<br>
&gt; &gt; &gt; first event sent after transition from suspended to active.<=
br>
&gt; &gt; &gt; The next event could also be subscription-terminated.<br>
&gt; &gt;<br>
&gt; &gt; I do think this possibility is covered in the text.=C2=A0 For Sec=
tion 2.7.4<br>
&gt; &gt; subscription-suspended the current text is:<br>
&gt; &gt;<br>
&gt; &gt; &quot;No further notification will be sent until the subscription=
 resumes<br>
&gt; &gt; or is terminated.&quot;<br>
&gt; &gt;<br>
&gt; &gt; And Section 2.7.5 subscription-resumed says&quot;:<br>
&gt; &gt; &quot;Subscribed event records generated after the issuance of th=
is<br>
&gt; &gt; subscription state change notification may now be sent.&quot;<br>
&gt; &gt;<br>
&gt; &gt; Based on the discussion, I can make it:<br>
&gt; &gt;<br>
&gt; &gt; &quot;Subscribed event records are again permitted to be sent fol=
lowing<br>
&gt; &gt; this subscription state change notification.&quot;<br>
&gt; &gt;<br>
&gt; &gt; Is this sufficient for you?<br>
&gt; &gt;<br>
&gt; &gt; ...<br>
&gt; &gt; &gt; &gt; I4) sec 2.4.6: RPC Failures<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- concern about a subscription-specific er=
ror reporting system<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 must make sure protocol error repor=
ting system is used<br>
&gt; &gt; &gt; &gt; correctly<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Yes.=C2=A0 We have done our best to integrate with the embed=
ded NETCONF<br>
&gt; &gt; &gt; and RESTCONF mechanisms.=C2=A0 There is much additional info=
rmation in<br>
&gt; &gt; &gt; the transport drafts here.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- The error-tag value needs to be identifi=
ed for each &#39;reason&#39;<br>
&gt; &gt; &gt; &gt; identity<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This is done in the transport drafts.=C2=A0 E.g., see<br>
&gt; &gt; &gt; draft-ietf-netconf-netconf-event-<br>
&gt; &gt; &gt; notifications Section 7<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I do not agree this is a good idea.<br>
&gt; &gt; &gt; Each error identity should simply state the required &quot;e=
rror-tag&quot;<br>
&gt; &gt; &gt; that is associated with the error.=C2=A0 This is expected of=
 protocol<br>
&gt; &gt; &gt; operations that are added to NETCONF and RESTCONF.<br>
&gt; &gt;<br>
&gt; &gt; In draft-ietf-netconf-netconf-event-notifications, section 7, the=
<br>
&gt; &gt; required &quot;error-tag&quot; is identified as &quot;operation-f=
ailed&quot;.=C2=A0 If we<br>
&gt; &gt; instead placed that &quot;error-tag&quot; information in the YANG=
 model, then we<br>
&gt; &gt; have tied the YANG model to the RESTCONF and NETCONF transports.<=
br>
&gt; &gt;<br>
&gt; &gt; &gt; Both NETCONF and RESTCONF use a compatible error reporting d=
ata<br>
&gt; &gt; &gt; structure.<br>
&gt; &gt; &gt; The &quot;error-tag&quot; is used in both of them.=C2=A0 IMO=
 client developers do<br>
&gt; &gt; &gt; not want a different set of error codes for the same error c=
onditions.<br>
&gt; &gt;<br>
&gt; &gt; draft-ietf-netconf-restconf-notif Section 3.3 also requires an<br=
>
&gt; &gt; &quot;error-tag&quot; node of &quot;operation-failed&quot;.=C2=A0=
 So we used the transport<br>
&gt; &gt; drafts rather than the YANG model to support the same error codes=
 for<br>
&gt; &gt; the same error conditions.<br>
&gt; &gt;<br>
&gt; &gt; &gt; I agree that transport drafts could define their own error<b=
r>
&gt; &gt; &gt; identities, which would document the expected error-tag ther=
e.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 2.=C2=A0 &quot;modify-subscription-stream-=
error-info&quot;: This MUST be returned<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 with the leaf &quot;reason&q=
uot; populated if an RPC error reason has not<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 been placed elsewhere within=
 the transport portion of a failed<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;modify-subscription&qu=
ot; RPC response.=C2=A0 This MUST be sent if<br>
&gt; &gt; &gt; &gt; hints<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- all 3 paragraphs like this; unclear what=
 &quot;placed elsewhere&quot;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0text means; not appropriate f=
or MUST;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Instead of &quot;placed elsewhere&quot;, how about: &quot;pl=
aced in subscription<br>
&gt; &gt; &gt; transport document defined object&quot;.=C2=A0 Would this be=
 sufficient?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; No -- NETCONF and RESTCONF have well-defined error reporting=
.<br>
&gt; &gt; &gt; The server requirements for this error reporting must be doc=
umented.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I agree with the following approach:<br>
&gt; &gt; &gt;=C2=A0 =C2=A0- each operation MUST identify the error-tags th=
at are expected for<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0various error conditions (such s is done =
in RFC 6241)<br>
&gt; &gt; &gt;=C2=A0 =C2=A0- the server MUST return the specified error-tag=
s. If a condition not<br>
&gt; &gt; &gt;=C2=A0 =C2=A0- explicitly<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0defined then the server MUST pick the app=
ropriate error-tag from RFC<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A06241<br>
&gt; &gt; &gt;=C2=A0 - the server MAY include the specified rc:yang-data in=
 the<br>
&gt; &gt; &gt; &lt;error-info&gt;<br>
&gt; &gt; &gt;=C2=A0 - data<br>
&gt; &gt; &gt; structure<br>
&gt; &gt; &gt;=C2=A0 - the server MUST use the appropriate rc:yang-data to =
report hints<br>
&gt; &gt; &gt;=C2=A0 - for protocols other than NETCONF and RESTCONF, they =
can map<br>
&gt; &gt; &gt; error-tag<br>
&gt; &gt; &gt;=C2=A0 - or<br>
&gt; &gt; &gt; ignore it,<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 but the document defining the protocol operatio=
n MUST provide<br>
&gt; &gt;<br>
&gt; &gt; Functionally, everything you ask for is fully covered when you in=
clude<br>
&gt; &gt; consider draft-ietf-netconf-netconf-event-notifications (section =
7)<br>
&gt; &gt; and draft-ietf-netconf-restconf-notif (section 3.3).<br>
&gt; &gt;<br>
&gt; &gt; My read of the issue is that you believe &quot;error-tag&quot; mu=
st be specified<br>
&gt; &gt; in the YANG model.=C2=A0 I believe that &quot;error-tag&quot; sho=
uldn&#39;t be in the<br>
&gt; &gt; YANG model because that would tie the model to a transport type.<=
br>
&gt; &gt;<br>
&gt; &gt; Any thoughts on how we might close this?=C2=A0 If absolutely requ=
ired I<br>
&gt; &gt; could place a new comment line in the YANG model under<br>
&gt; &gt; /* Identities for RPC and Notification errors */<br>
&gt; &gt;<br>
&gt; &gt; The comment would be something like:<br>
&gt; &gt; /* When used with NETCONF and RESTCONF RPCs:<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0&quot;error-type&quot; node to be used is &quo=
t;application&quot;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 &quot;error-tag&quot; must be &quot;operation=
-failed&quot;.=C2=A0 */<br>
&gt; &gt;<br>
&gt; &gt; This seems incongruous.=C2=A0 Just throwing it out as a suggestio=
n.<br>
&gt; &gt;<br>
&gt; &gt; &gt; In any case, the -v21 wording results from the attempted bal=
ancing<br>
&gt; &gt; &gt; the WG requests for:<br>
&gt; &gt; &gt; * merging with transport protocol error mechanisms<br>
&gt; &gt; &gt; * WG leadership guidance to provide requirements for transpo=
rt<br>
&gt; &gt; &gt; documents<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Only 3 fields seem<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0to be relevant (error-tag, er=
ror-app-tag, error-info).<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0Protcol operations are expect=
ed to document server requirements<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0for these 3 fields, if applic=
able.=C2=A0 Only the error-tag<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0is mandatory-to-use.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Hopefully these are covered sufficiently when this document =
is<br>
&gt; &gt; &gt; coupled with the NETCONF and RESTCONF Notif transport docume=
nts.<br>
&gt; &gt; &gt; For other transports, the tags you identify about would not =
be<br>
&gt; &gt; &gt; applicable.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- the error assignments are extremely spec=
ific. e.g., it is not<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 possible for &lt;kill-subscription&=
gt; to fail with an<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 &#39;insufficient-resources&#39; er=
ror;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This is the intent of the base specification, e.g., we don&#=
39;t believe<br>
&gt; &gt; &gt; a<br>
&gt; &gt; &gt; kill-<br>
&gt; &gt; &gt; subscription should fail for an insufficient-resources reaso=
n.=C2=A0 But<br>
&gt; &gt; &gt; vendors might desire more specificity.=C2=A0 As a result is =
certainly ok<br>
&gt; &gt; &gt; for vendor implementations to add new error identities.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; IMO anything can fail for insufficient resources. That is ve=
ry<br>
&gt; &gt; &gt; implementation-<br>
&gt; &gt; &gt; specific.<br>
&gt; &gt;<br>
&gt; &gt; Instead of implementation specific I would call it application<br=
>
&gt; &gt; specific.=C2=A0 Right now we don&#39;t have a catch-all error-ide=
ntity of<br>
&gt; &gt; &#39;other-error&#39;.=C2=A0 We preferred that error conditions b=
eyond the current<br>
&gt; &gt; ones listed could be included by vendors as needed.=C2=A0 Further=
<br>
&gt; &gt; deployment experience could result in new error identities surfac=
ing<br>
&gt; &gt; for standardization should this draft catch on.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Do not agree that scoping each<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 identity to specific RPC operations=
 is a good idea.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This level of specificity was not the author&#39;s original =
plans.=C2=A0 Nor<br>
&gt; &gt; &gt; was this level of specificity part of earlier draft versions=
 up<br>
&gt; &gt; &gt; through -v08.=C2=A0 However members of the WG made it clear =
that such<br>
&gt; &gt; &gt; specificity was necessary for draft progression.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- how are errors in these parameters repor=
ted for configured<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 subscriptions when &lt;edit-config&=
gt; is the RPC that has the error?<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 How are the yang-data structs used =
for edit-config or commit errors?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; None of these yang-data structures are specified for use wit=
h<br>
&gt; &gt; &gt; &lt;edit-config&gt; operations.=C2=A0 For &lt;edit-config&gt=
;, the change to a<br>
&gt; &gt; &gt; configured subscription would be written to the datastore if=
 it were<br>
&gt; &gt; &gt; semantically valid.=C2=A0 At this point the subscription ent=
ers the<br>
&gt; &gt; &gt; [evaluate] points of Figure 8.=C2=A0 Issues from this point =
out would be<br>
&gt; &gt; &gt; reported with a vendor specific construct such as SYSLOG.<br=
>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; So how are hints reported for configured subscriptions?<br>
&gt; &gt;<br>
&gt; &gt; There is nothing in the specification which requires this.=C2=A0 =
An<br>
&gt; &gt; implementation could choose to place these in some form of SYSLOG=
.<br>
&gt; &gt; ...<br>
&gt; &gt; &gt; &gt; I6) sec 2.5, para 3:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 On a receiver of a<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 configured subscription, support for dynam=
ic subscriptions is<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 optional except where replaying missed eve=
nt records is required.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- confusing because text in 1.3:<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Note that there is no mixing-and-ma=
tching of dynamic and configured<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 operations on a single subscription=
.=C2=A0 Specifically, a configured<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- clarify the receiver may have multiple s=
ubscriptions here<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- not clear what &quot;except where replay=
ing...&quot; text means<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; How about the following tweak:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &quot;On a receiver of a configured subscription, support fo=
r dynamic<br>
&gt; &gt; &gt; subscriptions is optional.=C2=A0 However if replaying missed=
 event<br>
&gt; &gt; &gt; records is required for a configured subscription, support f=
or<br>
&gt; &gt; &gt; dynamic subscription is highly recommended.=C2=A0 In this ca=
se, a<br>
&gt; &gt; &gt; separate dynamic subscription can be established to retransm=
it the<br>
&gt; &gt; &gt; missing event records.&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; OK<br>
&gt; &gt;<br>
&gt; &gt; Change made.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; I7) leaf stream-xpath-filter: [multiple uses]<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The expression=
 is evaluated in the following XPath context:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 o=C2=A0=
 =C2=A0The set of namespace declarations is the set of prefix<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 and namespace pairs for all YANG modules implemented<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 by the server, where the prefix is the YANG module<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 name and the namespace is as defined by the<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 &#39;namespace&#39; statement in the YANG module.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- This prefix processing is not done anywh=
ere else in NETCONF<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RESTCONF.=C2=A0 IMO a bad preced=
ent.=C2=A0 Only the XML prefixes<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 should be required for processing o=
f XML encoding.=C2=A0 YANG<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 module prefixes are not required to=
 be unique, unlike<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the prefix mappings in XML<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This text was proposed by Martin as a result of the &quot;xp=
ath<br>
&gt; &gt; &gt; expressions in JSON&quot;<br>
&gt; &gt; &gt; thread last October in NETMOD.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I am happy to incorporate whatever text is appropriate.=C2=
=A0 I was<br>
&gt; &gt; &gt; hoping that the suggested text was sufficient for now.=C2=A0=
 Kent has<br>
&gt; &gt; &gt; already incorporated this as an issue for yang-next<br>
&gt; &gt; &gt; <a href=3D"https://github.com/netmod-wg/yang-next/issues/55"=
 rel=3D"noreferrer" target=3D"_blank">https://github.com/netmod-wg/yang-nex=
t/issues/55</a><br>
&gt; &gt; &gt; So hopefully there is no final precedent being claimed.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I do not agree that this YANG module should define a new way=
 to<br>
&gt; &gt; &gt; encode XPath into XML instance documents. This will require<=
br>
&gt; &gt; &gt; significant changes to server implementations.=C2=A0 YANG mo=
dule prefixes<br>
&gt; &gt; &gt; are not even required to be unique so the set of prefixes us=
ed by<br>
&gt; &gt; &gt; the server in XML instance documents may be different, since=
 it must<br>
&gt; &gt; &gt; be unique.<br>
&gt; &gt;<br>
&gt; &gt; See next note<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- NMDA allows the same module to appear in=
 multiple module-sets<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 and different in each datastore. Th=
is text about &quot;implemented by<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the server&quot; does not work for =
NMDA<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I am happy to adopt whatever text meets YANG doctor approval=
.=C2=A0 Can<br>
&gt; &gt; &gt; you suggest?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Remove all text about YANG prefixes and continue using XML e=
ncoding<br>
&gt; &gt; &gt; without modification<br>
&gt; &gt;<br>
&gt; &gt; As a different YANG doctor has required the current text modifica=
tion,<br>
&gt; &gt; I believe this is a blocker.=C2=A0 What is the process for YANG m=
odel<br>
&gt; &gt; reviews in such a case.=C2=A0 I am happy to accept whatever here.=
=C2=A0 Any<br>
&gt; &gt; suggestions on next steps?<br>
&gt; &gt;<br>
&gt; &gt; ...<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- there should be an example of a configur=
able encoding<br>
&gt; &gt; &gt; &gt; provided<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I am happy to enhance the definition YANG model&#39;s identi=
ty<br>
&gt; &gt; &gt; definition of &quot;configurable-encoding&quot;.=C2=A0 I cou=
ld do this by adding<br>
&gt; &gt; &gt; the following additional text to the description: &quot;An e=
xample of a<br>
&gt; &gt; &gt; configurable encoding might be a new identity such as &#39;e=
ncode-cbor&#39;.<br>
&gt; &gt; &gt; Such an identity could use<br>
&gt; &gt; &gt; &#39;configurable-<br>
&gt; &gt; &gt; encoding&#39; as its base.=C2=A0 This would allow a dynamic =
subscription<br>
&gt; &gt; &gt; encoded in JSON [RFC-8259] to request notification messages =
be<br>
&gt; &gt; &gt; encoded via CBOR [RFC- 7049].=C2=A0 Further details for any =
specific<br>
&gt; &gt; &gt; configurable encoding would be explored in a transport docum=
ent<br>
&gt; &gt; &gt; based on this specification.&quot;=C2=A0 Does this meet your=
 ask?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; OK<br>
&gt; &gt;<br>
&gt; &gt; Added<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; I11) extension subscription-state-notification {<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This statement is not for us=
e<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 outside of this YANG module.=
&quot;;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- this text should be removed. There is no=
 value in limiting<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the scope of this extension.=C2=A0 =
It prevents even this WG from<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 creating a module that uses the ext=
ension again.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This was the subject of significant debate in the WG.=C2=A0 =
The authors<br>
&gt; &gt; &gt; did not want this restriction either.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; To be allowed to progress the document, we inserted the docu=
ment.<br>
&gt; &gt; &gt; If this really is mandatory-to-remove from a YANG doctor<br>
&gt; &gt; &gt; point-of-view, what is the process for quick closure on this=
 issue<br>
&gt; &gt; &gt; between WG leadership and the YANG doctors?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The YANG language makes no restrictions about exporting stat=
ements.<br>
&gt; &gt; &gt; I guess I missed that debate so I will just say OK and wonde=
r what<br>
&gt; &gt; &gt; problem this is supposed to solve. I guess the WG wants to g=
ive YANG<br>
&gt; &gt; &gt; Doctors more things to check. (This is what we called a CLR =
in<br>
&gt; &gt; &gt; SNMP-land ;-)<br>
&gt; &gt;<br>
&gt; &gt; Thanks.=C2=A0 No action taken.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; I13)=C2=A0 =C2=A0notification subscription-started {<br=
>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0sn:subscription-state-notification;<=
br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0if-feature &quot;configured&quot;;<b=
r>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;This notification indic=
ates that a subscription has started and<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0notifications are begi=
nning to be sent. This notification shall<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 only be sent to receivers of=
 a subscription; it does not<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 constitute a general-purpose=
 notification.&quot;;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- 2nd sentence is confusing; all notificat=
ions are sent to<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 receivers of a subscription. last p=
art is redundant since<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the sn:subscription-state-notificat=
ion extension is used<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; There is no issue with removing this second sentence complet=
ely.=C2=A0 If<br>
&gt; &gt; &gt; I did that, would this address your concern?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; OK<br>
&gt; &gt;<br>
&gt; &gt; Done<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; I14)=C2=A0 =C2=A0rc:yang-data modify-subscription-strea=
m-error-info {<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf filter-failure-hint {<br=
>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type string;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;In=
formation describing where and/or why a provided filter<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 was uns=
upportable for a subscription.&quot;;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- rpc-error already allows more precise er=
ror reporting<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 It uses error-tag, error-path, erro=
r-string, and error-info<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 extensions<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 to identify which parameters/condit=
ions caused the RPC to be<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 rejected.<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 This error reporting will continue =
to be used, Not sure this<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 failure-hint<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 has any standards value. Perhaps re=
al-use example can be<br>
&gt; &gt; &gt; &gt; added<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Per your thoughts on rpc-error...=C2=A0 For NETCONF and REST=
CONF, you<br>
&gt; &gt; &gt; point to error structures which historically been used with =
those<br>
&gt; &gt; &gt; transports.<br>
&gt; &gt; &gt; Of course<br>
&gt; &gt; &gt; we were looking to have all subscription hints supportable a=
cross<br>
&gt; &gt; &gt; transports via a single portable YANG data structure.=C2=A0 =
So the value<br>
&gt; &gt; &gt; is that a single string object exists so to transport whatev=
er the<br>
&gt; &gt; &gt; vendor thinks would be useful as a hint in this case.=C2=A0 =
I.e., there<br>
&gt; &gt; &gt; has been no attempt to standardize the contents of this stri=
ng.=C2=A0 If<br>
&gt; &gt; &gt; operational experiences drive a desire for such structuring,=
 this<br>
&gt; &gt; &gt; could provide the basis for a new draft building off of this=
<br>
&gt; &gt; &gt; starting point.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I guess I do not consider NETCONF and RESTCONF &quot;histori=
c&quot; quite yet.<br>
&gt; &gt; &gt; There are many implementations using the rpc-error reporting=
 with no<br>
&gt; &gt; &gt; intent to replace it with something else.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I was just asking for an example, since I have no idea what =
an<br>
&gt; &gt; &gt; implementor would put in this leaf.<br>
&gt; &gt;<br>
&gt; &gt; Here is an example from our implementation.=C2=A0 Say you mistype=
 an extra<br>
&gt; &gt; &quot;\&quot; to an xpath filter:<br>
&gt; &gt; /if:interfaces-state/interface[name=3D&quot;GigabitEthernet0/0&qu=
ot;]/oper-status<br>
&gt; &gt; As a result, the filter is passed to the publisher is:<br>
&gt; &gt; /if:inte\rfaces-state/interface[name=3D&quot;GigabitEthernet0/0&q=
uot;]/oper-status<br>
&gt; &gt;<br>
&gt; &gt; What we would return in the failure-hint string is:<br>
&gt; &gt; Invalid expression: offset(9) in<br>
&gt; &gt; &#39;/if:inte\rfaces-state/interface[name=3D&quot;GigabitEthernet=
0/0&quot;]/oper-status&#39;<br>
&gt; &gt;<br>
&gt; &gt; Eric<br>
&gt; &gt;<br>
&gt; &gt; &gt; Andy<br>
</blockquote></div></div>

--000000000000155ca90580239e9b--


From nobody Wed Jan 23 10:51:17 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id CE3DE130F84; Wed, 23 Jan 2019 10:51:09 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.90.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154826946978.7453.15068834518967524197@ietfa.amsl.com>
Date: Wed, 23 Jan 2019 10:51:09 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/kGtHPIKiF79-chWrH_6Wptw2A7o>
Subject: [netconf] I-D Action: draft-ietf-netconf-subscribed-notifications-22.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 18:51:10 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Subscription to YANG Event Notifications
        Authors         : Eric Voit
                          Alexander Clemm
                          Alberto Gonzalez Prieto
                          Einar Nilsen-Nygaard
                          Ambika Prasad Tripathy
	Filename        : draft-ietf-netconf-subscribed-notifications-22.txt
	Pages           : 78
	Date            : 2019-01-23

Abstract:
   This document defines a YANG data model and associated mechanisms
   enabling subscriber-specific subscriptions to a publisher's event
   streams.  Applying these elements allows a subscriber to request for
   and receive a continuous, custom feed of publisher generated
   information.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-subscribed-notifications/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-subscribed-notifications-22
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-subscribed-notifications-22

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-subscribed-notifications-22


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Wed Jan 23 12:49:05 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5C15E130ECD; Wed, 23 Jan 2019 12:49:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.053
X-Spam-Level: 
X-Spam-Status: No, score=-19.053 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 5PBRsxxeLx8R; Wed, 23 Jan 2019 12:48:54 -0800 (PST)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B050A130EE1; Wed, 23 Jan 2019 12:48:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=133790; q=dns/txt; s=iport; t=1548276533; x=1549486133; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=MnF4zzEbFvYnrfxcc03nGNkIsJaAxEaSzh3qyT+HL08=; b=I4OI8bAVjEjPPKKADhoRQ6K/Rh/sdGHDbqJ45a8pg6xVo2IubxgCJy70 KZs5MkYx8Pov+4MnGw26ypR771BzTpzr8Yo5B6xtahYUPjsGLuyAc3kB1 lT2X6gO+vmdERcxVVlGunQv0Jbi0E7O7PKR1KAtoprhn0SKnJ/U1B8K3w 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAADI0khc/5RdJa1ZAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgQ1NKWaBAicKg3eIGotzgg2YAxS?= =?us-ascii?q?BZwsBASOESQIXgmUiNAkNAQMBAQIBAQJtHAyFSgEBAQECARoBCApKAgULAgE?= =?us-ascii?q?IEQQBAQ4TAQYDAgICMBQJCAIEAQ0FCIJPTIEdXAgPrGiBL4oxBYxBF4FAP4E?= =?us-ascii?q?RghR+gx4CgTYBAw8CAyqCcoI1IgKJUgMICiYLhVsYAYFYhG0SimdcCQKHJIN?= =?us-ascii?q?ahxgggWeIaYEyhhaKBAOBCIQZi18CERSBJx84gVZwFTuCbIInFxNtAQiCQop?= =?us-ascii?q?TQTGIVSmBBYEfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,513,1539648000";  d="scan'208,217";a="508683780"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by rcdn-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Jan 2019 20:48:51 +0000
Received: from XCH-RTP-002.cisco.com (xch-rtp-002.cisco.com [64.101.220.142]) by rcdn-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id x0NKmpDf021874 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 23 Jan 2019 20:48:51 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-002.cisco.com (64.101.220.142) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 23 Jan 2019 15:48:50 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Wed, 23 Jan 2019 15:48:50 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, Alexander Clemm <alexander.clemm@huawei.com>
CC: Martin Bjorklund <mbj@tail-f.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVA
Date: Wed, 23 Jan 2019 20:48:50 +0000
Message-ID: <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com>
References: <0181b187e85a4ab1a41e5adb65d64d4e@XCH-RTP-013.cisco.com> <CABCOCHQMRxX0f3e0x49N7-fwoxFbt-kKkxyouCQaEJxKSGNe1A@mail.gmail.com> <2ff23fa29204403489b6d69fdc5ecd74@XCH-RTP-013.cisco.com> <20190123.093135.970106755262082435.mbj@tail-f.com> <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com> <CABCOCHSo1Fv3-QWfpNUFHXsZxcWCT=dAWNmekYjs1j=64ndneg@mail.gmail.com>
In-Reply-To: <CABCOCHSo1Fv3-QWfpNUFHXsZxcWCT=dAWNmekYjs1j=64ndneg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: multipart/alternative; boundary="_000_7b77b0356d074648a5f1d8096c224210XCHRTP013ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.142, xch-rtp-002.cisco.com
X-Outbound-Node: rcdn-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/U_8eBYQsEKlNQDvctOxuB1w_2R8>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jan 2019 20:49:03 -0000

--_000_7b77b0356d074648a5f1d8096c224210XCHRTP013ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQW5keSwNCg0KDQoNClRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSB0aG9yb3VnaCBZQU5HIERv
Y3RvciByZXZpZXcuICAgSSBoYXZlIGluY2x1ZGVkIHRoZSBhZ3JlZWQgdXBvbiBjb21tZW50cywg
YW5kIHVwbG9hZGVkIHRvOg0KDQpkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmlj
YXRpb25zLTIyDQoNCmEgc3VtbWFyeSBvZiB0aGUgY2xhcmlmaWNhdGlvbnMgbWFkZSBpcyBhdCB0
aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIExldCBtZSBrbm93IGlmIHRoZXJlIGFueXRoaW5nIGVs
c2UgbmVlZGVkIHRvIGNvbmNsdWRlIHRoZSBZQU5HIGRvY3RvciByZXZpZXcgb2YgdGhpcyBkb2N1
bWVudC4NCg0KDQoNCkFsc28gYXMgdGhlIHJlc3VsdCBvZiB0aGUg4oCYZXJyb3ItdGFn4oCZIGRp
c2N1c3Npb24gd2l0aCB5b3UgYW5kIE1hcnRpbiwgd2UgbmVlZCB0byBwZXJmb3JtIHRoZSByZWZp
bmVtZW50IG9mIHRoZSDigJhlcnJvci10YWfigJkgbWFwcGluZyB3aXRoaW4gYm90aCBkcmFmdC1p
ZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zIFNlY3Rpb24gNywgYW5kIGRy
YWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiBTZWN0aW9uIDMuMy4gICBEaXJlY3RseSBi
ZWxvdyBpcyBzb21lIHRleHQgYW5kIHByb3Bvc2VkIGVycm9yLXRhZyBtYXBwaW5ncyBmb3IgdGhv
c2UgZG9jdW1lbnRzLg0KDQoNCg0KICAgIG8gIEFuICJlcnJvci10YWciIG5vZGUgd2l0aCB0aGUg
dmFsdWUgYmVpbmcgYSBzdHJpbmcgdGhhdA0KDQogICAgICAgY29ycmVzcG9uZHMgdG8gYW4gaWRl
bnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMNCg0KICAgICAgICJlcnJvci10
YWciIHdpbGwgY29ycmVzcG9uZCB0byB0aGUgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4NCg0KICAg
ICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10gc2Vj
dGlvbg0KDQogICAgICAgMi40LjYgZm9yIGdlbmVyYWwgc3Vic2NyaXB0aW9uIGVycm9yczoNCg0K
DQoNCiAgICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgIHVzZXMgZXJyb3ItdGFnDQoNCiAg
ICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tDQoNCiAgICAgICAg
ICBkc2NwLXVuYXZhaWxhYmxlICAgICAgIGludmFsaWQtdmFsdWUNCg0KICAgICAgICAgIGVuY29k
aW5nLXVuc3VwcG9ydGVkICAgaW52YWxpZC12YWx1ZQ0KDQogICAgICAgICAgZmlsdGVyLXVuYXZh
aWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQoNCiAgICAgICAgIGZpbHRlci11bnN1cHBvcnRlZCAg
ICAgaW52YWxpZC12YWx1ZQ0KDQogICAgICAgICAgaW5zdWZmaWNpZW50LXJlc291cmNlcyByZXNv
dXJjZS1kZW5pZWQNCg0KICAgICAgICAgIG5vLXN1Y2gtc3Vic2NyaXB0aW9uICAgaW52YWxpZC12
YWx1ZQ0KDQogICAgICAgICAgcmVwbGF5LXVuc3VwcG9ydGVkICAgICBvcGVyYXRpb24tbm90LXN1
cHBvcnRlZA0KDQogICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVl
DQoNCiAgICAgICAgICBzdXNwZW5zaW9uLXRpbWVvdXQgICAgIG9wZXJhdGlvbi1mYWlsZWQNCg0K
ICAgICAgICAgIHVuc3VwcG9ydGFibGUtdm9sdW1lICAgdG9vLWJpZw0KDQoNCg0KICAgICAgIE9y
IHRoaXMgImVycm9yLXRhZyIgd2lsbCBjb3JyZXNwb25kIHRvIHRoZSBlcnJvciBpZGVudGl0aWVz
DQoNCiAgICAgICB3aXRoaW4gW0ktRC5pZXRmLW5ldGNvbmYteWFuZy1wdXNoXSBBcHBlbmRpeCBB
LjEgZm9yDQoNCiAgICAgICBzdWJzY3JpcHRpb24gZXJyb3JzIHNwZWNpZmljIHRvIFlBTkcgZGF0
YXN0b3JlczoNCg0KDQoNCiAgICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgICAgICAgdXNl
cyBlcnJvci10YWcNCg0KICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAtLS0t
LS0tLS0tLS0tLQ0KDQogICAgICAgICAgY2FudC1leGNsdWRlICAgICAgICAgICAgICAgIG9wZXJh
dGlvbi1ub3Qtc3VwcG9ydGVkDQoNCiAgICAgICAgICBkYXRhc3RvcmUtbm90LXN1YnNjcmliYWJs
ZSAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCg0KICAgICAgICAgIG5vLXN1Y2gtc3Vic2NyaXB0
aW9uLXJlc3luYyBpbnZhbGlkLXZhbHVlDQoNCiAgICAgICAgICBvbi1jaGFuZ2UtdW5zdXBwb3J0
ZWQgICAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCg0KICAgICAgICAgIG9uLWNoYW5nZS1z
eW5jLXVuc3VwcG9ydGVkICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KDQogICAgICAgICAgcGVy
aW9kLXVuc3VwcG9ydGVkICAgICAgICAgIGludmFsaWQtdmFsdWUNCg0KICAgICAgICAgIHVwZGF0
ZS10b28tYmlnICAgICAgICAgICAgICB0b28tYmlnDQoNCiAgICAgICAgICBzeW5jLXRvby1iaWcg
ICAgICAgICAgICAgICAgdG9vLWJpZw0KDQogICAgICAgICAgdW5jaGFuZ2luZy1zZWxlY3Rpb24g
ICAgICAgIG9wZXJhdGlvbi1mYWlsZWQNCg0KDQoNCg0KDQpEbyB5b3UgKG9yIGFueW9uZSBlbHNl
IGluIHRoaXMgdGhyZWFkKSBoYXZlIGFueSBzdWdnZXN0aW9ucyBvbiB0aGUgdGV4dCBvciBwcm9w
b3NlZCBtYXBwaW5ncz8gIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIG9rLCBBbGV4IHdpbGwgbmVl
ZCB0byByZW1vdmUgdGhlIE5FVENPTkYgZXJyb3ItdGFnIHNwZWNpZmljcyBmcm9tIGRyYWZ0LWll
dGYtbmV0Y29uZi15YW5nLXB1c2ggU2VjdGlvbnMgNC40LjEgJiA0LjQuMg0KDQoNCg0KQWxzbyBS
ZXNoYWQgd2lsbCBoYXZlIHRvIGRvIHNvbWUgd29yayBiZWNhdXNlIGhlIGlzIHRoZSBZQU5HIGRv
Y3RvciBvZiBuZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgYW5kIGhlIHdpbGwg
d2FudCB0byBpbmNsdWRlIHRoZSBzYW1lIGluZm9ybWF0aW9uIHdpdGhpbiBkcmFmdC1pZXRmLW5l
dGNvbmYtcmVzdGNvbmYtbm90aWYuDQoNCg0KDQpUaGFua3MsDQoNCkVyaWMNCg0KDQoNCg0KDQpG
cm9tOiBBbmR5IEJpZXJtYW4gPGFuZHlAeXVtYXdvcmtzLmNvbT4NCg0KU2VudDogV2VkbmVzZGF5
LCBKYW51YXJ5IDIzLCAyMDE5IDEyOjQyIFBNDQoNClRvOiBFcmljIFZvaXQgKGV2b2l0KSA8ZXZv
aXRAY2lzY28uY29tPg0KDQpDYzogTWFydGluIEJqb3JrbHVuZCA8bWJqQHRhaWwtZi5jb20+OyB5
YW5nLWRvY3RvcnNAaWV0Zi5vcmc7IG5ldGNvbmZAaWV0Zi5vcmc7IGRyYWZ0LWlldGYtbmV0Y29u
Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuYWxsQGlldGYub3JnDQoNClN1YmplY3Q6IFJlOiBb
eWFuZy1kb2N0b3JzXSBZYW5nZG9jdG9ycyBsYXN0IGNhbGwgcmV2aWV3IG9mIGRyYWZ0LWlldGYt
bmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMtMjENCg0KDQoNCg0KDQoNCg0KT24gV2Vk
LCBKYW4gMjMsIDIwMTkgYXQgNDozNSBBTSBFcmljIFZvaXQgKGV2b2l0KSA8bWFpbHRvOmV2b2l0
QGNpc2NvLmNvbT4gd3JvdGU6DQoNCj4gRnJvbTogTWFydGluIEJqb3JrbHVuZCwgSmFudWFyeSAy
MywgMjAxOSAzOjMyIEFNDQoNCj4NCg0KPiBIaSwNCg0KPg0KDQo+ICJFcmljIFZvaXQgKGV2b2l0
KSIgPG1haWx0bzpldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KDQo+ID4gSGkgQW5keSwNCg0KPiA+
DQoNCj4gPiBMb29raW5nIGF0IHlvdXIgcHJvcG9zYWwuLi4gIE15IHJlYWRpbmcgaXMgdGhhdCBp
dCB0YWtlcyB0aGUgdHJhbnNwb3J0DQoNCj4gPiBzcGVjaWZpYyBlcnJvciBpbmZvIGNvbnRhaW5l
ZCBpbg0KDQo+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9u
cyBzZWN0aW9uIDcsIGFuZCB0aGVuDQoNCj4gPiByZXBsaWNhdGVzIHRoYXQgaW5mbyB3aXRoaW4g
MTIgc2VwYXJhdGUgZGVzY3JpcHRpb24gb2JqZWN0cyBvZiB0aGUNCg0KPiA+IHRyYW5zcG9ydCBp
bmRlcGVuZGVudCBpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy55YW5nLiAgVGhlIHZhbHVl
DQoNCj4gPiB5b3UgYXJlIGFzc2VydGluZyBpcyB0aGF0IFJGQ3MgY29udGFpbmluZyBZQU5HIG1v
ZGVscyBjb250YWluaW5nIHRoZQ0KDQo+ID4gcnBjLXN0bXQgaGF2ZSB0cmFkaXRpb25hbGx5IGRv
Y3VtZW50IHRoZSBtYW5kYXRvcnktdG8taW1wbGVtZW50DQoNCj4gPiAiZXJyb3ItdGFnIiBmaWVs
ZCB3aXRoaW4gdGhlIG1vZGVsLiAgQW5kIHByZXN1bWFibHkgeW91IGFyZSBjb25jZXJuZWQNCg0K
PiA+IHRoYXQgZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gbG9vayBlbHNld2hlcmUgZm9y
IHRoaXMNCg0KPiA+IGluZm9ybWF0aW9uLg0KDQo+DQoNCj4gSSB0aGluayB0aGF0IG1heWJlIHRo
ZXJlIGFyZSB0d28gc2VwYXJhdGUgaXNzdWVzIGhlcmUuDQoNCj4NCg0KPiBUaGUgZmlyc3QgaXNz
dWUgaXMgdGhhdCBmb3IgZWFjaCBlcnJvciBpZGVudGl0eSBkZWZpbmVkLCB0aGVyZSBuZWVkcyB0
byBiZSBhDQoNCj4gbWFwcGluZyB0byB0aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJyb3IgaGFuZGxp
bmcuICBBbmR5IHN1Z2dlc3RzIHRoYXQgdGhpcyBpbmZvIGlzDQoNCj4gYWRkZWQgdG8gdGhpcyBk
b2N1bWVudCwgYnV0IGN1cnJlbnRseSB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB0
aGUNCg0KPiBwcm90Y29sLW1hcHBpbmcgZG9jdW1lbnRzIChuZXRjb25mLW5vdGlmIGFuZCByZXN0
Y29uZi1ub3RpZikuICBQZXJzb25hbGx5LCBJDQoNCj4gdGhpbmsgdGhhdCB0aGUgY3VycmVudCBz
cGxpdCBvZiB0ZXh0IGJldHdlZW4gZG9jdW1lbnRzIGlzIGZpbmUuDQoNCj4NCg0KPiBUaGUgc2Vj
b25kIGlzc3VlIGlzIHRoYXQgY3VycmVudGx5LCBib3RoIG5ldGNvbmYtbm90aWYgYW5kIHJlc3Rj
b25mLW5vdGlmIHNheQ0KDQo+IHRoYXQgKmFsbCogdGhlc2UgZXJyb3JzIHVzZSB0aGUgZXJyb3It
dGFnICJvcGVyYXRpb24tZmFpbGVkIi4gIEVzc2VudGlhbGx5IGl0IG1lYW5zDQoNCj4gdGhhdCB3
ZSBieXBhc3MgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwcm90b2NvbHMuICBBcyBBbmR5IHBv
aW50cyBvdXQgYmVsb3csDQoNCj4gdGhlIGVycm9yICJpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIiBz
aG91bGQgYmUgbWFwcGVkIHRvICJyZXNvdXJjZS1kZW5pZWQiIGluDQoNCj4gTkVUQ09ORiBhbmQg
UkVTVENPTkYgKHRoZXkgbWVhbiB0aGUgc2FtZSB0aGluZykuICBTbyBpdCBtaWdodCBtYWtlIHNl
bnNlDQoNCj4gdG8gY2FyZWZ1bGx5IGdvIHRocm91Z2ggdGhlIGxpc3Qgb2YgZXJyb3JzIGFuZCBt
YXAgdGhlbSB0byB0aGUgY29ycmVjdCBlcnJvci10YWcNCg0KPiAoYnV0IHNwZWNpZml5IHRoaXMg
aW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMpLg0KDQoNCg0KSSBhbSBjb21wbGV0ZWx5IGdvb2Qgd2l0
aCB0aGlzLiAgIERvZXMgdGhpcyB3b3JrIGZvciB5b3UgQW5keT8NCg0KDQoNClRoaXMgaXMgYmV0
dGVyLg0KDQpJJ20gZ2xhZCBubyBvdGhlciBkcmFmdHMgYXJlIGNyZWF0aW5nIHRoZWlyIG93biBl
cnJvciByZXBvcnRpbmcgc3lzdGVtIGZvciBlYWNoIHJwYy1zdG10Lg0KDQpUaGlzIGlzIGEgYmFk
IHByZWNlZGVudCBhbmQgbGlrZWx5IHRvIGJlIHNraXBwZWQgaW4gaW1wbGVtZW50YXRpb25zLg0K
DQoNCg0KRXJpYw0KDQoNCg0KPiAvbWFydGluDQoNCj4NCg0KDQoNCkFuZHkNCg0KDQoNCg0KDQo+
DQoNCj4NCg0KPg0KDQo+ID4NCg0KPiA+IElmIHRoZSBZQU5HIGRvY3RvcnMgcmVxdWlyZSB0aGlz
LCBpdCBjYW4gYmUgaW5zZXJ0ZWQuICBBIHNpbWlsYXIgdGV4dA0KDQo+ID4gY2hhbmdlIHdvdWxk
IGJlIG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4gWUFORw0K
DQo+ID4gUHVzaC4gIFBlcnNvbmFsbHkgSSBkb27igJl0IGxpa2UgdGhhdCBZQU5HIG1vZGVscyBz
aG91bGQgYmUgcmVxdWlyZWQgdG8NCg0KPiA+IGVtYmVkIHRoaXMgaW5mb3JtYXRpb24uICBCdXQg
SSB3aWxsIG1ha2UgdGhlIGNoYW5nZSBpZiB5b3UgcmVhbGx5IHdhbnQNCg0KPiA+IHRoaXMsIGFu
ZCBub2JvZHkgZWxzZSBvYmplY3RzLg0KDQo+ID4NCg0KPiA+IE90aGVyIHRoYW4gdGhhdCwgSSBh
bSBub3QgYXdhcmUgb2YgYW55IG90aGVyIG9wZW4gaXNzdWVzIGluIHRoZSBZQU5HDQoNCj4gPiBE
b2N0b3IgcmV2aWV3LiAgRG8geW91IGtub3cgb2YgYW55dGhpbmcgZWxzZT8NCg0KPiA+DQoNCj4g
PiBFcmljDQoNCj4gPg0KDQo+ID4NCg0KPiA+IEZyb206IEFuZHkgQmllcm1hbiwgSmFudWFyeSAy
MSwgMjAxOSAyOjI2IFBNDQoNCj4gPg0KDQo+ID4gSGksDQoNCj4gPg0KDQo+ID4gSSB0aGluayB0
aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZlZCBieSBpbmNsdWRpbmcgMSBleHRyYQ0K
DQo+ID4gc2VudGVuY2UgaW4gZWFjaCBlcnJvciBpZGVudGl0eS4NCg0KPiA+IEkga25vdyB0aGlz
IGlzIE5FVENPTkYgYW5kIFJFU1RDT05GIGNlbnRyaWMgYnV0IHRob3NlIGFyZSB0aGUgb25seSAy
DQoNCj4gPiBzdGFuZGFyZCBwcm90b2NvbHMgc3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFn
ZSByaWdodCBub3cuDQoNCj4gPg0KDQo+ID4gICAgICAgIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVs
ZCBpcyB1c2VkIGluIGVycm9yIHJlcG9ydGluZywNCg0KPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1
ZSAnPGNvcnJlY3QgZXJyb3ItdGFnPicgTVVTVCBiZSB1c2VkLg0KDQo+ID4NCg0KPiA+IEZvciBl
eGFtcGxlOg0KDQo+ID4NCg0KPiA+DQoNCj4gPiBPTEQ6DQoNCj4gPg0KDQo+ID4gICBpZGVudGl0
eSBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHsNCg0KPiA+ICAgICBiYXNlIGVzdGFibGlzaC1zdWJz
Y3JpcHRpb24tZXJyb3I7DQoNCj4gPiAgICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9y
Ow0KDQo+ID4gICAgIGJhc2Ugc3Vic2NyaXB0aW9uLXN1c3BlbmRlZC1yZWFzb247DQoNCj4gPiAg
ICAgZGVzY3JpcHRpb24NCg0KPiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2ll
bnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQoNCj4gPiAgICAgICAgcmVxdWVzdGVkIHN1YnNj
cmlwdGlvbi4gIEFuIGV4YW1wbGUgbWlnaHQgYmUgdGhhdCBhbGxvY2F0ZWQgQ1BVDQoNCj4gPiAg
ICAgICAgaXMgdG9vIGxpbWl0ZWQgdG8gZ2VuZXJhdGUgdGhlIGRlc2lyZWQgc2V0IG9mIG5vdGlm
aWNhdGlvbg0KDQo+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQoNCj4gPiAgIH0NCg0KPiA+DQoNCj4g
Pg0KDQo+ID4gTkVXOg0KDQo+ID4NCg0KPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291
cmNlcyB7DQoNCj4gPiAgICAgYmFzZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLWVycm9yOw0KDQo+
ID4gICAgIGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjsNCg0KPiA+ICAgICBiYXNlIHN1
YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KDQo+ID4gICAgIGRlc2NyaXB0aW9uDQoNCj4g
PiAgICAgICAiVGhlIHB1Ymxpc2hlciBoYXMgaW5zdWZmaWNpZW50IHJlc291cmNlcyB0byBzdXBw
b3J0IHRoZQ0KDQo+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxl
IG1pZ2h0IGJlIHRoYXQgYWxsb2NhdGVkIENQVQ0KDQo+ID4gICAgICAgIGlzIHRvbyBsaW1pdGVk
IHRvIGdlbmVyYXRlIHRoZSBkZXNpcmVkIHNldCBvZiBub3RpZmljYXRpb24NCg0KPiA+ICAgICAg
ICBtZXNzYWdlcy4gSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3IgcmVw
b3J0aW5nLA0KDQo+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1V
U1QgYmUgdXNlZC4iOw0KDQo+ID4gICB9DQoNCj4gPg0KDQo+ID4NCg0KPiA+IEFuZHkNCg0KPiA+
DQoNCj4gPg0KDQo+ID4gT24gRnJpLCBKYW4gMTgsIDIwMTkgYXQgMTE6NTMgQU0gRXJpYyBWb2l0
IChldm9pdCkNCg0KPiA+IDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPG1haWx0bzptYWlsdG86ZXZv
aXRAY2lzY28uY29tPj4gd3JvdGU6DQoNCj4gPiBIaSBBbmR5LA0KDQo+ID4NCg0KPiA+IFRoYW5r
cy4gIEkgaGF2ZSBpbmNvcnBvcmF0ZWQgaXRlbXMgd2hlcmUgdGhlcmUgd2FzIGFncmVlbWVudC4g
IEkgaGF2ZQ0KDQo+ID4gcmVtb3ZlZCB0aGUgaXRlbXMgYmVsb3cgd2hlcmUgeW91IHdlcmUgb2su
DQoNCj4gPg0KDQo+ID4gUmVtYWluaW5nIGJlbG93IGFyZSB0aGUgb3BlbiBpdGVtcywgd2l0aCBy
ZXNwb25zZXMuDQoNCj4gPg0KDQo+ID4gPiA+ICAgIFNob3VsZCBiZSBjbGVhciBzb21ld2hlcmUg
dGhhdA0KDQo+ID4gPiA+ICAgIHN1c3BlbmQgaXMgZm9yIENQVSBhbmQgb3RoZXIgcmVzb3VyY2Vz
LCBhbmQgTkFDTSBub3QgY29uc2lkZXJlZA0KDQo+ID4gPiA+ICAgIHRvIGJlIGEgcmVzb3VyY2Uu
DQoNCj4gPiA+DQoNCj4gPiA+IElmIE5BQ00gaXMgYWN0aXZlLCBpdCBuZWVkcyB0byBiZSBmb2xs
b3dlZC4gIFRoZSB0ZXh0IHdlIGhhdmUgZm9yDQoNCj4gPiA+IE5BQ00gaXMgaW4gU2VjdGlvbiA1
LjQuICBEbyB5b3Ugc2VlIHNvbWV0aGluZyBlbHNlIHNwZWNpZmljIHRvDQoNCj4gPiA+IHN1YnNj
cmlwdGlvbiBzdXNwZW5zaW9uIG5lZWRlZCBoZXJlPyAgKE1heWJlIEkgYW0gbm90IGdldHRpbmcg
eW91cg0KDQo+ID4gPiBwb2ludC4pDQoNCj4gPiA+DQoNCj4gPiA+IE5vIC0tIE9LIHRvIGxlYXZl
IE5BQ00gYXMgdGVybWluYXRlLWlmLWxvc3Mtb2YtcmlnaHRzIChJcyB0aGVyZSBhbg0KDQo+ID4g
PiBlcnJvciBpZGVudGl0eSBmb3IgdGhpcyBldmVudD8pDQoNCj4gPg0KDQo+ID4gVGhlIGlkZW50
aXR5IHdoaWNoIGFwcGxpZXMgaGVyZSBpcyAic3RyZWFtLXVuYXZhaWxhYmxlIi4gIFRoaXMgaXMg
dGhlDQoNCj4gPiBzYW1lIGlkZW50aXR5IHdoaWNoIHdvdWxkIGJlIHVzZWQgaWYgYSBzdWJzY3Jp
YmVyIGhhZCBuZXZlciBzdWZmaWNpZW50DQoNCj4gPiBwZXJtaXNzaW9ucyBpbiB0aGUgZmlyc3Qg
cGxhY2UuICBJIGRvbid0IGJlbGlldmUgd2Ugd291bGQgd2FudCB0bw0KDQo+ID4gcmV0dXJuIGFu
IGlkZW50aXR5IHNwZWNpZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBlcm1pc3Npb25zIGhhdmUganVz
dA0KDQo+ID4gYmVlbiBjaGFuZ2VkLg0KDQo+ID4NCg0KPiA+ID4gPiBJMykgc2VjIDIuMSBwYXJh
IDY6DQoNCj4gPiA+ID4gICAgRXZlbnQgcmVjb3JkcyBNVVNUIE5PVCBiZSBkZWxpdmVyZWQgdG8g
YSByZWNlaXZlciBpbiBhIGRpZmZlcmVudA0KDQo+ID4gPiA+ICAgIG9yZGVyIHRoYW4gdGhleSB3
ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCg0KPiA+ID4gPg0KDQo+ID4gPiA+ICAg
LS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1YnNjcmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LCB0aGV5
IGFyZSBub3QgZXZlbnRzDQoNCj4gPiA+ID4gICAgIHBsYWNlZCBpbiBldmVudCBzdHJlYW0uDQoN
Cj4gPiA+DQoNCj4gPiA+IEFncmVlIHRoYXQgdGhleSBhcmUgbm90IG9uIHRoZSBldmVudCBzdHJl
YW0uICBTbyB0aGV5IGRvIG5vdCB2aW9sYXRlDQoNCj4gPiA+IHRoaXMgcmVxdWlyZW1lbnQuDQoN
Cj4gPiA+DQoNCj4gPiA+IEFkZGl0aW9uYWxseSB0aGVyZSBpcyBzdXBwb3J0aW5nIHRleHQgaW4g
IlNlY3Rpb24gMi43OiBzdWJzY3JpcHRpb24NCg0KPiA+ID4gc3RhdGUgbm90aWZpY2F0aW9ucyIs
IGluY2x1ZGluZy4uLg0KDQo+ID4gPg0KDQo+ID4gPiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2Vy
dGVkIChhcyBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbikgd2l0aGluIHRoZQ0KDQo+ID4gPiBzZXF1
ZW5jZSBvZiBub3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBhIHBhcnRpY3VsYXIgcmVjZWl2
ZXIuIg0KDQo+ID4gPg0KDQo+ID4gPiA+ICAgICBOZWVkIHRvIGFsbG93IGVuZGVkIG9yIHN1c3Bl
bmRlZCB0byBiZSBzZW50DQoNCj4gPiA+ID4gICAgIGhlYWQtb2YtbGluZSB3aGVuZXZlciBzdGF0
ZSBjaGFuZ2VzDQoNCj4gPiA+DQoNCj4gPiA+IEkgYW0gbm90IHN1cmUgdGhhdCBzdXNwZW5kZWQg
c2hvdWxkIGFsd2F5cyBiZSBzZW50IGhlYWQtb2YtbGluZS4NCg0KPiA+ID4gQ29uc2lkZXINCg0K
PiA+ID4gdGhhdCBpbXBsZW1lbnRhdGlvbiBtaWdodCB3YW50IHRvIGxldCB0aGUgZXhpc3Rpbmcg
cXVldWUgb2YgZmlsdGVyZWQNCg0KPiA+ID4gZXZlbnQgcmVjb3JkcyBiZSBzZW50IGlmIGlzIGZp
bHRlciBjb21wbGV4aXR5IGNhdXNpbmcgdGhlIENQVSBpc3N1ZS4NCg0KPiA+ID4gVGhhdCBjb3Vs
ZCBiZSBkaWZmZXJlbnQgdGhhbiBpZiBpdCBpcyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5nIHRo
ZQ0KDQo+ID4gPiBzdXNwZW5zaW9uLCBhbmQgeW91IGRlZmluaXRlbHkgd2FudCB0aGUgJ3N1YnNj
cmlwdGlvbi1zdXNwZW5kZWQnIHRvDQoNCj4gPiA+IGJlIHBsYWNlZCBhdCB0aGUgaGVhZCBvZiBs
aW5lLg0KDQo+ID4gPg0KDQo+ID4gPg0KDQo+ID4gPiBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVy
IHRvIGRlY2lkZSB3aGVuIHRvIHN0b3Agc2VuZGluZyBldmVudHMgb24gYQ0KDQo+ID4gPiBzdWJz
Y3JpcHRpb24uDQoNCj4gPiA+IE9idmlvdXNseSB0aGUgcHVibGlzaGVyIGNhbm5vdCB3YWl0IHVu
dGlsIHRoZSBzdWJzY3JpcHRpb24gaXMgaWRsZS4NCg0KPiA+ID4gVGhlIHJlYXNvbiBpdCBpcyBn
ZXR0aW5nIHN1c3BlbmRlZCBpcyBpdCBpcyBmYXIgZnJvbSBpZGxlDQoNCj4gPiA+DQoNCj4gPiA+
IFNvIGFsc28gdXAgdG8gdGhlIHB1Ymxpc2hlciB3cnQvIHdoYXQgdG8gZG8gd2l0aCBhbnkgZXZl
bnRzIHRoYXQNCg0KPiA+ID4gaGF2ZSBub3QgYmVlbiBkZWxpdmVyZWQgeWV0IG9uIGEgc3Vic2Ny
aXB0aW9uLiAgQ291bGQgZGVsZXRlIHRoZW0gb3INCg0KPiA+ID4gc2F2ZSB0aGVtIGZvciB3aGVu
IG1vcmUgYmFuZHdpZHRoIGF2YWlsYWJsZSAoZm9yIGV4YW1wbGUpDQoNCj4gPg0KDQo+ID4gQWdy
ZWUgZnVsbHkgd2l0aCB0aGlzLiAgSXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQg
aGVyZT8NCg0KPiA+DQoNCj4gPiAuLi4NCg0KPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8g
dGhlIGltcGxlbWVudGF0aW9uIHRvIGRlY2lkZSBpZiBzb21lDQoNCj4gPiA+IHVuLXRyYW5zbWl0
dGVkIHF1ZXVlIG9mIGV2ZW50IHJlY29yZHMgc2hvdWxkIGJlIGZsdXNoZWQgYW5kDQoNCj4gPiA+
IHJlcHJvY2Vzc2VkIGJhc2VkIG9uIHRoZSBtb2RpZmljYXRpb24uICBJIGRvIG5vdCBleHBlY3Qg
dGhpcyB3b3VsZA0KDQo+ID4gPiBwb3B1bGFyLCBhcyBhIHJlcGxheSBzdWJzY3JpcHRpb24gY291
bGQgYWNjb21wbGlzaCB0aGlzIHNhbWUNCg0KPiA+ID4gZnVuY3Rpb25hbCBuZWVkLg0KDQo+ID4g
Pg0KDQo+ID4gPiBBZ3JlZWQgdGhhdCBhbiBpbXBsZW1lbnRhdGlvbiBjYW4gZHJvcCBhdCBhbnkg
dGltZSBhbmQgaW5jcmVtZW50IHRoZQ0KDQo+ID4gPiBhcHByb3ByaWF0ZSBjb3VudGVycy4gSXQg
d2lsbCB0cnkgdG8gdG8gZG8gdGhpcywgYnV0IG5vIHJlcXVpcmVtZW50cw0KDQo+ID4gPiBleGNl
cHQgbWF5YmUgc3Vic2NyaXB0aW9uIGV2ZW50cyBsaWtlICdyZXBsYXktY29tcGxldGVkJyBjYW5u
b3QgYmUNCg0KPiA+ID4gZHJvcHBlZA0KDQo+ID4NCg0KPiA+IEhhdmUgcHV0IGEgbWlub3IgdHdl
YWsgaW50byBTZWN0aW9uIDIuNzoNCg0KPiA+DQoNCj4gPiBbb2xkXSAgc3Vic2NyaXB0aW9uIHN0
YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBmaWx0ZXJlZCBvdXQNCg0KPiA+DQoN
Cj4gPiBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fubm90
IGJlIGRyb3BwZWQgb3INCg0KPiA+IGZpbHRlcmVkIG91dA0KDQo+ID4NCg0KPiA+IC4uLg0KDQo+
ID4gPiBUaGlua2luZyBtb3JlIG9uIHlvdXIgcG9pbnQsIGl0IG1pZ2h0IGJlIHdvcnRoIHR3ZWFr
aW5nIGEgY291cGxlDQoNCj4gPiA+IHdvcmRzIHRvIGFsbG93IGZvciBoZWFkLW9mLWxpbmUgcGxh
Y2VtZW50IG9mDQoNCj4gPiA+ICJzdWJzY3JpcHRpb24tc3VzcGVuZGVkIi4NCg0KPiA+ID4NCg0K
PiA+ID4gICAgIlN1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBxdWV1ZWQgZm9yIHNlbmRpbmcgYWZ0
ZXIgdGhlIGlzc3VhbmNlIG9mDQoNCj4gPiA+ICAgIHRoaXMNCg0KPiA+ID4gICAgc3Vic2NyaXB0
aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCg0KPiA+ID4N
Cg0KPiA+ID4gQXJlIHlvdSBnb29kIHdpdGggdGhpcyBzdWdnZXN0ZWQgY2hhbmdlPw0KDQo+ID4g
Pg0KDQo+ID4gPiBOb3Qgc3VyZSAtLSBpdCBuZWVkcyB0byBiZSBjbGVhciB0aGF0IHN1YnNjcmlw
dGlvbi1zdXNwZW5kZWQgaXMgdGhlDQoNCj4gPiA+IGxhc3QgZXZlbnQgc2VudCBiZWZvcmUgc3Vz
cGVuZGluZyBhbmQgc3Vic2NyaXB0aW9uLXJlc3VtZWQgaXMgdGhlDQoNCj4gPiA+IGZpcnN0IGV2
ZW50IHNlbnQgYWZ0ZXIgdHJhbnNpdGlvbiBmcm9tIHN1c3BlbmRlZCB0byBhY3RpdmUuDQoNCj4g
PiA+IFRoZSBuZXh0IGV2ZW50IGNvdWxkIGFsc28gYmUgc3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQu
DQoNCj4gPg0KDQo+ID4gSSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4g
dGhlIHRleHQuICBGb3IgU2VjdGlvbiAyLjcuNA0KDQo+ID4gc3Vic2NyaXB0aW9uLXN1c3BlbmRl
ZCB0aGUgY3VycmVudCB0ZXh0IGlzOg0KDQo+ID4NCg0KPiA+ICJObyBmdXJ0aGVyIG5vdGlmaWNh
dGlvbiB3aWxsIGJlIHNlbnQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbiByZXN1bWVzDQoNCj4gPiBv
ciBpcyB0ZXJtaW5hdGVkLiINCg0KPiA+DQoNCj4gPiBBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3Jp
cHRpb24tcmVzdW1lZCBzYXlzIjoNCg0KPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgZ2Vu
ZXJhdGVkIGFmdGVyIHRoZSBpc3N1YW5jZSBvZiB0aGlzDQoNCj4gPiBzdWJzY3JpcHRpb24gc3Rh
dGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNlbnQuIg0KDQo+ID4NCg0KPiA+IEJh
c2VkIG9uIHRoZSBkaXNjdXNzaW9uLCBJIGNhbiBtYWtlIGl0Og0KDQo+ID4NCg0KPiA+ICJTdWJz
Y3JpYmVkIGV2ZW50IHJlY29yZHMgYXJlIGFnYWluIHBlcm1pdHRlZCB0byBiZSBzZW50IGZvbGxv
d2luZw0KDQo+ID4gdGhpcyBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbi4i
DQoNCj4gPg0KDQo+ID4gSXMgdGhpcyBzdWZmaWNpZW50IGZvciB5b3U/DQoNCj4gPg0KDQo+ID4g
Li4uDQoNCj4gPiA+ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQoNCj4gPiA+ID4gICAt
LSBjb25jZXJuIGFib3V0IGEgc3Vic2NyaXB0aW9uLXNwZWNpZmljIGVycm9yIHJlcG9ydGluZyBz
eXN0ZW0NCg0KPiA+ID4gPiAgICAgIG11c3QgbWFrZSBzdXJlIHByb3RvY29sIGVycm9yIHJlcG9y
dGluZyBzeXN0ZW0gaXMgdXNlZA0KDQo+ID4gPiA+IGNvcnJlY3RseQ0KDQo+ID4gPg0KDQo+ID4g
PiBZZXMuICBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdpdGggdGhlIGVtYmVk
ZGVkIE5FVENPTkYNCg0KPiA+ID4gYW5kIFJFU1RDT05GIG1lY2hhbmlzbXMuICBUaGVyZSBpcyBt
dWNoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4NCg0KPiA+ID4gdGhlIHRyYW5zcG9ydCBkcmFm
dHMgaGVyZS4NCg0KPiA+ID4NCg0KPiA+ID4gPiAgIC0tIFRoZSBlcnJvci10YWcgdmFsdWUgbmVl
ZHMgdG8gYmUgaWRlbnRpZmllZCBmb3IgZWFjaCAncmVhc29uJw0KDQo+ID4gPiA+IGlkZW50aXR5
DQoNCj4gPiA+DQoNCj4gPiA+IFRoaXMgaXMgZG9uZSBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cy4g
IEUuZy4sIHNlZQ0KDQo+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC0NCg0K
PiA+ID4gbm90aWZpY2F0aW9ucyBTZWN0aW9uIDcNCg0KPiA+ID4NCg0KPiA+ID4gSSBkbyBub3Qg
YWdyZWUgdGhpcyBpcyBhIGdvb2QgaWRlYS4NCg0KPiA+ID4gRWFjaCBlcnJvciBpZGVudGl0eSBz
aG91bGQgc2ltcGx5IHN0YXRlIHRoZSByZXF1aXJlZCAiZXJyb3ItdGFnIg0KDQo+ID4gPiB0aGF0
IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuICBUaGlzIGlzIGV4cGVjdGVkIG9mIHByb3Rv
Y29sDQoNCj4gPiA+IG9wZXJhdGlvbnMgdGhhdCBhcmUgYWRkZWQgdG8gTkVUQ09ORiBhbmQgUkVT
VENPTkYuDQoNCj4gPg0KDQo+ID4gSW4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQt
bm90aWZpY2F0aW9ucywgc2VjdGlvbiA3LCB0aGUNCg0KPiA+IHJlcXVpcmVkICJlcnJvci10YWci
IGlzIGlkZW50aWZpZWQgYXMgIm9wZXJhdGlvbi1mYWlsZWQiLiAgSWYgd2UNCg0KPiA+IGluc3Rl
YWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIgaW5mb3JtYXRpb24gaW4gdGhlIFlBTkcgbW9kZWws
IHRoZW4gd2UNCg0KPiA+IGhhdmUgdGllZCB0aGUgWUFORyBtb2RlbCB0byB0aGUgUkVTVENPTkYg
YW5kIE5FVENPTkYgdHJhbnNwb3J0cy4NCg0KPiA+DQoNCj4gPiA+IEJvdGggTkVUQ09ORiBhbmQg
UkVTVENPTkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciByZXBvcnRpbmcgZGF0YQ0KDQo+ID4gPiBz
dHJ1Y3R1cmUuDQoNCj4gPiA+IFRoZSAiZXJyb3ItdGFnIiBpcyB1c2VkIGluIGJvdGggb2YgdGhl
bS4gIElNTyBjbGllbnQgZGV2ZWxvcGVycyBkbw0KDQo+ID4gPiBub3Qgd2FudCBhIGRpZmZlcmVu
dCBzZXQgb2YgZXJyb3IgY29kZXMgZm9yIHRoZSBzYW1lIGVycm9yIGNvbmRpdGlvbnMuDQoNCj4g
Pg0KDQo+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIFNlY3Rpb24gMy4zIGFs
c28gcmVxdWlyZXMgYW4NCg0KPiA+ICJlcnJvci10YWciIG5vZGUgb2YgIm9wZXJhdGlvbi1mYWls
ZWQiLiAgU28gd2UgdXNlZCB0aGUgdHJhbnNwb3J0DQoNCj4gPiBkcmFmdHMgcmF0aGVyIHRoYW4g
dGhlIFlBTkcgbW9kZWwgdG8gc3VwcG9ydCB0aGUgc2FtZSBlcnJvciBjb2RlcyBmb3INCg0KPiA+
IHRoZSBzYW1lIGVycm9yIGNvbmRpdGlvbnMuDQoNCj4gPg0KDQo+ID4gPiBJIGFncmVlIHRoYXQg
dHJhbnNwb3J0IGRyYWZ0cyBjb3VsZCBkZWZpbmUgdGhlaXIgb3duIGVycm9yDQoNCj4gPiA+IGlk
ZW50aXRpZXMsIHdoaWNoIHdvdWxkIGRvY3VtZW50IHRoZSBleHBlY3RlZCBlcnJvci10YWcgdGhl
cmUuDQoNCj4gPiA+DQoNCj4gPiA+DQoNCj4gPiA+ID4gICAgMi4gICJtb2RpZnktc3Vic2NyaXB0
aW9uLXN0cmVhbS1lcnJvci1pbmZvIjogVGhpcyBNVVNUIGJlIHJldHVybmVkDQoNCj4gPiA+ID4g
ICAgICAgIHdpdGggdGhlIGxlYWYgInJlYXNvbiIgcG9wdWxhdGVkIGlmIGFuIFJQQyBlcnJvciBy
ZWFzb24gaGFzIG5vdA0KDQo+ID4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0
aGluIHRoZSB0cmFuc3BvcnQgcG9ydGlvbiBvZiBhIGZhaWxlZA0KDQo+ID4gPiA+ICAgICAgICAi
bW9kaWZ5LXN1YnNjcmlwdGlvbiIgUlBDIHJlc3BvbnNlLiAgVGhpcyBNVVNUIGJlIHNlbnQgaWYN
Cg0KPiA+ID4gPiBoaW50cw0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAtLSBhbGwgMyBwYXJhZ3Jh
cGhzIGxpa2UgdGhpczsgdW5jbGVhciB3aGF0ICJwbGFjZWQgZWxzZXdoZXJlIg0KDQo+ID4gPiA+
ICAgICAgIHRleHQgbWVhbnM7IG5vdCBhcHByb3ByaWF0ZSBmb3IgTVVTVDsNCg0KPiA+ID4NCg0K
PiA+ID4gSW5zdGVhZCBvZiAicGxhY2VkIGVsc2V3aGVyZSIsIGhvdyBhYm91dDogInBsYWNlZCBp
biBzdWJzY3JpcHRpb24NCg0KPiA+ID4gdHJhbnNwb3J0IGRvY3VtZW50IGRlZmluZWQgb2JqZWN0
Ii4gIFdvdWxkIHRoaXMgYmUgc3VmZmljaWVudD8NCg0KPiA+ID4NCg0KPiA+ID4gTm8gLS0gTkVU
Q09ORiBhbmQgUkVTVENPTkYgaGF2ZSB3ZWxsLWRlZmluZWQgZXJyb3IgcmVwb3J0aW5nLg0KDQo+
ID4gPiBUaGUgc2VydmVyIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRpbmcgbXVz
dCBiZSBkb2N1bWVudGVkLg0KDQo+ID4gPg0KDQo+ID4gPiBJIGFncmVlIHdpdGggdGhlIGZvbGxv
d2luZyBhcHByb2FjaDoNCg0KPiA+ID4gICAtIGVhY2ggb3BlcmF0aW9uIE1VU1QgaWRlbnRpZnkg
dGhlIGVycm9yLXRhZ3MgdGhhdCBhcmUgZXhwZWN0ZWQgZm9yDQoNCj4gPiA+ICAgICB2YXJpb3Vz
IGVycm9yIGNvbmRpdGlvbnMgKHN1Y2ggcyBpcyBkb25lIGluIFJGQyA2MjQxKQ0KDQo+ID4gPiAg
IC0gdGhlIHNlcnZlciBNVVNUIHJldHVybiB0aGUgc3BlY2lmaWVkIGVycm9yLXRhZ3MuIElmIGEg
Y29uZGl0aW9uIG5vdA0KDQo+ID4gPiAgIC0gZXhwbGljaXRseQ0KDQo+ID4gPiAgICAgZGVmaW5l
ZCB0aGVuIHRoZSBzZXJ2ZXIgTVVTVCBwaWNrIHRoZSBhcHByb3ByaWF0ZSBlcnJvci10YWcgZnJv
bSBSRkMNCg0KPiA+ID4gICAgIDYyNDENCg0KPiA+ID4gIC0gdGhlIHNlcnZlciBNQVkgaW5jbHVk
ZSB0aGUgc3BlY2lmaWVkIHJjOnlhbmctZGF0YSBpbiB0aGUNCg0KPiA+ID4gPGVycm9yLWluZm8+
DQoNCj4gPiA+ICAtIGRhdGENCg0KPiA+ID4gc3RydWN0dXJlDQoNCj4gPiA+ICAtIHRoZSBzZXJ2
ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlhbmctZGF0YSB0byByZXBvcnQgaGludHMN
Cg0KPiA+ID4gIC0gZm9yIHByb3RvY29scyBvdGhlciB0aGFuIE5FVENPTkYgYW5kIFJFU1RDT05G
LCB0aGV5IGNhbiBtYXANCg0KPiA+ID4gZXJyb3ItdGFnDQoNCj4gPiA+ICAtIG9yDQoNCj4gPiA+
IGlnbm9yZSBpdCwNCg0KPiA+ID4gICAgYnV0IHRoZSBkb2N1bWVudCBkZWZpbmluZyB0aGUgcHJv
dG9jb2wgb3BlcmF0aW9uIE1VU1QgcHJvdmlkZQ0KDQo+ID4NCg0KPiA+IEZ1bmN0aW9uYWxseSwg
ZXZlcnl0aGluZyB5b3UgYXNrIGZvciBpcyBmdWxseSBjb3ZlcmVkIHdoZW4geW91IGluY2x1ZGUN
Cg0KPiA+IGNvbnNpZGVyIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNh
dGlvbnMgKHNlY3Rpb24gNykNCg0KPiA+IGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYt
bm90aWYgKHNlY3Rpb24gMy4zKS4NCg0KPiA+DQoNCj4gPiBNeSByZWFkIG9mIHRoZSBpc3N1ZSBp
cyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QgYmUgc3BlY2lmaWVkDQoNCj4gPiBp
biB0aGUgWUFORyBtb2RlbC4gIEkgYmVsaWV2ZSB0aGF0ICJlcnJvci10YWciIHNob3VsZG4ndCBi
ZSBpbiB0aGUNCg0KPiA+IFlBTkcgbW9kZWwgYmVjYXVzZSB0aGF0IHdvdWxkIHRpZSB0aGUgbW9k
ZWwgdG8gYSB0cmFuc3BvcnQgdHlwZS4NCg0KPiA+DQoNCj4gPiBBbnkgdGhvdWdodHMgb24gaG93
IHdlIG1pZ2h0IGNsb3NlIHRoaXM/ICBJZiBhYnNvbHV0ZWx5IHJlcXVpcmVkIEkNCg0KPiA+IGNv
dWxkIHBsYWNlIGEgbmV3IGNvbW1lbnQgbGluZSBpbiB0aGUgWUFORyBtb2RlbCB1bmRlcg0KDQo+
ID4gLyogSWRlbnRpdGllcyBmb3IgUlBDIGFuZCBOb3RpZmljYXRpb24gZXJyb3JzICovDQoNCj4g
Pg0KDQo+ID4gVGhlIGNvbW1lbnQgd291bGQgYmUgc29tZXRoaW5nIGxpa2U6DQoNCj4gPiAvKiBX
aGVuIHVzZWQgd2l0aCBORVRDT05GIGFuZCBSRVNUQ09ORiBSUENzOg0KDQo+ID4gICAgICJlcnJv
ci10eXBlIiBub2RlIHRvIGJlIHVzZWQgaXMgImFwcGxpY2F0aW9uIg0KDQo+ID4gICAgICAiZXJy
b3ItdGFnIiBtdXN0IGJlICJvcGVyYXRpb24tZmFpbGVkIi4gICovDQoNCj4gPg0KDQo+ID4gVGhp
cyBzZWVtcyBpbmNvbmdydW91cy4gIEp1c3QgdGhyb3dpbmcgaXQgb3V0IGFzIGEgc3VnZ2VzdGlv
bi4NCg0KPiA+DQoNCj4gPiA+IEluIGFueSBjYXNlLCB0aGUgLXYyMSB3b3JkaW5nIHJlc3VsdHMg
ZnJvbSB0aGUgYXR0ZW1wdGVkIGJhbGFuY2luZw0KDQo+ID4gPiB0aGUgV0cgcmVxdWVzdHMgZm9y
Og0KDQo+ID4gPiAqIG1lcmdpbmcgd2l0aCB0cmFuc3BvcnQgcHJvdG9jb2wgZXJyb3IgbWVjaGFu
aXNtcw0KDQo+ID4gPiAqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8gcHJvdmlkZSByZXF1aXJl
bWVudHMgZm9yIHRyYW5zcG9ydA0KDQo+ID4gPiBkb2N1bWVudHMNCg0KPiA+ID4NCg0KPiA+ID4g
PiAgICAgIE9ubHkgMyBmaWVsZHMgc2VlbQ0KDQo+ID4gPiA+ICAgICAgIHRvIGJlIHJlbGV2YW50
IChlcnJvci10YWcsIGVycm9yLWFwcC10YWcsIGVycm9yLWluZm8pLg0KDQo+ID4gPiA+ICAgICAg
IFByb3Rjb2wgb3BlcmF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gZG9jdW1lbnQgc2VydmVyIHJlcXVp
cmVtZW50cw0KDQo+ID4gPiA+ICAgICAgIGZvciB0aGVzZSAzIGZpZWxkcywgaWYgYXBwbGljYWJs
ZS4gIE9ubHkgdGhlIGVycm9yLXRhZw0KDQo+ID4gPiA+ICAgICAgIGlzIG1hbmRhdG9yeS10by11
c2UuDQoNCj4gPiA+DQoNCj4gPiA+IEhvcGVmdWxseSB0aGVzZSBhcmUgY292ZXJlZCBzdWZmaWNp
ZW50bHkgd2hlbiB0aGlzIGRvY3VtZW50IGlzDQoNCj4gPiA+IGNvdXBsZWQgd2l0aCB0aGUgTkVU
Q09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3VtZW50cy4NCg0KPiA+ID4gRm9y
IG90aGVyIHRyYW5zcG9ydHMsIHRoZSB0YWdzIHlvdSBpZGVudGlmeSBhYm91dCB3b3VsZCBub3Qg
YmUNCg0KPiA+ID4gYXBwbGljYWJsZS4NCg0KPiA+ID4NCg0KPiA+ID4gPiAgIC0tIHRoZSBlcnJv
ciBhc3NpZ25tZW50cyBhcmUgZXh0cmVtZWx5IHNwZWNpZmljLiBlLmcuLCBpdCBpcyBub3QNCg0K
PiA+ID4gPiAgICAgIHBvc3NpYmxlIGZvciA8a2lsbC1zdWJzY3JpcHRpb24+IHRvIGZhaWwgd2l0
aCBhbg0KDQo+ID4gPiA+ICAgICAgJ2luc3VmZmljaWVudC1yZXNvdXJjZXMnIGVycm9yOw0KDQo+
ID4gPg0KDQo+ID4gPiBUaGlzIGlzIHRoZSBpbnRlbnQgb2YgdGhlIGJhc2Ugc3BlY2lmaWNhdGlv
biwgZS5nLiwgd2UgZG9uJ3QgYmVsaWV2ZQ0KDQo+ID4gPiBhDQoNCj4gPiA+IGtpbGwtDQoNCj4g
PiA+IHN1YnNjcmlwdGlvbiBzaG91bGQgZmFpbCBmb3IgYW4gaW5zdWZmaWNpZW50LXJlc291cmNl
cyByZWFzb24uICBCdXQNCg0KPiA+ID4gdmVuZG9ycyBtaWdodCBkZXNpcmUgbW9yZSBzcGVjaWZp
Y2l0eS4gIEFzIGEgcmVzdWx0IGlzIGNlcnRhaW5seSBvaw0KDQo+ID4gPiBmb3IgdmVuZG9yIGlt
cGxlbWVudGF0aW9ucyB0byBhZGQgbmV3IGVycm9yIGlkZW50aXRpZXMuDQoNCj4gPiA+DQoNCj4g
PiA+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNpZW50IHJlc291cmNlcy4gVGhh
dCBpcyB2ZXJ5DQoNCj4gPiA+IGltcGxlbWVudGF0aW9uLQ0KDQo+ID4gPiBzcGVjaWZpYy4NCg0K
PiA+DQoNCj4gPiBJbnN0ZWFkIG9mIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIEkgd291bGQgY2Fs
bCBpdCBhcHBsaWNhdGlvbg0KDQo+ID4gc3BlY2lmaWMuICBSaWdodCBub3cgd2UgZG9uJ3QgaGF2
ZSBhIGNhdGNoLWFsbCBlcnJvci1pZGVudGl0eSBvZg0KDQo+ID4gJ290aGVyLWVycm9yJy4gIFdl
IHByZWZlcnJlZCB0aGF0IGVycm9yIGNvbmRpdGlvbnMgYmV5b25kIHRoZSBjdXJyZW50DQoNCj4g
PiBvbmVzIGxpc3RlZCBjb3VsZCBiZSBpbmNsdWRlZCBieSB2ZW5kb3JzIGFzIG5lZWRlZC4gIEZ1
cnRoZXINCg0KPiA+IGRlcGxveW1lbnQgZXhwZXJpZW5jZSBjb3VsZCByZXN1bHQgaW4gbmV3IGVy
cm9yIGlkZW50aXRpZXMgc3VyZmFjaW5nDQoNCj4gPiBmb3Igc3RhbmRhcmRpemF0aW9uIHNob3Vs
ZCB0aGlzIGRyYWZ0IGNhdGNoIG9uLg0KDQo+ID4NCg0KPiA+ID4gPiAgICAgIERvIG5vdCBhZ3Jl
ZSB0aGF0IHNjb3BpbmcgZWFjaA0KDQo+ID4gPiA+ICAgICAgaWRlbnRpdHkgdG8gc3BlY2lmaWMg
UlBDIG9wZXJhdGlvbnMgaXMgYSBnb29kIGlkZWEuDQoNCj4gPiA+DQoNCj4gPiA+IFRoaXMgbGV2
ZWwgb2Ygc3BlY2lmaWNpdHkgd2FzIG5vdCB0aGUgYXV0aG9yJ3Mgb3JpZ2luYWwgcGxhbnMuICBO
b3INCg0KPiA+ID4gd2FzIHRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkgcGFydCBvZiBlYXJsaWVy
IGRyYWZ0IHZlcnNpb25zIHVwDQoNCj4gPiA+IHRocm91Z2ggLXYwOC4gIEhvd2V2ZXIgbWVtYmVy
cyBvZiB0aGUgV0cgbWFkZSBpdCBjbGVhciB0aGF0IHN1Y2gNCg0KPiA+ID4gc3BlY2lmaWNpdHkg
d2FzIG5lY2Vzc2FyeSBmb3IgZHJhZnQgcHJvZ3Jlc3Npb24uDQoNCj4gPiA+DQoNCj4gPiA+ID4g
ICAtLSBob3cgYXJlIGVycm9ycyBpbiB0aGVzZSBwYXJhbWV0ZXJzIHJlcG9ydGVkIGZvciBjb25m
aWd1cmVkDQoNCj4gPiA+ID4gICAgICBzdWJzY3JpcHRpb25zIHdoZW4gPGVkaXQtY29uZmlnPiBp
cyB0aGUgUlBDIHRoYXQgaGFzIHRoZSBlcnJvcj8NCg0KPiA+ID4gPiAgICAgIEhvdyBhcmUgdGhl
IHlhbmctZGF0YSBzdHJ1Y3RzIHVzZWQgZm9yIGVkaXQtY29uZmlnIG9yIGNvbW1pdCBlcnJvcnM/
DQoNCj4gPiA+DQoNCj4gPiA+IE5vbmUgb2YgdGhlc2UgeWFuZy1kYXRhIHN0cnVjdHVyZXMgYXJl
IHNwZWNpZmllZCBmb3IgdXNlIHdpdGgNCg0KPiA+ID4gPGVkaXQtY29uZmlnPiBvcGVyYXRpb25z
LiAgRm9yIDxlZGl0LWNvbmZpZz4sIHRoZSBjaGFuZ2UgdG8gYQ0KDQo+ID4gPiBjb25maWd1cmVk
IHN1YnNjcmlwdGlvbiB3b3VsZCBiZSB3cml0dGVuIHRvIHRoZSBkYXRhc3RvcmUgaWYgaXQgd2Vy
ZQ0KDQo+ID4gPiBzZW1hbnRpY2FsbHkgdmFsaWQuICBBdCB0aGlzIHBvaW50IHRoZSBzdWJzY3Jp
cHRpb24gZW50ZXJzIHRoZQ0KDQo+ID4gPiBbZXZhbHVhdGVdIHBvaW50cyBvZiBGaWd1cmUgOC4g
IElzc3VlcyBmcm9tIHRoaXMgcG9pbnQgb3V0IHdvdWxkIGJlDQoNCj4gPiA+IHJlcG9ydGVkIHdp
dGggYSB2ZW5kb3Igc3BlY2lmaWMgY29uc3RydWN0IHN1Y2ggYXMgU1lTTE9HLg0KDQo+ID4gPg0K
DQo+ID4gPiBTbyBob3cgYXJlIGhpbnRzIHJlcG9ydGVkIGZvciBjb25maWd1cmVkIHN1YnNjcmlw
dGlvbnM/DQoNCj4gPg0KDQo+ID4gVGhlcmUgaXMgbm90aGluZyBpbiB0aGUgc3BlY2lmaWNhdGlv
biB3aGljaCByZXF1aXJlcyB0aGlzLiAgQW4NCg0KPiA+IGltcGxlbWVudGF0aW9uIGNvdWxkIGNo
b29zZSB0byBwbGFjZSB0aGVzZSBpbiBzb21lIGZvcm0gb2YgU1lTTE9HLg0KDQo+ID4gLi4uDQoN
Cj4gPiA+ID4gSTYpIHNlYyAyLjUsIHBhcmEgMzoNCg0KPiA+ID4gPg0KDQo+ID4gPiA+ICAgIE9u
IGEgcmVjZWl2ZXIgb2YgYQ0KDQo+ID4gPiA+ICAgIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBz
dXBwb3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMgaXMNCg0KPiA+ID4gPiAgICBvcHRpb25h
bCBleGNlcHQgd2hlcmUgcmVwbGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVk
Lg0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAtLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0IGluIDEu
MzoNCg0KPiA+ID4gPiAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBtaXhpbmctYW5kLW1hdGNo
aW5nIG9mIGR5bmFtaWMgYW5kIGNvbmZpZ3VyZWQNCg0KPiA+ID4gPiAgICAgIG9wZXJhdGlvbnMg
b24gYSBzaW5nbGUgc3Vic2NyaXB0aW9uLiAgU3BlY2lmaWNhbGx5LCBhIGNvbmZpZ3VyZWQNCg0K
PiA+ID4gPiAgIC0tIGNsYXJpZnkgdGhlIHJlY2VpdmVyIG1heSBoYXZlIG11bHRpcGxlIHN1YnNj
cmlwdGlvbnMgaGVyZQ0KDQo+ID4gPiA+ICAgLS0gbm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVy
ZSByZXBsYXlpbmcuLi4iIHRleHQgbWVhbnMNCg0KPiA+ID4NCg0KPiA+ID4gSG93IGFib3V0IHRo
ZSBmb2xsb3dpbmcgdHdlYWs6DQoNCj4gPiA+DQoNCj4gPiA+ICJPbiBhIHJlY2VpdmVyIG9mIGEg
Y29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMNCg0KPiA+ID4gc3Vi
c2NyaXB0aW9ucyBpcyBvcHRpb25hbC4gIEhvd2V2ZXIgaWYgcmVwbGF5aW5nIG1pc3NlZCBldmVu
dA0KDQo+ID4gPiByZWNvcmRzIGlzIHJlcXVpcmVkIGZvciBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0
aW9uLCBzdXBwb3J0IGZvcg0KDQo+ID4gPiBkeW5hbWljIHN1YnNjcmlwdGlvbiBpcyBoaWdobHkg
cmVjb21tZW5kZWQuICBJbiB0aGlzIGNhc2UsIGENCg0KPiA+ID4gc2VwYXJhdGUgZHluYW1pYyBz
dWJzY3JpcHRpb24gY2FuIGJlIGVzdGFibGlzaGVkIHRvIHJldHJhbnNtaXQgdGhlDQoNCj4gPiA+
IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQoNCj4gPiA+DQoNCj4gPiA+IE9LDQoNCj4gPg0KDQo+
ID4gQ2hhbmdlIG1hZGUuDQoNCj4gPg0KDQo+ID4gPiA+IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1m
aWx0ZXI6IFttdWx0aXBsZSB1c2VzXQ0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAgICAgICAgICBU
aGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgaW4gdGhlIGZvbGxvd2luZyBYUGF0aCBjb250ZXh0
Og0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAgICAgICAgICAgIG8gICBUaGUgc2V0IG9mIG5hbWVz
cGFjZSBkZWNsYXJhdGlvbnMgaXMgdGhlIHNldCBvZiBwcmVmaXgNCg0KPiA+ID4gPiAgICAgICAg
ICAgICAgICAgIGFuZCBuYW1lc3BhY2UgcGFpcnMgZm9yIGFsbCBZQU5HIG1vZHVsZXMgaW1wbGVt
ZW50ZWQNCg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRo
ZSBwcmVmaXggaXMgdGhlIFlBTkcgbW9kdWxlDQoNCj4gPiA+ID4gICAgICAgICAgICAgICAgICBu
YW1lIGFuZCB0aGUgbmFtZXNwYWNlIGlzIGFzIGRlZmluZWQgYnkgdGhlDQoNCj4gPiA+ID4gICAg
ICAgICAgICAgICAgICAnbmFtZXNwYWNlJyBzdGF0ZW1lbnQgaW4gdGhlIFlBTkcgbW9kdWxlLg0K
DQo+ID4gPiA+DQoNCj4gPiA+ID4gICAtLSBUaGlzIHByZWZpeCBwcm9jZXNzaW5nIGlzIG5vdCBk
b25lIGFueXdoZXJlIGVsc2UgaW4gTkVUQ09ORg0KDQo+ID4gPiA+ICAgICAgb3IgUkVTVENPTkYu
ICBJTU8gYSBiYWQgcHJlY2VkZW50LiAgT25seSB0aGUgWE1MIHByZWZpeGVzDQoNCj4gPiA+ID4g
ICAgICBzaG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Npbmcgb2YgWE1MIGVuY29kaW5nLiAg
WUFORw0KDQo+ID4gPiA+ICAgICAgbW9kdWxlIHByZWZpeGVzIGFyZSBub3QgcmVxdWlyZWQgdG8g
YmUgdW5pcXVlLCB1bmxpa2UNCg0KPiA+ID4gPiAgICAgIHRoZSBwcmVmaXggbWFwcGluZ3MgaW4g
WE1MDQoNCj4gPiA+DQoNCj4gPiA+IFRoaXMgdGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFz
IGEgcmVzdWx0IG9mIHRoZSAieHBhdGgNCg0KPiA+ID4gZXhwcmVzc2lvbnMgaW4gSlNPTiINCg0K
PiA+ID4gdGhyZWFkIGxhc3QgT2N0b2JlciBpbiBORVRNT0QuDQoNCj4gPiA+DQoNCj4gPiA+IEkg
YW0gaGFwcHkgdG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4gIEkg
d2FzDQoNCj4gPiA+IGhvcGluZyB0aGF0IHRoZSBzdWdnZXN0ZWQgdGV4dCB3YXMgc3VmZmljaWVu
dCBmb3Igbm93LiAgS2VudCBoYXMNCg0KPiA+ID4gYWxyZWFkeSBpbmNvcnBvcmF0ZWQgdGhpcyBh
cyBhbiBpc3N1ZSBmb3IgeWFuZy1uZXh0DQoNCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uZXRt
b2Qtd2cveWFuZy1uZXh0L2lzc3Vlcy81NQ0KDQo+ID4gPiBTbyBob3BlZnVsbHkgdGhlcmUgaXMg
bm8gZmluYWwgcHJlY2VkZW50IGJlaW5nIGNsYWltZWQuDQoNCj4gPiA+DQoNCj4gPiA+IEkgZG8g
bm90IGFncmVlIHRoYXQgdGhpcyBZQU5HIG1vZHVsZSBzaG91bGQgZGVmaW5lIGEgbmV3IHdheSB0
bw0KDQo+ID4gPiBlbmNvZGUgWFBhdGggaW50byBYTUwgaW5zdGFuY2UgZG9jdW1lbnRzLiBUaGlz
IHdpbGwgcmVxdWlyZQ0KDQo+ID4gPiBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHNlcnZlciBpbXBs
ZW1lbnRhdGlvbnMuICBZQU5HIG1vZHVsZSBwcmVmaXhlcw0KDQo+ID4gPiBhcmUgbm90IGV2ZW4g
cmVxdWlyZWQgdG8gYmUgdW5pcXVlIHNvIHRoZSBzZXQgb2YgcHJlZml4ZXMgdXNlZCBieQ0KDQo+
ID4gPiB0aGUgc2VydmVyIGluIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMgbWF5IGJlIGRpZmZlcmVu
dCwgc2luY2UgaXQgbXVzdA0KDQo+ID4gPiBiZSB1bmlxdWUuDQoNCj4gPg0KDQo+ID4gU2VlIG5l
eHQgbm90ZQ0KDQo+ID4NCg0KPiA+ID4gPiAgIC0tIE5NREEgYWxsb3dzIHRoZSBzYW1lIG1vZHVs
ZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUgbW9kdWxlLXNldHMNCg0KPiA+ID4gPiAgICAgIGFuZCBk
aWZmZXJlbnQgaW4gZWFjaCBkYXRhc3RvcmUuIFRoaXMgdGV4dCBhYm91dCAiaW1wbGVtZW50ZWQg
YnkNCg0KPiA+ID4gPiAgICAgIHRoZSBzZXJ2ZXIiIGRvZXMgbm90IHdvcmsgZm9yIE5NREENCg0K
PiA+ID4NCg0KPiA+ID4gSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0ZXZlciB0ZXh0IG1lZXRzIFlB
TkcgZG9jdG9yIGFwcHJvdmFsLiAgQ2FuDQoNCj4gPiA+IHlvdSBzdWdnZXN0Pw0KDQo+ID4gPg0K
DQo+ID4gPg0KDQo+ID4gPiBSZW1vdmUgYWxsIHRleHQgYWJvdXQgWUFORyBwcmVmaXhlcyBhbmQg
Y29udGludWUgdXNpbmcgWE1MIGVuY29kaW5nDQoNCj4gPiA+IHdpdGhvdXQgbW9kaWZpY2F0aW9u
DQoNCj4gPg0KDQo+ID4gQXMgYSBkaWZmZXJlbnQgWUFORyBkb2N0b3IgaGFzIHJlcXVpcmVkIHRo
ZSBjdXJyZW50IHRleHQgbW9kaWZpY2F0aW9uLA0KDQo+ID4gSSBiZWxpZXZlIHRoaXMgaXMgYSBi
bG9ja2VyLiAgV2hhdCBpcyB0aGUgcHJvY2VzcyBmb3IgWUFORyBtb2RlbA0KDQo+ID4gcmV2aWV3
cyBpbiBzdWNoIGEgY2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuICBB
bnkNCg0KPiA+IHN1Z2dlc3Rpb25zIG9uIG5leHQgc3RlcHM/DQoNCj4gPg0KDQo+ID4gLi4uDQoN
Cj4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUgYW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJs
ZSBlbmNvZGluZw0KDQo+ID4gPiA+IHByb3ZpZGVkDQoNCj4gPiA+DQoNCj4gPiA+IEkgYW0gaGFw
cHkgdG8gZW5oYW5jZSB0aGUgZGVmaW5pdGlvbiBZQU5HIG1vZGVsJ3MgaWRlbnRpdHkNCg0KPiA+
ID4gZGVmaW5pdGlvbiBvZiAiY29uZmlndXJhYmxlLWVuY29kaW5nIi4gIEkgY291bGQgZG8gdGhp
cyBieSBhZGRpbmcNCg0KPiA+ID4gdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHRleHQgdG8gdGhl
IGRlc2NyaXB0aW9uOiAiQW4gZXhhbXBsZSBvZiBhDQoNCj4gPiA+IGNvbmZpZ3VyYWJsZSBlbmNv
ZGluZyBtaWdodCBiZSBhIG5ldyBpZGVudGl0eSBzdWNoIGFzICdlbmNvZGUtY2JvcicuDQoNCj4g
PiA+IFN1Y2ggYW4gaWRlbnRpdHkgY291bGQgdXNlDQoNCj4gPiA+ICdjb25maWd1cmFibGUtDQoN
Cj4gPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRoaXMgd291bGQgYWxsb3cgYSBkeW5hbWlj
IHN1YnNjcmlwdGlvbg0KDQo+ID4gPiBlbmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1
ZXN0IG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBiZQ0KDQo+ID4gPiBlbmNvZGVkIHZpYSBDQk9SIFtS
RkMtIDcwNDldLiAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkgc3BlY2lmaWMNCg0KPiA+ID4gY29u
ZmlndXJhYmxlIGVuY29kaW5nIHdvdWxkIGJlIGV4cGxvcmVkIGluIGEgdHJhbnNwb3J0IGRvY3Vt
ZW50DQoNCj4gPiA+IGJhc2VkIG9uIHRoaXMgc3BlY2lmaWNhdGlvbi4iICBEb2VzIHRoaXMgbWVl
dCB5b3VyIGFzaz8NCg0KPiA+ID4NCg0KPiA+ID4NCg0KPiA+ID4gT0sNCg0KPiA+DQoNCj4gPiBB
ZGRlZA0KDQo+ID4NCg0KPiA+ID4gPiBJMTEpIGV4dGVuc2lvbiBzdWJzY3JpcHRpb24tc3RhdGUt
bm90aWZpY2F0aW9uIHsNCg0KPiA+ID4gPg0KDQo+ID4gPiA+ICAgICAgICBUaGlzIHN0YXRlbWVu
dCBpcyBub3QgZm9yIHVzZQ0KDQo+ID4gPiA+ICAgICAgICBvdXRzaWRlIG9mIHRoaXMgWUFORyBt
b2R1bGUuIjsNCg0KPiA+ID4gPg0KDQo+ID4gPiA+ICAgLS0gdGhpcyB0ZXh0IHNob3VsZCBiZSBy
ZW1vdmVkLiBUaGVyZSBpcyBubyB2YWx1ZSBpbiBsaW1pdGluZw0KDQo+ID4gPiA+ICAgICAgdGhl
IHNjb3BlIG9mIHRoaXMgZXh0ZW5zaW9uLiAgSXQgcHJldmVudHMgZXZlbiB0aGlzIFdHIGZyb20N
Cg0KPiA+ID4gPiAgICAgIGNyZWF0aW5nIGEgbW9kdWxlIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9u
IGFnYWluLg0KDQo+ID4gPg0KDQo+ID4gPiBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBzaWduaWZp
Y2FudCBkZWJhdGUgaW4gdGhlIFdHLiAgVGhlIGF1dGhvcnMNCg0KPiA+ID4gZGlkIG5vdCB3YW50
IHRoaXMgcmVzdHJpY3Rpb24gZWl0aGVyLg0KDQo+ID4gPg0KDQo+ID4gPiBUbyBiZSBhbGxvd2Vk
IHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5zZXJ0ZWQgdGhlIGRvY3VtZW50Lg0KDQo+
ID4gPiBJZiB0aGlzIHJlYWxseSBpcyBtYW5kYXRvcnktdG8tcmVtb3ZlIGZyb20gYSBZQU5HIGRv
Y3Rvcg0KDQo+ID4gPiBwb2ludC1vZi12aWV3LCB3aGF0IGlzIHRoZSBwcm9jZXNzIGZvciBxdWlj
ayBjbG9zdXJlIG9uIHRoaXMgaXNzdWUNCg0KPiA+ID4gYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFu
ZCB0aGUgWUFORyBkb2N0b3JzPw0KDQo+ID4gPg0KDQo+ID4gPg0KDQo+ID4gPiBUaGUgWUFORyBs
YW5ndWFnZSBtYWtlcyBubyByZXN0cmljdGlvbnMgYWJvdXQgZXhwb3J0aW5nIHN0YXRlbWVudHMu
DQoNCj4gPiA+IEkgZ3Vlc3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3aWxsIGp1c3Qgc2F5
IE9LIGFuZCB3b25kZXIgd2hhdA0KDQo+ID4gPiBwcm9ibGVtIHRoaXMgaXMgc3VwcG9zZWQgdG8g
c29sdmUuIEkgZ3Vlc3MgdGhlIFdHIHdhbnRzIHRvIGdpdmUgWUFORw0KDQo+ID4gPiBEb2N0b3Jz
IG1vcmUgdGhpbmdzIHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdlIGNhbGxlZCBhIENMUiBpbg0K
DQo+ID4gPiBTTk1QLWxhbmQgOy0pDQoNCj4gPg0KDQo+ID4gVGhhbmtzLiAgTm8gYWN0aW9uIHRh
a2VuLg0KDQo+ID4NCg0KPiA+ID4gPiBJMTMpICAgbm90aWZpY2F0aW9uIHN1YnNjcmlwdGlvbi1z
dGFydGVkIHsNCg0KPiA+ID4gPiAgICAgc246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlv
bjsNCg0KPiA+ID4gPiAgICAgaWYtZmVhdHVyZSAiY29uZmlndXJlZCI7DQoNCj4gPiA+ID4gICAg
IGRlc2NyaXB0aW9uDQoNCj4gPiA+ID4gICAgICAgIlRoaXMgbm90aWZpY2F0aW9uIGluZGljYXRl
cyB0aGF0IGEgc3Vic2NyaXB0aW9uIGhhcyBzdGFydGVkIGFuZA0KDQo+ID4gPiA+ICAgICAgICAg
bm90aWZpY2F0aW9ucyBhcmUgYmVnaW5uaW5nIHRvIGJlIHNlbnQuIFRoaXMgbm90aWZpY2F0aW9u
IHNoYWxsDQoNCj4gPiA+ID4gICAgICAgIG9ubHkgYmUgc2VudCB0byByZWNlaXZlcnMgb2YgYSBz
dWJzY3JpcHRpb247IGl0IGRvZXMgbm90DQoNCj4gPiA+ID4gICAgICAgIGNvbnN0aXR1dGUgYSBn
ZW5lcmFsLXB1cnBvc2Ugbm90aWZpY2F0aW9uLiI7DQoNCj4gPiA+ID4NCg0KPiA+ID4gPiAgIC0t
IDJuZCBzZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFsbCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRv
DQoNCj4gPiA+ID4gICAgICByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb24uIGxhc3QgcGFydCBp
cyByZWR1bmRhbnQgc2luY2UNCg0KPiA+ID4gPiAgICAgIHRoZSBzbjpzdWJzY3JpcHRpb24tc3Rh
dGUtbm90aWZpY2F0aW9uIGV4dGVuc2lvbiBpcyB1c2VkDQoNCj4gPiA+DQoNCj4gPiA+IFRoZXJl
IGlzIG5vIGlzc3VlIHdpdGggcmVtb3ZpbmcgdGhpcyBzZWNvbmQgc2VudGVuY2UgY29tcGxldGVs
eS4gIElmDQoNCj4gPiA+IEkgZGlkIHRoYXQsIHdvdWxkIHRoaXMgYWRkcmVzcyB5b3VyIGNvbmNl
cm4/DQoNCj4gPiA+DQoNCj4gPiA+IE9LDQoNCj4gPg0KDQo+ID4gRG9uZQ0KDQo+ID4NCg0KPiA+
ID4gPiBJMTQpICAgcmM6eWFuZy1kYXRhIG1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9y
LWluZm8gew0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAgICAgbGVhZiBmaWx0ZXItZmFpbHVyZS1o
aW50IHsNCg0KPiA+ID4gPiAgICAgICAgIHR5cGUgc3RyaW5nOw0KDQo+ID4gPiA+ICAgICAgICAg
ICBkZXNjcmlwdGlvbg0KDQo+ID4gPiA+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmli
aW5nIHdoZXJlIGFuZC9vciB3aHkgYSBwcm92aWRlZCBmaWx0ZXINCg0KPiA+ID4gPiAgICAgICAg
ICAgICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiI7DQoNCj4gPiA+ID4g
ICAgICAgfQ0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gICAtLSBycGMtZXJyb3IgYWxyZWFkeSBhbGxv
d3MgbW9yZSBwcmVjaXNlIGVycm9yIHJlcG9ydGluZw0KDQo+ID4gPiA+ICAgICAgSXQgdXNlcyBl
cnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kIGVycm9yLWluZm8NCg0KPiA+
ID4gPiAgICAgIGV4dGVuc2lvbnMNCg0KPiA+ID4gPiAgICAgIHRvIGlkZW50aWZ5IHdoaWNoIHBh
cmFtZXRlcnMvY29uZGl0aW9ucyBjYXVzZWQgdGhlIFJQQyB0byBiZQ0KDQo+ID4gPiA+ICAgICAg
cmVqZWN0ZWQuDQoNCj4gPiA+ID4gICAgICBUaGlzIGVycm9yIHJlcG9ydGluZyB3aWxsIGNvbnRp
bnVlIHRvIGJlIHVzZWQsIE5vdCBzdXJlIHRoaXMNCg0KPiA+ID4gPiAgICAgIGZhaWx1cmUtaGlu
dA0KDQo+ID4gPiA+ICAgICAgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBlcmhhcHMgcmVhbC11
c2UgZXhhbXBsZSBjYW4gYmUNCg0KPiA+ID4gPiBhZGRlZA0KDQo+ID4gPg0KDQo+ID4gPiBQZXIg
eW91ciB0aG91Z2h0cyBvbiBycGMtZXJyb3IuLi4gIEZvciBORVRDT05GIGFuZCBSRVNUQ09ORiwg
eW91DQoNCj4gPiA+IHBvaW50IHRvIGVycm9yIHN0cnVjdHVyZXMgd2hpY2ggaGlzdG9yaWNhbGx5
IGJlZW4gdXNlZCB3aXRoIHRob3NlDQoNCj4gPiA+IHRyYW5zcG9ydHMuDQoNCj4gPiA+IE9mIGNv
dXJzZQ0KDQo+ID4gPiB3ZSB3ZXJlIGxvb2tpbmcgdG8gaGF2ZSBhbGwgc3Vic2NyaXB0aW9uIGhp
bnRzIHN1cHBvcnRhYmxlIGFjcm9zcw0KDQo+ID4gPiB0cmFuc3BvcnRzIHZpYSBhIHNpbmdsZSBw
b3J0YWJsZSBZQU5HIGRhdGEgc3RydWN0dXJlLiAgU28gdGhlIHZhbHVlDQoNCj4gPiA+IGlzIHRo
YXQgYSBzaW5nbGUgc3RyaW5nIG9iamVjdCBleGlzdHMgc28gdG8gdHJhbnNwb3J0IHdoYXRldmVy
IHRoZQ0KDQo+ID4gPiB2ZW5kb3IgdGhpbmtzIHdvdWxkIGJlIHVzZWZ1bCBhcyBhIGhpbnQgaW4g
dGhpcyBjYXNlLiAgSS5lLiwgdGhlcmUNCg0KPiA+ID4gaGFzIGJlZW4gbm8gYXR0ZW1wdCB0byBz
dGFuZGFyZGl6ZSB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJpbmcuICBJZg0KDQo+ID4gPiBvcGVy
YXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3VjaCBzdHJ1Y3R1cmluZywg
dGhpcw0KDQo+ID4gPiBjb3VsZCBwcm92aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQgYnVp
bGRpbmcgb2ZmIG9mIHRoaXMNCg0KPiA+ID4gc3RhcnRpbmcgcG9pbnQuDQoNCj4gPiA+DQoNCj4g
PiA+IEkgZ3Vlc3MgSSBkbyBub3QgY29uc2lkZXIgTkVUQ09ORiBhbmQgUkVTVENPTkYgImhpc3Rv
cmljIiBxdWl0ZSB5ZXQuDQoNCj4gPiA+IFRoZXJlIGFyZSBtYW55IGltcGxlbWVudGF0aW9ucyB1
c2luZyB0aGUgcnBjLWVycm9yIHJlcG9ydGluZyB3aXRoIG5vDQoNCj4gPiA+IGludGVudCB0byBy
ZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGVsc2UuDQoNCj4gPiA+DQoNCj4gPiA+IEkgd2FzIGp1
c3QgYXNraW5nIGZvciBhbiBleGFtcGxlLCBzaW5jZSBJIGhhdmUgbm8gaWRlYSB3aGF0IGFuDQoN
Cj4gPiA+IGltcGxlbWVudG9yIHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYuDQoNCj4gPg0KDQo+ID4g
SGVyZSBpcyBhbiBleGFtcGxlIGZyb20gb3VyIGltcGxlbWVudGF0aW9uLiAgU2F5IHlvdSBtaXN0
eXBlIGFuIGV4dHJhDQoNCj4gPiAiXCIgdG8gYW4geHBhdGggZmlsdGVyOg0KDQo+ID4gL2lmOmlu
dGVyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJdL29wZXIt
c3RhdHVzDQoNCj4gPiBBcyBhIHJlc3VsdCwgdGhlIGZpbHRlciBpcyBwYXNzZWQgdG8gdGhlIHB1
Ymxpc2hlciBpczoNCg0KPiA+IC9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0i
R2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMNCg0KPiA+DQoNCj4gPiBXaGF0IHdlIHdv
dWxkIHJldHVybiBpbiB0aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczoNCg0KPiA+IEludmFsaWQg
ZXhwcmVzc2lvbjogb2Zmc2V0KDkpIGluDQoNCj4gPiAnL2lmOmludGVccmZhY2VzLXN0YXRlL2lu
dGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0YXR1cycNCg0KPiA+DQoN
Cj4gPiBFcmljDQoNCj4gPg0KDQo+ID4gPiBBbmR5DQo=

--_000_7b77b0356d074648a5f1d8096c224210XCHRTP013ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1z
b0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJw
bGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb1BsYWluVGV4dCwgbGkuTXNv
UGxhaW5UZXh0LCBkaXYuTXNvUGxhaW5UZXh0DQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglt
c28tc3R5bGUtbGluazoiUGxhaW4gVGV4dCBDaGFyIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1i
b3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1h
bDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRv
Ow0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFy
Z2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LHNhbnMtc2VyaWY7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29u
YWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4
dDt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4u
UGxhaW5UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiUGxhaW4gVGV4dCBDaGFyIjsNCgltc28t
c3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IlBsYWluIFRleHQiOw0KCWZvbnQt
ZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHls
ZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEu
MGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24x
DQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4
bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94
bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2
OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFw
ZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBs
aW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5IaSBBbmR5LDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij5UaGFua3MgdmVyeSBtdWNoIGZvciB0aGUgdGhvcm91Z2ggWUFORyBEb2N0b3IgcmV2aWV3
LiZuYnNwOyZuYnNwOyBJIGhhdmUgaW5jbHVkZWQgdGhlIGFncmVlZCB1cG9uIGNvbW1lbnRzLCBh
bmQgdXBsb2FkZWQgdG86PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5k
cmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLTIyPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5hIHN1bW1hcnkgb2YgdGhlIGNsYXJpZmljYXRp
b25zIG1hZGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuJm5ic3A7IExldCBtZSBrbm93
IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVlZGVkIHRvIGNvbmNsdWRlIHRoZSBZQU5HIGRvY3Rv
ciByZXZpZXcgb2YgdGhpcyBkb2N1bWVudC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
QWxzbyBhcyB0aGUgcmVzdWx0IG9mIHRoZSDigJhlcnJvci10YWfigJkgZGlzY3Vzc2lvbiB3aXRo
IHlvdSBhbmQgTWFydGluLCB3ZSBuZWVkIHRvIHBlcmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhl
IOKAmGVycm9yLXRhZ+KAmSBtYXBwaW5nIHdpdGhpbiBib3RoIGRyYWZ0LWlldGYtbmV0Y29uZi1u
ZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgU2VjdGlvbiA3LCBhbmQgZHJhZnQtaWV0Zi1uZXRj
b25mLXJlc3Rjb25mLW5vdGlmDQogU2VjdGlvbiAzLjMuJm5ic3A7Jm5ic3A7IERpcmVjdGx5IGJl
bG93IGlzIHNvbWUgdGV4dCBhbmQgcHJvcG9zZWQgZXJyb3ItdGFnIG1hcHBpbmdzIGZvciB0aG9z
ZSBkb2N1bWVudHMuJm5ic3A7DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsm
bmJzcDsgbyZuYnNwOyBBbiAmcXVvdDtlcnJvci10YWcmcXVvdDsgbm9kZSB3aXRoIHRoZSB2YWx1
ZSBiZWluZyBhIHN0cmluZyB0aGF0PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1
b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29ycmVzcG9uZHMgdG8g
YW4gaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4mbmJzcDsgVGhpcw0KPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmcXVvdDtlcnJvci10YWcmcXVvdDsgd2lsbCBjb3JyZXNwb25k
IHRvIHRoZSBlcnJvciBpZGVudGl0aWVzIHdpdGhpbg0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Nv
dXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDtbSS1ELmRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnNdIHNlY3Rp
b24NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Mi40LjYgZm9yIGdlbmVyYWwgc3Vic2NyaXB0
aW9uIGVycm9yczo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVycm9yIGlkZW50aXR5Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVzZXMgZXJyb3It
dGFnPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAtLS0tLS0tLS0tLS0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx
dW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IGRzY3AtdW5hdmFpbGFibGUmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
aW52YWxpZC12YWx1ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGVuY29k
aW5nLXVuc3VwcG9ydGVkJm5ic3A7Jm5ic3A7IGludmFsaWQtdmFsdWUNCjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls
eTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZmlsdGVyLXVuYXZhaWxhYmxlJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IGludmFsaWQtdmFsdWU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmll
ciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwO2ZpbHRlci11bnN1cHBvcnRlZCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnZh
bGlkLXZhbHVlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW5zdWZmaWNp
ZW50LXJlc291cmNlcyByZXNvdXJjZS1kZW5pZWQNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3Vy
aWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7bm8tc3VjaC1zdWJzY3JpcHRpb24mbmJzcDsmbmJzcDsgaW52YWxp
ZC12YWx1ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlcGxheS11bnN1
cHBvcnRlZCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvcGVyYXRpb24tbm90LXN1cHBvcnRlZDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cmVhbS11bmF2YWlsYWJsZSZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnZhbGlkLXZhbHVlPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90
O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgc3VzcGVuc2lvbi10aW1lb3V0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IG9wZXJhdGlvbi1mYWlsZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVv
dDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyB1bnN1cHBvcnRhYmxlLXZvbHVtZSZuYnNwOyZuYnNwOyB0b28tYmlnPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291
cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBPciB0
aGlzICZxdW90O2Vycm9yLXRhZyZxdW90OyB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yIGlk
ZW50aXRpZXMNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7d2l0aGluIFtJLUQuaWV0Zi1uZXRj
b25mLXlhbmctcHVzaF0gQXBwZW5kaXggQS4xIGZvcg0KPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Nv
dXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDtzdWJzY3JpcHRpb24gZXJyb3JzIHNwZWNpZmljIHRvIFlBTkcgZGF0YXN0b3Jlczo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iZm9u
dC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291
cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwO2Vycm9yIGlkZW50aXR5Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVz
ZXMgZXJyb3ItdGFnPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAtLS0tLS0tLS0t
LS0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNhbnQtZXhjbHVkZSZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvcGVyYXRpb24tbm90LXN1cHBvcnRlZDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRhdGFzdG9yZS1ub3Qtc3Vic2Ny
aWJhYmxlJm5ic3A7IG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90
O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgbm8tc3VjaC1zdWJzY3JpcHRpb24tcmVzeW5jIGludmFsaWQtdmFs
dWU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvbi1jaGFuZ2UtdW5zdXBw
b3J0ZWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgb3BlcmF0aW9uLW5vdC1z
dXBwb3J0ZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvbi1jaGFuZ2Ut
c3luYy11bnN1cHBvcnRlZCZuYnNwOyBvcGVyYXRpb24tbm90LXN1cHBvcnRlZDxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBlcmlvZC11bnN1cHBvcnRlZCZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnZhbGlkLXZhbHVl
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXBkYXRlLXRvby1iaWcmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgdG9vLWJpZzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5l
dyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IHN5bmMtdG9vLWJpZyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0b28t
YmlnPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdW5jaGFuZ2luZy1zZWxl
Y3Rpb24mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgb3BlcmF0aW9u
LWZhaWxlZDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5EbyB5b3UgKG9yIGFueW9uZSBlbHNl
IGluIHRoaXMgdGhyZWFkKSBoYXZlIGFueSBzdWdnZXN0aW9ucyBvbiB0aGUgdGV4dCBvciBwcm9w
b3NlZCBtYXBwaW5ncz8mbmJzcDsgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgb2ssIEFsZXggd2ls
bCBuZWVkIHRvIHJlbW92ZSB0aGUgTkVUQ09ORiBlcnJvci10YWcgc3BlY2lmaWNzIGZyb20gZHJh
ZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaCBTZWN0aW9ucyA0LjQuMSAmYW1wOyA0LjQuMjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5BbHNvIFJlc2hhZCB3aWxsIGhhdmUgdG8gZG8gc29t
ZSB3b3JrIGJlY2F1c2UgaGUgaXMgdGhlIFlBTkcgZG9jdG9yIG9mIG5ldGNvbmYtbmV0Y29uZi1l
dmVudC1ub3RpZmljYXRpb25zLCBhbmQgaGUgd2lsbCB3YW50IHRvIGluY2x1ZGUgdGhlIHNhbWUg
aW5mb3JtYXRpb24gd2l0aGluIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+VGhhbmtzLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+RXJpYzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkZyb206IEFuZHkgQmll
cm1hbiAmbHQ7YW5keUB5dW1hd29ya3MuY29tJmd0OyA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPlNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAyMywgMjAxOSAxMjo0MiBQ
TTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+VG86IEVyaWMgVm9pdCAo
ZXZvaXQpICZsdDtldm9pdEBjaXNjby5jb20mZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij5DYzogTWFydGluIEJqb3JrbHVuZCAmbHQ7bWJqQHRhaWwtZi5jb20mZ3Q7
OyB5YW5nLWRvY3RvcnNAaWV0Zi5vcmc7IG5ldGNvbmZAaWV0Zi5vcmc7IGRyYWZ0LWlldGYtbmV0
Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuYWxsQGlldGYub3JnPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5TdWJqZWN0OiBSZTogW3lhbmctZG9jdG9yc10gWWFu
Z2RvY3RvcnMgbGFzdCBjYWxsIHJldmlldyBvZiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJl
ZC1ub3RpZmljYXRpb25zLTIxPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5PbiBXZWQsIEphbiAyMywgMjAxOSBhdCA0OjM1
IEFNIEVyaWMgVm9pdCAoZXZvaXQpICZsdDttYWlsdG86ZXZvaXRAY2lzY28uY29tJmd0OyB3cm90
ZTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgRnJvbTogTWFy
dGluIEJqb3JrbHVuZCwgSmFudWFyeSAyMywgMjAxOSAzOjMyIEFNPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyBIaSw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZx
dW90O0VyaWMgVm9pdCAoZXZvaXQpJnF1b3Q7ICZsdDttYWlsdG86ZXZvaXRAY2lzY28uY29tJmd0
OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyBIaSBBbmR5LDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgTG9v
a2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uJm5ic3A7IE15IHJlYWRpbmcgaXMgdGhhdCBpdCB0YWtl
cyB0aGUgdHJhbnNwb3J0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgc3BlY2lmaWMgZXJyb3IgaW5mbyBjb250YWluZWQgaW48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0
Y29uZi1ldmVudC1ub3RpZmljYXRpb25zIHNlY3Rpb24gNywgYW5kIHRoZW48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyByZXBsaWNhdGVzIHRoYXQgaW5m
byB3aXRoaW4gMTIgc2VwYXJhdGUgZGVzY3JpcHRpb24gb2JqZWN0cyBvZiB0aGU8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyB0cmFuc3BvcnQgaW5kZXBl
bmRlbnQgaWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMueWFuZy4mbmJzcDsgVGhlIHZhbHVl
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgeW91IGFy
ZSBhc3NlcnRpbmcgaXMgdGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMgY29udGFpbmlu
ZyB0aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBy
cGMtc3RtdCBoYXZlIHRyYWRpdGlvbmFsbHkgZG9jdW1lbnQgdGhlIG1hbmRhdG9yeS10by1pbXBs
ZW1lbnQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
cXVvdDtlcnJvci10YWcmcXVvdDsgZmllbGQgd2l0aGluIHRoZSBtb2RlbC4mbmJzcDsgQW5kIHBy
ZXN1bWFibHkgeW91IGFyZSBjb25jZXJuZWQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyB0aGF0IGRldmVsb3BlcnMgc2hvdWxkIG5vdCBoYXZlIHRvIGxv
b2sgZWxzZXdoZXJlIGZvciB0aGlzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgaW5mb3JtYXRpb24uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyBJIHRoaW5rIHRoYXQgbWF5YmUgdGhlcmUgYXJlIHR3byBzZXBhcmF0ZSBpc3N1ZXMgaGVy
ZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IFRoZSBmaXJzdCBpc3N1ZSBpcyB0
aGF0IGZvciBlYWNoIGVycm9yIGlkZW50aXR5IGRlZmluZWQsIHRoZXJlIG5lZWRzIHRvIGJlIGE8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgbWFwcGluZyB0byB0
aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJyb3IgaGFuZGxpbmcuJm5ic3A7IEFuZHkgc3VnZ2VzdHMg
dGhhdCB0aGlzIGluZm8gaXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgYWRkZWQgdG8gdGhpcyBkb2N1bWVudCwgYnV0IGN1cnJlbnRseSB0aGlzIGluZm9ybWF0
aW9uIGlzIGF2YWlsYWJsZSBpbiB0aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgcHJvdGNvbC1tYXBwaW5nIGRvY3VtZW50cyAobmV0Y29uZi1ub3RpZiBhbmQg
cmVzdGNvbmYtbm90aWYpLiZuYnNwOyBQZXJzb25hbGx5LCBJPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IHRoaW5rIHRoYXQgdGhlIGN1cnJlbnQgc3BsaXQgb2Yg
dGV4dCBiZXR3ZWVuIGRvY3VtZW50cyBpcyBmaW5lLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyA8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgVGhlIHNlY29uZCBpc3N1ZSBpcyB0aGF0IGN1cnJlbnRseSwgYm90aCBuZXRjb25m
LW5vdGlmIGFuZCByZXN0Y29uZi1ub3RpZiBzYXk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgdGhhdCAqYWxsKiB0aGVzZSBlcnJvcnMgdXNlIHRoZSBlcnJvci10
YWcgJnF1b3Q7b3BlcmF0aW9uLWZhaWxlZCZxdW90Oy4mbmJzcDsgRXNzZW50aWFsbHkgaXQgbWVh
bnM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgdGhhdCB3ZSBi
eXBhc3MgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwcm90b2NvbHMuJm5ic3A7IEFzIEFuZHkg
cG9pbnRzIG91dCBiZWxvdyw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgdGhlIGVycm9yICZxdW90O2luc3VmZmljaWVudC1yZXNvdXJjZXMmcXVvdDsgc2hvdWxk
IGJlIG1hcHBlZCB0byAmcXVvdDtyZXNvdXJjZS1kZW5pZWQmcXVvdDsgaW48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgTkVUQ09ORiBhbmQgUkVTVENPTkYgKHRo
ZXkgbWVhbiB0aGUgc2FtZSB0aGluZykuJm5ic3A7IFNvIGl0IG1pZ2h0IG1ha2Ugc2Vuc2U8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgdG8gY2FyZWZ1bGx5IGdv
IHRocm91Z2ggdGhlIGxpc3Qgb2YgZXJyb3JzIGFuZCBtYXAgdGhlbSB0byB0aGUgY29ycmVjdCBl
cnJvci10YWc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgKGJ1
dCBzcGVjaWZpeSB0aGlzIGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzKS48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+SSBhbSBjb21wbGV0ZWx5IGdvb2Qgd2l0aCB0aGlzLiZuYnNwOyAmbmJz
cDtEb2VzIHRoaXMgd29yayBmb3IgeW91IEFuZHk/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPlRoaXMgaXMgYmV0dGVyLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+SSdtIGdsYWQgbm8gb3RoZXIgZHJhZnRzIGFyZSBjcmVhdGluZyB0aGVpciBvd24gZXJyb3Ig
cmVwb3J0aW5nIHN5c3RlbSBmb3IgZWFjaCBycGMtc3RtdC48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPlRoaXMgaXMgYSBiYWQgcHJlY2VkZW50IGFuZCBsaWtlbHkgdG8g
YmUgc2tpcHBlZCBpbiBpbXBsZW1lbnRhdGlvbnMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPkVyaWM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAvbWFydGluPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij5BbmR5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyA8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgSWYgdGhlIFlBTkcgZG9jdG9ycyByZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNl
cnRlZC4mbmJzcDsgQSBzaW1pbGFyIHRleHQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyBjaGFuZ2Ugd291bGQgYmUgbmVlZGVkIGZvciBxdWl0ZSBhIGZl
dyBlcnJvciBpZGVudGl0aWVzIHdpdGhpbiBZQU5HPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgUHVzaC4mbmJzcDsgUGVyc29uYWxseSBJIGRvbuKAmXQg
bGlrZSB0aGF0IFlBTkcgbW9kZWxzIHNob3VsZCBiZSByZXF1aXJlZCB0bzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IGVtYmVkIHRoaXMgaW5mb3JtYXRp
b24uJm5ic3A7IEJ1dCBJIHdpbGwgbWFrZSB0aGUgY2hhbmdlIGlmIHlvdSByZWFsbHkgd2FudDxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IHRoaXMsIGFu
ZCBub2JvZHkgZWxzZSBvYmplY3RzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgT3RoZXIgdGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3Bl
biBpc3N1ZXMgaW4gdGhlIFlBTkc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyBEb2N0b3IgcmV2aWV3LiZuYnNwOyBEbyB5b3Uga25vdyBvZiBhbnl0aGlu
ZyBlbHNlPzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgRXJpYzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBGcm9tOiBBbmR5IEJpZXJtYW4sIEph
bnVhcnkgMjEsIDIwMTkgMjoyNiBQTTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgSGksPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBJ
IHRoaW5rIHRoZSBlcnJvci10YWcgaXNzdWUgY2FuIGJlIHJlc29sdmVkIGJ5IGluY2x1ZGluZyAx
IGV4dHJhPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsg
c2VudGVuY2UgaW4gZWFjaCBlcnJvciBpZGVudGl0eS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBJIGtub3cgdGhpcyBpcyBORVRDT05GIGFuZCBSRVNU
Q09ORiBjZW50cmljIGJ1dCB0aG9zZSBhcmUgdGhlIG9ubHkgMjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IHN0YW5kYXJkIHByb3RvY29scyBzdXBwb3J0
ZWQgZm9yIHRoZSBZQU5HIGxhbmd1YWdlIHJpZ2h0IG5vdy48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IElmIHRoZSAn
ZXJyb3ItdGFnJyBmaWVsZCBpcyB1c2VkIGluIGVycm9yIHJlcG9ydGluZyw8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyB0aGVuIHRoZSB2YWx1ZSAnJmx0O2NvcnJlY3QgZXJyb3ItdGFnJmd0OycgTVVTVCBi
ZSB1c2VkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgRm9yIGV4
YW1wbGU6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IE9MRDo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwO2lkZW50aXR5IGlu
c3VmZmljaWVudC1yZXNvdXJjZXMgezxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDtiYXNlIGVzdGFibGlzaC1zdWJzY3Jp
cHRpb24tZXJyb3I7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2Jhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAm
bmJzcDsgJm5ic3A7YmFzZSBzdWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7ZGVzY3JpcHRpb248bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZxdW90O1RoZSBwdWJsaXNoZXIgaGFz
IGluc3VmZmljaWVudCByZXNvdXJjZXMgdG8gc3VwcG9ydCB0aGU8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyByZXF1ZXN0ZWQgc3Vic2NyaXB0aW9uLiZuYnNwOyBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQg
YWxsb2NhdGVkIENQVTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGlzIHRvbyBsaW1pdGVkIHRvIGdlbmVy
YXRlIHRoZSBkZXNpcmVkIHNldCBvZiBub3RpZmljYXRpb248bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBt
ZXNzYWdlcy4mcXVvdDs7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7fTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyBORVc6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAm
bmJzcDtpZGVudGl0eSBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7YmFzZSBl
c3RhYmxpc2gtc3Vic2NyaXB0aW9uLWVycm9yOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDtiYXNlIG1vZGlmeS1zdWJz
Y3JpcHRpb24tZXJyb3I7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2Jhc2Ugc3Vic2NyaXB0aW9uLXN1c3BlbmRlZC1y
ZWFzb247PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwO2Rlc2NyaXB0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmcXVvdDtU
aGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgcmVxdWVzdGVkIHN1YnNjcmlwdGlvbi4mbmJzcDsgQW4gZXhhbXBs
ZSBtaWdodCBiZSB0aGF0IGFsbG9jYXRlZCBDUFU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBpcyB0b28g
bGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgbWVzc2FnZXMuIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1c2Vk
IGluIGVycm9yIHJlcG9ydGluZyw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB0aGVuIHRoZSB2YWx1ZSAn
cmVzb3VyY2UtZGVuaWVkJyBNVVNUIGJlIHVzZWQuJnF1b3Q7OzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwO308bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgQW5keTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyBPbiBGcmksIEphbiAxOCwgMjAxOSBhdCAxMTo1MyBBTSBFcmljIFZvaXQgKGV2b2l0
KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZsdDtt
YWlsdG86ZXZvaXRAY2lzY28uY29tJmx0O21haWx0bzptYWlsdG86ZXZvaXRAY2lzY28uY29tJmd0
OyZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgSGkgQW5keSw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
IFRoYW5rcy4mbmJzcDsgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVyZSB3YXMg
YWdyZWVtZW50LiZuYnNwOyBJIGhhdmU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyByZW1vdmVkIHRoZSBpdGVtcyBiZWxvdyB3aGVyZSB5b3Ugd2VyZSBv
ay48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IFJlbWFpbmluZyBi
ZWxvdyBhcmUgdGhlIG9wZW4gaXRlbXMsIHdpdGggcmVzcG9uc2VzLjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBTaG91bGQg
YmUgY2xlYXIgc29tZXdoZXJlIHRoYXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IHN1c3BlbmQgaXMgZm9yIENQ
VSBhbmQgb3RoZXIgcmVzb3VyY2VzLCBhbmQgTkFDTSBub3QgY29uc2lkZXJlZDxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAm
bmJzcDsgdG8gYmUgYSByZXNvdXJjZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJZiBOQUNNIGlzIGFjdGl2ZSwgaXQgbmVlZHMgdG8gYmUgZm9s
bG93ZWQuJm5ic3A7IFRoZSB0ZXh0IHdlIGhhdmUgZm9yPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBOQUNNIGlzIGluIFNlY3Rpb24gNS40LiZu
YnNwOyBEbyB5b3Ugc2VlIHNvbWV0aGluZyBlbHNlIHNwZWNpZmljIHRvPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBzdWJzY3JpcHRpb24gc3Vz
cGVuc2lvbiBuZWVkZWQgaGVyZT8mbmJzcDsgKE1heWJlIEkgYW0gbm90IGdldHRpbmcgeW91cjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgcG9p
bnQuKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZn
dDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7
IE5vIC0tIE9LIHRvIGxlYXZlIE5BQ00gYXMgdGVybWluYXRlLWlmLWxvc3Mtb2YtcmlnaHRzIChJ
cyB0aGVyZSBhbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgZXJyb3IgaWRlbnRpdHkgZm9yIHRoaXMgZXZlbnQ/KTxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgVGhlIGlkZW50aXR5IHdoaWNoIGFwcGxpZXMgaGVy
ZSBpcyAmcXVvdDtzdHJlYW0tdW5hdmFpbGFibGUmcXVvdDsuJm5ic3A7IFRoaXMgaXMgdGhlPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgc2FtZSBpZGVu
dGl0eSB3aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXIgc3VmZmlj
aWVudDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IHBl
cm1pc3Npb25zIGluIHRoZSBmaXJzdCBwbGFjZS4mbmJzcDsgSSBkb24ndCBiZWxpZXZlIHdlIHdv
dWxkIHdhbnQgdG88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hlbiBOQUNNIHdoZW4gcGVybWlz
c2lvbnMgaGF2ZSBqdXN0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgYmVlbiBjaGFuZ2VkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyAmZ3Q7IEkzKSBzZWMgMi4xIHBhcmEgNjo8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IEV2
ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVsaXZlcmVkIHRvIGEgcmVjZWl2ZXIgaW4gYSBkaWZm
ZXJlbnQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7IG9yZGVyIHRoYW4gdGhleSB3ZXJlIHBsYWNlZCBvbnRvIGFu
IGV2ZW50IHN0cmVhbS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1
YnNjcmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LCB0aGV5IGFyZSBub3QgZXZlbnRzPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7
ICZuYnNwOyAmbmJzcDtwbGFjZWQgaW4gZXZlbnQgc3RyZWFtLjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IEFncmVlIHRoYXQgdGhleSBhcmUgbm90
IG9uIHRoZSBldmVudCBzdHJlYW0uJm5ic3A7IFNvIHRoZXkgZG8gbm90IHZpb2xhdGU8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHRoaXMgcmVx
dWlyZW1lbnQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBpbiAmcXVvdDtTZWN0
aW9uIDIuNzogc3Vic2NyaXB0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBzdGF0ZSBub3RpZmljYXRpb25zJnF1b3Q7LCBpbmNsdWRpbmcu
Li48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAm
cXVvdDsgSW5zdGVhZCwgdGhleSBhcmUgaW5zZXJ0ZWQgKGFzIGRlZmluZWQgaW4gdGhpcyBzZWN0
aW9uKSB3aXRoaW4gdGhlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyBzZXF1ZW5jZSBvZiBub3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBh
IHBhcnRpY3VsYXIgcmVjZWl2ZXIuJnF1b3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7TmVlZCB0byBh
bGxvdyBlbmRlZCBvciBzdXNwZW5kZWQgdG8gYmUgc2VudDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7
aGVhZC1vZi1saW5lIHdoZW5ldmVyIHN0YXRlIGNoYW5nZXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIGFtIG5vdCBzdXJlIHRoYXQgc3VzcGVu
ZGVkIHNob3VsZCBhbHdheXMgYmUgc2VudCBoZWFkLW9mLWxpbmUuPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBDb25zaWRlcjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgdGhhdCBpbXBsZW1l
bnRhdGlvbiBtaWdodCB3YW50IHRvIGxldCB0aGUgZXhpc3RpbmcgcXVldWUgb2YgZmlsdGVyZWQ8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGV2
ZW50IHJlY29yZHMgYmUgc2VudCBpZiBpcyBmaWx0ZXIgY29tcGxleGl0eSBjYXVzaW5nIHRoZSBD
UFUgaXNzdWUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyBUaGF0IGNvdWxkIGJlIGRpZmZlcmVudCB0aGFuIGlmIGl0IGlzIGEgYmFuZHdpZHRo
IGlzc3VlIGRyaXZpbmcgdGhlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyBzdXNwZW5zaW9uLCBhbmQgeW91IGRlZmluaXRlbHkgd2FudCB0aGUg
J3N1YnNjcmlwdGlvbi1zdXNwZW5kZWQnIHRvPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBiZSBwbGFjZWQgYXQgdGhlIGhlYWQgb2YgbGluZS48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgSXQgaXMg
dXAgdG8gdGhlIHB1Ymxpc2hlciB0byBkZWNpZGUgd2hlbiB0byBzdG9wIHNlbmRpbmcgZXZlbnRz
IG9uIGE8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7IHN1YnNjcmlwdGlvbi48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7IE9idmlvdXNseSB0aGUgcHVibGlzaGVyIGNhbm5vdCB3YWl0IHVudGls
IHRoZSBzdWJzY3JpcHRpb24gaXMgaWRsZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IFRoZSByZWFzb24gaXQgaXMgZ2V0dGluZyBzdXNwZW5k
ZWQgaXMgaXQgaXMgZmFyIGZyb20gaWRsZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7IFNvIGFsc28gdXAgdG8gdGhlIHB1Ymxpc2hlciB3cnQvIHdo
YXQgdG8gZG8gd2l0aCBhbnkgZXZlbnRzIHRoYXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGhhdmUgbm90IGJlZW4gZGVsaXZlcmVkIHlldCBv
biBhIHN1YnNjcmlwdGlvbi4mbmJzcDsgQ291bGQgZGVsZXRlIHRoZW0gb3I8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHNhdmUgdGhlbSBmb3Ig
d2hlbiBtb3JlIGJhbmR3aWR0aCBhdmFpbGFibGUgKGZvciBleGFtcGxlKTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiZuYnNw
OyBJcyB0aGVyZSB0ZXh0IHJlcXVpcmVkIGluIHRoZSBkcmFmdCBoZXJlPzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgLi4uPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBCZXlvbmQgdGhhdCBpdCBpcyB1cCB0byB0
aGUgaW1wbGVtZW50YXRpb24gdG8gZGVjaWRlIGlmIHNvbWU8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHVuLXRyYW5zbWl0dGVkIHF1ZXVlIG9m
IGV2ZW50IHJlY29yZHMgc2hvdWxkIGJlIGZsdXNoZWQgYW5kPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyByZXByb2Nlc3NlZCBiYXNlZCBvbiB0
aGUgbW9kaWZpY2F0aW9uLiZuYnNwOyBJIGRvIG5vdCBleHBlY3QgdGhpcyB3b3VsZDxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgcG9wdWxhciwg
YXMgYSByZXBsYXkgc3Vic2NyaXB0aW9uIGNvdWxkIGFjY29tcGxpc2ggdGhpcyBzYW1lPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBmdW5jdGlv
bmFsIG5lZWQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgQWdyZWVkIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gY2FuIGRyb3AgYXQgYW55IHRpbWUg
YW5kIGluY3JlbWVudCB0aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7IGFwcHJvcHJpYXRlIGNvdW50ZXJzLiBJdCB3aWxsIHRyeSB0byB0byBk
byB0aGlzLCBidXQgbm8gcmVxdWlyZW1lbnRzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBleGNlcHQgbWF5YmUgc3Vic2NyaXB0aW9uIGV2ZW50
cyBsaWtlICdyZXBsYXktY29tcGxldGVkJyBjYW5ub3QgYmU8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGRyb3BwZWQ8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IEhhdmUgcHV0IGEgbWlub3IgdHdlYWsgaW50byBT
ZWN0aW9uIDIuNzo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IFtv
bGRdJm5ic3A7IHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3Qg
YmUgZmlsdGVyZWQgb3V0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fubm90IGJl
IGRyb3BwZWQgb3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyBmaWx0ZXJlZCBvdXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7IC4uLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBtaWdodCBiZSB3b3J0aCB0d2Vh
a2luZyBhIGNvdXBsZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7ICZndDsgd29yZHMgdG8gYWxsb3cgZm9yIGhlYWQtb2YtbGluZSBwbGFjZW1lbnQgb2Y8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZx
dW90O3N1YnNjcmlwdGlvbi1zdXNwZW5kZWQmcXVvdDsuPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZxdW90O1N1YnNjcmli
ZWQgZXZlbnQgcmVjb3JkcyBxdWV1ZWQgZm9yIHNlbmRpbmcgYWZ0ZXIgdGhlIGlzc3VhbmNlIG9m
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyZu
YnNwOyAmbmJzcDsgdGhpczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7IHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4mcXVvdDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBBcmUgeW91IGdvb2Qgd2l0aCB0aGlzIHN1Z2dl
c3RlZCBjaGFuZ2U/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgTm90IHN1cmUgLS0gaXQgbmVlZHMgdG8gYmUgY2xlYXIgdGhhdCBzdWJzY3JpcHRp
b24tc3VzcGVuZGVkIGlzIHRoZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDsgbGFzdCBldmVudCBzZW50IGJlZm9yZSBzdXNwZW5kaW5nIGFuZCBz
dWJzY3JpcHRpb24tcmVzdW1lZCBpcyB0aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGZpcnN0IGV2ZW50IHNlbnQgYWZ0ZXIgdHJhbnNpdGlv
biBmcm9tIHN1c3BlbmRlZCB0byBhY3RpdmUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGUgbmV4dCBldmVudCBjb3VsZCBhbHNvIGJlIHN1
YnNjcmlwdGlvbi10ZXJtaW5hdGVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgSSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhlIHRl
eHQuJm5ic3A7IEZvciBTZWN0aW9uIDIuNy40PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCB0aGUgY3VycmVudCB0
ZXh0IGlzOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJnF1b3Q7
Tm8gZnVydGhlciBub3RpZmljYXRpb24gd2lsbCBiZSBzZW50IHVudGlsIHRoZSBzdWJzY3JpcHRp
b24gcmVzdW1lczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7IG9yIGlzIHRlcm1pbmF0ZWQuJnF1b3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyBBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3JpcHRpb24tcmVzdW1lZCBzYXlz
JnF1b3Q7OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZxdW90O1N1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBnZW5lcmF0ZWQgYWZ0ZXIgdGhlIGlzc3Vh
bmNlIG9mIHRoaXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNl
bnQuJnF1b3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBCYXNl
ZCBvbiB0aGUgZGlzY3Vzc2lvbiwgSSBjYW4gbWFrZSBpdDo8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZxdW90O1N1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBhcmUg
YWdhaW4gcGVybWl0dGVkIHRvIGJlIHNlbnQgZm9sbG93aW5nPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgdGhpcyBzdWJzY3JpcHRpb24gc3RhdGUgY2hh
bmdlIG5vdGlmaWNhdGlvbi4mcXVvdDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7IElzIHRoaXMgc3VmZmljaWVudCBmb3IgeW91PzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgLi4uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7IEk0KSBzZWMgMi40LjY6IFJQQyBGYWlsdXJl
czxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsg
Jmd0OyZuYnNwOyAmbmJzcDstLSBjb25jZXJuIGFib3V0IGEgc3Vic2NyaXB0aW9uLXNwZWNpZmlj
IGVycm9yIHJlcG9ydGluZyBzeXN0ZW08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBtdXN0IG1ha2Ug
c3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzIHVzZWQ8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsgY29ycmVjdGx5
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0Ozxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgWWVz
LiZuYnNwOyBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdpdGggdGhlIGVtYmVk
ZGVkIE5FVENPTkY8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7IGFuZCBSRVNUQ09ORiBtZWNoYW5pc21zLiZuYnNwOyBUaGVyZSBpcyBtdWNoIGFk
ZGl0aW9uYWwgaW5mb3JtYXRpb24gaW48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7IHRoZSB0cmFuc3BvcnQgZHJhZnRzIGhlcmUuPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAm
bmJzcDstLSBUaGUgZXJyb3ItdGFnIHZhbHVlIG5lZWRzIHRvIGJlIGlkZW50aWZpZWQgZm9yIGVh
Y2ggJ3JlYXNvbic8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7ICZndDsgaWRlbnRpdHk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMu
Jm5ic3A7IEUuZy4sIHNlZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBub3RpZmljYXRp
b25zIFNlY3Rpb24gNzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7IEkgZG8gbm90IGFncmVlIHRoaXMgaXMgYSBnb29kIGlkZWEuPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBFYWNoIGVycm9yIGlk
ZW50aXR5IHNob3VsZCBzaW1wbHkgc3RhdGUgdGhlIHJlcXVpcmVkICZxdW90O2Vycm9yLXRhZyZx
dW90OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZn
dDsgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yLiZuYnNwOyBUaGlzIGlzIGV4cGVj
dGVkIG9mIHByb3RvY29sPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyBvcGVyYXRpb25zIHRoYXQgYXJlIGFkZGVkIHRvIE5FVENPTkYgYW5kIFJF
U1RDT05GLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgSW4gZHJh
ZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgc2VjdGlvbiA3LCB0
aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyByZXF1
aXJlZCAmcXVvdDtlcnJvci10YWcmcXVvdDsgaXMgaWRlbnRpZmllZCBhcyAmcXVvdDtvcGVyYXRp
b24tZmFpbGVkJnF1b3Q7LiZuYnNwOyBJZiB3ZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IGluc3RlYWQgcGxhY2VkIHRoYXQgJnF1b3Q7ZXJyb3ItdGFn
JnF1b3Q7IGluZm9ybWF0aW9uIGluIHRoZSBZQU5HIG1vZGVsLCB0aGVuIHdlPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgaGF2ZSB0aWVkIHRoZSBZQU5H
IG1vZGVsIHRvIHRoZSBSRVNUQ09ORiBhbmQgTkVUQ09ORiB0cmFuc3BvcnRzLjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBCb3RoIE5FVENPTkYgYW5kIFJF
U1RDT05GIHVzZSBhIGNvbXBhdGlibGUgZXJyb3IgcmVwb3J0aW5nIGRhdGE8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHN0cnVjdHVyZS48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IFRoZSAm
cXVvdDtlcnJvci10YWcmcXVvdDsgaXMgdXNlZCBpbiBib3RoIG9mIHRoZW0uJm5ic3A7IElNTyBj
bGllbnQgZGV2ZWxvcGVycyBkbzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDsgbm90IHdhbnQgYSBkaWZmZXJlbnQgc2V0IG9mIGVycm9yIGNvZGVz
IGZvciB0aGUgc2FtZSBlcnJvciBjb25kaXRpb25zLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4mZ3Q7ICZndDsgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIFNlY3Rp
b24gMy4zIGFsc28gcmVxdWlyZXMgYW48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmcXVvdDtlcnJvci10YWcmcXVvdDsgbm9kZSBvZiAmcXVvdDtvcGVy
YXRpb24tZmFpbGVkJnF1b3Q7LiZuYnNwOyBTbyB3ZSB1c2VkIHRoZSB0cmFuc3BvcnQ8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBkcmFmdHMgcmF0aGVy
IHRoYW4gdGhlIFlBTkcgbW9kZWwgdG8gc3VwcG9ydCB0aGUgc2FtZSBlcnJvciBjb2RlcyBmb3I8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyB0aGUgc2Ft
ZSBlcnJvciBjb25kaXRpb25zLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyBJIGFncmVlIHRoYXQgdHJhbnNwb3J0IGRyYWZ0cyBjb3VsZCBkZWZpbmUgdGhl
aXIgb3duIGVycm9yPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyBpZGVudGl0aWVzLCB3aGljaCB3b3VsZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQg
ZXJyb3ItdGFnIHRoZXJlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAyLiZuYnNwOyAmcXVvdDttb2RpZnktc3Vic2Ny
aXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvJnF1b3Q7OiBUaGlzIE1VU1QgYmUgcmV0dXJuZWQ8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgd2l0aCB0aGUgbGVhZiAmcXVvdDtyZWFzb24mcXVv
dDsgcG9wdWxhdGVkIGlmIGFuIFJQQyBlcnJvciByZWFzb24gaGFzIG5vdDxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSB0cmFuc3Bv
cnQgcG9ydGlvbiBvZiBhIGZhaWxlZDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmcXVv
dDttb2RpZnktc3Vic2NyaXB0aW9uJnF1b3Q7IFJQQyByZXNwb25zZS4mbmJzcDsgVGhpcyBNVVNU
IGJlIHNlbnQgaWY8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7ICZndDsgaGludHM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gYWxsIDMgcGFyYWdyYXBo
cyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAmcXVvdDtwbGFjZWQgZWxzZXdoZXJlJnF1b3Q7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dGV4dCBtZWFuczsgbm90IGFwcHJvcHJpYXRlIGZv
ciBNVVNUOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7IEluc3RlYWQgb2YgJnF1b3Q7cGxhY2VkIGVsc2V3aGVyZSZxdW90OywgaG93IGFib3V0OiAm
cXVvdDtwbGFjZWQgaW4gc3Vic2NyaXB0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyB0cmFuc3BvcnQgZG9jdW1lbnQgZGVmaW5lZCBvYmpl
Y3QmcXVvdDsuJm5ic3A7IFdvdWxkIHRoaXMgYmUgc3VmZmljaWVudD88bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBObyAtLSBORVRDT05GIGFuZCBS
RVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciByZXBvcnRpbmcuPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGUgc2VydmVyIHJlcXVp
cmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRpbmcgbXVzdCBiZSBkb2N1bWVudGVkLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IEkgYWdyZWUg
d2l0aCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LSBlYWNoIG9wZXJhdGlvbiBN
VVNUIGlkZW50aWZ5IHRoZSBlcnJvci10YWdzIHRoYXQgYXJlIGV4cGVjdGVkIGZvcjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwO3ZhcmlvdXMgZXJyb3IgY29uZGl0aW9ucyAoc3VjaCBzIGlzIGRvbmUgaW4gUkZD
IDYyNDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsg
Jmd0OyZuYnNwOyAmbmJzcDstIHRoZSBzZXJ2ZXIgTVVTVCByZXR1cm4gdGhlIHNwZWNpZmllZCBl
cnJvci10YWdzLiBJZiBhIGNvbmRpdGlvbiBub3Q8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0gZXhwbGljaXRseTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsg
Jm5ic3A7ICZuYnNwO2RlZmluZWQgdGhlbiB0aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9w
cmlhdGUgZXJyb3ItdGFnIGZyb20gUkZDPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7NjI0MTxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgLSB0aGUg
c2VydmVyIE1BWSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgcmM6eWFuZy1kYXRhIGluIHRoZTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmx0O2Vy
cm9yLWluZm8mZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyZuYnNwOyAtIGRhdGE8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7IHN0cnVjdHVyZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgLSB0aGUgc2VydmVyIE1VU1QgdXNl
IHRoZSBhcHByb3ByaWF0ZSByYzp5YW5nLWRhdGEgdG8gcmVwb3J0IGhpbnRzPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyZuYnNwOyAtIGZvciBw
cm90b2NvbHMgb3RoZXIgdGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhleSBjYW4gbWFwPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBlcnJv
ci10YWc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7Jm5ic3A7IC0gb3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7IGlnbm9yZSBpdCw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBidXQgdGhlIGRvY3VtZW50IGRlZmlu
aW5nIHRoZSBwcm90b2NvbCBvcGVyYXRpb24gTVVTVCBwcm92aWRlPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBGdW5jdGlvbmFsbHksIGV2ZXJ5dGhpbmcgeW91IGFz
ayBmb3IgaXMgZnVsbHkgY292ZXJlZCB3aGVuIHlvdSBpbmNsdWRlPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRj
b25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucyAoc2VjdGlvbiA3KTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IGFuZCBkcmFmdC1pZXRmLW5ldGNv
bmYtcmVzdGNvbmYtbm90aWYgKHNlY3Rpb24gMy4zKS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7IE15IHJlYWQgb2YgdGhlIGlzc3VlIGlzIHRoYXQgeW91IGJlbGll
dmUgJnF1b3Q7ZXJyb3ItdGFnJnF1b3Q7IG11c3QgYmUgc3BlY2lmaWVkPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgaW4gdGhlIFlBTkcgbW9kZWwuJm5i
c3A7IEkgYmVsaWV2ZSB0aGF0ICZxdW90O2Vycm9yLXRhZyZxdW90OyBzaG91bGRuJ3QgYmUgaW4g
dGhlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgWUFO
RyBtb2RlbCBiZWNhdXNlIHRoYXQgd291bGQgdGllIHRoZSBtb2RlbCB0byBhIHRyYW5zcG9ydCB0
eXBlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgQW55IHRob3Vn
aHRzIG9uIGhvdyB3ZSBtaWdodCBjbG9zZSB0aGlzPyZuYnNwOyBJZiBhYnNvbHV0ZWx5IHJlcXVp
cmVkIEk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBj
b3VsZCBwbGFjZSBhIG5ldyBjb21tZW50IGxpbmUgaW4gdGhlIFlBTkcgbW9kZWwgdW5kZXI8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAvKiBJZGVudGl0
aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlvbiBlcnJvcnMgKi88bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IFRoZSBjb21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBs
aWtlOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IC8q
IFdoZW4gdXNlZCB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GIFJQQ3M6PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZx
dW90O2Vycm9yLXR5cGUmcXVvdDsgbm9kZSB0byBiZSB1c2VkIGlzICZxdW90O2FwcGxpY2F0aW9u
JnF1b3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmcXVvdDtlcnJvci10YWcmcXVvdDsgbXVzdCBiZSAmcXVvdDtv
cGVyYXRpb24tZmFpbGVkJnF1b3Q7LiZuYnNwOyAqLzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4mZ3Q7ICZndDsgVGhpcyBzZWVtcyBpbmNvbmdydW91cy4mbmJzcDsgSnVzdCB0aHJv
d2luZyBpdCBvdXQgYXMgYSBzdWdnZXN0aW9uLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJbiBhbnkgY2FzZSwgdGhlIC12MjEgd29yZGluZyByZXN1bHRz
IGZyb20gdGhlIGF0dGVtcHRlZCBiYWxhbmNpbmc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHRoZSBXRyByZXF1ZXN0cyBmb3I6PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAqIG1lcmdpbmcg
d2l0aCB0cmFuc3BvcnQgcHJvdG9jb2wgZXJyb3IgbWVjaGFuaXNtczxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgKiBXRyBsZWFkZXJzaGlwIGd1
aWRhbmNlIHRvIHByb3ZpZGUgcmVxdWlyZW1lbnRzIGZvciB0cmFuc3BvcnQ8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGRvY3VtZW50czxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyBPbmx5IDMgZmllbGRzIHNlZW08bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDt0byBiZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJvci1hcHAtdGFnLCBlcnJvci1p
bmZvKS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtQcm90Y29sIG9wZXJhdGlvbnMgYXJl
IGV4cGVjdGVkIHRvIGRvY3VtZW50IHNlcnZlciByZXF1aXJlbWVudHM8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDtmb3IgdGhlc2UgMyBmaWVsZHMsIGlmIGFwcGxpY2FibGUuJm5ic3A7IE9u
bHkgdGhlIGVycm9yLXRhZzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lzIG1hbmRhdG9y
eS10by11c2UuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgSG9wZWZ1bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1ZmZpY2llbnRseSB3aGVuIHRoaXMg
ZG9jdW1lbnQgaXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7IGNvdXBsZWQgd2l0aCB0aGUgTkVUQ09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJh
bnNwb3J0IGRvY3VtZW50cy48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7IEZvciBvdGhlciB0cmFuc3BvcnRzLCB0aGUgdGFncyB5b3UgaWRlbnRp
ZnkgYWJvdXQgd291bGQgbm90IGJlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBhcHBsaWNhYmxlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gdGhlIGVycm9y
IGFzc2lnbm1lbnRzIGFyZSBleHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sIGl0IGlzIG5vdDxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZu
YnNwOyAmbmJzcDsgJm5ic3A7IHBvc3NpYmxlIGZvciAmbHQ7a2lsbC1zdWJzY3JpcHRpb24mZ3Q7
IHRvIGZhaWwgd2l0aCBhbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICdpbnN1ZmZpY2llbnQtcmVz
b3VyY2VzJyBlcnJvcjs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyBUaGlzIGlzIHRoZSBpbnRlbnQgb2YgdGhlIGJhc2Ugc3BlY2lmaWNhdGlvbiwg
ZS5nLiwgd2UgZG9uJ3QgYmVsaWV2ZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7ICZndDsgYTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7ICZndDsga2lsbC08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHN1YnNjcmlwdGlvbiBzaG91bGQgZmFpbCBmb3IgYW4g
aW5zdWZmaWNpZW50LXJlc291cmNlcyByZWFzb24uJm5ic3A7IEJ1dDxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgdmVuZG9ycyBtaWdodCBkZXNp
cmUgbW9yZSBzcGVjaWZpY2l0eS4mbmJzcDsgQXMgYSByZXN1bHQgaXMgY2VydGFpbmx5IG9rPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBmb3Ig
dmVuZG9yIGltcGxlbWVudGF0aW9ucyB0byBhZGQgbmV3IGVycm9yIGlkZW50aXRpZXMuPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgSU1PIGFueXRo
aW5nIGNhbiBmYWlsIGZvciBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzLiBUaGF0IGlzIHZlcnk8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGltcGxl
bWVudGF0aW9uLTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgc3BlY2lmaWMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyBJbnN0ZWFkIG9mIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIEkgd291bGQgY2FsbCBpdCBh
cHBsaWNhdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7IHNwZWNpZmljLiZuYnNwOyBSaWdodCBub3cgd2UgZG9uJ3QgaGF2ZSBhIGNhdGNoLWFsbCBl
cnJvci1pZGVudGl0eSBvZjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICdvdGhlci1lcnJvcicuJm5ic3A7IFdlIHByZWZlcnJlZCB0aGF0IGVycm9yIGNv
bmRpdGlvbnMgYmV5b25kIHRoZSBjdXJyZW50PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgb25lcyBsaXN0ZWQgY291bGQgYmUgaW5jbHVkZWQgYnkgdmVu
ZG9ycyBhcyBuZWVkZWQuJm5ic3A7IEZ1cnRoZXI8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyBkZXBsb3ltZW50IGV4cGVyaWVuY2UgY291bGQgcmVzdWx0
IGluIG5ldyBlcnJvciBpZGVudGl0aWVzIHN1cmZhY2luZzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IGZvciBzdGFuZGFyZGl6YXRpb24gc2hvdWxkIHRo
aXMgZHJhZnQgY2F0Y2ggb24uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBEbyBub3QgYWdyZWUgdGhhdCBzY29w
aW5nIGVhY2g8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBpZGVudGl0eSB0byBzcGVjaWZpYyBSUEMg
b3BlcmF0aW9ucyBpcyBhIGdvb2QgaWRlYS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGlzIGxldmVsIG9mIHNwZWNpZmljaXR5IHdhcyBub3Qg
dGhlIGF1dGhvcidzIG9yaWdpbmFsIHBsYW5zLiZuYnNwOyBOb3I8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHdhcyB0aGlzIGxldmVsIG9mIHNw
ZWNpZmljaXR5IHBhcnQgb2YgZWFybGllciBkcmFmdCB2ZXJzaW9ucyB1cDxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgdGhyb3VnaCAtdjA4LiZu
YnNwOyBIb3dldmVyIG1lbWJlcnMgb2YgdGhlIFdHIG1hZGUgaXQgY2xlYXIgdGhhdCBzdWNoPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBzcGVj
aWZpY2l0eSB3YXMgbmVjZXNzYXJ5IGZvciBkcmFmdCBwcm9ncmVzc2lvbi48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNw
Oy0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9yIGNvbmZp
Z3VyZWQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBzdWJzY3JpcHRpb25zIHdoZW4gJmx0O2VkaXQt
Y29uZmlnJmd0OyBpcyB0aGUgUlBDIHRoYXQgaGFzIHRoZSBlcnJvcj88bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyBIb3cgYXJlIHRoZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvciBlZGl0LWNvbmZp
ZyBvciBjb21taXQgZXJyb3JzPzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7IE5vbmUgb2YgdGhlc2UgeWFuZy1kYXRhIHN0cnVjdHVyZXMgYXJlIHNw
ZWNpZmllZCBmb3IgdXNlIHdpdGg8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7ICZsdDtlZGl0LWNvbmZpZyZndDsgb3BlcmF0aW9ucy4mbmJzcDsg
Rm9yICZsdDtlZGl0LWNvbmZpZyZndDssIHRoZSBjaGFuZ2UgdG8gYTxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgY29uZmlndXJlZCBzdWJzY3Jp
cHRpb24gd291bGQgYmUgd3JpdHRlbiB0byB0aGUgZGF0YXN0b3JlIGlmIGl0IHdlcmU8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHNlbWFudGlj
YWxseSB2YWxpZC4mbmJzcDsgQXQgdGhpcyBwb2ludCB0aGUgc3Vic2NyaXB0aW9uIGVudGVycyB0
aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7
IFtldmFsdWF0ZV0gcG9pbnRzIG9mIEZpZ3VyZSA4LiZuYnNwOyBJc3N1ZXMgZnJvbSB0aGlzIHBv
aW50IG91dCB3b3VsZCBiZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsgcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBzcGVjaWZpYyBjb25zdHJ1Y3Qg
c3VjaCBhcyBTWVNMT0cuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7ICZndDsgU28gaG93IGFyZSBoaW50cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZCBzdWJz
Y3JpcHRpb25zPzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgVGhl
cmUgaXMgbm90aGluZyBpbiB0aGUgc3BlY2lmaWNhdGlvbiB3aGljaCByZXF1aXJlcyB0aGlzLiZu
YnNwOyBBbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
IGltcGxlbWVudGF0aW9uIGNvdWxkIGNob29zZSB0byBwbGFjZSB0aGVzZSBpbiBzb21lIGZvcm0g
b2YgU1lTTE9HLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7IC4uLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgJmd0OyBJNikgc2VjIDIuNSwgcGFyYSAzOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgT24gYSBy
ZWNlaXZlciBvZiBhPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3Vw
cG9ydCBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zIGlzPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyBvcHRpb25h
bCBleGNlcHQgd2hlcmUgcmVwbGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVk
LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsg
Jmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZn
dDsgJmd0OyZuYnNwOyAmbmJzcDstLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0IGluIDEuMzo8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gbWl4aW5nLWFuZC1tYXRj
aGluZyBvZiBkeW5hbWljIGFuZCBjb25maWd1cmVkPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgb3Bl
cmF0aW9ucyBvbiBhIHNpbmdsZSBzdWJzY3JpcHRpb24uJm5ic3A7IFNwZWNpZmljYWxseSwgYSBj
b25maWd1cmVkPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIGNsYXJpZnkgdGhlIHJlY2VpdmVyIG1heSBoYXZl
IG11bHRpcGxlIHN1YnNjcmlwdGlvbnMgaGVyZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBub3QgY2xlYXIg
d2hhdCAmcXVvdDtleGNlcHQgd2hlcmUgcmVwbGF5aW5nLi4uJnF1b3Q7IHRleHQgbWVhbnM8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBIb3cgYWJv
dXQgdGhlIGZvbGxvd2luZyB0d2Vhazo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmcXVvdDtPbiBhIHJlY2VpdmVyIG9mIGEgY29uZmlndXJlZCBz
dWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHN1YnNjcmlwdGlvbnMgaXMgb3B0aW9uYWwu
Jm5ic3A7IEhvd2V2ZXIgaWYgcmVwbGF5aW5nIG1pc3NlZCBldmVudDxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgcmVjb3JkcyBpcyByZXF1aXJl
ZCBmb3IgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydCBmb3I8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGR5bmFtaWMgc3Vic2Ny
aXB0aW9uIGlzIGhpZ2hseSByZWNvbW1lbmRlZC4mbmJzcDsgSW4gdGhpcyBjYXNlLCBhPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBzZXBhcmF0
ZSBkeW5hbWljIHN1YnNjcmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gcmV0cmFuc21pdCB0
aGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7
IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4mcXVvdDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBPSzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgQ2hhbmdlIG1hZGUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsgSTcpIGxlYWYgc3RyZWFtLXhwYXRoLWZpbHRlcjogW211
bHRpcGxlIHVzZXNdPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgVGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBhdGggY29u
dGV4dDo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgbyZuYnNwOyAmbmJzcDtUaGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaXMgdGhl
IHNldCBvZiBwcmVmaXg8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhbmQgbmFtZXNwYWNlIHBhaXJzIGZvciBhbGwgWUFORyBt
b2R1bGVzIGltcGxlbWVudGVkPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYnkgdGhlIHNlcnZlciwgd2hlcmUgdGhlIHByZWZp
eCBpcyB0aGUgWUFORyBtb2R1bGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBuYW1lIGFuZCB0aGUgbmFtZXNwYWNlIGlzIGFz
IGRlZmluZWQgYnkgdGhlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJ25hbWVzcGFjZScgc3RhdGVtZW50IGluIHRoZSBZQU5H
IG1vZHVsZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gVGhpcyBwcmVmaXggcHJvY2Vzc2luZyBpcyBu
b3QgZG9uZSBhbnl3aGVyZSBlbHNlIGluIE5FVENPTkY8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBv
ciBSRVNUQ09ORi4mbmJzcDsgSU1PIGEgYmFkIHByZWNlZGVudC4mbmJzcDsgT25seSB0aGUgWE1M
IHByZWZpeGVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgc2hvdWxkIGJlIHJlcXVpcmVkIGZvciBw
cm9jZXNzaW5nIG9mIFhNTCBlbmNvZGluZy4mbmJzcDsgWUFORzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5i
c3A7IG1vZHVsZSBwcmVmaXhlcyBhcmUgbm90IHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSwgdW5saWtl
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAm
Z3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhlIHByZWZpeCBtYXBwaW5ncyBpbiBYTUw8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGlzIHRleHQg
d2FzIHByb3Bvc2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBvZiB0aGUgJnF1b3Q7eHBhdGg8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGV4cHJl
c3Npb25zIGluIEpTT04mcXVvdDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9ELjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IEkgYW0gaGFwcHkg
dG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4mbmJzcDsgSSB3YXM8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGhv
cGluZyB0aGF0IHRoZSBzdWdnZXN0ZWQgdGV4dCB3YXMgc3VmZmljaWVudCBmb3Igbm93LiZuYnNw
OyBLZW50IGhhczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgYWxyZWFkeSBpbmNvcnBvcmF0ZWQgdGhpcyBhcyBhbiBpc3N1ZSBmb3IgeWFuZy1u
ZXh0PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0
OyBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMvNTU8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IFNvIGhvcGVm
dWxseSB0aGVyZSBpcyBubyBmaW5hbCBwcmVjZWRlbnQgYmVpbmcgY2xhaW1lZC48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIGRvIG5vdCBhZ3Jl
ZSB0aGF0IHRoaXMgWUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBhIG5ldyB3YXkgdG88bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGVuY29kZSBY
UGF0aCBpbnRvIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMuIFRoaXMgd2lsbCByZXF1aXJlPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBzaWduaWZp
Y2FudCBjaGFuZ2VzIHRvIHNlcnZlciBpbXBsZW1lbnRhdGlvbnMuJm5ic3A7IFlBTkcgbW9kdWxl
IHByZWZpeGVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyBhcmUgbm90IGV2ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVlIHNvIHRoZSBzZXQgb2Yg
cHJlZml4ZXMgdXNlZCBieTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDsgdGhlIHNlcnZlciBpbiBYTUwgaW5zdGFuY2UgZG9jdW1lbnRzIG1heSBi
ZSBkaWZmZXJlbnQsIHNpbmNlIGl0IG11c3Q8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGJlIHVuaXF1ZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IFNlZSBuZXh0IG5vdGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDstLSBOTURBIGFsbG93
cyB0aGUgc2FtZSBtb2R1bGUgdG8gYXBwZWFyIGluIG11bHRpcGxlIG1vZHVsZS1zZXRzPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgYW5kIGRpZmZlcmVudCBpbiBlYWNoIGRhdGFzdG9yZS4gVGhpcyB0
ZXh0IGFib3V0ICZxdW90O2ltcGxlbWVudGVkIGJ5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhl
IHNlcnZlciZxdW90OyBkb2VzIG5vdCB3b3JrIGZvciBOTURBPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0
ZXZlciB0ZXh0IG1lZXRzIFlBTkcgZG9jdG9yIGFwcHJvdmFsLiZuYnNwOyBDYW48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHlvdSBzdWdnZXN0
PzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBSZW1v
dmUgYWxsIHRleHQgYWJvdXQgWUFORyBwcmVmaXhlcyBhbmQgY29udGludWUgdXNpbmcgWE1MIGVu
Y29kaW5nPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsg
Jmd0OyB3aXRob3V0IG1vZGlmaWNhdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgQXMgYSBkaWZmZXJlbnQgWUFORyBkb2N0b3IgaGFzIHJlcXVpcmVkIHRoZSBj
dXJyZW50IHRleHQgbW9kaWZpY2F0aW9uLDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7IEkgYmVsaWV2ZSB0aGlzIGlzIGEgYmxvY2tlci4mbmJzcDsgV2hh
dCBpcyB0aGUgcHJvY2VzcyBmb3IgWUFORyBtb2RlbDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IHJldmlld3MgaW4gc3VjaCBhIGNhc2UuJm5ic3A7IEkg
YW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuJm5ic3A7IEFueTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IHN1Z2dlc3Rpb25zIG9uIG5leHQg
c3RlcHM/PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAuLi48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7LS0gdGhlcmUgc2hvdWxkIGJlIGFuIGV4YW1wbGUgb2YgYSBjb25maWd1cmFi
bGUgZW5jb2Rpbmc8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7ICZndDsgcHJvdmlkZWQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIGFtIGhhcHB5IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24g
WUFORyBtb2RlbCdzIGlkZW50aXR5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBkZWZpbml0aW9uIG9mICZxdW90O2NvbmZpZ3VyYWJsZS1lbmNv
ZGluZyZxdW90Oy4mbmJzcDsgSSBjb3VsZCBkbyB0aGlzIGJ5IGFkZGluZzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgdGhlIGZvbGxvd2luZyBh
ZGRpdGlvbmFsIHRleHQgdG8gdGhlIGRlc2NyaXB0aW9uOiAmcXVvdDtBbiBleGFtcGxlIG9mIGE8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGNv
bmZpZ3VyYWJsZSBlbmNvZGluZyBtaWdodCBiZSBhIG5ldyBpZGVudGl0eSBzdWNoIGFzICdlbmNv
ZGUtY2JvcicuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyBTdWNoIGFuIGlkZW50aXR5IGNvdWxkIHVzZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJ2NvbmZpZ3VyYWJsZS08bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGVuY29kaW5nJyBh
cyBpdHMgYmFzZS4mbmJzcDsgVGhpcyB3b3VsZCBhbGxvdyBhIGR5bmFtaWMgc3Vic2NyaXB0aW9u
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBl
bmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1ZXN0IG5vdGlmaWNhdGlvbiBtZXNzYWdl
cyBiZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZn
dDsgZW5jb2RlZCB2aWEgQ0JPUiBbUkZDLSA3MDQ5XS4mbmJzcDsgRnVydGhlciBkZXRhaWxzIGZv
ciBhbnkgc3BlY2lmaWM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7IGNvbmZpZ3VyYWJsZSBlbmNvZGluZyB3b3VsZCBiZSBleHBsb3JlZCBpbiBh
IHRyYW5zcG9ydCBkb2N1bWVudDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDsgYmFzZWQgb24gdGhpcyBzcGVjaWZpY2F0aW9uLiZxdW90OyZuYnNw
OyBEb2VzIHRoaXMgbWVldCB5b3VyIGFzaz88bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7ICZndDsgT0s8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7IEFkZGVkPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsgSTExKSBleHRlbnNpb24gc3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlv
biB7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0
OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsg
Jmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoaXMgc3RhdGVtZW50IGlzIG5v
dCBmb3IgdXNlPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG91dHNpZGUgb2YgdGhpcyBZ
QU5HIG1vZHVsZS4mcXVvdDs7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIHRoaXMgdGV4dCBzaG91bGQg
YmUgcmVtb3ZlZC4gVGhlcmUgaXMgbm8gdmFsdWUgaW4gbGltaXRpbmc8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyB0aGUgc2NvcGUgb2YgdGhpcyBleHRlbnNpb24uJm5ic3A7IEl0IHByZXZlbnRzIGV2
ZW4gdGhpcyBXRyBmcm9tPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgY3JlYXRpbmcgYSBtb2R1bGUg
dGhhdCB1c2VzIHRoZSBleHRlbnNpb24gYWdhaW4uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2lnbmlm
aWNhbnQgZGViYXRlIGluIHRoZSBXRy4mbmJzcDsgVGhlIGF1dGhvcnM8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGRpZCBub3Qgd2FudCB0aGlz
IHJlc3RyaWN0aW9uIGVpdGhlci48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyBUbyBiZSBhbGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwg
d2UgaW5zZXJ0ZWQgdGhlIGRvY3VtZW50LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgSWYgdGhpcyByZWFsbHkgaXMgbWFuZGF0b3J5LXRvLXJl
bW92ZSBmcm9tIGEgWUFORyBkb2N0b3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7IHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlIHByb2Nlc3Mg
Zm9yIHF1aWNrIGNsb3N1cmUgb24gdGhpcyBpc3N1ZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFuZCB0
aGUgWUFORyBkb2N0b3JzPzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyBUaGUgWUFORyBsYW5ndWFnZSBtYWtlcyBubyByZXN0cmljdGlvbnMgYWJvdXQg
ZXhwb3J0aW5nIHN0YXRlbWVudHMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIGd1ZXNzIEkgbWlzc2VkIHRoYXQgZGViYXRlIHNvIEkgd2ls
bCBqdXN0IHNheSBPSyBhbmQgd29uZGVyIHdoYXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHByb2JsZW0gdGhpcyBpcyBzdXBwb3NlZCB0byBz
b2x2ZS4gSSBndWVzcyB0aGUgV0cgd2FudHMgdG8gZ2l2ZSBZQU5HPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBEb2N0b3JzIG1vcmUgdGhpbmdz
IHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdlIGNhbGxlZCBhIENMUiBpbjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgU05NUC1sYW5kIDstKTxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgVGhhbmtzLiZuYnNwOyBO
byBhY3Rpb24gdGFrZW4uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsgSTEzKSZuYnNwOyAmbmJzcDtub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0
YXJ0ZWQgezxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7c246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlm
aWNhdGlvbjs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2lmLWZlYXR1cmUgJnF1b3Q7Y29uZmlndXJl
ZCZxdW90Ozs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwO2Rlc2NyaXB0aW9uPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7JnF1b3Q7VGhpcyBub3RpZmljYXRpb24gaW5kaWNhdGVzIHRoYXQgYSBz
dWJzY3JpcHRpb24gaGFzIHN0YXJ0ZWQgYW5kPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwO25vdGlmaWNhdGlvbnMgYXJlIGJlZ2lubmluZyB0byBiZSBzZW50LiBUaGlzIG5vdGlm
aWNhdGlvbiBzaGFsbDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBvbmx5IGJlIHNlbnQg
dG8gcmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uOyBpdCBkb2VzIG5vdDxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlv
bi4mcXVvdDs7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOy0tIDJuZCBzZW50ZW5jZSBpcyBjb25mdXNpbmc7
IGFsbCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgcmVj
ZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBhcnQgaXMgcmVkdW5kYW50IHNpbmNlPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRp
b24gZXh0ZW5zaW9uIGlzIHVzZWQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyBUaGVyZSBpcyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vj
b25kIHNlbnRlbmNlIGNvbXBsZXRlbHkuJm5ic3A7IElmPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIGRpZCB0aGF0LCB3b3VsZCB0aGlzIGFk
ZHJlc3MgeW91ciBjb25jZXJuPzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7IE9LPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyBEb25lPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZn
dDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7
ICZndDsgSTE0KSZuYnNwOyAmbmJzcDtyYzp5YW5nLWRhdGEgbW9kaWZ5LXN1YnNjcmlwdGlvbi1z
dHJlYW0tZXJyb3ItaW5mbyB7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bGVhZiBm
aWx0ZXItZmFpbHVyZS1oaW50IHs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
dHlwZSBzdHJpbmc7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtk
ZXNjcmlwdGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyZxdW90O0luZm9ybWF0aW9uIGRlc2NyaWJpbmcgd2hlcmUgYW5kL29yIHdoeSBhIHByb3Zp
ZGVkIGZpbHRlcjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyB3YXMgdW5zdXBwb3J0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uJnF1b3Q7OzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO308bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7LS0gcnBjLWVycm9yIGFs
cmVhZHkgYWxsb3dzIG1vcmUgcHJlY2lzZSBlcnJvciByZXBvcnRpbmc8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyBJdCB1c2VzIGVycm9yLXRhZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5nLCBhbmQg
ZXJyb3ItaW5mbzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7IGV4dGVuc2lvbnM8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyB0byBpZGVudGlmeSB3aGljaCBwYXJhbWV0ZXJzL2NvbmRpdGlvbnMgY2F1c2Vk
IHRoZSBSUEMgdG8gYmU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZn
dDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyByZWplY3RlZC48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBUaGlzIGVycm9yIHJlcG9ydGluZyB3aWxsIGNvbnRpbnVlIHRvIGJlIHVz
ZWQsIE5vdCBzdXJlIHRoaXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyBmYWlsdXJlLWhpbnQ8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7ICZndDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyBoYXMgYW55IHN0YW5kYXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFs
LXVzZSBleGFtcGxlIGNhbiBiZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+Jmd0OyAmZ3Q7ICZndDsgJmd0OyBhZGRlZDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IFBlciB5b3VyIHRob3VnaHRzIG9uIHJwYy1lcnJvci4u
LiZuYnNwOyBGb3IgTkVUQ09ORiBhbmQgUkVTVENPTkYsIHlvdTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgcG9pbnQgdG8gZXJyb3Igc3RydWN0
dXJlcyB3aGljaCBoaXN0b3JpY2FsbHkgYmVlbiB1c2VkIHdpdGggdGhvc2U8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IHRyYW5zcG9ydHMuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBPZiBj
b3Vyc2U8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAm
Z3Q7IHdlIHdlcmUgbG9va2luZyB0byBoYXZlIGFsbCBzdWJzY3JpcHRpb24gaGludHMgc3VwcG9y
dGFibGUgYWNyb3NzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7
ICZndDsgJmd0OyB0cmFuc3BvcnRzIHZpYSBhIHNpbmdsZSBwb3J0YWJsZSBZQU5HIGRhdGEgc3Ry
dWN0dXJlLiZuYnNwOyBTbyB0aGUgdmFsdWU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGlzIHRoYXQgYSBzaW5nbGUgc3RyaW5nIG9iamVjdCBl
eGlzdHMgc28gdG8gdHJhbnNwb3J0IHdoYXRldmVyIHRoZTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgdmVuZG9yIHRoaW5rcyB3b3VsZCBiZSB1
c2VmdWwgYXMgYSBoaW50IGluIHRoaXMgY2FzZS4mbmJzcDsgSS5lLiwgdGhlcmU8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7IGhhcyBiZWVuIG5v
IGF0dGVtcHQgdG8gc3RhbmRhcmRpemUgdGhlIGNvbnRlbnRzIG9mIHRoaXMgc3RyaW5nLiZuYnNw
OyBJZjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZn
dDsgb3BlcmF0aW9uYWwgZXhwZXJpZW5jZXMgZHJpdmUgYSBkZXNpcmUgZm9yIHN1Y2ggc3RydWN0
dXJpbmcsIHRoaXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsg
Jmd0OyAmZ3Q7IGNvdWxkIHByb3ZpZGUgdGhlIGJhc2lzIGZvciBhIG5ldyBkcmFmdCBidWlsZGlu
ZyBvZmYgb2YgdGhpczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0
OyAmZ3Q7ICZndDsgc3RhcnRpbmcgcG9pbnQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgSSBndWVzcyBJIGRvIG5vdCBjb25zaWRlciBORVRDT05G
IGFuZCBSRVNUQ09ORiAmcXVvdDtoaXN0b3JpYyZxdW90OyBxdWl0ZSB5ZXQuPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBUaGVyZSBhcmUgbWFu
eSBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhlIHJwYy1lcnJvciByZXBvcnRpbmcgd2l0aCBubzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgaW50
ZW50IHRvIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZS48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyAmZ3Q7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgJmd0OyBJIHdhcyBqdXN0IGFza2luZyBmb3Ig
YW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlkZWEgd2hhdCBhbjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgaW1wbGVtZW50b3Igd291bGQg
cHV0IGluIHRoaXMgbGVhZi48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAm
Z3Q7IEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIG91ciBpbXBsZW1lbnRhdGlvbi4mbmJzcDsgU2F5
IHlvdSBtaXN0eXBlIGFuIGV4dHJhPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij4mZ3Q7ICZndDsgJnF1b3Q7XCZxdW90OyB0byBhbiB4cGF0aCBmaWx0ZXI6PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mZ3Q7ICZndDsgL2lmOmludGVyZmFjZXMt
c3RhdGUvaW50ZXJmYWNlW25hbWU9JnF1b3Q7R2lnYWJpdEV0aGVybmV0MC8wJnF1b3Q7XS9vcGVy
LXN0YXR1czxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7
IEFzIGEgcmVzdWx0LCB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0byB0aGUgcHVibGlzaGVyIGlzOjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IC9pZjppbnRl
XHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0mcXVvdDtHaWdhYml0RXRoZXJuZXQwLzAmcXVv
dDtdL29wZXItc3RhdHVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
Z3Q7ICZndDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0
OyBXaGF0IHdlIHdvdWxkIHJldHVybiBpbiB0aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczo8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OyBJbnZhbGlkIGV4
cHJlc3Npb246IG9mZnNldCg5KSBpbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jmd0OyAmZ3Q7ICcvaWY6aW50ZVxyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25hbWU9JnF1
b3Q7R2lnYWJpdEV0aGVybmV0MC8wJnF1b3Q7XS9vcGVyLXN0YXR1cyc8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+Jmd0OyAmZ3Q7IEVyaWM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZndDsgJmd0OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+Jmd0OyAmZ3Q7ICZndDsgQW5keTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Jv
ZHk+DQo8L2h0bWw+DQo=

--_000_7b77b0356d074648a5f1d8096c224210XCHRTP013ciscocom_--


From nobody Thu Jan 24 05:17:31 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C1A1131132; Thu, 24 Jan 2019 05:16:49 -0800 (PST)
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, 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 Loz1lKS6U3Yw; Thu, 24 Jan 2019 05:16:45 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id D0ED5130E5B; Thu, 24 Jan 2019 05:16:44 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id EC2BB1AE00A0; Thu, 24 Jan 2019 14:16:41 +0100 (CET)
Date: Thu, 24 Jan 2019 14:16:40 +0100 (CET)
Message-Id: <20190124.141640.253886322622907272.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com>
References: <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com> <CABCOCHSo1Fv3-QWfpNUFHXsZxcWCT=dAWNmekYjs1j=64ndneg@mail.gmail.com> <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Kny8flsWAVCz3T_sXqf1HDwoJNE>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 13:16:49 -0000

IkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gSGkgQW5keSwN
Cj4gDQo+IA0KPiANCj4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgdGhlIHRob3JvdWdoIFlBTkcgRG9j
dG9yIHJldmlldy4gICBJIGhhdmUgaW5jbHVkZWQgdGhlIGFncmVlZCB1cG9uIGNvbW1lbnRzLCBh
bmQgdXBsb2FkZWQgdG86DQo+IA0KPiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zLTIyDQo+IA0KPiBhIHN1bW1hcnkgb2YgdGhlIGNsYXJpZmljYXRpb25zIG1hZGUg
aXMgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuDQo+IExldCBtZSBrbm93IGlmIHRoZXJlIGFu
eXRoaW5nIGVsc2UgbmVlZGVkIHRvIGNvbmNsdWRlIHRoZSBZQU5HDQo+IGRvY3RvciByZXZpZXcg
b2YgdGhpcyBkb2N1bWVudC4gDQo+IA0KPiANCj4gDQo+IEFsc28gYXMgdGhlIHJlc3VsdCBvZiB0
aGUg4oCYZXJyb3ItdGFn4oCZIGRpc2N1c3Npb24gd2l0aCB5b3UgYW5kDQo+IE1hcnRpbiwgd2Ug
bmVlZCB0byBwZXJmb3JtIHRoZSByZWZpbmVtZW50IG9mIHRoZSDigJhlcnJvci10YWfigJkgbWFw
cGluZw0KPiB3aXRoaW4gYm90aCBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3Rp
ZmljYXRpb25zIFNlY3Rpb24NCj4gNywgYW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1u
b3RpZiBTZWN0aW9uIDMuMy4gICBEaXJlY3RseQ0KPiBiZWxvdyBpcyBzb21lIHRleHQgYW5kIHBy
b3Bvc2VkIGVycm9yLXRhZyBtYXBwaW5ncyBmb3IgdGhvc2UNCj4gZG9jdW1lbnRzLiANCj4gDQo+
IA0KPiANCj4gICAgIG8gIEFuICJlcnJvci10YWciIG5vZGUgd2l0aCB0aGUgdmFsdWUgYmVpbmcg
YSBzdHJpbmcgdGhhdA0KPiANCj4gICAgICAgIGNvcnJlc3BvbmRzIHRvIGFuIGlkZW50aXR5IGFz
c29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuICBUaGlzDQo+IA0KPiAgICAgICAgImVycm9yLXRhZyIg
d2lsbCBjb3JyZXNwb25kIHRvIHRoZSBlcnJvciBpZGVudGl0aWVzIHdpdGhpbg0KPiANCj4gICAg
ICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10gc2Vj
dGlvbg0KPiANCj4gICAgICAgIDIuNC42IGZvciBnZW5lcmFsIHN1YnNjcmlwdGlvbiBlcnJvcnM6
DQo+IA0KPiANCj4gDQo+ICAgICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgIHVzZXMgZXJy
b3ItdGFnDQo+IA0KPiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0t
LS0tLQ0KPiANCj4gICAgICAgICAgIGRzY3AtdW5hdmFpbGFibGUgICAgICAgaW52YWxpZC12YWx1
ZQ0KDQpPay4gIEJ1dCBpdCBpcyBub3QgY2xlYXIgdG8gbWUgd2hlbiB0aGlzIGVycm9yIGlzIGFj
dHVhbGx5IHN1cHBvc2VkIHRvDQpiZSBnZW5lcmF0ZWQ/ICBUaGUgbGVhZiBhbmQgaWRlbnRpdHkg
aGF2ZSB0aGUgc2FtZSBpZi1mZWF0dXJlLCBzbyBpdA0KaXNuJ3QgYSBzcGVjaWFsIGVycnJvIGNv
ZGUgZm9yICJ1bnN1cHBvcnRlZCBsZWFmIiwgd2hpY2ggaXMgZ29vZCENCg0KVGhlbiBJIGhhdmUg
dG8gYXNzdW1lIGl0IGlzIHN1cHBvc2VkIHRvIGJlIHNvbWUga2luZCBvZiBydW50aW1lIGVycm9y
Pw0KDQpUaGlua2luZyBzb21lIG1vcmUsIHdoYXQgaXMgc3VwcG9zZWQgdG8gaGFwcGVuIGlmIHRo
ZSBjbGllbnQgb24gdGhlDQpzYW1lIHNlc3Npb24gc2VuZHMgZmlyc3QgYW4gZXN0YWJsaXNoLXN1
YnNjcmlwdGlvbiB3aXRoIGRzY3AgNDIsIGFuZA0KdGhlbiBhbm90aGVyIGVzdGFibGlzaC1zdWJz
Y3JpcHRpb24gd2l0aCBkc2NwIDEwPw0KDQoNCj4gICAgICAgICAgIGVuY29kaW5nLXVuc3VwcG9y
dGVkICAgaW52YWxpZC12YWx1ZQ0KDQpPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRvZXNuJ3QgZ2l2
ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQplcnJvcjoNCg0KICBlcnJvci10
YWc6IGludmFsaWQtdmFsdWUNCiAgZXJyb3ItcGF0aDogL3JwYy9lc3RhYmxpc2gtc3Vic2NyaXB0
aW9uL2VuY29kaW5nDQoNCg0KPiAgICAgICAgICAgZmlsdGVyLXVuYXZhaWxhYmxlICAgICBpbnZh
bGlkLXZhbHVlDQoNClRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwg
d2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQppbiBhbiBycGMtZXJyb3IsIGFuZCB0aHVzIHNob3Vs
ZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCg0KPiAgICAgICAgICBmaWx0ZXItdW5z
dXBwb3J0ZWQgICAgIGludmFsaWQtdmFsdWUNCg0KT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vz
bid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZSBzdGFuZGFyZA0KZXJyb3I6DQoNCiAg
ZXJyb3ItdGFnOiBpbnZhbGlkLXZhbHVlDQogIGVycm9yLXBhdGg6IC9ycGMvZXN0YWJsaXNoLXN1
YnNjcmlwdGlvbi9zdHJlYW0teHBhdGgtZmlsdGVyDQoNCg0KPiAgICAgICAgICAgaW5zdWZmaWNp
ZW50LXJlc291cmNlcyByZXNvdXJjZS1kZW5pZWQNCg0KDQpPay4gIEJ1dCB0aGlzIGlkZW50aXR5
IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQplcnJvciBp
biB0aGUgY2FzZSBvZiBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIGFuZCBtb2RpZnktc3Vic2NyaXB0
aW9uLg0KDQo+ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlwdGlvbiAgIGludmFsaWQtdmFsdWUN
Cg0KT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vucyd0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0
aGFuIHRoZSBzdGFuZGFyZA0KZXJyb3IgaW4gdGhlIGNhc2Ugb2YgZXN0YWJsaXNoLXN1YnNjcmlw
dGlvbiBhbmQgbW9kaWZ5LXN1YnNjcmlwdGlvbi4NCg0KPiAgICAgICAgICAgcmVwbGF5LXVuc3Vw
cG9ydGVkICAgICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KDQpPay4gIEJ1dCB0aGlzIGlkZW50
aXR5IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQplcnJv
ci4NCg0KPiAgICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQoN
ClRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBu
ZXZlciBiZSBzZW50DQppbiBhbiBycGMtZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFw
cGVkIHRvIGFuIGVycm9yLXRhZy4NCg0KPiAgICAgICAgICAgc3VzcGVuc2lvbi10aW1lb3V0ICAg
ICBvcGVyYXRpb24tZmFpbGVkDQoNClRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQt
cmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQppbiBhbiBycGMtZXJyb3IsIGFuZCB0
aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCg0KPiAgICAgICAgICAg
dW5zdXBwb3J0YWJsZS12b2x1bWUgICB0b28tYmlnDQoNClRoaXMgaXMgYSAic3Vic2NyaXB0aW9u
LXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQppbiBhbiBycGMt
ZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCg0K
DQo+ICAgICAgICBPciB0aGlzICJlcnJvci10YWciIHdpbGwgY29ycmVzcG9uZCB0byB0aGUgZXJy
b3IgaWRlbnRpdGllcw0KPiANCj4gICAgICAgIHdpdGhpbiBbSS1ELmlldGYtbmV0Y29uZi15YW5n
LXB1c2hdIEFwcGVuZGl4IEEuMSBmb3INCj4gDQo+ICAgICAgICBzdWJzY3JpcHRpb24gZXJyb3Jz
IHNwZWNpZmljIHRvIFlBTkcgZGF0YXN0b3JlczoNCj4gDQo+IA0KPiANCj4gICAgICAgICAgIGVy
cm9yIGlkZW50aXR5ICAgICAgICAgICAgICB1c2VzIGVycm9yLXRhZw0KPiANCj4gICAgICAgICAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAtLS0tLS0tLS0tLS0tLQ0KPiANCj4gICAgICAg
ICAgIGNhbnQtZXhjbHVkZSAgICAgICAgICAgICAgICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0K
Pg0KPiAgICAgICAgICAgZGF0YXN0b3JlLW5vdC1zdWJzY3JpYmFibGUgIG9wZXJhdGlvbi1ub3Qt
c3VwcG9ydGVkDQoNCkkgdGhpbmsgdGhhdCB0aGlzIHNob3VsZCBiZSBpbnZhbGlkLXZhbHVlLg0K
DQo+ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlwdGlvbi1yZXN5bmMgaW52YWxpZC12YWx1ZQ0K
DQpPaywgYnV0IGFnYWluIHRoZSB2YWx1ZSBvZiBoYXZpbmcgdGhpcyBpcyB1bmNsZWFyLg0KDQo+
ICAgICAgICAgICBvbi1jaGFuZ2UtdW5zdXBwb3J0ZWQgICAgICAgb3BlcmF0aW9uLW5vdC1zdXBw
b3J0ZWQNCj4gDQo+ICAgICAgICAgICBvbi1jaGFuZ2Utc3luYy11bnN1cHBvcnRlZCAgb3BlcmF0
aW9uLW5vdC1zdXBwb3J0ZWQNCj4gDQo+ICAgICAgICAgICBwZXJpb2QtdW5zdXBwb3J0ZWQgICAg
ICAgICAgaW52YWxpZC12YWx1ZQ0KPiANCj4gICAgICAgICAgIHVwZGF0ZS10b28tYmlnICAgICAg
ICAgICAgICB0b28tYmlnDQo+IA0KPiAgICAgICAgICAgc3luYy10b28tYmlnICAgICAgICAgICAg
ICAgIHRvby1iaWcNCj4gDQo+ICAgICAgICAgICB1bmNoYW5naW5nLXNlbGVjdGlvbiAgICAgICAg
b3BlcmF0aW9uLWZhaWxlZA0KDQoNCg0KL21hcnRpbg0KDQoNCg0KPiANCj4gDQo+IA0KPiANCj4g
DQo+IERvIHlvdSAob3IgYW55b25lIGVsc2UgaW4gdGhpcyB0aHJlYWQpIGhhdmUgYW55IHN1Z2dl
c3Rpb25zIG9uIHRoZSB0ZXh0IG9yIHByb3Bvc2VkIG1hcHBpbmdzPyAgSWYgdGhpcyB0dXJucyBv
dXQgdG8gYmUgb2ssIEFsZXggd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgTkVUQ09ORiBlcnJvci10
YWcgc3BlY2lmaWNzIGZyb20gZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaCBTZWN0aW9ucyA0
LjQuMSAmIDQuNC4yDQo+IA0KPiANCj4gDQo+IEFsc28gUmVzaGFkIHdpbGwgaGF2ZSB0byBkbyBz
b21lIHdvcmsgYmVjYXVzZSBoZSBpcyB0aGUgWUFORyBkb2N0b3Igb2YgbmV0Y29uZi1uZXRjb25m
LWV2ZW50LW5vdGlmaWNhdGlvbnMsIGFuZCBoZSB3aWxsIHdhbnQgdG8gaW5jbHVkZSB0aGUgc2Ft
ZSBpbmZvcm1hdGlvbiB3aXRoaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLg0K
PiANCj4gDQo+IA0KPiBUaGFua3MsDQo+IA0KPiBFcmljDQo+IA0KPiANCj4gDQo+IA0KPiANCj4g
RnJvbTogQW5keSBCaWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb20+DQo+IA0KPiBTZW50OiBXZWRu
ZXNkYXksIEphbnVhcnkgMjMsIDIwMTkgMTI6NDIgUE0NCj4gDQo+IFRvOiBFcmljIFZvaXQgKGV2
b2l0KSA8ZXZvaXRAY2lzY28uY29tPg0KPiANCj4gQ2M6IE1hcnRpbiBCam9ya2x1bmQgPG1iakB0
YWlsLWYuY29tPjsgeWFuZy1kb2N0b3JzQGlldGYub3JnOyBuZXRjb25mQGlldGYub3JnOyBkcmFm
dC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLmFsbEBpZXRmLm9yZw0KPiAN
Cj4gU3ViamVjdDogUmU6IFt5YW5nLWRvY3RvcnNdIFlhbmdkb2N0b3JzIGxhc3QgY2FsbCByZXZp
ZXcgb2YgZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy0yMQ0KPiAN
Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gT24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgNDozNSBB
TSBFcmljIFZvaXQgKGV2b2l0KSA8bWFpbHRvOmV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+IA0K
PiA+IEZyb206IE1hcnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjMsIDIwMTkgMzozMiBBTQ0KPiAN
Cj4gPg0KPiANCj4gPiBIaSwNCj4gDQo+ID4NCj4gDQo+ID4gIkVyaWMgVm9pdCAoZXZvaXQpIiA8
bWFpbHRvOmV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+IA0KPiA+ID4gSGkgQW5keSwNCj4gDQo+
ID4gPg0KPiANCj4gPiA+IExvb2tpbmcgYXQgeW91ciBwcm9wb3NhbC4uLiAgTXkgcmVhZGluZyBp
cyB0aGF0IGl0IHRha2VzIHRoZSB0cmFuc3BvcnQNCj4gDQo+ID4gPiBzcGVjaWZpYyBlcnJvciBp
bmZvIGNvbnRhaW5lZCBpbg0KPiANCj4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2
ZW50LW5vdGlmaWNhdGlvbnMgc2VjdGlvbiA3LCBhbmQgdGhlbg0KPiANCj4gPiA+IHJlcGxpY2F0
ZXMgdGhhdCBpbmZvIHdpdGhpbiAxMiBzZXBhcmF0ZSBkZXNjcmlwdGlvbiBvYmplY3RzIG9mIHRo
ZQ0KPiANCj4gPiA+IHRyYW5zcG9ydCBpbmRlcGVuZGVudCBpZXRmLXN1YnNjcmliZWQtbm90aWZp
Y2F0aW9ucy55YW5nLiAgVGhlIHZhbHVlDQo+IA0KPiA+ID4geW91IGFyZSBhc3NlcnRpbmcgaXMg
dGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMgY29udGFpbmluZyB0aGUNCj4gDQo+ID4g
PiBycGMtc3RtdCBoYXZlIHRyYWRpdGlvbmFsbHkgZG9jdW1lbnQgdGhlIG1hbmRhdG9yeS10by1p
bXBsZW1lbnQNCj4gDQo+ID4gPiAiZXJyb3ItdGFnIiBmaWVsZCB3aXRoaW4gdGhlIG1vZGVsLiAg
QW5kIHByZXN1bWFibHkgeW91IGFyZSBjb25jZXJuZWQNCj4gDQo+ID4gPiB0aGF0IGRldmVsb3Bl
cnMgc2hvdWxkIG5vdCBoYXZlIHRvIGxvb2sgZWxzZXdoZXJlIGZvciB0aGlzDQo+IA0KPiA+ID4g
aW5mb3JtYXRpb24uDQo+IA0KPiA+DQo+IA0KPiA+IEkgdGhpbmsgdGhhdCBtYXliZSB0aGVyZSBh
cmUgdHdvIHNlcGFyYXRlIGlzc3VlcyBoZXJlLg0KPiANCj4gPg0KPiANCj4gPiBUaGUgZmlyc3Qg
aXNzdWUgaXMgdGhhdCBmb3IgZWFjaCBlcnJvciBpZGVudGl0eSBkZWZpbmVkLCB0aGVyZSBuZWVk
cyB0byBiZSBhDQo+IA0KPiA+IG1hcHBpbmcgdG8gdGhlIHByb3RvY29sLXNwZWNpZmljIGVycm9y
IGhhbmRsaW5nLiAgQW5keSBzdWdnZXN0cyB0aGF0IHRoaXMgaW5mbyBpcw0KPiANCj4gPiBhZGRl
ZCB0byB0aGlzIGRvY3VtZW50LCBidXQgY3VycmVudGx5IHRoaXMgaW5mb3JtYXRpb24gaXMgYXZh
aWxhYmxlIGluIHRoZQ0KPiANCj4gPiBwcm90Y29sLW1hcHBpbmcgZG9jdW1lbnRzIChuZXRjb25m
LW5vdGlmIGFuZCByZXN0Y29uZi1ub3RpZikuICBQZXJzb25hbGx5LCBJDQo+IA0KPiA+IHRoaW5r
IHRoYXQgdGhlIGN1cnJlbnQgc3BsaXQgb2YgdGV4dCBiZXR3ZWVuIGRvY3VtZW50cyBpcyBmaW5l
Lg0KPiANCj4gPg0KPiANCj4gPiBUaGUgc2Vjb25kIGlzc3VlIGlzIHRoYXQgY3VycmVudGx5LCBi
b3RoIG5ldGNvbmYtbm90aWYgYW5kIHJlc3Rjb25mLW5vdGlmIHNheQ0KPiANCj4gPiB0aGF0ICph
bGwqIHRoZXNlIGVycm9ycyB1c2UgdGhlIGVycm9yLXRhZyAib3BlcmF0aW9uLWZhaWxlZCIuICBF
c3NlbnRpYWxseSBpdCBtZWFucw0KPiANCj4gPiB0aGF0IHdlIGJ5cGFzcyB0aGUgZXJyb3IgaGFu
ZGxpbmcgaW4gdGhlIHByb3RvY29scy4gIEFzIEFuZHkgcG9pbnRzIG91dCBiZWxvdywNCj4gDQo+
ID4gdGhlIGVycm9yICJpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIiBzaG91bGQgYmUgbWFwcGVkIHRv
ICJyZXNvdXJjZS1kZW5pZWQiIGluDQo+IA0KPiA+IE5FVENPTkYgYW5kIFJFU1RDT05GICh0aGV5
IG1lYW4gdGhlIHNhbWUgdGhpbmcpLiAgU28gaXQgbWlnaHQgbWFrZSBzZW5zZQ0KPiANCj4gPiB0
byBjYXJlZnVsbHkgZ28gdGhyb3VnaCB0aGUgbGlzdCBvZiBlcnJvcnMgYW5kIG1hcCB0aGVtIHRv
IHRoZSBjb3JyZWN0IGVycm9yLXRhZw0KPiANCj4gPiAoYnV0IHNwZWNpZml5IHRoaXMgaW4gdGhl
IHRyYW5zcG9ydCBkcmFmdHMpLg0KPiANCj4gDQo+IA0KPiBJIGFtIGNvbXBsZXRlbHkgZ29vZCB3
aXRoIHRoaXMuICAgRG9lcyB0aGlzIHdvcmsgZm9yIHlvdSBBbmR5Pw0KPiANCj4gDQo+IA0KPiBU
aGlzIGlzIGJldHRlci4NCj4gDQo+IEknbSBnbGFkIG5vIG90aGVyIGRyYWZ0cyBhcmUgY3JlYXRp
bmcgdGhlaXIgb3duIGVycm9yIHJlcG9ydGluZyBzeXN0ZW0gZm9yIGVhY2ggcnBjLXN0bXQuDQo+
IA0KPiBUaGlzIGlzIGEgYmFkIHByZWNlZGVudCBhbmQgbGlrZWx5IHRvIGJlIHNraXBwZWQgaW4g
aW1wbGVtZW50YXRpb25zLg0KPiANCj4gDQo+IA0KPiBFcmljDQo+IA0KPiANCj4gDQo+ID4gL21h
cnRpbg0KPiANCj4gPg0KPiANCj4gDQo+IA0KPiBBbmR5DQo+IA0KPiANCj4gDQo+IA0KPiANCj4g
Pg0KPiANCj4gPg0KPiANCj4gPg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gSWYgdGhlIFlBTkcgZG9j
dG9ycyByZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRlZC4gIEEgc2ltaWxhciB0ZXh0DQo+
IA0KPiA+ID4gY2hhbmdlIHdvdWxkIGJlIG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRl
bnRpdGllcyB3aXRoaW4gWUFORw0KPiANCj4gPiA+IFB1c2guICBQZXJzb25hbGx5IEkgZG9u4oCZ
dCBsaWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvDQo+IA0KPiA+ID4g
ZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUgY2hhbmdlIGlmIHlv
dSByZWFsbHkgd2FudA0KPiANCj4gPiA+IHRoaXMsIGFuZCBub2JvZHkgZWxzZSBvYmplY3RzLg0K
PiANCj4gPiA+DQo+IA0KPiA+ID4gT3RoZXIgdGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBh
bnkgb3RoZXIgb3BlbiBpc3N1ZXMgaW4gdGhlIFlBTkcNCj4gDQo+ID4gPiBEb2N0b3IgcmV2aWV3
LiAgRG8geW91IGtub3cgb2YgYW55dGhpbmcgZWxzZT8NCj4gDQo+ID4gPg0KPiANCj4gPiA+IEVy
aWMNCj4gDQo+ID4gPg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gRnJvbTogQW5keSBCaWVybWFuLCBK
YW51YXJ5IDIxLCAyMDE5IDI6MjYgUE0NCj4gDQo+ID4gPg0KPiANCj4gPiA+IEhpLA0KPiANCj4g
PiA+DQo+IA0KPiA+ID4gSSB0aGluayB0aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZl
ZCBieSBpbmNsdWRpbmcgMSBleHRyYQ0KPiANCj4gPiA+IHNlbnRlbmNlIGluIGVhY2ggZXJyb3Ig
aWRlbnRpdHkuDQo+IA0KPiA+ID4gSSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVTVENPTkYg
Y2VudHJpYyBidXQgdGhvc2UgYXJlIHRoZSBvbmx5IDINCj4gDQo+ID4gPiBzdGFuZGFyZCBwcm90
b2NvbHMgc3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFnZSByaWdodCBub3cuDQo+IA0KPiA+
ID4NCj4gDQo+ID4gPiAgICAgICAgSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4g
ZXJyb3IgcmVwb3J0aW5nLA0KPiANCj4gPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJl
Y3QgZXJyb3ItdGFnPicgTVVTVCBiZSB1c2VkLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gRm9yIGV4
YW1wbGU6DQo+IA0KPiA+ID4NCj4gDQo+ID4gPg0KPiANCj4gPiA+IE9MRDoNCj4gDQo+ID4gPg0K
PiANCj4gPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+IA0KPiA+ID4g
ICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gDQo+ID4gPiAgICAgYmFz
ZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiANCj4gPiA+ICAgICBiYXNlIHN1YnNjcmlw
dGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiANCj4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiANCj4g
PiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1
cHBvcnQgdGhlDQo+IA0KPiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBl
eGFtcGxlIG1pZ2h0IGJlIHRoYXQgYWxsb2NhdGVkIENQVQ0KPiANCj4gPiA+ICAgICAgICBpcyB0
b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+
IA0KPiA+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQo+IA0KPiA+ID4gICB9DQo+IA0KPiA+ID4NCj4g
DQo+ID4gPg0KPiANCj4gPiA+IE5FVzoNCj4gDQo+ID4gPg0KPiANCj4gPiA+ICAgaWRlbnRpdHkg
aW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+IA0KPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1
YnNjcmlwdGlvbi1lcnJvcjsNCj4gDQo+ID4gPiAgICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9u
LWVycm9yOw0KPiANCj4gPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29u
Ow0KPiANCj4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiANCj4gPiA+ICAgICAgICJUaGUgcHVibGlz
aGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQo+IA0KPiA+ID4g
ICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQg
YWxsb2NhdGVkIENQVQ0KPiANCj4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0
ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+IA0KPiA+ID4gICAgICAgIG1lc3Nh
Z2VzLiBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMgdXNlZCBpbiBlcnJvciByZXBvcnRpbmcs
DQo+IA0KPiA+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1VU1Qg
YmUgdXNlZC4iOw0KPiANCj4gPiA+ICAgfQ0KPiANCj4gPiA+DQo+IA0KPiA+ID4NCj4gDQo+ID4g
PiBBbmR5DQo+IA0KPiA+ID4NCj4gDQo+ID4gPg0KPiANCj4gPiA+IE9uIEZyaSwgSmFuIDE4LCAy
MDE5IGF0IDExOjUzIEFNIEVyaWMgVm9pdCAoZXZvaXQpDQo+IA0KPiA+ID4gPG1haWx0bzpldm9p
dEBjaXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3cm90ZToNCj4gDQo+
ID4gPiBIaSBBbmR5LA0KPiANCj4gPiA+DQo+IA0KPiA+ID4gVGhhbmtzLiAgSSBoYXZlIGluY29y
cG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVyZSB3YXMgYWdyZWVtZW50LiAgSSBoYXZlDQo+IA0KPiA+
ID4gcmVtb3ZlZCB0aGUgaXRlbXMgYmVsb3cgd2hlcmUgeW91IHdlcmUgb2suDQo+IA0KPiA+ID4N
Cj4gDQo+ID4gPiBSZW1haW5pbmcgYmVsb3cgYXJlIHRoZSBvcGVuIGl0ZW1zLCB3aXRoIHJlc3Bv
bnNlcy4NCj4gDQo+ID4gPg0KPiANCj4gPiA+ID4gPiAgICBTaG91bGQgYmUgY2xlYXIgc29tZXdo
ZXJlIHRoYXQNCj4gDQo+ID4gPiA+ID4gICAgc3VzcGVuZCBpcyBmb3IgQ1BVIGFuZCBvdGhlciBy
ZXNvdXJjZXMsIGFuZCBOQUNNIG5vdCBjb25zaWRlcmVkDQo+IA0KPiA+ID4gPiA+ICAgIHRvIGJl
IGEgcmVzb3VyY2UuDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gSWYgTkFDTSBpcyBhY3RpdmUs
IGl0IG5lZWRzIHRvIGJlIGZvbGxvd2VkLiAgVGhlIHRleHQgd2UgaGF2ZSBmb3INCj4gDQo+ID4g
PiA+IE5BQ00gaXMgaW4gU2VjdGlvbiA1LjQuICBEbyB5b3Ugc2VlIHNvbWV0aGluZyBlbHNlIHNw
ZWNpZmljIHRvDQo+IA0KPiA+ID4gPiBzdWJzY3JpcHRpb24gc3VzcGVuc2lvbiBuZWVkZWQgaGVy
ZT8gIChNYXliZSBJIGFtIG5vdCBnZXR0aW5nIHlvdXINCj4gDQo+ID4gPiA+IHBvaW50LikNCj4g
DQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFzIHRlcm1pbmF0
ZS1pZi1sb3NzLW9mLXJpZ2h0cyAoSXMgdGhlcmUgYW4NCj4gDQo+ID4gPiA+IGVycm9yIGlkZW50
aXR5IGZvciB0aGlzIGV2ZW50PykNCj4gDQo+ID4gPg0KPiANCj4gPiA+IFRoZSBpZGVudGl0eSB3
aGljaCBhcHBsaWVzIGhlcmUgaXMgInN0cmVhbS11bmF2YWlsYWJsZSIuICBUaGlzIGlzIHRoZQ0K
PiANCj4gPiA+IHNhbWUgaWRlbnRpdHkgd2hpY2ggd291bGQgYmUgdXNlZCBpZiBhIHN1YnNjcmli
ZXIgaGFkIG5ldmVyIHN1ZmZpY2llbnQNCj4gDQo+ID4gPiBwZXJtaXNzaW9ucyBpbiB0aGUgZmly
c3QgcGxhY2UuICBJIGRvbid0IGJlbGlldmUgd2Ugd291bGQgd2FudCB0bw0KPiANCj4gPiA+IHJl
dHVybiBhbiBpZGVudGl0eSBzcGVjaWZpYyB0byB3aGVuIE5BQ00gd2hlbiBwZXJtaXNzaW9ucyBo
YXZlIGp1c3QNCj4gDQo+ID4gPiBiZWVuIGNoYW5nZWQuDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiA+
ID4gSTMpIHNlYyAyLjEgcGFyYSA2Og0KPiANCj4gPiA+ID4gPiAgICBFdmVudCByZWNvcmRzIE1V
U1QgTk9UIGJlIGRlbGl2ZXJlZCB0byBhIHJlY2VpdmVyIGluIGEgZGlmZmVyZW50DQo+IA0KPiA+
ID4gPiA+ICAgIG9yZGVyIHRoYW4gdGhleSB3ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVh
bS4NCj4gDQo+ID4gPiA+ID4NCj4gDQo+ID4gPiA+ID4gICAtLSBkb2VzIHRoaXMgYXBwbHkgdG8g
c3Vic2NyaXB0aW9uLXN0YXRlPyBUaGluayBub3QsIHRoZXkgYXJlIG5vdCBldmVudHMNCj4gDQo+
ID4gPiA+ID4gICAgIHBsYWNlZCBpbiBldmVudCBzdHJlYW0uDQo+IA0KPiA+ID4gPg0KPiANCj4g
PiA+ID4gQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRo
ZXkgZG8gbm90IHZpb2xhdGUNCj4gDQo+ID4gPiA+IHRoaXMgcmVxdWlyZW1lbnQuDQo+IA0KPiA+
ID4gPg0KPiANCj4gPiA+ID4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBp
biAiU2VjdGlvbiAyLjc6IHN1YnNjcmlwdGlvbg0KPiANCj4gPiA+ID4gc3RhdGUgbm90aWZpY2F0
aW9ucyIsIGluY2x1ZGluZy4uLg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+ICIgSW5zdGVhZCwg
dGhleSBhcmUgaW5zZXJ0ZWQgKGFzIGRlZmluZWQgaW4gdGhpcyBzZWN0aW9uKSB3aXRoaW4gdGhl
DQo+IA0KPiA+ID4gPiBzZXF1ZW5jZSBvZiBub3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBh
IHBhcnRpY3VsYXIgcmVjZWl2ZXIuIg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+ID4gICAgIE5l
ZWQgdG8gYWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gDQo+ID4gPiA+ID4g
ICAgIGhlYWQtb2YtbGluZSB3aGVuZXZlciBzdGF0ZSBjaGFuZ2VzDQo+IA0KPiA+ID4gPg0KPiAN
Cj4gPiA+ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNl
bnQgaGVhZC1vZi1saW5lLg0KPiANCj4gPiA+ID4gQ29uc2lkZXINCj4gDQo+ID4gPiA+IHRoYXQg
aW1wbGVtZW50YXRpb24gbWlnaHQgd2FudCB0byBsZXQgdGhlIGV4aXN0aW5nIHF1ZXVlIG9mIGZp
bHRlcmVkDQo+IA0KPiA+ID4gPiBldmVudCByZWNvcmRzIGJlIHNlbnQgaWYgaXMgZmlsdGVyIGNv
bXBsZXhpdHkgY2F1c2luZyB0aGUgQ1BVIGlzc3VlLg0KPiANCj4gPiA+ID4gVGhhdCBjb3VsZCBi
ZSBkaWZmZXJlbnQgdGhhbiBpZiBpdCBpcyBhIGJhbmR3aWR0aCBpc3N1ZSBkcml2aW5nIHRoZQ0K
PiANCj4gPiA+ID4gc3VzcGVuc2lvbiwgYW5kIHlvdSBkZWZpbml0ZWx5IHdhbnQgdGhlICdzdWJz
Y3JpcHRpb24tc3VzcGVuZGVkJyB0bw0KPiANCj4gPiA+ID4gYmUgcGxhY2VkIGF0IHRoZSBoZWFk
IG9mIGxpbmUuDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IEl0IGlzIHVw
IHRvIHRoZSBwdWJsaXNoZXIgdG8gZGVjaWRlIHdoZW4gdG8gc3RvcCBzZW5kaW5nIGV2ZW50cyBv
biBhDQo+IA0KPiA+ID4gPiBzdWJzY3JpcHRpb24uDQo+IA0KPiA+ID4gPiBPYnZpb3VzbHkgdGhl
IHB1Ymxpc2hlciBjYW5ub3Qgd2FpdCB1bnRpbCB0aGUgc3Vic2NyaXB0aW9uIGlzIGlkbGUuDQo+
IA0KPiA+ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdldHRpbmcgc3VzcGVuZGVkIGlzIGl0IGlzIGZh
ciBmcm9tIGlkbGUNCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBTbyBhbHNvIHVwIHRvIHRoZSBw
dWJsaXNoZXIgd3J0LyB3aGF0IHRvIGRvIHdpdGggYW55IGV2ZW50cyB0aGF0DQo+IA0KPiA+ID4g
PiBoYXZlIG5vdCBiZWVuIGRlbGl2ZXJlZCB5ZXQgb24gYSBzdWJzY3JpcHRpb24uICBDb3VsZCBk
ZWxldGUgdGhlbSBvcg0KPiANCj4gPiA+ID4gc2F2ZSB0aGVtIGZvciB3aGVuIG1vcmUgYmFuZHdp
ZHRoIGF2YWlsYWJsZSAoZm9yIGV4YW1wbGUpDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBBZ3JlZSBm
dWxseSB3aXRoIHRoaXMuICBJcyB0aGVyZSB0ZXh0IHJlcXVpcmVkIGluIHRoZSBkcmFmdCBoZXJl
Pw0KPiANCj4gPiA+DQo+IA0KPiA+ID4gLi4uDQo+IA0KPiA+ID4gPiBCZXlvbmQgdGhhdCBpdCBp
cyB1cCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVjaWRlIGlmIHNvbWUNCj4gDQo+ID4gPiA+
IHVuLXRyYW5zbWl0dGVkIHF1ZXVlIG9mIGV2ZW50IHJlY29yZHMgc2hvdWxkIGJlIGZsdXNoZWQg
YW5kDQo+IA0KPiA+ID4gPiByZXByb2Nlc3NlZCBiYXNlZCBvbiB0aGUgbW9kaWZpY2F0aW9uLiAg
SSBkbyBub3QgZXhwZWN0IHRoaXMgd291bGQNCj4gDQo+ID4gPiA+IHBvcHVsYXIsIGFzIGEgcmVw
bGF5IHN1YnNjcmlwdGlvbiBjb3VsZCBhY2NvbXBsaXNoIHRoaXMgc2FtZQ0KPiANCj4gPiA+ID4g
ZnVuY3Rpb25hbCBuZWVkLg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IEFncmVlZCB0aGF0IGFu
IGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFueSB0aW1lIGFuZCBpbmNyZW1lbnQgdGhlDQo+
IA0KPiA+ID4gPiBhcHByb3ByaWF0ZSBjb3VudGVycy4gSXQgd2lsbCB0cnkgdG8gdG8gZG8gdGhp
cywgYnV0IG5vIHJlcXVpcmVtZW50cw0KPiANCj4gPiA+ID4gZXhjZXB0IG1heWJlIHN1YnNjcmlw
dGlvbiBldmVudHMgbGlrZSAncmVwbGF5LWNvbXBsZXRlZCcgY2Fubm90IGJlDQo+IA0KPiA+ID4g
PiBkcm9wcGVkDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBIYXZlIHB1dCBhIG1pbm9yIHR3ZWFrIGlu
dG8gU2VjdGlvbiAyLjc6DQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBbb2xkXSAgc3Vic2NyaXB0aW9u
IHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBmaWx0ZXJlZCBvdXQNCj4gDQo+
ID4gPg0KPiANCj4gPiA+IFtuZXddIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyBjYW5ub3QgYmUgZHJvcHBlZCBvcg0KPiANCj4gPiA+IGZpbHRlcmVkIG91dA0KPiANCj4g
PiA+DQo+IA0KPiA+ID4gLi4uDQo+IA0KPiA+ID4gPiBUaGlua2luZyBtb3JlIG9uIHlvdXIgcG9p
bnQsIGl0IG1pZ2h0IGJlIHdvcnRoIHR3ZWFraW5nIGEgY291cGxlDQo+IA0KPiA+ID4gPiB3b3Jk
cyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVudCBvZg0KPiANCj4gPiA+ID4gInN1
YnNjcmlwdGlvbi1zdXNwZW5kZWQiLg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+ICAgICJTdWJz
Y3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZSBpc3N1YW5j
ZSBvZg0KPiANCj4gPiA+ID4gICAgdGhpcw0KPiANCj4gPiA+ID4gICAgc3Vic2NyaXB0aW9uIHN0
YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gDQo+ID4gPiA+DQo+
IA0KPiA+ID4gPiBBcmUgeW91IGdvb2Qgd2l0aCB0aGlzIHN1Z2dlc3RlZCBjaGFuZ2U/DQo+IA0K
PiA+ID4gPg0KPiANCj4gPiA+ID4gTm90IHN1cmUgLS0gaXQgbmVlZHMgdG8gYmUgY2xlYXIgdGhh
dCBzdWJzY3JpcHRpb24tc3VzcGVuZGVkIGlzIHRoZQ0KPiANCj4gPiA+ID4gbGFzdCBldmVudCBz
ZW50IGJlZm9yZSBzdXNwZW5kaW5nIGFuZCBzdWJzY3JpcHRpb24tcmVzdW1lZCBpcyB0aGUNCj4g
DQo+ID4gPiA+IGZpcnN0IGV2ZW50IHNlbnQgYWZ0ZXIgdHJhbnNpdGlvbiBmcm9tIHN1c3BlbmRl
ZCB0byBhY3RpdmUuDQo+IA0KPiA+ID4gPiBUaGUgbmV4dCBldmVudCBjb3VsZCBhbHNvIGJlIHN1
YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gSSBkbyB0aGluayB0
aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhlIHRleHQuICBGb3IgU2VjdGlvbiAyLjcu
NA0KPiANCj4gPiA+IHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQgdGhlIGN1cnJlbnQgdGV4dCBpczoN
Cj4gDQo+ID4gPg0KPiANCj4gPiA+ICJObyBmdXJ0aGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNl
bnQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbiByZXN1bWVzDQo+IA0KPiA+ID4gb3IgaXMgdGVybWlu
YXRlZC4iDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3JpcHRp
b24tcmVzdW1lZCBzYXlzIjoNCj4gDQo+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdl
bmVyYXRlZCBhZnRlciB0aGUgaXNzdWFuY2Ugb2YgdGhpcw0KPiANCj4gPiA+IHN1YnNjcmlwdGlv
biBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQo+IA0KPiA+ID4N
Cj4gDQo+ID4gPiBCYXNlZCBvbiB0aGUgZGlzY3Vzc2lvbiwgSSBjYW4gbWFrZSBpdDoNCj4gDQo+
ID4gPg0KPiANCj4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgYXJlIGFnYWluIHBlcm1p
dHRlZCB0byBiZSBzZW50IGZvbGxvd2luZw0KPiANCj4gPiA+IHRoaXMgc3Vic2NyaXB0aW9uIHN0
YXRlIGNoYW5nZSBub3RpZmljYXRpb24uIg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gSXMgdGhpcyBz
dWZmaWNpZW50IGZvciB5b3U/DQo+IA0KPiA+ID4NCj4gDQo+ID4gPiAuLi4NCj4gDQo+ID4gPiA+
ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQo+IA0KPiA+ID4gPiA+ICAgLS0gY29uY2Vy
biBhYm91dCBhIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBlcnJvciByZXBvcnRpbmcgc3lzdGVtDQo+
IA0KPiA+ID4gPiA+ICAgICAgbXVzdCBtYWtlIHN1cmUgcHJvdG9jb2wgZXJyb3IgcmVwb3J0aW5n
IHN5c3RlbSBpcyB1c2VkDQo+IA0KPiA+ID4gPiA+IGNvcnJlY3RseQ0KPiANCj4gPiA+ID4NCj4g
DQo+ID4gPiA+IFllcy4gIFdlIGhhdmUgZG9uZSBvdXIgYmVzdCB0byBpbnRlZ3JhdGUgd2l0aCB0
aGUgZW1iZWRkZWQgTkVUQ09ORg0KPiANCj4gPiA+ID4gYW5kIFJFU1RDT05GIG1lY2hhbmlzbXMu
ICBUaGVyZSBpcyBtdWNoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4NCj4gDQo+ID4gPiA+IHRo
ZSB0cmFuc3BvcnQgZHJhZnRzIGhlcmUuDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gPiAgIC0t
IFRoZSBlcnJvci10YWcgdmFsdWUgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBmb3IgZWFjaCAncmVh
c29uJw0KPiANCj4gPiA+ID4gPiBpZGVudGl0eQ0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IFRo
aXMgaXMgZG9uZSBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cy4gIEUuZy4sIHNlZQ0KPiANCj4gPiA+
ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtDQo+IA0KPiA+ID4gPiBub3RpZmlj
YXRpb25zIFNlY3Rpb24gNw0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IEkgZG8gbm90IGFncmVl
IHRoaXMgaXMgYSBnb29kIGlkZWEuDQo+IA0KPiA+ID4gPiBFYWNoIGVycm9yIGlkZW50aXR5IHNo
b3VsZCBzaW1wbHkgc3RhdGUgdGhlIHJlcXVpcmVkICJlcnJvci10YWciDQo+IA0KPiA+ID4gPiB0
aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuICBUaGlzIGlzIGV4cGVjdGVkIG9mIHBy
b3RvY29sDQo+IA0KPiA+ID4gPiBvcGVyYXRpb25zIHRoYXQgYXJlIGFkZGVkIHRvIE5FVENPTkYg
YW5kIFJFU1RDT05GLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gSW4gZHJhZnQtaWV0Zi1uZXRjb25m
LW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgc2VjdGlvbiA3LCB0aGUNCj4gDQo+ID4gPiBy
ZXF1aXJlZCAiZXJyb3ItdGFnIiBpcyBpZGVudGlmaWVkIGFzICJvcGVyYXRpb24tZmFpbGVkIi4g
IElmIHdlDQo+IA0KPiA+ID4gaW5zdGVhZCBwbGFjZWQgdGhhdCAiZXJyb3ItdGFnIiBpbmZvcm1h
dGlvbiBpbiB0aGUgWUFORyBtb2RlbCwgdGhlbiB3ZQ0KPiANCj4gPiA+IGhhdmUgdGllZCB0aGUg
WUFORyBtb2RlbCB0byB0aGUgUkVTVENPTkYgYW5kIE5FVENPTkYgdHJhbnNwb3J0cy4NCj4gDQo+
ID4gPg0KPiANCj4gPiA+ID4gQm90aCBORVRDT05GIGFuZCBSRVNUQ09ORiB1c2UgYSBjb21wYXRp
YmxlIGVycm9yIHJlcG9ydGluZyBkYXRhDQo+IA0KPiA+ID4gPiBzdHJ1Y3R1cmUuDQo+IA0KPiA+
ID4gPiBUaGUgImVycm9yLXRhZyIgaXMgdXNlZCBpbiBib3RoIG9mIHRoZW0uICBJTU8gY2xpZW50
IGRldmVsb3BlcnMgZG8NCj4gDQo+ID4gPiA+IG5vdCB3YW50IGEgZGlmZmVyZW50IHNldCBvZiBl
cnJvciBjb2RlcyBmb3IgdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCj4gDQo+ID4gPg0KPiAN
Cj4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiBTZWN0aW9uIDMuMyBhbHNv
IHJlcXVpcmVzIGFuDQo+IA0KPiA+ID4gImVycm9yLXRhZyIgbm9kZSBvZiAib3BlcmF0aW9uLWZh
aWxlZCIuICBTbyB3ZSB1c2VkIHRoZSB0cmFuc3BvcnQNCj4gDQo+ID4gPiBkcmFmdHMgcmF0aGVy
IHRoYW4gdGhlIFlBTkcgbW9kZWwgdG8gc3VwcG9ydCB0aGUgc2FtZSBlcnJvciBjb2RlcyBmb3IN
Cj4gDQo+ID4gPiB0aGUgc2FtZSBlcnJvciBjb25kaXRpb25zLg0KPiANCj4gPiA+DQo+IA0KPiA+
ID4gPiBJIGFncmVlIHRoYXQgdHJhbnNwb3J0IGRyYWZ0cyBjb3VsZCBkZWZpbmUgdGhlaXIgb3du
IGVycm9yDQo+IA0KPiA+ID4gPiBpZGVudGl0aWVzLCB3aGljaCB3b3VsZCBkb2N1bWVudCB0aGUg
ZXhwZWN0ZWQgZXJyb3ItdGFnIHRoZXJlLg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+DQo+IA0K
PiA+ID4gPiA+ICAgIDIuICAibW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyI6
IFRoaXMgTVVTVCBiZSByZXR1cm5lZA0KPiANCj4gPiA+ID4gPiAgICAgICAgd2l0aCB0aGUgbGVh
ZiAicmVhc29uIiBwb3B1bGF0ZWQgaWYgYW4gUlBDIGVycm9yIHJlYXNvbiBoYXMgbm90DQo+IA0K
PiA+ID4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSB0cmFuc3Bv
cnQgcG9ydGlvbiBvZiBhIGZhaWxlZA0KPiANCj4gPiA+ID4gPiAgICAgICAgIm1vZGlmeS1zdWJz
Y3JpcHRpb24iIFJQQyByZXNwb25zZS4gIFRoaXMgTVVTVCBiZSBzZW50IGlmDQo+IA0KPiA+ID4g
PiA+IGhpbnRzDQo+IA0KPiA+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gYWxsIDMgcGFyYWdy
YXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAicGxhY2VkIGVsc2V3aGVyZSINCj4gDQo+ID4g
PiA+ID4gICAgICAgdGV4dCBtZWFuczsgbm90IGFwcHJvcHJpYXRlIGZvciBNVVNUOw0KPiANCj4g
PiA+ID4NCj4gDQo+ID4gPiA+IEluc3RlYWQgb2YgInBsYWNlZCBlbHNld2hlcmUiLCBob3cgYWJv
dXQ6ICJwbGFjZWQgaW4gc3Vic2NyaXB0aW9uDQo+IA0KPiA+ID4gPiB0cmFuc3BvcnQgZG9jdW1l
bnQgZGVmaW5lZCBvYmplY3QiLiAgV291bGQgdGhpcyBiZSBzdWZmaWNpZW50Pw0KPiANCj4gPiA+
ID4NCj4gDQo+ID4gPiA+IE5vIC0tIE5FVENPTkYgYW5kIFJFU1RDT05GIGhhdmUgd2VsbC1kZWZp
bmVkIGVycm9yIHJlcG9ydGluZy4NCj4gDQo+ID4gPiA+IFRoZSBzZXJ2ZXIgcmVxdWlyZW1lbnRz
IGZvciB0aGlzIGVycm9yIHJlcG9ydGluZyBtdXN0IGJlIGRvY3VtZW50ZWQuDQo+IA0KPiA+ID4g
Pg0KPiANCj4gPiA+ID4gSSBhZ3JlZSB3aXRoIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2g6DQo+IA0K
PiA+ID4gPiAgIC0gZWFjaCBvcGVyYXRpb24gTVVTVCBpZGVudGlmeSB0aGUgZXJyb3ItdGFncyB0
aGF0IGFyZSBleHBlY3RlZCBmb3INCj4gDQo+ID4gPiA+ICAgICB2YXJpb3VzIGVycm9yIGNvbmRp
dGlvbnMgKHN1Y2ggcyBpcyBkb25lIGluIFJGQyA2MjQxKQ0KPiANCj4gPiA+ID4gICAtIHRoZSBz
ZXJ2ZXIgTVVTVCByZXR1cm4gdGhlIHNwZWNpZmllZCBlcnJvci10YWdzLiBJZiBhIGNvbmRpdGlv
biBub3QNCj4gDQo+ID4gPiA+ICAgLSBleHBsaWNpdGx5DQo+IA0KPiA+ID4gPiAgICAgZGVmaW5l
ZCB0aGVuIHRoZSBzZXJ2ZXIgTVVTVCBwaWNrIHRoZSBhcHByb3ByaWF0ZSBlcnJvci10YWcgZnJv
bSBSRkMNCj4gDQo+ID4gPiA+ICAgICA2MjQxDQo+IA0KPiA+ID4gPiAgLSB0aGUgc2VydmVyIE1B
WSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgcmM6eWFuZy1kYXRhIGluIHRoZQ0KPiANCj4gPiA+ID4g
PGVycm9yLWluZm8+DQo+IA0KPiA+ID4gPiAgLSBkYXRhDQo+IA0KPiA+ID4gPiBzdHJ1Y3R1cmUN
Cj4gDQo+ID4gPiA+ICAtIHRoZSBzZXJ2ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlh
bmctZGF0YSB0byByZXBvcnQgaGludHMNCj4gDQo+ID4gPiA+ICAtIGZvciBwcm90b2NvbHMgb3Ro
ZXIgdGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhleSBjYW4gbWFwDQo+IA0KPiA+ID4gPiBl
cnJvci10YWcNCj4gDQo+ID4gPiA+ICAtIG9yDQo+IA0KPiA+ID4gPiBpZ25vcmUgaXQsDQo+IA0K
PiA+ID4gPiAgICBidXQgdGhlIGRvY3VtZW50IGRlZmluaW5nIHRoZSBwcm90b2NvbCBvcGVyYXRp
b24gTVVTVCBwcm92aWRlDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBGdW5jdGlvbmFsbHksIGV2ZXJ5
dGhpbmcgeW91IGFzayBmb3IgaXMgZnVsbHkgY292ZXJlZCB3aGVuIHlvdSBpbmNsdWRlDQo+IA0K
PiA+ID4gY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0
aW9ucyAoc2VjdGlvbiA3KQ0KPiANCj4gPiA+IGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNv
bmYtbm90aWYgKHNlY3Rpb24gMy4zKS4NCj4gDQo+ID4gPg0KPiANCj4gPiA+IE15IHJlYWQgb2Yg
dGhlIGlzc3VlIGlzIHRoYXQgeW91IGJlbGlldmUgImVycm9yLXRhZyIgbXVzdCBiZSBzcGVjaWZp
ZWQNCj4gDQo+ID4gPiBpbiB0aGUgWUFORyBtb2RlbC4gIEkgYmVsaWV2ZSB0aGF0ICJlcnJvci10
YWciIHNob3VsZG4ndCBiZSBpbiB0aGUNCj4gDQo+ID4gPiBZQU5HIG1vZGVsIGJlY2F1c2UgdGhh
dCB3b3VsZCB0aWUgdGhlIG1vZGVsIHRvIGEgdHJhbnNwb3J0IHR5cGUuDQo+IA0KPiA+ID4NCj4g
DQo+ID4gPiBBbnkgdGhvdWdodHMgb24gaG93IHdlIG1pZ2h0IGNsb3NlIHRoaXM/ICBJZiBhYnNv
bHV0ZWx5IHJlcXVpcmVkIEkNCj4gDQo+ID4gPiBjb3VsZCBwbGFjZSBhIG5ldyBjb21tZW50IGxp
bmUgaW4gdGhlIFlBTkcgbW9kZWwgdW5kZXINCj4gDQo+ID4gPiAvKiBJZGVudGl0aWVzIGZvciBS
UEMgYW5kIE5vdGlmaWNhdGlvbiBlcnJvcnMgKi8NCj4gDQo+ID4gPg0KPiANCj4gPiA+IFRoZSBj
b21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlOg0KPiANCj4gPiA+IC8qIFdoZW4gdXNlZCB3
aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GIFJQQ3M6DQo+IA0KPiA+ID4gICAgICJlcnJvci10eXBl
IiBub2RlIHRvIGJlIHVzZWQgaXMgImFwcGxpY2F0aW9uIg0KPiANCj4gPiA+ICAgICAgImVycm9y
LXRhZyIgbXVzdCBiZSAib3BlcmF0aW9uLWZhaWxlZCIuICAqLw0KPiANCj4gPiA+DQo+IA0KPiA+
ID4gVGhpcyBzZWVtcyBpbmNvbmdydW91cy4gIEp1c3QgdGhyb3dpbmcgaXQgb3V0IGFzIGEgc3Vn
Z2VzdGlvbi4NCj4gDQo+ID4gPg0KPiANCj4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSAtdjIxIHdv
cmRpbmcgcmVzdWx0cyBmcm9tIHRoZSBhdHRlbXB0ZWQgYmFsYW5jaW5nDQo+IA0KPiA+ID4gPiB0
aGUgV0cgcmVxdWVzdHMgZm9yOg0KPiANCj4gPiA+ID4gKiBtZXJnaW5nIHdpdGggdHJhbnNwb3J0
IHByb3RvY29sIGVycm9yIG1lY2hhbmlzbXMNCj4gDQo+ID4gPiA+ICogV0cgbGVhZGVyc2hpcCBn
dWlkYW5jZSB0byBwcm92aWRlIHJlcXVpcmVtZW50cyBmb3IgdHJhbnNwb3J0DQo+IA0KPiA+ID4g
PiBkb2N1bWVudHMNCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgICAgT25seSAzIGZpZWxk
cyBzZWVtDQo+IA0KPiA+ID4gPiA+ICAgICAgIHRvIGJlIHJlbGV2YW50IChlcnJvci10YWcsIGVy
cm9yLWFwcC10YWcsIGVycm9yLWluZm8pLg0KPiANCj4gPiA+ID4gPiAgICAgICBQcm90Y29sIG9w
ZXJhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGRvY3VtZW50IHNlcnZlciByZXF1aXJlbWVudHMNCj4g
DQo+ID4gPiA+ID4gICAgICAgZm9yIHRoZXNlIDMgZmllbGRzLCBpZiBhcHBsaWNhYmxlLiAgT25s
eSB0aGUgZXJyb3ItdGFnDQo+IA0KPiA+ID4gPiA+ICAgICAgIGlzIG1hbmRhdG9yeS10by11c2Uu
DQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gSG9wZWZ1bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1
ZmZpY2llbnRseSB3aGVuIHRoaXMgZG9jdW1lbnQgaXMNCj4gDQo+ID4gPiA+IGNvdXBsZWQgd2l0
aCB0aGUgTkVUQ09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3VtZW50cy4NCj4g
DQo+ID4gPiA+IEZvciBvdGhlciB0cmFuc3BvcnRzLCB0aGUgdGFncyB5b3UgaWRlbnRpZnkgYWJv
dXQgd291bGQgbm90IGJlDQo+IA0KPiA+ID4gPiBhcHBsaWNhYmxlLg0KPiANCj4gPiA+ID4NCj4g
DQo+ID4gPiA+ID4gICAtLSB0aGUgZXJyb3IgYXNzaWdubWVudHMgYXJlIGV4dHJlbWVseSBzcGVj
aWZpYy4gZS5nLiwgaXQgaXMgbm90DQo+IA0KPiA+ID4gPiA+ICAgICAgcG9zc2libGUgZm9yIDxr
aWxsLXN1YnNjcmlwdGlvbj4gdG8gZmFpbCB3aXRoIGFuDQo+IA0KPiA+ID4gPiA+ICAgICAgJ2lu
c3VmZmljaWVudC1yZXNvdXJjZXMnIGVycm9yOw0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IFRo
aXMgaXMgdGhlIGludGVudCBvZiB0aGUgYmFzZSBzcGVjaWZpY2F0aW9uLCBlLmcuLCB3ZSBkb24n
dCBiZWxpZXZlDQo+IA0KPiA+ID4gPiBhDQo+IA0KPiA+ID4gPiBraWxsLQ0KPiANCj4gPiA+ID4g
c3Vic2NyaXB0aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJl
YXNvbi4gIEJ1dA0KPiANCj4gPiA+ID4gdmVuZG9ycyBtaWdodCBkZXNpcmUgbW9yZSBzcGVjaWZp
Y2l0eS4gIEFzIGEgcmVzdWx0IGlzIGNlcnRhaW5seSBvaw0KPiANCj4gPiA+ID4gZm9yIHZlbmRv
ciBpbXBsZW1lbnRhdGlvbnMgdG8gYWRkIG5ldyBlcnJvciBpZGVudGl0aWVzLg0KPiANCj4gPiA+
ID4NCj4gDQo+ID4gPiA+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNpZW50IHJl
c291cmNlcy4gVGhhdCBpcyB2ZXJ5DQo+IA0KPiA+ID4gPiBpbXBsZW1lbnRhdGlvbi0NCj4gDQo+
ID4gPiA+IHNwZWNpZmljLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gSW5zdGVhZCBvZiBpbXBsZW1l
bnRhdGlvbiBzcGVjaWZpYyBJIHdvdWxkIGNhbGwgaXQgYXBwbGljYXRpb24NCj4gDQo+ID4gPiBz
cGVjaWZpYy4gIFJpZ2h0IG5vdyB3ZSBkb24ndCBoYXZlIGEgY2F0Y2gtYWxsIGVycm9yLWlkZW50
aXR5IG9mDQo+IA0KPiA+ID4gJ290aGVyLWVycm9yJy4gIFdlIHByZWZlcnJlZCB0aGF0IGVycm9y
IGNvbmRpdGlvbnMgYmV5b25kIHRoZSBjdXJyZW50DQo+IA0KPiA+ID4gb25lcyBsaXN0ZWQgY291
bGQgYmUgaW5jbHVkZWQgYnkgdmVuZG9ycyBhcyBuZWVkZWQuICBGdXJ0aGVyDQo+IA0KPiA+ID4g
ZGVwbG95bWVudCBleHBlcmllbmNlIGNvdWxkIHJlc3VsdCBpbiBuZXcgZXJyb3IgaWRlbnRpdGll
cyBzdXJmYWNpbmcNCj4gDQo+ID4gPiBmb3Igc3RhbmRhcmRpemF0aW9uIHNob3VsZCB0aGlzIGRy
YWZ0IGNhdGNoIG9uLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgICAgRG8gbm90IGFncmVl
IHRoYXQgc2NvcGluZyBlYWNoDQo+IA0KPiA+ID4gPiA+ICAgICAgaWRlbnRpdHkgdG8gc3BlY2lm
aWMgUlBDIG9wZXJhdGlvbnMgaXMgYSBnb29kIGlkZWEuDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+
ID4gVGhpcyBsZXZlbCBvZiBzcGVjaWZpY2l0eSB3YXMgbm90IHRoZSBhdXRob3IncyBvcmlnaW5h
bCBwbGFucy4gIE5vcg0KPiANCj4gPiA+ID4gd2FzIHRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkg
cGFydCBvZiBlYXJsaWVyIGRyYWZ0IHZlcnNpb25zIHVwDQo+IA0KPiA+ID4gPiB0aHJvdWdoIC12
MDguICBIb3dldmVyIG1lbWJlcnMgb2YgdGhlIFdHIG1hZGUgaXQgY2xlYXIgdGhhdCBzdWNoDQo+
IA0KPiA+ID4gPiBzcGVjaWZpY2l0eSB3YXMgbmVjZXNzYXJ5IGZvciBkcmFmdCBwcm9ncmVzc2lv
bi4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gaG93IGFyZSBlcnJvcnMgaW4gdGhl
c2UgcGFyYW1ldGVycyByZXBvcnRlZCBmb3IgY29uZmlndXJlZA0KPiANCj4gPiA+ID4gPiAgICAg
IHN1YnNjcmlwdGlvbnMgd2hlbiA8ZWRpdC1jb25maWc+IGlzIHRoZSBSUEMgdGhhdCBoYXMgdGhl
IGVycm9yPw0KPiANCj4gPiA+ID4gPiAgICAgIEhvdyBhcmUgdGhlIHlhbmctZGF0YSBzdHJ1Y3Rz
IHVzZWQgZm9yIGVkaXQtY29uZmlnIG9yIGNvbW1pdCBlcnJvcnM/DQo+IA0KPiA+ID4gPg0KPiAN
Cj4gPiA+ID4gTm9uZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUgc3BlY2lmaWVk
IGZvciB1c2Ugd2l0aA0KPiANCj4gPiA+ID4gPGVkaXQtY29uZmlnPiBvcGVyYXRpb25zLiAgRm9y
IDxlZGl0LWNvbmZpZz4sIHRoZSBjaGFuZ2UgdG8gYQ0KPiANCj4gPiA+ID4gY29uZmlndXJlZCBz
dWJzY3JpcHRpb24gd291bGQgYmUgd3JpdHRlbiB0byB0aGUgZGF0YXN0b3JlIGlmIGl0IHdlcmUN
Cj4gDQo+ID4gPiA+IHNlbWFudGljYWxseSB2YWxpZC4gIEF0IHRoaXMgcG9pbnQgdGhlIHN1YnNj
cmlwdGlvbiBlbnRlcnMgdGhlDQo+IA0KPiA+ID4gPiBbZXZhbHVhdGVdIHBvaW50cyBvZiBGaWd1
cmUgOC4gIElzc3VlcyBmcm9tIHRoaXMgcG9pbnQgb3V0IHdvdWxkIGJlDQo+IA0KPiA+ID4gPiBy
ZXBvcnRlZCB3aXRoIGEgdmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xPRy4N
Cj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBTbyBob3cgYXJlIGhpbnRzIHJlcG9ydGVkIGZvciBj
b25maWd1cmVkIHN1YnNjcmlwdGlvbnM/DQo+IA0KPiA+ID4NCj4gDQo+ID4gPiBUaGVyZSBpcyBu
b3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJlcXVpcmVzIHRoaXMuICBBbg0KPiAN
Cj4gPiA+IGltcGxlbWVudGF0aW9uIGNvdWxkIGNob29zZSB0byBwbGFjZSB0aGVzZSBpbiBzb21l
IGZvcm0gb2YgU1lTTE9HLg0KPiANCj4gPiA+IC4uLg0KPiANCj4gPiA+ID4gPiBJNikgc2VjIDIu
NSwgcGFyYSAzOg0KPiANCj4gPiA+ID4gPg0KPiANCj4gPiA+ID4gPiAgICBPbiBhIHJlY2VpdmVy
IG9mIGENCj4gDQo+ID4gPiA+ID4gICAgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQg
Zm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9ucyBpcw0KPiANCj4gPiA+ID4gPiAgICBvcHRpb25hbCBl
eGNlcHQgd2hlcmUgcmVwbGF5aW5nIG1pc3NlZCBldmVudCByZWNvcmRzIGlzIHJlcXVpcmVkLg0K
PiANCj4gPiA+ID4gPg0KPiANCj4gPiA+ID4gPiAgIC0tIGNvbmZ1c2luZyBiZWNhdXNlIHRleHQg
aW4gMS4zOg0KPiANCj4gPiA+ID4gPiAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBtaXhpbmct
YW5kLW1hdGNoaW5nIG9mIGR5bmFtaWMgYW5kIGNvbmZpZ3VyZWQNCj4gDQo+ID4gPiA+ID4gICAg
ICBvcGVyYXRpb25zIG9uIGEgc2luZ2xlIHN1YnNjcmlwdGlvbi4gIFNwZWNpZmljYWxseSwgYSBj
b25maWd1cmVkDQo+IA0KPiA+ID4gPiA+ICAgLS0gY2xhcmlmeSB0aGUgcmVjZWl2ZXIgbWF5IGhh
dmUgbXVsdGlwbGUgc3Vic2NyaXB0aW9ucyBoZXJlDQo+IA0KPiA+ID4gPiA+ICAgLS0gbm90IGNs
ZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcuLi4iIHRleHQgbWVhbnMNCj4gDQo+ID4g
PiA+DQo+IA0KPiA+ID4gPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyB0d2VhazoNCj4gDQo+ID4g
PiA+DQo+IA0KPiA+ID4gPiAiT24gYSByZWNlaXZlciBvZiBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0
aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljDQo+IA0KPiA+ID4gPiBzdWJzY3JpcHRpb25zIGlzIG9w
dGlvbmFsLiAgSG93ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkIGV2ZW50DQo+IA0KPiA+ID4gPiBy
ZWNvcmRzIGlzIHJlcXVpcmVkIGZvciBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0
IGZvcg0KPiANCj4gPiA+ID4gZHluYW1pYyBzdWJzY3JpcHRpb24gaXMgaGlnaGx5IHJlY29tbWVu
ZGVkLiAgSW4gdGhpcyBjYXNlLCBhDQo+IA0KPiA+ID4gPiBzZXBhcmF0ZSBkeW5hbWljIHN1YnNj
cmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gcmV0cmFuc21pdCB0aGUNCj4gDQo+ID4gPiA+
IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gT0sNCj4g
DQo+ID4gPg0KPiANCj4gPiA+IENoYW5nZSBtYWRlLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gPiA+
IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1maWx0ZXI6IFttdWx0aXBsZSB1c2VzXQ0KPiANCj4gPiA+
ID4gPg0KPiANCj4gPiA+ID4gPiAgICAgICAgICAgIFRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRl
ZCBpbiB0aGUgZm9sbG93aW5nIFhQYXRoIGNvbnRleHQ6DQo+IA0KPiA+ID4gPiA+DQo+IA0KPiA+
ID4gPiA+ICAgICAgICAgICAgICBvICAgVGhlIHNldCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25z
IGlzIHRoZSBzZXQgb2YgcHJlZml4DQo+IA0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgYW5k
IG5hbWVzcGFjZSBwYWlycyBmb3IgYWxsIFlBTkcgbW9kdWxlcyBpbXBsZW1lbnRlZA0KPiANCj4g
PiA+ID4gPiAgICAgICAgICAgICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRoZSBwcmVmaXgg
aXMgdGhlIFlBTkcgbW9kdWxlDQo+IA0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgbmFtZSBh
bmQgdGhlIG5hbWVzcGFjZSBpcyBhcyBkZWZpbmVkIGJ5IHRoZQ0KPiANCj4gPiA+ID4gPiAgICAg
ICAgICAgICAgICAgICduYW1lc3BhY2UnIHN0YXRlbWVudCBpbiB0aGUgWUFORyBtb2R1bGUuDQo+
IA0KPiA+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gVGhpcyBwcmVmaXggcHJvY2Vzc2luZyBp
cyBub3QgZG9uZSBhbnl3aGVyZSBlbHNlIGluIE5FVENPTkYNCj4gDQo+ID4gPiA+ID4gICAgICBv
ciBSRVNUQ09ORi4gIElNTyBhIGJhZCBwcmVjZWRlbnQuICBPbmx5IHRoZSBYTUwgcHJlZml4ZXMN
Cj4gDQo+ID4gPiA+ID4gICAgICBzaG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Npbmcgb2Yg
WE1MIGVuY29kaW5nLiAgWUFORw0KPiANCj4gPiA+ID4gPiAgICAgIG1vZHVsZSBwcmVmaXhlcyBh
cmUgbm90IHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSwgdW5saWtlDQo+IA0KPiA+ID4gPiA+ICAgICAg
dGhlIHByZWZpeCBtYXBwaW5ncyBpbiBYTUwNCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBUaGlz
IHRleHQgd2FzIHByb3Bvc2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBvZiB0aGUgInhwYXRoDQo+
IA0KPiA+ID4gPiBleHByZXNzaW9ucyBpbiBKU09OIg0KPiANCj4gPiA+ID4gdGhyZWFkIGxhc3Qg
T2N0b2JlciBpbiBORVRNT0QuDQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gSSBhbSBoYXBweSB0
byBpbmNvcnBvcmF0ZSB3aGF0ZXZlciB0ZXh0IGlzIGFwcHJvcHJpYXRlLiAgSSB3YXMNCj4gDQo+
ID4gPiA+IGhvcGluZyB0aGF0IHRoZSBzdWdnZXN0ZWQgdGV4dCB3YXMgc3VmZmljaWVudCBmb3Ig
bm93LiAgS2VudCBoYXMNCj4gDQo+ID4gPiA+IGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMg
YW4gaXNzdWUgZm9yIHlhbmctbmV4dA0KPiANCj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25l
dG1vZC13Zy95YW5nLW5leHQvaXNzdWVzLzU1DQo+IA0KPiA+ID4gPiBTbyBob3BlZnVsbHkgdGhl
cmUgaXMgbm8gZmluYWwgcHJlY2VkZW50IGJlaW5nIGNsYWltZWQuDQo+IA0KPiA+ID4gPg0KPiAN
Cj4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhhdCB0aGlzIFlBTkcgbW9kdWxlIHNob3VsZCBkZWZp
bmUgYSBuZXcgd2F5IHRvDQo+IA0KPiA+ID4gPiBlbmNvZGUgWFBhdGggaW50byBYTUwgaW5zdGFu
Y2UgZG9jdW1lbnRzLiBUaGlzIHdpbGwgcmVxdWlyZQ0KPiANCj4gPiA+ID4gc2lnbmlmaWNhbnQg
Y2hhbmdlcyB0byBzZXJ2ZXIgaW1wbGVtZW50YXRpb25zLiAgWUFORyBtb2R1bGUgcHJlZml4ZXMN
Cj4gDQo+ID4gPiA+IGFyZSBub3QgZXZlbiByZXF1aXJlZCB0byBiZSB1bmlxdWUgc28gdGhlIHNl
dCBvZiBwcmVmaXhlcyB1c2VkIGJ5DQo+IA0KPiA+ID4gPiB0aGUgc2VydmVyIGluIFhNTCBpbnN0
YW5jZSBkb2N1bWVudHMgbWF5IGJlIGRpZmZlcmVudCwgc2luY2UgaXQgbXVzdA0KPiANCj4gPiA+
ID4gYmUgdW5pcXVlLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gU2VlIG5leHQgbm90ZQ0KPiANCj4g
PiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gTk1EQSBhbGxvd3MgdGhlIHNhbWUgbW9kdWxlIHRvIGFw
cGVhciBpbiBtdWx0aXBsZSBtb2R1bGUtc2V0cw0KPiANCj4gPiA+ID4gPiAgICAgIGFuZCBkaWZm
ZXJlbnQgaW4gZWFjaCBkYXRhc3RvcmUuIFRoaXMgdGV4dCBhYm91dCAiaW1wbGVtZW50ZWQgYnkN
Cj4gDQo+ID4gPiA+ID4gICAgICB0aGUgc2VydmVyIiBkb2VzIG5vdCB3b3JrIGZvciBOTURBDQo+
IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0ZXZlciB0ZXh0
IG1lZXRzIFlBTkcgZG9jdG9yIGFwcHJvdmFsLiAgQ2FuDQo+IA0KPiA+ID4gPiB5b3Ugc3VnZ2Vz
dD8NCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPg0KPiANCj4gPiA+ID4gUmVtb3ZlIGFsbCB0ZXh0
IGFib3V0IFlBTkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nIFhNTCBlbmNvZGluZw0KPiAN
Cj4gPiA+ID4gd2l0aG91dCBtb2RpZmljYXRpb24NCj4gDQo+ID4gPg0KPiANCj4gPiA+IEFzIGEg
ZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0IG1vZGlm
aWNhdGlvbiwNCj4gDQo+ID4gPiBJIGJlbGlldmUgdGhpcyBpcyBhIGJsb2NrZXIuICBXaGF0IGlz
IHRoZSBwcm9jZXNzIGZvciBZQU5HIG1vZGVsDQo+IA0KPiA+ID4gcmV2aWV3cyBpbiBzdWNoIGEg
Y2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuICBBbnkNCj4gDQo+ID4g
PiBzdWdnZXN0aW9ucyBvbiBuZXh0IHN0ZXBzPw0KPiANCj4gPiA+DQo+IA0KPiA+ID4gLi4uDQo+
IA0KPiA+ID4gPiA+ICAgLS0gdGhlcmUgc2hvdWxkIGJlIGFuIGV4YW1wbGUgb2YgYSBjb25maWd1
cmFibGUgZW5jb2RpbmcNCj4gDQo+ID4gPiA+ID4gcHJvdmlkZWQNCj4gDQo+ID4gPiA+DQo+IA0K
PiA+ID4gPiBJIGFtIGhhcHB5IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24gWUFORyBtb2RlbCdz
IGlkZW50aXR5DQo+IA0KPiA+ID4gPiBkZWZpbml0aW9uIG9mICJjb25maWd1cmFibGUtZW5jb2Rp
bmciLiAgSSBjb3VsZCBkbyB0aGlzIGJ5IGFkZGluZw0KPiANCj4gPiA+ID4gdGhlIGZvbGxvd2lu
ZyBhZGRpdGlvbmFsIHRleHQgdG8gdGhlIGRlc2NyaXB0aW9uOiAiQW4gZXhhbXBsZSBvZiBhDQo+
IA0KPiA+ID4gPiBjb25maWd1cmFibGUgZW5jb2RpbmcgbWlnaHQgYmUgYSBuZXcgaWRlbnRpdHkg
c3VjaCBhcyAnZW5jb2RlLWNib3InLg0KPiANCj4gPiA+ID4gU3VjaCBhbiBpZGVudGl0eSBjb3Vs
ZCB1c2UNCj4gDQo+ID4gPiA+ICdjb25maWd1cmFibGUtDQo+IA0KPiA+ID4gPiBlbmNvZGluZycg
YXMgaXRzIGJhc2UuICBUaGlzIHdvdWxkIGFsbG93IGEgZHluYW1pYyBzdWJzY3JpcHRpb24NCj4g
DQo+ID4gPiA+IGVuY29kZWQgaW4gSlNPTiBbUkZDLTgyNTldIHRvIHJlcXVlc3Qgbm90aWZpY2F0
aW9uIG1lc3NhZ2VzIGJlDQo+IA0KPiA+ID4gPiBlbmNvZGVkIHZpYSBDQk9SIFtSRkMtIDcwNDld
LiAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkgc3BlY2lmaWMNCj4gDQo+ID4gPiA+IGNvbmZpZ3Vy
YWJsZSBlbmNvZGluZyB3b3VsZCBiZSBleHBsb3JlZCBpbiBhIHRyYW5zcG9ydCBkb2N1bWVudA0K
PiANCj4gPiA+ID4gYmFzZWQgb24gdGhpcyBzcGVjaWZpY2F0aW9uLiIgIERvZXMgdGhpcyBtZWV0
IHlvdXIgYXNrPw0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBPSw0KPiAN
Cj4gPiA+DQo+IA0KPiA+ID4gQWRkZWQNCj4gDQo+ID4gPg0KPiANCj4gPiA+ID4gPiBJMTEpIGV4
dGVuc2lvbiBzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uIHsNCj4gDQo+ID4gPiA+ID4N
Cj4gDQo+ID4gPiA+ID4gICAgICAgIFRoaXMgc3RhdGVtZW50IGlzIG5vdCBmb3IgdXNlDQo+IA0K
PiA+ID4gPiA+ICAgICAgICBvdXRzaWRlIG9mIHRoaXMgWUFORyBtb2R1bGUuIjsNCj4gDQo+ID4g
PiA+ID4NCj4gDQo+ID4gPiA+ID4gICAtLSB0aGlzIHRleHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRo
ZXJlIGlzIG5vIHZhbHVlIGluIGxpbWl0aW5nDQo+IA0KPiA+ID4gPiA+ICAgICAgdGhlIHNjb3Bl
IG9mIHRoaXMgZXh0ZW5zaW9uLiAgSXQgcHJldmVudHMgZXZlbiB0aGlzIFdHIGZyb20NCj4gDQo+
ID4gPiA+ID4gICAgICBjcmVhdGluZyBhIG1vZHVsZSB0aGF0IHVzZXMgdGhlIGV4dGVuc2lvbiBh
Z2Fpbi4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBz
aWduaWZpY2FudCBkZWJhdGUgaW4gdGhlIFdHLiAgVGhlIGF1dGhvcnMNCj4gDQo+ID4gPiA+IGRp
ZCBub3Qgd2FudCB0aGlzIHJlc3RyaWN0aW9uIGVpdGhlci4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+
ID4gPiBUbyBiZSBhbGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1bWVudCwgd2UgaW5zZXJ0ZWQg
dGhlIGRvY3VtZW50Lg0KPiANCj4gPiA+ID4gSWYgdGhpcyByZWFsbHkgaXMgbWFuZGF0b3J5LXRv
LXJlbW92ZSBmcm9tIGEgWUFORyBkb2N0b3INCj4gDQo+ID4gPiA+IHBvaW50LW9mLXZpZXcsIHdo
YXQgaXMgdGhlIHByb2Nlc3MgZm9yIHF1aWNrIGNsb3N1cmUgb24gdGhpcyBpc3N1ZQ0KPiANCj4g
PiA+ID4gYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFuZCB0aGUgWUFORyBkb2N0b3JzPw0KPiANCj4g
PiA+ID4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+ID4gPiBUaGUgWUFORyBsYW5ndWFnZSBtYWtlcyBu
byByZXN0cmljdGlvbnMgYWJvdXQgZXhwb3J0aW5nIHN0YXRlbWVudHMuDQo+IA0KPiA+ID4gPiBJ
IGd1ZXNzIEkgbWlzc2VkIHRoYXQgZGViYXRlIHNvIEkgd2lsbCBqdXN0IHNheSBPSyBhbmQgd29u
ZGVyIHdoYXQNCj4gDQo+ID4gPiA+IHByb2JsZW0gdGhpcyBpcyBzdXBwb3NlZCB0byBzb2x2ZS4g
SSBndWVzcyB0aGUgV0cgd2FudHMgdG8gZ2l2ZSBZQU5HDQo+IA0KPiA+ID4gPiBEb2N0b3JzIG1v
cmUgdGhpbmdzIHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdlIGNhbGxlZCBhIENMUiBpbg0KPiAN
Cj4gPiA+ID4gU05NUC1sYW5kIDstKQ0KPiANCj4gPiA+DQo+IA0KPiA+ID4gVGhhbmtzLiAgTm8g
YWN0aW9uIHRha2VuLg0KPiANCj4gPiA+DQo+IA0KPiA+ID4gPiA+IEkxMykgICBub3RpZmljYXRp
b24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgew0KPiANCj4gPiA+ID4gPiAgICAgc246c3Vic2NyaXB0
aW9uLXN0YXRlLW5vdGlmaWNhdGlvbjsNCj4gDQo+ID4gPiA+ID4gICAgIGlmLWZlYXR1cmUgImNv
bmZpZ3VyZWQiOw0KPiANCj4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24NCj4gDQo+ID4gPiA+ID4g
ICAgICAgIlRoaXMgbm90aWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IGEgc3Vic2NyaXB0aW9uIGhh
cyBzdGFydGVkIGFuZA0KPiANCj4gPiA+ID4gPiAgICAgICAgIG5vdGlmaWNhdGlvbnMgYXJlIGJl
Z2lubmluZyB0byBiZSBzZW50LiBUaGlzIG5vdGlmaWNhdGlvbiBzaGFsbA0KPiANCj4gPiA+ID4g
PiAgICAgICAgb25seSBiZSBzZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQg
ZG9lcyBub3QNCj4gDQo+ID4gPiA+ID4gICAgICAgIGNvbnN0aXR1dGUgYSBnZW5lcmFsLXB1cnBv
c2Ugbm90aWZpY2F0aW9uLiI7DQo+IA0KPiA+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gMm5k
IHNlbnRlbmNlIGlzIGNvbmZ1c2luZzsgYWxsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8NCj4g
DQo+ID4gPiA+ID4gICAgICByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb24uIGxhc3QgcGFydCBp
cyByZWR1bmRhbnQgc2luY2UNCj4gDQo+ID4gPiA+ID4gICAgICB0aGUgc246c3Vic2NyaXB0aW9u
LXN0YXRlLW5vdGlmaWNhdGlvbiBleHRlbnNpb24gaXMgdXNlZA0KPiANCj4gPiA+ID4NCj4gDQo+
ID4gPiA+IFRoZXJlIGlzIG5vIGlzc3VlIHdpdGggcmVtb3ZpbmcgdGhpcyBzZWNvbmQgc2VudGVu
Y2UgY29tcGxldGVseS4gIElmDQo+IA0KPiA+ID4gPiBJIGRpZCB0aGF0LCB3b3VsZCB0aGlzIGFk
ZHJlc3MgeW91ciBjb25jZXJuPw0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IE9LDQo+IA0KPiA+
ID4NCj4gDQo+ID4gPiBEb25lDQo+IA0KPiA+ID4NCj4gDQo+ID4gPiA+ID4gSTE0KSAgIHJjOnlh
bmctZGF0YSBtb2RpZnktc3Vic2NyaXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvIHsNCj4gDQo+ID4g
PiA+ID4NCj4gDQo+ID4gPiA+ID4gICAgICAgbGVhZiBmaWx0ZXItZmFpbHVyZS1oaW50IHsNCj4g
DQo+ID4gPiA+ID4gICAgICAgICB0eXBlIHN0cmluZzsNCj4gDQo+ID4gPiA+ID4gICAgICAgICAg
IGRlc2NyaXB0aW9uDQo+IA0KPiA+ID4gPiA+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNj
cmliaW5nIHdoZXJlIGFuZC9vciB3aHkgYSBwcm92aWRlZCBmaWx0ZXINCj4gDQo+ID4gPiA+ID4g
ICAgICAgICAgICAgIHdhcyB1bnN1cHBvcnRhYmxlIGZvciBhIHN1YnNjcmlwdGlvbi4iOw0KPiAN
Cj4gPiA+ID4gPiAgICAgICB9DQo+IA0KPiA+ID4gPiA+DQo+IA0KPiA+ID4gPiA+ICAgLS0gcnBj
LWVycm9yIGFscmVhZHkgYWxsb3dzIG1vcmUgcHJlY2lzZSBlcnJvciByZXBvcnRpbmcNCj4gDQo+
ID4gPiA+ID4gICAgICBJdCB1c2VzIGVycm9yLXRhZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5n
LCBhbmQgZXJyb3ItaW5mbw0KPiANCj4gPiA+ID4gPiAgICAgIGV4dGVuc2lvbnMNCj4gDQo+ID4g
PiA+ID4gICAgICB0byBpZGVudGlmeSB3aGljaCBwYXJhbWV0ZXJzL2NvbmRpdGlvbnMgY2F1c2Vk
IHRoZSBSUEMgdG8gYmUNCj4gDQo+ID4gPiA+ID4gICAgICByZWplY3RlZC4NCj4gDQo+ID4gPiA+
ID4gICAgICBUaGlzIGVycm9yIHJlcG9ydGluZyB3aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQsIE5v
dCBzdXJlIHRoaXMNCj4gDQo+ID4gPiA+ID4gICAgICBmYWlsdXJlLWhpbnQNCj4gDQo+ID4gPiA+
ID4gICAgICBoYXMgYW55IHN0YW5kYXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFtcGxl
IGNhbiBiZQ0KPiANCj4gPiA+ID4gPiBhZGRlZA0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+IFBl
ciB5b3VyIHRob3VnaHRzIG9uIHJwYy1lcnJvci4uLiAgRm9yIE5FVENPTkYgYW5kIFJFU1RDT05G
LCB5b3UNCj4gDQo+ID4gPiA+IHBvaW50IHRvIGVycm9yIHN0cnVjdHVyZXMgd2hpY2ggaGlzdG9y
aWNhbGx5IGJlZW4gdXNlZCB3aXRoIHRob3NlDQo+IA0KPiA+ID4gPiB0cmFuc3BvcnRzLg0KPiAN
Cj4gPiA+ID4gT2YgY291cnNlDQo+IA0KPiA+ID4gPiB3ZSB3ZXJlIGxvb2tpbmcgdG8gaGF2ZSBh
bGwgc3Vic2NyaXB0aW9uIGhpbnRzIHN1cHBvcnRhYmxlIGFjcm9zcw0KPiANCj4gPiA+ID4gdHJh
bnNwb3J0cyB2aWEgYSBzaW5nbGUgcG9ydGFibGUgWUFORyBkYXRhIHN0cnVjdHVyZS4gIFNvIHRo
ZSB2YWx1ZQ0KPiANCj4gPiA+ID4gaXMgdGhhdCBhIHNpbmdsZSBzdHJpbmcgb2JqZWN0IGV4aXN0
cyBzbyB0byB0cmFuc3BvcnQgd2hhdGV2ZXIgdGhlDQo+IA0KPiA+ID4gPiB2ZW5kb3IgdGhpbmtz
IHdvdWxkIGJlIHVzZWZ1bCBhcyBhIGhpbnQgaW4gdGhpcyBjYXNlLiAgSS5lLiwgdGhlcmUNCj4g
DQo+ID4gPiA+IGhhcyBiZWVuIG5vIGF0dGVtcHQgdG8gc3RhbmRhcmRpemUgdGhlIGNvbnRlbnRz
IG9mIHRoaXMgc3RyaW5nLiAgSWYNCj4gDQo+ID4gPiA+IG9wZXJhdGlvbmFsIGV4cGVyaWVuY2Vz
IGRyaXZlIGEgZGVzaXJlIGZvciBzdWNoIHN0cnVjdHVyaW5nLCB0aGlzDQo+IA0KPiA+ID4gPiBj
b3VsZCBwcm92aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQgYnVpbGRpbmcgb2ZmIG9mIHRo
aXMNCj4gDQo+ID4gPiA+IHN0YXJ0aW5nIHBvaW50Lg0KPiANCj4gPiA+ID4NCj4gDQo+ID4gPiA+
IEkgZ3Vlc3MgSSBkbyBub3QgY29uc2lkZXIgTkVUQ09ORiBhbmQgUkVTVENPTkYgImhpc3Rvcmlj
IiBxdWl0ZSB5ZXQuDQo+IA0KPiA+ID4gPiBUaGVyZSBhcmUgbWFueSBpbXBsZW1lbnRhdGlvbnMg
dXNpbmcgdGhlIHJwYy1lcnJvciByZXBvcnRpbmcgd2l0aCBubw0KPiANCj4gPiA+ID4gaW50ZW50
IHRvIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZS4NCj4gDQo+ID4gPiA+DQo+IA0KPiA+
ID4gPiBJIHdhcyBqdXN0IGFza2luZyBmb3IgYW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlk
ZWEgd2hhdCBhbg0KPiANCj4gPiA+ID4gaW1wbGVtZW50b3Igd291bGQgcHV0IGluIHRoaXMgbGVh
Zi4NCj4gDQo+ID4gPg0KPiANCj4gPiA+IEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIG91ciBpbXBs
ZW1lbnRhdGlvbi4gIFNheSB5b3UgbWlzdHlwZSBhbiBleHRyYQ0KPiANCj4gPiA+ICJcIiB0byBh
biB4cGF0aCBmaWx0ZXI6DQo+IA0KPiA+ID4gL2lmOmludGVyZmFjZXMtc3RhdGUvaW50ZXJmYWNl
W25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJdL29wZXItc3RhdHVzDQo+IA0KPiA+ID4gQXMgYSBy
ZXN1bHQsIHRoZSBmaWx0ZXIgaXMgcGFzc2VkIHRvIHRoZSBwdWJsaXNoZXIgaXM6DQo+IA0KPiA+
ID4gL2lmOmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQw
LzAiXS9vcGVyLXN0YXR1cw0KPiANCj4gPiA+DQo+IA0KPiA+ID4gV2hhdCB3ZSB3b3VsZCByZXR1
cm4gaW4gdGhlIGZhaWx1cmUtaGludCBzdHJpbmcgaXM6DQo+IA0KPiA+ID4gSW52YWxpZCBleHBy
ZXNzaW9uOiBvZmZzZXQoOSkgaW4NCj4gDQo+ID4gPiAnL2lmOmludGVccmZhY2VzLXN0YXRlL2lu
dGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0YXR1cycNCj4gDQo+ID4g
Pg0KPiANCj4gPiA+IEVyaWMNCj4gDQo+ID4gPg0KPiANCj4gPiA+ID4gQW5keQ0K


From nobody Thu Jan 24 05:42:06 2019
Return-Path: <william.ivory@intl.att.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27AC2130E9D for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 05:42:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.601
X-Spam-Level: 
X-Spam-Status: No, score=-0.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, KHOP_DYNAMIC=2, RCVD_IN_DNSWL_LOW=-0.7, 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 LO_S-AQ2doyY for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 05:42:02 -0800 (PST)
Received: from mx0a-00191d01.pphosted.com (mx0a-00191d01.pphosted.com [67.231.149.140]) (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 1FD78130E99 for <netconf@ietf.org>; Thu, 24 Jan 2019 05:42:02 -0800 (PST)
Received: from pps.filterd (m0048589.ppops.net [127.0.0.1]) by m0048589.ppops.net-00191d01. (8.16.0.27/8.16.0.27) with SMTP id x0ODaKCV018096 for <netconf@ietf.org>; Thu, 24 Jan 2019 08:42:01 -0500
Received: from alpi155.enaf.aldc.att.com (sbcsmtp7.sbc.com [144.160.229.24]) by m0048589.ppops.net-00191d01. with ESMTP id 2q7bhnbwbd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for <netconf@ietf.org>; Thu, 24 Jan 2019 08:42:01 -0500
Received: from enaf.aldc.att.com (localhost [127.0.0.1]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id x0ODg0cO022026 for <netconf@ietf.org>; Thu, 24 Jan 2019 08:42:00 -0500
Received: from zlp27130.vci.att.com (zlp27130.vci.att.com [135.66.87.38]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id x0ODfsce021890 for <netconf@ietf.org>; Thu, 24 Jan 2019 08:41:55 -0500
Received: from zlp27130.vci.att.com (zlp27130.vci.att.com [127.0.0.1]) by zlp27130.vci.att.com (Service) with ESMTP id 30BAE40338D4 for <netconf@ietf.org>; Thu, 24 Jan 2019 13:41:54 +0000 (GMT)
Received: from gbcdccas01.intl.att.com (unknown [135.76.180.9]) by zlp27130.vci.att.com (Service) with ESMTPS id DC0B140338D1 for <netconf@ietf.org>; Thu, 24 Jan 2019 13:41:53 +0000 (GMT)
Received: from GBCDCMBX03.intl.att.com ([135.76.31.134]) by gbcdccas01.intl.att.com ([135.76.180.9]) with mapi id 14.03.0415.000; Thu, 24 Jan 2019 13:41:50 +0000
From: "Ivory, William" <william.ivory@intl.att.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Question about NETCONF errors
Thread-Index: AdSz6o52ny0vNaVGSiOE0lg/23cR0A==
Date: Thu, 24 Jan 2019 13:41:49 +0000
Message-ID: <E3378E0605547F4E854DEE0CB1116AB00E775BA2@gbcdcmbx03.intl.att.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.76.180.249]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-24_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1031 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=643 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901240099
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/CY_nX8kPRbNW6bTwHIcDSGr3A6k>
Subject: [netconf] Question about NETCONF errors
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 13:42:03 -0000

Hi,=0A=
=0A=
I've got a question about the appropriate error to return (if indeed it=0A=
is an error) in the following case.  If I have a top-level YANG=0A=
container node in my configuration that's non-presence, then there are 2=0A=
possible responses:=0A=
=0A=
(a) config present, returned, no error=0A=
=0A=
(b) no config present, no data returned=0A=
=0A=
Is the latter an error case (eg 'unknown-element') or should that only=0A=
be returned for a node that cannot exist, rather than one that simply=0A=
doesn't exist in the current configuration?=0A=
=0A=
I've looked at RFC-6241, but didn't find the error descriptions terribly=0A=
helpful.=0A=
=0A=
Thanks,=0A=
=0A=
William=0A=
=0A=


From nobody Thu Jan 24 05:55:42 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0FAAB123FFD; Thu, 24 Jan 2019 05:55:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.053
X-Spam-Level: 
X-Spam-Status: No, score=-19.053 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 kUl6iJZtFkIO; Thu, 24 Jan 2019 05:55:31 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9457A1228B7; Thu, 24 Jan 2019 05:55:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=52812; q=dns/txt; s=iport; t=1548338130; x=1549547730; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=OLTmuu98qeptFzQLe1+/Xb2hEnEyQA9WhMhRrOsVQLc=; b=c0U4o45POIEwhF4P+vRRksuOb1PPP/LdkhgD5vpEDfxutesM137AhJV8 sBIAs77XhAzqEtWbU+tfH6fGjh0/5tp0gbi35JhD5dopfm7e1Avxe3hJt ViyBNIhzn+Z9jf5Ht3QtYp0su8ZxoikWhQOi48XxKYjhgq6JhCVKPtpgQ M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAACXwklc/5FdJa1ZAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqDd4gai3KCDYNGlEE?= =?us-ascii?q?UgWcLAQEjhEkCF4JrIjQJDQEDAQECAQECbRwMhUoBAQEBAgEaAQgRQwIFCwI?= =?us-ascii?q?BCA4DBAEBAQICCRoDAgICMBQBCAgCBA4FCIJPTIF5CA+rdYEvii4FgQuLNhe?= =?us-ascii?q?BQD+BEYIUfoMeAoE2AQMPAgMqgnKCNSICiVUDCAomC4FKhCkBgViEb4p7XAk?= =?us-ascii?q?ChyiDW4cZIIFpiGqBMoYaigmBDIQai2ECERSBJx84gVZwFTuCbIInFxNtAQi?= =?us-ascii?q?CQopTQTGIYimBBYEfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,516,1539648000"; d="scan'208";a="229954434"
Received: from rcdn-core-9.cisco.com ([173.37.93.145]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 13:55:28 +0000
Received: from XCH-RTP-005.cisco.com (xch-rtp-005.cisco.com [64.101.220.145]) by rcdn-core-9.cisco.com (8.15.2/8.15.2) with ESMTPS id x0ODtRwf003463 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 24 Jan 2019 13:55:28 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-005.cisco.com (64.101.220.145) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 08:55:27 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Thu, 24 Jan 2019 08:55:27 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYA==
Date: Thu, 24 Jan 2019 13:55:26 +0000
Message-ID: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com>
References: <d4b607644516410caa55fbbf9c33ad11@XCH-RTP-013.cisco.com> <CABCOCHSo1Fv3-QWfpNUFHXsZxcWCT=dAWNmekYjs1j=64ndneg@mail.gmail.com> <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com> <20190124.141640.253886322622907272.mbj@tail-f.com>
In-Reply-To: <20190124.141640.253886322622907272.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.145, xch-rtp-005.cisco.com
X-Outbound-Node: rcdn-core-9.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/08afNvJg-eLlEat6jZvZsk6U-pY>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 13:55:35 -0000

PiBGcm9tOiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU0NCj4gDQo+
ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+ID4gSGkgQW5k
eSwNCj4gPg0KPiA+DQo+ID4NCj4gPiBUaGFua3MgdmVyeSBtdWNoIGZvciB0aGUgdGhvcm91Z2gg
WUFORyBEb2N0b3IgcmV2aWV3LiAgIEkgaGF2ZSBpbmNsdWRlZCB0aGUNCj4gYWdyZWVkIHVwb24g
Y29tbWVudHMsIGFuZCB1cGxvYWRlZCB0bzoNCj4gPg0KPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1z
dWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMtMjINCj4gPg0KPiA+IGEgc3VtbWFyeSBvZiB0aGUgY2xh
cmlmaWNhdGlvbnMgbWFkZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4NCj4gPiBMZXQg
bWUga25vdyBpZiB0aGVyZSBhbnl0aGluZyBlbHNlIG5lZWRlZCB0byBjb25jbHVkZSB0aGUgWUFO
RyBkb2N0b3INCj4gPiByZXZpZXcgb2YgdGhpcyBkb2N1bWVudC4NCj4gPg0KPiA+DQo+ID4NCj4g
PiBBbHNvIGFzIHRoZSByZXN1bHQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmSBkaXNjdXNzaW9uIHdp
dGggeW91IGFuZCBNYXJ0aW4sDQo+ID4gd2UgbmVlZCB0byBwZXJmb3JtIHRoZSByZWZpbmVtZW50
IG9mIHRoZSDigJhlcnJvci10YWfigJkgbWFwcGluZyB3aXRoaW4NCj4gPiBib3RoIGRyYWZ0LWll
dGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgU2VjdGlvbg0KPiA+IDcsIGFu
ZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMuICAgRGlyZWN0
bHkNCj4gPiBiZWxvdyBpcyBzb21lIHRleHQgYW5kIHByb3Bvc2VkIGVycm9yLXRhZyBtYXBwaW5n
cyBmb3IgdGhvc2UNCj4gPiBkb2N1bWVudHMuDQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgIG8gIEFu
ICJlcnJvci10YWciIG5vZGUgd2l0aCB0aGUgdmFsdWUgYmVpbmcgYSBzdHJpbmcgdGhhdA0KPiA+
DQo+ID4gICAgICAgIGNvcnJlc3BvbmRzIHRvIGFuIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0
aGUgZXJyb3IuICBUaGlzDQo+ID4NCj4gPiAgICAgICAgImVycm9yLXRhZyIgd2lsbCBjb3JyZXNw
b25kIHRvIHRoZSBlcnJvciBpZGVudGl0aWVzIHdpdGhpbg0KPiA+DQo+ID4gICAgICAgIFtJLUQu
ZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10gc2VjdGlvbg0KPiA+
DQo+ID4gICAgICAgIDIuNC42IGZvciBnZW5lcmFsIHN1YnNjcmlwdGlvbiBlcnJvcnM6DQo+ID4N
Cj4gPg0KPiA+DQo+ID4gICAgICAgICAgIGVycm9yIGlkZW50aXR5ICAgICAgICAgdXNlcyBlcnJv
ci10YWcNCj4gPg0KPiA+ICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0t
LS0tLS0tDQo+ID4NCj4gPiAgICAgICAgICAgZHNjcC11bmF2YWlsYWJsZSAgICAgICBpbnZhbGlk
LXZhbHVlDQo+IA0KPiBPay4gIEJ1dCBpdCBpcyBub3QgY2xlYXIgdG8gbWUgd2hlbiB0aGlzIGVy
cm9yIGlzIGFjdHVhbGx5IHN1cHBvc2VkIHRvIGJlDQo+IGdlbmVyYXRlZD8gIFRoZSBsZWFmIGFu
ZCBpZGVudGl0eSBoYXZlIHRoZSBzYW1lIGlmLWZlYXR1cmUsIHNvIGl0IGlzbid0IGEgc3BlY2lh
bA0KPiBlcnJybyBjb2RlIGZvciAidW5zdXBwb3J0ZWQgbGVhZiIsIHdoaWNoIGlzIGdvb2QhDQo+
IA0KPiBUaGVuIEkgaGF2ZSB0byBhc3N1bWUgaXQgaXMgc3VwcG9zZWQgdG8gYmUgc29tZSBraW5k
IG9mIHJ1bnRpbWUgZXJyb3I/DQoNClllcy4gICAgQSBwdWJsaXNoZXIsIG5vciB0aGUgbmV0d29y
ayB0byB3aGljaCBpcyBjb25uZWN0cyBkb2VzIG5vdCBoYXZlIHRvOg0KKGEpIHN1cHBvcnQgYWxs
IERTQ1AgdmFsdWVzLCBub3IgDQooYikgYWxsb3cgYSBwYXJ0aWN1bGFyIHZhbHVlIHJlcXVlc3Rl
ZCBieSBhIHBhcnRpY3VsYXIgc3Vic2NyaWJlciwNClNvIHRoaXMgY29uZGl0aW9uIGFsbG93cyBh
IHB1Ymxpc2hlciB0byByZWplY3QgYSByZXF1ZXN0IGZvciBhIERTQ1AgdmFsdWUgd2hlcmUgaXMg
a25vd3MgdGhlIHZhbHVlIHdpbGwgbm90IGJlIHJlc3BlY3RlZC4NCiANCj4gVGhpbmtpbmcgc29t
ZSBtb3JlLCB3aGF0IGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBpZiB0aGUgY2xpZW50IG9uIHRoZSBz
YW1lDQo+IHNlc3Npb24gc2VuZHMgZmlyc3QgYW4gZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiB3aXRo
IGRzY3AgNDIsIGFuZCB0aGVuIGFub3RoZXINCj4gZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiB3aXRo
IGRzY3AgMTA/DQoNClRoaXMgd291bGQgYmUgYWxsb3dlZC4gICBUaGUgaW50ZXJlc3RpbmcgcGFy
dCBjb21lcyB3aXRoIGJ1bmRsaW5nIHRoZSBldmVudCByZWNvcmRzLiAgIFRoZSBpbml0aWFsIHZl
cnNpb25zIG9mIGRyYWZ0LWlldGYtbmV0Y29uZi1ub3RpZmljYXRpb24tbWVzc2FnZXMgcmVxdWly
ZWQgdGhhdCBhbGwgZXZlbnQgcmVjb3JkcyBpbiBhIGJ1bmRsZSBoYWQgYSBjb21tb24gZHNjcC4g
IEF0IHRoaXMgcG9pbnQsIHRoYXQgc2VlbXMgb3Zlcmx5IHJlc3RyaWN0aXZlIHRvIHRoZSBtYXJz
aGFsbGluZyBwcm9jZXNzLCBzbyBmb3Igbm93IHRoYXQgcmVxdWlyZW1lbnQgaXMgbm90IGluIHRo
ZSBkb2N1bWVudC4NCg0KPiA+ICAgICAgICAgICBlbmNvZGluZy11bnN1cHBvcnRlZCAgIGludmFs
aWQtdmFsdWUNCj4gDQo+IE9rLiAgQnV0IHRoaXMgaWRlbnRpdHkgZG9lc24ndCBnaXZlIG1vcmUg
aW5mb3JtYXRpb24gdGhhbiB0aGUgc3RhbmRhcmQNCj4gZXJyb3I6DQo+IA0KPiAgIGVycm9yLXRh
ZzogaW52YWxpZC12YWx1ZQ0KPiAgIGVycm9yLXBhdGg6IC9ycGMvZXN0YWJsaXNoLXN1YnNjcmlw
dGlvbi9lbmNvZGluZw0KPiANCj4gDQo+ID4gICAgICAgICAgIGZpbHRlci11bmF2YWlsYWJsZSAg
ICAgaW52YWxpZC12YWx1ZQ0KPiANCj4gVGhpcyBpcyBhICJzdWJzY3JpcHRpb24tdGVybWluYXRl
ZC1yZWFzb24iLCB3aGljaCB3aWxsIG5ldmVyIGJlIHNlbnQgaW4gYW4gcnBjLQ0KPiBlcnJvciwg
YW5kIHRodXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgdG8gYW4gZXJyb3ItdGFnLg0KDQpZZXMsIGZv
cmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KDQo+ID4gICAgICAgICAgZmls
dGVyLXVuc3VwcG9ydGVkICAgICBpbnZhbGlkLXZhbHVlDQo+IA0KPiBPay4gIEJ1dCB0aGlzIGlk
ZW50aXR5IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQo+
IGVycm9yOg0KPiANCj4gICBlcnJvci10YWc6IGludmFsaWQtdmFsdWUNCj4gICBlcnJvci1wYXRo
OiAvcnBjL2VzdGFibGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhwYXRoLWZpbHRlcg0KPiANCj4g
DQo+ID4gICAgICAgICAgIGluc3VmZmljaWVudC1yZXNvdXJjZXMgcmVzb3VyY2UtZGVuaWVkDQo+
IA0KPiANCj4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vucyd0IGdpdmUgbW9yZSBpbmZvcm1h
dGlvbiB0aGFuIHRoZSBzdGFuZGFyZCBlcnJvciBpbg0KPiB0aGUgY2FzZSBvZiBlc3RhYmxpc2gt
c3Vic2NyaXB0aW9uIGFuZCBtb2RpZnktc3Vic2NyaXB0aW9uLg0KPiANCj4gPiAgICAgICAgICAg
bm8tc3VjaC1zdWJzY3JpcHRpb24gICBpbnZhbGlkLXZhbHVlDQo+IA0KPiBPay4gIEJ1dCB0aGlz
IGlkZW50aXR5IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJk
IGVycm9yIGluDQo+IHRoZSBjYXNlIG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5kIG1vZGlm
eS1zdWJzY3JpcHRpb24uDQo+IA0KPiA+ICAgICAgICAgICByZXBsYXktdW5zdXBwb3J0ZWQgICAg
IG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+IA0KPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRv
ZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkIGVycm9yLg0KPiAN
Cj4gPiAgICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQo+IA0K
PiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLXJlYXNvbiIsIHdoaWNoIHdpbGwg
bmV2ZXIgYmUgc2VudCBpbiBhbiBycGMtDQo+IGVycm9yLCBhbmQgdGh1cyBzaG91bGQgbm90IGJl
IG1hcHBlZCB0byBhbiBlcnJvci10YWcuDQoNClllcywgZm9yZ290IHRvIHJlbW92ZSB0aG9zZS4g
IEl0IGlzIG5vdyBvdXQuDQoNCj4gPiAgICAgICAgICAgc3VzcGVuc2lvbi10aW1lb3V0ICAgICBv
cGVyYXRpb24tZmFpbGVkDQo+IA0KPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVk
LXJlYXNvbiIsIHdoaWNoIHdpbGwgbmV2ZXIgYmUgc2VudCBpbiBhbiBycGMtDQo+IGVycm9yLCBh
bmQgdGh1cyBzaG91bGQgbm90IGJlIG1hcHBlZCB0byBhbiBlcnJvci10YWcuDQoNClllcywgZm9y
Z290IHRvIHJlbW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQoNCj4gPiAgICAgICAgICAgdW5z
dXBwb3J0YWJsZS12b2x1bWUgICB0b28tYmlnDQo+IA0KPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlv
bi10ZXJtaW5hdGVkLXJlYXNvbiIsIHdoaWNoIHdpbGwgbmV2ZXIgYmUgc2VudCBpbiBhbiBycGMt
DQo+IGVycm9yLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIG1hcHBlZCB0byBhbiBlcnJvci10YWcu
DQoNClllcywgZm9yZ290IHRvIHJlbW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQoNCj4gPiAg
ICAgICAgT3IgdGhpcyAiZXJyb3ItdGFnIiB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yIGlk
ZW50aXRpZXMNCj4gPg0KPiA+ICAgICAgICB3aXRoaW4gW0ktRC5pZXRmLW5ldGNvbmYteWFuZy1w
dXNoXSBBcHBlbmRpeCBBLjEgZm9yDQo+ID4NCj4gPiAgICAgICAgc3Vic2NyaXB0aW9uIGVycm9y
cyBzcGVjaWZpYyB0byBZQU5HIGRhdGFzdG9yZXM6DQo+ID4NCj4gPg0KPiA+DQo+ID4gICAgICAg
ICAgIGVycm9yIGlkZW50aXR5ICAgICAgICAgICAgICB1c2VzIGVycm9yLXRhZw0KPiA+DQo+ID4g
ICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAtLS0tLS0tLS0tLS0tLQ0KPiA+
DQo+ID4gICAgICAgICAgIGNhbnQtZXhjbHVkZSAgICAgICAgICAgICAgICBvcGVyYXRpb24tbm90
LXN1cHBvcnRlZA0KPiA+DQo+ID4gICAgICAgICAgIGRhdGFzdG9yZS1ub3Qtc3Vic2NyaWJhYmxl
ICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiANCj4gSSB0aGluayB0aGF0IHRoaXMgc2hvdWxk
IGJlIGludmFsaWQtdmFsdWUuDQoNCk9rDQoNCi9FcmljDQoNCj4gPiAgICAgICAgICAgbm8tc3Vj
aC1zdWJzY3JpcHRpb24tcmVzeW5jIGludmFsaWQtdmFsdWUNCj4gDQo+IE9rLCBidXQgYWdhaW4g
dGhlIHZhbHVlIG9mIGhhdmluZyB0aGlzIGlzIHVuY2xlYXIuDQo+IA0KPiA+ICAgICAgICAgICBv
bi1jaGFuZ2UtdW5zdXBwb3J0ZWQgICAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPg0K
PiA+ICAgICAgICAgICBvbi1jaGFuZ2Utc3luYy11bnN1cHBvcnRlZCAgb3BlcmF0aW9uLW5vdC1z
dXBwb3J0ZWQNCj4gPg0KPiA+ICAgICAgICAgICBwZXJpb2QtdW5zdXBwb3J0ZWQgICAgICAgICAg
aW52YWxpZC12YWx1ZQ0KPiA+DQo+ID4gICAgICAgICAgIHVwZGF0ZS10b28tYmlnICAgICAgICAg
ICAgICB0b28tYmlnDQo+ID4NCj4gPiAgICAgICAgICAgc3luYy10b28tYmlnICAgICAgICAgICAg
ICAgIHRvby1iaWcNCj4gPg0KPiA+ICAgICAgICAgICB1bmNoYW5naW5nLXNlbGVjdGlvbiAgICAg
ICAgb3BlcmF0aW9uLWZhaWxlZA0KPiANCj4gDQo+IA0KPiAvbWFydGluDQo+IA0KPiANCj4gDQo+
ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IERvIHlvdSAob3IgYW55b25lIGVsc2UgaW4gdGhp
cyB0aHJlYWQpIGhhdmUgYW55IHN1Z2dlc3Rpb25zIG9uIHRoZQ0KPiA+IHRleHQgb3IgcHJvcG9z
ZWQgbWFwcGluZ3M/ICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBvaywgQWxleCB3aWxsIG5lZWQN
Cj4gPiB0byByZW1vdmUgdGhlIE5FVENPTkYgZXJyb3ItdGFnIHNwZWNpZmljcyBmcm9tDQo+ID4g
ZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaCBTZWN0aW9ucyA0LjQuMSAmIDQuNC4yDQo+ID4N
Cj4gPg0KPiA+DQo+ID4gQWxzbyBSZXNoYWQgd2lsbCBoYXZlIHRvIGRvIHNvbWUgd29yayBiZWNh
dXNlIGhlIGlzIHRoZSBZQU5HIGRvY3RvciBvZg0KPiBuZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90
aWZpY2F0aW9ucywgYW5kIGhlIHdpbGwgd2FudCB0byBpbmNsdWRlIHRoZSBzYW1lDQo+IGluZm9y
bWF0aW9uIHdpdGhpbiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYuDQo+ID4NCj4g
Pg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gRXJpYw0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+
ID4NCj4gPiBGcm9tOiBBbmR5IEJpZXJtYW4gPGFuZHlAeXVtYXdvcmtzLmNvbT4NCj4gPg0KPiA+
IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAyMywgMjAxOSAxMjo0MiBQTQ0KPiA+DQo+ID4gVG86
IEVyaWMgVm9pdCAoZXZvaXQpIDxldm9pdEBjaXNjby5jb20+DQo+ID4NCj4gPiBDYzogTWFydGlu
IEJqb3JrbHVuZCA8bWJqQHRhaWwtZi5jb20+OyB5YW5nLWRvY3RvcnNAaWV0Zi5vcmc7DQo+ID4g
bmV0Y29uZkBpZXRmLm9yZzsNCj4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zLmFsbEBpZXRmLm9yZw0KPiA+DQo+ID4gU3ViamVjdDogUmU6IFt5YW5nLWRvY3Rv
cnNdIFlhbmdkb2N0b3JzIGxhc3QgY2FsbCByZXZpZXcgb2YNCj4gPiBkcmFmdC1pZXRmLW5ldGNv
bmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLTIxDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0K
PiA+DQo+ID4NCj4gPiBPbiBXZWQsIEphbiAyMywgMjAxOSBhdCA0OjM1IEFNIEVyaWMgVm9pdCAo
ZXZvaXQpIDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+ID4gRnJv
bTogTWFydGluIEJqb3JrbHVuZCwgSmFudWFyeSAyMywgMjAxOSAzOjMyIEFNDQo+ID4NCj4gPiA+
DQo+ID4NCj4gPiA+IEhpLA0KPiA+DQo+ID4gPg0KPiA+DQo+ID4gPiAiRXJpYyBWb2l0IChldm9p
dCkiIDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPg0KPiA+ID4gPiBIaSBBbmR5
LA0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4u
ICBNeSByZWFkaW5nIGlzIHRoYXQgaXQgdGFrZXMgdGhlDQo+ID4gPiA+IHRyYW5zcG9ydA0KPiA+
DQo+ID4gPiA+IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFpbmVkIGluDQo+ID4NCj4gPiA+ID4g
ZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucyBzZWN0aW9uIDcs
IGFuZCB0aGVuDQo+ID4NCj4gPiA+ID4gcmVwbGljYXRlcyB0aGF0IGluZm8gd2l0aGluIDEyIHNl
cGFyYXRlIGRlc2NyaXB0aW9uIG9iamVjdHMgb2YgdGhlDQo+ID4NCj4gPiA+ID4gdHJhbnNwb3J0
IGluZGVwZW5kZW50IGlldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLnlhbmcuICBUaGUNCj4g
PiA+ID4gdmFsdWUNCj4gPg0KPiA+ID4gPiB5b3UgYXJlIGFzc2VydGluZyBpcyB0aGF0IFJGQ3Mg
Y29udGFpbmluZyBZQU5HIG1vZGVscyBjb250YWluaW5nDQo+ID4gPiA+IHRoZQ0KPiA+DQo+ID4g
PiA+IHJwYy1zdG10IGhhdmUgdHJhZGl0aW9uYWxseSBkb2N1bWVudCB0aGUgbWFuZGF0b3J5LXRv
LWltcGxlbWVudA0KPiA+DQo+ID4gPiA+ICJlcnJvci10YWciIGZpZWxkIHdpdGhpbiB0aGUgbW9k
ZWwuICBBbmQgcHJlc3VtYWJseSB5b3UgYXJlDQo+ID4gPiA+IGNvbmNlcm5lZA0KPiA+DQo+ID4g
PiA+IHRoYXQgZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gbG9vayBlbHNld2hlcmUgZm9y
IHRoaXMNCj4gPg0KPiA+ID4gPiBpbmZvcm1hdGlvbi4NCj4gPg0KPiA+ID4NCj4gPg0KPiA+ID4g
SSB0aGluayB0aGF0IG1heWJlIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUgaXNzdWVzIGhlcmUuDQo+
ID4NCj4gPiA+DQo+ID4NCj4gPiA+IFRoZSBmaXJzdCBpc3N1ZSBpcyB0aGF0IGZvciBlYWNoIGVy
cm9yIGlkZW50aXR5IGRlZmluZWQsIHRoZXJlIG5lZWRzDQo+ID4gPiB0byBiZSBhDQo+ID4NCj4g
PiA+IG1hcHBpbmcgdG8gdGhlIHByb3RvY29sLXNwZWNpZmljIGVycm9yIGhhbmRsaW5nLiAgQW5k
eSBzdWdnZXN0cyB0aGF0DQo+ID4gPiB0aGlzIGluZm8gaXMNCj4gPg0KPiA+ID4gYWRkZWQgdG8g
dGhpcyBkb2N1bWVudCwgYnV0IGN1cnJlbnRseSB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJs
ZQ0KPiA+ID4gaW4gdGhlDQo+ID4NCj4gPiA+IHByb3Rjb2wtbWFwcGluZyBkb2N1bWVudHMgKG5l
dGNvbmYtbm90aWYgYW5kIHJlc3Rjb25mLW5vdGlmKS4NCj4gPiA+IFBlcnNvbmFsbHksIEkNCj4g
Pg0KPiA+ID4gdGhpbmsgdGhhdCB0aGUgY3VycmVudCBzcGxpdCBvZiB0ZXh0IGJldHdlZW4gZG9j
dW1lbnRzIGlzIGZpbmUuDQo+ID4NCj4gPiA+DQo+ID4NCj4gPiA+IFRoZSBzZWNvbmQgaXNzdWUg
aXMgdGhhdCBjdXJyZW50bHksIGJvdGggbmV0Y29uZi1ub3RpZiBhbmQNCj4gPiA+IHJlc3Rjb25m
LW5vdGlmIHNheQ0KPiA+DQo+ID4gPiB0aGF0ICphbGwqIHRoZXNlIGVycm9ycyB1c2UgdGhlIGVy
cm9yLXRhZyAib3BlcmF0aW9uLWZhaWxlZCIuDQo+ID4gPiBFc3NlbnRpYWxseSBpdCBtZWFucw0K
PiA+DQo+ID4gPiB0aGF0IHdlIGJ5cGFzcyB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gdGhlIHByb3Rv
Y29scy4gIEFzIEFuZHkgcG9pbnRzDQo+ID4gPiBvdXQgYmVsb3csDQo+ID4NCj4gPiA+IHRoZSBl
cnJvciAiaW5zdWZmaWNpZW50LXJlc291cmNlcyIgc2hvdWxkIGJlIG1hcHBlZCB0bw0KPiA+ID4g
InJlc291cmNlLWRlbmllZCIgaW4NCj4gPg0KPiA+ID4gTkVUQ09ORiBhbmQgUkVTVENPTkYgKHRo
ZXkgbWVhbiB0aGUgc2FtZSB0aGluZykuICBTbyBpdCBtaWdodCBtYWtlDQo+ID4gPiBzZW5zZQ0K
PiA+DQo+ID4gPiB0byBjYXJlZnVsbHkgZ28gdGhyb3VnaCB0aGUgbGlzdCBvZiBlcnJvcnMgYW5k
IG1hcCB0aGVtIHRvIHRoZQ0KPiA+ID4gY29ycmVjdCBlcnJvci10YWcNCj4gPg0KPiA+ID4gKGJ1
dCBzcGVjaWZpeSB0aGlzIGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzKS4NCj4gPg0KPiA+DQo+ID4N
Cj4gPiBJIGFtIGNvbXBsZXRlbHkgZ29vZCB3aXRoIHRoaXMuICAgRG9lcyB0aGlzIHdvcmsgZm9y
IHlvdSBBbmR5Pw0KPiA+DQo+ID4NCj4gPg0KPiA+IFRoaXMgaXMgYmV0dGVyLg0KPiA+DQo+ID4g
SSdtIGdsYWQgbm8gb3RoZXIgZHJhZnRzIGFyZSBjcmVhdGluZyB0aGVpciBvd24gZXJyb3IgcmVw
b3J0aW5nIHN5c3RlbSBmb3INCj4gZWFjaCBycGMtc3RtdC4NCj4gPg0KPiA+IFRoaXMgaXMgYSBi
YWQgcHJlY2VkZW50IGFuZCBsaWtlbHkgdG8gYmUgc2tpcHBlZCBpbiBpbXBsZW1lbnRhdGlvbnMu
DQo+ID4NCj4gPg0KPiA+DQo+ID4gRXJpYw0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gL21hcnRpbg0K
PiA+DQo+ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IEFuZHkNCj4gPg0KPiA+DQo+ID4NCj4gPg0K
PiA+DQo+ID4gPg0KPiA+DQo+ID4gPg0KPiA+DQo+ID4gPg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4g
PiA+ID4gSWYgdGhlIFlBTkcgZG9jdG9ycyByZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRl
ZC4gIEEgc2ltaWxhcg0KPiA+ID4gPiB0ZXh0DQo+ID4NCj4gPiA+ID4gY2hhbmdlIHdvdWxkIGJl
IG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4NCj4gPiA+ID4g
WUFORw0KPiA+DQo+ID4gPiA+IFB1c2guICBQZXJzb25hbGx5IEkgZG9u4oCZdCBsaWtlIHRoYXQg
WUFORyBtb2RlbHMgc2hvdWxkIGJlIHJlcXVpcmVkDQo+ID4gPiA+IHRvDQo+ID4NCj4gPiA+ID4g
ZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUgY2hhbmdlIGlmIHlv
dSByZWFsbHkNCj4gPiA+ID4gd2FudA0KPiA+DQo+ID4gPiA+IHRoaXMsIGFuZCBub2JvZHkgZWxz
ZSBvYmplY3RzLg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gT3RoZXIgdGhhbiB0aGF0LCBJ
IGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3BlbiBpc3N1ZXMgaW4gdGhlDQo+ID4gPiA+IFlB
TkcNCj4gPg0KPiA+ID4gPiBEb2N0b3IgcmV2aWV3LiAgRG8geW91IGtub3cgb2YgYW55dGhpbmcg
ZWxzZT8NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IEVyaWMNCj4gPg0KPiA+ID4gPg0KPiA+
DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gRnJvbTogQW5keSBCaWVybWFuLCBKYW51YXJ5IDIxLCAy
MDE5IDI6MjYgUE0NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IEhpLA0KPiA+DQo+ID4gPiA+
DQo+ID4NCj4gPiA+ID4gSSB0aGluayB0aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZl
ZCBieSBpbmNsdWRpbmcgMSBleHRyYQ0KPiA+DQo+ID4gPiA+IHNlbnRlbmNlIGluIGVhY2ggZXJy
b3IgaWRlbnRpdHkuDQo+ID4NCj4gPiA+ID4gSSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVT
VENPTkYgY2VudHJpYyBidXQgdGhvc2UgYXJlIHRoZSBvbmx5DQo+ID4gPiA+IDINCj4gPg0KPiA+
ID4gPiBzdGFuZGFyZCBwcm90b2NvbHMgc3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFnZSBy
aWdodCBub3cuDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiAgICAgICAgSWYgdGhlICdlcnJv
ci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3IgcmVwb3J0aW5nLA0KPiA+DQo+ID4gPiA+ICAg
ICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3QgZXJyb3ItdGFnPicgTVVTVCBiZSB1c2VkLg0K
PiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4NCj4gPiA+ID4NCj4g
Pg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IE9MRDoNCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+
ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+ID4NCj4gPiA+ID4gICAgIGJh
c2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPg0KPiA+ID4gPiAgICAgYmFzZSBt
b2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+DQo+ID4gPiA+ICAgICBiYXNlIHN1YnNjcmlw
dGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+DQo+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+
DQo+ID4gPiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2Vz
IHRvIHN1cHBvcnQgdGhlDQo+ID4NCj4gPiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRp
b24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQgYWxsb2NhdGVkDQo+ID4gPiA+IENQVQ0KPiA+
DQo+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBz
ZXQgb2Ygbm90aWZpY2F0aW9uDQo+ID4NCj4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQo+ID4N
Cj4gPiA+ID4gICB9DQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IE5F
VzoNCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJl
c291cmNlcyB7DQo+ID4NCj4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1l
cnJvcjsNCj4gPg0KPiA+ID4gPiAgICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0K
PiA+DQo+ID4gPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+
DQo+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+DQo+ID4gPiA+ICAgICAgICJUaGUgcHVibGlz
aGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQo+ID4NCj4gPiA+
ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRo
YXQgYWxsb2NhdGVkDQo+ID4gPiA+IENQVQ0KPiA+DQo+ID4gPiA+ICAgICAgICBpcyB0b28gbGlt
aXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+ID4NCj4g
PiA+ID4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMgdXNlZCBp
biBlcnJvcg0KPiA+ID4gPiByZXBvcnRpbmcsDQo+ID4NCj4gPiA+ID4gICAgICAgIHRoZW4gdGhl
IHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1VU1QgYmUgdXNlZC4iOw0KPiA+DQo+ID4gPiA+ICAg
fQ0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBBbmR5DQo+ID4NCj4g
PiA+ID4NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IE9uIEZyaSwgSmFuIDE4LCAyMDE5IGF0
IDExOjUzIEFNIEVyaWMgVm9pdCAoZXZvaXQpDQo+ID4NCj4gPiA+ID4gPG1haWx0bzpldm9pdEBj
aXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3cm90ZToNCj4gPg0KPiA+
ID4gPiBIaSBBbmR5LA0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gVGhhbmtzLiAgSSBoYXZl
IGluY29ycG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVyZSB3YXMgYWdyZWVtZW50LiAgSQ0KPiA+ID4g
PiBoYXZlDQo+ID4NCj4gPiA+ID4gcmVtb3ZlZCB0aGUgaXRlbXMgYmVsb3cgd2hlcmUgeW91IHdl
cmUgb2suDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBSZW1haW5pbmcgYmVsb3cgYXJlIHRo
ZSBvcGVuIGl0ZW1zLCB3aXRoIHJlc3BvbnNlcy4NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+
ID4gPiAgICBTaG91bGQgYmUgY2xlYXIgc29tZXdoZXJlIHRoYXQNCj4gPg0KPiA+ID4gPiA+ID4g
ICAgc3VzcGVuZCBpcyBmb3IgQ1BVIGFuZCBvdGhlciByZXNvdXJjZXMsIGFuZCBOQUNNIG5vdA0K
PiA+ID4gPiA+ID4gY29uc2lkZXJlZA0KPiA+DQo+ID4gPiA+ID4gPiAgICB0byBiZSBhIHJlc291
cmNlLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IElmIE5BQ00gaXMgYWN0aXZlLCBp
dCBuZWVkcyB0byBiZSBmb2xsb3dlZC4gIFRoZSB0ZXh0IHdlIGhhdmUNCj4gPiA+ID4gPiBmb3IN
Cj4gPg0KPiA+ID4gPiA+IE5BQ00gaXMgaW4gU2VjdGlvbiA1LjQuICBEbyB5b3Ugc2VlIHNvbWV0
aGluZyBlbHNlIHNwZWNpZmljIHRvDQo+ID4NCj4gPiA+ID4gPiBzdWJzY3JpcHRpb24gc3VzcGVu
c2lvbiBuZWVkZWQgaGVyZT8gIChNYXliZSBJIGFtIG5vdCBnZXR0aW5nDQo+ID4gPiA+ID4geW91
cg0KPiA+DQo+ID4gPiA+ID4gcG9pbnQuKQ0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+
IE5vIC0tIE9LIHRvIGxlYXZlIE5BQ00gYXMgdGVybWluYXRlLWlmLWxvc3Mtb2YtcmlnaHRzIChJ
cyB0aGVyZQ0KPiA+ID4gPiA+IGFuDQo+ID4NCj4gPiA+ID4gPiBlcnJvciBpZGVudGl0eSBmb3Ig
dGhpcyBldmVudD8pDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBUaGUgaWRlbnRpdHkgd2hp
Y2ggYXBwbGllcyBoZXJlIGlzICJzdHJlYW0tdW5hdmFpbGFibGUiLiAgVGhpcyBpcw0KPiA+ID4g
PiB0aGUNCj4gPg0KPiA+ID4gPiBzYW1lIGlkZW50aXR5IHdoaWNoIHdvdWxkIGJlIHVzZWQgaWYg
YSBzdWJzY3JpYmVyIGhhZCBuZXZlcg0KPiA+ID4gPiBzdWZmaWNpZW50DQo+ID4NCj4gPiA+ID4g
cGVybWlzc2lvbnMgaW4gdGhlIGZpcnN0IHBsYWNlLiAgSSBkb24ndCBiZWxpZXZlIHdlIHdvdWxk
IHdhbnQgdG8NCj4gPg0KPiA+ID4gPiByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8gd2hl
biBOQUNNIHdoZW4gcGVybWlzc2lvbnMgaGF2ZQ0KPiA+ID4gPiBqdXN0DQo+ID4NCj4gPiA+ID4g
YmVlbiBjaGFuZ2VkLg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+IEkzKSBzZWMgMi4x
IHBhcmEgNjoNCj4gPg0KPiA+ID4gPiA+ID4gICAgRXZlbnQgcmVjb3JkcyBNVVNUIE5PVCBiZSBk
ZWxpdmVyZWQgdG8gYSByZWNlaXZlciBpbiBhDQo+ID4gPiA+ID4gPiBkaWZmZXJlbnQNCj4gPg0K
PiA+ID4gPiA+ID4gICAgb3JkZXIgdGhhbiB0aGV5IHdlcmUgcGxhY2VkIG9udG8gYW4gZXZlbnQg
c3RyZWFtLg0KPiA+DQo+ID4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gPiAgIC0tIGRvZXMgdGhp
cyBhcHBseSB0byBzdWJzY3JpcHRpb24tc3RhdGU/IFRoaW5rIG5vdCwgdGhleQ0KPiA+ID4gPiA+
ID4gYXJlIG5vdCBldmVudHMNCj4gPg0KPiA+ID4gPiA+ID4gICAgIHBsYWNlZCBpbiBldmVudCBz
dHJlYW0uDQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gQWdyZWUgdGhhdCB0aGV5IGFy
ZSBub3Qgb24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRoZXkgZG8gbm90DQo+ID4gPiA+ID4gdmlv
bGF0ZQ0KPiA+DQo+ID4gPiA+ID4gdGhpcyByZXF1aXJlbWVudC4NCj4gPg0KPiA+ID4gPiA+DQo+
ID4NCj4gPiA+ID4gPiBBZGRpdGlvbmFsbHkgdGhlcmUgaXMgc3VwcG9ydGluZyB0ZXh0IGluICJT
ZWN0aW9uIDIuNzoNCj4gPiA+ID4gPiBzdWJzY3JpcHRpb24NCj4gPg0KPiA+ID4gPiA+IHN0YXRl
IG5vdGlmaWNhdGlvbnMiLCBpbmNsdWRpbmcuLi4NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+
ID4gPiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChhcyBkZWZpbmVkIGluIHRoaXMgc2Vj
dGlvbikgd2l0aGluDQo+ID4gPiA+ID4gdGhlDQo+ID4NCj4gPiA+ID4gPiBzZXF1ZW5jZSBvZiBu
b3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBhIHBhcnRpY3VsYXIgcmVjZWl2ZXIuIg0KPiA+
DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gICAgIE5lZWQgdG8gYWxsb3cgZW5kZWQgb3Ig
c3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPg0KPiA+ID4gPiA+ID4gICAgIGhlYWQtb2YtbGluZSB3
aGVuZXZlciBzdGF0ZSBjaGFuZ2VzDQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gSSBh
bSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1vZi1s
aW5lLg0KPiA+DQo+ID4gPiA+ID4gQ29uc2lkZXINCj4gPg0KPiA+ID4gPiA+IHRoYXQgaW1wbGVt
ZW50YXRpb24gbWlnaHQgd2FudCB0byBsZXQgdGhlIGV4aXN0aW5nIHF1ZXVlIG9mDQo+ID4gPiA+
ID4gZmlsdGVyZWQNCj4gPg0KPiA+ID4gPiA+IGV2ZW50IHJlY29yZHMgYmUgc2VudCBpZiBpcyBm
aWx0ZXIgY29tcGxleGl0eSBjYXVzaW5nIHRoZSBDUFUgaXNzdWUuDQo+ID4NCj4gPiA+ID4gPiBU
aGF0IGNvdWxkIGJlIGRpZmZlcmVudCB0aGFuIGlmIGl0IGlzIGEgYmFuZHdpZHRoIGlzc3VlIGRy
aXZpbmcNCj4gPiA+ID4gPiB0aGUNCj4gPg0KPiA+ID4gPiA+IHN1c3BlbnNpb24sIGFuZCB5b3Ug
ZGVmaW5pdGVseSB3YW50IHRoZSAnc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCcNCj4gPiA+ID4gPiB0
bw0KPiA+DQo+ID4gPiA+ID4gYmUgcGxhY2VkIGF0IHRoZSBoZWFkIG9mIGxpbmUuDQo+ID4NCj4g
PiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEl0IGlzIHVwIHRvIHRoZSBw
dWJsaXNoZXIgdG8gZGVjaWRlIHdoZW4gdG8gc3RvcCBzZW5kaW5nIGV2ZW50cw0KPiA+ID4gPiA+
IG9uIGENCj4gPg0KPiA+ID4gPiA+IHN1YnNjcmlwdGlvbi4NCj4gPg0KPiA+ID4gPiA+IE9idmlv
dXNseSB0aGUgcHVibGlzaGVyIGNhbm5vdCB3YWl0IHVudGlsIHRoZSBzdWJzY3JpcHRpb24gaXMg
aWRsZS4NCj4gPg0KPiA+ID4gPiA+IFRoZSByZWFzb24gaXQgaXMgZ2V0dGluZyBzdXNwZW5kZWQg
aXMgaXQgaXMgZmFyIGZyb20gaWRsZQ0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IFNv
IGFsc28gdXAgdG8gdGhlIHB1Ymxpc2hlciB3cnQvIHdoYXQgdG8gZG8gd2l0aCBhbnkgZXZlbnRz
IHRoYXQNCj4gPg0KPiA+ID4gPiA+IGhhdmUgbm90IGJlZW4gZGVsaXZlcmVkIHlldCBvbiBhIHN1
YnNjcmlwdGlvbi4gIENvdWxkIGRlbGV0ZQ0KPiA+ID4gPiA+IHRoZW0gb3INCj4gPg0KPiA+ID4g
PiA+IHNhdmUgdGhlbSBmb3Igd2hlbiBtb3JlIGJhbmR3aWR0aCBhdmFpbGFibGUgKGZvciBleGFt
cGxlKQ0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiAg
SXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQgaGVyZT8NCj4gPg0KPiA+ID4gPg0K
PiA+DQo+ID4gPiA+IC4uLg0KPiA+DQo+ID4gPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8g
dGhlIGltcGxlbWVudGF0aW9uIHRvIGRlY2lkZSBpZiBzb21lDQo+ID4NCj4gPiA+ID4gPiB1bi10
cmFuc21pdHRlZCBxdWV1ZSBvZiBldmVudCByZWNvcmRzIHNob3VsZCBiZSBmbHVzaGVkIGFuZA0K
PiA+DQo+ID4gPiA+ID4gcmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlIG1vZGlmaWNhdGlvbi4gIEkg
ZG8gbm90IGV4cGVjdCB0aGlzDQo+ID4gPiA+ID4gd291bGQNCj4gPg0KPiA+ID4gPiA+IHBvcHVs
YXIsIGFzIGEgcmVwbGF5IHN1YnNjcmlwdGlvbiBjb3VsZCBhY2NvbXBsaXNoIHRoaXMgc2FtZQ0K
PiA+DQo+ID4gPiA+ID4gZnVuY3Rpb25hbCBuZWVkLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+
ID4gPiA+IEFncmVlZCB0aGF0IGFuIGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFueSB0aW1l
IGFuZCBpbmNyZW1lbnQNCj4gPiA+ID4gPiB0aGUNCj4gPg0KPiA+ID4gPiA+IGFwcHJvcHJpYXRl
IGNvdW50ZXJzLiBJdCB3aWxsIHRyeSB0byB0byBkbyB0aGlzLCBidXQgbm8NCj4gPiA+ID4gPiBy
ZXF1aXJlbWVudHMNCj4gPg0KPiA+ID4gPiA+IGV4Y2VwdCBtYXliZSBzdWJzY3JpcHRpb24gZXZl
bnRzIGxpa2UgJ3JlcGxheS1jb21wbGV0ZWQnIGNhbm5vdA0KPiA+ID4gPiA+IGJlDQo+ID4NCj4g
PiA+ID4gPiBkcm9wcGVkDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBIYXZlIHB1dCBhIG1p
bm9yIHR3ZWFrIGludG8gU2VjdGlvbiAyLjc6DQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBb
b2xkXSAgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBm
aWx0ZXJlZA0KPiA+ID4gPiBvdXQNCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IFtuZXddIHN1
YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3QgYmUgZHJvcHBlZCBv
cg0KPiA+DQo+ID4gPiA+IGZpbHRlcmVkIG91dA0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4g
Li4uDQo+ID4NCj4gPiA+ID4gPiBUaGlua2luZyBtb3JlIG9uIHlvdXIgcG9pbnQsIGl0IG1pZ2h0
IGJlIHdvcnRoIHR3ZWFraW5nIGEgY291cGxlDQo+ID4NCj4gPiA+ID4gPiB3b3JkcyB0byBhbGxv
dyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVudCBvZg0KPiA+DQo+ID4gPiA+ID4gInN1YnNjcmlw
dGlvbi1zdXNwZW5kZWQiLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ICAgICJTdWJz
Y3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZQ0KPiA+ID4g
PiA+IGlzc3VhbmNlIG9mDQo+ID4NCj4gPiA+ID4gPiAgICB0aGlzDQo+ID4NCj4gPiA+ID4gPiAg
ICBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNlbnQu
Ig0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMg
c3VnZ2VzdGVkIGNoYW5nZT8NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBOb3Qgc3Vy
ZSAtLSBpdCBuZWVkcyB0byBiZSBjbGVhciB0aGF0IHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQgaXMN
Cj4gPiA+ID4gPiB0aGUNCj4gPg0KPiA+ID4gPiA+IGxhc3QgZXZlbnQgc2VudCBiZWZvcmUgc3Vz
cGVuZGluZyBhbmQgc3Vic2NyaXB0aW9uLXJlc3VtZWQgaXMNCj4gPiA+ID4gPiB0aGUNCj4gPg0K
PiA+ID4gPiA+IGZpcnN0IGV2ZW50IHNlbnQgYWZ0ZXIgdHJhbnNpdGlvbiBmcm9tIHN1c3BlbmRl
ZCB0byBhY3RpdmUuDQo+ID4NCj4gPiA+ID4gPiBUaGUgbmV4dCBldmVudCBjb3VsZCBhbHNvIGJl
IHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gSSBk
byB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhlIHRleHQuICBGb3IgU2Vj
dGlvbg0KPiA+ID4gPiAyLjcuNA0KPiA+DQo+ID4gPiA+IHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQg
dGhlIGN1cnJlbnQgdGV4dCBpczoNCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+ICJObyBmdXJ0
aGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbg0KPiA+
ID4gPiByZXN1bWVzDQo+ID4NCj4gPiA+ID4gb3IgaXMgdGVybWluYXRlZC4iDQo+ID4NCj4gPiA+
ID4NCj4gPg0KPiA+ID4gPiBBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3JpcHRpb24tcmVzdW1lZCBz
YXlzIjoNCj4gPg0KPiA+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdlbmVyYXRlZCBh
ZnRlciB0aGUgaXNzdWFuY2Ugb2YgdGhpcw0KPiA+DQo+ID4gPiA+IHN1YnNjcmlwdGlvbiBzdGF0
ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQo+ID4NCj4gPiA+ID4NCj4g
Pg0KPiA+ID4gPiBCYXNlZCBvbiB0aGUgZGlzY3Vzc2lvbiwgSSBjYW4gbWFrZSBpdDoNCj4gPg0K
PiA+ID4gPg0KPiA+DQo+ID4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgYXJlIGFnYWlu
IHBlcm1pdHRlZCB0byBiZSBzZW50IGZvbGxvd2luZw0KPiA+DQo+ID4gPiA+IHRoaXMgc3Vic2Ny
aXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24uIg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4g
PiA+ID4gSXMgdGhpcyBzdWZmaWNpZW50IGZvciB5b3U/DQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+
ID4gPiAuLi4NCj4gPg0KPiA+ID4gPiA+ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQo+
ID4NCj4gPiA+ID4gPiA+ICAgLS0gY29uY2VybiBhYm91dCBhIHN1YnNjcmlwdGlvbi1zcGVjaWZp
YyBlcnJvciByZXBvcnRpbmcNCj4gPiA+ID4gPiA+IHN5c3RlbQ0KPiA+DQo+ID4gPiA+ID4gPiAg
ICAgIG11c3QgbWFrZSBzdXJlIHByb3RvY29sIGVycm9yIHJlcG9ydGluZyBzeXN0ZW0gaXMgdXNl
ZA0KPiA+DQo+ID4gPiA+ID4gPiBjb3JyZWN0bHkNCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+
ID4gPiBZZXMuICBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdpdGggdGhlIGVt
YmVkZGVkDQo+ID4gPiA+ID4gTkVUQ09ORg0KPiA+DQo+ID4gPiA+ID4gYW5kIFJFU1RDT05GIG1l
Y2hhbmlzbXMuICBUaGVyZSBpcyBtdWNoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24NCj4gPiA+ID4g
PiBpbg0KPiA+DQo+ID4gPiA+ID4gdGhlIHRyYW5zcG9ydCBkcmFmdHMgaGVyZS4NCj4gPg0KPiA+
ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+ICAgLS0gVGhlIGVycm9yLXRhZyB2YWx1ZSBuZWVkcyB0
byBiZSBpZGVudGlmaWVkIGZvciBlYWNoICdyZWFzb24nDQo+ID4NCj4gPiA+ID4gPiA+IGlkZW50
aXR5DQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gVGhpcyBpcyBkb25lIGluIHRoZSB0
cmFuc3BvcnQgZHJhZnRzLiAgRS5nLiwgc2VlDQo+ID4NCj4gPiA+ID4gPiBkcmFmdC1pZXRmLW5l
dGNvbmYtbmV0Y29uZi1ldmVudC0NCj4gPg0KPiA+ID4gPiA+IG5vdGlmaWNhdGlvbnMgU2VjdGlv
biA3DQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhpcyBp
cyBhIGdvb2QgaWRlYS4NCj4gPg0KPiA+ID4gPiA+IEVhY2ggZXJyb3IgaWRlbnRpdHkgc2hvdWxk
IHNpbXBseSBzdGF0ZSB0aGUgcmVxdWlyZWQgImVycm9yLXRhZyINCj4gPg0KPiA+ID4gPiA+IHRo
YXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMgaXMgZXhwZWN0ZWQgb2YgcHJv
dG9jb2wNCj4gPg0KPiA+ID4gPiA+IG9wZXJhdGlvbnMgdGhhdCBhcmUgYWRkZWQgdG8gTkVUQ09O
RiBhbmQgUkVTVENPTkYuDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBJbiBkcmFmdC1pZXRm
LW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zLCBzZWN0aW9uIDcsIHRoZQ0KPiA+
DQo+ID4gPiA+IHJlcXVpcmVkICJlcnJvci10YWciIGlzIGlkZW50aWZpZWQgYXMgIm9wZXJhdGlv
bi1mYWlsZWQiLiAgSWYgd2UNCj4gPg0KPiA+ID4gPiBpbnN0ZWFkIHBsYWNlZCB0aGF0ICJlcnJv
ci10YWciIGluZm9ybWF0aW9uIGluIHRoZSBZQU5HIG1vZGVsLA0KPiA+ID4gPiB0aGVuIHdlDQo+
ID4NCj4gPiA+ID4gaGF2ZSB0aWVkIHRoZSBZQU5HIG1vZGVsIHRvIHRoZSBSRVNUQ09ORiBhbmQg
TkVUQ09ORiB0cmFuc3BvcnRzLg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBCb3RoIE5F
VENPTkYgYW5kIFJFU1RDT05GIHVzZSBhIGNvbXBhdGlibGUgZXJyb3IgcmVwb3J0aW5nIGRhdGEN
Cj4gPg0KPiA+ID4gPiA+IHN0cnVjdHVyZS4NCj4gPg0KPiA+ID4gPiA+IFRoZSAiZXJyb3ItdGFn
IiBpcyB1c2VkIGluIGJvdGggb2YgdGhlbS4gIElNTyBjbGllbnQgZGV2ZWxvcGVycw0KPiA+ID4g
PiA+IGRvDQo+ID4NCj4gPiA+ID4gPiBub3Qgd2FudCBhIGRpZmZlcmVudCBzZXQgb2YgZXJyb3Ig
Y29kZXMgZm9yIHRoZSBzYW1lIGVycm9yIGNvbmRpdGlvbnMuDQo+ID4NCj4gPiA+ID4NCj4gPg0K
PiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxz
byByZXF1aXJlcyBhbg0KPiA+DQo+ID4gPiA+ICJlcnJvci10YWciIG5vZGUgb2YgIm9wZXJhdGlv
bi1mYWlsZWQiLiAgU28gd2UgdXNlZCB0aGUgdHJhbnNwb3J0DQo+ID4NCj4gPiA+ID4gZHJhZnRz
IHJhdGhlciB0aGFuIHRoZSBZQU5HIG1vZGVsIHRvIHN1cHBvcnQgdGhlIHNhbWUgZXJyb3IgY29k
ZXMNCj4gPiA+ID4gZm9yDQo+ID4NCj4gPiA+ID4gdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4N
Cj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRyYW5zcG9ydCBkcmFm
dHMgY291bGQgZGVmaW5lIHRoZWlyIG93biBlcnJvcg0KPiA+DQo+ID4gPiA+ID4gaWRlbnRpdGll
cywgd2hpY2ggd291bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGVycm9yLXRhZyB0aGVyZS4NCj4g
Pg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gPiAgICAyLiAgIm1v
ZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8iOiBUaGlzIE1VU1QgYmUNCj4gPiA+
ID4gPiA+IHJldHVybmVkDQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgICB3aXRoIHRoZSBsZWFmICJy
ZWFzb24iIHBvcHVsYXRlZCBpZiBhbiBSUEMgZXJyb3IgcmVhc29uDQo+ID4gPiA+ID4gPiBoYXMg
bm90DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGlu
IHRoZSB0cmFuc3BvcnQgcG9ydGlvbiBvZiBhDQo+ID4gPiA+ID4gPiBmYWlsZWQNCj4gPg0KPiA+
ID4gPiA+ID4gICAgICAgICJtb2RpZnktc3Vic2NyaXB0aW9uIiBSUEMgcmVzcG9uc2UuICBUaGlz
IE1VU1QgYmUgc2VudA0KPiA+ID4gPiA+ID4gaWYNCj4gPg0KPiA+ID4gPiA+ID4gaGludHMNCj4g
Pg0KPiA+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gICAtLSBhbGwgMyBwYXJhZ3JhcGhzIGxp
a2UgdGhpczsgdW5jbGVhciB3aGF0ICJwbGFjZWQgZWxzZXdoZXJlIg0KPiA+DQo+ID4gPiA+ID4g
PiAgICAgICB0ZXh0IG1lYW5zOyBub3QgYXBwcm9wcmlhdGUgZm9yIE1VU1Q7DQo+ID4NCj4gPiA+
ID4gPg0KPiA+DQo+ID4gPiA+ID4gSW5zdGVhZCBvZiAicGxhY2VkIGVsc2V3aGVyZSIsIGhvdyBh
Ym91dDogInBsYWNlZCBpbg0KPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+DQo+ID4gPiA+ID4g
dHJhbnNwb3J0IGRvY3VtZW50IGRlZmluZWQgb2JqZWN0Ii4gIFdvdWxkIHRoaXMgYmUgc3VmZmlj
aWVudD8NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBObyAtLSBORVRDT05GIGFuZCBS
RVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciByZXBvcnRpbmcuDQo+ID4NCj4gPiA+ID4g
PiBUaGUgc2VydmVyIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRpbmcgbXVzdCBi
ZSBkb2N1bWVudGVkLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEkgYWdyZWUgd2l0
aCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoOg0KPiA+DQo+ID4gPiA+ID4gICAtIGVhY2ggb3BlcmF0
aW9uIE1VU1QgaWRlbnRpZnkgdGhlIGVycm9yLXRhZ3MgdGhhdCBhcmUNCj4gPiA+ID4gPiBleHBl
Y3RlZCBmb3INCj4gPg0KPiA+ID4gPiA+ICAgICB2YXJpb3VzIGVycm9yIGNvbmRpdGlvbnMgKHN1
Y2ggcyBpcyBkb25lIGluIFJGQyA2MjQxKQ0KPiA+DQo+ID4gPiA+ID4gICAtIHRoZSBzZXJ2ZXIg
TVVTVCByZXR1cm4gdGhlIHNwZWNpZmllZCBlcnJvci10YWdzLiBJZiBhDQo+ID4gPiA+ID4gY29u
ZGl0aW9uIG5vdA0KPiA+DQo+ID4gPiA+ID4gICAtIGV4cGxpY2l0bHkNCj4gPg0KPiA+ID4gPiA+
ICAgICBkZWZpbmVkIHRoZW4gdGhlIHNlcnZlciBNVVNUIHBpY2sgdGhlIGFwcHJvcHJpYXRlIGVy
cm9yLXRhZw0KPiA+ID4gPiA+IGZyb20gUkZDDQo+ID4NCj4gPiA+ID4gPiAgICAgNjI0MQ0KPiA+
DQo+ID4gPiA+ID4gIC0gdGhlIHNlcnZlciBNQVkgaW5jbHVkZSB0aGUgc3BlY2lmaWVkIHJjOnlh
bmctZGF0YSBpbiB0aGUNCj4gPg0KPiA+ID4gPiA+IDxlcnJvci1pbmZvPg0KPiA+DQo+ID4gPiA+
ID4gIC0gZGF0YQ0KPiA+DQo+ID4gPiA+ID4gc3RydWN0dXJlDQo+ID4NCj4gPiA+ID4gPiAgLSB0
aGUgc2VydmVyIE1VU1QgdXNlIHRoZSBhcHByb3ByaWF0ZSByYzp5YW5nLWRhdGEgdG8gcmVwb3J0
DQo+ID4gPiA+ID4gaGludHMNCj4gPg0KPiA+ID4gPiA+ICAtIGZvciBwcm90b2NvbHMgb3RoZXIg
dGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhleSBjYW4gbWFwDQo+ID4NCj4gPiA+ID4gPiBl
cnJvci10YWcNCj4gPg0KPiA+ID4gPiA+ICAtIG9yDQo+ID4NCj4gPiA+ID4gPiBpZ25vcmUgaXQs
DQo+ID4NCj4gPiA+ID4gPiAgICBidXQgdGhlIGRvY3VtZW50IGRlZmluaW5nIHRoZSBwcm90b2Nv
bCBvcGVyYXRpb24gTVVTVCBwcm92aWRlDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiBGdW5j
dGlvbmFsbHksIGV2ZXJ5dGhpbmcgeW91IGFzayBmb3IgaXMgZnVsbHkgY292ZXJlZCB3aGVuIHlv
dQ0KPiA+ID4gPiBpbmNsdWRlDQo+ID4NCj4gPiA+ID4gY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRj
b25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucyAoc2VjdGlvbg0KPiA+ID4gPiA3KQ0KPiA+
DQo+ID4gPiA+IGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgKHNlY3Rpb24g
My4zKS4NCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IE15IHJlYWQgb2YgdGhlIGlzc3VlIGlz
IHRoYXQgeW91IGJlbGlldmUgImVycm9yLXRhZyIgbXVzdCBiZQ0KPiA+ID4gPiBzcGVjaWZpZWQN
Cj4gPg0KPiA+ID4gPiBpbiB0aGUgWUFORyBtb2RlbC4gIEkgYmVsaWV2ZSB0aGF0ICJlcnJvci10
YWciIHNob3VsZG4ndCBiZSBpbiB0aGUNCj4gPg0KPiA+ID4gPiBZQU5HIG1vZGVsIGJlY2F1c2Ug
dGhhdCB3b3VsZCB0aWUgdGhlIG1vZGVsIHRvIGEgdHJhbnNwb3J0IHR5cGUuDQo+ID4NCj4gPiA+
ID4NCj4gPg0KPiA+ID4gPiBBbnkgdGhvdWdodHMgb24gaG93IHdlIG1pZ2h0IGNsb3NlIHRoaXM/
ICBJZiBhYnNvbHV0ZWx5IHJlcXVpcmVkIEkNCj4gPg0KPiA+ID4gPiBjb3VsZCBwbGFjZSBhIG5l
dyBjb21tZW50IGxpbmUgaW4gdGhlIFlBTkcgbW9kZWwgdW5kZXINCj4gPg0KPiA+ID4gPiAvKiBJ
ZGVudGl0aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlvbiBlcnJvcnMgKi8NCj4gPg0KPiA+ID4g
Pg0KPiA+DQo+ID4gPiA+IFRoZSBjb21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlOg0KPiA+
DQo+ID4gPiA+IC8qIFdoZW4gdXNlZCB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GIFJQQ3M6DQo+
ID4NCj4gPiA+ID4gICAgICJlcnJvci10eXBlIiBub2RlIHRvIGJlIHVzZWQgaXMgImFwcGxpY2F0
aW9uIg0KPiA+DQo+ID4gPiA+ICAgICAgImVycm9yLXRhZyIgbXVzdCBiZSAib3BlcmF0aW9uLWZh
aWxlZCIuICAqLw0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gVGhpcyBzZWVtcyBpbmNvbmdy
dW91cy4gIEp1c3QgdGhyb3dpbmcgaXQgb3V0IGFzIGEgc3VnZ2VzdGlvbi4NCj4gPg0KPiA+ID4g
Pg0KPiA+DQo+ID4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSAtdjIxIHdvcmRpbmcgcmVzdWx0cyBm
cm9tIHRoZSBhdHRlbXB0ZWQNCj4gPiA+ID4gPiBiYWxhbmNpbmcNCj4gPg0KPiA+ID4gPiA+IHRo
ZSBXRyByZXF1ZXN0cyBmb3I6DQo+ID4NCj4gPiA+ID4gPiAqIG1lcmdpbmcgd2l0aCB0cmFuc3Bv
cnQgcHJvdG9jb2wgZXJyb3IgbWVjaGFuaXNtcw0KPiA+DQo+ID4gPiA+ID4gKiBXRyBsZWFkZXJz
aGlwIGd1aWRhbmNlIHRvIHByb3ZpZGUgcmVxdWlyZW1lbnRzIGZvciB0cmFuc3BvcnQNCj4gPg0K
PiA+ID4gPiA+IGRvY3VtZW50cw0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gICAg
ICBPbmx5IDMgZmllbGRzIHNlZW0NCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgdG8gYmUgcmVsZXZh
bnQgKGVycm9yLXRhZywgZXJyb3ItYXBwLXRhZywgZXJyb3ItaW5mbykuDQo+ID4NCj4gPiA+ID4g
PiA+ICAgICAgIFByb3Rjb2wgb3BlcmF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gZG9jdW1lbnQgc2Vy
dmVyDQo+ID4gPiA+ID4gPiByZXF1aXJlbWVudHMNCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgZm9y
IHRoZXNlIDMgZmllbGRzLCBpZiBhcHBsaWNhYmxlLiAgT25seSB0aGUgZXJyb3ItdGFnDQo+ID4N
Cj4gPiA+ID4gPiA+ICAgICAgIGlzIG1hbmRhdG9yeS10by11c2UuDQo+ID4NCj4gPiA+ID4gPg0K
PiA+DQo+ID4gPiA+ID4gSG9wZWZ1bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1ZmZpY2llbnRseSB3
aGVuIHRoaXMgZG9jdW1lbnQgaXMNCj4gPg0KPiA+ID4gPiA+IGNvdXBsZWQgd2l0aCB0aGUgTkVU
Q09ORiBhbmQgUkVTVENPTkYgTm90aWYgdHJhbnNwb3J0IGRvY3VtZW50cy4NCj4gPg0KPiA+ID4g
PiA+IEZvciBvdGhlciB0cmFuc3BvcnRzLCB0aGUgdGFncyB5b3UgaWRlbnRpZnkgYWJvdXQgd291
bGQgbm90IGJlDQo+ID4NCj4gPiA+ID4gPiBhcHBsaWNhYmxlLg0KPiA+DQo+ID4gPiA+ID4NCj4g
Pg0KPiA+ID4gPiA+ID4gICAtLSB0aGUgZXJyb3IgYXNzaWdubWVudHMgYXJlIGV4dHJlbWVseSBz
cGVjaWZpYy4gZS5nLiwgaXQgaXMNCj4gPiA+ID4gPiA+IG5vdA0KPiA+DQo+ID4gPiA+ID4gPiAg
ICAgIHBvc3NpYmxlIGZvciA8a2lsbC1zdWJzY3JpcHRpb24+IHRvIGZhaWwgd2l0aCBhbg0KPiA+
DQo+ID4gPiA+ID4gPiAgICAgICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gPg0K
PiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBUaGlzIGlzIHRoZSBpbnRlbnQgb2YgdGhlIGJhc2Ug
c3BlY2lmaWNhdGlvbiwgZS5nLiwgd2UgZG9uJ3QNCj4gPiA+ID4gPiBiZWxpZXZlDQo+ID4NCj4g
PiA+ID4gPiBhDQo+ID4NCj4gPiA+ID4gPiBraWxsLQ0KPiA+DQo+ID4gPiA+ID4gc3Vic2NyaXB0
aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlYXNvbi4NCj4g
PiA+ID4gPiBCdXQNCj4gPg0KPiA+ID4gPiA+IHZlbmRvcnMgbWlnaHQgZGVzaXJlIG1vcmUgc3Bl
Y2lmaWNpdHkuICBBcyBhIHJlc3VsdCBpcyBjZXJ0YWlubHkNCj4gPiA+ID4gPiBvaw0KPiA+DQo+
ID4gPiA+ID4gZm9yIHZlbmRvciBpbXBsZW1lbnRhdGlvbnMgdG8gYWRkIG5ldyBlcnJvciBpZGVu
dGl0aWVzLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IElNTyBhbnl0aGluZyBjYW4g
ZmFpbCBmb3IgaW5zdWZmaWNpZW50IHJlc291cmNlcy4gVGhhdCBpcyB2ZXJ5DQo+ID4NCj4gPiA+
ID4gPiBpbXBsZW1lbnRhdGlvbi0NCj4gPg0KPiA+ID4gPiA+IHNwZWNpZmljLg0KPiA+DQo+ID4g
PiA+DQo+ID4NCj4gPiA+ID4gSW5zdGVhZCBvZiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBJIHdv
dWxkIGNhbGwgaXQgYXBwbGljYXRpb24NCj4gPg0KPiA+ID4gPiBzcGVjaWZpYy4gIFJpZ2h0IG5v
dyB3ZSBkb24ndCBoYXZlIGEgY2F0Y2gtYWxsIGVycm9yLWlkZW50aXR5IG9mDQo+ID4NCj4gPiA+
ID4gJ290aGVyLWVycm9yJy4gIFdlIHByZWZlcnJlZCB0aGF0IGVycm9yIGNvbmRpdGlvbnMgYmV5
b25kIHRoZQ0KPiA+ID4gPiBjdXJyZW50DQo+ID4NCj4gPiA+ID4gb25lcyBsaXN0ZWQgY291bGQg
YmUgaW5jbHVkZWQgYnkgdmVuZG9ycyBhcyBuZWVkZWQuICBGdXJ0aGVyDQo+ID4NCj4gPiA+ID4g
ZGVwbG95bWVudCBleHBlcmllbmNlIGNvdWxkIHJlc3VsdCBpbiBuZXcgZXJyb3IgaWRlbnRpdGll
cw0KPiA+ID4gPiBzdXJmYWNpbmcNCj4gPg0KPiA+ID4gPiBmb3Igc3RhbmRhcmRpemF0aW9uIHNo
b3VsZCB0aGlzIGRyYWZ0IGNhdGNoIG9uLg0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+
ICAgICAgRG8gbm90IGFncmVlIHRoYXQgc2NvcGluZyBlYWNoDQo+ID4NCj4gPiA+ID4gPiA+ICAg
ICAgaWRlbnRpdHkgdG8gc3BlY2lmaWMgUlBDIG9wZXJhdGlvbnMgaXMgYSBnb29kIGlkZWEuDQo+
ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gVGhpcyBsZXZlbCBvZiBzcGVjaWZpY2l0eSB3
YXMgbm90IHRoZSBhdXRob3IncyBvcmlnaW5hbCBwbGFucy4NCj4gPiA+ID4gPiBOb3INCj4gPg0K
PiA+ID4gPiA+IHdhcyB0aGlzIGxldmVsIG9mIHNwZWNpZmljaXR5IHBhcnQgb2YgZWFybGllciBk
cmFmdCB2ZXJzaW9ucyB1cA0KPiA+DQo+ID4gPiA+ID4gdGhyb3VnaCAtdjA4LiAgSG93ZXZlciBt
ZW1iZXJzIG9mIHRoZSBXRyBtYWRlIGl0IGNsZWFyIHRoYXQgc3VjaA0KPiA+DQo+ID4gPiA+ID4g
c3BlY2lmaWNpdHkgd2FzIG5lY2Vzc2FyeSBmb3IgZHJhZnQgcHJvZ3Jlc3Npb24uDQo+ID4NCj4g
PiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gPiAgIC0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBh
cmFtZXRlcnMgcmVwb3J0ZWQgZm9yDQo+ID4gPiA+ID4gPiBjb25maWd1cmVkDQo+ID4NCj4gPiA+
ID4gPiA+ICAgICAgc3Vic2NyaXB0aW9ucyB3aGVuIDxlZGl0LWNvbmZpZz4gaXMgdGhlIFJQQyB0
aGF0IGhhcyB0aGUgZXJyb3I/DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgSG93IGFyZSB0aGUgeWFu
Zy1kYXRhIHN0cnVjdHMgdXNlZCBmb3IgZWRpdC1jb25maWcgb3IgY29tbWl0DQo+IGVycm9ycz8N
Cj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBOb25lIG9mIHRoZXNlIHlhbmctZGF0YSBz
dHJ1Y3R1cmVzIGFyZSBzcGVjaWZpZWQgZm9yIHVzZSB3aXRoDQo+ID4NCj4gPiA+ID4gPiA8ZWRp
dC1jb25maWc+IG9wZXJhdGlvbnMuICBGb3IgPGVkaXQtY29uZmlnPiwgdGhlIGNoYW5nZSB0byBh
DQo+ID4NCj4gPiA+ID4gPiBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiB3b3VsZCBiZSB3cml0dGVu
IHRvIHRoZSBkYXRhc3RvcmUgaWYgaXQNCj4gPiA+ID4gPiB3ZXJlDQo+ID4NCj4gPiA+ID4gPiBz
ZW1hbnRpY2FsbHkgdmFsaWQuICBBdCB0aGlzIHBvaW50IHRoZSBzdWJzY3JpcHRpb24gZW50ZXJz
IHRoZQ0KPiA+DQo+ID4gPiA+ID4gW2V2YWx1YXRlXSBwb2ludHMgb2YgRmlndXJlIDguICBJc3N1
ZXMgZnJvbSB0aGlzIHBvaW50IG91dCB3b3VsZA0KPiA+ID4gPiA+IGJlDQo+ID4NCj4gPiA+ID4g
PiByZXBvcnRlZCB3aXRoIGEgdmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xP
Ry4NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBTbyBob3cgYXJlIGhpbnRzIHJlcG9y
dGVkIGZvciBjb25maWd1cmVkIHN1YnNjcmlwdGlvbnM/DQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+
ID4gPiBUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJlcXVpcmVz
IHRoaXMuICBBbg0KPiA+DQo+ID4gPiA+IGltcGxlbWVudGF0aW9uIGNvdWxkIGNob29zZSB0byBw
bGFjZSB0aGVzZSBpbiBzb21lIGZvcm0gb2YgU1lTTE9HLg0KPiA+DQo+ID4gPiA+IC4uLg0KPiA+
DQo+ID4gPiA+ID4gPiBJNikgc2VjIDIuNSwgcGFyYSAzOg0KPiA+DQo+ID4gPiA+ID4gPg0KPiA+
DQo+ID4gPiA+ID4gPiAgICBPbiBhIHJlY2VpdmVyIG9mIGENCj4gPg0KPiA+ID4gPiA+ID4gICAg
Y29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9u
cw0KPiA+ID4gPiA+ID4gaXMNCj4gPg0KPiA+ID4gPiA+ID4gICAgb3B0aW9uYWwgZXhjZXB0IHdo
ZXJlIHJlcGxheWluZyBtaXNzZWQgZXZlbnQgcmVjb3JkcyBpcyByZXF1aXJlZC4NCj4gPg0KPiA+
ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gICAtLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0IGlu
IDEuMzoNCj4gPg0KPiA+ID4gPiA+ID4gICAgICBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gbWl4aW5n
LWFuZC1tYXRjaGluZyBvZiBkeW5hbWljIGFuZA0KPiA+ID4gPiA+ID4gY29uZmlndXJlZA0KPiA+
DQo+ID4gPiA+ID4gPiAgICAgIG9wZXJhdGlvbnMgb24gYSBzaW5nbGUgc3Vic2NyaXB0aW9uLiAg
U3BlY2lmaWNhbGx5LCBhDQo+ID4gPiA+ID4gPiBjb25maWd1cmVkDQo+ID4NCj4gPiA+ID4gPiA+
ICAgLS0gY2xhcmlmeSB0aGUgcmVjZWl2ZXIgbWF5IGhhdmUgbXVsdGlwbGUgc3Vic2NyaXB0aW9u
cyBoZXJlDQo+ID4NCj4gPiA+ID4gPiA+ICAgLS0gbm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVy
ZSByZXBsYXlpbmcuLi4iIHRleHQgbWVhbnMNCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4g
PiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyB0d2VhazoNCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4g
PiA+ID4gPiAiT24gYSByZWNlaXZlciBvZiBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBw
b3J0IGZvciBkeW5hbWljDQo+ID4NCj4gPiA+ID4gPiBzdWJzY3JpcHRpb25zIGlzIG9wdGlvbmFs
LiAgSG93ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkIGV2ZW50DQo+ID4NCj4gPiA+ID4gPiByZWNv
cmRzIGlzIHJlcXVpcmVkIGZvciBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZv
cg0KPiA+DQo+ID4gPiA+ID4gZHluYW1pYyBzdWJzY3JpcHRpb24gaXMgaGlnaGx5IHJlY29tbWVu
ZGVkLiAgSW4gdGhpcyBjYXNlLCBhDQo+ID4NCj4gPiA+ID4gPiBzZXBhcmF0ZSBkeW5hbWljIHN1
YnNjcmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gcmV0cmFuc21pdA0KPiA+ID4gPiA+IHRo
ZQ0KPiA+DQo+ID4gPiA+ID4gbWlzc2luZyBldmVudCByZWNvcmRzLiINCj4gPg0KPiA+ID4gPiA+
DQo+ID4NCj4gPiA+ID4gPiBPSw0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gQ2hhbmdlIG1h
ZGUuDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gSTcpIGxlYWYgc3RyZWFtLXhwYXRo
LWZpbHRlcjogW211bHRpcGxlIHVzZXNdDQo+ID4NCj4gPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4g
PiA+ICAgICAgICAgICAgVGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dp
bmcgWFBhdGggY29udGV4dDoNCj4gPg0KPiA+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+ID4gICAg
ICAgICAgICAgIG8gICBUaGUgc2V0IG9mIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaXMgdGhlIHNl
dCBvZiBwcmVmaXgNCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICBhbmQgbmFtZXNw
YWNlIHBhaXJzIGZvciBhbGwgWUFORyBtb2R1bGVzDQo+ID4gPiA+ID4gPiBpbXBsZW1lbnRlZA0K
PiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRo
ZSBwcmVmaXggaXMgdGhlIFlBTkcNCj4gPiA+ID4gPiA+IG1vZHVsZQ0KPiA+DQo+ID4gPiA+ID4g
PiAgICAgICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVmaW5lZCBi
eSB0aGUNCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJyBzdGF0
ZW1lbnQgaW4gdGhlIFlBTkcgbW9kdWxlLg0KPiA+DQo+ID4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+
ID4gPiAgIC0tIFRoaXMgcHJlZml4IHByb2Nlc3NpbmcgaXMgbm90IGRvbmUgYW55d2hlcmUgZWxz
ZSBpbg0KPiA+ID4gPiA+ID4gTkVUQ09ORg0KPiA+DQo+ID4gPiA+ID4gPiAgICAgIG9yIFJFU1RD
T05GLiAgSU1PIGEgYmFkIHByZWNlZGVudC4gIE9ubHkgdGhlIFhNTCBwcmVmaXhlcw0KPiA+DQo+
ID4gPiA+ID4gPiAgICAgIHNob3VsZCBiZSByZXF1aXJlZCBmb3IgcHJvY2Vzc2luZyBvZiBYTUwg
ZW5jb2RpbmcuICBZQU5HDQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgbW9kdWxlIHByZWZpeGVzIGFy
ZSBub3QgcmVxdWlyZWQgdG8gYmUgdW5pcXVlLCB1bmxpa2UNCj4gPg0KPiA+ID4gPiA+ID4gICAg
ICB0aGUgcHJlZml4IG1hcHBpbmdzIGluIFhNTA0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4g
PiA+IFRoaXMgdGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9mIHRoZSAi
eHBhdGgNCj4gPg0KPiA+ID4gPiA+IGV4cHJlc3Npb25zIGluIEpTT04iDQo+ID4NCj4gPiA+ID4g
PiB0aHJlYWQgbGFzdCBPY3RvYmVyIGluIE5FVE1PRC4NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4g
PiA+ID4gPiBJIGFtIGhhcHB5IHRvIGluY29ycG9yYXRlIHdoYXRldmVyIHRleHQgaXMgYXBwcm9w
cmlhdGUuICBJIHdhcw0KPiA+DQo+ID4gPiA+ID4gaG9waW5nIHRoYXQgdGhlIHN1Z2dlc3RlZCB0
ZXh0IHdhcyBzdWZmaWNpZW50IGZvciBub3cuICBLZW50IGhhcw0KPiA+DQo+ID4gPiA+ID4gYWxy
ZWFkeSBpbmNvcnBvcmF0ZWQgdGhpcyBhcyBhbiBpc3N1ZSBmb3IgeWFuZy1uZXh0DQo+ID4NCj4g
PiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUN
Cj4gPg0KPiA+ID4gPiA+IFNvIGhvcGVmdWxseSB0aGVyZSBpcyBubyBmaW5hbCBwcmVjZWRlbnQg
YmVpbmcgY2xhaW1lZC4NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBJIGRvIG5vdCBh
Z3JlZSB0aGF0IHRoaXMgWUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBhIG5ldyB3YXkgdG8NCj4g
Pg0KPiA+ID4gPiA+IGVuY29kZSBYUGF0aCBpbnRvIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMuIFRo
aXMgd2lsbCByZXF1aXJlDQo+ID4NCj4gPiA+ID4gPiBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHNl
cnZlciBpbXBsZW1lbnRhdGlvbnMuICBZQU5HIG1vZHVsZQ0KPiA+ID4gPiA+IHByZWZpeGVzDQo+
ID4NCj4gPiA+ID4gPiBhcmUgbm90IGV2ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVlIHNvIHRoZSBz
ZXQgb2YgcHJlZml4ZXMgdXNlZA0KPiA+ID4gPiA+IGJ5DQo+ID4NCj4gPiA+ID4gPiB0aGUgc2Vy
dmVyIGluIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMgbWF5IGJlIGRpZmZlcmVudCwgc2luY2UgaXQN
Cj4gPiA+ID4gPiBtdXN0DQo+ID4NCj4gPiA+ID4gPiBiZSB1bmlxdWUuDQo+ID4NCj4gPiA+ID4N
Cj4gPg0KPiA+ID4gPiBTZWUgbmV4dCBub3RlDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+
ID4gICAtLSBOTURBIGFsbG93cyB0aGUgc2FtZSBtb2R1bGUgdG8gYXBwZWFyIGluIG11bHRpcGxl
DQo+ID4gPiA+ID4gPiBtb2R1bGUtc2V0cw0KPiA+DQo+ID4gPiA+ID4gPiAgICAgIGFuZCBkaWZm
ZXJlbnQgaW4gZWFjaCBkYXRhc3RvcmUuIFRoaXMgdGV4dCBhYm91dA0KPiA+ID4gPiA+ID4gImlt
cGxlbWVudGVkIGJ5DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgdGhlIHNlcnZlciIgZG9lcyBub3Qg
d29yayBmb3IgTk1EQQ0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEkgYW0gaGFwcHkg
dG8gYWRvcHQgd2hhdGV2ZXIgdGV4dCBtZWV0cyBZQU5HIGRvY3RvciBhcHByb3ZhbC4NCj4gPiA+
ID4gPiBDYW4NCj4gPg0KPiA+ID4gPiA+IHlvdSBzdWdnZXN0Pw0KPiA+DQo+ID4gPiA+ID4NCj4g
Pg0KPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBSZW1vdmUgYWxsIHRleHQgYWJvdXQgWUFORyBw
cmVmaXhlcyBhbmQgY29udGludWUgdXNpbmcgWE1MDQo+ID4gPiA+ID4gZW5jb2RpbmcNCj4gPg0K
PiA+ID4gPiA+IHdpdGhvdXQgbW9kaWZpY2F0aW9uDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4g
PiBBcyBhIGRpZmZlcmVudCBZQU5HIGRvY3RvciBoYXMgcmVxdWlyZWQgdGhlIGN1cnJlbnQgdGV4
dA0KPiA+ID4gPiBtb2RpZmljYXRpb24sDQo+ID4NCj4gPiA+ID4gSSBiZWxpZXZlIHRoaXMgaXMg
YSBibG9ja2VyLiAgV2hhdCBpcyB0aGUgcHJvY2VzcyBmb3IgWUFORyBtb2RlbA0KPiA+DQo+ID4g
PiA+IHJldmlld3MgaW4gc3VjaCBhIGNhc2UuICBJIGFtIGhhcHB5IHRvIGFjY2VwdCB3aGF0ZXZl
ciBoZXJlLiAgQW55DQo+ID4NCj4gPiA+ID4gc3VnZ2VzdGlvbnMgb24gbmV4dCBzdGVwcz8NCj4g
Pg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IC4uLg0KPiA+DQo+ID4gPiA+ID4gPiAgIC0tIHRoZXJl
IHNob3VsZCBiZSBhbiBleGFtcGxlIG9mIGEgY29uZmlndXJhYmxlIGVuY29kaW5nDQo+ID4NCj4g
PiA+ID4gPiA+IHByb3ZpZGVkDQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gSSBhbSBo
YXBweSB0byBlbmhhbmNlIHRoZSBkZWZpbml0aW9uIFlBTkcgbW9kZWwncyBpZGVudGl0eQ0KPiA+
DQo+ID4gPiA+ID4gZGVmaW5pdGlvbiBvZiAiY29uZmlndXJhYmxlLWVuY29kaW5nIi4gIEkgY291
bGQgZG8gdGhpcyBieQ0KPiA+ID4gPiA+IGFkZGluZw0KPiA+DQo+ID4gPiA+ID4gdGhlIGZvbGxv
d2luZyBhZGRpdGlvbmFsIHRleHQgdG8gdGhlIGRlc2NyaXB0aW9uOiAiQW4gZXhhbXBsZSBvZg0K
PiA+ID4gPiA+IGENCj4gPg0KPiA+ID4gPiA+IGNvbmZpZ3VyYWJsZSBlbmNvZGluZyBtaWdodCBi
ZSBhIG5ldyBpZGVudGl0eSBzdWNoIGFzICdlbmNvZGUtY2JvcicuDQo+ID4NCj4gPiA+ID4gPiBT
dWNoIGFuIGlkZW50aXR5IGNvdWxkIHVzZQ0KPiA+DQo+ID4gPiA+ID4gJ2NvbmZpZ3VyYWJsZS0N
Cj4gPg0KPiA+ID4gPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRoaXMgd291bGQgYWxsb3cg
YSBkeW5hbWljIHN1YnNjcmlwdGlvbg0KPiA+DQo+ID4gPiA+ID4gZW5jb2RlZCBpbiBKU09OIFtS
RkMtODI1OV0gdG8gcmVxdWVzdCBub3RpZmljYXRpb24gbWVzc2FnZXMgYmUNCj4gPg0KPiA+ID4g
PiA+IGVuY29kZWQgdmlhIENCT1IgW1JGQy0gNzA0OV0uICBGdXJ0aGVyIGRldGFpbHMgZm9yIGFu
eSBzcGVjaWZpYw0KPiA+DQo+ID4gPiA+ID4gY29uZmlndXJhYmxlIGVuY29kaW5nIHdvdWxkIGJl
IGV4cGxvcmVkIGluIGEgdHJhbnNwb3J0IGRvY3VtZW50DQo+ID4NCj4gPiA+ID4gPiBiYXNlZCBv
biB0aGlzIHNwZWNpZmljYXRpb24uIiAgRG9lcyB0aGlzIG1lZXQgeW91ciBhc2s/DQo+ID4NCj4g
PiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IE9LDQo+ID4NCj4gPiA+ID4N
Cj4gPg0KPiA+ID4gPiBBZGRlZA0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+IEkxMSkg
ZXh0ZW5zaW9uIHN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gew0KPiA+DQo+ID4gPiA+
ID4gPg0KPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgVGhpcyBzdGF0ZW1lbnQgaXMgbm90IGZvciB1
c2UNCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgIG91dHNpZGUgb2YgdGhpcyBZQU5HIG1vZHVsZS4i
Ow0KPiA+DQo+ID4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gPiAgIC0tIHRoaXMgdGV4dCBzaG91
bGQgYmUgcmVtb3ZlZC4gVGhlcmUgaXMgbm8gdmFsdWUgaW4NCj4gPiA+ID4gPiA+IGxpbWl0aW5n
DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgdGhlIHNjb3BlIG9mIHRoaXMgZXh0ZW5zaW9uLiAgSXQg
cHJldmVudHMgZXZlbiB0aGlzIFdHDQo+ID4gPiA+ID4gPiBmcm9tDQo+ID4NCj4gPiA+ID4gPiA+
ICAgICAgY3JlYXRpbmcgYSBtb2R1bGUgdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gYWdhaW4uDQo+
ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2ln
bmlmaWNhbnQgZGViYXRlIGluIHRoZSBXRy4gIFRoZQ0KPiA+ID4gPiA+IGF1dGhvcnMNCj4gPg0K
PiA+ID4gPiA+IGRpZCBub3Qgd2FudCB0aGlzIHJlc3RyaWN0aW9uIGVpdGhlci4NCj4gPg0KPiA+
ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiBUbyBiZSBhbGxvd2VkIHRvIHByb2dyZXNzIHRoZSBkb2N1
bWVudCwgd2UgaW5zZXJ0ZWQgdGhlIGRvY3VtZW50Lg0KPiA+DQo+ID4gPiA+ID4gSWYgdGhpcyBy
ZWFsbHkgaXMgbWFuZGF0b3J5LXRvLXJlbW92ZSBmcm9tIGEgWUFORyBkb2N0b3INCj4gPg0KPiA+
ID4gPiA+IHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIHF1aWNrIGNsb3N1
cmUgb24gdGhpcw0KPiA+ID4gPiA+IGlzc3VlDQo+ID4NCj4gPiA+ID4gPiBiZXR3ZWVuIFdHIGxl
YWRlcnNoaXAgYW5kIHRoZSBZQU5HIGRvY3RvcnM/DQo+ID4NCj4gPiA+ID4gPg0KPiA+DQo+ID4g
PiA+ID4NCj4gPg0KPiA+ID4gPiA+IFRoZSBZQU5HIGxhbmd1YWdlIG1ha2VzIG5vIHJlc3RyaWN0
aW9ucyBhYm91dCBleHBvcnRpbmcgc3RhdGVtZW50cy4NCj4gPg0KPiA+ID4gPiA+IEkgZ3Vlc3Mg
SSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3aWxsIGp1c3Qgc2F5IE9LIGFuZCB3b25kZXINCj4g
PiA+ID4gPiB3aGF0DQo+ID4NCj4gPiA+ID4gPiBwcm9ibGVtIHRoaXMgaXMgc3VwcG9zZWQgdG8g
c29sdmUuIEkgZ3Vlc3MgdGhlIFdHIHdhbnRzIHRvIGdpdmUNCj4gPiA+ID4gPiBZQU5HDQo+ID4N
Cj4gPiA+ID4gPiBEb2N0b3JzIG1vcmUgdGhpbmdzIHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdl
IGNhbGxlZCBhIENMUiBpbg0KPiA+DQo+ID4gPiA+ID4gU05NUC1sYW5kIDstKQ0KPiA+DQo+ID4g
PiA+DQo+ID4NCj4gPiA+ID4gVGhhbmtzLiAgTm8gYWN0aW9uIHRha2VuLg0KPiA+DQo+ID4gPiA+
DQo+ID4NCj4gPiA+ID4gPiA+IEkxMykgICBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0
ZWQgew0KPiA+DQo+ID4gPiA+ID4gPiAgICAgc246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNh
dGlvbjsNCj4gPg0KPiA+ID4gPiA+ID4gICAgIGlmLWZlYXR1cmUgImNvbmZpZ3VyZWQiOw0KPiA+
DQo+ID4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24NCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgIlRo
aXMgbm90aWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IGEgc3Vic2NyaXB0aW9uIGhhcw0KPiA+ID4g
PiA+ID4gc3RhcnRlZCBhbmQNCj4gPg0KPiA+ID4gPiA+ID4gICAgICAgICBub3RpZmljYXRpb25z
IGFyZSBiZWdpbm5pbmcgdG8gYmUgc2VudC4gVGhpcw0KPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9u
IHNoYWxsDQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgICBvbmx5IGJlIHNlbnQgdG8gcmVjZWl2ZXJz
IG9mIGEgc3Vic2NyaXB0aW9uOyBpdCBkb2VzDQo+ID4gPiA+ID4gPiBub3QNCj4gPg0KPiA+ID4g
PiA+ID4gICAgICAgIGNvbnN0aXR1dGUgYSBnZW5lcmFsLXB1cnBvc2Ugbm90aWZpY2F0aW9uLiI7
DQo+ID4NCj4gPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+ICAgLS0gMm5kIHNlbnRlbmNlIGlz
IGNvbmZ1c2luZzsgYWxsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8NCj4gPg0KPiA+ID4gPiA+
ID4gICAgICByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb24uIGxhc3QgcGFydCBpcyByZWR1bmRh
bnQgc2luY2UNCj4gPg0KPiA+ID4gPiA+ID4gICAgICB0aGUgc246c3Vic2NyaXB0aW9uLXN0YXRl
LW5vdGlmaWNhdGlvbiBleHRlbnNpb24gaXMgdXNlZA0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+
ID4gPiA+IFRoZXJlIGlzIG5vIGlzc3VlIHdpdGggcmVtb3ZpbmcgdGhpcyBzZWNvbmQgc2VudGVu
Y2UgY29tcGxldGVseS4NCj4gPiA+ID4gPiBJZg0KPiA+DQo+ID4gPiA+ID4gSSBkaWQgdGhhdCwg
d291bGQgdGhpcyBhZGRyZXNzIHlvdXIgY29uY2Vybj8NCj4gPg0KPiA+ID4gPiA+DQo+ID4NCj4g
PiA+ID4gPiBPSw0KPiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gRG9uZQ0KPiA+DQo+ID4gPiA+
DQo+ID4NCj4gPiA+ID4gPiA+IEkxNCkgICByYzp5YW5nLWRhdGEgbW9kaWZ5LXN1YnNjcmlwdGlv
bi1zdHJlYW0tZXJyb3ItaW5mbyB7DQo+ID4NCj4gPiA+ID4gPiA+DQo+ID4NCj4gPiA+ID4gPiA+
ICAgICAgIGxlYWYgZmlsdGVyLWZhaWx1cmUtaGludCB7DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAg
ICAgdHlwZSBzdHJpbmc7DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgICBkZXNjcmlwdGlvbg0K
PiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAiSW5mb3JtYXRpb24gZGVzY3JpYmluZyB3aGVy
ZSBhbmQvb3Igd2h5IGENCj4gPiA+ID4gPiA+IHByb3ZpZGVkIGZpbHRlcg0KPiA+DQo+ID4gPiA+
ID4gPiAgICAgICAgICAgICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiI7
DQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgIH0NCj4gPg0KPiA+ID4gPiA+ID4NCj4gPg0KPiA+ID4g
PiA+ID4gICAtLSBycGMtZXJyb3IgYWxyZWFkeSBhbGxvd3MgbW9yZSBwcmVjaXNlIGVycm9yIHJl
cG9ydGluZw0KPiA+DQo+ID4gPiA+ID4gPiAgICAgIEl0IHVzZXMgZXJyb3ItdGFnLCBlcnJvci1w
YXRoLCBlcnJvci1zdHJpbmcsIGFuZA0KPiA+ID4gPiA+ID4gZXJyb3ItaW5mbw0KPiA+DQo+ID4g
PiA+ID4gPiAgICAgIGV4dGVuc2lvbnMNCj4gPg0KPiA+ID4gPiA+ID4gICAgICB0byBpZGVudGlm
eSB3aGljaCBwYXJhbWV0ZXJzL2NvbmRpdGlvbnMgY2F1c2VkIHRoZSBSUEMgdG8NCj4gPiA+ID4g
PiA+IGJlDQo+ID4NCj4gPiA+ID4gPiA+ICAgICAgcmVqZWN0ZWQuDQo+ID4NCj4gPiA+ID4gPiA+
ICAgICAgVGhpcyBlcnJvciByZXBvcnRpbmcgd2lsbCBjb250aW51ZSB0byBiZSB1c2VkLCBOb3Qg
c3VyZQ0KPiA+ID4gPiA+ID4gdGhpcw0KPiA+DQo+ID4gPiA+ID4gPiAgICAgIGZhaWx1cmUtaGlu
dA0KPiA+DQo+ID4gPiA+ID4gPiAgICAgIGhhcyBhbnkgc3RhbmRhcmRzIHZhbHVlLiBQZXJoYXBz
IHJlYWwtdXNlIGV4YW1wbGUgY2FuIGJlDQo+ID4NCj4gPiA+ID4gPiA+IGFkZGVkDQo+ID4NCj4g
PiA+ID4gPg0KPiA+DQo+ID4gPiA+ID4gUGVyIHlvdXIgdGhvdWdodHMgb24gcnBjLWVycm9yLi4u
ICBGb3IgTkVUQ09ORiBhbmQgUkVTVENPTkYsIHlvdQ0KPiA+DQo+ID4gPiA+ID4gcG9pbnQgdG8g
ZXJyb3Igc3RydWN0dXJlcyB3aGljaCBoaXN0b3JpY2FsbHkgYmVlbiB1c2VkIHdpdGgNCj4gPiA+
ID4gPiB0aG9zZQ0KPiA+DQo+ID4gPiA+ID4gdHJhbnNwb3J0cy4NCj4gPg0KPiA+ID4gPiA+IE9m
IGNvdXJzZQ0KPiA+DQo+ID4gPiA+ID4gd2Ugd2VyZSBsb29raW5nIHRvIGhhdmUgYWxsIHN1YnNj
cmlwdGlvbiBoaW50cyBzdXBwb3J0YWJsZQ0KPiA+ID4gPiA+IGFjcm9zcw0KPiA+DQo+ID4gPiA+
ID4gdHJhbnNwb3J0cyB2aWEgYSBzaW5nbGUgcG9ydGFibGUgWUFORyBkYXRhIHN0cnVjdHVyZS4g
IFNvIHRoZQ0KPiA+ID4gPiA+IHZhbHVlDQo+ID4NCj4gPiA+ID4gPiBpcyB0aGF0IGEgc2luZ2xl
IHN0cmluZyBvYmplY3QgZXhpc3RzIHNvIHRvIHRyYW5zcG9ydCB3aGF0ZXZlcg0KPiA+ID4gPiA+
IHRoZQ0KPiA+DQo+ID4gPiA+ID4gdmVuZG9yIHRoaW5rcyB3b3VsZCBiZSB1c2VmdWwgYXMgYSBo
aW50IGluIHRoaXMgY2FzZS4gIEkuZS4sDQo+ID4gPiA+ID4gdGhlcmUNCj4gPg0KPiA+ID4gPiA+
IGhhcyBiZWVuIG5vIGF0dGVtcHQgdG8gc3RhbmRhcmRpemUgdGhlIGNvbnRlbnRzIG9mIHRoaXMg
c3RyaW5nLg0KPiA+ID4gPiA+IElmDQo+ID4NCj4gPiA+ID4gPiBvcGVyYXRpb25hbCBleHBlcmll
bmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3VjaCBzdHJ1Y3R1cmluZywNCj4gPiA+ID4gPiB0aGlz
DQo+ID4NCj4gPiA+ID4gPiBjb3VsZCBwcm92aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQg
YnVpbGRpbmcgb2ZmIG9mIHRoaXMNCj4gPg0KPiA+ID4gPiA+IHN0YXJ0aW5nIHBvaW50Lg0KPiA+
DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEkgZ3Vlc3MgSSBkbyBub3QgY29uc2lkZXIgTkVU
Q09ORiBhbmQgUkVTVENPTkYgImhpc3RvcmljIiBxdWl0ZSB5ZXQuDQo+ID4NCj4gPiA+ID4gPiBU
aGVyZSBhcmUgbWFueSBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhlIHJwYy1lcnJvciByZXBvcnRp
bmcNCj4gPiA+ID4gPiB3aXRoIG5vDQo+ID4NCj4gPiA+ID4gPiBpbnRlbnQgdG8gcmVwbGFjZSBp
dCB3aXRoIHNvbWV0aGluZyBlbHNlLg0KPiA+DQo+ID4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEkg
d2FzIGp1c3QgYXNraW5nIGZvciBhbiBleGFtcGxlLCBzaW5jZSBJIGhhdmUgbm8gaWRlYSB3aGF0
IGFuDQo+ID4NCj4gPiA+ID4gPiBpbXBsZW1lbnRvciB3b3VsZCBwdXQgaW4gdGhpcyBsZWFmLg0K
PiA+DQo+ID4gPiA+DQo+ID4NCj4gPiA+ID4gSGVyZSBpcyBhbiBleGFtcGxlIGZyb20gb3VyIGlt
cGxlbWVudGF0aW9uLiAgU2F5IHlvdSBtaXN0eXBlIGFuDQo+ID4gPiA+IGV4dHJhDQo+ID4NCj4g
PiA+ID4gIlwiIHRvIGFuIHhwYXRoIGZpbHRlcjoNCj4gPg0KPiA+ID4gPiAvaWY6aW50ZXJmYWNl
cy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGENCj4g
PiA+ID4gdHVzDQo+ID4NCj4gPiA+ID4gQXMgYSByZXN1bHQsIHRoZSBmaWx0ZXIgaXMgcGFzc2Vk
IHRvIHRoZSBwdWJsaXNoZXIgaXM6DQo+ID4NCj4gPiA+ID4gL2lmOmludGVccmZhY2VzLXN0YXRl
L2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0DQo+ID4gPiA+IGF0
dXMNCj4gPg0KPiA+ID4gPg0KPiA+DQo+ID4gPiA+IFdoYXQgd2Ugd291bGQgcmV0dXJuIGluIHRo
ZSBmYWlsdXJlLWhpbnQgc3RyaW5nIGlzOg0KPiA+DQo+ID4gPiA+IEludmFsaWQgZXhwcmVzc2lv
bjogb2Zmc2V0KDkpIGluDQo+ID4NCj4gPiA+ID4gJy9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRl
cmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1zdGF0dXMnDQo+ID4NCj4gPiA+
ID4NCj4gPg0KPiA+ID4gPiBFcmljDQo+ID4NCj4gPiA+ID4NCj4gPg0KPiA+ID4gPiA+IEFuZHkN
Cg==


From nobody Thu Jan 24 06:39:58 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 208E9126C01; Thu, 24 Jan 2019 06:39:50 -0800 (PST)
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, 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 VlgxNTuOKOoa; Thu, 24 Jan 2019 06:39:45 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 287B2124BE5; Thu, 24 Jan 2019 06:39:45 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id 0C77F1AE00A0; Thu, 24 Jan 2019 15:39:39 +0100 (CET)
Date: Thu, 24 Jan 2019 15:39:38 +0100 (CET)
Message-Id: <20190124.153938.826269505351606159.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com>
References: <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com> <20190124.141640.253886322622907272.mbj@tail-f.com> <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/CfwkWAak4elXW3bOTWnqg1nZcNQ>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 14:39:51 -0000

IkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiBGcm9tOiBN
YXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU0NCj4gPiANCj4gPiAiRXJp
YyBWb2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gSGkgQW5keSwN
Cj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSB0aG9y
b3VnaCBZQU5HIERvY3RvciByZXZpZXcuICBJIGhhdmUgaW5jbHVkZWQNCj4gPiA+IHRoZQ0KPiA+
IGFncmVlZCB1cG9uIGNvbW1lbnRzLCBhbmQgdXBsb2FkZWQgdG86DQo+ID4gPg0KPiA+ID4gZHJh
ZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy0yMg0KPiA+ID4NCj4gPiA+
IGEgc3VtbWFyeSBvZiB0aGUgY2xhcmlmaWNhdGlvbnMgbWFkZSBpcyBhdCB0aGUgZW5kIG9mIHRo
ZSBkb2N1bWVudC4NCj4gPiA+IExldCBtZSBrbm93IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVl
ZGVkIHRvIGNvbmNsdWRlIHRoZSBZQU5HIGRvY3Rvcg0KPiA+ID4gcmV2aWV3IG9mIHRoaXMgZG9j
dW1lbnQuDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBBbHNvIGFzIHRoZSByZXN1bHQgb2Yg
dGhlIOKAmGVycm9yLXRhZ+KAmSBkaXNjdXNzaW9uIHdpdGggeW91IGFuZCBNYXJ0aW4sDQo+ID4g
PiB3ZSBuZWVkIHRvIHBlcmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhlIOKAmGVycm9yLXRhZ+KA
mSBtYXBwaW5nIHdpdGhpbg0KPiA+ID4gYm90aCBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1l
dmVudC1ub3RpZmljYXRpb25zIFNlY3Rpb24NCj4gPiA+IDcsIGFuZCBkcmFmdC1pZXRmLW5ldGNv
bmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMuICAgRGlyZWN0bHkNCj4gPiA+IGJlbG93IGlz
IHNvbWUgdGV4dCBhbmQgcHJvcG9zZWQgZXJyb3ItdGFnIG1hcHBpbmdzIGZvciB0aG9zZQ0KPiA+
ID4gZG9jdW1lbnRzLg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gICAgIG8gIEFuICJlcnJv
ci10YWciIG5vZGUgd2l0aCB0aGUgdmFsdWUgYmVpbmcgYSBzdHJpbmcgdGhhdA0KPiA+ID4NCj4g
PiA+ICAgICAgICBjb3JyZXNwb25kcyB0byBhbiBpZGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhl
IGVycm9yLiAgVGhpcw0KPiA+ID4NCj4gPiA+ICAgICAgICAiZXJyb3ItdGFnIiB3aWxsIGNvcnJl
c3BvbmQgdG8gdGhlIGVycm9yIGlkZW50aXRpZXMgd2l0aGluDQo+ID4gPg0KPiA+ID4gICAgICAg
IFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9uc10gc2VjdGlv
bg0KPiA+ID4NCj4gPiA+ICAgICAgICAyLjQuNiBmb3IgZ2VuZXJhbCBzdWJzY3JpcHRpb24gZXJy
b3JzOg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gICAgICAgICAgIGVycm9yIGlkZW50aXR5
ICAgICAgICAgdXNlcyBlcnJvci10YWcNCj4gPiA+DQo+ID4gPiAgICAgICAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBkc2Nw
LXVuYXZhaWxhYmxlICAgICAgIGludmFsaWQtdmFsdWUNCj4gPiANCj4gPiBPay4gIEJ1dCBpdCBp
cyBub3QgY2xlYXIgdG8gbWUgd2hlbiB0aGlzIGVycm9yIGlzIGFjdHVhbGx5IHN1cHBvc2VkIHRv
DQo+ID4gYmUNCj4gPiBnZW5lcmF0ZWQ/ICBUaGUgbGVhZiBhbmQgaWRlbnRpdHkgaGF2ZSB0aGUg
c2FtZSBpZi1mZWF0dXJlLCBzbyBpdA0KPiA+IGlzbid0IGEgc3BlY2lhbA0KPiA+IGVycnJvIGNv
ZGUgZm9yICJ1bnN1cHBvcnRlZCBsZWFmIiwgd2hpY2ggaXMgZ29vZCENCj4gPiANCj4gPiBUaGVu
IEkgaGF2ZSB0byBhc3N1bWUgaXQgaXMgc3VwcG9zZWQgdG8gYmUgc29tZSBraW5kIG9mIHJ1bnRp
bWUgZXJyb3I/DQo+IA0KPiBZZXMuICBBIHB1Ymxpc2hlciwgbm9yIHRoZSBuZXR3b3JrIHRvIHdo
aWNoIGlzIGNvbm5lY3RzIGRvZXMgbm90IGhhdmUNCj4gdG86DQo+IChhKSBzdXBwb3J0IGFsbCBE
U0NQIHZhbHVlcywgbm9yIA0KPiAoYikgYWxsb3cgYSBwYXJ0aWN1bGFyIHZhbHVlIHJlcXVlc3Rl
ZCBieSBhIHBhcnRpY3VsYXIgc3Vic2NyaWJlciwNCj4gU28gdGhpcyBjb25kaXRpb24gYWxsb3dz
IGEgcHVibGlzaGVyIHRvIHJlamVjdCBhIHJlcXVlc3QgZm9yIGEgRFNDUA0KPiB2YWx1ZSB3aGVy
ZSBpcyBrbm93cyB0aGUgdmFsdWUgd2lsbCBub3QgYmUgcmVzcGVjdGVkLg0KDQpHb29kIGV4cGxh
bmF0aW9uLCBJIHdpc2ggaXQgd2FzIHBhcnQgb2YgdGhlICJsZWFmIGRzY3AiIGluIHRoZQ0KbW9k
dWxlIDopDQoNClRoZSBkc2NwLXVuYXZhaWxhYmxlIGlkZW50aXR5IGRvZXNuJ3QgYWRkIGFueSBh
ZGRpdGlvbiB2YWx1ZSBjb21wYXJlZA0KdG8gdGhlIHN0YW5kYXJkIGVycm9yLg0KDQo+ID4gVGhp
bmtpbmcgc29tZSBtb3JlLCB3aGF0IGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBpZiB0aGUgY2xpZW50
IG9uIHRoZQ0KPiA+IHNhbWUNCj4gPiBzZXNzaW9uIHNlbmRzIGZpcnN0IGFuIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24gd2l0aCBkc2NwIDQyLCBhbmQgdGhlbg0KPiA+IGFub3RoZXINCj4gPiBlc3Rh
Ymxpc2gtc3Vic2NyaXB0aW9uIHdpdGggZHNjcCAxMD8NCj4gDQo+IFRoaXMgd291bGQgYmUgYWxs
b3dlZC4NCg0KT24gbGludXggYXQgbGVhc3QgdGhpcyBpcyBhIHNvY2tvcHQsIGkuZS4sIHRoZSBv
cHRpb24gYXBwbGllcyB0byB0aGUNCnNvY2tldCwgd2hpY2ggbWVhbnMgYWxsIHBhY2tldHMgb24g
dGhlIHNlc3Npb24uICBTbyBob3cgaXMgdGhpcw0Kc3VwcG9zZWQgdG8gYmUgaW1wbGVtZW50ZWQg
aWYgZGlmZmVyZW50IG1lc3NhZ2VzIG9uIHRoZSBzZXNzaW9uIHNob3VsZA0KaGF2ZSBkaWZmZXJl
bnQgZHNjcCB2YWx1ZXM/ICBPciBpcyB0aGUgaWRlYSB0aGF0IHlvdSBzZW5kIHRoZSBtc2csDQpm
bHVzaCBhbGwgZGF0YSBmcm9tIHNzaC90bHMgdG8gdGNwLCB0aGVuIGZsdXNoIHRoZSB0Y3AgYnVm
ZmVycyAobm90DQp0aGF0IGVhc3kuLi4pPw0KDQpFdmVuIGlmIHRoZXJlJ3MganVzdCBvbmUgZXN0
YWJsaXNoLXN1YnNjcmlwdGlvbiB3aXRoIGEgZHNjcCB2YWx1ZSwNCnNpbmNlIGl0IGFwcGxpZXMg
dG8gdGhlIHNlc3Npb24gaXQgbWVhbnMgdGhhdCBhbGwgbm9ybWFsIHJwY3Mgb24gdGhpcw0Kc2Vz
c2lvbiB3aWxsIGdldCB0aGUgc2FtZSBkc2NwIHZhbHVlLiAgSXQgaXMgbm90IGNsZWFyIHRoYXQg
dGhpcyBpcw0KdGhlIGludGVudGlvbj8NCg0KDQoNCi9tYXJ0aW4NCg0KDQo+IFRoZSBpbnRlcmVz
dGluZyBwYXJ0IGNvbWVzIHdpdGggYnVuZGxpbmcgdGhlDQo+IGV2ZW50IHJlY29yZHMuICBUaGUg
aW5pdGlhbCB2ZXJzaW9ucyBvZg0KPiBkcmFmdC1pZXRmLW5ldGNvbmYtbm90aWZpY2F0aW9uLW1l
c3NhZ2VzIHJlcXVpcmVkIHRoYXQgYWxsIGV2ZW50DQo+IHJlY29yZHMgaW4gYSBidW5kbGUgaGFk
IGEgY29tbW9uIGRzY3AuICBBdCB0aGlzIHBvaW50LCB0aGF0IHNlZW1zDQo+IG92ZXJseSByZXN0
cmljdGl2ZSB0byB0aGUgbWFyc2hhbGxpbmcgcHJvY2Vzcywgc28gZm9yIG5vdyB0aGF0DQo+IHJl
cXVpcmVtZW50IGlzIG5vdCBpbiB0aGUgZG9jdW1lbnQuDQo+IA0KPiA+ID4gICAgICAgICAgIGVu
Y29kaW5nLXVuc3VwcG9ydGVkICAgaW52YWxpZC12YWx1ZQ0KPiA+IA0KPiA+IE9rLiAgQnV0IHRo
aXMgaWRlbnRpdHkgZG9lc24ndCBnaXZlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiB0aGUgc3RhbmRh
cmQNCj4gPiBlcnJvcjoNCj4gPiANCj4gPiAgIGVycm9yLXRhZzogaW52YWxpZC12YWx1ZQ0KPiA+
ICAgZXJyb3ItcGF0aDogL3JwYy9lc3RhYmxpc2gtc3Vic2NyaXB0aW9uL2VuY29kaW5nDQo+ID4g
DQo+ID4gDQo+ID4gPiAgICAgICAgICAgZmlsdGVyLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZh
bHVlDQo+ID4gDQo+ID4gVGhpcyBpcyBhICJzdWJzY3JpcHRpb24tdGVybWluYXRlZC1yZWFzb24i
LCB3aGljaCB3aWxsIG5ldmVyIGJlIHNlbnQNCj4gPiBpbiBhbiBycGMtDQo+ID4gZXJyb3IsIGFu
ZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gDQo+IFllcywg
Zm9yZ290IHRvIHJlbW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQo+IA0KPiA+ID4gICAgICAg
ICAgZmlsdGVyLXVuc3VwcG9ydGVkICAgICBpbnZhbGlkLXZhbHVlDQo+ID4gDQo+ID4gT2suICBC
dXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZSBz
dGFuZGFyZA0KPiA+IGVycm9yOg0KPiA+IA0KPiA+ICAgZXJyb3ItdGFnOiBpbnZhbGlkLXZhbHVl
DQo+ID4gICBlcnJvci1wYXRoOiAvcnBjL2VzdGFibGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhw
YXRoLWZpbHRlcg0KPiA+IA0KPiA+IA0KPiA+ID4gICAgICAgICAgIGluc3VmZmljaWVudC1yZXNv
dXJjZXMgcmVzb3VyY2UtZGVuaWVkDQo+ID4gDQo+ID4gDQo+ID4gT2suICBCdXQgdGhpcyBpZGVu
dGl0eSBkb2Vucyd0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZSBzdGFuZGFyZA0KPiA+
IGVycm9yIGluDQo+ID4gdGhlIGNhc2Ugb2YgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiBhbmQgbW9k
aWZ5LXN1YnNjcmlwdGlvbi4NCj4gPiANCj4gPiA+ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlw
dGlvbiAgIGludmFsaWQtdmFsdWUNCj4gPiANCj4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRv
ZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQo+ID4gZXJyb3Ig
aW4NCj4gPiB0aGUgY2FzZSBvZiBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIGFuZCBtb2RpZnktc3Vi
c2NyaXB0aW9uLg0KPiA+IA0KPiA+ID4gICAgICAgICAgIHJlcGxheS11bnN1cHBvcnRlZCAgICAg
b3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiANCj4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5
IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlIHN0YW5kYXJkDQo+ID4gZXJy
b3IuDQo+ID4gDQo+ID4gPiAgICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZhbGlk
LXZhbHVlDQo+ID4gDQo+ID4gVGhpcyBpcyBhICJzdWJzY3JpcHRpb24tdGVybWluYXRlZC1yZWFz
b24iLCB3aGljaCB3aWxsIG5ldmVyIGJlIHNlbnQNCj4gPiBpbiBhbiBycGMtDQo+ID4gZXJyb3Is
IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gDQo+IFll
cywgZm9yZ290IHRvIHJlbW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQo+IA0KPiA+ID4gICAg
ICAgICAgIHN1c3BlbnNpb24tdGltZW91dCAgICAgb3BlcmF0aW9uLWZhaWxlZA0KPiA+IA0KPiA+
IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBu
ZXZlciBiZSBzZW50DQo+ID4gaW4gYW4gcnBjLQ0KPiA+IGVycm9yLCBhbmQgdGh1cyBzaG91bGQg
bm90IGJlIG1hcHBlZCB0byBhbiBlcnJvci10YWcuDQo+IA0KPiBZZXMsIGZvcmdvdCB0byByZW1v
dmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiANCj4gPiA+ICAgICAgICAgICB1bnN1cHBvcnRh
YmxlLXZvbHVtZSAgIHRvby1iaWcNCj4gPiANCj4gPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10
ZXJtaW5hdGVkLXJlYXNvbiIsIHdoaWNoIHdpbGwgbmV2ZXIgYmUgc2VudA0KPiA+IGluIGFuIHJw
Yy0NCj4gPiBlcnJvciwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgdG8gYW4gZXJyb3It
dGFnLg0KPiANCj4gWWVzLCBmb3Jnb3QgdG8gcmVtb3ZlIHRob3NlLiAgSXQgaXMgbm93IG91dC4N
Cj4gDQo+ID4gPiAgICAgICAgT3IgdGhpcyAiZXJyb3ItdGFnIiB3aWxsIGNvcnJlc3BvbmQgdG8g
dGhlIGVycm9yIGlkZW50aXRpZXMNCj4gPiA+DQo+ID4gPiAgICAgICAgd2l0aGluIFtJLUQuaWV0
Zi1uZXRjb25mLXlhbmctcHVzaF0gQXBwZW5kaXggQS4xIGZvcg0KPiA+ID4NCj4gPiA+ICAgICAg
ICBzdWJzY3JpcHRpb24gZXJyb3JzIHNwZWNpZmljIHRvIFlBTkcgZGF0YXN0b3JlczoNCj4gPiA+
DQo+ID4gPg0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgICAg
ICAgdXNlcyBlcnJvci10YWcNCj4gPiA+DQo+ID4gPiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAgICAgIC0tLS0tLS0tLS0tLS0tDQo+ID4gPg0KPiA+ID4gICAgICAgICAgIGNhbnQt
ZXhjbHVkZSAgICAgICAgICAgICAgICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4NCj4g
PiA+ICAgICAgICAgICBkYXRhc3RvcmUtbm90LXN1YnNjcmliYWJsZSAgb3BlcmF0aW9uLW5vdC1z
dXBwb3J0ZWQNCj4gPiANCj4gPiBJIHRoaW5rIHRoYXQgdGhpcyBzaG91bGQgYmUgaW52YWxpZC12
YWx1ZS4NCj4gDQo+IE9rDQo+IA0KPiAvRXJpYw0KPiANCj4gPiA+ICAgICAgICAgICBuby1zdWNo
LXN1YnNjcmlwdGlvbi1yZXN5bmMgaW52YWxpZC12YWx1ZQ0KPiA+IA0KPiA+IE9rLCBidXQgYWdh
aW4gdGhlIHZhbHVlIG9mIGhhdmluZyB0aGlzIGlzIHVuY2xlYXIuDQo+ID4gDQo+ID4gPiAgICAg
ICAgICAgb24tY2hhbmdlLXVuc3VwcG9ydGVkICAgICAgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVk
DQo+ID4gPg0KPiA+ID4gICAgICAgICAgIG9uLWNoYW5nZS1zeW5jLXVuc3VwcG9ydGVkICBvcGVy
YXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBwZXJpb2QtdW5zdXBw
b3J0ZWQgICAgICAgICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgICB1cGRh
dGUtdG9vLWJpZyAgICAgICAgICAgICAgdG9vLWJpZw0KPiA+ID4NCj4gPiA+ICAgICAgICAgICBz
eW5jLXRvby1iaWcgICAgICAgICAgICAgICAgdG9vLWJpZw0KPiA+ID4NCj4gPiA+ICAgICAgICAg
ICB1bmNoYW5naW5nLXNlbGVjdGlvbiAgICAgICAgb3BlcmF0aW9uLWZhaWxlZA0KPiA+IA0KPiA+
IA0KPiA+IA0KPiA+IC9tYXJ0aW4NCj4gPiANCj4gPiANCj4gPiANCj4gPiA+DQo+ID4gPg0KPiA+
ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gRG8geW91IChvciBhbnlvbmUgZWxzZSBpbiB0aGlzIHRo
cmVhZCkgaGF2ZSBhbnkgc3VnZ2VzdGlvbnMgb24gdGhlDQo+ID4gPiB0ZXh0IG9yIHByb3Bvc2Vk
IG1hcHBpbmdzPyAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgb2ssIEFsZXggd2lsbCBuZWVkDQo+
ID4gPiB0byByZW1vdmUgdGhlIE5FVENPTkYgZXJyb3ItdGFnIHNwZWNpZmljcyBmcm9tDQo+ID4g
PiBkcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1wdXNoIFNlY3Rpb25zIDQuNC4xICYgNC40LjINCj4g
PiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+IEFsc28gUmVzaGFkIHdpbGwgaGF2ZSB0byBkbyBzb21l
IHdvcmsgYmVjYXVzZSBoZSBpcyB0aGUgWUFORyBkb2N0b3Igb2YNCj4gPiBuZXRjb25mLW5ldGNv
bmYtZXZlbnQtbm90aWZpY2F0aW9ucywgYW5kIGhlIHdpbGwgd2FudCB0byBpbmNsdWRlIHRoZQ0K
PiA+IHNhbWUNCj4gPiBpbmZvcm1hdGlvbiB3aXRoaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rj
b25mLW5vdGlmLg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4NCj4g
PiA+IEVyaWMNCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gRnJvbTog
QW5keSBCaWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb20+DQo+ID4gPg0KPiA+ID4gU2VudDogV2Vk
bmVzZGF5LCBKYW51YXJ5IDIzLCAyMDE5IDEyOjQyIFBNDQo+ID4gPg0KPiA+ID4gVG86IEVyaWMg
Vm9pdCAoZXZvaXQpIDxldm9pdEBjaXNjby5jb20+DQo+ID4gPg0KPiA+ID4gQ2M6IE1hcnRpbiBC
am9ya2x1bmQgPG1iakB0YWlsLWYuY29tPjsgeWFuZy1kb2N0b3JzQGlldGYub3JnOw0KPiA+ID4g
bmV0Y29uZkBpZXRmLm9yZzsNCj4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5v
dGlmaWNhdGlvbnMuYWxsQGlldGYub3JnDQo+ID4gPg0KPiA+ID4gU3ViamVjdDogUmU6IFt5YW5n
LWRvY3RvcnNdIFlhbmdkb2N0b3JzIGxhc3QgY2FsbCByZXZpZXcgb2YNCj4gPiA+IGRyYWZ0LWll
dGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMtMjENCj4gPiA+DQo+ID4gPg0KPiA+
ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBPbiBXZWQsIEphbiAyMywgMjAx
OSBhdCA0OjM1IEFNIEVyaWMgVm9pdCAoZXZvaXQpDQo+ID4gPiA8bWFpbHRvOmV2b2l0QGNpc2Nv
LmNvbT4NCj4gPiB3cm90ZToNCj4gPiA+DQo+ID4gPiA+IEZyb206IE1hcnRpbiBCam9ya2x1bmQs
IEphbnVhcnkgMjMsIDIwMTkgMzozMiBBTQ0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
IEhpLA0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ICJFcmljIFZvaXQgKGV2b2l0KSIg
PG1haWx0bzpldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+ID4gPiBIaSBBbmR5
LA0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBMb29raW5nIGF0IHlvdXIgcHJv
cG9zYWwuLi4gIE15IHJlYWRpbmcgaXMgdGhhdCBpdCB0YWtlcyB0aGUNCj4gPiA+ID4gPiB0cmFu
c3BvcnQNCj4gPiA+DQo+ID4gPiA+ID4gc3BlY2lmaWMgZXJyb3IgaW5mbyBjb250YWluZWQgaW4N
Cj4gPiA+DQo+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZp
Y2F0aW9ucyBzZWN0aW9uIDcsIGFuZCB0aGVuDQo+ID4gPg0KPiA+ID4gPiA+IHJlcGxpY2F0ZXMg
dGhhdCBpbmZvIHdpdGhpbiAxMiBzZXBhcmF0ZSBkZXNjcmlwdGlvbiBvYmplY3RzIG9mIHRoZQ0K
PiA+ID4NCj4gPiA+ID4gPiB0cmFuc3BvcnQgaW5kZXBlbmRlbnQgaWV0Zi1zdWJzY3JpYmVkLW5v
dGlmaWNhdGlvbnMueWFuZy4gIFRoZQ0KPiA+ID4gPiA+IHZhbHVlDQo+ID4gPg0KPiA+ID4gPiA+
IHlvdSBhcmUgYXNzZXJ0aW5nIGlzIHRoYXQgUkZDcyBjb250YWluaW5nIFlBTkcgbW9kZWxzIGNv
bnRhaW5pbmcNCj4gPiA+ID4gPiB0aGUNCj4gPiA+DQo+ID4gPiA+ID4gcnBjLXN0bXQgaGF2ZSB0
cmFkaXRpb25hbGx5IGRvY3VtZW50IHRoZSBtYW5kYXRvcnktdG8taW1wbGVtZW50DQo+ID4gPg0K
PiA+ID4gPiA+ICJlcnJvci10YWciIGZpZWxkIHdpdGhpbiB0aGUgbW9kZWwuICBBbmQgcHJlc3Vt
YWJseSB5b3UgYXJlDQo+ID4gPiA+ID4gY29uY2VybmVkDQo+ID4gPg0KPiA+ID4gPiA+IHRoYXQg
ZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUgdG8gbG9vayBlbHNld2hlcmUgZm9yIHRoaXMNCj4g
PiA+DQo+ID4gPiA+ID4gaW5mb3JtYXRpb24uDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+
ID4gSSB0aGluayB0aGF0IG1heWJlIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUgaXNzdWVzIGhlcmUu
DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gVGhlIGZpcnN0IGlzc3VlIGlzIHRoYXQg
Zm9yIGVhY2ggZXJyb3IgaWRlbnRpdHkgZGVmaW5lZCwgdGhlcmUgbmVlZHMNCj4gPiA+ID4gdG8g
YmUgYQ0KPiA+ID4NCj4gPiA+ID4gbWFwcGluZyB0byB0aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJy
b3IgaGFuZGxpbmcuICBBbmR5IHN1Z2dlc3RzIHRoYXQNCj4gPiA+ID4gdGhpcyBpbmZvIGlzDQo+
ID4gPg0KPiA+ID4gPiBhZGRlZCB0byB0aGlzIGRvY3VtZW50LCBidXQgY3VycmVudGx5IHRoaXMg
aW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlDQo+ID4gPiA+IGluIHRoZQ0KPiA+ID4NCj4gPiA+ID4g
cHJvdGNvbC1tYXBwaW5nIGRvY3VtZW50cyAobmV0Y29uZi1ub3RpZiBhbmQgcmVzdGNvbmYtbm90
aWYpLg0KPiA+ID4gPiBQZXJzb25hbGx5LCBJDQo+ID4gPg0KPiA+ID4gPiB0aGluayB0aGF0IHRo
ZSBjdXJyZW50IHNwbGl0IG9mIHRleHQgYmV0d2VlbiBkb2N1bWVudHMgaXMgZmluZS4NCj4gPiA+
DQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiBUaGUgc2Vjb25kIGlzc3VlIGlzIHRoYXQgY3VycmVu
dGx5LCBib3RoIG5ldGNvbmYtbm90aWYgYW5kDQo+ID4gPiA+IHJlc3Rjb25mLW5vdGlmIHNheQ0K
PiA+ID4NCj4gPiA+ID4gdGhhdCAqYWxsKiB0aGVzZSBlcnJvcnMgdXNlIHRoZSBlcnJvci10YWcg
Im9wZXJhdGlvbi1mYWlsZWQiLg0KPiA+ID4gPiBFc3NlbnRpYWxseSBpdCBtZWFucw0KPiA+ID4N
Cj4gPiA+ID4gdGhhdCB3ZSBieXBhc3MgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwcm90b2Nv
bHMuICBBcyBBbmR5IHBvaW50cw0KPiA+ID4gPiBvdXQgYmVsb3csDQo+ID4gPg0KPiA+ID4gPiB0
aGUgZXJyb3IgImluc3VmZmljaWVudC1yZXNvdXJjZXMiIHNob3VsZCBiZSBtYXBwZWQgdG8NCj4g
PiA+ID4gInJlc291cmNlLWRlbmllZCIgaW4NCj4gPiA+DQo+ID4gPiA+IE5FVENPTkYgYW5kIFJF
U1RDT05GICh0aGV5IG1lYW4gdGhlIHNhbWUgdGhpbmcpLiAgU28gaXQgbWlnaHQgbWFrZQ0KPiA+
ID4gPiBzZW5zZQ0KPiA+ID4NCj4gPiA+ID4gdG8gY2FyZWZ1bGx5IGdvIHRocm91Z2ggdGhlIGxp
c3Qgb2YgZXJyb3JzIGFuZCBtYXAgdGhlbSB0byB0aGUNCj4gPiA+ID4gY29ycmVjdCBlcnJvci10
YWcNCj4gPiA+DQo+ID4gPiA+IChidXQgc3BlY2lmaXkgdGhpcyBpbiB0aGUgdHJhbnNwb3J0IGRy
YWZ0cykuDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBJIGFtIGNvbXBsZXRlbHkgZ29vZCB3
aXRoIHRoaXMuICAgRG9lcyB0aGlzIHdvcmsgZm9yIHlvdSBBbmR5Pw0KPiA+ID4NCj4gPiA+DQo+
ID4gPg0KPiA+ID4gVGhpcyBpcyBiZXR0ZXIuDQo+ID4gPg0KPiA+ID4gSSdtIGdsYWQgbm8gb3Ro
ZXIgZHJhZnRzIGFyZSBjcmVhdGluZyB0aGVpciBvd24gZXJyb3IgcmVwb3J0aW5nIHN5c3RlbQ0K
PiA+ID4gZm9yDQo+ID4gZWFjaCBycGMtc3RtdC4NCj4gPiA+DQo+ID4gPiBUaGlzIGlzIGEgYmFk
IHByZWNlZGVudCBhbmQgbGlrZWx5IHRvIGJlIHNraXBwZWQgaW4gaW1wbGVtZW50YXRpb25zLg0K
PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gRXJpYw0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+
ID4gPiAvbWFydGluDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4g
QW5keQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPg0K
PiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gSWYgdGhlIFlBTkcgZG9jdG9ycyByZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRlZC4g
IEEgc2ltaWxhcg0KPiA+ID4gPiA+IHRleHQNCj4gPiA+DQo+ID4gPiA+ID4gY2hhbmdlIHdvdWxk
IGJlIG5lZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4NCj4gPiA+
ID4gPiBZQU5HDQo+ID4gPg0KPiA+ID4gPiA+IFB1c2guICBQZXJzb25hbGx5IEkgZG9u4oCZdCBs
aWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlIHJlcXVpcmVkDQo+ID4gPiA+ID4gdG8NCj4g
PiA+DQo+ID4gPiA+ID4gZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0
aGUgY2hhbmdlIGlmIHlvdSByZWFsbHkNCj4gPiA+ID4gPiB3YW50DQo+ID4gPg0KPiA+ID4gPiA+
IHRoaXMsIGFuZCBub2JvZHkgZWxzZSBvYmplY3RzLg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiBPdGhlciB0aGFuIHRoYXQsIEkgYW0gbm90IGF3YXJlIG9mIGFueSBvdGhlciBv
cGVuIGlzc3VlcyBpbiB0aGUNCj4gPiA+ID4gPiBZQU5HDQo+ID4gPg0KPiA+ID4gPiA+IERvY3Rv
ciByZXZpZXcuICBEbyB5b3Uga25vdyBvZiBhbnl0aGluZyBlbHNlPw0KPiA+ID4NCj4gPiA+ID4g
Pg0KPiA+ID4NCj4gPiA+ID4gPiBFcmljDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPg0KPiA+ID4gPiA+IEZyb206IEFuZHkgQmllcm1hbiwgSmFudWFyeSAyMSwgMjAx
OSAyOjI2IFBNDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IEhpLA0KPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBJIHRoaW5rIHRoZSBlcnJvci10YWcgaXNzdWUg
Y2FuIGJlIHJlc29sdmVkIGJ5IGluY2x1ZGluZyAxIGV4dHJhDQo+ID4gPg0KPiA+ID4gPiA+IHNl
bnRlbmNlIGluIGVhY2ggZXJyb3IgaWRlbnRpdHkuDQo+ID4gPg0KPiA+ID4gPiA+IEkga25vdyB0
aGlzIGlzIE5FVENPTkYgYW5kIFJFU1RDT05GIGNlbnRyaWMgYnV0IHRob3NlIGFyZSB0aGUgb25s
eQ0KPiA+ID4gPiA+IDINCj4gPiA+DQo+ID4gPiA+ID4gc3RhbmRhcmQgcHJvdG9jb2xzIHN1cHBv
cnRlZCBmb3IgdGhlIFlBTkcgbGFuZ3VhZ2UgcmlnaHQgbm93Lg0KPiA+ID4NCj4gPiA+ID4gPg0K
PiA+ID4NCj4gPiA+ID4gPiAgICAgICAgSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQg
aW4gZXJyb3IgcmVwb3J0aW5nLA0KPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgdGhlbiB0aGUgdmFs
dWUgJzxjb3JyZWN0IGVycm9yLXRhZz4nIE1VU1QgYmUgdXNlZC4NCj4gPiA+DQo+ID4gPiA+ID4N
Cj4gPiA+DQo+ID4gPiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0K
PiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IE9MRDoNCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+
DQo+ID4gPiA+ID4gICBpZGVudGl0eSBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHsNCj4gPiA+DQo+
ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+DQo+
ID4gPiA+ID4gICAgIGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+DQo+ID4g
PiA+ID4gICAgIGJhc2Ugc3Vic2NyaXB0aW9uLXN1c3BlbmRlZC1yZWFzb247DQo+ID4gPg0KPiA+
ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4NCj4gPiA+ID4gPiAgICAgICAiVGhlIHB1Ymxp
c2hlciBoYXMgaW5zdWZmaWNpZW50IHJlc291cmNlcyB0byBzdXBwb3J0IHRoZQ0KPiA+ID4NCj4g
PiA+ID4gPiAgICAgICAgcmVxdWVzdGVkIHN1YnNjcmlwdGlvbi4gIEFuIGV4YW1wbGUgbWlnaHQg
YmUgdGhhdCBhbGxvY2F0ZWQNCj4gPiA+ID4gPiBDUFUNCj4gPiA+DQo+ID4gPiA+ID4gICAgICAg
IGlzIHRvbyBsaW1pdGVkIHRvIGdlbmVyYXRlIHRoZSBkZXNpcmVkIHNldCBvZiBub3RpZmljYXRp
b24NCj4gPiA+DQo+ID4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQo+ID4gPg0KPiA+ID4gPiA+
ICAgfQ0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4g
PiBORVc6DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ICAgaWRlbnRpdHkgaW5z
dWZmaWNpZW50LXJlc291cmNlcyB7DQo+ID4gPg0KPiA+ID4gPiA+ICAgICBiYXNlIGVzdGFibGlz
aC1zdWJzY3JpcHRpb24tZXJyb3I7DQo+ID4gPg0KPiA+ID4gPiA+ICAgICBiYXNlIG1vZGlmeS1z
dWJzY3JpcHRpb24tZXJyb3I7DQo+ID4gPg0KPiA+ID4gPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlv
bi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+ID4NCj4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24NCj4g
PiA+DQo+ID4gPiA+ID4gICAgICAgIlRoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVudCByZXNv
dXJjZXMgdG8gc3VwcG9ydCB0aGUNCj4gPiA+DQo+ID4gPiA+ID4gICAgICAgIHJlcXVlc3RlZCBz
dWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQgYWxsb2NhdGVkDQo+ID4gPiA+
ID4gQ1BVDQo+ID4gPg0KPiA+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0
ZSB0aGUgZGVzaXJlZCBzZXQgb2Ygbm90aWZpY2F0aW9uDQo+ID4gPg0KPiA+ID4gPiA+ICAgICAg
ICBtZXNzYWdlcy4gSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3INCj4g
PiA+ID4gPiByZXBvcnRpbmcsDQo+ID4gPg0KPiA+ID4gPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1
ZSAncmVzb3VyY2UtZGVuaWVkJyBNVVNUIGJlIHVzZWQuIjsNCj4gPiA+DQo+ID4gPiA+ID4gICB9
DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IEFu
ZHkNCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4g
T24gRnJpLCBKYW4gMTgsIDIwMTkgYXQgMTE6NTMgQU0gRXJpYyBWb2l0IChldm9pdCkNCj4gPiA+
DQo+ID4gPiA+ID4gPG1haWx0bzpldm9pdEBjaXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBj
aXNjby5jb20+PiB3cm90ZToNCj4gPiA+DQo+ID4gPiA+ID4gSGkgQW5keSwNCj4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzLiAgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVt
cyB3aGVyZSB0aGVyZSB3YXMgYWdyZWVtZW50LiAgSQ0KPiA+ID4gPiA+IGhhdmUNCj4gPiA+DQo+
ID4gPiA+ID4gcmVtb3ZlZCB0aGUgaXRlbXMgYmVsb3cgd2hlcmUgeW91IHdlcmUgb2suDQo+ID4g
Pg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IFJlbWFpbmluZyBiZWxvdyBhcmUgdGhlIG9w
ZW4gaXRlbXMsIHdpdGggcmVzcG9uc2VzLg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+
ID4gPiA+ID4gICAgU2hvdWxkIGJlIGNsZWFyIHNvbWV3aGVyZSB0aGF0DQo+ID4gPg0KPiA+ID4g
PiA+ID4gPiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5kIG90aGVyIHJlc291cmNlcywgYW5kIE5B
Q00gbm90DQo+ID4gPiA+ID4gPiA+IGNvbnNpZGVyZWQNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg
IHRvIGJlIGEgcmVzb3VyY2UuDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4g
PiBJZiBOQUNNIGlzIGFjdGl2ZSwgaXQgbmVlZHMgdG8gYmUgZm9sbG93ZWQuICBUaGUgdGV4dCB3
ZSBoYXZlDQo+ID4gPiA+ID4gPiBmb3INCj4gPiA+DQo+ID4gPiA+ID4gPiBOQUNNIGlzIGluIFNl
Y3Rpb24gNS40LiAgRG8geW91IHNlZSBzb21ldGhpbmcgZWxzZSBzcGVjaWZpYyB0bw0KPiA+ID4N
Cj4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbiBzdXNwZW5zaW9uIG5lZWRlZCBoZXJlPyAgKE1heWJl
IEkgYW0gbm90IGdldHRpbmcNCj4gPiA+ID4gPiA+IHlvdXINCj4gPiA+DQo+ID4gPiA+ID4gPiBw
b2ludC4pDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBObyAtLSBPSyB0
byBsZWF2ZSBOQUNNIGFzIHRlcm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cyAoSXMgdGhlcmUNCj4g
PiA+ID4gPiA+IGFuDQo+ID4gPg0KPiA+ID4gPiA+ID4gZXJyb3IgaWRlbnRpdHkgZm9yIHRoaXMg
ZXZlbnQ/KQ0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBUaGUgaWRlbnRpdHkg
d2hpY2ggYXBwbGllcyBoZXJlIGlzICJzdHJlYW0tdW5hdmFpbGFibGUiLiAgVGhpcyBpcw0KPiA+
ID4gPiA+IHRoZQ0KPiA+ID4NCj4gPiA+ID4gPiBzYW1lIGlkZW50aXR5IHdoaWNoIHdvdWxkIGJl
IHVzZWQgaWYgYSBzdWJzY3JpYmVyIGhhZCBuZXZlcg0KPiA+ID4gPiA+IHN1ZmZpY2llbnQNCj4g
PiA+DQo+ID4gPiA+ID4gcGVybWlzc2lvbnMgaW4gdGhlIGZpcnN0IHBsYWNlLiAgSSBkb24ndCBi
ZWxpZXZlIHdlIHdvdWxkIHdhbnQgdG8NCj4gPiA+DQo+ID4gPiA+ID4gcmV0dXJuIGFuIGlkZW50
aXR5IHNwZWNpZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBlcm1pc3Npb25zIGhhdmUNCj4gPiA+ID4g
PiBqdXN0DQo+ID4gPg0KPiA+ID4gPiA+IGJlZW4gY2hhbmdlZC4NCj4gPiA+DQo+ID4gPiA+ID4N
Cj4gPiA+DQo+ID4gPiA+ID4gPiA+IEkzKSBzZWMgMi4xIHBhcmEgNjoNCj4gPiA+DQo+ID4gPiA+
ID4gPiA+ICAgIEV2ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVsaXZlcmVkIHRvIGEgcmVjZWl2
ZXIgaW4gYQ0KPiA+ID4gPiA+ID4gPiBkaWZmZXJlbnQNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg
IG9yZGVyIHRoYW4gdGhleSB3ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPiA+
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgIC0tIGRvZXMgdGhpcyBhcHBs
eSB0byBzdWJzY3JpcHRpb24tc3RhdGU/IFRoaW5rIG5vdCwgdGhleQ0KPiA+ID4gPiA+ID4gPiBh
cmUgbm90IGV2ZW50cw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIHBsYWNlZCBpbiBldmVudCBz
dHJlYW0uDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBBZ3JlZSB0aGF0
IHRoZXkgYXJlIG5vdCBvbiB0aGUgZXZlbnQgc3RyZWFtLiAgU28gdGhleSBkbyBub3QNCj4gPiA+
ID4gPiA+IHZpb2xhdGUNCj4gPiA+DQo+ID4gPiA+ID4gPiB0aGlzIHJlcXVpcmVtZW50Lg0KPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gQWRkaXRpb25hbGx5IHRoZXJlIGlz
IHN1cHBvcnRpbmcgdGV4dCBpbiAiU2VjdGlvbiAyLjc6DQo+ID4gPiA+ID4gPiBzdWJzY3JpcHRp
b24NCj4gPiA+DQo+ID4gPiA+ID4gPiBzdGF0ZSBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4u
DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiAiIEluc3RlYWQsIHRoZXkg
YXJlIGluc2VydGVkIChhcyBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbikgd2l0aGluDQo+ID4gPiA+
ID4gPiB0aGUNCj4gPiA+DQo+ID4gPiA+ID4gPiBzZXF1ZW5jZSBvZiBub3RpZmljYXRpb24gbWVz
c2FnZXMgc2VudCB0byBhIHBhcnRpY3VsYXIgcmVjZWl2ZXIuIg0KPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgTmVlZCB0byBhbGxvdyBlbmRlZCBvciBzdXNwZW5k
ZWQgdG8gYmUgc2VudA0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIGhlYWQtb2YtbGluZSB3aGVu
ZXZlciBzdGF0ZSBjaGFuZ2VzDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4g
PiBJIGFtIG5vdCBzdXJlIHRoYXQgc3VzcGVuZGVkIHNob3VsZCBhbHdheXMgYmUgc2VudCBoZWFk
LW9mLWxpbmUuDQo+ID4gPg0KPiA+ID4gPiA+ID4gQ29uc2lkZXINCj4gPiA+DQo+ID4gPiA+ID4g
PiB0aGF0IGltcGxlbWVudGF0aW9uIG1pZ2h0IHdhbnQgdG8gbGV0IHRoZSBleGlzdGluZyBxdWV1
ZSBvZg0KPiA+ID4gPiA+ID4gZmlsdGVyZWQNCj4gPiA+DQo+ID4gPiA+ID4gPiBldmVudCByZWNv
cmRzIGJlIHNlbnQgaWYgaXMgZmlsdGVyIGNvbXBsZXhpdHkgY2F1c2luZyB0aGUgQ1BVIGlzc3Vl
Lg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoYXQgY291bGQgYmUgZGlmZmVyZW50IHRoYW4gaWYgaXQg
aXMgYSBiYW5kd2lkdGggaXNzdWUgZHJpdmluZw0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPg0KPiA+
ID4gPiA+ID4gc3VzcGVuc2lvbiwgYW5kIHlvdSBkZWZpbml0ZWx5IHdhbnQgdGhlICdzdWJzY3Jp
cHRpb24tc3VzcGVuZGVkJw0KPiA+ID4gPiA+ID4gdG8NCj4gPiA+DQo+ID4gPiA+ID4gPiBiZSBw
bGFjZWQgYXQgdGhlIGhlYWQgb2YgbGluZS4NCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gSXQgaXMgdXAgdG8gdGhlIHB1Ymxpc2hlciB0
byBkZWNpZGUgd2hlbiB0byBzdG9wIHNlbmRpbmcgZXZlbnRzDQo+ID4gPiA+ID4gPiBvbiBhDQo+
ID4gPg0KPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLg0KPiA+ID4NCj4gPiA+ID4gPiA+IE9idmlv
dXNseSB0aGUgcHVibGlzaGVyIGNhbm5vdCB3YWl0IHVudGlsIHRoZSBzdWJzY3JpcHRpb24gaXMg
aWRsZS4NCj4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdldHRpbmcgc3VzcGVu
ZGVkIGlzIGl0IGlzIGZhciBmcm9tIGlkbGUNCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4g
PiA+ID4gPiA+IFNvIGFsc28gdXAgdG8gdGhlIHB1Ymxpc2hlciB3cnQvIHdoYXQgdG8gZG8gd2l0
aCBhbnkgZXZlbnRzIHRoYXQNCj4gPiA+DQo+ID4gPiA+ID4gPiBoYXZlIG5vdCBiZWVuIGRlbGl2
ZXJlZCB5ZXQgb24gYSBzdWJzY3JpcHRpb24uICBDb3VsZCBkZWxldGUNCj4gPiA+ID4gPiA+IHRo
ZW0gb3INCj4gPiA+DQo+ID4gPiA+ID4gPiBzYXZlIHRoZW0gZm9yIHdoZW4gbW9yZSBiYW5kd2lk
dGggYXZhaWxhYmxlIChmb3IgZXhhbXBsZSkNCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4g
PiA+ID4gQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiAgSXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0
aGUgZHJhZnQgaGVyZT8NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gLi4uDQo+
ID4gPg0KPiA+ID4gPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVudGF0
aW9uIHRvIGRlY2lkZSBpZiBzb21lDQo+ID4gPg0KPiA+ID4gPiA+ID4gdW4tdHJhbnNtaXR0ZWQg
cXVldWUgb2YgZXZlbnQgcmVjb3JkcyBzaG91bGQgYmUgZmx1c2hlZCBhbmQNCj4gPiA+DQo+ID4g
PiA+ID4gPiByZXByb2Nlc3NlZCBiYXNlZCBvbiB0aGUgbW9kaWZpY2F0aW9uLiAgSSBkbyBub3Qg
ZXhwZWN0IHRoaXMNCj4gPiA+ID4gPiA+IHdvdWxkDQo+ID4gPg0KPiA+ID4gPiA+ID4gcG9wdWxh
ciwgYXMgYSByZXBsYXkgc3Vic2NyaXB0aW9uIGNvdWxkIGFjY29tcGxpc2ggdGhpcyBzYW1lDQo+
ID4gPg0KPiA+ID4gPiA+ID4gZnVuY3Rpb25hbCBuZWVkLg0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPg0KPiA+ID4gPiA+ID4gQWdyZWVkIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gY2FuIGRyb3Ag
YXQgYW55IHRpbWUgYW5kIGluY3JlbWVudA0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPg0KPiA+ID4g
PiA+ID4gYXBwcm9wcmlhdGUgY291bnRlcnMuIEl0IHdpbGwgdHJ5IHRvIHRvIGRvIHRoaXMsIGJ1
dCBubw0KPiA+ID4gPiA+ID4gcmVxdWlyZW1lbnRzDQo+ID4gPg0KPiA+ID4gPiA+ID4gZXhjZXB0
IG1heWJlIHN1YnNjcmlwdGlvbiBldmVudHMgbGlrZSAncmVwbGF5LWNvbXBsZXRlZCcgY2Fubm90
DQo+ID4gPiA+ID4gPiBiZQ0KPiA+ID4NCj4gPiA+ID4gPiA+IGRyb3BwZWQNCj4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gSGF2ZSBwdXQgYSBtaW5vciB0d2VhayBpbnRvIFNlY3Rp
b24gMi43Og0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBbb2xkXSAgc3Vic2Ny
aXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZSBmaWx0ZXJlZA0KPiA+
ID4gPiA+IG91dA0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBbbmV3XSBzdWJz
Y3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fubm90IGJlIGRyb3BwZWQgb3IN
Cj4gPiA+DQo+ID4gPiA+ID4gZmlsdGVyZWQgb3V0DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0K
PiA+ID4gPiA+IC4uLg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoaW5raW5nIG1vcmUgb24geW91ciBw
b2ludCwgaXQgbWlnaHQgYmUgd29ydGggdHdlYWtpbmcgYSBjb3VwbGUNCj4gPiA+DQo+ID4gPiA+
ID4gPiB3b3JkcyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVudCBvZg0KPiA+ID4N
Cj4gPiA+ID4gPiA+ICJzdWJzY3JpcHRpb24tc3VzcGVuZGVkIi4NCj4gPiA+DQo+ID4gPiA+ID4g
Pg0KPiA+ID4NCj4gPiA+ID4gPiA+ICAgICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVk
IGZvciBzZW5kaW5nIGFmdGVyIHRoZQ0KPiA+ID4gPiA+ID4gaXNzdWFuY2Ugb2YNCj4gPiA+DQo+
ID4gPiA+ID4gPiAgICB0aGlzDQo+ID4gPg0KPiA+ID4gPiA+ID4gICAgc3Vic2NyaXB0aW9uIHN0
YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMgc3VnZ2VzdGVk
IGNoYW5nZT8NCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IE5vdCBzdXJl
IC0tIGl0IG5lZWRzIHRvIGJlIGNsZWFyIHRoYXQgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCBpcw0K
PiA+ID4gPiA+ID4gdGhlDQo+ID4gPg0KPiA+ID4gPiA+ID4gbGFzdCBldmVudCBzZW50IGJlZm9y
ZSBzdXNwZW5kaW5nIGFuZCBzdWJzY3JpcHRpb24tcmVzdW1lZCBpcw0KPiA+ID4gPiA+ID4gdGhl
DQo+ID4gPg0KPiA+ID4gPiA+ID4gZmlyc3QgZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZy
b20gc3VzcGVuZGVkIHRvIGFjdGl2ZS4NCj4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgbmV4dCBldmVu
dCBjb3VsZCBhbHNvIGJlIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiA+ID4NCj4gPiA+ID4g
Pg0KPiA+ID4NCj4gPiA+ID4gPiBJIGRvIHRoaW5rIHRoaXMgcG9zc2liaWxpdHkgaXMgY292ZXJl
ZCBpbiB0aGUgdGV4dC4gIEZvciBTZWN0aW9uDQo+ID4gPiA+ID4gMi43LjQNCj4gPiA+DQo+ID4g
PiA+ID4gc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCB0aGUgY3VycmVudCB0ZXh0IGlzOg0KPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiAiTm8gZnVydGhlciBub3RpZmljYXRpb24gd2ls
bCBiZSBzZW50IHVudGlsIHRoZSBzdWJzY3JpcHRpb24NCj4gPiA+ID4gPiByZXN1bWVzDQo+ID4g
Pg0KPiA+ID4gPiA+IG9yIGlzIHRlcm1pbmF0ZWQuIg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiBBbmQgU2VjdGlvbiAyLjcuNSBzdWJzY3JpcHRpb24tcmVzdW1lZCBzYXlzIjoN
Cj4gPiA+DQo+ID4gPiA+ID4gIlN1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBnZW5lcmF0ZWQgYWZ0
ZXIgdGhlIGlzc3VhbmNlIG9mIHRoaXMNCj4gPiA+DQo+ID4gPiA+ID4gc3Vic2NyaXB0aW9uIHN0
YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gPiA+DQo+ID4gPiA+
ID4NCj4gPiA+DQo+ID4gPiA+ID4gQmFzZWQgb24gdGhlIGRpc2N1c3Npb24sIEkgY2FuIG1ha2Ug
aXQ6DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50
IHJlY29yZHMgYXJlIGFnYWluIHBlcm1pdHRlZCB0byBiZSBzZW50IGZvbGxvd2luZw0KPiA+ID4N
Cj4gPiA+ID4gPiB0aGlzIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uLiIN
Cj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gSXMgdGhpcyBzdWZmaWNpZW50IGZv
ciB5b3U/DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IC4uLg0KPiA+ID4NCj4g
PiA+ID4gPiA+ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQo+ID4gPg0KPiA+ID4gPiA+
ID4gPiAgIC0tIGNvbmNlcm4gYWJvdXQgYSBzdWJzY3JpcHRpb24tc3BlY2lmaWMgZXJyb3IgcmVw
b3J0aW5nDQo+ID4gPiA+ID4gPiA+IHN5c3RlbQ0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBt
dXN0IG1ha2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzIHVzZWQNCj4g
PiA+DQo+ID4gPiA+ID4gPiA+IGNvcnJlY3RseQ0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPg0K
PiA+ID4gPiA+ID4gWWVzLiAgV2UgaGF2ZSBkb25lIG91ciBiZXN0IHRvIGludGVncmF0ZSB3aXRo
IHRoZSBlbWJlZGRlZA0KPiA+ID4gPiA+ID4gTkVUQ09ORg0KPiA+ID4NCj4gPiA+ID4gPiA+IGFu
ZCBSRVNUQ09ORiBtZWNoYW5pc21zLiAgVGhlcmUgaXMgbXVjaCBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uDQo+ID4gPiA+ID4gPiBpbg0KPiA+ID4NCj4gPiA+ID4gPiA+IHRoZSB0cmFuc3BvcnQgZHJh
ZnRzIGhlcmUuDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgLS0g
VGhlIGVycm9yLXRhZyB2YWx1ZSBuZWVkcyB0byBiZSBpZGVudGlmaWVkIGZvciBlYWNoICdyZWFz
b24nDQo+ID4gPg0KPiA+ID4gPiA+ID4gPiBpZGVudGl0eQ0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPg0KPiA+ID4gPiA+ID4gVGhpcyBpcyBkb25lIGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzLiAg
RS5nLiwgc2VlDQo+ID4gPg0KPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYt
ZXZlbnQtDQo+ID4gPg0KPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9ucyBTZWN0aW9uIDcNCj4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IEkgZG8gbm90IGFncmVlIHRoaXMgaXMg
YSBnb29kIGlkZWEuDQo+ID4gPg0KPiA+ID4gPiA+ID4gRWFjaCBlcnJvciBpZGVudGl0eSBzaG91
bGQgc2ltcGx5IHN0YXRlIHRoZSByZXF1aXJlZCAiZXJyb3ItdGFnIg0KPiA+ID4NCj4gPiA+ID4g
PiA+IHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMgaXMgZXhwZWN0ZWQg
b2YgcHJvdG9jb2wNCj4gPiA+DQo+ID4gPiA+ID4gPiBvcGVyYXRpb25zIHRoYXQgYXJlIGFkZGVk
IHRvIE5FVENPTkYgYW5kIFJFU1RDT05GLg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+
ID4gPiBJbiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zLCBz
ZWN0aW9uIDcsIHRoZQ0KPiA+ID4NCj4gPiA+ID4gPiByZXF1aXJlZCAiZXJyb3ItdGFnIiBpcyBp
ZGVudGlmaWVkIGFzICJvcGVyYXRpb24tZmFpbGVkIi4gIElmIHdlDQo+ID4gPg0KPiA+ID4gPiA+
IGluc3RlYWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIgaW5mb3JtYXRpb24gaW4gdGhlIFlBTkcg
bW9kZWwsDQo+ID4gPiA+ID4gdGhlbiB3ZQ0KPiA+ID4NCj4gPiA+ID4gPiBoYXZlIHRpZWQgdGhl
IFlBTkcgbW9kZWwgdG8gdGhlIFJFU1RDT05GIGFuZCBORVRDT05GIHRyYW5zcG9ydHMuDQo+ID4g
Pg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gQm90aCBORVRDT05GIGFuZCBSRVNUQ09O
RiB1c2UgYSBjb21wYXRpYmxlIGVycm9yIHJlcG9ydGluZyBkYXRhDQo+ID4gPg0KPiA+ID4gPiA+
ID4gc3RydWN0dXJlLg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoZSAiZXJyb3ItdGFnIiBpcyB1c2Vk
IGluIGJvdGggb2YgdGhlbS4gIElNTyBjbGllbnQgZGV2ZWxvcGVycw0KPiA+ID4gPiA+ID4gZG8N
Cj4gPiA+DQo+ID4gPiA+ID4gPiBub3Qgd2FudCBhIGRpZmZlcmVudCBzZXQgb2YgZXJyb3IgY29k
ZXMgZm9yIHRoZSBzYW1lIGVycm9yDQo+ID4gPiA+ID4gPiBjb25kaXRpb25zLg0KPiA+ID4NCj4g
PiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90
aWYgU2VjdGlvbiAzLjMgYWxzbyByZXF1aXJlcyBhbg0KPiA+ID4NCj4gPiA+ID4gPiAiZXJyb3It
dGFnIiBub2RlIG9mICJvcGVyYXRpb24tZmFpbGVkIi4gIFNvIHdlIHVzZWQgdGhlIHRyYW5zcG9y
dA0KPiA+ID4NCj4gPiA+ID4gPiBkcmFmdHMgcmF0aGVyIHRoYW4gdGhlIFlBTkcgbW9kZWwgdG8g
c3VwcG9ydCB0aGUgc2FtZSBlcnJvciBjb2Rlcw0KPiA+ID4gPiA+IGZvcg0KPiA+ID4NCj4gPiA+
ID4gPiB0aGUgc2FtZSBlcnJvciBjb25kaXRpb25zLg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiA+IEkgYWdyZWUgdGhhdCB0cmFuc3BvcnQgZHJhZnRzIGNvdWxkIGRlZmluZSB0
aGVpciBvd24gZXJyb3INCj4gPiA+DQo+ID4gPiA+ID4gPiBpZGVudGl0aWVzLCB3aGljaCB3b3Vs
ZCBkb2N1bWVudCB0aGUgZXhwZWN0ZWQgZXJyb3ItdGFnIHRoZXJlLg0KPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIDIuICAibW9k
aWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyI6IFRoaXMgTVVTVCBiZQ0KPiA+ID4g
PiA+ID4gPiByZXR1cm5lZA0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIHdpdGggdGhlIGxl
YWYgInJlYXNvbiIgcG9wdWxhdGVkIGlmIGFuIFJQQyBlcnJvciByZWFzb24NCj4gPiA+ID4gPiA+
ID4gaGFzIG5vdA0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIGJlZW4gcGxhY2VkIGVsc2V3
aGVyZSB3aXRoaW4gdGhlIHRyYW5zcG9ydCBwb3J0aW9uIG9mIGENCj4gPiA+ID4gPiA+ID4gZmFp
bGVkDQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgIm1vZGlmeS1zdWJzY3JpcHRpb24iIFJQ
QyByZXNwb25zZS4gIFRoaXMgTVVTVCBiZSBzZW50DQo+ID4gPiA+ID4gPiA+IGlmDQo+ID4gPg0K
PiA+ID4gPiA+ID4gPiBoaW50cw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiA+ICAgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAicGxh
Y2VkIGVsc2V3aGVyZSINCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgIHRleHQgbWVhbnM7IG5v
dCBhcHByb3ByaWF0ZSBmb3IgTVVTVDsNCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+
ID4gPiA+IEluc3RlYWQgb2YgInBsYWNlZCBlbHNld2hlcmUiLCBob3cgYWJvdXQ6ICJwbGFjZWQg
aW4NCj4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+ID4NCj4gPiA+ID4gPiA+IHRyYW5zcG9y
dCBkb2N1bWVudCBkZWZpbmVkIG9iamVjdCIuICBXb3VsZCB0aGlzIGJlIHN1ZmZpY2llbnQ/DQo+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBObyAtLSBORVRDT05GIGFuZCBS
RVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvciByZXBvcnRpbmcuDQo+ID4gPg0KPiA+ID4g
PiA+ID4gVGhlIHNlcnZlciByZXF1aXJlbWVudHMgZm9yIHRoaXMgZXJyb3IgcmVwb3J0aW5nIG11
c3QgYmUgZG9jdW1lbnRlZC4NCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+
IEkgYWdyZWUgd2l0aCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoOg0KPiA+ID4NCj4gPiA+ID4gPiA+
ICAgLSBlYWNoIG9wZXJhdGlvbiBNVVNUIGlkZW50aWZ5IHRoZSBlcnJvci10YWdzIHRoYXQgYXJl
DQo+ID4gPiA+ID4gPiBleHBlY3RlZCBmb3INCj4gPiA+DQo+ID4gPiA+ID4gPiAgICAgdmFyaW91
cyBlcnJvciBjb25kaXRpb25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMgNjI0MSkNCj4gPiA+DQo+
ID4gPiA+ID4gPiAgIC0gdGhlIHNlcnZlciBNVVNUIHJldHVybiB0aGUgc3BlY2lmaWVkIGVycm9y
LXRhZ3MuIElmIGENCj4gPiA+ID4gPiA+IGNvbmRpdGlvbiBub3QNCj4gPiA+DQo+ID4gPiA+ID4g
PiAgIC0gZXhwbGljaXRseQ0KPiA+ID4NCj4gPiA+ID4gPiA+ICAgICBkZWZpbmVkIHRoZW4gdGhl
IHNlcnZlciBNVVNUIHBpY2sgdGhlIGFwcHJvcHJpYXRlIGVycm9yLXRhZw0KPiA+ID4gPiA+ID4g
ZnJvbSBSRkMNCj4gPiA+DQo+ID4gPiA+ID4gPiAgICAgNjI0MQ0KPiA+ID4NCj4gPiA+ID4gPiA+
ICAtIHRoZSBzZXJ2ZXIgTUFZIGluY2x1ZGUgdGhlIHNwZWNpZmllZCByYzp5YW5nLWRhdGEgaW4g
dGhlDQo+ID4gPg0KPiA+ID4gPiA+ID4gPGVycm9yLWluZm8+DQo+ID4gPg0KPiA+ID4gPiA+ID4g
IC0gZGF0YQ0KPiA+ID4NCj4gPiA+ID4gPiA+IHN0cnVjdHVyZQ0KPiA+ID4NCj4gPiA+ID4gPiA+
ICAtIHRoZSBzZXJ2ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlhbmctZGF0YSB0byBy
ZXBvcnQNCj4gPiA+ID4gPiA+IGhpbnRzDQo+ID4gPg0KPiA+ID4gPiA+ID4gIC0gZm9yIHByb3Rv
Y29scyBvdGhlciB0aGFuIE5FVENPTkYgYW5kIFJFU1RDT05GLCB0aGV5IGNhbiBtYXANCj4gPiA+
DQo+ID4gPiA+ID4gPiBlcnJvci10YWcNCj4gPiA+DQo+ID4gPiA+ID4gPiAgLSBvcg0KPiA+ID4N
Cj4gPiA+ID4gPiA+IGlnbm9yZSBpdCwNCj4gPiA+DQo+ID4gPiA+ID4gPiAgICBidXQgdGhlIGRv
Y3VtZW50IGRlZmluaW5nIHRoZSBwcm90b2NvbCBvcGVyYXRpb24gTVVTVCBwcm92aWRlDQo+ID4g
Pg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IEZ1bmN0aW9uYWxseSwgZXZlcnl0aGluZyB5
b3UgYXNrIGZvciBpcyBmdWxseSBjb3ZlcmVkIHdoZW4geW91DQo+ID4gPiA+ID4gaW5jbHVkZQ0K
PiA+ID4NCj4gPiA+ID4gPiBjb25zaWRlciBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVu
dC1ub3RpZmljYXRpb25zIChzZWN0aW9uDQo+ID4gPiA+ID4gNykNCj4gPiA+DQo+ID4gPiA+ID4g
YW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiAoc2VjdGlvbiAzLjMpLg0KPiA+
ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBNeSByZWFkIG9mIHRoZSBpc3N1ZSBpcyB0
aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QgYmUNCj4gPiA+ID4gPiBzcGVjaWZpZWQN
Cj4gPiA+DQo+ID4gPiA+ID4gaW4gdGhlIFlBTkcgbW9kZWwuICBJIGJlbGlldmUgdGhhdCAiZXJy
b3ItdGFnIiBzaG91bGRuJ3QgYmUgaW4gdGhlDQo+ID4gPg0KPiA+ID4gPiA+IFlBTkcgbW9kZWwg
YmVjYXVzZSB0aGF0IHdvdWxkIHRpZSB0aGUgbW9kZWwgdG8gYSB0cmFuc3BvcnQgdHlwZS4NCj4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gQW55IHRob3VnaHRzIG9uIGhvdyB3ZSBt
aWdodCBjbG9zZSB0aGlzPyAgSWYgYWJzb2x1dGVseSByZXF1aXJlZCBJDQo+ID4gPg0KPiA+ID4g
PiA+IGNvdWxkIHBsYWNlIGEgbmV3IGNvbW1lbnQgbGluZSBpbiB0aGUgWUFORyBtb2RlbCB1bmRl
cg0KPiA+ID4NCj4gPiA+ID4gPiAvKiBJZGVudGl0aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlv
biBlcnJvcnMgKi8NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gVGhlIGNvbW1l
bnQgd291bGQgYmUgc29tZXRoaW5nIGxpa2U6DQo+ID4gPg0KPiA+ID4gPiA+IC8qIFdoZW4gdXNl
ZCB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GIFJQQ3M6DQo+ID4gPg0KPiA+ID4gPiA+ICAgICAi
ZXJyb3ItdHlwZSIgbm9kZSB0byBiZSB1c2VkIGlzICJhcHBsaWNhdGlvbiINCj4gPiA+DQo+ID4g
PiA+ID4gICAgICAiZXJyb3ItdGFnIiBtdXN0IGJlICJvcGVyYXRpb24tZmFpbGVkIi4gICovDQo+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IFRoaXMgc2VlbXMgaW5jb25ncnVvdXMu
ICBKdXN0IHRocm93aW5nIGl0IG91dCBhcyBhIHN1Z2dlc3Rpb24uDQo+ID4gPg0KPiA+ID4gPiA+
DQo+ID4gPg0KPiA+ID4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSAtdjIxIHdvcmRpbmcgcmVzdWx0
cyBmcm9tIHRoZSBhdHRlbXB0ZWQNCj4gPiA+ID4gPiA+IGJhbGFuY2luZw0KPiA+ID4NCj4gPiA+
ID4gPiA+IHRoZSBXRyByZXF1ZXN0cyBmb3I6DQo+ID4gPg0KPiA+ID4gPiA+ID4gKiBtZXJnaW5n
IHdpdGggdHJhbnNwb3J0IHByb3RvY29sIGVycm9yIG1lY2hhbmlzbXMNCj4gPiA+DQo+ID4gPiA+
ID4gPiAqIFdHIGxlYWRlcnNoaXAgZ3VpZGFuY2UgdG8gcHJvdmlkZSByZXF1aXJlbWVudHMgZm9y
IHRyYW5zcG9ydA0KPiA+ID4NCj4gPiA+ID4gPiA+IGRvY3VtZW50cw0KPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIE9ubHkgMyBmaWVsZHMgc2VlbQ0KPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gICAgICAgdG8gYmUgcmVsZXZhbnQgKGVycm9yLXRhZywgZXJyb3ItYXBw
LXRhZywgZXJyb3ItaW5mbykuDQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICBQcm90Y29sIG9w
ZXJhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGRvY3VtZW50IHNlcnZlcg0KPiA+ID4gPiA+ID4gPiBy
ZXF1aXJlbWVudHMNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgIGZvciB0aGVzZSAzIGZpZWxk
cywgaWYgYXBwbGljYWJsZS4gIE9ubHkgdGhlIGVycm9yLXRhZw0KPiA+ID4NCj4gPiA+ID4gPiA+
ID4gICAgICAgaXMgbWFuZGF0b3J5LXRvLXVzZS4NCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiA+IEhvcGVmdWxseSB0aGVzZSBhcmUgY292ZXJlZCBzdWZmaWNpZW50bHkgd2hl
biB0aGlzIGRvY3VtZW50IGlzDQo+ID4gPg0KPiA+ID4gPiA+ID4gY291cGxlZCB3aXRoIHRoZSBO
RVRDT05GIGFuZCBSRVNUQ09ORiBOb3RpZiB0cmFuc3BvcnQgZG9jdW1lbnRzLg0KPiA+ID4NCj4g
PiA+ID4gPiA+IEZvciBvdGhlciB0cmFuc3BvcnRzLCB0aGUgdGFncyB5b3UgaWRlbnRpZnkgYWJv
dXQgd291bGQgbm90IGJlDQo+ID4gPg0KPiA+ID4gPiA+ID4gYXBwbGljYWJsZS4NCj4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAtLSB0aGUgZXJyb3IgYXNzaWdubWVu
dHMgYXJlIGV4dHJlbWVseSBzcGVjaWZpYy4gZS5nLiwgaXQgaXMNCj4gPiA+ID4gPiA+ID4gbm90
DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHBvc3NpYmxlIGZvciA8a2lsbC1zdWJzY3JpcHRp
b24+IHRvIGZhaWwgd2l0aCBhbg0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAnaW5zdWZmaWNp
ZW50LXJlc291cmNlcycgZXJyb3I7DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiBUaGlzIGlzIHRoZSBpbnRlbnQgb2YgdGhlIGJhc2Ugc3BlY2lmaWNhdGlvbiwgZS5nLiwg
d2UgZG9uJ3QNCj4gPiA+ID4gPiA+IGJlbGlldmUNCj4gPiA+DQo+ID4gPiA+ID4gPiBhDQo+ID4g
Pg0KPiA+ID4gPiA+ID4ga2lsbC0NCj4gPiA+DQo+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24gc2hv
dWxkIGZhaWwgZm9yIGFuIGluc3VmZmljaWVudC1yZXNvdXJjZXMgcmVhc29uLg0KPiA+ID4gPiA+
ID4gQnV0DQo+ID4gPg0KPiA+ID4gPiA+ID4gdmVuZG9ycyBtaWdodCBkZXNpcmUgbW9yZSBzcGVj
aWZpY2l0eS4gIEFzIGEgcmVzdWx0IGlzIGNlcnRhaW5seQ0KPiA+ID4gPiA+ID4gb2sNCj4gPiA+
DQo+ID4gPiA+ID4gPiBmb3IgdmVuZG9yIGltcGxlbWVudGF0aW9ucyB0byBhZGQgbmV3IGVycm9y
IGlkZW50aXRpZXMuDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBJTU8g
YW55dGhpbmcgY2FuIGZhaWwgZm9yIGluc3VmZmljaWVudCByZXNvdXJjZXMuIFRoYXQgaXMgdmVy
eQ0KPiA+ID4NCj4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uLQ0KPiA+ID4NCj4gPiA+ID4gPiA+
IHNwZWNpZmljLg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBJbnN0ZWFkIG9m
IGltcGxlbWVudGF0aW9uIHNwZWNpZmljIEkgd291bGQgY2FsbCBpdCBhcHBsaWNhdGlvbg0KPiA+
ID4NCj4gPiA+ID4gPiBzcGVjaWZpYy4gIFJpZ2h0IG5vdyB3ZSBkb24ndCBoYXZlIGEgY2F0Y2gt
YWxsIGVycm9yLWlkZW50aXR5IG9mDQo+ID4gPg0KPiA+ID4gPiA+ICdvdGhlci1lcnJvcicuICBX
ZSBwcmVmZXJyZWQgdGhhdCBlcnJvciBjb25kaXRpb25zIGJleW9uZCB0aGUNCj4gPiA+ID4gPiBj
dXJyZW50DQo+ID4gPg0KPiA+ID4gPiA+IG9uZXMgbGlzdGVkIGNvdWxkIGJlIGluY2x1ZGVkIGJ5
IHZlbmRvcnMgYXMgbmVlZGVkLiAgRnVydGhlcg0KPiA+ID4NCj4gPiA+ID4gPiBkZXBsb3ltZW50
IGV4cGVyaWVuY2UgY291bGQgcmVzdWx0IGluIG5ldyBlcnJvciBpZGVudGl0aWVzDQo+ID4gPiA+
ID4gc3VyZmFjaW5nDQo+ID4gPg0KPiA+ID4gPiA+IGZvciBzdGFuZGFyZGl6YXRpb24gc2hvdWxk
IHRoaXMgZHJhZnQgY2F0Y2ggb24uDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+
ID4gPiAgICAgIERvIG5vdCBhZ3JlZSB0aGF0IHNjb3BpbmcgZWFjaA0KPiA+ID4NCj4gPiA+ID4g
PiA+ID4gICAgICBpZGVudGl0eSB0byBzcGVjaWZpYyBSUEMgb3BlcmF0aW9ucyBpcyBhIGdvb2Qg
aWRlYS4NCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoaXMgbGV2ZWwg
b2Ygc3BlY2lmaWNpdHkgd2FzIG5vdCB0aGUgYXV0aG9yJ3Mgb3JpZ2luYWwgcGxhbnMuDQo+ID4g
PiA+ID4gPiBOb3INCj4gPiA+DQo+ID4gPiA+ID4gPiB3YXMgdGhpcyBsZXZlbCBvZiBzcGVjaWZp
Y2l0eSBwYXJ0IG9mIGVhcmxpZXIgZHJhZnQgdmVyc2lvbnMgdXANCj4gPiA+DQo+ID4gPiA+ID4g
PiB0aHJvdWdoIC12MDguICBIb3dldmVyIG1lbWJlcnMgb2YgdGhlIFdHIG1hZGUgaXQgY2xlYXIg
dGhhdCBzdWNoDQo+ID4gPg0KPiA+ID4gPiA+ID4gc3BlY2lmaWNpdHkgd2FzIG5lY2Vzc2FyeSBm
b3IgZHJhZnQgcHJvZ3Jlc3Npb24uDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiA+ICAgLS0gaG93IGFyZSBlcnJvcnMgaW4gdGhlc2UgcGFyYW1ldGVycyByZXBvcnRlZCBm
b3INCj4gPiA+ID4gPiA+ID4gY29uZmlndXJlZA0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBz
dWJzY3JpcHRpb25zIHdoZW4gPGVkaXQtY29uZmlnPiBpcyB0aGUgUlBDIHRoYXQgaGFzIHRoZQ0K
PiA+ID4gPiA+ID4gPiAgICAgIGVycm9yPw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBIb3cg
YXJlIHRoZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvciBlZGl0LWNvbmZpZyBvciBjb21taXQN
Cj4gPiBlcnJvcnM/DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBOb25l
IG9mIHRoZXNlIHlhbmctZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzcGVjaWZpZWQgZm9yIHVzZSB3aXRo
DQo+ID4gPg0KPiA+ID4gPiA+ID4gPGVkaXQtY29uZmlnPiBvcGVyYXRpb25zLiAgRm9yIDxlZGl0
LWNvbmZpZz4sIHRoZSBjaGFuZ2UgdG8gYQ0KPiA+ID4NCj4gPiA+ID4gPiA+IGNvbmZpZ3VyZWQg
c3Vic2NyaXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZiBpdA0KPiA+
ID4gPiA+ID4gd2VyZQ0KPiA+ID4NCj4gPiA+ID4gPiA+IHNlbWFudGljYWxseSB2YWxpZC4gIEF0
IHRoaXMgcG9pbnQgdGhlIHN1YnNjcmlwdGlvbiBlbnRlcnMgdGhlDQo+ID4gPg0KPiA+ID4gPiA+
ID4gW2V2YWx1YXRlXSBwb2ludHMgb2YgRmlndXJlIDguICBJc3N1ZXMgZnJvbSB0aGlzIHBvaW50
IG91dCB3b3VsZA0KPiA+ID4gPiA+ID4gYmUNCj4gPiA+DQo+ID4gPiA+ID4gPiByZXBvcnRlZCB3
aXRoIGEgdmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xPRy4NCj4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IFNvIGhvdyBhcmUgaGludHMgcmVwb3J0ZWQg
Zm9yIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucz8NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+
ID4gPiA+ID4gVGhlcmUgaXMgbm90aGluZyBpbiB0aGUgc3BlY2lmaWNhdGlvbiB3aGljaCByZXF1
aXJlcyB0aGlzLiAgQW4NCj4gPiA+DQo+ID4gPiA+ID4gaW1wbGVtZW50YXRpb24gY291bGQgY2hv
b3NlIHRvIHBsYWNlIHRoZXNlIGluIHNvbWUgZm9ybSBvZiBTWVNMT0cuDQo+ID4gPg0KPiA+ID4g
PiA+IC4uLg0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gSTYpIHNlYyAyLjUsIHBhcmEgMzoNCj4gPiA+
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBPbiBhIHJlY2VpdmVyIG9m
IGENCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBw
b3J0IGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMNCj4gPiA+ID4gPiA+ID4gaXMNCj4gPiA+DQo+
ID4gPiA+ID4gPiA+ICAgIG9wdGlvbmFsIGV4Y2VwdCB3aGVyZSByZXBsYXlpbmcgbWlzc2VkIGV2
ZW50IHJlY29yZHMgaXMNCj4gPiA+ID4gPiA+ID4gICAgcmVxdWlyZWQuDQo+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAtLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0
IGluIDEuMzoNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgTm90ZSB0aGF0IHRoZXJlIGlzIG5v
IG1peGluZy1hbmQtbWF0Y2hpbmcgb2YgZHluYW1pYyBhbmQNCj4gPiA+ID4gPiA+ID4gY29uZmln
dXJlZA0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBvcGVyYXRpb25zIG9uIGEgc2luZ2xlIHN1
YnNjcmlwdGlvbi4gIFNwZWNpZmljYWxseSwgYQ0KPiA+ID4gPiA+ID4gPiBjb25maWd1cmVkDQo+
ID4gPg0KPiA+ID4gPiA+ID4gPiAgIC0tIGNsYXJpZnkgdGhlIHJlY2VpdmVyIG1heSBoYXZlIG11
bHRpcGxlIHN1YnNjcmlwdGlvbnMgaGVyZQ0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAtLSBub3Qg
Y2xlYXIgd2hhdCAiZXhjZXB0IHdoZXJlIHJlcGxheWluZy4uLiIgdGV4dCBtZWFucw0KPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gSG93IGFib3V0IHRoZSBmb2xsb3dpbmcg
dHdlYWs6DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiAiT24gYSByZWNl
aXZlciBvZiBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljDQo+
ID4gPg0KPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9ucyBpcyBvcHRpb25hbC4gIEhvd2V2ZXIgaWYg
cmVwbGF5aW5nIG1pc3NlZCBldmVudA0KPiA+ID4NCj4gPiA+ID4gPiA+IHJlY29yZHMgaXMgcmVx
dWlyZWQgZm9yIGEgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yDQo+ID4gPg0K
PiA+ID4gPiA+ID4gZHluYW1pYyBzdWJzY3JpcHRpb24gaXMgaGlnaGx5IHJlY29tbWVuZGVkLiAg
SW4gdGhpcyBjYXNlLCBhDQo+ID4gPg0KPiA+ID4gPiA+ID4gc2VwYXJhdGUgZHluYW1pYyBzdWJz
Y3JpcHRpb24gY2FuIGJlIGVzdGFibGlzaGVkIHRvIHJldHJhbnNtaXQNCj4gPiA+ID4gPiA+IHRo
ZQ0KPiA+ID4NCj4gPiA+ID4gPiA+IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQo+ID4gPg0KPiA+
ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBPSw0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiBDaGFuZ2UgbWFkZS4NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiA+IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1maWx0ZXI6IFttdWx0aXBsZSB1c2VzXQ0KPiA+
ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgVGhlIGV4
cHJlc3Npb24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBhdGgNCj4gPiA+ID4gPiA+
ID4gICAgICAgICAgICBjb250ZXh0Og0KPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4g
PiA+ID4gPiA+ICAgICAgICAgICAgICBvIFRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9u
cyBpcyB0aGUgc2V0IG9mDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICBwcmVmaXgNCj4gPiA+
DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgYW5kIG5hbWVzcGFjZSBwYWlycyBmb3Ig
YWxsIFlBTkcgbW9kdWxlcw0KPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRlZA0KPiA+ID4NCj4gPiA+
ID4gPiA+ID4gICAgICAgICAgICAgICAgICBieSB0aGUgc2VydmVyLCB3aGVyZSB0aGUgcHJlZml4
IGlzIHRoZSBZQU5HDQo+ID4gPiA+ID4gPiA+IG1vZHVsZQ0KPiA+ID4NCj4gPiA+ID4gPiA+ID4g
ICAgICAgICAgICAgICAgICBuYW1lIGFuZCB0aGUgbmFtZXNwYWNlIGlzIGFzIGRlZmluZWQgYnkg
dGhlDQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UnIHN0
YXRlbWVudCBpbiB0aGUgWUFORyBtb2R1bGUuDQo+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gICAtLSBUaGlzIHByZWZpeCBwcm9jZXNzaW5nIGlzIG5vdCBkb25lIGFu
eXdoZXJlIGVsc2UgaW4NCj4gPiA+ID4gPiA+ID4gTkVUQ09ORg0KPiA+ID4NCj4gPiA+ID4gPiA+
ID4gICAgICBvciBSRVNUQ09ORi4gIElNTyBhIGJhZCBwcmVjZWRlbnQuICBPbmx5IHRoZSBYTUwg
cHJlZml4ZXMNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgc2hvdWxkIGJlIHJlcXVpcmVkIGZv
ciBwcm9jZXNzaW5nIG9mIFhNTCBlbmNvZGluZy4gIFlBTkcNCj4gPiA+DQo+ID4gPiA+ID4gPiA+
ICAgICAgbW9kdWxlIHByZWZpeGVzIGFyZSBub3QgcmVxdWlyZWQgdG8gYmUgdW5pcXVlLCB1bmxp
a2UNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgdGhlIHByZWZpeCBtYXBwaW5ncyBpbiBYTUwN
Cj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoaXMgdGV4dCB3YXMgcHJv
cG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9mIHRoZSAieHBhdGgNCj4gPiA+DQo+ID4gPiA+
ID4gPiBleHByZXNzaW9ucyBpbiBKU09OIg0KPiA+ID4NCj4gPiA+ID4gPiA+IHRocmVhZCBsYXN0
IE9jdG9iZXIgaW4gTkVUTU9ELg0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+
ID4gSSBhbSBoYXBweSB0byBpbmNvcnBvcmF0ZSB3aGF0ZXZlciB0ZXh0IGlzIGFwcHJvcHJpYXRl
LiAgSSB3YXMNCj4gPiA+DQo+ID4gPiA+ID4gPiBob3BpbmcgdGhhdCB0aGUgc3VnZ2VzdGVkIHRl
eHQgd2FzIHN1ZmZpY2llbnQgZm9yIG5vdy4gIEtlbnQgaGFzDQo+ID4gPg0KPiA+ID4gPiA+ID4g
YWxyZWFkeSBpbmNvcnBvcmF0ZWQgdGhpcyBhcyBhbiBpc3N1ZSBmb3IgeWFuZy1uZXh0DQo+ID4g
Pg0KPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25ldG1vZC13Zy95YW5nLW5leHQvaXNz
dWVzLzU1DQo+ID4gPg0KPiA+ID4gPiA+ID4gU28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5vIGZpbmFs
IHByZWNlZGVudCBiZWluZyBjbGFpbWVkLg0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+
ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhhdCB0aGlzIFlBTkcgbW9kdWxlIHNob3VsZCBkZWZp
bmUgYSBuZXcgd2F5IHRvDQo+ID4gPg0KPiA+ID4gPiA+ID4gZW5jb2RlIFhQYXRoIGludG8gWE1M
IGluc3RhbmNlIGRvY3VtZW50cy4gVGhpcyB3aWxsIHJlcXVpcmUNCj4gPiA+DQo+ID4gPiA+ID4g
PiBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHNlcnZlciBpbXBsZW1lbnRhdGlvbnMuICBZQU5HIG1v
ZHVsZQ0KPiA+ID4gPiA+ID4gcHJlZml4ZXMNCj4gPiA+DQo+ID4gPiA+ID4gPiBhcmUgbm90IGV2
ZW4gcmVxdWlyZWQgdG8gYmUgdW5pcXVlIHNvIHRoZSBzZXQgb2YgcHJlZml4ZXMgdXNlZA0KPiA+
ID4gPiA+ID4gYnkNCj4gPiA+DQo+ID4gPiA+ID4gPiB0aGUgc2VydmVyIGluIFhNTCBpbnN0YW5j
ZSBkb2N1bWVudHMgbWF5IGJlIGRpZmZlcmVudCwgc2luY2UgaXQNCj4gPiA+ID4gPiA+IG11c3QN
Cj4gPiA+DQo+ID4gPiA+ID4gPiBiZSB1bmlxdWUuDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0K
PiA+ID4gPiA+IFNlZSBuZXh0IG5vdGUNCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiA+ICAgLS0gTk1EQSBhbGxvd3MgdGhlIHNhbWUgbW9kdWxlIHRvIGFwcGVhciBpbiBtdWx0
aXBsZQ0KPiA+ID4gPiA+ID4gPiBtb2R1bGUtc2V0cw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg
ICBhbmQgZGlmZmVyZW50IGluIGVhY2ggZGF0YXN0b3JlLiBUaGlzIHRleHQgYWJvdXQNCj4gPiA+
ID4gPiA+ID4gImltcGxlbWVudGVkIGJ5DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHRoZSBz
ZXJ2ZXIiIGRvZXMgbm90IHdvcmsgZm9yIE5NREENCj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiA+IEkgYW0gaGFwcHkgdG8gYWRvcHQgd2hhdGV2ZXIgdGV4dCBtZWV0cyBZQU5H
IGRvY3RvciBhcHByb3ZhbC4NCj4gPiA+ID4gPiA+IENhbg0KPiA+ID4NCj4gPiA+ID4gPiA+IHlv
dSBzdWdnZXN0Pw0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+
DQo+ID4gPiA+ID4gPiBSZW1vdmUgYWxsIHRleHQgYWJvdXQgWUFORyBwcmVmaXhlcyBhbmQgY29u
dGludWUgdXNpbmcgWE1MDQo+ID4gPiA+ID4gPiBlbmNvZGluZw0KPiA+ID4NCj4gPiA+ID4gPiA+
IHdpdGhvdXQgbW9kaWZpY2F0aW9uDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+
IEFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0
DQo+ID4gPiA+ID4gbW9kaWZpY2F0aW9uLA0KPiA+ID4NCj4gPiA+ID4gPiBJIGJlbGlldmUgdGhp
cyBpcyBhIGJsb2NrZXIuICBXaGF0IGlzIHRoZSBwcm9jZXNzIGZvciBZQU5HIG1vZGVsDQo+ID4g
Pg0KPiA+ID4gPiA+IHJldmlld3MgaW4gc3VjaCBhIGNhc2UuICBJIGFtIGhhcHB5IHRvIGFjY2Vw
dCB3aGF0ZXZlciBoZXJlLiAgQW55DQo+ID4gPg0KPiA+ID4gPiA+IHN1Z2dlc3Rpb25zIG9uIG5l
eHQgc3RlcHM/DQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IC4uLg0KPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUgYW4gZXhhbXBsZSBvZiBhIGNvbmZp
Z3VyYWJsZSBlbmNvZGluZw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gcHJvdmlkZWQNCj4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IEkgYW0gaGFwcHkgdG8gZW5oYW5jZSB0aGUg
ZGVmaW5pdGlvbiBZQU5HIG1vZGVsJ3MgaWRlbnRpdHkNCj4gPiA+DQo+ID4gPiA+ID4gPiBkZWZp
bml0aW9uIG9mICJjb25maWd1cmFibGUtZW5jb2RpbmciLiAgSSBjb3VsZCBkbyB0aGlzIGJ5DQo+
ID4gPiA+ID4gPiBhZGRpbmcNCj4gPiA+DQo+ID4gPiA+ID4gPiB0aGUgZm9sbG93aW5nIGFkZGl0
aW9uYWwgdGV4dCB0byB0aGUgZGVzY3JpcHRpb246ICJBbiBleGFtcGxlIG9mDQo+ID4gPiA+ID4g
PiBhDQo+ID4gPg0KPiA+ID4gPiA+ID4gY29uZmlndXJhYmxlIGVuY29kaW5nIG1pZ2h0IGJlIGEg
bmV3IGlkZW50aXR5IHN1Y2ggYXMgJ2VuY29kZS1jYm9yJy4NCj4gPiA+DQo+ID4gPiA+ID4gPiBT
dWNoIGFuIGlkZW50aXR5IGNvdWxkIHVzZQ0KPiA+ID4NCj4gPiA+ID4gPiA+ICdjb25maWd1cmFi
bGUtDQo+ID4gPg0KPiA+ID4gPiA+ID4gZW5jb2RpbmcnIGFzIGl0cyBiYXNlLiAgVGhpcyB3b3Vs
ZCBhbGxvdyBhIGR5bmFtaWMgc3Vic2NyaXB0aW9uDQo+ID4gPg0KPiA+ID4gPiA+ID4gZW5jb2Rl
ZCBpbiBKU09OIFtSRkMtODI1OV0gdG8gcmVxdWVzdCBub3RpZmljYXRpb24gbWVzc2FnZXMgYmUN
Cj4gPiA+DQo+ID4gPiA+ID4gPiBlbmNvZGVkIHZpYSBDQk9SIFtSRkMtIDcwNDldLiAgRnVydGhl
ciBkZXRhaWxzIGZvciBhbnkgc3BlY2lmaWMNCj4gPiA+DQo+ID4gPiA+ID4gPiBjb25maWd1cmFi
bGUgZW5jb2Rpbmcgd291bGQgYmUgZXhwbG9yZWQgaW4gYSB0cmFuc3BvcnQgZG9jdW1lbnQNCj4g
PiA+DQo+ID4gPiA+ID4gPiBiYXNlZCBvbiB0aGlzIHNwZWNpZmljYXRpb24uIiAgRG9lcyB0aGlz
IG1lZXQgeW91ciBhc2s/DQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPg0K
PiA+ID4NCj4gPiA+ID4gPiA+IE9LDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+
IEFkZGVkDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiBJMTEpIGV4dGVu
c2lvbiBzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uIHsNCj4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgVGhpcyBzdGF0ZW1lbnQgaXMgbm90IGZv
ciB1c2UNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBvdXRzaWRlIG9mIHRoaXMgWUFORyBt
b2R1bGUuIjsNCj4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgIC0t
IHRoaXMgdGV4dCBzaG91bGQgYmUgcmVtb3ZlZC4gVGhlcmUgaXMgbm8gdmFsdWUgaW4NCj4gPiA+
ID4gPiA+ID4gbGltaXRpbmcNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgdGhlIHNjb3BlIG9m
IHRoaXMgZXh0ZW5zaW9uLiAgSXQgcHJldmVudHMgZXZlbiB0aGlzIFdHDQo+ID4gPiA+ID4gPiA+
IGZyb20NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgY3JlYXRpbmcgYSBtb2R1bGUgdGhhdCB1
c2VzIHRoZSBleHRlbnNpb24gYWdhaW4uDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4g
PiA+ID4gPiBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBzaWduaWZpY2FudCBkZWJhdGUgaW4gdGhl
IFdHLiAgVGhlDQo+ID4gPiA+ID4gPiBhdXRob3JzDQo+ID4gPg0KPiA+ID4gPiA+ID4gZGlkIG5v
dCB3YW50IHRoaXMgcmVzdHJpY3Rpb24gZWl0aGVyLg0KPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g
Pg0KPiA+ID4gPiA+ID4gVG8gYmUgYWxsb3dlZCB0byBwcm9ncmVzcyB0aGUgZG9jdW1lbnQsIHdl
IGluc2VydGVkIHRoZSBkb2N1bWVudC4NCj4gPiA+DQo+ID4gPiA+ID4gPiBJZiB0aGlzIHJlYWxs
eSBpcyBtYW5kYXRvcnktdG8tcmVtb3ZlIGZyb20gYSBZQU5HIGRvY3Rvcg0KPiA+ID4NCj4gPiA+
ID4gPiA+IHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIHF1aWNrIGNsb3N1
cmUgb24gdGhpcw0KPiA+ID4gPiA+ID4gaXNzdWUNCj4gPiA+DQo+ID4gPiA+ID4gPiBiZXR3ZWVu
IFdHIGxlYWRlcnNoaXAgYW5kIHRoZSBZQU5HIGRvY3RvcnM/DQo+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IFRoZSBZQU5HIGxhbmd1YWdl
IG1ha2VzIG5vIHJlc3RyaWN0aW9ucyBhYm91dCBleHBvcnRpbmcgc3RhdGVtZW50cy4NCj4gPiA+
DQo+ID4gPiA+ID4gPiBJIGd1ZXNzIEkgbWlzc2VkIHRoYXQgZGViYXRlIHNvIEkgd2lsbCBqdXN0
IHNheSBPSyBhbmQgd29uZGVyDQo+ID4gPiA+ID4gPiB3aGF0DQo+ID4gPg0KPiA+ID4gPiA+ID4g
cHJvYmxlbSB0aGlzIGlzIHN1cHBvc2VkIHRvIHNvbHZlLiBJIGd1ZXNzIHRoZSBXRyB3YW50cyB0
byBnaXZlDQo+ID4gPiA+ID4gPiBZQU5HDQo+ID4gPg0KPiA+ID4gPiA+ID4gRG9jdG9ycyBtb3Jl
IHRoaW5ncyB0byBjaGVjay4gKFRoaXMgaXMgd2hhdCB3ZSBjYWxsZWQgYSBDTFIgaW4NCj4gPiA+
DQo+ID4gPiA+ID4gPiBTTk1QLWxhbmQgOy0pDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+
ID4gPiA+IFRoYW5rcy4gIE5vIGFjdGlvbiB0YWtlbi4NCj4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+
DQo+ID4gPiA+ID4gPiA+IEkxMykgICBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQg
ew0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmlj
YXRpb247DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgaWYtZmVhdHVyZSAiY29uZmlndXJlZCI7
DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24NCj4gPiA+DQo+ID4gPiA+ID4g
PiA+ICAgICAgICJUaGlzIG5vdGlmaWNhdGlvbiBpbmRpY2F0ZXMgdGhhdCBhIHN1YnNjcmlwdGlv
biBoYXMNCj4gPiA+ID4gPiA+ID4gc3RhcnRlZCBhbmQNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg
ICAgICAgbm90aWZpY2F0aW9ucyBhcmUgYmVnaW5uaW5nIHRvIGJlIHNlbnQuIFRoaXMNCj4gPiA+
ID4gPiA+ID4gbm90aWZpY2F0aW9uIHNoYWxsDQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg
b25seSBiZSBzZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQgZG9lcw0KPiA+
ID4gPiA+ID4gPiBub3QNCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBjb25zdGl0dXRlIGEg
Z2VuZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlvbi4iOw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+DQo+ID4gPiA+ID4gPiA+ICAgLS0gMm5kIHNlbnRlbmNlIGlzIGNvbmZ1c2luZzsgYWxsIG5v
dGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgcmVjZWl2
ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBhcnQgaXMgcmVkdW5kYW50IHNpbmNlDQo+ID4g
Pg0KPiA+ID4gPiA+ID4gPiAgICAgIHRoZSBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0
aW9uIGV4dGVuc2lvbiBpcyB1c2VkDQo+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+
ID4gPiBUaGVyZSBpcyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNlbnRlbmNl
IGNvbXBsZXRlbHkuDQo+ID4gPiA+ID4gPiBJZg0KPiA+ID4NCj4gPiA+ID4gPiA+IEkgZGlkIHRo
YXQsIHdvdWxkIHRoaXMgYWRkcmVzcyB5b3VyIGNvbmNlcm4/DQo+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+DQo+ID4gPiA+ID4gPiBPSw0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4g
PiBEb25lDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiBJMTQpICAgcmM6
eWFuZy1kYXRhIG1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8gew0KPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgIGxlYWYgZmlsdGVyLWZh
aWx1cmUtaGludCB7DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgIHR5cGUgc3RyaW5nOw0K
PiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIGRlc2NyaXB0aW9uDQo+ID4gPg0KPiA+ID4g
PiA+ID4gPiAgICAgICAgICAgICAiSW5mb3JtYXRpb24gZGVzY3JpYmluZyB3aGVyZSBhbmQvb3Ig
d2h5IGENCj4gPiA+ID4gPiA+ID4gcHJvdmlkZWQgZmlsdGVyDQo+ID4gPg0KPiA+ID4gPiA+ID4g
PiAgICAgICAgICAgICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiI7DQo+
ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICB9DQo+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gICAtLSBycGMtZXJyb3IgYWxyZWFkeSBhbGxvd3MgbW9yZSBwcmVjaXNl
IGVycm9yIHJlcG9ydGluZw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBJdCB1c2VzIGVycm9y
LXRhZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5nLCBhbmQNCj4gPiA+ID4gPiA+ID4gZXJyb3It
aW5mbw0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBleHRlbnNpb25zDQo+ID4gPg0KPiA+ID4g
PiA+ID4gPiAgICAgIHRvIGlkZW50aWZ5IHdoaWNoIHBhcmFtZXRlcnMvY29uZGl0aW9ucyBjYXVz
ZWQgdGhlIFJQQyB0bw0KPiA+ID4gPiA+ID4gPiBiZQ0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg
ICByZWplY3RlZC4NCj4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgVGhpcyBlcnJvciByZXBvcnRp
bmcgd2lsbCBjb250aW51ZSB0byBiZSB1c2VkLCBOb3Qgc3VyZQ0KPiA+ID4gPiA+ID4gPiB0aGlz
DQo+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIGZhaWx1cmUtaGludA0KPiA+ID4NCj4gPiA+ID4g
PiA+ID4gICAgICBoYXMgYW55IHN0YW5kYXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFt
cGxlIGNhbiBiZQ0KPiA+ID4NCj4gPiA+ID4gPiA+ID4gYWRkZWQNCj4gPiA+DQo+ID4gPiA+ID4g
Pg0KPiA+ID4NCj4gPiA+ID4gPiA+IFBlciB5b3VyIHRob3VnaHRzIG9uIHJwYy1lcnJvci4uLiAg
Rm9yIE5FVENPTkYgYW5kIFJFU1RDT05GLCB5b3UNCj4gPiA+DQo+ID4gPiA+ID4gPiBwb2ludCB0
byBlcnJvciBzdHJ1Y3R1cmVzIHdoaWNoIGhpc3RvcmljYWxseSBiZWVuIHVzZWQgd2l0aA0KPiA+
ID4gPiA+ID4gdGhvc2UNCj4gPiA+DQo+ID4gPiA+ID4gPiB0cmFuc3BvcnRzLg0KPiA+ID4NCj4g
PiA+ID4gPiA+IE9mIGNvdXJzZQ0KPiA+ID4NCj4gPiA+ID4gPiA+IHdlIHdlcmUgbG9va2luZyB0
byBoYXZlIGFsbCBzdWJzY3JpcHRpb24gaGludHMgc3VwcG9ydGFibGUNCj4gPiA+ID4gPiA+IGFj
cm9zcw0KPiA+ID4NCj4gPiA+ID4gPiA+IHRyYW5zcG9ydHMgdmlhIGEgc2luZ2xlIHBvcnRhYmxl
IFlBTkcgZGF0YSBzdHJ1Y3R1cmUuICBTbyB0aGUNCj4gPiA+ID4gPiA+IHZhbHVlDQo+ID4gPg0K
PiA+ID4gPiA+ID4gaXMgdGhhdCBhIHNpbmdsZSBzdHJpbmcgb2JqZWN0IGV4aXN0cyBzbyB0byB0
cmFuc3BvcnQgd2hhdGV2ZXINCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4NCj4gPiA+ID4gPiA+IHZl
bmRvciB0aGlua3Mgd291bGQgYmUgdXNlZnVsIGFzIGEgaGludCBpbiB0aGlzIGNhc2UuICBJLmUu
LA0KPiA+ID4gPiA+ID4gdGhlcmUNCj4gPiA+DQo+ID4gPiA+ID4gPiBoYXMgYmVlbiBubyBhdHRl
bXB0IHRvIHN0YW5kYXJkaXplIHRoZSBjb250ZW50cyBvZiB0aGlzIHN0cmluZy4NCj4gPiA+ID4g
PiA+IElmDQo+ID4gPg0KPiA+ID4gPiA+ID4gb3BlcmF0aW9uYWwgZXhwZXJpZW5jZXMgZHJpdmUg
YSBkZXNpcmUgZm9yIHN1Y2ggc3RydWN0dXJpbmcsDQo+ID4gPiA+ID4gPiB0aGlzDQo+ID4gPg0K
PiA+ID4gPiA+ID4gY291bGQgcHJvdmlkZSB0aGUgYmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxk
aW5nIG9mZiBvZiB0aGlzDQo+ID4gPg0KPiA+ID4gPiA+ID4gc3RhcnRpbmcgcG9pbnQuDQo+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNp
ZGVyIE5FVENPTkYgYW5kIFJFU1RDT05GICJoaXN0b3JpYyIgcXVpdGUgeWV0Lg0KPiA+ID4NCj4g
PiA+ID4gPiA+IFRoZXJlIGFyZSBtYW55IGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGUgcnBjLWVy
cm9yIHJlcG9ydGluZw0KPiA+ID4gPiA+ID4gd2l0aCBubw0KPiA+ID4NCj4gPiA+ID4gPiA+IGlu
dGVudCB0byByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGVsc2UuDQo+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBJIHdhcyBqdXN0IGFza2luZyBmb3IgYW4gZXhhbXBsZSwg
c2luY2UgSSBoYXZlIG5vIGlkZWEgd2hhdCBhbg0KPiA+ID4NCj4gPiA+ID4gPiA+IGltcGxlbWVu
dG9yIHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYuDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+
ID4gPiA+IEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIG91ciBpbXBsZW1lbnRhdGlvbi4gIFNheSB5
b3UgbWlzdHlwZSBhbg0KPiA+ID4gPiA+IGV4dHJhDQo+ID4gPg0KPiA+ID4gPiA+ICJcIiB0byBh
biB4cGF0aCBmaWx0ZXI6DQo+ID4gPg0KPiA+ID4gPiA+IC9pZjppbnRlcmZhY2VzLXN0YXRlL2lu
dGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0YQ0KPiA+ID4gPiA+IHR1
cw0KPiA+ID4NCj4gPiA+ID4gPiBBcyBhIHJlc3VsdCwgdGhlIGZpbHRlciBpcyBwYXNzZWQgdG8g
dGhlIHB1Ymxpc2hlciBpczoNCj4gPiA+DQo+ID4gPiA+ID4gL2lmOmludGVccmZhY2VzLXN0YXRl
L2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLXN0DQo+ID4gPiA+ID4g
YXR1cw0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiBXaGF0IHdlIHdvdWxkIHJl
dHVybiBpbiB0aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczoNCj4gPiA+DQo+ID4gPiA+ID4gSW52
YWxpZCBleHByZXNzaW9uOiBvZmZzZXQoOSkgaW4NCj4gPiA+DQo+ID4gPiA+ID4gJy9pZjppbnRl
XHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3Blci1z
dGF0dXMnDQo+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiA+ID4gPiA+IEVyaWMNCj4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+DQo+ID4gPiA+ID4gPiBBbmR5DQo=


From nobody Thu Jan 24 07:23:13 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4DA64124408; Thu, 24 Jan 2019 07:23:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.642
X-Spam-Level: 
X-Spam-Status: No, score=-14.642 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 act5ASmMaqcT; Thu, 24 Jan 2019 07:23:02 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 04FE41286D9; Thu, 24 Jan 2019 07:23:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=64334; q=dns/txt; s=iport; t=1548343382; x=1549552982; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=W1glKgBnO8n8JCYF2X2CkZxgwYcajE318iMPugt241Q=; b=OCFhYBfDLFGoZT5IDxTP6aJxMdr4MHIOjhxf5vgDtvssiT8OpnH3bg3D ynfTV5V6V4wYlqelvuZ+9K1IfKgU3XLXwmKQE8nuqsLivUqwq7EBZqA3F jfe26YZputbVqxnLe6IB9e9NdwgpKsIgYlwmkWozQVZJIftYfR4djvl2w Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAACJ10lc/5tdJa1ZAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqDd4gai3GCDYNGlEE?= =?us-ascii?q?UgWcLAQEjhEkCF4JsIjQJDQEDAQECAQECbRwMhUoBAQEBAgEaAQgRQwIFCwI?= =?us-ascii?q?BCA4DBAEBAQICCRoDAgICMBQBCAgCBA4FCIJPTIF5CA+sCIEviiwFgQuLNhe?= =?us-ascii?q?BQD+BEYIUfoMeAoE2AQMPAgMqgnKCNSICiVUDCAomC4FKhCkBgViEb4p7XAk?= =?us-ascii?q?ChyiDW4cZIIFpiGqBMoYaigmBDIQaiQ+CUgIRFIEnHziBVnAVO4JsgicXE20?= =?us-ascii?q?BCIJCilNBMYhiKYEFgR8BAQ?=
X-IronPort-AV: E=Sophos;i="5.56,516,1539648000"; d="scan'208";a="229989455"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 15:22:59 +0000
Received: from XCH-RTP-005.cisco.com (xch-rtp-005.cisco.com [64.101.220.145]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id x0OFMxBs021147 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 24 Jan 2019 15:22:59 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-005.cisco.com (64.101.220.145) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 10:22:58 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Thu, 24 Jan 2019 10:22:58 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nA=
Date: Thu, 24 Jan 2019 15:22:58 +0000
Message-ID: <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com>
References: <7b77b0356d074648a5f1d8096c224210@XCH-RTP-013.cisco.com> <20190124.141640.253886322622907272.mbj@tail-f.com> <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com>
In-Reply-To: <20190124.153938.826269505351606159.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.145, xch-rtp-005.cisco.com
X-Outbound-Node: rcdn-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/K2E3dpPDQZKYZtlnt0n7nosKFMA>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 15:23:06 -0000

PiBGcm9tOiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDk6NDAgQU0NCj4gDQo+
ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+ID4gPiBGcm9t
OiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU0NCj4gPiA+DQo+ID4g
PiAiRXJpYyBWb2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gPiBI
aSBBbmR5LA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MgdmVyeSBt
dWNoIGZvciB0aGUgdGhvcm91Z2ggWUFORyBEb2N0b3IgcmV2aWV3LiAgSSBoYXZlDQo+ID4gPiA+
IGluY2x1ZGVkIHRoZQ0KPiA+ID4gYWdyZWVkIHVwb24gY29tbWVudHMsIGFuZCB1cGxvYWRlZCB0
bzoNCj4gPiA+ID4NCj4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZp
Y2F0aW9ucy0yMg0KPiA+ID4gPg0KPiA+ID4gPiBhIHN1bW1hcnkgb2YgdGhlIGNsYXJpZmljYXRp
b25zIG1hZGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuDQo+ID4gPiA+IExldCBtZSBr
bm93IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVlZGVkIHRvIGNvbmNsdWRlIHRoZSBZQU5HDQo+
ID4gPiA+IGRvY3RvciByZXZpZXcgb2YgdGhpcyBkb2N1bWVudC4NCj4gPiA+ID4NCj4gPiA+ID4N
Cj4gPiA+ID4NCj4gPiA+ID4gQWxzbyBhcyB0aGUgcmVzdWx0IG9mIHRoZSDigJhlcnJvci10YWfi
gJkgZGlzY3Vzc2lvbiB3aXRoIHlvdSBhbmQNCj4gPiA+ID4gTWFydGluLCB3ZSBuZWVkIHRvIHBl
cmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmQ0KPiA+ID4gPiBtYXBw
aW5nIHdpdGhpbiBib3RoIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNh
dGlvbnMNCj4gU2VjdGlvbg0KPiA+ID4gPiA3LCBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rj
b25mLW5vdGlmIFNlY3Rpb24gMy4zLiAgIERpcmVjdGx5DQo+ID4gPiA+IGJlbG93IGlzIHNvbWUg
dGV4dCBhbmQgcHJvcG9zZWQgZXJyb3ItdGFnIG1hcHBpbmdzIGZvciB0aG9zZQ0KPiA+ID4gPiBk
b2N1bWVudHMuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICAgICBvICBBbiAi
ZXJyb3ItdGFnIiBub2RlIHdpdGggdGhlIHZhbHVlIGJlaW5nIGEgc3RyaW5nIHRoYXQNCj4gPiA+
ID4NCj4gPiA+ID4gICAgICAgIGNvcnJlc3BvbmRzIHRvIGFuIGlkZW50aXR5IGFzc29jaWF0ZWQg
d2l0aCB0aGUgZXJyb3IuICBUaGlzDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAiZXJyb3ItdGFn
IiB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yIGlkZW50aXRpZXMgd2l0aGluDQo+ID4gPiA+
DQo+ID4gPiA+ICAgICAgICBbSS1ELmRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlm
aWNhdGlvbnNdIHNlY3Rpb24NCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIDIuNC42IGZvciBnZW5l
cmFsIHN1YnNjcmlwdGlvbiBlcnJvcnM6DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g
PiA+ICAgICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgIHVzZXMgZXJyb3ItdGFnDQo+ID4g
PiA+DQo+ID4gPiA+ICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0t
LS0tDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgICBkc2NwLXVuYXZhaWxhYmxlICAgICAgIGlu
dmFsaWQtdmFsdWUNCj4gPiA+DQo+ID4gPiBPay4gIEJ1dCBpdCBpcyBub3QgY2xlYXIgdG8gbWUg
d2hlbiB0aGlzIGVycm9yIGlzIGFjdHVhbGx5IHN1cHBvc2VkDQo+ID4gPiB0byBiZSBnZW5lcmF0
ZWQ/ICBUaGUgbGVhZiBhbmQgaWRlbnRpdHkgaGF2ZSB0aGUgc2FtZSBpZi1mZWF0dXJlLCBzbw0K
PiA+ID4gaXQgaXNuJ3QgYSBzcGVjaWFsIGVycnJvIGNvZGUgZm9yICJ1bnN1cHBvcnRlZCBsZWFm
Iiwgd2hpY2ggaXMgZ29vZCENCj4gPiA+DQo+ID4gPiBUaGVuIEkgaGF2ZSB0byBhc3N1bWUgaXQg
aXMgc3VwcG9zZWQgdG8gYmUgc29tZSBraW5kIG9mIHJ1bnRpbWUgZXJyb3I/DQo+ID4NCj4gPiBZ
ZXMuICBBIHB1Ymxpc2hlciwgbm9yIHRoZSBuZXR3b3JrIHRvIHdoaWNoIGlzIGNvbm5lY3RzIGRv
ZXMgbm90IGhhdmUNCj4gPiB0bzoNCj4gPiAoYSkgc3VwcG9ydCBhbGwgRFNDUCB2YWx1ZXMsIG5v
cg0KPiA+IChiKSBhbGxvdyBhIHBhcnRpY3VsYXIgdmFsdWUgcmVxdWVzdGVkIGJ5IGEgcGFydGlj
dWxhciBzdWJzY3JpYmVyLCBTbw0KPiA+IHRoaXMgY29uZGl0aW9uIGFsbG93cyBhIHB1Ymxpc2hl
ciB0byByZWplY3QgYSByZXF1ZXN0IGZvciBhIERTQ1AgdmFsdWUNCj4gPiB3aGVyZSBpcyBrbm93
cyB0aGUgdmFsdWUgd2lsbCBub3QgYmUgcmVzcGVjdGVkLg0KPiANCj4gR29vZCBleHBsYW5hdGlv
biwgSSB3aXNoIGl0IHdhcyBwYXJ0IG9mIHRoZSAibGVhZiBkc2NwIiBpbiB0aGUgbW9kdWxlIDop
DQo+IA0KPiBUaGUgZHNjcC11bmF2YWlsYWJsZSBpZGVudGl0eSBkb2Vzbid0IGFkZCBhbnkgYWRk
aXRpb24gdmFsdWUgY29tcGFyZWQgdG8gdGhlDQo+IHN0YW5kYXJkIGVycm9yLg0KDQpGb3IgTkVU
Q09ORiBhbmQgUkVTVENPTkYsIHRoaXMgaXMgdGhlIGNhc2UuDQogDQo+ID4gPiBUaGlua2luZyBz
b21lIG1vcmUsIHdoYXQgaXMgc3VwcG9zZWQgdG8gaGFwcGVuIGlmIHRoZSBjbGllbnQgb24gdGhl
DQo+ID4gPiBzYW1lIHNlc3Npb24gc2VuZHMgZmlyc3QgYW4gZXN0YWJsaXNoLXN1YnNjcmlwdGlv
biB3aXRoIGRzY3AgNDIsIGFuZA0KPiA+ID4gdGhlbiBhbm90aGVyIGVzdGFibGlzaC1zdWJzY3Jp
cHRpb24gd2l0aCBkc2NwIDEwPw0KPiA+DQo+ID4gVGhpcyB3b3VsZCBiZSBhbGxvd2VkLg0KPiAN
Cj4gT24gbGludXggYXQgbGVhc3QgdGhpcyBpcyBhIHNvY2tvcHQsIGkuZS4sIHRoZSBvcHRpb24g
YXBwbGllcyB0byB0aGUgc29ja2V0LCB3aGljaA0KPiBtZWFucyBhbGwgcGFja2V0cyBvbiB0aGUg
c2Vzc2lvbi4gIFNvIGhvdyBpcyB0aGlzIHN1cHBvc2VkIHRvIGJlIGltcGxlbWVudGVkIGlmDQo+
IGRpZmZlcmVudCBtZXNzYWdlcyBvbiB0aGUgc2Vzc2lvbiBzaG91bGQgaGF2ZSBkaWZmZXJlbnQg
ZHNjcCB2YWx1ZXM/ICBPciBpcyB0aGUNCj4gaWRlYSB0aGF0IHlvdSBzZW5kIHRoZSBtc2csIGZs
dXNoIGFsbCBkYXRhIGZyb20gc3NoL3RscyB0byB0Y3AsIHRoZW4gZmx1c2ggdGhlIHRjcA0KPiBi
dWZmZXJzIChub3QgdGhhdCBlYXN5Li4uKT8NCj4gDQo+IEV2ZW4gaWYgdGhlcmUncyBqdXN0IG9u
ZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIHdpdGggYSBkc2NwIHZhbHVlLCBzaW5jZSBpdCBhcHBs
aWVzDQo+IHRvIHRoZSBzZXNzaW9uIGl0IG1lYW5zIHRoYXQgYWxsIG5vcm1hbCBycGNzIG9uIHRo
aXMgc2Vzc2lvbiB3aWxsIGdldCB0aGUgc2FtZQ0KPiBkc2NwIHZhbHVlLiAgSXQgaXMgbm90IGNs
ZWFyIHRoYXQgdGhpcyBpcyB0aGUgaW50ZW50aW9uPw0KDQpGb3IgYSBORVRDT05GIHNlc3Npb24s
IEkgYWdyZWUgdGhhdCBhbiBpbXBsZW1lbnRhdGlvbiBuZWVkIG5vdCB0cnkgdG8gYXR0ZW1wdCB0
byBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgRFNDUCBmb3IgdGhhdCBzZXNzaW9uLiAgQW5kIHRoZSBl
cnJvciBpZGVudGl0eSBkc2NwLXVuYXZhaWxhYmxlIGlzIGEgdmFsaWQgcmVzcG9uc2UgaGVyZS4N
Cg0KRm9yIFJFU1RDT05GIGFuZCBvdGhlciB0cmFuc3BvcnRzLCB0aGVyZSBvcHRpb25zIHdoaWNo
IGNhbiBtb3JlIGZsZXhpYmx5IHN1cHBvcnQgZGlmZmVyZW50IERTQ1AgdmFsdWVzLiAgVGhpcyBp
cyBvbmUgcmVhc29uIEkgd2FzIHB1c2hpbmcgaGFyZCBpbiAyMDE2IHRvIGxldmVyYWdlIEhUVFAy
Lg0KDQpFcmljDQoNCj4gL21hcnRpbg0KPiANCj4gDQo+ID4gVGhlIGludGVyZXN0aW5nIHBhcnQg
Y29tZXMgd2l0aCBidW5kbGluZyB0aGUgZXZlbnQgcmVjb3Jkcy4gIFRoZQ0KPiA+IGluaXRpYWwg
dmVyc2lvbnMgb2YgZHJhZnQtaWV0Zi1uZXRjb25mLW5vdGlmaWNhdGlvbi1tZXNzYWdlcyByZXF1
aXJlZA0KPiA+IHRoYXQgYWxsIGV2ZW50IHJlY29yZHMgaW4gYSBidW5kbGUgaGFkIGEgY29tbW9u
IGRzY3AuICBBdCB0aGlzIHBvaW50LA0KPiA+IHRoYXQgc2VlbXMgb3Zlcmx5IHJlc3RyaWN0aXZl
IHRvIHRoZSBtYXJzaGFsbGluZyBwcm9jZXNzLCBzbyBmb3Igbm93DQo+ID4gdGhhdCByZXF1aXJl
bWVudCBpcyBub3QgaW4gdGhlIGRvY3VtZW50Lg0KPiA+DQo+ID4gPiA+ICAgICAgICAgICBlbmNv
ZGluZy11bnN1cHBvcnRlZCAgIGludmFsaWQtdmFsdWUNCj4gPiA+DQo+ID4gPiBPay4gIEJ1dCB0
aGlzIGlkZW50aXR5IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4g
PiBzdGFuZGFyZA0KPiA+ID4gZXJyb3I6DQo+ID4gPg0KPiA+ID4gICBlcnJvci10YWc6IGludmFs
aWQtdmFsdWUNCj4gPiA+ICAgZXJyb3ItcGF0aDogL3JwYy9lc3RhYmxpc2gtc3Vic2NyaXB0aW9u
L2VuY29kaW5nDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gICAgICAgICAgIGZpbHRlci11bmF2YWls
YWJsZSAgICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4NCj4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0
aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQo+ID4gPiBp
biBhbiBycGMtIGVycm9yLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIG1hcHBlZCB0byBhbiBlcnJv
ci10YWcuDQo+ID4NCj4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cg
b3V0Lg0KPiA+DQo+ID4gPiA+ICAgICAgICAgIGZpbHRlci11bnN1cHBvcnRlZCAgICAgaW52YWxp
ZC12YWx1ZQ0KPiA+ID4NCj4gPiA+IE9rLiAgQnV0IHRoaXMgaWRlbnRpdHkgZG9lc24ndCBnaXZl
IG1vcmUgaW5mb3JtYXRpb24gdGhhbiB0aGUNCj4gPiA+IHN0YW5kYXJkDQo+ID4gPiBlcnJvcjoN
Cj4gPiA+DQo+ID4gPiAgIGVycm9yLXRhZzogaW52YWxpZC12YWx1ZQ0KPiA+ID4gICBlcnJvci1w
YXRoOiAvcnBjL2VzdGFibGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhwYXRoLWZpbHRlcg0KPiA+
ID4NCj4gPiA+DQo+ID4gPiA+ICAgICAgICAgICBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlc291
cmNlLWRlbmllZA0KPiA+ID4NCj4gPiA+DQo+ID4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRv
ZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4gPiBzdGFuZGFyZCBlcnJv
ciBpbiB0aGUgY2FzZSBvZiBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIGFuZA0KPiA+ID4gbW9kaWZ5
LXN1YnNjcmlwdGlvbi4NCj4gPiA+DQo+ID4gPiA+ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlw
dGlvbiAgIGludmFsaWQtdmFsdWUNCj4gPiA+DQo+ID4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5
IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4gPiBzdGFuZGFyZCBl
cnJvciBpbiB0aGUgY2FzZSBvZiBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIGFuZA0KPiA+ID4gbW9k
aWZ5LXN1YnNjcmlwdGlvbi4NCj4gPiA+DQo+ID4gPiA+ICAgICAgICAgICByZXBsYXktdW5zdXBw
b3J0ZWQgICAgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4gPg0KPiA+ID4gT2suICBCdXQg
dGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+
ID4gc3RhbmRhcmQgZXJyb3IuDQo+ID4gPg0KPiA+ID4gPiAgICAgICAgICAgc3RyZWFtLXVuYXZh
aWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQo+ID4gPg0KPiA+ID4gVGhpcyBpcyBhICJzdWJzY3Jp
cHRpb24tdGVybWluYXRlZC1yZWFzb24iLCB3aGljaCB3aWxsIG5ldmVyIGJlIHNlbnQNCj4gPiA+
IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVy
cm9yLXRhZy4NCj4gPg0KPiA+IFllcywgZm9yZ290IHRvIHJlbW92ZSB0aG9zZS4gIEl0IGlzIG5v
dyBvdXQuDQo+ID4NCj4gPiA+ID4gICAgICAgICAgIHN1c3BlbnNpb24tdGltZW91dCAgICAgb3Bl
cmF0aW9uLWZhaWxlZA0KPiA+ID4NCj4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1p
bmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQo+ID4gPiBpbiBhbiBycGMt
IGVycm9yLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIG1hcHBlZCB0byBhbiBlcnJvci10YWcuDQo+
ID4NCj4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+
DQo+ID4gPiA+ICAgICAgICAgICB1bnN1cHBvcnRhYmxlLXZvbHVtZSAgIHRvby1iaWcNCj4gPiA+
DQo+ID4gPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLXJlYXNvbiIsIHdoaWNo
IHdpbGwgbmV2ZXIgYmUgc2VudA0KPiA+ID4gaW4gYW4gcnBjLSBlcnJvciwgYW5kIHRodXMgc2hv
dWxkIG5vdCBiZSBtYXBwZWQgdG8gYW4gZXJyb3ItdGFnLg0KPiA+DQo+ID4gWWVzLCBmb3Jnb3Qg
dG8gcmVtb3ZlIHRob3NlLiAgSXQgaXMgbm93IG91dC4NCj4gPg0KPiA+ID4gPiAgICAgICAgT3Ig
dGhpcyAiZXJyb3ItdGFnIiB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yIGlkZW50aXRpZXMN
Cj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIHdpdGhpbiBbSS1ELmlldGYtbmV0Y29uZi15YW5nLXB1
c2hdIEFwcGVuZGl4IEEuMSBmb3INCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIHN1YnNjcmlwdGlv
biBlcnJvcnMgc3BlY2lmaWMgdG8gWUFORyBkYXRhc3RvcmVzOg0KPiA+ID4gPg0KPiA+ID4gPg0K
PiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICAgZXJyb3IgaWRlbnRpdHkgICAgICAgICAgICAgIHVz
ZXMgZXJyb3ItdGFnDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICAgICAgLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgIGNh
bnQtZXhjbHVkZSAgICAgICAgICAgICAgICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4g
Pg0KPiA+ID4gPiAgICAgICAgICAgZGF0YXN0b3JlLW5vdC1zdWJzY3JpYmFibGUgIG9wZXJhdGlv
bi1ub3Qtc3VwcG9ydGVkDQo+ID4gPg0KPiA+ID4gSSB0aGluayB0aGF0IHRoaXMgc2hvdWxkIGJl
IGludmFsaWQtdmFsdWUuDQo+ID4NCj4gPiBPaw0KPiA+DQo+ID4gL0VyaWMNCj4gPg0KPiA+ID4g
PiAgICAgICAgICAgbm8tc3VjaC1zdWJzY3JpcHRpb24tcmVzeW5jIGludmFsaWQtdmFsdWUNCj4g
PiA+DQo+ID4gPiBPaywgYnV0IGFnYWluIHRoZSB2YWx1ZSBvZiBoYXZpbmcgdGhpcyBpcyB1bmNs
ZWFyLg0KPiA+ID4NCj4gPiA+ID4gICAgICAgICAgIG9uLWNoYW5nZS11bnN1cHBvcnRlZCAgICAg
ICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICAgb24t
Y2hhbmdlLXN5bmMtdW5zdXBwb3J0ZWQgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4gPiA+
DQo+ID4gPiA+ICAgICAgICAgICBwZXJpb2QtdW5zdXBwb3J0ZWQgICAgICAgICAgaW52YWxpZC12
YWx1ZQ0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICAgdXBkYXRlLXRvby1iaWcgICAgICAgICAg
ICAgIHRvby1iaWcNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgIHN5bmMtdG9vLWJpZyAgICAg
ICAgICAgICAgICB0b28tYmlnDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgICB1bmNoYW5naW5n
LXNlbGVjdGlvbiAgICAgICAgb3BlcmF0aW9uLWZhaWxlZA0KPiA+ID4NCj4gPiA+DQo+ID4gPg0K
PiA+ID4gL21hcnRpbg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBEbyB5b3UgKG9yIGFueW9uZSBlbHNlIGlu
IHRoaXMgdGhyZWFkKSBoYXZlIGFueSBzdWdnZXN0aW9ucyBvbiB0aGUNCj4gPiA+ID4gdGV4dCBv
ciBwcm9wb3NlZCBtYXBwaW5ncz8gIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIG9rLCBBbGV4IHdp
bGwNCj4gPiA+ID4gbmVlZCB0byByZW1vdmUgdGhlIE5FVENPTkYgZXJyb3ItdGFnIHNwZWNpZmlj
cyBmcm9tDQo+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi15YW5nLXB1c2ggU2VjdGlvbnMgNC40
LjEgJiA0LjQuMg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBBbHNvIFJlc2hh
ZCB3aWxsIGhhdmUgdG8gZG8gc29tZSB3b3JrIGJlY2F1c2UgaGUgaXMgdGhlIFlBTkcNCj4gPiA+
ID4gZG9jdG9yIG9mDQo+ID4gPiBuZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywg
YW5kIGhlIHdpbGwgd2FudCB0byBpbmNsdWRlIHRoZQ0KPiA+ID4gc2FtZSBpbmZvcm1hdGlvbiB3
aXRoaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLg0KPiA+ID4gPg0KPiA+ID4g
Pg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+DQo+ID4gPiA+IEVyaWMNCj4gPiA+
ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gRnJvbTogQW5k
eSBCaWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb20+DQo+ID4gPiA+DQo+ID4gPiA+IFNlbnQ6IFdl
ZG5lc2RheSwgSmFudWFyeSAyMywgMjAxOSAxMjo0MiBQTQ0KPiA+ID4gPg0KPiA+ID4gPiBUbzog
RXJpYyBWb2l0IChldm9pdCkgPGV2b2l0QGNpc2NvLmNvbT4NCj4gPiA+ID4NCj4gPiA+ID4gQ2M6
IE1hcnRpbiBCam9ya2x1bmQgPG1iakB0YWlsLWYuY29tPjsgeWFuZy1kb2N0b3JzQGlldGYub3Jn
Ow0KPiA+ID4gPiBuZXRjb25mQGlldGYub3JnOw0KPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYt
c3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLmFsbEBpZXRmLm9yZw0KPiA+ID4gPg0KPiA+ID4gPiBT
dWJqZWN0OiBSZTogW3lhbmctZG9jdG9yc10gWWFuZ2RvY3RvcnMgbGFzdCBjYWxsIHJldmlldyBv
Zg0KPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLTIx
DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+
ID4gPiA+DQo+ID4gPiA+IE9uIFdlZCwgSmFuIDIzLCAyMDE5IGF0IDQ6MzUgQU0gRXJpYyBWb2l0
IChldm9pdCkNCj4gPiA+ID4gPG1haWx0bzpldm9pdEBjaXNjby5jb20+DQo+ID4gPiB3cm90ZToN
Cj4gPiA+ID4NCj4gPiA+ID4gPiBGcm9tOiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDIzLCAy
MDE5IDM6MzIgQU0NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+IEhpLA0K
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gIkVyaWMgVm9pdCAoZXZvaXQp
IiA8bWFpbHRvOmV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBI
aSBBbmR5LA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IExvb2tp
bmcgYXQgeW91ciBwcm9wb3NhbC4uLiAgTXkgcmVhZGluZyBpcyB0aGF0IGl0IHRha2VzIHRoZQ0K
PiA+ID4gPiA+ID4gdHJhbnNwb3J0DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBzcGVjaWZpYyBlcnJv
ciBpbmZvIGNvbnRhaW5lZCBpbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRj
b25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucyBzZWN0aW9uIDcsIGFuZA0KPiA+ID4gPiA+
ID4gdGhlbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gcmVwbGljYXRlcyB0aGF0IGluZm8gd2l0aGlu
IDEyIHNlcGFyYXRlIGRlc2NyaXB0aW9uIG9iamVjdHMgb2YNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gdHJhbnNwb3J0IGluZGVwZW5kZW50IGlldGYtc3Vic2NyaWJlZC1u
b3RpZmljYXRpb25zLnlhbmcuICBUaGUNCj4gPiA+ID4gPiA+IHZhbHVlDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiB5b3UgYXJlIGFzc2VydGluZyBpcyB0aGF0IFJGQ3MgY29udGFpbmluZyBZQU5HIG1v
ZGVscw0KPiA+ID4gPiA+ID4gY29udGFpbmluZyB0aGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IHJw
Yy1zdG10IGhhdmUgdHJhZGl0aW9uYWxseSBkb2N1bWVudCB0aGUNCj4gPiA+ID4gPiA+IG1hbmRh
dG9yeS10by1pbXBsZW1lbnQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICJlcnJvci10YWciIGZpZWxk
IHdpdGhpbiB0aGUgbW9kZWwuICBBbmQgcHJlc3VtYWJseSB5b3UgYXJlDQo+ID4gPiA+ID4gPiBj
b25jZXJuZWQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IHRoYXQgZGV2ZWxvcGVycyBzaG91bGQgbm90
IGhhdmUgdG8gbG9vayBlbHNld2hlcmUgZm9yIHRoaXMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IGlu
Zm9ybWF0aW9uLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gSSB0aGlu
ayB0aGF0IG1heWJlIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUgaXNzdWVzIGhlcmUuDQo+ID4gPiA+
DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBUaGUgZmlyc3QgaXNzdWUgaXMgdGhhdCBm
b3IgZWFjaCBlcnJvciBpZGVudGl0eSBkZWZpbmVkLCB0aGVyZQ0KPiA+ID4gPiA+IG5lZWRzIHRv
IGJlIGENCj4gPiA+ID4NCj4gPiA+ID4gPiBtYXBwaW5nIHRvIHRoZSBwcm90b2NvbC1zcGVjaWZp
YyBlcnJvciBoYW5kbGluZy4gIEFuZHkgc3VnZ2VzdHMNCj4gPiA+ID4gPiB0aGF0IHRoaXMgaW5m
byBpcw0KPiA+ID4gPg0KPiA+ID4gPiA+IGFkZGVkIHRvIHRoaXMgZG9jdW1lbnQsIGJ1dCBjdXJy
ZW50bHkgdGhpcyBpbmZvcm1hdGlvbiBpcw0KPiA+ID4gPiA+IGF2YWlsYWJsZSBpbiB0aGUNCj4g
PiA+ID4NCj4gPiA+ID4gPiBwcm90Y29sLW1hcHBpbmcgZG9jdW1lbnRzIChuZXRjb25mLW5vdGlm
IGFuZCByZXN0Y29uZi1ub3RpZikuDQo+ID4gPiA+ID4gUGVyc29uYWxseSwgSQ0KPiA+ID4gPg0K
PiA+ID4gPiA+IHRoaW5rIHRoYXQgdGhlIGN1cnJlbnQgc3BsaXQgb2YgdGV4dCBiZXR3ZWVuIGRv
Y3VtZW50cyBpcyBmaW5lLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4g
VGhlIHNlY29uZCBpc3N1ZSBpcyB0aGF0IGN1cnJlbnRseSwgYm90aCBuZXRjb25mLW5vdGlmIGFu
ZA0KPiA+ID4gPiA+IHJlc3Rjb25mLW5vdGlmIHNheQ0KPiA+ID4gPg0KPiA+ID4gPiA+IHRoYXQg
KmFsbCogdGhlc2UgZXJyb3JzIHVzZSB0aGUgZXJyb3ItdGFnICJvcGVyYXRpb24tZmFpbGVkIi4N
Cj4gPiA+ID4gPiBFc3NlbnRpYWxseSBpdCBtZWFucw0KPiA+ID4gPg0KPiA+ID4gPiA+IHRoYXQg
d2UgYnlwYXNzIHRoZSBlcnJvciBoYW5kbGluZyBpbiB0aGUgcHJvdG9jb2xzLiAgQXMgQW5keQ0K
PiA+ID4gPiA+IHBvaW50cyBvdXQgYmVsb3csDQo+ID4gPiA+DQo+ID4gPiA+ID4gdGhlIGVycm9y
ICJpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIiBzaG91bGQgYmUgbWFwcGVkIHRvDQo+ID4gPiA+ID4g
InJlc291cmNlLWRlbmllZCIgaW4NCj4gPiA+ID4NCj4gPiA+ID4gPiBORVRDT05GIGFuZCBSRVNU
Q09ORiAodGhleSBtZWFuIHRoZSBzYW1lIHRoaW5nKS4gIFNvIGl0IG1pZ2h0DQo+ID4gPiA+ID4g
bWFrZSBzZW5zZQ0KPiA+ID4gPg0KPiA+ID4gPiA+IHRvIGNhcmVmdWxseSBnbyB0aHJvdWdoIHRo
ZSBsaXN0IG9mIGVycm9ycyBhbmQgbWFwIHRoZW0gdG8gdGhlDQo+ID4gPiA+ID4gY29ycmVjdCBl
cnJvci10YWcNCj4gPiA+ID4NCj4gPiA+ID4gPiAoYnV0IHNwZWNpZml5IHRoaXMgaW4gdGhlIHRy
YW5zcG9ydCBkcmFmdHMpLg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBJIGFt
IGNvbXBsZXRlbHkgZ29vZCB3aXRoIHRoaXMuICAgRG9lcyB0aGlzIHdvcmsgZm9yIHlvdSBBbmR5
Pw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIGlzIGJldHRlci4NCj4g
PiA+ID4NCj4gPiA+ID4gSSdtIGdsYWQgbm8gb3RoZXIgZHJhZnRzIGFyZSBjcmVhdGluZyB0aGVp
ciBvd24gZXJyb3IgcmVwb3J0aW5nDQo+ID4gPiA+IHN5c3RlbSBmb3INCj4gPiA+IGVhY2ggcnBj
LXN0bXQuDQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgaXMgYSBiYWQgcHJlY2VkZW50IGFuZCBsaWtl
bHkgdG8gYmUgc2tpcHBlZCBpbiBpbXBsZW1lbnRhdGlvbnMuDQo+ID4gPiA+DQo+ID4gPiA+DQo+
ID4gPiA+DQo+ID4gPiA+IEVyaWMNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g
PiAvbWFydGluDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N
Cj4gPiA+ID4gQW5keQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4g
Pg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IElmIHRoZSBZQU5HIGRvY3Rv
cnMgcmVxdWlyZSB0aGlzLCBpdCBjYW4gYmUgaW5zZXJ0ZWQuICBBDQo+ID4gPiA+ID4gPiBzaW1p
bGFyIHRleHQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IGNoYW5nZSB3b3VsZCBiZSBuZWVkZWQgZm9y
IHF1aXRlIGEgZmV3IGVycm9yIGlkZW50aXRpZXMgd2l0aGluDQo+ID4gPiA+ID4gPiBZQU5HDQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiBQdXNoLiAgUGVyc29uYWxseSBJIGRvbuKAmXQgbGlrZSB0aGF0
IFlBTkcgbW9kZWxzIHNob3VsZCBiZQ0KPiA+ID4gPiA+ID4gcmVxdWlyZWQgdG8NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+IGVtYmVkIHRoaXMgaW5mb3JtYXRpb24uICBCdXQgSSB3aWxsIG1ha2UgdGhl
IGNoYW5nZSBpZiB5b3UNCj4gPiA+ID4gPiA+IHJlYWxseSB3YW50DQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiB0aGlzLCBhbmQgbm9ib2R5IGVsc2Ugb2JqZWN0cy4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBPdGhlciB0aGFuIHRoYXQsIEkgYW0gbm90IGF3YXJlIG9m
IGFueSBvdGhlciBvcGVuIGlzc3VlcyBpbg0KPiA+ID4gPiA+ID4gdGhlIFlBTkcNCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+IERvY3RvciByZXZpZXcuICBEbyB5b3Uga25vdyBvZiBhbnl0aGluZyBlbHNl
Pw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEVyaWMNCj4gPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gRnJvbTogQW5keSBCaWVybWFuLCBKYW51YXJ5IDIxLCAyMDE5IDI6MjYgUE0NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBIaSwNCj4gPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBJIHRoaW5rIHRoZSBlcnJvci10YWcgaXNzdWUgY2Fu
IGJlIHJlc29sdmVkIGJ5IGluY2x1ZGluZyAxDQo+ID4gPiA+ID4gPiBleHRyYQ0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gc2VudGVuY2UgaW4gZWFjaCBlcnJvciBpZGVudGl0eS4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+IEkga25vdyB0aGlzIGlzIE5FVENPTkYgYW5kIFJFU1RDT05GIGNlbnRyaWMgYnV0
IHRob3NlIGFyZSB0aGUNCj4gPiA+ID4gPiA+IG9ubHkNCj4gPiA+ID4gPiA+IDINCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+IHN0YW5kYXJkIHByb3RvY29scyBzdXBwb3J0ZWQgZm9yIHRoZSBZQU5HIGxh
bmd1YWdlIHJpZ2h0IG5vdy4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiAgICAgICAgSWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3IgcmVw
b3J0aW5nLA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICc8Y29y
cmVjdCBlcnJvci10YWc+JyBNVVNUIGJlIHVzZWQuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IE9MRDoNCj4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgIGlkZW50aXR5IGluc3VmZmljaWVudC1y
ZXNvdXJjZXMgew0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNj
cmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICBiYXNlIG1vZGlmeS1zdWJz
Y3JpcHRpb24tZXJyb3I7DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgYmFzZSBzdWJzY3JpcHRp
b24tc3VzcGVuZGVkLXJlYXNvbjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICBkZXNjcmlwdGlv
bg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIlRoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmlj
aWVudCByZXNvdXJjZXMgdG8gc3VwcG9ydCB0aGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAg
ICByZXF1ZXN0ZWQgc3Vic2NyaXB0aW9uLiAgQW4gZXhhbXBsZSBtaWdodCBiZSB0aGF0DQo+ID4g
PiA+ID4gPiBhbGxvY2F0ZWQgQ1BVDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgaXMgdG9v
IGxpbWl0ZWQgdG8gZ2VuZXJhdGUgdGhlIGRlc2lyZWQgc2V0IG9mDQo+ID4gPiA+ID4gPiBub3Rp
ZmljYXRpb24NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICBtZXNzYWdlcy4iOw0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gICB9DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IE5FVzoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiAgIGlkZW50aXR5IGluc3VmZmljaWVudC1yZXNvdXJjZXMgew0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJv
cjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICBiYXNlIG1vZGlmeS1zdWJzY3JpcHRpb24tZXJy
b3I7DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgYmFzZSBzdWJzY3JpcHRpb24tc3VzcGVuZGVk
LXJlYXNvbjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gICAgICAgIlRoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVudCByZXNvdXJj
ZXMgdG8gc3VwcG9ydCB0aGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICByZXF1ZXN0ZWQg
c3Vic2NyaXB0aW9uLiAgQW4gZXhhbXBsZSBtaWdodCBiZSB0aGF0DQo+ID4gPiA+ID4gPiBhbGxv
Y2F0ZWQgQ1BVDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgaXMgdG9vIGxpbWl0ZWQgdG8g
Z2VuZXJhdGUgdGhlIGRlc2lyZWQgc2V0IG9mDQo+ID4gPiA+ID4gPiBub3RpZmljYXRpb24NCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICBtZXNzYWdlcy4gSWYgdGhlICdlcnJvci10YWcnIGZp
ZWxkIGlzIHVzZWQgaW4gZXJyb3INCj4gPiA+ID4gPiA+IHJlcG9ydGluZywNCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1ZSAncmVzb3VyY2UtZGVuaWVkJyBNVVNUIGJl
IHVzZWQuIjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbmR5DQo+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
IE9uIEZyaSwgSmFuIDE4LCAyMDE5IGF0IDExOjUzIEFNIEVyaWMgVm9pdCAoZXZvaXQpDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA8bWFpbHRvOmV2b2l0QGNpc2NvLmNvbTxtYWlsdG86bWFpbHRvOmV2
b2l0QGNpc2NvLmNvbT4+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGkgQW5keSwNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGFua3MuICBJIGhhdmUg
aW5jb3Jwb3JhdGVkIGl0ZW1zIHdoZXJlIHRoZXJlIHdhcyBhZ3JlZW1lbnQuDQo+ID4gPiA+ID4g
PiBJIGhhdmUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IHJlbW92ZWQgdGhlIGl0ZW1zIGJlbG93IHdo
ZXJlIHlvdSB3ZXJlIG9rLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g
PiA+IFJlbWFpbmluZyBiZWxvdyBhcmUgdGhlIG9wZW4gaXRlbXMsIHdpdGggcmVzcG9uc2VzLg0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICBTaG91bGQg
YmUgY2xlYXIgc29tZXdoZXJlIHRoYXQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICBzdXNw
ZW5kIGlzIGZvciBDUFUgYW5kIG90aGVyIHJlc291cmNlcywgYW5kIE5BQ00gbm90DQo+ID4gPiA+
ID4gPiA+ID4gY29uc2lkZXJlZA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgIHRvIGJlIGEg
cmVzb3VyY2UuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IElmIE5BQ00gaXMgYWN0aXZlLCBpdCBuZWVkcyB0byBiZSBmb2xsb3dlZC4gIFRoZSB0ZXh0IHdl
DQo+ID4gPiA+ID4gPiA+IGhhdmUgZm9yDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE5BQ00gaXMg
aW4gU2VjdGlvbiA1LjQuICBEbyB5b3Ugc2VlIHNvbWV0aGluZyBlbHNlIHNwZWNpZmljDQo+ID4g
PiA+ID4gPiA+IHRvDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbiBzdXNwZW5z
aW9uIG5lZWRlZCBoZXJlPyAgKE1heWJlIEkgYW0gbm90DQo+ID4gPiA+ID4gPiA+IGdldHRpbmcg
eW91cg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBwb2ludC4pDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE5vIC0tIE9LIHRvIGxlYXZlIE5BQ00gYXMgdGVy
bWluYXRlLWlmLWxvc3Mtb2YtcmlnaHRzIChJcw0KPiA+ID4gPiA+ID4gPiB0aGVyZSBhbg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiBlcnJvciBpZGVudGl0eSBmb3IgdGhpcyBldmVudD8pDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIGlkZW50aXR5IHdoaWNo
IGFwcGxpZXMgaGVyZSBpcyAic3RyZWFtLXVuYXZhaWxhYmxlIi4gIFRoaXMNCj4gPiA+ID4gPiA+
IGlzIHRoZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gc2FtZSBpZGVudGl0eSB3aGljaCB3b3VsZCBi
ZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXINCj4gPiA+ID4gPiA+IHN1ZmZpY2llbnQN
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+IHBlcm1pc3Npb25zIGluIHRoZSBmaXJzdCBwbGFjZS4gIEkg
ZG9uJ3QgYmVsaWV2ZSB3ZSB3b3VsZCB3YW50DQo+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gcmV0dXJuIGFuIGlkZW50aXR5IHNwZWNpZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBl
cm1pc3Npb25zIGhhdmUNCj4gPiA+ID4gPiA+IGp1c3QNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IGJl
ZW4gY2hhbmdlZC4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gSTMpIHNlYyAyLjEgcGFyYSA2Og0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgIEV2ZW50
IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVsaXZlcmVkIHRvIGEgcmVjZWl2ZXIgaW4gYQ0KPiA+ID4g
PiA+ID4gPiA+IGRpZmZlcmVudA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgIG9yZGVyIHRo
YW4gdGhleSB3ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgLS0gZG9lcyB0aGlzIGFwcGx5
IHRvIHN1YnNjcmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LA0KPiA+ID4gPiA+ID4gPiA+IHRoZXkg
YXJlIG5vdCBldmVudHMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgcGxhY2VkIGluIGV2
ZW50IHN0cmVhbS4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRoZXkg
ZG8gbm90DQo+ID4gPiA+ID4gPiA+IHZpb2xhdGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhp
cyByZXF1aXJlbWVudC4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBpbiAiU2VjdGlvbiAy
Ljc6DQo+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBz
dGF0ZSBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4uDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICIgSW5zdGVhZCwgdGhleSBhcmUgaW5zZXJ0ZWQgKGFz
IGRlZmluZWQgaW4gdGhpcyBzZWN0aW9uKQ0KPiA+ID4gPiA+ID4gPiB3aXRoaW4gdGhlDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+IHNlcXVlbmNlIG9mIG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzZW50
IHRvIGEgcGFydGljdWxhciByZWNlaXZlci4iDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIE5lZWQgdG8gYWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVk
IHRvIGJlIHNlbnQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgaGVhZC1vZi1saW5lIHdo
ZW5ldmVyIHN0YXRlIGNoYW5nZXMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJl
IHNlbnQgaGVhZC1vZi1saW5lLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBDb25zaWRlcg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiB0aGF0IGltcGxlbWVudGF0aW9uIG1pZ2h0IHdhbnQgdG8gbGV0
IHRoZSBleGlzdGluZyBxdWV1ZSBvZg0KPiA+ID4gPiA+ID4gPiBmaWx0ZXJlZA0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiBldmVudCByZWNvcmRzIGJlIHNlbnQgaWYgaXMgZmlsdGVyIGNvbXBsZXhp
dHkgY2F1c2luZyB0aGUgQ1BVIGlzc3VlLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGF0IGNv
dWxkIGJlIGRpZmZlcmVudCB0aGFuIGlmIGl0IGlzIGEgYmFuZHdpZHRoIGlzc3VlDQo+ID4gPiA+
ID4gPiA+IGRyaXZpbmcgdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHN1c3BlbnNpb24sIGFu
ZCB5b3UgZGVmaW5pdGVseSB3YW50IHRoZSAnc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCcNCj4gPiA+
ID4gPiA+ID4gdG8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gYmUgcGxhY2VkIGF0IHRoZSBoZWFk
IG9mIGxpbmUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEl0IGlzIHVwIHRvIHRoZSBwdWJsaXNoZXIgdG8gZGVj
aWRlIHdoZW4gdG8gc3RvcCBzZW5kaW5nDQo+ID4gPiA+ID4gPiA+IGV2ZW50cyBvbiBhDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
T2J2aW91c2x5IHRoZSBwdWJsaXNoZXIgY2Fubm90IHdhaXQgdW50aWwgdGhlIHN1YnNjcmlwdGlv
biBpcyBpZGxlLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdldHRp
bmcgc3VzcGVuZGVkIGlzIGl0IGlzIGZhciBmcm9tIGlkbGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gU28gYWxzbyB1cCB0byB0aGUgcHVibGlzaGVyIHdy
dC8gd2hhdCB0byBkbyB3aXRoIGFueSBldmVudHMNCj4gPiA+ID4gPiA+ID4gdGhhdA0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiBoYXZlIG5vdCBiZWVuIGRlbGl2ZXJlZCB5ZXQgb24gYSBzdWJzY3Jp
cHRpb24uICBDb3VsZCBkZWxldGUNCj4gPiA+ID4gPiA+ID4gdGhlbSBvcg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiBzYXZlIHRoZW0gZm9yIHdoZW4gbW9yZSBiYW5kd2lkdGggYXZhaWxhYmxlIChm
b3IgZXhhbXBsZSkNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBB
Z3JlZSBmdWxseSB3aXRoIHRoaXMuICBJcyB0aGVyZSB0ZXh0IHJlcXVpcmVkIGluIHRoZSBkcmFm
dCBoZXJlPw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IC4uLg0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBCZXlvbmQgdGhhdCBpdCBpcyB1cCB0byB0aGUgaW1wbGVt
ZW50YXRpb24gdG8gZGVjaWRlIGlmIHNvbWUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdW4tdHJh
bnNtaXR0ZWQgcXVldWUgb2YgZXZlbnQgcmVjb3JkcyBzaG91bGQgYmUgZmx1c2hlZCBhbmQNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gcmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlIG1vZGlmaWNhdGlv
bi4gIEkgZG8gbm90IGV4cGVjdCB0aGlzDQo+ID4gPiA+ID4gPiA+IHdvdWxkDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IHBvcHVsYXIsIGFzIGEgcmVwbGF5IHN1YnNjcmlwdGlvbiBjb3VsZCBhY2Nv
bXBsaXNoIHRoaXMgc2FtZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBmdW5jdGlvbmFsIG5lZWQu
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFncmVlZCB0
aGF0IGFuIGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFueSB0aW1lIGFuZA0KPiA+ID4gPiA+
ID4gPiBpbmNyZW1lbnQgdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGFwcHJvcHJpYXRlIGNv
dW50ZXJzLiBJdCB3aWxsIHRyeSB0byB0byBkbyB0aGlzLCBidXQgbm8NCj4gPiA+ID4gPiA+ID4g
cmVxdWlyZW1lbnRzDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGV4Y2VwdCBtYXliZSBzdWJzY3Jp
cHRpb24gZXZlbnRzIGxpa2UgJ3JlcGxheS1jb21wbGV0ZWQnDQo+ID4gPiA+ID4gPiA+IGNhbm5v
dCBiZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkcm9wcGVkDQo+ID4gPiA+DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGF2ZSBwdXQgYSBtaW5vciB0d2VhayBpbnRvIFNlY3Rp
b24gMi43Og0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IFtvbGRd
ICBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fubm90IGJlDQo+ID4g
PiA+ID4gPiBmaWx0ZXJlZCBvdXQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fu
bm90IGJlDQo+ID4gPiA+ID4gPiBkcm9wcGVkIG9yDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBmaWx0
ZXJlZCBvdXQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAuLi4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBt
aWdodCBiZSB3b3J0aCB0d2Vha2luZyBhDQo+ID4gPiA+ID4gPiA+IGNvdXBsZQ0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiB3b3JkcyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVudCBv
Zg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAic3Vic2NyaXB0aW9uLXN1c3BlbmRlZCIuDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICJTdWJzY3JpYmVk
IGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyIHRoZQ0KPiA+ID4gPiA+ID4g
PiBpc3N1YW5jZSBvZg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICB0aGlzDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ICAgIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1h
eSBub3cgYmUgc2VudC4iDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMgc3VnZ2VzdGVkIGNoYW5nZT8NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gTm90IHN1cmUgLS0gaXQgbmVl
ZHMgdG8gYmUgY2xlYXIgdGhhdCBzdWJzY3JpcHRpb24tc3VzcGVuZGVkDQo+ID4gPiA+ID4gPiA+
IGlzIHRoZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBsYXN0IGV2ZW50IHNlbnQgYmVmb3JlIHN1
c3BlbmRpbmcgYW5kIHN1YnNjcmlwdGlvbi1yZXN1bWVkDQo+ID4gPiA+ID4gPiA+IGlzIHRoZQ0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBmaXJzdCBldmVudCBzZW50IGFmdGVyIHRyYW5zaXRpb24g
ZnJvbSBzdXNwZW5kZWQgdG8gYWN0aXZlLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGUgbmV4
dCBldmVudCBjb3VsZCBhbHNvIGJlIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgZG8gdGhpbmsgdGhpcyBwb3NzaWJp
bGl0eSBpcyBjb3ZlcmVkIGluIHRoZSB0ZXh0LiAgRm9yDQo+ID4gPiA+ID4gPiBTZWN0aW9uDQo+
ID4gPiA+ID4gPiAyLjcuNA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLXN1c3Bl
bmRlZCB0aGUgY3VycmVudCB0ZXh0IGlzOg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ICJObyBmdXJ0aGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50aWwg
dGhlIHN1YnNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gcmVzdW1lcw0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gb3IgaXMgdGVybWluYXRlZC4iDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gQW5kIFNlY3Rpb24gMi43LjUgc3Vic2NyaXB0aW9uLXJlc3VtZWQgc2F5cyI6DQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdlbmVyYXRlZCBh
ZnRlciB0aGUgaXNzdWFuY2Ugb2YgdGhpcw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gc3Vic2NyaXB0
aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBCYXNlZCBvbiB0aGUgZGlzY3Vzc2lv
biwgSSBjYW4gbWFrZSBpdDoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGFyZSBhZ2FpbiBwZXJtaXR0ZWQgdG8gYmUg
c2VudA0KPiA+ID4gPiA+ID4gZm9sbG93aW5nDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiB0aGlzIHN1
YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uLiINCj4gPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBJcyB0aGlzIHN1ZmZpY2llbnQgZm9yIHlvdT8NCj4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAuLi4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiBJNCkgc2VjIDIuNC42OiBSUEMgRmFpbHVyZXMNCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiAgIC0tIGNvbmNlcm4gYWJvdXQgYSBzdWJzY3JpcHRpb24tc3BlY2lmaWMgZXJy
b3IgcmVwb3J0aW5nDQo+ID4gPiA+ID4gPiA+ID4gc3lzdGVtDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAgICBtdXN0IG1ha2Ugc3VyZSBwcm90b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVt
IGlzDQo+ID4gPiA+ID4gPiA+ID4gdXNlZA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGNvcnJl
Y3RseQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBZZXMu
ICBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdpdGggdGhlIGVtYmVkZGVkDQo+
ID4gPiA+ID4gPiA+IE5FVENPTkYNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gYW5kIFJFU1RDT05G
IG1lY2hhbmlzbXMuICBUaGVyZSBpcyBtdWNoIGFkZGl0aW9uYWwNCj4gPiA+ID4gPiA+ID4gaW5m
b3JtYXRpb24gaW4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhlIHRyYW5zcG9ydCBkcmFmdHMg
aGVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg
IC0tIFRoZSBlcnJvci10YWcgdmFsdWUgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBmb3IgZWFjaCAn
cmVhc29uJw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGlkZW50aXR5DQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgaXMgZG9uZSBpbiB0aGUgdHJh
bnNwb3J0IGRyYWZ0cy4gIEUuZy4sIHNlZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkcmFmdC1p
ZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC0NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gbm90aWZp
Y2F0aW9ucyBTZWN0aW9uIDcNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhpcyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gRWFjaCBlcnJvciBpZGVudGl0eSBzaG91bGQgc2ltcGx5IHN0YXRlIHRoZSBy
ZXF1aXJlZCAiZXJyb3ItdGFnIg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB0aGF0IGlzIGFzc29j
aWF0ZWQgd2l0aCB0aGUgZXJyb3IuICBUaGlzIGlzIGV4cGVjdGVkIG9mDQo+ID4gPiA+ID4gPiA+
IHByb3RvY29sDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IG9wZXJhdGlvbnMgdGhhdCBhcmUgYWRk
ZWQgdG8gTkVUQ09ORiBhbmQgUkVTVENPTkYuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gSW4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZp
Y2F0aW9ucywgc2VjdGlvbiA3LA0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiByZXF1aXJlZCAiZXJyb3ItdGFnIiBpcyBpZGVudGlmaWVkIGFzICJvcGVyYXRpb24tZmFpbGVk
Ii4gIElmDQo+ID4gPiA+ID4gPiB3ZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gaW5zdGVhZCBwbGFj
ZWQgdGhhdCAiZXJyb3ItdGFnIiBpbmZvcm1hdGlvbiBpbiB0aGUgWUFORyBtb2RlbCwNCj4gPiA+
ID4gPiA+IHRoZW4gd2UNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IGhhdmUgdGllZCB0aGUgWUFORyBt
b2RlbCB0byB0aGUgUkVTVENPTkYgYW5kIE5FVENPTkYgdHJhbnNwb3J0cy4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEJvdGggTkVUQ09ORiBhbmQgUkVTVENP
TkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciByZXBvcnRpbmcNCj4gPiA+ID4gPiA+ID4gZGF0YQ0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IFRoZSAiZXJyb3ItdGFnIiBpcyB1c2VkIGluIGJvdGggb2YgdGhlbS4gIElNTyBjbGllbnQNCj4g
PiA+ID4gPiA+ID4gZGV2ZWxvcGVycyBkbw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBub3Qgd2Fu
dCBhIGRpZmZlcmVudCBzZXQgb2YgZXJyb3IgY29kZXMgZm9yIHRoZSBzYW1lIGVycm9yDQo+ID4g
PiA+ID4gPiA+IGNvbmRpdGlvbnMuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIFNlY3Rpb24gMy4zIGFs
c28gcmVxdWlyZXMgYW4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICJlcnJvci10YWciIG5vZGUgb2Yg
Im9wZXJhdGlvbi1mYWlsZWQiLiAgU28gd2UgdXNlZCB0aGUNCj4gPiA+ID4gPiA+IHRyYW5zcG9y
dA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1vZGVs
IHRvIHN1cHBvcnQgdGhlIHNhbWUgZXJyb3INCj4gPiA+ID4gPiA+IGNvZGVzIGZvcg0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCj4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgYWdyZWUgdGhhdCB0cmFuc3BvcnQgZHJh
ZnRzIGNvdWxkIGRlZmluZSB0aGVpciBvd24gZXJyb3INCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
aWRlbnRpdGllcywgd2hpY2ggd291bGQgZG9jdW1lbnQgdGhlIGV4cGVjdGVkIGVycm9yLXRhZyB0
aGVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAyLiAgIm1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFt
LWVycm9yLWluZm8iOiBUaGlzIE1VU1QNCj4gPiA+ID4gPiA+ID4gPiBiZSByZXR1cm5lZA0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICB3aXRoIHRoZSBsZWFmICJyZWFzb24iIHBvcHVs
YXRlZCBpZiBhbiBSUEMgZXJyb3INCj4gPiA+ID4gPiA+ID4gPiByZWFzb24gaGFzIG5vdA0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGlu
IHRoZSB0cmFuc3BvcnQgcG9ydGlvbg0KPiA+ID4gPiA+ID4gPiA+IG9mIGEgZmFpbGVkDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICJtb2RpZnktc3Vic2NyaXB0aW9uIiBSUEMgcmVz
cG9uc2UuICBUaGlzIE1VU1QgYmUNCj4gPiA+ID4gPiA+ID4gPiBzZW50IGlmDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gaGludHMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ICAgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIg
d2hhdCAicGxhY2VkIGVsc2V3aGVyZSINCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICB0
ZXh0IG1lYW5zOyBub3QgYXBwcm9wcmlhdGUgZm9yIE1VU1Q7DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEluc3RlYWQgb2YgInBsYWNlZCBlbHNld2hlcmUi
LCBob3cgYWJvdXQ6ICJwbGFjZWQgaW4NCj4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+IHRyYW5zcG9ydCBkb2N1bWVudCBkZWZpbmVkIG9iamVjdCIuICBX
b3VsZCB0aGlzIGJlIHN1ZmZpY2llbnQ/DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+IE5vIC0tIE5FVENPTkYgYW5kIFJFU1RDT05GIGhhdmUgd2VsbC1kZWZp
bmVkIGVycm9yIHJlcG9ydGluZy4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhlIHNlcnZlciBy
ZXF1aXJlbWVudHMgZm9yIHRoaXMgZXJyb3IgcmVwb3J0aW5nIG11c3QgYmUNCj4gZG9jdW1lbnRl
ZC4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSBhZ3Jl
ZSB3aXRoIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2g6DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg
LSBlYWNoIG9wZXJhdGlvbiBNVVNUIGlkZW50aWZ5IHRoZSBlcnJvci10YWdzIHRoYXQgYXJlDQo+
ID4gPiA+ID4gPiA+IGV4cGVjdGVkIGZvcg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgdmFy
aW91cyBlcnJvciBjb25kaXRpb25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMgNjI0MSkNCj4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gICAtIHRoZSBzZXJ2ZXIgTVVTVCByZXR1cm4gdGhlIHNwZWNpZmll
ZCBlcnJvci10YWdzLiBJZiBhDQo+ID4gPiA+ID4gPiA+IGNvbmRpdGlvbiBub3QNCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gICAtIGV4cGxpY2l0bHkNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg
IGRlZmluZWQgdGhlbiB0aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlhdGUNCj4gPiA+
ID4gPiA+ID4gZXJyb3ItdGFnIGZyb20gUkZDDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICA2
MjQxDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAtIHRoZSBzZXJ2ZXIgTUFZIGluY2x1ZGUgdGhl
IHNwZWNpZmllZCByYzp5YW5nLWRhdGEgaW4gdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IDxl
cnJvci1pbmZvPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgLSBkYXRhDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+IHN0cnVjdHVyZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgLSB0aGUgc2VydmVy
IE1VU1QgdXNlIHRoZSBhcHByb3ByaWF0ZSByYzp5YW5nLWRhdGEgdG8NCj4gPiA+ID4gPiA+ID4g
cmVwb3J0IGhpbnRzDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAtIGZvciBwcm90b2NvbHMgb3Ro
ZXIgdGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhleSBjYW4NCj4gPiA+ID4gPiA+ID4gbWFw
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGVycm9yLXRhZw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiAgLSBvcg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBpZ25vcmUgaXQsDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ICAgIGJ1dCB0aGUgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHByb3RvY29sIG9wZXJh
dGlvbiBNVVNUDQo+ID4gPiA+ID4gPiA+IHByb3ZpZGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiBGdW5jdGlvbmFsbHksIGV2ZXJ5dGhpbmcgeW91IGFzayBmb3Ig
aXMgZnVsbHkgY292ZXJlZCB3aGVuIHlvdQ0KPiA+ID4gPiA+ID4gaW5jbHVkZQ0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90
aWZpY2F0aW9ucw0KPiA+ID4gPiA+ID4gKHNlY3Rpb24NCj4gPiA+ID4gPiA+IDcpDQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIChzZWN0
aW9uIDMuMykuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gTXkg
cmVhZCBvZiB0aGUgaXNzdWUgaXMgdGhhdCB5b3UgYmVsaWV2ZSAiZXJyb3ItdGFnIiBtdXN0IGJl
DQo+ID4gPiA+ID4gPiBzcGVjaWZpZWQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IGluIHRoZSBZQU5H
IG1vZGVsLiAgSSBiZWxpZXZlIHRoYXQgImVycm9yLXRhZyIgc2hvdWxkbid0IGJlIGluDQo+ID4g
PiA+ID4gPiB0aGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IFlBTkcgbW9kZWwgYmVjYXVzZSB0aGF0
IHdvdWxkIHRpZSB0aGUgbW9kZWwgdG8gYSB0cmFuc3BvcnQgdHlwZS4NCj4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbnkgdGhvdWdodHMgb24gaG93IHdlIG1pZ2h0
IGNsb3NlIHRoaXM/ICBJZiBhYnNvbHV0ZWx5DQo+ID4gPiA+ID4gPiByZXF1aXJlZCBJDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiBjb3VsZCBwbGFjZSBhIG5ldyBjb21tZW50IGxpbmUgaW4gdGhlIFlB
TkcgbW9kZWwgdW5kZXINCj4gPiA+ID4NCj4gPiA+ID4gPiA+IC8qIElkZW50aXRpZXMgZm9yIFJQ
QyBhbmQgTm90aWZpY2F0aW9uIGVycm9ycyAqLw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4NCj4gPiA+ID4gPiA+IFRoZSBjb21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlOg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gLyogV2hlbiB1c2VkIHdpdGggTkVUQ09ORiBhbmQgUkVTVENPTkYg
UlBDczoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAiZXJyb3ItdHlwZSIgbm9kZSB0byBiZSB1
c2VkIGlzICJhcHBsaWNhdGlvbiINCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgImVycm9yLXRh
ZyIgbXVzdCBiZSAib3BlcmF0aW9uLWZhaWxlZCIuICAqLw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoaXMgc2VlbXMgaW5jb25ncnVvdXMuICBKdXN0IHRocm93
aW5nIGl0IG91dCBhcyBhIHN1Z2dlc3Rpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiBJbiBhbnkgY2FzZSwgdGhlIC12MjEgd29yZGluZyByZXN1bHRzIGZy
b20gdGhlIGF0dGVtcHRlZA0KPiA+ID4gPiA+ID4gPiBiYWxhbmNpbmcNCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gdGhlIFdHIHJlcXVlc3RzIGZvcjoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKiBt
ZXJnaW5nIHdpdGggdHJhbnNwb3J0IHByb3RvY29sIGVycm9yIG1lY2hhbmlzbXMNCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gKiBXRyBsZWFkZXJzaGlwIGd1aWRhbmNlIHRvIHByb3ZpZGUgcmVxdWly
ZW1lbnRzIGZvcg0KPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gZG9jdW1lbnRzDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAgICBPbmx5IDMgZmllbGRzIHNlZW0NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg
ICAgICB0byBiZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJvci1hcHAtdGFnLCBlcnJvci1pbmZv
KS4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICBQcm90Y29sIG9wZXJhdGlvbnMgYXJl
IGV4cGVjdGVkIHRvIGRvY3VtZW50IHNlcnZlcg0KPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmVtZW50
cw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgIGZvciB0aGVzZSAzIGZpZWxkcywgaWYg
YXBwbGljYWJsZS4gIE9ubHkgdGhlDQo+ID4gPiA+ID4gPiA+ID4gZXJyb3ItdGFnDQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgaXMgbWFuZGF0b3J5LXRvLXVzZS4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSG9wZWZ1bGx5IHRoZXNlIGFyZSBj
b3ZlcmVkIHN1ZmZpY2llbnRseSB3aGVuIHRoaXMgZG9jdW1lbnQNCj4gPiA+ID4gPiA+ID4gaXMN
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gY291cGxlZCB3aXRoIHRoZSBORVRDT05GIGFuZCBSRVNU
Q09ORiBOb3RpZiB0cmFuc3BvcnQNCj4gZG9jdW1lbnRzLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiBGb3Igb3RoZXIgdHJhbnNwb3J0cywgdGhlIHRhZ3MgeW91IGlkZW50aWZ5IGFib3V0IHdvdWxk
IG5vdA0KPiA+ID4gPiA+ID4gPiBiZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBhcHBsaWNhYmxl
Lg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgLS0g
dGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBleHRyZW1lbHkgc3BlY2lmaWMuIGUuZy4sDQo+ID4g
PiA+ID4gPiA+ID4gaXQgaXMgbm90DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICBwb3Nz
aWJsZSBmb3IgPGtpbGwtc3Vic2NyaXB0aW9uPiB0byBmYWlsIHdpdGggYW4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiAgICAgICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpcyBpcyB0aGUgaW50
ZW50IG9mIHRoZSBiYXNlIHNwZWNpZmljYXRpb24sIGUuZy4sIHdlIGRvbid0DQo+ID4gPiA+ID4g
PiA+IGJlbGlldmUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gYQ0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBraWxsLQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24gc2hvdWxkIGZh
aWwgZm9yIGFuIGluc3VmZmljaWVudC1yZXNvdXJjZXMgcmVhc29uLg0KPiA+ID4gPiA+ID4gPiBC
dXQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdmVuZG9ycyBtaWdodCBkZXNpcmUgbW9yZSBzcGVj
aWZpY2l0eS4gIEFzIGEgcmVzdWx0IGlzDQo+ID4gPiA+ID4gPiA+IGNlcnRhaW5seSBvaw0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiBmb3IgdmVuZG9yIGltcGxlbWVudGF0aW9ucyB0byBhZGQgbmV3
IGVycm9yIGlkZW50aXRpZXMuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNpZW50IHJlc291cmNl
cy4gVGhhdCBpcw0KPiA+ID4gPiA+ID4gPiB2ZXJ5DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGlt
cGxlbWVudGF0aW9uLQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzcGVjaWZpYy4NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIGltcGxlbWVudGF0
aW9uIHNwZWNpZmljIEkgd291bGQgY2FsbCBpdCBhcHBsaWNhdGlvbg0KPiA+ID4gPg0KPiA+ID4g
PiA+ID4gc3BlY2lmaWMuICBSaWdodCBub3cgd2UgZG9uJ3QgaGF2ZSBhIGNhdGNoLWFsbCBlcnJv
ci1pZGVudGl0eQ0KPiA+ID4gPiA+ID4gb2YNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ICdvdGhlci1l
cnJvcicuICBXZSBwcmVmZXJyZWQgdGhhdCBlcnJvciBjb25kaXRpb25zIGJleW9uZCB0aGUNCj4g
PiA+ID4gPiA+IGN1cnJlbnQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IG9uZXMgbGlzdGVkIGNvdWxk
IGJlIGluY2x1ZGVkIGJ5IHZlbmRvcnMgYXMgbmVlZGVkLiAgRnVydGhlcg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gZGVwbG95bWVudCBleHBlcmllbmNlIGNvdWxkIHJlc3VsdCBpbiBuZXcgZXJyb3Ig
aWRlbnRpdGllcw0KPiA+ID4gPiA+ID4gc3VyZmFjaW5nDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBm
b3Igc3RhbmRhcmRpemF0aW9uIHNob3VsZCB0aGlzIGRyYWZ0IGNhdGNoIG9uLg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgIERvIG5vdCBhZ3JlZSB0
aGF0IHNjb3BpbmcgZWFjaA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgaWRlbnRpdHkg
dG8gc3BlY2lmaWMgUlBDIG9wZXJhdGlvbnMgaXMgYSBnb29kIGlkZWEuDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNp
dHkgd2FzIG5vdCB0aGUgYXV0aG9yJ3Mgb3JpZ2luYWwgcGxhbnMuDQo+ID4gPiA+ID4gPiA+IE5v
cg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB3YXMgdGhpcyBsZXZlbCBvZiBzcGVjaWZpY2l0eSBw
YXJ0IG9mIGVhcmxpZXIgZHJhZnQgdmVyc2lvbnMNCj4gPiA+ID4gPiA+ID4gdXANCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gdGhyb3VnaCAtdjA4LiAgSG93ZXZlciBtZW1iZXJzIG9mIHRoZSBXRyBt
YWRlIGl0IGNsZWFyIHRoYXQNCj4gPiA+ID4gPiA+ID4gc3VjaA0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBzcGVjaWZpY2l0eSB3YXMgbmVjZXNzYXJ5IGZvciBkcmFmdCBwcm9ncmVzc2lvbi4NCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIC0tIGhvdyBh
cmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9yDQo+ID4gPiA+ID4gPiA+
ID4gY29uZmlndXJlZA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgc3Vic2NyaXB0aW9u
cyB3aGVuIDxlZGl0LWNvbmZpZz4gaXMgdGhlIFJQQyB0aGF0IGhhcyB0aGUNCj4gPiA+ID4gPiA+
ID4gPiAgICAgIGVycm9yPw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgSG93IGFyZSB0
aGUgeWFuZy1kYXRhIHN0cnVjdHMgdXNlZCBmb3IgZWRpdC1jb25maWcgb3INCj4gPiA+ID4gPiA+
ID4gPiBjb21taXQNCj4gPiA+IGVycm9ycz8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gTm9uZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUg
c3BlY2lmaWVkIGZvciB1c2UNCj4gPiA+ID4gPiA+ID4gd2l0aA0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA8ZWRpdC1jb25maWc+IG9wZXJhdGlvbnMuICBGb3IgPGVkaXQtY29uZmlnPiwgdGhlIGNo
YW5nZSB0bw0KPiA+ID4gPiA+ID4gPiBhDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGNvbmZpZ3Vy
ZWQgc3Vic2NyaXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZg0KPiA+
ID4gPiA+ID4gPiBpdCB3ZXJlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHNlbWFudGljYWxseSB2
YWxpZC4gIEF0IHRoaXMgcG9pbnQgdGhlIHN1YnNjcmlwdGlvbiBlbnRlcnMNCj4gPiA+ID4gPiA+
ID4gdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFtldmFsdWF0ZV0gcG9pbnRzIG9mIEZpZ3Vy
ZSA4LiAgSXNzdWVzIGZyb20gdGhpcyBwb2ludCBvdXQNCj4gPiA+ID4gPiA+ID4gd291bGQgYmUN
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBzcGVjaWZpYyBj
b25zdHJ1Y3Qgc3VjaCBhcyBTWVNMT0cuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+IFNvIGhvdyBhcmUgaGludHMgcmVwb3J0ZWQgZm9yIGNvbmZpZ3VyZWQg
c3Vic2NyaXB0aW9ucz8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiBUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJlcXVpcmVzIHRo
aXMuICBBbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gaW1wbGVtZW50YXRpb24gY291bGQgY2hvb3Nl
IHRvIHBsYWNlIHRoZXNlIGluIHNvbWUgZm9ybSBvZiBTWVNMT0cuDQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiAuLi4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJNikgc2VjIDIuNSwgcGFyYSAzOg0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgT24g
YSByZWNlaXZlciBvZiBhDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgY29uZmlndXJlZCBz
dWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiBzdWJzY3Jp
cHRpb25zIGlzDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgb3B0aW9uYWwgZXhjZXB0IHdo
ZXJlIHJlcGxheWluZyBtaXNzZWQgZXZlbnQgcmVjb3JkcyBpcw0KPiA+ID4gPiA+ID4gPiA+ICAg
IHJlcXVpcmVkLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAtLSBjb25mdXNpbmcgYmVjYXVzZSB0ZXh0IGluIDEuMzoNCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBtaXhpbmctYW5kLW1hdGNoaW5n
IG9mIGR5bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiBhbmQgY29uZmlndXJlZA0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ICAgICAgb3BlcmF0aW9ucyBvbiBhIHNpbmdsZSBzdWJzY3JpcHRpb24uICBT
cGVjaWZpY2FsbHksIGENCj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmVkDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gICAtLSBjbGFyaWZ5IHRoZSByZWNlaXZlciBtYXkgaGF2ZSBtdWx0aXBsZSBz
dWJzY3JpcHRpb25zDQo+ID4gPiA+ID4gPiA+ID4gaGVyZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ICAgLS0gbm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcuLi4iIHRleHQg
bWVhbnMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSG93
IGFib3V0IHRoZSBmb2xsb3dpbmcgdHdlYWs6DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ICJPbiBhIHJlY2VpdmVyIG9mIGEgY29uZmlndXJlZCBzdWJzY3Jp
cHRpb24sIHN1cHBvcnQgZm9yDQo+ID4gPiA+ID4gPiA+IGR5bmFtaWMNCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gc3Vic2NyaXB0aW9ucyBpcyBvcHRpb25hbC4gIEhvd2V2ZXIgaWYgcmVwbGF5aW5n
IG1pc3NlZA0KPiA+ID4gPiA+ID4gPiBldmVudA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiByZWNv
cmRzIGlzIHJlcXVpcmVkIGZvciBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBwb3J0DQo+
ID4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkeW5hbWljIHN1YnNjcmlw
dGlvbiBpcyBoaWdobHkgcmVjb21tZW5kZWQuICBJbiB0aGlzIGNhc2UsIGENCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gc2VwYXJhdGUgZHluYW1pYyBzdWJzY3JpcHRpb24gY2FuIGJlIGVzdGFibGlz
aGVkIHRvDQo+ID4gPiA+ID4gPiA+IHJldHJhbnNtaXQgdGhlDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IG1pc3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+IE9LDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gQ2hhbmdlIG1hZGUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IEk3KSBsZWFmIHN0cmVhbS14cGF0aC1maWx0ZXI6IFttdWx0aXBsZSB1c2Vz
XQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAg
ICAgICAgICBUaGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgaW4gdGhlIGZvbGxvd2luZyBYUGF0
aA0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgY29udGV4dDoNCj4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICBvIFRoZSBzZXQg
b2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBpcyB0aGUgc2V0IG9mDQo+ID4gPiA+ID4gPiA+ID4g
ICAgICAgICAgICAgIHByZWZpeA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAg
ICAgICAgYW5kIG5hbWVzcGFjZSBwYWlycyBmb3IgYWxsIFlBTkcgbW9kdWxlcw0KPiA+ID4gPiA+
ID4gPiA+IGltcGxlbWVudGVkDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAg
ICAgICBieSB0aGUgc2VydmVyLCB3aGVyZSB0aGUgcHJlZml4IGlzIHRoZQ0KPiA+ID4gPiA+ID4g
PiA+IFlBTkcgbW9kdWxlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg
ICBuYW1lIGFuZCB0aGUgbmFtZXNwYWNlIGlzIGFzIGRlZmluZWQgYnkNCj4gPiA+ID4gPiA+ID4g
PiB0aGUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICduYW1lc3Bh
Y2UnIHN0YXRlbWVudCBpbiB0aGUgWUFORyBtb2R1bGUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIC0tIFRoaXMgcHJlZml4IHByb2Nlc3Npbmcg
aXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZSBpbg0KPiA+ID4gPiA+ID4gPiA+IE5FVENPTkYNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgIG9yIFJFU1RDT05GLiAgSU1PIGEgYmFkIHByZWNl
ZGVudC4gIE9ubHkgdGhlIFhNTA0KPiA+ID4gPiA+ID4gPiA+IHByZWZpeGVzDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gICAgICBzaG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Npbmcgb2Yg
WE1MIGVuY29kaW5nLg0KPiA+ID4gPiA+ID4gPiA+IFlBTkcNCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiAgICAgIG1vZHVsZSBwcmVmaXhlcyBhcmUgbm90IHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSwg
dW5saWtlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICB0aGUgcHJlZml4IG1hcHBpbmdz
IGluIFhNTA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBU
aGlzIHRleHQgd2FzIHByb3Bvc2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBvZiB0aGUgInhwYXRo
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGV4cHJlc3Npb25zIGluIEpTT04iDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9ELg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJIGFtIGhhcHB5IHRvIGluY29ycG9y
YXRlIHdoYXRldmVyIHRleHQgaXMgYXBwcm9wcmlhdGUuICBJDQo+ID4gPiA+ID4gPiA+IHdhcw0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBob3BpbmcgdGhhdCB0aGUgc3VnZ2VzdGVkIHRleHQgd2Fz
IHN1ZmZpY2llbnQgZm9yIG5vdy4gIEtlbnQNCj4gPiA+ID4gPiA+ID4gaGFzDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMgYW4gaXNzdWUgZm9yIHlh
bmctbmV4dA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9k
LXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gU28gaG9wZWZ1
bGx5IHRoZXJlIGlzIG5vIGZpbmFsIHByZWNlZGVudCBiZWluZyBjbGFpbWVkLg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJIGRvIG5vdCBhZ3JlZSB0aGF0
IHRoaXMgWUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBhIG5ldyB3YXkNCj4gPiA+ID4gPiA+ID4g
dG8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZW5jb2RlIFhQYXRoIGludG8gWE1MIGluc3RhbmNl
IGRvY3VtZW50cy4gVGhpcyB3aWxsIHJlcXVpcmUNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gc2ln
bmlmaWNhbnQgY2hhbmdlcyB0byBzZXJ2ZXIgaW1wbGVtZW50YXRpb25zLiAgWUFORyBtb2R1bGUN
Cj4gPiA+ID4gPiA+ID4gcHJlZml4ZXMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gYXJlIG5vdCBl
dmVuIHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSBzbyB0aGUgc2V0IG9mIHByZWZpeGVzDQo+ID4gPiA+
ID4gPiA+IHVzZWQgYnkNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhlIHNlcnZlciBpbiBYTUwg
aW5zdGFuY2UgZG9jdW1lbnRzIG1heSBiZSBkaWZmZXJlbnQsIHNpbmNlDQo+ID4gPiA+ID4gPiA+
IGl0IG11c3QNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gYmUgdW5pcXVlLg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IFNlZSBuZXh0IG5vdGUNCj4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAtLSBOTURBIGFsbG93cyB0aGUg
c2FtZSBtb2R1bGUgdG8gYXBwZWFyIGluIG11bHRpcGxlDQo+ID4gPiA+ID4gPiA+ID4gbW9kdWxl
LXNldHMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgIGFuZCBkaWZmZXJlbnQgaW4gZWFj
aCBkYXRhc3RvcmUuIFRoaXMgdGV4dCBhYm91dA0KPiA+ID4gPiA+ID4gPiA+ICJpbXBsZW1lbnRl
ZCBieQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgdGhlIHNlcnZlciIgZG9lcyBub3Qg
d29yayBmb3IgTk1EQQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBJIGFtIGhhcHB5IHRvIGFkb3B0IHdoYXRldmVyIHRleHQgbWVldHMgWUFORyBkb2N0b3Ig
YXBwcm92YWwuDQo+ID4gPiA+ID4gPiA+IENhbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB5b3Ug
c3VnZ2VzdD8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gUmVtb3ZlIGFsbCB0ZXh0IGFib3V0IFlBTkcgcHJlZml4
ZXMgYW5kIGNvbnRpbnVlIHVzaW5nIFhNTA0KPiA+ID4gPiA+ID4gPiBlbmNvZGluZw0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiB3aXRob3V0IG1vZGlmaWNhdGlvbg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyBy
ZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0DQo+ID4gPiA+ID4gPiBtb2RpZmljYXRpb24sDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiBJIGJlbGlldmUgdGhpcyBpcyBhIGJsb2NrZXIuICBXaGF0IGlzIHRo
ZSBwcm9jZXNzIGZvciBZQU5HDQo+ID4gPiA+ID4gPiBtb2RlbA0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gcmV2aWV3cyBpbiBzdWNoIGEgY2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVy
IGhlcmUuDQo+ID4gPiA+ID4gPiBBbnkNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IHN1Z2dlc3Rpb25z
IG9uIG5leHQgc3RlcHM/DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gLi4uDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUgYW4g
ZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJsZSBlbmNvZGluZw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IHByb3ZpZGVkDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IEkgYW0gaGFwcHkgdG8gZW5oYW5jZSB0aGUgZGVmaW5pdGlvbiBZQU5HIG1vZGVsJ3MgaWRl
bnRpdHkNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGVmaW5pdGlvbiBvZiAiY29uZmlndXJhYmxl
LWVuY29kaW5nIi4gIEkgY291bGQgZG8gdGhpcyBieQ0KPiA+ID4gPiA+ID4gPiBhZGRpbmcNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHRleHQgdG8gdGhl
IGRlc2NyaXB0aW9uOiAiQW4NCj4gPiA+ID4gPiA+ID4gZXhhbXBsZSBvZiBhDQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IGNvbmZpZ3VyYWJsZSBlbmNvZGluZyBtaWdodCBiZSBhIG5ldyBpZGVudGl0
eSBzdWNoIGFzICdlbmNvZGUtY2JvcicuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFN1Y2ggYW4g
aWRlbnRpdHkgY291bGQgdXNlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICdjb25maWd1cmFibGUt
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRoaXMgd291
bGQgYWxsb3cgYSBkeW5hbWljDQo+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiBlbmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1ZXN0IG5vdGlm
aWNhdGlvbiBtZXNzYWdlcw0KPiA+ID4gPiA+ID4gPiBiZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiBlbmNvZGVkIHZpYSBDQk9SIFtSRkMtIDcwNDldLiAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkN
Cj4gPiA+ID4gPiA+ID4gc3BlY2lmaWMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gY29uZmlndXJh
YmxlIGVuY29kaW5nIHdvdWxkIGJlIGV4cGxvcmVkIGluIGEgdHJhbnNwb3J0DQo+ID4gPiA+ID4g
PiA+IGRvY3VtZW50DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGJhc2VkIG9uIHRoaXMgc3BlY2lm
aWNhdGlvbi4iICBEb2VzIHRoaXMgbWVldCB5b3VyIGFzaz8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT0sNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBBZGRlZA0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJMTEpIGV4dGVuc2lvbiBzdWJz
Y3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uIHsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICBUaGlzIHN0YXRlbWVudCBpcyBub3QgZm9y
IHVzZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICBvdXRzaWRlIG9mIHRoaXMgWUFO
RyBtb2R1bGUuIjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ICAgLS0gdGhpcyB0ZXh0IHNob3VsZCBiZSByZW1vdmVkLiBUaGVyZSBpcyBubyB2YWx1
ZSBpbg0KPiA+ID4gPiA+ID4gPiA+IGxpbWl0aW5nDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
ICAgICB0aGUgc2NvcGUgb2YgdGhpcyBleHRlbnNpb24uICBJdCBwcmV2ZW50cyBldmVuIHRoaXMN
Cj4gPiA+ID4gPiA+ID4gPiBXRyBmcm9tDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICBj
cmVhdGluZyBhIG1vZHVsZSB0aGF0IHVzZXMgdGhlIGV4dGVuc2lvbiBhZ2Fpbi4NCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpcyB3YXMgdGhlIHN1Ympl
Y3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRlIGluIHRoZSBXRy4gIFRoZQ0KPiA+ID4gPiA+ID4gPiBh
dXRob3JzDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGRpZCBub3Qgd2FudCB0aGlzIHJlc3RyaWN0
aW9uIGVpdGhlci4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gVG8gYmUgYWxsb3dlZCB0byBwcm9ncmVzcyB0aGUgZG9jdW1lbnQsIHdlIGluc2VydGVkIHRo
ZSBkb2N1bWVudC4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSWYgdGhpcyByZWFsbHkgaXMgbWFu
ZGF0b3J5LXRvLXJlbW92ZSBmcm9tIGEgWUFORyBkb2N0b3INCj4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gcG9pbnQtb2Ytdmlldywgd2hhdCBpcyB0aGUgcHJvY2VzcyBmb3IgcXVpY2sgY2xvc3VyZSBv
biB0aGlzDQo+ID4gPiA+ID4gPiA+IGlzc3VlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGJldHdl
ZW4gV0cgbGVhZGVyc2hpcCBhbmQgdGhlIFlBTkcgZG9jdG9ycz8NCj4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhl
IFlBTkcgbGFuZ3VhZ2UgbWFrZXMgbm8gcmVzdHJpY3Rpb25zIGFib3V0IGV4cG9ydGluZw0KPiBz
dGF0ZW1lbnRzLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJIGd1ZXNzIEkgbWlzc2VkIHRoYXQg
ZGViYXRlIHNvIEkgd2lsbCBqdXN0IHNheSBPSyBhbmQNCj4gPiA+ID4gPiA+ID4gd29uZGVyIHdo
YXQNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gcHJvYmxlbSB0aGlzIGlzIHN1cHBvc2VkIHRvIHNv
bHZlLiBJIGd1ZXNzIHRoZSBXRyB3YW50cyB0bw0KPiA+ID4gPiA+ID4gPiBnaXZlIFlBTkcNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gRG9jdG9ycyBtb3JlIHRoaW5ncyB0byBjaGVjay4gKFRoaXMg
aXMgd2hhdCB3ZSBjYWxsZWQgYSBDTFINCj4gPiA+ID4gPiA+ID4gaW4NCj4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gU05NUC1sYW5kIDstKQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+IFRoYW5rcy4gIE5vIGFjdGlvbiB0YWtlbi4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSTEzKSAgIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRp
b24tc3RhcnRlZCB7DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIHNuOnN1YnNjcmlwdGlv
bi1zdGF0ZS1ub3RpZmljYXRpb247DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIGlmLWZl
YXR1cmUgImNvbmZpZ3VyZWQiOw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICBkZXNjcmlw
dGlvbg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICJUaGlzIG5vdGlmaWNhdGlvbiBp
bmRpY2F0ZXMgdGhhdCBhIHN1YnNjcmlwdGlvbiBoYXMNCj4gPiA+ID4gPiA+ID4gPiBzdGFydGVk
IGFuZA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgbm90aWZpY2F0aW9ucyBhcmUg
YmVnaW5uaW5nIHRvIGJlIHNlbnQuIFRoaXMNCj4gPiA+ID4gPiA+ID4gPiBub3RpZmljYXRpb24g
c2hhbGwNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgb25seSBiZSBzZW50IHRvIHJl
Y2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQNCj4gPiA+ID4gPiA+ID4gPiBkb2VzIG5vdA0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJw
b3NlIG5vdGlmaWNhdGlvbi4iOw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gICAtLSAybmQgc2VudGVuY2UgaXMgY29uZnVzaW5nOyBhbGwgbm90aWZp
Y2F0aW9ucyBhcmUgc2VudA0KPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAgICByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb24uIGxhc3QgcGFydCBpcyByZWR1
bmRhbnQNCj4gPiA+ID4gPiA+ID4gPiBzaW5jZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAg
ICAgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb24gZXh0ZW5zaW9uIGlzDQo+
ID4gPiA+ID4gPiA+ID4gdXNlZA0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiBUaGVyZSBpcyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNl
bnRlbmNlIGNvbXBsZXRlbHkuDQo+ID4gPiA+ID4gPiA+IElmDQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IEkgZGlkIHRoYXQsIHdvdWxkIHRoaXMgYWRkcmVzcyB5b3VyIGNvbmNlcm4/DQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9LDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gRG9uZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJMTQpICAgcmM6eWFuZy1kYXRhIG1vZGlmeS1zdWJz
Y3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8gew0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgbGVhZiBmaWx0ZXItZmFpbHVyZS1oaW50IHsN
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIHR5cGUgc3RyaW5nOw0KPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmliaW5nIHdoZXJlIGFuZC9vciB3
aHkgYQ0KPiA+ID4gPiA+ID4gPiA+IHByb3ZpZGVkIGZpbHRlcg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ICAgICAgICAgICAgICB3YXMgdW5zdXBwb3J0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24u
IjsNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIC0tIHJwYy1lcnJvciBhbHJlYWR5IGFs
bG93cyBtb3JlIHByZWNpc2UgZXJyb3IgcmVwb3J0aW5nDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gICAgICBJdCB1c2VzIGVycm9yLXRhZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5nLCBhbmQN
Cj4gPiA+ID4gPiA+ID4gPiBlcnJvci1pbmZvDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAg
ICBleHRlbnNpb25zDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICB0byBpZGVudGlmeSB3
aGljaCBwYXJhbWV0ZXJzL2NvbmRpdGlvbnMgY2F1c2VkIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IFJQ
QyB0byBiZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgcmVqZWN0ZWQuDQo+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gICAgICBUaGlzIGVycm9yIHJlcG9ydGluZyB3aWxsIGNvbnRpbnVl
IHRvIGJlIHVzZWQsIE5vdA0KPiA+ID4gPiA+ID4gPiA+IHN1cmUgdGhpcw0KPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ICAgICAgZmFpbHVyZS1oaW50DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
ICAgICBoYXMgYW55IHN0YW5kYXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFtcGxlIGNh
bg0KPiA+ID4gPiA+ID4gPiA+IGJlDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gYWRkZWQNCj4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gUGVyIHlvdXIgdGhv
dWdodHMgb24gcnBjLWVycm9yLi4uICBGb3IgTkVUQ09ORiBhbmQgUkVTVENPTkYsDQo+ID4gPiA+
ID4gPiA+IHlvdQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBwb2ludCB0byBlcnJvciBzdHJ1Y3R1
cmVzIHdoaWNoIGhpc3RvcmljYWxseSBiZWVuIHVzZWQgd2l0aA0KPiA+ID4gPiA+ID4gPiB0aG9z
ZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnRzLg0KPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBPZiBjb3Vyc2UNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gd2Ugd2VyZSBsb29raW5nIHRv
IGhhdmUgYWxsIHN1YnNjcmlwdGlvbiBoaW50cyBzdXBwb3J0YWJsZQ0KPiA+ID4gPiA+ID4gPiBh
Y3Jvc3MNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0cyB2aWEgYSBzaW5nbGUgcG9y
dGFibGUgWUFORyBkYXRhIHN0cnVjdHVyZS4gIFNvDQo+ID4gPiA+ID4gPiA+IHRoZSB2YWx1ZQ0K
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBpcyB0aGF0IGEgc2luZ2xlIHN0cmluZyBvYmplY3QgZXhp
c3RzIHNvIHRvIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiB3aGF0ZXZlciB0aGUNCj4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gdmVuZG9yIHRoaW5rcyB3b3VsZCBiZSB1c2VmdWwgYXMgYSBoaW50IGlu
IHRoaXMgY2FzZS4gIEkuZS4sDQo+ID4gPiA+ID4gPiA+IHRoZXJlDQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IGhhcyBiZWVuIG5vIGF0dGVtcHQgdG8gc3RhbmRhcmRpemUgdGhlIGNvbnRlbnRzIG9m
IHRoaXMgc3RyaW5nLg0KPiA+ID4gPiA+ID4gPiBJZg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBv
cGVyYXRpb25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3VjaCBzdHJ1Y3R1cmlu
ZywNCj4gPiA+ID4gPiA+ID4gdGhpcw0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBjb3VsZCBwcm92
aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQgYnVpbGRpbmcgb2ZmIG9mIHRoaXMNCj4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gc3RhcnRpbmcgcG9pbnQuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgZ3Vlc3MgSSBkbyBub3QgY29uc2lkZXIgTkVUQ09O
RiBhbmQgUkVTVENPTkYgImhpc3RvcmljIiBxdWl0ZQ0KPiB5ZXQuDQo+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IFRoZXJlIGFyZSBtYW55IGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGUgcnBjLWVycm9y
IHJlcG9ydGluZw0KPiA+ID4gPiA+ID4gPiB3aXRoIG5vDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IGludGVudCB0byByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGVsc2UuDQo+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgd2FzIGp1c3QgYXNraW5nIGZvciBh
biBleGFtcGxlLCBzaW5jZSBJIGhhdmUgbm8gaWRlYSB3aGF0DQo+ID4gPiA+ID4gPiA+IGFuDQo+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGltcGxlbWVudG9yIHdvdWxkIHB1dCBpbiB0aGlzIGxlYWYu
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGVyZSBpcyBhbiBl
eGFtcGxlIGZyb20gb3VyIGltcGxlbWVudGF0aW9uLiAgU2F5IHlvdSBtaXN0eXBlDQo+ID4gPiA+
ID4gPiBhbiBleHRyYQ0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gIlwiIHRvIGFuIHhwYXRoIGZpbHRl
cjoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IC9pZjppbnRlcmZhY2VzLXN0YXRlL2ludGVyZmFjZVtu
YW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyDQo+ID4gPiA+ID4gPiAtc3RhDQo+ID4gPiA+
ID4gPiB0dXMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEFzIGEgcmVzdWx0LCB0aGUgZmlsdGVyIGlz
IHBhc3NlZCB0byB0aGUgcHVibGlzaGVyIGlzOg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gL2lmOmlu
dGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGUN
Cj4gPiA+ID4gPiA+IHItc3QNCj4gPiA+ID4gPiA+IGF0dXMNCj4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPiBXaGF0IHdlIHdvdWxkIHJldHVybiBpbiB0aGUgZmFpbHVy
ZS1oaW50IHN0cmluZyBpczoNCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEludmFsaWQgZXhwcmVzc2lv
bjogb2Zmc2V0KDkpIGluDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAnL2lmOmludGVccmZhY2VzLXN0
YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLQ0KPiBzdGF0dXMn
DQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gRXJpYw0KPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQW5keQ0K


From nobody Thu Jan 24 07:29:55 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 82FF81286E7; Thu, 24 Jan 2019 07:29:53 -0800 (PST)
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, 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 bxqfiocbSbpb; Thu, 24 Jan 2019 07:29:48 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 254BE124408; Thu, 24 Jan 2019 07:29:48 -0800 (PST)
Received: from localhost (unknown [173.38.220.45]) by mail.tail-f.com (Postfix) with ESMTPSA id B46781AE00A0; Thu, 24 Jan 2019 16:29:46 +0100 (CET)
Date: Thu, 24 Jan 2019 16:29:45 +0100 (CET)
Message-Id: <20190124.162945.523862790570074888.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com>
References: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com> <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FhWKDSv5AUd09gik5qdTWUnBHwE>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 15:29:53 -0000

IkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiBGcm9tOiBN
YXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDk6NDAgQU0NCj4gPiANCj4gPiAiRXJp
YyBWb2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gPiBGcm9tOiBN
YXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU0NCj4gPiA+ID4NCj4gPiA+
ID4gIkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+ID4g
PiBIaSBBbmR5LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRo
YW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSB0aG9yb3VnaCBZQU5HIERvY3RvciByZXZpZXcuICBJIGhh
dmUNCj4gPiA+ID4gPiBpbmNsdWRlZCB0aGUNCj4gPiA+ID4gYWdyZWVkIHVwb24gY29tbWVudHMs
IGFuZCB1cGxvYWRlZCB0bzoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29u
Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMtMjINCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGEgc3Vt
bWFyeSBvZiB0aGUgY2xhcmlmaWNhdGlvbnMgbWFkZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1
bWVudC4NCj4gPiA+ID4gPiBMZXQgbWUga25vdyBpZiB0aGVyZSBhbnl0aGluZyBlbHNlIG5lZWRl
ZCB0byBjb25jbHVkZSB0aGUgWUFORw0KPiA+ID4gPiA+IGRvY3RvciByZXZpZXcgb2YgdGhpcyBk
b2N1bWVudC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBbHNv
IGFzIHRoZSByZXN1bHQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmSBkaXNjdXNzaW9uIHdpdGggeW91
IGFuZA0KPiA+ID4gPiA+IE1hcnRpbiwgd2UgbmVlZCB0byBwZXJmb3JtIHRoZSByZWZpbmVtZW50
IG9mIHRoZSDigJhlcnJvci10YWfigJkNCj4gPiA+ID4gPiBtYXBwaW5nIHdpdGhpbiBib3RoIGRy
YWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMNCj4gPiBTZWN0aW9u
DQo+ID4gPiA+ID4gNywgYW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiBTZWN0
aW9uIDMuMy4gICBEaXJlY3RseQ0KPiA+ID4gPiA+IGJlbG93IGlzIHNvbWUgdGV4dCBhbmQgcHJv
cG9zZWQgZXJyb3ItdGFnIG1hcHBpbmdzIGZvciB0aG9zZQ0KPiA+ID4gPiA+IGRvY3VtZW50cy4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgbyAgQW4gImVy
cm9yLXRhZyIgbm9kZSB3aXRoIHRoZSB2YWx1ZSBiZWluZyBhIHN0cmluZyB0aGF0DQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiAgICAgICAgY29ycmVzcG9uZHMgdG8gYW4gaWRlbnRpdHkgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAiZXJy
b3ItdGFnIiB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yIGlkZW50aXRpZXMgd2l0aGluDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgW0ktRC5kcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2Ny
aWJlZC1ub3RpZmljYXRpb25zXSBzZWN0aW9uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAg
Mi40LjYgZm9yIGdlbmVyYWwgc3Vic2NyaXB0aW9uIGVycm9yczoNCj4gPiA+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgICAgZXJyb3IgaWRlbnRpdHkgICAgICAg
ICB1c2VzIGVycm9yLXRhZw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAg
ICAgICBkc2NwLXVuYXZhaWxhYmxlICAgICAgIGludmFsaWQtdmFsdWUNCj4gPiA+ID4NCj4gPiA+
ID4gT2suICBCdXQgaXQgaXMgbm90IGNsZWFyIHRvIG1lIHdoZW4gdGhpcyBlcnJvciBpcyBhY3R1
YWxseSBzdXBwb3NlZA0KPiA+ID4gPiB0byBiZSBnZW5lcmF0ZWQ/ICBUaGUgbGVhZiBhbmQgaWRl
bnRpdHkgaGF2ZSB0aGUgc2FtZSBpZi1mZWF0dXJlLCBzbw0KPiA+ID4gPiBpdCBpc24ndCBhIHNw
ZWNpYWwgZXJycm8gY29kZSBmb3IgInVuc3VwcG9ydGVkIGxlYWYiLCB3aGljaCBpcyBnb29kIQ0K
PiA+ID4gPg0KPiA+ID4gPiBUaGVuIEkgaGF2ZSB0byBhc3N1bWUgaXQgaXMgc3VwcG9zZWQgdG8g
YmUgc29tZSBraW5kIG9mIHJ1bnRpbWUgZXJyb3I/DQo+ID4gPg0KPiA+ID4gWWVzLiAgQSBwdWJs
aXNoZXIsIG5vciB0aGUgbmV0d29yayB0byB3aGljaCBpcyBjb25uZWN0cyBkb2VzIG5vdCBoYXZl
DQo+ID4gPiB0bzoNCj4gPiA+IChhKSBzdXBwb3J0IGFsbCBEU0NQIHZhbHVlcywgbm9yDQo+ID4g
PiAoYikgYWxsb3cgYSBwYXJ0aWN1bGFyIHZhbHVlIHJlcXVlc3RlZCBieSBhIHBhcnRpY3VsYXIg
c3Vic2NyaWJlciwgU28NCj4gPiA+IHRoaXMgY29uZGl0aW9uIGFsbG93cyBhIHB1Ymxpc2hlciB0
byByZWplY3QgYSByZXF1ZXN0IGZvciBhIERTQ1AgdmFsdWUNCj4gPiA+IHdoZXJlIGlzIGtub3dz
IHRoZSB2YWx1ZSB3aWxsIG5vdCBiZSByZXNwZWN0ZWQuDQo+ID4gDQo+ID4gR29vZCBleHBsYW5h
dGlvbiwgSSB3aXNoIGl0IHdhcyBwYXJ0IG9mIHRoZSAibGVhZiBkc2NwIiBpbiB0aGUgbW9kdWxl
DQo+ID4gOikNCj4gPiANCj4gPiBUaGUgZHNjcC11bmF2YWlsYWJsZSBpZGVudGl0eSBkb2Vzbid0
IGFkZCBhbnkgYWRkaXRpb24gdmFsdWUgY29tcGFyZWQNCj4gPiB0byB0aGUNCj4gPiBzdGFuZGFy
ZCBlcnJvci4NCj4gDQo+IEZvciBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhpcyBpcyB0aGUgY2Fz
ZS4NCg0KQW5kIGNvbWkuICBUaGUgcG9pbnQgaXMsIHdoYXQgbWFrZXMgdGhlIHJwY3MgaW4gdGhp
cyBtb2R1bGUgc28gc3BlY2lhbA0KdGhhdCB0aGV5IGhhdmUgdG8gaW52ZW50IGEgbmV3IGVycm9y
IHJlcG9ydGluZyBzY2hlbWU/ICAgSWYgd2UgZG8gdGhhdA0KZm9yIHRoZXNlIHJwY3MsIHdoeSBu
b3QgZm9yIGFsbCBvdGhlciBycGMgaW4gYWxsIG90aGVyIG1vZHVsZXM/DQoNCg0KPiA+ID4gPiBU
aGlua2luZyBzb21lIG1vcmUsIHdoYXQgaXMgc3VwcG9zZWQgdG8gaGFwcGVuIGlmIHRoZSBjbGll
bnQgb24gdGhlDQo+ID4gPiA+IHNhbWUgc2Vzc2lvbiBzZW5kcyBmaXJzdCBhbiBlc3RhYmxpc2gt
c3Vic2NyaXB0aW9uIHdpdGggZHNjcCA0MiwgYW5kDQo+ID4gPiA+IHRoZW4gYW5vdGhlciBlc3Rh
Ymxpc2gtc3Vic2NyaXB0aW9uIHdpdGggZHNjcCAxMD8NCj4gPiA+DQo+ID4gPiBUaGlzIHdvdWxk
IGJlIGFsbG93ZWQuDQo+ID4gDQo+ID4gT24gbGludXggYXQgbGVhc3QgdGhpcyBpcyBhIHNvY2tv
cHQsIGkuZS4sIHRoZSBvcHRpb24gYXBwbGllcyB0byB0aGUNCj4gPiBzb2NrZXQsIHdoaWNoDQo+
ID4gbWVhbnMgYWxsIHBhY2tldHMgb24gdGhlIHNlc3Npb24uICBTbyBob3cgaXMgdGhpcyBzdXBw
b3NlZCB0byBiZQ0KPiA+IGltcGxlbWVudGVkIGlmDQo+ID4gZGlmZmVyZW50IG1lc3NhZ2VzIG9u
IHRoZSBzZXNzaW9uIHNob3VsZCBoYXZlIGRpZmZlcmVudCBkc2NwIHZhbHVlcz8NCj4gPiBPciBp
cyB0aGUNCj4gPiBpZGVhIHRoYXQgeW91IHNlbmQgdGhlIG1zZywgZmx1c2ggYWxsIGRhdGEgZnJv
bSBzc2gvdGxzIHRvIHRjcCwgdGhlbg0KPiA+IGZsdXNoIHRoZSB0Y3ANCj4gPiBidWZmZXJzIChu
b3QgdGhhdCBlYXN5Li4uKT8NCj4gPiANCj4gPiBFdmVuIGlmIHRoZXJlJ3MganVzdCBvbmUgZXN0
YWJsaXNoLXN1YnNjcmlwdGlvbiB3aXRoIGEgZHNjcCB2YWx1ZSwNCj4gPiBzaW5jZSBpdCBhcHBs
aWVzDQo+ID4gdG8gdGhlIHNlc3Npb24gaXQgbWVhbnMgdGhhdCBhbGwgbm9ybWFsIHJwY3Mgb24g
dGhpcyBzZXNzaW9uIHdpbGwgZ2V0DQo+ID4gdGhlIHNhbWUNCj4gPiBkc2NwIHZhbHVlLiAgSXQg
aXMgbm90IGNsZWFyIHRoYXQgdGhpcyBpcyB0aGUgaW50ZW50aW9uPw0KPiANCj4gRm9yIGEgTkVU
Q09ORiBzZXNzaW9uLCBJIGFncmVlIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gbmVlZCBub3QgdHJ5
IHRvDQo+IGF0dGVtcHQgdG8gc3VwcG9ydCBtb3JlIHRoYW4gb25lIERTQ1AgZm9yIHRoYXQgc2Vz
c2lvbi4gIEFuZCB0aGUgZXJyb3INCj4gaWRlbnRpdHkgZHNjcC11bmF2YWlsYWJsZSBpcyBhIHZh
bGlkIHJlc3BvbnNlIGhlcmUuDQoNClRoZW4gdGhhdCBzaG91bGQgYmUgZXhwbGFpbmVkIChwcmVm
ZXJyYWJseSBpbiB0aGUgbGVhZiBkc2NwKS4NCg0KPiBGb3IgUkVTVENPTkYgYW5kIG90aGVyIHRy
YW5zcG9ydHMsIHRoZXJlIG9wdGlvbnMgd2hpY2ggY2FuIG1vcmUNCj4gZmxleGlibHkgc3VwcG9y
dCBkaWZmZXJlbnQgRFNDUCB2YWx1ZXMuICBUaGlzIGlzIG9uZSByZWFzb24gSSB3YXMNCj4gcHVz
aGluZyBoYXJkIGluIDIwMTYgdG8gbGV2ZXJhZ2UgSFRUUDIuDQoNCldlJ3JlIHRhbGtpbmcgYWJv
dXQgZHluYW1pYyBzdWJzY3JpcHRpb25zIGhlcmUuICBJIGRvbid0IHRoaW5rIGFueW9uZQ0KaGFz
IHN1Z2dlc3RlZCBIVFRQMiBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25zLg0KDQpGb3IgY29uZmln
dXJlZCBzdWJzY3JpcHRpb25zLCB0aGlzIGlzIG5vdCBhbiBpc3N1ZSwgbm90IGV2ZW4gZm9yDQpO
RVRDT05GLg0KDQoNCi9tYXJ0aW4NCg0KDQoNCj4gDQo+IEVyaWMNCj4gDQo+ID4gL21hcnRpbg0K
PiA+IA0KPiA+IA0KPiA+ID4gVGhlIGludGVyZXN0aW5nIHBhcnQgY29tZXMgd2l0aCBidW5kbGlu
ZyB0aGUgZXZlbnQgcmVjb3Jkcy4gIFRoZQ0KPiA+ID4gaW5pdGlhbCB2ZXJzaW9ucyBvZiBkcmFm
dC1pZXRmLW5ldGNvbmYtbm90aWZpY2F0aW9uLW1lc3NhZ2VzIHJlcXVpcmVkDQo+ID4gPiB0aGF0
IGFsbCBldmVudCByZWNvcmRzIGluIGEgYnVuZGxlIGhhZCBhIGNvbW1vbiBkc2NwLiAgQXQgdGhp
cyBwb2ludCwNCj4gPiA+IHRoYXQgc2VlbXMgb3Zlcmx5IHJlc3RyaWN0aXZlIHRvIHRoZSBtYXJz
aGFsbGluZyBwcm9jZXNzLCBzbyBmb3Igbm93DQo+ID4gPiB0aGF0IHJlcXVpcmVtZW50IGlzIG5v
dCBpbiB0aGUgZG9jdW1lbnQuDQo+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgICBlbmNvZGluZy11
bnN1cHBvcnRlZCAgIGludmFsaWQtdmFsdWUNCj4gPiA+ID4NCj4gPiA+ID4gT2suICBCdXQgdGhp
cyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4g
PiBzdGFuZGFyZA0KPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4NCj4gPiA+ID4gICBlcnJvci10YWc6
IGludmFsaWQtdmFsdWUNCj4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBjL2VzdGFibGlzaC1zdWJz
Y3JpcHRpb24vZW5jb2RpbmcNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgICAg
ZmlsdGVyLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+DQo+ID4gPiA+IFRo
aXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZl
ciBiZSBzZW50DQo+ID4gPiA+IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3Qg
YmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+DQo+ID4gPiBZZXMsIGZvcmdvdCB0byBy
ZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4NCj4gPiA+ID4gPiAgICAgICAgICBm
aWx0ZXItdW5zdXBwb3J0ZWQgICAgIGludmFsaWQtdmFsdWUNCj4gPiA+ID4NCj4gPiA+ID4gT2su
ICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRo
ZQ0KPiA+ID4gPiBzdGFuZGFyZA0KPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4NCj4gPiA+ID4gICBl
cnJvci10YWc6IGludmFsaWQtdmFsdWUNCj4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBjL2VzdGFi
bGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhwYXRoLWZpbHRlcg0KPiA+ID4gPg0KPiA+ID4gPg0K
PiA+ID4gPiA+ICAgICAgICAgICBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlc291cmNlLWRlbmll
ZA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRvZW5z
J3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4gPiA+IHN0YW5kYXJkIGVycm9y
IGluIHRoZSBjYXNlIG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+IG1vZGlm
eS1zdWJzY3JpcHRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgIG5vLXN1Y2gtc3Vi
c2NyaXB0aW9uICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPg0KPiA+ID4gPiBPay4gIEJ1dCB0aGlz
IGlkZW50aXR5IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4gPiA+
IHN0YW5kYXJkIGVycm9yIGluIHRoZSBjYXNlIG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5k
DQo+ID4gPiA+IG1vZGlmeS1zdWJzY3JpcHRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAg
ICAgIHJlcGxheS11bnN1cHBvcnRlZCAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+
ID4NCj4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZv
cm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiBzdGFuZGFyZCBlcnJvci4NCj4gPiA+ID4NCj4gPiA+
ID4gPiAgICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQo+ID4g
PiA+DQo+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwg
d2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQo+ID4gPiA+IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0
aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+DQo+ID4gPiBZ
ZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4NCj4gPiA+
ID4gPiAgICAgICAgICAgc3VzcGVuc2lvbi10aW1lb3V0ICAgICBvcGVyYXRpb24tZmFpbGVkDQo+
ID4gPiA+DQo+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29u
Iiwgd2hpY2ggd2lsbCBuZXZlciBiZSBzZW50DQo+ID4gPiA+IGluIGFuIHJwYy0gZXJyb3IsIGFu
ZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+DQo+ID4g
PiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4NCj4g
PiA+ID4gPiAgICAgICAgICAgdW5zdXBwb3J0YWJsZS12b2x1bWUgICB0b28tYmlnDQo+ID4gPiA+
DQo+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hp
Y2ggd2lsbCBuZXZlciBiZSBzZW50DQo+ID4gPiA+IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVz
IHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+DQo+ID4gPiBZZXMs
IGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4NCj4gPiA+ID4g
PiAgICAgICAgT3IgdGhpcyAiZXJyb3ItdGFnIiB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9y
IGlkZW50aXRpZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICB3aXRoaW4gW0ktRC5pZXRm
LW5ldGNvbmYteWFuZy1wdXNoXSBBcHBlbmRpeCBBLjEgZm9yDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiAgICAgICAgc3Vic2NyaXB0aW9uIGVycm9ycyBzcGVjaWZpYyB0byBZQU5HIGRhdGFzdG9yZXM6
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgIGVy
cm9yIGlkZW50aXR5ICAgICAgICAgICAgICB1c2VzIGVycm9yLXRhZw0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAtLS0tLS0tLS0tLS0t
LQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgIGNhbnQtZXhjbHVkZSAgICAgICAgICAg
ICAgICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAg
ICAgIGRhdGFzdG9yZS1ub3Qtc3Vic2NyaWJhYmxlICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0K
PiA+ID4gPg0KPiA+ID4gPiBJIHRoaW5rIHRoYXQgdGhpcyBzaG91bGQgYmUgaW52YWxpZC12YWx1
ZS4NCj4gPiA+DQo+ID4gPiBPaw0KPiA+ID4NCj4gPiA+IC9FcmljDQo+ID4gPg0KPiA+ID4gPiA+
ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlwdGlvbi1yZXN5bmMgaW52YWxpZC12YWx1ZQ0KPiA+
ID4gPg0KPiA+ID4gPiBPaywgYnV0IGFnYWluIHRoZSB2YWx1ZSBvZiBoYXZpbmcgdGhpcyBpcyB1
bmNsZWFyLg0KPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgICBvbi1jaGFuZ2UtdW5zdXBwb3J0
ZWQgICAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAg
ICAgICAgICBvbi1jaGFuZ2Utc3luYy11bnN1cHBvcnRlZCAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0
ZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgICBwZXJpb2QtdW5zdXBwb3J0ZWQgICAg
ICAgICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICAgIHVwZGF0
ZS10b28tYmlnICAgICAgICAgICAgICB0b28tYmlnDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAg
ICAgICAgc3luYy10b28tYmlnICAgICAgICAgICAgICAgIHRvby1iaWcNCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ICAgICAgICAgICB1bmNoYW5naW5nLXNlbGVjdGlvbiAgICAgICAgb3BlcmF0aW9uLWZh
aWxlZA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAvbWFydGluDQo+ID4gPiA+
DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IERvIHlvdSAob3IgYW55b25lIGVsc2UgaW4gdGhp
cyB0aHJlYWQpIGhhdmUgYW55IHN1Z2dlc3Rpb25zIG9uIHRoZQ0KPiA+ID4gPiA+IHRleHQgb3Ig
cHJvcG9zZWQgbWFwcGluZ3M/ICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBvaywgQWxleCB3aWxs
DQo+ID4gPiA+ID4gbmVlZCB0byByZW1vdmUgdGhlIE5FVENPTkYgZXJyb3ItdGFnIHNwZWNpZmlj
cyBmcm9tDQo+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaCBTZWN0aW9ucyA0
LjQuMSAmIDQuNC4yDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
QWxzbyBSZXNoYWQgd2lsbCBoYXZlIHRvIGRvIHNvbWUgd29yayBiZWNhdXNlIGhlIGlzIHRoZSBZ
QU5HDQo+ID4gPiA+ID4gZG9jdG9yIG9mDQo+ID4gPiA+IG5ldGNvbmYtbmV0Y29uZi1ldmVudC1u
b3RpZmljYXRpb25zLCBhbmQgaGUgd2lsbCB3YW50IHRvIGluY2x1ZGUgdGhlDQo+ID4gPiA+IHNh
bWUgaW5mb3JtYXRpb24gd2l0aGluIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGFua3MsDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiBFcmljDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEZyb206IEFuZHkgQmllcm1hbiA8YW5keUB5
dW1hd29ya3MuY29tPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51
YXJ5IDIzLCAyMDE5IDEyOjQyIFBNDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUbzogRXJpYyBWb2l0
IChldm9pdCkgPGV2b2l0QGNpc2NvLmNvbT4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IENjOiBNYXJ0
aW4gQmpvcmtsdW5kIDxtYmpAdGFpbC1mLmNvbT47IHlhbmctZG9jdG9yc0BpZXRmLm9yZzsNCj4g
PiA+ID4gPiBuZXRjb25mQGlldGYub3JnOw0KPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1z
dWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuYWxsQGlldGYub3JnDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiBTdWJqZWN0OiBSZTogW3lhbmctZG9jdG9yc10gWWFuZ2RvY3RvcnMgbGFzdCBjYWxsIHJldmll
dyBvZg0KPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlv
bnMtMjENCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIFdlZCwgSmFuIDIzLCAyMDE5
IGF0IDQ6MzUgQU0gRXJpYyBWb2l0IChldm9pdCkNCj4gPiA+ID4gPiA8bWFpbHRvOmV2b2l0QGNp
c2NvLmNvbT4NCj4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZyb206IE1h
cnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjMsIDIwMTkgMzozMiBBTQ0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBIaSwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIkVyaWMgVm9pdCAoZXZvaXQpIiA8bWFpbHRvOmV2
b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSGkgQW5keSwN
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IExvb2tp
bmcgYXQgeW91ciBwcm9wb3NhbC4uLiAgTXkgcmVhZGluZyBpcyB0aGF0IGl0IHRha2VzIHRoZQ0K
PiA+ID4gPiA+ID4gPiB0cmFuc3BvcnQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzcGVjaWZp
YyBlcnJvciBpbmZvIGNvbnRhaW5lZCBpbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGRyYWZ0
LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMgc2VjdGlvbiA3LCBhbmQN
Cj4gPiA+ID4gPiA+ID4gdGhlbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHJlcGxpY2F0ZXMg
dGhhdCBpbmZvIHdpdGhpbiAxMiBzZXBhcmF0ZSBkZXNjcmlwdGlvbiBvYmplY3RzIG9mDQo+ID4g
PiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHRyYW5zcG9ydCBpbmRlcGVu
ZGVudCBpZXRmLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy55YW5nLiAgVGhlDQo+ID4gPiA+ID4g
PiA+IHZhbHVlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4geW91IGFyZSBhc3NlcnRpbmcgaXMg
dGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMNCj4gPiA+ID4gPiA+ID4gY29udGFpbmlu
ZyB0aGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBycGMtc3RtdCBoYXZlIHRyYWRpdGlvbmFs
bHkgZG9jdW1lbnQgdGhlDQo+ID4gPiA+ID4gPiA+IG1hbmRhdG9yeS10by1pbXBsZW1lbnQNCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAiZXJyb3ItdGFnIiBmaWVsZCB3aXRoaW4gdGhlIG1vZGVs
LiAgQW5kIHByZXN1bWFibHkgeW91IGFyZQ0KPiA+ID4gPiA+ID4gPiBjb25jZXJuZWQNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiB0aGF0IGRldmVsb3BlcnMgc2hvdWxkIG5vdCBoYXZlIHRvIGxv
b2sgZWxzZXdoZXJlIGZvciB0aGlzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gaW5mb3JtYXRp
b24uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgdGhp
bmsgdGhhdCBtYXliZSB0aGVyZSBhcmUgdHdvIHNlcGFyYXRlIGlzc3VlcyBoZXJlLg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgZmlyc3QgaXNzdWUg
aXMgdGhhdCBmb3IgZWFjaCBlcnJvciBpZGVudGl0eSBkZWZpbmVkLCB0aGVyZQ0KPiA+ID4gPiA+
ID4gbmVlZHMgdG8gYmUgYQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBtYXBwaW5nIHRvIHRoZSBw
cm90b2NvbC1zcGVjaWZpYyBlcnJvciBoYW5kbGluZy4gIEFuZHkgc3VnZ2VzdHMNCj4gPiA+ID4g
PiA+IHRoYXQgdGhpcyBpbmZvIGlzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGFkZGVkIHRvIHRo
aXMgZG9jdW1lbnQsIGJ1dCBjdXJyZW50bHkgdGhpcyBpbmZvcm1hdGlvbiBpcw0KPiA+ID4gPiA+
ID4gYXZhaWxhYmxlIGluIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBwcm90Y29sLW1hcHBp
bmcgZG9jdW1lbnRzIChuZXRjb25mLW5vdGlmIGFuZCByZXN0Y29uZi1ub3RpZikuDQo+ID4gPiA+
ID4gPiBQZXJzb25hbGx5LCBJDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IHRoaW5rIHRoYXQgdGhl
IGN1cnJlbnQgc3BsaXQgb2YgdGV4dCBiZXR3ZWVuIGRvY3VtZW50cyBpcyBmaW5lLg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgc2Vjb25kIGlzc3Vl
IGlzIHRoYXQgY3VycmVudGx5LCBib3RoIG5ldGNvbmYtbm90aWYgYW5kDQo+ID4gPiA+ID4gPiBy
ZXN0Y29uZi1ub3RpZiBzYXkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gdGhhdCAqYWxsKiB0aGVz
ZSBlcnJvcnMgdXNlIHRoZSBlcnJvci10YWcgIm9wZXJhdGlvbi1mYWlsZWQiLg0KPiA+ID4gPiA+
ID4gRXNzZW50aWFsbHkgaXQgbWVhbnMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gdGhhdCB3ZSBi
eXBhc3MgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwcm90b2NvbHMuICBBcyBBbmR5DQo+ID4g
PiA+ID4gPiBwb2ludHMgb3V0IGJlbG93LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiB0aGUgZXJy
b3IgImluc3VmZmljaWVudC1yZXNvdXJjZXMiIHNob3VsZCBiZSBtYXBwZWQgdG8NCj4gPiA+ID4g
PiA+ICJyZXNvdXJjZS1kZW5pZWQiIGluDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE5FVENPTkYg
YW5kIFJFU1RDT05GICh0aGV5IG1lYW4gdGhlIHNhbWUgdGhpbmcpLiAgU28gaXQgbWlnaHQNCj4g
PiA+ID4gPiA+IG1ha2Ugc2Vuc2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gdG8gY2FyZWZ1bGx5
IGdvIHRocm91Z2ggdGhlIGxpc3Qgb2YgZXJyb3JzIGFuZCBtYXAgdGhlbSB0byB0aGUNCj4gPiA+
ID4gPiA+IGNvcnJlY3QgZXJyb3ItdGFnDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IChidXQgc3Bl
Y2lmaXkgdGhpcyBpbiB0aGUgdHJhbnNwb3J0IGRyYWZ0cykuDQo+ID4gPiA+ID4NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBhbSBjb21wbGV0ZWx5IGdvb2Qgd2l0aCB0aGlzLiAg
IERvZXMgdGhpcyB3b3JrIGZvciB5b3UgQW5keT8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiBUaGlzIGlzIGJldHRlci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkn
bSBnbGFkIG5vIG90aGVyIGRyYWZ0cyBhcmUgY3JlYXRpbmcgdGhlaXIgb3duIGVycm9yIHJlcG9y
dGluZw0KPiA+ID4gPiA+IHN5c3RlbSBmb3INCj4gPiA+ID4gZWFjaCBycGMtc3RtdC4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+IFRoaXMgaXMgYSBiYWQgcHJlY2VkZW50IGFuZCBsaWtlbHkgdG8gYmUg
c2tpcHBlZCBpbiBpbXBsZW1lbnRhdGlvbnMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gRXJpYw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gL21hcnRpbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFuZHkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSWYgdGhlIFlBTkcgZG9jdG9ycyByZXF1aXJl
IHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRlZC4gIEENCj4gPiA+ID4gPiA+ID4gc2ltaWxhciB0ZXh0
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gY2hhbmdlIHdvdWxkIGJlIG5lZWRlZCBmb3IgcXVp
dGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcyB3aXRoaW4NCj4gPiA+ID4gPiA+ID4gWUFORw0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFB1c2guICBQZXJzb25hbGx5IEkgZG9u4oCZdCBsaWtlIHRo
YXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlDQo+ID4gPiA+ID4gPiA+IHJlcXVpcmVkIHRvDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwg
bWFrZSB0aGUgY2hhbmdlIGlmIHlvdQ0KPiA+ID4gPiA+ID4gPiByZWFsbHkgd2FudA0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+IHRoaXMsIGFuZCBub2JvZHkgZWxzZSBvYmplY3RzLg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT3RoZXIgdGhhbiB0
aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3BlbiBpc3N1ZXMgaW4NCj4gPiA+ID4g
PiA+ID4gdGhlIFlBTkcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBEb2N0b3IgcmV2aWV3LiAg
RG8geW91IGtub3cgb2YgYW55dGhpbmcgZWxzZT8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEVyaWMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRnJvbTog
QW5keSBCaWVybWFuLCBKYW51YXJ5IDIxLCAyMDE5IDI6MjYgUE0NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEhpLA0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSB0aGluayB0aGUgZXJyb3ItdGFnIGlz
c3VlIGNhbiBiZSByZXNvbHZlZCBieSBpbmNsdWRpbmcgMQ0KPiA+ID4gPiA+ID4gPiBleHRyYQ0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHNlbnRlbmNlIGluIGVhY2ggZXJyb3IgaWRlbnRpdHku
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVT
VENPTkYgY2VudHJpYyBidXQgdGhvc2UgYXJlIHRoZQ0KPiA+ID4gPiA+ID4gPiBvbmx5DQo+ID4g
PiA+ID4gPiA+IDINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzdGFuZGFyZCBwcm90b2NvbHMg
c3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFnZSByaWdodCBub3cuDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgSWYgdGhlICdlcnJv
ci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3IgcmVwb3J0aW5nLA0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ICAgICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3QgZXJyb3ItdGFnPicgTVVT
VCBiZSB1c2VkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9MRDoNCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgaWRlbnRpdHkgaW5zdWZm
aWNpZW50LXJlc291cmNlcyB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0
YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAg
YmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAg
ICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhl
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24u
ICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQNCj4gPiA+ID4gPiA+ID4gYWxsb2NhdGVkIENQVQ0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0
ZSB0aGUgZGVzaXJlZCBzZXQgb2YNCj4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiI7DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE5FVzoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJl
c291cmNlcyB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1
YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgYmFzZSBtb2Rp
Znktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICBiYXNl
IHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICJUaGUgcHVi
bGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQgdGhlDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFt
cGxlIG1pZ2h0IGJlIHRoYXQNCj4gPiA+ID4gPiA+ID4gYWxsb2NhdGVkIENQVQ0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVz
aXJlZCBzZXQgb2YNCj4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMgdXNl
ZCBpbiBlcnJvcg0KPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcsDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1VU1QgYmUgdXNl
ZC4iOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBB
bmR5DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9uIEZyaSwgSmFuIDE4LCAyMDE5IGF0IDExOjUzIEFN
IEVyaWMgVm9pdCAoZXZvaXQpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPG1haWx0bzpldm9p
dEBjaXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3cm90ZToNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiBIaSBBbmR5LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhbmtzLiAgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVt
cyB3aGVyZSB0aGVyZSB3YXMgYWdyZWVtZW50Lg0KPiA+ID4gPiA+ID4gPiBJIGhhdmUNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiByZW1vdmVkIHRoZSBpdGVtcyBiZWxvdyB3aGVyZSB5b3Ugd2Vy
ZSBvay4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IFJlbWFpbmluZyBiZWxvdyBhcmUgdGhlIG9wZW4gaXRlbXMsIHdpdGggcmVzcG9uc2VzLg0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgIFNo
b3VsZCBiZSBjbGVhciBzb21ld2hlcmUgdGhhdA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5kIG90aGVyIHJlc291cmNlcywgYW5kIE5BQ00gbm90
DQo+ID4gPiA+ID4gPiA+ID4gPiBjb25zaWRlcmVkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ICAgIHRvIGJlIGEgcmVzb3VyY2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSWYgTkFDTSBpcyBhY3RpdmUsIGl0IG5lZWRzIHRvIGJl
IGZvbGxvd2VkLiAgVGhlIHRleHQgd2UNCj4gPiA+ID4gPiA+ID4gPiBoYXZlIGZvcg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gTkFDTSBpcyBpbiBTZWN0aW9uIDUuNC4gIERvIHlvdSBzZWUg
c29tZXRoaW5nIGVsc2Ugc3BlY2lmaWMNCj4gPiA+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uIHN1c3BlbnNpb24gbmVlZGVkIGhlcmU/ICAoTWF5
YmUgSSBhbSBub3QNCj4gPiA+ID4gPiA+ID4gPiBnZXR0aW5nIHlvdXINCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IHBvaW50LikNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFzIHRlcm1pbmF0ZS1p
Zi1sb3NzLW9mLXJpZ2h0cyAoSXMNCj4gPiA+ID4gPiA+ID4gPiB0aGVyZSBhbg0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gZXJyb3IgaWRlbnRpdHkgZm9yIHRoaXMgZXZlbnQ/KQ0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhlIGlkZW50aXR5
IHdoaWNoIGFwcGxpZXMgaGVyZSBpcyAic3RyZWFtLXVuYXZhaWxhYmxlIi4gIFRoaXMNCj4gPiA+
ID4gPiA+ID4gaXMgdGhlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gc2FtZSBpZGVudGl0eSB3
aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQgbmV2ZXINCj4gPiA+ID4gPiA+
ID4gc3VmZmljaWVudA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHBlcm1pc3Npb25zIGluIHRo
ZSBmaXJzdCBwbGFjZS4gIEkgZG9uJ3QgYmVsaWV2ZSB3ZSB3b3VsZCB3YW50DQo+ID4gPiA+ID4g
PiA+IHRvDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gcmV0dXJuIGFuIGlkZW50aXR5IHNwZWNp
ZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBlcm1pc3Npb25zIGhhdmUNCj4gPiA+ID4gPiA+ID4ganVz
dA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGJlZW4gY2hhbmdlZC4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJMykgc2VjIDIuMSBwYXJh
IDY6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgIEV2ZW50IHJlY29yZHMgTVVTVCBO
T1QgYmUgZGVsaXZlcmVkIHRvIGEgcmVjZWl2ZXIgaW4gYQ0KPiA+ID4gPiA+ID4gPiA+ID4gZGlm
ZmVyZW50DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgIG9yZGVyIHRoYW4gdGhleSB3
ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBkb2VzIHRoaXMgYXBwbHkg
dG8gc3Vic2NyaXB0aW9uLXN0YXRlPyBUaGluayBub3QsDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGV5
IGFyZSBub3QgZXZlbnRzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICBwbGFjZWQg
aW4gZXZlbnQgc3RyZWFtLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IEFncmVlIHRoYXQgdGhleSBhcmUgbm90IG9uIHRoZSBldmVudCBzdHJl
YW0uICBTbyB0aGV5IGRvIG5vdA0KPiA+ID4gPiA+ID4gPiA+IHZpb2xhdGUNCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IHRoaXMgcmVxdWlyZW1lbnQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1
cHBvcnRpbmcgdGV4dCBpbiAiU2VjdGlvbiAyLjc6DQo+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0
aW9uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBzdGF0ZSBub3RpZmljYXRpb25zIiwgaW5j
bHVkaW5nLi4uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gIiBJbnN0ZWFkLCB0aGV5IGFyZSBpbnNlcnRlZCAoYXMgZGVmaW5lZCBpbiB0aGlz
IHNlY3Rpb24pDQo+ID4gPiA+ID4gPiA+ID4gd2l0aGluIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gc2VxdWVuY2Ugb2Ygbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHNlbnQgdG8gYSBwYXJ0
aWN1bGFyDQo+ID4gPiA+ID4gPiA+ID4gcmVjZWl2ZXIuIg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgIE5lZWQgdG8gYWxsb3cgZW5k
ZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
ICAgIGhlYWQtb2YtbGluZSB3aGVuZXZlciBzdGF0ZSBjaGFuZ2VzDQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSSBhbSBub3Qgc3VyZSB0aGF0
IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVhZC1vZi1saW5lLg0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gQ29uc2lkZXINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRo
YXQgaW1wbGVtZW50YXRpb24gbWlnaHQgd2FudCB0byBsZXQgdGhlIGV4aXN0aW5nIHF1ZXVlIG9m
DQo+ID4gPiA+ID4gPiA+ID4gZmlsdGVyZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGV2
ZW50IHJlY29yZHMgYmUgc2VudCBpZiBpcyBmaWx0ZXIgY29tcGxleGl0eSBjYXVzaW5nIHRoZSBD
UFUNCj4gPiA+ID4gPiA+ID4gPiBpc3N1ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRo
YXQgY291bGQgYmUgZGlmZmVyZW50IHRoYW4gaWYgaXQgaXMgYSBiYW5kd2lkdGggaXNzdWUNCj4g
PiA+ID4gPiA+ID4gPiBkcml2aW5nIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc3Vz
cGVuc2lvbiwgYW5kIHlvdSBkZWZpbml0ZWx5IHdhbnQgdGhlICdzdWJzY3JpcHRpb24tc3VzcGVu
ZGVkJw0KPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBiZSBw
bGFjZWQgYXQgdGhlIGhlYWQgb2YgbGluZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSXQg
aXMgdXAgdG8gdGhlIHB1Ymxpc2hlciB0byBkZWNpZGUgd2hlbiB0byBzdG9wIHNlbmRpbmcNCj4g
PiA+ID4gPiA+ID4gPiBldmVudHMgb24gYQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc3Vi
c2NyaXB0aW9uLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT2J2aW91c2x5IHRoZSBwdWJs
aXNoZXIgY2Fubm90IHdhaXQgdW50aWwgdGhlIHN1YnNjcmlwdGlvbiBpcw0KPiA+ID4gPiA+ID4g
PiA+IGlkbGUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdl
dHRpbmcgc3VzcGVuZGVkIGlzIGl0IGlzIGZhciBmcm9tIGlkbGUNCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTbyBhbHNvIHVwIHRvIHRoZSBw
dWJsaXNoZXIgd3J0LyB3aGF0IHRvIGRvIHdpdGggYW55IGV2ZW50cw0KPiA+ID4gPiA+ID4gPiA+
IHRoYXQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGhhdmUgbm90IGJlZW4gZGVsaXZlcmVk
IHlldCBvbiBhIHN1YnNjcmlwdGlvbi4gIENvdWxkIGRlbGV0ZQ0KPiA+ID4gPiA+ID4gPiA+IHRo
ZW0gb3INCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHNhdmUgdGhlbSBmb3Igd2hlbiBtb3Jl
IGJhbmR3aWR0aCBhdmFpbGFibGUgKGZvciBleGFtcGxlKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiAgSXMg
dGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0aGUgZHJhZnQgaGVyZT8NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVudGF0aW9uIHRvIGRl
Y2lkZSBpZiBzb21lDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB1bi10cmFuc21pdHRlZCBx
dWV1ZSBvZiBldmVudCByZWNvcmRzIHNob3VsZCBiZSBmbHVzaGVkIGFuZA0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gcmVwcm9jZXNzZWQgYmFzZWQgb24gdGhlIG1vZGlmaWNhdGlvbi4gIEkg
ZG8gbm90IGV4cGVjdCB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gd291bGQNCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IHBvcHVsYXIsIGFzIGEgcmVwbGF5IHN1YnNjcmlwdGlvbiBjb3VsZCBhY2Nv
bXBsaXNoIHRoaXMgc2FtZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZnVuY3Rpb25hbCBu
ZWVkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IEFncmVlZCB0aGF0IGFuIGltcGxlbWVudGF0aW9uIGNhbiBkcm9wIGF0IGFueSB0aW1lIGFu
ZA0KPiA+ID4gPiA+ID4gPiA+IGluY3JlbWVudCB0aGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IGFwcHJvcHJpYXRlIGNvdW50ZXJzLiBJdCB3aWxsIHRyeSB0byB0byBkbyB0aGlzLCBidXQg
bm8NCj4gPiA+ID4gPiA+ID4gPiByZXF1aXJlbWVudHMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IGV4Y2VwdCBtYXliZSBzdWJzY3JpcHRpb24gZXZlbnRzIGxpa2UgJ3JlcGxheS1jb21wbGV0
ZWQnDQo+ID4gPiA+ID4gPiA+ID4gY2Fubm90IGJlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiBkcm9wcGVkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBIYXZlIHB1dCBhIG1pbm9yIHR3ZWFrIGludG8gU2VjdGlvbiAyLjc6DQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBbb2xkXSAgc3Vic2NyaXB0
aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZQ0KPiA+ID4gPiA+ID4gPiBm
aWx0ZXJlZCBvdXQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IFtuZXddIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5u
b3QgYmUNCj4gPiA+ID4gPiA+ID4gZHJvcHBlZCBvcg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IGZpbHRlcmVkIG91dA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gLi4uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlua2luZyBtb3JlIG9u
IHlvdXIgcG9pbnQsIGl0IG1pZ2h0IGJlIHdvcnRoIHR3ZWFraW5nIGENCj4gPiA+ID4gPiA+ID4g
PiBjb3VwbGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHdvcmRzIHRvIGFsbG93IGZvciBo
ZWFkLW9mLWxpbmUgcGxhY2VtZW50IG9mDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAic3Vi
c2NyaXB0aW9uLXN1c3BlbmRlZCIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIlN1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBxdWV1ZWQg
Zm9yIHNlbmRpbmcgYWZ0ZXIgdGhlDQo+ID4gPiA+ID4gPiA+ID4gaXNzdWFuY2Ugb2YNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgIHRoaXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ICAgIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1heSBub3cgYmUgc2Vu
dC4iDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gQXJlIHlvdSBnb29kIHdpdGggdGhpcyBzdWdnZXN0ZWQgY2hhbmdlPw0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IE5vdCBzdXJlIC0tIGl0
IG5lZWRzIHRvIGJlIGNsZWFyIHRoYXQgc3Vic2NyaXB0aW9uLXN1c3BlbmRlZA0KPiA+ID4gPiA+
ID4gPiA+IGlzIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gbGFzdCBldmVudCBzZW50
IGJlZm9yZSBzdXNwZW5kaW5nIGFuZCBzdWJzY3JpcHRpb24tcmVzdW1lZA0KPiA+ID4gPiA+ID4g
PiA+IGlzIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZmlyc3QgZXZlbnQgc2VudCBh
ZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRvIGFjdGl2ZS4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IFRoZSBuZXh0IGV2ZW50IGNvdWxkIGFsc28gYmUgc3Vic2NyaXB0aW9uLXRl
cm1pbmF0ZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBJIGRvIHRoaW5rIHRoaXMgcG9zc2liaWxpdHkgaXMgY292ZXJlZCBpbiB0aGUgdGV4dC4g
IEZvcg0KPiA+ID4gPiA+ID4gPiBTZWN0aW9uDQo+ID4gPiA+ID4gPiA+IDIuNy40DQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCB0aGUgY3VycmVudCB0ZXh0
IGlzOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Ik5vIGZ1cnRoZXIgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2VudCB1bnRpbCB0aGUgc3Vic2NyaXB0
aW9uDQo+ID4gPiA+ID4gPiA+IHJlc3VtZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBvciBp
cyB0ZXJtaW5hdGVkLiINCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+IEFuZCBTZWN0aW9uIDIuNy41IHN1YnNjcmlwdGlvbi1yZXN1bWVkIHNheXMiOg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgZ2VuZXJh
dGVkIGFmdGVyIHRoZSBpc3N1YW5jZSBvZiB0aGlzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
c3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiIN
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEJhc2Vk
IG9uIHRoZSBkaXNjdXNzaW9uLCBJIGNhbiBtYWtlIGl0Og0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIlN1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBh
cmUgYWdhaW4gcGVybWl0dGVkIHRvIGJlIHNlbnQNCj4gPiA+ID4gPiA+ID4gZm9sbG93aW5nDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhpcyBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5v
dGlmaWNhdGlvbi4iDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiBJcyB0aGlzIHN1ZmZpY2llbnQgZm9yIHlvdT8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiBJNCkgc2VjIDIuNC42OiBSUEMgRmFpbHVyZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gICAtLSBjb25jZXJuIGFib3V0IGEgc3Vic2NyaXB0aW9uLXNwZWNpZmljIGVycm9y
IHJlcG9ydGluZw0KPiA+ID4gPiA+ID4gPiA+ID4gc3lzdGVtDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ICAgICAgbXVzdCBtYWtlIHN1cmUgcHJvdG9jb2wgZXJyb3IgcmVwb3J0aW5nIHN5
c3RlbSBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gdXNlZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBjb3JyZWN0bHkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiBZZXMuICBXZSBoYXZlIGRvbmUgb3VyIGJlc3QgdG8gaW50ZWdyYXRlIHdp
dGggdGhlIGVtYmVkZGVkDQo+ID4gPiA+ID4gPiA+ID4gTkVUQ09ORg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gYW5kIFJFU1RDT05GIG1lY2hhbmlzbXMuICBUaGVyZSBpcyBtdWNoIGFkZGl0
aW9uYWwNCj4gPiA+ID4gPiA+ID4gPiBpbmZvcm1hdGlvbiBpbg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gdGhlIHRyYW5zcG9ydCBkcmFmdHMgaGVyZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gVGhlIGVycm9yLXRhZyB2
YWx1ZSBuZWVkcyB0byBiZSBpZGVudGlmaWVkIGZvciBlYWNoDQo+ID4gPiA+ID4gPiA+ID4gPiAg
IC0tICdyZWFzb24nDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGlkZW50aXR5DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhpcyBp
cyBkb25lIGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzLiAgRS5nLiwgc2VlDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC0NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+IG5vdGlmaWNhdGlvbnMgU2VjdGlvbiA3DQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUg
dGhpcyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEVhY2ggZXJy
b3IgaWRlbnRpdHkgc2hvdWxkIHNpbXBseSBzdGF0ZSB0aGUgcmVxdWlyZWQgImVycm9yLXRhZyIN
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBl
cnJvci4gIFRoaXMgaXMgZXhwZWN0ZWQgb2YNCj4gPiA+ID4gPiA+ID4gPiBwcm90b2NvbA0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gb3BlcmF0aW9ucyB0aGF0IGFyZSBhZGRlZCB0byBORVRD
T05GIGFuZCBSRVNUQ09ORi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IEluIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNh
dGlvbnMsIHNlY3Rpb24gNywNCj4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gcmVxdWlyZWQgImVycm9yLXRhZyIgaXMgaWRlbnRpZmllZCBhcyAib3BlcmF0aW9uLWZh
aWxlZCIuICBJZg0KPiA+ID4gPiA+ID4gPiB3ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGlu
c3RlYWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIgaW5mb3JtYXRpb24gaW4gdGhlIFlBTkcgbW9k
ZWwsDQo+ID4gPiA+ID4gPiA+IHRoZW4gd2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBoYXZl
IHRpZWQgdGhlIFlBTkcgbW9kZWwgdG8gdGhlIFJFU1RDT05GIGFuZCBORVRDT05GIHRyYW5zcG9y
dHMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IEJvdGggTkVUQ09ORiBhbmQgUkVTVENPTkYgdXNlIGEgY29tcGF0aWJsZSBlcnJvciByZXBvcnRp
bmcNCj4gPiA+ID4gPiA+ID4gPiBkYXRhDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBzdHJ1
Y3R1cmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgImVycm9yLXRhZyIgaXMgdXNl
ZCBpbiBib3RoIG9mIHRoZW0uICBJTU8gY2xpZW50DQo+ID4gPiA+ID4gPiA+ID4gZGV2ZWxvcGVy
cyBkbw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gbm90IHdhbnQgYSBkaWZmZXJlbnQgc2V0
IG9mIGVycm9yIGNvZGVzIGZvciB0aGUgc2FtZSBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+IGNvbmRp
dGlvbnMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxzbyByZXF1
aXJlcyBhbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICJlcnJvci10YWciIG5vZGUgb2YgIm9w
ZXJhdGlvbi1mYWlsZWQiLiAgU28gd2UgdXNlZCB0aGUNCj4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1v
ZGVsIHRvIHN1cHBvcnQgdGhlIHNhbWUgZXJyb3INCj4gPiA+ID4gPiA+ID4gY29kZXMgZm9yDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSSBhZ3JlZSB0
aGF0IHRyYW5zcG9ydCBkcmFmdHMgY291bGQgZGVmaW5lIHRoZWlyIG93biBlcnJvcg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gaWRlbnRpdGllcywgd2hpY2ggd291bGQgZG9jdW1lbnQgdGhl
IGV4cGVjdGVkIGVycm9yLXRhZyB0aGVyZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAg
ICAyLiAgIm1vZGlmeS1zdWJzY3JpcHRpb24tc3RyZWFtLWVycm9yLWluZm8iOiBUaGlzIE1VU1QN
Cj4gPiA+ID4gPiA+ID4gPiA+IGJlIHJldHVybmVkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ICAgICAgICB3aXRoIHRoZSBsZWFmICJyZWFzb24iIHBvcHVsYXRlZCBpZiBhbiBSUEMgZXJy
b3INCj4gPiA+ID4gPiA+ID4gPiA+IHJlYXNvbiBoYXMgbm90DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ICAgICAgICBiZWVuIHBsYWNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSB0cmFuc3Bv
cnQgcG9ydGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gb2YgYSBmYWlsZWQNCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gICAgICAgICJtb2RpZnktc3Vic2NyaXB0aW9uIiBSUEMgcmVzcG9uc2Uu
ICBUaGlzIE1VU1QgYmUNCj4gPiA+ID4gPiA+ID4gPiA+IHNlbnQgaWYNCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gaGludHMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBhbGwgMyBwYXJhZ3JhcGhzIGxpa2UgdGhpczsg
dW5jbGVhciB3aGF0ICJwbGFjZWQNCj4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gZWxzZXdoZXJlIg0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICB0ZXh0IG1lYW5zOyBub3QgYXBwcm9w
cmlhdGUgZm9yIE1VU1Q7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gSW5zdGVhZCBvZiAicGxhY2VkIGVsc2V3aGVyZSIsIGhvdyBhYm91dDog
InBsYWNlZCBpbg0KPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gdHJhbnNwb3J0IGRvY3VtZW50IGRlZmluZWQgb2JqZWN0Ii4gIFdvdWxkIHRo
aXMgYmUgc3VmZmljaWVudD8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBObyAtLSBORVRDT05GIGFuZCBSRVNUQ09ORiBoYXZlIHdlbGwtZGVm
aW5lZCBlcnJvciByZXBvcnRpbmcuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgc2Vy
dmVyIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRpbmcgbXVzdCBiZQ0KPiA+IGRv
Y3VtZW50ZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gSSBhZ3JlZSB3aXRoIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2g6DQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiAgIC0gZWFjaCBvcGVyYXRpb24gTVVTVCBpZGVudGlmeSB0aGUgZXJy
b3ItdGFncyB0aGF0IGFyZQ0KPiA+ID4gPiA+ID4gPiA+IGV4cGVjdGVkIGZvcg0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gICAgIHZhcmlvdXMgZXJyb3IgY29uZGl0aW9ucyAoc3VjaCBzIGlz
IGRvbmUgaW4gUkZDIDYyNDEpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIC0gdGhlIHNl
cnZlciBNVVNUIHJldHVybiB0aGUgc3BlY2lmaWVkIGVycm9yLXRhZ3MuIElmIGENCj4gPiA+ID4g
PiA+ID4gPiBjb25kaXRpb24gbm90DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIC0gZXhw
bGljaXRseQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIGRlZmluZWQgdGhlbiB0aGUg
c2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlhdGUNCj4gPiA+ID4gPiA+ID4gPiBlcnJvci10
YWcgZnJvbSBSRkMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICA2MjQxDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiAgLSB0aGUgc2VydmVyIE1BWSBpbmNsdWRlIHRoZSBzcGVjaWZp
ZWQgcmM6eWFuZy1kYXRhIGluIHRoZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPGVycm9y
LWluZm8+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgLSBkYXRhDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAtIHRo
ZSBzZXJ2ZXIgTVVTVCB1c2UgdGhlIGFwcHJvcHJpYXRlIHJjOnlhbmctZGF0YSB0bw0KPiA+ID4g
PiA+ID4gPiA+IHJlcG9ydCBoaW50cw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gIC0gZm9y
IHByb3RvY29scyBvdGhlciB0aGFuIE5FVENPTkYgYW5kIFJFU1RDT05GLCB0aGV5IGNhbg0KPiA+
ID4gPiA+ID4gPiA+IG1hcA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZXJyb3ItdGFnDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgLSBvcg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gaWdub3JlIGl0LA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgYnV0IHRoZSBkb2N1
bWVudCBkZWZpbmluZyB0aGUgcHJvdG9jb2wgb3BlcmF0aW9uIE1VU1QNCj4gPiA+ID4gPiA+ID4g
PiBwcm92aWRlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBGdW5jdGlvbmFsbHksIGV2ZXJ5dGhpbmcgeW91IGFzayBmb3IgaXMgZnVsbHkgY292ZXJl
ZCB3aGVuIHlvdQ0KPiA+ID4gPiA+ID4gPiBpbmNsdWRlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gY29uc2lkZXIgZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9u
cw0KPiA+ID4gPiA+ID4gPiAoc2VjdGlvbg0KPiA+ID4gPiA+ID4gPiA3KQ0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgKHNlY3Rp
b24gMy4zKS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IE15IHJlYWQgb2YgdGhlIGlzc3VlIGlzIHRoYXQgeW91IGJlbGlldmUgImVycm9yLXRhZyIg
bXVzdCBiZQ0KPiA+ID4gPiA+ID4gPiBzcGVjaWZpZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiBpbiB0aGUgWUFORyBtb2RlbC4gIEkgYmVsaWV2ZSB0aGF0ICJlcnJvci10YWciIHNob3VsZG4n
dCBiZSBpbg0KPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBZQU5H
IG1vZGVsIGJlY2F1c2UgdGhhdCB3b3VsZCB0aWUgdGhlIG1vZGVsIHRvIGEgdHJhbnNwb3J0IHR5
cGUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBB
bnkgdGhvdWdodHMgb24gaG93IHdlIG1pZ2h0IGNsb3NlIHRoaXM/ICBJZiBhYnNvbHV0ZWx5DQo+
ID4gPiA+ID4gPiA+IHJlcXVpcmVkIEkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBjb3VsZCBw
bGFjZSBhIG5ldyBjb21tZW50IGxpbmUgaW4gdGhlIFlBTkcgbW9kZWwgdW5kZXINCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiAvKiBJZGVudGl0aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlvbiBl
cnJvcnMgKi8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IFRoZSBjb21tZW50IHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlOg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+IC8qIFdoZW4gdXNlZCB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GIFJQQ3M6DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICJlcnJvci10eXBlIiBub2RlIHRvIGJlIHVzZWQg
aXMgImFwcGxpY2F0aW9uIg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgImVycm9yLXRh
ZyIgbXVzdCBiZSAib3BlcmF0aW9uLWZhaWxlZCIuICAqLw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpcyBzZWVtcyBpbmNvbmdydW91cy4gIEp1
c3QgdGhyb3dpbmcgaXQgb3V0IGFzIGEgc3VnZ2VzdGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSAtdjIxIHdv
cmRpbmcgcmVzdWx0cyBmcm9tIHRoZSBhdHRlbXB0ZWQNCj4gPiA+ID4gPiA+ID4gPiBiYWxhbmNp
bmcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoZSBXRyByZXF1ZXN0cyBmb3I6DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAqIG1lcmdpbmcgd2l0aCB0cmFuc3BvcnQgcHJvdG9jb2wg
ZXJyb3IgbWVjaGFuaXNtcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gKiBXRyBsZWFkZXJz
aGlwIGd1aWRhbmNlIHRvIHByb3ZpZGUgcmVxdWlyZW1lbnRzIGZvcg0KPiA+ID4gPiA+ID4gPiA+
IHRyYW5zcG9ydA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnRzDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIE9u
bHkgMyBmaWVsZHMgc2VlbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICB0byBi
ZSByZWxldmFudCAoZXJyb3ItdGFnLCBlcnJvci1hcHAtdGFnLCBlcnJvci1pbmZvKS4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgUHJvdGNvbCBvcGVyYXRpb25zIGFyZSBleHBl
Y3RlZCB0byBkb2N1bWVudCBzZXJ2ZXINCj4gPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmVtZW50cw0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICBmb3IgdGhlc2UgMyBmaWVsZHMsIGlm
IGFwcGxpY2FibGUuICBPbmx5IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3ItdGFnDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIGlzIG1hbmRhdG9yeS10by11c2UuDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSG9wZWZ1
bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1ZmZpY2llbnRseSB3aGVuIHRoaXMgZG9jdW1lbnQNCj4g
PiA+ID4gPiA+ID4gPiBpcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gY291cGxlZCB3aXRo
IHRoZSBORVRDT05GIGFuZCBSRVNUQ09ORiBOb3RpZiB0cmFuc3BvcnQNCj4gPiBkb2N1bWVudHMu
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGb3Igb3RoZXIgdHJhbnNwb3J0cywgdGhlIHRh
Z3MgeW91IGlkZW50aWZ5IGFib3V0IHdvdWxkIG5vdA0KPiA+ID4gPiA+ID4gPiA+IGJlDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhYmxlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSB0aGUgZXJyb3IgYXNzaWdu
bWVudHMgYXJlIGV4dHJlbWVseSBzcGVjaWZpYy4gZS5nLiwNCj4gPiA+ID4gPiA+ID4gPiA+IGl0
IGlzIG5vdA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHBvc3NpYmxlIGZvciA8
a2lsbC1zdWJzY3JpcHRpb24+IHRvIGZhaWwgd2l0aCBhbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiAgICAgICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlzIGlzIHRoZSBp
bnRlbnQgb2YgdGhlIGJhc2Ugc3BlY2lmaWNhdGlvbiwgZS5nLiwgd2UgZG9uJ3QNCj4gPiA+ID4g
PiA+ID4gPiBiZWxpZXZlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBhDQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBraWxsLQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc3Vic2Ny
aXB0aW9uIHNob3VsZCBmYWlsIGZvciBhbiBpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIHJlYXNvbi4N
Cj4gPiA+ID4gPiA+ID4gPiBCdXQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHZlbmRvcnMg
bWlnaHQgZGVzaXJlIG1vcmUgc3BlY2lmaWNpdHkuICBBcyBhIHJlc3VsdCBpcw0KPiA+ID4gPiA+
ID4gPiA+IGNlcnRhaW5seSBvaw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZm9yIHZlbmRv
ciBpbXBsZW1lbnRhdGlvbnMgdG8gYWRkIG5ldyBlcnJvciBpZGVudGl0aWVzLg0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IElNTyBhbnl0aGlu
ZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNpZW50IHJlc291cmNlcy4gVGhhdCBpcw0KPiA+ID4gPiA+
ID4gPiA+IHZlcnkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uLQ0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc3BlY2lmaWMuDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIGltcGxlbWVudGF0aW9u
IHNwZWNpZmljIEkgd291bGQgY2FsbCBpdCBhcHBsaWNhdGlvbg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IHNwZWNpZmljLiAgUmlnaHQgbm93IHdlIGRvbid0IGhhdmUgYSBjYXRjaC1hbGwgZXJy
b3ItaWRlbnRpdHkNCj4gPiA+ID4gPiA+ID4gb2YNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAn
b3RoZXItZXJyb3InLiAgV2UgcHJlZmVycmVkIHRoYXQgZXJyb3IgY29uZGl0aW9ucyBiZXlvbmQg
dGhlDQo+ID4gPiA+ID4gPiA+IGN1cnJlbnQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBvbmVz
IGxpc3RlZCBjb3VsZCBiZSBpbmNsdWRlZCBieSB2ZW5kb3JzIGFzIG5lZWRlZC4gIEZ1cnRoZXIN
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkZXBsb3ltZW50IGV4cGVyaWVuY2UgY291bGQgcmVz
dWx0IGluIG5ldyBlcnJvciBpZGVudGl0aWVzDQo+ID4gPiA+ID4gPiA+IHN1cmZhY2luZw0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGZvciBzdGFuZGFyZGl6YXRpb24gc2hvdWxkIHRoaXMgZHJh
ZnQgY2F0Y2ggb24uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gICAgICBEbyBub3QgYWdyZWUgdGhhdCBzY29waW5nIGVhY2gNCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICBpZGVudGl0eSB0byBzcGVjaWZpYyBSUEMgb3BlcmF0
aW9ucyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlzIGxldmVsIG9mIHNwZWNpZmljaXR5IHdhcyBub3QgdGhl
IGF1dGhvcidzIG9yaWdpbmFsIHBsYW5zLg0KPiA+ID4gPiA+ID4gPiA+IE5vcg0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gd2FzIHRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkgcGFydCBvZiBl
YXJsaWVyIGRyYWZ0IHZlcnNpb25zDQo+ID4gPiA+ID4gPiA+ID4gdXANCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IHRocm91Z2ggLXYwOC4gIEhvd2V2ZXIgbWVtYmVycyBvZiB0aGUgV0cgbWFk
ZSBpdCBjbGVhciB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gc3VjaA0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gc3BlY2lmaWNpdHkgd2FzIG5lY2Vzc2FyeSBmb3IgZHJhZnQgcHJvZ3Jlc3Npb24u
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAgIC0tIGhvdyBhcmUgZXJyb3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9yDQo+
ID4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmVkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ICAgICAgc3Vic2NyaXB0aW9ucyB3aGVuIDxlZGl0LWNvbmZpZz4gaXMgdGhlIFJQQyB0aGF0IGhh
cyB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgZXJyb3I/DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ICAgICAgSG93IGFyZSB0aGUgeWFuZy1kYXRhIHN0cnVjdHMgdXNlZCBmb3IgZWRp
dC1jb25maWcgb3INCj4gPiA+ID4gPiA+ID4gPiA+IGNvbW1pdA0KPiA+ID4gPiBlcnJvcnM/DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gTm9u
ZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUgc3BlY2lmaWVkIGZvciB1c2UNCj4g
PiA+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA8ZWRpdC1jb25m
aWc+IG9wZXJhdGlvbnMuICBGb3IgPGVkaXQtY29uZmlnPiwgdGhlIGNoYW5nZSB0bw0KPiA+ID4g
PiA+ID4gPiA+IGENCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyZWQgc3Vic2Ny
aXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIGRhdGFzdG9yZSBpZg0KPiA+ID4gPiA+ID4g
PiA+IGl0IHdlcmUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHNlbWFudGljYWxseSB2YWxp
ZC4gIEF0IHRoaXMgcG9pbnQgdGhlIHN1YnNjcmlwdGlvbiBlbnRlcnMNCj4gPiA+ID4gPiA+ID4g
PiB0aGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFtldmFsdWF0ZV0gcG9pbnRzIG9mIEZp
Z3VyZSA4LiAgSXNzdWVzIGZyb20gdGhpcyBwb2ludCBvdXQNCj4gPiA+ID4gPiA+ID4gPiB3b3Vs
ZCBiZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBz
cGVjaWZpYyBjb25zdHJ1Y3Qgc3VjaCBhcyBTWVNMT0cuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gU28gaG93IGFyZSBoaW50cyByZXBvcnRl
ZCBmb3IgY29uZmlndXJlZCBzdWJzY3JpcHRpb25zPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgbm90aGluZyBpbiB0aGUgc3BlY2lm
aWNhdGlvbiB3aGljaCByZXF1aXJlcyB0aGlzLiAgQW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBjaG9vc2UgdG8gcGxhY2UgdGhlc2UgaW4gc29tZSBmb3Jt
IG9mIFNZU0xPRy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAuLi4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gSTYpIHNlYyAyLjUsIHBhcmEgMzoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgT24gYSByZWNlaXZlciBv
ZiBhDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgIGNvbmZpZ3VyZWQgc3Vic2NyaXB0
aW9uLCBzdXBwb3J0IGZvciBkeW5hbWljDQo+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb25z
IGlzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgIG9wdGlvbmFsIGV4Y2VwdCB3aGVy
ZSByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMgaXMNCj4gPiA+ID4gPiA+ID4gPiA+ICAg
IHJlcXVpcmVkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiAgIC0tIGNvbmZ1c2luZyBiZWNhdXNlIHRleHQgaW4gMS4zOg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBtaXhpbmct
YW5kLW1hdGNoaW5nIG9mIGR5bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCBjb25maWd1cmVk
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgb3BlcmF0aW9ucyBvbiBhIHNpbmds
ZSBzdWJzY3JpcHRpb24uICBTcGVjaWZpY2FsbHksIGENCj4gPiA+ID4gPiA+ID4gPiA+IGNvbmZp
Z3VyZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBjbGFyaWZ5IHRoZSByZWNl
aXZlciBtYXkgaGF2ZSBtdWx0aXBsZSBzdWJzY3JpcHRpb25zDQo+ID4gPiA+ID4gPiA+ID4gPiBo
ZXJlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gbm90IGNsZWFyIHdoYXQgImV4
Y2VwdCB3aGVyZSByZXBsYXlpbmcuLi4iIHRleHQgbWVhbnMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2lu
ZyB0d2VhazoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiAiT24gYSByZWNlaXZlciBvZiBhIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uLCBzdXBw
b3J0IGZvcg0KPiA+ID4gPiA+ID4gPiA+IGR5bmFtaWMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IHN1YnNjcmlwdGlvbnMgaXMgb3B0aW9uYWwuICBIb3dldmVyIGlmIHJlcGxheWluZyBtaXNz
ZWQNCj4gPiA+ID4gPiA+ID4gPiBldmVudA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gcmVj
b3JkcyBpcyByZXF1aXJlZCBmb3IgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9ydA0K
PiA+ID4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZHluYW1pYyBz
dWJzY3JpcHRpb24gaXMgaGlnaGx5IHJlY29tbWVuZGVkLiAgSW4gdGhpcyBjYXNlLCBhDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBzZXBhcmF0ZSBkeW5hbWljIHN1YnNjcmlwdGlvbiBjYW4g
YmUgZXN0YWJsaXNoZWQgdG8NCj4gPiA+ID4gPiA+ID4gPiByZXRyYW5zbWl0IHRoZQ0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gbWlzc2luZyBldmVudCByZWNvcmRzLiINCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBPSw0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQ2hhbmdlIG1hZGUuDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSTcp
IGxlYWYgc3RyZWFtLXhwYXRoLWZpbHRlcjogW211bHRpcGxlIHVzZXNdDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAg
VGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIGluIHRoZSBmb2xsb3dpbmcgWFBhdGgNCj4gPiA+
ID4gPiA+ID4gPiA+ICAgICAgICAgICAgY29udGV4dDoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgIG8gVGhlIHNl
dCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGlzIHRoZSBzZXQgb2YNCj4gPiA+ID4gPiA+ID4g
PiA+ICAgICAgICAgICAgICBwcmVmaXgNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAg
ICAgICAgICAgICAgICBhbmQgbmFtZXNwYWNlIHBhaXJzIGZvciBhbGwgWUFORyBtb2R1bGVzDQo+
ID4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRlZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAgICAgICAgICAgICAgICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRoZSBwcmVmaXggaXMgdGhl
DQo+ID4gPiA+ID4gPiA+ID4gPiBZQU5HIG1vZHVsZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiAgICAgICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVmaW5l
ZCBieQ0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZScgc3RhdGVtZW50IGluIHRoZSBZQU5HIG1vZHVs
ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gICAtLSBUaGlzIHByZWZpeCBwcm9jZXNzaW5nIGlzIG5vdCBkb25lIGFueXdoZXJlIGVs
c2UgaW4NCj4gPiA+ID4gPiA+ID4gPiA+IE5FVENPTkYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gICAgICBvciBSRVNUQ09ORi4gIElNTyBhIGJhZCBwcmVjZWRlbnQuICBPbmx5IHRoZSBY
TUwNCj4gPiA+ID4gPiA+ID4gPiA+IHByZWZpeGVzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ICAgICAgc2hvdWxkIGJlIHJlcXVpcmVkIGZvciBwcm9jZXNzaW5nIG9mIFhNTCBlbmNvZGlu
Zy4NCj4gPiA+ID4gPiA+ID4gPiA+IFlBTkcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
ICAgICBtb2R1bGUgcHJlZml4ZXMgYXJlIG5vdCByZXF1aXJlZCB0byBiZSB1bmlxdWUsIHVubGlr
ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRoZSBwcmVmaXggbWFwcGluZ3Mg
aW4gWE1MDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gVGhpcyB0ZXh0IHdhcyBwcm9wb3NlZCBieSBNYXJ0aW4gYXMgYSByZXN1bHQgb2YgdGhl
ICJ4cGF0aA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZXhwcmVzc2lvbnMgaW4gSlNPTiIN
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9E
Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IEkgYW0gaGFwcHkgdG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4g
IEkNCj4gPiA+ID4gPiA+ID4gPiB3YXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGhvcGlu
ZyB0aGF0IHRoZSBzdWdnZXN0ZWQgdGV4dCB3YXMgc3VmZmljaWVudCBmb3Igbm93LiAgS2VudA0K
PiA+ID4gPiA+ID4gPiA+IGhhcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gYWxyZWFkeSBp
bmNvcnBvcmF0ZWQgdGhpcyBhcyBhbiBpc3N1ZSBmb3IgeWFuZy1uZXh0DQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1
ZXMvNTUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFNvIGhvcGVmdWxseSB0aGVyZSBpcyBu
byBmaW5hbCBwcmVjZWRlbnQgYmVpbmcgY2xhaW1lZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJIGRvIG5vdCBhZ3JlZSB0aGF0IHRoaXMg
WUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBhIG5ldyB3YXkNCj4gPiA+ID4gPiA+ID4gPiB0bw0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZW5jb2RlIFhQYXRoIGludG8gWE1MIGluc3RhbmNl
IGRvY3VtZW50cy4gVGhpcyB3aWxsIHJlcXVpcmUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gc2VydmVyIGltcGxlbWVudGF0aW9ucy4gIFlBTkcgbW9k
dWxlDQo+ID4gPiA+ID4gPiA+ID4gcHJlZml4ZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IGFyZSBub3QgZXZlbiByZXF1aXJlZCB0byBiZSB1bmlxdWUgc28gdGhlIHNldCBvZiBwcmVmaXhl
cw0KPiA+ID4gPiA+ID4gPiA+IHVzZWQgYnkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRo
ZSBzZXJ2ZXIgaW4gWE1MIGluc3RhbmNlIGRvY3VtZW50cyBtYXkgYmUgZGlmZmVyZW50LCBzaW5j
ZQ0KPiA+ID4gPiA+ID4gPiA+IGl0IG11c3QNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGJl
IHVuaXF1ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IFNlZSBuZXh0IG5vdGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiAgIC0tIE5NREEgYWxsb3dzIHRoZSBzYW1lIG1vZHVsZSB0byBhcHBl
YXIgaW4gbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+IG1vZHVsZS1zZXRzDQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgYW5kIGRpZmZlcmVudCBpbiBlYWNoIGRhdGFzdG9yZS4g
VGhpcyB0ZXh0IGFib3V0DQo+ID4gPiA+ID4gPiA+ID4gPiAiaW1wbGVtZW50ZWQgYnkNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICB0aGUgc2VydmVyIiBkb2VzIG5vdCB3b3JrIGZv
ciBOTURBDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0ZXZlciB0ZXh0IG1lZXRzIFlBTkcgZG9jdG9y
IGFwcHJvdmFsLg0KPiA+ID4gPiA+ID4gPiA+IENhbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4geW91IHN1Z2dlc3Q/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFJlbW92ZSBhbGwgdGV4
dCBhYm91dCBZQU5HIHByZWZpeGVzIGFuZCBjb250aW51ZSB1c2luZyBYTUwNCj4gPiA+ID4gPiA+
ID4gPiBlbmNvZGluZw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gd2l0aG91dCBtb2RpZmlj
YXRpb24NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
IEFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0
DQo+ID4gPiA+ID4gPiA+IG1vZGlmaWNhdGlvbiwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJ
IGJlbGlldmUgdGhpcyBpcyBhIGJsb2NrZXIuICBXaGF0IGlzIHRoZSBwcm9jZXNzIGZvciBZQU5H
DQo+ID4gPiA+ID4gPiA+IG1vZGVsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gcmV2aWV3cyBp
biBzdWNoIGEgY2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuDQo+ID4g
PiA+ID4gPiA+IEFueQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IHN1Z2dlc3Rpb25zIG9uIG5l
eHQgc3RlcHM/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiAuLi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQg
YmUgYW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3VyYWJsZSBlbmNvZGluZw0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiBwcm92aWRlZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgYW0gaGFwcHkgdG8gZW5oYW5jZSB0aGUgZGVmaW5pdGlv
biBZQU5HIG1vZGVsJ3MgaWRlbnRpdHkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGRlZmlu
aXRpb24gb2YgImNvbmZpZ3VyYWJsZS1lbmNvZGluZyIuICBJIGNvdWxkIGRvIHRoaXMgYnkNCj4g
PiA+ID4gPiA+ID4gPiBhZGRpbmcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoZSBmb2xs
b3dpbmcgYWRkaXRpb25hbCB0ZXh0IHRvIHRoZSBkZXNjcmlwdGlvbjogIkFuDQo+ID4gPiA+ID4g
PiA+ID4gZXhhbXBsZSBvZiBhDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmFi
bGUgZW5jb2RpbmcgbWlnaHQgYmUgYSBuZXcgaWRlbnRpdHkgc3VjaCBhcw0KPiA+ID4gPiA+ID4g
PiA+ICdlbmNvZGUtY2JvcicuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTdWNoIGFuIGlk
ZW50aXR5IGNvdWxkIHVzZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gJ2NvbmZpZ3VyYWJs
ZS0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRo
aXMgd291bGQgYWxsb3cgYSBkeW5hbWljDQo+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBlbmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byBy
ZXF1ZXN0IG5vdGlmaWNhdGlvbiBtZXNzYWdlcw0KPiA+ID4gPiA+ID4gPiA+IGJlDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBlbmNvZGVkIHZpYSBDQk9SIFtSRkMtIDcwNDldLiAgRnVydGhl
ciBkZXRhaWxzIGZvciBhbnkNCj4gPiA+ID4gPiA+ID4gPiBzcGVjaWZpYw0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gY29uZmlndXJhYmxlIGVuY29kaW5nIHdvdWxkIGJlIGV4cGxvcmVkIGlu
IGEgdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnQNCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IGJhc2VkIG9uIHRoaXMgc3BlY2lmaWNhdGlvbi4iICBEb2VzIHRoaXMgbWVldCB5
b3VyIGFzaz8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT0sNCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFkZGVkDQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSTExKSBleHRlbnNpb24gc3Vi
c2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbiB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICBUaGlzIHN0YXRlbWVudCBp
cyBub3QgZm9yIHVzZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgb3V0c2lk
ZSBvZiB0aGlzIFlBTkcgbW9kdWxlLiI7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gdGhpcyB0ZXh0IHNob3VsZCBiZSByZW1v
dmVkLiBUaGVyZSBpcyBubyB2YWx1ZSBpbg0KPiA+ID4gPiA+ID4gPiA+ID4gbGltaXRpbmcNCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICB0aGUgc2NvcGUgb2YgdGhpcyBleHRlbnNp
b24uICBJdCBwcmV2ZW50cyBldmVuIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+IFdHIGZyb20NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICBjcmVhdGluZyBhIG1vZHVsZSB0aGF0IHVz
ZXMgdGhlIGV4dGVuc2lvbiBhZ2Fpbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBzaWduaWZpY2Fu
dCBkZWJhdGUgaW4gdGhlIFdHLiAgVGhlDQo+ID4gPiA+ID4gPiA+ID4gYXV0aG9ycw0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gZGlkIG5vdCB3YW50IHRoaXMgcmVzdHJpY3Rpb24gZWl0aGVy
Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IFRvIGJlIGFsbG93ZWQgdG8gcHJvZ3Jlc3MgdGhlIGRvY3VtZW50LCB3ZSBpbnNlcnRlZCB0aGUN
Cj4gPiA+ID4gPiA+ID4gPiBkb2N1bWVudC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IElm
IHRoaXMgcmVhbGx5IGlzIG1hbmRhdG9yeS10by1yZW1vdmUgZnJvbSBhIFlBTkcgZG9jdG9yDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBwb2ludC1vZi12aWV3LCB3aGF0IGlzIHRoZSBwcm9j
ZXNzIGZvciBxdWljayBjbG9zdXJlIG9uIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiBpc3N1ZQ0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFuZCB0aGUgWUFO
RyBkb2N0b3JzPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgWUFORyBsYW5ndWFnZSBt
YWtlcyBubyByZXN0cmljdGlvbnMgYWJvdXQgZXhwb3J0aW5nDQo+ID4gc3RhdGVtZW50cy4NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgZ3Vlc3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28g
SSB3aWxsIGp1c3Qgc2F5IE9LIGFuZA0KPiA+ID4gPiA+ID4gPiA+IHdvbmRlciB3aGF0DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBwcm9ibGVtIHRoaXMgaXMgc3VwcG9zZWQgdG8gc29sdmUu
IEkgZ3Vlc3MgdGhlIFdHIHdhbnRzIHRvDQo+ID4gPiA+ID4gPiA+ID4gZ2l2ZSBZQU5HDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBEb2N0b3JzIG1vcmUgdGhpbmdzIHRvIGNoZWNrLiAoVGhp
cyBpcyB3aGF0IHdlIGNhbGxlZCBhIENMUg0KPiA+ID4gPiA+ID4gPiA+IGluDQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBTTk1QLWxhbmQgOy0pDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGFua3MuICBObyBhY3Rpb24gdGFrZW4uDQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSTEzKSAg
IG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24tc3RhcnRlZCB7DQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ICAgICBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uOw0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgaWYtZmVhdHVyZSAiY29uZmlndXJlZCI7DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiAgICAgICAiVGhpcyBub3RpZmljYXRpb24gaW5kaWNhdGVzIHRoYXQgYSBz
dWJzY3JpcHRpb24gaGFzDQo+ID4gPiA+ID4gPiA+ID4gPiBzdGFydGVkIGFuZA0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIG5vdGlmaWNhdGlvbnMgYXJlIGJlZ2lubmluZyB0
byBiZSBzZW50LiBUaGlzDQo+ID4gPiA+ID4gPiA+ID4gPiBub3RpZmljYXRpb24gc2hhbGwNCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIG9ubHkgYmUgc2VudCB0byByZWNlaXZl
cnMgb2YgYSBzdWJzY3JpcHRpb247IGl0DQo+ID4gPiA+ID4gPiA+ID4gPiBkb2VzIG5vdA0KPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgY29uc3RpdHV0ZSBhIGdlbmVyYWwtcHVy
cG9zZSBub3RpZmljYXRpb24uIjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtLSAybmQgc2VudGVuY2UgaXMgY29uZnVzaW5nOyBh
bGwgbm90aWZpY2F0aW9ucyBhcmUgc2VudA0KPiA+ID4gPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICByZWNlaXZlcnMgb2YgYSBzdWJzY3JpcHRpb24uIGxh
c3QgcGFydCBpcyByZWR1bmRhbnQNCj4gPiA+ID4gPiA+ID4gPiA+IHNpbmNlDQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgdGhlIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmlj
YXRpb24gZXh0ZW5zaW9uIGlzDQo+ID4gPiA+ID4gPiA+ID4gPiB1c2VkDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgbm8gaXNz
dWUgd2l0aCByZW1vdmluZyB0aGlzIHNlY29uZCBzZW50ZW5jZSBjb21wbGV0ZWx5Lg0KPiA+ID4g
PiA+ID4gPiA+IElmDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJIGRpZCB0aGF0LCB3b3Vs
ZCB0aGlzIGFkZHJlc3MgeW91ciBjb25jZXJuPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IE9LDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBEb25lDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSTE0KSAgIHJjOnlhbmctZGF0YSBtb2RpZnkt
c3Vic2NyaXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgbGVhZiBmaWx0ZXItZmFp
bHVyZS1oaW50IHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICB0eXBlIHN0
cmluZzsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIGRlc2NyaXB0aW9u
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICJJbmZvcm1hdGlvbiBk
ZXNjcmliaW5nIHdoZXJlIGFuZC9vciB3aHkgYQ0KPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZWQg
ZmlsdGVyDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICB3YXMgdW5z
dXBwb3J0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uIjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gICAgICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiAgIC0tIHJwYy1lcnJvciBhbHJlYWR5IGFsbG93cyBtb3JlIHByZWNp
c2UgZXJyb3IgcmVwb3J0aW5nDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgSXQg
dXNlcyBlcnJvci10YWcsIGVycm9yLXBhdGgsIGVycm9yLXN0cmluZywgYW5kDQo+ID4gPiA+ID4g
PiA+ID4gPiBlcnJvci1pbmZvDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgZXh0
ZW5zaW9ucw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRvIGlkZW50aWZ5IHdo
aWNoIHBhcmFtZXRlcnMvY29uZGl0aW9ucyBjYXVzZWQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBS
UEMgdG8gYmUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICByZWplY3RlZC4NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICBUaGlzIGVycm9yIHJlcG9ydGluZyB3aWxs
IGNvbnRpbnVlIHRvIGJlIHVzZWQsIE5vdA0KPiA+ID4gPiA+ID4gPiA+ID4gc3VyZSB0aGlzDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgZmFpbHVyZS1oaW50DQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgaGFzIGFueSBzdGFuZGFyZHMgdmFsdWUuIFBlcmhhcHMg
cmVhbC11c2UgZXhhbXBsZSBjYW4NCj4gPiA+ID4gPiA+ID4gPiA+IGJlDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+IGFkZGVkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gUGVyIHlvdXIgdGhvdWdodHMgb24gcnBjLWVycm9yLi4uICBG
b3IgTkVUQ09ORiBhbmQgUkVTVENPTkYsDQo+ID4gPiA+ID4gPiA+ID4geW91DQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBwb2ludCB0byBlcnJvciBzdHJ1Y3R1cmVzIHdoaWNoIGhpc3Rvcmlj
YWxseSBiZWVuIHVzZWQgd2l0aA0KPiA+ID4gPiA+ID4gPiA+IHRob3NlDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiB0cmFuc3BvcnRzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT2Yg
Y291cnNlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB3ZSB3ZXJlIGxvb2tpbmcgdG8gaGF2
ZSBhbGwgc3Vic2NyaXB0aW9uIGhpbnRzIHN1cHBvcnRhYmxlDQo+ID4gPiA+ID4gPiA+ID4gYWNy
b3NzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnRzIHZpYSBhIHNpbmdsZSBw
b3J0YWJsZSBZQU5HIGRhdGEgc3RydWN0dXJlLiAgU28NCj4gPiA+ID4gPiA+ID4gPiB0aGUgdmFs
dWUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGlzIHRoYXQgYSBzaW5nbGUgc3RyaW5nIG9i
amVjdCBleGlzdHMgc28gdG8gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+ID4gd2hhdGV2ZXIgdGhl
DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB2ZW5kb3IgdGhpbmtzIHdvdWxkIGJlIHVzZWZ1
bCBhcyBhIGhpbnQgaW4gdGhpcyBjYXNlLiAgSS5lLiwNCj4gPiA+ID4gPiA+ID4gPiB0aGVyZQ0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gaGFzIGJlZW4gbm8gYXR0ZW1wdCB0byBzdGFuZGFy
ZGl6ZSB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJpbmcuDQo+ID4gPiA+ID4gPiA+ID4gSWYNCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IG9wZXJhdGlvbmFsIGV4cGVyaWVuY2VzIGRyaXZlIGEg
ZGVzaXJlIGZvciBzdWNoIHN0cnVjdHVyaW5nLA0KPiA+ID4gPiA+ID4gPiA+IHRoaXMNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGNvdWxkIHByb3ZpZGUgdGhlIGJhc2lzIGZvciBhIG5ldyBk
cmFmdCBidWlsZGluZyBvZmYgb2YgdGhpcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc3Rh
cnRpbmcgcG9pbnQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gSSBndWVzcyBJIGRvIG5vdCBjb25zaWRlciBORVRDT05GIGFuZCBSRVNUQ09O
RiAiaGlzdG9yaWMiIHF1aXRlDQo+ID4geWV0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
VGhlcmUgYXJlIG1hbnkgaW1wbGVtZW50YXRpb25zIHVzaW5nIHRoZSBycGMtZXJyb3IgcmVwb3J0
aW5nDQo+ID4gPiA+ID4gPiA+ID4gd2l0aCBubw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
aW50ZW50IHRvIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZS4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJIHdhcyBqdXN0IGFza2lu
ZyBmb3IgYW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlkZWEgd2hhdA0KPiA+ID4gPiA+ID4g
PiA+IGFuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRvciB3b3VsZCBwdXQg
aW4gdGhpcyBsZWFmLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gSGVyZSBpcyBhbiBleGFtcGxlIGZyb20gb3VyIGltcGxlbWVudGF0aW9uLiAgU2F5
IHlvdSBtaXN0eXBlDQo+ID4gPiA+ID4gPiA+IGFuIGV4dHJhDQo+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gIlwiIHRvIGFuIHhwYXRoIGZpbHRlcjoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAv
aWY6aW50ZXJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0v
b3Blcg0KPiA+ID4gPiA+ID4gPiAtc3RhDQo+ID4gPiA+ID4gPiA+IHR1cw0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+IEFzIGEgcmVzdWx0LCB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0byB0aGUgcHVi
bGlzaGVyIGlzOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC9pZjppbnRlXHJmYWNlcy1zdGF0
ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vb3BlDQo+ID4gPiA+ID4gPiA+
IHItc3QNCj4gPiA+ID4gPiA+ID4gYXR1cw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gV2hhdCB3ZSB3b3VsZCByZXR1cm4gaW4gdGhlIGZhaWx1cmUt
aGludCBzdHJpbmcgaXM6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSW52YWxpZCBleHByZXNz
aW9uOiBvZmZzZXQoOSkgaW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAnL2lmOmludGVccmZh
Y2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRoZXJuZXQwLzAiXS9vcGVyLQ0KPiA+
IHN0YXR1cycNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IEVyaWMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gQW5keQ0K


From nobody Thu Jan 24 09:05:04 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CD2E131240; Thu, 24 Jan 2019 09:05:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.642
X-Spam-Level: 
X-Spam-Status: No, score=-14.642 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 naf27X2ZERuW; Thu, 24 Jan 2019 09:04:57 -0800 (PST)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 37DF31311DF; Thu, 24 Jan 2019 09:04:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=75916; q=dns/txt; s=iport; t=1548349497; x=1549559097; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qwtjYH8ZwLZaxxjU4AS5OVlXiD2hD9GTdPbdwbj+aK0=; b=fqWxYDJKJJLu8hlha97nuwvFtXFdjEBdp8CPbXARHFWIBX/Ry56wGsi8 twE9l7kS9tQfC6iwpcJ5ZDnkkvFj3S9vKlKo5sFpFEhZMFgc7akdIn5a6 sC3+S4HTZL/u6FLniZWWZxjL5gqylGdORLFe35niVTyblcoVAYWFeqmUi 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAABT70lc/5xdJa1aAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqDd4gai3KCDXyCSpR?= =?us-ascii?q?BFIFnCwEBI4RJAheCbCI0CQ0BAwEBAgEBAm0cDIVKAQEBAQIBGgEIEUMCBQs?= =?us-ascii?q?CAQgOAwQBAQECAgkaAwICAjAUAQgIAgQOBQiCT0yBeQgPrCiBL4opBYELizY?= =?us-ascii?q?XgUA/gRGCFEk1gx4CgTYBAw8CAyqCcoI1IgKJVQMICiYLgUqEKQGBWIRvint?= =?us-ascii?q?cCQKHKINbhxkggWmIaoEyhhqKCYEMhBqJD4JSAhEUgScfOIFWcBU7gmyCJxc?= =?us-ascii?q?TbQEIgkKKU0ExiGIpgQWBHwEB?=
X-IronPort-AV: E=Sophos;i="5.56,517,1539648000"; d="scan'208";a="230643397"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 17:04:55 +0000
Received: from XCH-RTP-002.cisco.com (xch-rtp-002.cisco.com [64.101.220.142]) by rcdn-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id x0OH4s2f025507 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 24 Jan 2019 17:04:55 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-002.cisco.com (64.101.220.142) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 12:04:53 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Thu, 24 Jan 2019 12:04:54 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q
Date: Thu, 24 Jan 2019 17:04:53 +0000
Message-ID: <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com>
References: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com> <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com>
In-Reply-To: <20190124.162945.523862790570074888.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.142, xch-rtp-002.cisco.com
X-Outbound-Node: rcdn-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/GWj29ioCEUe_7DkooVOXD1vFMN8>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 17:05:02 -0000

PiAiRXJpYyBWb2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gRnJv
bTogTWFydGluIEJqb3JrbHVuZCwgSmFudWFyeSAyNCwgMjAxOSA5OjQwIEFNDQo+ID4gPg0KPiA+
ID4gIkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+ID4g
PiBGcm9tOiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU0NCj4gPiA+
ID4gPg0KPiA+ID4gPiA+ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4gd3Jv
dGU6DQo+ID4gPiA+ID4gPiBIaSBBbmR5LA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgdGhlIHRob3JvdWdoIFlB
TkcgRG9jdG9yIHJldmlldy4gIEkgaGF2ZQ0KPiA+ID4gPiA+ID4gaW5jbHVkZWQgdGhlDQo+ID4g
PiA+ID4gYWdyZWVkIHVwb24gY29tbWVudHMsIGFuZCB1cGxvYWRlZCB0bzoNCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25z
LTIyDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gYSBzdW1tYXJ5IG9mIHRoZSBjbGFyaWZpY2F0
aW9ucyBtYWRlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Lg0KPiA+ID4gPiA+ID4gTGV0
IG1lIGtub3cgaWYgdGhlcmUgYW55dGhpbmcgZWxzZSBuZWVkZWQgdG8gY29uY2x1ZGUgdGhlIFlB
TkcNCj4gPiA+ID4gPiA+IGRvY3RvciByZXZpZXcgb2YgdGhpcyBkb2N1bWVudC4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFsc28gYXMgdGhlIHJl
c3VsdCBvZiB0aGUg4oCYZXJyb3ItdGFn4oCZIGRpc2N1c3Npb24gd2l0aCB5b3UgYW5kDQo+ID4g
PiA+ID4gPiBNYXJ0aW4sIHdlIG5lZWQgdG8gcGVyZm9ybSB0aGUgcmVmaW5lbWVudCBvZiB0aGUg
4oCYZXJyb3ItdGFn4oCZDQo+ID4gPiA+ID4gPiBtYXBwaW5nIHdpdGhpbiBib3RoDQo+ID4gPiA+
ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zDQo+ID4g
PiBTZWN0aW9uDQo+ID4gPiA+ID4gPiA3LCBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25m
LW5vdGlmIFNlY3Rpb24gMy4zLiAgIERpcmVjdGx5DQo+ID4gPiA+ID4gPiBiZWxvdyBpcyBzb21l
IHRleHQgYW5kIHByb3Bvc2VkIGVycm9yLXRhZyBtYXBwaW5ncyBmb3IgdGhvc2UNCj4gPiA+ID4g
PiA+IGRvY3VtZW50cy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ICAgICBvICBBbiAiZXJyb3ItdGFnIiBub2RlIHdpdGggdGhlIHZhbHVlIGJlaW5n
IGEgc3RyaW5nIHRoYXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgY29ycmVzcG9u
ZHMgdG8gYW4gaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4NCj4gPiA+ID4gPiA+
IFRoaXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgImVycm9yLXRhZyIgd2lsbCBj
b3JyZXNwb25kIHRvIHRoZSBlcnJvciBpZGVudGl0aWVzDQo+ID4gPiA+ID4gPiB3aXRoaW4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgW0ktRC5kcmFmdC1pZXRmLW5ldGNvbmYtc3Vi
c2NyaWJlZC1ub3RpZmljYXRpb25zXQ0KPiA+ID4gPiA+ID4gc2VjdGlvbg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ICAgICAgICAyLjQuNiBmb3IgZ2VuZXJhbCBzdWJzY3JpcHRpb24gZXJyb3Jz
Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAg
ICAgICAgIGVycm9yIGlkZW50aXR5ICAgICAgICAgdXNlcyBlcnJvci10YWcNCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0t
LS0tLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgICBkc2NwLXVuYXZhaWxhYmxl
ICAgICAgIGludmFsaWQtdmFsdWUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9rLiAgQnV0IGl0IGlz
IG5vdCBjbGVhciB0byBtZSB3aGVuIHRoaXMgZXJyb3IgaXMgYWN0dWFsbHkNCj4gPiA+ID4gPiBz
dXBwb3NlZCB0byBiZSBnZW5lcmF0ZWQ/ICBUaGUgbGVhZiBhbmQgaWRlbnRpdHkgaGF2ZSB0aGUg
c2FtZQ0KPiA+ID4gPiA+IGlmLWZlYXR1cmUsIHNvIGl0IGlzbid0IGEgc3BlY2lhbCBlcnJybyBj
b2RlIGZvciAidW5zdXBwb3J0ZWQgbGVhZiIsIHdoaWNoIGlzDQo+IGdvb2QhDQo+ID4gPiA+ID4N
Cj4gPiA+ID4gPiBUaGVuIEkgaGF2ZSB0byBhc3N1bWUgaXQgaXMgc3VwcG9zZWQgdG8gYmUgc29t
ZSBraW5kIG9mIHJ1bnRpbWUgZXJyb3I/DQo+ID4gPiA+DQo+ID4gPiA+IFllcy4gIEEgcHVibGlz
aGVyLCBub3IgdGhlIG5ldHdvcmsgdG8gd2hpY2ggaXMgY29ubmVjdHMgZG9lcyBub3QNCj4gPiA+
ID4gaGF2ZQ0KPiA+ID4gPiB0bzoNCj4gPiA+ID4gKGEpIHN1cHBvcnQgYWxsIERTQ1AgdmFsdWVz
LCBub3INCj4gPiA+ID4gKGIpIGFsbG93IGEgcGFydGljdWxhciB2YWx1ZSByZXF1ZXN0ZWQgYnkg
YSBwYXJ0aWN1bGFyIHN1YnNjcmliZXIsDQo+ID4gPiA+IFNvIHRoaXMgY29uZGl0aW9uIGFsbG93
cyBhIHB1Ymxpc2hlciB0byByZWplY3QgYSByZXF1ZXN0IGZvciBhDQo+ID4gPiA+IERTQ1AgdmFs
dWUgd2hlcmUgaXMga25vd3MgdGhlIHZhbHVlIHdpbGwgbm90IGJlIHJlc3BlY3RlZC4NCj4gPiA+
DQo+ID4gPiBHb29kIGV4cGxhbmF0aW9uLCBJIHdpc2ggaXQgd2FzIHBhcnQgb2YgdGhlICJsZWFm
IGRzY3AiIGluIHRoZQ0KPiA+ID4gbW9kdWxlDQo+ID4gPiA6KQ0KPiA+ID4NCj4gPiA+IFRoZSBk
c2NwLXVuYXZhaWxhYmxlIGlkZW50aXR5IGRvZXNuJ3QgYWRkIGFueSBhZGRpdGlvbiB2YWx1ZQ0K
PiA+ID4gY29tcGFyZWQgdG8gdGhlIHN0YW5kYXJkIGVycm9yLg0KPiA+DQo+ID4gRm9yIE5FVENP
TkYgYW5kIFJFU1RDT05GLCB0aGlzIGlzIHRoZSBjYXNlLg0KPiANCj4gQW5kIGNvbWkuICBUaGUg
cG9pbnQgaXMsIHdoYXQgbWFrZXMgdGhlIHJwY3MgaW4gdGhpcyBtb2R1bGUgc28gc3BlY2lhbA0K
PiB0aGF0IHRoZXkgaGF2ZSB0byBpbnZlbnQgYSBuZXcgZXJyb3IgcmVwb3J0aW5nIHNjaGVtZT8g
ICBJZiB3ZSBkbyB0aGF0DQo+IGZvciB0aGVzZSBycGNzLCB3aHkgbm90IGZvciBhbGwgb3RoZXIg
cnBjIGluIGFsbCBvdGhlciBtb2R1bGVzPw0KDQpUaGUgY3VycmVudCBSUEMgZXJyb3IgbWVjaGFu
aXNtcyB0aWVzIFlBTkcgUlBDcyB0byBORVRDT05GIGFuZCBSRVNUQ09ORiB0cmFuc3BvcnRzLiAg
IE92ZXIgbWFueSB5ZWFycyB0aGVyZSBoYXMgYmVlbiBsb3RzIG9mIHdvcmsgdG8gYWxpZ24gdGhl
IHN1YnNjcmlwdGlvbiBkcmFmdHMgdG8gdGhlc2UgZXhpc3RpbmcgbWVjaGFuaXNtcywgd2hpbGUg
bWFpbnRhaW5pbmcgYXMgbXVjaCB0cmFuc3BvcnQgaW5kZXBlbmRlbmNlIGZvciBoaW50cyBhcyBw
b3NzaWJsZS4NCg0KPiA+ID4gPiA+IFRoaW5raW5nIHNvbWUgbW9yZSwgd2hhdCBpcyBzdXBwb3Nl
ZCB0byBoYXBwZW4gaWYgdGhlIGNsaWVudCBvbg0KPiA+ID4gPiA+IHRoZSBzYW1lIHNlc3Npb24g
c2VuZHMgZmlyc3QgYW4gZXN0YWJsaXNoLXN1YnNjcmlwdGlvbiB3aXRoIGRzY3ANCj4gPiA+ID4g
PiA0MiwgYW5kIHRoZW4gYW5vdGhlciBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIHdpdGggZHNjcCAx
MD8NCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyB3b3VsZCBiZSBhbGxvd2VkLg0KPiA+ID4NCj4gPiA+
IE9uIGxpbnV4IGF0IGxlYXN0IHRoaXMgaXMgYSBzb2Nrb3B0LCBpLmUuLCB0aGUgb3B0aW9uIGFw
cGxpZXMgdG8gdGhlDQo+ID4gPiBzb2NrZXQsIHdoaWNoIG1lYW5zIGFsbCBwYWNrZXRzIG9uIHRo
ZSBzZXNzaW9uLiAgU28gaG93IGlzIHRoaXMNCj4gPiA+IHN1cHBvc2VkIHRvIGJlIGltcGxlbWVu
dGVkIGlmIGRpZmZlcmVudCBtZXNzYWdlcyBvbiB0aGUgc2Vzc2lvbg0KPiA+ID4gc2hvdWxkIGhh
dmUgZGlmZmVyZW50IGRzY3AgdmFsdWVzPw0KPiA+ID4gT3IgaXMgdGhlDQo+ID4gPiBpZGVhIHRo
YXQgeW91IHNlbmQgdGhlIG1zZywgZmx1c2ggYWxsIGRhdGEgZnJvbSBzc2gvdGxzIHRvIHRjcCwg
dGhlbg0KPiA+ID4gZmx1c2ggdGhlIHRjcCBidWZmZXJzIChub3QgdGhhdCBlYXN5Li4uKT8NCj4g
PiA+DQo+ID4gPiBFdmVuIGlmIHRoZXJlJ3MganVzdCBvbmUgZXN0YWJsaXNoLXN1YnNjcmlwdGlv
biB3aXRoIGEgZHNjcCB2YWx1ZSwNCj4gPiA+IHNpbmNlIGl0IGFwcGxpZXMgdG8gdGhlIHNlc3Np
b24gaXQgbWVhbnMgdGhhdCBhbGwgbm9ybWFsIHJwY3Mgb24NCj4gPiA+IHRoaXMgc2Vzc2lvbiB3
aWxsIGdldCB0aGUgc2FtZSBkc2NwIHZhbHVlLiAgSXQgaXMgbm90IGNsZWFyIHRoYXQNCj4gPiA+
IHRoaXMgaXMgdGhlIGludGVudGlvbj8NCj4gPg0KPiA+IEZvciBhIE5FVENPTkYgc2Vzc2lvbiwg
SSBhZ3JlZSB0aGF0IGFuIGltcGxlbWVudGF0aW9uIG5lZWQgbm90IHRyeSB0bw0KPiA+IGF0dGVt
cHQgdG8gc3VwcG9ydCBtb3JlIHRoYW4gb25lIERTQ1AgZm9yIHRoYXQgc2Vzc2lvbi4gIEFuZCB0
aGUgZXJyb3INCj4gPiBpZGVudGl0eSBkc2NwLXVuYXZhaWxhYmxlIGlzIGEgdmFsaWQgcmVzcG9u
c2UgaGVyZS4NCj4gDQo+IFRoZW4gdGhhdCBzaG91bGQgYmUgZXhwbGFpbmVkIChwcmVmZXJyYWJs
eSBpbiB0aGUgbGVhZiBkc2NwKS4NCj4gDQo+ID4gRm9yIFJFU1RDT05GIGFuZCBvdGhlciB0cmFu
c3BvcnRzLCB0aGVyZSBvcHRpb25zIHdoaWNoIGNhbiBtb3JlDQo+ID4gZmxleGlibHkgc3VwcG9y
dCBkaWZmZXJlbnQgRFNDUCB2YWx1ZXMuICBUaGlzIGlzIG9uZSByZWFzb24gSSB3YXMNCj4gPiBw
dXNoaW5nIGhhcmQgaW4gMjAxNiB0byBsZXZlcmFnZSBIVFRQMi4NCj4gDQo+IFdlJ3JlIHRhbGtp
bmcgYWJvdXQgZHluYW1pYyBzdWJzY3JpcHRpb25zIGhlcmUuICBJIGRvbid0IHRoaW5rIGFueW9u
ZSBoYXMNCj4gc3VnZ2VzdGVkIEhUVFAyIGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMuDQoNCkkg
aGF2ZSBhbHdheXMgYmVsaWV2ZWQgdGhhdCBIVFRQMiBmb3IgZHluYW1pYyBzdWJzY3JpcHRpb25z
IHdhcyBhIHVzZWZ1bCBpbmR1c3RyeSB0YXJnZXQuICAgVGhpcyBkcml2ZXIgd2FzIHRoZSBvcmln
aW5hbCByZWFzb24gSSB3cm90ZSB0aGUgb3JpZ2luYWwgZHJhZnQgd2hpY2ggYmVjYW1lIGRyYWZ0
LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiwgYW5kIG1hbnkgdmFyaWF0aW9ucyBvbiBkeW5h
bWljIHN1YnNjcmlwdGlvbnMgd2l0aCBIVFRQMi4gICAgSW4gdGhlIG1lYW50aW1lLCBHUlBDIHN1
YnNjcmlwdGlvbnMgKGJhc2VkIG9uIEhUVFAyKSBoYXMgZ3Jvd24gaW50byB0aGlzIHNwYWNlLg0K
DQpFcmljDQoNCj4gRm9yIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucywgdGhpcyBpcyBub3QgYW4g
aXNzdWUsIG5vdCBldmVuIGZvciBORVRDT05GLg0KPiANCj4gDQo+IC9tYXJ0aW4NCj4gDQo+IA0K
PiANCj4gPg0KPiA+IEVyaWMNCj4gPg0KPiA+ID4gL21hcnRpbg0KPiA+ID4NCj4gPiA+DQo+ID4g
PiA+IFRoZSBpbnRlcmVzdGluZyBwYXJ0IGNvbWVzIHdpdGggYnVuZGxpbmcgdGhlIGV2ZW50IHJl
Y29yZHMuICBUaGUNCj4gPiA+ID4gaW5pdGlhbCB2ZXJzaW9ucyBvZiBkcmFmdC1pZXRmLW5ldGNv
bmYtbm90aWZpY2F0aW9uLW1lc3NhZ2VzDQo+ID4gPiA+IHJlcXVpcmVkIHRoYXQgYWxsIGV2ZW50
IHJlY29yZHMgaW4gYSBidW5kbGUgaGFkIGEgY29tbW9uIGRzY3AuICBBdA0KPiA+ID4gPiB0aGlz
IHBvaW50LCB0aGF0IHNlZW1zIG92ZXJseSByZXN0cmljdGl2ZSB0byB0aGUgbWFyc2hhbGxpbmcN
Cj4gPiA+ID4gcHJvY2Vzcywgc28gZm9yIG5vdyB0aGF0IHJlcXVpcmVtZW50IGlzIG5vdCBpbiB0
aGUgZG9jdW1lbnQuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgZW5jb2RpbmctdW5z
dXBwb3J0ZWQgICBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBPay4gIEJ1dCB0
aGlzIGlkZW50aXR5IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4g
PiA+ID4gc3RhbmRhcmQNCj4gPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAg
ZXJyb3ItdGFnOiBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBjL2Vz
dGFibGlzaC1zdWJzY3JpcHRpb24vZW5jb2RpbmcNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiAgICAgICAgICAgZmlsdGVyLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVlDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLXJl
YXNvbiIsIHdoaWNoIHdpbGwgbmV2ZXIgYmUNCj4gPiA+ID4gPiBzZW50IGluIGFuIHJwYy0gZXJy
b3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+
ID4NCj4gPiA+ID4gWWVzLCBmb3Jnb3QgdG8gcmVtb3ZlIHRob3NlLiAgSXQgaXMgbm93IG91dC4N
Cj4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgICAgIGZpbHRlci11bnN1cHBvcnRlZCAgICAgaW52
YWxpZC12YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBk
b2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiA+IHN0YW5kYXJk
DQo+ID4gPiA+ID4gZXJyb3I6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIGVycm9yLXRhZzogaW52
YWxpZC12YWx1ZQ0KPiA+ID4gPiA+ICAgZXJyb3ItcGF0aDogL3JwYy9lc3RhYmxpc2gtc3Vic2Ny
aXB0aW9uL3N0cmVhbS14cGF0aC1maWx0ZXINCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiAgICAgICAgICAgaW5zdWZmaWNpZW50LXJlc291cmNlcyByZXNvdXJjZS1kZW5pZWQNCj4g
PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vu
cyd0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiA+IHN0YW5kYXJkIGVy
cm9yIGluIHRoZSBjYXNlIG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4g
bW9kaWZ5LXN1YnNjcmlwdGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgIG5v
LXN1Y2gtc3Vic2NyaXB0aW9uICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g
T2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vucyd0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFu
IHRoZQ0KPiA+ID4gPiA+IHN0YW5kYXJkIGVycm9yIGluIHRoZSBjYXNlIG9mIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4gbW9kaWZ5LXN1YnNjcmlwdGlvbi4NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gICAgICAgICAgIHJlcGxheS11bnN1cHBvcnRlZCAgICAgb3BlcmF0aW9u
LW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9rLiAgQnV0IHRoaXMgaWRlbnRp
dHkgZG9lc24ndCBnaXZlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiB0aGUNCj4gPiA+ID4gPiBzdGFu
ZGFyZCBlcnJvci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgIHN0cmVhbS11bmF2
YWlsYWJsZSAgICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhpcyBpcyBh
ICJzdWJzY3JpcHRpb24tdGVybWluYXRlZC1yZWFzb24iLCB3aGljaCB3aWxsIG5ldmVyIGJlDQo+
ID4gPiA+ID4gc2VudCBpbiBhbiBycGMtIGVycm9yLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIG1h
cHBlZCB0byBhbiBlcnJvci10YWcuDQo+ID4gPiA+DQo+ID4gPiA+IFllcywgZm9yZ290IHRvIHJl
bW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQo+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAg
ICAgc3VzcGVuc2lvbi10aW1lb3V0ICAgICBvcGVyYXRpb24tZmFpbGVkDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLXJlYXNvbiIsIHdoaWNo
IHdpbGwgbmV2ZXIgYmUNCj4gPiA+ID4gPiBzZW50IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVz
IHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+ID4NCj4gPiA+ID4g
WWVzLCBmb3Jnb3QgdG8gcmVtb3ZlIHRob3NlLiAgSXQgaXMgbm93IG91dC4NCj4gPiA+ID4NCj4g
PiA+ID4gPiA+ICAgICAgICAgICB1bnN1cHBvcnRhYmxlLXZvbHVtZSAgIHRvby1iaWcNCj4gPiA+
ID4gPg0KPiA+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29u
Iiwgd2hpY2ggd2lsbCBuZXZlciBiZQ0KPiA+ID4gPiA+IHNlbnQgaW4gYW4gcnBjLSBlcnJvciwg
YW5kIHRodXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgdG8gYW4gZXJyb3ItdGFnLg0KPiA+ID4gPg0K
PiA+ID4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+
ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIE9yIHRoaXMgImVycm9yLXRhZyIgd2lsbCBjb3JyZXNw
b25kIHRvIHRoZSBlcnJvcg0KPiA+ID4gPiA+ID4gaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ICAgICAgICB3aXRoaW4gW0ktRC5pZXRmLW5ldGNvbmYteWFuZy1wdXNoXSBBcHBl
bmRpeCBBLjEgZm9yDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIHN1YnNjcmlwdGlv
biBlcnJvcnMgc3BlY2lmaWMgdG8gWUFORyBkYXRhc3RvcmVzOg0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgIGVycm9yIGlkZW50aXR5
ICAgICAgICAgICAgICB1c2VzIGVycm9yLXRhZw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAg
ICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgLS0tLS0tLS0tLS0tLS0NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgY2FudC1leGNsdWRlICAgICAgICAgICAgICAg
IG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAg
ICAgIGRhdGFzdG9yZS1ub3Qtc3Vic2NyaWJhYmxlICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0K
PiA+ID4gPiA+DQo+ID4gPiA+ID4gSSB0aGluayB0aGF0IHRoaXMgc2hvdWxkIGJlIGludmFsaWQt
dmFsdWUuDQo+ID4gPiA+DQo+ID4gPiA+IE9rDQo+ID4gPiA+DQo+ID4gPiA+IC9FcmljDQo+ID4g
PiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgbm8tc3VjaC1zdWJzY3JpcHRpb24tcmVzeW5jIGlu
dmFsaWQtdmFsdWUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9rLCBidXQgYWdhaW4gdGhlIHZhbHVl
IG9mIGhhdmluZyB0aGlzIGlzIHVuY2xlYXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAg
ICAgICBvbi1jaGFuZ2UtdW5zdXBwb3J0ZWQgICAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgb24tY2hhbmdlLXN5bmMtdW5zdXBw
b3J0ZWQgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
ICAgICAgICAgIHBlcmlvZC11bnN1cHBvcnRlZCAgICAgICAgICBpbnZhbGlkLXZhbHVlDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgIHVwZGF0ZS10b28tYmlnICAgICAgICAgICAg
ICB0b28tYmlnDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICAgIHN5bmMtdG9vLWJp
ZyAgICAgICAgICAgICAgICB0b28tYmlnDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAg
ICAgIHVuY2hhbmdpbmctc2VsZWN0aW9uICAgICAgICBvcGVyYXRpb24tZmFpbGVkDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gL21hcnRpbg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBEbyB5b3UgKG9yIGFueW9u
ZSBlbHNlIGluIHRoaXMgdGhyZWFkKSBoYXZlIGFueSBzdWdnZXN0aW9ucyBvbg0KPiA+ID4gPiA+
ID4gdGhlIHRleHQgb3IgcHJvcG9zZWQgbWFwcGluZ3M/ICBJZiB0aGlzIHR1cm5zIG91dCB0byBi
ZSBvaywNCj4gPiA+ID4gPiA+IEFsZXggd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgTkVUQ09ORiBl
cnJvci10YWcgc3BlY2lmaWNzIGZyb20NCj4gPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi15
YW5nLXB1c2ggU2VjdGlvbnMgNC40LjEgJiA0LjQuMg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQWxzbyBSZXNoYWQgd2lsbCBoYXZlIHRvIGRvIHNv
bWUgd29yayBiZWNhdXNlIGhlIGlzIHRoZSBZQU5HDQo+ID4gPiA+ID4gPiBkb2N0b3Igb2YNCj4g
PiA+ID4gPiBuZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgYW5kIGhlIHdpbGwg
d2FudCB0byBpbmNsdWRlDQo+ID4gPiA+ID4gdGhlIHNhbWUgaW5mb3JtYXRpb24gd2l0aGluIGRy
YWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiBFcmljDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZyb206IEFuZHkgQmllcm1hbiA8YW5keUB5
dW1hd29ya3MuY29tPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwg
SmFudWFyeSAyMywgMjAxOSAxMjo0MiBQTQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRvOiBF
cmljIFZvaXQgKGV2b2l0KSA8ZXZvaXRAY2lzY28uY29tPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+IENjOiBNYXJ0aW4gQmpvcmtsdW5kIDxtYmpAdGFpbC1mLmNvbT47IHlhbmctZG9jdG9yc0Bp
ZXRmLm9yZzsNCj4gPiA+ID4gPiA+IG5ldGNvbmZAaWV0Zi5vcmc7DQo+ID4gPiA+ID4gPiBkcmFm
dC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLmFsbEBpZXRmLm9yZw0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbeWFuZy1kb2N0b3JzXSBZYW5nZG9j
dG9ycyBsYXN0IGNhbGwgcmV2aWV3IG9mDQo+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYt
c3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLTIxDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gT24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgNDozNSBBTSBFcmljIFZv
aXQgKGV2b2l0KQ0KPiA+ID4gPiA+ID4gPG1haWx0bzpldm9pdEBjaXNjby5jb20+DQo+ID4gPiA+
ID4gd3JvdGU6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBGcm9tOiBNYXJ0aW4gQmpvcmts
dW5kLCBKYW51YXJ5IDIzLCAyMDE5IDM6MzIgQU0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBIaSwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAiRXJpYyBWb2l0IChldm9pdCkiIDxtYWls
dG86ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
SGkgQW5keSwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uICBNeSByZWFkaW5nIGlzIHRo
YXQgaXQgdGFrZXMNCj4gPiA+ID4gPiA+ID4gPiB0aGUgdHJhbnNwb3J0DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFpbmVkIGluDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5v
dGlmaWNhdGlvbnMgc2VjdGlvbiA3LA0KPiA+ID4gPiA+ID4gPiA+IGFuZCB0aGVuDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHJlcGxpY2F0ZXMgdGhhdCBpbmZvIHdpdGhpbiAxMiBzZXBh
cmF0ZSBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gPiA+IG9iamVjdHMgb2YgdGhlDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRyYW5zcG9ydCBpbmRlcGVuZGVudCBpZXRmLXN1YnNjcmli
ZWQtbm90aWZpY2F0aW9ucy55YW5nLg0KPiA+ID4gPiA+ID4gPiA+IFRoZSB2YWx1ZQ0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB5b3UgYXJlIGFzc2VydGluZyBpcyB0aGF0IFJGQ3MgY29u
dGFpbmluZyBZQU5HIG1vZGVscw0KPiA+ID4gPiA+ID4gPiA+IGNvbnRhaW5pbmcgdGhlDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHJwYy1zdG10IGhhdmUgdHJhZGl0aW9uYWxseSBkb2N1
bWVudCB0aGUNCj4gPiA+ID4gPiA+ID4gPiBtYW5kYXRvcnktdG8taW1wbGVtZW50DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICJlcnJvci10YWciIGZpZWxkIHdpdGhpbiB0aGUgbW9kZWwu
ICBBbmQgcHJlc3VtYWJseSB5b3UNCj4gPiA+ID4gPiA+ID4gPiBhcmUgY29uY2VybmVkDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoYXQgZGV2ZWxvcGVycyBzaG91bGQgbm90IGhhdmUg
dG8gbG9vayBlbHNld2hlcmUgZm9yIHRoaXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
aW5mb3JtYXRpb24uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gSSB0aGluayB0aGF0IG1heWJlIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUgaXNz
dWVzIGhlcmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gVGhlIGZpcnN0IGlzc3VlIGlzIHRoYXQgZm9yIGVhY2ggZXJyb3IgaWRlbnRpdHkg
ZGVmaW5lZCwNCj4gPiA+ID4gPiA+ID4gdGhlcmUgbmVlZHMgdG8gYmUgYQ0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gbWFwcGluZyB0byB0aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJyb3IgaGFu
ZGxpbmcuICBBbmR5DQo+ID4gPiA+ID4gPiA+IHN1Z2dlc3RzIHRoYXQgdGhpcyBpbmZvIGlzDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBhZGRlZCB0byB0aGlzIGRvY3VtZW50LCBidXQgY3Vy
cmVudGx5IHRoaXMgaW5mb3JtYXRpb24gaXMNCj4gPiA+ID4gPiA+ID4gYXZhaWxhYmxlIGluIHRo
ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gcHJvdGNvbC1tYXBwaW5nIGRvY3VtZW50cyAo
bmV0Y29uZi1ub3RpZiBhbmQgcmVzdGNvbmYtbm90aWYpLg0KPiA+ID4gPiA+ID4gPiBQZXJzb25h
bGx5LCBJDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiB0aGluayB0aGF0IHRoZSBjdXJyZW50
IHNwbGl0IG9mIHRleHQgYmV0d2VlbiBkb2N1bWVudHMgaXMgZmluZS4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGUgc2Vjb25kIGlzc3Vl
IGlzIHRoYXQgY3VycmVudGx5LCBib3RoIG5ldGNvbmYtbm90aWYgYW5kDQo+ID4gPiA+ID4gPiA+
IHJlc3Rjb25mLW5vdGlmIHNheQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gdGhhdCAqYWxs
KiB0aGVzZSBlcnJvcnMgdXNlIHRoZSBlcnJvci10YWcgIm9wZXJhdGlvbi1mYWlsZWQiLg0KPiA+
ID4gPiA+ID4gPiBFc3NlbnRpYWxseSBpdCBtZWFucw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gdGhhdCB3ZSBieXBhc3MgdGhlIGVycm9yIGhhbmRsaW5nIGluIHRoZSBwcm90b2NvbHMuICBB
cyBBbmR5DQo+ID4gPiA+ID4gPiA+IHBvaW50cyBvdXQgYmVsb3csDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiB0aGUgZXJyb3IgImluc3VmZmljaWVudC1yZXNvdXJjZXMiIHNob3VsZCBiZSBt
YXBwZWQgdG8NCj4gPiA+ID4gPiA+ID4gInJlc291cmNlLWRlbmllZCIgaW4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+IE5FVENPTkYgYW5kIFJFU1RDT05GICh0aGV5IG1lYW4gdGhlIHNhbWUg
dGhpbmcpLiAgU28gaXQNCj4gPiA+ID4gPiA+ID4gbWlnaHQgbWFrZSBzZW5zZQ0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gdG8gY2FyZWZ1bGx5IGdvIHRocm91Z2ggdGhlIGxpc3Qgb2YgZXJy
b3JzIGFuZCBtYXAgdGhlbSB0bw0KPiA+ID4gPiA+ID4gPiB0aGUgY29ycmVjdCBlcnJvci10YWcN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IChidXQgc3BlY2lmaXkgdGhpcyBpbiB0aGUgdHJh
bnNwb3J0IGRyYWZ0cykuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiBJIGFtIGNvbXBsZXRlbHkgZ29vZCB3aXRoIHRoaXMuICAgRG9lcyB0aGlzIHdv
cmsgZm9yIHlvdSBBbmR5Pw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gVGhpcyBpcyBiZXR0ZXIuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSSdt
IGdsYWQgbm8gb3RoZXIgZHJhZnRzIGFyZSBjcmVhdGluZyB0aGVpciBvd24gZXJyb3INCj4gPiA+
ID4gPiA+IHJlcG9ydGluZyBzeXN0ZW0gZm9yDQo+ID4gPiA+ID4gZWFjaCBycGMtc3RtdC4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGlzIGlzIGEgYmFkIHByZWNlZGVudCBhbmQgbGlrZWx5
IHRvIGJlIHNraXBwZWQgaW4gaW1wbGVtZW50YXRpb25zLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRXJpYw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAvbWFydGluDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gQW5keQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSWYgdGhlIFlBTkcgZG9jdG9ycyBy
ZXF1aXJlIHRoaXMsIGl0IGNhbiBiZSBpbnNlcnRlZC4gIEENCj4gPiA+ID4gPiA+ID4gPiBzaW1p
bGFyIHRleHQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gY2hhbmdlIHdvdWxkIGJlIG5l
ZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4gPiA+IHdp
dGhpbiBZQU5HDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFB1c2guICBQZXJzb25hbGx5
IEkgZG9u4oCZdCBsaWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlDQo+ID4gPiA+ID4gPiA+
ID4gcmVxdWlyZWQgdG8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZW1iZWQgdGhpcyBp
bmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUgY2hhbmdlIGlmIHlvdQ0KPiA+ID4gPiA+
ID4gPiA+IHJlYWxseSB3YW50DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoaXMsIGFu
ZCBub2JvZHkgZWxzZSBvYmplY3RzLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBPdGhlciB0aGFuIHRoYXQsIEkgYW0gbm90IGF3YXJl
IG9mIGFueSBvdGhlciBvcGVuIGlzc3Vlcw0KPiA+ID4gPiA+ID4gPiA+IGluIHRoZSBZQU5HDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IERvY3RvciByZXZpZXcuICBEbyB5b3Uga25vdyBv
ZiBhbnl0aGluZyBlbHNlPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBFcmljDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IEZyb206IEFuZHkgQmllcm1hbiwgSmFudWFyeSAyMSwgMjAxOSAyOjI2IFBNDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEhpLA0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJ
IHRoaW5rIHRoZSBlcnJvci10YWcgaXNzdWUgY2FuIGJlIHJlc29sdmVkIGJ5IGluY2x1ZGluZyAx
DQo+ID4gPiA+ID4gPiA+ID4gZXh0cmENCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gc2Vu
dGVuY2UgaW4gZWFjaCBlcnJvciBpZGVudGl0eS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gSSBrbm93IHRoaXMgaXMgTkVUQ09ORiBhbmQgUkVTVENPTkYgY2VudHJpYyBidXQgdGhvc2Ug
YXJlDQo+ID4gPiA+ID4gPiA+ID4gdGhlIG9ubHkNCj4gPiA+ID4gPiA+ID4gPiAyDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHN0YW5kYXJkIHByb3RvY29scyBzdXBwb3J0ZWQgZm9yIHRo
ZSBZQU5HIGxhbmd1YWdlIHJpZ2h0IG5vdy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgIElmIHRoZSAnZXJyb3ItdGFnJyBm
aWVsZCBpcyB1c2VkIGluIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gcmVwb3J0aW5nLA0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgdGhlbiB0aGUgdmFsdWUgJzxjb3JyZWN0IGVy
cm9yLXRhZz4nIE1VU1QgYmUgdXNlZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IE9MRDoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICBpZGVudGl0eSBpbnN1ZmZpY2llbnQtcmVzb3VyY2Vz
IHsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNj
cmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIGJhc2UgbW9k
aWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAg
IGJhc2Ugc3Vic2NyaXB0aW9uLXN1c3BlbmRlZC1yZWFzb247DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg
ICAgICAiVGhlIHB1Ymxpc2hlciBoYXMgaW5zdWZmaWNpZW50IHJlc291cmNlcyB0byBzdXBwb3J0
DQo+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAg
ICByZXF1ZXN0ZWQgc3Vic2NyaXB0aW9uLiAgQW4gZXhhbXBsZSBtaWdodCBiZSB0aGF0DQo+ID4g
PiA+ID4gPiA+ID4gYWxsb2NhdGVkIENQVQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg
ICAgICAgaXMgdG9vIGxpbWl0ZWQgdG8gZ2VuZXJhdGUgdGhlIGRlc2lyZWQgc2V0IG9mDQo+ID4g
PiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAg
ICAgICBtZXNzYWdlcy4iOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIH0NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gTkVXOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIGlkZW50aXR5IGluc3VmZmljaWVu
dC1yZXNvdXJjZXMgew0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgYmFzZSBlc3Rh
Ymxpc2gtc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAg
ICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiAgICAgYmFzZSBzdWJzY3JpcHRpb24tc3VzcGVuZGVkLXJlYXNvbjsNCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIGRlc2NyaXB0aW9uDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3VyY2Vz
IHRvIHN1cHBvcnQNCj4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJl
IHRoYXQNCj4gPiA+ID4gPiA+ID4gPiBhbGxvY2F0ZWQgQ1BVDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBz
ZXQgb2YNCj4gPiA+ID4gPiA+ID4gPiBub3RpZmljYXRpb24NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMgdXNl
ZCBpbiBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+IHJlcG9ydGluZywNCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICdyZXNvdXJjZS1kZW5pZWQnIE1VU1Qg
YmUgdXNlZC4iOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgIH0NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gQW5keQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiBPbiBGcmksIEphbiAxOCwgMjAxOSBhdCAxMTo1MyBBTSBFcmljIFZvaXQgKGV2b2l0KQ0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA8bWFpbHRvOmV2b2l0QGNpc2NvLmNvbTxtYWlsdG86
bWFpbHRvOmV2b2l0QGNpc2NvLmNvbT4+IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBIaSBBbmR5LA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBUaGFua3MuICBJIGhhdmUgaW5jb3Jwb3JhdGVkIGl0ZW1zIHdoZXJl
IHRoZXJlIHdhcyBhZ3JlZW1lbnQuDQo+ID4gPiA+ID4gPiA+ID4gSSBoYXZlDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+IHJlbW92ZWQgdGhlIGl0ZW1zIGJlbG93IHdoZXJlIHlvdSB3ZXJl
IG9rLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiBSZW1haW5pbmcgYmVsb3cgYXJlIHRoZSBvcGVuIGl0ZW1zLCB3aXRoIHJlc3BvbnNl
cy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgIFNob3VsZCBiZSBjbGVhciBzb21ld2hlcmUgdGhhdA0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgc3VzcGVuZCBpcyBmb3IgQ1BVIGFuZCBvdGhlciByZXNv
dXJjZXMsIGFuZCBOQUNNDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG5vdCBjb25zaWRlcmVkDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICB0byBiZSBhIHJlc291cmNlLg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
SWYgTkFDTSBpcyBhY3RpdmUsIGl0IG5lZWRzIHRvIGJlIGZvbGxvd2VkLiAgVGhlIHRleHQgd2UN
Cj4gPiA+ID4gPiA+ID4gPiA+IGhhdmUgZm9yDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gTkFDTSBpcyBpbiBTZWN0aW9uIDUuNC4gIERvIHlvdSBzZWUgc29tZXRoaW5nIGVsc2UNCj4g
PiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljIHRvDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gc3Vic2NyaXB0aW9uIHN1c3BlbnNpb24gbmVlZGVkIGhlcmU/ICAoTWF5YmUgSSBhbSBub3QN
Cj4gPiA+ID4gPiA+ID4gPiA+IGdldHRpbmcgeW91cg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IHBvaW50LikNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE5vIC0tIE9LIHRvIGxlYXZlIE5BQ00gYXMgdGVybWluYXRl
LWlmLWxvc3Mtb2YtcmlnaHRzDQo+ID4gPiA+ID4gPiA+ID4gPiAoSXMgdGhlcmUgYW4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBlcnJvciBpZGVudGl0eSBmb3IgdGhpcyBldmVudD8p
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IFRoZSBpZGVudGl0eSB3aGljaCBhcHBsaWVzIGhlcmUgaXMgInN0cmVhbS11bmF2YWlsYWJs
ZSIuDQo+ID4gPiA+ID4gPiA+ID4gVGhpcyBpcyB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gc2FtZSBpZGVudGl0eSB3aGljaCB3b3VsZCBiZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBo
YWQNCj4gPiA+ID4gPiA+ID4gPiBuZXZlciBzdWZmaWNpZW50DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IHBlcm1pc3Npb25zIGluIHRoZSBmaXJzdCBwbGFjZS4gIEkgZG9uJ3QgYmVsaWV2
ZSB3ZSB3b3VsZA0KPiA+ID4gPiA+ID4gPiA+IHdhbnQgdG8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gcmV0dXJuIGFuIGlkZW50aXR5IHNwZWNpZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBl
cm1pc3Npb25zDQo+ID4gPiA+ID4gPiA+ID4gaGF2ZSBqdXN0DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IGJlZW4gY2hhbmdlZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEkzKSBzZWMgMi4xIHBhcmEgNjoNCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIEV2ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUg
ZGVsaXZlcmVkIHRvIGEgcmVjZWl2ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gaW4gYSBkaWZmZXJl
bnQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIG9yZGVyIHRoYW4gdGhleSB3
ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIGRvZXMgdGhp
cyBhcHBseSB0byBzdWJzY3JpcHRpb24tc3RhdGU/IFRoaW5rIG5vdCwNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gdGhleSBhcmUgbm90IGV2ZW50cw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gICAgIHBsYWNlZCBpbiBldmVudCBzdHJlYW0uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBBZ3JlZSB0aGF0IHRoZXkgYXJl
IG5vdCBvbiB0aGUgZXZlbnQgc3RyZWFtLiAgU28gdGhleSBkbw0KPiA+ID4gPiA+ID4gPiA+ID4g
bm90IHZpb2xhdGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0aGlzIHJlcXVpcmVt
ZW50Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBpbiAiU2Vj
dGlvbiAyLjc6DQo+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiBzdGF0ZSBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4uDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAiIEluc3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChhcyBkZWZpbmVkIGluIHRoaXMNCj4gPiA+
ID4gPiA+ID4gPiA+IHNlY3Rpb24pIHdpdGhpbiB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiBzZXF1ZW5jZSBvZiBub3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBhIHBhcnRp
Y3VsYXINCj4gPiA+ID4gPiA+ID4gPiA+IHJlY2VpdmVyLiINCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIE5lZWQgdG8g
YWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICAgICBoZWFkLW9mLWxpbmUgd2hlbmV2ZXIgc3RhdGUgY2hhbmdlcw0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBzaG91bGQgYWx3YXlzIGJlIHNlbnQgaGVh
ZC1vZi1saW5lLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IENvbnNpZGVyDQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhhdCBpbXBsZW1lbnRhdGlvbiBtaWdodCB3YW50
IHRvIGxldCB0aGUgZXhpc3RpbmcgcXVldWUNCj4gPiA+ID4gPiA+ID4gPiA+IG9mIGZpbHRlcmVk
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZXZlbnQgcmVjb3JkcyBiZSBzZW50IGlm
IGlzIGZpbHRlciBjb21wbGV4aXR5IGNhdXNpbmcNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBDUFUg
aXNzdWUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVGhhdCBjb3VsZCBiZSBkaWZm
ZXJlbnQgdGhhbiBpZiBpdCBpcyBhIGJhbmR3aWR0aCBpc3N1ZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
ZHJpdmluZyB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBzdXNwZW5zaW9uLCBh
bmQgeW91IGRlZmluaXRlbHkgd2FudCB0aGUgJ3N1YnNjcmlwdGlvbi1zdXNwZW5kZWQnDQo+ID4g
PiA+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGJlIHBsYWNl
ZCBhdCB0aGUgaGVhZCBvZiBsaW5lLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBJdCBpcyB1cCB0byB0aGUgcHVibGlzaGVyIHRvIGRlY2lkZSB3aGVuIHRvIHN0b3Agc2Vu
ZGluZw0KPiA+ID4gPiA+ID4gPiA+ID4gZXZlbnRzIG9uIGENCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
T2J2aW91c2x5IHRoZSBwdWJsaXNoZXIgY2Fubm90IHdhaXQgdW50aWwgdGhlDQo+ID4gPiA+ID4g
PiA+ID4gPiBzdWJzY3JpcHRpb24gaXMgaWRsZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdldHRpbmcgc3VzcGVuZGVkIGlzIGl0IGlzIGZhciBmcm9t
DQo+ID4gPiA+ID4gPiA+ID4gPiBpZGxlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBTbyBhbHNvIHVwIHRvIHRoZSBwdWJsaXNo
ZXIgd3J0LyB3aGF0IHRvIGRvIHdpdGggYW55DQo+ID4gPiA+ID4gPiA+ID4gPiBldmVudHMgdGhh
dA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGhhdmUgbm90IGJlZW4gZGVsaXZlcmVk
IHlldCBvbiBhIHN1YnNjcmlwdGlvbi4gIENvdWxkDQo+ID4gPiA+ID4gPiA+ID4gPiBkZWxldGUg
dGhlbSBvcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHNhdmUgdGhlbSBmb3Igd2hl
biBtb3JlIGJhbmR3aWR0aCBhdmFpbGFibGUgKGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gZXhhbXBs
ZSkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gQWdyZWUgZnVsbHkgd2l0aCB0aGlzLiAgSXMgdGhlcmUgdGV4dCByZXF1aXJlZCBpbiB0
aGUgZHJhZnQgaGVyZT8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gLi4uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQmV5
b25kIHRoYXQgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVudGF0aW9uIHRvIGRlY2lkZSBpZg0KPiA+
ID4gPiA+ID4gPiA+ID4gc29tZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHVuLXRy
YW5zbWl0dGVkIHF1ZXVlIG9mIGV2ZW50IHJlY29yZHMgc2hvdWxkIGJlIGZsdXNoZWQNCj4gPiA+
ID4gPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHJlcHJvY2Vz
c2VkIGJhc2VkIG9uIHRoZSBtb2RpZmljYXRpb24uICBJIGRvIG5vdCBleHBlY3QNCj4gPiA+ID4g
PiA+ID4gPiA+IHRoaXMgd291bGQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBwb3B1
bGFyLCBhcyBhIHJlcGxheSBzdWJzY3JpcHRpb24gY291bGQgYWNjb21wbGlzaCB0aGlzDQo+ID4g
PiA+ID4gPiA+ID4gPiBzYW1lDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZnVuY3Rp
b25hbCBuZWVkLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gQWdyZWVkIHRoYXQgYW4gaW1wbGVtZW50YXRpb24gY2FuIGRyb3Ag
YXQgYW55IHRpbWUgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiBpbmNyZW1lbnQgdGhlDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gYXBwcm9wcmlhdGUgY291bnRlcnMuIEl0IHdpbGwgdHJ5
IHRvIHRvIGRvIHRoaXMsIGJ1dCBubw0KPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZW1lbnRzDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZXhjZXB0IG1heWJlIHN1YnNjcmlwdGlvbiBl
dmVudHMgbGlrZSAncmVwbGF5LWNvbXBsZXRlZCcNCj4gPiA+ID4gPiA+ID4gPiA+IGNhbm5vdCBi
ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGRyb3BwZWQNCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSGF2ZSBwdXQgYSBt
aW5vciB0d2VhayBpbnRvIFNlY3Rpb24gMi43Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBbb2xkXSAgc3Vic2NyaXB0aW9uIHN0YXRl
IGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZQ0KPiA+ID4gPiA+ID4gPiA+IGZpbHRlcmVk
IG91dA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgY2Fu
bm90IGJlDQo+ID4gPiA+ID4gPiA+ID4gZHJvcHBlZCBvcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiBmaWx0ZXJlZCBvdXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLi4uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBtaWdodCBiZSB3b3J0aCB0d2Vha2lu
Zw0KPiA+ID4gPiA+ID4gPiA+ID4gYSBjb3VwbGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiB3b3JkcyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVudCBvZg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICJzdWJzY3JpcHRpb24tc3VzcGVuZGVkIi4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ICAgICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyDQo+
ID4gPiA+ID4gPiA+ID4gPiB0aGUgaXNzdWFuY2Ugb2YNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiAgICB0aGlzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgc3Vic2Ny
aXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24gbWF5IG5vdyBiZSBzZW50LiINCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMgc3VnZ2VzdGVkIGNoYW5nZT8NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE5vdCBzdXJl
IC0tIGl0IG5lZWRzIHRvIGJlIGNsZWFyIHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlw
dGlvbi1zdXNwZW5kZWQgaXMgdGhlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gbGFz
dCBldmVudCBzZW50IGJlZm9yZSBzdXNwZW5kaW5nIGFuZA0KPiA+ID4gPiA+ID4gPiA+ID4gc3Vi
c2NyaXB0aW9uLXJlc3VtZWQgaXMgdGhlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
Zmlyc3QgZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRvIGFjdGl2
ZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGUgbmV4dCBldmVudCBjb3VsZCBh
bHNvIGJlIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJIGRvIHRoaW5rIHRoaXMgcG9zc2li
aWxpdHkgaXMgY292ZXJlZCBpbiB0aGUgdGV4dC4gIEZvcg0KPiA+ID4gPiA+ID4gPiA+IFNlY3Rp
b24NCj4gPiA+ID4gPiA+ID4gPiAyLjcuNA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBz
dWJzY3JpcHRpb24tc3VzcGVuZGVkIHRoZSBjdXJyZW50IHRleHQgaXM6DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICJObyBmdXJ0aGVy
IG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50aWwgdGhlDQo+ID4gPiA+ID4gPiA+ID4gc3Vi
c2NyaXB0aW9uIHJlc3VtZXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gb3IgaXMgdGVy
bWluYXRlZC4iDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IEFuZCBTZWN0aW9uIDIuNy41IHN1YnNjcmlwdGlvbi1yZXN1bWVkIHNheXMi
Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRz
IGdlbmVyYXRlZCBhZnRlciB0aGUgaXNzdWFuY2Ugb2YNCj4gPiA+ID4gPiA+ID4gPiB0aGlzDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9uIG1heSBub3cgYmUgc2VudC4iDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEJhc2VkIG9uIHRoZSBkaXNjdXNzaW9uLCBJ
IGNhbiBtYWtlIGl0Og0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGFyZSBhZ2FpbiBwZXJt
aXR0ZWQgdG8gYmUgc2VudA0KPiA+ID4gPiA+ID4gPiA+IGZvbGxvd2luZw0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiB0aGlzIHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0
aW9uLiINCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gSXMgdGhpcyBzdWZmaWNpZW50IGZvciB5b3U/DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZhaWx1cmVzDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIGNvbmNlcm4gYWJvdXQgYSBzdWJzY3JpcHRp
b24tc3BlY2lmaWMgZXJyb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwb3J0aW5nIHN5c3RlbQ0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBtdXN0IG1ha2Ugc3VyZSBwcm90
b2NvbCBlcnJvciByZXBvcnRpbmcgc3lzdGVtIGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHVzZWQN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvcnJlY3RseQ0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gWWVzLiAg
V2UgaGF2ZSBkb25lIG91ciBiZXN0IHRvIGludGVncmF0ZSB3aXRoIHRoZQ0KPiA+ID4gPiA+ID4g
PiA+ID4gZW1iZWRkZWQgTkVUQ09ORg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGFu
ZCBSRVNUQ09ORiBtZWNoYW5pc21zLiAgVGhlcmUgaXMgbXVjaCBhZGRpdGlvbmFsDQo+ID4gPiA+
ID4gPiA+ID4gPiBpbmZvcm1hdGlvbiBpbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IHRoZSB0cmFuc3BvcnQgZHJhZnRzIGhlcmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gVGhlIGVycm9yLXRhZyB2
YWx1ZSBuZWVkcyB0byBiZSBpZGVudGlmaWVkIGZvciBlYWNoDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgLS0gJ3JlYXNvbicNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlkZW50aXR5
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiBUaGlzIGlzIGRvbmUgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMuICBFLmcuLCBzZWUN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29u
Zi1ldmVudC0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBub3RpZmljYXRpb25zIFNl
Y3Rpb24gNw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhpcyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBFYWNoIGVycm9yIGlkZW50aXR5IHNob3VsZCBzaW1w
bHkgc3RhdGUgdGhlIHJlcXVpcmVkICJlcnJvci10YWciDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGVycm9yLiAgVGhpcyBpcyBleHBl
Y3RlZCBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gcHJvdG9jb2wNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiBvcGVyYXRpb25zIHRoYXQgYXJlIGFkZGVkIHRvIE5FVENPTkYgYW5kIFJFU1RD
T05GLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiBJbiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25z
LCBzZWN0aW9uDQo+ID4gPiA+ID4gPiA+ID4gNywgdGhlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+IHJlcXVpcmVkICJlcnJvci10YWciIGlzIGlkZW50aWZpZWQgYXMgIm9wZXJhdGlvbi1m
YWlsZWQiLg0KPiA+ID4gPiA+ID4gPiA+IElmIHdlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IGluc3RlYWQgcGxhY2VkIHRoYXQgImVycm9yLXRhZyIgaW5mb3JtYXRpb24gaW4gdGhlIFlB
TkcNCj4gPiA+ID4gPiA+ID4gPiBtb2RlbCwgdGhlbiB3ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiBoYXZlIHRpZWQgdGhlIFlBTkcgbW9kZWwgdG8gdGhlIFJFU1RDT05GIGFuZCBORVRD
T05GDQo+IHRyYW5zcG9ydHMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQm90aCBORVRDT05GIGFuZCBSRVNUQ09ORiB1c2UgYSBj
b21wYXRpYmxlIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcgZGF0YQ0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHN0cnVjdHVyZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiBUaGUgImVycm9yLXRhZyIgaXMgdXNlZCBpbiBib3RoIG9mIHRoZW0uICBJTU8g
Y2xpZW50DQo+ID4gPiA+ID4gPiA+ID4gPiBkZXZlbG9wZXJzIGRvDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gbm90IHdhbnQgYSBkaWZmZXJlbnQgc2V0IG9mIGVycm9yIGNvZGVzIGZv
ciB0aGUgc2FtZQ0KPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3IgY29uZGl0aW9ucy4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gZHJhZnQt
aWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIFNlY3Rpb24gMy4zIGFsc28NCj4gPiA+ID4gPiA+
ID4gPiByZXF1aXJlcyBhbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAiZXJyb3ItdGFn
IiBub2RlIG9mICJvcGVyYXRpb24tZmFpbGVkIi4gIFNvIHdlIHVzZWQgdGhlDQo+ID4gPiA+ID4g
PiA+ID4gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IGRyYWZ0cyByYXRo
ZXIgdGhhbiB0aGUgWUFORyBtb2RlbCB0byBzdXBwb3J0IHRoZSBzYW1lDQo+ID4gPiA+ID4gPiA+
ID4gZXJyb3IgY29kZXMgZm9yDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHRoZSBzYW1l
IGVycm9yIGNvbmRpdGlvbnMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRyYW5zcG9ydCBkcmFmdHMgY291
bGQgZGVmaW5lIHRoZWlyIG93bg0KPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3INCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGl0aWVzLCB3aGljaCB3b3VsZCBkb2N1bWVudCB0aGUg
ZXhwZWN0ZWQgZXJyb3ItdGFnIHRoZXJlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgIDIuICAibW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyI6
IFRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gTVVTVCBiZSByZXR1cm5lZA0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIHdpdGggdGhlIGxlYWYgInJlYXNvbiIgcG9wdWxh
dGVkIGlmIGFuIFJQQw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBlcnJvciByZWFzb24gaGFzIG5vdA0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIGJlZW4gcGxhY2VkIGVsc2V3
aGVyZSB3aXRoaW4gdGhlIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwb3J0aW9uIG9m
IGEgZmFpbGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIm1vZGlm
eS1zdWJzY3JpcHRpb24iIFJQQyByZXNwb25zZS4gIFRoaXMgTVVTVA0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBiZSBzZW50IGlmDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoaW50cw0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAi
cGxhY2VkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gZWxzZXdoZXJlIg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgdGV4dCBtZWFuczsgbm90IGFwcHJvcHJpYXRlIGZv
ciBNVVNUOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gSW5zdGVhZCBvZiAicGxhY2VkIGVsc2V3aGVyZSIsIGhvdyBhYm91dDog
InBsYWNlZCBpbg0KPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uDQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0IGRvY3VtZW50IGRlZmluZWQgb2JqZWN0Ii4gIFdv
dWxkIHRoaXMgYmUgc3VmZmljaWVudD8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE5vIC0tIE5FVENPTkYgYW5kIFJFU1RDT05G
IGhhdmUgd2VsbC1kZWZpbmVkIGVycm9yIHJlcG9ydGluZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiBUaGUgc2VydmVyIHJlcXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRp
bmcgbXVzdCBiZQ0KPiA+ID4gZG9jdW1lbnRlZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkgYWdyZWUgd2l0aCB0aGUgZm9s
bG93aW5nIGFwcHJvYWNoOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgLSBlYWNo
IG9wZXJhdGlvbiBNVVNUIGlkZW50aWZ5IHRoZSBlcnJvci10YWdzIHRoYXQgYXJlDQo+ID4gPiA+
ID4gPiA+ID4gPiBleHBlY3RlZCBmb3INCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgdmFyaW91cyBlcnJvciBjb25kaXRpb25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMNCj4gPiA+
ID4gPiA+ID4gPiA+IDYyNDEpDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAtIHRo
ZSBzZXJ2ZXIgTVVTVCByZXR1cm4gdGhlIHNwZWNpZmllZCBlcnJvci10YWdzLiBJZg0KPiA+ID4g
PiA+ID4gPiA+ID4gYSBjb25kaXRpb24gbm90DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gICAtIGV4cGxpY2l0bHkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgZGVm
aW5lZCB0aGVuIHRoZSBzZXJ2ZXIgTVVTVCBwaWNrIHRoZSBhcHByb3ByaWF0ZQ0KPiA+ID4gPiA+
ID4gPiA+ID4gZXJyb3ItdGFnIGZyb20gUkZDDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gICAgIDYyNDENCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgLSB0aGUgc2VydmVy
IE1BWSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgcmM6eWFuZy1kYXRhIGluDQo+ID4gPiA+ID4gPiA+
ID4gPiB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA8ZXJyb3ItaW5mbz4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgLSBkYXRhDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gc3RydWN0dXJlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gIC0g
dGhlIHNlcnZlciBNVVNUIHVzZSB0aGUgYXBwcm9wcmlhdGUgcmM6eWFuZy1kYXRhIHRvDQo+ID4g
PiA+ID4gPiA+ID4gPiByZXBvcnQgaGludHMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAgLSBmb3IgcHJvdG9jb2xzIG90aGVyIHRoYW4gTkVUQ09ORiBhbmQgUkVTVENPTkYsIHRoZXkN
Cj4gPiA+ID4gPiA+ID4gPiA+IGNhbiBtYXANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBlcnJvci10YWcNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgLSBvcg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGlnbm9yZSBpdCwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiAgICBidXQgdGhlIGRvY3VtZW50IGRlZmluaW5nIHRoZSBwcm90b2NvbCBvcGVy
YXRpb24gTVVTVA0KPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZQ0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGdW5jdGlvbmFsbHksIGV2
ZXJ5dGhpbmcgeW91IGFzayBmb3IgaXMgZnVsbHkgY292ZXJlZCB3aGVuDQo+ID4gPiA+ID4gPiA+
ID4geW91IGluY2x1ZGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gY29uc2lkZXIgZHJh
ZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucw0KPiA+ID4gPiA+ID4g
PiA+IChzZWN0aW9uDQo+ID4gPiA+ID4gPiA+ID4gNykNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gYW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1ub3RpZiAoc2VjdGlvbiAzLjMp
Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBNeSByZWFkIG9mIHRoZSBpc3N1ZSBpcyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWci
IG11c3QNCj4gPiA+ID4gPiA+ID4gPiBiZSBzcGVjaWZpZWQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gaW4gdGhlIFlBTkcgbW9kZWwuICBJIGJlbGlldmUgdGhhdCAiZXJyb3ItdGFnIiBz
aG91bGRuJ3QNCj4gPiA+ID4gPiA+ID4gPiBiZSBpbiB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gWUFORyBtb2RlbCBiZWNhdXNlIHRoYXQgd291bGQgdGllIHRoZSBtb2RlbCB0byBh
IHRyYW5zcG9ydCB0eXBlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBBbnkgdGhvdWdodHMgb24gaG93IHdlIG1pZ2h0IGNsb3NlIHRo
aXM/ICBJZiBhYnNvbHV0ZWx5DQo+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZWQgSQ0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBjb3VsZCBwbGFjZSBhIG5ldyBjb21tZW50IGxpbmUgaW4gdGhl
IFlBTkcgbW9kZWwgdW5kZXINCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLyogSWRlbnRp
dGllcyBmb3IgUlBDIGFuZCBOb3RpZmljYXRpb24gZXJyb3JzICovDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoZSBjb21tZW50IHdv
dWxkIGJlIHNvbWV0aGluZyBsaWtlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAvKiBX
aGVuIHVzZWQgd2l0aCBORVRDT05GIGFuZCBSRVNUQ09ORiBSUENzOg0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiAgICAgImVycm9yLXR5cGUiIG5vZGUgdG8gYmUgdXNlZCBpcyAiYXBwbGlj
YXRpb24iDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgImVycm9yLXRhZyIgbXVz
dCBiZSAib3BlcmF0aW9uLWZhaWxlZCIuICAqLw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlzIHNlZW1zIGluY29uZ3J1b3VzLiAg
SnVzdCB0aHJvd2luZyBpdCBvdXQgYXMgYSBzdWdnZXN0aW9uLg0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEluIGFueSBjYXNlLCB0
aGUgLXYyMSB3b3JkaW5nIHJlc3VsdHMgZnJvbSB0aGUgYXR0ZW1wdGVkDQo+ID4gPiA+ID4gPiA+
ID4gPiBiYWxhbmNpbmcNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUgV0cgcmVx
dWVzdHMgZm9yOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICogbWVyZ2luZyB3aXRo
IHRyYW5zcG9ydCBwcm90b2NvbCBlcnJvciBtZWNoYW5pc21zDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gKiBXRyBsZWFkZXJzaGlwIGd1aWRhbmNlIHRvIHByb3ZpZGUgcmVxdWlyZW1l
bnRzIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gZG9jdW1lbnRzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgT25seSAzIGZpZWxkcyBzZWVtDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICB0byBiZSByZWxldmFudCAoZXJy
b3ItdGFnLCBlcnJvci1hcHAtdGFnLCBlcnJvci1pbmZvKS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICAgICAgIFByb3Rjb2wgb3BlcmF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gZG9j
dW1lbnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gc2VydmVyIHJlcXVpcmVtZW50cw0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgZm9yIHRoZXNlIDMgZmllbGRzLCBpZiBhcHBs
aWNhYmxlLiAgT25seSB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3ItdGFnDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICBpcyBtYW5kYXRvcnktdG8tdXNlLg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gSG9wZWZ1bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1ZmZpY2llbnRseSB3aGVuIHRoaXMNCj4g
PiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50IGlzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gY291cGxlZCB3aXRoIHRoZSBORVRDT05GIGFuZCBSRVNUQ09ORiBOb3RpZiB0cmFuc3BvcnQN
Cj4gPiA+IGRvY3VtZW50cy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGb3Igb3Ro
ZXIgdHJhbnNwb3J0cywgdGhlIHRhZ3MgeW91IGlkZW50aWZ5IGFib3V0IHdvdWxkDQo+ID4gPiA+
ID4gPiA+ID4gPiBub3QgYmUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBhcHBsaWNh
YmxlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiAgIC0tIHRoZSBlcnJvciBhc3NpZ25tZW50cyBhcmUgZXh0cmVtZWx5IHNw
ZWNpZmljLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBlLmcuLCBpdCBpcyBub3QNCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgcG9zc2libGUgZm9yIDxraWxsLXN1YnNjcmlwdGlv
bj4gdG8gZmFpbCB3aXRoIGFuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg
ICdpbnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgaXMgdGhlIGludGVu
dCBvZiB0aGUgYmFzZSBzcGVjaWZpY2F0aW9uLCBlLmcuLCB3ZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
ZG9uJ3QgYmVsaWV2ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGENCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBraWxsLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+IHN1YnNjcmlwdGlvbiBzaG91bGQgZmFpbCBmb3IgYW4gaW5zdWZmaWNpZW50LXJlc291cmNl
cyByZWFzb24uDQo+ID4gPiA+ID4gPiA+ID4gPiBCdXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiB2ZW5kb3JzIG1pZ2h0IGRlc2lyZSBtb3JlIHNwZWNpZmljaXR5LiAgQXMgYSByZXN1
bHQgaXMNCj4gPiA+ID4gPiA+ID4gPiA+IGNlcnRhaW5seSBvaw0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+IGZvciB2ZW5kb3IgaW1wbGVtZW50YXRpb25zIHRvIGFkZCBuZXcgZXJyb3Ig
aWRlbnRpdGllcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNpZW50
IHJlc291cmNlcy4gVGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gaXMgdmVyeQ0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+IHNwZWNpZmljLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIGltcGxlbWVudGF0aW9uIHNwZWNpZmlj
IEkgd291bGQgY2FsbCBpdA0KPiA+ID4gPiA+ID4gPiA+IGFwcGxpY2F0aW9uDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljLiAgUmlnaHQgbm93IHdlIGRvbid0IGhhdmUgYSBj
YXRjaC1hbGwNCj4gPiA+ID4gPiA+ID4gPiBlcnJvci1pZGVudGl0eSBvZg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiAnb3RoZXItZXJyb3InLiAgV2UgcHJlZmVycmVkIHRoYXQgZXJyb3Ig
Y29uZGl0aW9ucyBiZXlvbmQNCj4gPiA+ID4gPiA+ID4gPiB0aGUgY3VycmVudA0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiBvbmVzIGxpc3RlZCBjb3VsZCBiZSBpbmNsdWRlZCBieSB2ZW5k
b3JzIGFzIG5lZWRlZC4NCj4gPiA+ID4gPiA+ID4gPiBGdXJ0aGVyDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+IGRlcGxveW1lbnQgZXhwZXJpZW5jZSBjb3VsZCByZXN1bHQgaW4gbmV3IGVy
cm9yIGlkZW50aXRpZXMNCj4gPiA+ID4gPiA+ID4gPiBzdXJmYWNpbmcNCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gZm9yIHN0YW5kYXJkaXphdGlvbiBzaG91bGQgdGhpcyBkcmFmdCBjYXRj
aCBvbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICAgICAgRG8gbm90IGFncmVlIHRoYXQgc2NvcGluZyBlYWNoDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIGlkZW50aXR5IHRvIHNwZWNpZmljIFJQQyBv
cGVyYXRpb25zIGlzIGEgZ29vZCBpZGVhLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBsZXZlbCBvZiBzcGVjaWZpY2l0
eSB3YXMgbm90IHRoZSBhdXRob3IncyBvcmlnaW5hbCBwbGFucy4NCj4gPiA+ID4gPiA+ID4gPiA+
IE5vcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHdhcyB0aGlzIGxldmVsIG9mIHNw
ZWNpZmljaXR5IHBhcnQgb2YgZWFybGllciBkcmFmdA0KPiA+ID4gPiA+ID4gPiA+ID4gdmVyc2lv
bnMgdXANCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0aHJvdWdoIC12MDguICBIb3dl
dmVyIG1lbWJlcnMgb2YgdGhlIFdHIG1hZGUgaXQgY2xlYXINCj4gPiA+ID4gPiA+ID4gPiA+IHRo
YXQgc3VjaA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljaXR5IHdhcyBu
ZWNlc3NhcnkgZm9yIGRyYWZ0IHByb2dyZXNzaW9uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIGhvdyBhcmUgZXJy
b3JzIGluIHRoZXNlIHBhcmFtZXRlcnMgcmVwb3J0ZWQgZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+
IGNvbmZpZ3VyZWQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgc3Vic2Ny
aXB0aW9ucyB3aGVuIDxlZGl0LWNvbmZpZz4gaXMgdGhlIFJQQyB0aGF0IGhhcyB0aGUNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgICBlcnJvcj8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ICAgICAgSG93IGFyZSB0aGUgeWFuZy1kYXRhIHN0cnVjdHMgdXNlZCBmb3INCj4gPiA+ID4g
PiA+ID4gPiA+ID4gZWRpdC1jb25maWcgb3IgY29tbWl0DQo+ID4gPiA+ID4gZXJyb3JzPw0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gTm9uZSBvZiB0aGVzZSB5YW5nLWRhdGEgc3RydWN0dXJlcyBhcmUgc3BlY2lmaWVkIGZvciB1
c2UNCj4gPiA+ID4gPiA+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA8ZWRpdC1jb25maWc+IG9wZXJhdGlvbnMuICBGb3IgPGVkaXQtY29uZmlnPiwgdGhlIGNoYW5n
ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gdG8gYQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9uIHdvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlDQo+ID4gPiA+
ID4gPiA+ID4gPiBkYXRhc3RvcmUgaWYgaXQgd2VyZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IHNlbWFudGljYWxseSB2YWxpZC4gIEF0IHRoaXMgcG9pbnQgdGhlIHN1YnNjcmlwdGlv
bg0KPiA+ID4gPiA+ID4gPiA+ID4gZW50ZXJzIHRoZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IFtldmFsdWF0ZV0gcG9pbnRzIG9mIEZpZ3VyZSA4LiAgSXNzdWVzIGZyb20gdGhpcyBw
b2ludA0KPiA+ID4gPiA+ID4gPiA+ID4gb3V0IHdvdWxkIGJlDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gcmVwb3J0ZWQgd2l0aCBhIHZlbmRvciBzcGVjaWZpYyBjb25zdHJ1Y3Qgc3Vj
aCBhcyBTWVNMT0cuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiBTbyBob3cgYXJlIGhpbnRzIHJlcG9ydGVkIGZvciBjb25maWd1
cmVkIHN1YnNjcmlwdGlvbnM/DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHNwZWNpZmljYXRp
b24gd2hpY2ggcmVxdWlyZXMgdGhpcy4NCj4gPiA+ID4gPiA+ID4gPiBBbg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBjaG9vc2UgdG8gcGxhY2UgdGhl
c2UgaW4gc29tZSBmb3JtIG9mDQo+IFNZU0xPRy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gLi4uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJNikgc2VjIDIuNSwgcGFy
YSAzOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgIE9uIGEgcmVjZWl2ZXIgb2YgYQ0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5
bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9ucyBpcw0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgb3B0aW9uYWwgZXhjZXB0IHdoZXJlIHJlcGxheWluZyBt
aXNzZWQgZXZlbnQgcmVjb3JkcyBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICByZXF1aXJlZC4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiAgIC0tIGNvbmZ1c2luZyBiZWNhdXNlIHRleHQgaW4gMS4zOg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gbWl4aW5n
LWFuZC1tYXRjaGluZyBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkeW5hbWljIGFuZCBjb25maWd1
cmVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIG9wZXJhdGlvbnMgb24g
YSBzaW5nbGUgc3Vic2NyaXB0aW9uLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBTcGVjaWZpY2FsbHks
IGEgY29uZmlndXJlZA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBjbGFy
aWZ5IHRoZSByZWNlaXZlciBtYXkgaGF2ZSBtdWx0aXBsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBz
dWJzY3JpcHRpb25zIGhlcmUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0g
bm90IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcuLi4iIHRleHQNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gbWVhbnMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhvdyBhYm91dCB0aGUgZm9sbG93aW5nIHR3ZWFrOg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gIk9uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNjcmlwdGlvbiwgc3VwcG9y
dCBmb3INCj4gPiA+ID4gPiA+ID4gPiA+IGR5bmFtaWMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiBzdWJzY3JpcHRpb25zIGlzIG9wdGlvbmFsLiAgSG93ZXZlciBpZiByZXBsYXlpbmcg
bWlzc2VkDQo+ID4gPiA+ID4gPiA+ID4gPiBldmVudA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IHJlY29yZHMgaXMgcmVxdWlyZWQgZm9yIGEgY29uZmlndXJlZCBzdWJzY3JpcHRpb24s
DQo+ID4gPiA+ID4gPiA+ID4gPiBzdXBwb3J0IGZvcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IGR5bmFtaWMgc3Vic2NyaXB0aW9uIGlzIGhpZ2hseSByZWNvbW1lbmRlZC4gIEluIHRo
aXMNCj4gPiA+ID4gPiA+ID4gPiA+IGNhc2UsIGENCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBzZXBhcmF0ZSBkeW5hbWljIHN1YnNjcmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8N
Cj4gPiA+ID4gPiA+ID4gPiA+IHJldHJhbnNtaXQgdGhlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gbWlzc2luZyBldmVudCByZWNvcmRzLiINCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE9LDQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IENoYW5nZSBtYWRl
Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gSTcpIGxlYWYgc3RyZWFtLXhwYXRoLWZpbHRlcjogW211bHRpcGxlIHVzZXNdDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gICAgICAgICAgICBUaGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgaW4gdGhlIGZv
bGxvd2luZyBYUGF0aA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgIGNvbnRleHQ6DQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gICAgICAgICAgICAgIG8gVGhlIHNldCBvZiBuYW1lc3BhY2UgZGVjbGFyYXRpb25z
IGlzIHRoZSBzZXQgb2YNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgIHByZWZpeA0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICBhbmQgbmFt
ZXNwYWNlIHBhaXJzIGZvciBhbGwgWUFORw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBtb2R1bGVzIGlt
cGxlbWVudGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAg
ICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRoZSBwcmVmaXggaXMNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gdGhlIFlBTkcgbW9kdWxlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg
ICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVmaW5lZA0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBieSB0aGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
ICAgICAgICAgICAgICAgJ25hbWVzcGFjZScgc3RhdGVtZW50IGluIHRoZSBZQU5HIG1vZHVsZS4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiAgIC0tIFRoaXMgcHJlZml4IHByb2Nlc3NpbmcgaXMgbm90IGRvbmUgYW55d2hl
cmUgZWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbiBORVRDT05GDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICAgIG9yIFJFU1RDT05GLiAgSU1PIGEgYmFkIHByZWNlZGVudC4g
IE9ubHkgdGhlIFhNTA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmVmaXhlcw0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBzaG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Np
bmcgb2YgWE1MIGVuY29kaW5nLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBZQU5HDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIG1vZHVsZSBwcmVmaXhlcyBhcmUgbm90IHJlcXVp
cmVkIHRvIGJlIHVuaXF1ZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdW5saWtlDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRoZSBwcmVmaXggbWFwcGluZ3MgaW4gWE1MDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBUaGlzIHRleHQgd2FzIHByb3Bvc2VkIGJ5IE1hcnRpbiBhcyBhIHJlc3VsdCBvZiB0aGUN
Cj4gPiA+ID4gPiA+ID4gPiA+ICJ4cGF0aA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IGV4cHJlc3Npb25zIGluIEpTT04iDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhy
ZWFkIGxhc3QgT2N0b2JlciBpbiBORVRNT0QuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGhhcHB5IHRvIGluY29ycG9y
YXRlIHdoYXRldmVyIHRleHQgaXMgYXBwcm9wcmlhdGUuDQo+ID4gPiA+ID4gPiA+ID4gPiBJIHdh
cw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGhvcGluZyB0aGF0IHRoZSBzdWdnZXN0
ZWQgdGV4dCB3YXMgc3VmZmljaWVudCBmb3Igbm93Lg0KPiA+ID4gPiA+ID4gPiA+ID4gS2VudCBo
YXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBhbHJlYWR5IGluY29ycG9yYXRlZCB0
aGlzIGFzIGFuIGlzc3VlIGZvciB5YW5nLW5leHQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9kLXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUNCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBTbyBob3BlZnVsbHkgdGhlcmUgaXMgbm8gZmlu
YWwgcHJlY2VkZW50IGJlaW5nIGNsYWltZWQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGRvIG5vdCBhZ3JlZSB0aGF0IHRo
aXMgWUFORyBtb2R1bGUgc2hvdWxkIGRlZmluZSBhIG5ldw0KPiA+ID4gPiA+ID4gPiA+ID4gd2F5
IHRvDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RlIFhQYXRoIGludG8gWE1M
IGluc3RhbmNlIGRvY3VtZW50cy4gVGhpcyB3aWxsDQo+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJl
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gc2lnbmlmaWNhbnQgY2hhbmdlcyB0byBz
ZXJ2ZXIgaW1wbGVtZW50YXRpb25zLiAgWUFORw0KPiA+ID4gPiA+ID4gPiA+ID4gbW9kdWxlIHBy
ZWZpeGVzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gYXJlIG5vdCBldmVuIHJlcXVp
cmVkIHRvIGJlIHVuaXF1ZSBzbyB0aGUgc2V0IG9mDQo+ID4gPiA+ID4gPiA+ID4gPiBwcmVmaXhl
cyB1c2VkIGJ5DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHNlcnZlciBpbiBY
TUwgaW5zdGFuY2UgZG9jdW1lbnRzIG1heSBiZSBkaWZmZXJlbnQsDQo+ID4gPiA+ID4gPiA+ID4g
PiBzaW5jZSBpdCBtdXN0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gYmUgdW5pcXVl
Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBTZWUgbmV4dCBub3RlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIE5NREEgYWxsb3dzIHRoZSBzYW1lIG1vZHVs
ZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gbW9kdWxlLXNldHMN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgYW5kIGRpZmZlcmVudCBpbiBl
YWNoIGRhdGFzdG9yZS4gVGhpcyB0ZXh0IGFib3V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICJpbXBs
ZW1lbnRlZCBieQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICB0aGUgc2Vy
dmVyIiBkb2VzIG5vdCB3b3JrIGZvciBOTURBDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGhhcHB5IHRvIGFkb3B0IHdo
YXRldmVyIHRleHQgbWVldHMgWUFORyBkb2N0b3IgYXBwcm92YWwuDQo+ID4gPiA+ID4gPiA+ID4g
PiBDYW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB5b3Ugc3VnZ2VzdD8NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gUmVtb3ZlIGFsbCB0ZXh0IGFib3V0IFlB
TkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBYTUwgZW5j
b2RpbmcNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB3aXRob3V0IG1vZGlmaWNhdGlv
bg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBBcyBhIGRpZmZlcmVudCBZQU5HIGRvY3RvciBoYXMgcmVxdWlyZWQgdGhlIGN1cnJlbnQg
dGV4dA0KPiA+ID4gPiA+ID4gPiA+IG1vZGlmaWNhdGlvbiwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gSSBiZWxpZXZlIHRoaXMgaXMgYSBibG9ja2VyLiAgV2hhdCBpcyB0aGUgcHJvY2Vz
cyBmb3IgWUFORw0KPiA+ID4gPiA+ID4gPiA+IG1vZGVsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+IHJldmlld3MgaW4gc3VjaCBhIGNhc2UuICBJIGFtIGhhcHB5IHRvIGFjY2VwdCB3aGF0
ZXZlciBoZXJlLg0KPiA+ID4gPiA+ID4gPiA+IEFueQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBzdWdnZXN0aW9ucyBvbiBuZXh0IHN0ZXBzPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAuLi4NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgLS0gdGhlcmUgc2hvdWxkIGJlIGFuIGV4YW1wbGUgb2YgYSBjb25m
aWd1cmFibGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RpbmcNCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHByb3ZpZGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGhhcHB5IHRvIGVuaGFuY2UgdGhl
IGRlZmluaXRpb24gWUFORyBtb2RlbCdzDQo+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGl0eQ0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGRlZmluaXRpb24gb2YgImNvbmZpZ3VyYWJsZS1l
bmNvZGluZyIuICBJIGNvdWxkIGRvIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+IGJ5IGFkZGluZw0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCB0
ZXh0IHRvIHRoZSBkZXNjcmlwdGlvbjogIkFuDQo+ID4gPiA+ID4gPiA+ID4gPiBleGFtcGxlIG9m
IGENCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmFibGUgZW5jb2Rpbmcg
bWlnaHQgYmUgYSBuZXcgaWRlbnRpdHkgc3VjaCBhcw0KPiA+ID4gPiA+ID4gPiA+ID4gJ2VuY29k
ZS1jYm9yJy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBTdWNoIGFuIGlkZW50aXR5
IGNvdWxkIHVzZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICdjb25maWd1cmFibGUt
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RpbmcnIGFzIGl0cyBiYXNlLiAg
VGhpcyB3b3VsZCBhbGxvdyBhIGR5bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlv
bg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGVuY29kZWQgaW4gSlNPTiBbUkZDLTgy
NTldIHRvIHJlcXVlc3Qgbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4gPiBtZXNzYWdlcyBi
ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGVuY29kZWQgdmlhIENCT1IgW1JGQy0g
NzA0OV0uICBGdXJ0aGVyIGRldGFpbHMgZm9yIGFueQ0KPiA+ID4gPiA+ID4gPiA+ID4gc3BlY2lm
aWMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmFibGUgZW5jb2Rpbmcg
d291bGQgYmUgZXhwbG9yZWQgaW4gYSB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4gPiA+IGRvY3Vt
ZW50DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gYmFzZWQgb24gdGhpcyBzcGVjaWZp
Y2F0aW9uLiIgIERvZXMgdGhpcyBtZWV0IHlvdXIgYXNrPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiBPSw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBBZGRlZA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSTExKSBleHRlbnNpb24gc3Vic2Ny
aXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbiB7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIFRoaXMgc3RhdGVt
ZW50IGlzIG5vdCBmb3IgdXNlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg
ICAgb3V0c2lkZSBvZiB0aGlzIFlBTkcgbW9kdWxlLiI7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSB0aGlzIHRl
eHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRoZXJlIGlzIG5vIHZhbHVlIGluDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IGxpbWl0aW5nDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRo
ZSBzY29wZSBvZiB0aGlzIGV4dGVuc2lvbi4gIEl0IHByZXZlbnRzIGV2ZW4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gdGhpcyBXRyBmcm9tDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgIGNyZWF0aW5nIGEgbW9kdWxlIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9uIGFnYWluLg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gVGhpcyB3YXMgdGhlIHN1YmplY3Qgb2Ygc2lnbmlmaWNhbnQgZGViYXRlIGluIHRoZSBXRy4N
Cj4gPiA+ID4gPiA+ID4gPiA+IFRoZSBhdXRob3JzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gZGlkIG5vdCB3YW50IHRoaXMgcmVzdHJpY3Rpb24gZWl0aGVyLg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVG8gYmUg
YWxsb3dlZCB0byBwcm9ncmVzcyB0aGUgZG9jdW1lbnQsIHdlIGluc2VydGVkIHRoZQ0KPiA+ID4g
PiA+ID4gPiA+ID4gZG9jdW1lbnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSWYg
dGhpcyByZWFsbHkgaXMgbWFuZGF0b3J5LXRvLXJlbW92ZSBmcm9tIGEgWUFORyBkb2N0b3INCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBwb2ludC1vZi12aWV3LCB3aGF0IGlzIHRoZSBw
cm9jZXNzIGZvciBxdWljayBjbG9zdXJlIG9uDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGlzIGlzc3Vl
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gYmV0d2VlbiBXRyBsZWFkZXJzaGlwIGFu
ZCB0aGUgWUFORyBkb2N0b3JzPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBUaGUgWUFORyBsYW5ndWFnZSBtYWtlcyBubyByZXN0cmljdGlvbnMgYWJvdXQgZXhwb3J0aW5n
DQo+ID4gPiBzdGF0ZW1lbnRzLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkgZ3Vl
c3MgSSBtaXNzZWQgdGhhdCBkZWJhdGUgc28gSSB3aWxsIGp1c3Qgc2F5IE9LIGFuZA0KPiA+ID4g
PiA+ID4gPiA+ID4gd29uZGVyIHdoYXQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBw
cm9ibGVtIHRoaXMgaXMgc3VwcG9zZWQgdG8gc29sdmUuIEkgZ3Vlc3MgdGhlIFdHIHdhbnRzDQo+
ID4gPiA+ID4gPiA+ID4gPiB0byBnaXZlIFlBTkcNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBEb2N0b3JzIG1vcmUgdGhpbmdzIHRvIGNoZWNrLiAoVGhpcyBpcyB3aGF0IHdlIGNhbGxl
ZCBhDQo+ID4gPiA+ID4gPiA+ID4gPiBDTFIgaW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBTTk1QLWxhbmQgOy0pDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoYW5rcy4gIE5vIGFjdGlvbiB0YWtlbi4NCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEkx
MykgICBub3RpZmljYXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgew0KPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gICAgIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb247
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgaWYtZmVhdHVyZSAiY29uZmln
dXJlZCI7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24N
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICJUaGlzIG5vdGlmaWNhdGlv
biBpbmRpY2F0ZXMgdGhhdCBhIHN1YnNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoYXMg
c3RhcnRlZCBhbmQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgbm90
aWZpY2F0aW9ucyBhcmUgYmVnaW5uaW5nIHRvIGJlIHNlbnQuIFRoaXMNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gbm90aWZpY2F0aW9uIHNoYWxsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiAgICAgICAgb25seSBiZSBzZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gZG9lcyBub3QNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ICAgICAgICBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlvbi4i
Ow0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICAgLS0gMm5kIHNlbnRlbmNlIGlzIGNvbmZ1c2luZzsgYWxsIG5vdGlmaWNh
dGlvbnMgYXJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHNlbnQgdG8NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICAgcmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBh
cnQgaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVkdW5kYW50IHNpbmNlDQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRoZSBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZp
Y2F0aW9uIGV4dGVuc2lvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyB1c2VkDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBUaGVy
ZSBpcyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNlbnRlbmNlIGNvbXBsZXRl
bHkuDQo+ID4gPiA+ID4gPiA+ID4gPiBJZg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IEkgZGlkIHRoYXQsIHdvdWxkIHRoaXMgYWRkcmVzcyB5b3VyIGNvbmNlcm4/DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBPSw0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiBEb25lDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBJMTQpICAgcmM6eWFuZy1kYXRhIG1vZGlmeS1zdWJzY3JpcHRpb24tc3Ry
ZWFtLWVycm9yLWluZm8gew0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIGxlYWYgZmlsdGVyLWZhaWx1cmUtaGlu
dCB7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIHR5cGUgc3RyaW5n
Ow0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIGRlc2NyaXB0aW9u
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAiSW5mb3JtYXRp
b24gZGVzY3JpYmluZyB3aGVyZSBhbmQvb3Igd2h5IGENCj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJv
dmlkZWQgZmlsdGVyDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAg
ICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiI7DQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICB9DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBycGMtZXJyb3IgYWxy
ZWFkeSBhbGxvd3MgbW9yZSBwcmVjaXNlIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcG9y
dGluZw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBJdCB1c2VzIGVycm9y
LXRhZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5nLCBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
ZXJyb3ItaW5mbw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBleHRlbnNp
b25zDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRvIGlkZW50aWZ5IHdo
aWNoIHBhcmFtZXRlcnMvY29uZGl0aW9ucyBjYXVzZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhl
IFJQQyB0byBiZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICByZWplY3Rl
ZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgVGhpcyBlcnJvciByZXBv
cnRpbmcgd2lsbCBjb250aW51ZSB0byBiZSB1c2VkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBOb3Qg
c3VyZSB0aGlzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIGZhaWx1cmUt
aGludA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBoYXMgYW55IHN0YW5k
YXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFtcGxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+
IGNhbiBiZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gYWRkZWQNCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFBl
ciB5b3VyIHRob3VnaHRzIG9uIHJwYy1lcnJvci4uLiAgRm9yIE5FVENPTkYgYW5kDQo+ID4gPiA+
ID4gPiA+ID4gPiBSRVNUQ09ORiwgeW91DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
cG9pbnQgdG8gZXJyb3Igc3RydWN0dXJlcyB3aGljaCBoaXN0b3JpY2FsbHkgYmVlbiB1c2VkDQo+
ID4gPiA+ID4gPiA+ID4gPiB3aXRoIHRob3NlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gdHJhbnNwb3J0cy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBPZiBjb3Vyc2UN
Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB3ZSB3ZXJlIGxvb2tpbmcgdG8gaGF2ZSBh
bGwgc3Vic2NyaXB0aW9uIGhpbnRzDQo+ID4gPiA+ID4gPiA+ID4gPiBzdXBwb3J0YWJsZSBhY3Jv
c3MNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnRzIHZpYSBhIHNpbmds
ZSBwb3J0YWJsZSBZQU5HIGRhdGEgc3RydWN0dXJlLg0KPiA+ID4gPiA+ID4gPiA+ID4gU28gdGhl
IHZhbHVlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gaXMgdGhhdCBhIHNpbmdsZSBz
dHJpbmcgb2JqZWN0IGV4aXN0cyBzbyB0byB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4gPiA+IHdo
YXRldmVyIHRoZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHZlbmRvciB0aGlua3Mg
d291bGQgYmUgdXNlZnVsIGFzIGEgaGludCBpbiB0aGlzIGNhc2UuDQo+ID4gPiA+ID4gPiA+ID4g
PiBJLmUuLCB0aGVyZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGhhcyBiZWVuIG5v
IGF0dGVtcHQgdG8gc3RhbmRhcmRpemUgdGhlIGNvbnRlbnRzIG9mIHRoaXMgc3RyaW5nLg0KPiA+
ID4gPiA+ID4gPiA+ID4gSWYNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBvcGVyYXRp
b25hbCBleHBlcmllbmNlcyBkcml2ZSBhIGRlc2lyZSBmb3Igc3VjaA0KPiA+ID4gPiA+ID4gPiA+
ID4gc3RydWN0dXJpbmcsIHRoaXMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBjb3Vs
ZCBwcm92aWRlIHRoZSBiYXNpcyBmb3IgYSBuZXcgZHJhZnQgYnVpbGRpbmcgb2ZmIG9mDQo+ID4g
PiA+ID4gPiA+ID4gPiB0aGlzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gc3RhcnRp
bmcgcG9pbnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENPTkYgYW5kIFJF
U1RDT05GDQo+ID4gPiA+ID4gPiA+ID4gPiAiaGlzdG9yaWMiIHF1aXRlDQo+ID4gPiB5ZXQuDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVGhlcmUgYXJlIG1hbnkgaW1wbGVtZW50YXRp
b25zIHVzaW5nIHRoZSBycGMtZXJyb3INCj4gPiA+ID4gPiA+ID4gPiA+IHJlcG9ydGluZyB3aXRo
IG5vDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gaW50ZW50IHRvIHJlcGxhY2UgaXQg
d2l0aCBzb21ldGhpbmcgZWxzZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkgd2FzIGp1c3QgYXNraW5nIGZvciBhbiBleGFt
cGxlLCBzaW5jZSBJIGhhdmUgbm8gaWRlYQ0KPiA+ID4gPiA+ID4gPiA+ID4gd2hhdCBhbg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudG9yIHdvdWxkIHB1dCBpbiB0aGlz
IGxlYWYuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIG91ciBpbXBsZW1lbnRhdGlvbi4gIFNh
eSB5b3UNCj4gPiA+ID4gPiA+ID4gPiBtaXN0eXBlIGFuIGV4dHJhDQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ICJcIiB0byBhbiB4cGF0aCBmaWx0ZXI6DQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IC9pZjppbnRlcmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1lPSJHaWdhYml0RXRo
ZXJuZXQwLzAiXS8NCj4gPiA+ID4gPiA+ID4gPiBvcGVyDQo+ID4gPiA+ID4gPiA+ID4gLXN0YQ0K
PiA+ID4gPiA+ID4gPiA+IHR1cw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBBcyBhIHJl
c3VsdCwgdGhlIGZpbHRlciBpcyBwYXNzZWQgdG8gdGhlIHB1Ymxpc2hlciBpczoNCj4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gL2lmOmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1l
PSJHaWdhYml0RXRoZXJuZXQwLzAiXQ0KPiA+ID4gPiA+ID4gPiA+IC9vcGUNCj4gPiA+ID4gPiA+
ID4gPiByLXN0DQo+ID4gPiA+ID4gPiA+ID4gYXR1cw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBXaGF0IHdlIHdvdWxkIHJldHVybiBp
biB0aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gSW52YWxpZCBleHByZXNzaW9uOiBvZmZzZXQoOSkgaW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gJy9pZjppbnRlXHJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0
aGVybmV0MC8wIg0KPiA+ID4gPiA+ID4gPiA+IF0vb3Blci0NCj4gPiA+IHN0YXR1cycNCj4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRXJp
Yw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IEFuZHkNCg==


From nobody Thu Jan 24 09:29:58 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8E6FE1312A7 for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 09:29:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.041
X-Spam-Level: 
X-Spam-Status: No, score=-2.041 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 YBAnNUmsvY_Z for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 09:29:48 -0800 (PST)
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::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 4FB39131197 for <netconf@ietf.org>; Thu, 24 Jan 2019 09:29:47 -0800 (PST)
Received: by mail-lj1-x235.google.com with SMTP id t9-v6so5963805ljh.6 for <netconf@ietf.org>; Thu, 24 Jan 2019 09:29:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=g6t0EdS8iOX9gCO6HQotf8EBjWFlmWI0HsHlG0BAlKM=; b=Ub6iNxeDKCyJGhzJqn5cYrlwmtKVXMw9kBAPYLR0LzpYGk4R3VKjvWqoyKEPvJv2wT wtUztq45IRXCYeDtqBBh5cwubIgkbQIGExcPVVkXieSug5Ckh24WQ0a23fajXR+KH7Gx o7AQCcuAmgCb0gSCW/kdO1IVyubupymq9wOLFz4HnJqA+hnGTHAQVkFKYl1T1eY0d5GC kgglPF4Zx15AQ5r2kaBuvlKIRmE8r9nDI+EoJMTc/00xkwWX5OMQNphXx4KYX4ZzaKSq lSez3RCYtsAH2bgrmLPEMz1zg91otnC6ArJ/JrXahNwXu0JFT+fWHldNfkZx7bZsd5/9 PAPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=g6t0EdS8iOX9gCO6HQotf8EBjWFlmWI0HsHlG0BAlKM=; b=kRWxY8h/knQ3y2HbDQSx48tMtJ2Gjj+DkPj0x2aoGdoL0rxxn4pBJblAfRBoCvq4wi W8w7wuImNJ5xHwPcD5CglFVwjs9Q7sgEFMgRYccfJWK2XYypdPTLt8aF6aZErCt+JswE jwZ9Op/QXL8eIMkEQx9yQ78FEFq8O5HkJTsyVR/Flj9uicQIVtQipuxZ8mRwIoPcJhcu 8E9aUJ/gmHefMw7u93K04nd+DKBWMvgcQV/+WUNw+Gzlav8M1sUDfJTzWJGWn5kgUZlw 2xVlNbRdZ3hSqOogxZfvq12AE3VySLrgW9uHs9KKufyQUWki2eHMfhl2p4sfTZkPf8uL krMw==
X-Gm-Message-State: AJcUukcbD0kiMlIll+8AmGti08YWkoMCd5EWWZXBdg0clCPKpWdoxoVT QgSHy4XC0AJhMpvc4V2Bz7UAmQ0Q3ggKci9wJ+7AKzjr
X-Google-Smtp-Source: ALg8bN5VECspZfQR89J19CDyuMm1B+DhZ7TSm2aN8OQreTJqWaHtj1U1A0CBX0stlMQwdPe1cN+wbrLOQVUqbOsmAD0=
X-Received: by 2002:a2e:458b:: with SMTP id s133-v6mr6829571lja.170.1548350984772;  Thu, 24 Jan 2019 09:29:44 -0800 (PST)
MIME-Version: 1.0
References: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com> <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com> <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com>
In-Reply-To: <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 24 Jan 2019 09:29:32 -0800
Message-ID: <CABCOCHQTxdi8=x-k+FaWrVUwsg0J945i_c1_jmLJRC=FonZoAg@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>,  "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>,  "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006f828a0580378e21"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/VTm2wQ1Ldh1WdsCp9mfo84SZOA4>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 17:29:57 -0000

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

On Thu, Jan 24, 2019 at 9:04 AM Eric Voit (evoit) <evoit@cisco.com> wrote:

> > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > >
> > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM
> > > > > >
> > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > Hi Andy,
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Thanks very much for the thorough YANG Doctor review.  I have
> > > > > > > included the
> > > > > > agreed upon comments, and uploaded to:
> > > > > > >
> > > > > > > draft-ietf-netconf-subscribed-notifications-22
> > > > > > >
> > > > > > > a summary of the clarifications made is at the end of the
> document.
> > > > > > > Let me know if there anything else needed to conclude the YAN=
G
> > > > > > > doctor review of this document.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Also as the result of the =E2=80=98error-tag=E2=80=99 discuss=
ion with you and
> > > > > > > Martin, we need to perform the refinement of the =E2=80=98err=
or-tag=E2=80=99
> > > > > > > mapping within both
> > > > > > > draft-ietf-netconf-netconf-event-notifications
> > > > Section
> > > > > > > 7, and draft-ietf-netconf-restconf-notif Section 3.3.
>  Directly
> > > > > > > below is some text and proposed error-tag mappings for those
> > > > > > > documents.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >     o  An "error-tag" node with the value being a string that
> > > > > > >
> > > > > > >        corresponds to an identity associated with the error.
> > > > > > > This
> > > > > > >
> > > > > > >        "error-tag" will correspond to the error identities
> > > > > > > within
> > > > > > >
> > > > > > >        [I-D.draft-ietf-netconf-subscribed-notifications]
> > > > > > > section
> > > > > > >
> > > > > > >        2.4.6 for general subscription errors:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >           error identity         uses error-tag
> > > > > > >
> > > > > > >           ---------------------- --------------
> > > > > > >
> > > > > > >           dscp-unavailable       invalid-value
> > > > > >
> > > > > > Ok.  But it is not clear to me when this error is actually
> > > > > > supposed to be generated?  The leaf and identity have the same
> > > > > > if-feature, so it isn't a special errro code for "unsupported
> leaf", which is
> > good!
> > > > > >
> > > > > > Then I have to assume it is supposed to be some kind of runtime
> error?
> > > > >
> > > > > Yes.  A publisher, nor the network to which is connects does not
> > > > > have
> > > > > to:
> > > > > (a) support all DSCP values, nor
> > > > > (b) allow a particular value requested by a particular subscriber=
,
> > > > > So this condition allows a publisher to reject a request for a
> > > > > DSCP value where is knows the value will not be respected.
> > > >
> > > > Good explanation, I wish it was part of the "leaf dscp" in the
> > > > module
> > > > :)
> > > >
> > > > The dscp-unavailable identity doesn't add any addition value
> > > > compared to the standard error.
> > >
> > > For NETCONF and RESTCONF, this is the case.
> >
> > And comi.  The point is, what makes the rpcs in this module so special
> > that they have to invent a new error reporting scheme?   If we do that
> > for these rpcs, why not for all other rpc in all other modules?
>
> The current RPC error mechanisms ties YANG RPCs to NETCONF and RESTCONF
> transports.   Over many years there has been lots of work to align the
> subscription drafts to these existing mechanisms, while maintaining as mu=
ch
> transport independence for hints as possible.
>
>

The subscription draft changes error reporting in significant ways, for the
worse, not the better.
There are a set of error-tag values that are used for all protocol
operations defined with rpc-stmt.
It was first defined in NETCONF but it has been applied to RESTCONF as well=
.

This draft uses identities to replace the set of common error-tags.
Instead, every single
rpc-stmt can have its own set of error codes. Even worse, a different set
of error codes
depending on the protocol that was used.

Why should a 'resource-denied' error be something different in RESTCONF vs.
NETCONF?
Or even in CoMI or some unknown protocol?  Why would 'invalid-value' be
different,
depending on the operation?

It is 1 thing to change the documentation of YANG-based protocol operations=
.
It is another to omit mandatory information needed to work with NETCONF and
RESTCONF.
If the error-tag values are properly documented and the NETCONF and
RESTCONF mappings are identical
then there should not be any problems using standard error reporting.


Andy



> > > > > Thinking some more, what is supposed to happen if the client on
> > > > > > the same session sends first an establish-subscription with dsc=
p
> > > > > > 42, and then another establish-subscription with dscp 10?
> > > > >
> > > > > This would be allowed.
> > > >
> > > > On linux at least this is a sockopt, i.e., the option applies to th=
e
> > > > socket, which means all packets on the session.  So how is this
> > > > supposed to be implemented if different messages on the session
> > > > should have different dscp values?
> > > > Or is the
> > > > idea that you send the msg, flush all data from ssh/tls to tcp, the=
n
> > > > flush the tcp buffers (not that easy...)?
> > > >
> > > > Even if there's just one establish-subscription with a dscp value,
> > > > since it applies to the session it means that all normal rpcs on
> > > > this session will get the same dscp value.  It is not clear that
> > > > this is the intention?
> > >
> > > For a NETCONF session, I agree that an implementation need not try to
> > > attempt to support more than one DSCP for that session.  And the erro=
r
> > > identity dscp-unavailable is a valid response here.
> >
> > Then that should be explained (preferrably in the leaf dscp).
> >
> > > For RESTCONF and other transports, there options which can more
> > > flexibly support different DSCP values.  This is one reason I was
> > > pushing hard in 2016 to leverage HTTP2.
> >
> > We're talking about dynamic subscriptions here.  I don't think anyone h=
as
> > suggested HTTP2 for dynamic subscriptions.
>
> I have always believed that HTTP2 for dynamic subscriptions was a useful
> industry target.   This driver was the original reason I wrote the origin=
al
> draft which became draft-ietf-netconf-restconf-notif, and many variations
> on dynamic subscriptions with HTTP2.    In the meantime, GRPC subscriptio=
ns
> (based on HTTP2) has grown into this space.
>
> Eric
>
> > For configured subscriptions, this is not an issue, not even for NETCON=
F.
> >
> >
> > /martin
> >
> >
> >
> > >
> > > Eric
> > >
> > > > /martin
> > > >
> > > >
> > > > > The interesting part comes with bundling the event records.  The
> > > > > initial versions of draft-ietf-netconf-notification-messages
> > > > > required that all event records in a bundle had a common dscp.  A=
t
> > > > > this point, that seems overly restrictive to the marshalling
> > > > > process, so for now that requirement is not in the document.
> > > > >
> > > > > > >           encoding-unsupported   invalid-value
> > > > > >
> > > > > > Ok.  But this identity doesn't give more information than the
> > > > > > standard
> > > > > > error:
> > > > > >
> > > > > >   error-tag: invalid-value
> > > > > >   error-path: /rpc/establish-subscription/encoding
> > > > > >
> > > > > >
> > > > > > >           filter-unavailable     invalid-value
> > > > > >
> > > > > > This is a "subscription-terminated-reason", which will never be
> > > > > > sent in an rpc- error, and thus should not be mapped to an
> error-tag.
> > > > >
> > > > > Yes, forgot to remove those.  It is now out.
> > > > >
> > > > > > >          filter-unsupported     invalid-value
> > > > > >
> > > > > > Ok.  But this identity doesn't give more information than the
> > > > > > standard
> > > > > > error:
> > > > > >
> > > > > >   error-tag: invalid-value
> > > > > >   error-path: /rpc/establish-subscription/stream-xpath-filter
> > > > > >
> > > > > >
> > > > > > >           insufficient-resources resource-denied
> > > > > >
> > > > > >
> > > > > > Ok.  But this identity doens't give more information than the
> > > > > > standard error in the case of establish-subscription and
> > > > > > modify-subscription.
> > > > > >
> > > > > > >           no-such-subscription   invalid-value
> > > > > >
> > > > > > Ok.  But this identity doens't give more information than the
> > > > > > standard error in the case of establish-subscription and
> > > > > > modify-subscription.
> > > > > >
> > > > > > >           replay-unsupported     operation-not-supported
> > > > > >
> > > > > > Ok.  But this identity doesn't give more information than the
> > > > > > standard error.
> > > > > >
> > > > > > >           stream-unavailable     invalid-value
> > > > > >
> > > > > > This is a "subscription-terminated-reason", which will never be
> > > > > > sent in an rpc- error, and thus should not be mapped to an
> error-tag.
> > > > >
> > > > > Yes, forgot to remove those.  It is now out.
> > > > >
> > > > > > >           suspension-timeout     operation-failed
> > > > > >
> > > > > > This is a "subscription-terminated-reason", which will never be
> > > > > > sent in an rpc- error, and thus should not be mapped to an
> error-tag.
> > > > >
> > > > > Yes, forgot to remove those.  It is now out.
> > > > >
> > > > > > >           unsupportable-volume   too-big
> > > > > >
> > > > > > This is a "subscription-terminated-reason", which will never be
> > > > > > sent in an rpc- error, and thus should not be mapped to an
> error-tag.
> > > > >
> > > > > Yes, forgot to remove those.  It is now out.
> > > > >
> > > > > > >        Or this "error-tag" will correspond to the error
> > > > > > > identities
> > > > > > >
> > > > > > >        within [I-D.ietf-netconf-yang-push] Appendix A.1 for
> > > > > > >
> > > > > > >        subscription errors specific to YANG datastores:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >           error identity              uses error-tag
> > > > > > >
> > > > > > >           ----------------------      --------------
> > > > > > >
> > > > > > >           cant-exclude                operation-not-supported
> > > > > > >
> > > > > > >           datastore-not-subscribable  operation-not-supported
> > > > > >
> > > > > > I think that this should be invalid-value.
> > > > >
> > > > > Ok
> > > > >
> > > > > /Eric
> > > > >
> > > > > > >           no-such-subscription-resync invalid-value
> > > > > >
> > > > > > Ok, but again the value of having this is unclear.
> > > > > >
> > > > > > >           on-change-unsupported       operation-not-supported
> > > > > > >
> > > > > > >           on-change-sync-unsupported  operation-not-supported
> > > > > > >
> > > > > > >           period-unsupported          invalid-value
> > > > > > >
> > > > > > >           update-too-big              too-big
> > > > > > >
> > > > > > >           sync-too-big                too-big
> > > > > > >
> > > > > > >           unchanging-selection        operation-failed
> > > > > >
> > > > > >
> > > > > >
> > > > > > /martin
> > > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Do you (or anyone else in this thread) have any suggestions o=
n
> > > > > > > the text or proposed mappings?  If this turns out to be ok,
> > > > > > > Alex will need to remove the NETCONF error-tag specifics from
> > > > > > > draft-ietf-netconf-yang-push Sections 4.4.1 & 4.4.2
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Also Reshad will have to do some work because he is the YANG
> > > > > > > doctor of
> > > > > > netconf-netconf-event-notifications, and he will want to includ=
e
> > > > > > the same information within draft-ietf-netconf-restconf-notif.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Eric
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > From: Andy Bierman <andy@yumaworks.com>
> > > > > > >
> > > > > > > Sent: Wednesday, January 23, 2019 12:42 PM
> > > > > > >
> > > > > > > To: Eric Voit (evoit) <evoit@cisco.com>
> > > > > > >
> > > > > > > Cc: Martin Bjorklund <mbj@tail-f.com>; yang-doctors@ietf.org;
> > > > > > > netconf@ietf.org;
> > > > > > > draft-ietf-netconf-subscribed-notifications.all@ietf.org
> > > > > > >
> > > > > > > Subject: Re: [yang-doctors] Yangdoctors last call review of
> > > > > > > draft-ietf-netconf-subscribed-notifications-21
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Jan 23, 2019 at 4:35 AM Eric Voit (evoit)
> > > > > > > <mailto:evoit@cisco.com>
> > > > > > wrote:
> > > > > > >
> > > > > > > > From: Martin Bjorklund, January 23, 2019 3:32 AM
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > Hi,
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > "Eric Voit (evoit)" <mailto:evoit@cisco.com> wrote:
> > > > > > >
> > > > > > > > > Hi Andy,
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Looking at your proposal...  My reading is that it takes
> > > > > > > > > the transport
> > > > > > >
> > > > > > > > > specific error info contained in
> > > > > > >
> > > > > > > > > draft-ietf-netconf-netconf-event-notifications section 7,
> > > > > > > > > and then
> > > > > > >
> > > > > > > > > replicates that info within 12 separate description
> > > > > > > > > objects of the
> > > > > > >
> > > > > > > > > transport independent ietf-subscribed-notifications.yang.
> > > > > > > > > The value
> > > > > > >
> > > > > > > > > you are asserting is that RFCs containing YANG models
> > > > > > > > > containing the
> > > > > > >
> > > > > > > > > rpc-stmt have traditionally document the
> > > > > > > > > mandatory-to-implement
> > > > > > >
> > > > > > > > > "error-tag" field within the model.  And presumably you
> > > > > > > > > are concerned
> > > > > > >
> > > > > > > > > that developers should not have to look elsewhere for thi=
s
> > > > > > >
> > > > > > > > > information.
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > I think that maybe there are two separate issues here.
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > The first issue is that for each error identity defined,
> > > > > > > > there needs to be a
> > > > > > >
> > > > > > > > mapping to the protocol-specific error handling.  Andy
> > > > > > > > suggests that this info is
> > > > > > >
> > > > > > > > added to this document, but currently this information is
> > > > > > > > available in the
> > > > > > >
> > > > > > > > protcol-mapping documents (netconf-notif and restconf-notif=
).
> > > > > > > > Personally, I
> > > > > > >
> > > > > > > > think that the current split of text between documents is
> fine.
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > The second issue is that currently, both netconf-notif and
> > > > > > > > restconf-notif say
> > > > > > >
> > > > > > > > that *all* these errors use the error-tag "operation-failed=
".
> > > > > > > > Essentially it means
> > > > > > >
> > > > > > > > that we bypass the error handling in the protocols.  As And=
y
> > > > > > > > points out below,
> > > > > > >
> > > > > > > > the error "insufficient-resources" should be mapped to
> > > > > > > > "resource-denied" in
> > > > > > >
> > > > > > > > NETCONF and RESTCONF (they mean the same thing).  So it
> > > > > > > > might make sense
> > > > > > >
> > > > > > > > to carefully go through the list of errors and map them to
> > > > > > > > the correct error-tag
> > > > > > >
> > > > > > > > (but specifiy this in the transport drafts).
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > I am completely good with this.   Does this work for you Andy=
?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > This is better.
> > > > > > >
> > > > > > > I'm glad no other drafts are creating their own error
> > > > > > > reporting system for
> > > > > > each rpc-stmt.
> > > > > > >
> > > > > > > This is a bad precedent and likely to be skipped in
> implementations.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Eric
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > /martin
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Andy
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > If the YANG doctors require this, it can be inserted.  A
> > > > > > > > > similar text
> > > > > > >
> > > > > > > > > change would be needed for quite a few error identities
> > > > > > > > > within YANG
> > > > > > >
> > > > > > > > > Push.  Personally I don=E2=80=99t like that YANG models s=
hould be
> > > > > > > > > required to
> > > > > > >
> > > > > > > > > embed this information.  But I will make the change if yo=
u
> > > > > > > > > really want
> > > > > > >
> > > > > > > > > this, and nobody else objects.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Other than that, I am not aware of any other open issues
> > > > > > > > > in the YANG
> > > > > > >
> > > > > > > > > Doctor review.  Do you know of anything else?
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Eric
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > From: Andy Bierman, January 21, 2019 2:26 PM
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Hi,
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > I think the error-tag issue can be resolved by including =
1
> > > > > > > > > extra
> > > > > > >
> > > > > > > > > sentence in each error identity.
> > > > > > >
> > > > > > > > > I know this is NETCONF and RESTCONF centric but those are
> > > > > > > > > the only
> > > > > > > > > 2
> > > > > > >
> > > > > > > > > standard protocols supported for the YANG language right
> now.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >        If the 'error-tag' field is used in error
> > > > > > > > > reporting,
> > > > > > >
> > > > > > > > >        then the value '<correct error-tag>' MUST be used.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > For example:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > OLD:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >   identity insufficient-resources {
> > > > > > >
> > > > > > > > >     base establish-subscription-error;
> > > > > > >
> > > > > > > > >     base modify-subscription-error;
> > > > > > >
> > > > > > > > >     base subscription-suspended-reason;
> > > > > > >
> > > > > > > > >     description
> > > > > > >
> > > > > > > > >       "The publisher has insufficient resources to suppor=
t
> > > > > > > > > the
> > > > > > >
> > > > > > > > >        requested subscription.  An example might be that
> > > > > > > > > allocated CPU
> > > > > > >
> > > > > > > > >        is too limited to generate the desired set of
> > > > > > > > > notification
> > > > > > >
> > > > > > > > >        messages.";
> > > > > > >
> > > > > > > > >   }
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > NEW:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >   identity insufficient-resources {
> > > > > > >
> > > > > > > > >     base establish-subscription-error;
> > > > > > >
> > > > > > > > >     base modify-subscription-error;
> > > > > > >
> > > > > > > > >     base subscription-suspended-reason;
> > > > > > >
> > > > > > > > >     description
> > > > > > >
> > > > > > > > >       "The publisher has insufficient resources to suppor=
t
> > > > > > > > > the
> > > > > > >
> > > > > > > > >        requested subscription.  An example might be that
> > > > > > > > > allocated CPU
> > > > > > >
> > > > > > > > >        is too limited to generate the desired set of
> > > > > > > > > notification
> > > > > > >
> > > > > > > > >        messages. If the 'error-tag' field is used in erro=
r
> > > > > > > > > reporting,
> > > > > > >
> > > > > > > > >        then the value 'resource-denied' MUST be used.";
> > > > > > >
> > > > > > > > >   }
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Andy
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > On Fri, Jan 18, 2019 at 11:53 AM Eric Voit (evoit)
> > > > > > >
> > > > > > > > > <mailto:evoit@cisco.com<mailto:mailto:evoit@cisco.com>>
> wrote:
> > > > > > >
> > > > > > > > > Hi Andy,
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Thanks.  I have incorporated items where there was
> agreement.
> > > > > > > > > I have
> > > > > > >
> > > > > > > > > removed the items below where you were ok.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Remaining below are the open items, with responses.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > >    Should be clear somewhere that
> > > > > > >
> > > > > > > > > > >    suspend is for CPU and other resources, and NACM
> > > > > > > > > > > not considered
> > > > > > >
> > > > > > > > > > >    to be a resource.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > If NACM is active, it needs to be followed.  The text w=
e
> > > > > > > > > > have for
> > > > > > >
> > > > > > > > > > NACM is in Section 5.4.  Do you see something else
> > > > > > > > > > specific to
> > > > > > >
> > > > > > > > > > subscription suspension needed here?  (Maybe I am not
> > > > > > > > > > getting your
> > > > > > >
> > > > > > > > > > point.)
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > No -- OK to leave NACM as terminate-if-loss-of-rights
> > > > > > > > > > (Is there an
> > > > > > >
> > > > > > > > > > error identity for this event?)
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > The identity which applies here is "stream-unavailable".
> > > > > > > > > This is the
> > > > > > >
> > > > > > > > > same identity which would be used if a subscriber had
> > > > > > > > > never sufficient
> > > > > > >
> > > > > > > > > permissions in the first place.  I don't believe we would
> > > > > > > > > want to
> > > > > > >
> > > > > > > > > return an identity specific to when NACM when permissions
> > > > > > > > > have just
> > > > > > >
> > > > > > > > > been changed.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > > I3) sec 2.1 para 6:
> > > > > > >
> > > > > > > > > > >    Event records MUST NOT be delivered to a receiver
> > > > > > > > > > > in a different
> > > > > > >
> > > > > > > > > > >    order than they were placed onto an event stream.
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- does this apply to subscription-state? Think not=
,
> > > > > > > > > > > they are not events
> > > > > > >
> > > > > > > > > > >     placed in event stream.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Agree that they are not on the event stream.  So they d=
o
> > > > > > > > > > not violate
> > > > > > >
> > > > > > > > > > this requirement.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Additionally there is supporting text in "Section 2.7:
> > > > > > > > > > subscription
> > > > > > >
> > > > > > > > > > state notifications", including...
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > " Instead, they are inserted (as defined in this
> > > > > > > > > > section) within the
> > > > > > >
> > > > > > > > > > sequence of notification messages sent to a particular
> > > > > > > > > > receiver."
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >     Need to allow ended or suspended to be sent
> > > > > > >
> > > > > > > > > > >     head-of-line whenever state changes
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I am not sure that suspended should always be sent
> head-of-line.
> > > > > > >
> > > > > > > > > > Consider
> > > > > > >
> > > > > > > > > > that implementation might want to let the existing queu=
e
> > > > > > > > > > of filtered
> > > > > > >
> > > > > > > > > > event records be sent if is filter complexity causing
> > > > > > > > > > the CPU issue.
> > > > > > >
> > > > > > > > > > That could be different than if it is a bandwidth issue
> > > > > > > > > > driving the
> > > > > > >
> > > > > > > > > > suspension, and you definitely want the
> 'subscription-suspended'
> > > > > > > > > > to
> > > > > > >
> > > > > > > > > > be placed at the head of line.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > It is up to the publisher to decide when to stop sendin=
g
> > > > > > > > > > events on a
> > > > > > >
> > > > > > > > > > subscription.
> > > > > > >
> > > > > > > > > > Obviously the publisher cannot wait until the
> > > > > > > > > > subscription is idle.
> > > > > > >
> > > > > > > > > > The reason it is getting suspended is it is far from
> > > > > > > > > > idle
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > So also up to the publisher wrt/ what to do with any
> > > > > > > > > > events that
> > > > > > >
> > > > > > > > > > have not been delivered yet on a subscription.  Could
> > > > > > > > > > delete them or
> > > > > > >
> > > > > > > > > > save them for when more bandwidth available (for
> > > > > > > > > > example)
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Agree fully with this.  Is there text required in the
> draft here?
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > ...
> > > > > > >
> > > > > > > > > > Beyond that it is up to the implementation to decide if
> > > > > > > > > > some
> > > > > > >
> > > > > > > > > > un-transmitted queue of event records should be flushed
> > > > > > > > > > and
> > > > > > >
> > > > > > > > > > reprocessed based on the modification.  I do not expect
> > > > > > > > > > this would
> > > > > > >
> > > > > > > > > > popular, as a replay subscription could accomplish this
> > > > > > > > > > same
> > > > > > >
> > > > > > > > > > functional need.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Agreed that an implementation can drop at any time and
> > > > > > > > > > increment the
> > > > > > >
> > > > > > > > > > appropriate counters. It will try to to do this, but no
> > > > > > > > > > requirements
> > > > > > >
> > > > > > > > > > except maybe subscription events like 'replay-completed=
'
> > > > > > > > > > cannot be
> > > > > > >
> > > > > > > > > > dropped
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Have put a minor tweak into Section 2.7:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > [old]  subscription state change notifications cannot be
> > > > > > > > > filtered out
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > [new] subscription state change notifications cannot be
> > > > > > > > > dropped or
> > > > > > >
> > > > > > > > > filtered out
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > ...
> > > > > > >
> > > > > > > > > > Thinking more on your point, it might be worth tweaking
> > > > > > > > > > a couple
> > > > > > >
> > > > > > > > > > words to allow for head-of-line placement of
> > > > > > >
> > > > > > > > > > "subscription-suspended".
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >    "Subscribed event records queued for sending after
> > > > > > > > > > the issuance of
> > > > > > >
> > > > > > > > > >    this
> > > > > > >
> > > > > > > > > >    subscription state change notification may now be
> sent."
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Are you good with this suggested change?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Not sure -- it needs to be clear that
> > > > > > > > > > subscription-suspended is the
> > > > > > >
> > > > > > > > > > last event sent before suspending and
> > > > > > > > > > subscription-resumed is the
> > > > > > >
> > > > > > > > > > first event sent after transition from suspended to
> active.
> > > > > > >
> > > > > > > > > > The next event could also be subscription-terminated.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > I do think this possibility is covered in the text.  For
> > > > > > > > > Section
> > > > > > > > > 2.7.4
> > > > > > >
> > > > > > > > > subscription-suspended the current text is:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > "No further notification will be sent until the
> > > > > > > > > subscription resumes
> > > > > > >
> > > > > > > > > or is terminated."
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > And Section 2.7.5 subscription-resumed says":
> > > > > > >
> > > > > > > > > "Subscribed event records generated after the issuance of
> > > > > > > > > this
> > > > > > >
> > > > > > > > > subscription state change notification may now be sent."
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Based on the discussion, I can make it:
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > "Subscribed event records are again permitted to be sent
> > > > > > > > > following
> > > > > > >
> > > > > > > > > this subscription state change notification."
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Is this sufficient for you?
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > ...
> > > > > > >
> > > > > > > > > > > I4) sec 2.4.6: RPC Failures
> > > > > > >
> > > > > > > > > > >   -- concern about a subscription-specific error
> > > > > > > > > > > reporting system
> > > > > > >
> > > > > > > > > > >      must make sure protocol error reporting system i=
s
> > > > > > > > > > > used
> > > > > > >
> > > > > > > > > > > correctly
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Yes.  We have done our best to integrate with the
> > > > > > > > > > embedded NETCONF
> > > > > > >
> > > > > > > > > > and RESTCONF mechanisms.  There is much additional
> > > > > > > > > > information in
> > > > > > >
> > > > > > > > > > the transport drafts here.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- The error-tag value needs to be identified for
> each
> > > > > > > > > > >   -- 'reason'
> > > > > > >
> > > > > > > > > > > identity
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > This is done in the transport drafts.  E.g., see
> > > > > > >
> > > > > > > > > > draft-ietf-netconf-netconf-event-
> > > > > > >
> > > > > > > > > > notifications Section 7
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I do not agree this is a good idea.
> > > > > > >
> > > > > > > > > > Each error identity should simply state the required
> "error-tag"
> > > > > > >
> > > > > > > > > > that is associated with the error.  This is expected of
> > > > > > > > > > protocol
> > > > > > >
> > > > > > > > > > operations that are added to NETCONF and RESTCONF.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > In draft-ietf-netconf-netconf-event-notifications, sectio=
n
> > > > > > > > > 7, the
> > > > > > >
> > > > > > > > > required "error-tag" is identified as "operation-failed".
> > > > > > > > > If we
> > > > > > >
> > > > > > > > > instead placed that "error-tag" information in the YANG
> > > > > > > > > model, then we
> > > > > > >
> > > > > > > > > have tied the YANG model to the RESTCONF and NETCONF
> > transports.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > Both NETCONF and RESTCONF use a compatible error
> > > > > > > > > > reporting data
> > > > > > >
> > > > > > > > > > structure.
> > > > > > >
> > > > > > > > > > The "error-tag" is used in both of them.  IMO client
> > > > > > > > > > developers do
> > > > > > >
> > > > > > > > > > not want a different set of error codes for the same
> > > > > > > > > > error conditions.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > draft-ietf-netconf-restconf-notif Section 3.3 also
> > > > > > > > > requires an
> > > > > > >
> > > > > > > > > "error-tag" node of "operation-failed".  So we used the
> > > > > > > > > transport
> > > > > > >
> > > > > > > > > drafts rather than the YANG model to support the same
> > > > > > > > > error codes for
> > > > > > >
> > > > > > > > > the same error conditions.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > I agree that transport drafts could define their own
> > > > > > > > > > error
> > > > > > >
> > > > > > > > > > identities, which would document the expected error-tag
> there.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >    2.  "modify-subscription-stream-error-info": This
> > > > > > > > > > > MUST be returned
> > > > > > >
> > > > > > > > > > >        with the leaf "reason" populated if an RPC
> > > > > > > > > > > error reason has not
> > > > > > >
> > > > > > > > > > >        been placed elsewhere within the transport
> > > > > > > > > > > portion of a failed
> > > > > > >
> > > > > > > > > > >        "modify-subscription" RPC response.  This MUST
> > > > > > > > > > > be sent if
> > > > > > >
> > > > > > > > > > > hints
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- all 3 paragraphs like this; unclear what "placed
> > > > > > > > > > >   -- elsewhere"
> > > > > > >
> > > > > > > > > > >       text means; not appropriate for MUST;
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Instead of "placed elsewhere", how about: "placed in
> > > > > > > > > > subscription
> > > > > > >
> > > > > > > > > > transport document defined object".  Would this be
> sufficient?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > No -- NETCONF and RESTCONF have well-defined error
> reporting.
> > > > > > >
> > > > > > > > > > The server requirements for this error reporting must b=
e
> > > > documented.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I agree with the following approach:
> > > > > > >
> > > > > > > > > >   - each operation MUST identify the error-tags that ar=
e
> > > > > > > > > > expected for
> > > > > > >
> > > > > > > > > >     various error conditions (such s is done in RFC
> > > > > > > > > > 6241)
> > > > > > >
> > > > > > > > > >   - the server MUST return the specified error-tags. If
> > > > > > > > > > a condition not
> > > > > > >
> > > > > > > > > >   - explicitly
> > > > > > >
> > > > > > > > > >     defined then the server MUST pick the appropriate
> > > > > > > > > > error-tag from RFC
> > > > > > >
> > > > > > > > > >     6241
> > > > > > >
> > > > > > > > > >  - the server MAY include the specified rc:yang-data in
> > > > > > > > > > the
> > > > > > >
> > > > > > > > > > <error-info>
> > > > > > >
> > > > > > > > > >  - data
> > > > > > >
> > > > > > > > > > structure
> > > > > > >
> > > > > > > > > >  - the server MUST use the appropriate rc:yang-data to
> > > > > > > > > > report hints
> > > > > > >
> > > > > > > > > >  - for protocols other than NETCONF and RESTCONF, they
> > > > > > > > > > can map
> > > > > > >
> > > > > > > > > > error-tag
> > > > > > >
> > > > > > > > > >  - or
> > > > > > >
> > > > > > > > > > ignore it,
> > > > > > >
> > > > > > > > > >    but the document defining the protocol operation MUS=
T
> > > > > > > > > > provide
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Functionally, everything you ask for is fully covered whe=
n
> > > > > > > > > you include
> > > > > > >
> > > > > > > > > consider draft-ietf-netconf-netconf-event-notifications
> > > > > > > > > (section
> > > > > > > > > 7)
> > > > > > >
> > > > > > > > > and draft-ietf-netconf-restconf-notif (section 3.3).
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > My read of the issue is that you believe "error-tag" must
> > > > > > > > > be specified
> > > > > > >
> > > > > > > > > in the YANG model.  I believe that "error-tag" shouldn't
> > > > > > > > > be in the
> > > > > > >
> > > > > > > > > YANG model because that would tie the model to a transpor=
t
> type.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Any thoughts on how we might close this?  If absolutely
> > > > > > > > > required I
> > > > > > >
> > > > > > > > > could place a new comment line in the YANG model under
> > > > > > >
> > > > > > > > > /* Identities for RPC and Notification errors */
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > The comment would be something like:
> > > > > > >
> > > > > > > > > /* When used with NETCONF and RESTCONF RPCs:
> > > > > > >
> > > > > > > > >     "error-type" node to be used is "application"
> > > > > > >
> > > > > > > > >      "error-tag" must be "operation-failed".  */
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > This seems incongruous.  Just throwing it out as a
> suggestion.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > In any case, the -v21 wording results from the attempte=
d
> > > > > > > > > > balancing
> > > > > > >
> > > > > > > > > > the WG requests for:
> > > > > > >
> > > > > > > > > > * merging with transport protocol error mechanisms
> > > > > > >
> > > > > > > > > > * WG leadership guidance to provide requirements for
> > > > > > > > > > transport
> > > > > > >
> > > > > > > > > > documents
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >      Only 3 fields seem
> > > > > > >
> > > > > > > > > > >       to be relevant (error-tag, error-app-tag,
> error-info).
> > > > > > >
> > > > > > > > > > >       Protcol operations are expected to document
> > > > > > > > > > > server requirements
> > > > > > >
> > > > > > > > > > >       for these 3 fields, if applicable.  Only the
> > > > > > > > > > > error-tag
> > > > > > >
> > > > > > > > > > >       is mandatory-to-use.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Hopefully these are covered sufficiently when this
> > > > > > > > > > document is
> > > > > > >
> > > > > > > > > > coupled with the NETCONF and RESTCONF Notif transport
> > > > documents.
> > > > > > >
> > > > > > > > > > For other transports, the tags you identify about would
> > > > > > > > > > not be
> > > > > > >
> > > > > > > > > > applicable.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- the error assignments are extremely specific.
> > > > > > > > > > > e.g., it is not
> > > > > > >
> > > > > > > > > > >      possible for <kill-subscription> to fail with an
> > > > > > >
> > > > > > > > > > >      'insufficient-resources' error;
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > This is the intent of the base specification, e.g., we
> > > > > > > > > > don't believe
> > > > > > >
> > > > > > > > > > a
> > > > > > >
> > > > > > > > > > kill-
> > > > > > >
> > > > > > > > > > subscription should fail for an insufficient-resources
> reason.
> > > > > > > > > > But
> > > > > > >
> > > > > > > > > > vendors might desire more specificity.  As a result is
> > > > > > > > > > certainly ok
> > > > > > >
> > > > > > > > > > for vendor implementations to add new error identities.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > IMO anything can fail for insufficient resources. That
> > > > > > > > > > is very
> > > > > > >
> > > > > > > > > > implementation-
> > > > > > >
> > > > > > > > > > specific.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Instead of implementation specific I would call it
> > > > > > > > > application
> > > > > > >
> > > > > > > > > specific.  Right now we don't have a catch-all
> > > > > > > > > error-identity of
> > > > > > >
> > > > > > > > > 'other-error'.  We preferred that error conditions beyond
> > > > > > > > > the current
> > > > > > >
> > > > > > > > > ones listed could be included by vendors as needed.
> > > > > > > > > Further
> > > > > > >
> > > > > > > > > deployment experience could result in new error identitie=
s
> > > > > > > > > surfacing
> > > > > > >
> > > > > > > > > for standardization should this draft catch on.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > >      Do not agree that scoping each
> > > > > > >
> > > > > > > > > > >      identity to specific RPC operations is a good
> idea.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > This level of specificity was not the author's original
> plans.
> > > > > > > > > > Nor
> > > > > > >
> > > > > > > > > > was this level of specificity part of earlier draft
> > > > > > > > > > versions up
> > > > > > >
> > > > > > > > > > through -v08.  However members of the WG made it clear
> > > > > > > > > > that such
> > > > > > >
> > > > > > > > > > specificity was necessary for draft progression.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- how are errors in these parameters reported for
> > > > > > > > > > > configured
> > > > > > >
> > > > > > > > > > >      subscriptions when <edit-config> is the RPC that
> has the
> > > > > > > > > > >      error?
> > > > > > >
> > > > > > > > > > >      How are the yang-data structs used for
> > > > > > > > > > > edit-config or commit
> > > > > > errors?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > None of these yang-data structures are specified for us=
e
> > > > > > > > > > with
> > > > > > >
> > > > > > > > > > <edit-config> operations.  For <edit-config>, the chang=
e
> > > > > > > > > > to a
> > > > > > >
> > > > > > > > > > configured subscription would be written to the
> > > > > > > > > > datastore if it were
> > > > > > >
> > > > > > > > > > semantically valid.  At this point the subscription
> > > > > > > > > > enters the
> > > > > > >
> > > > > > > > > > [evaluate] points of Figure 8.  Issues from this point
> > > > > > > > > > out would be
> > > > > > >
> > > > > > > > > > reported with a vendor specific construct such as SYSLO=
G.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > So how are hints reported for configured subscriptions?
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > There is nothing in the specification which requires this=
.
> > > > > > > > > An
> > > > > > >
> > > > > > > > > implementation could choose to place these in some form o=
f
> > SYSLOG.
> > > > > > >
> > > > > > > > > ...
> > > > > > >
> > > > > > > > > > > I6) sec 2.5, para 3:
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >    On a receiver of a
> > > > > > >
> > > > > > > > > > >    configured subscription, support for dynamic
> > > > > > > > > > > subscriptions is
> > > > > > >
> > > > > > > > > > >    optional except where replaying missed event
> records is
> > > > > > > > > > >    required.
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- confusing because text in 1.3:
> > > > > > >
> > > > > > > > > > >      Note that there is no mixing-and-matching of
> > > > > > > > > > > dynamic and configured
> > > > > > >
> > > > > > > > > > >      operations on a single subscription.
> > > > > > > > > > > Specifically, a configured
> > > > > > >
> > > > > > > > > > >   -- clarify the receiver may have multiple
> > > > > > > > > > > subscriptions here
> > > > > > >
> > > > > > > > > > >   -- not clear what "except where replaying..." text
> > > > > > > > > > > means
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > How about the following tweak:
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > "On a receiver of a configured subscription, support fo=
r
> > > > > > > > > > dynamic
> > > > > > >
> > > > > > > > > > subscriptions is optional.  However if replaying missed
> > > > > > > > > > event
> > > > > > >
> > > > > > > > > > records is required for a configured subscription,
> > > > > > > > > > support for
> > > > > > >
> > > > > > > > > > dynamic subscription is highly recommended.  In this
> > > > > > > > > > case, a
> > > > > > >
> > > > > > > > > > separate dynamic subscription can be established to
> > > > > > > > > > retransmit the
> > > > > > >
> > > > > > > > > > missing event records."
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > OK
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Change made.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > > I7) leaf stream-xpath-filter: [multiple uses]
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >            The expression is evaluated in the
> following XPath
> > > > > > > > > > >            context:
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >              o The set of namespace declarations is
> the set of
> > > > > > > > > > >              prefix
> > > > > > >
> > > > > > > > > > >                  and namespace pairs for all YANG
> > > > > > > > > > > modules implemented
> > > > > > >
> > > > > > > > > > >                  by the server, where the prefix is
> > > > > > > > > > > the YANG module
> > > > > > >
> > > > > > > > > > >                  name and the namespace is as defined
> > > > > > > > > > > by the
> > > > > > >
> > > > > > > > > > >                  'namespace' statement in the YANG
> module.
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- This prefix processing is not done anywhere else
> > > > > > > > > > > in NETCONF
> > > > > > >
> > > > > > > > > > >      or RESTCONF.  IMO a bad precedent.  Only the XML
> > > > > > > > > > > prefixes
> > > > > > >
> > > > > > > > > > >      should be required for processing of XML encodin=
g.
> > > > > > > > > > > YANG
> > > > > > >
> > > > > > > > > > >      module prefixes are not required to be unique,
> > > > > > > > > > > unlike
> > > > > > >
> > > > > > > > > > >      the prefix mappings in XML
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > This text was proposed by Martin as a result of the
> > > > > > > > > > "xpath
> > > > > > >
> > > > > > > > > > expressions in JSON"
> > > > > > >
> > > > > > > > > > thread last October in NETMOD.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I am happy to incorporate whatever text is appropriate.
> > > > > > > > > > I was
> > > > > > >
> > > > > > > > > > hoping that the suggested text was sufficient for now.
> > > > > > > > > > Kent has
> > > > > > >
> > > > > > > > > > already incorporated this as an issue for yang-next
> > > > > > >
> > > > > > > > > > https://github.com/netmod-wg/yang-next/issues/55
> > > > > > >
> > > > > > > > > > So hopefully there is no final precedent being claimed.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I do not agree that this YANG module should define a ne=
w
> > > > > > > > > > way to
> > > > > > >
> > > > > > > > > > encode XPath into XML instance documents. This will
> > > > > > > > > > require
> > > > > > >
> > > > > > > > > > significant changes to server implementations.  YANG
> > > > > > > > > > module prefixes
> > > > > > >
> > > > > > > > > > are not even required to be unique so the set of
> > > > > > > > > > prefixes used by
> > > > > > >
> > > > > > > > > > the server in XML instance documents may be different,
> > > > > > > > > > since it must
> > > > > > >
> > > > > > > > > > be unique.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > See next note
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- NMDA allows the same module to appear in multipl=
e
> > > > > > > > > > > module-sets
> > > > > > >
> > > > > > > > > > >      and different in each datastore. This text about
> > > > > > > > > > > "implemented by
> > > > > > >
> > > > > > > > > > >      the server" does not work for NMDA
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I am happy to adopt whatever text meets YANG doctor
> approval.
> > > > > > > > > > Can
> > > > > > >
> > > > > > > > > > you suggest?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Remove all text about YANG prefixes and continue using
> > > > > > > > > > XML encoding
> > > > > > >
> > > > > > > > > > without modification
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > As a different YANG doctor has required the current text
> > > > > > > > > modification,
> > > > > > >
> > > > > > > > > I believe this is a blocker.  What is the process for YAN=
G
> > > > > > > > > model
> > > > > > >
> > > > > > > > > reviews in such a case.  I am happy to accept whatever
> here.
> > > > > > > > > Any
> > > > > > >
> > > > > > > > > suggestions on next steps?
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > ...
> > > > > > >
> > > > > > > > > > >   -- there should be an example of a configurable
> > > > > > > > > > > encoding
> > > > > > >
> > > > > > > > > > > provided
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I am happy to enhance the definition YANG model's
> > > > > > > > > > identity
> > > > > > >
> > > > > > > > > > definition of "configurable-encoding".  I could do this
> > > > > > > > > > by adding
> > > > > > >
> > > > > > > > > > the following additional text to the description: "An
> > > > > > > > > > example of a
> > > > > > >
> > > > > > > > > > configurable encoding might be a new identity such as
> > > > > > > > > > 'encode-cbor'.
> > > > > > >
> > > > > > > > > > Such an identity could use
> > > > > > >
> > > > > > > > > > 'configurable-
> > > > > > >
> > > > > > > > > > encoding' as its base.  This would allow a dynamic
> > > > > > > > > > subscription
> > > > > > >
> > > > > > > > > > encoded in JSON [RFC-8259] to request notification
> > > > > > > > > > messages be
> > > > > > >
> > > > > > > > > > encoded via CBOR [RFC- 7049].  Further details for any
> > > > > > > > > > specific
> > > > > > >
> > > > > > > > > > configurable encoding would be explored in a transport
> > > > > > > > > > document
> > > > > > >
> > > > > > > > > > based on this specification."  Does this meet your ask?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > OK
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Added
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > > I11) extension subscription-state-notification {
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >        This statement is not for use
> > > > > > >
> > > > > > > > > > >        outside of this YANG module.";
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- this text should be removed. There is no value i=
n
> > > > > > > > > > > limiting
> > > > > > >
> > > > > > > > > > >      the scope of this extension.  It prevents even
> > > > > > > > > > > this WG from
> > > > > > >
> > > > > > > > > > >      creating a module that uses the extension again.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > This was the subject of significant debate in the WG.
> > > > > > > > > > The authors
> > > > > > >
> > > > > > > > > > did not want this restriction either.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > To be allowed to progress the document, we inserted the
> > > > > > > > > > document.
> > > > > > >
> > > > > > > > > > If this really is mandatory-to-remove from a YANG docto=
r
> > > > > > >
> > > > > > > > > > point-of-view, what is the process for quick closure on
> > > > > > > > > > this issue
> > > > > > >
> > > > > > > > > > between WG leadership and the YANG doctors?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > The YANG language makes no restrictions about exporting
> > > > statements.
> > > > > > >
> > > > > > > > > > I guess I missed that debate so I will just say OK and
> > > > > > > > > > wonder what
> > > > > > >
> > > > > > > > > > problem this is supposed to solve. I guess the WG wants
> > > > > > > > > > to give YANG
> > > > > > >
> > > > > > > > > > Doctors more things to check. (This is what we called a
> > > > > > > > > > CLR in
> > > > > > >
> > > > > > > > > > SNMP-land ;-)
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Thanks.  No action taken.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > > I13)   notification subscription-started {
> > > > > > >
> > > > > > > > > > >     sn:subscription-state-notification;
> > > > > > >
> > > > > > > > > > >     if-feature "configured";
> > > > > > >
> > > > > > > > > > >     description
> > > > > > >
> > > > > > > > > > >       "This notification indicates that a subscriptio=
n
> > > > > > > > > > > has started and
> > > > > > >
> > > > > > > > > > >         notifications are beginning to be sent. This
> > > > > > > > > > > notification shall
> > > > > > >
> > > > > > > > > > >        only be sent to receivers of a subscription; i=
t
> > > > > > > > > > > does not
> > > > > > >
> > > > > > > > > > >        constitute a general-purpose notification.";
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- 2nd sentence is confusing; all notifications are
> > > > > > > > > > > sent to
> > > > > > >
> > > > > > > > > > >      receivers of a subscription. last part is
> > > > > > > > > > > redundant since
> > > > > > >
> > > > > > > > > > >      the sn:subscription-state-notification extension
> > > > > > > > > > > is used
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > There is no issue with removing this second sentence
> completely.
> > > > > > > > > > If
> > > > > > >
> > > > > > > > > > I did that, would this address your concern?
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > OK
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Done
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > > I14)   rc:yang-data
> modify-subscription-stream-error-info {
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >       leaf filter-failure-hint {
> > > > > > >
> > > > > > > > > > >         type string;
> > > > > > >
> > > > > > > > > > >           description
> > > > > > >
> > > > > > > > > > >             "Information describing where and/or why =
a
> > > > > > > > > > > provided filter
> > > > > > >
> > > > > > > > > > >              was unsupportable for a subscription.";
> > > > > > >
> > > > > > > > > > >       }
> > > > > > >
> > > > > > > > > > >
> > > > > > >
> > > > > > > > > > >   -- rpc-error already allows more precise error
> > > > > > > > > > > reporting
> > > > > > >
> > > > > > > > > > >      It uses error-tag, error-path, error-string, and
> > > > > > > > > > > error-info
> > > > > > >
> > > > > > > > > > >      extensions
> > > > > > >
> > > > > > > > > > >      to identify which parameters/conditions caused
> > > > > > > > > > > the RPC to be
> > > > > > >
> > > > > > > > > > >      rejected.
> > > > > > >
> > > > > > > > > > >      This error reporting will continue to be used,
> > > > > > > > > > > Not sure this
> > > > > > >
> > > > > > > > > > >      failure-hint
> > > > > > >
> > > > > > > > > > >      has any standards value. Perhaps real-use exampl=
e
> > > > > > > > > > > can be
> > > > > > >
> > > > > > > > > > > added
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > Per your thoughts on rpc-error...  For NETCONF and
> > > > > > > > > > RESTCONF, you
> > > > > > >
> > > > > > > > > > point to error structures which historically been used
> > > > > > > > > > with those
> > > > > > >
> > > > > > > > > > transports.
> > > > > > >
> > > > > > > > > > Of course
> > > > > > >
> > > > > > > > > > we were looking to have all subscription hints
> > > > > > > > > > supportable across
> > > > > > >
> > > > > > > > > > transports via a single portable YANG data structure.
> > > > > > > > > > So the value
> > > > > > >
> > > > > > > > > > is that a single string object exists so to transport
> > > > > > > > > > whatever the
> > > > > > >
> > > > > > > > > > vendor thinks would be useful as a hint in this case.
> > > > > > > > > > I.e., there
> > > > > > >
> > > > > > > > > > has been no attempt to standardize the contents of this
> string.
> > > > > > > > > > If
> > > > > > >
> > > > > > > > > > operational experiences drive a desire for such
> > > > > > > > > > structuring, this
> > > > > > >
> > > > > > > > > > could provide the basis for a new draft building off of
> > > > > > > > > > this
> > > > > > >
> > > > > > > > > > starting point.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I guess I do not consider NETCONF and RESTCONF
> > > > > > > > > > "historic" quite
> > > > yet.
> > > > > > >
> > > > > > > > > > There are many implementations using the rpc-error
> > > > > > > > > > reporting with no
> > > > > > >
> > > > > > > > > > intent to replace it with something else.
> > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > > > > > > > I was just asking for an example, since I have no idea
> > > > > > > > > > what an
> > > > > > >
> > > > > > > > > > implementor would put in this leaf.
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Here is an example from our implementation.  Say you
> > > > > > > > > mistype an extra
> > > > > > >
> > > > > > > > > "\" to an xpath filter:
> > > > > > >
> > > > > > > > > /if:interfaces-state/interface[name=3D"GigabitEthernet0/0=
"]/
> > > > > > > > > oper
> > > > > > > > > -sta
> > > > > > > > > tus
> > > > > > >
> > > > > > > > > As a result, the filter is passed to the publisher is:
> > > > > > >
> > > > > > > > > /if:inte\rfaces-state/interface[name=3D"GigabitEthernet0/=
0"]
> > > > > > > > > /ope
> > > > > > > > > r-st
> > > > > > > > > atus
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > What we would return in the failure-hint string is:
> > > > > > >
> > > > > > > > > Invalid expression: offset(9) in
> > > > > > >
> > > > > > > > > '/if:inte\rfaces-state/interface[name=3D"GigabitEthernet0=
/0"
> > > > > > > > > ]/oper-
> > > > status'
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > Eric
> > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > > > > > Andy
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jan 24, 2019 at 9:04 AM Eric =
Voit (evoit) &lt;<a href=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&gt; &qu=
ot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailto:evoit@cisco.com" target=3D=
"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; From: Martin Bjorklund, January 24, 2019 9:40 AM<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &quot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailto:evoit@ci=
sco.com" target=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; From: Martin Bjorklund, January 24, 2019 8:17 AM<b=
r>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &quot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailt=
o:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Andy,<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; Thanks very much for the thorough YANG Doctor=
 review.=C2=A0 I have<br>
&gt; &gt; &gt; &gt; &gt; &gt; included the<br>
&gt; &gt; &gt; &gt; &gt; agreed upon comments, and uploaded to:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-subscribed-notifications-2=
2<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; a summary of the clarifications made is at th=
e end of the document.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if there anything else needed to =
conclude the YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; doctor review of this document.<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; Also as the result of the =E2=80=98error-tag=
=E2=80=99 discussion with you and<br>
&gt; &gt; &gt; &gt; &gt; &gt; Martin, we need to perform the refinement of =
the =E2=80=98error-tag=E2=80=99<br>
&gt; &gt; &gt; &gt; &gt; &gt; mapping within both<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-netconf-event-notification=
s<br>
&gt; &gt; &gt; Section<br>
&gt; &gt; &gt; &gt; &gt; &gt; 7, and draft-ietf-netconf-restconf-notif Sect=
ion 3.3.=C2=A0 =C2=A0Directly<br>
&gt; &gt; &gt; &gt; &gt; &gt; below is some text and proposed error-tag map=
pings for those<br>
&gt; &gt; &gt; &gt; &gt; &gt; documents.<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;=C2=A0 =C2=A0 =C2=A0o=C2=A0 An &quot;error-tag=
&quot; node with the value being a string that<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 corresponds to an =
identity associated with the error.<br>
&gt; &gt; &gt; &gt; &gt; &gt; This<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;error-tag&qu=
ot; will correspond to the error identities<br>
&gt; &gt; &gt; &gt; &gt; &gt; within<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 [I-D.draft-ietf-ne=
tconf-subscribed-notifications]<br>
&gt; &gt; &gt; &gt; &gt; &gt; section<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 2.4.6 for general =
subscription errors:<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;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error=
 identity=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uses error-tag<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-----=
----------------- --------------<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0dscp-=
unavailable=C2=A0 =C2=A0 =C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But it is not clear to me when this erro=
r is actually<br>
&gt; &gt; &gt; &gt; &gt; supposed to be generated?=C2=A0 The leaf and ident=
ity have the same<br>
&gt; &gt; &gt; &gt; &gt; if-feature, so it isn&#39;t a special errro code f=
or &quot;unsupported leaf&quot;, which is<br>
&gt; good!<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Then I have to assume it is supposed to be some ki=
nd of runtime error?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes.=C2=A0 A publisher, nor the network to which is con=
nects does not<br>
&gt; &gt; &gt; &gt; have<br>
&gt; &gt; &gt; &gt; to:<br>
&gt; &gt; &gt; &gt; (a) support all DSCP values, nor<br>
&gt; &gt; &gt; &gt; (b) allow a particular value requested by a particular =
subscriber,<br>
&gt; &gt; &gt; &gt; So this condition allows a publisher to reject a reques=
t for a<br>
&gt; &gt; &gt; &gt; DSCP value where is knows the value will not be respect=
ed.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Good explanation, I wish it was part of the &quot;leaf dscp&=
quot; in the<br>
&gt; &gt; &gt; module<br>
&gt; &gt; &gt; :)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The dscp-unavailable identity doesn&#39;t add any addition v=
alue<br>
&gt; &gt; &gt; compared to the standard error.<br>
&gt; &gt;<br>
&gt; &gt; For NETCONF and RESTCONF, this is the case.<br>
&gt; <br>
&gt; And comi.=C2=A0 The point is, what makes the rpcs in this module so sp=
ecial<br>
&gt; that they have to invent a new error reporting scheme?=C2=A0 =C2=A0If =
we do that<br>
&gt; for these rpcs, why not for all other rpc in all other modules?<br>
<br>
The current RPC error mechanisms ties YANG RPCs to NETCONF and RESTCONF tra=
nsports.=C2=A0 =C2=A0Over many years there has been lots of work to align t=
he subscription drafts to these existing mechanisms, while maintaining as m=
uch transport independence for hints as possible.<br>
<br></blockquote><div><br></div><div><br></div><div>The subscription draft =
changes error reporting in significant ways, for the worse, not the better.=
</div><div>There are a set of error-tag values that are used for all protoc=
ol operations defined with rpc-stmt.</div><div>It was first defined in NETC=
ONF but it has been applied to RESTCONF as well.</div><div><br></div><div>T=
his draft uses identities to replace the set of common error-tags.=C2=A0 In=
stead, every single</div><div>rpc-stmt can have its own set of error codes.=
 Even worse, a different set of error codes</div><div>depending on the prot=
ocol that was used.</div><div><br></div><div>Why should a &#39;resource-den=
ied&#39; error be something different in RESTCONF vs. NETCONF?</div><div>Or=
 even in CoMI or some unknown protocol?=C2=A0 Why would &#39;invalid-value&=
#39; be different,</div><div>depending on the operation?=C2=A0</div><div><b=
r></div><div>It is 1 thing to change the documentation of YANG-based protoc=
ol operations.</div><div>It is another to omit mandatory information needed=
 to work with NETCONF and RESTCONF.</div><div>If the error-tag values are p=
roperly documented and the NETCONF and RESTCONF mappings are identical</div=
><div>then there should not be any problems using standard error reporting.=
</div><div><br></div><div><br></div><div>Andy</div><div><br></div><div><br>=
</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; &gt; &gt; &gt; &gt; Thinking some more, what is supposed to happen if =
the client on<br>
&gt; &gt; &gt; &gt; &gt; the same session sends first an establish-subscrip=
tion with dscp<br>
&gt; &gt; &gt; &gt; &gt; 42, and then another establish-subscription with d=
scp 10?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; This would be allowed.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On linux at least this is a sockopt, i.e., the option applie=
s to the<br>
&gt; &gt; &gt; socket, which means all packets on the session.=C2=A0 So how=
 is this<br>
&gt; &gt; &gt; supposed to be implemented if different messages on the sess=
ion<br>
&gt; &gt; &gt; should have different dscp values?<br>
&gt; &gt; &gt; Or is the<br>
&gt; &gt; &gt; idea that you send the msg, flush all data from ssh/tls to t=
cp, then<br>
&gt; &gt; &gt; flush the tcp buffers (not that easy...)?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Even if there&#39;s just one establish-subscription with a d=
scp value,<br>
&gt; &gt; &gt; since it applies to the session it means that all normal rpc=
s on<br>
&gt; &gt; &gt; this session will get the same dscp value.=C2=A0 It is not c=
lear that<br>
&gt; &gt; &gt; this is the intention?<br>
&gt; &gt;<br>
&gt; &gt; For a NETCONF session, I agree that an implementation need not tr=
y to<br>
&gt; &gt; attempt to support more than one DSCP for that session.=C2=A0 And=
 the error<br>
&gt; &gt; identity dscp-unavailable is a valid response here.<br>
&gt; <br>
&gt; Then that should be explained (preferrably in the leaf dscp).<br>
&gt; <br>
&gt; &gt; For RESTCONF and other transports, there options which can more<b=
r>
&gt; &gt; flexibly support different DSCP values.=C2=A0 This is one reason =
I was<br>
&gt; &gt; pushing hard in 2016 to leverage HTTP2.<br>
&gt; <br>
&gt; We&#39;re talking about dynamic subscriptions here.=C2=A0 I don&#39;t =
think anyone has<br>
&gt; suggested HTTP2 for dynamic subscriptions.<br>
<br>
I have always believed that HTTP2 for dynamic subscriptions was a useful in=
dustry target.=C2=A0 =C2=A0This driver was the original reason I wrote the =
original draft which became draft-ietf-netconf-restconf-notif, and many var=
iations on dynamic subscriptions with HTTP2.=C2=A0 =C2=A0 In the meantime, =
GRPC subscriptions (based on HTTP2) has grown into this space.<br>
<br>
Eric<br>
<br>
&gt; For configured subscriptions, this is not an issue, not even for NETCO=
NF.<br>
&gt; <br>
&gt; <br>
&gt; /martin<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; &gt;<br>
&gt; &gt; Eric<br>
&gt; &gt;<br>
&gt; &gt; &gt; /martin<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; The interesting part comes with bundling the event reco=
rds.=C2=A0 The<br>
&gt; &gt; &gt; &gt; initial versions of draft-ietf-netconf-notification-mes=
sages<br>
&gt; &gt; &gt; &gt; required that all event records in a bundle had a commo=
n dscp.=C2=A0 At<br>
&gt; &gt; &gt; &gt; this point, that seems overly restrictive to the marsha=
lling<br>
&gt; &gt; &gt; &gt; process, so for now that requirement is not in the docu=
ment.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0encod=
ing-unsupported=C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But this identity doesn&#39;t give more =
information than the<br>
&gt; &gt; &gt; &gt; &gt; standard<br>
&gt; &gt; &gt; &gt; &gt; error:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0error-tag: invalid-value<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0error-path: /rpc/establish-subscriptio=
n/encoding<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0filte=
r-unavailable=C2=A0 =C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; This is a &quot;subscription-terminated-reason&quo=
t;, which will never be<br>
&gt; &gt; &gt; &gt; &gt; sent in an rpc- error, and thus should not be mapp=
ed to an error-tag.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, forgot to remove those.=C2=A0 It is now out.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 filter-unsu=
pported=C2=A0 =C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But this identity doesn&#39;t give more =
information than the<br>
&gt; &gt; &gt; &gt; &gt; standard<br>
&gt; &gt; &gt; &gt; &gt; error:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0error-tag: invalid-value<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0error-path: /rpc/establish-subscriptio=
n/stream-xpath-filter<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0insuf=
ficient-resources resource-denied<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But this identity doens&#39;t give more =
information than the<br>
&gt; &gt; &gt; &gt; &gt; standard error in the case of establish-subscripti=
on and<br>
&gt; &gt; &gt; &gt; &gt; modify-subscription.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0no-su=
ch-subscription=C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But this identity doens&#39;t give more =
information than the<br>
&gt; &gt; &gt; &gt; &gt; standard error in the case of establish-subscripti=
on and<br>
&gt; &gt; &gt; &gt; &gt; modify-subscription.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0repla=
y-unsupported=C2=A0 =C2=A0 =C2=A0operation-not-supported<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But this identity doesn&#39;t give more =
information than the<br>
&gt; &gt; &gt; &gt; &gt; standard error.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0strea=
m-unavailable=C2=A0 =C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; This is a &quot;subscription-terminated-reason&quo=
t;, which will never be<br>
&gt; &gt; &gt; &gt; &gt; sent in an rpc- error, and thus should not be mapp=
ed to an error-tag.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, forgot to remove those.=C2=A0 It is now out.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0suspe=
nsion-timeout=C2=A0 =C2=A0 =C2=A0operation-failed<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; This is a &quot;subscription-terminated-reason&quo=
t;, which will never be<br>
&gt; &gt; &gt; &gt; &gt; sent in an rpc- error, and thus should not be mapp=
ed to an error-tag.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, forgot to remove those.=C2=A0 It is now out.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0unsup=
portable-volume=C2=A0 =C2=A0too-big<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; This is a &quot;subscription-terminated-reason&quo=
t;, which will never be<br>
&gt; &gt; &gt; &gt; &gt; sent in an rpc- error, and thus should not be mapp=
ed to an error-tag.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes, forgot to remove those.=C2=A0 It is now out.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 Or this &quot;erro=
r-tag&quot; will correspond to the error<br>
&gt; &gt; &gt; &gt; &gt; &gt; identities<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 within [I-D.ietf-n=
etconf-yang-push] Appendix A.1 for<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 subscription error=
s specific to YANG datastores:<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;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error=
 identity=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uses error-tag<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-----=
-----------------=C2=A0 =C2=A0 =C2=A0 --------------<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cant-=
exclude=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 operation-no=
t-supported<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0datas=
tore-not-subscribable=C2=A0 operation-not-supported<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I think that this should be invalid-value.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Ok<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; /Eric<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0no-su=
ch-subscription-resync invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok, but again the value of having this is unclear.=
<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0on-ch=
ange-unsupported=C2=A0 =C2=A0 =C2=A0 =C2=A0operation-not-supported<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0on-ch=
ange-sync-unsupported=C2=A0 operation-not-supported<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0perio=
d-unsupported=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 invalid-value<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0updat=
e-too-big=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 too-big<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sync-=
too-big=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 too-big<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uncha=
nging-selection=C2=A0 =C2=A0 =C2=A0 =C2=A0 operation-failed<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; /martin<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&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; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Do you (or anyone else in this thread) have a=
ny suggestions on<br>
&gt; &gt; &gt; &gt; &gt; &gt; the text or proposed mappings?=C2=A0 If this =
turns out to be ok,<br>
&gt; &gt; &gt; &gt; &gt; &gt; Alex will need to remove the NETCONF error-ta=
g specifics from<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-yang-push Sections 4.4.1 &=
amp; 4.4.2<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; Also Reshad will have to do some work because=
 he is the YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; doctor of<br>
&gt; &gt; &gt; &gt; &gt; netconf-netconf-event-notifications, and he will w=
ant to include<br>
&gt; &gt; &gt; &gt; &gt; the same information within draft-ietf-netconf-res=
tconf-notif.<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; Thanks,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Eric<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; &gt; From: Andy Bierman &lt;<a href=3D"mailto:andy=
@yumaworks.com" target=3D"_blank">andy@yumaworks.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Sent: Wednesday, January 23, 2019 12:42 PM<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; To: Eric Voit (evoit) &lt;<a href=3D"mailto:e=
voit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cc: Martin Bjorklund &lt;<a href=3D"mailto:mb=
j@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;; <a href=3D"mailto:y=
ang-doctors@ietf.org" target=3D"_blank">yang-doctors@ietf.org</a>;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:netconf@ietf.org" target=3D=
"_blank">netconf@ietf.org</a>;<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:draft-ietf-netconf-subscrib=
ed-notifications.all@ietf.org" target=3D"_blank">draft-ietf-netconf-subscri=
bed-notifications.all@ietf.org</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Subject: Re: [yang-doctors] Yangdoctors last =
call review of<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-subscribed-notifications-2=
1<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; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Wed, Jan 23, 2019 at 4:35 AM Eric Voit (ev=
oit)<br>
&gt; &gt; &gt; &gt; &gt; &gt; &lt;mailto:<a href=3D"mailto:evoit@cisco.com"=
 target=3D"_blank">evoit@cisco.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; From: Martin Bjorklund, January 23, 2019=
 3:32 AM<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;Eric Voit (evoit)&quot; &lt;mailto=
:<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&g=
t; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Andy,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Looking at your proposal...=C2=A0 M=
y reading is that it takes<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the transport<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specific error info contained in<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-netconf-event-no=
tifications section 7,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and then<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; replicates that info within 12 sepa=
rate description<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; objects of the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transport independent ietf-subscrib=
ed-notifications.yang.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The value<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; you are asserting is that RFCs cont=
aining YANG models<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; containing the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; rpc-stmt have traditionally documen=
t the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; mandatory-to-implement<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;error-tag&quot; field within =
the model.=C2=A0 And presumably you<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; are concerned<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; that developers should not have to =
look elsewhere for this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; information.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; I think that maybe there are two separat=
e issues here.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; The first issue is that for each error i=
dentity defined,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; there needs to be a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; mapping to the protocol-specific error h=
andling.=C2=A0 Andy<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; suggests that this info is<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; added to this document, but currently th=
is information is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; available in the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; protcol-mapping documents (netconf-notif=
 and restconf-notif).<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Personally, I<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; think that the current split of text bet=
ween documents is fine.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; The second issue is that currently, both=
 netconf-notif and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; restconf-notif say<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; that *all* these errors use the error-ta=
g &quot;operation-failed&quot;.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Essentially it means<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; that we bypass the error handling in the=
 protocols.=C2=A0 As Andy<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; points out below,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; the error &quot;insufficient-resources&q=
uot; should be mapped to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;resource-denied&quot; in<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; NETCONF and RESTCONF (they mean the same=
 thing).=C2=A0 So it<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; might make sense<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; to carefully go through the list of erro=
rs and map them to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; the correct error-tag<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; (but specifiy this in the transport draf=
ts).<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; I am completely good with this.=C2=A0 =C2=A0D=
oes this work for you Andy?<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; This is better.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I&#39;m glad no other drafts are creating the=
ir own error<br>
&gt; &gt; &gt; &gt; &gt; &gt; reporting system for<br>
&gt; &gt; &gt; &gt; &gt; each rpc-stmt.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; This is a bad precedent and likely to be skip=
ped in implementations.<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; Eric<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; &gt; /martin<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &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; Andy<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; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If the YANG doctors require this, i=
t can be inserted.=C2=A0 A<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; similar text<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; change would be needed for quite a =
few error identities<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; within YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Push.=C2=A0 Personally I don=E2=80=
=99t like that YANG models should be<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; required to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; embed this information.=C2=A0 But I=
 will make the change if you<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; really want<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this, and nobody else objects.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Other than that, I am not aware of =
any other open issues<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; in the YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Doctor review.=C2=A0 Do you know of=
 anything else?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Eric<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; From: Andy Bierman, January 21, 201=
9 2:26 PM<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I think the error-tag issue can be =
resolved by including 1<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; extra<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; sentence in each error identity.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I know this is NETCONF and RESTCONF=
 centric but those are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the only<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; standard protocols supported for th=
e YANG language right now.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 If the &=
#39;error-tag&#39; field is used in error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 then the=
 value &#39;&lt;correct error-tag&gt;&#39; MUST be used.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; For example:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; OLD:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0identity insufficient-r=
esources {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base establish-s=
ubscription-error;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base modify-subs=
cription-error;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base subscriptio=
n-suspended-reason;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;The=
 publisher has insufficient resources to support<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 requeste=
d subscription.=C2=A0 An example might be that<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; allocated CPU<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 is too l=
imited to generate the desired set of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; notification<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 messages=
.&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; NEW:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0identity insufficient-r=
esources {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base establish-s=
ubscription-error;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base modify-subs=
cription-error;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0base subscriptio=
n-suspended-reason;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0description<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;The=
 publisher has insufficient resources to support<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 requeste=
d subscription.=C2=A0 An example might be that<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; allocated CPU<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 is too l=
imited to generate the desired set of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; notification<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 messages=
. If the &#39;error-tag&#39; field is used in error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 then the=
 value &#39;resource-denied&#39; MUST be used.&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Andy<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Fri, Jan 18, 2019 at 11:53 AM Er=
ic Voit (evoit)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;mailto:<a href=3D"mailto:evoit@=
cisco.com" target=3D"_blank">evoit@cisco.com</a>&lt;mailto:<a href=3D"mailt=
o:mailto" target=3D"_blank">mailto</a>:<a href=3D"mailto:evoit@cisco.com" t=
arget=3D"_blank">evoit@cisco.com</a>&gt;&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Andy,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks.=C2=A0 I have incorporated i=
tems where there was agreement.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; removed the items below where you w=
ere ok.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Remaining below are the open items,=
 with responses.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 Should be cl=
ear somewhere that<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 suspend is f=
or CPU and other resources, and NACM<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; not considered<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 to be a reso=
urce.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If NACM is active, it needs to=
 be followed.=C2=A0 The text we<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; have for<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; NACM is in Section 5.4.=C2=A0 =
Do you see something else<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specific to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription suspension needed=
 here?=C2=A0 (Maybe I am not<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; getting your<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; point.)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; No -- OK to leave NACM as term=
inate-if-loss-of-rights<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; (Is there an<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error identity for this event?=
)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The identity which applies here is =
&quot;stream-unavailable&quot;.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This is the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; same identity which would be used i=
f a subscriber had<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; never sufficient<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; permissions in the first place.=C2=
=A0 I don&#39;t believe we would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; want to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; return an identity specific to when=
 NACM when permissions<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; have just<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; been changed.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I3) sec 2.1 para 6:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 Event record=
s MUST NOT be delivered to a receiver<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; in a different<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 order than t=
hey were placed onto an event stream.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- does this =
apply to subscription-state? Think not,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; they are not events<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0placed=
 in event stream.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Agree that they are not on the=
 event stream.=C2=A0 So they do<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; not violate<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this requirement.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Additionally there is supporti=
ng text in &quot;Section 2.7:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; state notifications&quot;, inc=
luding...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot; Instead, they are inser=
ted (as defined in this<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; section) within the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; sequence of notification messa=
ges sent to a particular<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; receiver.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0Need t=
o allow ended or suspended to be sent<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0head-o=
f-line whenever state changes<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am not sure that suspended s=
hould always be sent head-of-line.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Consider<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; that implementation might want=
 to let the existing queue<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; of filtered<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; event records be sent if is fi=
lter complexity causing<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the CPU issue.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; That could be different than i=
f it is a bandwidth issue<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; driving the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; suspension, and you definitely=
 want the &#39;subscription-suspended&#39;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be placed at the head of line.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; It is up to the publisher to d=
ecide when to stop sending<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; events on a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Obviously the publisher cannot=
 wait until the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription is idle.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The reason it is getting suspe=
nded is it is far from<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; idle<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; So also up to the publisher wr=
t/ what to do with any<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; events that<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; have not been delivered yet on=
 a subscription.=C2=A0 Could<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; delete them or<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; save them for when more bandwi=
dth available (for<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; example)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Agree fully with this.=C2=A0 Is the=
re text required in the draft here?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Beyond that it is up to the im=
plementation to decide if<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; some<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; un-transmitted queue of event =
records should be flushed<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reprocessed based on the modif=
ication.=C2=A0 I do not expect<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this would<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; popular, as a replay subscript=
ion could accomplish this<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; same<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; functional need.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Agreed that an implementation =
can drop at any time and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; increment the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; appropriate counters. It will =
try to to do this, but no<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; requirements<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; except maybe subscription even=
ts like &#39;replay-completed&#39;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; cannot be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; dropped<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Have put a minor tweak into Section=
 2.7:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; [old]=C2=A0 subscription state chan=
ge notifications cannot be<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; filtered out<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; [new] subscription state change not=
ifications cannot be<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; dropped or<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; filtered out<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thinking more on your point, i=
t might be worth tweaking<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; a couple<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; words to allow for head-of-lin=
e placement of<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;subscription-suspended&q=
uot;.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 &quot;Subscribed =
event records queued for sending after<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the issuance of<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 subscription stat=
e change notification may now be sent.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Are you good with this suggest=
ed change?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Not sure -- it needs to be cle=
ar that<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription-suspended is the<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; last event sent before suspend=
ing and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription-resumed is the<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; first event sent after transit=
ion from suspended to active.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The next event could also be s=
ubscription-terminated.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I do think this possibility is cove=
red in the text.=C2=A0 For<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Section<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2.7.4<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription-suspended the current =
text is:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;No further notification will =
be sent until the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription resumes<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; or is terminated.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; And Section 2.7.5 subscription-resu=
med says&quot;:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;Subscribed event records gene=
rated after the issuance of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription state change notificat=
ion may now be sent.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Based on the discussion, I can make=
 it:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;Subscribed event records are =
again permitted to be sent<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; following<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this subscription state change noti=
fication.&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Is this sufficient for you?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I4) sec 2.4.6: RPC Failur=
es<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- concern ab=
out a subscription-specific error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting system<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 must =
make sure protocol error reporting system is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; used<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; correctly<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Yes.=C2=A0 We have done our be=
st to integrate with the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; embedded NETCONF<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and RESTCONF mechanisms.=C2=A0=
 There is much additional<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; information in<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the transport drafts here.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- The error-=
tag value needs to be identified for each<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- &#39;reaso=
n&#39;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; identity<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This is done in the transport =
drafts.=C2=A0 E.g., see<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-netconf-eve=
nt-<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; notifications Section 7<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I do not agree this is a good =
idea.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Each error identity should sim=
ply state the required &quot;error-tag&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; that is associated with the er=
ror.=C2=A0 This is expected of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; protocol<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; operations that are added to N=
ETCONF and RESTCONF.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; In draft-ietf-netconf-netconf-event=
-notifications, section<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 7, the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; required &quot;error-tag&quot; is i=
dentified as &quot;operation-failed&quot;.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If we<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; instead placed that &quot;error-tag=
&quot; information in the YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; model, then we<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; have tied the YANG model to the RES=
TCONF and NETCONF<br>
&gt; transports.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Both NETCONF and RESTCONF use =
a compatible error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting data<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; structure.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;error-tag&quot; is u=
sed in both of them.=C2=A0 IMO client<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; developers do<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; not want a different set of er=
ror codes for the same<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error conditions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-restconf-notif S=
ection 3.3 also<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; requires an<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;error-tag&quot; node of &quot=
;operation-failed&quot;.=C2=A0 So we used the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transport<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; drafts rather than the YANG model t=
o support the same<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error codes for<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the same error conditions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I agree that transport drafts =
could define their own<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; identities, which would docume=
nt the expected error-tag there.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 2.=C2=A0 &qu=
ot;modify-subscription-stream-error-info&quot;: This<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; MUST be returned<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 with the leaf &quot;reason&quot; populated if an RPC<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error reason has not<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 been placed elsewhere within the transport<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; portion of a failed<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 &quot;modify-subscription&quot; RPC response.=C2=A0 This MUST<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be sent if<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; hints<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- all 3 para=
graphs like this; unclear what &quot;placed<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- elsewhere&=
quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0text means; not appropriate for MUST;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Instead of &quot;placed elsewh=
ere&quot;, how about: &quot;placed in<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transport document defined obj=
ect&quot;.=C2=A0 Would this be sufficient?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; No -- NETCONF and RESTCONF hav=
e well-defined error reporting.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The server requirements for th=
is error reporting must be<br>
&gt; &gt; &gt; documented.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I agree with the following app=
roach:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0- each operation M=
UST identify the error-tags that are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; expected for<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0various err=
or conditions (such s is done in RFC<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 6241)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0- the server MUST =
return the specified error-tags. If<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; a condition not<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0- explicitly<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0defined the=
n the server MUST pick the appropriate<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error-tag from RFC<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A06241<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 - the server MAY include=
 the specified rc:yang-data in<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;error-info&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 - data<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; structure<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 - the server MUST use th=
e appropriate rc:yang-data to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; report hints<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 - for protocols other th=
an NETCONF and RESTCONF, they<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; can map<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error-tag<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 - or<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ignore it,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 but the document =
defining the protocol operation MUST<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; provide<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Functionally, everything you ask fo=
r is fully covered when<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; you include<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; consider draft-ietf-netconf-netconf=
-event-notifications<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; (section<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 7)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; and draft-ietf-netconf-restconf-not=
if (section 3.3).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; My read of the issue is that you be=
lieve &quot;error-tag&quot; must<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be specified<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; in the YANG model.=C2=A0 I believe =
that &quot;error-tag&quot; shouldn&#39;t<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be in the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; YANG model because that would tie t=
he model to a transport type.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Any thoughts on how we might close =
this?=C2=A0 If absolutely<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; required I<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; could place a new comment line in t=
he YANG model under<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; /* Identities for RPC and Notificat=
ion errors */<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The comment would be something like=
:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; /* When used with NETCONF and RESTC=
ONF RPCs:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0&quot;error-type=
&quot; node to be used is &quot;application&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 &quot;error-tag=
&quot; must be &quot;operation-failed&quot;.=C2=A0 */<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This seems incongruous.=C2=A0 Just =
throwing it out as a suggestion.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; In any case, the -v21 wording =
results from the attempted<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; balancing<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the WG requests for:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; * merging with transport proto=
col error mechanisms<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; * WG leadership guidance to pr=
ovide requirements for<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transport<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; documents<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Only =
3 fields seem<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0to be relevant (error-tag, error-app-tag, error-info).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0Protcol operations are expected to document<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; server requirements<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0for these 3 fields, if applicable.=C2=A0 Only the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error-tag<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0is mandatory-to-use.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hopefully these are covered su=
fficiently when this<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; document is<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; coupled with the NETCONF and R=
ESTCONF Notif transport<br>
&gt; &gt; &gt; documents.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; For other transports, the tags=
 you identify about would<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; not be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; applicable.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- the error =
assignments are extremely specific.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; e.g., it is not<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 possi=
ble for &lt;kill-subscription&gt; to fail with an<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 &#39;=
insufficient-resources&#39; error;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This is the intent of the base=
 specification, e.g., we<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; don&#39;t believe<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; kill-<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription should fail for a=
n insufficient-resources reason.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; But<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; vendors might desire more spec=
ificity.=C2=A0 As a result is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; certainly ok<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; for vendor implementations to =
add new error identities.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; IMO anything can fail for insu=
fficient resources. That<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; is very<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; implementation-<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specific.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Instead of implementation specific =
I would call it<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; application<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specific.=C2=A0 Right now we don&#3=
9;t have a catch-all<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error-identity of<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &#39;other-error&#39;.=C2=A0 We pre=
ferred that error conditions beyond<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the current<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ones listed could be included by ve=
ndors as needed.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Further<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; deployment experience could result =
in new error identities<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; surfacing<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; for standardization should this dra=
ft catch on.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Do no=
t agree that scoping each<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 ident=
ity to specific RPC operations is a good idea.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This level of specificity was =
not the author&#39;s original plans.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Nor<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; was this level of specificity =
part of earlier draft<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; versions up<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; through -v08.=C2=A0 However me=
mbers of the WG made it clear<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; that such<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specificity was necessary for =
draft progression.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- how are er=
rors in these parameters reported for<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; configured<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 subsc=
riptions when &lt;edit-config&gt; is the RPC that has the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 error=
?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 How a=
re the yang-data structs used for<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; edit-config or commit<br>
&gt; &gt; &gt; &gt; &gt; errors?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; None of these yang-data struct=
ures are specified for use<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; with<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;edit-config&gt; operations=
.=C2=A0 For &lt;edit-config&gt;, the change<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; to a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; configured subscription would =
be written to the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; datastore if it were<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; semantically valid.=C2=A0 At t=
his point the subscription<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; enters the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; [evaluate] points of Figure 8.=
=C2=A0 Issues from this point<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; out would be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reported with a vendor specifi=
c construct such as SYSLOG.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; So how are hints reported for =
configured subscriptions?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; There is nothing in the specificati=
on which requires this.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; An<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; implementation could choose to plac=
e these in some form of<br>
&gt; SYSLOG.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I6) sec 2.5, para 3:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 On a receive=
r of a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 configured s=
ubscription, support for dynamic<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscriptions is<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 optional exc=
ept where replaying missed event records is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 required.<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- confusing =
because text in 1.3:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 Note =
that there is no mixing-and-matching of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; dynamic and configured<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 opera=
tions on a single subscription.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Specifically, a configure=
d<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- clarify th=
e receiver may have multiple<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscriptions here<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- not clear =
what &quot;except where replaying...&quot; text<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; means<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; How about the following tweak:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;On a receiver of a confi=
gured subscription, support for<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; dynamic<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscriptions is optional.=C2=
=A0 However if replaying missed<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; event<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; records is required for a conf=
igured subscription,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; support for<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; dynamic subscription is highly=
 recommended.=C2=A0 In this<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; case, a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; separate dynamic subscription =
can be established to<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; retransmit the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; missing event records.&quot;<b=
r>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; OK<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Change made.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I7) leaf stream-xpath-fil=
ter: [multiple uses]<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 The expression is evaluated in the following XPath<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 context:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 o The set of namespace declarations is the set of<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 prefix<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and namespace pairs for all YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; modules implemented<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by the server, where the prefix is<b=
r>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the YANG module<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name and the namespace is as defined=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; by the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &#39;namespace&#39; statement in the=
 YANG module.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- This prefi=
x processing is not done anywhere else<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; in NETCONF<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 or RE=
STCONF.=C2=A0 IMO a bad precedent.=C2=A0 Only the XML<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; prefixes<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 shoul=
d be required for processing of XML encoding.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 modul=
e prefixes are not required to be unique,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; unlike<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the p=
refix mappings in XML<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This text was proposed by Mart=
in as a result of the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;xpath<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; expressions in JSON&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; thread last October in NETMOD.=
<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am happy to incorporate what=
ever text is appropriate.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I was<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; hoping that the suggested text=
 was sufficient for now.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Kent has<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; already incorporated this as a=
n issue for yang-next<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://github.com/=
netmod-wg/yang-next/issues/55" rel=3D"noreferrer" target=3D"_blank">https:/=
/github.com/netmod-wg/yang-next/issues/55</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; So hopefully there is no final=
 precedent being claimed.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I do not agree that this YANG =
module should define a new<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; way to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; encode XPath into XML instance=
 documents. This will<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; require<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; significant changes to server =
implementations.=C2=A0 YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; module prefixes<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; are not even required to be un=
ique so the set of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; prefixes used by<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the server in XML instance doc=
uments may be different,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; since it must<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; be unique.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; See next note<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- NMDA allow=
s the same module to appear in multiple<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; module-sets<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 and d=
ifferent in each datastore. This text about<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;implemented by<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the s=
erver&quot; does not work for NMDA<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am happy to adopt whatever t=
ext meets YANG doctor approval.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Can<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; you suggest?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Remove all text about YANG pre=
fixes and continue using<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; XML encoding<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; without modification<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; As a different YANG doctor has requ=
ired the current text<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; modification,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I believe this is a blocker.=C2=A0 =
What is the process for YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; model<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reviews in such a case.=C2=A0 I am =
happy to accept whatever here.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Any<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; suggestions on next steps?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- there shou=
ld be an example of a configurable<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; encoding<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; provided<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I am happy to enhance the defi=
nition YANG model&#39;s<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; identity<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; definition of &quot;configurab=
le-encoding&quot;.=C2=A0 I could do this<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; by adding<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the following additional text =
to the description: &quot;An<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; example of a<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; configurable encoding might be=
 a new identity such as<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &#39;encode-cbor&#39;.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Such an identity could use<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &#39;configurable-<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; encoding&#39; as its base.=C2=
=A0 This would allow a dynamic<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; subscription<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; encoded in JSON [RFC-8259] to =
request notification<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; messages be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; encoded via CBOR [RFC- 7049].=
=C2=A0 Further details for any<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; specific<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; configurable encoding would be=
 explored in a transport<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; document<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; based on this specification.&q=
uot;=C2=A0 Does this meet your ask?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; OK<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Added<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I11) extension subscripti=
on-state-notification {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 This statement is not for use<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 outside of this YANG module.&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- this text =
should be removed. There is no value in<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; limiting<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the s=
cope of this extension.=C2=A0 It prevents even<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this WG from<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 creat=
ing a module that uses the extension again.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; This was the subject of signif=
icant debate in the WG.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The authors<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; did not want this restriction =
either.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; To be allowed to progress the =
document, we inserted the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; document.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If this really is mandatory-to=
-remove from a YANG doctor<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; point-of-view, what is the pro=
cess for quick closure on<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this issue<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; between WG leadership and the =
YANG doctors?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The YANG language makes no res=
trictions about exporting<br>
&gt; &gt; &gt; statements.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I guess I missed that debate s=
o I will just say OK and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; wonder what<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; problem this is supposed to so=
lve. I guess the WG wants<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; to give YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Doctors more things to check. =
(This is what we called a<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; CLR in<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; SNMP-land ;-)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks.=C2=A0 No action taken.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I13)=C2=A0 =C2=A0notifica=
tion subscription-started {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0sn:sub=
scription-state-notification;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0if-fea=
ture &quot;configured&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0descri=
ption<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0&quot;This notification indicates that a subscription<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; has started and<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0notifications are beginning to be sent. This<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; notification shall<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 only be sent to receivers of a subscription; it<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; does not<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 constitute a general-purpose notification.&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- 2nd senten=
ce is confusing; all notifications are<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; sent to<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 recei=
vers of a subscription. last part is<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; redundant since<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 the s=
n:subscription-state-notification extension<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; is used<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; There is no issue with removin=
g this second sentence completely.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I did that, would this address=
 your concern?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; OK<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Done<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I14)=C2=A0 =C2=A0rc:yang-=
data modify-subscription-stream-error-info {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0leaf filter-failure-hint {<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0type string;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0description<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0&quot;Information describing where and/or why a<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; provided filter<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 was unsupportable for a subscription.&quot;;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=
=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0-- rpc-error =
already allows more precise error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 It us=
es error-tag, error-path, error-string, and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; error-info<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 exten=
sions<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 to id=
entify which parameters/conditions caused<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; the RPC to be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 rejec=
ted.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 This =
error reporting will continue to be used,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Not sure this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 failu=
re-hint<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 has a=
ny standards value. Perhaps real-use example<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; can be<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; added<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Per your thoughts on rpc-error=
...=C2=A0 For NETCONF and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; RESTCONF, you<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; point to error structures whic=
h historically been used<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; with those<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transports.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Of course<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; we were looking to have all su=
bscription hints<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; supportable across<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; transports via a single portab=
le YANG data structure.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; So the value<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; is that a single string object=
 exists so to transport<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; whatever the<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; vendor thinks would be useful =
as a hint in this case.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I.e., there<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; has been no attempt to standar=
dize the contents of this string.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; If<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; operational experiences drive =
a desire for such<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; structuring, this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; could provide the basis for a =
new draft building off of<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; this<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; starting point.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I guess I do not consider NETC=
ONF and RESTCONF<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;historic&quot; quite<br>
&gt; &gt; &gt; yet.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; There are many implementations=
 using the rpc-error<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; reporting with no<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; intent to replace it with some=
thing else.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I was just asking for an examp=
le, since I have no idea<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; what an<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; implementor would put in this =
leaf.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Here is an example from our impleme=
ntation.=C2=A0 Say you<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; mistype an extra<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &quot;\&quot; to an xpath filter:<b=
r>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; /if:interfaces-state/interface[name=
=3D&quot;GigabitEthernet0/0&quot;]/<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; oper<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; -sta<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; tus<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; As a result, the filter is passed t=
o the publisher is:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; /if:inte\rfaces-state/interface[nam=
e=3D&quot;GigabitEthernet0/0&quot;]<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; /ope<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; r-st<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; atus<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; What we would return in the failure=
-hint string is:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Invalid expression: offset(9) in<br=
>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &#39;/if:inte\rfaces-state/interfac=
e[name=3D&quot;GigabitEthernet0/0&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ]/oper-<br>
&gt; &gt; &gt; status&#39;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Eric<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Andy<br>
</blockquote></div></div>

--0000000000006f828a0580378e21--


From nobody Thu Jan 24 11:14:27 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2AD4712894E; Thu, 24 Jan 2019 11:14:25 -0800 (PST)
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, 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 U9DP6Oguyume; Thu, 24 Jan 2019 11:14:19 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 29ED31313B8; Thu, 24 Jan 2019 11:14:19 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 6F6DA1AE00A0; Thu, 24 Jan 2019 20:14:16 +0100 (CET)
Date: Thu, 24 Jan 2019 20:14:15 +0100 (CET)
Message-Id: <20190124.201415.264860524194078371.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com>
References: <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com> <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/D5fjlGxDZQ_djWlx4w6KTQ7rXGo>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 19:14:25 -0000

IkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiAiRXJpYyBW
b2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gPiBGcm9tOiBNYXJ0
aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDk6NDAgQU0NCj4gPiA+ID4NCj4gPiA+ID4g
IkVyaWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+
IEZyb206IE1hcnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjQsIDIwMTkgODoxNyBBTQ0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4g
d3JvdGU6DQo+ID4gPiA+ID4gPiA+IEhpIEFuZHksDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRo
ZSB0aG9yb3VnaCBZQU5HIERvY3RvciByZXZpZXcuICBJIGhhdmUNCj4gPiA+ID4gPiA+ID4gaW5j
bHVkZWQgdGhlDQo+ID4gPiA+ID4gPiBhZ3JlZWQgdXBvbiBjb21tZW50cywgYW5kIHVwbG9hZGVk
IHRvOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vi
c2NyaWJlZC1ub3RpZmljYXRpb25zLTIyDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGEg
c3VtbWFyeSBvZiB0aGUgY2xhcmlmaWNhdGlvbnMgbWFkZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBk
b2N1bWVudC4NCj4gPiA+ID4gPiA+ID4gTGV0IG1lIGtub3cgaWYgdGhlcmUgYW55dGhpbmcgZWxz
ZSBuZWVkZWQgdG8gY29uY2x1ZGUgdGhlIFlBTkcNCj4gPiA+ID4gPiA+ID4gZG9jdG9yIHJldmll
dyBvZiB0aGlzIGRvY3VtZW50Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbHNvIGFzIHRoZSByZXN1bHQgb2YgdGhlIOKAmGVycm9y
LXRhZ+KAmSBkaXNjdXNzaW9uIHdpdGggeW91IGFuZA0KPiA+ID4gPiA+ID4gPiBNYXJ0aW4sIHdl
IG5lZWQgdG8gcGVyZm9ybSB0aGUgcmVmaW5lbWVudCBvZiB0aGUg4oCYZXJyb3ItdGFn4oCZDQo+
ID4gPiA+ID4gPiA+IG1hcHBpbmcgd2l0aGluIGJvdGgNCj4gPiA+ID4gPiA+ID4gZHJhZnQtaWV0
Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucw0KPiA+ID4gPiA+ID4gPiBTZWN0
aW9uDQo+ID4gPiA+ID4gPiA+IDcsIGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90
aWYgU2VjdGlvbiAzLjMuICAgRGlyZWN0bHkNCj4gPiA+ID4gPiA+ID4gYmVsb3cgaXMgc29tZSB0
ZXh0IGFuZCBwcm9wb3NlZCBlcnJvci10YWcgbWFwcGluZ3MgZm9yIHRob3NlDQo+ID4gPiA+ID4g
PiA+IGRvY3VtZW50cy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gICAgIG8gIEFuICJlcnJvci10YWciIG5vZGUgd2l0aCB0aGUgdmFs
dWUgYmVpbmcgYSBzdHJpbmcgdGhhdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAg
ICAgY29ycmVzcG9uZHMgdG8gYW4gaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBlcnJvci4N
Cj4gPiA+ID4gPiA+ID4gVGhpcw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg
ImVycm9yLXRhZyIgd2lsbCBjb3JyZXNwb25kIHRvIHRoZSBlcnJvciBpZGVudGl0aWVzDQo+ID4g
PiA+ID4gPiA+IHdpdGhpbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgW0kt
RC5kcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zXQ0KPiA+ID4gPiA+
ID4gPiBzZWN0aW9uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAyLjQuNiBm
b3IgZ2VuZXJhbCBzdWJzY3JpcHRpb24gZXJyb3JzOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZXJyb3IgaWRlbnRp
dHkgICAgICAgICB1c2VzIGVycm9yLXRhZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAg
ICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZHNjcC11bmF2YWlsYWJsZSAgICAgICBpbnZh
bGlkLXZhbHVlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gT2suICBCdXQgaXQgaXMgbm90IGNs
ZWFyIHRvIG1lIHdoZW4gdGhpcyBlcnJvciBpcyBhY3R1YWxseQ0KPiA+ID4gPiA+ID4gc3VwcG9z
ZWQgdG8gYmUgZ2VuZXJhdGVkPyAgVGhlIGxlYWYgYW5kIGlkZW50aXR5IGhhdmUgdGhlIHNhbWUN
Cj4gPiA+ID4gPiA+IGlmLWZlYXR1cmUsIHNvIGl0IGlzbid0IGEgc3BlY2lhbCBlcnJybyBjb2Rl
IGZvciAidW5zdXBwb3J0ZWQgbGVhZiIsDQo+ID4gPiA+ID4gPiB3aGljaCBpcyBnb29kIQ0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoZW4gSSBoYXZlIHRvIGFzc3VtZSBpdCBpcyBzdXBwb3Nl
ZCB0byBiZSBzb21lIGtpbmQgb2YgcnVudGltZQ0KPiA+ID4gPiA+ID4gZXJyb3I/DQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiBZZXMuICBBIHB1Ymxpc2hlciwgbm9yIHRoZSBuZXR3b3JrIHRvIHdoaWNo
IGlzIGNvbm5lY3RzIGRvZXMgbm90DQo+ID4gPiA+ID4gaGF2ZQ0KPiA+ID4gPiA+IHRvOg0KPiA+
ID4gPiA+IChhKSBzdXBwb3J0IGFsbCBEU0NQIHZhbHVlcywgbm9yDQo+ID4gPiA+ID4gKGIpIGFs
bG93IGEgcGFydGljdWxhciB2YWx1ZSByZXF1ZXN0ZWQgYnkgYSBwYXJ0aWN1bGFyIHN1YnNjcmli
ZXIsDQo+ID4gPiA+ID4gU28gdGhpcyBjb25kaXRpb24gYWxsb3dzIGEgcHVibGlzaGVyIHRvIHJl
amVjdCBhIHJlcXVlc3QgZm9yIGENCj4gPiA+ID4gPiBEU0NQIHZhbHVlIHdoZXJlIGlzIGtub3dz
IHRoZSB2YWx1ZSB3aWxsIG5vdCBiZSByZXNwZWN0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IEdvb2Qg
ZXhwbGFuYXRpb24sIEkgd2lzaCBpdCB3YXMgcGFydCBvZiB0aGUgImxlYWYgZHNjcCIgaW4gdGhl
DQo+ID4gPiA+IG1vZHVsZQ0KPiA+ID4gPiA6KQ0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgZHNjcC11
bmF2YWlsYWJsZSBpZGVudGl0eSBkb2Vzbid0IGFkZCBhbnkgYWRkaXRpb24gdmFsdWUNCj4gPiA+
ID4gY29tcGFyZWQgdG8gdGhlIHN0YW5kYXJkIGVycm9yLg0KPiA+ID4NCj4gPiA+IEZvciBORVRD
T05GIGFuZCBSRVNUQ09ORiwgdGhpcyBpcyB0aGUgY2FzZS4NCj4gPiANCj4gPiBBbmQgY29taS4g
IFRoZSBwb2ludCBpcywgd2hhdCBtYWtlcyB0aGUgcnBjcyBpbiB0aGlzIG1vZHVsZSBzbyBzcGVj
aWFsDQo+ID4gdGhhdCB0aGV5IGhhdmUgdG8gaW52ZW50IGEgbmV3IGVycm9yIHJlcG9ydGluZyBz
Y2hlbWU/ICAgSWYgd2UgZG8gdGhhdA0KPiA+IGZvciB0aGVzZSBycGNzLCB3aHkgbm90IGZvciBh
bGwgb3RoZXIgcnBjIGluIGFsbCBvdGhlciBtb2R1bGVzPw0KPiANCj4gVGhlIGN1cnJlbnQgUlBD
IGVycm9yIG1lY2hhbmlzbXMgdGllcyBZQU5HIFJQQ3MgdG8gTkVUQ09ORiBhbmQNCj4gUkVTVENP
TkYgdHJhbnNwb3J0cy4gIE92ZXIgbWFueSB5ZWFycyB0aGVyZSBoYXMgYmVlbiBsb3RzIG9mIHdv
cmsgdG8NCj4gYWxpZ24gdGhlIHN1YnNjcmlwdGlvbiBkcmFmdHMgdG8gdGhlc2UgZXhpc3Rpbmcg
bWVjaGFuaXNtcywgd2hpbGUNCj4gbWFpbnRhaW5pbmcgYXMgbXVjaCB0cmFuc3BvcnQgaW5kZXBl
bmRlbmNlIGZvciBoaW50cyBhcyBwb3NzaWJsZS4NCg0KSSdtIG5vdCB0YWxraW5nIGFib3V0IHRo
ZSAiaGludHMiLCBidXQgdGhlIGVycm9yIGNvZGVzLg0KDQpPciBhcmUgeW91IHNheWluZyB0aGF0
IHlvdSB0aGluayB0aGF0ICphbGwqIHJwY3MgZGVmaW5lZCB0b2RheSBzaG91bGQNCmhhdmUgdGhl
aXIgb3duIGVycm9yIHJlcG9ydGluZyBtZWNoYW5pc20/DQoNCg0KPiA+ID4gPiA+ID4gVGhpbmtp
bmcgc29tZSBtb3JlLCB3aGF0IGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBpZiB0aGUgY2xpZW50IG9u
DQo+ID4gPiA+ID4gPiB0aGUgc2FtZSBzZXNzaW9uIHNlbmRzIGZpcnN0IGFuIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24gd2l0aCBkc2NwDQo+ID4gPiA+ID4gPiA0MiwgYW5kIHRoZW4gYW5vdGhlciBl
c3RhYmxpc2gtc3Vic2NyaXB0aW9uIHdpdGggZHNjcCAxMD8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+
IFRoaXMgd291bGQgYmUgYWxsb3dlZC4NCj4gPiA+ID4NCj4gPiA+ID4gT24gbGludXggYXQgbGVh
c3QgdGhpcyBpcyBhIHNvY2tvcHQsIGkuZS4sIHRoZSBvcHRpb24gYXBwbGllcyB0byB0aGUNCj4g
PiA+ID4gc29ja2V0LCB3aGljaCBtZWFucyBhbGwgcGFja2V0cyBvbiB0aGUgc2Vzc2lvbi4gIFNv
IGhvdyBpcyB0aGlzDQo+ID4gPiA+IHN1cHBvc2VkIHRvIGJlIGltcGxlbWVudGVkIGlmIGRpZmZl
cmVudCBtZXNzYWdlcyBvbiB0aGUgc2Vzc2lvbg0KPiA+ID4gPiBzaG91bGQgaGF2ZSBkaWZmZXJl
bnQgZHNjcCB2YWx1ZXM/DQo+ID4gPiA+IE9yIGlzIHRoZQ0KPiA+ID4gPiBpZGVhIHRoYXQgeW91
IHNlbmQgdGhlIG1zZywgZmx1c2ggYWxsIGRhdGEgZnJvbSBzc2gvdGxzIHRvIHRjcCwgdGhlbg0K
PiA+ID4gPiBmbHVzaCB0aGUgdGNwIGJ1ZmZlcnMgKG5vdCB0aGF0IGVhc3kuLi4pPw0KPiA+ID4g
Pg0KPiA+ID4gPiBFdmVuIGlmIHRoZXJlJ3MganVzdCBvbmUgZXN0YWJsaXNoLXN1YnNjcmlwdGlv
biB3aXRoIGEgZHNjcCB2YWx1ZSwNCj4gPiA+ID4gc2luY2UgaXQgYXBwbGllcyB0byB0aGUgc2Vz
c2lvbiBpdCBtZWFucyB0aGF0IGFsbCBub3JtYWwgcnBjcyBvbg0KPiA+ID4gPiB0aGlzIHNlc3Np
b24gd2lsbCBnZXQgdGhlIHNhbWUgZHNjcCB2YWx1ZS4gIEl0IGlzIG5vdCBjbGVhciB0aGF0DQo+
ID4gPiA+IHRoaXMgaXMgdGhlIGludGVudGlvbj8NCg0KRGlkIHlvdSBtaXNzIHRoZXNlIHF1ZXN0
aW9ucz8NCg0KPiA+ID4gRm9yIGEgTkVUQ09ORiBzZXNzaW9uLCBJIGFncmVlIHRoYXQgYW4gaW1w
bGVtZW50YXRpb24gbmVlZCBub3QgdHJ5IHRvDQo+ID4gPiBhdHRlbXB0IHRvIHN1cHBvcnQgbW9y
ZSB0aGFuIG9uZSBEU0NQIGZvciB0aGF0IHNlc3Npb24uICBBbmQgdGhlIGVycm9yDQo+ID4gPiBp
ZGVudGl0eSBkc2NwLXVuYXZhaWxhYmxlIGlzIGEgdmFsaWQgcmVzcG9uc2UgaGVyZS4NCj4gPiAN
Cj4gPiBUaGVuIHRoYXQgc2hvdWxkIGJlIGV4cGxhaW5lZCAocHJlZmVycmFibHkgaW4gdGhlIGxl
YWYgZHNjcCkuDQo+ID4gDQo+ID4gPiBGb3IgUkVTVENPTkYgYW5kIG90aGVyIHRyYW5zcG9ydHMs
IHRoZXJlIG9wdGlvbnMgd2hpY2ggY2FuIG1vcmUNCj4gPiA+IGZsZXhpYmx5IHN1cHBvcnQgZGlm
ZmVyZW50IERTQ1AgdmFsdWVzLiAgVGhpcyBpcyBvbmUgcmVhc29uIEkgd2FzDQo+ID4gPiBwdXNo
aW5nIGhhcmQgaW4gMjAxNiB0byBsZXZlcmFnZSBIVFRQMi4NCj4gPiANCj4gPiBXZSdyZSB0YWxr
aW5nIGFib3V0IGR5bmFtaWMgc3Vic2NyaXB0aW9ucyBoZXJlLiAgSSBkb24ndCB0aGluayBhbnlv
bmUNCj4gPiBoYXMNCj4gPiBzdWdnZXN0ZWQgSFRUUDIgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9u
cy4NCj4gDQo+IEkgaGF2ZSBhbHdheXMgYmVsaWV2ZWQgdGhhdCBIVFRQMiBmb3IgZHluYW1pYyBz
dWJzY3JpcHRpb25zIHdhcyBhDQo+IHVzZWZ1bCBpbmR1c3RyeSB0YXJnZXQuICBUaGlzIGRyaXZl
ciB3YXMgdGhlIG9yaWdpbmFsIHJlYXNvbiBJIHdyb3RlDQo+IHRoZSBvcmlnaW5hbCBkcmFmdCB3
aGljaCBiZWNhbWUgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLCBhbmQNCj4gbWFu
eSB2YXJpYXRpb25zIG9uIGR5bmFtaWMgc3Vic2NyaXB0aW9ucyB3aXRoIEhUVFAyLiAgSW4gdGhl
IG1lYW50aW1lLA0KPiBHUlBDIHN1YnNjcmlwdGlvbnMgKGJhc2VkIG9uIEhUVFAyKSBoYXMgZ3Jv
d24gaW50byB0aGlzIHNwYWNlLg0KDQpUaGlzIGlzIGlycmVsZXZhbnQgZm9yIHRoZSBwcm9ibGVt
LiAgVGhlIHByb2JsZW0gaXMgbWFpbnRhaW5pbmcNCnNldmVyYWwgZHNjcCB2YWx1ZXMgb24gdGhl
IHNhbWUgc2Vzc2lvbi4gIEFueSBzb2x1dGlvbiB0aGF0IGludHJvZHVjZXMNCmEgc2luZ2xlIHNl
c3Npb24gb2J2aW91c2x5IGF2b2lkcyB0aGUgcHJvYmxlbS4gIEFuZCBHUlBDIGhhcyBhbHNvDQpu
b3RoaW5nIHRvIGRvIHdpdGggdGhpcy4NCg0KDQovbWFydGluDQoNCg0KDQoNCj4gDQo+IEVyaWMN
Cj4gDQo+ID4gRm9yIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucywgdGhpcyBpcyBub3QgYW4gaXNz
dWUsIG5vdCBldmVuIGZvcg0KPiA+IE5FVENPTkYuDQo+ID4gDQo+ID4gDQo+ID4gL21hcnRpbg0K
PiA+IA0KPiA+IA0KPiA+IA0KPiA+ID4NCj4gPiA+IEVyaWMNCj4gPiA+DQo+ID4gPiA+IC9tYXJ0
aW4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBUaGUgaW50ZXJlc3RpbmcgcGFydCBjb21l
cyB3aXRoIGJ1bmRsaW5nIHRoZSBldmVudCByZWNvcmRzLiAgVGhlDQo+ID4gPiA+ID4gaW5pdGlh
bCB2ZXJzaW9ucyBvZiBkcmFmdC1pZXRmLW5ldGNvbmYtbm90aWZpY2F0aW9uLW1lc3NhZ2VzDQo+
ID4gPiA+ID4gcmVxdWlyZWQgdGhhdCBhbGwgZXZlbnQgcmVjb3JkcyBpbiBhIGJ1bmRsZSBoYWQg
YSBjb21tb24gZHNjcC4gIEF0DQo+ID4gPiA+ID4gdGhpcyBwb2ludCwgdGhhdCBzZWVtcyBvdmVy
bHkgcmVzdHJpY3RpdmUgdG8gdGhlIG1hcnNoYWxsaW5nDQo+ID4gPiA+ID4gcHJvY2Vzcywgc28g
Zm9yIG5vdyB0aGF0IHJlcXVpcmVtZW50IGlzIG5vdCBpbiB0aGUgZG9jdW1lbnQuDQo+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIGVuY29kaW5nLXVuc3VwcG9ydGVkICAgaW52YWxp
ZC12YWx1ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9rLiAgQnV0IHRoaXMgaWRlbnRpdHkg
ZG9lc24ndCBnaXZlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiB0aGUNCj4gPiA+ID4gPiA+IHN0YW5k
YXJkDQo+ID4gPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgIGVycm9y
LXRhZzogaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBjL2VzdGFi
bGlzaC1zdWJzY3JpcHRpb24vZW5jb2RpbmcNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiAgICAgICAgICAgZmlsdGVyLXVuYXZhaWxhYmxlICAgICBpbnZhbGlkLXZhbHVl
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhpcyBpcyBhICJzdWJzY3JpcHRpb24tdGVybWlu
YXRlZC1yZWFzb24iLCB3aGljaCB3aWxsIG5ldmVyIGJlDQo+ID4gPiA+ID4gPiBzZW50IGluIGFu
IHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRh
Zy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFllcywgZm9yZ290IHRvIHJlbW92ZSB0aG9zZS4gIEl0
IGlzIG5vdyBvdXQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgZmlsdGVyLXVu
c3VwcG9ydGVkICAgICBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gT2su
ICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRo
ZQ0KPiA+ID4gPiA+ID4gc3RhbmRhcmQNCj4gPiA+ID4gPiA+IGVycm9yOg0KPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ICAgZXJyb3ItdGFnOiBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4gPiAgIGVy
cm9yLXBhdGg6IC9ycGMvZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi9zdHJlYW0teHBhdGgtZmlsdGVy
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIGluc3Vm
ZmljaWVudC1yZXNvdXJjZXMgcmVzb3VyY2UtZGVuaWVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+IE9rLiAgQnV0IHRoaXMgaWRlbnRpdHkgZG9lbnMndCBnaXZlIG1vcmUg
aW5mb3JtYXRpb24gdGhhbiB0aGUNCj4gPiA+ID4gPiA+IHN0YW5kYXJkIGVycm9yIGluIHRoZSBj
YXNlIG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4gPiBtb2RpZnktc3Vi
c2NyaXB0aW9uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIG5vLXN1Y2gt
c3Vic2NyaXB0aW9uICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9r
LiAgQnV0IHRoaXMgaWRlbnRpdHkgZG9lbnMndCBnaXZlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiB0
aGUNCj4gPiA+ID4gPiA+IHN0YW5kYXJkIGVycm9yIGluIHRoZSBjYXNlIG9mIGVzdGFibGlzaC1z
dWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4gPiBtb2RpZnktc3Vic2NyaXB0aW9uLg0KPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIHJlcGxheS11bnN1cHBvcnRlZCAgICAgb3Bl
cmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBPay4gIEJ1dCB0
aGlzIGlkZW50aXR5IGRvZXNuJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlDQo+ID4g
PiA+ID4gPiBzdGFuZGFyZCBlcnJvci4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAg
ICAgICBzdHJlYW0tdW5hdmFpbGFibGUgICAgIGludmFsaWQtdmFsdWUNCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiBUaGlzIGlzIGEgInN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLXJlYXNvbiIsIHdo
aWNoIHdpbGwgbmV2ZXIgYmUNCj4gPiA+ID4gPiA+IHNlbnQgaW4gYW4gcnBjLSBlcnJvciwgYW5k
IHRodXMgc2hvdWxkIG5vdCBiZSBtYXBwZWQgdG8gYW4gZXJyb3ItdGFnLg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gWWVzLCBmb3Jnb3QgdG8gcmVtb3ZlIHRob3NlLiAgSXQgaXMgbm93IG91dC4NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgc3VzcGVuc2lvbi10aW1lb3V0ICAgICBv
cGVyYXRpb24tZmFpbGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhpcyBpcyBhICJzdWJz
Y3JpcHRpb24tdGVybWluYXRlZC1yZWFzb24iLCB3aGljaCB3aWxsIG5ldmVyIGJlDQo+ID4gPiA+
ID4gPiBzZW50IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVk
IHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFllcywgZm9yZ290IHRvIHJl
bW92ZSB0aG9zZS4gIEl0IGlzIG5vdyBvdXQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg
ICAgICAgIHVuc3VwcG9ydGFibGUtdm9sdW1lICAgdG9vLWJpZw0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2gg
d2lsbCBuZXZlciBiZQ0KPiA+ID4gPiA+ID4gc2VudCBpbiBhbiBycGMtIGVycm9yLCBhbmQgdGh1
cyBzaG91bGQgbm90IGJlIG1hcHBlZCB0byBhbiBlcnJvci10YWcuDQo+ID4gPiA+ID4NCj4gPiA+
ID4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBPciB0aGlzICJlcnJvci10YWciIHdpbGwgY29ycmVz
cG9uZCB0byB0aGUgZXJyb3INCj4gPiA+ID4gPiA+ID4gaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiAgICAgICAgd2l0aGluIFtJLUQuaWV0Zi1uZXRjb25mLXlhbmctcHVz
aF0gQXBwZW5kaXggQS4xIGZvcg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg
c3Vic2NyaXB0aW9uIGVycm9ycyBzcGVjaWZpYyB0byBZQU5HIGRhdGFzdG9yZXM6DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAg
ICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgICAgICAgdXNlcyBlcnJvci10YWcNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAg
ICAtLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAg
Y2FudC1leGNsdWRlICAgICAgICAgICAgICAgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICBkYXRhc3RvcmUtbm90LXN1YnNjcmli
YWJsZSAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJ
IHRoaW5rIHRoYXQgdGhpcyBzaG91bGQgYmUgaW52YWxpZC12YWx1ZS4NCj4gPiA+ID4gPg0KPiA+
ID4gPiA+IE9rDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAvRXJpYw0KPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ICAgICAgICAgICBuby1zdWNoLXN1YnNjcmlwdGlvbi1yZXN5bmMgaW52YWxpZC12YWx1
ZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9rLCBidXQgYWdhaW4gdGhlIHZhbHVlIG9mIGhh
dmluZyB0aGlzIGlzIHVuY2xlYXIuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg
ICAgb24tY2hhbmdlLXVuc3VwcG9ydGVkICAgICAgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICBvbi1jaGFuZ2Utc3luYy11bnN1
cHBvcnRlZCAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gICAgICAgICAgIHBlcmlvZC11bnN1cHBvcnRlZCAgICAgICAgICBpbnZhbGlkLXZhbHVl
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICB1cGRhdGUtdG9vLWJpZyAg
ICAgICAgICAgICAgdG9vLWJpZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg
ICAgc3luYy10b28tYmlnICAgICAgICAgICAgICAgIHRvby1iaWcNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gICAgICAgICAgIHVuY2hhbmdpbmctc2VsZWN0aW9uICAgICAgICBvcGVyYXRp
b24tZmFpbGVkDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiAvbWFydGluDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IERvIHlvdSAob3IgYW55b25lIGVsc2UgaW4gdGhp
cyB0aHJlYWQpIGhhdmUgYW55IHN1Z2dlc3Rpb25zIG9uDQo+ID4gPiA+ID4gPiA+IHRoZSB0ZXh0
IG9yIHByb3Bvc2VkIG1hcHBpbmdzPyAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgb2ssDQo+ID4g
PiA+ID4gPiA+IEFsZXggd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgTkVUQ09ORiBlcnJvci10YWcg
c3BlY2lmaWNzIGZyb20NCj4gPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVz
aCBTZWN0aW9ucyA0LjQuMSAmIDQuNC4yDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFsc28gUmVzaGFkIHdpbGwgaGF2ZSB0byBkbyBz
b21lIHdvcmsgYmVjYXVzZSBoZSBpcyB0aGUgWUFORw0KPiA+ID4gPiA+ID4gPiBkb2N0b3Igb2YN
Cj4gPiA+ID4gPiA+IG5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zLCBhbmQgaGUg
d2lsbCB3YW50IHRvIGluY2x1ZGUNCj4gPiA+ID4gPiA+IHRoZSBzYW1lIGluZm9ybWF0aW9uIHdp
dGhpbiBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYtbm90aWYuDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRXJpYw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBGcm9tOiBBbmR5IEJpZXJtYW4gPGFuZHlAeXVtYXdvcmtzLmNvbT4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDIzLCAyMDE5IDEyOjQy
IFBNDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRvOiBFcmljIFZvaXQgKGV2b2l0KSA8
ZXZvaXRAY2lzY28uY29tPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBDYzogTWFydGlu
IEJqb3JrbHVuZCA8bWJqQHRhaWwtZi5jb20+OyB5YW5nLWRvY3RvcnNAaWV0Zi5vcmc7DQo+ID4g
PiA+ID4gPiA+IG5ldGNvbmZAaWV0Zi5vcmc7DQo+ID4gPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0
Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuYWxsQGlldGYub3JnDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbeWFuZy1kb2N0b3JzXSBZYW5nZG9jdG9ycyBs
YXN0IGNhbGwgcmV2aWV3IG9mDQo+ID4gPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJz
Y3JpYmVkLW5vdGlmaWNhdGlvbnMtMjENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgNDoz
NSBBTSBFcmljIFZvaXQgKGV2b2l0KQ0KPiA+ID4gPiA+ID4gPiA8bWFpbHRvOmV2b2l0QGNpc2Nv
LmNvbT4NCj4gPiA+ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IEZyb206IE1hcnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjMsIDIwMTkgMzozMiBBTQ0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
SGksDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiAiRXJpYyBWb2l0IChldm9pdCkiIDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPiB3
cm90ZToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhpIEFuZHksDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uICBNeSByZWFkaW5nIGlzIHRoYXQgaXQgdGFr
ZXMNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFpbmVkIGluDQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1u
b3RpZmljYXRpb25zIHNlY3Rpb24gNywNCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCB0aGVuDQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiByZXBsaWNhdGVzIHRoYXQgaW5mbyB3aXRoaW4g
MTIgc2VwYXJhdGUgZGVzY3JpcHRpb24NCj4gPiA+ID4gPiA+ID4gPiA+IG9iamVjdHMgb2YgdGhl
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnQgaW5kZXBlbmRlbnQg
aWV0Zi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMueWFuZy4NCj4gPiA+ID4gPiA+ID4gPiA+IFRo
ZSB2YWx1ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4geW91IGFyZSBhc3NlcnRp
bmcgaXMgdGhhdCBSRkNzIGNvbnRhaW5pbmcgWUFORyBtb2RlbHMNCj4gPiA+ID4gPiA+ID4gPiA+
IGNvbnRhaW5pbmcgdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBycGMtc3Rt
dCBoYXZlIHRyYWRpdGlvbmFsbHkgZG9jdW1lbnQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBtYW5k
YXRvcnktdG8taW1wbGVtZW50DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAiZXJy
b3ItdGFnIiBmaWVsZCB3aXRoaW4gdGhlIG1vZGVsLiAgQW5kIHByZXN1bWFibHkgeW91DQo+ID4g
PiA+ID4gPiA+ID4gPiBhcmUgY29uY2VybmVkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiB0aGF0IGRldmVsb3BlcnMgc2hvdWxkIG5vdCBoYXZlIHRvIGxvb2sgZWxzZXdoZXJlIGZv
ciB0aGlzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBpbmZvcm1hdGlvbi4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IEkgdGhpbmsgdGhhdCBtYXliZSB0aGVyZSBhcmUgdHdvIHNlcGFyYXRlIGlzc3VlcyBoZXJl
Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gVGhlIGZpcnN0IGlzc3VlIGlzIHRoYXQgZm9yIGVhY2ggZXJyb3IgaWRlbnRpdHkg
ZGVmaW5lZCwNCj4gPiA+ID4gPiA+ID4gPiB0aGVyZSBuZWVkcyB0byBiZSBhDQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gbWFwcGluZyB0byB0aGUgcHJvdG9jb2wtc3BlY2lmaWMgZXJy
b3IgaGFuZGxpbmcuICBBbmR5DQo+ID4gPiA+ID4gPiA+ID4gc3VnZ2VzdHMgdGhhdCB0aGlzIGlu
Zm8gaXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBhZGRlZCB0byB0aGlzIGRvY3Vt
ZW50LCBidXQgY3VycmVudGx5IHRoaXMgaW5mb3JtYXRpb24gaXMNCj4gPiA+ID4gPiA+ID4gPiBh
dmFpbGFibGUgaW4gdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gcHJvdGNvbC1t
YXBwaW5nIGRvY3VtZW50cyAobmV0Y29uZi1ub3RpZiBhbmQgcmVzdGNvbmYtbm90aWYpLg0KPiA+
ID4gPiA+ID4gPiA+IFBlcnNvbmFsbHksIEkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiB0aGluayB0aGF0IHRoZSBjdXJyZW50IHNwbGl0IG9mIHRleHQgYmV0d2VlbiBkb2N1bWVudHMg
aXMgZmluZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IFRoZSBzZWNvbmQgaXNzdWUgaXMgdGhhdCBjdXJyZW50bHksIGJvdGgg
bmV0Y29uZi1ub3RpZiBhbmQNCj4gPiA+ID4gPiA+ID4gPiByZXN0Y29uZi1ub3RpZiBzYXkNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB0aGF0ICphbGwqIHRoZXNlIGVycm9ycyB1c2Ug
dGhlIGVycm9yLXRhZyAib3BlcmF0aW9uLWZhaWxlZCIuDQo+ID4gPiA+ID4gPiA+ID4gRXNzZW50
aWFsbHkgaXQgbWVhbnMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB0aGF0IHdlIGJ5
cGFzcyB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gdGhlIHByb3RvY29scy4gIEFzIEFuZHkNCj4gPiA+
ID4gPiA+ID4gPiBwb2ludHMgb3V0IGJlbG93LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+IHRoZSBlcnJvciAiaW5zdWZmaWNpZW50LXJlc291cmNlcyIgc2hvdWxkIGJlIG1hcHBlZCB0
bw0KPiA+ID4gPiA+ID4gPiA+ICJyZXNvdXJjZS1kZW5pZWQiIGluDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gTkVUQ09ORiBhbmQgUkVTVENPTkYgKHRoZXkgbWVhbiB0aGUgc2FtZSB0
aGluZykuICBTbyBpdA0KPiA+ID4gPiA+ID4gPiA+IG1pZ2h0IG1ha2Ugc2Vuc2UNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB0byBjYXJlZnVsbHkgZ28gdGhyb3VnaCB0aGUgbGlzdCBv
ZiBlcnJvcnMgYW5kIG1hcCB0aGVtIHRvDQo+ID4gPiA+ID4gPiA+ID4gdGhlIGNvcnJlY3QgZXJy
b3ItdGFnDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gKGJ1dCBzcGVjaWZpeSB0aGlz
IGluIHRoZSB0cmFuc3BvcnQgZHJhZnRzKS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSBhbSBjb21wbGV0ZWx5IGdvb2Qgd2l0aCB0
aGlzLiAgIERvZXMgdGhpcyB3b3JrIGZvciB5b3UgQW5keT8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpcyBpcyBiZXR0ZXIuDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEknbSBnbGFkIG5vIG90aGVyIGRyYWZ0cyBhcmUg
Y3JlYXRpbmcgdGhlaXIgb3duIGVycm9yDQo+ID4gPiA+ID4gPiA+IHJlcG9ydGluZyBzeXN0ZW0g
Zm9yDQo+ID4gPiA+ID4gPiBlYWNoIHJwYy1zdG10Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBUaGlzIGlzIGEgYmFkIHByZWNlZGVudCBhbmQgbGlrZWx5IHRvIGJlIHNraXBwZWQgaW4N
Cj4gPiA+ID4gPiA+ID4gaW1wbGVtZW50YXRpb25zLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBFcmljDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gL21hcnRpbg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEFuZHkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJZiB0aGUgWUFORyBkb2N0b3JzIHJlcXVp
cmUgdGhpcywgaXQgY2FuIGJlIGluc2VydGVkLiAgQQ0KPiA+ID4gPiA+ID4gPiA+ID4gc2ltaWxh
ciB0ZXh0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBjaGFuZ2Ugd291bGQgYmUg
bmVlZGVkIGZvciBxdWl0ZSBhIGZldyBlcnJvciBpZGVudGl0aWVzDQo+ID4gPiA+ID4gPiA+ID4g
PiB3aXRoaW4gWUFORw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gUHVzaC4gIFBl
cnNvbmFsbHkgSSBkb27igJl0IGxpa2UgdGhhdCBZQU5HIG1vZGVscyBzaG91bGQgYmUNCj4gPiA+
ID4gPiA+ID4gPiA+IHJlcXVpcmVkIHRvDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBlbWJlZCB0aGlzIGluZm9ybWF0aW9uLiAgQnV0IEkgd2lsbCBtYWtlIHRoZSBjaGFuZ2UgaWYg
eW91DQo+ID4gPiA+ID4gPiA+ID4gPiByZWFsbHkgd2FudA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gdGhpcywgYW5kIG5vYm9keSBlbHNlIG9iamVjdHMuDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gT3Ro
ZXIgdGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgb3BlbiBpc3N1ZXMNCj4g
PiA+ID4gPiA+ID4gPiA+IGluIHRoZSBZQU5HDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBEb2N0b3IgcmV2aWV3LiAgRG8geW91IGtub3cgb2YgYW55dGhpbmcgZWxzZT8NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBFcmljDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEZy
b206IEFuZHkgQmllcm1hbiwgSmFudWFyeSAyMSwgMjAxOSAyOjI2IFBNDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSGks
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gSSB0aGluayB0aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSByZXNvbHZlZCBi
eSBpbmNsdWRpbmcgMQ0KPiA+ID4gPiA+ID4gPiA+ID4gZXh0cmENCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+IHNlbnRlbmNlIGluIGVhY2ggZXJyb3IgaWRlbnRpdHkuDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGtub3cgdGhpcyBpcyBORVRDT05GIGFuZCBSRVNU
Q09ORiBjZW50cmljIGJ1dCB0aG9zZSBhcmUNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBvbmx5DQo+
ID4gPiA+ID4gPiA+ID4gPiAyDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBzdGFu
ZGFyZCBwcm90b2NvbHMgc3VwcG9ydGVkIGZvciB0aGUgWUFORyBsYW5ndWFnZSByaWdodCBub3cu
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gICAgICAgIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1c2VkIGluIGVy
cm9yDQo+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiAgICAgICAgdGhlbiB0aGUgdmFsdWUgJzxjb3JyZWN0IGVycm9yLXRhZz4nIE1V
U1QgYmUgdXNlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGb3IgZXhhbXBsZToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gT0xEOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgaWRlbnRpdHkgaW5zdWZm
aWNpZW50LXJlc291cmNlcyB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAg
YmFzZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gICAgIGJhc2UgbW9kaWZ5LXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQt
cmVhc29uOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgIGRlc2NyaXB0aW9u
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAiVGhlIHB1Ymxpc2hlciBo
YXMgaW5zdWZmaWNpZW50IHJlc291cmNlcyB0byBzdXBwb3J0DQo+ID4gPiA+ID4gPiA+ID4gPiB0
aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICByZXF1ZXN0ZWQgc3Vi
c2NyaXB0aW9uLiAgQW4gZXhhbXBsZSBtaWdodCBiZSB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gPiBh
bGxvY2F0ZWQgQ1BVDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgaXMg
dG9vIGxpbWl0ZWQgdG8gZ2VuZXJhdGUgdGhlIGRlc2lyZWQgc2V0IG9mDQo+ID4gPiA+ID4gPiA+
ID4gPiBub3RpZmljYXRpb24NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAg
ICBtZXNzYWdlcy4iOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICB9DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE5FVzoNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAg
IGlkZW50aXR5IGluc3VmZmljaWVudC1yZXNvdXJjZXMgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICAgICBiYXNlIG1vZGlmeS1zdWJzY3JpcHRpb24t
ZXJyb3I7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgYmFzZSBzdWJzY3Jp
cHRpb24tc3VzcGVuZGVkLXJlYXNvbjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAg
IlRoZSBwdWJsaXNoZXIgaGFzIGluc3VmZmljaWVudCByZXNvdXJjZXMgdG8gc3VwcG9ydA0KPiA+
ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAg
ICAgcmVxdWVzdGVkIHN1YnNjcmlwdGlvbi4gIEFuIGV4YW1wbGUgbWlnaHQgYmUgdGhhdA0KPiA+
ID4gPiA+ID4gPiA+ID4gYWxsb2NhdGVkIENQVQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gICAgICAgIGlzIHRvbyBsaW1pdGVkIHRvIGdlbmVyYXRlIHRoZSBkZXNpcmVkIHNldCBv
Zg0KPiA+ID4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiAgICAgICAgbWVzc2FnZXMuIElmIHRoZSAnZXJyb3ItdGFnJyBmaWVsZCBpcyB1
c2VkIGluIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcsDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgdGhlbiB0aGUgdmFsdWUgJ3Jlc291cmNlLWRlbmll
ZCcgTVVTVCBiZSB1c2VkLiI7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgIH0N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQW5keQ0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBPbiBGcmksIEphbiAxOCwgMjAx
OSBhdCAxMTo1MyBBTSBFcmljIFZvaXQgKGV2b2l0KQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPG1haWx0bzpldm9pdEBjaXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBjaXNj
by5jb20+PiB3cm90ZToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhpIEFuZHks
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gVGhhbmtzLiAgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVy
ZSB3YXMgYWdyZWVtZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4gSSBoYXZlDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiByZW1vdmVkIHRoZSBpdGVtcyBiZWxvdyB3aGVyZSB5b3Ugd2Vy
ZSBvay4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiBSZW1haW5pbmcgYmVsb3cgYXJlIHRoZSBvcGVuIGl0ZW1zLCB3aXRo
IHJlc3BvbnNlcy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgU2hvdWxkIGJlIGNsZWFyIHNvbWV3aGVyZSB0
aGF0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgc3VzcGVuZCBpcyBm
b3IgQ1BVIGFuZCBvdGhlciByZXNvdXJjZXMsIGFuZCBOQUNNDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gbm90IGNvbnNpZGVyZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICB0byBiZSBhIHJlc291cmNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJZiBOQUNNIGlzIGFjdGl2ZSwgaXQg
bmVlZHMgdG8gYmUgZm9sbG93ZWQuICBUaGUgdGV4dCB3ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBo
YXZlIGZvcg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBOQUNNIGlzIGluIFNl
Y3Rpb24gNS40LiAgRG8geW91IHNlZSBzb21ldGhpbmcgZWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBzcGVjaWZpYyB0bw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3Jp
cHRpb24gc3VzcGVuc2lvbiBuZWVkZWQgaGVyZT8gIChNYXliZSBJIGFtIG5vdA0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBnZXR0aW5nIHlvdXINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gcG9pbnQuKQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFzIHRlcm1p
bmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAoSXMgdGhlcmUgYW4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3IgaWRlbnRpdHkgZm9yIHRo
aXMgZXZlbnQ/KQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFRoZSBpZGVudGl0eSB3aGljaCBhcHBsaWVzIGhlcmUgaXMg
InN0cmVhbS11bmF2YWlsYWJsZSIuDQo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGlzIHRoZQ0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gc2FtZSBpZGVudGl0eSB3aGljaCB3b3VsZCBi
ZSB1c2VkIGlmIGEgc3Vic2NyaWJlciBoYWQNCj4gPiA+ID4gPiA+ID4gPiA+IG5ldmVyIHN1ZmZp
Y2llbnQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHBlcm1pc3Npb25zIGluIHRo
ZSBmaXJzdCBwbGFjZS4gIEkgZG9uJ3QgYmVsaWV2ZSB3ZSB3b3VsZA0KPiA+ID4gPiA+ID4gPiA+
ID4gd2FudCB0bw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gcmV0dXJuIGFuIGlk
ZW50aXR5IHNwZWNpZmljIHRvIHdoZW4gTkFDTSB3aGVuIHBlcm1pc3Npb25zDQo+ID4gPiA+ID4g
PiA+ID4gPiBoYXZlIGp1c3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGJlZW4g
Y2hhbmdlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSTMpIHNlYyAyLjEgcGFyYSA2Og0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIEV2ZW50IHJlY29yZHMgTVVTVCBOT1QgYmUgZGVs
aXZlcmVkIHRvIGEgcmVjZWl2ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbiBhIGRpZmZlcmVu
dA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIG9yZGVyIHRoYW4gdGhl
eSB3ZXJlIHBsYWNlZCBvbnRvIGFuIGV2ZW50IHN0cmVhbS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
LS0gZG9lcyB0aGlzIGFwcGx5IHRvIHN1YnNjcmlwdGlvbi1zdGF0ZT8gVGhpbmsgbm90LA0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IHRoZXkgYXJlIG5vdCBldmVudHMNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgcGxhY2VkIGluIGV2ZW50IHN0cmVhbS4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qgb24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRo
ZXkgZG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gbm90IHZpb2xhdGUNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gdGhpcyByZXF1aXJlbWVudC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gQWRkaXRp
b25hbGx5IHRoZXJlIGlzIHN1cHBvcnRpbmcgdGV4dCBpbiAiU2VjdGlvbiAyLjc6DQo+ID4gPiA+
ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBzdGF0ZSBub3RpZmljYXRpb25zIiwgaW5jbHVkaW5nLi4uDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICIg
SW5zdGVhZCwgdGhleSBhcmUgaW5zZXJ0ZWQgKGFzIGRlZmluZWQgaW4gdGhpcw0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBzZWN0aW9uKSB3aXRoaW4gdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+IHNlcXVlbmNlIG9mIG5vdGlmaWNhdGlvbiBtZXNzYWdlcyBzZW50IHRvIGEgcGFy
dGljdWxhcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZWNlaXZlci4iDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
ICAgIE5lZWQgdG8gYWxsb3cgZW5kZWQgb3Igc3VzcGVuZGVkIHRvIGJlIHNlbnQNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgaGVhZC1vZi1saW5lIHdoZW5ldmVyIHN0
YXRlIGNoYW5nZXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSSBhbSBub3Qgc3VyZSB0aGF0IHN1c3BlbmRlZCBz
aG91bGQgYWx3YXlzIGJlIHNlbnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaGVhZC1vZi1saW5lLg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBDb25zaWRlcg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGltcGxlbWVudGF0aW9uIG1pZ2h0IHdhbnQgdG8g
bGV0IHRoZSBleGlzdGluZyBxdWV1ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBvZiBmaWx0ZXJlZA0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBldmVudCByZWNvcmRzIGJlIHNlbnQg
aWYgaXMgZmlsdGVyIGNvbXBsZXhpdHkgY2F1c2luZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUg
Q1BVIGlzc3VlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGF0IGNvdWxk
IGJlIGRpZmZlcmVudCB0aGFuIGlmIGl0IGlzIGEgYmFuZHdpZHRoIGlzc3VlDQo+ID4gPiA+ID4g
PiA+ID4gPiA+IGRyaXZpbmcgdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IHN1c3BlbnNpb24sIGFuZCB5b3UgZGVmaW5pdGVseSB3YW50IHRoZQ0KPiA+ID4gPiA+ID4gPiA+
ID4gPiAnc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdG8NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmUgcGxhY2VkIGF0IHRoZSBoZWFkIG9m
IGxpbmUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IEl0IGlzIHVwIHRvIHRoZSBwdWJsaXNoZXIgdG8gZGVjaWRlIHdoZW4gdG8gc3RvcCBzZW5kaW5n
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGV2ZW50cyBvbiBhDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gT2J2aW91c2x5IHRoZSBwdWJsaXNoZXIgY2Fubm90IHdhaXQgdW50aWwgdGhlDQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbiBpcyBpZGxlLg0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBUaGUgcmVhc29uIGl0IGlzIGdldHRpbmcgc3VzcGVuZGVkIGlzIGl0
IGlzIGZhciBmcm9tDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlkbGUNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU28g
YWxzbyB1cCB0byB0aGUgcHVibGlzaGVyIHdydC8gd2hhdCB0byBkbyB3aXRoIGFueQ0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBldmVudHMgdGhhdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBoYXZlIG5vdCBiZWVuIGRlbGl2ZXJlZCB5ZXQgb24gYSBzdWJzY3JpcHRpb24uICBDb3Vs
ZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkZWxldGUgdGhlbSBvcg0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBzYXZlIHRoZW0gZm9yIHdoZW4gbW9yZSBiYW5kd2lkdGggYXZhaWxh
YmxlIChmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gZXhhbXBsZSkNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBBZ3JlZSBm
dWxseSB3aXRoIHRoaXMuICBJcyB0aGVyZSB0ZXh0IHJlcXVpcmVkIGluIHRoZSBkcmFmdA0KPiA+
ID4gPiA+ID4gPiA+ID4gaGVyZT8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAuLi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gQmV5b25kIHRoYXQgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVudGF0aW9u
IHRvIGRlY2lkZSBpZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzb21lDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+IHVuLXRyYW5zbWl0dGVkIHF1ZXVlIG9mIGV2ZW50IHJlY29yZHMg
c2hvdWxkIGJlIGZsdXNoZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcHJvY2Vzc2VkIGJhc2VkIG9uIHRoZSBtb2RpZmljYXRp
b24uICBJIGRvIG5vdCBleHBlY3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhpcyB3b3VsZA0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwb3B1bGFyLCBhcyBhIHJlcGxheSBzdWJz
Y3JpcHRpb24gY291bGQgYWNjb21wbGlzaCB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHNhbWUN
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZnVuY3Rpb25hbCBuZWVkLg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBBZ3JlZWQgdGhhdCBhbiBpbXBsZW1lbnRhdGlvbiBjYW4gZHJvcCBhdCBhbnkg
dGltZSBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaW5jcmVtZW50IHRoZQ0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhcHByb3ByaWF0ZSBjb3VudGVycy4gSXQgd2lsbCB0cnkg
dG8gdG8gZG8gdGhpcywgYnV0IG5vDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmVtZW50cw0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBleGNlcHQgbWF5YmUgc3Vic2NyaXB0
aW9uIGV2ZW50cyBsaWtlICdyZXBsYXktY29tcGxldGVkJw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBj
YW5ub3QgYmUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZHJvcHBlZA0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+IEhhdmUgcHV0IGEgbWlub3IgdHdlYWsgaW50byBTZWN0aW9uIDIuNzoNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBbb2xkXSAgc3Vic2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBi
ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gZmlsdGVyZWQgb3V0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gW25ld10gc3Vic2Ny
aXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zIGNhbm5vdCBiZQ0KPiA+ID4gPiA+ID4g
PiA+ID4gZHJvcHBlZCBvcg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gZmlsdGVy
ZWQgb3V0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gLi4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IFRoaW5raW5nIG1vcmUgb24geW91ciBwb2ludCwgaXQgbWlnaHQgYmUgd29ydGggdHdlYWtpbmcN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gYSBjb3VwbGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gd29yZHMgdG8gYWxsb3cgZm9yIGhlYWQtb2YtbGluZSBwbGFjZW1lbnQgb2YNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gInN1YnNjcmlwdGlvbi1zdXNwZW5kZWQi
Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIHF1ZXVlZCBmb3Ig
c2VuZGluZyBhZnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgaXNzdWFuY2Ugb2YNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgdGhpcw0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlv
biBtYXkgbm93IGJlIHNlbnQuIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBcmUgeW91IGdvb2Qgd2l0aCB0aGlz
IHN1Z2dlc3RlZCBjaGFuZ2U/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IE5vdCBzdXJlIC0tIGl0IG5lZWRzIHRv
IGJlIGNsZWFyIHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLXN1c3BlbmRl
ZCBpcyB0aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gbGFzdCBldmVudCBz
ZW50IGJlZm9yZSBzdXNwZW5kaW5nIGFuZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRp
b24tcmVzdW1lZCBpcyB0aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZmly
c3QgZXZlbnQgc2VudCBhZnRlciB0cmFuc2l0aW9uIGZyb20gc3VzcGVuZGVkIHRvIGFjdGl2ZS4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIG5leHQgZXZlbnQgY291bGQg
YWxzbyBiZSBzdWJzY3JpcHRpb24tdGVybWluYXRlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGRvIHRoaW5rIHRo
aXMgcG9zc2liaWxpdHkgaXMgY292ZXJlZCBpbiB0aGUgdGV4dC4gIEZvcg0KPiA+ID4gPiA+ID4g
PiA+ID4gU2VjdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gMi43LjQNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQgdGhlIGN1cnJlbnQgdGV4dCBp
czoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiAiTm8gZnVydGhlciBub3RpZmljYXRpb24gd2lsbCBiZSBzZW50IHVudGls
IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uIHJlc3VtZXMNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+IG9yIGlzIHRlcm1pbmF0ZWQuIg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEFuZCBT
ZWN0aW9uIDIuNy41IHN1YnNjcmlwdGlvbi1yZXN1bWVkIHNheXMiOg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gIlN1YnNjcmliZWQgZXZlbnQgcmVjb3JkcyBnZW5lcmF0ZWQgYWZ0
ZXIgdGhlIGlzc3VhbmNlIG9mDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGlzDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlv
biBtYXkgbm93IGJlIHNlbnQuIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEJhc2VkIG9uIHRoZSBkaXNjdXNzaW9uLCBJ
IGNhbiBtYWtlIGl0Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJlY29yZHMgYXJlIGFn
YWluIHBlcm1pdHRlZCB0byBiZSBzZW50DQo+ID4gPiA+ID4gPiA+ID4gPiBmb2xsb3dpbmcNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHRoaXMgc3Vic2NyaXB0aW9uIHN0YXRlIGNo
YW5nZSBub3RpZmljYXRpb24uIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IElzIHRoaXMgc3VmZmljaWVudCBmb3IgeW91
Pw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEk0
KSBzZWMgMi40LjY6IFJQQyBGYWlsdXJlcw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ICAgLS0gY29uY2VybiBhYm91dCBhIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBlcnJvcg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcG9ydGluZyBzeXN0ZW0NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIG11c3QgbWFrZSBzdXJlIHByb3RvY29sIGVycm9yIHJl
cG9ydGluZyBzeXN0ZW0gaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB1c2VkDQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29ycmVjdGx5DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFllcy4g
IFdlIGhhdmUgZG9uZSBvdXIgYmVzdCB0byBpbnRlZ3JhdGUgd2l0aCB0aGUNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gZW1iZWRkZWQgTkVUQ09ORg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBhbmQgUkVTVENPTkYgbWVjaGFuaXNtcy4gIFRoZXJlIGlzIG11Y2ggYWRkaXRpb25hbA0K
PiA+ID4gPiA+ID4gPiA+ID4gPiBpbmZvcm1hdGlvbiBpbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiB0aGUgdHJhbnNwb3J0IGRyYWZ0cyBoZXJlLg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgLS0gVGhlIGVycm9yLXRhZyB2YWx1ZSBuZWVkcyB0byBiZSBpZGVudGlmaWVkIGZvciBlYWNo
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSAncmVhc29uJw0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGlkZW50aXR5DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgaXMgZG9uZSBp
biB0aGUgdHJhbnNwb3J0IGRyYWZ0cy4gIEUuZy4sIHNlZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC0NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9ucyBTZWN0aW9uIDcNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gSSBkbyBub3QgYWdyZWUgdGhpcyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gRWFjaCBlcnJvciBpZGVudGl0eSBzaG91bGQgc2ltcGx5
IHN0YXRlIHRoZSByZXF1aXJlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAiZXJyb3ItdGFnIg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0
aGUgZXJyb3IuICBUaGlzIGlzIGV4cGVjdGVkIG9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHByb3Rv
Y29sDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IG9wZXJhdGlvbnMgdGhhdCBh
cmUgYWRkZWQgdG8gTkVUQ09ORiBhbmQgUkVTVENPTkYuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSW4gZHJhZnQtaWV0
Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucywgc2VjdGlvbg0KPiA+ID4gPiA+
ID4gPiA+ID4gNywgdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJl
ZCAiZXJyb3ItdGFnIiBpcyBpZGVudGlmaWVkIGFzICJvcGVyYXRpb24tZmFpbGVkIi4NCj4gPiA+
ID4gPiA+ID4gPiA+IElmIHdlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBpbnN0
ZWFkIHBsYWNlZCB0aGF0ICJlcnJvci10YWciIGluZm9ybWF0aW9uIGluIHRoZSBZQU5HDQo+ID4g
PiA+ID4gPiA+ID4gPiBtb2RlbCwgdGhlbiB3ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gaGF2ZSB0aWVkIHRoZSBZQU5HIG1vZGVsIHRvIHRoZSBSRVNUQ09ORiBhbmQgTkVUQ09O
Rg0KPiA+IHRyYW5zcG9ydHMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBCb3RoIE5FVENPTkYgYW5kIFJFU1RDT05G
IHVzZSBhIGNvbXBhdGlibGUgZXJyb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwb3J0aW5nIGRh
dGENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0dXJlLg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgImVycm9yLXRhZyIgaXMgdXNlZCBpbiBi
b3RoIG9mIHRoZW0uICBJTU8gY2xpZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRldmVsb3BlcnMg
ZG8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gbm90IHdhbnQgYSBkaWZmZXJl
bnQgc2V0IG9mIGVycm9yIGNvZGVzIGZvciB0aGUgc2FtZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBl
cnJvciBjb25kaXRpb25zLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29uZi1u
b3RpZiBTZWN0aW9uIDMuMyBhbHNvDQo+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJlcyBhbg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gImVycm9yLXRhZyIgbm9kZSBvZiAib3BlcmF0
aW9uLWZhaWxlZCIuICBTbyB3ZSB1c2VkIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBkcmFmdHMgcmF0aGVyIHRoYW4gdGhl
IFlBTkcgbW9kZWwgdG8gc3VwcG9ydCB0aGUgc2FtZQ0KPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3Ig
Y29kZXMgZm9yDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUgc2FtZSBlcnJv
ciBjb25kaXRpb25zLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRyYW5zcG9ydCBkcmFmdHMg
Y291bGQgZGVmaW5lIHRoZWlyIG93bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBlcnJvcg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGl0aWVzLCB3aGljaCB3b3VsZCBkb2N1
bWVudCB0aGUgZXhwZWN0ZWQgZXJyb3ItdGFnDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZXJlLg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIDIu
ICAibW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyI6IFRoaXMNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBNVVNUIGJlIHJldHVybmVkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gICAgICAgIHdpdGggdGhlIGxlYWYgInJlYXNvbiIgcG9wdWxhdGVkIGlmIGFu
IFJQQw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGVycm9yIHJlYXNvbiBoYXMgbm90DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIGJlZW4gcGxhY2VkIGVsc2V3aGVy
ZSB3aXRoaW4gdGhlIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBvcnRpb24gb2Yg
YSBmYWlsZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIm1v
ZGlmeS1zdWJzY3JpcHRpb24iIFJQQyByZXNwb25zZS4gIFRoaXMgTVVTVA0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IGJlIHNlbnQgaWYNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBoaW50cw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBhbGwgMyBwYXJhZ3JhcGhzIGxpa2UgdGhp
czsgdW5jbGVhciB3aGF0ICJwbGFjZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIGVsc2V3
aGVyZSINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICB0ZXh0IG1l
YW5zOyBub3QgYXBwcm9wcmlhdGUgZm9yIE1VU1Q7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEluc3RlYWQgb2Yg
InBsYWNlZCBlbHNld2hlcmUiLCBob3cgYWJvdXQ6ICJwbGFjZWQgaW4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gc3Vic2NyaXB0aW9uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRy
YW5zcG9ydCBkb2N1bWVudCBkZWZpbmVkIG9iamVjdCIuICBXb3VsZCB0aGlzIGJlDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IHN1ZmZpY2llbnQ/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IE5vIC0tIE5FVENPTkYgYW5k
IFJFU1RDT05GIGhhdmUgd2VsbC1kZWZpbmVkIGVycm9yIHJlcG9ydGluZy4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHNlcnZlciByZXF1aXJlbWVudHMgZm9yIHRoaXMg
ZXJyb3IgcmVwb3J0aW5nIG11c3QgYmUNCj4gPiA+ID4gZG9jdW1lbnRlZC4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gSSBhZ3JlZSB3aXRoIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2g6DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ICAgLSBlYWNoIG9wZXJhdGlvbiBNVVNUIGlkZW50aWZ5IHRoZSBl
cnJvci10YWdzIHRoYXQgYXJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGV4cGVjdGVkIGZvcg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgdmFyaW91cyBlcnJvciBjb25kaXRp
b25zIChzdWNoIHMgaXMgZG9uZSBpbiBSRkMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gNjI0MSkNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtIHRoZSBzZXJ2ZXIgTVVTVCByZXR1
cm4gdGhlIHNwZWNpZmllZCBlcnJvci10YWdzLiBJZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhIGNv
bmRpdGlvbiBub3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtIGV4cGxp
Y2l0bHkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIGRlZmluZWQgdGhl
biB0aGUgc2VydmVyIE1VU1QgcGljayB0aGUgYXBwcm9wcmlhdGUNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gZXJyb3ItdGFnIGZyb20gUkZDDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgICA2MjQxDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAtIHRoZSBzZXJ2
ZXIgTUFZIGluY2x1ZGUgdGhlIHNwZWNpZmllZCByYzp5YW5nLWRhdGEgaW4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxlcnJvci1p
bmZvPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgLSBkYXRhDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN0cnVjdHVyZQ0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiAgLSB0aGUgc2VydmVyIE1VU1QgdXNlIHRoZSBhcHByb3ByaWF0ZSBy
Yzp5YW5nLWRhdGEgdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwb3J0IGhpbnRzDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAtIGZvciBwcm90b2NvbHMgb3RoZXIgdGhhbiBO
RVRDT05GIGFuZCBSRVNUQ09ORiwgdGhleQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjYW4gbWFwDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGVycm9yLXRhZw0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgLSBvcg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBpZ25vcmUgaXQsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
IGJ1dCB0aGUgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHByb3RvY29sIG9wZXJhdGlvbiBNVVNUDQo+
ID4gPiA+ID4gPiA+ID4gPiA+IHByb3ZpZGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGdW5jdGlvbmFsbHksIGV2ZXJ5
dGhpbmcgeW91IGFzayBmb3IgaXMgZnVsbHkgY292ZXJlZCB3aGVuDQo+ID4gPiA+ID4gPiA+ID4g
PiB5b3UgaW5jbHVkZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gY29uc2lkZXIg
ZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucw0KPiA+ID4gPiA+
ID4gPiA+ID4gKHNlY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiA+IDcpDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiBhbmQgZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIChz
ZWN0aW9uIDMuMykuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gTXkgcmVhZCBvZiB0aGUgaXNzdWUgaXMgdGhhdCB5b3Ug
YmVsaWV2ZSAiZXJyb3ItdGFnIiBtdXN0DQo+ID4gPiA+ID4gPiA+ID4gPiBiZSBzcGVjaWZpZWQN
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IGluIHRoZSBZQU5HIG1vZGVsLiAgSSBi
ZWxpZXZlIHRoYXQgImVycm9yLXRhZyIgc2hvdWxkbid0DQo+ID4gPiA+ID4gPiA+ID4gPiBiZSBp
biB0aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFlBTkcgbW9kZWwgYmVjYXVz
ZSB0aGF0IHdvdWxkIHRpZSB0aGUgbW9kZWwgdG8gYSB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4g
PiA+IHR5cGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gQW55IHRob3VnaHRzIG9uIGhvdyB3ZSBtaWdodCBjbG9zZSB0
aGlzPyAgSWYgYWJzb2x1dGVseQ0KPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZWQgSQ0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gY291bGQgcGxhY2UgYSBuZXcgY29tbWVudCBsaW5l
IGluIHRoZSBZQU5HIG1vZGVsIHVuZGVyDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAvKiBJZGVudGl0aWVzIGZvciBSUEMgYW5kIE5vdGlmaWNhdGlvbiBlcnJvcnMgKi8NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBUaGUgY29tbWVudCB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZToNCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+IC8qIFdoZW4gdXNlZCB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05G
IFJQQ3M6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgImVycm9yLXR5cGUi
IG5vZGUgdG8gYmUgdXNlZCBpcyAiYXBwbGljYXRpb24iDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiAgICAgICJlcnJvci10YWciIG11c3QgYmUgIm9wZXJhdGlvbi1mYWlsZWQiLiAg
Ki8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiBUaGlzIHNlZW1zIGluY29uZ3J1b3VzLiAgSnVzdCB0aHJvd2luZyBpdCBv
dXQgYXMgYSBzdWdnZXN0aW9uLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSW4gYW55IGNhc2UsIHRoZSAtdjIxIHdv
cmRpbmcgcmVzdWx0cyBmcm9tIHRoZSBhdHRlbXB0ZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmFs
YW5jaW5nDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBXRyByZXF1ZXN0
cyBmb3I6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICogbWVyZ2luZyB3aXRo
IHRyYW5zcG9ydCBwcm90b2NvbCBlcnJvciBtZWNoYW5pc21zDQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICogV0cgbGVhZGVyc2hpcCBndWlkYW5jZSB0byBwcm92aWRlIHJlcXVp
cmVtZW50cyBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50cw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgT25s
eSAzIGZpZWxkcyBzZWVtDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAg
ICAgdG8gYmUgcmVsZXZhbnQgKGVycm9yLXRhZywgZXJyb3ItYXBwLXRhZywNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICAgICBlcnJvci1pbmZvKS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICAgICBQcm90Y29sIG9wZXJhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGRvY3Vt
ZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VydmVyIHJlcXVpcmVtZW50cw0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIGZvciB0aGVzZSAzIGZpZWxkcywgaWYg
YXBwbGljYWJsZS4gIE9ubHkgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3ItdGFnDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgaXMgbWFuZGF0b3J5LXRv
LXVzZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gSG9wZWZ1bGx5IHRoZXNlIGFyZSBjb3ZlcmVkIHN1ZmZpY2ll
bnRseSB3aGVuIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnQgaXMNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY291cGxlZCB3aXRoIHRoZSBORVRDT05GIGFuZCBS
RVNUQ09ORiBOb3RpZiB0cmFuc3BvcnQNCj4gPiA+ID4gZG9jdW1lbnRzLg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBGb3Igb3RoZXIgdHJhbnNwb3J0cywgdGhlIHRhZ3MgeW91
IGlkZW50aWZ5IGFib3V0IHdvdWxkDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG5vdCBiZQ0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhYmxlLg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgLS0gdGhlIGVycm9yIGFzc2lnbm1lbnRzIGFyZSBleHRyZW1lbHkgc3BlY2lmaWMuDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gZS5nLiwgaXQgaXMgbm90DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgICBwb3NzaWJsZSBmb3IgPGtpbGwtc3Vic2NyaXB0aW9uPiB0byBm
YWlsIHdpdGggYW4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICdp
bnN1ZmZpY2llbnQtcmVzb3VyY2VzJyBlcnJvcjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBpcyB0aGUg
aW50ZW50IG9mIHRoZSBiYXNlIHNwZWNpZmljYXRpb24sIGUuZy4sIHdlDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IGRvbid0IGJlbGlldmUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
YQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBraWxsLQ0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24gc2hvdWxkIGZhaWwgZm9yIGFuIGlu
c3VmZmljaWVudC1yZXNvdXJjZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVhc29uLg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBCdXQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdmVu
ZG9ycyBtaWdodCBkZXNpcmUgbW9yZSBzcGVjaWZpY2l0eS4gIEFzIGEgcmVzdWx0IGlzDQo+ID4g
PiA+ID4gPiA+ID4gPiA+IGNlcnRhaW5seSBvaw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBmb3IgdmVuZG9yIGltcGxlbWVudGF0aW9ucyB0byBhZGQgbmV3IGVycm9yIGlkZW50
aXRpZXMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IElNTyBhbnl0aGluZyBjYW4gZmFpbCBmb3IgaW5zdWZmaWNp
ZW50IHJlc291cmNlcy4gVGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyB2ZXJ5DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uLQ0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzcGVjaWZpYy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIGlt
cGxlbWVudGF0aW9uIHNwZWNpZmljIEkgd291bGQgY2FsbCBpdA0KPiA+ID4gPiA+ID4gPiA+ID4g
YXBwbGljYXRpb24NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljLiAg
UmlnaHQgbm93IHdlIGRvbid0IGhhdmUgYSBjYXRjaC1hbGwNCj4gPiA+ID4gPiA+ID4gPiA+IGVy
cm9yLWlkZW50aXR5IG9mDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAnb3RoZXIt
ZXJyb3InLiAgV2UgcHJlZmVycmVkIHRoYXQgZXJyb3IgY29uZGl0aW9ucyBiZXlvbmQNCj4gPiA+
ID4gPiA+ID4gPiA+IHRoZSBjdXJyZW50DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBvbmVzIGxpc3RlZCBjb3VsZCBiZSBpbmNsdWRlZCBieSB2ZW5kb3JzIGFzIG5lZWRlZC4NCj4g
PiA+ID4gPiA+ID4gPiA+IEZ1cnRoZXINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
IGRlcGxveW1lbnQgZXhwZXJpZW5jZSBjb3VsZCByZXN1bHQgaW4gbmV3IGVycm9yIGlkZW50aXRp
ZXMNCj4gPiA+ID4gPiA+ID4gPiA+IHN1cmZhY2luZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gZm9yIHN0YW5kYXJkaXphdGlvbiBzaG91bGQgdGhpcyBkcmFmdCBjYXRjaCBvbi4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgICBEbyBub3QgYWdyZWUgdGhhdCBzY29waW5nIGVhY2gNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIGlkZW50aXR5IHRvIHNwZWNpZmlj
IFJQQyBvcGVyYXRpb25zIGlzIGEgZ29vZCBpZGVhLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGxldmVs
IG9mIHNwZWNpZmljaXR5IHdhcyBub3QgdGhlIGF1dGhvcidzIG9yaWdpbmFsDQo+ID4gPiA+ID4g
PiA+ID4gPiA+IHBsYW5zLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBOb3INCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gd2FzIHRoaXMgbGV2ZWwgb2Ygc3BlY2lmaWNpdHkgcGFydCBv
ZiBlYXJsaWVyIGRyYWZ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHZlcnNpb25zIHVwDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRocm91Z2ggLXYwOC4gIEhvd2V2ZXIgbWVtYmVy
cyBvZiB0aGUgV0cgbWFkZSBpdCBjbGVhcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IHN1Y2gN
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3BlY2lmaWNpdHkgd2FzIG5lY2Vz
c2FyeSBmb3IgZHJhZnQgcHJvZ3Jlc3Npb24uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBob3cgYXJl
IGVycm9ycyBpbiB0aGVzZSBwYXJhbWV0ZXJzIHJlcG9ydGVkIGZvcg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IGNvbmZpZ3VyZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgIHN1YnNjcmlwdGlvbnMgd2hlbiA8ZWRpdC1jb25maWc+IGlzIHRoZSBSUEMgdGhhdCBoYXMN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
ICAgZXJyb3I/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBIb3cg
YXJlIHRoZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IGVkaXQtY29uZmlnIG9yIGNvbW1pdA0KPiA+ID4gPiA+ID4gZXJyb3JzPw0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBOb25lIG9mIHRoZXNlIHlhbmctZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzcGVjaWZpZWQgZm9yIHVz
ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+IDxlZGl0LWNvbmZpZz4gb3BlcmF0aW9ucy4gIEZvciA8ZWRpdC1jb25maWc+LCB0aGUg
Y2hhbmdlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRvIGENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gY29uZmlndXJlZCBzdWJzY3JpcHRpb24gd291bGQgYmUgd3JpdHRlbiB0byB0
aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZGF0YXN0b3JlIGlmIGl0IHdlcmUNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc2VtYW50aWNhbGx5IHZhbGlkLiAgQXQgdGhpcyBwb2lu
dCB0aGUgc3Vic2NyaXB0aW9uDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGVudGVycyB0aGUNCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gW2V2YWx1YXRlXSBwb2ludHMgb2YgRmlndXJl
IDguICBJc3N1ZXMgZnJvbSB0aGlzIHBvaW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+IG91dCB3b3Vs
ZCBiZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRlZCB3aXRoIGEg
dmVuZG9yIHNwZWNpZmljIGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xPRy4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
U28gaG93IGFyZSBoaW50cyByZXBvcnRlZCBmb3IgY29uZmlndXJlZCBzdWJzY3JpcHRpb25zPw0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+IFRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHNwZWNpZmljYXRpb24gd2hpY2ggcmVx
dWlyZXMgdGhpcy4NCj4gPiA+ID4gPiA+ID4gPiA+IEFuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBjaG9vc2UgdG8gcGxhY2UgdGhlc2UgaW4g
c29tZSBmb3JtIG9mDQo+ID4gU1lTTE9HLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gLi4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSTYpIHNlYyAyLjUs
IHBhcmEgMzoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIE9uIGEgcmVjZWl2ZXIgb2YgYQ0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9u
LCBzdXBwb3J0IGZvciBkeW5hbWljDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9u
cyBpcw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIG9wdGlvbmFsIGV4
Y2VwdCB3aGVyZSByZXBsYXlpbmcgbWlzc2VkIGV2ZW50IHJlY29yZHMgaXMNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICByZXF1aXJlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gY29uZnVzaW5n
IGJlY2F1c2UgdGV4dCBpbiAxLjM6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gICAgICBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gbWl4aW5nLWFuZC1tYXRjaGluZyBvZg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGR5bmFtaWMgYW5kIGNvbmZpZ3VyZWQNCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIG9wZXJhdGlvbnMgb24gYSBzaW5nbGUgc3Vic2Ny
aXB0aW9uLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNwZWNpZmljYWxseSwgYSBjb25maWd1cmVk
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBjbGFyaWZ5IHRoZSBy
ZWNlaXZlciBtYXkgaGF2ZSBtdWx0aXBsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlw
dGlvbnMgaGVyZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gbm90
IGNsZWFyIHdoYXQgImV4Y2VwdCB3aGVyZSByZXBsYXlpbmcuLi4iIHRleHQNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiBtZWFucw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyB0
d2VhazoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gIk9uIGEgcmVjZWl2ZXIgb2YgYSBjb25maWd1cmVkIHN1YnNj
cmlwdGlvbiwgc3VwcG9ydCBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gZHluYW1pYw0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb25zIGlzIG9wdGlvbmFsLiAg
SG93ZXZlciBpZiByZXBsYXlpbmcgbWlzc2VkDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGV2ZW50DQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlY29yZHMgaXMgcmVxdWlyZWQgZm9y
IGEgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN1cHBvcnQg
Zm9yDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGR5bmFtaWMgc3Vic2NyaXB0
aW9uIGlzIGhpZ2hseSByZWNvbW1lbmRlZC4gIEluIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
Y2FzZSwgYQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzZXBhcmF0ZSBkeW5h
bWljIHN1YnNjcmlwdGlvbiBjYW4gYmUgZXN0YWJsaXNoZWQgdG8NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gcmV0cmFuc21pdCB0aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gbWlz
c2luZyBldmVudCByZWNvcmRzLiINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gT0sNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBDaGFuZ2Ug
bWFkZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gSTcpIGxlYWYgc3RyZWFtLXhwYXRoLWZpbHRlcjogW211bHRp
cGxlIHVzZXNdDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgIFRoZSBleHByZXNzaW9uIGlz
IGV2YWx1YXRlZCBpbiB0aGUgZm9sbG93aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAg
ICAgICBYUGF0aA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgY29udGV4dDoNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICBvIFRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xh
cmF0aW9ucyBpcyB0aGUgc2V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgIG9m
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgIHByZWZpeA0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgYW5kIG5hbWVzcGFjZSBw
YWlycyBmb3IgYWxsIFlBTkcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtb2R1bGVzIGltcGxlbWVu
dGVkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg
ICBieSB0aGUgc2VydmVyLCB3aGVyZSB0aGUgcHJlZml4IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gdGhlIFlBTkcgbW9kdWxlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
ICAgICAgICAgICAgICAgICBuYW1lIGFuZCB0aGUgbmFtZXNwYWNlIGlzIGFzIGRlZmluZWQNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiBieSB0aGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UnIHN0YXRlbWVudCBpbiB0aGUgWUFO
RyBtb2R1bGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIFRoaXMgcHJlZml4IHByb2Nlc3Npbmcg
aXMgbm90IGRvbmUgYW55d2hlcmUgZWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluIE5FVENP
TkYNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIG9yIFJFU1RDT05G
LiAgSU1PIGEgYmFkIHByZWNlZGVudC4gIE9ubHkgdGhlIFhNTA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IHByZWZpeGVzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBz
aG91bGQgYmUgcmVxdWlyZWQgZm9yIHByb2Nlc3Npbmcgb2YgWE1MIGVuY29kaW5nLg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IFlBTkcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiAgICAgIG1vZHVsZSBwcmVmaXhlcyBhcmUgbm90IHJlcXVpcmVkIHRvIGJlIHVuaXF1ZSwNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiB1bmxpa2UNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgICAgIHRoZSBwcmVmaXggbWFwcGluZ3MgaW4gWE1MDQo+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRo
aXMgdGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9mIHRoZQ0KPiA+ID4g
PiA+ID4gPiA+ID4gPiAieHBhdGgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
ZXhwcmVzc2lvbnMgaW4gSlNPTiINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
dGhyZWFkIGxhc3QgT2N0b2JlciBpbiBORVRNT0QuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEkgYW0gaGFwcHkg
dG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0ZS4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gSSB3YXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gaG9waW5n
IHRoYXQgdGhlIHN1Z2dlc3RlZCB0ZXh0IHdhcyBzdWZmaWNpZW50IGZvciBub3cuDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IEtlbnQgaGFzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMgYW4gaXNzdWUgZm9yIHlhbmctbmV4dA0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmV0bW9k
LXdnL3lhbmctbmV4dC9pc3N1ZXMvNTUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gU28gaG9wZWZ1bGx5IHRoZXJlIGlzIG5vIGZpbmFsIHByZWNlZGVudCBiZWluZyBjbGFpbWVk
Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBJIGRvIG5vdCBhZ3JlZSB0aGF0IHRoaXMgWUFORyBtb2R1bGUgc2hv
dWxkIGRlZmluZSBhIG5ldw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3YXkgdG8NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RlIFhQYXRoIGludG8gWE1MIGluc3RhbmNlIGRv
Y3VtZW50cy4gVGhpcyB3aWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmUNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc2lnbmlmaWNhbnQgY2hhbmdlcyB0byBzZXJ2ZXIg
aW1wbGVtZW50YXRpb25zLiAgWUFORw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBtb2R1bGUgcHJlZml4
ZXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXJlIG5vdCBldmVuIHJlcXVp
cmVkIHRvIGJlIHVuaXF1ZSBzbyB0aGUgc2V0IG9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHByZWZp
eGVzIHVzZWQgYnkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHNlcnZl
ciBpbiBYTUwgaW5zdGFuY2UgZG9jdW1lbnRzIG1heSBiZSBkaWZmZXJlbnQsDQo+ID4gPiA+ID4g
PiA+ID4gPiA+IHNpbmNlIGl0IG11c3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gYmUgdW5pcXVlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFNlZSBuZXh0IG5vdGUNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAt
LSBOTURBIGFsbG93cyB0aGUgc2FtZSBtb2R1bGUgdG8gYXBwZWFyIGluIG11bHRpcGxlDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gbW9kdWxlLXNldHMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICAgIGFuZCBkaWZmZXJlbnQgaW4gZWFjaCBkYXRhc3RvcmUuIFRoaXMgdGV4
dCBhYm91dA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICJpbXBsZW1lbnRlZCBieQ0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgdGhlIHNlcnZlciIgZG9lcyBub3Qgd29y
ayBmb3IgTk1EQQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGhhcHB5IHRvIGFkb3B0IHdoYXRldmVyIHRl
eHQgbWVldHMgWUFORyBkb2N0b3IgYXBwcm92YWwuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IENhbg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB5b3Ugc3VnZ2VzdD8NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gUmVtb3ZlIGFsbCB0ZXh0
IGFib3V0IFlBTkcgcHJlZml4ZXMgYW5kIGNvbnRpbnVlIHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4g
PiA+IFhNTCBlbmNvZGluZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3aXRo
b3V0IG1vZGlmaWNhdGlvbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhh
cyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0DQo+ID4gPiA+ID4gPiA+ID4gPiBtb2RpZmljYXRp
b24sDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGJlbGlldmUgdGhpcyBpcyBh
IGJsb2NrZXIuICBXaGF0IGlzIHRoZSBwcm9jZXNzIGZvciBZQU5HDQo+ID4gPiA+ID4gPiA+ID4g
PiBtb2RlbA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gcmV2aWV3cyBpbiBzdWNo
IGEgY2FzZS4gIEkgYW0gaGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuDQo+ID4gPiA+ID4g
PiA+ID4gPiBBbnkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHN1Z2dlc3Rpb25z
IG9uIG5leHQgc3RlcHM/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gLi4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUgYW4gZXhhbXBsZSBvZiBhIGNvbmZpZ3Vy
YWJsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGVuY29kaW5nDQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSSBhbSBoYXBweSB0byBl
bmhhbmNlIHRoZSBkZWZpbml0aW9uIFlBTkcgbW9kZWwncw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBp
ZGVudGl0eQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkZWZpbml0aW9uIG9m
ICJjb25maWd1cmFibGUtZW5jb2RpbmciLiAgSSBjb3VsZCBkbyB0aGlzDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IGJ5IGFkZGluZw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUg
Zm9sbG93aW5nIGFkZGl0aW9uYWwgdGV4dCB0byB0aGUgZGVzY3JpcHRpb246ICJBbg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBleGFtcGxlIG9mIGENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gY29uZmlndXJhYmxlIGVuY29kaW5nIG1pZ2h0IGJlIGEgbmV3IGlkZW50aXR5IHN1Y2gg
YXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gJ2VuY29kZS1jYm9yJy4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gU3VjaCBhbiBpZGVudGl0eSBjb3VsZCB1c2UNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gJ2NvbmZpZ3VyYWJsZS0NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RpbmcnIGFzIGl0cyBiYXNlLiAgVGhpcyB3b3VsZCBhbGxv
dyBhIGR5bmFtaWMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uDQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGVuY29kZWQgaW4gSlNPTiBbUkZDLTgyNTldIHRvIHJl
cXVlc3Qgbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG1lc3NhZ2VzIGJlDQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGVuY29kZWQgdmlhIENCT1IgW1JGQy0gNzA0
OV0uICBGdXJ0aGVyIGRldGFpbHMgZm9yIGFueQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzcGVjaWZp
Yw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmFibGUgZW5jb2Rp
bmcgd291bGQgYmUgZXhwbG9yZWQgaW4gYSB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
ZG9jdW1lbnQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmFzZWQgb24gdGhp
cyBzcGVjaWZpY2F0aW9uLiIgIERvZXMgdGhpcyBtZWV0IHlvdXIgYXNrPw0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBPSw0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEFkZGVk
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IEkxMSkgZXh0ZW5zaW9uIHN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmlj
YXRpb24gew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIFRoaXMgc3RhdGVtZW50IGlzIG5vdCBm
b3IgdXNlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIG91dHNp
ZGUgb2YgdGhpcyBZQU5HIG1vZHVsZS4iOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSB0aGlzIHRl
eHQgc2hvdWxkIGJlIHJlbW92ZWQuIFRoZXJlIGlzIG5vIHZhbHVlIGluDQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gbGltaXRpbmcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgIHRoZSBzY29wZSBvZiB0aGlzIGV4dGVuc2lvbi4gIEl0IHByZXZlbnRzIGV2ZW4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiB0aGlzIFdHIGZyb20NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICAgIGNyZWF0aW5nIGEgbW9kdWxlIHRoYXQgdXNlcyB0aGUgZXh0ZW5zaW9u
IGFnYWluLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHdhcyB0aGUgc3ViamVjdCBvZiBzaWduaWZpY2Fu
dCBkZWJhdGUgaW4gdGhlIFdHLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgYXV0aG9ycw0KPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkaWQgbm90IHdhbnQgdGhpcyByZXN0cmlj
dGlvbiBlaXRoZXIuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRvIGJlIGFsbG93ZWQgdG8gcHJvZ3Jlc3MgdGhl
IGRvY3VtZW50LCB3ZSBpbnNlcnRlZCB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnQu
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IElmIHRoaXMgcmVhbGx5IGlzIG1h
bmRhdG9yeS10by1yZW1vdmUgZnJvbSBhIFlBTkcgZG9jdG9yDQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIHF1
aWNrIGNsb3N1cmUgb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhpcyBpc3N1ZQ0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBiZXR3ZWVuIFdHIGxlYWRlcnNoaXAgYW5kIHRoZSBZ
QU5HIGRvY3RvcnM/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+IFRoZSBZQU5HIGxhbmd1YWdlIG1ha2VzIG5vIHJlc3RyaWN0aW9ucyBhYm91dCBleHBv
cnRpbmcNCj4gPiA+ID4gc3RhdGVtZW50cy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gSSBndWVzcyBJIG1pc3NlZCB0aGF0IGRlYmF0ZSBzbyBJIHdpbGwganVzdCBzYXkgT0sg
YW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHdvbmRlciB3aGF0DQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHByb2JsZW0gdGhpcyBpcyBzdXBwb3NlZCB0byBzb2x2ZS4gSSBndWVz
cyB0aGUgV0cgd2FudHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdG8gZ2l2ZSBZQU5HDQo+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IERvY3RvcnMgbW9yZSB0aGluZ3MgdG8gY2hlY2su
IChUaGlzIGlzIHdoYXQgd2UgY2FsbGVkIGENCj4gPiA+ID4gPiA+ID4gPiA+ID4gQ0xSIGluDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFNOTVAtbGFuZCA7LSkNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBUaGFua3MuICBObyBhY3Rpb24gdGFrZW4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEkxMykgICBub3RpZmlj
YXRpb24gc3Vic2NyaXB0aW9uLXN0YXJ0ZWQgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgICBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uOw0KPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICBpZi1mZWF0dXJlICJjb25maWd1cmVk
IjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgZGVzY3JpcHRpb24N
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAiVGhpcyBub3RpZmlj
YXRpb24gaW5kaWNhdGVzIHRoYXQgYSBzdWJzY3JpcHRpb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBoYXMgc3RhcnRlZCBhbmQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgICAgIG5vdGlmaWNhdGlvbnMgYXJlIGJlZ2lubmluZyB0byBiZSBzZW50LiBUaGlzDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uIHNoYWxsDQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIG9ubHkgYmUgc2VudCB0byByZWNlaXZlcnMgb2YgYSBz
dWJzY3JpcHRpb247IGl0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZG9lcyBub3QNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgY29uc3RpdHV0ZSBhIGdlbmVyYWwt
cHVycG9zZSBub3RpZmljYXRpb24uIjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gMm5kIHNlbnRl
bmNlIGlzIGNvbmZ1c2luZzsgYWxsIG5vdGlmaWNhdGlvbnMgYXJlDQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gc2VudCB0bw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAg
cmVjZWl2ZXJzIG9mIGEgc3Vic2NyaXB0aW9uLiBsYXN0IHBhcnQgaXMNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiByZWR1bmRhbnQgc2luY2UNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiAgICAgIHRoZSBzbjpzdWJzY3JpcHRpb24tc3RhdGUtbm90aWZpY2F0aW9uIGV4dGVuc2lv
bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGlzIHVzZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlcmUgaXMg
bm8gaXNzdWUgd2l0aCByZW1vdmluZyB0aGlzIHNlY29uZCBzZW50ZW5jZQ0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBjb21wbGV0ZWx5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJZg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGRpZCB0aGF0LCB3b3VsZCB0aGlzIGFkZHJlc3MgeW91
ciBjb25jZXJuPw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBPSw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IERvbmUNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gSTE0KSAgIHJjOnlhbmctZGF0YSBtb2RpZnktc3Vic2NyaXB0aW9uLXN0cmVhbS1lcnJvci1p
bmZvIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIGxlYWYgZmlsdGVyLWZhaWx1cmUtaGludCB7
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICB0eXBlIHN0cmlu
ZzsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZGVzY3Jp
cHRpb24NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAi
SW5mb3JtYXRpb24gZGVzY3JpYmluZyB3aGVyZSBhbmQvb3Igd2h5IGENCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBwcm92aWRlZCBmaWx0ZXINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiAgICAgICAgICAgICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLiI7
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgfQ0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gICAtLSBycGMtZXJyb3IgYWxyZWFkeSBhbGxvd3MgbW9yZSBwcmVjaXNlIGVycm9y
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwb3J0aW5nDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgICBJdCB1c2VzIGVycm9yLXRhZywgZXJyb3ItcGF0aCwgZXJyb3It
c3RyaW5nLCBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlcnJvci1pbmZvDQo+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBleHRlbnNpb25zDQo+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICB0byBpZGVudGlmeSB3aGljaCBwYXJhbWV0ZXJz
L2NvbmRpdGlvbnMgY2F1c2VkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIFJQQyB0byBiZQ0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgcmVqZWN0ZWQuDQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBUaGlzIGVycm9yIHJlcG9ydGlu
ZyB3aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTm90IHN1
cmUgdGhpcw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgZmFpbHVy
ZS1oaW50DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBoYXMgYW55
IHN0YW5kYXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFtcGxlDQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gY2FuIGJlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYWRk
ZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gUGVyIHlvdXIgdGhvdWdodHMgb24gcnBjLWVycm9yLi4uICBGb3Ig
TkVUQ09ORiBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gUkVTVENPTkYsIHlvdQ0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwb2ludCB0byBlcnJvciBzdHJ1Y3R1cmVzIHdoaWNo
IGhpc3RvcmljYWxseSBiZWVuIHVzZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gd2l0aCB0aG9zZQ0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnRzLg0KPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBPZiBjb3Vyc2UNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gd2Ugd2VyZSBsb29raW5nIHRvIGhhdmUgYWxsIHN1YnNjcmlwdGlvbiBo
aW50cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdXBwb3J0YWJsZSBhY3Jvc3MNCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0cyB2aWEgYSBzaW5nbGUgcG9ydGFibGUg
WUFORyBkYXRhIHN0cnVjdHVyZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU28gdGhlIHZhbHVlDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlzIHRoYXQgYSBzaW5nbGUgc3RyaW5n
IG9iamVjdCBleGlzdHMgc28gdG8gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHdoYXRl
dmVyIHRoZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB2ZW5kb3IgdGhpbmtz
IHdvdWxkIGJlIHVzZWZ1bCBhcyBhIGhpbnQgaW4gdGhpcyBjYXNlLg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBJLmUuLCB0aGVyZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoYXMg
YmVlbiBubyBhdHRlbXB0IHRvIHN0YW5kYXJkaXplIHRoZSBjb250ZW50cyBvZiB0aGlzDQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHN0cmluZy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSWYNCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gb3BlcmF0aW9uYWwgZXhwZXJpZW5jZXMgZHJpdmUg
YSBkZXNpcmUgZm9yIHN1Y2gNCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0dXJpbmcsIHRoaXMN
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY291bGQgcHJvdmlkZSB0aGUgYmFz
aXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0
aGlzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN0YXJ0aW5nIHBvaW50Lg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBJIGd1ZXNzIEkgZG8gbm90IGNvbnNpZGVyIE5FVENPTkYgYW5kIFJFU1RD
T05GDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICJoaXN0b3JpYyIgcXVpdGUNCj4gPiA+ID4geWV0Lg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGVyZSBhcmUgbWFueSBpbXBsZW1l
bnRhdGlvbnMgdXNpbmcgdGhlIHJwYy1lcnJvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRp
bmcgd2l0aCBubw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbnRlbnQgdG8g
cmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJIHdhcyBqdXN0
IGFza2luZyBmb3IgYW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlkZWENCj4gPiA+ID4gPiA+
ID4gPiA+ID4gd2hhdCBhbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbXBs
ZW1lbnRvciB3b3VsZCBwdXQgaW4gdGhpcyBsZWFmLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhlcmUgaXMgYW4gZXhh
bXBsZSBmcm9tIG91ciBpbXBsZW1lbnRhdGlvbi4gIFNheSB5b3UNCj4gPiA+ID4gPiA+ID4gPiA+
IG1pc3R5cGUgYW4gZXh0cmENCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICJcIiB0
byBhbiB4cGF0aCBmaWx0ZXI6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAvaWY6
aW50ZXJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVybmV0MC8wIl0vDQo+
ID4gPiA+ID4gPiA+ID4gPiBvcGVyDQo+ID4gPiA+ID4gPiA+ID4gPiAtc3RhDQo+ID4gPiA+ID4g
PiA+ID4gPiB0dXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEFzIGEgcmVzdWx0
LCB0aGUgZmlsdGVyIGlzIHBhc3NlZCB0byB0aGUgcHVibGlzaGVyIGlzOg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gL2lmOmludGVccmZhY2VzLXN0YXRlL2ludGVyZmFjZVtuYW1l
PSJHaWdhYml0RXRoZXJuZXQwLzAiXQ0KPiA+ID4gPiA+ID4gPiA+ID4gL29wZQ0KPiA+ID4gPiA+
ID4gPiA+ID4gci1zdA0KPiA+ID4gPiA+ID4gPiA+ID4gYXR1cw0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFdoYXQgd2Ug
d291bGQgcmV0dXJuIGluIHRoZSBmYWlsdXJlLWhpbnQgc3RyaW5nIGlzOg0KPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gSW52YWxpZCBleHByZXNzaW9uOiBvZmZzZXQoOSkgaW4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ICcvaWY6aW50ZVxyZmFjZXMtc3RhdGUvaW50
ZXJmYWNlW25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCINCj4gPiA+ID4gPiA+ID4gPiA+IF0vb3Bl
ci0NCj4gPiA+ID4gc3RhdHVzJw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEVyaWMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFuZHkNCg==


From nobody Thu Jan 24 12:35:14 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id C026013116D; Thu, 24 Jan 2019 12:35:02 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: netconf-chairs@ietf.org, netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.90.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <154836210277.29142.1271850007113086401.idtracker@ietfa.amsl.com>
Date: Thu, 24 Jan 2019 12:35:02 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/o4jjw60KLvaSZ960DkGQLoKWn2s>
Subject: [netconf] Network Configuration (netconf) WG Interim Meeting Cancelled (was 2019-02-06)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 20:35:08 -0000

The Network Configuration (netconf) virtual 
interim meeting for 2019-02-06 from 10:00 to 12:00 America/New_York
has been cancelled.





From nobody Thu Jan 24 15:05:06 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 457851311F1; Thu, 24 Jan 2019 15:05:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.642
X-Spam-Level: 
X-Spam-Status: No, score=-14.642 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 h846qw_wKb47; Thu, 24 Jan 2019 15:04:59 -0800 (PST)
Received: from alln-iport-1.cisco.com (alln-iport-1.cisco.com [173.37.142.88]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 666721311DE; Thu, 24 Jan 2019 15:04:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=87452; q=dns/txt; s=iport; t=1548371099; x=1549580699; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=oOiToGjZPA8Vtl//HrLSjbJngPueDULEIIgYREIUu+E=; b=Xu5gEix2NGm9JPSWrd5KICVStrIXJ2T9Uh/j8VodROaBE0D0dkKl2vOO s6sFP3eeYD7Vl1B7z27+tM5Hs9eUOJksPwHqAPL69/J1ipL08jK9fNT2o 1unLohedKOw6mE8V8T5cJcHJyNJ0bt+7XCAgyH8mujCBJ/PAmy41/lbOd k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAAAuREpc/5RdJa1aAQIHGQEBAQE?= =?us-ascii?q?BAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqDd4gai3OCDXyCSpR?= =?us-ascii?q?BFIFnCwEBI4RJAheCbCI0CQ0BAwEBAgEBAm0cDIVKAQEBAQIBGgEIEUMCEAI?= =?us-ascii?q?BCA4DBAEBAQICCRoDAgICMBQBCAgCBA4FCBOCPEyBeQgPrEOBL4otBYELizY?= =?us-ascii?q?XgUA/gRGCFEk1gx4CgTYBAw8CAyqCcoI1IgKJVQMICiYIA4FKhCkBgViEb4p?= =?us-ascii?q?7XAkChyiDW4cZIIFpiGqBMoYaixWEGokPglICERSBJx84gVZwFTuCbIInFxN?= =?us-ascii?q?tAQiCQopTQTGIYSmBBYEfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,518,1539648000"; d="scan'208";a="230804588"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by alln-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 23:04:57 +0000
Received: from XCH-RTP-005.cisco.com (xch-rtp-005.cisco.com [64.101.220.145]) by rcdn-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id x0ON4umQ002882 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 24 Jan 2019 23:04:57 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-005.cisco.com (64.101.220.145) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 18:04:55 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Thu, 24 Jan 2019 18:04:56 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwA==
Date: Thu, 24 Jan 2019 23:04:55 +0000
Message-ID: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com>
References: <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com> <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com> <20190124.201415.264860524194078371.mbj@tail-f.com>
In-Reply-To: <20190124.201415.264860524194078371.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.145, xch-rtp-005.cisco.com
X-Outbound-Node: rcdn-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/eZQba3i3-awkmiV5ykeRg2BToKg>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 23:05:05 -0000

PiAiRXJpYyBWb2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gIkVy
aWMgVm9pdCAoZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+ID4gPiBGcm9t
OiBNYXJ0aW4gQmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDk6NDAgQU0NCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbT4gd3JvdGU6DQo+
ID4gPiA+ID4gPiA+IEZyb206IE1hcnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjQsIDIwMTkgODox
NyBBTQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAiRXJpYyBWb2l0IChldm9pdCkiIDxl
dm9pdEBjaXNjby5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+IEhpIEFuZHksDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgdGhlIHRob3JvdWdoIFlBTkcgRG9jdG9yIHJldmlldy4g
IEkgaGF2ZQ0KPiA+ID4gPiA+ID4gPiA+IGluY2x1ZGVkIHRoZQ0KPiA+ID4gPiA+ID4gPiBhZ3Jl
ZWQgdXBvbiBjb21tZW50cywgYW5kIHVwbG9hZGVkIHRvOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy0y
Mg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gYSBzdW1tYXJ5IG9mIHRoZSBjbGFy
aWZpY2F0aW9ucyBtYWRlIGlzIGF0IHRoZSBlbmQgb2YgdGhlDQo+IGRvY3VtZW50Lg0KPiA+ID4g
PiA+ID4gPiA+IExldCBtZSBrbm93IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVlZGVkIHRvIGNv
bmNsdWRlIHRoZSBZQU5HDQo+ID4gPiA+ID4gPiA+ID4gZG9jdG9yIHJldmlldyBvZiB0aGlzIGRv
Y3VtZW50Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+IEFsc28gYXMgdGhlIHJlc3VsdCBvZiB0aGUg4oCYZXJyb3ItdGFn
4oCZIGRpc2N1c3Npb24gd2l0aCB5b3UgYW5kDQo+ID4gPiA+ID4gPiA+ID4gTWFydGluLCB3ZSBu
ZWVkIHRvIHBlcmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmQ0KPiA+
ID4gPiA+ID4gPiA+IG1hcHBpbmcgd2l0aGluIGJvdGgNCj4gPiA+ID4gPiA+ID4gPiBkcmFmdC1p
ZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVudC1ub3RpZmljYXRpb25zDQo+ID4gPiA+ID4gPiA+ID4g
U2VjdGlvbg0KPiA+ID4gPiA+ID4gPiA+IDcsIGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNv
bmYtbm90aWYgU2VjdGlvbiAzLjMuICAgRGlyZWN0bHkNCj4gPiA+ID4gPiA+ID4gPiBiZWxvdyBp
cyBzb21lIHRleHQgYW5kIHByb3Bvc2VkIGVycm9yLXRhZyBtYXBwaW5ncyBmb3IgdGhvc2UNCj4g
PiA+ID4gPiA+ID4gPiBkb2N1bWVudHMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgIG8gIEFuICJlcnJvci10YWci
IG5vZGUgd2l0aCB0aGUgdmFsdWUgYmVpbmcgYSBzdHJpbmcgdGhhdA0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgIGNvcnJlc3BvbmRzIHRvIGFuIGlkZW50aXR5IGFzc29j
aWF0ZWQgd2l0aCB0aGUgZXJyb3IuDQo+ID4gPiA+ID4gPiA+ID4gVGhpcw0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICJlcnJvci10YWciIHdpbGwgY29ycmVzcG9uZCB0
byB0aGUgZXJyb3IgaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4gPiA+IHdpdGhpbg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1
YnNjcmliZWQtbm90aWZpY2F0aW9uc10NCj4gPiA+ID4gPiA+ID4gPiBzZWN0aW9uDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgMi40LjYgZm9yIGdlbmVyYWwgc3Vic2Ny
aXB0aW9uIGVycm9yczoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZXJyb3IgaWRlbnRpdHkgICAgICAg
ICB1c2VzIGVycm9yLXRhZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAg
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICBkc2NwLXVuYXZhaWxhYmxlICAgICAgIGludmFs
aWQtdmFsdWUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT2suICBCdXQgaXQgaXMgbm90
IGNsZWFyIHRvIG1lIHdoZW4gdGhpcyBlcnJvciBpcyBhY3R1YWxseQ0KPiA+ID4gPiA+ID4gPiBz
dXBwb3NlZCB0byBiZSBnZW5lcmF0ZWQ/ICBUaGUgbGVhZiBhbmQgaWRlbnRpdHkgaGF2ZSB0aGUg
c2FtZQ0KPiA+ID4gPiA+ID4gPiBpZi1mZWF0dXJlLCBzbyBpdCBpc24ndCBhIHNwZWNpYWwgZXJy
cm8gY29kZSBmb3IgInVuc3VwcG9ydGVkIGxlYWYiLA0KPiA+ID4gPiA+ID4gPiB3aGljaCBpcyBn
b29kIQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGVuIEkgaGF2ZSB0byBhc3N1bWUg
aXQgaXMgc3VwcG9zZWQgdG8gYmUgc29tZSBraW5kIG9mIHJ1bnRpbWUNCj4gPiA+ID4gPiA+ID4g
ZXJyb3I/DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gWWVzLiAgQSBwdWJsaXNoZXIsIG5vciB0
aGUgbmV0d29yayB0byB3aGljaCBpcyBjb25uZWN0cyBkb2VzIG5vdA0KPiA+ID4gPiA+ID4gaGF2
ZQ0KPiA+ID4gPiA+ID4gdG86DQo+ID4gPiA+ID4gPiAoYSkgc3VwcG9ydCBhbGwgRFNDUCB2YWx1
ZXMsIG5vcg0KPiA+ID4gPiA+ID4gKGIpIGFsbG93IGEgcGFydGljdWxhciB2YWx1ZSByZXF1ZXN0
ZWQgYnkgYSBwYXJ0aWN1bGFyIHN1YnNjcmliZXIsDQo+ID4gPiA+ID4gPiBTbyB0aGlzIGNvbmRp
dGlvbiBhbGxvd3MgYSBwdWJsaXNoZXIgdG8gcmVqZWN0IGEgcmVxdWVzdCBmb3IgYQ0KPiA+ID4g
PiA+ID4gRFNDUCB2YWx1ZSB3aGVyZSBpcyBrbm93cyB0aGUgdmFsdWUgd2lsbCBub3QgYmUgcmVz
cGVjdGVkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gR29vZCBleHBsYW5hdGlvbiwgSSB3aXNoIGl0
IHdhcyBwYXJ0IG9mIHRoZSAibGVhZiBkc2NwIiBpbiB0aGUNCj4gPiA+ID4gPiBtb2R1bGUNCj4g
PiA+ID4gPiA6KQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhlIGRzY3AtdW5hdmFpbGFibGUgaWRl
bnRpdHkgZG9lc24ndCBhZGQgYW55IGFkZGl0aW9uIHZhbHVlDQo+ID4gPiA+ID4gY29tcGFyZWQg
dG8gdGhlIHN0YW5kYXJkIGVycm9yLg0KPiA+ID4gPg0KPiA+ID4gPiBGb3IgTkVUQ09ORiBhbmQg
UkVTVENPTkYsIHRoaXMgaXMgdGhlIGNhc2UuDQo+ID4gPg0KPiA+ID4gQW5kIGNvbWkuICBUaGUg
cG9pbnQgaXMsIHdoYXQgbWFrZXMgdGhlIHJwY3MgaW4gdGhpcyBtb2R1bGUgc28gc3BlY2lhbA0K
PiA+ID4gdGhhdCB0aGV5IGhhdmUgdG8gaW52ZW50IGEgbmV3IGVycm9yIHJlcG9ydGluZyBzY2hl
bWU/ICAgSWYgd2UgZG8gdGhhdA0KPiA+ID4gZm9yIHRoZXNlIHJwY3MsIHdoeSBub3QgZm9yIGFs
bCBvdGhlciBycGMgaW4gYWxsIG90aGVyIG1vZHVsZXM/DQo+ID4NCj4gPiBUaGUgY3VycmVudCBS
UEMgZXJyb3IgbWVjaGFuaXNtcyB0aWVzIFlBTkcgUlBDcyB0byBORVRDT05GIGFuZA0KPiA+IFJF
U1RDT05GIHRyYW5zcG9ydHMuICBPdmVyIG1hbnkgeWVhcnMgdGhlcmUgaGFzIGJlZW4gbG90cyBv
ZiB3b3JrIHRvDQo+ID4gYWxpZ24gdGhlIHN1YnNjcmlwdGlvbiBkcmFmdHMgdG8gdGhlc2UgZXhp
c3RpbmcgbWVjaGFuaXNtcywgd2hpbGUNCj4gPiBtYWludGFpbmluZyBhcyBtdWNoIHRyYW5zcG9y
dCBpbmRlcGVuZGVuY2UgZm9yIGhpbnRzIGFzIHBvc3NpYmxlLg0KPiANCj4gSSdtIG5vdCB0YWxr
aW5nIGFib3V0IHRoZSAiaGludHMiLCBidXQgdGhlIGVycm9yIGNvZGVzLg0KPiANCj4gT3IgYXJl
IHlvdSBzYXlpbmcgdGhhdCB5b3UgdGhpbmsgdGhhdCAqYWxsKiBycGNzIGRlZmluZWQgdG9kYXkg
c2hvdWxkDQo+IGhhdmUgdGhlaXIgb3duIGVycm9yIHJlcG9ydGluZyBtZWNoYW5pc20/DQoNCkkg
anVzdCB3YW50IHRvIGRvIHdoYXRldmVyIGdldHMgdGhpcyBkb25lLg0KDQo+ID4gPiA+ID4gPiA+
IFRoaW5raW5nIHNvbWUgbW9yZSwgd2hhdCBpcyBzdXBwb3NlZCB0byBoYXBwZW4gaWYgdGhlIGNs
aWVudCBvbg0KPiA+ID4gPiA+ID4gPiB0aGUgc2FtZSBzZXNzaW9uIHNlbmRzIGZpcnN0IGFuIGVz
dGFibGlzaC1zdWJzY3JpcHRpb24gd2l0aCBkc2NwDQo+ID4gPiA+ID4gPiA+IDQyLCBhbmQgdGhl
biBhbm90aGVyIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gd2l0aCBkc2NwIDEwPw0KPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+IFRoaXMgd291bGQgYmUgYWxsb3dlZC4NCj4gPiA+ID4gPg0KPiA+ID4g
PiA+IE9uIGxpbnV4IGF0IGxlYXN0IHRoaXMgaXMgYSBzb2Nrb3B0LCBpLmUuLCB0aGUgb3B0aW9u
IGFwcGxpZXMgdG8gdGhlDQo+ID4gPiA+ID4gc29ja2V0LCB3aGljaCBtZWFucyBhbGwgcGFja2V0
cyBvbiB0aGUgc2Vzc2lvbi4gIFNvIGhvdyBpcyB0aGlzDQo+ID4gPiA+ID4gc3VwcG9zZWQgdG8g
YmUgaW1wbGVtZW50ZWQgaWYgZGlmZmVyZW50IG1lc3NhZ2VzIG9uIHRoZSBzZXNzaW9uDQo+ID4g
PiA+ID4gc2hvdWxkIGhhdmUgZGlmZmVyZW50IGRzY3AgdmFsdWVzPw0KPiA+ID4gPiA+IE9yIGlz
IHRoZQ0KPiA+ID4gPiA+IGlkZWEgdGhhdCB5b3Ugc2VuZCB0aGUgbXNnLCBmbHVzaCBhbGwgZGF0
YSBmcm9tIHNzaC90bHMgdG8gdGNwLCB0aGVuDQo+ID4gPiA+ID4gZmx1c2ggdGhlIHRjcCBidWZm
ZXJzIChub3QgdGhhdCBlYXN5Li4uKT8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEV2ZW4gaWYgdGhl
cmUncyBqdXN0IG9uZSBlc3RhYmxpc2gtc3Vic2NyaXB0aW9uIHdpdGggYSBkc2NwIHZhbHVlLA0K
PiA+ID4gPiA+IHNpbmNlIGl0IGFwcGxpZXMgdG8gdGhlIHNlc3Npb24gaXQgbWVhbnMgdGhhdCBh
bGwgbm9ybWFsIHJwY3Mgb24NCj4gPiA+ID4gPiB0aGlzIHNlc3Npb24gd2lsbCBnZXQgdGhlIHNh
bWUgZHNjcCB2YWx1ZS4gIEl0IGlzIG5vdCBjbGVhciB0aGF0DQo+ID4gPiA+ID4gdGhpcyBpcyB0
aGUgaW50ZW50aW9uPw0KPiANCj4gRGlkIHlvdSBtaXNzIHRoZXNlIHF1ZXN0aW9ucz8NCg0KV2l0
aCBORVRDT05GLCBvbmUgRFNDUCB3aWxsIGFwcGx5IHRvIHNpbmdsZSBUQ1Agc2Vzc2lvbi4gIFNv
IHRoZXJlIGlzIG5vIGlzc3VlLg0KDQpGb3IgUkVTVENPTkYsIHRoZXJlIGlzIG5vIHJlcXVpcmVt
ZW50IHRoYXQgdGhlcmUgaXMgYSBzaW5nbGUgVENQIHNlc3Npb24gYmV0d2VlbiBwdWJsaXNoZXIg
YW5kIHN1YnNjcmliZXIuICBXaGVyZSB0aGVyZSBhcmUgZGlmZmVyZW50IERTQ1BzIHJlcXVlc3Rl
ZCwgYSBkaWZmZXJlbnQgbG9naWNhbCBjb25uZWN0aW9uIGNhbiBiZSBlc3RhYmxpc2hlZCBzaG91
bGQgdGhlIHB1Ymxpc2hlciB3YW50IHRvIGNvbmN1cnJlbnRseSBzdXBwb3J0IHNldmVyYWwgRFND
UHMuDQogDQo+ID4gPiA+IEZvciBhIE5FVENPTkYgc2Vzc2lvbiwgSSBhZ3JlZSB0aGF0IGFuIGlt
cGxlbWVudGF0aW9uIG5lZWQgbm90IHRyeSB0bw0KPiA+ID4gPiBhdHRlbXB0IHRvIHN1cHBvcnQg
bW9yZSB0aGFuIG9uZSBEU0NQIGZvciB0aGF0IHNlc3Npb24uICBBbmQgdGhlIGVycm9yDQo+ID4g
PiA+IGlkZW50aXR5IGRzY3AtdW5hdmFpbGFibGUgaXMgYSB2YWxpZCByZXNwb25zZSBoZXJlLg0K
PiA+ID4NCj4gPiA+IFRoZW4gdGhhdCBzaG91bGQgYmUgZXhwbGFpbmVkIChwcmVmZXJyYWJseSBp
biB0aGUgbGVhZiBkc2NwKS4NCj4gPiA+DQo+ID4gPiA+IEZvciBSRVNUQ09ORiBhbmQgb3RoZXIg
dHJhbnNwb3J0cywgdGhlcmUgb3B0aW9ucyB3aGljaCBjYW4gbW9yZQ0KPiA+ID4gPiBmbGV4aWJs
eSBzdXBwb3J0IGRpZmZlcmVudCBEU0NQIHZhbHVlcy4gIFRoaXMgaXMgb25lIHJlYXNvbiBJIHdh
cw0KPiA+ID4gPiBwdXNoaW5nIGhhcmQgaW4gMjAxNiB0byBsZXZlcmFnZSBIVFRQMi4NCj4gPiA+
DQo+ID4gPiBXZSdyZSB0YWxraW5nIGFib3V0IGR5bmFtaWMgc3Vic2NyaXB0aW9ucyBoZXJlLiAg
SSBkb24ndCB0aGluayBhbnlvbmUNCj4gPiA+IGhhcw0KPiA+ID4gc3VnZ2VzdGVkIEhUVFAyIGZv
ciBkeW5hbWljIHN1YnNjcmlwdGlvbnMuDQo+ID4NCj4gPiBJIGhhdmUgYWx3YXlzIGJlbGlldmVk
IHRoYXQgSFRUUDIgZm9yIGR5bmFtaWMgc3Vic2NyaXB0aW9ucyB3YXMgYQ0KPiA+IHVzZWZ1bCBp
bmR1c3RyeSB0YXJnZXQuICBUaGlzIGRyaXZlciB3YXMgdGhlIG9yaWdpbmFsIHJlYXNvbiBJIHdy
b3RlDQo+ID4gdGhlIG9yaWdpbmFsIGRyYWZ0IHdoaWNoIGJlY2FtZSBkcmFmdC1pZXRmLW5ldGNv
bmYtcmVzdGNvbmYtbm90aWYsIGFuZA0KPiA+IG1hbnkgdmFyaWF0aW9ucyBvbiBkeW5hbWljIHN1
YnNjcmlwdGlvbnMgd2l0aCBIVFRQMi4gIEluIHRoZSBtZWFudGltZSwNCj4gPiBHUlBDIHN1YnNj
cmlwdGlvbnMgKGJhc2VkIG9uIEhUVFAyKSBoYXMgZ3Jvd24gaW50byB0aGlzIHNwYWNlLg0KPiAN
Cj4gVGhpcyBpcyBpcnJlbGV2YW50IGZvciB0aGUgcHJvYmxlbS4gIFRoZSBwcm9ibGVtIGlzIG1h
aW50YWluaW5nDQo+IHNldmVyYWwgZHNjcCB2YWx1ZXMgb24gdGhlIHNhbWUgc2Vzc2lvbi4gIEFu
eSBzb2x1dGlvbiB0aGF0IGludHJvZHVjZXMNCj4gYSBzaW5nbGUgc2Vzc2lvbiBvYnZpb3VzbHkg
YXZvaWRzIHRoZSBwcm9ibGVtLiAgQW5kIEdSUEMgaGFzIGFsc28NCj4gbm90aGluZyB0byBkbyB3
aXRoIHRoaXMuDQoNCkkgd2FzIHJlc3BvbmRpbmcgdG8geW91ciBwb2ludCB0aGF0ICdJIGRvbid0
IHRoaW5rIGFueW9uZSBoYXMgc3VnZ2VzdGVkIEhUVFAyIGZvciBkeW5hbWljIHN1YnNjcmlwdGlv
bnMnLiAgIFVwIHRocm91Z2ggZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmIHYwOCwg
dGhlIGJlbmVmaXRzIG9mIEhUVFAyIGZvciBkeW5hbWljIHN1YnNjcmlwdGlvbnMgd2FzIGV4cGxp
Y2l0bHkgbGFpZCBvdXQuDQoNCkVyaWMNCg0KPiAvbWFydGluDQo+IA0KPiANCj4gDQo+IA0KPiA+
DQo+ID4gRXJpYw0KPiA+DQo+ID4gPiBGb3IgY29uZmlndXJlZCBzdWJzY3JpcHRpb25zLCB0aGlz
IGlzIG5vdCBhbiBpc3N1ZSwgbm90IGV2ZW4gZm9yDQo+ID4gPiBORVRDT05GLg0KPiA+ID4NCj4g
PiA+DQo+ID4gPiAvbWFydGluDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+
IEVyaWMNCj4gPiA+ID4NCj4gPiA+ID4gPiAvbWFydGluDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gVGhlIGludGVyZXN0aW5nIHBhcnQgY29tZXMgd2l0aCBidW5kbGluZyB0aGUg
ZXZlbnQgcmVjb3Jkcy4gIFRoZQ0KPiA+ID4gPiA+ID4gaW5pdGlhbCB2ZXJzaW9ucyBvZiBkcmFm
dC1pZXRmLW5ldGNvbmYtbm90aWZpY2F0aW9uLW1lc3NhZ2VzDQo+ID4gPiA+ID4gPiByZXF1aXJl
ZCB0aGF0IGFsbCBldmVudCByZWNvcmRzIGluIGEgYnVuZGxlIGhhZCBhIGNvbW1vbiBkc2NwLiAg
QXQNCj4gPiA+ID4gPiA+IHRoaXMgcG9pbnQsIHRoYXQgc2VlbXMgb3Zlcmx5IHJlc3RyaWN0aXZl
IHRvIHRoZSBtYXJzaGFsbGluZw0KPiA+ID4gPiA+ID4gcHJvY2Vzcywgc28gZm9yIG5vdyB0aGF0
IHJlcXVpcmVtZW50IGlzIG5vdCBpbiB0aGUgZG9jdW1lbnQuDQo+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ICAgICAgICAgICBlbmNvZGluZy11bnN1cHBvcnRlZCAgIGludmFsaWQtdmFsdWUN
Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vz
bid0IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiA+ID4gPiBzdGFuZGFy
ZA0KPiA+ID4gPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICBl
cnJvci10YWc6IGludmFsaWQtdmFsdWUNCj4gPiA+ID4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBj
L2VzdGFibGlzaC1zdWJzY3JpcHRpb24vZW5jb2RpbmcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZmlsdGVyLXVuYXZhaWxhYmxlICAgICBp
bnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgaXMgYSAic3Vi
c2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZQ0KPiA+ID4g
PiA+ID4gPiBzZW50IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFw
cGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBZZXMsIGZvcmdv
dCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiAgICAgICAgICBmaWx0ZXItdW5zdXBwb3J0ZWQgICAgIGludmFsaWQtdmFsdWUNCj4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0
IGdpdmUgbW9yZSBpbmZvcm1hdGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiA+ID4gPiBzdGFuZGFyZA0K
PiA+ID4gPiA+ID4gPiBlcnJvcjoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICBlcnJv
ci10YWc6IGludmFsaWQtdmFsdWUNCj4gPiA+ID4gPiA+ID4gICBlcnJvci1wYXRoOiAvcnBjL2Vz
dGFibGlzaC1zdWJzY3JpcHRpb24vc3RyZWFtLXhwYXRoLWZpbHRlcg0KPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICBpbnN1ZmZpY2llbnQtcmVz
b3VyY2VzIHJlc291cmNlLWRlbmllZA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9y
bWF0aW9uIHRoYW4gdGhlDQo+ID4gPiA+ID4gPiA+IHN0YW5kYXJkIGVycm9yIGluIHRoZSBjYXNl
IG9mIGVzdGFibGlzaC1zdWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4gPiA+IG1vZGlmeS1zdWJz
Y3JpcHRpb24uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIG5vLXN1
Y2gtc3Vic2NyaXB0aW9uICAgaW52YWxpZC12YWx1ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiBPay4gIEJ1dCB0aGlzIGlkZW50aXR5IGRvZW5zJ3QgZ2l2ZSBtb3JlIGluZm9ybWF0aW9u
IHRoYW4gdGhlDQo+ID4gPiA+ID4gPiA+IHN0YW5kYXJkIGVycm9yIGluIHRoZSBjYXNlIG9mIGVz
dGFibGlzaC1zdWJzY3JpcHRpb24gYW5kDQo+ID4gPiA+ID4gPiA+IG1vZGlmeS1zdWJzY3JpcHRp
b24uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIHJlcGxheS11bnN1
cHBvcnRlZCAgICAgb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gT2suICBCdXQgdGhpcyBpZGVudGl0eSBkb2Vzbid0IGdpdmUgbW9yZSBpbmZvcm1h
dGlvbiB0aGFuIHRoZQ0KPiA+ID4gPiA+ID4gPiBzdGFuZGFyZCBlcnJvci4NCj4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgc3RyZWFtLXVuYXZhaWxhYmxlICAgICBpbnZh
bGlkLXZhbHVlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2Ny
aXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZQ0KPiA+ID4gPiA+
ID4gPiBzZW50IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVk
IHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBZZXMsIGZvcmdvdCB0
byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiAgICAgICAgICAgc3VzcGVuc2lvbi10aW1lb3V0ICAgICBvcGVyYXRpb24tZmFpbGVkDQo+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1p
bmF0ZWQtcmVhc29uIiwgd2hpY2ggd2lsbCBuZXZlciBiZQ0KPiA+ID4gPiA+ID4gPiBzZW50IGlu
IGFuIHJwYy0gZXJyb3IsIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9y
LXRhZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhv
c2UuICBJdCBpcyBub3cgb3V0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAg
ICAgdW5zdXBwb3J0YWJsZS12b2x1bWUgICB0b28tYmlnDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+IFRoaXMgaXMgYSAic3Vic2NyaXB0aW9uLXRlcm1pbmF0ZWQtcmVhc29uIiwgd2hpY2gg
d2lsbCBuZXZlciBiZQ0KPiA+ID4gPiA+ID4gPiBzZW50IGluIGFuIHJwYy0gZXJyb3IsIGFuZCB0
aHVzIHNob3VsZCBub3QgYmUgbWFwcGVkIHRvIGFuIGVycm9yLXRhZy4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiBZZXMsIGZvcmdvdCB0byByZW1vdmUgdGhvc2UuICBJdCBpcyBub3cgb3V0Lg0K
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgT3IgdGhpcyAiZXJyb3ItdGFnIiB3
aWxsIGNvcnJlc3BvbmQgdG8gdGhlIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gaWRlbnRpdGllcw0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgIHdpdGhpbiBbSS1ELmlldGYt
bmV0Y29uZi15YW5nLXB1c2hdIEFwcGVuZGl4IEEuMSBmb3INCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ICAgICAgICBzdWJzY3JpcHRpb24gZXJyb3JzIHNwZWNpZmljIHRvIFlBTkcg
ZGF0YXN0b3JlczoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgZXJyb3IgaWRlbnRpdHkgICAgICAgICAg
ICAgIHVzZXMgZXJyb3ItdGFnDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAg
ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgIC0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgY2FudC1leGNsdWRlICAgICAgICAg
ICAgICAgIG9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiAgICAgICAgICAgZGF0YXN0b3JlLW5vdC1zdWJzY3JpYmFibGUgIG9wZXJhdGlvbi1u
b3Qtc3VwcG9ydGVkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgdGhpbmsgdGhhdCB0
aGlzIHNob3VsZCBiZSBpbnZhbGlkLXZhbHVlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9r
DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gL0VyaWMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gICAgICAgICAgIG5vLXN1Y2gtc3Vic2NyaXB0aW9uLXJlc3luYyBpbnZhbGlkLXZhbHVl
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9rLCBidXQgYWdhaW4gdGhlIHZhbHVlIG9m
IGhhdmluZyB0aGlzIGlzIHVuY2xlYXIuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
ICAgICAgICAgIG9uLWNoYW5nZS11bnN1cHBvcnRlZCAgICAgICBvcGVyYXRpb24tbm90LXN1cHBv
cnRlZA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIG9uLWNoYW5n
ZS1zeW5jLXVuc3VwcG9ydGVkICBvcGVyYXRpb24tbm90LXN1cHBvcnRlZA0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIHBlcmlvZC11bnN1cHBvcnRlZCAgICAgICAg
ICBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAgICAgICAg
ICAgdXBkYXRlLXRvby1iaWcgICAgICAgICAgICAgIHRvby1iaWcNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICBzeW5jLXRvby1iaWcgICAgICAgICAgICAgICAgdG9v
LWJpZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgIHVuY2hhbmdp
bmctc2VsZWN0aW9uICAgICAgICBvcGVyYXRpb24tZmFpbGVkDQo+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC9tYXJ0aW4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRG8geW91IChvciBhbnlvbmUgZWxzZSBpbiB0aGlzIHRo
cmVhZCkgaGF2ZSBhbnkgc3VnZ2VzdGlvbnMgb24NCj4gPiA+ID4gPiA+ID4gPiB0aGUgdGV4dCBv
ciBwcm9wb3NlZCBtYXBwaW5ncz8gIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIG9rLA0KPiA+ID4g
PiA+ID4gPiA+IEFsZXggd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgTkVUQ09ORiBlcnJvci10YWcg
c3BlY2lmaWNzIGZyb20NCj4gPiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1w
dXNoIFNlY3Rpb25zIDQuNC4xICYgNC40LjINCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBBbHNvIFJlc2hhZCB3aWxsIGhh
dmUgdG8gZG8gc29tZSB3b3JrIGJlY2F1c2UgaGUgaXMgdGhlIFlBTkcNCj4gPiA+ID4gPiA+ID4g
PiBkb2N0b3Igb2YNCj4gPiA+ID4gPiA+ID4gbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNh
dGlvbnMsIGFuZCBoZSB3aWxsIHdhbnQgdG8gaW5jbHVkZQ0KPiA+ID4gPiA+ID4gPiB0aGUgc2Ft
ZSBpbmZvcm1hdGlvbiB3aXRoaW4gZHJhZnQtaWV0Zi1uZXRjb25mLXJlc3Rjb25mLW5vdGlmLg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEVyaWMN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRnJvbTogQW5keSBC
aWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb20+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjMsIDIwMTkgMTI6NDIgUE0NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRvOiBFcmljIFZvaXQgKGV2b2l0KSA8ZXZvaXRAY2lz
Y28uY29tPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQ2M6IE1hcnRpbiBCam9y
a2x1bmQgPG1iakB0YWlsLWYuY29tPjsgeWFuZy1kb2N0b3JzQGlldGYub3JnOw0KPiA+ID4gPiA+
ID4gPiA+IG5ldGNvbmZAaWV0Zi5vcmc7DQo+ID4gPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRj
b25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy5hbGxAaWV0Zi5vcmcNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbeWFuZy1kb2N0b3JzXSBZYW5nZG9jdG9y
cyBsYXN0IGNhbGwgcmV2aWV3IG9mDQo+ID4gPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25m
LXN1YnNjcmliZWQtbm90aWZpY2F0aW9ucy0yMQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT24gV2Vk
LCBKYW4gMjMsIDIwMTkgYXQgNDozNSBBTSBFcmljIFZvaXQgKGV2b2l0KQ0KPiA+ID4gPiA+ID4g
PiA+IDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPg0KPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gRnJvbTogTWFydGluIEJqb3JrbHVuZCwgSmFu
dWFyeSAyMywgMjAxOSAzOjMyIEFNDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhpLA0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAi
RXJpYyBWb2l0IChldm9pdCkiIDxtYWlsdG86ZXZvaXRAY2lzY28uY29tPiB3cm90ZToNCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBIaSBBbmR5LA0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gTG9va2luZyBhdCB5b3VyIHByb3Bvc2FsLi4uICBNeSByZWFkaW5nIGlzIHRoYXQgaXQgdGFr
ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljIGVycm9yIGluZm8gY29udGFpbmVkIGluDQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNv
bmYtZXZlbnQtbm90aWZpY2F0aW9ucyBzZWN0aW9uIDcsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGFu
ZCB0aGVuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwbGljYXRlcyB0
aGF0IGluZm8gd2l0aGluIDEyIHNlcGFyYXRlIGRlc2NyaXB0aW9uDQo+ID4gPiA+ID4gPiA+ID4g
PiA+IG9iamVjdHMgb2YgdGhlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
dHJhbnNwb3J0IGluZGVwZW5kZW50IGlldGYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLnlhbmcu
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoZSB2YWx1ZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+IHlvdSBhcmUgYXNzZXJ0aW5nIGlzIHRoYXQgUkZDcyBjb250YWluaW5nIFlB
TkcgbW9kZWxzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbnRhaW5pbmcgdGhlDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gcnBjLXN0bXQgaGF2ZSB0cmFkaXRpb25hbGx5IGRv
Y3VtZW50IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBtYW5kYXRvcnktdG8taW1wbGVtZW50DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gImVycm9yLXRhZyIgZmllbGQgd2l0
aGluIHRoZSBtb2RlbC4gIEFuZCBwcmVzdW1hYmx5IHlvdQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBh
cmUgY29uY2VybmVkDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhhdCBk
ZXZlbG9wZXJzIHNob3VsZCBub3QgaGF2ZSB0byBsb29rIGVsc2V3aGVyZSBmb3IgdGhpcw0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGluZm9ybWF0aW9uLg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiBJIHRoaW5rIHRoYXQgbWF5YmUgdGhlcmUgYXJlIHR3byBzZXBhcmF0ZSBpc3N1ZXMgaGVy
ZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gVGhlIGZpcnN0IGlzc3VlIGlzIHRoYXQgZm9yIGVhY2ggZXJyb3Ig
aWRlbnRpdHkgZGVmaW5lZCwNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZXJlIG5lZWRzIHRvIGJlIGEN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gbWFwcGluZyB0byB0aGUgcHJvdG9j
b2wtc3BlY2lmaWMgZXJyb3IgaGFuZGxpbmcuICBBbmR5DQo+ID4gPiA+ID4gPiA+ID4gPiBzdWdn
ZXN0cyB0aGF0IHRoaXMgaW5mbyBpcw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiBhZGRlZCB0byB0aGlzIGRvY3VtZW50LCBidXQgY3VycmVudGx5IHRoaXMgaW5mb3JtYXRpb24g
aXMNCj4gPiA+ID4gPiA+ID4gPiA+IGF2YWlsYWJsZSBpbiB0aGUNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gcHJvdGNvbC1tYXBwaW5nIGRvY3VtZW50cyAobmV0Y29uZi1ub3Rp
ZiBhbmQgcmVzdGNvbmYtbm90aWYpLg0KPiA+ID4gPiA+ID4gPiA+ID4gUGVyc29uYWxseSwgSQ0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiB0aGluayB0aGF0IHRoZSBjdXJyZW50
IHNwbGl0IG9mIHRleHQgYmV0d2VlbiBkb2N1bWVudHMgaXMgZmluZS4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
VGhlIHNlY29uZCBpc3N1ZSBpcyB0aGF0IGN1cnJlbnRseSwgYm90aCBuZXRjb25mLW5vdGlmIGFu
ZA0KPiA+ID4gPiA+ID4gPiA+ID4gcmVzdGNvbmYtbm90aWYgc2F5DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+IHRoYXQgKmFsbCogdGhlc2UgZXJyb3JzIHVzZSB0aGUgZXJyb3It
dGFnICJvcGVyYXRpb24tZmFpbGVkIi4NCj4gPiA+ID4gPiA+ID4gPiA+IEVzc2VudGlhbGx5IGl0
IG1lYW5zDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHRoYXQgd2UgYnlwYXNz
IHRoZSBlcnJvciBoYW5kbGluZyBpbiB0aGUgcHJvdG9jb2xzLiAgQXMgQW5keQ0KPiA+ID4gPiA+
ID4gPiA+ID4gcG9pbnRzIG91dCBiZWxvdywNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gdGhlIGVycm9yICJpbnN1ZmZpY2llbnQtcmVzb3VyY2VzIiBzaG91bGQgYmUgbWFwcGVk
IHRvDQo+ID4gPiA+ID4gPiA+ID4gPiAicmVzb3VyY2UtZGVuaWVkIiBpbg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBORVRDT05GIGFuZCBSRVNUQ09ORiAodGhleSBtZWFuIHRo
ZSBzYW1lIHRoaW5nKS4gIFNvIGl0DQo+ID4gPiA+ID4gPiA+ID4gPiBtaWdodCBtYWtlIHNlbnNl
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IHRvIGNhcmVmdWxseSBnbyB0aHJv
dWdoIHRoZSBsaXN0IG9mIGVycm9ycyBhbmQgbWFwIHRoZW0gdG8NCj4gPiA+ID4gPiA+ID4gPiA+
IHRoZSBjb3JyZWN0IGVycm9yLXRhZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiAoYnV0IHNwZWNpZml5IHRoaXMgaW4gdGhlIHRyYW5zcG9ydCBkcmFmdHMpLg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
IEkgYW0gY29tcGxldGVseSBnb29kIHdpdGggdGhpcy4gICBEb2VzIHRoaXMgd29yayBmb3IgeW91
IEFuZHk/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gVGhpcyBpcyBiZXR0ZXIuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiBJJ20gZ2xhZCBubyBvdGhlciBkcmFmdHMgYXJlIGNyZWF0aW5nIHRoZWlyIG93
biBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+IHJlcG9ydGluZyBzeXN0ZW0gZm9yDQo+ID4gPiA+ID4g
PiA+IGVhY2ggcnBjLXN0bXQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGlz
IGlzIGEgYmFkIHByZWNlZGVudCBhbmQgbGlrZWx5IHRvIGJlIHNraXBwZWQgaW4NCj4gPiA+ID4g
PiA+ID4gPiBpbXBsZW1lbnRhdGlvbnMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRXJpYw0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gL21h
cnRpbg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEFuZHkN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSWYgdGhlIFlBTkcgZG9jdG9ycyByZXF1aXJlIHRoaXMs
IGl0IGNhbiBiZSBpbnNlcnRlZC4gIEENCj4gPiA+ID4gPiA+ID4gPiA+ID4gc2ltaWxhciB0ZXh0
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2hhbmdlIHdvdWxkIGJlIG5l
ZWRlZCBmb3IgcXVpdGUgYSBmZXcgZXJyb3IgaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4gPiA+ID4g
PiB3aXRoaW4gWUFORw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFB1c2gu
ICBQZXJzb25hbGx5IEkgZG9u4oCZdCBsaWtlIHRoYXQgWUFORyBtb2RlbHMgc2hvdWxkIGJlDQo+
ID4gPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmVkIHRvDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gZW1iZWQgdGhpcyBpbmZvcm1hdGlvbi4gIEJ1dCBJIHdpbGwgbWFrZSB0aGUg
Y2hhbmdlIGlmIHlvdQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZWFsbHkgd2FudA0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoaXMsIGFuZCBub2JvZHkgZWxzZSBvYmplY3Rz
Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gT3RoZXIgdGhhbiB0aGF0LCBJIGFtIG5vdCBhd2FyZSBvZiBh
bnkgb3RoZXIgb3BlbiBpc3N1ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaW4gdGhlIFlBTkcNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBEb2N0b3IgcmV2aWV3LiAgRG8geW91
IGtub3cgb2YgYW55dGhpbmcgZWxzZT8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEVyaWMNCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gRnJvbTogQW5k
eSBCaWVybWFuLCBKYW51YXJ5IDIxLCAyMDE5IDI6MjYgUE0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEhp
LA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gSSB0aGluayB0aGUgZXJyb3ItdGFnIGlzc3VlIGNhbiBiZSBy
ZXNvbHZlZCBieSBpbmNsdWRpbmcgMQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBleHRyYQ0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHNlbnRlbmNlIGluIGVhY2ggZXJyb3IgaWRl
bnRpdHkuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSSBrbm93IHRoaXMg
aXMgTkVUQ09ORiBhbmQgUkVTVENPTkYgY2VudHJpYyBidXQgdGhvc2UgYXJlDQo+ID4gPiA+ID4g
PiA+ID4gPiA+IHRoZSBvbmx5DQo+ID4gPiA+ID4gPiA+ID4gPiA+IDINCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdGFuZGFyZCBwcm90b2NvbHMgc3VwcG9ydGVkIGZvciB0
aGUgWUFORyBsYW5ndWFnZSByaWdodA0KPiBub3cuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAg
SWYgdGhlICdlcnJvci10YWcnIGZpZWxkIGlzIHVzZWQgaW4gZXJyb3INCj4gPiA+ID4gPiA+ID4g
PiA+ID4gcmVwb3J0aW5nLA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
ICAgICB0aGVuIHRoZSB2YWx1ZSAnPGNvcnJlY3QgZXJyb3ItdGFnPicgTVVTVCBiZSB1c2VkLg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gRm9yIGV4YW1wbGU6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IE9MRDoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
aWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1YnNjcmlwdGlvbi1lcnJvcjsNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgYmFzZSBtb2RpZnktc3Vic2Ny
aXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICBi
YXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhhcyBpbnN1ZmZpY2llbnQgcmVzb3Vy
Y2VzIHRvIHN1cHBvcnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIHJlcXVlc3RlZCBzdWJzY3JpcHRpb24uICBBbiBl
eGFtcGxlIG1pZ2h0IGJlIHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYWxsb2NhdGVkIENQVQ0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICBpcyB0b28gbGltaXRl
ZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2YNCj4gPiA+ID4gPiA+ID4gPiA+ID4gbm90
aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIG1l
c3NhZ2VzLiI7DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICB9DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IE5FVzoN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ICAgaWRlbnRpdHkgaW5zdWZmaWNpZW50LXJlc291cmNlcyB7DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIGJhc2UgZXN0YWJsaXNoLXN1
YnNjcmlwdGlvbi1lcnJvcjsNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICAgYmFzZSBtb2RpZnktc3Vic2NyaXB0aW9uLWVycm9yOw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICBiYXNlIHN1YnNjcmlwdGlvbi1zdXNwZW5kZWQtcmVhc29uOw0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICBkZXNjcmlwdGlvbg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICJUaGUgcHVibGlzaGVyIGhh
cyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIHN1cHBvcnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
dGhlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIHJlcXVlc3Rl
ZCBzdWJzY3JpcHRpb24uICBBbiBleGFtcGxlIG1pZ2h0IGJlIHRoYXQNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gYWxsb2NhdGVkIENQVQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgICAgICBpcyB0b28gbGltaXRlZCB0byBnZW5lcmF0ZSB0aGUgZGVzaXJlZCBzZXQgb2YNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gbm90aWZpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gICAgICAgIG1lc3NhZ2VzLiBJZiB0aGUgJ2Vycm9yLXRhZycgZmllbGQgaXMg
dXNlZCBpbiBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcsDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIHRoZW4gdGhlIHZhbHVlICdyZXNvdXJj
ZS1kZW5pZWQnIE1VU1QgYmUgdXNlZC4iOw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ICAgfQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBBbmR5DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IE9uIEZyaSwgSmFuIDE4LCAyMDE5IGF0IDExOjUzIEFNIEVyaWMgVm9p
dCAoZXZvaXQpDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPG1haWx0bzpl
dm9pdEBjaXNjby5jb208bWFpbHRvOm1haWx0bzpldm9pdEBjaXNjby5jb20+Pg0KPiB3cm90ZToN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBIaSBBbmR5LA0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gVGhhbmtzLiAgSSBoYXZlIGluY29ycG9yYXRlZCBpdGVtcyB3aGVyZSB0aGVyZSB3
YXMgYWdyZWVtZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGhhdmUNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZW1vdmVkIHRoZSBpdGVtcyBiZWxvdyB3aGVyZSB5b3Ug
d2VyZSBvay4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFJlbWFpbmluZyBiZWxvdyBhcmUgdGhlIG9wZW4g
aXRlbXMsIHdpdGggcmVzcG9uc2VzLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIFNob3VsZCBi
ZSBjbGVhciBzb21ld2hlcmUgdGhhdA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgICBzdXNwZW5kIGlzIGZvciBDUFUgYW5kIG90aGVyIHJlc291cmNlcywgYW5kIE5B
Q00NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG5vdCBjb25zaWRlcmVkDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIHRvIGJlIGEgcmVzb3VyY2UuDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gSWYgTkFDTSBpcyBhY3RpdmUsIGl0IG5lZWRzIHRvIGJlIGZvbGxvd2Vk
LiAgVGhlIHRleHQgd2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBoYXZlIGZvcg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTkFDTSBpcyBpbiBTZWN0aW9uIDUuNC4gIERv
IHlvdSBzZWUgc29tZXRoaW5nIGVsc2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzcGVjaWZpYyB0
bw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uIHN1
c3BlbnNpb24gbmVlZGVkIGhlcmU/ICAoTWF5YmUgSSBhbSBub3QNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBnZXR0aW5nIHlvdXINCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHBvaW50LikNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBObyAtLSBPSyB0byBsZWF2ZSBOQUNNIGFz
IHRlcm1pbmF0ZS1pZi1sb3NzLW9mLXJpZ2h0cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IChJcyB0
aGVyZSBhbg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3IgaWRl
bnRpdHkgZm9yIHRoaXMgZXZlbnQ/KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGlkZW50aXR5IHdo
aWNoIGFwcGxpZXMgaGVyZSBpcyAic3RyZWFtLXVuYXZhaWxhYmxlIi4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gVGhpcyBpcyB0aGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBz
YW1lIGlkZW50aXR5IHdoaWNoIHdvdWxkIGJlIHVzZWQgaWYgYSBzdWJzY3JpYmVyIGhhZA0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBuZXZlciBzdWZmaWNpZW50DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gcGVybWlzc2lvbnMgaW4gdGhlIGZpcnN0IHBsYWNlLiAgSSBkb24ndCBi
ZWxpZXZlIHdlIHdvdWxkDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHdhbnQgdG8NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZXR1cm4gYW4gaWRlbnRpdHkgc3BlY2lmaWMgdG8g
d2hlbiBOQUNNIHdoZW4gcGVybWlzc2lvbnMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaGF2ZSBqdXN0
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmVlbiBjaGFuZ2VkLg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IEkzKSBzZWMgMi4xIHBhcmEgNjoNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgRXZlbnQgcmVjb3JkcyBNVVNUIE5PVCBiZSBkZWxp
dmVyZWQgdG8gYSByZWNlaXZlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW4gYSBkaWZmZXJl
bnQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgb3JkZXIgdGhh
biB0aGV5IHdlcmUgcGxhY2VkIG9udG8gYW4gZXZlbnQgc3RyZWFtLg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgIC0tIGRvZXMgdGhpcyBhcHBseSB0byBzdWJzY3JpcHRpb24tc3RhdGU/IFRo
aW5rIG5vdCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZXkgYXJlIG5vdCBldmVudHMNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIHBsYWNlZCBpbiBldmVu
dCBzdHJlYW0uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQWdyZWUgdGhhdCB0aGV5IGFyZSBub3Qg
b24gdGhlIGV2ZW50IHN0cmVhbS4gIFNvIHRoZXkgZG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBu
b3QgdmlvbGF0ZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhpcyBy
ZXF1aXJlbWVudC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGRpdGlvbmFsbHkgdGhlcmUgaXMg
c3VwcG9ydGluZyB0ZXh0IGluICJTZWN0aW9uIDIuNzoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBz
dWJzY3JpcHRpb24NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN0YXRl
IG5vdGlmaWNhdGlvbnMiLCBpbmNsdWRpbmcuLi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAiIElu
c3RlYWQsIHRoZXkgYXJlIGluc2VydGVkIChhcyBkZWZpbmVkIGluIHRoaXMNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiBzZWN0aW9uKSB3aXRoaW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBzZXF1ZW5jZSBvZiBub3RpZmljYXRpb24gbWVzc2FnZXMgc2VudCB0byBh
IHBhcnRpY3VsYXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZWNlaXZlci4iDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gPiAgICAgTmVlZCB0byBhbGxvdyBlbmRlZCBvciBzdXNwZW5kZWQgdG8gYmUg
c2VudA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgaGVhZC1v
Zi1saW5lIHdoZW5ldmVyIHN0YXRlIGNoYW5nZXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGFt
IG5vdCBzdXJlIHRoYXQgc3VzcGVuZGVkIHNob3VsZCBhbHdheXMgYmUgc2VudA0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IGhlYWQtb2YtbGluZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IENvbnNpZGVyDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiB0aGF0IGltcGxlbWVudGF0aW9uIG1pZ2h0IHdhbnQgdG8gbGV0IHRoZSBleGlzdGluZyBxdWV1
ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG9mIGZpbHRlcmVkDQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiBldmVudCByZWNvcmRzIGJlIHNlbnQgaWYgaXMgZmlsdGVyIGNv
bXBsZXhpdHkgY2F1c2luZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBDUFUgaXNzdWUuDQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGF0IGNvdWxkIGJlIGRpZmZl
cmVudCB0aGFuIGlmIGl0IGlzIGEgYmFuZHdpZHRoIGlzc3VlDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gZHJpdmluZyB0aGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN1
c3BlbnNpb24sIGFuZCB5b3UgZGVmaW5pdGVseSB3YW50IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+ICdzdWJzY3JpcHRpb24tc3VzcGVuZGVkJw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRvDQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZSBwbGFjZWQgYXQgdGhlIGhl
YWQgb2YgbGluZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gSXQgaXMgdXAgdG8gdGhlIHB1Ymxpc2hlciB0byBkZWNpZGUgd2hl
biB0byBzdG9wIHNlbmRpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBldmVudHMgb24gYQ0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT2J2aW91c2x5IHRoZSBwdWJsaXNoZXIg
Y2Fubm90IHdhaXQgdW50aWwgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9u
IGlzIGlkbGUuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgcmVh
c29uIGl0IGlzIGdldHRpbmcgc3VzcGVuZGVkIGlzIGl0IGlzIGZhciBmcm9tDQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gaWRsZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNvIGFsc28gdXAgdG8gdGhl
IHB1Ymxpc2hlciB3cnQvIHdoYXQgdG8gZG8gd2l0aCBhbnkNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBldmVudHMgdGhhdA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaGF2
ZSBub3QgYmVlbiBkZWxpdmVyZWQgeWV0IG9uIGEgc3Vic2NyaXB0aW9uLiAgQ291bGQNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiBkZWxldGUgdGhlbSBvcg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gc2F2ZSB0aGVtIGZvciB3aGVuIG1vcmUgYmFuZHdpZHRoIGF2YWlsYWJs
ZSAoZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZXhhbXBsZSkNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IEFncmVlIGZ1bGx5IHdpdGggdGhpcy4gIElzIHRoZXJlIHRleHQgcmVxdWlyZWQgaW4gdGhlIGRy
YWZ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGhlcmU/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAuLi4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJleW9uZCB0aGF0IGl0IGlzIHVw
IHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBkZWNpZGUgaWYNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBzb21lDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB1bi10cmFuc21p
dHRlZCBxdWV1ZSBvZiBldmVudCByZWNvcmRzIHNob3VsZCBiZSBmbHVzaGVkDQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBy
ZXByb2Nlc3NlZCBiYXNlZCBvbiB0aGUgbW9kaWZpY2F0aW9uLiAgSSBkbyBub3QgZXhwZWN0DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhpcyB3b3VsZA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gcG9wdWxhciwgYXMgYSByZXBsYXkgc3Vic2NyaXB0aW9uIGNvdWxkIGFj
Y29tcGxpc2ggdGhpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNhbWUNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZ1bmN0aW9uYWwgbmVlZC4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBBZ3JlZWQgdGhhdCBhbiBpbXBsZW1lbnRhdGlvbiBjYW4gZHJvcCBhdCBhbnkgdGlt
ZSBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmNyZW1lbnQgdGhlDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhcHByb3ByaWF0ZSBjb3VudGVycy4gSXQgd2lsbCB0
cnkgdG8gdG8gZG8gdGhpcywgYnV0IG5vDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZW1l
bnRzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBleGNlcHQgbWF5YmUg
c3Vic2NyaXB0aW9uIGV2ZW50cyBsaWtlICdyZXBsYXktY29tcGxldGVkJw0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IGNhbm5vdCBiZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gZHJvcHBlZA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSGF2ZSBwdXQgYSBtaW5vciB0d2VhayBpbnRv
IFNlY3Rpb24gMi43Og0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gW29sZF0gIHN1YnNjcmlwdGlvbiBzdGF0
ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBjYW5ub3QgYmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZmls
dGVyZWQgb3V0DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbbmV3XSBzdWJzY3JpcHRpb24gc3RhdGUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMgY2Fubm90IGJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRyb3BwZWQg
b3INCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBmaWx0ZXJlZCBvdXQNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gVGhpbmtpbmcgbW9yZSBvbiB5b3VyIHBvaW50LCBpdCBtaWdodCBiZSB3b3J0aCB0d2Vha2lu
Zw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGEgY291cGxlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiB3b3JkcyB0byBhbGxvdyBmb3IgaGVhZC1vZi1saW5lIHBsYWNlbWVu
dCBvZg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gInN1YnNjcmlwdGlv
bi1zdXNwZW5kZWQiLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICJTdWJzY3JpYmVkIGV2ZW50
IHJlY29yZHMgcXVldWVkIGZvciBzZW5kaW5nIGFmdGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
dGhlIGlzc3VhbmNlIG9mDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg
ICB0aGlzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBzdWJzY3Jp
cHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbiBtYXkgbm93IGJlIHNlbnQuIg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IEFyZSB5b3UgZ29vZCB3aXRoIHRoaXMgc3VnZ2VzdGVkIGNoYW5nZT8N
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBOb3Qgc3VyZSAtLSBpdCBuZWVkcyB0byBiZSBjbGVhciB0
aGF0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uLXN1c3BlbmRlZCBpcyB0aGUN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGxhc3QgZXZlbnQgc2VudCBi
ZWZvcmUgc3VzcGVuZGluZyBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzdWJzY3JpcHRpb24t
cmVzdW1lZCBpcyB0aGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZp
cnN0IGV2ZW50IHNlbnQgYWZ0ZXIgdHJhbnNpdGlvbiBmcm9tIHN1c3BlbmRlZCB0byBhY3RpdmUu
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgbmV4dCBldmVudCBj
b3VsZCBhbHNvIGJlIHN1YnNjcmlwdGlvbi10ZXJtaW5hdGVkLg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
SSBkbyB0aGluayB0aGlzIHBvc3NpYmlsaXR5IGlzIGNvdmVyZWQgaW4gdGhlIHRleHQuICBGb3IN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gU2VjdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAyLjcuNA0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbi1zdXNwZW5k
ZWQgdGhlIGN1cnJlbnQgdGV4dCBpczoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICJObyBmdXJ0aGVyIG5v
dGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQgdW50aWwgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN1
YnNjcmlwdGlvbiByZXN1bWVzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
b3IgaXMgdGVybWluYXRlZC4iDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBbmQgU2VjdGlvbiAyLjcuNSBz
dWJzY3JpcHRpb24tcmVzdW1lZCBzYXlzIjoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiAiU3Vic2NyaWJlZCBldmVudCByZWNvcmRzIGdlbmVyYXRlZCBhZnRlciB0aGUgaXNz
dWFuY2Ugb2YNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhpcw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbiBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1h
eSBub3cgYmUgc2VudC4iDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBCYXNlZCBvbiB0aGUgZGlzY3Vzc2lv
biwgSSBjYW4gbWFrZSBpdDoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICJTdWJzY3JpYmVkIGV2ZW50IHJl
Y29yZHMgYXJlIGFnYWluIHBlcm1pdHRlZCB0byBiZSBzZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IGZvbGxvd2luZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoaXMgc3Vi
c2NyaXB0aW9uIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb24uIg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
SXMgdGhpcyBzdWZmaWNpZW50IGZvciB5b3U/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAuLi4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSTQpIHNlYyAyLjQuNjogUlBDIEZh
aWx1cmVzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gY29u
Y2VybiBhYm91dCBhIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gcmVwb3J0aW5nIHN5c3RlbQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gPiAgICAgIG11c3QgbWFrZSBzdXJlIHByb3RvY29sIGVycm9yIHJlcG9ydGluZyBz
eXN0ZW0gaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHVzZWQNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29ycmVjdGx5DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
WWVzLiAgV2UgaGF2ZSBkb25lIG91ciBiZXN0IHRvIGludGVncmF0ZSB3aXRoIHRoZQ0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGVtYmVkZGVkIE5FVENPTkYNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGFuZCBSRVNUQ09ORiBtZWNoYW5pc21zLiAgVGhlcmUgaXMgbXVjaCBh
ZGRpdGlvbmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5mb3JtYXRpb24gaW4NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSB0cmFuc3BvcnQgZHJhZnRzIGhlcmUu
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIFRoZSBlcnJvci10YWcgdmFsdWUgbmVlZHMg
dG8gYmUgaWRlbnRpZmllZCBmb3IgZWFjaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSAn
cmVhc29uJw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGl0
eQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgaXMgZG9uZSBpbiB0aGUgdHJhbnNwb3J0IGRy
YWZ0cy4gIEUuZy4sIHNlZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
ZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiBub3RpZmljYXRpb25zIFNlY3Rpb24gNw0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IEkgZG8gbm90IGFncmVlIHRoaXMgaXMgYSBnb29kIGlkZWEuDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBFYWNoIGVycm9yIGlkZW50aXR5IHNob3VsZCBzaW1w
bHkgc3RhdGUgdGhlIHJlcXVpcmVkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gImVycm9yLXRhZyIN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoYXQgaXMgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBlcnJvci4gIFRoaXMgaXMgZXhwZWN0ZWQgb2YNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBwcm90b2NvbA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb3Bl
cmF0aW9ucyB0aGF0IGFyZSBhZGRlZCB0byBORVRDT05GIGFuZCBSRVNUQ09ORi4NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+IEluIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlv
bnMsIHNlY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gNywgdGhlDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZWQgImVycm9yLXRhZyIgaXMgaWRlbnRpZmllZCBh
cyAib3BlcmF0aW9uLWZhaWxlZCIuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IElmIHdlDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gaW5zdGVhZCBwbGFjZWQgdGhhdCAiZXJyb3It
dGFnIiBpbmZvcm1hdGlvbiBpbiB0aGUgWUFORw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBtb2RlbCwg
dGhlbiB3ZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGhhdmUgdGllZCB0
aGUgWUFORyBtb2RlbCB0byB0aGUgUkVTVENPTkYgYW5kIE5FVENPTkYNCj4gPiA+IHRyYW5zcG9y
dHMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJvdGggTkVUQ09ORiBhbmQgUkVTVENPTkYgdXNlIGEg
Y29tcGF0aWJsZSBlcnJvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcG9ydGluZyBkYXRhDQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmUuDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgImVycm9yLXRhZyIgaXMgdXNlZCBp
biBib3RoIG9mIHRoZW0uICBJTU8gY2xpZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGV2ZWxv
cGVycyBkbw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbm90IHdhbnQg
YSBkaWZmZXJlbnQgc2V0IG9mIGVycm9yIGNvZGVzIGZvciB0aGUgc2FtZQ0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IGVycm9yIGNvbmRpdGlvbnMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkcmFmdC1pZXRm
LW5ldGNvbmYtcmVzdGNvbmYtbm90aWYgU2VjdGlvbiAzLjMgYWxzbw0KPiA+ID4gPiA+ID4gPiA+
ID4gPiByZXF1aXJlcyBhbg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICJl
cnJvci10YWciIG5vZGUgb2YgIm9wZXJhdGlvbi1mYWlsZWQiLiAgU28gd2UgdXNlZCB0aGUNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gZHJhZnRzIHJhdGhlciB0aGFuIHRoZSBZQU5HIG1vZGVsIHRvIHN1cHBvcnQgdGhl
IHNhbWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZXJyb3IgY29kZXMgZm9yDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHNhbWUgZXJyb3IgY29uZGl0aW9ucy4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRyYW5zcG9ydCBkcmFmdHMgY291bGQgZGVmaW5l
IHRoZWlyIG93bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGVycm9yDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGl0aWVzLCB3aGljaCB3b3VsZCBkb2N1bWVudCB0
aGUgZXhwZWN0ZWQgZXJyb3ItdGFnDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlcmUuDQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gICAgMi4gICJtb2RpZnktc3Vic2NyaXB0aW9uLXN0cmVhbS1lcnJvci1pbmZvIjogVGhpcw0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTVVTVCBiZSByZXR1cm5lZA0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgd2l0aCB0aGUgbGVhZiAicmVhc29uIiBw
b3B1bGF0ZWQgaWYgYW4gUlBDDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlcnJvciByZWFzb24g
aGFzIG5vdA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAg
YmVlbiBwbGFjZWQgZWxzZXdoZXJlIHdpdGhpbiB0aGUgdHJhbnNwb3J0DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gPiBwb3J0aW9uIG9mIGEgZmFpbGVkDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAibW9kaWZ5LXN1YnNjcmlwdGlvbiIgUlBDIHJlc3BvbnNl
LiAgVGhpcyBNVVNUDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZSBzZW50IGlmDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGhpbnRzDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgLS0gYWxsIDMgcGFyYWdyYXBocyBsaWtlIHRoaXM7IHVuY2xlYXIgd2hhdCAi
cGxhY2VkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIGVsc2V3aGVyZSINCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgdGV4dCBtZWFuczsgbm90IGFw
cHJvcHJpYXRlIGZvciBNVVNUOw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEluc3RlYWQgb2YgInBs
YWNlZCBlbHNld2hlcmUiLCBob3cgYWJvdXQ6ICJwbGFjZWQgaW4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBzdWJzY3JpcHRpb24NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHRyYW5zcG9ydCBkb2N1bWVudCBkZWZpbmVkIG9iamVjdCIuICBXb3VsZCB0aGlzIGJlDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gc3VmZmljaWVudD8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBObyAt
LSBORVRDT05GIGFuZCBSRVNUQ09ORiBoYXZlIHdlbGwtZGVmaW5lZCBlcnJvcg0KPiByZXBvcnRp
bmcuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgc2VydmVyIHJl
cXVpcmVtZW50cyBmb3IgdGhpcyBlcnJvciByZXBvcnRpbmcgbXVzdCBiZQ0KPiA+ID4gPiA+IGRv
Y3VtZW50ZWQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSSBhZ3JlZSB3aXRoIHRoZSBmb2xsb3dp
bmcgYXBwcm9hY2g6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0g
ZWFjaCBvcGVyYXRpb24gTVVTVCBpZGVudGlmeSB0aGUgZXJyb3ItdGFncyB0aGF0IGFyZQ0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGV4cGVjdGVkIGZvcg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgIHZhcmlvdXMgZXJyb3IgY29uZGl0aW9ucyAoc3VjaCBzIGlzIGRv
bmUgaW4gUkZDDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNjI0MSkNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLSB0aGUgc2VydmVyIE1VU1QgcmV0dXJuIHRoZSBzcGVj
aWZpZWQgZXJyb3ItdGFncy4gSWYNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhIGNvbmRpdGlvbiBu
b3QNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLSBleHBsaWNpdGx5
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgZGVmaW5lZCB0aGVu
IHRoZSBzZXJ2ZXIgTVVTVCBwaWNrIHRoZSBhcHByb3ByaWF0ZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IGVycm9yLXRhZyBmcm9tIFJGQw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gICAgIDYyNDENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAt
IHRoZSBzZXJ2ZXIgTUFZIGluY2x1ZGUgdGhlIHNwZWNpZmllZCByYzp5YW5nLWRhdGEgaW4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IDxlcnJvci1pbmZvPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gIC0gZGF0YQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0
dXJlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgLSB0aGUgc2VydmVy
IE1VU1QgdXNlIHRoZSBhcHByb3ByaWF0ZSByYzp5YW5nLWRhdGEgdG8NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiByZXBvcnQgaGludHMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+ICAtIGZvciBwcm90b2NvbHMgb3RoZXIgdGhhbiBORVRDT05GIGFuZCBSRVNUQ09ORiwgdGhl
eQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNhbiBtYXANCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGVycm9yLXRhZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gIC0gb3INCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGln
bm9yZSBpdCwNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIGJ1dCB0
aGUgZG9jdW1lbnQgZGVmaW5pbmcgdGhlIHByb3RvY29sIG9wZXJhdGlvbiBNVVNUDQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gcHJvdmlkZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gRnVuY3Rpb25hbGx5LCBl
dmVyeXRoaW5nIHlvdSBhc2sgZm9yIGlzIGZ1bGx5IGNvdmVyZWQgd2hlbg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiB5b3UgaW5jbHVkZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IGNvbnNpZGVyIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25mLWV2ZW50LW5vdGlmaWNhdGlvbnMN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKHNlY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gNykNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhbmQgZHJhZnQtaWV0Zi1uZXRjb25m
LXJlc3Rjb25mLW5vdGlmIChzZWN0aW9uIDMuMykuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBNeSByZWFk
IG9mIHRoZSBpc3N1ZSBpcyB0aGF0IHlvdSBiZWxpZXZlICJlcnJvci10YWciIG11c3QNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gYmUgc3BlY2lmaWVkDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gaW4gdGhlIFlBTkcgbW9kZWwuICBJIGJlbGlldmUgdGhhdCAiZXJyb3ItdGFnIiBz
aG91bGRuJ3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmUgaW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gWUFORyBtb2RlbCBiZWNhdXNlIHRoYXQgd291bGQgdGllIHRo
ZSBtb2RlbCB0byBhIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0eXBlLg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gQW55IHRob3VnaHRzIG9uIGhvdyB3ZSBtaWdodCBjbG9zZSB0aGlzPyAgSWYg
YWJzb2x1dGVseQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJlZCBJDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY291bGQgcGxhY2UgYSBuZXcgY29tbWVudCBsaW5lIGlu
IHRoZSBZQU5HIG1vZGVsIHVuZGVyDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gLyogSWRlbnRpdGllcyBmb3IgUlBDIGFuZCBOb3RpZmljYXRpb24gZXJyb3JzICovDQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBUaGUgY29tbWVudCB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZToNCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAvKiBXaGVuIHVzZWQgd2l0aCBORVRDT05G
IGFuZCBSRVNUQ09ORiBSUENzOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgICAiZXJyb3ItdHlwZSIgbm9kZSB0byBiZSB1c2VkIGlzICJhcHBsaWNhdGlvbiINCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICJlcnJvci10YWciIG11c3QgYmUg
Im9wZXJhdGlvbi1mYWlsZWQiLiAgKi8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgc2VlbXMgaW5j
b25ncnVvdXMuICBKdXN0IHRocm93aW5nIGl0IG91dCBhcyBhIHN1Z2dlc3Rpb24uDQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IEluIGFueSBjYXNlLCB0aGUgLXYyMSB3b3JkaW5nIHJlc3VsdHMgZnJvbSB0
aGUgYXR0ZW1wdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYmFsYW5jaW5nDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgV0cgcmVxdWVzdHMgZm9yOg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKiBtZXJnaW5nIHdpdGggdHJhbnNwb3J0
IHByb3RvY29sIGVycm9yIG1lY2hhbmlzbXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICogV0cgbGVhZGVyc2hpcCBndWlkYW5jZSB0byBwcm92aWRlIHJlcXVpcmVtZW50
cyBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0cmFuc3BvcnQNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50cw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
ICAgICBPbmx5IDMgZmllbGRzIHNlZW0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gICAgICAgdG8gYmUgcmVsZXZhbnQgKGVycm9yLXRhZywgZXJyb3ItYXBwLXRhZywN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIGVycm9yLWluZm8pLg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICBQcm90Y29sIG9wZXJhdGlvbnMgYXJl
IGV4cGVjdGVkIHRvIGRvY3VtZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzZXJ2ZXIgcmVx
dWlyZW1lbnRzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAg
IGZvciB0aGVzZSAzIGZpZWxkcywgaWYgYXBwbGljYWJsZS4gIE9ubHkgdGhlDQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBlcnJvci10YWcNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gICAgICAgaXMgbWFuZGF0b3J5LXRvLXVzZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBIb3BlZnVsbHkgdGhlc2UgYXJlIGNvdmVyZWQgc3VmZmljaWVudGx5IHdoZW4gdGhpcw0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50IGlzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBjb3VwbGVkIHdpdGggdGhlIE5FVENPTkYgYW5kIFJFU1RDT05GIE5vdGlm
IHRyYW5zcG9ydA0KPiA+ID4gPiA+IGRvY3VtZW50cy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IEZvciBvdGhlciB0cmFuc3BvcnRzLCB0aGUgdGFncyB5b3UgaWRlbnRp
ZnkgYWJvdXQgd291bGQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBub3QgYmUNCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFwcGxpY2FibGUuDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgIC0tIHRoZSBlcnJvciBhc3NpZ25tZW50cyBhcmUgZXh0cmVtZWx5IHNwZWNpZmlj
Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZS5nLiwgaXQgaXMgbm90DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgcG9zc2libGUgZm9yIDxraWxsLXN1YnNj
cmlwdGlvbj4gdG8gZmFpbCB3aXRoIGFuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgICAgJ2luc3VmZmljaWVudC1yZXNvdXJjZXMnIGVycm9yOw0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IFRoaXMgaXMgdGhlIGludGVudCBvZiB0aGUgYmFzZSBzcGVjaWZpY2F0aW9u
LCBlLmcuLCB3ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRvbid0IGJlbGlldmUNCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGtpbGwtDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBzdWJzY3JpcHRpb24gc2hvdWxkIGZhaWwgZm9yIGFuIGluc3VmZmljaWVudC1yZXNvdXJj
ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZWFzb24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
QnV0DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB2ZW5kb3JzIG1pZ2h0
IGRlc2lyZSBtb3JlIHNwZWNpZmljaXR5LiAgQXMgYSByZXN1bHQgaXMNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBjZXJ0YWlubHkgb2sNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IGZvciB2ZW5kb3IgaW1wbGVtZW50YXRpb25zIHRvIGFkZCBuZXcgZXJyb3IgaWRlbnRpdGll
cy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJTU8gYW55dGhpbmcgY2FuIGZhaWwgZm9yIGluc3Vm
ZmljaWVudCByZXNvdXJjZXMuIFRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyB2ZXJ5DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlvbi0NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljLg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gSW5zdGVhZCBvZiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBJIHdvdWxkIGNhbGwg
aXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXBwbGljYXRpb24NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBzcGVjaWZpYy4gIFJpZ2h0IG5vdyB3ZSBkb24ndCBoYXZlIGEgY2F0
Y2gtYWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGVycm9yLWlkZW50aXR5IG9mDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gJ290aGVyLWVycm9yJy4gIFdlIHByZWZlcnJlZCB0
aGF0IGVycm9yIGNvbmRpdGlvbnMgYmV5b25kDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBjdXJy
ZW50DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gb25lcyBsaXN0ZWQgY291
bGQgYmUgaW5jbHVkZWQgYnkgdmVuZG9ycyBhcyBuZWVkZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+
IEZ1cnRoZXINCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkZXBsb3ltZW50
IGV4cGVyaWVuY2UgY291bGQgcmVzdWx0IGluIG5ldyBlcnJvciBpZGVudGl0aWVzDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IHN1cmZhY2luZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+IGZvciBzdGFuZGFyZGl6YXRpb24gc2hvdWxkIHRoaXMgZHJhZnQgY2F0Y2ggb24uDQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gICAgICBEbyBub3QgYWdyZWUgdGhhdCBzY29waW5nIGVhY2gNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBpZGVudGl0eSB0byBz
cGVjaWZpYyBSUEMgb3BlcmF0aW9ucyBpcyBhIGdvb2QgaWRlYS4NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBUaGlzIGxldmVsIG9mIHNwZWNpZmljaXR5IHdhcyBub3QgdGhlIGF1dGhvcidzIG9yaWdp
bmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcGxhbnMuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
Tm9yDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3YXMgdGhpcyBsZXZl
bCBvZiBzcGVjaWZpY2l0eSBwYXJ0IG9mIGVhcmxpZXIgZHJhZnQNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiB2ZXJzaW9ucyB1cA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
dGhyb3VnaCAtdjA4LiAgSG93ZXZlciBtZW1iZXJzIG9mIHRoZSBXRyBtYWRlIGl0IGNsZWFyDQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhhdCBzdWNoDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBzcGVjaWZpY2l0eSB3YXMgbmVjZXNzYXJ5IGZvciBkcmFmdCBwcm9ncmVz
c2lvbi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gaG93IGFyZSBlcnJvcnMgaW4gdGhl
c2UgcGFyYW1ldGVycyByZXBvcnRlZCBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbmZp
Z3VyZWQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBzdWJz
Y3JpcHRpb25zIHdoZW4gPGVkaXQtY29uZmlnPiBpcyB0aGUgUlBDIHRoYXQgaGFzDQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICAgIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBl
cnJvcj8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBIb3cg
YXJlIHRoZSB5YW5nLWRhdGEgc3RydWN0cyB1c2VkIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gZWRpdC1jb25maWcgb3IgY29tbWl0DQo+ID4gPiA+ID4gPiA+IGVycm9ycz8NCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBOb25lIG9mIHRoZXNlIHlhbmctZGF0YSBzdHJ1Y3R1cmVzIGFyZSBzcGVj
aWZpZWQgZm9yIHVzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDxlZGl0LWNvbmZpZz4gb3BlcmF0aW9ucy4gIEZvciA8
ZWRpdC1jb25maWc+LCB0aGUgY2hhbmdlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8gYQ0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29uZmlndXJlZCBzdWJzY3JpcHRp
b24gd291bGQgYmUgd3JpdHRlbiB0byB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkYXRhc3Rv
cmUgaWYgaXQgd2VyZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2Vt
YW50aWNhbGx5IHZhbGlkLiAgQXQgdGhpcyBwb2ludCB0aGUgc3Vic2NyaXB0aW9uDQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gZW50ZXJzIHRoZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gW2V2YWx1YXRlXSBwb2ludHMgb2YgRmlndXJlIDguICBJc3N1ZXMgZnJvbSB0aGlz
IHBvaW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb3V0IHdvdWxkIGJlDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRlZCB3aXRoIGEgdmVuZG9yIHNwZWNpZmlj
IGNvbnN0cnVjdCBzdWNoIGFzIFNZU0xPRy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyBob3cg
YXJlIGhpbnRzIHJlcG9ydGVkIGZvciBjb25maWd1cmVkIHN1YnNjcmlwdGlvbnM/DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBUaGVyZSBpcyBub3RoaW5nIGluIHRoZSBzcGVjaWZpY2F0aW9uIHdoaWNoIHJl
cXVpcmVzIHRoaXMuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFuDQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gaW1wbGVtZW50YXRpb24gY291bGQgY2hvb3NlIHRvIHBsYWNlIHRo
ZXNlIGluIHNvbWUgZm9ybSBvZg0KPiA+ID4gU1lTTE9HLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+IC4uLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBJNikgc2VjIDIuNSwgcGFyYSAzOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBP
biBhIHJlY2VpdmVyIG9mIGENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gICAgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yIGR5bmFtaWMNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IHN1YnNjcmlwdGlvbnMgaXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgb3B0aW9uYWwgZXhjZXB0IHdoZXJlIHJlcGxheWluZyBt
aXNzZWQgZXZlbnQgcmVjb3JkcyBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgcmVxdWly
ZWQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gY29uZnVzaW5nIGJlY2F1c2UgdGV4
dCBpbiAxLjM6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAg
Tm90ZSB0aGF0IHRoZXJlIGlzIG5vIG1peGluZy1hbmQtbWF0Y2hpbmcgb2YNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IGR5bmFtaWMgYW5kIGNvbmZpZ3VyZWQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBvcGVyYXRpb25zIG9uIGEgc2luZ2xlIHN1YnNjcmlw
dGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNwZWNpZmljYWxseSwgYSBjb25maWd1cmVk
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0gY2xhcmlmeSB0
aGUgcmVjZWl2ZXIgbWF5IGhhdmUgbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN1
YnNjcmlwdGlvbnMgaGVyZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
PiAgIC0tIG5vdCBjbGVhciB3aGF0ICJleGNlcHQgd2hlcmUgcmVwbGF5aW5nLi4uIiB0ZXh0DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtZWFucw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEhvdyBh
Ym91dCB0aGUgZm9sbG93aW5nIHR3ZWFrOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICJPbiBhIHJl
Y2VpdmVyIG9mIGEgY29uZmlndXJlZCBzdWJzY3JpcHRpb24sIHN1cHBvcnQgZm9yDQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gZHluYW1pYw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gc3Vic2NyaXB0aW9ucyBpcyBvcHRpb25hbC4gIEhvd2V2ZXIgaWYgcmVwbGF5aW5nIG1p
c3NlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGV2ZW50DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiByZWNvcmRzIGlzIHJlcXVpcmVkIGZvciBhIGNvbmZpZ3VyZWQgc3Vi
c2NyaXB0aW9uLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN1cHBvcnQgZm9yDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkeW5hbWljIHN1YnNjcmlwdGlvbiBpcyBoaWdo
bHkgcmVjb21tZW5kZWQuICBJbiB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY2FzZSwgYQ0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VwYXJhdGUgZHluYW1pYyBz
dWJzY3JpcHRpb24gY2FuIGJlIGVzdGFibGlzaGVkIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
cmV0cmFuc21pdCB0aGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1p
c3NpbmcgZXZlbnQgcmVjb3Jkcy4iDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT0sNCj4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+IENoYW5nZSBtYWRlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEk3KSBsZWFmIHN0
cmVhbS14cGF0aC1maWx0ZXI6IFttdWx0aXBsZSB1c2VzXQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gPiAgICAgICAgICAgIFRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBpbiB0aGUgZm9sbG93
aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgIFhQYXRoDQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gPiAgICAgICAgICAgIGNvbnRleHQ6DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiA+ICAgICAgICAgICAgICBvIFRoZSBzZXQgb2YgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBpcyB0
aGUgc2V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgb2YNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICBwcmVmaXgNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICBhbmQgbmFtZXNwYWNlIHBhaXJz
IGZvciBhbGwgWUFORw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbW9kdWxlcyBpbXBsZW1lbnRl
ZA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAg
ICAgIGJ5IHRoZSBzZXJ2ZXIsIHdoZXJlIHRoZSBwcmVmaXggaXMNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IHRoZSBZQU5HIG1vZHVsZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgICAgICAgICAgICAgICAgIG5hbWUgYW5kIHRoZSBuYW1lc3BhY2UgaXMgYXMgZGVm
aW5lZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYnkgdGhlDQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZScgc3RhdGVt
ZW50IGluIHRoZSBZQU5HIG1vZHVsZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBU
aGlzIHByZWZpeCBwcm9jZXNzaW5nIGlzIG5vdCBkb25lIGFueXdoZXJlIGVsc2UNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGluIE5FVENPTkYNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gICAgICBvciBSRVNUQ09ORi4gIElNTyBhIGJhZCBwcmVjZWRlbnQuICBPbmx5
IHRoZSBYTUwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHByZWZpeGVzDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgc2hvdWxkIGJlIHJlcXVpcmVkIGZvciBw
cm9jZXNzaW5nIG9mIFhNTCBlbmNvZGluZy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFlBTkcN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBtb2R1bGUgcHJl
Zml4ZXMgYXJlIG5vdCByZXF1aXJlZCB0byBiZSB1bmlxdWUsDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gPiB1bmxpa2UNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAg
ICB0aGUgcHJlZml4IG1hcHBpbmdzIGluIFhNTA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMg
dGV4dCB3YXMgcHJvcG9zZWQgYnkgTWFydGluIGFzIGEgcmVzdWx0IG9mIHRoZQ0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ICJ4cGF0aA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gZXhwcmVzc2lvbnMgaW4gSlNPTiINCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IHRocmVhZCBsYXN0IE9jdG9iZXIgaW4gTkVUTU9ELg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IEkgYW0gaGFwcHkgdG8gaW5jb3Jwb3JhdGUgd2hhdGV2ZXIgdGV4dCBpcyBhcHByb3ByaWF0
ZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIHdhcw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gaG9waW5nIHRoYXQgdGhlIHN1Z2dlc3RlZCB0ZXh0IHdhcyBzdWZmaWNp
ZW50IGZvciBub3cuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gS2VudCBoYXMNCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoaXMgYXMg
YW4gaXNzdWUgZm9yIHlhbmctbmV4dA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25ldG1vZC13Zy95YW5nLW5leHQvaXNzdWVzLzU1DQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyBob3BlZnVsbHkgdGhlcmUg
aXMgbm8gZmluYWwgcHJlY2VkZW50IGJlaW5nIGNsYWltZWQuDQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gSSBkbyBub3QgYWdyZWUgdGhhdCB0aGlzIFlBTkcgbW9kdWxlIHNob3VsZCBkZWZpbmUgYSBu
ZXcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3YXkgdG8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+IGVuY29kZSBYUGF0aCBpbnRvIFhNTCBpbnN0YW5jZSBkb2N1bWVudHMu
IFRoaXMgd2lsbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcXVpcmUNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gc2VydmVyIGlt
cGxlbWVudGF0aW9ucy4gIFlBTkcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtb2R1bGUgcHJlZml4
ZXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFyZSBub3QgZXZlbiBy
ZXF1aXJlZCB0byBiZSB1bmlxdWUgc28gdGhlIHNldCBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHByZWZpeGVzIHVzZWQgYnkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHRoZSBzZXJ2ZXIgaW4gWE1MIGluc3RhbmNlIGRvY3VtZW50cyBtYXkgYmUgZGlmZmVyZW50LA0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNpbmNlIGl0IG11c3QNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGJlIHVuaXF1ZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFNlZSBuZXh0
IG5vdGUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIE5NREEgYWxsb3dzIHRoZSBzYW1lIG1v
ZHVsZSB0byBhcHBlYXIgaW4gbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1vZHVs
ZS1zZXRzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgYW5k
IGRpZmZlcmVudCBpbiBlYWNoIGRhdGFzdG9yZS4gVGhpcyB0ZXh0IGFib3V0DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gPiAiaW1wbGVtZW50ZWQgYnkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAgICB0aGUgc2VydmVyIiBkb2VzIG5vdCB3b3JrIGZvciBOTURBDQo+
ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gSSBhbSBoYXBweSB0byBhZG9wdCB3aGF0ZXZlciB0ZXh0IG1l
ZXRzIFlBTkcgZG9jdG9yDQo+IGFwcHJvdmFsLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENhbg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4geW91IHN1Z2dlc3Q/DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IFJlbW92ZSBhbGwgdGV4dCBhYm91dCBZQU5HIHByZWZpeGVzIGFuZCBjb250aW51ZSB1c2luZw0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+IFhNTCBlbmNvZGluZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gd2l0aG91dCBtb2RpZmljYXRpb24NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
IEFzIGEgZGlmZmVyZW50IFlBTkcgZG9jdG9yIGhhcyByZXF1aXJlZCB0aGUgY3VycmVudCB0ZXh0
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IG1vZGlmaWNhdGlvbiwNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBJIGJlbGlldmUgdGhpcyBpcyBhIGJsb2NrZXIuICBXaGF0IGlzIHRo
ZSBwcm9jZXNzIGZvciBZQU5HDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG1vZGVsDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmV2aWV3cyBpbiBzdWNoIGEgY2FzZS4gIEkgYW0g
aGFwcHkgdG8gYWNjZXB0IHdoYXRldmVyIGhlcmUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFueQ0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN1Z2dlc3Rpb25zIG9uIG5leHQg
c3RlcHM/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAuLi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gICAtLSB0aGVyZSBzaG91bGQgYmUgYW4gZXhhbXBsZSBvZiBhIGNvbmZp
Z3VyYWJsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZW5jb2RpbmcNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZWQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBJIGFtIGhhcHB5IHRvIGVuaGFuY2UgdGhlIGRlZmluaXRpb24gWUFORyBtb2RlbCdzDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gaWRlbnRpdHkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IGRlZmluaXRpb24gb2YgImNvbmZpZ3VyYWJsZS1lbmNvZGluZyIuICBJIGNvdWxk
IGRvIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBieSBhZGRpbmcNCj4gPiA+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCB0ZXh0IHRv
IHRoZSBkZXNjcmlwdGlvbjogIkFuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZXhhbXBsZSBvZiBh
DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmFibGUgZW5j
b2RpbmcgbWlnaHQgYmUgYSBuZXcgaWRlbnRpdHkgc3VjaCBhcw0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+ICdlbmNvZGUtY2JvcicuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiBTdWNoIGFuIGlkZW50aXR5IGNvdWxkIHVzZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gJ2NvbmZpZ3VyYWJsZS0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IGVuY29kaW5nJyBhcyBpdHMgYmFzZS4gIFRoaXMgd291bGQgYWxsb3cgYSBkeW5h
bWljDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3Vic2NyaXB0aW9uDQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlbmNvZGVkIGluIEpTT04gW1JGQy04MjU5XSB0byByZXF1
ZXN0IG5vdGlmaWNhdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1lc3NhZ2VzIGJlDQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlbmNvZGVkIHZpYSBDQk9SIFtSRkMt
IDcwNDldLiAgRnVydGhlciBkZXRhaWxzIGZvciBhbnkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBz
cGVjaWZpYw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29uZmlndXJh
YmxlIGVuY29kaW5nIHdvdWxkIGJlIGV4cGxvcmVkIGluIGEgdHJhbnNwb3J0DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gZG9jdW1lbnQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IGJhc2VkIG9uIHRoaXMgc3BlY2lmaWNhdGlvbi4iICBEb2VzIHRoaXMgbWVldCB5b3VyIGFz
az8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gT0sNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFkZGVkDQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gSTExKSBleHRlbnNpb24gc3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbiB7DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICBUaGlzIHN0YXRlbWVudCBpcyBub3QgZm9yIHVz
ZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgb3V0c2lk
ZSBvZiB0aGlzIFlBTkcgbW9kdWxlLiI7DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgLS0g
dGhpcyB0ZXh0IHNob3VsZCBiZSByZW1vdmVkLiBUaGVyZSBpcyBubyB2YWx1ZSBpbg0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gbGltaXRpbmcNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gICAgICB0aGUgc2NvcGUgb2YgdGhpcyBleHRlbnNpb24uICBJdCBwcmV2ZW50
cyBldmVuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGlzIFdHIGZyb20NCj4gPiA+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBjcmVhdGluZyBhIG1vZHVsZSB0aGF0
IHVzZXMgdGhlIGV4dGVuc2lvbiBhZ2Fpbi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHdh
cyB0aGUgc3ViamVjdCBvZiBzaWduaWZpY2FudCBkZWJhdGUgaW4gdGhlIFdHLg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IFRoZSBhdXRob3JzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBkaWQgbm90IHdhbnQgdGhpcyByZXN0cmljdGlvbiBlaXRoZXIuDQo+ID4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gVG8gYmUgYWxsb3dlZCB0byBwcm9ncmVzcyB0aGUgZG9jdW1lbnQsIHdlIGlu
c2VydGVkIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50Lg0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSWYgdGhpcyByZWFsbHkgaXMgbWFuZGF0b3J5LXRv
LXJlbW92ZSBmcm9tIGEgWUFORyBkb2N0b3INCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IHBvaW50LW9mLXZpZXcsIHdoYXQgaXMgdGhlIHByb2Nlc3MgZm9yIHF1aWNrIGNs
b3N1cmUgb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGlzIGlzc3VlDQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZXR3ZWVuIFdHIGxlYWRlcnNoaXAgYW5kIHRoZSBZ
QU5HIGRvY3RvcnM/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IFRoZSBZQU5HIGxhbmd1YWdlIG1ha2VzIG5vIHJlc3RyaWN0aW9u
cyBhYm91dCBleHBvcnRpbmcNCj4gPiA+ID4gPiBzdGF0ZW1lbnRzLg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSSBndWVzcyBJIG1pc3NlZCB0aGF0IGRlYmF0ZSBzbyBJ
IHdpbGwganVzdCBzYXkgT0sgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd29uZGVyIHdoYXQN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHByb2JsZW0gdGhpcyBpcyBz
dXBwb3NlZCB0byBzb2x2ZS4gSSBndWVzcyB0aGUgV0cgd2FudHMNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiB0byBnaXZlIFlBTkcNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IERvY3RvcnMgbW9yZSB0aGluZ3MgdG8gY2hlY2suIChUaGlzIGlzIHdoYXQgd2UgY2FsbGVkIGEN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBDTFIgaW4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IFNOTVAtbGFuZCA7LSkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoYW5rcy4gIE5v
IGFjdGlvbiB0YWtlbi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJMTMpICAgbm90aWZpY2F0aW9u
IHN1YnNjcmlwdGlvbi1zdGFydGVkIHsNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gICAgIHNuOnN1YnNjcmlwdGlvbi1zdGF0ZS1ub3RpZmljYXRpb247DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICBpZi1mZWF0dXJlICJjb25maWd1
cmVkIjsNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgIGRlc2Ny
aXB0aW9uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICJU
aGlzIG5vdGlmaWNhdGlvbiBpbmRpY2F0ZXMgdGhhdCBhIHN1YnNjcmlwdGlvbg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gaGFzIHN0YXJ0ZWQgYW5kDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ICAgICAgICAgbm90aWZpY2F0aW9ucyBhcmUgYmVnaW5uaW5nIHRvIGJl
IHNlbnQuIFRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG5vdGlmaWNhdGlvbiBzaGFsbA0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgb25seSBiZSBz
ZW50IHRvIHJlY2VpdmVycyBvZiBhIHN1YnNjcmlwdGlvbjsgaXQNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IGRvZXMgbm90DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ICAgICAgICBjb25zdGl0dXRlIGEgZ2VuZXJhbC1wdXJwb3NlIG5vdGlmaWNhdGlvbi4iOw0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIC0tIDJuZCBzZW50ZW5jZSBpcyBjb25mdXNpbmc7IGFs
bCBub3RpZmljYXRpb25zIGFyZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VudCB0bw0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgIHJlY2VpdmVycyBvZiBh
IHN1YnNjcmlwdGlvbi4gbGFzdCBwYXJ0IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZWR1
bmRhbnQgc2luY2UNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAg
ICB0aGUgc246c3Vic2NyaXB0aW9uLXN0YXRlLW5vdGlmaWNhdGlvbiBleHRlbnNpb24NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGlzIHVzZWQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGVyZSBp
cyBubyBpc3N1ZSB3aXRoIHJlbW92aW5nIHRoaXMgc2Vjb25kIHNlbnRlbmNlDQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gY29tcGxldGVseS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJZg0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSSBkaWQgdGhhdCwgd291bGQgdGhpcyBh
ZGRyZXNzIHlvdXIgY29uY2Vybj8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPSw0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+
ID4gPiA+ID4gRG9uZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEkxNCkgICByYzp5YW5nLWRhdGEg
bW9kaWZ5LXN1YnNjcmlwdGlvbi1zdHJlYW0tZXJyb3ItaW5mbyB7DQo+ID4gPiA+ID4gPiA+ID4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICAgICAgIGxlYWYgZmlsdGVyLWZhaWx1cmUtaGludCB7DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgdHlwZSBzdHJpbmc7DQo+ID4gPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICBkZXNjcmlwdGlvbg0K
PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAiSW5m
b3JtYXRpb24gZGVzY3JpYmluZyB3aGVyZSBhbmQvb3Igd2h5IGENCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IHByb3ZpZGVkIGZpbHRlcg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiAgICAgICAgICAgICAgd2FzIHVuc3VwcG9ydGFibGUgZm9yIGEgc3Vic2NyaXB0aW9u
LiI7DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgIH0NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAtLSBycGMtZXJyb3IgYWxyZWFkeSBhbGxvd3MgbW9y
ZSBwcmVjaXNlIGVycm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcNCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBJdCB1c2VzIGVycm9yLXRh
ZywgZXJyb3ItcGF0aCwgZXJyb3Itc3RyaW5nLCBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IGVycm9yLWluZm8NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAg
ICBleHRlbnNpb25zDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAg
ICAgdG8gaWRlbnRpZnkgd2hpY2ggcGFyYW1ldGVycy9jb25kaXRpb25zIGNhdXNlZA0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gdGhlIFJQQyB0byBiZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICAgIHJlamVjdGVkLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gPiAgICAgIFRoaXMgZXJyb3IgcmVwb3J0aW5nIHdpbGwgY29udGludWUg
dG8gYmUgdXNlZCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5vdCBzdXJlIHRoaXMNCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBmYWlsdXJlLWhpbnQNCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICBoYXMgYW55IHN0YW5k
YXJkcyB2YWx1ZS4gUGVyaGFwcyByZWFsLXVzZSBleGFtcGxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBjYW4gYmUNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYWRk
ZWQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBQZXIgeW91ciB0aG91Z2h0cyBvbiBycGMtZXJyb3Iu
Li4gIEZvciBORVRDT05GIGFuZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFJFU1RDT05GLCB5b3UN
Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBvaW50IHRvIGVycm9yIHN0
cnVjdHVyZXMgd2hpY2ggaGlzdG9yaWNhbGx5IGJlZW4gdXNlZA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IHdpdGggdGhvc2UNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRy
YW5zcG9ydHMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPZiBjb3Vy
c2UNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdlIHdlcmUgbG9va2lu
ZyB0byBoYXZlIGFsbCBzdWJzY3JpcHRpb24gaGludHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBz
dXBwb3J0YWJsZSBhY3Jvc3MNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHRyYW5zcG9ydHMgdmlhIGEgc2luZ2xlIHBvcnRhYmxlIFlBTkcgZGF0YSBzdHJ1Y3R1cmUuDQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gU28gdGhlIHZhbHVlDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiBpcyB0aGF0IGEgc2luZ2xlIHN0cmluZyBvYmplY3QgZXhpc3RzIHNv
IHRvIHRyYW5zcG9ydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdoYXRldmVyIHRoZQ0KPiA+ID4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdmVuZG9yIHRoaW5rcyB3b3VsZCBiZSB1
c2VmdWwgYXMgYSBoaW50IGluIHRoaXMgY2FzZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJLmUu
LCB0aGVyZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaGFzIGJlZW4g
bm8gYXR0ZW1wdCB0byBzdGFuZGFyZGl6ZSB0aGUgY29udGVudHMgb2YgdGhpcw0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IHN0cmluZy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJZg0KPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb3BlcmF0aW9uYWwgZXhwZXJpZW5jZXMgZHJp
dmUgYSBkZXNpcmUgZm9yIHN1Y2gNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmluZywg
dGhpcw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY291bGQgcHJvdmlk
ZSB0aGUgYmFzaXMgZm9yIGEgbmV3IGRyYWZ0IGJ1aWxkaW5nIG9mZiBvZg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IHRoaXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHN0
YXJ0aW5nIHBvaW50Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEkgZ3Vlc3MgSSBkbyBub3QgY29u
c2lkZXIgTkVUQ09ORiBhbmQgUkVTVENPTkYNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAiaGlzdG9y
aWMiIHF1aXRlDQo+ID4gPiA+ID4geWV0Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gVGhlcmUgYXJlIG1hbnkgaW1wbGVtZW50YXRpb25zIHVzaW5nIHRoZSBycGMtZXJy
b3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZXBvcnRpbmcgd2l0aCBubw0KPiA+ID4gPiA+ID4g
PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW50ZW50IHRvIHJlcGxhY2UgaXQgd2l0aCBzb21l
dGhpbmcgZWxzZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g
PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIHdhcyBqdXN0IGFza2luZyBmb3Ig
YW4gZXhhbXBsZSwgc2luY2UgSSBoYXZlIG5vIGlkZWENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3
aGF0IGFuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRv
ciB3b3VsZCBwdXQgaW4gdGhpcyBsZWFmLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+
ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSGVyZSBpcyBhbiBl
eGFtcGxlIGZyb20gb3VyIGltcGxlbWVudGF0aW9uLiAgU2F5IHlvdQ0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBtaXN0eXBlIGFuIGV4dHJhDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+
ID4gIlwiIHRvIGFuIHhwYXRoIGZpbHRlcjoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiAvaWY6aW50ZXJmYWNlcy1zdGF0ZS9pbnRlcmZhY2VbbmFtZT0iR2lnYWJpdEV0aGVy
bmV0MC8wIl0vDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG9wZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4g
LXN0YQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0dXMNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiBBcyBhIHJlc3VsdCwgdGhlIGZpbHRlciBpcyBwYXNzZWQgdG8gdGhlIHB1Ymxp
c2hlciBpczoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAvaWY6aW50ZVxy
ZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25hbWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCJdDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IC9vcGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gci1zdA0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBhdHVzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBXaGF0IHdlIHdvdWxkIHJldHVybiBpbiB0
aGUgZmFpbHVyZS1oaW50IHN0cmluZyBpczoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBJbnZhbGlkIGV4cHJlc3Npb246IG9mZnNldCg5KSBpbg0KPiA+ID4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICcvaWY6aW50ZVxyZmFjZXMtc3RhdGUvaW50ZXJmYWNlW25h
bWU9IkdpZ2FiaXRFdGhlcm5ldDAvMCINCj4gPiA+ID4gPiA+ID4gPiA+ID4gXS9vcGVyLQ0KPiA+
ID4gPiA+IHN0YXR1cycNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEVyaWMNCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+
ID4gQW5keQ0K


From nobody Thu Jan 24 15:56:04 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E1381311F3; Thu, 24 Jan 2019 15:56:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.052
X-Spam-Level: 
X-Spam-Status: No, score=-19.052 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 YFb3Z3sLrAQN; Thu, 24 Jan 2019 15:56:01 -0800 (PST)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D8331130F40; Thu, 24 Jan 2019 15:56:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=21884; q=dns/txt; s=iport; t=1548374160; x=1549583760; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=o2lEtx1QrSENPx619XSdpur315QW95+OTMDR4/RNrWI=; b=SFfODsu0Tp3PRrxmao4Ct+SxdqofphZrgGVBAtsH9zY40mVkBfiWqSdP KSnlTZqvZiPovslWctK27yRTk1l8GRhJluoIs0z9U5kDzI26gclJg9FUJ /dCgD+DnRHDxp4lu3Vjbn9+iODT5R4NV3l1XCoJofw8UyLEvfaQw8MTlh Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAACKT0pc/5RdJa1bCRkBAQEBAQE?= =?us-ascii?q?BAQEBAQEHAQEBAQEBgVEEAQEBAQELAYENTSlngQMnCoN3iBqLc4INkh2FaoF?= =?us-ascii?q?7CwEBhGwCF4JsIjQJDQEDAQECAQECbSiFSgEBAQEDIwpKAhACAQgVAw0aAwI?= =?us-ascii?q?CAjAUEQIEDgUIgk9MgR1krEWBL4oyjEEXgUA/hCOEVzgqglGCNSICiVUVgXu?= =?us-ascii?q?EEYFxkEYJAohQiUwgkh+bEAIRFIEnHziBVnAVgyeCUY4LQTGKD4EfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,518,1539648000";  d="scan'208,217";a="509296787"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 23:55:59 +0000
Received: from XCH-RTP-004.cisco.com (xch-rtp-004.cisco.com [64.101.220.144]) by rcdn-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id x0ONtxEI000397 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 24 Jan 2019 23:55:59 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-004.cisco.com (64.101.220.144) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 24 Jan 2019 18:55:58 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Thu, 24 Jan 2019 18:55:58 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>
CC: Martin Bjorklund <mbj@tail-f.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///UiQD//+og8A==
Date: Thu, 24 Jan 2019 23:55:58 +0000
Message-ID: <1b77e7ca80c141979395f739c4ab9a61@XCH-RTP-013.cisco.com>
References: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com> <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com> <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com> <CABCOCHQTxdi8=x-k+FaWrVUwsg0J945i_c1_jmLJRC=FonZoAg@mail.gmail.com>
In-Reply-To: <CABCOCHQTxdi8=x-k+FaWrVUwsg0J945i_c1_jmLJRC=FonZoAg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: multipart/alternative; boundary="_000_1b77e7ca80c141979395f739c4ab9a61XCHRTP013ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.144, xch-rtp-004.cisco.com
X-Outbound-Node: rcdn-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/n4zZLoAElgSZ5ADEq30x93QYREY>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 23:56:04 -0000

--_000_1b77e7ca80c141979395f739c4ab9a61XCHRTP013ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

T24gVGh1LCBKYW4gMjQsIDIwMTkgYXQgOTowNCBBTSBFcmljIFZvaXQgKGV2b2l0KSA8ZXZvaXRA
Y2lzY28uY29tPG1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3cm90ZToNCj4gIkVyaWMgVm9pdCAo
ZXZvaXQpIiA8ZXZvaXRAY2lzY28uY29tPG1haWx0bzpldm9pdEBjaXNjby5jb20+PiB3cm90ZToN
Cj4gPiA+IEZyb206IE1hcnRpbiBCam9ya2x1bmQsIEphbnVhcnkgMjQsIDIwMTkgOTo0MCBBTQ0K
PiA+ID4NCj4gPiA+ICJFcmljIFZvaXQgKGV2b2l0KSIgPGV2b2l0QGNpc2NvLmNvbTxtYWlsdG86
ZXZvaXRAY2lzY28uY29tPj4gd3JvdGU6DQo+ID4gPiA+ID4gRnJvbTogTWFydGluIEJqb3JrbHVu
ZCwgSmFudWFyeSAyNCwgMjAxOSA4OjE3IEFNDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAiRXJpYyBW
b2l0IChldm9pdCkiIDxldm9pdEBjaXNjby5jb208bWFpbHRvOmV2b2l0QGNpc2NvLmNvbT4+IHdy
b3RlOg0KPiA+ID4gPiA+ID4gSGkgQW5keSwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+
ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSB0aG9yb3VnaCBZ
QU5HIERvY3RvciByZXZpZXcuICBJIGhhdmUNCj4gPiA+ID4gPiA+IGluY2x1ZGVkIHRoZQ0KPiA+
ID4gPiA+IGFncmVlZCB1cG9uIGNvbW1lbnRzLCBhbmQgdXBsb2FkZWQgdG86DQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZpY2F0aW9u
cy0yMg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGEgc3VtbWFyeSBvZiB0aGUgY2xhcmlmaWNh
dGlvbnMgbWFkZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4NCj4gPiA+ID4gPiA+IExl
dCBtZSBrbm93IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVlZGVkIHRvIGNvbmNsdWRlIHRoZSBZ
QU5HDQo+ID4gPiA+ID4gPiBkb2N0b3IgcmV2aWV3IG9mIHRoaXMgZG9jdW1lbnQuDQo+ID4gPiA+
ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbHNvIGFzIHRoZSBy
ZXN1bHQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmSBkaXNjdXNzaW9uIHdpdGggeW91IGFuZA0KPiA+
ID4gPiA+ID4gTWFydGluLCB3ZSBuZWVkIHRvIHBlcmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhl
IOKAmGVycm9yLXRhZ+KAmQ0KPiA+ID4gPiA+ID4gbWFwcGluZyB3aXRoaW4gYm90aA0KPiA+ID4g
PiA+ID4gZHJhZnQtaWV0Zi1uZXRjb25mLW5ldGNvbmYtZXZlbnQtbm90aWZpY2F0aW9ucw0KPiA+
ID4gU2VjdGlvbg0KPiA+ID4gPiA+ID4gNywgYW5kIGRyYWZ0LWlldGYtbmV0Y29uZi1yZXN0Y29u
Zi1ub3RpZiBTZWN0aW9uIDMuMy4gICBEaXJlY3RseQ0KPiA+ID4gPiA+ID4gYmVsb3cgaXMgc29t
ZSB0ZXh0IGFuZCBwcm9wb3NlZCBlcnJvci10YWcgbWFwcGluZ3MgZm9yIHRob3NlDQo+ID4gPiA+
ID4gPiBkb2N1bWVudHMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+
ID4gPiA+ID4gPiAgICAgbyAgQW4gImVycm9yLXRhZyIgbm9kZSB3aXRoIHRoZSB2YWx1ZSBiZWlu
ZyBhIHN0cmluZyB0aGF0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIGNvcnJlc3Bv
bmRzIHRvIGFuIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuDQo+ID4gPiA+ID4g
PiBUaGlzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgICJlcnJvci10YWciIHdpbGwg
Y29ycmVzcG9uZCB0byB0aGUgZXJyb3IgaWRlbnRpdGllcw0KPiA+ID4gPiA+ID4gd2l0aGluDQo+
ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgICAgIFtJLUQuZHJhZnQtaWV0Zi1uZXRjb25mLXN1
YnNjcmliZWQtbm90aWZpY2F0aW9uc10NCj4gPiA+ID4gPiA+IHNlY3Rpb24NCj4gPiA+ID4gPiA+
DQo+ID4gPiA+ID4gPiAgICAgICAgMi40LjYgZm9yIGdlbmVyYWwgc3Vic2NyaXB0aW9uIGVycm9y
czoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAg
ICAgICAgICBlcnJvciBpZGVudGl0eSAgICAgICAgIHVzZXMgZXJyb3ItdGFnDQo+ID4gPiA+ID4g
Pg0KPiA+ID4gPiA+ID4gICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0t
LS0tLS0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgICAgICAgZHNjcC11bmF2YWlsYWJs
ZSAgICAgICBpbnZhbGlkLXZhbHVlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBPay4gIEJ1dCBpdCBp
cyBub3QgY2xlYXIgdG8gbWUgd2hlbiB0aGlzIGVycm9yIGlzIGFjdHVhbGx5DQo+ID4gPiA+ID4g
c3VwcG9zZWQgdG8gYmUgZ2VuZXJhdGVkPyAgVGhlIGxlYWYgYW5kIGlkZW50aXR5IGhhdmUgdGhl
IHNhbWUNCj4gPiA+ID4gPiBpZi1mZWF0dXJlLCBzbyBpdCBpc24ndCBhIHNwZWNpYWwgZXJycm8g
Y29kZSBmb3IgInVuc3VwcG9ydGVkIGxlYWYiLCB3aGljaCBpcw0KPiBnb29kIQ0KPiA+ID4gPiA+
DQo+ID4gPiA+ID4gVGhlbiBJIGhhdmUgdG8gYXNzdW1lIGl0IGlzIHN1cHBvc2VkIHRvIGJlIHNv
bWUga2luZCBvZiBydW50aW1lIGVycm9yPw0KPiA+ID4gPg0KPiA+ID4gPiBZZXMuICBBIHB1Ymxp
c2hlciwgbm9yIHRoZSBuZXR3b3JrIHRvIHdoaWNoIGlzIGNvbm5lY3RzIGRvZXMgbm90DQo+ID4g
PiA+IGhhdmUNCj4gPiA+ID4gdG86DQo+ID4gPiA+IChhKSBzdXBwb3J0IGFsbCBEU0NQIHZhbHVl
cywgbm9yDQo+ID4gPiA+IChiKSBhbGxvdyBhIHBhcnRpY3VsYXIgdmFsdWUgcmVxdWVzdGVkIGJ5
IGEgcGFydGljdWxhciBzdWJzY3JpYmVyLA0KPiA+ID4gPiBTbyB0aGlzIGNvbmRpdGlvbiBhbGxv
d3MgYSBwdWJsaXNoZXIgdG8gcmVqZWN0IGEgcmVxdWVzdCBmb3IgYQ0KPiA+ID4gPiBEU0NQIHZh
bHVlIHdoZXJlIGlzIGtub3dzIHRoZSB2YWx1ZSB3aWxsIG5vdCBiZSByZXNwZWN0ZWQuDQo+ID4g
Pg0KPiA+ID4gR29vZCBleHBsYW5hdGlvbiwgSSB3aXNoIGl0IHdhcyBwYXJ0IG9mIHRoZSAibGVh
ZiBkc2NwIiBpbiB0aGUNCj4gPiA+IG1vZHVsZQ0KPiA+ID4gOikNCj4gPiA+DQo+ID4gPiBUaGUg
ZHNjcC11bmF2YWlsYWJsZSBpZGVudGl0eSBkb2Vzbid0IGFkZCBhbnkgYWRkaXRpb24gdmFsdWUN
Cj4gPiA+IGNvbXBhcmVkIHRvIHRoZSBzdGFuZGFyZCBlcnJvci4NCj4gPg0KPiA+IEZvciBORVRD
T05GIGFuZCBSRVNUQ09ORiwgdGhpcyBpcyB0aGUgY2FzZS4NCj4NCj4gQW5kIGNvbWkuICBUaGUg
cG9pbnQgaXMsIHdoYXQgbWFrZXMgdGhlIHJwY3MgaW4gdGhpcyBtb2R1bGUgc28gc3BlY2lhbA0K
PiB0aGF0IHRoZXkgaGF2ZSB0byBpbnZlbnQgYSBuZXcgZXJyb3IgcmVwb3J0aW5nIHNjaGVtZT8g
ICBJZiB3ZSBkbyB0aGF0DQo+IGZvciB0aGVzZSBycGNzLCB3aHkgbm90IGZvciBhbGwgb3RoZXIg
cnBjIGluIGFsbCBvdGhlciBtb2R1bGVzPw0KDQpUaGUgY3VycmVudCBSUEMgZXJyb3IgbWVjaGFu
aXNtcyB0aWVzIFlBTkcgUlBDcyB0byBORVRDT05GIGFuZCBSRVNUQ09ORiB0cmFuc3BvcnRzLiAg
IE92ZXIgbWFueSB5ZWFycyB0aGVyZSBoYXMgYmVlbiBsb3RzIG9mIHdvcmsgdG8gYWxpZ24gdGhl
IHN1YnNjcmlwdGlvbiBkcmFmdHMgdG8gdGhlc2UgZXhpc3RpbmcgbWVjaGFuaXNtcywgd2hpbGUg
bWFpbnRhaW5pbmcgYXMgbXVjaCB0cmFuc3BvcnQgaW5kZXBlbmRlbmNlIGZvciBoaW50cyBhcyBw
b3NzaWJsZS4NCg0KDQpUaGUgc3Vic2NyaXB0aW9uIGRyYWZ0IGNoYW5nZXMgZXJyb3IgcmVwb3J0
aW5nIGluIHNpZ25pZmljYW50IHdheXMsIGZvciB0aGUgd29yc2UsIG5vdCB0aGUgYmV0dGVyLg0K
VGhlcmUgYXJlIGEgc2V0IG9mIGVycm9yLXRhZyB2YWx1ZXMgdGhhdCBhcmUgdXNlZCBmb3IgYWxs
IHByb3RvY29sIG9wZXJhdGlvbnMgZGVmaW5lZCB3aXRoIHJwYy1zdG10Lg0KSXQgd2FzIGZpcnN0
IGRlZmluZWQgaW4gTkVUQ09ORiBidXQgaXQgaGFzIGJlZW4gYXBwbGllZCB0byBSRVNUQ09ORiBh
cyB3ZWxsLg0KDQpUaGlzIGRyYWZ0IHVzZXMgaWRlbnRpdGllcyB0byByZXBsYWNlIHRoZSBzZXQg
b2YgY29tbW9uIGVycm9yLXRhZ3MuICBJbnN0ZWFkLCBldmVyeSBzaW5nbGUNCnJwYy1zdG10IGNh
biBoYXZlIGl0cyBvd24gc2V0IG9mIGVycm9yIGNvZGVzLiBFdmVuIHdvcnNlLCBhIGRpZmZlcmVu
dCBzZXQgb2YgZXJyb3IgY29kZXMNCmRlcGVuZGluZyBvbiB0aGUgcHJvdG9jb2wgdGhhdCB3YXMg
dXNlZC4NCg0KV2h5IHNob3VsZCBhICdyZXNvdXJjZS1kZW5pZWQnIGVycm9yIGJlIHNvbWV0aGlu
ZyBkaWZmZXJlbnQgaW4gUkVTVENPTkYgdnMuIE5FVENPTkY/DQpPciBldmVuIGluIENvTUkgb3Ig
c29tZSB1bmtub3duIHByb3RvY29sPyAgV2h5IHdvdWxkICdpbnZhbGlkLXZhbHVlJyBiZSBkaWZm
ZXJlbnQsDQpkZXBlbmRpbmcgb24gdGhlIG9wZXJhdGlvbj8NCg0KSXQgaXMgMSB0aGluZyB0byBj
aGFuZ2UgdGhlIGRvY3VtZW50YXRpb24gb2YgWUFORy1iYXNlZCBwcm90b2NvbCBvcGVyYXRpb25z
Lg0KSXQgaXMgYW5vdGhlciB0byBvbWl0IG1hbmRhdG9yeSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8g
d29yayB3aXRoIE5FVENPTkYgYW5kIFJFU1RDT05GLg0KSWYgdGhlIGVycm9yLXRhZyB2YWx1ZXMg
YXJlIHByb3Blcmx5IGRvY3VtZW50ZWQgYW5kIHRoZSBORVRDT05GIGFuZCBSRVNUQ09ORiBtYXBw
aW5ncyBhcmUgaWRlbnRpY2FsDQp0aGVuIHRoZXJlIHNob3VsZCBub3QgYmUgYW55IHByb2JsZW1z
IHVzaW5nIHN0YW5kYXJkIGVycm9yIHJlcG9ydGluZy4NCg0KPEVyaWM+IEkgYmVsaWV2ZSB0aGF0
IHdpdGggdGhpcyB0aHJlYWQsIHRoYXQgdGhlIGVycm9yLXRhZyB2YWx1ZXMgd2lsbCBiZSB3ZWxs
IGRvY3VtZW50ZWQgYW5kIGlkZW50aWNhbCBiZXR3ZWVuIE5FVENPTkYgYW5kIFJFU1RDT05GIHRy
YW5zcG9ydCBkcmFmdHMuDQoNCkVyaWMNCg0KDQpBbmR5DQoNCg0KDQoNCg==

--_000_1b77e7ca80c141979395f739c4ab9a61XCHRTP013ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1z
b0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJw
bGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25v
cm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21z
by1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm
Ow0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTkNCgl7bXNvLXN0eWxlLXR5
cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsN
Cgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4
cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCkBwYWdlIFdv
cmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4w
aW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48
L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0i
ZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9
ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8
L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8
ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIFRodSwgSmFuIDI0LCAyMDE5
IGF0IDk6MDQgQU0gRXJpYyBWb2l0IChldm9pdCkgJmx0OzxhIGhyZWY9Im1haWx0bzpldm9pdEBj
aXNjby5jb20iPmV2b2l0QGNpc2NvLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQg
I0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0
O21hcmdpbi1yaWdodDowaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1i
b3R0b206MTIuMHB0Ij4mZ3Q7ICZxdW90O0VyaWMgVm9pdCAoZXZvaXQpJnF1b3Q7ICZsdDs8YSBo
cmVmPSJtYWlsdG86ZXZvaXRAY2lzY28uY29tIiB0YXJnZXQ9Il9ibGFuayI+ZXZvaXRAY2lzY28u
Y29tPC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0OyAmZ3Q7ICZndDsgRnJvbTogTWFydGluIEJqb3Jr
bHVuZCwgSmFudWFyeSAyNCwgMjAxOSA5OjQwIEFNPGJyPg0KJmd0OyAmZ3Q7ICZndDs8YnI+DQom
Z3Q7ICZndDsgJmd0OyAmcXVvdDtFcmljIFZvaXQgKGV2b2l0KSZxdW90OyAmbHQ7PGEgaHJlZj0i
bWFpbHRvOmV2b2l0QGNpc2NvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmV2b2l0QGNpc2NvLmNvbTwv
YT4mZ3Q7IHdyb3RlOjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBGcm9tOiBNYXJ0aW4g
QmpvcmtsdW5kLCBKYW51YXJ5IDI0LCAyMDE5IDg6MTcgQU08YnI+DQomZ3Q7ICZndDsgJmd0OyAm
Z3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJnF1b3Q7RXJpYyBWb2l0IChl
dm9pdCkmcXVvdDsgJmx0OzxhIGhyZWY9Im1haWx0bzpldm9pdEBjaXNjby5jb20iIHRhcmdldD0i
X2JsYW5rIj5ldm9pdEBjaXNjby5jb208L2E+Jmd0OyB3cm90ZTo8YnI+DQomZ3Q7ICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyBIaSBBbmR5LDxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAm
Z3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IFRoYW5r
cyB2ZXJ5IG11Y2ggZm9yIHRoZSB0aG9yb3VnaCBZQU5HIERvY3RvciByZXZpZXcuJm5ic3A7IEkg
aGF2ZTxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IGluY2x1ZGVkIHRoZTxicj4N
CiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBhZ3JlZWQgdXBvbiBjb21tZW50cywgYW5kIHVwbG9h
ZGVkIHRvOjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7ICZndDsgZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQtbm90aWZp
Y2F0aW9ucy0yMjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgYSBzdW1tYXJ5IG9mIHRoZSBjbGFyaWZpY2F0aW9ucyBt
YWRlIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50Ljxicj4NCiZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7IExldCBtZSBrbm93IGlmIHRoZXJlIGFueXRoaW5nIGVsc2UgbmVlZGVkIHRv
IGNvbmNsdWRlIHRoZSBZQU5HPGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgZG9j
dG9yIHJldmlldyBvZiB0aGlzIGRvY3VtZW50Ljxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0
OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IEFs
c28gYXMgdGhlIHJlc3VsdCBvZiB0aGUg4oCYZXJyb3ItdGFn4oCZIGRpc2N1c3Npb24gd2l0aCB5
b3UgYW5kPGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgTWFydGluLCB3ZSBuZWVk
IHRvIHBlcmZvcm0gdGhlIHJlZmluZW1lbnQgb2YgdGhlIOKAmGVycm9yLXRhZ+KAmTxicj4NCiZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IG1hcHBpbmcgd2l0aGluIGJvdGg8YnI+DQomZ3Q7
ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyBkcmFmdC1pZXRmLW5ldGNvbmYtbmV0Y29uZi1ldmVu
dC1ub3RpZmljYXRpb25zPGJyPg0KJmd0OyAmZ3Q7ICZndDsgU2VjdGlvbjxicj4NCiZndDsgJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IDcsIGFuZCBkcmFmdC1pZXRmLW5ldGNvbmYtcmVzdGNvbmYt
bm90aWYgU2VjdGlvbiAzLjMuJm5ic3A7ICZuYnNwO0RpcmVjdGx5PGJyPg0KJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7ICZndDsgYmVsb3cgaXMgc29tZSB0ZXh0IGFuZCBwcm9wb3NlZCBlcnJvci10
YWcgbWFwcGluZ3MgZm9yIHRob3NlPGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
ZG9jdW1lbnRzLjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0
Ozxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDtv
Jm5ic3A7IEFuICZxdW90O2Vycm9yLXRhZyZxdW90OyBub2RlIHdpdGggdGhlIHZhbHVlIGJlaW5n
IGEgc3RyaW5nIHRoYXQ8YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0Ozxicj4NCiZn
dDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGNv
cnJlc3BvbmRzIHRvIGFuIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXJyb3IuPGJyPg0K
Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgVGhpczxicj4NCiZndDsgJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJnF1b3Q7ZXJyb3ItdGFnJnF1b3Q7IHdpbGwgY29ycmVzcG9uZCB0
byB0aGUgZXJyb3IgaWRlbnRpdGllczxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7
IHdpdGhpbjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7
ICZndDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgW0ktRC5kcmFm
dC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zXTxicj4NCiZndDsgJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7IHNlY3Rpb248YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0Ozxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IDIuNC42IGZvciBnZW5lcmFsIHN1YnNjcmlwdGlvbiBlcnJvcnM6PGJyPg0KJmd0
OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsg
Jmd0Ozxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZn
dDsgJmd0OyAmZ3Q7ICZndDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
O2Vycm9yIGlkZW50aXR5Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VzZXMgZXJy
b3ItdGFnPGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLTxicj4NCiZndDsgJmd0OyAm
Z3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2RzY3AtdW5hdmFpbGFibGUmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnZhbGlkLXZhbHVlPGJyPg0KJmd0OyAmZ3Q7ICZndDsg
Jmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IE9rLiZuYnNwOyBCdXQgaXQg
aXMgbm90IGNsZWFyIHRvIG1lIHdoZW4gdGhpcyBlcnJvciBpcyBhY3R1YWxseTxicj4NCiZndDsg
Jmd0OyAmZ3Q7ICZndDsgJmd0OyBzdXBwb3NlZCB0byBiZSBnZW5lcmF0ZWQ/Jm5ic3A7IFRoZSBs
ZWFmIGFuZCBpZGVudGl0eSBoYXZlIHRoZSBzYW1lPGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAm
Z3Q7IGlmLWZlYXR1cmUsIHNvIGl0IGlzbid0IGEgc3BlY2lhbCBlcnJybyBjb2RlIGZvciAmcXVv
dDt1bnN1cHBvcnRlZCBsZWFmJnF1b3Q7LCB3aGljaCBpczxicj4NCiZndDsgZ29vZCE8YnI+DQom
Z3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgVGhl
biBJIGhhdmUgdG8gYXNzdW1lIGl0IGlzIHN1cHBvc2VkIHRvIGJlIHNvbWUga2luZCBvZiBydW50
aW1lIGVycm9yPzxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+DQomZ3Q7ICZndDsgJmd0OyAm
Z3Q7IFllcy4mbmJzcDsgQSBwdWJsaXNoZXIsIG5vciB0aGUgbmV0d29yayB0byB3aGljaCBpcyBj
b25uZWN0cyBkb2VzIG5vdDxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgaGF2ZTxicj4NCiZndDsg
Jmd0OyAmZ3Q7ICZndDsgdG86PGJyPg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyAoYSkgc3VwcG9ydCBh
bGwgRFNDUCB2YWx1ZXMsIG5vcjxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgKGIpIGFsbG93IGEg
cGFydGljdWxhciB2YWx1ZSByZXF1ZXN0ZWQgYnkgYSBwYXJ0aWN1bGFyIHN1YnNjcmliZXIsPGJy
Pg0KJmd0OyAmZ3Q7ICZndDsgJmd0OyBTbyB0aGlzIGNvbmRpdGlvbiBhbGxvd3MgYSBwdWJsaXNo
ZXIgdG8gcmVqZWN0IGEgcmVxdWVzdCBmb3IgYTxicj4NCiZndDsgJmd0OyAmZ3Q7ICZndDsgRFND
UCB2YWx1ZSB3aGVyZSBpcyBrbm93cyB0aGUgdmFsdWUgd2lsbCBub3QgYmUgcmVzcGVjdGVkLjxi
cj4NCiZndDsgJmd0OyAmZ3Q7PGJyPg0KJmd0OyAmZ3Q7ICZndDsgR29vZCBleHBsYW5hdGlvbiwg
SSB3aXNoIGl0IHdhcyBwYXJ0IG9mIHRoZSAmcXVvdDtsZWFmIGRzY3AmcXVvdDsgaW4gdGhlPGJy
Pg0KJmd0OyAmZ3Q7ICZndDsgbW9kdWxlPGJyPg0KJmd0OyAmZ3Q7ICZndDsgOik8YnI+DQomZ3Q7
ICZndDsgJmd0Ozxicj4NCiZndDsgJmd0OyAmZ3Q7IFRoZSBkc2NwLXVuYXZhaWxhYmxlIGlkZW50
aXR5IGRvZXNuJ3QgYWRkIGFueSBhZGRpdGlvbiB2YWx1ZTxicj4NCiZndDsgJmd0OyAmZ3Q7IGNv
bXBhcmVkIHRvIHRoZSBzdGFuZGFyZCBlcnJvci48YnI+DQomZ3Q7ICZndDs8YnI+DQomZ3Q7ICZn
dDsgRm9yIE5FVENPTkYgYW5kIFJFU1RDT05GLCB0aGlzIGlzIHRoZSBjYXNlLjxicj4NCiZndDsg
PGJyPg0KJmd0OyBBbmQgY29taS4mbmJzcDsgVGhlIHBvaW50IGlzLCB3aGF0IG1ha2VzIHRoZSBy
cGNzIGluIHRoaXMgbW9kdWxlIHNvIHNwZWNpYWw8YnI+DQomZ3Q7IHRoYXQgdGhleSBoYXZlIHRv
IGludmVudCBhIG5ldyBlcnJvciByZXBvcnRpbmcgc2NoZW1lPyZuYnNwOyAmbmJzcDtJZiB3ZSBk
byB0aGF0PGJyPg0KJmd0OyBmb3IgdGhlc2UgcnBjcywgd2h5IG5vdCBmb3IgYWxsIG90aGVyIHJw
YyBpbiBhbGwgb3RoZXIgbW9kdWxlcz88YnI+DQo8YnI+DQpUaGUgY3VycmVudCBSUEMgZXJyb3Ig
bWVjaGFuaXNtcyB0aWVzIFlBTkcgUlBDcyB0byBORVRDT05GIGFuZCBSRVNUQ09ORiB0cmFuc3Bv
cnRzLiZuYnNwOyAmbmJzcDtPdmVyIG1hbnkgeWVhcnMgdGhlcmUgaGFzIGJlZW4gbG90cyBvZiB3
b3JrIHRvIGFsaWduIHRoZSBzdWJzY3JpcHRpb24gZHJhZnRzIHRvIHRoZXNlIGV4aXN0aW5nIG1l
Y2hhbmlzbXMsIHdoaWxlIG1haW50YWluaW5nIGFzIG11Y2ggdHJhbnNwb3J0IGluZGVwZW5kZW5j
ZSBmb3IgaGludHMgYXMgcG9zc2libGUuPG86cD48L286cD48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBzdWJzY3JpcHRpb24gZHJhZnQgY2hh
bmdlcyBlcnJvciByZXBvcnRpbmcgaW4gc2lnbmlmaWNhbnQgd2F5cywgZm9yIHRoZSB3b3JzZSwg
bm90IHRoZSBiZXR0ZXIuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5UaGVyZSBhcmUgYSBzZXQgb2YgZXJyb3ItdGFnIHZhbHVlcyB0aGF0IGFyZSB1
c2VkIGZvciBhbGwgcHJvdG9jb2wgb3BlcmF0aW9ucyBkZWZpbmVkIHdpdGggcnBjLXN0bXQuPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JdCB3YXMg
Zmlyc3QgZGVmaW5lZCBpbiBORVRDT05GIGJ1dCBpdCBoYXMgYmVlbiBhcHBsaWVkIHRvIFJFU1RD
T05GIGFzIHdlbGwuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlRoaXMgZHJhZnQgdXNlcyBpZGVudGl0aWVzIHRvIHJlcGxhY2UgdGhlIHNldCBv
ZiBjb21tb24gZXJyb3ItdGFncy4mbmJzcDsgSW5zdGVhZCwgZXZlcnkgc2luZ2xlPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5ycGMtc3RtdCBjYW4g
aGF2ZSBpdHMgb3duIHNldCBvZiBlcnJvciBjb2Rlcy4gRXZlbiB3b3JzZSwgYSBkaWZmZXJlbnQg
c2V0IG9mIGVycm9yIGNvZGVzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5kZXBlbmRpbmcgb24gdGhlIHByb3RvY29sIHRoYXQgd2FzIHVzZWQuPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldoeSBz
aG91bGQgYSAncmVzb3VyY2UtZGVuaWVkJyBlcnJvciBiZSBzb21ldGhpbmcgZGlmZmVyZW50IGlu
IFJFU1RDT05GIHZzLiBORVRDT05GPzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+T3IgZXZlbiBpbiBDb01JIG9yIHNvbWUgdW5rbm93biBwcm90b2Nv
bD8mbmJzcDsgV2h5IHdvdWxkICdpbnZhbGlkLXZhbHVlJyBiZSBkaWZmZXJlbnQsPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5kZXBlbmRpbmcgb24g
dGhlIG9wZXJhdGlvbj8mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+SXQgaXMgMSB0aGluZyB0byBjaGFuZ2UgdGhlIGRvY3VtZW50YXRp
b24gb2YgWUFORy1iYXNlZCBwcm90b2NvbCBvcGVyYXRpb25zLjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SXQgaXMgYW5vdGhlciB0byBvbWl0IG1h
bmRhdG9yeSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gd29yayB3aXRoIE5FVENPTkYgYW5kIFJFU1RD
T05GLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
SWYgdGhlIGVycm9yLXRhZyB2YWx1ZXMgYXJlIHByb3Blcmx5IGRvY3VtZW50ZWQgYW5kIHRoZSBO
RVRDT05GIGFuZCBSRVNUQ09ORiBtYXBwaW5ncyBhcmUgaWRlbnRpY2FsPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj50aGVuIHRoZXJlIHNob3VsZCBu
b3QgYmUgYW55IHByb2JsZW1zIHVzaW5nIHN0YW5kYXJkIGVycm9yIHJlcG9ydGluZy48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jmx0O0VyaWMmZ3Q7IEkgYmVsaWV2ZSB0aGF0IHdpdGggdGhpcyB0
aHJlYWQsIHRoYXQgdGhlIGVycm9yLXRhZyB2YWx1ZXMgd2lsbCBiZSB3ZWxsIGRvY3VtZW50ZWQg
YW5kIGlkZW50aWNhbCBiZXR3ZWVuIE5FVENPTkYgYW5kIFJFU1RDT05GIHRyYW5zcG9ydCBkcmFm
dHMuDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RXJpYzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFuZHk8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNv
bGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0
LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_1b77e7ca80c141979395f739c4ab9a61XCHRTP013ciscocom_--


From nobody Thu Jan 24 16:03:03 2019
Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83185130F40 for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 16:03:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.041
X-Spam-Level: 
X-Spam-Status: No, score=-2.041 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-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 Dza0AMmaeHVZ for <netconf@ietfa.amsl.com>; Thu, 24 Jan 2019 16:02:57 -0800 (PST)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (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 261A11311FC for <netconf@ietf.org>; Thu, 24 Jan 2019 16:02:57 -0800 (PST)
Received: by mail-lf1-x12a.google.com with SMTP id p6so5689468lfc.1 for <netconf@ietf.org>; Thu, 24 Jan 2019 16:02:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iWm8F6t92SrY++Z1biQlLdPj49StXJUAK//6xigRpKo=; b=mtHPyozta4W0XuoZLyDwfCM229MuKEEdsPFYbghaI62ZlrnTZOhvqDdaxa/xD1recD A/+RhH/Ja0/nkEY0x5dkbTOIMAXX0qbFVwiMei+laj3nUDlYZevMl14hXF3N1E9Vioku Tughc3fkz5mmDAWpGh0ZwKUFOF5Ozl+VIAkQuqHVJknIPRyqTTBPqMMJVVLb8odnxQyt ed+MorfuntvH6G9Q4Cn6Tk6DY7EnSOi1VjinI8WCPsbIvsupwy/UL+D1nSiLAcmh8RMy ZUD9XV+GeHQoqbMcdxRFjY4/OpZTu6O4xk16F2OHHpJSe9NyCQHqh+qK+0uiUpnSjKBp lzqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iWm8F6t92SrY++Z1biQlLdPj49StXJUAK//6xigRpKo=; b=VNsZKfLcBHMNQDKeKgspG2Oam61cM61R3vI3zxBj5O7qPXx7C39OBCtQTJv3xro8oa QD5lGcqsUE8WXJ+SIQPqSkdQwZQmaaEwQOMjBLJ+oPTrt/esbKWXNk1KknLLrBseTRZy UjJ+54+6y+kFB7Cuwi9XvwvTLAe7V9LAHf6SPIWk9Q0vn0OfQBCNwKpGMou/luoR3+OZ 8ijEAXO4F4j+SCbkdjcySyJgrjqmF+2pZ5JJd01lGpxYml3XRgCpJbOQgCYAROdogcAs HczH5fMuiNFZKWmq5Es6KPAGlaQXvdMRjGZlTu+xaJEb7hEYV8IN5Bg56sH1KGBTb4IO Y45g==
X-Gm-Message-State: AJcUukeQzwr+QROL6hBFi7CqbQiSvLqTIUDj3rA9qg2J84moR/LdHPcm trlrxh4A3t3sF5RNbgDgvdFe6mvnjAmk3nrXdGTXvQ==
X-Google-Smtp-Source: ALg8bN7Ad0SvJsAq+QDHLQBoiZnBsf/EF2UFSxIdlrYrl2z3T6CFUYP2A0dxmdVC7VO5F/Bcf4vW/orUBAysyoU9Y5A=
X-Received: by 2002:a19:1cd3:: with SMTP id c202mr6935171lfc.33.1548374575095;  Thu, 24 Jan 2019 16:02:55 -0800 (PST)
MIME-Version: 1.0
References: <b72f5c48e01c4742b78e31e803c0e2a7@XCH-RTP-013.cisco.com> <20190124.153938.826269505351606159.mbj@tail-f.com> <26102d90539d4794b9186dcfa9654bd1@XCH-RTP-013.cisco.com> <20190124.162945.523862790570074888.mbj@tail-f.com> <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com> <CABCOCHQTxdi8=x-k+FaWrVUwsg0J945i_c1_jmLJRC=FonZoAg@mail.gmail.com> <1b77e7ca80c141979395f739c4ab9a61@XCH-RTP-013.cisco.com>
In-Reply-To: <1b77e7ca80c141979395f739c4ab9a61@XCH-RTP-013.cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 24 Jan 2019 16:02:43 -0800
Message-ID: <CABCOCHTyPH-GhZmBJh4Ni1=4SieeoQnCDxezTb5ezONWjYkMLQ@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>,  "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>,  "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>,  "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000087388f05803d0cb6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/WTnXoRxby1sMB-ALH1ZckEcvdUg>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 00:03:00 -0000

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

On Thu, Jan 24, 2019 at 3:56 PM Eric Voit (evoit) <evoit@cisco.com> wrote:

> On Thu, Jan 24, 2019 at 9:04 AM Eric Voit (evoit) <evoit@cisco.com> wrote=
:
>
> > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > >
> > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM
> > > > > >
> > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > Hi Andy,
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Thanks very much for the thorough YANG Doctor review.  I have
> > > > > > > included the
> > > > > > agreed upon comments, and uploaded to:
> > > > > > >
> > > > > > > draft-ietf-netconf-subscribed-notifications-22
> > > > > > >
> > > > > > > a summary of the clarifications made is at the end of the
> document.
> > > > > > > Let me know if there anything else needed to conclude the YAN=
G
> > > > > > > doctor review of this document.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Also as the result of the =E2=80=98error-tag=E2=80=99 discuss=
ion with you and
> > > > > > > Martin, we need to perform the refinement of the =E2=80=98err=
or-tag=E2=80=99
> > > > > > > mapping within both
> > > > > > > draft-ietf-netconf-netconf-event-notifications
> > > > Section
> > > > > > > 7, and draft-ietf-netconf-restconf-notif Section 3.3.
>  Directly
> > > > > > > below is some text and proposed error-tag mappings for those
> > > > > > > documents.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >     o  An "error-tag" node with the value being a string that
> > > > > > >
> > > > > > >        corresponds to an identity associated with the error.
> > > > > > > This
> > > > > > >
> > > > > > >        "error-tag" will correspond to the error identities
> > > > > > > within
> > > > > > >
> > > > > > >        [I-D.draft-ietf-netconf-subscribed-notifications]
> > > > > > > section
> > > > > > >
> > > > > > >        2.4.6 for general subscription errors:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >           error identity         uses error-tag
> > > > > > >
> > > > > > >           ---------------------- --------------
> > > > > > >
> > > > > > >           dscp-unavailable       invalid-value
> > > > > >
> > > > > > Ok.  But it is not clear to me when this error is actually
> > > > > > supposed to be generated?  The leaf and identity have the same
> > > > > > if-feature, so it isn't a special errro code for "unsupported
> leaf", which is
> > good!
> > > > > >
> > > > > > Then I have to assume it is supposed to be some kind of runtime
> error?
> > > > >
> > > > > Yes.  A publisher, nor the network to which is connects does not
> > > > > have
> > > > > to:
> > > > > (a) support all DSCP values, nor
> > > > > (b) allow a particular value requested by a particular subscriber=
,
> > > > > So this condition allows a publisher to reject a request for a
> > > > > DSCP value where is knows the value will not be respected.
> > > >
> > > > Good explanation, I wish it was part of the "leaf dscp" in the
> > > > module
> > > > :)
> > > >
> > > > The dscp-unavailable identity doesn't add any addition value
> > > > compared to the standard error.
> > >
> > > For NETCONF and RESTCONF, this is the case.
> >
> > And comi.  The point is, what makes the rpcs in this module so special
> > that they have to invent a new error reporting scheme?   If we do that
> > for these rpcs, why not for all other rpc in all other modules?
>
> The current RPC error mechanisms ties YANG RPCs to NETCONF and RESTCONF
> transports.   Over many years there has been lots of work to align the
> subscription drafts to these existing mechanisms, while maintaining as mu=
ch
> transport independence for hints as possible.
>
>
>
>
>
> The subscription draft changes error reporting in significant ways, for
> the worse, not the better.
>
> There are a set of error-tag values that are used for all protocol
> operations defined with rpc-stmt.
>
> It was first defined in NETCONF but it has been applied to RESTCONF as
> well.
>
>
>
> This draft uses identities to replace the set of common error-tags.
> Instead, every single
>
> rpc-stmt can have its own set of error codes. Even worse, a different set
> of error codes
>
> depending on the protocol that was used.
>
>
>
> Why should a 'resource-denied' error be something different in RESTCONF
> vs. NETCONF?
>
> Or even in CoMI or some unknown protocol?  Why would 'invalid-value' be
> different,
>
> depending on the operation?
>
>
>
> It is 1 thing to change the documentation of YANG-based protocol
> operations.
>
> It is another to omit mandatory information needed to work with NETCONF
> and RESTCONF.
>
> If the error-tag values are properly documented and the NETCONF and
> RESTCONF mappings are identical
>
> then there should not be any problems using standard error reporting.
>
>
>
> <Eric> I believe that with this thread, that the error-tag values will be
> well documented and identical between NETCONF and RESTCONF transport
> drafts.
>
>
>


I agree.

Using the correct error-tag values plus identity names for error-app-tag
values allows
both generic clients and clients specialized for this application to both
work.



> Eric
>
>
>
>
>
> Andy
>
>
>
>
>
>

Andy


>
>
>
>
>

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jan 24, 2019 at 3:56 PM Eric =
Voit (evoit) &lt;<a href=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_7030148596143146593WordSection1">
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div>
<div>
<p class=3D"MsoNormal">On Thu, Jan 24, 2019 at 9:04 AM Eric Voit (evoit) &l=
t;<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&=
gt; wrote:<u></u><u></u></p>
</div>
<blockquote style=3D"border-top:none;border-right:none;border-bottom:none;b=
order-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4=
.8pt;margin-right:0in">
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt">&gt; &quot;Eric Voit (e=
voit)&quot; &lt;<a href=3D"mailto:evoit@cisco.com" target=3D"_blank">evoit@=
cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; From: Martin Bjorklund, January 24, 2019 9:40 AM<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &quot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailto:evoit@ci=
sco.com" target=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; From: Martin Bjorklund, January 24, 2019 8:17 AM<b=
r>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &quot;Eric Voit (evoit)&quot; &lt;<a href=3D"mailt=
o:evoit@cisco.com" target=3D"_blank">evoit@cisco.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi Andy,<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; Thanks very much for the thorough YANG Doctor=
 review.=C2=A0 I have<br>
&gt; &gt; &gt; &gt; &gt; &gt; included the<br>
&gt; &gt; &gt; &gt; &gt; agreed upon comments, and uploaded to:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-subscribed-notifications-2=
2<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; a summary of the clarifications made is at th=
e end of the document.<br>
&gt; &gt; &gt; &gt; &gt; &gt; Let me know if there anything else needed to =
conclude the YANG<br>
&gt; &gt; &gt; &gt; &gt; &gt; doctor review of this document.<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; Also as the result of the =E2=80=98error-tag=
=E2=80=99 discussion with you and<br>
&gt; &gt; &gt; &gt; &gt; &gt; Martin, we need to perform the refinement of =
the =E2=80=98error-tag=E2=80=99<br>
&gt; &gt; &gt; &gt; &gt; &gt; mapping within both<br>
&gt; &gt; &gt; &gt; &gt; &gt; draft-ietf-netconf-netconf-event-notification=
s<br>
&gt; &gt; &gt; Section<br>
&gt; &gt; &gt; &gt; &gt; &gt; 7, and draft-ietf-netconf-restconf-notif Sect=
ion 3.3.=C2=A0 =C2=A0Directly<br>
&gt; &gt; &gt; &gt; &gt; &gt; below is some text and proposed error-tag map=
pings for those<br>
&gt; &gt; &gt; &gt; &gt; &gt; documents.<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;=C2=A0 =C2=A0 =C2=A0o=C2=A0 An &quot;error-tag=
&quot; node with the value being a string that<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 corresponds to an =
identity associated with the error.<br>
&gt; &gt; &gt; &gt; &gt; &gt; This<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;error-tag&qu=
ot; will correspond to the error identities<br>
&gt; &gt; &gt; &gt; &gt; &gt; within<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 [I-D.draft-ietf-ne=
tconf-subscribed-notifications]<br>
&gt; &gt; &gt; &gt; &gt; &gt; section<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 2.4.6 for general =
subscription errors:<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;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0error=
 identity=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uses error-tag<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-----=
----------------- --------------<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0dscp-=
unavailable=C2=A0 =C2=A0 =C2=A0 =C2=A0invalid-value<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ok.=C2=A0 But it is not clear to me when this erro=
r is actually<br>
&gt; &gt; &gt; &gt; &gt; supposed to be generated?=C2=A0 The leaf and ident=
ity have the same<br>
&gt; &gt; &gt; &gt; &gt; if-feature, so it isn&#39;t a special errro code f=
or &quot;unsupported leaf&quot;, which is<br>
&gt; good!<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Then I have to assume it is supposed to be some ki=
nd of runtime error?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes.=C2=A0 A publisher, nor the network to which is con=
nects does not<br>
&gt; &gt; &gt; &gt; have<br>
&gt; &gt; &gt; &gt; to:<br>
&gt; &gt; &gt; &gt; (a) support all DSCP values, nor<br>
&gt; &gt; &gt; &gt; (b) allow a particular value requested by a particular =
subscriber,<br>
&gt; &gt; &gt; &gt; So this condition allows a publisher to reject a reques=
t for a<br>
&gt; &gt; &gt; &gt; DSCP value where is knows the value will not be respect=
ed.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Good explanation, I wish it was part of the &quot;leaf dscp&=
quot; in the<br>
&gt; &gt; &gt; module<br>
&gt; &gt; &gt; :)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The dscp-unavailable identity doesn&#39;t add any addition v=
alue<br>
&gt; &gt; &gt; compared to the standard error.<br>
&gt; &gt;<br>
&gt; &gt; For NETCONF and RESTCONF, this is the case.<br>
&gt; <br>
&gt; And comi.=C2=A0 The point is, what makes the rpcs in this module so sp=
ecial<br>
&gt; that they have to invent a new error reporting scheme?=C2=A0 =C2=A0If =
we do that<br>
&gt; for these rpcs, why not for all other rpc in all other modules?<br>
<br>
The current RPC error mechanisms ties YANG RPCs to NETCONF and RESTCONF tra=
nsports.=C2=A0 =C2=A0Over many years there has been lots of work to align t=
he subscription drafts to these existing mechanisms, while maintaining as m=
uch transport independence for hints as possible.<u></u><u></u></p>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The subscription draft changes error reporting in si=
gnificant ways, for the worse, not the better.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">There are a set of error-tag values that are used fo=
r all protocol operations defined with rpc-stmt.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">It was first defined in NETCONF but it has been appl=
ied to RESTCONF as well.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">This draft uses identities to replace the set of com=
mon error-tags.=C2=A0 Instead, every single<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">rpc-stmt can have its own set of error codes. Even w=
orse, a different set of error codes<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">depending on the protocol that was used.<u></u><u></=
u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Why should a &#39;resource-denied&#39; error be some=
thing different in RESTCONF vs. NETCONF?<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Or even in CoMI or some unknown protocol?=C2=A0 Why =
would &#39;invalid-value&#39; be different,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">depending on the operation?=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">It is 1 thing to change the documentation of YANG-ba=
sed protocol operations.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">It is another to omit mandatory information needed t=
o work with NETCONF and RESTCONF.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">If the error-tag values are properly documented and =
the NETCONF and RESTCONF mappings are identical<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">then there should not be any problems using standard=
 error reporting.<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">&lt;Eric&gt; I believe that with this thread, that t=
he error-tag values will be well documented and identical between NETCONF a=
nd RESTCONF transport drafts.
<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0</p></div></div></div></div></div></div=
></blockquote><div><br></div><div><br></div><div>I agree.</div><div><br></d=
iv><div>Using the correct error-tag values plus identity names for error-ap=
p-tag values allows</div><div>both generic clients and clients specialized =
for this application to both work.</div><div><br></div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div cla=
ss=3D"gmail-m_7030148596143146593WordSection1"><div style=3D"border-top:non=
e;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding=
:0in 0in 0in 4pt"><div><div><div><p class=3D"MsoNormal"><u></u></p>
<p class=3D"MsoNormal">Eric<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Andy<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u></p></div></div></div></div></div></div></blo=
ckquote><div><br></div><div><br></div><div>Andy</div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=
=3D"gmail-m_7030148596143146593WordSection1"><div style=3D"border-top:none;=
border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0=
in 0in 0in 4pt"><div><div><div><p class=3D"MsoNormal">=C2=A0<u></u></p>
</div>
<blockquote style=3D"border-top:none;border-right:none;border-bottom:none;b=
order-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4=
.8pt;margin-right:0in">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</blockquote>
</div>
</div>
</div>
</div>
</div>

</blockquote></div></div>

--00000000000087388f05803d0cb6--


From nobody Fri Jan 25 00:39:45 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D358F12D4EF; Fri, 25 Jan 2019 00:39:42 -0800 (PST)
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 jxVjmPQxEnE7; Fri, 25 Jan 2019 00:39:41 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 5B0DF127133; Fri, 25 Jan 2019 00:39:41 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 7361F1AE028C; Fri, 25 Jan 2019 09:39:38 +0100 (CET)
Date: Fri, 25 Jan 2019 09:39:38 +0100 (CET)
Message-Id: <20190125.093938.375156009332209799.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com>
References: <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com> <20190124.201415.264860524194078371.mbj@tail-f.com> <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/5SmdGwWhyYX47CbHUMikM92RYcw>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 08:39:43 -0000

"Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > > > >
> > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM

[...]

> > > > > > > > Thinking some more, what is supposed to happen if the client on
> > > > > > > > the same session sends first an establish-subscription with dscp
> > > > > > > > 42, and then another establish-subscription with dscp 10?
> > > > > > >
> > > > > > > This would be allowed.
> > > > > >
> > > > > > On linux at least this is a sockopt, i.e., the option applies to the
> > > > > > socket, which means all packets on the session.  So how is this
> > > > > > supposed to be implemented if different messages on the session
> > > > > > should have different dscp values?
> > > > > > Or is the
> > > > > > idea that you send the msg, flush all data from ssh/tls to tcp, then
> > > > > > flush the tcp buffers (not that easy...)?
> > > > > >
> > > > > > Even if there's just one establish-subscription with a dscp value,
> > > > > > since it applies to the session it means that all normal rpcs on
> > > > > > this session will get the same dscp value.  It is not clear that
> > > > > > this is the intention?
> > 
> > Did you miss these questions?
> 
> With NETCONF, one DSCP will apply to single TCP session.  So there is no issue.

The problem is if a client sends two establish-subscriptions
with different values for dscp on the same session.  Or even if the
client sends one establish-subscription with som dscp value, then the
dscp will be applied to all packets from other rpcs as well.

... and even worse, with SSH channels you can have multiple NETCONF
session on the same TCP session, which means that the dscp value
applies to all packets in all NETCONF sessions sharing the same TCP
session.

I don't know what the right thing to do is.  Probably first agree that
this is in fact a problem, then maybe simply document this somehow.


> For RESTCONF, there is no requirement that there is a single TCP
> session between publisher and subscriber.

I agree that this is not a problem with RESTCONF, since there is no
multiplexing going on.  When the server accepts the SSE GET, it can
safely set the dscp value.

> Where there are different
> DSCPs requested, a different logical connection can be established
> should the publisher want to concurrently support several DSCPs.

I don't think is an issue, see above.


/martin


From nobody Fri Jan 25 04:37:16 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B283612F295 for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 04:37:14 -0800 (PST)
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 J5rMQxfNfFG2 for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 04:37:12 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id AE0EB130DE7 for <netconf@ietf.org>; Fri, 25 Jan 2019 04:37:12 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 4BE8B1AE028C; Fri, 25 Jan 2019 13:37:10 +0100 (CET)
Date: Fri, 25 Jan 2019 13:37:09 +0100 (CET)
Message-Id: <20190125.133709.877670768614099890.mbj@tail-f.com>
To: william.ivory@intl.att.com
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <E3378E0605547F4E854DEE0CB1116AB00E775BA2@gbcdcmbx03.intl.att.com>
References: <E3378E0605547F4E854DEE0CB1116AB00E775BA2@gbcdcmbx03.intl.att.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/atISILmyPO6qS2i_jzx17C8B8II>
Subject: Re: [netconf] Question about NETCONF errors
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 12:37:15 -0000

"Ivory, William" <william.ivory@intl.att.com> wrote:
> Hi,
> 
> I've got a question about the appropriate error to return (if indeed it
> is an error) in the following case.  If I have a top-level YANG
> container node in my configuration that's non-presence, then there are 2
> possible responses:
> 
> (a) config present, returned, no error
> 
> (b) no config present, no data returned
> 
> Is the latter an error case (eg 'unknown-element') or should that only
> be returned for a node that cannot exist, rather than one that simply
> doesn't exist in the current configuration?

Which rpc operation do you send?  I'm guessing a get or get-config
with a subtree filter that selects the container.  These operations do
not return errors if the data is not present, they simply don't return
the data.


/martin


> 
> I've looked at RFC-6241, but didn't find the error descriptions terribly
> helpful.
> 
> Thanks,
> 
> William
> 
> 
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
> 


From nobody Fri Jan 25 04:46:35 2019
Return-Path: <william.ivory@intl.att.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 37AB1124BAA for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 04:46:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.601
X-Spam-Level: 
X-Spam-Status: No, score=-0.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, KHOP_DYNAMIC=2, RCVD_IN_DNSWL_LOW=-0.7, 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 UU2S6mm54aKs for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 04:46:32 -0800 (PST)
Received: from mx0a-00191d01.pphosted.com (mx0a-00191d01.pphosted.com [67.231.149.140]) (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 D63BB124B0C for <netconf@ietf.org>; Fri, 25 Jan 2019 04:46:32 -0800 (PST)
Received: from pps.filterd (m0049297.ppops.net [127.0.0.1]) by m0049297.ppops.net-00191d01. (8.16.0.27/8.16.0.27) with SMTP id x0PCjP9R005904; Fri, 25 Jan 2019 07:46:32 -0500
Received: from alpi155.enaf.aldc.att.com (sbcsmtp7.sbc.com [144.160.229.24]) by m0049297.ppops.net-00191d01. with ESMTP id 2q7w8up6q6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 25 Jan 2019 07:46:32 -0500
Received: from enaf.aldc.att.com (localhost [127.0.0.1]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id x0PCkUd1015373; Fri, 25 Jan 2019 07:46:30 -0500
Received: from zlp27126.vci.att.com (zlp27126.vci.att.com [135.66.87.47]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id x0PCkQ9V015314; Fri, 25 Jan 2019 07:46:27 -0500
Received: from zlp27126.vci.att.com (zlp27126.vci.att.com [127.0.0.1]) by zlp27126.vci.att.com (Service) with ESMTP id 799C44030705; Fri, 25 Jan 2019 12:46:26 +0000 (GMT)
Received: from gbcdccas01.intl.att.com (unknown [135.76.180.9]) by zlp27126.vci.att.com (Service) with ESMTPS id 316D2400036F; Fri, 25 Jan 2019 12:46:26 +0000 (GMT)
Received: from GBCDCMBX03.intl.att.com ([135.76.31.134]) by gbcdccas01.intl.att.com ([135.76.180.9]) with mapi id 14.03.0415.000; Fri, 25 Jan 2019 12:46:23 +0000
From: "Ivory, William" <william.ivory@intl.att.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] Question about NETCONF errors
Thread-Index: AdSz6o52ny0vNaVGSiOE0lg/23cR0A==
Date: Fri, 25 Jan 2019 12:46:23 +0000
Message-ID: <E3378E0605547F4E854DEE0CB1116AB00E7761AF@gbcdcmbx03.intl.att.com>
References: <E3378E0605547F4E854DEE0CB1116AB00E775BA2@gbcdcmbx03.intl.att.com> <20190125.133709.877670768614099890.mbj@tail-f.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.76.180.249]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-25_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901250104
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/CToBJAhH-7pZl3OAv8WXSjSIso4>
Subject: Re: [netconf] Question about NETCONF errors
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 12:46:34 -0000

Hi Martin,=0A=
=0A=
It's a get-config in this case.  Thanks for the reply - that answers my=0A=
question.=0A=
=0A=
William=0A=
=0A=
On 25/01/2019 12:37, Martin Bjorklund wrote:=0A=
> "Ivory, William" <william.ivory@intl.att.com> wrote:=0A=
>> Hi,=0A=
>>=0A=
>> I've got a question about the appropriate error to return (if indeed it=
=0A=
>> is an error) in the following case.  If I have a top-level YANG=0A=
>> container node in my configuration that's non-presence, then there are 2=
=0A=
>> possible responses:=0A=
>>=0A=
>> (a) config present, returned, no error=0A=
>>=0A=
>> (b) no config present, no data returned=0A=
>>=0A=
>> Is the latter an error case (eg 'unknown-element') or should that only=
=0A=
>> be returned for a node that cannot exist, rather than one that simply=0A=
>> doesn't exist in the current configuration?=0A=
> Which rpc operation do you send?  I'm guessing a get or get-config=0A=
> with a subtree filter that selects the container.  These operations do=0A=
> not return errors if the data is not present, they simply don't return=0A=
> the data.=0A=
>=0A=
>=0A=
> /martin=0A=
>=0A=
>=0A=
>> I've looked at RFC-6241, but didn't find the error descriptions terribly=
=0A=
>> helpful.=0A=
>>=0A=
>> Thanks,=0A=
>>=0A=
>> William=0A=
>>=0A=
>>=0A=
>> _______________________________________________=0A=
>> netconf mailing list=0A=
>> netconf@ietf.org=0A=
>> https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__www.ietf.org_mail=
man_listinfo_netconf&d=3DDwICAg&c=3DLFYZ-o9_HUMeMTSQicvjIg&r=3Dp8kyeK3u4ZYi=
aQ2ZPGqwkyXmQgBH6r5jpYiYWzhqJ48&m=3DnVuDLXOBBRm7-sI3unWRAyWUbdGS3bOuH8Q--fN=
6Ffk&s=3DSnIKIDO2kgw6vJQKEJ3spTJqd8Squ2-qmp5ZAkukAyA&e=3D=0A=
>>=0A=
=0A=


From nobody Fri Jan 25 07:14:42 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 44DAF130E6B; Fri, 25 Jan 2019 07:14:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 NVYuNYdKoJsi; Fri, 25 Jan 2019 07:14:38 -0800 (PST)
Received: from alln-iport-1.cisco.com (alln-iport-1.cisco.com [173.37.142.88]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 39C621294D0; Fri, 25 Jan 2019 07:14:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3217; q=dns/txt; s=iport; t=1548429278; x=1549638878; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=TLwnB90xbGvWQ5AVhRNHt/TCOGMvKVbP0NWoZk3w2Qw=; b=ccykWoSa51EjNl4HtuP4SQzlfMdu1b1FPzNc1KdsOzq+zLlE6XdrE+NE zXsU9tNymT+r3IZ5K0R8GG/VBETBjPsF+qvdUi9jfgY94DEc9nnq1rDnn 7Gg9lj0fzQOUAf/ZQwIaNnBB5lfC2ni1PhN1WCttHTucrMaaEDWaS0RPH 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAACQJktc/49dJa1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopgWonCowRi3eCDZgHgXsLAQGEbAK?= =?us-ascii?q?DCiI0CQ0BAwEBAgEBAm0ohUoBAQEBAgE6PQIFCwIBCA4HAw0REDIlAgQOBQi?= =?us-ascii?q?CT4JFCKxTijCMQReBQD+EI4o/IgKJSIIgllAJAosFhxsgkiebHgIRFIEnHzi?= =?us-ascii?q?BVnAVgyeCJxcTjgoBQTGKD4EfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,521,1539648000"; d="scan'208";a="231152222"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jan 2019 15:14:37 +0000
Received: from XCH-RTP-004.cisco.com (xch-rtp-004.cisco.com [64.101.220.144]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id x0PFEaBI010738 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 25 Jan 2019 15:14:37 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-004.cisco.com (64.101.220.144) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 25 Jan 2019 10:14:36 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 25 Jan 2019 10:14:36 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwIAAwVMA///xWjA=
Date: Fri, 25 Jan 2019 15:14:36 +0000
Message-ID: <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com>
References: <9f0f48b7e17c40fab9a64b4a2488997e@XCH-RTP-013.cisco.com> <20190124.201415.264860524194078371.mbj@tail-f.com> <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com>
In-Reply-To: <20190125.093938.375156009332209799.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.144, xch-rtp-004.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/5idEW-kIHndpCeHZS8Ifye9-l5s>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 15:14:40 -0000

> From: Martin Bjorklund, January 25, 2019 3:40 AM
>=20
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > > > > >
> > > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM
>=20
> [...]
>=20
> > > > > > > > > Thinking some more, what is supposed to happen if the
> > > > > > > > > client on the same session sends first an
> > > > > > > > > establish-subscription with dscp 42, and then another est=
ablish-
> subscription with dscp 10?
> > > > > > > >
> > > > > > > > This would be allowed.
> > > > > > >
> > > > > > > On linux at least this is a sockopt, i.e., the option
> > > > > > > applies to the socket, which means all packets on the
> > > > > > > session.  So how is this supposed to be implemented if
> > > > > > > different messages on the session should have different dscp =
values?
> > > > > > > Or is the
> > > > > > > idea that you send the msg, flush all data from ssh/tls to
> > > > > > > tcp, then flush the tcp buffers (not that easy...)?
> > > > > > >
> > > > > > > Even if there's just one establish-subscription with a dscp
> > > > > > > value, since it applies to the session it means that all
> > > > > > > normal rpcs on this session will get the same dscp value.
> > > > > > > It is not clear that this is the intention?
> > >
> > > Did you miss these questions?
> >
> > With NETCONF, one DSCP will apply to single TCP session.  So there is n=
o
> issue.
>=20
> The problem is if a client sends two establish-subscriptions with differe=
nt
> values for dscp on the same session.  Or even if the client sends one est=
ablish-
> subscription with som dscp value, then the dscp will be applied to all pa=
ckets
> from other rpcs as well.
>=20
> ... and even worse, with SSH channels you can have multiple NETCONF sessi=
on
> on the same TCP session, which means that the dscp value applies to all
> packets in all NETCONF sessions sharing the same TCP session.
>=20
> I don't know what the right thing to do is.  Probably first agree that th=
is is in
> fact a problem, then maybe simply document this somehow.

I hadn't thought about multiple NETCONF SSH channels.  I agree something to=
 guide developers is needed here.  The easiest fix is to recommend not supp=
orting feature "dscp" with NETCONF.  (It shouldn't be absolutely prohibited=
 as DSCP related RFC's such as RFC7657 embed text like "a single DSCP shoul=
d be used for all packets in a TCP connection".)

Here is the text I suggest is put into draft-ietf-netconf-netconf-event-not=
ifications, Section 5:

"The feature "dscp" SHOULD NOT be supported over NETCONF.  This will avoid =
the potential for out-of-order packet delivery of the set of all traffic wi=
thin the TCP session."

With this text, a RESTCONF publisher can support the feature dscp.  And if =
someone attempts to use dscp with a NETCONF subscription to the same publis=
her, the error "dscp-unavailable" can be sent.

Eric=20


...
> /martin


From nobody Fri Jan 25 07:30:16 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D5D3D130D7A; Fri, 25 Jan 2019 07:29:46 -0800 (PST)
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 lKE3cftGqP18; Fri, 25 Jan 2019 07:29:44 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id F322D130F12; Fri, 25 Jan 2019 07:29:43 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 541DE1AE02AC; Fri, 25 Jan 2019 16:29:42 +0100 (CET)
Date: Fri, 25 Jan 2019 16:29:41 +0100 (CET)
Message-Id: <20190125.162941.2222352349671950038.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, rrahman@cisco.com, alexander.clemm@huawei.com, yang-doctors@ietf.org, netconf@ietf.org, draft-ietf-netconf-subscribed-notifications.all@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/91mJkQPIEf_A4op93RTxG0zYCIM>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 15:29:53 -0000

"Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > From: Martin Bjorklund, January 25, 2019 3:40 AM
> > 
> > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > > > > > >
> > > > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM
> > 
> > [...]
> > 
> > > > > > > > > > Thinking some more, what is supposed to happen if the
> > > > > > > > > > client on the same session sends first an
> > > > > > > > > > establish-subscription with dscp 42, and then another
> > > > > > > > > > establish-
> > subscription with dscp 10?
> > > > > > > > >
> > > > > > > > > This would be allowed.
> > > > > > > >
> > > > > > > > On linux at least this is a sockopt, i.e., the option
> > > > > > > > applies to the socket, which means all packets on the
> > > > > > > > session.  So how is this supposed to be implemented if
> > > > > > > > different messages on the session should have different dscp
> > > > > > > > values?
> > > > > > > > Or is the
> > > > > > > > idea that you send the msg, flush all data from ssh/tls to
> > > > > > > > tcp, then flush the tcp buffers (not that easy...)?
> > > > > > > >
> > > > > > > > Even if there's just one establish-subscription with a dscp
> > > > > > > > value, since it applies to the session it means that all
> > > > > > > > normal rpcs on this session will get the same dscp value.
> > > > > > > > It is not clear that this is the intention?
> > > >
> > > > Did you miss these questions?
> > >
> > > With NETCONF, one DSCP will apply to single TCP session.  So there is
> > > no
> > issue.
> > 
> > The problem is if a client sends two establish-subscriptions with
> > different
> > values for dscp on the same session.  Or even if the client sends one
> > establish-
> > subscription with som dscp value, then the dscp will be applied to all
> > packets
> > from other rpcs as well.
> > 
> > ... and even worse, with SSH channels you can have multiple NETCONF
> > session
> > on the same TCP session, which means that the dscp value applies to
> > all
> > packets in all NETCONF sessions sharing the same TCP session.
> > 
> > I don't know what the right thing to do is.  Probably first agree that
> > this is in
> > fact a problem, then maybe simply document this somehow.
> 
> I hadn't thought about multiple NETCONF SSH channels.  I agree
> something to guide developers is needed here.  The easiest fix is to
> recommend not supporting feature "dscp" with NETCONF.  (It shouldn't
> be absolutely prohibited as DSCP related RFC's such as RFC7657 embed
> text like "a single DSCP should be used for all packets in a TCP
> connection".)
> 
> Here is the text I suggest is put into
> draft-ietf-netconf-netconf-event-notifications, Section 5:
> 
> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This will
> avoid the potential for out-of-order packet delivery of the set of all
> traffic within the TCP session."

I think this is a bit too limiting.  For configured subscriptions it
can be perfectly fine, since the server can ensure that there's a
single TCP session to the receiver in this case.  (I know we don't
support configured subscriptions at the moment).

Perhaps we can say in the SN document:

  If a server that supports the "dscp" feature cannot guarantee that
  the only packets sent on an underlying transport session are from
  the subscription, then it should reject the subscription with a
  "dscp-unavailable" error.  This will avoid the potential for
  out-of-order packet delivery of the set of all traffic within the
  TCP session.

I think such text belongs to the SN document, since it may apply to
other transports than just NETCONF.


/martin



> With this text, a RESTCONF publisher can support the feature dscp.
> And if someone attempts to use dscp with a NETCONF subscription to the
> same publisher, the error "dscp-unavailable" can be sent.
> 
> Eric 
> 
> 
> ...
> > /martin
> 


From nobody Fri Jan 25 07:42:01 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE742130E70; Fri, 25 Jan 2019 07:41:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.643
X-Spam-Level: 
X-Spam-Status: No, score=-14.643 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 Jg1PG_3YiTe9; Fri, 25 Jan 2019 07:41:50 -0800 (PST)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 126C2130E6D; Fri, 25 Jan 2019 07:41:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4923; q=dns/txt; s=iport; t=1548430910; x=1549640510; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=jUJLhwLcpLUMC39Yt8rPIRq1LxR0Xe8plu7rbyYS9Rk=; b=WwuosF7HLLiUq2x0L88NdXzkYj9xlHzom64bGz+Bh1RI66K/oUnFZrhp /Vi7UEUYw1JGQYS+0UhpHbLxu1sl4X345aXoJXHvpJ/rQ6rQaREIk6z/k bpjhY28spw63MJXK7tCcmVuLJ1gGsXmVC0bfzZqCOp2wJlWC6pxn6ckrH g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAACfLUtc/5tdJa1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopgWonCowRi3eCDZgHgXsLAQGEbAK?= =?us-ascii?q?DCiI0CQ0BAwEBAgEBAm0ohUoBAQEBAgE6PQIFCwIBCA4HAw0REDIlAgQOBQi?= =?us-ascii?q?CT4JFCKxGijGMQReBQD+BEYMShGuFVCICiUiCIJZQCQKLBYcbIJInmx4CERS?= =?us-ascii?q?BJx84gVZwFYMngicXE44KAUExig+BHwEB?=
X-IronPort-AV: E=Sophos;i="5.56,521,1539648000"; d="scan'208";a="424726828"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jan 2019 15:41:49 +0000
Received: from XCH-RTP-003.cisco.com (xch-rtp-003.cisco.com [64.101.220.143]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id x0PFfmFr015743 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 25 Jan 2019 15:41:48 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-003.cisco.com (64.101.220.143) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 25 Jan 2019 10:41:48 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 25 Jan 2019 10:41:48 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>
Thread-Topic: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwIAAwVMA///xWjCAAIE3gIAAU4mQ
Date: Fri, 25 Jan 2019 15:41:47 +0000
Message-ID: <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com>
In-Reply-To: <20190125.162941.2222352349671950038.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.143, xch-rtp-003.cisco.com
X-Outbound-Node: rcdn-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/JwxXXCqBR7G-ohffHwy_Dm8h8Lc>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 15:41:52 -0000

> From: Martin Bjorklund, January 25, 2019 10:30 AM
>=20
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > From: Martin Bjorklund, January 25, 2019 3:40 AM
> > >
> > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > > From: Martin Bjorklund, January 24, 2019 9:40 AM
> > > > > > > > >
> > > > > > > > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > > > > > > > > From: Martin Bjorklund, January 24, 2019 8:17 AM
> > >
> > > [...]
> > >
> > > > > > > > > > > Thinking some more, what is supposed to happen if
> > > > > > > > > > > the client on the same session sends first an
> > > > > > > > > > > establish-subscription with dscp 42, and then
> > > > > > > > > > > another
> > > > > > > > > > > establish-
> > > subscription with dscp 10?
> > > > > > > > > >
> > > > > > > > > > This would be allowed.
> > > > > > > > >
> > > > > > > > > On linux at least this is a sockopt, i.e., the option
> > > > > > > > > applies to the socket, which means all packets on the
> > > > > > > > > session.  So how is this supposed to be implemented if
> > > > > > > > > different messages on the session should have different
> > > > > > > > > dscp values?
> > > > > > > > > Or is the
> > > > > > > > > idea that you send the msg, flush all data from ssh/tls
> > > > > > > > > to tcp, then flush the tcp buffers (not that easy...)?
> > > > > > > > >
> > > > > > > > > Even if there's just one establish-subscription with a
> > > > > > > > > dscp value, since it applies to the session it means
> > > > > > > > > that all normal rpcs on this session will get the same ds=
cp value.
> > > > > > > > > It is not clear that this is the intention?
> > > > >
> > > > > Did you miss these questions?
> > > >
> > > > With NETCONF, one DSCP will apply to single TCP session.  So there
> > > > is no
> > > issue.
> > >
> > > The problem is if a client sends two establish-subscriptions with
> > > different values for dscp on the same session.  Or even if the
> > > client sends one
> > > establish-
> > > subscription with som dscp value, then the dscp will be applied to
> > > all packets from other rpcs as well.
> > >
> > > ... and even worse, with SSH channels you can have multiple NETCONF
> > > session on the same TCP session, which means that the dscp value
> > > applies to all packets in all NETCONF sessions sharing the same TCP
> > > session.
> > >
> > > I don't know what the right thing to do is.  Probably first agree
> > > that this is in fact a problem, then maybe simply document this
> > > somehow.
> >
> > I hadn't thought about multiple NETCONF SSH channels.  I agree
> > something to guide developers is needed here.  The easiest fix is to
> > recommend not supporting feature "dscp" with NETCONF.  (It shouldn't
> > be absolutely prohibited as DSCP related RFC's such as RFC7657 embed
> > text like "a single DSCP should be used for all packets in a TCP
> > connection".)
> >
> > Here is the text I suggest is put into
> > draft-ietf-netconf-netconf-event-notifications, Section 5:
> >
> > "The feature "dscp" SHOULD NOT be supported over NETCONF.  This will
> > avoid the potential for out-of-order packet delivery of the set of all
> > traffic within the TCP session."
>=20
> I think this is a bit too limiting.  For configured subscriptions it can =
be perfectly
> fine, since the server can ensure that there's a single TCP session to th=
e receiver
> in this case.  (I know we don't support configured subscriptions at the m=
oment).
>=20
> Perhaps we can say in the SN document:
>=20
>   If a server that supports the "dscp" feature cannot guarantee that
>   the only packets sent on an underlying transport session are from
>   the subscription, then it should reject the subscription with a
>   "dscp-unavailable" error.  This will avoid the potential for
>   out-of-order packet delivery of the set of all traffic within the
>   TCP session.

This works for me.    I will put this in Section 2.3, directly after the se=
ntence:=20

   If the publisher supports the "dscp" feature, then a subscription
   with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
   marking being placed within the IP header of any resulting
   notification messages and subscription state change notifications.

 unless I hear any objections on this thread.

Eric
=20
> I think such text belongs to the SN document, since it may apply to other
> transports than just NETCONF.
>=20
>=20
> /martin
>=20
>=20
>=20
> > With this text, a RESTCONF publisher can support the feature dscp.
> > And if someone attempts to use dscp with a NETCONF subscription to the
> > same publisher, the error "dscp-unavailable" can be sent.
> >
> > Eric
> >
> >
> > ...
> > > /martin
> >


From nobody Fri Jan 25 10:20:46 2019
Return-Path: <per@hedeland.org>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8CC213100F for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 10:20:44 -0800 (PST)
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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=outbound.mailhop.org
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 kK3BjIDtXSsm for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 10:20:43 -0800 (PST)
Received: from outbound1g.eu.mailhop.org (outbound1g.eu.mailhop.org [52.28.6.212]) (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 B942F131007 for <netconf@ietf.org>; Fri, 25 Jan 2019 10:20:42 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1548440379; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=GHbzvB3jzXUVX0Ofc12f++0Na10q04mW9kN6IvKn7sZ9JiATwBZx7rgkMkVadoxa/nWxibvOgETbY fg6Sg8gMA5pUCfjhjQQIcRYppE3qgoZNzGnLsgii0WrXDDHkbbsisfHXPIwRpEBWuOgXVrXON7o010 Ns4fkMfDp6g4tyglPEvOL9tqmeyh7tgL3jmBZPVtwTh51R3E//sn6VBEikOR2DW6d9GkPBIUx10NU5 O8nG6pqFtGi0U8EEjdUuqriUEKY4YFZUIgEH/80PihUD9jVkPU+kUkxJNfv6J85LqLwp1nUj4JzXhz 1rFPHQN7S+e+Ph379vtIr8SjimxWUbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:content-type:in-reply-to:mime-version:date: message-id:from:references:cc:to:subject:dkim-signature:from; bh=01e3Gl8TKRwpfoht3dsGHCu6gu2+UfpELQj5EK7hEmI=; b=K/4dDwn3UESUp+UkZlZlkojSdLEHcqKrramyPTObfeWtAREjzP/UjfA729Ej2BrLlS9GdAhZVbXA3 1w48loyeDwK+OX3TGiWDr/M/9CqLGZf0QqlM55cy60a4SgXC2P7H0F+kbUzvMri6JZuGusZQRIh47I ORKIjXFL/bxz3Hn+8bKZeIpl9xwRLjLfo5Z39yujmpd2ojLCoaf2h1cwsulPnI1jHxs9h1fkiWIVox bxfbpt/BjA8etIEgTtoIaWNI0vHAxjsDQI+e57TMGpMRYzX13yZUsDRdb2ynNLtv7IBv6U6a5pJgMT 7h4f7Aa7Q9NjzcKe698ZpPYvhdkpCcQ==
ARC-Authentication-Results: i=1; outbound3.eu.mailhop.org; spf=none smtp.mailfrom=hedeland.org smtp.remote-ip=81.228.152.101; dmarc=none header.from=hedeland.org; arc=none header.oldest-pass=0;
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:content-type:in-reply-to:mime-version:date: message-id:from:references:cc:to:subject:from; bh=01e3Gl8TKRwpfoht3dsGHCu6gu2+UfpELQj5EK7hEmI=; b=MH+dT78hezF2yh4rqp2wDIWSqY6kpsas2Ors/u46sYsseC56Ak5Yw61t4yIOgioWaeuMz1DD4hzKE hb0AjiSdUnCrhXlzhn28N08XBU+VPkNnIleQU55cGCRMEN1ZP91XWEIlwtKG6P9RbeDd2fbTC3pSyn 9Ay8olHdpgl05C4uXVtSee1mZfh6saLY7Ojm49jMwQ06fVcK8aEHrNP5cmXrSzHfkvX1olkuVafXIv nLwuDn8l+p7WRHRJX4uJiCk/AKxpRb7j8RVQq+pQ1A0fY8ETBL2Z531qfLJM90JvDlVNHR8lAZY/3Y z3UAxIwmrl2uQi2R0AxetBd8cNBA4Cw==
X-MHO-RoutePath: cGVyaGVkZWxhbmQ=
X-MHO-User: c3495563-20cd-11e9-8a28-a1efd8da9a94
X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information
X-Originating-IP: 81.228.152.101
X-Mail-Handler: DuoCircle Outbound SMTP
Received: from hedeland.org (unknown [81.228.152.101]) by outbound3.eu.mailhop.org (Halon) with ESMTPSA id c3495563-20cd-11e9-8a28-a1efd8da9a94; Fri, 25 Jan 2019 18:19:35 +0000 (UTC)
Received: from pluto.hedeland.org (pluto.hedeland.org [10.1.1.5]) by tellus.hedeland.org (8.15.2/8.15.2) with ESMTPS id x0PIJVZ0086296 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Fri, 25 Jan 2019 19:19:32 +0100 (CET) (envelope-from per@hedeland.org)
To: "Eric Voit (evoit)" <evoit@cisco.com>, Martin Bjorklund <mbj@tail-f.com>
Cc: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com> <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com>
From: Per Hedeland <per@hedeland.org>
Message-ID: <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org>
Date: Fri, 25 Jan 2019 19:19:30 +0100
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/xr7a7fFP98SEqo30EWX1ul8843g>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 18:20:45 -0000

On 2019-01-25 16:41, Eric Voit (evoit) wrote:
>> From: Martin Bjorklund, January 25, 2019 10:30 AM
>>
>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>> From: Martin Bjorklund, January 25, 2019 3:40 AM
>>>>
>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 9:40 AM
>>>>>>>>>>
>>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 8:17 AM
>>>>
>>>> [...]
>>>>
>>>>>>>>>>>> Thinking some more, what is supposed to happen if
>>>>>>>>>>>> the client on the same session sends first an
>>>>>>>>>>>> establish-subscription with dscp 42, and then
>>>>>>>>>>>> another
>>>>>>>>>>>> establish-
>>>> subscription with dscp 10?
>>>>>>>>>>>
>>>>>>>>>>> This would be allowed.
>>>>>>>>>>
>>>>>>>>>> On linux at least this is a sockopt, i.e., the option
>>>>>>>>>> applies to the socket, which means all packets on the
>>>>>>>>>> session.  So how is this supposed to be implemented if
>>>>>>>>>> different messages on the session should have different
>>>>>>>>>> dscp values?
>>>>>>>>>> Or is the
>>>>>>>>>> idea that you send the msg, flush all data from ssh/tls
>>>>>>>>>> to tcp, then flush the tcp buffers (not that easy...)?
>>>>>>>>>>
>>>>>>>>>> Even if there's just one establish-subscription with a
>>>>>>>>>> dscp value, since it applies to the session it means
>>>>>>>>>> that all normal rpcs on this session will get the same dscp value.
>>>>>>>>>> It is not clear that this is the intention?
>>>>>>
>>>>>> Did you miss these questions?
>>>>>
>>>>> With NETCONF, one DSCP will apply to single TCP session.  So there
>>>>> is no
>>>> issue.
>>>>
>>>> The problem is if a client sends two establish-subscriptions with
>>>> different values for dscp on the same session.  Or even if the
>>>> client sends one
>>>> establish-
>>>> subscription with som dscp value, then the dscp will be applied to
>>>> all packets from other rpcs as well.
>>>>
>>>> ... and even worse, with SSH channels you can have multiple NETCONF
>>>> session on the same TCP session, which means that the dscp value
>>>> applies to all packets in all NETCONF sessions sharing the same TCP
>>>> session.
>>>>
>>>> I don't know what the right thing to do is.  Probably first agree
>>>> that this is in fact a problem, then maybe simply document this
>>>> somehow.
>>>
>>> I hadn't thought about multiple NETCONF SSH channels.  I agree
>>> something to guide developers is needed here.  The easiest fix is to
>>> recommend not supporting feature "dscp" with NETCONF.  (It shouldn't
>>> be absolutely prohibited as DSCP related RFC's such as RFC7657 embed
>>> text like "a single DSCP should be used for all packets in a TCP
>>> connection".)
>>>
>>> Here is the text I suggest is put into
>>> draft-ietf-netconf-netconf-event-notifications, Section 5:
>>>
>>> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This will
>>> avoid the potential for out-of-order packet delivery of the set of all
>>> traffic within the TCP session."
>>
>> I think this is a bit too limiting.  For configured subscriptions it can be perfectly
>> fine, since the server can ensure that there's a single TCP session to the receiver
>> in this case.  (I know we don't support configured subscriptions at the moment).
>>
>> Perhaps we can say in the SN document:
>>
>>    If a server that supports the "dscp" feature cannot guarantee that
>>    the only packets sent on an underlying transport session are from
>>    the subscription, then it should reject the subscription with a
>>    "dscp-unavailable" error.  This will avoid the potential for
>>    out-of-order packet delivery of the set of all traffic within the
>>    TCP session.
> 
> This works for me.    I will put this in Section 2.3, directly after the sentence:
> 
>     If the publisher supports the "dscp" feature, then a subscription
>     with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
>     marking being placed within the IP header of any resulting
>     notification messages and subscription state change notifications.
> 
>   unless I hear any objections on this thread.

I'm not sure why the "avoid out-of-order" rationale was presented.
There is no order "of the set of all traffic within the TCP session"
to be out-of. Regardless of DSCP, SSH peers will send data on the
channels (NETCONF sessions) in an order that depends, among other
things, on the rate of consumption of that data. They will preserve
order on any given channel, but will not consider order with respect
to other channels (arguably, not having to do that is the whole point
of having flow control at the SSH level).

I suggest simply dropping the "This will avoid ..." sentence.

--Per

> Eric
>   
>> I think such text belongs to the SN document, since it may apply to other
>> transports than just NETCONF.
>>
>>
>> /martin
>>
>>
>>
>>> With this text, a RESTCONF publisher can support the feature dscp.
>>> And if someone attempts to use dscp with a NETCONF subscription to the
>>> same publisher, the error "dscp-unavailable" can be sent.
>>>
>>> Eric
>>>
>>>
>>> ...
>>>> /martin
>>>
> 
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
> 


From nobody Fri Jan 25 13:15:38 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C12C2124D68; Fri, 25 Jan 2019 13:15:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -19.054
X-Spam-Level: 
X-Spam-Status: No, score=-19.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 G0cevMUDSQVd; Fri, 25 Jan 2019 13:15:33 -0800 (PST)
Received: from alln-iport-1.cisco.com (alln-iport-1.cisco.com [173.37.142.88]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9903A123FFD; Fri, 25 Jan 2019 13:15:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6952; q=dns/txt; s=iport; t=1548450933; x=1549660533; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=wVvA8P7h8/7TbqrP7rIIB2Wa8kUCv2dkDoMJSMGGv1A=; b=gySdmJMVhk+MHZ3fnklimnycY0Cf9cXnLH04h6g5wjCjmZxmnUKVQ94L eVvdafAGEycb11GnkolBsj7bc3e23lhEIll5zFVb0K/OEnFilFbmPCYKM h2k2hiOpjDhhmQGGCdIIxsNgjcQmNGvnbvNlnYITv5QniZdf6XTOQKrFg U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAABKe0tc/49dJa1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqMEYt1gg18lwuBewsBARg?= =?us-ascii?q?LhANGAoMKIjQJDQEDAQECAQECbRwMhUoBAQEBAgEBATgtBwkCBQsCAQgVAw0?= =?us-ascii?q?RBQsnCyUCBAENBQiCT0yBeQgPq3aKKAWMQReBQD+BEYJdNYMeAQGBS4VUIgK?= =?us-ascii?q?JSEqHWZBNCQKLBYcbIJInihORCwIRFIEnHziBVnAVO4JsgicXE20BB4dXhT4?= =?us-ascii?q?BQTGKD4EfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,523,1539648000"; d="scan'208";a="231338274"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jan 2019 21:15:32 +0000
Received: from XCH-RTP-015.cisco.com (xch-rtp-015.cisco.com [64.101.220.155]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id x0PLFVbR014265 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 25 Jan 2019 21:15:31 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-015.cisco.com (64.101.220.155) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 25 Jan 2019 16:15:31 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 25 Jan 2019 16:15:31 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Per Hedeland <per@hedeland.org>, Martin Bjorklund <mbj@tail-f.com>
CC: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
Thread-Topic: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwIAAwVMA///xWjCAAIE3gIAAU4mQ///b6QAACBjB0A==
Date: Fri, 25 Jan 2019 21:15:31 +0000
Message-ID: <e6e5a75f9f9c4f12b8f2dd4069b53cf0@XCH-RTP-013.cisco.com>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com> <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com> <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org>
In-Reply-To: <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.155, xch-rtp-015.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/31zDesPbUvm1-mA5YvC8cygHjdM>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 21:15:37 -0000

> From: Per Hedeland, January 25, 2019 1:20 PM
>=20
> On 2019-01-25 16:41, Eric Voit (evoit) wrote:
> >> From: Martin Bjorklund, January 25, 2019 10:30 AM
> >>
> >> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>> From: Martin Bjorklund, January 25, 2019 3:40 AM
> >>>>
> >>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>>>> From: Martin Bjorklund, January 24, 2019 9:40 AM
> >>>>>>>>>>
> >>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 8:17 AM
> >>>>
> >>>> [...]
> >>>>
> >>>>>>>>>>>> Thinking some more, what is supposed to happen if the
> >>>>>>>>>>>> client on the same session sends first an
> >>>>>>>>>>>> establish-subscription with dscp 42, and then another
> >>>>>>>>>>>> establish-
> >>>> subscription with dscp 10?
> >>>>>>>>>>>
> >>>>>>>>>>> This would be allowed.
> >>>>>>>>>>
> >>>>>>>>>> On linux at least this is a sockopt, i.e., the option applies
> >>>>>>>>>> to the socket, which means all packets on the session.  So
> >>>>>>>>>> how is this supposed to be implemented if different messages
> >>>>>>>>>> on the session should have different dscp values?
> >>>>>>>>>> Or is the
> >>>>>>>>>> idea that you send the msg, flush all data from ssh/tls to
> >>>>>>>>>> tcp, then flush the tcp buffers (not that easy...)?
> >>>>>>>>>>
> >>>>>>>>>> Even if there's just one establish-subscription with a dscp
> >>>>>>>>>> value, since it applies to the session it means that all
> >>>>>>>>>> normal rpcs on this session will get the same dscp value.
> >>>>>>>>>> It is not clear that this is the intention?
> >>>>>>
> >>>>>> Did you miss these questions?
> >>>>>
> >>>>> With NETCONF, one DSCP will apply to single TCP session.  So there
> >>>>> is no
> >>>> issue.
> >>>>
> >>>> The problem is if a client sends two establish-subscriptions with
> >>>> different values for dscp on the same session.  Or even if the
> >>>> client sends one
> >>>> establish-
> >>>> subscription with som dscp value, then the dscp will be applied to
> >>>> all packets from other rpcs as well.
> >>>>
> >>>> ... and even worse, with SSH channels you can have multiple NETCONF
> >>>> session on the same TCP session, which means that the dscp value
> >>>> applies to all packets in all NETCONF sessions sharing the same TCP
> >>>> session.
> >>>>
> >>>> I don't know what the right thing to do is.  Probably first agree
> >>>> that this is in fact a problem, then maybe simply document this
> >>>> somehow.
> >>>
> >>> I hadn't thought about multiple NETCONF SSH channels.  I agree
> >>> something to guide developers is needed here.  The easiest fix is to
> >>> recommend not supporting feature "dscp" with NETCONF.  (It shouldn't
> >>> be absolutely prohibited as DSCP related RFC's such as RFC7657 embed
> >>> text like "a single DSCP should be used for all packets in a TCP
> >>> connection".)
> >>>
> >>> Here is the text I suggest is put into
> >>> draft-ietf-netconf-netconf-event-notifications, Section 5:
> >>>
> >>> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This will
> >>> avoid the potential for out-of-order packet delivery of the set of
> >>> all traffic within the TCP session."
> >>
> >> I think this is a bit too limiting.  For configured subscriptions it
> >> can be perfectly fine, since the server can ensure that there's a
> >> single TCP session to the receiver in this case.  (I know we don't sup=
port
> configured subscriptions at the moment).
> >>
> >> Perhaps we can say in the SN document:
> >>
> >>    If a server that supports the "dscp" feature cannot guarantee that
> >>    the only packets sent on an underlying transport session are from
> >>    the subscription, then it should reject the subscription with a
> >>    "dscp-unavailable" error.  This will avoid the potential for
> >>    out-of-order packet delivery of the set of all traffic within the
> >>    TCP session.
> >
> > This works for me.    I will put this in Section 2.3, directly after th=
e sentence:
> >
> >     If the publisher supports the "dscp" feature, then a subscription
> >     with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
> >     marking being placed within the IP header of any resulting
> >     notification messages and subscription state change notifications.
> >
> >   unless I hear any objections on this thread.
>=20
> I'm not sure why the "avoid out-of-order" rationale was presented.
> There is no order "of the set of all traffic within the TCP session"
> to be out-of. Regardless of DSCP, SSH peers will send data on the channel=
s
> (NETCONF sessions) in an order that depends, among other things, on the r=
ate
> of consumption of that data. They will preserve order on any given channe=
l, but
> will not consider order with respect to other channels (arguably, not hav=
ing to
> do that is the whole point of having flow control at the SSH level).

Hi Per,

What you say is absolutely true.  You likely know this, but Martin asked to=
 include the out-of-order rationale because if a TCP session carries traffi=
c consisting of a set of DSCP values, then the network elements between the=
 publisher and receiver might reorder the packets.   While the order might =
be restored at the receiver (per your point), this might also be seen as lo=
ss.  The result to the application is that higher priority dscp packets wil=
l be seen no faster those with lower priority.  Again you likely know this,=
 but there is more on this general topic in places like RFC-7657, Section 5=
.2.

To cover what Martin wants, and reduce the non-normative text, how about th=
e following?...

"Where TCP is used, a publisher which supports the "dscp" feature SHOULD en=
sure that a subscription's notification messages are returned within a sing=
le TCP transport session where all traffic shares the subscription's reques=
ted "dscp" leaf value.   Where this cannot be guaranteed, any "establish su=
bscription" RPC request SHOULD be rejected with a "dscp-unavailable" error.=
"

Eric

> I suggest simply dropping the "This will avoid ..." sentence.
>=20
> --Per
>=20
> > Eric
> >
> >> I think such text belongs to the SN document, since it may apply to
> >> other transports than just NETCONF.
> >>
> >>
> >> /martin
> >>
> >>
> >>
> >>> With this text, a RESTCONF publisher can support the feature dscp.
> >>> And if someone attempts to use dscp with a NETCONF subscription to
> >>> the same publisher, the error "dscp-unavailable" can be sent.
> >>>
> >>> Eric
> >>>
> >>>
> >>> ...
> >>>> /martin
> >>>
> >
> > _______________________________________________
> > netconf mailing list
> > netconf@ietf.org
> > https://www.ietf.org/mailman/listinfo/netconf
> >


From nobody Fri Jan 25 13:33:06 2019
Return-Path: <per@hedeland.org>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6690F124BF6 for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 13:33:05 -0800 (PST)
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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=outbound.mailhop.org
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 Vwu30B9oPldF for <netconf@ietfa.amsl.com>; Fri, 25 Jan 2019 13:33:03 -0800 (PST)
Received: from outbound1p.ore.mailhop.org (outbound1p.ore.mailhop.org [54.149.210.130]) (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 51A751271FF for <netconf@ietf.org>; Fri, 25 Jan 2019 13:33:01 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1548451851; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=gkk2OX3lcl5x3gzBOAflAb9fjnUO8GLdomNjl6cJX1JgjEsaYTWVPyvLq5JsSb5e0BqcHHTvJA3M9 SlnpxZAcSJ0DYbG7s+eOwA7gH31RE+RZ0+nAlW5MECWYMTUZm93phYgDJAwWRtTmgWdGC3QcdnLy9v IOrKNFpIO04cJeYcl65bStX+THKtPZCYuBdbYcvMKhVxNBMyb6Opr9HSchY7YPX/XX7pTFnTzjI35L BsKw89ZymvC8Hta6+ZkudbeBd4tBGaJzPLOZK/AQNdM6XjQm8DZk8fLzcc+H5LKvb4AHW3jc1xbBvh LxAgHK+0LoyF3sc5k1dWiUFNBmn2c4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:content-type:in-reply-to:mime-version:date: message-id:from:references:cc:to:subject:dkim-signature:from; bh=EHMIfVFuJBTZvH/yv3mRVjK/nuGh8zagnFtMWIyEocg=; b=FFiuOCu5YtExyjfZbndUXcGatK/qkKSlHHyKKYp5jNV4E1SscRJmwxL+uOByi9urwXrM9Sqcv6haf 6aNY1PqiQE+iYAAmqB4Tan2C94LDbtxV7yHWLbeq5YjT8OF6NSmPb95DU5WRc9eAlxCeElbOpjrbnO qgIuW1Vk7rre3mEEEDA95lI0SjmKfWs21jehAwso24eMV2aXDi74+cWBLN00rXSYhggFmAHFVJQNE8 v7kVXEjIcoEEhKEcmtvFk4jwsWvaoKQ42iAXmgAtqDM3JF7X8EzywKZdd334SjaPf8cv/uDMHQrso6 itY+ZqkDu14W2L/+8g3IZnlFQ8woGGA==
ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=none smtp.mailfrom=hedeland.org smtp.remote-ip=81.228.152.101; dmarc=none header.from=hedeland.org; arc=none header.oldest-pass=0;
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:content-type:in-reply-to:mime-version:date: message-id:from:references:cc:to:subject:from; bh=EHMIfVFuJBTZvH/yv3mRVjK/nuGh8zagnFtMWIyEocg=; b=YFjb4VAZjPayHIZzIg5nR3vrQplv8NAq4QvxhcvVyZu7SIzxZtqizg3/n3gp1e6lGtx4rwu/Gv9uD Mg27KYfVZ1MHRbLBiS0TAALKGZ1dQ2D2tz97tEkALDMvCCaU4qY3YtAGq1wNVGNEoYDNq2yAmcCXGK NWsLlrM5WYJZacKQI/F0FLVdvbxMi8G2mDdx92KHacvojc1L8ekMja+qm3iIagaL/qi3OsWjeIYEQ5 UAUOy0ONnUoVdujxoBFpOpnr85E6TLCf4i+7h1PGzAo+Grd6DYLaOMRYBMHr9oK/q9s/rB8l5ZfgYW y8Hn066KzvsUAreN8Eg/DbecEKzZUOg==
X-MHO-RoutePath: cGVyaGVkZWxhbmQ=
X-MHO-User: 7a1bd7c3-20e8-11e9-a59a-7b143e15dabc
X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information
X-Originating-IP: 81.228.152.101
X-Mail-Handler: DuoCircle Outbound SMTP
Received: from hedeland.org (unknown [81.228.152.101]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id 7a1bd7c3-20e8-11e9-a59a-7b143e15dabc; Fri, 25 Jan 2019 21:30:49 +0000 (UTC)
Received: from pluto.hedeland.org (pluto.hedeland.org [10.1.1.5]) by tellus.hedeland.org (8.15.2/8.15.2) with ESMTPS id x0PLVrtV086757 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Fri, 25 Jan 2019 22:31:53 +0100 (CET) (envelope-from per@hedeland.org)
To: "Eric Voit (evoit)" <evoit@cisco.com>, Martin Bjorklund <mbj@tail-f.com>
Cc: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com> <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com> <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org> <e6e5a75f9f9c4f12b8f2dd4069b53cf0@XCH-RTP-013.cisco.com>
From: Per Hedeland <per@hedeland.org>
Message-ID: <8d1ab4ac-97ab-ee69-2f1a-4a8a828ccd18@hedeland.org>
Date: Fri, 25 Jan 2019 22:31:53 +0100
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <e6e5a75f9f9c4f12b8f2dd4069b53cf0@XCH-RTP-013.cisco.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/so81wxNqMYFANs2CLW00ygS5sIk>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 21:33:05 -0000

On 2019-01-25 22:15, Eric Voit (evoit) wrote:
>> From: Per Hedeland, January 25, 2019 1:20 PM
>>
>> On 2019-01-25 16:41, Eric Voit (evoit) wrote:
>>>> From: Martin Bjorklund, January 25, 2019 10:30 AM
>>>>
>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>> From: Martin Bjorklund, January 25, 2019 3:40 AM
>>>>>>
>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 9:40 AM
>>>>>>>>>>>>
>>>>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
>>>>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 8:17 AM
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>>>>>>>>> Thinking some more, what is supposed to happen if the
>>>>>>>>>>>>>> client on the same session sends first an
>>>>>>>>>>>>>> establish-subscription with dscp 42, and then another
>>>>>>>>>>>>>> establish-
>>>>>> subscription with dscp 10?
>>>>>>>>>>>>>
>>>>>>>>>>>>> This would be allowed.
>>>>>>>>>>>>
>>>>>>>>>>>> On linux at least this is a sockopt, i.e., the option applies
>>>>>>>>>>>> to the socket, which means all packets on the session.  So
>>>>>>>>>>>> how is this supposed to be implemented if different messages
>>>>>>>>>>>> on the session should have different dscp values?
>>>>>>>>>>>> Or is the
>>>>>>>>>>>> idea that you send the msg, flush all data from ssh/tls to
>>>>>>>>>>>> tcp, then flush the tcp buffers (not that easy...)?
>>>>>>>>>>>>
>>>>>>>>>>>> Even if there's just one establish-subscription with a dscp
>>>>>>>>>>>> value, since it applies to the session it means that all
>>>>>>>>>>>> normal rpcs on this session will get the same dscp value.
>>>>>>>>>>>> It is not clear that this is the intention?
>>>>>>>>
>>>>>>>> Did you miss these questions?
>>>>>>>
>>>>>>> With NETCONF, one DSCP will apply to single TCP session.  So there
>>>>>>> is no
>>>>>> issue.
>>>>>>
>>>>>> The problem is if a client sends two establish-subscriptions with
>>>>>> different values for dscp on the same session.  Or even if the
>>>>>> client sends one
>>>>>> establish-
>>>>>> subscription with som dscp value, then the dscp will be applied to
>>>>>> all packets from other rpcs as well.
>>>>>>
>>>>>> ... and even worse, with SSH channels you can have multiple NETCONF
>>>>>> session on the same TCP session, which means that the dscp value
>>>>>> applies to all packets in all NETCONF sessions sharing the same TCP
>>>>>> session.
>>>>>>
>>>>>> I don't know what the right thing to do is.  Probably first agree
>>>>>> that this is in fact a problem, then maybe simply document this
>>>>>> somehow.
>>>>>
>>>>> I hadn't thought about multiple NETCONF SSH channels.  I agree
>>>>> something to guide developers is needed here.  The easiest fix is to
>>>>> recommend not supporting feature "dscp" with NETCONF.  (It shouldn't
>>>>> be absolutely prohibited as DSCP related RFC's such as RFC7657 embed
>>>>> text like "a single DSCP should be used for all packets in a TCP
>>>>> connection".)
>>>>>
>>>>> Here is the text I suggest is put into
>>>>> draft-ietf-netconf-netconf-event-notifications, Section 5:
>>>>>
>>>>> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This will
>>>>> avoid the potential for out-of-order packet delivery of the set of
>>>>> all traffic within the TCP session."
>>>>
>>>> I think this is a bit too limiting.  For configured subscriptions it
>>>> can be perfectly fine, since the server can ensure that there's a
>>>> single TCP session to the receiver in this case.  (I know we don't support
>> configured subscriptions at the moment).
>>>>
>>>> Perhaps we can say in the SN document:
>>>>
>>>>     If a server that supports the "dscp" feature cannot guarantee that
>>>>     the only packets sent on an underlying transport session are from
>>>>     the subscription, then it should reject the subscription with a
>>>>     "dscp-unavailable" error.  This will avoid the potential for
>>>>     out-of-order packet delivery of the set of all traffic within the
>>>>     TCP session.
>>>
>>> This works for me.    I will put this in Section 2.3, directly after the sentence:
>>>
>>>      If the publisher supports the "dscp" feature, then a subscription
>>>      with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
>>>      marking being placed within the IP header of any resulting
>>>      notification messages and subscription state change notifications.
>>>
>>>    unless I hear any objections on this thread.
>>
>> I'm not sure why the "avoid out-of-order" rationale was presented.
>> There is no order "of the set of all traffic within the TCP session"
>> to be out-of. Regardless of DSCP, SSH peers will send data on the channels
>> (NETCONF sessions) in an order that depends, among other things, on the rate
>> of consumption of that data. They will preserve order on any given channel, but
>> will not consider order with respect to other channels (arguably, not having to
>> do that is the whole point of having flow control at the SSH level).
> 
> Hi Per,
> 
> What you say is absolutely true.  You likely know this, but Martin asked to include the out-of-order rationale because if a TCP session carries traffic consisting of a set of DSCP values, then the network elements between the publisher and receiver might reorder the packets.

Hm, from the e-mail thread, it seems that the issue of reordering was
introduced by you, and Martin's text just copied your text regarding
that issue, while relaxing the requirement from completely forbidding
the use of the DSCP parameter to disallowing it where it could have
undesired effects.

> While the order might be restored at the receiver (per your point), this might also be seen as loss.  The result to the application is that higher priority dscp packets will be seen no faster those with lower priority.  Again you likely know this, but there is more on this general topic in places like RFC-7657, Section 5.2.
> 
> To cover what Martin wants, and reduce the non-normative text, how about the following?...
> 
> "Where TCP is used, a publisher which supports the "dscp" feature SHOULD ensure that a subscription's notification messages are returned within a single TCP transport session where all traffic shares the subscription's requested "dscp" leaf value.   Where this cannot be guaranteed, any "establish subscription" RPC request SHOULD be rejected with a "dscp-unavailable" error."

This seems fine to me. The point, as far as I can see, is that a DSCP
parameter must not be applied to a session (or subscription) that
didn't "ask" for it. This is enough of a rationale IMHO, no need to go
into the details of what the result may or may not be as far as
reordering of packets goes.

--Per

> Eric
> 
>> I suggest simply dropping the "This will avoid ..." sentence.
>>
>> --Per
>>
>>> Eric
>>>
>>>> I think such text belongs to the SN document, since it may apply to
>>>> other transports than just NETCONF.
>>>>
>>>>
>>>> /martin
>>>>
>>>>
>>>>
>>>>> With this text, a RESTCONF publisher can support the feature dscp.
>>>>> And if someone attempts to use dscp with a NETCONF subscription to
>>>>> the same publisher, the error "dscp-unavailable" can be sent.
>>>>>
>>>>> Eric
>>>>>
>>>>>
>>>>> ...
>>>>>> /martin
>>>>>
>>>
>>> _______________________________________________
>>> netconf mailing list
>>> netconf@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netconf
>>>
> 


From nobody Fri Jan 25 13:37:57 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BF266126DBF; Fri, 25 Jan 2019 13:37:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.643
X-Spam-Level: 
X-Spam-Status: No, score=-14.643 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 nBwC5T3lfdaB; Fri, 25 Jan 2019 13:37:46 -0800 (PST)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 618B0126C7E; Fri, 25 Jan 2019 13:37:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8464; q=dns/txt; s=iport; t=1548452266; x=1549661866; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=rRmviKm31OPJscgjeSemZwNyqHwOM6dAf+YQGq/O/fY=; b=JEQTiYKiXMKFgn0vqwAa0JZ5+3S9F73L5YeyBdTsc+zumx1z1xIPd87I 6hCI83Kc8AAjGkaSM7y4iTYdr9RZK+InuPfZEppAh+QYW6cdubfSAxl+n QxEqVgD9KHY4vBzQ7qMCkEuKDoUw8H1i0RDhHSxMjr23BIRoKpCGKymWv U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ADAABxgEtc/5pdJa1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqMEYt1gg18lwuBewsBARg?= =?us-ascii?q?LhANGAoMKIjQJDQEDAQECAQECbRwMhUoBAQEBAgEBATgtBwkCBQsCAQgVAgE?= =?us-ascii?q?NEQULJwsdCAIEAQ0FCIJPTIF5CA+rf4opBYxBF4FAP4ERgl01gx4BAYFLhVQ?= =?us-ascii?q?iAolIEjiHWZBNCQKLBYcbIJInihORCwIRFIEnHziBVnAVO4JsgicXE20BB4d?= =?us-ascii?q?XhT4BQTGKD4EfAQE?=
X-IronPort-AV: E=Sophos;i="5.56,523,1539648000"; d="scan'208";a="230757918"
Received: from rcdn-core-3.cisco.com ([173.37.93.154]) by alln-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jan 2019 21:37:45 +0000
Received: from XCH-RTP-013.cisco.com (xch-rtp-013.cisco.com [64.101.220.153]) by rcdn-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id x0PLbicS011600 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 25 Jan 2019 21:37:45 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-013.cisco.com (64.101.220.153) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 25 Jan 2019 16:37:44 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Fri, 25 Jan 2019 16:37:44 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Per Hedeland <per@hedeland.org>, Martin Bjorklund <mbj@tail-f.com>
CC: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
Thread-Topic: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwIAAwVMA///xWjCAAIE3gIAAU4mQ///b6QAACBjB0AABYKaAAA0Zy7A=
Date: Fri, 25 Jan 2019 21:37:44 +0000
Message-ID: <9c54bd929e07463f89f3f71fe0a3bbf4@XCH-RTP-013.cisco.com>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com> <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com> <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org> <e6e5a75f9f9c4f12b8f2dd4069b53cf0@XCH-RTP-013.cisco.com> <8d1ab4ac-97ab-ee69-2f1a-4a8a828ccd18@hedeland.org>
In-Reply-To: <8d1ab4ac-97ab-ee69-2f1a-4a8a828ccd18@hedeland.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.153, xch-rtp-013.cisco.com
X-Outbound-Node: rcdn-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/CGzxjDzbe0ZhCSSIC52EaknHyUs>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Jan 2019 21:37:50 -0000

> From: Per Hedeland, January 25, 2019 4:32 PM
> To: Eric Voit (evoit) <evoit@cisco.com>; Martin Bjorklund <mbj@tail-f.com=
>
> Cc: draft-ietf-netconf-subscribed-notifications.all@ietf.org; netconf@iet=
f.org;
> yang-doctors@ietf.org
> Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of dra=
ft-ietf-
> netconf-subscribed-notifications-21
>=20
> On 2019-01-25 22:15, Eric Voit (evoit) wrote:
> >> From: Per Hedeland, January 25, 2019 1:20 PM
> >>
> >> On 2019-01-25 16:41, Eric Voit (evoit) wrote:
> >>>> From: Martin Bjorklund, January 25, 2019 10:30 AM
> >>>>
> >>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>> From: Martin Bjorklund, January 25, 2019 3:40 AM
> >>>>>>
> >>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 9:40 AM
> >>>>>>>>>>>>
> >>>>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> >>>>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 8:17 AM
> >>>>>>
> >>>>>> [...]
> >>>>>>
> >>>>>>>>>>>>>> Thinking some more, what is supposed to happen if the
> >>>>>>>>>>>>>> client on the same session sends first an
> >>>>>>>>>>>>>> establish-subscription with dscp 42, and then another
> >>>>>>>>>>>>>> establish-
> >>>>>> subscription with dscp 10?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> This would be allowed.
> >>>>>>>>>>>>
> >>>>>>>>>>>> On linux at least this is a sockopt, i.e., the option
> >>>>>>>>>>>> applies to the socket, which means all packets on the
> >>>>>>>>>>>> session.  So how is this supposed to be implemented if
> >>>>>>>>>>>> different messages on the session should have different dscp
> values?
> >>>>>>>>>>>> Or is the
> >>>>>>>>>>>> idea that you send the msg, flush all data from ssh/tls to
> >>>>>>>>>>>> tcp, then flush the tcp buffers (not that easy...)?
> >>>>>>>>>>>>
> >>>>>>>>>>>> Even if there's just one establish-subscription with a dscp
> >>>>>>>>>>>> value, since it applies to the session it means that all
> >>>>>>>>>>>> normal rpcs on this session will get the same dscp value.
> >>>>>>>>>>>> It is not clear that this is the intention?
> >>>>>>>>
> >>>>>>>> Did you miss these questions?
> >>>>>>>
> >>>>>>> With NETCONF, one DSCP will apply to single TCP session.  So
> >>>>>>> there is no
> >>>>>> issue.
> >>>>>>
> >>>>>> The problem is if a client sends two establish-subscriptions with
> >>>>>> different values for dscp on the same session.  Or even if the
> >>>>>> client sends one
> >>>>>> establish-
> >>>>>> subscription with som dscp value, then the dscp will be applied
> >>>>>> to all packets from other rpcs as well.
> >>>>>>
> >>>>>> ... and even worse, with SSH channels you can have multiple
> >>>>>> NETCONF session on the same TCP session, which means that the
> >>>>>> dscp value applies to all packets in all NETCONF sessions sharing
> >>>>>> the same TCP session.
> >>>>>>
> >>>>>> I don't know what the right thing to do is.  Probably first agree
> >>>>>> that this is in fact a problem, then maybe simply document this
> >>>>>> somehow.
> >>>>>
> >>>>> I hadn't thought about multiple NETCONF SSH channels.  I agree
> >>>>> something to guide developers is needed here.  The easiest fix is
> >>>>> to recommend not supporting feature "dscp" with NETCONF.  (It
> >>>>> shouldn't be absolutely prohibited as DSCP related RFC's such as
> >>>>> RFC7657 embed text like "a single DSCP should be used for all
> >>>>> packets in a TCP
> >>>>> connection".)
> >>>>>
> >>>>> Here is the text I suggest is put into
> >>>>> draft-ietf-netconf-netconf-event-notifications, Section 5:
> >>>>>
> >>>>> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This
> >>>>> will avoid the potential for out-of-order packet delivery of the
> >>>>> set of all traffic within the TCP session."
> >>>>
> >>>> I think this is a bit too limiting.  For configured subscriptions
> >>>> it can be perfectly fine, since the server can ensure that there's
> >>>> a single TCP session to the receiver in this case.  (I know we
> >>>> don't support
> >> configured subscriptions at the moment).
> >>>>
> >>>> Perhaps we can say in the SN document:
> >>>>
> >>>>     If a server that supports the "dscp" feature cannot guarantee th=
at
> >>>>     the only packets sent on an underlying transport session are fro=
m
> >>>>     the subscription, then it should reject the subscription with a
> >>>>     "dscp-unavailable" error.  This will avoid the potential for
> >>>>     out-of-order packet delivery of the set of all traffic within th=
e
> >>>>     TCP session.
> >>>
> >>> This works for me.    I will put this in Section 2.3, directly after =
the
> sentence:
> >>>
> >>>      If the publisher supports the "dscp" feature, then a subscriptio=
n
> >>>      with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
> >>>      marking being placed within the IP header of any resulting
> >>>      notification messages and subscription state change notification=
s.
> >>>
> >>>    unless I hear any objections on this thread.
> >>
> >> I'm not sure why the "avoid out-of-order" rationale was presented.
> >> There is no order "of the set of all traffic within the TCP session"
> >> to be out-of. Regardless of DSCP, SSH peers will send data on the
> >> channels (NETCONF sessions) in an order that depends, among other
> >> things, on the rate of consumption of that data. They will preserve
> >> order on any given channel, but will not consider order with respect
> >> to other channels (arguably, not having to do that is the whole point =
of
> having flow control at the SSH level).
> >
> > Hi Per,
> >
> > What you say is absolutely true.  You likely know this, but Martin aske=
d to
> include the out-of-order rationale because if a TCP session carries traff=
ic
> consisting of a set of DSCP values, then the network elements between the
> publisher and receiver might reorder the packets.
>=20
> Hm, from the e-mail thread, it seems that the issue of reordering was
> introduced by you, and Martin's text just copied your text regarding that=
 issue,
> while relaxing the requirement from completely forbidding the use of the =
DSCP
> parameter to disallowing it where it could have undesired effects.
>=20
> > While the order might be restored at the receiver (per your point), thi=
s might
> also be seen as loss.  The result to the application is that higher prior=
ity dscp
> packets will be seen no faster those with lower priority.  Again you like=
ly know
> this, but there is more on this general topic in places like RFC-7657, Se=
ction 5.2.
> >
> > To cover what Martin wants, and reduce the non-normative text, how abou=
t
> the following?...
> >
> > "Where TCP is used, a publisher which supports the "dscp" feature SHOUL=
D
> ensure that a subscription's notification messages are returned within a =
single
> TCP transport session where all traffic shares the subscription's request=
ed
> "dscp" leaf value.   Where this cannot be guaranteed, any "establish
> subscription" RPC request SHOULD be rejected with a "dscp-unavailable"
> error."
>=20
> This seems fine to me. The point, as far as I can see, is that a DSCP par=
ameter
> must not be applied to a session (or subscription) that didn't "ask" for =
it. This is
> enough of a rationale IMHO, no need to go into the details of what the re=
sult
> may or may not be as far as reordering of packets goes.

Thanks Per, this works for me.

Eric

> --Per
>=20
> > Eric
> >
> >> I suggest simply dropping the "This will avoid ..." sentence.
> >>
> >> --Per
> >>
> >>> Eric
> >>>
> >>>> I think such text belongs to the SN document, since it may apply to
> >>>> other transports than just NETCONF.
> >>>>
> >>>>
> >>>> /martin
> >>>>
> >>>>
> >>>>
> >>>>> With this text, a RESTCONF publisher can support the feature dscp.
> >>>>> And if someone attempts to use dscp with a NETCONF subscription to
> >>>>> the same publisher, the error "dscp-unavailable" can be sent.
> >>>>>
> >>>>> Eric
> >>>>>
> >>>>>
> >>>>> ...
> >>>>>> /martin
> >>>>>
> >>>
> >>> _______________________________________________
> >>> netconf mailing list
> >>> netconf@ietf.org
> >>> https://www.ietf.org/mailman/listinfo/netconf
> >>>
> >


From nobody Tue Jan 29 03:40:48 2019
Return-Path: <wlupton@broadband-forum.org>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9AF47129508 for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 03:40:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level: 
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=broadband-forum-org.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 kBRG9leo505z for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 03:40:42 -0800 (PST)
Received: from mail-it1-x12d.google.com (mail-it1-x12d.google.com [IPv6:2607:f8b0:4864:20::12d]) (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 4D4471294FA for <netconf@ietf.org>; Tue, 29 Jan 2019 03:40:42 -0800 (PST)
Received: by mail-it1-x12d.google.com with SMTP id a6so3960641itl.4 for <netconf@ietf.org>; Tue, 29 Jan 2019 03:40:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadband-forum-org.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=MjXefGoxzVqkSVMy+fYghqoGKcvPiY5iZSpO/L0svfE=; b=pbdCA2xReDXvmpsSWJ7m4ZiPbkshal7VSN0vG9toX6vi0+Edff4vLcSWNjjDA68ba2 pm7eUIxXYmeTa+kmBD5gWxhz4pdJvExNuOi/9CY9583B4xNTW6fyZfJ4nG1iLUVNQ9bL 21Atqw3b5PQ9UpqOP2nH/6NI5VFb8amKpNwyY622U2T7ehFEvnWsDYvja/axMYmA1fdk 1pBw/O9sy5bfjkAXTrMG4WIi1v86HE7mmafsUfSA+bXT4PHLgMLPxBE9bm64RZuEs4BD b1do9acFJrMHOGR6QbrfifCzmHHPtoAngI9CI+cu8VGSP7wKw8c7tuf2qRC5iHIl9CzH RhJA==
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=MjXefGoxzVqkSVMy+fYghqoGKcvPiY5iZSpO/L0svfE=; b=JVC9lr9J+m9rglemhIgWRgCYsCbH61c0ZIH1aZvyjXnv1z8Gstu74FGq6mNtMpSbe+ TX9xl8Zka64sdY7XzG4b/L5Pz4ctH7bUzK9ORlxScXw3CZaL3s7nmcdS9jiu0GWbFFkp caRm2tBb57SJ3b8iJ0qhpS512WyDlpYlrCGcH3z3EKwqX+PWKw+4aDSFvi4+NzVDgh8J 9skl98gPc/WVHwUXQhD6KDU703SC6FyMpgxO3qcv7sRxSm1wPCKnaMwh672LCezRSOaJ yA+vk65JDYObobp+GX49whYOy1jy/9ZQBfpDUto8C31BjeUmuXuAQWq/mdhTEwyNInXd Cq/A==
X-Gm-Message-State: AJcUukf38eq296IVz8YnP/xS9lqTN+ZaQhlyetAflj1jqASNrSak2Ycj QuyofIPgGTcTTHy5FEDCFw8x/GRmv6udn0BIcjBg9vt3ZU4=
X-Google-Smtp-Source: ALg8bN4jelEtEAgg1W/IWD4OV0PH4dhA9f8F9NZfynXgBhyg0G64psFY+I+w7DTeuBglrniFQxkco15W5ovHb6VjkVc=
X-Received: by 2002:a05:660c:da:: with SMTP id q26mr12362171itk.24.1548762041152;  Tue, 29 Jan 2019 03:40:41 -0800 (PST)
MIME-Version: 1.0
From: William Lupton <wlupton@broadband-forum.org>
Date: Tue, 29 Jan 2019 11:40:30 +0000
Message-ID: <CAEe_xxgchMoE9UyR2LUDbMAyFVZfOWCfVwEFN0HFtsWOYgK3eg@mail.gmail.com>
To: netconf@ietf.org
Content-Type: multipart/alternative; boundary="0000000000004e0c8d05809743e6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/gV2_ZS9G2NJEnJuhx4NBgoiBsrk>
Subject: [netconf] YANG Push drafts comments
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Jan 2019 11:40:46 -0000

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

All,

I'm sorry that the comments below are so late. I did ask the chairs what I
should do with them, and they said to send them to the list despite the
lateness from a process perspective.

The comments are based on the four WG consensus drafts as of late November.
I haven't revisited them to see which may have been addressed by subsequent
discussion.

Nearly all of the comments relate to
the draft-ietf-netconf-subscribed-notifications draft, plus there are some
general remarks, so it didn't seem worth splitting them into a message per
draft.

Cheers,
William

----

   1. General:
      1. Why is the subscription id optional? Without it, will the receiver
      always be able to tell how to handle an event message?
      2. YANG Push is not referred to consistently across the document set
      (presence or absence of hyphen, "yang" capitalization, "push"
      capitalization). There should be a single, consistently-used term.
   2. draft-ietf-netconf-subscribed-notifications:
      1. I wonder why it was decided that dynamic subscriptions wouldn't
      allow the receiver to be different from the subscriber. It seems like two
      different concepts are being mixed: dynamic/configured subscription and
      embedded/external receiver.
      2. Event occurrence time: This isn't quite clear. What if there was
      already a timestamp (from a lower-level system) when the event was
      identified? Should that be used?
      3. Event record:
         1. So does the "event record" term apply to all the drafts? If so,
         does "event" apply to all the drafts? (This note is in the
context of a
         later note about the fact that "event stream" appears to be
specific to
         this draft.)
         2. YANG notifications are explicitly defined in YANG models (e.g.
         the ietf-hardware YANG module defines a hardware-state-change
         notification). I thought that a major part of YANG Push is to
effectively
         allow notifications to be defined dynamically.
            1. Later: I think perhaps the point is that event streams are
            indeed restricted to YANG notifications, but that other
drafts (e.g. YANG
            Push) define mechanisms beyond event streams. Section 2.4 (dynamic
            subscriptions) says "These RPCs have been designed
extensibly so that they
            may be augmented for subscription targets beyond event streams".
            2. Even later: Ah! YANG Push defines generic "push-update" and
            "push-change-update" notifications. So it's all OK.
            4. Event stream:
         1. Having now read most of the YANG Push draft, I realize that
         "Event streams" are a legacy thing and are not used by YANG Push. This
         could be made clear. Otherwise it looks like these are a base
concept that
         will be built on.
         2. Perhaps the truly cleanest solution would be to move the legacy
         aspects to a separate document, or clearly indicate they're
legacy, or use
         less "core" names, or move this material to an Annex or Appendix.
         3. So referring to them as sets of Events (rather than sets of
         Event streams) seems inaccurate.
         5. Notification message:
         1. I don't find "The time the event was generated by the event
         source" quite clear. Is it the time at which the change
occurred or was
         detected (event occurrence time), or the time at which the message was
         created? Probably the former?
         6. Subscription:
         1. The section 2.2 description is very unclear. It appears that
         filters are on subscriptions, refer to records, and cause
"event messages"
         to be excluded from delivery. But "event message" isn't a defined term.
         3. draft-ietf-netconf-yang-push:
   1. YANG Push defines a new "datastore" subscription target that's
      independent of the existing "stream" subscription target. (Assuming that
      this is correct, I'd have liked some explanation of _why_ YANG Push isn't
      able to extend the base mechanism.)
      4. Editorial (there might be some duplication with earlier comments):
      1. Some YANG descriptions have incorrect indentation on the second
      and subsequent lines (such lines should begin under the first
character of
      the first line, i.e. one character to the right of the opening double
      quote). No doubt the YANG Doctors will catch such things!
      2. draft-ietf-netconf-subscribed-notifications-18
         1. Event stream definition: "Event stream: A continuous,
         chronologically ordered set of events" ... but should this be
"...of event
         records"
         2. s/intantiation/instantiation/ (two occurrences)
         3. The "subscription state change notifications" section name may
         have been subject to a s/Subscription/subscription/ edit?
Should capitalise
         "subscription" both here and where it's used at the start of sentences
         (there's at least one case of this)
      3. draft-ietf-netconf-yang-push-20
         1. There's a reference to "Custom Subscription to Event Streams".
         Is this the old title of "Subscription to YANG Event
Notifications"? If so,
         it needs to be updated
         2. Spurious "6 record" in the YANG (should be "record")
         3. In the data model introductory section, the "sn:" prefix isn't
         explained (I know it's sort of obvious, but the "yp:" prefix
(also obvious)
         _is_ explained)

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

<div dir=3D"ltr"><div dir=3D"ltr">All,<div><br></div><div><div dir=3D"ltr" =
style=3D"font-size:small;background-color:rgb(255,255,255);text-decoration-=
style:initial;text-decoration-color:initial">I&#39;m sorry that the comment=
s below are so late. I did ask the chairs what I should do with them, and t=
hey said to send them to the list despite the lateness from a process persp=
ective.</div><div dir=3D"ltr" style=3D"font-size:small;background-color:rgb=
(255,255,255);text-decoration-style:initial;text-decoration-color:initial">=
<br></div><div style=3D"font-size:small;background-color:rgb(255,255,255);t=
ext-decoration-style:initial;text-decoration-color:initial">The comments ar=
e based on the four WG consensus drafts as of late November. I haven&#39;t =
revisited them to see which may have been addressed by subsequent discussio=
n.</div><div style=3D"font-size:small;background-color:rgb(255,255,255);tex=
t-decoration-style:initial;text-decoration-color:initial"><br></div><div st=
yle=3D"font-size:small;background-color:rgb(255,255,255);text-decoration-st=
yle:initial;text-decoration-color:initial">Nearly all of the comments relat=
e to the=C2=A0draft-ietf-netconf-subscribed-notifications draft, plus there=
 are some general remarks, so it didn&#39;t seem worth splitting them into =
a message per draft.</div><div style=3D"font-size:small;background-color:rg=
b(255,255,255);text-decoration-style:initial;text-decoration-color:initial"=
><br></div><div style=3D"font-size:small;background-color:rgb(255,255,255);=
text-decoration-style:initial;text-decoration-color:initial">Cheers,</div><=
div style=3D"font-size:small;background-color:rgb(255,255,255);text-decorat=
ion-style:initial;text-decoration-color:initial">William</div><div style=3D=
"font-size:small;background-color:rgb(255,255,255);text-decoration-style:in=
itial;text-decoration-color:initial"><br></div><div style=3D"font-size:smal=
l;background-color:rgb(255,255,255);text-decoration-style:initial;text-deco=
ration-color:initial">----</div><div dir=3D"ltr" style=3D"font-size:small;b=
ackground-color:rgb(255,255,255);text-decoration-style:initial;text-decorat=
ion-color:initial"><ol><li style=3D"margin-left:15px">General:</li><ol><li =
style=3D"margin-left:15px">Why is the subscription id optional? Without it,=
 will the receiver always be able to tell how to handle an event message?</=
li><li style=3D"margin-left:15px">YANG Push is not referred to consistently=
 across the document set (presence or absence of hyphen, &quot;yang&quot; c=
apitalization, &quot;push&quot; capitalization). There should be a single, =
consistently-used term.</li></ol><li style=3D"margin-left:15px">draft-ietf-=
netconf-subscribed-notifications:</li><ol><li style=3D"margin-left:15px">I =
wonder why it was decided that dynamic subscriptions wouldn&#39;t allow the=
 receiver to be different from the subscriber. It seems like two different =
concepts are being mixed: dynamic/configured subscription and embedded/exte=
rnal receiver.</li><li style=3D"margin-left:15px">Event occurrence time: Th=
is isn&#39;t quite clear. What if there was already a timestamp (from a low=
er-level system) when the event was identified? Should that be used?<br></l=
i><li style=3D"margin-left:15px">Event record:</li><ol><li style=3D"margin-=
left:15px">So does the &quot;event record&quot; term apply to all the draft=
s? If so, does &quot;event&quot; apply to all the drafts? (This note is in =
the context of a later note about the fact that &quot;event stream&quot; ap=
pears to be specific to this draft.)</li><li style=3D"margin-left:15px">YAN=
G notifications are explicitly defined in YANG models (e.g. the ietf-hardwa=
re YANG module defines a hardware-state-change notification). I thought tha=
t a major part of YANG Push is to effectively allow notifications to be def=
ined dynamically.</li><ol><li style=3D"margin-left:15px">Later: I think per=
haps the point is that event streams are indeed restricted to YANG notifica=
tions, but that other drafts (e.g. YANG Push) define mechanisms beyond even=
t streams. Section 2.4 (dynamic subscriptions) says &quot;These RPCs have b=
een designed extensibly so that they may be augmented for subscription targ=
ets beyond event streams&quot;.<br></li><li style=3D"margin-left:15px">Even=
 later: Ah! YANG Push defines generic &quot;push-update&quot; and &quot;pus=
h-change-update&quot; notifications. So it&#39;s all OK.<br></li></ol></ol>=
<li style=3D"margin-left:15px">Event stream:</li><ol><li style=3D"margin-le=
ft:15px">Having now read most of the YANG Push draft, I realize that &quot;=
Event streams&quot; are a legacy thing and are not used by YANG Push. This =
could be made clear. Otherwise it looks like these are a base concept that =
will be built on.<br></li><li style=3D"margin-left:15px">Perhaps the truly =
cleanest solution would be to move the legacy aspects to a separate documen=
t, or clearly indicate they&#39;re legacy, or use less &quot;core&quot; nam=
es, or move this material to an Annex or Appendix.<br></li><li style=3D"mar=
gin-left:15px">So referring to them as sets of Events (rather than sets of =
Event streams) seems inaccurate.<br></li></ol><li style=3D"margin-left:15px=
">Notification message:</li><ol><li style=3D"margin-left:15px">I don&#39;t =
find &quot;The time the event was generated by the event source&quot;=C2=A0=
quite clear. Is it the time at which the change occurred or was detected (e=
vent occurrence time), or the time at which the message was created? Probab=
ly the former?<br></li></ol><li style=3D"margin-left:15px">Subscription:</l=
i><ol><li style=3D"margin-left:15px">The section 2.2 description is very un=
clear. It appears that filters are on subscriptions, refer to records, and =
cause &quot;event messages&quot; to be excluded from delivery. But &quot;ev=
ent message&quot; isn&#39;t a defined term.<br></li></ol></ol><li style=3D"=
margin-left:15px">draft-ietf-netconf-yang-push:<br></li><ol><li style=3D"ma=
rgin-left:15px">YANG Push defines a new &quot;datastore&quot; subscription =
target that&#39;s independent of the existing &quot;stream&quot; subscripti=
on target. (Assuming that this is correct, I&#39;d have liked some explanat=
ion of _why_ YANG Push isn&#39;t able to extend the base mechanism.)<br></l=
i></ol><li style=3D"margin-left:15px">Editorial (there might be some duplic=
ation with earlier comments):</li><ol><li style=3D"margin-left:15px">Some Y=
ANG descriptions have incorrect indentation on the second and subsequent li=
nes (such lines should begin under the first character of the first line, i=
.e. one character to the right of the opening double quote). No doubt the Y=
ANG Doctors will catch such things!</li><li style=3D"margin-left:15px">draf=
t-ietf-netconf-subscribed-notifications-18</li><ol><li style=3D"margin-left=
:15px">Event stream definition: &quot;Event stream: A continuous, chronolog=
ically ordered set of events&quot; ... but should this be &quot;...of event=
 records&quot;</li><li style=3D"margin-left:15px">s/intantiation/instantiat=
ion/ (two occurrences)</li><li style=3D"margin-left:15px">The &quot;subscri=
ption state change notifications&quot; section name may have been subject t=
o a s/Subscription/subscription/ edit? Should capitalise &quot;subscription=
&quot; both here and where it&#39;s used at the start of sentences (there&#=
39;s at least one case of this)</li></ol><li style=3D"margin-left:15px">dra=
ft-ietf-netconf-yang-push-20</li><ol><li style=3D"margin-left:15px">There&#=
39;s a reference to &quot;Custom Subscription to Event Streams&quot;. Is th=
is the old title of &quot;Subscription to YANG Event Notifications&quot;? I=
f so, it needs to be updated</li><li style=3D"margin-left:15px">Spurious &q=
uot;6 record&quot; in the YANG (should be &quot;record&quot;)</li><li style=
=3D"margin-left:15px">In the data model introductory section, the &quot;sn:=
&quot; prefix isn&#39;t explained (I know it&#39;s sort of obvious, but the=
 &quot;yp:&quot; prefix (also obvious) _is_ explained)</li></ol></ol></ol><=
/div></div></div></div>

--0000000000004e0c8d05809743e6--


From nobody Tue Jan 29 10:55:01 2019
Return-Path: <mjethanandani@gmail.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 02866130FC5 for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 10:55:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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, HTML_MESSAGE=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 OHIsNnDpu250 for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 10:54:57 -0800 (PST)
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) (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 0C4A4130FC7 for <netconf@ietf.org>; Tue, 29 Jan 2019 10:54:57 -0800 (PST)
Received: by mail-pf1-x42c.google.com with SMTP id i12so10081208pfo.7 for <netconf@ietf.org>; Tue, 29 Jan 2019 10:54:57 -0800 (PST)
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=6MTATbD6HkQy0GgTeRIU76fHH1ZUWF0kPvoInU5Xj6Y=; b=GgHVD2iR00sXrNEzSlbXWqlATMRDQgJ9rPpdTJOynIP/aHoQrrKNpsIBKmKOA3OgGz HUsHEph+1JF15RZQdbbFPSkGdpPVLAAkipQWRM6jO7lGVlpZxR8t6RZ9U1dYZT+actt/ B+BzJ6UrfGoqSKRbZVvlzwrX/aNSZRD3cWGp5fvKfSVuTdfL4ukRoM3MryUz3rOevjKN mB9QKsS1mIKof3DeoHJuOWHqSiliQJVn2ysIU2vGKdIAbOgYuCQTOwxVo5BenX+kkG05 BtdfaDett2TiQaYuPrQn2xke6DG1zICu7VC1K91uZMIj3XUVgLc0dgLfCc6RaTHBdIm7 1K0w==
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=6MTATbD6HkQy0GgTeRIU76fHH1ZUWF0kPvoInU5Xj6Y=; b=jUl6li3o6QZRHzQ6ZdMFWgKHnmHEFVi07dj4KrsPRiLrYTeZrlKjBSpP3xzob72Byp QuhX07j4nDJjLskETYwsD82p8zmybnxa/RFqDNwcPgTFQ6sauJtk+cXdtAprj9/wOsv6 Z9aU4EGFXglzlFtrtn5N+kgUCmtFoaOv5RyyA90npnQlnemc6sv1cYB0zHfxnovonGRM MoCUASsK2N60qYQDS+uhWYRaC4GZxWFaXW4pQG5J01NnWHi/11VE8fOm7+yILlgjBkaA MCn6eLe3Vzb3zgaEqVNekFLeWwmPetAGIb22e4tbleiO9exDktAwBIG0XVqKTlHx0+Jx WlzQ==
X-Gm-Message-State: AJcUukclrYoTzypMA3zXY5fkDcJh0eHNFxdszhdDYHw0xWFiIGN4Nwdo RAEPOu4y6kr+mLCaYjmRpMRujXef
X-Google-Smtp-Source: ALg8bN7ybqxsNIfCBtaPq7p0PWjnKsufBSOD1w4mv6Fcgzl+2wVbCEhfHUNiNU1MXkt1817MDycP0w==
X-Received: by 2002:a62:f51a:: with SMTP id n26mr17272007pfh.245.1548788096078;  Tue, 29 Jan 2019 10:54:56 -0800 (PST)
Received: from [10.33.123.214] ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id w128sm49152232pfw.79.2019.01.29.10.54.54 for <netconf@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Jan 2019 10:54:55 -0800 (PST)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_5BDAEAFA-6800-4709-94C2-D83D58EEA71E"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Message-Id: <E27BF6D6-8FC9-491A-A338-9830D750F3A7@gmail.com>
Date: Tue, 29 Jan 2019 10:54:54 -0800
To: Netconf <netconf@ietf.org>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/QnME3UYVyOYGLd7nTq2DQxyrpS4>
Subject: [netconf] AUTH48 changes to RFC 8526 <draft-ietf-netconf-nmda-netconf-08>
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Jan 2019 18:55:00 -0000

--Apple-Mail=_5BDAEAFA-6800-4709-94C2-D83D58EEA71E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

NETCONF WG,

During the AUTH48 review of draft-ietf-netconf-nmda-netconf-08, the =
authors found a couple of things that needed further clarification. The =
edits are reflected in this e-mail using OLD: and NEW:. Since the =
changes are technical changes, we needed to make sure that the WG was ok =
with the changes. This starts a one week review period terminating next =
Tuesday, February 5 to provide any comments you might have. If providing =
comments, please be specific in the changes you would like to see, =
preferably using your own OLD: and NEW:. If no comments are received, it =
will be deemed that the changes are fine with the WG. The two set of =
changes are in the YANG model itself, and in Section 3.1.1.4.

In the YANG model:

OLD:

        choice origin-filters {
          when 'derived-from-or-self(datastore, "ds:operational")';
          if-feature "origin";
          description
            "Filters based on the 'origin' annotation.";
          leaf-list origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A node matches
               the filter if its 'origin' annotation is derived from or
               equal to any of the given filter values.";
          }
          leaf-list negated-origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A node matches
               the filter if its 'origin' annotation is not derived
               from and not equal to any of the given filter values.";
          }
        }

NEW:

        choice origin-filters {
          when 'derived-from-or-self(datastore, "ds:operational")';
          if-feature origin;
          description
            "Filters configuration nodes based on the 'origin'
             annotation.  Configuration nodes that do not have an
             'origin' annotation are treated as if they have the
             'origin' annotation 'or:unknown'.

             System state nodes are not affected by origin-filters and
             thus not filtered.  Note that system state nodes can be
             filtered with the 'config-filter' leaf.";

          leaf-list origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A
               configuration node matches the filter if its 'origin'
               annotation is derived from or equal to any of the given
               filter values.";
          }
          leaf-list negated-origin-filter {
            type or:origin-ref;
            description
              "Filter based on the 'origin' annotation.  A
               configuration node matches the filter if its 'origin'
               annotation is not derived from and not equal to any of
               the given filter values.";
          }
        }

OLD:

        leaf config-filter {
          type boolean;
          description
            "Filter for nodes with the given value for their
             'config' property.  If this leaf is not present, all
             nodes are selected.

             For example, when this leaf is set to 'true', only 'config
             true' nodes are selected.";
        }

NEW:

        leaf config-filter {
          type boolean;
          description
            "Filter for nodes with the given value for their 'config'
             property.  When this leaf is set to 'true', only 'config
             true' nodes are selected and, when set to =E2=80=98false=E2=80=
=99, only
             =E2=80=98config false=E2=80=99 nodes are selected.  If this =
leaf is not
             present, no nodes are filtered.";
        }

Add the following example to 3.1.1.4:

    In order to not retrieve any system state nodes, the
    "config-filter" can be used:

    <rpc message-id=3D"103"
         xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
      <get-data xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
                xmlns:ds=3D"urn:ietf:params:xml:ns:yang:ietf-datastores"
                xmlns:or=3D"urn:ietf:params:xml:ns:yang:ietf-origin">
        <datastore>ds:operational</datastore>
        <subtree-filter>
          <bgp xmlns=3D"http://example.com/ns/bgp =
<http://example.com/ns/bgp>"/>
        </subtree-filter>
        <config-filter>true</config-filter>
        <origin-filter>or:intended</origin-filter>
        <origin-filter>or:system</origin-filter>
        <with-origin/>
      </get-data>
    </rpc>

    <rpc-reply message-id=3D"103"
               xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
      <data xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-netconf-nmda">
        <bgp xmlns=3D"http://example.com/ns/bgp =
<http://example.com/ns/bgp>"
             xmlns:or=3D"urn:ietf:params:xml:ns:yang:ietf-origin"
             or:origin=3D"or:intended">
          <peer>
            <name>2001:db8::2:3</name>
            <local-port or:origin=3D"or:system">60794</local-port>
          </peer>
        </bgp>
      </data>
    </rpc-reply>

Thanks.

Mahesh Jethanandani // as shepherd
mjethanandani@gmail.com




--Apple-Mail=_5BDAEAFA-6800-4709-94C2-D83D58EEA71E
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; line-break: after-white-space;" class=3D""><div =
class=3D"">NETCONF WG,</div><div class=3D""><br class=3D""></div><div =
class=3D"">During the AUTH48 review of =
draft-ietf-netconf-nmda-netconf-08, the authors found a couple of things =
that needed further clarification. The edits are reflected in this =
e-mail using OLD: and NEW:. Since the changes are technical changes, we =
needed to make sure that the WG was ok with the changes. This starts a =
one week review period terminating next Tuesday, February 5 to provide =
any comments you might have. If providing comments, please be specific =
in the changes you would like to see, preferably using your own OLD: and =
NEW:. If no comments are received, it will be deemed that the changes =
are fine with the WG. The two set of changes are in the YANG model =
itself, and in Section 3.1.1.4.</div><div class=3D""><br =
class=3D""></div><div class=3D"">In the YANG model:</div><div =
class=3D""><br class=3D""></div><div class=3D"">OLD:<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;choice =
origin-filters {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whe=
n 'derived-from-or-self(datastore, "ds:operational")';<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if-=
feature "origin";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des=
cription<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;"Filters based on the 'origin' annotation.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea=
f-list origin-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;type or:origin-ref;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;description<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;"Filter based on the 'origin' annotation. &nbsp;A =
node matches<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;the filter if its 'origin' annotation is =
derived from or<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;equal to any of the given filter values.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<b=
r =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea=
f-list negated-origin-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;type or:origin-ref;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;description<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;"Filter based on the 'origin' annotation. &nbsp;A =
node matches<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;the filter if its 'origin' annotation is not =
derived<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;from and not equal to any of the given filter =
values.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<b=
r class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br =
class=3D""><br class=3D"">NEW:<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;choice =
origin-filters {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whe=
n 'derived-from-or-self(datastore, "ds:operational")';<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if-=
feature origin;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des=
cription<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;"Filters configuration nodes based on the 'origin'<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;annotation. &nbsp;Configuration nodes that do not have =
an<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;'origin' annotation are treated as if they have the<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;'origin' annotation 'or:unknown'.<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;System state nodes are not affected by origin-filters =
and<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;thus not filtered. &nbsp;Note that system state nodes can =
be<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;filtered with the 'config-filter' leaf.";<br class=3D""><br=
 =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea=
f-list origin-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;type or:origin-ref;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;description<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;"Filter based on the 'origin' annotation. =
&nbsp;A<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;configuration node matches the filter if its =
'origin'<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;annotation is derived from or equal to any of =
the given<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;filter values.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<b=
r =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea=
f-list negated-origin-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;type or:origin-ref;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;description<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;"Filter based on the 'origin' annotation. =
&nbsp;A<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;configuration node matches the filter if its =
'origin'<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;annotation is not derived from and not equal =
to any of<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;the given filter values.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<b=
r class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br =
class=3D""><br class=3D"">OLD:<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf =
config-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typ=
e boolean;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des=
cription<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;"Filter for nodes with the given value for their<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;'config' property. &nbsp;If this leaf is not present, =
all<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;nodes are selected.<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;For example, when this leaf is set to 'true', only =
'config<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;true' nodes are selected.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br =
class=3D""><br class=3D"">NEW:<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf =
config-filter {<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typ=
e boolean;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des=
cription<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;"Filter for nodes with the given value for their 'config'<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;property. &nbsp;When this leaf is set to 'true', only =
'config<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;true' nodes are selected and, when set to =E2=80=98false=E2=
=80=99, only<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;=E2=80=98config false=E2=80=99 nodes are selected. =
&nbsp;If this leaf is not<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;present, no nodes are filtered.";<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br =
class=3D""><br class=3D""><b class=3D"">Add</b> the following example to =
3.1.1.4:<br class=3D""><br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;In order =
to not retrieve any system state nodes, the<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;"config-filter" can be used:<br =
class=3D""><br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&lt;rpc =
message-id=3D"103"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns=3D"=
urn:ietf:params:xml:ns:netconf:base:1.0"&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;get-data =
xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:ds=3D"urn:ietf:params:xml:ns:yang:i=
etf-datastores"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:or=3D"urn:ietf:params:xml:ns:yang:i=
etf-origin"&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;datastore&g=
t;ds:operational&lt;/datastore&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;subtree-fil=
ter&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt=
;bgp xmlns=3D"<a href=3D"http://example.com/ns/bgp" =
class=3D"">http://example.com/ns/bgp</a>"/&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/subtree-fi=
lter&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;config-filt=
er&gt;true&lt;/config-filter&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;origin-filt=
er&gt;or:intended&lt;/origin-filter&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;origin-filt=
er&gt;or:system&lt;/origin-filter&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;with-origin=
/&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/get-data&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/rpc&gt;<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&lt;rpc-reply message-id=3D"103"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.=
0"&gt;<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;data =
xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bgp =
xmlns=3D"<a href=3D"http://example.com/ns/bgp" =
class=3D"">http://example.com/ns/bgp</a>"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;xmlns:or=3D"urn:ietf:params:xml:ns:yang:ietf-origin"<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;or:origin=3D"or:intended"&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt=
;peer&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&lt;name&gt;2001:db8::2:3&lt;/name&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&lt;local-port =
or:origin=3D"or:system"&gt;60794&lt;/local-port&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt=
;/peer&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bgp&gt;<br=
 class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/data&gt;<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/rpc-reply&gt;<br class=3D""><br =
class=3D""></div>Thanks.<div class=3D""><br class=3D""><div class=3D"">
<div class=3D"">Mahesh Jethanandani // as shepherd</div><div class=3D""><a=
 href=3D"mailto:mjethanandani@gmail.com" =
class=3D"">mjethanandani@gmail.com</a></div><div class=3D""><br =
class=3D""></div><br class=3D"Apple-interchange-newline">

</div>

<br class=3D""></div></body></html>=

--Apple-Mail=_5BDAEAFA-6800-4709-94C2-D83D58EEA71E--


From nobody Tue Jan 29 12:31:40 2019
Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 473CE130FF9 for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 12:31:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.641
X-Spam-Level: 
X-Spam-Status: No, score=-14.641 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 iylWTY8McNwo for <netconf@ietfa.amsl.com>; Tue, 29 Jan 2019 12:31:35 -0800 (PST)
Received: from alln-iport-3.cisco.com (alln-iport-3.cisco.com [173.37.142.90]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 83F69130FF2 for <netconf@ietf.org>; Tue, 29 Jan 2019 12:31:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=262473; q=dns/txt; s=iport; t=1548793892; x=1550003492; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=XKqEDiwqPUMmT78cpsNv3x1rX1Vm6BTGLLkPw8UZv70=; b=WG3l1AVnqHnQ/Ug8Czwt9M29bmmxIerGgWo3P+OMFNDFJhS/HDUN01wH NdSMp+qdMRM/ZtxWC6Yos3W+iS8ziP4/JCYlP280mpDVYopqB0j0jIlnR 8hFDtkDTakP4N+mBehbKLwGZcOOthZt/RXY6d81QPbq9Sy1oQj7RQchqd 0=;
X-Files: image002.png : 152923
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CdBAAgt1Bc/5pdJa3EDAoC1E8
X-IronPort-AV: E=Sophos;i="5.56,538,1539648000";  d="png'150?scan'150,208,217,150";a="233266319"
Received: from rcdn-core-3.cisco.com ([173.37.93.154]) by alln-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Jan 2019 20:31:31 +0000
Received: from XCH-RTP-013.cisco.com (xch-rtp-013.cisco.com [64.101.220.153]) by rcdn-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id x0TKVVxd019737 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 29 Jan 2019 20:31:31 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-013.cisco.com (64.101.220.153) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 29 Jan 2019 15:31:30 -0500
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1395.000; Tue, 29 Jan 2019 15:31:30 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: William Lupton <wlupton@broadband-forum.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] YANG Push drafts comments
Thread-Index: AQHUt8eDyGU7aM7/H0mYOuYCbKZtXqXGnhOA
Date: Tue, 29 Jan 2019 20:31:30 +0000
Message-ID: <8518c87f5ef24ba9ad851a52f28047dd@XCH-RTP-013.cisco.com>
References: <CAEe_xxgchMoE9UyR2LUDbMAyFVZfOWCfVwEFN0HFtsWOYgK3eg@mail.gmail.com>
In-Reply-To: <CAEe_xxgchMoE9UyR2LUDbMAyFVZfOWCfVwEFN0HFtsWOYgK3eg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.229]
Content-Type: multipart/related; boundary="_004_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_"; type="multipart/alternative"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.153, xch-rtp-013.cisco.com
X-Outbound-Node: rcdn-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/D9xb6b-4OmZerYzO39uKGtxywWU>
Subject: Re: [netconf] YANG Push drafts comments
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Jan 2019 20:31:38 -0000

--_004_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_
Content-Type: multipart/alternative;
 boundary="_000_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_"

--_000_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgV2lsbGlhbSwNCg0KVGhhbmtzIGZvciB0aGUgaW50ZXJlc3QsIHRob3VnaHRzIGluLWxpbmUu
Li4NCg0KRnJvbTogbmV0Y29uZiA8bmV0Y29uZi1ib3VuY2VzQGlldGYub3JnPiBPbiBCZWhhbGYg
T2YgV2lsbGlhbSBMdXB0b24NClNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMjksIDIwMTkgNjo0MSBB
TQ0KVG86IG5ldGNvbmZAaWV0Zi5vcmcNClN1YmplY3Q6IFtuZXRjb25mXSBZQU5HIFB1c2ggZHJh
ZnRzIGNvbW1lbnRzDQoNCkFsbCwNCg0KSSdtIHNvcnJ5IHRoYXQgdGhlIGNvbW1lbnRzIGJlbG93
IGFyZSBzbyBsYXRlLiBJIGRpZCBhc2sgdGhlIGNoYWlycyB3aGF0IEkgc2hvdWxkIGRvIHdpdGgg
dGhlbSwgYW5kIHRoZXkgc2FpZCB0byBzZW5kIHRoZW0gdG8gdGhlIGxpc3QgZGVzcGl0ZSB0aGUg
bGF0ZW5lc3MgZnJvbSBhIHByb2Nlc3MgcGVyc3BlY3RpdmUuDQoNClRoZSBjb21tZW50cyBhcmUg
YmFzZWQgb24gdGhlIGZvdXIgV0cgY29uc2Vuc3VzIGRyYWZ0cyBhcyBvZiBsYXRlIE5vdmVtYmVy
LiBJIGhhdmVuJ3QgcmV2aXNpdGVkIHRoZW0gdG8gc2VlIHdoaWNoIG1heSBoYXZlIGJlZW4gYWRk
cmVzc2VkIGJ5IHN1YnNlcXVlbnQgZGlzY3Vzc2lvbi4NCg0KTmVhcmx5IGFsbCBvZiB0aGUgY29t
bWVudHMgcmVsYXRlIHRvIHRoZSBkcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3RpZmlj
YXRpb25zIGRyYWZ0LCBwbHVzIHRoZXJlIGFyZSBzb21lIGdlbmVyYWwgcmVtYXJrcywgc28gaXQg
ZGlkbid0IHNlZW0gd29ydGggc3BsaXR0aW5nIHRoZW0gaW50byBhIG1lc3NhZ2UgcGVyIGRyYWZ0
Lg0KDQpDaGVlcnMsDQpXaWxsaWFtDQoNCi0tLS0NCjEuICAgICAgR2VuZXJhbDoNCjEuICAgICAg
V2h5IGlzIHRoZSBzdWJzY3JpcHRpb24gaWQgb3B0aW9uYWw/IFdpdGhvdXQgaXQsIHdpbGwgdGhl
IHJlY2VpdmVyIGFsd2F5cyBiZSBhYmxlIHRvIHRlbGwgaG93IHRvIGhhbmRsZSBhbiBldmVudCBt
ZXNzYWdlPw0KSSBhc3N1bWUgeW91IGFyZSByZWZlcnJpbmcgdG8gdGhlIHB1c2hlZCBub3RpZmlj
YXRpb24gbWVzc2FnZXMgY2FycnlpbmcgZXZlbnQgcmVjb3Jkcy4gIFRoZSBSRkMtNTI3NyBvbmUg
d2F5IG5vdGlmaWNhdGlvbiBkb2VzbuKAmXQgc3VwcG9ydCBhIHN1YnNjcmlwdGlvbi1pZCBvYmpl
Y3QgaW4gaXRzIGN1cnJlbnQgZXZlbnQgc2NoZW1hLCBzbyB3ZSBjYW7igJl0IGVtYmVkIHRoaXMg
b2JqZWN0IGZvciBzdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuICBUaGlzIGlzIG9uZSByZWFzb24g
dGhhdCBkcmFmdC1pZXRmLW5ldGNvbmYtbm90aWZpY2F0aW9uLW1lc3NhZ2VzIHdhcyBhZG9wdGVk
LiAgRm9yIFlBTkcgcHVzaCwgd2UgZG8gaGF2ZSBhIHN1YnNjcmlwdGlvbi1pZCBpbiB0aGUgbm90
aWZpY2F0aW9uIGRlZmluaXRpb24sIHdoaWNoIGlzIHRoZW4gY2FycmllZCB3aXRoaW4gdGhlIFJG
Qy01Mjc3IG9uZS13YXkgbm90aWZpY2F0aW9uLg0KMi4gICAgICBZQU5HIFB1c2ggaXMgbm90IHJl
ZmVycmVkIHRvIGNvbnNpc3RlbnRseSBhY3Jvc3MgdGhlIGRvY3VtZW50IHNldCAocHJlc2VuY2Ug
b3IgYWJzZW5jZSBvZiBoeXBoZW4sICJ5YW5nIiBjYXBpdGFsaXphdGlvbiwgInB1c2giIGNhcGl0
YWxpemF0aW9uKS4gVGhlcmUgc2hvdWxkIGJlIGEgc2luZ2xlLCBjb25zaXN0ZW50bHktdXNlZCB0
ZXJtLg0KSSB0aGluayB0aGVzZSB3YXMgY2F1Z2h0L2NvdmVyZWQgd2l0aCBvdGhlciByZXZpZXdz
Lg0KDQoyLiAgICAgIGRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnM6
DQoxLiAgICAgIEkgd29uZGVyIHdoeSBpdCB3YXMgZGVjaWRlZCB0aGF0IGR5bmFtaWMgc3Vic2Ny
aXB0aW9ucyB3b3VsZG4ndCBhbGxvdyB0aGUgcmVjZWl2ZXIgdG8gYmUgZGlmZmVyZW50IGZyb20g
dGhlIHN1YnNjcmliZXIuIEl0IHNlZW1zIGxpa2UgdHdvIGRpZmZlcmVudCBjb25jZXB0cyBhcmUg
YmVpbmcgbWl4ZWQ6IGR5bmFtaWMvY29uZmlndXJlZCBzdWJzY3JpcHRpb24gYW5kIGVtYmVkZGVk
L2V4dGVybmFsIHJlY2VpdmVyLg0KTW9zdGx5IHdlIHdlcmUgYXR0ZW1wdGluZyB0byBtYWtlIGF0
dGVtcHRpbmcgYSBEb1MgYXR0YWNrIHdpdGggdGhpcyBpbmZyYXN0cnVjdHVyZSBoYXJkZXIuICBJ
LmUuLCBieSBmb3JjaW5nIHRoZSBkeW5hbWljIHN1YnNjcmlwdGlvbiB0byBhbHNvIGJlIHRoZSBy
ZWNlaXZlciwgaXQgaXMgaGFyZGVyIHRvIGF0dGFjayBhIHRoaXJkIHBhcnR5IHJlY2VpdmVyIHdp
dGggYW4gb3ZlcndoZWxtaW5nIGFtb3VudCBvZiBzdWJzY3JpYmVkIHRyYWZmaWMuICAgVG8gYWNj
b21wbGlzaCBhIERvUyB3aXRoIGNvbmZpZ3VyZWQgc3Vic2NyaXB0aW9ucywgeW91IG5lZWQgdG8g
aGF2ZSBjb25maWd1cmF0aW9uIGNyZWRlbnRpYWxzLiAgQmV5b25kIHRoaXMsIHRoZXJlIGFyZSBv
dGhlciBkaWZmaWN1bHRpZXMgZGlzdHJpYnV0ZWQgc2Vzc2lvbiBtYW5hZ2VtZW50IGRpZG7igJl0
IHdhbnQgdG8gdGFrZSBvbi4gICBJZiBzb21lb25lIHdhbnRzIHRvIGdvIGRvd24gdGhpcyBwYXRo
LCB3ZSBhcmUgaGFwcHkgdG8gYWR2aXNlLg0KDQoyLiAgICAgIEV2ZW50IG9jY3VycmVuY2UgdGlt
ZTogVGhpcyBpc24ndCBxdWl0ZSBjbGVhci4gV2hhdCBpZiB0aGVyZSB3YXMgYWxyZWFkeSBhIHRp
bWVzdGFtcCAoZnJvbSBhIGxvd2VyLWxldmVsIHN5c3RlbSkgd2hlbiB0aGUgZXZlbnQgd2FzIGlk
ZW50aWZpZWQ/IFNob3VsZCB0aGF0IGJlIHVzZWQ/DQpMb3dlci1sZXZlbCBzeXN0ZW0gdGltZXMg
Y2FuIGJlIHVzZWQuICBUaGVyZSBpcyBub3RoaW5nIHdoaWNoIHNheXMgd2hlcmUgb24gdGhlIHB1
Ymxpc2hlciB0aGlzIHRpbWUgbWlnaHQgY29tZSBmcm9tLCBqdXN0IHRoYXQgdGhlIHRpbWUgc2hv
dWxkIGJlIGFzIGNsb3NlIHRvIHRoZSBhY3R1YWwgdGltZSBhcyBwb3NzaWJsZS4NCg0KMy4gICAg
ICBFdmVudCByZWNvcmQ6DQoxLiAgICAgIFNvIGRvZXMgdGhlICJldmVudCByZWNvcmQiIHRlcm0g
YXBwbHkgdG8gYWxsIHRoZSBkcmFmdHM/IElmIHNvLCBkb2VzICJldmVudCIgYXBwbHkgdG8gYWxs
IHRoZSBkcmFmdHM/IChUaGlzIG5vdGUgaXMgaW4gdGhlIGNvbnRleHQgb2YgYSBsYXRlciBub3Rl
IGFib3V0IHRoZSBmYWN0IHRoYXQgImV2ZW50IHN0cmVhbSIgYXBwZWFycyB0byBiZSBzcGVjaWZp
YyB0byB0aGlzIGRyYWZ0LikNClN1YnNjcmliaW5nIHRvIGFuIGV2ZW50IHN0cmVhbSBpcyBkaWZm
ZXJlbnQgdGhhbiBhIHN1YnNjcmliaW5nIHRvIGEgZGF0YXN0b3JlLiAgRm9yIGV2ZW50IHN0cmVh
bXMsIHNvbWUgcHVibGlzaGVyIHByb2Nlc3MgaGFzIGFscmVhZHkgcGxhY2VkIGFuIGV2ZW50IHJl
Y29yZCBvbiBhIHRpbWUgb3JkZXJlZCBzZXJpZXMsIHdoaWNoIGlzIHRoZW4gZmlsdGVyZWQgcGVy
LXN1YnNjcmliZXIuICBGb3IgZGF0YXN0b3JlIHN1YnNjcmlwdGlvbnMgdGhlcmUgaXMgbm8gc3Vj
aCB0aW1lIG9yZGVyZWQgc2VyaWVzLiAgSW5zdGVhZCB5b3UgbmVlZCBhIHRyaWdnZXIgKHBlcmlv
ZGljIG9yIG9uLWNoYW5nZSwgdGhlIG5hbWUgb2YgdGhlIGRhdGFzdG9yZSwgdGhlIG5hbWUgb2Yg
dGhlIG9iamVjdHMsIGV0Yy4pIHRvIGRlZmluZSB0aGUgY3VzdG9tIGV4dHJhY3Qgd2hpY2ggYmVj
b21lcyB0aGUgdGltZSBvcmRlcmVkIHNlcmllcy4gICBCZWxvdyBpcyBhIGNoYXJ0IGZyb20gYSBw
cmVzZW50YXRpb24gb24gdGhpcy4gIEkgdGhpbmsgaXQgd2FzIGluIHRoZSBtYXRlcmlhbCBmcm9t
IElFVEYgMTAwLg0KW2NpZDppbWFnZTAwMi5wbmdAMDFENEI3RTcuQjAwMTk4OTBdDQpTbyB5b3Ug
Y2FuIHN1YnNjcmliZSB0byBlaXRoZXIgYW4gZXZlbnQgc3RyZWFtIG9yIGEgZGF0YXN0b3JlLg0K
Mi4gICAgICBZQU5HIG5vdGlmaWNhdGlvbnMgYXJlIGV4cGxpY2l0bHkgZGVmaW5lZCBpbiBZQU5H
IG1vZGVscyAoZS5nLiB0aGUgaWV0Zi1oYXJkd2FyZSBZQU5HIG1vZHVsZSBkZWZpbmVzIGEgaGFy
ZHdhcmUtc3RhdGUtY2hhbmdlIG5vdGlmaWNhdGlvbikuIEkgdGhvdWdodCB0aGF0IGEgbWFqb3Ig
cGFydCBvZiBZQU5HIFB1c2ggaXMgdG8gZWZmZWN0aXZlbHkgYWxsb3cgbm90aWZpY2F0aW9ucyB0
byBiZSBkZWZpbmVkIGR5bmFtaWNhbGx5Lg0KMS4gICAgICBMYXRlcjogSSB0aGluayBwZXJoYXBz
IHRoZSBwb2ludCBpcyB0aGF0IGV2ZW50IHN0cmVhbXMgYXJlIGluZGVlZCByZXN0cmljdGVkIHRv
IFlBTkcgbm90aWZpY2F0aW9ucywgYnV0IHRoYXQgb3RoZXIgZHJhZnRzIChlLmcuIFlBTkcgUHVz
aCkgZGVmaW5lIG1lY2hhbmlzbXMgYmV5b25kIGV2ZW50IHN0cmVhbXMuIFNlY3Rpb24gMi40IChk
eW5hbWljIHN1YnNjcmlwdGlvbnMpIHNheXMgIlRoZXNlIFJQQ3MgaGF2ZSBiZWVuIGRlc2lnbmVk
IGV4dGVuc2libHkgc28gdGhhdCB0aGV5IG1heSBiZSBhdWdtZW50ZWQgZm9yIHN1YnNjcmlwdGlv
biB0YXJnZXRzIGJleW9uZCBldmVudCBzdHJlYW1zIi4NCjIuICAgICAgRXZlbiBsYXRlcjogQWgh
IFlBTkcgUHVzaCBkZWZpbmVzIGdlbmVyaWMgInB1c2gtdXBkYXRlIiBhbmQgInB1c2gtY2hhbmdl
LXVwZGF0ZSIgbm90aWZpY2F0aW9ucy4gU28gaXQncyBhbGwgT0suDQo0LiAgICAgIEV2ZW50IHN0
cmVhbToNCjEuICAgICAgSGF2aW5nIG5vdyByZWFkIG1vc3Qgb2YgdGhlIFlBTkcgUHVzaCBkcmFm
dCwgSSByZWFsaXplIHRoYXQgIkV2ZW50IHN0cmVhbXMiIGFyZSBhIGxlZ2FjeSB0aGluZyBhbmQg
YXJlIG5vdCB1c2VkIGJ5IFlBTkcgUHVzaC4gVGhpcyBjb3VsZCBiZSBtYWRlIGNsZWFyLiBPdGhl
cndpc2UgaXQgbG9va3MgbGlrZSB0aGVzZSBhcmUgYSBiYXNlIGNvbmNlcHQgdGhhdCB3aWxsIGJl
IGJ1aWx0IG9uLg0KSSB0aGluayBldmVudCBzdHJlYW1zIGFyZSB1c2VmdWwuICBJIGRvbuKAmXQg
Y29uc2lkZXIgdGhlbSBsZWdhY3kuDQoyLiAgICAgIFBlcmhhcHMgdGhlIHRydWx5IGNsZWFuZXN0
IHNvbHV0aW9uIHdvdWxkIGJlIHRvIG1vdmUgdGhlIGxlZ2FjeSBhc3BlY3RzIHRvIGEgc2VwYXJh
dGUgZG9jdW1lbnQsIG9yIGNsZWFybHkgaW5kaWNhdGUgdGhleSdyZSBsZWdhY3ksIG9yIHVzZSBs
ZXNzICJjb3JlIiBuYW1lcywgb3IgbW92ZSB0aGlzIG1hdGVyaWFsIHRvIGFuIEFubmV4IG9yIEFw
cGVuZGl4Lg0KVGhpcyB3YXMgd2h5IHdlIGhhdmUgYSBmdWxseSBzZXBhcmF0ZSBkb2N1bWVudCBm
b3Igc3Vic2NyaWJlZC1ub3RpZmljYXRpb25zLiAgVGhlIFdHIHJlcXVlc3RlZCB0aGF0IHRoZSBh
dXRob3JzIHJldHJvZml0IHRoZSBpbmZyYXN0cnVjdHVyZSBkb2N1bWVudHMgaW4gdGhpcyB3YXkg
dG8gdXBsZXZlbCB3aGF0IGNvdWxkIGJlIGRvbmUgd2l0aCBldmVudCBzdHJlYW1zLg0KMy4gICAg
ICBTbyByZWZlcnJpbmcgdG8gdGhlbSBhcyBzZXRzIG9mIEV2ZW50cyAocmF0aGVyIHRoYW4gc2V0
cyBvZiBFdmVudCBzdHJlYW1zKSBzZWVtcyBpbmFjY3VyYXRlLg0KSSBkb27igJl0IHNlZSBhbnkg
dGV4dCBvbiBlaXRoZXIgc2V0cyBvZiBldmVudHMsIG9yIHNldHMgb2YgZXZlbnQgc3RyZWFtcy4N
CjUuICAgICAgTm90aWZpY2F0aW9uIG1lc3NhZ2U6DQoxLiAgICAgIEkgZG9uJ3QgZmluZCAiVGhl
IHRpbWUgdGhlIGV2ZW50IHdhcyBnZW5lcmF0ZWQgYnkgdGhlIGV2ZW50IHNvdXJjZSIgcXVpdGUg
Y2xlYXIuIElzIGl0IHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBjaGFuZ2Ugb2NjdXJyZWQgb3Igd2Fz
IGRldGVjdGVkIChldmVudCBvY2N1cnJlbmNlIHRpbWUpLCBvciB0aGUgdGltZSBhdCB3aGljaCB0
aGUgbWVzc2FnZSB3YXMgY3JlYXRlZD8gUHJvYmFibHkgdGhlIGZvcm1lcj8NCkkgY2Fu4oCZdCBm
aW5kIHRoZSBleGFjdCB0ZXh0IHF1b3RlOiAgIlRoZSB0aW1lIHRoZSBldmVudCB3YXMgZ2VuZXJh
dGVkIGJ5IHRoZSBldmVudCBzb3VyY2UiIC4gICBXaGVyZSBpcyB0aGlzPw0KNi4gICAgICBTdWJz
Y3JpcHRpb246DQoxLiAgICAgIFRoZSBzZWN0aW9uIDIuMiBkZXNjcmlwdGlvbiBpcyB2ZXJ5IHVu
Y2xlYXIuIEl0IGFwcGVhcnMgdGhhdCBmaWx0ZXJzIGFyZSBvbiBzdWJzY3JpcHRpb25zLCByZWZl
ciB0byByZWNvcmRzLCBhbmQgY2F1c2UgImV2ZW50IG1lc3NhZ2VzIiB0byBiZSBleGNsdWRlZCBm
cm9tIGRlbGl2ZXJ5LiBCdXQgImV2ZW50IG1lc3NhZ2UiIGlzbid0IGEgZGVmaW5lZCB0ZXJtLg0K
SSB3aWxsIHJlZmluZSDigJxldmVudCBtZXNzYWdl4oCdIGludG8g4oCcZXZlbnQgcmVjb3Jk4oCd
IGluIHRoZSBuZXh0IGRvY3VtZW50IHZlcnNpb24gcmVsZWFzZS4NCjMuICAgICAgZHJhZnQtaWV0
Zi1uZXRjb25mLXlhbmctcHVzaDoNCjEuICAgICAgWUFORyBQdXNoIGRlZmluZXMgYSBuZXcgImRh
dGFzdG9yZSIgc3Vic2NyaXB0aW9uIHRhcmdldCB0aGF0J3MgaW5kZXBlbmRlbnQgb2YgdGhlIGV4
aXN0aW5nICJzdHJlYW0iIHN1YnNjcmlwdGlvbiB0YXJnZXQuIChBc3N1bWluZyB0aGF0IHRoaXMg
aXMgY29ycmVjdCwgSSdkIGhhdmUgbGlrZWQgc29tZSBleHBsYW5hdGlvbiBvZiBfd2h5XyBZQU5H
IFB1c2ggaXNuJ3QgYWJsZSB0byBleHRlbmQgdGhlIGJhc2UgbWVjaGFuaXNtLikNCkl0IHdhcyBy
ZWNvbW1lbmRlZCBzZXZlcmFsIHllYXJzIGFnbyBieSBtZW1iZXJzIG9mIHRoZSBXRyB0aGF0IHN1
YnNjcmliaW5nIHRvIGRhdGFzdG9yZXMgYW5kIHN0cmVhbXMgd2FzIHN1ZmZpY2llbnRseSBkaWZm
ZXJlbnQsIGFuZCB0aGF0IGRpZmZlcmVudCB0YXJnZXRzIHdlcmUgbmVlZGVkLiAgU29tZSBvZiB0
aGUgcmVhc29ucyBhcmUgbGlzdGVkIGFib3ZlLiAgQmV5b25kIHdoYXQgaXMgbGlzdGVkIGFib3Zl
LCBhbm90aGVyIHJlYXNvbiBpcyB0aGF0IGZpbHRlcnMgb24gYSBzdHJlYW0gdGFyZ2V0IGV4Y2x1
ZGUgbWVtYmVyIG9mIGFuIGFscmVhZHkgZ2VuZXJhdGVkIHNldCBvZiBldmVudCByZWNvcmRzLiAg
VGhpcyBpcyBxdWl0ZSBkaWZmZXJlbnQgZnJvbSBhIGRhdGFzdG9yZSB0YXJnZXQsIHdoZXJlIHRo
ZSBmaWx0ZXJzIGNob29zZSB3aGljaCBub2RlcyBhcmUgb2YgaW50ZXJlc3QgKGkuZS4sIGluY2x1
ZGUpLg0KDQo0LiAgICAgIEVkaXRvcmlhbCAodGhlcmUgbWlnaHQgYmUgc29tZSBkdXBsaWNhdGlv
biB3aXRoIGVhcmxpZXIgY29tbWVudHMpOg0KMS4gICAgICBTb21lIFlBTkcgZGVzY3JpcHRpb25z
IGhhdmUgaW5jb3JyZWN0IGluZGVudGF0aW9uIG9uIHRoZSBzZWNvbmQgYW5kIHN1YnNlcXVlbnQg
bGluZXMgKHN1Y2ggbGluZXMgc2hvdWxkIGJlZ2luIHVuZGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIg
b2YgdGhlIGZpcnN0IGxpbmUsIGkuLmUuIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIHJpZ2h0IG9mIHRo
ZSBvcGVuaW5nIGRvdWJsZSBxdW90ZSkuIE5vIGRvdWJ0IHRoZSBZQU5HIERvY3RvcnMgd2lsbCBj
YXRjaCBzdWNoIHRoaW5ncyENCjIuICAgICAgZHJhZnQtaWV0Zi1uZXRjb25mLXN1YnNjcmliZWQt
bm90aWZpY2F0aW9ucy0xOA0KMS4gICAgICBFdmVudCBzdHJlYW0gZGVmaW5pdGlvbjogIkV2ZW50
IHN0cmVhbTogQSBjb250aW51b3VzLCBjaHJvbm9sb2dpY2FsbHkgb3JkZXJlZCBzZXQgb2YgZXZl
bnRzIiAuLi4gYnV0IHNob3VsZCB0aGlzIGJlICIuLi5vZiBldmVudCByZWNvcmRzIg0KSXQgd2ls
bCBjZXJ0YWlubHkgYmUgaW1wbGVtZW50ZWQgdGhhdCB3YXkuICBFYXJseSBpbiB0aGUgcHJvY2Vz
cywgc29tZSBwZW9wbGUgc2FpZCB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgYSBwb2ludGVy
IHRvIHRoZSBldmVudCByZWNvcmRzIHdpdGhpbiB0aGUgZXZlbnQgc3RyZWFtLiAgU28gd2UgbGVm
dCBpdCB3aXRoIHRoZSBtb3JlIGFic3RyYWN0ZWQgdGVybSDigJhldmVudHPigJkuDQoyLiAgICAg
IHMvaW50YW50aWF0aW9uL2luc3RhbnRpYXRpb24vICh0d28gb2NjdXJyZW5jZXMpDQpGaXhlZC4N
CjMuICAgICAgVGhlICJzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMiIHNl
Y3Rpb24gbmFtZSBtYXkgaGF2ZSBiZWVuIHN1YmplY3QgdG8gYSBzL1N1YnNjcmlwdGlvbi9zdWJz
Y3JpcHRpb24vIGVkaXQ/IFNob3VsZCBjYXBpdGFsaXNlICJzdWJzY3JpcHRpb24iIGJvdGggaGVy
ZSBhbmQgd2hlcmUgaXQncyB1c2VkIGF0IHRoZSBzdGFydCBvZiBzZW50ZW5jZXMgKHRoZXJlJ3Mg
YXQgbGVhc3Qgb25lIGNhc2Ugb2YgdGhpcykNCkZpeGVkDQozLiAgICAgIGRyYWZ0LWlldGYtbmV0
Y29uZi15YW5nLXB1c2gtMjANCjEuICAgICAgVGhlcmUncyBhIHJlZmVyZW5jZSB0byAiQ3VzdG9t
IFN1YnNjcmlwdGlvbiB0byBFdmVudCBTdHJlYW1zIi4gSXMgdGhpcyB0aGUgb2xkIHRpdGxlIG9m
ICJTdWJzY3JpcHRpb24gdG8gWUFORyBFdmVudCBOb3RpZmljYXRpb25zIj8gSWYgc28sIGl0IG5l
ZWRzIHRvIGJlIHVwZGF0ZWQNCjIuICAgICAgU3B1cmlvdXMgIjYgcmVjb3JkIiBpbiB0aGUgWUFO
RyAoc2hvdWxkIGJlICJyZWNvcmQiKQ0KMy4gICAgICBJbiB0aGUgZGF0YSBtb2RlbCBpbnRyb2R1
Y3Rvcnkgc2VjdGlvbiwgdGhlICJzbjoiIHByZWZpeCBpc24ndCBleHBsYWluZWQgKEkga25vdyBp
dCdzIHNvcnQgb2Ygb2J2aW91cywgYnV0IHRoZSAieXA6IiBwcmVmaXggKGFsc28gb2J2aW91cykg
X2lzXyBleHBsYWluZWQpDQo8RXJpYz4gSSB3aWxsIG5vdGUgdGhlc2UgdHdvIEFsZXgsIHdobyBp
cyBob3BpbmcgdG8gcG9zdCBhbiB1cGRhdGUgdG9uaWdodC4NCg0KVGhhbmtzIQ0KRXJpYw0K

--_000_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYg
MyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIg
MTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1h
bCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJbWFyZ2luLWJv
dHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJp
b3JpdHk6OTk7DQoJY29sb3I6IzA1NjNDMTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30N
CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3Jp
dHk6OTk7DQoJY29sb3I6Izk1NEY3MjsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAu
bXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5h
bWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDow
aW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZv
bnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0Kc3Bh
bi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6
IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5
bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJD
YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQN
Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3Np
emU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYu
V29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMg
Ki8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjExNjYzNjU0OTA7DQoJbXNvLWxpc3QtdGVtcGxh
dGUtaWRzOi0yNjkwNzYyNjA7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC10YWItc3Rv
cDouNWluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
LjI1aW47fQ0KQGxpc3QgbDA6bGV2ZWwyDQoJe21zby1sZXZlbC10YWItc3RvcDoxLjBpbjsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBs
aXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtdGFiLXN0b3A6MS41aW47DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMDpsZXZl
bDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjIuMGluOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1s
ZXZlbC10YWItc3RvcDoyLjVpbjsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwwOmxldmVsNg0KCXttc28tbGV2ZWwtdGFiLXN0
b3A6My4waW47DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50
Oi0uMjVpbjt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOjMuNWluOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0K
QGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC10YWItc3RvcDo0LjBpbjsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwwOmxl
dmVsOQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6NC41aW47DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBp
bjt9DQp1bA0KCXttYXJnaW4tYm90dG9tOjBpbjt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1z
byA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIg
Lz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVs
YXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8
L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJF
Ti1VUyIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRpdiBjbGFzcz0iV29yZFNl
Y3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpIFdpbGxpYW0sPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlRoYW5rcyBmb3IgdGhlIGludGVyZXN0LCB0aG91Z2h0cyBpbi1saW5lLi4uPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFk
ZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IG5ldGNvbmYgJmx0O25ldGNvbmYt
Ym91bmNlc0BpZXRmLm9yZyZndDsgPGI+T24gQmVoYWxmIE9mDQo8L2I+V2lsbGlhbSBMdXB0b248
YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgSmFudWFyeSAyOSwgMjAxOSA2OjQxIEFNPGJyPg0K
PGI+VG86PC9iPiBuZXRjb25mQGlldGYub3JnPGJyPg0KPGI+U3ViamVjdDo8L2I+IFtuZXRjb25m
XSBZQU5HIFB1c2ggZHJhZnRzIGNvbW1lbnRzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFsbCw8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkknbSBzb3JyeSB0aGF0IHRoZSBjb21tZW50cyBiZWxv
dyBhcmUgc28gbGF0ZS4gSSBkaWQgYXNrIHRoZSBjaGFpcnMgd2hhdCBJIHNob3VsZCBkbyB3aXRo
IHRoZW0sIGFuZCB0aGV5IHNhaWQgdG8gc2VuZCB0aGVtIHRvIHRoZSBsaXN0IGRlc3BpdGUgdGhl
IGxhdGVuZXNzIGZyb20gYSBwcm9jZXNzIHBlcnNwZWN0aXZlLjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJiYWNrZ3JvdW5k
OndoaXRlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImJh
Y2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5UaGUgY29tbWVu
dHMgYXJlIGJhc2VkIG9uIHRoZSBmb3VyIFdHIGNvbnNlbnN1cyBkcmFmdHMgYXMgb2YgbGF0ZSBO
b3ZlbWJlci4gSSBoYXZlbid0IHJldmlzaXRlZCB0aGVtIHRvIHNlZSB3aGljaCBtYXkgaGF2ZSBi
ZWVuIGFkZHJlc3NlZCBieSBzdWJzZXF1ZW50IGRpc2N1c3Npb24uPG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImJhY2tncm91
bmQ6d2hpdGUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
YmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPk5lYXJseSBh
bGwgb2YgdGhlIGNvbW1lbnRzIHJlbGF0ZSB0byB0aGUmbmJzcDtkcmFmdC1pZXRmLW5ldGNvbmYt
c3Vic2NyaWJlZC1ub3RpZmljYXRpb25zIGRyYWZ0LCBwbHVzIHRoZXJlIGFyZSBzb21lIGdlbmVy
YWwgcmVtYXJrcywgc28gaXQgZGlkbid0IHNlZW0gd29ydGggc3BsaXR0aW5nIHRoZW0gaW50byBh
IG1lc3NhZ2UNCiBwZXIgZHJhZnQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImJhY2tncm91bmQ6d2hpdGUiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZSI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkNoZWVycyw8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iYmFja2dyb3Vu
ZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPldpbGxpYW08bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
YmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
LS0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0bzttYXJnaW4tbGVmdDo0Ny4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDps
MCBsZXZlbDEgbGZvMTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3Jl
Ij4xLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtl
bmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkdlbmVyYWw6PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjgzLjI1cHQ7dGV4
dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMiBsZm8xO2JhY2tncm91bmQ6d2hpdGUi
Pg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxz
cGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjEuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsN
Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+V2h5IGlzIHRoZSBzdWJzY3JpcHRpb24gaWQgb3B0aW9uYWw/IFdpdGhvdXQgaXQsIHdp
bGwgdGhlIHJlY2VpdmVyIGFsd2F5cyBiZSBhYmxlIHRvIHRlbGwgaG93IHRvIGhhbmRsZSBhbiBl
dmVudCBtZXNzYWdlPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
bztiYWNrZ3JvdW5kOndoaXRlIj4NCkkgYXNzdW1lIHlvdSBhcmUgcmVmZXJyaW5nIHRvIHRoZSBw
dXNoZWQgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIGNhcnJ5aW5nIGV2ZW50IHJlY29yZHMuJm5ic3A7
IFRoZSBSRkMtNTI3NyBvbmUgd2F5IG5vdGlmaWNhdGlvbiBkb2VzbuKAmXQgc3VwcG9ydCBhIHN1
YnNjcmlwdGlvbi1pZCBvYmplY3QgaW4gaXRzIGN1cnJlbnQgZXZlbnQgc2NoZW1hLCBzbyB3ZSBj
YW7igJl0IGVtYmVkIHRoaXMgb2JqZWN0IGZvciBzdWJzY3JpYmVkLW5vdGlmaWNhdGlvbnMuJm5i
c3A7IFRoaXMNCiBpcyBvbmUgcmVhc29uIHRoYXQgZHJhZnQtaWV0Zi1uZXRjb25mLW5vdGlmaWNh
dGlvbi1tZXNzYWdlcyB3YXMgYWRvcHRlZC4mbmJzcDsgRm9yIFlBTkcgcHVzaCwgd2UgZG8gaGF2
ZSBhIHN1YnNjcmlwdGlvbi1pZCBpbiB0aGUgbm90aWZpY2F0aW9uIGRlZmluaXRpb24sIHdoaWNo
IGlzIHRoZW4gY2FycmllZCB3aXRoaW4gdGhlIFJGQy01Mjc3IG9uZS13YXkgbm90aWZpY2F0aW9u
Lg0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6ODMu
MjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzE7YmFja2dyb3Vu
ZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+Mi48c3BhbiBzdHlsZT0iZm9udDo3
LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0Ij5ZQU5HIFB1c2ggaXMgbm90IHJlZmVycmVkIHRvIGNvbnNpc3RlbnRseSBh
Y3Jvc3MgdGhlIGRvY3VtZW50IHNldCAocHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBoeXBoZW4sICZx
dW90O3lhbmcmcXVvdDsgY2FwaXRhbGl6YXRpb24sICZxdW90O3B1c2gmcXVvdDsgY2FwaXRhbGl6
YXRpb24pLiBUaGVyZSBzaG91bGQgYmUgYSBzaW5nbGUsIGNvbnNpc3RlbnRseS11c2VkIHRlcm0u
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6
d2hpdGUiPg0KSSB0aGluayB0aGVzZSB3YXMgY2F1Z2h0L2NvdmVyZWQgd2l0aCBvdGhlciByZXZp
ZXdzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hp
dGUiPg0KPG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2lu
LWxlZnQ6NDcuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzE7
YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+Mi48c3BhbiBzdHls
ZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij5kcmFmdC1pZXRmLW5ldGNvbmYtc3Vic2NyaWJlZC1ub3Rp
ZmljYXRpb25zOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztt
YXJnaW4tbGVmdDo4My4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDIg
bGZvMTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4xLjxzcGFu
IHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkkgd29uZGVyIHdoeSBpdCB3YXMgZGVjaWRlZCB0
aGF0IGR5bmFtaWMgc3Vic2NyaXB0aW9ucyB3b3VsZG4ndCBhbGxvdyB0aGUgcmVjZWl2ZXIgdG8g
YmUgZGlmZmVyZW50IGZyb20gdGhlIHN1YnNjcmliZXIuIEl0IHNlZW1zIGxpa2UgdHdvIGRpZmZl
cmVudCBjb25jZXB0cyBhcmUgYmVpbmcgbWl4ZWQ6IGR5bmFtaWMvY29uZmlndXJlZCBzdWJzY3Jp
cHRpb24NCiBhbmQgZW1iZWRkZWQvZXh0ZXJuYWwgcmVjZWl2ZXIuPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KTW9zdGx5IHdl
IHdlcmUgYXR0ZW1wdGluZyB0byBtYWtlIGF0dGVtcHRpbmcgYSBEb1MgYXR0YWNrIHdpdGggdGhp
cyBpbmZyYXN0cnVjdHVyZSBoYXJkZXIuJm5ic3A7IEkuZS4sIGJ5IGZvcmNpbmcgdGhlIGR5bmFt
aWMgc3Vic2NyaXB0aW9uIHRvIGFsc28gYmUgdGhlIHJlY2VpdmVyLCBpdCBpcyBoYXJkZXIgdG8g
YXR0YWNrIGEgdGhpcmQgcGFydHkgcmVjZWl2ZXIgd2l0aCBhbiBvdmVyd2hlbG1pbmcgYW1vdW50
IG9mIHN1YnNjcmliZWQgdHJhZmZpYy4mbmJzcDsmbmJzcDsNCiBUbyBhY2NvbXBsaXNoIGEgRG9T
IHdpdGggY29uZmlndXJlZCBzdWJzY3JpcHRpb25zLCB5b3UgbmVlZCB0byBoYXZlIGNvbmZpZ3Vy
YXRpb24gY3JlZGVudGlhbHMuJm5ic3A7IEJleW9uZCB0aGlzLCB0aGVyZSBhcmUgb3RoZXIgZGlm
ZmljdWx0aWVzIGRpc3RyaWJ1dGVkIHNlc3Npb24gbWFuYWdlbWVudCBkaWRu4oCZdCB3YW50IHRv
IHRha2Ugb24uJm5ic3A7Jm5ic3A7IElmIHNvbWVvbmUgd2FudHMgdG8gZ28gZG93biB0aGlzIHBh
dGgsIHdlIGFyZSBoYXBweSB0byBhZHZpc2UuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZSI+DQo8bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDo4My4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjtt
c28tbGlzdDpsMCBsZXZlbDIgbGZvMTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0
TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxp
c3Q6SWdub3JlIj4yLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwv
c3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkV2ZW50IG9jY3Vy
cmVuY2UgdGltZTogVGhpcyBpc24ndCBxdWl0ZSBjbGVhci4gV2hhdCBpZiB0aGVyZSB3YXMgYWxy
ZWFkeSBhIHRpbWVzdGFtcCAoZnJvbSBhIGxvd2VyLWxldmVsIHN5c3RlbSkgd2hlbiB0aGUgZXZl
bnQgd2FzIGlkZW50aWZpZWQ/IFNob3VsZCB0aGF0IGJlIHVzZWQ/PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KTG93ZXItbGV2
ZWwgc3lzdGVtIHRpbWVzIGNhbiBiZSB1c2VkLiZuYnNwOyBUaGVyZSBpcyBub3RoaW5nIHdoaWNo
IHNheXMgd2hlcmUgb24gdGhlIHB1Ymxpc2hlciB0aGlzIHRpbWUgbWlnaHQgY29tZSBmcm9tLCBq
dXN0IHRoYXQgdGhlIHRpbWUgc2hvdWxkIGJlIGFzIGNsb3NlIHRvIHRoZSBhY3R1YWwgdGltZSBh
cyBwb3NzaWJsZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3Jv
dW5kOndoaXRlIj4NCjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
O21hcmdpbi1sZWZ0OjgzLjI1cHQ7dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVs
MiBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjMuPHNw
YW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+RXZlbnQgcmVjb3JkOjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDoxMTkuMjVwdDt0ZXh0
LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+
DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNw
YW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+MS48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVv
dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0K
PC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0Ij5TbyBkb2VzIHRoZSAmcXVvdDtldmVudCByZWNvcmQmcXVvdDsgdGVybSBhcHBseSB0byBh
bGwgdGhlIGRyYWZ0cz8gSWYgc28sIGRvZXMgJnF1b3Q7ZXZlbnQmcXVvdDsgYXBwbHkgdG8gYWxs
IHRoZSBkcmFmdHM/IChUaGlzIG5vdGUgaXMgaW4gdGhlIGNvbnRleHQgb2YgYSBsYXRlciBub3Rl
IGFib3V0IHRoZSBmYWN0IHRoYXQgJnF1b3Q7ZXZlbnQgc3RyZWFtJnF1b3Q7IGFwcGVhcnMgdG8g
YmUNCiBzcGVjaWZpYyB0byB0aGlzIGRyYWZ0Lik8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZSI+DQpTdWJzY3JpYmluZyB0byBhbiBl
dmVudCBzdHJlYW0gaXMgZGlmZmVyZW50IHRoYW4gYSBzdWJzY3JpYmluZyB0byBhIGRhdGFzdG9y
ZS4mbmJzcDsgRm9yIGV2ZW50IHN0cmVhbXMsIHNvbWUgcHVibGlzaGVyIHByb2Nlc3MgaGFzIGFs
cmVhZHkgcGxhY2VkIGFuIGV2ZW50IHJlY29yZCBvbiBhIHRpbWUgb3JkZXJlZCBzZXJpZXMsIHdo
aWNoIGlzIHRoZW4gZmlsdGVyZWQgcGVyLXN1YnNjcmliZXIuJm5ic3A7IEZvciBkYXRhc3RvcmUg
c3Vic2NyaXB0aW9ucyB0aGVyZQ0KIGlzIG5vIHN1Y2ggdGltZSBvcmRlcmVkIHNlcmllcy4mbmJz
cDsgSW5zdGVhZCB5b3UgbmVlZCBhIHRyaWdnZXIgKHBlcmlvZGljIG9yIG9uLWNoYW5nZSwgdGhl
IG5hbWUgb2YgdGhlIGRhdGFzdG9yZSwgdGhlIG5hbWUgb2YgdGhlIG9iamVjdHMsIGV0Yy4pIHRv
IGRlZmluZSB0aGUgY3VzdG9tIGV4dHJhY3Qgd2hpY2ggYmVjb21lcyB0aGUgdGltZSBvcmRlcmVk
IHNlcmllcy4mbmJzcDsmbmJzcDsgQmVsb3cgaXMgYSBjaGFydCBmcm9tIGEgcHJlc2VudGF0aW9u
IG9uIHRoaXMuJm5ic3A7DQogSSB0aGluayBpdCB3YXMgaW4gdGhlIG1hdGVyaWFsIGZyb20gSUVU
RiAxMDAuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3
aGl0ZSI+DQo8aW1nIHdpZHRoPSI0NzgiIGhlaWdodD0iMjM0IiBzdHlsZT0id2lkdGg6NC45NzM5
aW47aGVpZ2h0OjIuNDMyMmluIiBpZD0iUGljdHVyZV94MDAyMF8xIiBzcmM9ImNpZDppbWFnZTAw
Mi5wbmdAMDFENEI3RTcuQjAwMTk4OTAiPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KU28geW91IGNhbiBzdWJzY3JpYmUgdG8gZWl0aGVy
IGFuIGV2ZW50IHN0cmVhbSBvciBhIGRhdGFzdG9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDoxMTkuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNv
LWxpc3Q6bDAgbGV2ZWwzIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExp
c3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0
Oklnbm9yZSI+Mi48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4m
cXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3Nw
YW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5ZQU5HIG5vdGlmaWNh
dGlvbnMgYXJlIGV4cGxpY2l0bHkgZGVmaW5lZCBpbiBZQU5HIG1vZGVscyAoZS5nLiB0aGUgaWV0
Zi1oYXJkd2FyZSBZQU5HIG1vZHVsZSBkZWZpbmVzIGEgaGFyZHdhcmUtc3RhdGUtY2hhbmdlIG5v
dGlmaWNhdGlvbikuIEkgdGhvdWdodCB0aGF0IGEgbWFqb3IgcGFydCBvZiBZQU5HIFB1c2ggaXMg
dG8gZWZmZWN0aXZlbHkNCiBhbGxvdyBub3RpZmljYXRpb25zIHRvIGJlIGRlZmluZWQgZHluYW1p
Y2FsbHkuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdp
bi1sZWZ0OjE1NS4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDQgbGZv
MTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4xLjxzcGFuIHN0
eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkxhdGVyOiBJIHRoaW5rIHBlcmhhcHMgdGhlIHBvaW50
IGlzIHRoYXQgZXZlbnQgc3RyZWFtcyBhcmUgaW5kZWVkIHJlc3RyaWN0ZWQgdG8gWUFORyBub3Rp
ZmljYXRpb25zLCBidXQgdGhhdCBvdGhlciBkcmFmdHMgKGUuZy4gWUFORyBQdXNoKSBkZWZpbmUg
bWVjaGFuaXNtcyBiZXlvbmQgZXZlbnQgc3RyZWFtcy4gU2VjdGlvbiAyLjQgKGR5bmFtaWMNCiBz
dWJzY3JpcHRpb25zKSBzYXlzICZxdW90O1RoZXNlIFJQQ3MgaGF2ZSBiZWVuIGRlc2lnbmVkIGV4
dGVuc2libHkgc28gdGhhdCB0aGV5IG1heSBiZSBhdWdtZW50ZWQgZm9yIHN1YnNjcmlwdGlvbiB0
YXJnZXRzIGJleW9uZCBldmVudCBzdHJlYW1zJnF1b3Q7LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDoxNTUuMjVwdDt0ZXh0LWluZGVudDot
LjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWw0IGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAh
c3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9
Im1zby1saXN0Oklnbm9yZSI+Mi48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBO
ZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwv
c3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5FdmVu
IGxhdGVyOiBBaCEgWUFORyBQdXNoIGRlZmluZXMgZ2VuZXJpYyAmcXVvdDtwdXNoLXVwZGF0ZSZx
dW90OyBhbmQgJnF1b3Q7cHVzaC1jaGFuZ2UtdXBkYXRlJnF1b3Q7IG5vdGlmaWNhdGlvbnMuIFNv
IGl0J3MgYWxsIE9LLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
bzttYXJnaW4tbGVmdDo4My4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZl
bDIgbGZvMTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj40Ljxz
cGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkV2ZW50IHN0cmVhbTo8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6MTE5LjI1cHQ7dGV4
dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMyBsZm8xO2JhY2tncm91bmQ6d2hpdGUi
Pg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxz
cGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjEuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsN
Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdCI+SGF2aW5nIG5vdyByZWFkIG1vc3Qgb2YgdGhlIFlBTkcgUHVzaCBkcmFmdCwgSSByZWFs
aXplIHRoYXQgJnF1b3Q7RXZlbnQgc3RyZWFtcyZxdW90OyBhcmUgYSBsZWdhY3kgdGhpbmcgYW5k
IGFyZSBub3QgdXNlZCBieSBZQU5HIFB1c2guIFRoaXMgY291bGQgYmUgbWFkZSBjbGVhci4gT3Ro
ZXJ3aXNlIGl0IGxvb2tzIGxpa2UgdGhlc2UgYXJlIGEgYmFzZSBjb25jZXB0DQogdGhhdCB3aWxs
IGJlIGJ1aWx0IG9uLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
bztiYWNrZ3JvdW5kOndoaXRlIj4NCkkgdGhpbmsgZXZlbnQgc3RyZWFtcyBhcmUgdXNlZnVsLiZu
YnNwOyBJIGRvbuKAmXQgY29uc2lkZXIgdGhlbSBsZWdhY3kuPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6MTE5LjI1cHQ7dGV4dC1pbmRlbnQ6LS4yNWlu
O21zby1saXN0OmwwIGxldmVsMyBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBv
cnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0eWxlPSJtc28t
bGlzdDpJZ25vcmUiPjIuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+
PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+UGVyaGFwcyB0
aGUgdHJ1bHkgY2xlYW5lc3Qgc29sdXRpb24gd291bGQgYmUgdG8gbW92ZSB0aGUgbGVnYWN5IGFz
cGVjdHMgdG8gYSBzZXBhcmF0ZSBkb2N1bWVudCwgb3IgY2xlYXJseSBpbmRpY2F0ZSB0aGV5J3Jl
IGxlZ2FjeSwgb3IgdXNlIGxlc3MgJnF1b3Q7Y29yZSZxdW90OyBuYW1lcywgb3IgbW92ZSB0aGlz
IG1hdGVyaWFsIHRvIGFuIEFubmV4IG9yDQogQXBwZW5kaXguPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KVGhpcyB3YXMgd2h5
IHdlIGhhdmUgYSBmdWxseSBzZXBhcmF0ZSBkb2N1bWVudCBmb3Igc3Vic2NyaWJlZC1ub3RpZmlj
YXRpb25zLiZuYnNwOyBUaGUgV0cgcmVxdWVzdGVkIHRoYXQgdGhlIGF1dGhvcnMgcmV0cm9maXQg
dGhlIGluZnJhc3RydWN0dXJlIGRvY3VtZW50cyBpbiB0aGlzIHdheSB0byB1cGxldmVsIHdoYXQg
Y291bGQgYmUgZG9uZSB3aXRoIGV2ZW50IHN0cmVhbXMuJm5ic3A7Jm5ic3A7DQo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDoxMTkuMjVwdDt0ZXh0LWlu
ZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8
IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4g
c3R5bGU9Im1zby1saXN0Oklnbm9yZSI+My48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtU
aW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9z
cGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij5TbyByZWZlcnJpbmcgdG8gdGhlbSBhcyBzZXRzIG9mIEV2ZW50cyAocmF0aGVyIHRoYW4gc2V0
cyBvZiBFdmVudCBzdHJlYW1zKSBzZWVtcyBpbmFjY3VyYXRlLjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCkkgZG9u4oCZdCBz
ZWUgYW55IHRleHQgb24gZWl0aGVyIHNldHMgb2YgZXZlbnRzLCBvciBzZXRzIG9mIGV2ZW50IHN0
cmVhbXMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6
ODMuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzE7YmFja2dy
b3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+NS48c3BhbiBzdHlsZT0iZm9u
dDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5Ob3RpZmljYXRpb24gbWVzc2FnZTo8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6MTE5LjI1cHQ7dGV4dC1pbmRl
bnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMyBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFb
aWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0
eWxlPSJtc28tbGlzdDpJZ25vcmUiPjEuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGlt
ZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bh
bj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+
SSBkb24ndCBmaW5kICZxdW90O1RoZSB0aW1lIHRoZSBldmVudCB3YXMgZ2VuZXJhdGVkIGJ5IHRo
ZSBldmVudCBzb3VyY2UmcXVvdDsmbmJzcDtxdWl0ZSBjbGVhci4gSXMgaXQgdGhlIHRpbWUgYXQg
d2hpY2ggdGhlIGNoYW5nZSBvY2N1cnJlZCBvciB3YXMgZGV0ZWN0ZWQgKGV2ZW50IG9jY3VycmVu
Y2UgdGltZSksIG9yIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBtZXNzYWdlDQogd2FzIGNyZWF0ZWQ/
IFByb2JhYmx5IHRoZSBmb3JtZXI/PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KSSBjYW7igJl0IGZpbmQgdGhlIGV4YWN0IHRl
eHQgcXVvdGU6Jm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij4mcXVvdDtUaGUg
dGltZSB0aGUgZXZlbnQgd2FzIGdlbmVyYXRlZCBieSB0aGUgZXZlbnQgc291cmNlJnF1b3Q7Jm5i
c3A7Lg0KPC9zcGFuPiZuYnNwOyZuYnNwO1doZXJlIGlzIHRoaXM/PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6ODMuMjVwdDt0ZXh0LWluZGVudDotLjI1
aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3Vw
cG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1z
by1saXN0Oklnbm9yZSI+Ni48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bh
bj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5TdWJzY3Jp
cHRpb246PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdp
bi1sZWZ0OjExOS4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDMgbGZv
MTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4xLjxzcGFuIHN0
eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlRoZSBzZWN0aW9uIDIuMiBkZXNjcmlwdGlvbiBpcyB2
ZXJ5IHVuY2xlYXIuIEl0IGFwcGVhcnMgdGhhdCBmaWx0ZXJzIGFyZSBvbiBzdWJzY3JpcHRpb25z
LCByZWZlciB0byByZWNvcmRzLCBhbmQgY2F1c2UgJnF1b3Q7ZXZlbnQgbWVzc2FnZXMmcXVvdDsg
dG8gYmUgZXhjbHVkZWQgZnJvbSBkZWxpdmVyeS4gQnV0ICZxdW90O2V2ZW50IG1lc3NhZ2UmcXVv
dDsgaXNuJ3QgYSBkZWZpbmVkDQogdGVybS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZSI+DQpJIHdpbGwgcmVmaW5lIOKAnGV2ZW50
IG1lc3NhZ2XigJ0gaW50byDigJxldmVudCByZWNvcmTigJ0gaW4gdGhlIG5leHQgZG9jdW1lbnQg
dmVyc2lvbiByZWxlYXNlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21h
cmdpbi1sZWZ0OjQ3LjI1cHQ7dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBs
Zm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjMuPHNwYW4g
c3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+ZHJhZnQtaWV0Zi1uZXRjb25mLXlhbmctcHVzaDo8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6
ODMuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzE7YmFja2dy
b3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+MS48c3BhbiBzdHlsZT0iZm9u
dDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5ZQU5HIFB1c2ggZGVmaW5lcyBhIG5ldyAmcXVvdDtkYXRhc3RvcmUm
cXVvdDsgc3Vic2NyaXB0aW9uIHRhcmdldCB0aGF0J3MgaW5kZXBlbmRlbnQgb2YgdGhlIGV4aXN0
aW5nICZxdW90O3N0cmVhbSZxdW90OyBzdWJzY3JpcHRpb24gdGFyZ2V0LiAoQXNzdW1pbmcgdGhh
dCB0aGlzIGlzIGNvcnJlY3QsIEknZCBoYXZlIGxpa2VkIHNvbWUgZXhwbGFuYXRpb24gb2YgX3do
eV8gWUFORw0KIFB1c2ggaXNuJ3QgYWJsZSB0byBleHRlbmQgdGhlIGJhc2UgbWVjaGFuaXNtLik8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3
aGl0ZSI+DQpJdCB3YXMgcmVjb21tZW5kZWQgc2V2ZXJhbCB5ZWFycyBhZ28gYnkgbWVtYmVycyBv
ZiB0aGUgV0cgdGhhdCBzdWJzY3JpYmluZyB0byBkYXRhc3RvcmVzIGFuZCBzdHJlYW1zIHdhcyBz
dWZmaWNpZW50bHkgZGlmZmVyZW50LCBhbmQgdGhhdCBkaWZmZXJlbnQgdGFyZ2V0cyB3ZXJlIG5l
ZWRlZC4mbmJzcDsgU29tZSBvZiB0aGUgcmVhc29ucyBhcmUgbGlzdGVkIGFib3ZlLiZuYnNwOyBC
ZXlvbmQgd2hhdCBpcyBsaXN0ZWQgYWJvdmUsIGFub3RoZXIgcmVhc29uIGlzIHRoYXQNCiBmaWx0
ZXJzIG9uIGEgc3RyZWFtIHRhcmdldCBleGNsdWRlIG1lbWJlciBvZiBhbiBhbHJlYWR5IGdlbmVy
YXRlZCBzZXQgb2YgZXZlbnQgcmVjb3Jkcy4mbmJzcDsgVGhpcyBpcyBxdWl0ZSBkaWZmZXJlbnQg
ZnJvbSBhIGRhdGFzdG9yZSB0YXJnZXQsIHdoZXJlIHRoZSBmaWx0ZXJzIGNob29zZSB3aGljaCBu
b2RlcyBhcmUgb2YgaW50ZXJlc3QgKGkuZS4sIGluY2x1ZGUpLjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPG86cD4mbmJzcDs8L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6NDcuMjVwdDt0ZXh0LWluZGVu
dDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtp
ZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5
bGU9Im1zby1saXN0Oklnbm9yZSI+NC48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1l
cyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFu
Pjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5F
ZGl0b3JpYWwgKHRoZXJlIG1pZ2h0IGJlIHNvbWUgZHVwbGljYXRpb24gd2l0aCBlYXJsaWVyIGNv
bW1lbnRzKTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFy
Z2luLWxlZnQ6ODMuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxm
bzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+MS48c3BhbiBz
dHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5Tb21lIFlBTkcgZGVzY3JpcHRpb25zIGhhdmUgaW5j
b3JyZWN0IGluZGVudGF0aW9uIG9uIHRoZSBzZWNvbmQgYW5kIHN1YnNlcXVlbnQgbGluZXMgKHN1
Y2ggbGluZXMgc2hvdWxkIGJlZ2luIHVuZGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGZp
cnN0IGxpbmUsIGkuLmUuIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIHJpZ2h0IG9mIHRoZQ0KIG9wZW5p
bmcgZG91YmxlIHF1b3RlKS4gTm8gZG91YnQgdGhlIFlBTkcgRG9jdG9ycyB3aWxsIGNhdGNoIHN1
Y2ggdGhpbmdzITxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztt
YXJnaW4tbGVmdDo4My4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDIg
bGZvMTtiYWNrZ3JvdW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4yLjxzcGFu
IHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPmRyYWZ0LWlldGYtbmV0Y29uZi1zdWJzY3JpYmVk
LW5vdGlmaWNhdGlvbnMtMTg8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG87bWFyZ2luLWxlZnQ6MTE5LjI1cHQ7dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0Omww
IGxldmVsMyBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUi
PjEuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2Vu
ZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+RXZlbnQgc3RyZWFtIGRlZmluaXRp
b246ICZxdW90O0V2ZW50IHN0cmVhbTogQSBjb250aW51b3VzLCBjaHJvbm9sb2dpY2FsbHkgb3Jk
ZXJlZCBzZXQgb2YgZXZlbnRzJnF1b3Q7IC4uLiBidXQgc2hvdWxkIHRoaXMgYmUgJnF1b3Q7Li4u
b2YgZXZlbnQgcmVjb3JkcyZxdW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCkl0IHdpbGwgY2VydGFpbmx5IGJlIGltcGxl
bWVudGVkIHRoYXQgd2F5LiZuYnNwOyBFYXJseSBpbiB0aGUgcHJvY2Vzcywgc29tZSBwZW9wbGUg
c2FpZCB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgYSBwb2ludGVyIHRvIHRoZSBldmVudCBy
ZWNvcmRzIHdpdGhpbiB0aGUgZXZlbnQgc3RyZWFtLiZuYnNwOyBTbyB3ZSBsZWZ0IGl0IHdpdGgg
dGhlIG1vcmUgYWJzdHJhY3RlZCB0ZXJtIOKAmGV2ZW50c+KAmS48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDoxMTkuMjVwdDt0ZXh0LWluZGVudDotLjI1
aW47bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzE7YmFja2dyb3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3Vw
cG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1z
by1saXN0Oklnbm9yZSI+Mi48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bh
bj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5zL2ludGFu
dGlhdGlvbi9pbnN0YW50aWF0aW9uLyAodHdvIG9jY3VycmVuY2VzKTxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCkZpeGVkLjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjExOS4yNXB0
O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDMgbGZvMTtiYWNrZ3JvdW5kOndo
aXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4zLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0
ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPlRoZSAmcXVvdDtzdWJzY3JpcHRpb24gc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMmcXVvdDsgc2VjdGlvbiBuYW1lIG1heSBoYXZlIGJlZW4gc3ViamVjdCB0byBhIHMvU3Vic2Ny
aXB0aW9uL3N1YnNjcmlwdGlvbi8gZWRpdD8gU2hvdWxkIGNhcGl0YWxpc2UgJnF1b3Q7c3Vic2Ny
aXB0aW9uJnF1b3Q7IGJvdGggaGVyZSBhbmQgd2hlcmUgaXQncyB1c2VkIGF0IHRoZSBzdGFydA0K
IG9mIHNlbnRlbmNlcyAodGhlcmUncyBhdCBsZWFzdCBvbmUgY2FzZSBvZiB0aGlzKTxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4N
CkZpeGVkPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6
ODMuMjVwdDt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzE7YmFja2dy
b3VuZDp3aGl0ZSI+DQo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEyLjBwdCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+My48c3BhbiBzdHlsZT0iZm9u
dDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5kcmFmdC1pZXRmLW5ldGNvbmYteWFuZy1wdXNoLTIwPG86cD48L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjExOS4yNXB0
O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDMgbGZvMTtiYWNrZ3JvdW5kOndo
aXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0
Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4xLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0
ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQiPlRoZXJlJ3MgYSByZWZlcmVuY2UgdG8gJnF1b3Q7Q3VzdG9tIFN1YnNjcmlwdGlv
biB0byBFdmVudCBTdHJlYW1zJnF1b3Q7LiBJcyB0aGlzIHRoZSBvbGQgdGl0bGUgb2YgJnF1b3Q7
U3Vic2NyaXB0aW9uIHRvIFlBTkcgRXZlbnQgTm90aWZpY2F0aW9ucyZxdW90Oz8gSWYgc28sIGl0
IG5lZWRzIHRvIGJlIHVwZGF0ZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG87bWFyZ2luLWxlZnQ6MTE5LjI1cHQ7dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0
OmwwIGxldmVsMyBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25v
cmUiPjIuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7
Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwh
W2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+U3B1cmlvdXMgJnF1b3Q7NiBy
ZWNvcmQmcXVvdDsgaW4gdGhlIFlBTkcgKHNob3VsZCBiZSAmcXVvdDtyZWNvcmQmcXVvdDspPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjEx
OS4yNXB0O3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDMgbGZvMTtiYWNrZ3Jv
dW5kOndoaXRlIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTIuMHB0Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4zLjxzcGFuIHN0eWxlPSJmb250
OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMi4wcHQiPkluIHRoZSBkYXRhIG1vZGVsIGludHJvZHVjdG9yeSBzZWN0aW9uLCB0
aGUgJnF1b3Q7c246JnF1b3Q7IHByZWZpeCBpc24ndCBleHBsYWluZWQgKEkga25vdyBpdCdzIHNv
cnQgb2Ygb2J2aW91cywgYnV0IHRoZSAmcXVvdDt5cDomcXVvdDsgcHJlZml4IChhbHNvIG9idmlv
dXMpIF9pc18gZXhwbGFpbmVkKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCiZsdDtFcmljJmd0OyBJIHdpbGwgbm90ZSB0aGVz
ZSB0d28gQWxleCwgd2hvIGlzIGhvcGluZyB0byBwb3N0IGFuIHVwZGF0ZSB0b25pZ2h0LjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPG86
cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0
ZSI+DQpUaGFua3MhPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dy
b3VuZDp3aGl0ZSI+DQpFcmljPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_--

--_004_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=152923;
 creation-date="Tue, 29 Jan 2019 20:31:29 GMT";
 modification-date="Tue, 29 Jan 2019 20:31:29 GMT"
Content-ID: <image002.png@01D4B7E7.B0019890>
Content-Transfer-Encoding: base64

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
dEaAB4ZCOkgACXSPAAq73eOFdyMBJIAEkAASQAJIAAkgASSABJDAUUAAhd2jYJCwiUgACSABJIAE
kAASQAJIAAkgASTQPQIo7HaPF96NBJAAEkACSAAJIAEkgASQABJAAkcBARR2j4JBwiYiASSABJAA
EkACSAAJIAEkgASQQPcIoLDbPV54NxJAAkgACSABJIAEkAASQAJIAAkcBQRQ2D0KBgmbiASQABJA
AkgACSABJIAEkAASQALdI4DCbvd44d1IAAkgASSABJAAEkACSAAJIAEkcBQQQGH3KBgkbCISQAJI
AAkgASSABJAAEkACSAAJdI8ACrvd44V3IwEkgASQABJAAkgACSABJIAEkMBRQACF3aNgkLCJSAAJ
IAEkgASQABJAAkgACSABJNA9Aijsdo8X3o0EkAASQAJIAAkgASSABJAAEkACRwEBFHaPgkHCJiIB
JIAEkAASQAJIAAkgASSABJBA9wigsNs9Xng3EkACSAAJIAEkgASQABJAAkgACRwFBFDYPQoGCZuI
BJAAEkACSAAJIAEkgASQABJAAt0jgMJu93jh3UgACSABJIAEkAASQAJIAAkgASRwFBBAYfcoGCRs
IhJAAkgACSABJIAEkAASQAJIAAl0jwAKu93jhXcjASSABJAAEkACSAAJIAEkgASQwFFAAIXdo2CQ
sIlIAAkgASSABJAAEkACSAAJIAEk0D0CKOx2jxfejQSQABJAAkgACSABJIAEkAASQAJHAQEUdo+C
QcImIgEkgASQABJAAkgACSABJIAEkED3CKCw2z1eeDcSQAJIAAkgASSABJAAEkACSAAJHAUEUNg9
CgYJm4gEkAASQAJIAAkgASSABJAAEkAC3SOAwm73eOHdSAAJIAEkgASQABJAAkgACSABJHAUEEBh
9ygYJGwiEkACSAAJIAEkgASQABJAAkgACXSPAAq73eOFdyMBJIAEkAASQAJIAAkgASSABJDAUUAA
hd2jYJCwiUgACSABJIAEkAASQAJIAAkgASTQPQIo7HaPF96NBJAAEkACSAAJIAEkgASQABJAAkcB
ARR2j4JBwiYiASSABJAAEkACSAAJIAEkgASQQPcIoLDbPV54NxJAAkgACSABJIAEkAASQAJIAAkc
BQT2I+yaJiGmQURRJyIRjoK+YBMPnoBpjbOum0RnhAgw3KKU+tu6BIMQygoK/GIiwfBdOHjO+CQS
sAg4ndSk1Al/KMyzey7GmBCJRETEhASQQI8T4IsXrGUdXqbP52deryJ6PDJ+fz2OHgtEAkgACfQc
Ab6H4nIJlNhuD9WmhnY/71zYFQSY8EU7YTohOgHJB69jloAABxuMicThlIjsIia1w5ZAJwIXfPmb
ZBr2kpISd11d0M6YicLuMfsiYMeOBAFKBTMUjNjKyne6DcMQRFG0JmX+bxB+jaEDC6OyV+5sU34k
moh1IIFjjkBBQR5sZwxbRx0zDJMuXbrUDYe5ImMaCrvH3Ohjh5AAEjiWCPB9VGamz05g7u6kX+3m
8Y5vAiHH8GbkEUqv4ZIO6HVRwDmW3pK9+yLAyYjSbCbOvzkzGWuC3wrE+em/CN2+hogg+FYHAuee
dfZ3x1m/wAsJIIFDJmDCBK0bhgsK4hNy6wkk/74MKklR+NJQ2D1kylgAEthDgGt1k6qau9tgqeVX
/L+bQuEpl152wwvICwkgASSABI4aAqaiqAP2mdNhA2XqRv+2vehY2AX5llCbTGyOfsQGB6EiyjhH
zdAfdENNYuQMJIYEr4RhElN+nat0rdJUlWXzPwddND6IBJAAEkACSKAXENh7Y8SbpOu6LxqN+3pB
87AJSAAJIAEk0EUCQkcTOjxrCiZXJuy+Ojdj5oIOUwmRwIK5xZy1i3XjbUctAQ0ONkDRBMIu2FTu
7kUn79JR20tsOBJAAkgACSCBtgRwncP3AQkgASRwbBAAg+R21nEYjfnYGFfsBRJAAkgACSABJIAE
kAASQAJIAAm0IXAAYZebL7f+QW7HPAFrqOH/odX6MT/U2EEkgASQABJAAkgACSABJHCsE9hfNOaU
CTP/02lk52Mdz7esfzwANx9vbsbM/93manHf/ZYBwe4igcNHoDOzSfzWDh9zLBkJIAEkgASQABI4
Ngjsx/2kndquY2GXBymKR+qImlxKJBsjOobiPzZei056IQgmobLuWPj28bRi8yATxl8M7iL8bxN2
3j5fxvyioUPmQA5Q/r6g3veYfhmwc4ebAKWiWhsMDt5VXnUNHCw5Wuvj4eAgEnN46JDB/0pLczcy
ZqCbyeEeDCz/20TATCQS3mQy6YWgJrv9uWCNE+12W9zlcoe/TTCwr0gACSCBo5iACXspfePG0iui
sdiY9kIv7KZMUtO2bx1vpkCrJyYSYaKrK4lNUoipYZ7do/iNOGDTRRB2XR6Nrpmb79iycpBJbcS0
Qa5dUSKQIoVkZfo2zZ795htQDvwQhd0D8sQbkMD+CcRvv/1XJ1aUv3uVzo0oWo+P4N+Qczd2883X
fPSDH3yvHIrYLQgjUCSABHqEAHxtrIMDW8rPmlpTgPVIRVgIEkACSAAJHDYCfL5Whw6fNIkLu21r
4b8QJKHpwMIuv0MAiVeQbJDtkf8Phd3DNl69omDIO2QIxC6Lpt1BuLDbVqbVdUvDJFdUVNjhZBw1
u71iyLARRyuBoqIiIxpNdCbICvX1IZl/b6WlpSjsHq2DjO1GAkgACSABJIAEDgsBp9Np5ufni2B8
2pl82s4XE83kDsswHM2FdhaQjAlc0AVTZhR2j+bhxbb3BgJd+IYYfmu9YaSwDUgACSABJIAEkECv
IgDyCLSn6/IICru9aviwMUgACSABJIAEkAASQAJIAAkgASTQEwRQ2O0JilgGEkACSAAJIAEkgASQ
ABJAAkgACfQqAijs9qrhwMYgASSABJAAEkACSAAJIAEkgASQQE8QQGG3JyhiGUgACSABJIAEkAAS
QAJIAAkgASTQqwigsNurhgMbgwSQABJAAkgACSABJIAEkAASQAI9QQCF3Z6giGUgASSABJAAEkAC
SAAJIAEkgASQQK8igMJurxoObAwSQAJIAAkgASSABJAAEkACSAAJ9AQBFHZ7giKWgQSQABJAAkgA
CSABJIAEkAASQAK9igAKu71qOLAxSAAJIAEkgASQABJAAkgACSABJNATBFDY7QmKWAYSQAJIAAkg
ASSABJAAEkACSAAJ9CoCKOz2quHAxiABJIAEkAASQAJIAAkgASSABJBATxBAYbcnKGIZSAAJIAEk
gASQABJAAkgACSABJNCrCKCw26uGAxuDBJAAEkACSAAJIAEkgASQABJAAj1BAIXdnqCIZSABJIAE
kAASQAJIAAkgASSABJBAryKAwm6vGg5sDBJAAkgACSABJIAEkAASQAJIAAn0BAEUdnuCIpaBBJAA
EkACSAAJIAEkgASQABJAAr2KAAq7vWo4sDFIAAkgASSABJAAEkACSAAJIAEk0BMEUNjtCYpYBhJA
AkgACSABJIAEkAASQAJIAAn0KgIo7Paq4cDGIAEkgASQABJAAkgACSABJIAEkEBPEEBhtycoYhlI
AAkgASSABJAAEkACSAAJIAEk0KsIoLDbq4YDG4MEkAASQAJIAAkgASSABJAAEkACPUEAhd2eoIhl
IAEkgASQABJAAkgACSABJIAEkECvIoDCbq8aDmwMEkACSAAJIAEkgASQABJAAkgACfQEARR2e4Ii
loEEkAASQAJIAAkgASSABJAAEkACvYoACru9ajiwMUgACSABJIAEkAASQAJIAAkgASTQEwRQ2O0J
ilgGEkACSAAJIAEkgASQABJAAkgACfQqAijs9qrhwMYgASSABJAAEkACSAAJIAEkgASQQE8QQGG3
JyhiGUgACSABJIAEkAASQAJIAAkgASTQqwh0XdgVod0q0UksqRFROrhOOKmN2AglJvwPryNLwIDq
+BjihQSQABJAAkgACSABJIAEkAAS+BYQ6LqwywxjbF9XxsWD/AWMEC46dfkShNStH++KVa2qjodA
3D1IabnLVeKNbQkkDZ0YhkH4YQNeSAAJIAEkgASQABJAAkgACSCBbwGBrgu7CYNdMMjb/7cT/Zcd
LBc3ld5dtTVUR9IdKOweLMTuPhdj2rB+7oxfHZ85+rfLGlZXRtUEFIE63u5yxPuRABJAAkgACSAB
JIAEkAASOKoIdF3YBfEopjIW14yEKQgGMVOWyK0qXo9NdIICVzRM00wwM97OarZFtRtRdQ0eadHz
HlWcjs7GMoNdOiar/5NT/d/p67L14cIuYWBC3vVRPzr7fZS1moJhv5NQM8IYHkIcZWOHzUUCSAAJ
HCkCfK2ANZz/X7f3UV5KDVxjjtRIYT1IAAn0JgJdF3vABPbl0sjO5cHkCzpp43OrGyYRRPOVM/Iu
LUy3F+yKsYprZle+Dz/UQX9obd5bZ+WtTWqceB323gTgmG5L0mDnDXAP7u+x5yR0E/4PfaV7y3hT
Ss1CJ9NorpwgiiKSCLORXKaQqExDdUwOKHuOJBhjgk+W9fw8Eodtjhmqo86KKLFRytr5vjNGhWIf
S1IfUViIyCUh6iBEIWP8NEH84HEPFwukfr73s9bv4PkxPmhDLknCY0KwmrjA54D6KdF82YxbBHR8
RQgNRog9yNA9obe8X9gOJIAEOibA594iP8ylNqYrMJeWRhU7/1nbu/lcmO9hmq8A7gsSewnMp/xn
RR6iygUwF8L82ClfWTZhThcqqok7pFBpTL4SI17K9vsML0yG9TlIbFCXs23ZXEjN9zKV5FJYHxhY
xVGByAojQSqXhohjf4JvoUw1q718zxYkDigjAWXAGkOcbdeY1PzPhFyZMn+hHIMVRKyoZq4I69gK
rJiX42VaqJy6KqKKjcgyGeMFVvCzNlu+9ojacWHS3sz3975CfZyhHihTPEFg2tHaZ40NX6eASWmC
ykVe+Ddf9/Y3Vq3cI1QKwXP7XefaNhD6opQzZykjdqvffuj33vVY/YUD7AS1VYSYDQ8acEZCAt8c
ga4LuyCzNigsubBMgQ13m8sAEYpIoM3N4ZMcfNumtqg8FiQM/ERbhN3ddzspTNSGAMeSMD+LguW7
a8D/QCizdMQOkRJR3Fu7xU8ydZKEjT2/V4RFhv9xQJSsfe/lVaXu16Eefo81i1vPc2UzaDWhXht/
9gCmvLz9Gvi5gg7bqs9GRWgvb1v7RQ5uIRqUL4lcY5rimXoW/GTh3/xZq99dMB3mfrUaPAX+0ak6
gQW1eHS0sEI/eeVQr2ik6tU4WfiZA9oqAltFM6KaaQk5vO+gWQcOwJoz6Ep7vrn38piu2UuJtXl5
ZIs44N2v1anBJC2EYfM4RRoc4DI2X5djLLtuiFhXGqGwwUptQOaFmPeq1eI5zBBtNxaSBVfnsfoy
EDBbQfGNg18m2u3ryYjFIWH8pCxh1aNFyibCqHjFEnHy1gQpFAXBPDXLXHHfCLotEGEgCLe/8kFQ
vmmjOHLZV2SMQyDq5bnGkquHscqntogDP1wqTjRMAYqA76r1AhMPeDu1QS5SeWtfdeP0AtpcGoHN
F+u+1uGYHnDsHBJAAr2CgA/m3jJGbLfNNc4JJoW+l+YZC+4Z6SkvDSrt5sN8EJye2CkO+HgpmTLC
S0r/ViSuAWHUeKDMGPzZUjJBEiRmmkaHljiGoAp2Q9R+MsD4ckYuazpzjn0GHARmwxYB9ASwmINy
ACzj+BpPTMPc7dIFWxYp125U/20k+RrOGC3hs9hLkgqEBP3RanHsks+NSWGD5hDBFNMFe/VEH1n6
4iRjnRKhYpkCh6Ut126h1U+TT6w1Cl5ZLJzUyOhACN2R7rSJDX0lcfuNBcbC64tpTQAE4BDjAjQh
fJ15JSBm/29F8iSXJMQeH02/KIA1JaSkfs8v2GiYsH6Zl8wzpu5ShAGX5ZKFN+TRGuJk+iVLxGll
cTKICgIzhX3XAENgwIUAF/LlGX4aDnXhcJTXp1AqnjrXODeSTPpuHUDnXpxLGvcW1HN9RL13ozpk
7mJxwnHpdMMfxrM1VywSp5QmhSGSwPeXqQuMDGFHJwB/GISWtcwAbU0GZQ3TfeJmGO+JminCDill
usjvhIfgFlg8W8ebmzaKjJzZx1hxV6Gx7ZLl4tQdMXGQZJp6u37DewDmjtFpPnXTg0PEMj+lettx
6hUfBDYCCXxLCHRH2OVIRBDc2k/wBhe2RFOCbTC/QYJJTpRFm2FaQtpei4FBYLaluU7qaWY6q25Q
Y1zAPXOoNw+eFhbVxBujCV0FYSw1uSbgNBOuoTnujHyv2+l3SnJCM1ljkqnLapWwGlYSxA2aYi4Y
tlwyFaS8dLuLy407I1ocNGaqL9vhHj/Qm+6iJq2OMmVNg9LM4izZErBpL+GVR5xmLLevPW24z+nO
cAj2YEJPbm3SYrWNcELLrzaBnuw2KuRlULcEk+H2cDIBz6q5ftk7NsuR5gKhuiqmKUsDSgj6kiRu
rmnr4DJAO54wVDnd5izOcXjyXdTVDELq5lAyFmhQoy3CfZuxMohdEsUcj8PpgL+3hpNxqFcbW+DJ
HJhmc20OKdEtjcloP7/Lk2YX5NZ5fqTP4Qk6BNqgmXo4iSbl38Q3zk/pPU7GTphrXrE2Kt7KZE8f
wt2o+SGF3SXujEhkWZOydWad9ud3TyMLSwLE6fcSbW2lmLGkybxLd6RnVJeEXr2+QPg9F5r3nLwz
4vcxdX6j7cRNgv+OZLD+af8ZdBXXSswLmRcHBfd5RLKTuqrQa4+NVh4NwiairUaAm8eBqlh/r0q/
PmjLPIvEQ3pft3jbnbn2knkL1RErI9ID8GXDU3sFUqd2sqI5ST6scWyfttP8v8/OE2eVlCtua1uE
FxJAAkigFxGQYf4FDZ7t6wbjxoSzz/DKrcFJl2YrvwQhWG8rfPmySXLBSjJyTdJ7T20i/I5/krEC
9K3qvGXSuDXJ9HusObszQxYJti+qwlZHxLXXFou1i5r06+N27yiiKXtI8HnU2nm02X7A9mCHEl0K
k+zXXrDgyfVR5ZEtxsCnd5Cf1Gv0LFOySUSDeuHRKoebbAok1c8+1t7752jlqenZNNJ6+JnrkTXQ
+4qjP1J/tCVGv6/JaX6iw2yvJkDUlMSdVCZrNipVT+9g/5l7Cn3Dr1EzqDDK15mvNpKBK6P0fj7X
376GPbLsQuF/oXLiaW24Ew5VZVh3FoTYpQ3Ec3ZOKP6Te4aRCuIl6oJG84oG6judJGGbxLu1d84N
CdYETVdXR4S11xYa9TAOB4zd4oPxgsMJuqTBvFURHIMXh9WN1xeLNYFA+wXG71HULxvp+LW67+5w
Q/jFXBDCFzQZ59dK6RfBWLRpDDSKt8varrZUD3E7nSxeSg3y/PIm4X5is4sQ0LOlD633cwIt9/Ot
LfCRSOKRP01n6xZ8ab+sQUo7i4DhYruL1wFr7pJmJfLPSn3R70eIj984hNSWcA07XkgACRxRAkdy
RwqaSFG/Z3LW2O8Py5iyqj5Rdu/CuoX/PLPfOaOzHINhWhBKw2r57fOrZ83faWmGjYtHZuTfPNp3
/Jgs58AsWcq0iYLV3ggoLHc2a9Uf7mzeeN/y4FrQZ/JTUhGeYWcNSu/3fyflXtic1OOj3tj+v/un
5479wfD0yQO89jybSGyNSb2pMspq/725afnfltRuBsGVl5lacUDrmZVmkx8/Pe+kU/o7R/R327Pt
omBXdEMJxFiwPKrVP72uYfk7G5t2gfbUzrW3Y/JdvlfOyP2Okwr2k97d9cr1J/QZ+cPizMkFHtqP
l9usGZEtIaX82bWNS15a11RGnCI/gd2zwvFIyTYi3Hdy37FXDs04vr+H9s2wS2lJ3VSr41rdlia1
8jdL6hat2Bmvh2cd1vEBE9m4HFfWv0/NPT/NLrm/O6fyze8OTi+8ckjalExZ8NUljPr1DYldQ9Lt
uX4nGLXC5RAFxwfn9v8eTOHmf0vDi379WdWyToXvI/oKfnsq4wJlPpzUX7RIPGWVIt8jCiw+Umr6
y6hcugHs1pL1yXja6mbh1CrRecVH9cYjd68kN94/jGxvJQSnzGAtwEilZvvu2QvY0tnnybNBsNy9
EeH3iVxrYCn84e6WSxThZFqHn7EoCRpk8ktlJOe6AhIELexuzXAhtOt3m4zCJs08jsCpNT/GJhov
QoGzcHjpYNF267FNx6eL/wGDCvgl/BDOyJMmc26Nk+khwXPKl03xB6/+jDW9fAJdwTW8356RxZ4i
ASRwNBGAGQ3mREYaBNf0q1fFL1/zHee/IzCXtjMJ5pZZ3MhKFOFfbRJQgKDjE9m84nTxA5gEWw+T
d3ffMFQwUaPaFB+rD4ZExxnZ5jMNajwLitFhm6LWJ/X+JRHzJ3BA3jwmnTzvpUIYSpfggF7Kcwq1
EFZDyPVS5Xeb2IDfb5eeVOyeoVlS87zRHvXjfnZSY7OJxvZIrGBFTPhhlej77rVrGtNmTSG/AS2s
zq1q/E7Ciuawn2w1fTeLYjQ+VGx+blimsLYPOMskDc22skmduE2n165RvfdOmNucveE04Skw0eYL
hNVfwo31ZC9ZHdFu+dVCc/WfJtHNJQHmaju+3MTHWlP4/W0veHSgXft3P6+wHqi1Y2MYDLgIwMWo
D4Bpr1VfFy/QhcBqw8diP65YXGNrjRecJESpPMPP3i5NxFZQN1RMRD2mGe41EeNmsI7yD3cbz/Z1
ijuh9TZol5ROhdBpWWS7RoR7GFFBhcAt+sTk5rB+ZpC4zvEZ8QVj0oWPoHipRQwWzuwrrI2CKTnc
Cvs5k+Tb9VcL3OZyeLesfkP/zdpksv92TbyiQc46+96NdWRalnCvX6Y6HC4cUNDvIhq8DQkggS4Q
OJLCLpzqGWZ+mi091037jjad7NnTc8+ekC2Pam3niAz7oLAOpj5xTfv1af3G3HeC/0KvTbA286Bd
bQD9pw4Cry1TFn0gIBeNzvIX9XFS+aaPK74GQRAMKg2zj2xz5HtoXsIpKq+e1e+kq4akn8afb1KN
MDecznRIGfzPn6dkD+7vph/e9UX5SuK02WDvbmS6BMf75+afNy3XdRx/hgvGqk7CUKc0KM2ez/+M
8zuHZDno2/9YVb8dJkMhjQq2Qvg5F8T/cUre9LMHuCfxZyHqcQ201+jvseVOyHaNfOZUubCPy/be
n5fUbgQBOyVkgNFxlpc6Z55XcO6UXNdYLvArzFBr46zeIQm2QV57f/5nfB/nkMdW1c/6S0o4t8Ei
Y4JAbBsM9cJ9jl8flzX+wkHeaa0c89xi3/qELZxupx43BA7jPxeIKWbKUgYXX9K5tpebZ+N1RAnA
QJjBBLEtbiLfASsq20le5dEvrxLfBh8jWBzh/fXawe9HmTvorZiyMz3/+69WVl7x2GTyENH4gYy1
qTAFLQlGE1RaENZv/8daZf3VILSWtxUsIUAc3xRY5letF/8XbOzSBHVlsymOf69GGHFDoVHTtvMU
FuBPA2y8JtBsqkWCOjEzYMWHJ7ngzE25JOKipHzBpcY7YHkBmwkjtVh7KAuUsfcmzG++v8qdfdm8
xtoLwHRjEYm0Nws8oqCxMiSABJDAfgkIpsAUHaZLaWPc9qPbF6nLn55AS/YS6qy5FKxZ2qyVfB4W
SJbd3LTwcvYGiYJOs+OL++y6AhBb4YPpdD73D07Nl/bEH+aRkfdvZj8Gz9vmp0aaH00dY9ZAObAn
gLIh/kEgQeylESb/tYz8QrGnDy00Q//ecpbjSZpLEiSopO7L9S55fF5kzQPbmp+ut/nOuX11ePGi
c9W3uZx19Tw2aatCb7KJ8bpr8/Rf/Gs6WUYSEnfD4nO2QXxk4TUz9WVvBBJ/3m44bzhvibLpizPI
J+Bzyl3DuCoTLLHBvM3u6fPviuafXFdg3OWXZRZUlLb7xRQb7kbVehAAmwz+7ymZwoJXL0yfQ6Kh
DthQ4GK4glEwTt7LT/oAL6wl7O7vAkVqy3jB3yFqe2kCWUX8dCn3nyYeUSstFX1j5xnf1QXTd1G2
8cVjM+D30RaBXGPgsyvb7zyB7ORxMVJjlR4d80pT3yCTzsmUzM3zLjffgvv3KCsi1BYMGXbQElv1
jsyQlnx6scrvSbOe5z7YlLHbP6ELnq8IPdcg2M++c6320afTyNyg0t4vGz9WJIAEDi+BIyvsQl/A
c9aa9Pu5aQ7XfoI2d+f8qtimNDuVE2DavKYi3ji2KD37nvFZ53NBtzyiVv9+RePsTyuaa/lUlwmx
CS4aklZw++jM08GsOeuKwWlT/9bfXVJSkwjzckEhDG4wRJcl0XHlkPRTdzRrFc+sb1zwZVWkLstG
pUuGpQ+9bljGqbIkyD8cnnHKcxsbt5Y1aBGSSOq/nZE/kQu6cWYknl3fOOfFjaHSJsPUXXCSe+Uw
b+Evj+szIx20rg9O6nvuO2WRFxoakwkerAuWzCQXdrmgG1L1pt8vr//kqdUNW1VimDePyhr024nZ
5+S4pOwHJvovWlaXqF9QFoXwEHDICdfb5+affWKLcP1VIL76r8uDi1Y2aZEsG7FdOiRt4C2js06D
fvb57YQ+F8Oz/1q4rbkOhA0O0eTaXy7snjfQMwVOLeNzK2OrKqJa85AMR9YLmxrXNIbU6E8nZE++
qNA7NWkQ5aYvq15tTprJTWEwx3aDlhivI06A+0ephpBGDIVM6i9uBXNfsSJInFbwigBzFhfQ6Cl+
NqexPjjSKYmhYLXo8vPgJCBxcq92mag7vaKwpc6edc7DW+pvvLpQeJT7oUX2H50TtgEmKXALczdE
yLjVYeNU6PiXXNPMNQGg+jcqghBsI07OkAkrA6G8MiQIJ7WHAyc3pkArykwvmLGB2VurTRcjxUVy
+MQsdfZb9fHLIro0qKSMefD0+oi/WlghEkACXSQAx4FUYkoY1tkltYLn3P+VR++4ZaD4M5i3QKhj
B9wXgfLTDtrDtJJy1s6yZk/1Ka0lD6QErii7taIQQJDWqIabHx/Cr8X1YdEzqcLwtrWyKfbRxJ3L
2aQG4jzDnWzc+OE08iwlillSStJby6eRhHzXdHnbOwHllZUJ5ZY4hTpsHmMdBHD6tFH4EbjECMfZ
m5//1wyytLSUpMG5+m5rMm+QGK9cSBdu/h97dqWe9sCKJuXqdUH25Rg/BCcECx7uVJwuGSs0FvE2
0LTTrl3VdOnKK8l/QqV7zJn3hzmsQVuiEWDT0f2tXNoHBOvisHX9NuBeGmIyCzHrsL8QfI9Xhnh7
uC8OKE+Y6CIB4uWBx1KF8iFnJNCmzcW5ERHEXgdfO2G/ZWdgrA2m4rZW7T/EyNDhsd0HIQlmOLmg
C/3eLeSDGbb+9DhS8k6ALQzQjIt2Ks1DIYjXHDjgxgsJIIEjSOCAk/rhagv49kplzequs98vf21n
ebiRyKBddYLTCgR3+vmozDFcqOR1372k7pPXltRugdy8MGmJpFJXzXWbm5b5HKLzZ2OzLshwSGmn
9ndll1THdk8fXKkFbrwC+PY2XfNZxbuLNoSqSJqDl218tq6hUv7uYPqDYelnctPo7wxM6/+XGtC2
QpCtKbmegbzOzU3qjrs+qVhMKJyGpsyczUdnV67oK1PX9SN8p6m6qQ3JdHgb6uLtnDS48PnzhbXv
/efrwCbiS7X3+fnVG6O6yf45Pecar010/+YE/5Qzd0Zncl/iH0zIGnpSi6C7sDq+5uS3y94FU2od
TKRpOWhvV2+LLNnYxEJgrvw9bq78u0n+k0+vir7HEnBPu0sgj6ysn/nHz3au5gpCcIyWLXPnmkT8
whEZFheuZX59e7RSbeQRsUHQ5YGv9n9QeriG/ltbbgIEyyIfSWbbzTVh4p38UmX4x2SO8ffHRhg7
rAjIQWpX6ojjV4Vk82W+pjt8Pq8WZFTyt25UIDQbGBMkbxlEnntsW3hUFXFceflCddGn59A5kWoG
frL7uWC4h7rMbTtiZFNQNae9VS70OcNPwgHwhwJfLfa7LWJBk25OLHSSl5uZ2RfiyHUYbZQHDGn9
w2vjPlxwes1NAuGjsxQDOkRvZuAzhmZa39o3HTuOBHo7AbB5NU3x4lzhP69VxbJC9oyTrlkeunzV
RbaXQhBF+UCt53ZkxMPiECV43yBVisIj29O2AuyBymv9vZVaCOb7xU3iSQQMwPoQZVVxrhYvDdB2
EZp5EKrSUub940gya31j09ejMx0R2FPQl2vEgeA6dYJDjO64vYjNZSGPDGGg283lPM4Dq2DOGwvp
gp+uB68uQkf+rZQV/6tIXpSy5KHg9qTVneMzX3i9PvH3dcxx46/msWV/Gkm2VnTBPcVJDGBjV4q9
e4Jm8f5xIbEMLJsOJYCh327Eic8eKW7VlLeC89CYLEltnKK7SrwH70uZWFvrY2upPic3D7fGNGVd
5QAxV+PvTNdNuHuwhVgUEvjWEvjGhF1O/M1t4VU7d4ZDxO9MLS48UBP4tH68K1oW0syZ3Jrmta3N
VQQCRVmTsAFCHg/kAwYti2piNT8dk8VAaKbgl8rNctuGw7ImdxAgNy7aDEtXFjzPlyRHal2auTNS
dtXQdNCKEns/tz1VN6xePOwA/+dAjy3nygl9B7++sbEcAktBLET4X7pDfnBFw7q51fGqkkYlsisK
Ye3tEDCCP9oiFyytjW/8z/LGrVAfP8lNLTB+p+uVVfVlN47MKDkpxzVunN8xxO+TncGqcPiSQWlD
wW9HSuhG4uEVwa9JUjMg4FZK48rnQ4fD/RqYS/9oRMb60/u7Jk7q6xp+XLbsW7EjXmvd07KE7Qgn
K//4de0G4ARCLhdiuWgLv3XbbBDIymojb2KWTG0BN5jd8P6goHvEP3q+2POF/pJcMuvJXc3n1Dr7
nPd4WfCUf+4Sl2fL+trj0401F/U1yi7PI43Ffm80EGIu0AS320xBuEf5waHmjq9CxpNzw/IT80LG
Hf9YyzZcX0jr9ruAQnCQIm+ydmOMzC9Nem59vjw57vKR7FM4yfaCV3fyjYB5On9LJvqMxXODwoWp
AB57W7oLeq5fS0JkctMXaRFmKRVeW6rkzWukl8H3QDKJsdHvlZIlwc40HkccO1aIBJAAEtiHALiS
0BFuIXRVP+Mv/wioL65T7bf8YqG28i+TGBx+d7I1skQXnYSSZtHJb5DLYFOyj4WUwuy24nSj7A9F
ZCNYJYtcMO0yfi4DwRoBAulA7osC5tLlRJGFtprZ1rJgLRFBY6lOHeyoBdNnCjpKfWuMZBuSQ3YJ
auUZfrk5BAJwR3UHIF7D9QNJ4N6NRmmDI6v/zkRDX+gzj2Jl3Q7/cL16Jlm06m3txS1Sn5v+vTP4
s9sLhF94IJDXnp3HXiW37MG2KWTwbZ+rDTGF7vHzBe2DkxL1u1msPA8CfXU3TzBsWEAXbiMvlZvf
e/N/6hlEh/9oe0HZ9Ql9LGdmOdB+Axc0CIR8WSnycVNzaxNnpfO7cokyuY7R6YIRU4/PETYzSP30
DTQPq0QC32oC39hHB84y+o5m1gwa3T0BorhWElRXb4GQ+dbKWgjMw71sQbvK/UvTqWOM35ExNM3u
LvLZM84b4B3OtcMdjV6r8LkzpjcSCmGp2ooLoNGshejKqmFqYAJs52bPlmAIMvTn1dHS8dlyMfi2
Zr54es61t49O3zI/EN++LBCvfX9HrK6hKhJ+LxADpZwVATqViMia+XmAAoF8XR3fQUQN/g2JW/Zc
ltSwtCZRzoVd0Fh7Ts61+9+JOpJDMuw5/LbyZq3mq7p4Iwi3e/eH6/KEOeXNO7iwy/2Vx2W7MlZs
DQfa9rs6ode3nMim6oVnUr9Hiba3fd08cNNjI8h2CM595xu19T9okKQpDY60U8Eh/dRN1c3krWqh
5ldb6KfXZmvvPzyWbIOIle1O9Hl/Vkao84vTyKc570ZPq3X6z3t0S+2NkI7oERBC9zPgkPGLGdJZ
feiC0nLt1i1RYyqU/Tk32yuDfIoVinmqSzS33zaQrZtTb79iH24QJD1mkqFFH9puhxhYYNgFXx98
M3Fd9derwsSkM6NATjTuuHWI8HqoC6f/vW1csD1IAAl8+whUQ46E584ly774T/TlraL/5pcqGn56
QwH5eXERA7eoDjIL8ZQ0oKFrNGynfRW1n7ZPdHqO0JlGKutq339pumMlBL1qF9ipq4Q1ZmZw79Ch
Xlpm+X52cnEtbaQ10CDk8q1SlBziyiAuNVibm8dipR2aEnPXYCLkgzWRXQBNI5yHQzncRFpIOZnx
HQv8G0x2n5xIX7xsUeOJDTRj+sXLmy9Z8V36Ms8v21FzYNdh+dWujUh3r4UK2smcoKWmLBnMsYs/
vC/bKO++1hsCVMGBbRVxfpdYmRb3QqJbEU9S2QIs3+EjecEeEmpc3WScU/xKciDkXQLTZ07CoA1J
ZUhYF6eZssc2kDT9+/ejpZKyCCgc8EICSOCIEvjGhN0YMxM7I5B6aLfI2NJvHt0vlZeWTBjk6XPD
sIzho7PkvCxIV9THQTMyHGI6TKr7NZHk0x7fjlc2Q9qevcsH2VnnAu7es6WX2h9cVLN2VIaj7zkD
PJPB51c+Mdc9lv/hPrzlES2wNqjs+EdJ06a5WyNg6NQuH7AlXG6L6GFYOPY9xQVxG3yHLZ9iSOBG
+7lsLkhZJHmoYC2ENQk9pMQhFZAllu+1wEL7tzWzMI/8wPs9ItPps3Lxti5I8Df46TZZ/21ADtR9
0hQf0fcJK+sCAUh4b//bOLr5b4Td/eAmY/C8YNPwHQlhdINgjAeBcsROIeOHf9zVeM7mhHn/q5ON
xVDkXmZoPJIjNX89RHzqni0Nx1cILojOrCya/V3y3v6qDxui40/jjHX/LFe3QY7Jk2aWk+wfTCXl
988ST4jpZMRQj/mvqYW02VzGcz/u9RqDgYMiiYMgX+8te+pIfYaCqau5Ruj96wqlF38+1KiC4Cq4
mHfhPcBbkAAS+GYJWDo2CA717CjxPxevrD8xJGeedPXK+ivWFMtPgZZzX6EJUgxy4TDNYKty7PrX
sM3YZ64zBFMami6sC4WYvbsazDY0UipW6+LWuR1v1bjZM0/PY0X3BT9VnUC2ByscCPxTlg1LWQsq
4L0vKzgU5GCHIMVWwVZ0ar4narOzApNl+4xi2nD+lviTbzZqz6xRxZ/cP1dZ8eiJZFNHISKsKMWA
p6/N+CTdTnZYfs2tl6jzHIiRIpsRDSb4/q57Zrw8Fy6BLdJwe+wpvyzugm1ie426aCS3M3FqDXFd
svd6efjfMBDEAV2DJpzVwMSz2tYHLwuzi2ZguK3pf38fJ7/LNAZaesxDf/jHBGtAAu0JfGPCLsQm
1BoTprpHC7m7YSZ4LxrPnZ1/4veK0k7xgq9q628g2LJWB1GZdzQna5uSRvSMfPcJXNu596CCoMuN
WYzGpMEXjH2Ezw4zwcN8r8BR3PkzKz791Qm+nZcMzhg5yGvLy3bRPi4qOof7HIX8z7mD0iY+v77x
818trF1tmQu3ucJJkAg6uaJaasXh2cxBucwDBsGymWoJCNNJnsZonxzGqbIECIBlKaAhlzHcYkUD
TNXb0rNwEqIdWVcnPcO3vlcQ4OZsuaBJ9edBVE0wLyuF4BgPDiU7yERjCwuRWWsTsuP5MnXwB1X1
1wcd6Wd9Emz6xVvV5OarChiYKLffUwWDTP55Mdv1QQ19an7c9vuvwupP560zltoFeJc6uQyDir5c
Gu0nJ7/crrl+/GZNYsQPCNuxqEGcAN+L44Ic8gULgdUCfID7XHYnSTPjKy7OkZ7kv7NiNKcOV8zR
Hil4Qx4L+LyM7Qn40SuQYyOQABJAAvsnABrMMwpp08VV7In/1cb/DukSfvzIXPYluFt27AMKwqTf
ISzfcq3xBAQ52jdAFYuAjlEWyyLtfVa7MwxOm1nXDJJ0TcIAt12I29zJxd1iIEqyVOyn3FFY9Ipi
E0nEwOLGzKsoY14fxFMIdhA/AbITmZA/1wVBlfxEUiERALEO4/e+gqWK5/Xp9sUrZsZe2W733/D3
8vrbrx/CfgHC915xQ6z9iGXhNi1TePfti43P27OBrRi0lWt0eZDG7rBouRf2TAa5Ml+c89vp9tVQ
VnuNOVWiJ75myDWKcAlg67rZ+EE0ZJ9H+BEBCPnD3ebT0/qa85MqBL9qWRtHekn9WE8yPCNPbgol
mK0iqkA6+8McnKsn+oRlIIFjjMA3Juzy2ahF1muPNMa035+eNwF8XM8Bc2ShNq7XvV3WvGxrY7Jx
e1SNl4S05rKypoYLx2cPOj3fPWF/49FxiJ3OJAG+g4cw+okk+9OXNWv/9HVw47gCT+ZJec5s8JXN
m9zXOXhgmq0AIkR77xyXeVGzyjQetIqXBnO8JXzmuNsHkdhdE0gGBV6HtShCajpWp2gJFQT9RkVv
5mmSQGOdJkI6IssbGXxb2rUQpNwCF+V6ZEuSbVQgYiKIGHv14shO7sfYR3CkulPo8yi3r1XGfPq1
cWV/h7Bm4UnS21wLysDs1wun8wVEYS9Mk1dfV6b85swlTYNjolz8eUApuGq8XNmRSXoAzJnfO5F8
NGJO5EQwZ77gR6vqboT3M9ihaZ317nHfMUYmZ4hfb6/Rfrym2ZgOKRrm7ojrZ3okY80dBWRHMMHT
S3TwOsHH6oCYby+NZ6uJFzQGodY0FPBCwwPcZyywO7LlkSKK9SABJIAEDp0ARMR3vXwSW7Zspvni
FtF/y9M76u8Y7iHzeV7zjs6QQdMogUbYAQeWHWQ1gCmUa1QP4rK0fqCtzXEIJbWqeEFZzBwH8+1M
GlLMvTWCEOwwce9acdjfq+S7M23Gpo8ni0+d5mObFoXCkYhIh79cyXLuG0d3BSHK/95NyfdS9fEt
Sn6cOAZJiXDz2GxSDnnY4aCz/aEqSPuCAj6mT47SX7xyZePkenv66VctCV1iE7i6uWNrYdBV2Dpj
c6hazWoFDhdCLH3vvL/FuYwqpq1D8+qDGIbuPcI3mvB//V3ijhfOYstJhZFKPQTbOd7fiCaLPJUU
P5hAQbd7aPFuJNBTBL4xYbeTDhguyCN7+eC0cVzQrYlrwe98UvXq0q0h7qMqEoi2RGxgQ0RtwohM
e4YNgjv1EAhThrIHeqj7+L4ZGStrY01bapPNq6vjodU7o0FYfDbbnXT+/RP9o+88Lus8ruk9q8A7
9FG7uJon6kulNBVIoZemw+y2r98kxKotzrD34W2FYFTJNfVgdhxPqvUKiDmwVua4xUwfBI9qCKtK
axCt3f1iuj4sS/bxQ1MeoqsyysA0u9Un98C9b9UeW1Nv29yrB34U7+hhAh4P0xs1mlZryheEI9Gx
a0Pso0n5NFIKmxGeeoi7OdE6xTm1kITsS0l9QpAGG5rRqbo+BIkiip1Eu3Mwffb+0sbxOwz6Pa+m
rycinKJ3+mXIth8PZJvfC6gljaow6Yfz1AlxJo4Y6SFP5ReSCE9T0Vm3DchJyaNxQo6wNqmHehgS
FocEkAASOMIEYP4VWJTanhxHXr58WcOUoOmYoTQn/YQnPujQBxRWY/ClBUurTv1DE7C7OtjIw2dk
mMvXVynJgC6c/teV6os/L6a7IJWOu7U8P6S0oX6mflirn97s6T/RFquMFnlJ8sHRZPuzu8wlQTnj
zBcrGy6+72T2eGGU0rZaZtinaCSXJp+fTS9XnZm5WUrwswdHklISgWwYHVyQbsd+fiFpPD9g/OXN
gPLcKgjkZSesngdd7ugyuMMVxFvpKKgWv5+bXkPUf41pVChTDl77fYRfkQNWB+FFuZAvl+wTs+Lg
Dj4OWCHegASQQJcJ9C5hN2kYowekZWXKIDTCta5B2bF0e3Mt8cKJXWvQJa79NDTzlFzXQDhQ6xmN
pkr0AV4qv31Wv+8MznD0f2N781fXvVX2BaQPkkH4tBxg1IShPbAkuP7qoWkTB6c7CsAzlwshAjcv
bpF2yen93cNAMF4GAi/Pv5YSNyCac98su/eUfu5i/p87wlrVhlqeE9ggGxuVWngGcg7b+0IqpIF/
mVe5ljisSM6pC+r0pDmc5w9wj+X/GQLf3re3h6sgaFfXhHzQEkeSmuX7w1cfj02gtbqVlwktnrv8
ifTcjRAQyn5LnrLuiyDbFLOnjbhiVfSnj0XYP64aC5GUPYoKPlQSCxDH6R+TC5pN2/GyFts5NYdU
kCjfEHQs83Kz4bumsbKPg/TJ+SHhT83EPsHSRnR2haK2U4o9DblrjYVlUfP6d0P22yXBCJ3oI8uJ
IkqdbVB6jgKWhASQABLofQS4ie2MQjl0cbn61/8FjGcjgnM8HK6D2JawfDLbXqIANrWQRDfX2YFD
LNzIfTN52rgD5D/vEAL3lf31aLLlzRr1vQqX/8pHyhrusVH2yE8mgfaVp4WlURMSxdKz3xPPK1Uc
1wtKtTY923gd1gjr1P27A+g/ntsVnrDddPzouNcSoQ/HszeKi2kTSN7WfilQRjzn/C/xox3M9QNJ
DUUuziMvQpRlE3S1ne6nKoLU9fpUunjlh8rL2/S0HzNVyQZboW4HguKCLhzS0n/XQgIhaujHZ9Eo
ZZC2Di8kgASQwGEk0LuEXXBKLW9WlKTOfW1FMiTdnpuRaXM3NSoxCAoBSTxhQmbEfODs/iecke8Z
38rFTUUeHTmlXj2Yyy6K26sTYR7KQZYE+YIBngkzxmRunbUBUg9RCAHIL1VjPxiXMyTXbfPz/9wW
UeuhLZAxzdK4WtfoLOfQZ87JP/G2TysgjZCuE0MyRbsoPX9av5Pz3DQHGmi+vi2yiiQhL6nX6Xhi
VXDDxYXpx3NTZtAYn7a5Ph76ZHOk0gqqBf0EbTJ96ez86cBhAC9/dkV0XbCRa3a77pwLuX8t3xoI
RWGbmO3I3A4m4JBGiftadk1gPhie+EyHBAIKozOKaNOMWvEv79cm/1wu+753/cbGSXdv1RdnSLRO
FURHMGkOa9DpmYIo6ZPS9WdvGE5rwL/XZoAPELh5g7MPT+PX/gqUUdd7k9ms4s/ItBrBeSGPTQLB
zndLx1wjyyNZGnqLRUCQ2aelGwvKYuIPmu2+CRlG8KvHxpKSULUIOyk4hoEAKzzIiS7xyOLWBe8L
fx5z5+KrjQSQwNFPAOyxYC4VqGG5duw5SCyFfOUvTxWXLf1Q/U+pZr+VSGDWayptTxqtObE6IUzv
/5KeBmv/PjFDUuXJwuRMY9a/xolLA3v57nLNJ6SA4I6bHe6/eITlXJiJ7x5q/vPe0vpBIXvm9F9u
bCh8cjuZnedQt6nELpcnyJiAIlxKbHYyyhH789uTySJuKsvtZp+eQDZuDusPzQtLv13LMn41ZlFk
Wr+V+rIMatSHNLFvtWYc3ySmT5WIGjkxnf3+hfFkLQj6MtcMW25UMNebgtpufwBt4ubMtt+P1F+6
flVsYtSRNpYkY3AvD4OcuiAUs7XOWOtFJxev41dl4oC/7SJPy5JZ8fxocvcMP23ia+P+3ipr3eNr
kKF2WjbcI1r1Q06pzsqyxt3kBfEMGge+4B1JlanzMjuWybvS7wPXhHcgASRwOAn0pLC7Z2O8nxbv
9qPtSCsL2tBAgxJZGVS2nz/Ak12Y5siff0nh5a+XNq3aFdXiQzMc3rMHuEdMyXaNjjEjzlMMgYbV
lu2SPFw4hKXDagMPmGiFzt//lbo3NU2LsEaYf1pVv/CF6XkDMh1Sxutn9792wUjf2sXBZBWD8M1T
wG/39ALXeG7CXBtn9U+tblwLZtUU6tpdD9c031rsO/eEPo6CWTtjm2SYJs8e6C0e20cezmuZXx1b
8/iy2s1WtGk4MC4Pqs1/Xh2c++epOVdyYfi1cwp+MHdUfOWqBqU20y46Ts33jBib5Sjiz5aElLJf
LAwshudgERJb5Wur7k5ndli4dka4qTSsqmDy/X8n5V563/F9aj+rim39+adViyHDaodmS4fzhfu2
l10aJPLb44zFV69I/uzjRv3mKJHGlhvyteUSuBtBSguiRyHVtLllilf5xxcn09kVAebKhzy4lIp8
ixSDIY3vvejygB/FlGq/KGTPPVAaGZ2UnP1BW7vbxgw+8qTAVE2ypRJLwObL8ashZPN7teaGSDI+
epBTmO/zaCyYSPmfwWekCAZLwi4ulVMR4mAKuqrxn39DKQy/7a8N9h8JIIEeJAD57eOgB42BBNXO
7YgHEVSixPb344T/fmdpbDxYyoyHeBm7IyOLpqAJPOSGToZWqXZYmzsQgPiWAOSprZH4dggQtShI
wYMXhMXW5kOGOJjLhRgcPcZFyrWx+3o+wTrhuHUIqfGJ6q/vLWu6rsIULt6uOX+8Pcl9iLlAZ8A6
oW6Z6Iq9+N4kMgvy5tpa6+BuMZ+dQ2f9aG48+EFQ+2GjLpzcxDwnQhBMLghCsve46rPFF8zIUl98
dbp9Kb+/1ZeWh2eGpUMFPvvM9dyc+fJhcsM7VeRv79TG/gyn+R6IUrg7UJW1brCkBvuRfYNX7Rk7
M2IYNtUU80AxLAUVA0IfWhrp/V58vHi7uLjb2Y4HAn9q1joHOXc7K8wad76O8oSWXbigvlSZcDLQ
2e2pfqtwMgwsEvzwpCe31V1oJN6CBJDAAQn02FcJ8QItmav1784nm5b7REGEa9/bwCf39i8r5/c9
d6B3QrY8akyWY9iYKX2Htb1xfYNS+uCi2s8fmNL3NC5ITs52Fnq89KtojMEk3SrwQgSJTsycoWbe
TuvkUmo1j3ZQ+6vrGnfkeezv/XJs5pl9XdR/QWHatAsK2zdxe1gt/+XC2o9XVkYbid0yceYdshay
d7ZHFozzOwZOzHaN4n9anwRLZ/2jnc1Lbviiah4sKjwIVerU1E3tT60IbgYd8P/uGp91xgCvHeyo
vafAn92V6oZpfFkVX3Xbl9Vf1IYZiCNQJ5h785AIrX3gyRA65O2g0ntbmsp/WJy+dmpf11jIH+zj
f8BoiD+xJLVuYATnA34lPXgD35CUwii+Opksg5P4dU/vpIVrQ/HBzSyeATGq1IFpYvlPCoyS6Xkk
zP1juRkcbGTsJ3qNxgv7iPfAAYrqlSUGAm67gSsJMfn2wbQ6wIw7NzbE80/0i2WhcupS4L5Lc8xX
SyPxuWf5SGUwKDv4sz5Yxa/rZ/5hcySWc8NAsi4QpDI/veddvaSf8J/KmPnh+X6yLVhB0i7NJuvt
RuzOgV6xLgHtSSgpczi8kAASQAJHEwGeosfvo+qFOeafFY04TvbSejj8axeViQt103Pl6F1F7KF5
dZGi0V6zAoLv2eQIlS7qy5alNyTvBIsuEOg6Tb7Ajb7Ek/tIZbzstoIuP2g8zUdrd/oNay4f5iY8
FQ/37t0HI3dRuThXDl1VyP78u03kzXkNiaJGnWQLepL1k8Xqa/obJZcX0WBFkDlD0K/W4EdccC2t
Jq5/TRDXPBbRf3l/mThsY6h5MByspmeIZsNYH9n+4BBhm88psraCLl9nzs8ytkeS5BdD3EJ9gkvG
ezWrpJx5nhtFV9l1/We1Bkm7KJuU8udk6MPFecZ/doajsy7OoaXB6o5z8cK9jusGkh2Lm8w/bYsJ
5/pgzUuAoXhn7xBfq5yMGt/pS/4c0nTvaVkkEISDgL3vD8L6dUWOuCQzGLtzXDopD/Bctnx31tL+
EESkLvAS5aIc4c+RpCGf5SeVvN37e3ehHvmyfPuXecHYrnE+Wg6HwfzYYk+ZCrQNCri4v/hyWTg2
+7w8cXMw1EmQ0qPpI8G2IoFjkEAPCLvWRCX8dV3j/IFp9rQdYTViBUKCw8u9BCkBBDXpv1uaNkOQ
pWZIHaSUNSlxMAJqb05LRWlniMWnv1P27i/G+0sm9ZX757jsaXYIS1UV05o+3hnZ+q+1oTIlxpJM
EudNzXFtDqtMdbioPQpC4MJAov4Pq4LvgkRpfhWI1xEQ+NqNGwiaW6He368KzvRIkn1mebS8RdPK
8/va/ryopmRWeSTw4xGZRUPSaVZfpy2DSoIEkZOjn1VEtr5UEi4LhCA/MERPBqHTmkpbdbtLauPV
P/uiesGt4zNHTclxDciQJbksrNW/vz289ZUNTTv5rZxBm/bAf9vpM0uDm+dUxeuuGZZWOCZL7pvv
tmXCSmqUhpK1H+6MlL25tbkCTmXNFv9hiGklShsbExHo50wPleyzKmOVVj/3llthBBpVXTv3o4oP
HzqhT/lAr83HGwua82re145OlI/Bd7zXdYlvfmAj4/SCwPn0CLaZ+Oh6IoNpO/eZihg0CIsw/33r
qgoLtQgBPZR3TzQW8neoJGTIHUW15EFI/jSMbKMetjkUovaKqAhpDoj519FkM/xsA/hdycGWtA+8
zCdGk1L4eUkwJDusPI0t19/H2zfCoq7DJkoOJKjju31Z/U9Gsc8J80glQQWtAXrdG4UNQgJIoCsE
+LwJGdKMVycQnknBhKBPMp8L936Wz3N35tOq+8aQHSxq2Lg/L+RBkG4eSAP3jFN2Wb6zB7h4jIYA
+Ke2vY3XNdZL4q1zeWnEgMPHzo2zeAAnSCpEfz2UVN43TtwB+tuURlITpVBItENUYis1495RfrmG
mgvLfI35+0hjI6wxa6w1JgLzPASsqkgYtr2j5/N2nJ5lhK8bTufy+BGdzfU8ldHLk41VRIb8viFw
vYG1g7NJrRvgahWijgBEcO4o8jA/UPXKRIXg0v1lSLZxbQFpKE10npedjxe4RpuvTCAreX0QNXv3
GtaWKzeDvqGABu4ay3YpIdm2d+ArLjRDUC/26gTDGnd+kLw/7rxsvlb+tIBU/nYsK1NCdJ8yrUjL
cB+s4ZtgHV0PAreDtwMjLh/oy8DfI4EjT+DQhd2WZeLZlQ1bCQOBjDuxcu1jRxpDEL5mbY/VzCoJ
V1vTO/ikdpBn1xLm4rqhPzo/sA7KW883+JZIzIMrgfOiVT6Y4M7cEq6euTEEPq4tdcJzW0PJ2L1f
BFZZKJ1WO9ovZGAHGkwYyUe/ql1nGbK0mBS3oOeJbG0bqhNNd1RWLG1pG9RtFWFC/ECQoUFYdYKP
cAdXml20VwWTsfvmBlaC8AltAAUsbzPnkmpLByeYcA8Ex9pal4j8tiaxips3W/3lFw/GxWMoc07t
hWSxOsqUPX2ANnWoJueroCg1JzTt559XtfaHR+qF9AZc6Eat7pH/5PbUyH2zrMiNcNp/oHbwhTUl
AO//4psyiKppvZ98k8D/bvuztk/v+Xn74/u2mxwK+RiD8MYEAxQCp3WcdvJAbcLfIwEkgAR6E4Gu
5AO3BKbAHp9cPp9y4TUQ6FgT29X+8cj7XZnLW8uzNLXWvN5WKOxahN9915j9b/ms+8F1piNN8+72
tAjSbe/hbEqCfB1LqVM7E/gKvUR7cBMZmDCEdNCyvhjSNJGxzvMIt9aZGq/O+8zr44Lm/sam9QCg
q+PE7+vKeLdfczGHbnf44r1I4EgROHRht7WlXAB1dEF44lGK6V7a1o56y4U3nl22rVNMymh4T5u5
ANheCOTymwDmwR0EjWhXiSXUdgqZ94VnfEkFvdpzwYx6wIGRLWGYlw3PQhn8CUcXUgWl+sH/tK2T
N6IzE5/996FtQzlLh5WpN1U2JAk8YD/wBiSABJAAEkACSAAJ9BABLhhekENqrxgoPVTsZMnSloPZ
Hioei0ECSAAJdEjgwMLbNw/umxHMUnL7odR9sM8e7HP7H6m2/enCmcQ3P+zYAiSABJAAEkACSOBY
IuCDmNE+7qZ1AJ/ZY6nP2BckgAS+WQJHg7D7zRI6QO1WoChRsDhCNMDDI6j2agLYOCSABJAAEkAC
SAAJHJgAj1kRJHtiRBz4CbwDCSABJHBoBFDYPTR+Qkw1WWVErfXaJVddXOVOjSjwHhpTfBoJIAEk
gASQABJAAkgACSABJHDIBFDYPRSE4Ge7uiHefMoH5a/aIc1RncJU8I09kL/wodSIzyIBJIAEkAAS
QAJIAAkgASSABJBAFwigsNsFSPu7hUEi3MqmZMxKo26zgkChZvcQmeLjSAAJIAEkgASQABJAAkgA
CSCBQyWAwu6hEuQBoyF3b/tseodaKD6PBJAAEkACSAAJIAEkgASQABJAAodCAIXdQ6GHzyIBJIAE
kAASQAJIAAkgASSABJBArySAwm6vHBZsFBJAAkgACSABJIAEkAASQAJIAAkcCgEUdg+FHj6LBJAA
EkACSAAJIAEkgASQABJAAr2SAAq7vXJYsFFIAAkgASSABJAAEkACSAAJIAEkcCgEUNg9FHr4LBJA
AkgACSABJIAEkAASQAJIAAn0SgIo7PbKYcFGIQEkgASQABJAAkgACSABJIAEkMChEEBh91Do4bNI
AAkgASSABJAAEkACSAAJIAEk0CsJoLDbK4cFG4UEkAASQAJIAAkgASSABJAAEkACh0IAhd1DoYfP
IgEkgASQABJAAkgACSABJIAEkECvJIDCbq8cFmwUEkACSAAJIAEkgASQABJAAkgACRwKARR2D4Ue
PosEkAASQAJIAAkgASSABJAAEkACvZIACru9cliwUUgACSABJIAEkAASQAJIAAkgASRwKARQ2D0U
evgsEkACSAAJIAEkgASQABJAAkgACfRKAijs9sphwUYhASSABJAAEkACSAAJIAEkgASQwKEQQGH3
UOjhs0gACSABJIAEkAASQAJIAAkgASTQKwmgsNsrhwUbhQSQABJAAkgACSABJIAEkAASQAKHQgCF
3UOhh88iASSABJAAEkACSAAJIAEkgASQQK8kgMJurxwWbBQSQAJIAAkgASSABJAAEkACSAAJHAoB
FHYPhR4+iwSQABJAAkgACSABJIAEkAASQAK9kgAKu71yWLBRSAAJIAEkgASQABJAAkgACSABJHAo
BFDYPRR6+CwSQAJIAAkgASSABJAAEkACSAAJ9EoCKOz2ymHBRiEBJIAEkAASQAJIAAkgASSABJDA
oRBAYfdQ6OGzSAAJIAEkgASQABJAAkgACSABJNArCaCw2yuHBRuFBJAAEkACSAAJIAEkgASQABJA
AodCAIXdQ6GHzyIBJIAEkAASQAJIAAkgASSABJBArySAwm6vHBZsFBJAAkgACSABJIAEkAASQAJI
AAkcCgEUdg+FHj6LBJAAEkACSAAJIAEkgASQABJAAr2SAAq7vXJYsFFIAAkgASSABJAAEkACSAAJ
IAEkcCgEOhd2TdOEghkR+R+R/xuvY5YAjC8fZ8YMwrRULyWJEEG0/ikIgk4IVYuKCuEWJhyzGLBj
SODIEFBl2dHyoe1ToZme7oHfWd8bfmtHZjywlm8JAUplA7ra0X5GYExJLXh4IQEkgASQQK8mQCmF
eZyqsEnic3pHV7t5vnNhV5QoLAlpRDdUYuq4CPTqYT/UxoEsqzHNTMu0m+l9iElthKgJIqhJq2BN
U90fffRR3/r6kM0wDNyAHypufP5bTcDr7Zuora3LBAgdfEumtH795j5vvfVRMhJpsH+rQWHnkUAP
E6iqrXeGQyFnuwN8WNM8LneyoCAv1sPVYXFIAAkgASRwGAiIoIR1u32arhtyh5KuSdrJtx0Lu7pG
DE96HqG2q4lpGMQUUMA5DIPVq4pMRExlxo/Sk6dcYTXL+dE/iG3bKiJSO6mtDZ5z402/Hp/anJv4
LvSqgcPGHG0EBCIauq67DcN0tJ1Z+b81pme++ebMR99660OVCCYeMh5tg4vt7cUEBIMxPQ0ObL3Q
yLan/gJsnOKUSk24vvXi4cOmIQEkgAR2ExBMPourmpa3t4QqgKhiEqNfW1gdC7vcgtkGUo7N1pdI
XLmAe65j/w2DV8MP7wYo9IkB4293wrqf2g+oGsvif459BthDJHDkCHR4hGiatoSSHHzkWoE1IQEk
QIiepqpaDpJAAkgACSCBo4cAuFl22FjwxAUhZs+1P59dmP8Z/AH3Mf43Xsc+AbBmtsaaC7vmHjN4
1Osf+0OPPew9BPB76z1jgS1BAkgACSABJIAEji4CoN1t58uL0ZiPrvHD1iIBJIAEkAASQAJIAAkg
ASSABJBAFwigsNsFSHgLEkACSAAJIAEkgASQABJAAkgACRxdBDoXdnnaGZsj9UeENDR4HfsE+DjT
Fp/dNmPOXXdTmajwQgJI4NAJgIENuJl0Zq5sWB/codeCJSABJLCHQKtvV0ffHa5x+KYgASSABI4+
Anxe73BOJ+0DfHYs7EKQIiEariFKfCGRRAa5ZzBC1dH3DnS9xQJENbM7dcdnL0+ylW8abIKgK1WV
ElOyWUJuVqbv87FjR3yc1Ay0BOg6VbwTCXRIQCSiWlNbU7S9bOcNhr4nIjPfcENE2NCYUcOeyfKl
N+D3hi8QEug5AiIxlJLN2y5sqA+d2XZzxL+7tDT3inHHjXoNIlYIkLURMw70HHYsCQkgASRwWAg4
bCJbtnL9tdHm6PHt5nTQFoiCUNW20o6FF9DqCkoiAsGK1hBJSkKQKlTtHpah6i2FgrAruzX7ugWF
ti0rBps2EHJ5NGaeahmCVWVm+ra8++4r70BrQc2PG4HeMmrYjqOWQOwXv7h/WlnZrutAhcu/qd0X
T4Fy1523zT7//Bm74Icd5o87anuNDUcC3yyByIRJZw7jwu7ezXC7XeUffPDqu/BzvtfBw/1vdpyw
diSABJDAgQhw+7fksOLJ07mwu8/NghA+sLDL74BdF+iGnXDKCQei1gKA17FKQOQpqQxquDzUdHmJ
SW3tegq5CWFDztJLS8vsjDE89T5W3wPs1xEhUFxcTEOhsLuTnJ7ili3bvOefz9JLSkrbCcJHpHFY
CRI4RgnAdyem1rJ9L90wbKFQMD0aVcRIJILC7jH6DmC3kAASODYIUErNoqJCVdfN9gLLnu61k1vR
LPXYGHfsBRJAAkgACSABJIAEkAASQAJIAAm0IYDCLr4OSAAJIAEkgASQABJAAkgACSABJHDMEUBh
95gbUuwQEkACSAAJIAEkgASQABJAAkgACaCwi+8AEkACSAAJ9GoC3D+nN8YL6K3t6m2DiZx624hg
e5AAEkAC3x4CKOx+e8Yae4oEkAAS6HECRV6iUg/VgiEiBxXWo8EMi/0kSRiESIT/B/8nlkSsiPA8
HTgIvweODF8oU032ETUYJHJAUUDmot3OYAyLpGmlpGlzeSkx8r002fqjUILaKqLERinrdvmHOiCp
PjHSFR6HWld3n/fLVPc7mdr6XDBC7AGFHdQ4dLduvB8JIAEkgASQgLVnQAxIAAkgASSABA6GABcE
/1hG+2+NkazzstiuyT4ajTDWI9FsuRD9+Eba/+MgOS5minKepNa8M5F8DQIlKwlR14Ha66XUeK7C
yFlbSrPP9qoV0/y0OQIC84Gea/v7Yh9JKAlKS6PE3irIckGXwtJ5zUo2cVuMDqCirJ+Zpa65dahY
DsJcZ5Ehu1Ntl+7lmu5cmTI/HAiUBgnkiutdlw8EXX74cctacWqFRvrZBFm72K+uuLqA1oQU3Hv0
rtHC1iABJIAEjl0CKOweu2OLPUMCSAAJHDYCXJjMdzLt+aXsmkrdeXWUGTdeXsAWlYCG91ArLQRB
9/5N4uC/7TD+oji8g4gokXS1acXSiLjqjnXC+eMzhI2PjTRKAqAp7KgurvnNByHwmUX6ZdttfX5c
Fan/+VVjxVkl5QxSPnXhAjUp10petkScUqka/f492viYC/b8yXynrB23QPneurjjLpM6JEjTR5ih
/va3J9PNwQhL70LpPXILb9/CEPH8bpV5yVgP2fznYrY+oNAOefRIhd0oBA4ETNlGjIsXCj8uTdpv
JbxZpkm8ovHTO09Qd4TKibcbxeGtSAAJIAEkgAQOmgAKuweNDh9EAkgACSABSMhuEEPnKtMeMeHl
gqoM2tPXqs1LFEf6oFwj/P7odNuX43xk+w+Xseu3avabcm3qLT4f1QIR1qlwB5pP0WsXgg6lucKX
LkZYpOsm1kUeqj5dIea+V0ueyqDGklyZfBBlVMylCnuqXM3dGCU/FAhLjnNoT2Y7SM152XRTsFzp
miDdQ69MbiGJ3P2KeUMps92aZTNv92XLaqC8cx49VG2Xisn3kuTdW8iQbTHzBzaJNRwnq09n2Y3G
7+aJ64MRClpoMAzHCwkgASSABJDAESBwuIRdk0QsPx0TjJUk4qQdm3ZxgzJmmCSmwb1SaqPkFu2E
wlE5eGntcwngN6UYGlGN1Erppg7YYbX6Uhktde6/jMMJ1YBGQ9O7ffG+HsRj3a4HH0ACSAAJHAIB
ywc2G/xoNUUgNtkgGp+BdZNr7awL/Gi5aa0vmyVYiDiYRgXZp6hwrxmqIzL3a5VlZhQ5iUpAWG0p
x4RyhBDcz39fKMN/5bJoRDf7Ez1m3Dva9sxPprhXE5LQXvm38n0iUtLHoYaJh8VgAXPt7U9rNQPa
Aaa9jn8eR9+PJKIfZnplVr6XxrkYBDKrDS2XUkccZQoDv1sq0AKquMujukG9LhtVmn2FWsRXQVwk
X46FylQ7I/bsLInNXXm1/CQhijtQqvoCUdqhz25xLo3DPaQkQF3FfjlJQBtuVakpYiBI5VAHptXc
D7fIy5LES1NrHfAOhagj0Nb8l8rNipD0cK2338GAhysGGlVXqxk510QX+aBiL9U5XzCwhjFg4Lvc
sQlxsY/y3zBCrbE1WYjZS1s054xRocijqHI2VQLVsPISaoL5tMLL5M1rZbf71colkeBK5jbsLnc/
Kf7JsqvIUzAqvooSmhEIqpxxjxyMHMKrjI8iASSABJDAt4RAzwu7hmH63XbHd0ZmDpQlIm1uSjZ/
tjMWbCOU7kEL+gCf02a/eGTmALdNpAz2TB/vilbDHgM2B8a+4p9isCkDPX1O8MuZvJDXtzZXBhOG
QgxDyEujzu+MyRwM0VGET3bFAttDiTgInu2Cihy2MeVCrtZyVO2E7UJHgnpHlRuwUUjCtsxGRRDw
JejHYWsiFowEkAASOBQCIAwl/lvG/G+vpsUNzOXLokrDH0aT5VQQdgcgIh7K3ikh2e9toMPPSDe2
5cgk+feV8mSHyBJX5dnXndfXaPQ7if7QFnHg+maSW5OQ/TD76f0pq/vxYLLplHza/OwGkvfpWnqi
oht5gsG0V3YKU2dXhwdHbKIaN4RcAuedS8O2iVd8pNNbc41tg71U6chPmPvWvlVu5KxXPHnnKmzb
ND9p4kGufPDzXD9VfreODVxYx4bEDOr22UnTZXlk07UjaW1FnWJ/4mv7wDfrXFMJyKUJQvLOmynP
mJxGdtZvJ3R+vXwiMXUB5Ef3eR+JF/tFEn9gCNmwd3AqLmxCSCzxuq/YeJXYpVcnGMuf2Kjmfx40
ihKiXS5w2GvuLzQ2FnqpVhra4xPsp0T3e5l6L2hGVzawgUkmujKd9oZr+xmbLi6kDRVB5oQ2kQs+
YdNjhgQHAhpZHrZPuOwjldzsN7aPhHGCPuqyjRm/2CgOXxsyChMGdfqpGrxlIFk3I482lYTYbh9f
qz4/TT60Wh28sME+JGHITp9ohM/MNrb+dIxRWREATSwcUDxebu+/ZDUZeNdAY5UTxvC2eer4GtXe
B0yTI1fmGRuvLST1FRBADPyihevmiBOWRqTJXOMPi3nm2Z+4Ly0QE9F7isRNIFIfmXX5UF52fBYJ
IAEkgASOGQKHQdgFEzTA89gk/0WZsuTbHlbLh5Rt+yf8SNxH4I0x9eIRGQP/dWreD1uJPrWh4cM7
Pq5aBKfRe/t98ZNg/U+T/KdMy3MfF2dGYkEg8VywKRYH4dI8JdfT55lpOd/n5diE2lf/Uh0rAS3x
kQkWAoLu1aMyBk7NdeXeNrdmCfQT/LgO8I7AoQAIyMbDp+SOizFD++PXtetBA94r/K2OmbcbO4IE
kECPEOCBmq5bTo5/u1a8OybJI7mAxcM0fbWALaCikBDMlpM6ELTeqlRGzYnIf1sdTLwbN4z+YXfO
RKIzEiuvv/e6CeTtYa+Sn+5QbZdrmtqXa2mJBH8MiXzSoM2/K0IeXlhnDPukyfGMFQMZ/iyN2h4k
ApeP4I8Of4FhzybV87OyymjNeBe5flo2q4zs5btr+eyC3+9/q40Ltgvum8LJ0M+uL6ZzQFCUZS81
Js9iV6yO2W9WDZJjAYLy59Rr214tZ3/79HL6/v8WG1etNtLvJmY9aTboxE+CjonlkegTQVUcWit5
LyRmE2lm4uRPQq7JaYqy8qUp4jWlQeZqGxGZ+9SuizLbWzXiXbpppJ26gDyzuFm4I2nQ/sQOy5sa
N+cGzbeeHkOenp5NmsH/2MaF1BCslWfMla4riUs3QGxnn9W+Zmhfjbbh/Cr2l9cnkKU8+vMXFfrj
CZu7gLAYKU16bt9RGakf7RJ/eMZIunV+Gcu4brV4c4UqXq4LNrd1kCq5yLxVyqprAuqfnplqX19a
obi8oIUPMiKd8ql+09a442om2PxcQCWCjXzWJJW/WZ18fuE08hGRqfraYv2MTUnbz0Mq+01pXJ/e
qNFTTJuDcnbzS+Lr54aNP714Ml2xrpp43t/FfhV2pE8krIk0iPT0OY3u07PU+OcvzHDeXFISyeiR
lxILQQJIAAkgASTQBQI9L+yKolhRp0Y2NCo7T85z+/q4aMbwbEfa5kCimThAe7nnMrlQeGo/V0Hb
dk70uwbAz5dYi3Nbk2Bm6AV+OW1gmqMvv39dg7J9YxDKtMHdGmy9QHiEJ3SQMSUGGuMu9P3Qb+G1
GIb+RxBYf3Zc5vmVEbWWJNhCMPLaf/oNaJ+HSvS18/qfcd5A79R3ysILSFRbhcLuoQ8JloAEkEDP
EsiVmfZUmb3f6zXGH5KCrf9QW+z5C/sLn68IkwHLGsgtCck+RDQVSMPDT/gUAZSZTNCUZI1ou9Au
6FV5avAN3SDOyX3FTZPfMq4uJVk/cRtNa0/Plh6a7NMr1ob0vgtC5lUNjj6nP1savOXFYvJXtyP5
w08Cxq8SpjBoikd7pL/bCMDSkpxVa/44pNPpo+yxJybnCssn9TFDAYiW3JkPKEzE4PYC1rkuS0wm
+X6WOOFT4eqVCddvnEZyy7l+/aFxblI1NySOXdZk3jmnSf7TNR+xxntGGx/8dVM4tliUHkkX2ZIz
/Pq/pqSJYGUtzp0ZaF6/ShDuy6Dm16enN/87yy/GAmAi3VnqHzsxm8Oio3hhKHlvnpN8MsFnzK9M
NGet08Trq2jWFQ9vDu68uMD272iE0FxIZzR9jnZbqeG+LU2MrTjTrz9X5KL1nwaNyetAUH6n1v6n
X65nP/7zaLb1BwPEn71VFbutgdpOH+GIPjkpT1wC2vT6QESRvr9auLVc8H0/TWhacV5W4pmidLHh
9Up1xhbde+uLgcijEzaoP75sOK2XKdVnfKxev0nPvEM2m7ed7NUeHe4lNSCUj1oXFn/6dVT+3dnL
1NjsS9lM0MAnQRA2ljaZ93qpue50v/QrWYwllofEc2od6Re+Wxn6xV3l7AYusN8wiP7uk9qmUzdJ
tp/5KZt9ckbT67lUigbLEp6efTuxNCSABJAAEkAC+ydwGIRdqFA0xCU1iV0g7I7zUMFzdr4nZ3NF
rLGdsMtNeB3UdoLfWQgqW6Mqymr6e2jeIK8td2h/d8ZWLsiCce/u5icN47gsR3quS8rmP1sVTJaz
UFIhPgeYY/GjaCvY417ZEA/78HOBXTg1311kFwV70oDNQFcuEHb7pdmdE3NcxXAoLiS4R9XB+Pp2
pS68BwkgASRwCAR8BZ7Es4vV85POzP4DWcN/Sq+V/kzA7Bbi6a65fwHZ+oet6v9MIrRLBQT/bQPh
VPleLrvvX+frC0kUfEWrZedL5eQ2yQw3/WyI/ptHT6MlJAQxGnxszXsr6ZYrlgfHBUVhQoho9M3z
6dz0fwo/BmVuwUV5ZMVdp7DthPjjBf9uvCAkiGRsur72hRnq8tJSmgHBrEwP2BC366JlpNv6oxb3
UB9JPjHPPnRtxLzNLuk1fx+p33TtVHk73CbDSrPqxx8p2/8VEP77SY158yvTyY+CYXXx4iYbkUWz
7u3TtK+UOtkhF9B4+HPVsSosEKdo1L19rjGPRIgzGGQ27qvctg1eMCO2/lswBdPmpIMc6uul3xeA
neAgPlW56D3aNLMh+uwuIk5aF1DeGpMrR36xko3erjmvc5rxbV9N1W8eUyzXEaY4fk/lFRe9x8pn
Ntiee7VCve6xEeT+52bEls76j/vCBk0ko7zmuhdnSMtIQJRvX8tGVSTpFQ4S2vX8ePMXVw0jtUQT
pQfHKU/nvBMuqBM8M16rSRx33UnizAfnGCM3Juw32Ums+oGhxu33TCPbCPg6k1xtxUUzadXMWvr8
V/XCrWVl5nwqgeW2TRademzH+5PIz6YXKo2g8TVnrTXWXrKyaXhEF4uf2WkMeWYc2fjnM8j66o/0
zE0JBxhpmVVvn6/OZRUkPZQg0t6comBa3lPpqg7hNcdHkQASQAJI4Bgl0PPCLgcFR8Czy2OVPzsu
S+VC4Dg/aGMVbQMPa7H70gxzQr4rvTDN3k/VTe3t7eGVN4/KzOjron1O7+fK3loeC0Gegj0PgDA4
ua8rWxIFKamb6teBRIDYbfs3FuYaXv4/qMsyoYaHYVPDn+ncZ4gL4fwZUEVw+Rk0t/AsPNfRs/xe
zdDBt8wKOAJ3muDjBaIrBAThobM6qwfU0DFmwp1m63O8jTrUZUBd+/bJahP8TreCgfA/Imi0eR/A
NPxA9tLH6JuL3UICSOCwE7BMcUujaTWKfQJhzcZJucJcEiW0JMBcfgiYdP9Acdc/yrRFQdN2NsyA
e9ojSqLT1LZd6ydlShlNL4ewRzwv7HOjySNgRcxmjAWRKsqklQHqmbuaDJjbYAwVIGyDaTAxEBMd
UAd3Y7EmtzCfTQPg1pIbMQ1BsKxmFA2EbR4AC/xDN0aYDAKTxE2X+e/4z7xewk7xQSntLqZ/3iAW
MTk9M0sLfVHNJPvdc9QTuITqAmE5i4oJh67sDJvCxPlbSB+o13KDMYggheoor0PMjzBbxID2tPwc
eiGD/6tclyD2KER/btuGIjDp5gI3f54kms3J+cJiElAcPEdwUZTS49ONyo8CiqJT092owcrkU9ii
kH2k7vC4M7Tgmo+DtvRX56j5PH6VR1S1HBsJUS0erBeEE5eGTNfUfCc0xbTWyEQLDziAMEDTOtx0
eOQ80vTZVWPlQEmpAumQGMTiovrDw9iTO5PaC6f5jHoSUh3zQ3SYbvN6BwpNb9xzgr6jtIymcX7+
CLU9PoQsn1ejrGg2pRNeKxP6p4JKCCRHFhZNz5fCpeXEA7l0jek+Jeah9p0J3SwKGyKMG6yEkJdY
0eAgI7UuUhKlzpIEcdRB9GwF3gPOqVUT7vcSzQ9WWcphf5uxAiSABJAAEvg2Ejg8wq4kiqvrE83l
ES0wJN0+YFiaPUf0ORywVKaEztRuhV08KG2gXRLsNTFW9/z6xi0XDvQcV5juyD85x1XwPBW3wl2t
ulrr70l9nfn80QZFb5y5IwwxITv2ybVCg8Y0TfbaHAMgcNW4Ps70XREW39aUjAYbk4kWM+N9pcSE
AVFDRdHnEZ1Z1C6N9DvS02yCfX2jGq6IaPGGpmQcgklJVoRpvkGyC9TrtoHIndqASSAS9/U5nYZM
7WHNYKoOy3wHVxr45uZ7qRNEaIuFLIm23D5Ol+qiDvCHAlG4zUMJiJACAaz6p9ldA9PtLr9TcmwI
qeHaqKo2N2uwfYADAe4NjRcSQAJIoIcJQDJUY1aIpsNc5pdMNTxYFhsJ+Ity4SkEwh0EUkpm2O07
g1Y8wXbCLnGJRs0wv5kIMiZxwYYHbLq8iNY9tFIdfMdr9Opg0hytmCRPY0I6nON5TRuVZVPfKoo8
Um8XPFFsHp1RJlyzXr+j0XSMJ1qLYQ0E6c8U1TWVZ4sPgn+vNQfDmSD8TcW6pJEDkY1JSBMn37/J
fBV+2JIxSeNHleAHY8uE4FPmuw1C3mA3aT4gzlySfGujMegvO6X7NcGWZfkyC4IJorcwxm3899MJ
7H1eL8z1iaFeqUFJpARofiUMcOvhvsgCMWw2Ch2WaaOW7Eu0OKnVxLMfKGGnmgK/wVr+4P+Zgi7Z
MyVdjX5cR3KmElLdrn08MnKEQRkQxAvakSWbVRAvefcaD1Gfpcv7yfU+m1ob0EDcjBKpJkkK+L19
ZKGSaDKME7PWJHhMKPQyLcMhbm5WbSesjmh50AKQ2wlJt4GmmF/cehwuqFI0TJOvga2Hsfti80SS
L5R5R79UKdyrC9TDfbits2BJIhPTzBc+n6Z8VAqHAAfkjTcgASSABJAAEugmgcMj7IL4FQqrsS1N
ahUXdrmf7eAsp2drjeW3y4UzLvQSCOhk+etuCScrt+xoDm5tZtVc2J2QLQ8GgXS+pVW1VkTRlJ2i
rSjD3t+6P5SsjEZgx+KAk+N9NZtms6azK6f0HfKbidmnDk6zFThAoAa5U6+O67VvbQuvuGthYBWo
UOH/WoREvq9KGup5I9L73TLSd9yYLPtA0GhkyRQ0DHBBdiS9KqbWzCqPrf/tktqVtTHTOoR+8OTs
8dcNyzgpzS5a+RWh7f3X/XDYbXC/ccfCmplvb2jc2c4Pt0VL/Pr5/c+akuMa4aGi5b90/kD3xNN+
PHxUIK42nfdxxbuVTVrM0kDHmHbiQE/WA5P7Tp3gl4t8spTBt0YKM5TyGAu8vyOy9p6FtWsgXgvo
TTpOJ9HN9wFvRwJIAAm0IaCAAGgXTK5TTdmUtD/A88qGJFiSS/sLZDS7ZERyfTRZGmBOrskrAn/U
U+cY538Vke/TDSHDYSYrIGJ/ld9hLh7gFkuWNSVvhWPKvQMT7mc0FKKBEK2aoltlhk9IWb6ASGhA
eGjTmluhGW3bK4BVkJP/MM1OVvvsQolpcs3oHkMfO+hgbaaQHOok4VjSAMF0/+EXuKW0KYKTsmGk
Q52pNljiKRSiG7LXSWERs041WT8ZAjvboHtKJzlmg4qkgW8zP6vNsJOlsK5sB7UotKHFiAf6AmKl
IhMhnuMUQGtsh1V0b88ZngygTSYDOEloC9ASZn1M90UZPMvzDPEzCMsYa3cKprb3w5gDPwEMj/as
L04qxDhmq6wWgffAn4zThGQKVNPFdCYYaSlOfDUDYyhmOCi8R3B6cuBi8A4kgASQABJAAt0kcHiE
Xb46qkRfURuvPneAh2Q7paxRPnva1upYk3WQDr8bmOfJGJph78fbu7hG2QWrqfZVdXzn2fnuSfle
W860vnLmwp3N9eDXC0fgTD9tWFpulkO0IlMuqI7vsM6Y9xJ0YeMCQaoE47bRWRPAv3c4aFxpTDPi
qmFqXpvozgef4F8cl3Vhhp06fvRpxVfgdJUK8Zlk6k3j+wz909Scy9JsKQE0ohmRxhgLeWyiC/54
B3gd/W4a6eg30GPzzfig4mPYZekuKtjdNsEJ0UhTGwbQ7Hqp4FbhBNwBaZf2VU6IJlgpCx676HCI
IKq3CNvc1FuCLU2Uikkoy9qvQZ/ZXVP8I+8+IfscHtWa/zCs6hFdJ0mPQ0wrSrcP+tVxWYNOznUP
uXZ2xcfbmjQwLkSBt5vvP96OBJDAfghEwGN1YrrS7JBsdQqRBpWrRjo3SIZHeLAEEwQUGgMLWcLD
A+59gVqy9Uc8vc1/y0ifRRAECuQnx5Q09b67isiCi/MgGy/4qs5bqfSbsdz8KUhAPBTwgcdE4geh
VHTCUeTvi8QnK2PK38EAxmqExhQxxy1yE2Lwlk0daIK1DBRK9T6yUUMMmWQRZfO2a40HQdrzghoz
dcnEqChl3nJCbZP8NP7oamVQ6heWVrXjNkEU6HP6izWQfufnUaJLINrCjRK0ISlOSxdDKy1tpRVS
ggeR7rRjVq5gv6ym27VaIkI6X1FZueYa+1/B1DsD+sF1zrwIs6SMpYWoLHm5dTRhu9dvS3PNc+mC
NraPTQxsB0vrqBbrQ2wsVTlcuWCq/VS1kf/GMtsZEzOk5S9NJyv6OYzybbqNBCGzMeicdZ7/lgux
IJKbEY2KzYwV8IYXuCHwlSJa8TJS+t1uXlHiuKY/3VEos9tUA3T3IucEKm1IGzjKazQHqqHTeCEB
JIAEkAASOAwEDpewCxsH0TanIlb9i3F61GuTPCf2deW8tzFcbvUhyfQTc9KyQAj2J3gKoapoDQ9W
9VF5tOr+E/ooYNYrXzTIM2BhaXMA1myJmzyf0t+dA1KlDP6xyU+rItUdGe7yHQn3ygUtKGhJWd0z
axu/+Memph2gmDWvL84svPu4PudkOqWMq4q8Jz1f4tq0fFe8AcyWhcHZzvQHJ2afxwXdRkUPPbay
7pO/b2wqA19ik5+df68oI/+eE/rMyPfac0/N9xx34VDv6pmbwxW/mF+z4t6FgZWzLym8cHK2c+yW
puTOyf/d/h8iC464buqgnW6fSgiEW+56O+PdnTOH+Z3zPjo3/5o8N81+u6z5q5vfq/jcyLC54jqI
sxozLhyRkf/byX2/46aii7fp7xsav/zruobNMcVQIbBVxt0T/FPOyndPnNxXHvXsqTmJs97c8QGc
sh/5EF2H4aXEIpEAEugdBIIKk4qLPOGcVcnVYTNjysL6hqnE51xSrETAnYOxWWW0T1Alk0DY3a/d
sQ8EqbkNJF81pZx0Mbl40QWut7lwSYIMrGcYfWSbeKJK7dkOQy03Wtw7OiYAEzIP5aBrAuT0TUAu
XeeluazBZxP13TphReQK1w4EMkUY6xa3fxVOKJU6Oee/S9kr146n1SBuyzSXKH/92ii8v9T+pED0
5NvHs9tsDq74BIEMQin6sqniC6XMt9tdkDM2D3STdwwm1aBTbdFLwz3QBn7NDzGw+umKbJhaiod7
9NK19aq+TTMvWFrC3plUQMNgNm4nEEX6l5+oY5+pdv1JNtXAW2PIr+F20I/CigfePIYBFfpYAkyT
HUVusmNZMK5VMPOUknLyYnGBHCUJxUb8JPbGcvP0TWbWHY7mxt+DI/CikV6j7KtIMlmhkRnzytj/
phfLjSzAHDSfxO/+nIwKG/QEu6HX3FJAyr4O6mMO/q2kQi5l2l1DSdVuTi0a7iCYVPP37ODLxieR
ABJAAkgACXRO4PAJuzZRWlKVqA8m9AYu7J7Q1wlaXNjGpPx2xTPz3fmSIIjVMa3uy4pYHZFtjo2N
iejWpmT56Cy5aHK2lYJoGTTdAHs4caTPbqUc2h5m5ZsatL3TGLXrYVAxGq74tPy1hZvBr9frgM2U
QR6fXb2yv4t6fzo26zwQml0zCrx5y3dE68F8Wb96WJ/CHBeFGBmEPLGm/rPHP69eS7K44kIkIFyT
5xYENlKbSP86Necq0MI6pvZ15szcEKpUJaKrqmFA/KtUNCvQ6DZHkirP9AtKh5TWuIMrnjS0hoSu
wf2WukBlRG+OgMMZmGpbjEBF8ctx/olc0AWzu+SvltZ+8K95gRKIPC3zYFnzwOR73o7ozNlXDBDO
yvdOnN7PffyNE7JL/rG0fgv4MVum13ghASSABHqCQKg86vpBf/rhg1saL94q2G488bVY7eUDxQXN
Mbv7mXLzFsXmHiyqMZj32kx33H4YTJ9bzYAV0BIWp5F6qRqmOtM25qLZymm3DCRrwXKV/nuReML8
RuM+UwbDZ12RwybMg1wQtgyC28+hEBdBJXYnWdacPP2Kj1T9qlxj2wleEgtw39TInt6mzKZbbHxb
FcxRKt89jm3+oE55a5fsv/anGxofWRhMPjXeJzcsXstyP6iz3Rh3ZY3ITda8PWOYrWHtSpbOfUsh
ylXx6bPJ+RN86vbHJto3cY/WlAcy6I3hAhWyUNqa57dNG1JRh7mds+V325nEyw2trd9xzr8fJ6+Y
Nzs8u9bV99wLloYeuL5aeWGgk0bnLVYHfFpn+4kipw/O14NfnMGFYC72i3qSSDJZ3Rw7/ZKZYvLG
fqT0/nFs5Zw5iVm1zj4XnLU0dNftDeqLPljK3pjHztgSFW90iOGqy4aSBSxAnI+OJps+rk28s8vR
5+rLVjU9dGMde6a/k4UXrSZj3w9KvzYc6e4RNPRMcTFtNFeDQLpHWd/+1eqsj9Z7kOo7P4DoiFNn
aaN64t3FMpAAEkACSAAJHD5hFwJRgRSor65P7oKIywMGp9v72Z3UBr5VOvixSpP6ugZz/BsbkxVK
OJnkQilrZsrKOmUXF3YL0+25g/u707dXNofTM11u8P3N4fdvCCUqm4PJGEmnVnKJtlfrbmJhdbRk
4YZwFfE7LF9ay3QaglXNqoxW3DAyUwHzY2d/N02ztMNgUbUQIjv/ZU3DB+Aj5XhuY9NWS6g0RBMi
MoNDkRXJWVpcE2+IabqSZpc8WTI4XvFnwdHJiofcqongf1OJ/2T/AaMggBf4EYut+wa4GwRc0GBz
s+Yk0YtzHenH93EM5y0HHpv/tax+K8lyunYH94IAV+DPqz6yomHJ1Bz3SDeYaF82yDviH8vrSrl/
MzzWFVUCvv1IAAkggQMSCCjUds9YWr66Qf3NzEbpgcUJ90NL18aaTVFy2E2tCoIOfxUSbScZusrn
PX7yBzOmHbSNyd3aunKF0btGypWvB/SnV0ekX89skJ77rF7bagiiDFnl+veThbeiWjg/TN1TVjQr
+WClsgkmYAoHgnaweoX5zCCgcZRHpdOvK4NN36lwpF1VVdF4uWyIP7p4grgcIiJ3aAar80jA0BYw
J+JeqYKPyeLjo9k/fr6h0Vll2i/7RyU5SarQG3SbnMWPHnPV4Nv/GCn8NQTm2ZN8pDHTQeY2it7T
5kbFP28KN73/2GnRXxIeZBj8TgyidGn9BKndBkXbDYP7z7Z5BPoFv7MDr5agVbJQAAvOAyPtf3lw
U0iEQM/n/3Fb4hzJZM26zeMjhmYO1IMv/ncC+Sek8KFeEFbHZQhLdtY0Xl7lyLjs/arQJVQXbnxz
PP3ygSL2twe3hmxVpvzdezYq34Elp5lJTr9DVMq/0zf50H3DxIrSoOoqBJ/qP4yxPf/LdSFnteG8
+A/blTMlkzboktwHpFR9sC38z5cnSG+BObVNNUHCB5bMiO2jhTUE8H3mTAzrHbAusJ9OvQckgVrb
A35leAMSQAJIAAkcLgJdWqwPunKwbJtTGdtxaaH3ZPC3TZ/az93ny83hyuMHubIHeu15vNzZFbGy
lIAI/wEr/9e1seprh2cwrmmd0seZtX1LU3DkEAfcb8sDdyhjSU0cIlDqVnCNDi5rod3UlAwSF/eC
bXPBslsT1xMQVRSCHktOl60lkrODSl/uigWhXdWQvwHiVYKg6HE40ryC3N/jdOTJVD4+W846b6Bn
mIu7iPHdXFcihR4sNMPQZ+S78kCAtTZvXwbi21q04e0FWKdIF9XEm7aF1cqxfeRh2U6aDg7EsspA
FWFtDvFCAkgACfQMAUg15HzzRHHxs6XJG14ICKcGBbOwr1vYfk1fcX6tJjjnNrAvT84Ud4QqDJjs
jW1BFnt4uJvuCIYMe6tJcUVIsX09TX7z+hXqtpUJOj6qmNl+J9lZ7BU2vTzWWHn/Jtvgz6PC8QWy
2BCqoO6TMtmLYUYzJnhJYyBCbAmYnV8Zyxb9ajP58fJI7DgeJGFcOqkJtUSHbttTHv2ZP3N6Xzov
IxKrOzmblAbAZBoiSEsXZ5PwGSfRR29anZi9SaHDQ0kz32XXGsY49VV/HU1W5oIjMKQHco70EOX5
Yeyhp6tjc4KamVeUZm6CdrmmQp3rmpIPDXKY5QFIpdOaQmdv0jxVkQdsdk/KEv4VYQTiLEixYCJl
rgumu9JYh9I4JdP+23RqNvH7+P0VUWq7tT+rnZ5O7r9nS/SDrTFpeLNKcr2yVjPBo6382yiylj9f
EVVsHoXSV8bRpXdsNH68tCk6DuIhi+N8RlWwzPDeOpDUntFXuO+OtZGPy6CPcFCb1d+d3HxRX33p
PWPtu3jqKO72Av10XJ7NmqZPIo/cvDEye2uSDmtWhX4+J6uY6GWrnilmGxLglxOoI64zMoWlzljs
4dP84togpH3i7QDNvGUzPj1T+F+1wuZO95NK4G6XE8SYnimWBdTYw8VOuhVSN3Fz9Z55GbEUJIAE
kAASQALdIHB4hV0QuhYH4g0QHTmaBqbMp/Rz9f1ycc2275yZWwARHZ3Nqh6dXRGpBX/dlHAGmt9Z
5fGaYJw15oAv6yn9nP1fkcQtJ+W6+zok0RFKGk3v74hVEjePWrXvZWVpgKtZhRRCHWg3GRyh7xNm
hLuaWcl7dHH8SF/uTSN9I4ZmOPx5LpqV7ZIyM+wS5Cg8ghcjZrYb7PTg4vk3SkOJMATd3FdTzLUC
cabWK7qVHqOPU0rLgWSH5Y2miqmIjuB4YVVI4FtCoCREnLcWi4FbC9X/gdgCOWVVHQQ9KaKJ4mMj
xa0VEeYIJqh8XR6rvWcYe0NJUFqmsN2HjiDwiRB4j7w6WVxGWHwFWDBDvlUISCULZkXQkB8cQcoe
o7FSKMMehNy1H0wkCyCmEsyBBITUVFjkIPz9wji6lrDkOh4JGOq0Q6ra9gebLePBn3msiGz2OdX1
IIDtLoOb0vplor95Gv0aIiMvhj6AF7ClAzaCEWovhTKhXjMIptEX5NKmy4vJTPBnEaE/Em/L6Vkk
fN1A8qaSUKF/3I+34ysCqZlgIjc+nGjMh6YapRHDYTGAKwQ+quN9NLqo0HiP18/r5L/j5tcl0FYe
0OuD6ZCRQGFfWe2jEA8ZloQK+F3qPmqlBChPMPr3sXQ9YeqG3TxACxuEG/yU6Z+eYf+CRJV5KdZw
EgpMLEG35eL9TPGg+gdnkAVQ38JUfXy15PVRqI9HbobsA8PFbT6nsikI93M2/GetqYrePMFYDFXq
FRFYp3mqKUWhl+XS4M+LDOs9KI1GgakVUwIvJIAEkAASQAJHlMDhFXbBb3drgxLZHtYqxvWRRoz0
yX5YIoVJftnKl7sppO7YEYY0O60pgMAQqjKQCG9vTga4sAt+vgU8wvDU3FR+3bKwWr0zqMByzyOU
dH7FNbPDNAod2hbzKJYQ+fjx0wtO+NHIjNN8jj3CLaT4SXKfY/Arri1tStbNGOCdwKM6H9YRatNI
0GSbYRWE187MkiHHBDj+WtE24bjA5myJPHpY24eFIwEk8K0lUBKEo0kQyCwlHYVYv1aEYWYJoS3/
NkMgCEcgjHOrINQWFhecuNBsCT5WGcwGAaKsU8pIhHFhD8Je8ZQ2xBLCrOjAEFW5tQxeB5gsW6mM
eL2daVVb7w+A+fSetu1pCQ+IFAwQV5u+tJTVXvtoCesBiKIA9fF28b+5sAltg/61HNIe4G3Y3Y+W
HLa7+2L5sFJHR5x4m4MglO7bvvaVdcSjVajcU0Yrawrj1T4VUWtpnfPYU19nLPkdqT62pCPiwwrj
tocT54aC7rd20sCOIwEkgAS+YQKHV9gFIRb8ceNr65Mg7MojwA/XP3BYZs7QNEcu7/fyYHyXAZEg
wV93T25FEIa/DiR2TM11jx3gseVm9pFdRek26/6va8DkmYctOYBPKrjOdt2MN8LUX0zrO+r2sZnn
8Xy89QnW+OGu6ErI5RtcXa80La1VQuFgvPmEwem5Zw3wHn/YxwsCW21rUpvBUxjyVwrSII/dS5gG
8UD3ijvFNdKQZxg0z9YpfVwzFNCg6+BnzINjHfZmYgVIAAl8OwnsFjDbyIV7C50HEkI7KoPT3Lec
joWzA5XfdmT2d29n7dh7ZLvbv32f76wfHf98t0Dcmq7oABbAXevjgc2ID8Rj//Xs25fujNO382vC
XiMBJIAEkMDhJnB4hV3eejipX1Ybr/n+sHQzzyX1ObvAk9PPY8uGCMYqBIaqISL467a9ILjTzLJI
BeTDheN70XHjyMyhftmWwbWccyqiFdyx1wo41TMXz3tLrhziHcMF3aakHv7+3Ko3Pl1RvwOiQ0Nq
DVECgRL+lsTCDLvbKQn7j3Sciq7cbVOtdtbVEElkbX0ixMB3F4JQiyOy7FlcgQHltjeXM0Td56HO
XGDKUYSZGQklwHzbhsGpeubVSJXCY66CGskE5b/QcTqTlvssTdO+m/W925LSfrQfo5SW6sDPWu3p
4N7Wn7WtCzeZPfkWYFlIAAkggW8fgdTaQnebq/ckAV62kxx4be2szu6sm91t9+51H6xKcC3tnB5y
6u6b1TP3H853v2da2PtKOfzCrsNG3y+LVT08UQ/5nVLW2fnuQjsIjRVRFpi9IwLxJGHY2l4QZGNt
o9JcHtGqB6bZ8r8zxFucbhfTq+IssKI+2QR5cXsusiPTjexcR0ZfN/XxJuyIaIFPSyGHL087tCei
skEg+e05Bd4BPO1Qu7YaoEXVRAPMprmpMQGxPRVR2YBAlCnT7E7TTSQgny5EIbXMrSG2J2cAulxQ
14Iv7vqQ2lyrGMF8t5h3Zn/3yL595BW1TZoCeXtTAi+X9yNJ7dZJ/lEFkPuX/2hFUClXmpIJkt5G
S9773rejpkWFMtNkn6xCFFIa0piUD/p1yMapM/CH250+o01vipyQEgX88lL+adykj+1z6MH94vw2
RVM0WeLmkdykMN9DNR83BuU+eOB/VxqVO3yWm0zme4gGgWM0nv0zmCC2EDwEPoF6vpfB+7eXmSBP
3WIDvztI+QKRZR1WapYuXq0LWKuvXhcfw9uQQK8jUMzTD/mICgGSnDyoU28xpy32Q7tgzghWUxeY
fae+4zwSh4jRYluf2sMJtNgHOZS8lFVUM1erL/HhrA/LProIeCk18uE9hTVP6mjNO9jepNYypvl8
VFVCxCY7wVe+Jdcy5M02uvIu8jXKSi3G3RrAse1g2sL719EhtvVdQLmwUovURi13ioMpvyee6SqP
nqirO2XweRT4Aycm9gZO3Wn70X5vT7z7RzuDg2l/lzfAB1O49QyY5QYalfi25mTVZKcrc0aBxzIF
3tykVjSFtQQIu+0nKrg/Cn68a+qTO8DsuWC0zzGEC5GbIEVRbQ3463oh7U6PXZLQHNOTCksJq/3d
tj4jcpxpm7Y1QTRnmw0mPMh3QcxbT80d9d0hadNaq5WpYN8T8Rhu0VN+sxl26i3u784saUhA0Kj9
R0RO6pCigwvFcIFQ3ycjy+FpMqw0R6LSrCaf39iw8JEJ2ZcPSrPnv3Bmv9Ov/qRydjQEKZdEEFpU
ws4Z5xt02yjfdJCmhSZVj/x3Y+MWIks9dxDQY4yPvoKKc2nsrRKW/fxKdsIuhQ6LaSwrwyZW95eN
su9ms3U3FJEA+No5+YkvX4zKFGKftkg8K0po2uV+dcEdQ0lF+V4LMATEYU+XkQHvNXinDXMmtz43
ikIOaWbeUSKOXRdzjiKmZI7zKOuensTWlYNf5N7U8n0s+cdNpHBWvTQFjlCE0/zCkodHstKXtom5
L62STmGmaYcXavfhik80G9Ld9mbYRyjX9CWl5xfRhlLwAdyfdprXyQPj+H0yWxlUnDy4ztE3ethi
JJAiwL/Nu7eKQzZF7bkXZLEtp+XKjQr46n7TfKx2raaDN8XEvItz2KaT+xqhtUHiuWOjOMFjI4n7
i+jGrvgjH2w/Wv2Ab1tNRlYmDB8E29rIcxV3Rcg42DrxuaOLABzMsjeqDP+/VoqnZVMx8PRI42t+
XNoTWk6+ln1dTdMeWcLOrFKl4S6Jhi/LZR//fjopWVdGM+A0V9jf2uODNWphiKZdtVa/xCsKza+N
M+a0BrDrCmV+yFwMKbf4N/Z1iLggH7bGf8Z96QpBgL59LSme00CnxzQpq59sbn6q2PgEsnJoR/Lw
1xJoQOheF6QuDVz7IEB8r1mL4ZDAhDFUr1tsHL+w2X4ShEVIG+g01v17tDG7p96Rrozjt/GeQ333
v43MWvt8+IVdrt0EIW55nVI+ua9rNJgmWz6m86tiOyyBcV+LZLifGF/VxCsvGuTRXTbJyU2Yl9fG
K+Hwm5vUdN0f90AjC1GY480s8XllbFNRhmMQaJ77fHhu/hUzt6etDChGMsMu2KfkugdO7+c+PqGb
iqIbCVkSnTkuycv7ZClkDaaXR1UrInJfl+SfdcGAq0JJPfL4msavXlkV3AHa2H2Fc8irG06wJESX
jvLnJmQ7Ryz93pDvhxUWv/LzwMdlCab9eVnDxnMLvMOn5rjGXDAwbcrSqwqzl1UltkCQEGVklqPv
yf3co8FfNw2I6H/f0PjZgm2RGtjdHdQJ54EwfVt+nzqtZMoVc5WpH4ecd8YleQTRQfluiKQGsl1t
hlg1XzfTbe/UKE99ejKZyyOz+p1UXwEpTlY0sZuT7oyCyh3B4y8faP6KbxYg6Mvu78sPi8OCBjJi
A+tzV7ChbqbfRxZyrcrCr8xT4CX5Ec9HWVGjzv0TMe6ACc2wUnq0XHzh8+XKyTfmqhftFH0/JFqS
2OpjD3lyyaplq8XclU36fcTuFUjqzGXPxdOAgtL34wbb2rFlsbcWThPfr4BIt50t2j7QPG+E4D83
LtGuzXeSbW9PJnN4ZNzOgtp8W94L7OfRR4ALdGCNob5Sbl5ZRb3fjScbfnZDsTinBIJSfZO94d8y
b9d/y9n3qt39LifVVbdcN4XO/r8yo/C9GvKcUzK2/bFIvJL7rUQOU750ECRMD1h+vFEj3tSgSaf1
d7MrL84WNx6shuyb5Il1Hx4CkBJMW1ZPctdEpHsyRGORk5KFMqyPQYi0fSg18sPUlRCg7oYN7Ne1
UvoFfH0SlKS6MUJWn/oOGVqt6INeHkde9sH72XYNbFtnrp+oi8tJ1irFc59diwbgvz8CG0H5QAe5
rWXkg8XW/XBw/Fo1u/zUTDrrn+PYGtDeOrJB0P3xenH0SxXCk8zhzuZtCzcrqyEj5SyPh3ZJ43wo
bNqu98DbnDZPvKRO1fNeGGf+Jw8syXngv54o/1DLyAVOly0Wp7wfkJ7Q7c40Atku4xElFw7xZh3O
eetQ230sPA/stZXlxLcqLNwnS+Y2+O+PIyEidvXdPxYYHGwfjoSwy9tmzquKVd4+OtNqJzeu/Kg8
UgWfbseCq120z6qIBh6e6E/AyZ2H3//hzlgFcXaccoiXaQeNqCSk0lOAt63UkU4Kfi+AsG0FwwKh
NdV3EEbvWFCzfIDX5js73zNhcLp9wM+P9w9oC3RrWN1538LApzcd1+eE0/u5J0zq6x4+0O+cu7MJ
IknbqPj3dY0bZgxIGznAQ/uDWWoe/CGn93OWv7JM395hPmBoqxpLas9vaFz+1Mk5hTx/b1G6fRBJ
t5OJfZ2LyqpjzapGjO/Orvz4P6f3U0/KdY0t9smD+Z+27QrEWN2zGxrmPrqwdn2HQvXBvhXf0ueK
wKzq3rVsyHv1jseYKPUZSKIvj/EJixw2mM7BMH1VRJu2i9mu/SzseOzqldptr44ny5WWlCiiICQI
KN4bDPtZ1y3Vvl50OX09WMq8bVHCy6kTsEYHN3HLkgCMgASwlteIAofMJEGadXP002tJ4cMj6TYw
PbbST/ELTpu1t1YqfeuSwiTCD6TBIEKCQw74FTxPQJ0rGHDuXD/cQ/4DL7VqmgJ8WZCU2jDFKp1M
ajA9p33dbB95ziK1mQvpEA13T0C4Ng3M9ZHkpcvFGVsNzy0utflPPp+kgbl0h5YUfNPe0QTbqjXq
yuTb1Xt5XXhi/C39KA+x25IAkflVsOF3pqxoDsdlRYzuJMpxR/Xx1D5ZDmFHONGwOTtdDIO6TBIN
0YTEAAqkeeeTwRG5YOrQBN2EvEJir9EaHZGOYyWdEmida/kNogS2Z0wzwHkrtV51cHW+DvAI4Faw
kXZ7PL+fJt9aagyrNWwXyHpkx3UF4q8npZPg50FxwIch8n9e0VwMQpOeitbecUA1JUqkfJsRyzRj
cz0OIaBEIcN0R23rIL4Ft6pwwhr8UiW9vtZwXhjSE1ZaMP44HB4rc+aa5zJXVvYAPfjfX46mL0US
kt3plPSuCvmd8eiMXUfrGpgHq7/aIg5dFDYf9IhkhYfQf1tuUR3g6M7a2K179xNHhHqZtiBILtad
mWnDSOjZnxY73k6oAqQjk6SO3LcO5XPr6h6htY6u+rJ2Z5wO1P7utvFA5e3ui7Xv2ddfHk48TME0
km3XisPVhq629Wi478gIu25Kv6iM19+7NPh6ukN0gJAW29SoRsH/tuP6ISjU5vpE9P5lwffz3NTd
EFeVpTXxsBUwqiMpFu5fWpds+MOqhndh8y98XhELgPDXfgK0ieKOqJr43cq6Dzx2avuqKl4DSTQs
H1uYU/Xz3931yY3jskqn5bn6DfJSf5pdcpZHtfp5lfEdz5SEtiuNaqIO5m7wja0E4dsAg2Hulcs1
09LqaiV02azKt24qTi/u46RuiIysvr8rsp14bZ2bXLsdtn+tbtwW1Yz/nT/QC9bKoqM+acQ3NYIJ
tDPVrqowi5/x7o6ZPxiRsXZ8rjt7qNfmz3JSTyCmNW0MqXUvbmzctrU60dRi2t1zGu+j4c3t4TZa
kwXklnyzSriAyWl9hglNz26+2vwriUg2yD3JT1RNkks/H/WKEtwo5f1iVk3gB3BishQSZsJ7xmVH
wM+1wPD38qh464MLlNUPjiPbQZO0W2hNNbmD+GVg4ODSkxviRBw1JyiMe1gmpW0DWcG/9TcqxWFx
nQynRhQyioh++A52jzeUKNkFEvx4gvl6fqEcJcGWvKNeqpMI+9+QOdGfbpd8Ny5qDl0Nm/J53Fep
Q+2uj8ZFQ7Ea6BHNMPGwZj+lcgX4F48ppM3c/xd8rOwy+ECmmFDC08Dw+y3fyFz4E4F3l5uKwoJI
NFksDYLpNJh7cz+tMYWgrNLA3xiEbb8XpHum8DIEeH/1APgN7n2SnypTTkJ/7NxfGsrUlXLqbJu7
tYdfAyzuGyZgmdFz39UERPZ1pvzQQaXhaOs3B24Gcf5+BcthLowqsC9O3ce/GTiwivEvriK0J5fs
7m8ODnOKvaAAUhT4dqgQrGZOnk6nrR9vyoyfgntNi8+9LJvwjTt4yqW90fBNKc2Vld3zgwZ5eIPM
cm/g73suJCfy8+8xoFhaJypTlZer1FF59iTyukyUV4Pw7ZI9ZZswfZjcskMuAAYh+MZ8HoO//50d
UIE5pgK+B/A98j7BBd9nRxra3d9nCEL1O2EFs/wQRajP7HZAxW/4FcHqDwOB1HcH730E5m4Z3g+f
HBfAzYa/j22r4y4+EATThHXAIXta1gEZ/FrhvQcXAbEItKZyLpTD14cILBBwUMu/tdJq5rZMoCG3
dILF7cSWRnLExJfPzRDnwvop7pyjek3IPmEXzEhxEQnDs7ZABYWd476xL0oT1HFdPqn9+SnsGmib
bV0pzQaRYHc7d3+XEcuyiguJJuSGdgbAz4iXJxeSqDFPkIiukmyb0UxyxWgRnB9Da2NJRjKJHiZX
DiTv/GQSWwNpx3LBlNi5t9AOs4ZQRBVVLqBxWJNcCfi+fdkM+PGQrHA0zqjEU6x1NFSWvz7MRfDd
2yzWNtls9Zu30pnlsqR3O0mCQaNkE4XI+EIGPBgNBOXdPCy/YugMHAhQa22EMenM9z7FA+636qNW
LA8ew4DPfda8yU2mC0gU1nepIkhk8NOG7vAs3jBeNo9eUa24uYuDtYbnwnzjUeKqKWQK8Sb1ZyPM
d26eFNpAKpx914VSiqS2l/WMH+Yyf0RVyr2uUgbxTFhqrPgBIbcmy4fx4PsGiFWwO63n7ja330/A
/AqzFw8Wutf8yn2+/dkMYh5YlgdQPmyiOnDbsmKxZMOegr8b0BA+Ttx6zV9A+b7J0dk8u8830PJO
gYUezP+p9YTvY/iawlO+pfoHfc9XYsTrgbWKwVqVev/aMYf/KK2GnVZL0FJrDeO+0DxGDHwD1t/Q
n7bjZbVFEFLvO9QJ1ojAD/rNrQE9sl4B3yK6pOz75R0ZYRdW1bCia3+YW7mWmyjz6MaWyW1nml3e
TjBxfmph7UZwiG29Hz6kPRv8vboibgd/1ns/LQc/SHjRvZCnx76XdhfqCimG+ugX1autNnCfXKdo
s2RnyO8LgrT5j6XBLf8QSSlssmwQCkpkcQggpWgMyrOTNOqcXxapm7+hsdLSIadD+8EM2nreLdpW
VEQbV2xvng8qZtAqW4GmxAPlA+b1v7Ghcccb6xp3QP2g7zN0K2BXa9vhc+Qbkv+satz+H6NxK6wJ
dis6dNKADZumE7cDhAo0Xe5oQTnYn0V10ocIOinOENbAe6qDYOYJMQoTPROKYEL6Ub4x+8GttdP4
orw0QDzjvbCwWy8dpJI0taYsG1lYK6af/2xZ0+3fH0ju2tuceZ92gRqWwJlPf8lcsD1p9C+NCaeG
QuR9bmrIzRhbo2EuadbPhOk0nG4jqxuYcFbKoqmdQkYEUzCnp5wZu4NRgfRYXEBj1+YbHz60NfLD
pEkKPqwj6dN9PKVpGzPpllPcaz5Sp5ZptoncTLrMlCZOfsNk1/UnKy4CX8dzZpMZXtGIXZ5tbH18
iXBGmDh845zJ1Q8PI2uKYHPzwGpj8IKFZGSdaeaqTHBnOlzVRW5l2ytjxdUBCKYFa4953mzjDKdo
qPcUkDXfXylO26m5humGKQ116BseH8mWFspESwX3IibfxD+wyRg0ZxEbDyfG+U4qRGBDVnltf7Lq
+gISRJPLg33De+9zfIOzsI55nphtP7GCufIlsE3IlIzgDL+x6c5hpLICNtj8Y7t6HptUzex9r+vP
lp7dV24KweEK37AFYQd6xzzjLG7tcO8Isjyfb8xa1CFgYqH88Ssy6K1qdjK4t9MBDnXXHYPJ2lP8
NLoONgdc4C30Ug1MLOUbFrDJu1Q6gOs7s6haNz2HbL6viJS35sS1Noe5LPHXdWL+B0vUsSCT9nVI
tvjYNL3khZFkA1hDUAar1QcBmvnyamXGiT5x8xCH0fxcpX6aDWb5qwuMxTsh+sTamDzoqhy2ushP
qlPfsmWSwfihz80fktN3aZ6BHl0JT/OTksfG01K+EW09pOIaqnw/Ve5dS4YumKeMjBo0LY0aTWf2
Jet/M1bdURGkMucCpqcG9/17aIs46LNF5LioIaT5qVj96FhxkSjAgRQXZ/D61hJo9V/lvquPzWYn
b1dsI+yiTSlOV5f7RBGsIUx4MSGbIXwf/L2/4itjWlI36HUFdMMTC43pDYKz70ApWfrHsXQxHIhG
/ruW5by8jJxekxTy4qqQmeGkgaF2reyVE9jykpDsuOA9dcb6qOMUbuHUJEpDpr0h3WAQVWjQhHyo
yowbpGDye66rJqSrm+4dwraFlJTg0PaCdYDNCxHvU2+IZ6aBgPr8OLK41WeXC+PPbmD93lqkjAto
0iBIaKENcWibHxlNV4zJJ/F5ZSz9+2/ZpycMkddHvmiSzzjnHZY53ksqF4JVU9QwB3Eh+N1aacbC
t8yhV+aQNZf2I0FoR7u9socy7Y877QVfrqQjL8lmq/I9RuJvy8WzqqFOr90empbBVv1ttLGZm0fv
FmSseYPG/7CBDfy0mhxXo0oDnNQeGyEbJY+PJKv5/Adzh/TAAnHYWzX0bIh+aoD7XP/Jn8pXTfCy
TfcWka08cBaYrqoPbCSDZ9VqE4JM6ue0C+Fiu7bp4RFkJZ/DyiLgb9VyFeey+FPrxP6vL6ST6pnZ
D2R0ZQAlZXcWsJVnFJCmAOT53hJh8m2zxVP62ozGvw431l75FTmxJCqPhHNpWuhQNz8+gizLhZgj
CuyBHlhvDJxbKx4He4lcAtL4U5W2C954i4y7voCuOMPHwnv7TnvgwO/qJeLEaltO33M84TVXF7AA
yJlW+3jAzi2Qr/y6d8ipIIMrfx1Nl8FBH+MC5BNr2YAPl9AxdZrZT2US7Cdo9Ug32/LiWLKOH3zK
MtPfa6BZr65WZ0zOopsuzyPV18AepTwpD4WwP8r4NG3tP0eTtXwubj1E5wd+L1Xa+/xzqTE1wOgg
0EXVn9KHLL86W624/C3j0qHpYvkDQ4zN8AgI0/umUWvVGl8yj52cMIj90RF06U3z2IRNCecocCd0
DLZrG+8fxpZOgsNS3ka/h7Ar5tlPrGOsz4/y2JIz/MTiw+fu7Qp13P4xmyGC3HH3UGNZLuWHQmDF
B+4Dd6wWR3wVFseHNbOvRzIb8sDD7cZCsvoCHxwCWe3iXyIcDXHbB9icXrpMPKlUcY6Aj9U+mGol
/xhHvuKHV61C97d2ctur40dK2OV7cxAQuxkp2Ethy9DFJnI9qw+iKLdeHRtmtW9D+3v4yQw/vbfS
B8E2QLcES0eL6TRPK+QAqaT1v3k9rc/zv/nvbFz8hdNykIbhJ13bRMBs11InLyP1XMft4vXxthnt
2oVvco8QaF2QCpzmulqFfOfLRvPaB+YagVsGipVFeXDqB5EZQyHqOC9XrD/ep/8UjCNFOO4FU97W
pMbcCpGY3y8Q/v1sWXhA0J525tWLm7+z5Lv0tche5sz7NBiGPVeWykOGsbRBFU55vtzod9dgUhGB
CdNHqDGrmqXXJcn0LLvwtUsktQ1829G5ZVn74mEKtYvcpYO/wLCX7kCzDIIAN0kmn9eal9eatgsJ
HFAHdOmCgKKfN8RNrr+5yKj7vF78Dcigkc8bhPKQPeMUYnORYEP1/Fe85tJpn6iXLos7fgLZoPsK
Bqi3oaLtupOuiAjJtU3KU6tPEV6mHqJ/UW/+WhBEtqjRXB3QhItFQY+AXsm7VXEIq5eRd1473ni8
2EMViDjNLltOp3wYMB5RqS1H0JIqhCoHbYCHLN+U3Lg8Rh5+egLdACe3HZ6c98gLgYUcUQLg8KX9
YyfLfmCr474GJp1K4NzPumBK/irMyj+v1Z749Cz2WSgk2z9t1H/YJLlPHhgMXXvdcHddKBBxQgA4
fW2Aeb5oFB8QTVO9LodcRQpYEzf44pvXJRFy+sx6Ni0p2PvzTe4qiDG4IGzOuW+w8Pjtw+UaOP2R
3ipnvju3iPcENdvZ1nfCc5nboP6IUflZjfbURyeTT6pB4OZRYE+dI563OOz4aVKk+eDbBweyVFzZ
JCTm1ygvfzHR/o/8PBadtUE84atmxx82RpQvmCmkNbtzJvBi2a6aR5s00me75L05va7hphumuncQ
EoPDelGDb8gzbqHxYK1mO597PRBRFpdGtcZ5tezJhSeT9xP8tB8+RL7xGv8J+966OL2FmbZMAQ5Y
Tdg5LWk2aj+uos98OoHMBC0OAYE4eeos9dxFEXqnanPmcFcLvsSsXMC+0onggBkBTFRRuXtEX/Ze
VBlE+FdnQbCo67cI9wY1x7kg0vD4h/om2FaD4PEVbGJMMDwyYCNmQtYA/dNa8RZFN3MXN7K1QTFt
BgH17q5QYJufsIUXfUZO/iwo/DJhCkWCYdkggy+NbAP/QnPtXPOZvw5nr80PCj+KiLYJfI1pIuSk
RSFjKscBN/L9khAHI6FlEfG3YcV45unRZFMEvH721qqCu426dBvpMy8sPQ4y2E747/MYWEdwX/jz
5hqnzm0Q71IE+yBBV+FzMqUSSRYXf63NfqxY+J0NDq4XNpp3QJzlAcRMkh2KeH1dwpzSoJpvrmoy
79IlCbSLAtkaF27cFjeV/k7xJz8ZRSpDgfYb0UKwvPhwmTlpZUK+f0c88ko4KQwOm+JkLgASp1tc
15wIrQ1pf/r8ROPjMv7NwsWF2emfGxcsDok/V0V7rsB4+3TbuohEFi6xvfXP46QnZxSDhdbK5OTN
cfFW7qWUMMmwZc3Sbxvjyb8/PdaEwHWUTJ7HLl8Zs98Oe48sgSmqqRj2TTCfLVmmv/G/49lf+Roa
Aa1tIQjWZ39OzpjfZPtlkjoLhGRUNwVD3GTzCIvWJ5b/KKL94S/T6fpXFxvZc4Pmoy7R2PZ1g7im
XKNXwHQC661d3Jywk7WLI+++MsH++PRC1vj5SmPMkibhIVMChQ/RhU1R8tNSQppHecmN18IhNBzU
t1uTC8FaYNnXbMp2Z9qNlY3NL/x6LPlLKbDkY5oLlmS3rWcT5iYynsgymmb7/eKXPhjvabPUi1c0
225JEn4AomswgwvbjTS6slmJrwsl/7p0OnkD8qckZ5WKE+dH7X8oiSY+fmknEeoM+9mmoQvE4YKD
f0Fd0aA989VU6T881UouZKy4e7049P8qpEdiojyKJOFYBYKxbAgbofcqxFkVhvOqbUriraeHs0fh
0FTqKF4CV0DwcZzTIN6WYObA9TFzdnVCugg+jySMu2Or3WNfvTz+8Uuj1N9P99MIWMDps4LmzRG7
+4TB4chV1xarsFZRVy5EG/ugVsz6vJE8KMBi9d1s8dJJ/dSEDPFfpi8QL1jYTO+GgUonhgoO7dS+
DsSgJWsTix4aZn/wp5PknWQLnHiIgqoZJL3/HPPRWiZdAG0wTSpLW00bOXVx9J9fTRGf7a2RvL+p
6a+LkuQ31bxvpF5r0j2oUACgUrCe7f7VtWdSmvCu3dv9NnzrnwDTLPr9/sZXGzY1b25yZp30u9KG
8c/uJEsGuNQlwxx068V5bPvlRSxYBPuBUEK2p8yA9nxCcBbhmOKTgpV55K+v12jPr1Jttz6wQF35
8DgKvtsd+x9Z0AUBrO5JdLhb/PIr4j77nero5HtOINu4qaHfpySeWGs/RTPN7CK3+XWtIvYjYIHV
wWWMBNNgbkrl46ZU/AITmGAdc/5zl3iFKafb3FrT5guyWRjWGpqyUkpdrSefc04yH/7BCrVkjeK6
d4wj/sQTo+mbBWDa/TVEhLQJRkNCkos0NeErsof+T9fCtmFZ5qrbN9LirxPSw1TXmi71kx/f0F8t
qTHs9n/vDE9ZFLHdsylGb717k7noz2eRdTaB1Eft3rG1SqTvVJ9534MjxM8Whoj/qa3KPQEx89Ib
1zTWbrmaPTlrLenzSQ27Uxdt7oszkzddP9hYtz5kpP2jzPjeTjnv++9UVN9w1zj2i07Nsb/1b/LR
B8AHm+4/lpHrGkTPqYMdzf+8rVB4oxmOG9+rUE5em7D96ssmctdbZfKqywtJI/jhgn88eMFQ0Dwp
iT3zIQiAsAWLwg80LhCmvq3UGU+FSq/029TZ1xSwO7JsYuL/dhg31AjeS363JSRd1o/+Ih9M4B5a
KN4SlNLOHkDD/71pgPCKoRvS27XK1LWw+fg6ZPz65W3GqlunyLuu/kSZuqDZ+bAAO/qp7uT914Gm
dl6DkPd+rXHfVsl/08VrGoMriskLcICvS7oaaRQdp8qmtmuQXvcvsOBzTcmV1n5aw84g4HxI3Vyi
TfUBylMSkhu+sXjWJJ/+0I0wF/2vxhy9oMG8f2nc8dCVK7Sat6f/f3tXAhhFkbWrq2t6ejIzSSYh
CQlJhAABwhEQEBEEZFFRUWRZPPBYFpXfXXUV8b6v9VjvFe/7PvBCRRERQUAuQ4BAgEBCSCCTZJJM
5u7pqe7+X/UkkHAJu65LsPr/s5JJT3fVV+er99734WVwqzFkPr1wbdR+ewJSNp/dGd1wZqqwc06t
WvBjI75hVch639T1seZvpuCv/m++fsKPAeke9vwTrIF7/3QcWjm/Eff+qRFdo1gS8sAx1tTxegsv
8a+BAPMPWSxEv6ZUm+EhqWemCU0LpnXXn+tvQ82P7cATNoaFvxqyU8KMmqnlgsgEXxDJAxvV6Jg8
W+A1QgORjFSh/MVdRvbXHsujmq7bTkvVrpuZG1sDHjzyQk1o0NImdNuWqPWqt+roz1+ejf9y94/K
OUtCCQ9nk8j7bw/ET8PaKLxQSfp+WKO9kiyiJc/1Ct6TB96xUi+zsQ9wKRS4KogOww+yROGUCH53
gUfsnk2464JG4QFdwNYRieod9/TQf6gI67ZHd2hTt8cSpt9UEsabx5Ib5zvpBZPXqPc3CsKpp7nU
v9/VM7aKEIcAnstvJ62mj3o14eRJ6fpf/94LF4MqoAChs/uT2sEeQBLEKFJDRhUSL04VY4unZQkX
D7Ijz0tVvjM2GdZrV3j1v79UidZM70I8so1qVxTj/ku94v2QbxkCL+h113bVV28OoKSnK43puzXH
lMvW+NFOF7pvzjDy8V0b6bb3aoxXnaKx8un8yB19kowwy5Y6b7E+fHXAcodoaL4xnej1N2erq4oU
kvTYNnTHbkun869c56nffDZ6wQaiQDet0nsvarbcA6dgtiG24L1X9UaLG6Oa9ZnK0EU7keOSl8oD
903OUqYnYRSzCEJjUEjoF4sqMPcYd0/NiK39tlHr/l0jvnU3Sf7jPZv8qxfn0LlPFpLvwMD78dK1
2rNwbNbz0i7GFX/JQ9sc0Jcg8gVK2H6fQ+upNDWHzPvH9t2X1GBj7Pwy8uawNBT0gMcejkPEoiA6
mRGBjXKhT10uIGj9DP1hedD+ADh6G8/vHLvs4u5SaUNIl1+o8J28Jmq5ZV1Y/PsDm7VV95xGNkq6
TnEsongwOQtUGdef1Vm/8uxEbcdb7uDwFQHx5s2KZcZtW9QVzw8lG5a4UfKzlfqdIYuzX0/if+Hv
PYRPYgDMU5XGJVUKuYhFIUPfZieBv3gBVr6QlOB0R6IThiTpjzw6QPtqdSNOfLxcmVknJJ/11y3e
xrVZxj/ZARHEsIbZWiWxk1NlL7kuBB8Z8FsQtn5wj26AYRxjkUJLvcbtEqYNf83FV5yeZlQv8miZ
H9RGLnJb0iY/vb1u6t9HkAcw3A8cMUqUJHT1xkLS6FTjlmnZsTVzaoz87xvQXeUk+fJLS4Ibvxur
flvqhhWGXyYC3NjlHYEj0IIAywW9uiuu9cXQ9c/u8l1ej4RxjYZtbKPmGLu2vhF93iBsm7UF/zw1
U//w4aGQErLPaS/Lo6gM6gnvjdeXrngn9l4lSZ/2wo6Gv4O0x415kNtzcKAFiGBH5LwsVLSsNByt
MNDoai/5mIUOsQVhU8AYA5t438yuaNn1pfpf9n0O7JQpuD7Txq/GU2FSVWGxF0DVigRjOL2JCn39
omOIqAb8E7oIrzM9XvBiHZDVcUAWCtkEHcopIFkwwuMKIFuxitgh1wQyguCtFpswQI4+v/Yi/QXI
erKyxXfUJ/RPENRQNdCJXv14MuRfuWHBS5Ni04YrL2W/Tgt3Y9f5W31NWXCKuhbwgUMkERc49OeW
nU8+QmBEj8tTtts09NAd5f4+OzRj8pz16P2qIHJGIZwtgRhbPz1RXwZu78AEpNQOdxgvTC/ZFUux
4ZqqKuTs5WJ5v7z7dnQE2KFFEPSsm6JCoWCEon/uJXw282SpBLq14+4gLRs0V9XqoqgneHlY/vyR
H/YB03mi7i/aNJLckpbGjnkUYXoOuR92grmNgn3MrOLICR9Nlr9tUKOFyIhoE7sYc28dbV0HXq7E
2yENd9h7MVodFfpHY3DKBDt4iHK4UCeSbbQjdNPiKfgTWq3bLx+BKi/+Aj38gSf01A4DnRh003eB
ZxFycAw44zFiU7qI97w1gf4A2WkyCuiW43Yb4Lnd52J0cxDKOdxl/PPH842PaDVyTh+hfHXGJxDd
0UyeWdQQvRQp+vJXKiCP0C9eSYA/7tnext+mnWyB8EYl4XLi2vLoIu/2W8uNj2DTdEXQjb6f59Ym
6dZk+0Di/ceqqeRNVE3tN45Vy/5vvuR+uSr6Fvih9uwBQIKFhUoYcT8UXBAV4gXyrIOx4nb0fvd7
L38uhJg+XSHnVCn6FCtqqHnxBHT/pF7EA6GR0iUj9Gfz30SObaL1ShT17x1z7F8WG+5qUd8rn+Z4
ANEAJFuJ9KzP0HjY2Pt7WLU3v51CvoB1wAbzdmwKsm0qeKup22Y98dryoL/b6EzyvZMAXwusMZDv
BRazBCTDVPikhpGPmwGA6qRM0csCXcEjSnKhT7btj/F/75vHSxi7OH2lKnYxlZJTRtgCty07X3od
xgQELVF9xsmOe7JfDzt26wnnXVoUOvmbKegr/DOTmxRQmgUFRgAfBTsUTktHCl4jmGRcqVYUGFNA
vN4KZDfHRKu/EsYEy89tMepg9MiCjUa2fjxIuG1ML70R8l7J3/Poq52+Vfo3Enncj17luL/1oG5G
SvdZjTFdFy3Wc1LC182dhD5HVHZOILT2RqTc0uk1f6pbl/847Wf163cmoSVZFZBLHMcjdlYG9qbZ
wLKD3xd5jfMMi0xGOgIP/jCZfK5UyM7xudRTG9GefLm6qVuTaPSgQQLpC1R/uwZNoxZ7yhDSfO+a
C9AbbD5h/B+zeokPdf4m6KqTXRNmFXvPeLg/WgDljC6gAABVP0lEQVTLO8xTuv6HNOGheZPpV7Qa
J149Bm0f+b6eslxBD4K84gAUJF9BuLcyzIXCuIgFVCMjO4H6R+dC+DLwENjMXULLdNKCE1Sc3JaH
Kp+r1Jc3GtZxr+2K9hmfi1aAc9OYU0HT3Ao5zYpCFbO6ahtQ0CFVKmoXKzF2HZ9gvPzBJPw9Ynm8
A4hn2nD9lazXYwPcuv1PRYFIDuAP6wMLcxQlKHj9Dd31O+4epWxGXmKbMVL/oNu7WvdKI3laSYDm
ozS65oHFeHjQ4jg+Q/d9WTYJARcLuEAhtWrmAPJg+qexFA9xnMlCg9kzzfx1YuZB75kHWZsHQVO4
5RO2jxG62eg7qy8Q31CqiWN0puIflITuP3ul3qfKwJMf3yx8+sBYZJbxsC4L0Vb5cLZusThcKLTw
mZF4HYID4AlIrRu+ijTctKXBnylBGLsX+EvAdIYAAgvWYuGz04x7P56MvoP2ckwbLn07+AP1uLVR
fNvOoNEb2mvhr0nEdVj1OIpv4sbuUdw4vGi/PQIs1+L2Pqjq5q70nier0Muf1UUGV0Uihc1Y6B3S
jf7VOKXn4zubx5X49HvmjSSLvRGWH7N3GFEDdIpgQ/xgH/m1yzc0DPNYnKdOXeWfuDJPfg04uA8a
LwghKdarT9a33b4ZrfNT8fiXt9Ku94Hu4JurUI5HNU5MAdWjSYNR7XWlwn5jFmzsaAxLGaVRcgPz
Escv+C+LiqcBlIgCq/+Qbrzy1mBUxOSSDooqEFSAtLTpNoYQR9jYI0t8YWcXhGlHw2hEF70YdsB2
ODE0T7sf6o++h4Pab/Mz5TAsTPIblTh9VbGSBifWmQEddWP5z4zuFQgjYH6OWoSwN/ynPgSMYioD
uZUElbHcPIjueHwHWuPB9jM+rIwUPHiCvvzeMmFzwOIYnPJN4Ll+dnX+kCRc9mA+3l5xsfIQ8giM
SMLGchJ/+x7C3/hrI8DyUIHBXkuy0C1Bwd7/sfLAXd+4lS9GpeLSm3uQHcUT6essyqE6QCUgmtmT
j3ZY5YCYTNgZoP5O/DkQX0VKgSiEjdeCfNnX0xH9pigqDdkUCvdDyPa1y6Js8Rm2E1/bTW9b9a76
+chUvGlWHqpYdZ78DvJQyQu5cF+VqWnNUTKI4EDdtGy8hh3YlEG5SCm13NSVbOojh6fmJ+GgAwgW
YCxBkBqSbEZs+xlpZAdsNpNZSCMLZzQJRvaZDSAQWZZRpOK+PmSpt0JJhI2gJa9CFq7tSYsWrwyV
+3WhcInHcC6uR7kxS0J6khZYuSGEXVd8pY5iKfgS8uksX1nWo5VhHfe9p0Tv0xwTBoh6c+CsPGMV
kO3YWK57ZoUsXptLt39Qra0LIlwI8wSkMVBhvltJjkC5meeAYavrWMiSUbSvDcIi4e+HhTe/qcMg
ILvk2Pw1el8d+IYzSPiTSXliU1kVEEnBnF/gpfKIVOmnbbubZsCKsHfMsRxv8MTlJwGnBYQ3xaW8
KLqtOyp6spd+LssPB5I0eX4NSv6mRM0s9SlZtdAHEdiWIBYLoaMKWK9x8lAz5CKeXyoout6yrhmY
HTpnQqRrDSgBQORPUtv+yP49MZs0tX5mgu1E2pIKlNxMcT9B96s2uxC+6mv1pDBlx7FAgSIrgUQi
7N6tWVB5GPWHtegLhKKm4QJykoSRSoGqAoZ1jZUFPheAFgW+CAdwq0D/ehelVqBUMZPL2JgAxUBt
SjrjA4ALrPJOYrh4TC/iBexgbqFmuDJwa1Q3wkP0GIxIp07fKZGyglqsgBhhL2NZveorNDKMVHif
Lshygs8pqjsbxQRxYzDSB6GkhRF2iBAnkBeq4JCPETrOKSOdgjGtDxSs9sJstJ4dXIERagGWGctd
+WT75LTIZFZfNpa/qSGuZnav4Pf8uStEg1TrjlaSv4J84h+cpM//2q9PqFIx4KEv0A1BhCgU7wXZ
xkZvGUp2QyMVAM1rVzuuWe4Hh6cEwexQ1gCQVEKK3540PZhnAD8ishzqxiDMgxAHsBcnRCHaLMwI
rwqdeP6isHXcT77oqUAuuBQmOv2lIjIkZnGk9ybBj0ZkET+QmDkf76t/CzQK86AfQS4VccypQKmL
ilHnLQGUE9REyKeOQqYgyy9puUTQMhXU8pt7SlXuMprI5JkKIKQmTRKqKsMsDRaak+pkSxCdwFJj
+ibiJSiGgTyMsSpAzHymEhqaIn39dWPkTMgOw9CcxuJ66qyEQ8l2dYHDlBOdkM7G2M4MGBHRkPGn
bsLXsI+xmWHqAWIB50Bjp3VoxS4jaeoKb1NPaIp1hz0ZxJziuNRA5Wc1Wo1btJ3beQ7FfRKMpSOS
yNYHClHFlGHCPxDo0cDwgdpjlptjsehK00VdLaVKheKsgLWiAA4GgHDNjfxhBBSlSQrs55iEFayv
fO5mQ/WwG4PfyBE4hhFgzHk5Dhpj4VDMmwoRzeI1uajmxiEI8unonPlbUadPPDj365qm82rEhEmL
moK3PFqGtt84gFTB4t5OYkiBvMIL8xXPJ7vIU580Ks8XxSxXPbmcLpMxOxQ+6AUTkhzLdyjzf44m
DFvgCQ26j+gb3qnFA6godR6UrC5gJGotC2C7hxgGBs7Y2M5RydoTdqBTBncSsHmba7mRnm74pnUV
y0dkooDJFPtvhsHDxkTEVAl1kjEwbUJNWlyqI4Bd89HNNPfltca5NRF8EqzvmbAUgWNYEHVBsCAJ
kpv3SJsYIqyZdXmEhpUIM1TZwswYOmU1QTQaID8R1euRlPwcFDi/S+yx92sCt3txwuilUWn08p3N
wZerte3dEywLnupvfFbooGFmDBzDXfJ3VTUPHHzMytNfuX9bIN2L7aNXqJZhq3f4As9WatuPs4tL
bu+qfX5hHvF4wLA8ImBMPlkd9bDrlSimmgzi5gWb7DTR8CA1jAIWIQN5A0l35+M3byj1dWnECaeu
0qzHr9npC71QRbd3Wa0vnXWc/vmM4ahq2SKpm4YMZ4KAtnbGquoNxA+HWD9m3pSb++BdbEPIvAbm
eyARF1Jn6wc7acgLm49DpTMwL6sVC54xmaipFFwN8WJSnBYDHxAWaqIaOu7bepSxS8WgAaqAgxgP
hBDIN80hzbwSJnMuo3wQHQLStGWNQgHLFYYUBE8PJw4owLzCngn63yKwuUbsItoNAarH22H7+n4V
Srm6lDwexWImAu5DxPa2ECOaZ9PmbDhDeTHQcrh1RNjzm492BAxvzOjE2jmZYDeYfiz33Oyi4B20
dJUhZcCgIZjH90YCsX4G4ynXiepbWMhNVt0RaSQ0B7RvJ68TL4ToplNVgaRTTXNAzjwBKh0LEkG7
74BSGgeGyAXEig8V01FLvMItJi8ps28g7lPQdGWFD9/W10kg/N7k9IFlk2irmxQXuBqdkLduWdQQ
u39RAxsU8T0+CxUFY44g6PBBTejEaHJhJT1kojqc+MBoDET+utU2vUZLGC9EmW0LX5IsKEHXtvey
KddLSGLJk3A8ZPiRzJhMCTuJNiX54H1xzBiTB5ApFflIJ80wZCpYEufW0kfNv5hFYMOWQu1A4MkO
tr+OUyGeAtbvOMP8ngvqWOTTUyDJN9kmoqpcjJS28wmLviiEHFjGPQLzkFbUiF1wgJ4hi3rNqBTS
7Ikx5ZOWMChQa+hsRV5BCWhgFKVtDEkO4MUzRDiNHgNGJ9Bl72lv4Ic11+mDsbazWBRwhUavmh+7
ttGwnySo8S0OwynRUNa/PZA+UIBo+MJsUrxsY8DtEfDItzfJGZcMs+0u8QXHC5oSG5sO0VuyZMDE
hEfkyIHH16Pcl4qlc3aHYmMgTC1NQ5rNdBlDpDEjfwWKapZvG4cGGlcSBMiPpREvO9dnF4SYm3sg
84KDO8gDjhhGGuT/ogyr3gTdfG9/DhLS1ap7QGILjt0hQzbHEfnLwuit9cg2WojurYvTiG58p59+
D5BMBaE/Q+tozV3top/SNs8CJ4ddlBrY/OnVMeissk2Ymboe7weHuJRgxAIpNp759dK98xq1m+sE
xzmQsnbO0ma/d/YufcsAJ/3y3UFoPnAwxAlRDSQCz6//DEhLqwJDu/XREN5vrgH82h8BbuzyXsER
AAQY6cVzFajLyzuEC5Mtxu4vB9E5TF7Aa57WIjQmnQTH96JrK+pJ6ZBFoU5e2XXy/Fpv/xtH420H
AhDYUG0fn4SWdftWfatS7DTtsa2N1xQ4xSUm8c5B/ZEKOScLr167NRIp04xTYJ58b32zNl7SorVT
O4sQ5sMMxP0nMpjdRNgH+D84AS125WCg0G9zEg9H0kAaIQGt//55R0fU8gbjFw8miuCVIvGTQqDx
V69ZT/q+XJ3wWFS05NpQZEuKxViTRITKIcnGTz82CWftRtIFOkQ9mRM082bBLiC+5WYHq3tikBm/
Diw1QGLOrHmQJ3j5THnV5RvoZbdsDowqj6BBTVgYFBRsA9fHLAPPW+Pr/95Qcl+hg0Rg487nsCNq
x6PzZiCVFGeOoDtOT9NnXbMpMHpbUBjSIOLj4YB90CbNNmhGafMpjbp+w9X9SA1sWuKD4Bc2EG1r
yujx29XczPuL75jgMTEKY2vaULTr9FRy07SS0KgtgdAJDZgMCiFrYZluL7x+i3+sivRrnQRHBRCn
Zb15PyTjGfwmkQ+TEzFJ5GAzBqZvKD9TVIBN+eBRFa0PY8Y529aZY4N1beA9dLKXaWBzIJ3l10HK
g8QY3JMwXZNpwythUMFmh+2dmeQ2NsBgjtgxDmaBkb0WuKxAj1Fl3oB25XUS+ATK2WZCMXOdDaDe
Y0YzG6dwYgVhlBpom7Qdq0dnB+Kl+rcQEESYdFlXg7beZ05GCSwnHtxY+685BnJJIJ3TcuW4SPT+
Tfpxj1RaHgsJtj4yClfAGrAh2YYr+iUaxRt8xvHlUXwlE9k5kkKa3lTWH1mgAeuTcRKrGNapodH2
/ZlZi3CvBMZ5oLtTeAcke5Q9BieTSgBfnIggCTWZbIcUA1gLD8MgkG3soRqQLkKgU4ubVYPgCaBJ
BpbztsYLHBKw8X6wnBpz/DCeJUkyYp48B5ojihhSRlsMYvYHKK8gNOn97cIWsHX3J14EeRsChgzE
zwImeotKQ1s0KXJZoIwtCAN0zIo2Kxkz55M2F0hFaZDuaqYVAbgsf9T8K6zPDpZSwmKxjuSCaQoD
8aSgaSy02ZxTwdrEEOkLx3RgunuJdHkh2X3/NrqoynBc9HFNoCC0PELAIByeiGnRrEJpsxuY5vPA
kLtiBS18u0Z6FPy32YD+lmSrsKaTxdg2MBFtWNygnemm0uRYbC/bdEu54Xj9EMYk/I0YwPMAl6ox
o789AyxEAEhmRFwLDNC+UBeIGm9bF8GgcGjJDGLzYoRqEhHbG7AWGXoKhA/AsyC0Gib/lnB7SKOh
ugrTKHNWxPsIrEet7WM+IxAJYEKcxseT0Hdzliubn66kJ1eo6ASvIA7wCfbhS4PG8JN/CvepvJjc
TwisAPH20mUHWPBtop1gH8VOKY+k9X439/KN4u+mqXlFD4VAGpyG1oaQY2dEuATy88Ife+gPMwfT
Si/khjLZBUbnTyDcKb+ANiQsFtxeEDtholjxCW3/YcSkfYDwQnyiv/zqxWsbh9UYlnMjzTFX3Ad0
sJJQcn4WcT+53VjliwlDr1koHN8c0welSMaqPxeCPAkYrQf+JuwDQJNvFci2DIsRoVU/71dv8TYy
JSzPEjb06JOa6NSoxZHbQ/A+/85Iy2vDsmDqZbp/BIWzXlUmIzjhbfXswn4KqBWFtMoIsgMhgwfC
Ki0uYNGl1dQGkk+Z4E4wuqaiuqIKlPhGBeo+yIkafjiffApG/hdfbRLT3qsL9/iyjtzEwp1fqox8
+tHJynKPm7ki+NWREWAGIvRZy4fLSM9MyMr9/gz6JSzY8+ZsQulz6yLHfdOg/qVJSh773A7vhKsH
0efgYMfMf4fBsGez4bIR6lZ08KFoTpBUb9iLB9soC6g6gkCbus2GNFNWayNKFrLaUbIY3a2AlsjT
y1HPVKzHvp0ofwPaifM/20rTv9hNc+c10Es81qTxT+1o+tMPQ/QX79mGg+BxyGBEbC6n5HcrCokz
X8r4+B+VqbBLEucNUj6EqLg4pTQbN2au8aG7KhRTAyK6xA0QOpkjkxiTEHNC6Od6IHmJaEIuPCB0
aTZxr/JR8KpJKMGI1G26yPI0CiqweYcDAKYJDPPY8g20U4BRdMH1dRP2KobQpSqqO2SbXgdeDosL
xq63nloVDTRF4Z0h2OxNySReIBe6FUIrgS8ljquOVSFXImCkc9bzjjy+Dlp20MLtJJE6BB3Ao+vd
mCdqj+Sdg4AMHHVpAmMnZgZv+8s0LuEyD3egP722i04OSYl9jjN8784eqs+ekKM2Q8QOuMsSI73e
boZQeVgQtAgL8z2gIdX6PDZaGNM4HDLbb+yuF53VSb8M68ywhKQAsDtlINQ6O5M2PV2JcveUCCIV
TuxMmsh2zUsF4ryqm/b530ckbUJBr3lQjaAunjKa9FZjQkZfKewHCwy6uGR6Vg8oT8D6PjMagsT2
eF/01u5A5CMitITnwlmXEyOaD55ntaTFqvgl+S4o3yAnaRAFLciyg54v1N4fM0DaBeM2btRCRNmG
DSj1u1Bi6mC76meH2jo4n1vqZ1iYNiscBo5zIs/TAmqKIjF9fVhzjmNkkzBHMAkfFq3RZzG6AiYc
+aUC9PoJTtQEBn9d1MDpC+pR6q29aDUjhTKf6aTUHcUuw+qAWKpAQ54E+rQth4GU6ZsfwWW2m5ta
n+xDnquLRF5txYkaEZxqw2qWDamsjC7Qvz05CS9816NetMGHhjUq1KUThz3fFlyQ56IK6OQmgN4t
meumlwJzdHYf4n/69eONt4fltu4nqJb1mjCB9aOAaurxQuO1Hjgc4OBxbx3g8JBCigzZWadJqDIS
zQXNo8WQ+xonP8uRla3L1K6MdR8sdEOpDtqe7SO/WBkJv7VfXYCFH8oJ/IiaDuSZyWUhECCFA0UT
0pbDD5ALymXy5Z2tei00hW4RY9DmjJ4K+n1c6JQFT2gRTSWagRMhatokCHTabNp7VbRT8XbS84Js
uWrZCOVD5JU/e7uUpn9QG+63sAnfXh0Tzn9kOX0/SWwJaWBRFow8nV+HhQDfKB4WTPymYx2Bashl
e7Q/2vLubmOJ15oy+pHtjX/rJKPHL8knHhYGY9YfSAumfaWe7NHlUWK4KVTYFW8HoqaDhlVWBIg0
KU9pOL1Keurzev1fYKuONjOCWgXB9wWVOnB+lhLMS0DLivxozFtV+kxw50iFTuEHZlT/uyHIR9J2
cGJp+ssgXMrKhO9dEOZjxJho+r5zKgUCEUXyU9ILge1xab741bB82Di5qRNCurR7FqDBDVQYzkQG
WOQRKwMj6mFkOZ/t9o68cwzeUgCySuwd//c1PdGH5BPsSNl6U6G89sESdfC7u8kbiULs55GZ9AoQ
vA9NGIZqJyB5e+6r4TOCluSC+mgEDg74dSwgkOdEsQWVUspDZbGn4Lxb7SGjK8YMJp4pfZW6KcNQ
2RlztOT5IX2sHzQnmUFHEMQUwuakqDGYjzLx6gIZfEYuGn1vsTScWh2pMg2Dbm3rBZ4rcKCUBI3T
aFBZUJArs7wrY0OZklgWEcYLWIkNTCEbt0K/fWir8AjsRhJSsTId3lszqReqnzRY3nbBZ4r8oVcd
D/FrOTmZsUgSsaxvFBynvrkrMHjacPppATv4cSnKvYvVPutC5Hqroe0KyOjtI20bmBqiEcHa7c6S
6OC5QJjlcoMRm4kij6zEpygkoVsqCn2fmaYow1MSKr+oD/lqBTLujkXK8Q+MoqWQOyyDdyP6wmI9
b2YZep5tBecMRJemWYxVlTj5z5/XNI64Z6y2qYAZxBDFcu8i3MenCwPBq2N66Bhb7AVdwGCwtLg3
WgoPnAQi12s80pbsGPdDUAyB3M8Niz2RxnoBn3Zvsf7G3WMJkPzAttypxJY0iScjO5iyamNLvPD+
9YJDHmDhpVYfFfIQEAaf0An9MGEAZBe6SRIYaMLsokDvqrBxBjuZYuHEB0NGBgpaFtQD23dLPhhI
jE29OyXRkS4KCaNtPaYQLMzOmc1IhRZ5MsghBYIgX6okFVeJyQWztzf88e/DIpB+JMM9MNy9RC5c
JtzlxtKk4Tbl7p8Gy+8AhSPEVcNxlAhVA81sAmv1fmWDGIeRThp0pWNf27+xcOWWQ+7DMzTg4GlS
rtJw62ayvl5KGj+zpOns4gH0FXC5ggFE9WogmRqzWnvMi/Ho05L0mWMmky/I5lbtNcOSD5q+yCFr
44AIylVqbHCLyRPfr/aOmHVy7I0Cr6yx8fzQfH3g1oj1r1YjVgUG5ovAZg336uvcxPWn96qbxt06
hjxXAAfL7H3eKmIrDuhnsr0IYL1ajnsrD68uB25AAcJ7/XDK2OZQBEKyIYMJUo3iqRPg3b0JNMg/
X6yU1Ch4fDMVehIt2DytO15GvZLVCeVaWE8TwxrqKtCAem62sWhYgcz2E4lA1KRdC/sJCMUeZQpR
HcnFjHH4ypgUvGy7O3p5aQxN+apI+WbCYMQORI33i4LpG4KW80BSFIIbIhqYkcJ4COWG9jUJwuJX
vC5BcGCwkH24QCfAjj6s9k18eCy5v4CF/2c6lWu/DhzfpFtPlmL+mjPSSRmLUJMQHHBAEdYFaB84
dFlRkAt5vw6FfvADOVmzOhKlWKCOOVPkTKq8tgwPXx6W/rGgNvLc1gL5cWYcXzIC7bwE4V0pr2h/
8mLLmLKAmgL5z6aBza8jQ+DYMHZbTqJNLd+DXxCa1TKoDxykwSZiA5gJgI0SJtK9z/qlSYA9l/1A
ZAKL348n8u8bNXdkzcLv/q0RAE+skAntPyVTeP61muY+dQnpE2es8xTcsVn7Kc0q7GTRPjVR2rs+
ZhmvWW2Onrj5+X/0F7ZQrwxHguYEDEbi/jq2LJz50zF4abcv6HuVmu0vZt6PoO41Hs1QI7NDmv2M
AoHUpHRh5YaAXueXU4bJEW/5jbnqamA7tDnZyaAZ/GJmP+3tl2Y0FOt7h0wL+WVIwftkF3GYPbk8
LJx54oc4eHk2XXYSEzOPE3e0GTkEgZGiJlvQppDo6PPijqZpEaq8A2lHsWXL9K6LG/HNMdGSgWiU
5SGxXBo2omCcaGi9X7h+8PuaPjBDWFXpxd1+ahKv07FoO96B3yrIoZGTqnDVp9XKNr81ecgZy4PX
TNiufS3qqrG0WR+wi0oTJa259pRctAlSr3i8zi+36lF/hxtO9M/vqtfftw3tAAmU0y4u8c68oJG+
57Ki6OYm3GmZH18GdiDqn4yWwCY41sMuFO+OkAtAhuKy0z/Rm3onydVrGvGgomb1GsEqtqdqZV4X
iEhr0sgfun9v3Hh+lj4HIg3Et9z40qA18fjMWOMnswuFdbKDGImElrul9HOvKWuctSJgvJlq0yPb
A4rrG69lBgOxt8NYgpyyOiGNvvVWbeSUZV7xtlPep/robFxa6SMpcz34r4bFZu0vh94tyLP61I0K
BBDCTlJoCbtu2xIQ099uOMX/phuiRf62MXrrqZ+opH8qKi/+kfZZ5hPvwIYSnXSc+ApVDDxzgF79
elXs9c1Gp+ue2tH8YKkXP9UvCblLA2rmIq8wTUlI65EZ9XwyIZ80rQzpnzyy3Xf2Bp3MOul9IQz5
wKtrwrTTp7uF66jFkUIUf7P5Zpj/GDFQW0myo77j8AL+RwhURSiZnoXq/7Udv7xedd7yaHno4Z99
aHZnJ635qd46FtJH/sI4F8CB1GYPBFGvbZYBtm7mQxhzJ0nf6hWcYxY2Nf552hco2i0JNW5aqWR8
3SDcwDRvIX4HsshNgXiT5Ml8RkuYLWMq7mHVm+ETNaALAwb8RC4ZnRRbc1MeKm8lVWpbUcg3bxXO
Y+sRZK9SAdYCcmVX/M49ZU1jt2H5yvz3FfSHTGFBSJGcixu18W7BMUlW/RWX9oxLdwGPkg/ZUtCi
pqbJp8+R7DPzlCLQ+vaZzl6zfvG1lB30ACnePusMRWYZzNV479rdrjH2rNOwFwTvG/N+n5dNXn1+
p2/kOsFyU/93NMuJnfGyQBilLm4yzvFakkc7ot51V2ajn5EXy32duBmCLqIBDfcfuka+dIyLrnpm
ONl4cab+5hM7/WPXInzzSe9LsUEZYNB69c7fNUt/M4jVMtSuvZzvgqAy8F5fmkPeebyi+ZRNiMws
eCtG/tBJAMlwIA/zGFOYRnKi2vTzIyfgRSVeOJgw9w9t1/eWCYl5uM22MkPI91wmuVjLxoV9yKLJ
wIN70AtY3fGANBrqYSfz1isJt6hAJ9LFEv5sep5e644ohIWFD3aRQKJFKwsRV5/Xqr2XeedTa2dw
PS/7iXZf2oBuoVhMYaHG4E2G9oBDOx0O4cFrCh10/x09m/ehiHAMCvjL0uOD6caFC5R3K4zkyy7c
EHihV7nxOQslBu/spLAh5jPyTSTFn+OGccEi8/atDIveiX8GrlvYx1Sqwp/7v0sbT0jDyxpWBtK+
ayDXa6I1sdAWnX1lAcStAb/EoET84+7m2HnrA+LfRn6oRxh3xCqfNHyb37gESzTKsnmZAc1ITU9N
k9avKo82lsXwjBPeM5qGpxtrmVWxoA6N9uqWMXD4v/bmArLx/So9uwX7/evd2idbxtZ/NEEcY18+
Foxd6C+tp9EHmXjMGbZl9op3j7YDV0cRmG4tkO5tQaR/doJjW3M0HIY4A3bQaM56VvjL/pcB4T8U
/gZsehapf4rVWQkUIECgoqAY7K4glg42Znwz3oEGDCys1hcH6yUw7V/3cW3T35oFMrJKl3tWMf1x
0yZl+XeKpx/xP7/oJMt7MSB8IZY9e2uYXoE2YJ+LTZqQD0j+2QO9MX1TcEhQSurfLmWEEW+wVI6W
1bUCGChv76vveLoKrfMgdHpnWVg6Lpf43MBGaxq75nS7L+GB2U3/Q0sXDsAjyHJxV/xz8YZQkV+0
D14Vtd5Lqrx3Xp4vf44EoJ5qQ+rBiHNYjNj/dcOvP7a96bjdQsKUR7ZHJ8D6EgJd9+QUCf3QKyH2
4Xq/flNlyADZAsXK4o7EaMDbSUI/rW0Wbl3rZ8ktMjCYKN7jbaEHF5xE5lWXKkkz8kj9pgC+881d
wdsqNHn6vyqU6YIBNJwWGUO0atmZyeFH7+5FKks97QXsO1BX40Vtg4BJwgQsLnd0Vx+7u6zBvluw
TXliR3Qi7Dohuh0nQXKt3tsamf1Sf7SsGpgn7+hDlmwr8s+pEaxTFjQLsxfUR2FLapB+DvR4ZcQ/
DvbfcaISc6QYIovCzLFqb+9WhHMfrcTnM4lDZJFwBm768pHewr8IhKZ5PVR4qBf616zShsQ6QTrn
qUr1DNAyDMAZVyIjmeouB155rr+w0A1pDa8MQut3rqS3/OSXrl8clp9Yuinig7h9KKcQ620LPPPt
MDP0HkKLGbEL2NoHCnM0NyPsXDS+FkGYG7gLRLudhjaCqHXlQq919vceJWxY7AkWrNaNdaq3vgye
EZijZFcEaa8Ptrx3yc9e23aKL/usibwytz4a1C0JDqB/RV1w4wevDKT/Am+K5YE+egUYw7d+3URu
XxFJuHfl5lAESHxskCu3OkkPrIAhOBhYoH/pQJf312MQAUZmBKGjli+H0o9OWxWwl8XIZV81kuch
MJOxUMWyCf2sJuo/U7O0VQCA1NM2h6os2ogZMtf1RHPu2NTYyyskjHmzNnay6KZNmm4kuyzGigEO
9a4VPuGeWkEsRNQGqbgs55Bt2+KgumEdnZip1z9ViT6uUqWLSlTHTQ3uxrn35aO72Qb1ENJXbEUy
1z22Pt7ane7aHkQ3flQXu2FbzH7ltvLIlaYmvWhBDkNZe2m2/siVeXodSHLZxnbC335Q5xvjIUln
LWzwjc21k+njB5M14C1uV79DNrsZA9Vm+9n25j3rNFvcdcT2Fs/0pVt2h9Cs+V5h1kY14YaN2yM3
IJGFzwJBGPItvy4fP3x2lt5cDUoFZ2eQhocShDmVUfLnjbpzlsfd+PVdXnT7Pwv1rdsj+qz5jeSG
FRHbfSvKQkBVZIMnaP7ChODDc4eS+cBab2X7jod70fLKgH7Tlw3SrM3Ufu3mqvC1CDPaAB2lEv+i
Wfn40WH5yL9qlc7SGcxcqH3raxJ1tWmr1r+bFPew4TncYcH6Ghidwvg0unJTRbiREjm1MBn/ILuw
ClKIEqwBKNdFlEtzxNefrfTm1In2c17YGTkHJBcb4ZzElWFD87Ik9e3isHxrZZQWwnvfjYcxsyK0
75NmmcwoAthxQBuBlJYIMct461jh6UGLA81lMfHCojC5U4hFjRSLsKSrTV+wKURngmkQY2zMvyhn
CGzMAo1oWRZ9LuxTrtkYlGYBawosQTTQT/I/tvAk9JEbnBas7z7SR1+xeXXo5XJquXx5KOGB5UGw
Xmk00jdRe6YqHB4d0QWQUQJOraBsubsvrVzrQ7cvaLbeuEax3LFmG2w8YVGBKCYhWQgvuaGn8BAL
n49WMO4W6KcHIlnb0ycPt2V+P/d1bGMXjq/Gd3dmPjA0bYwoCsJNy2sXfVcZqoU9xt56UV3rnyYn
Pzsma0yKVXQ+sb5x2WslzRXmPRBfyQ6nrj8po+/FPZMG5dgtGTYiQC6TodaGqWdDk7J7dolvw08V
zbCtbsf8Cgayrl08MKXbFQWuQX1T5K6yBVujMS3mUbSmH2rCW+9aUb/W4wU6NztnjO1Iw4lJ2rw8
nK6bVo1mvVWDu20NRHLhpC8HuhftniRuH5VIK27shaoYKyyj54coXaO7kyjX5uHrIiCfcFK62FQF
x8xt68xOp8/OJc2P62hmSVRN6UqQH8hqZMaYcF0enrM1Gl44yqnXlcFGni0KLKT6gT7k0ZJQ8FX2
eTWEWDGDIADG6KzuwtvbYuqXJ9j0+jKQCLg4je4AKujz4NQxmgUChv9JyCHLrZmchhpTjxeve3e3
0rsxqiafmYY3ur2K5do8dB0j+YFTzOYybzx0O77B0KsH2dDM52vUgbvDei5IPDT3SRIqrs1St2c6
ZHpXGfo5Ccg3UAxWA0MjQJqv3pGPn6oKoVeXNAuFFkFRT3WpG+7ujytg0yNBWrQQAOmKZwvxxnEu
etUruyL9a1WhC5vdC+zhbX9IpdWX5JGGCminjtSveFkPjQALiZ+Ro9cVuvCsJ7ZFBm4LC71V3UjI
TkDlxzuVbQ/mS+VsU+2hxDrYgSLfDVMfuWcr+nZj0OgnJWB1aFKs+OVBqGRqEd7oi2IbsKVFmXbm
GZ3wF1sjdP0teerSxY3S3PmNaJhKdXlAUrjkyd6oOA0EH2HMW1me4PmZpLG3k976SLlauDWEeoMJ
7cyyCxWD7Oq2O3oI5TDaDaY5DaIg+g/jyLxHipXSbxr1frvCeg8HQU1Dk/QNLw9DJcAsTTwQiXFa
Bqqsi9Abc5y4zhPBFjaGGQqQP2w5J0v8qiSkbjytM67wVCiOk9NkT7FPv/M4G66/vjfacnNJ7LuK
sJCfJik1Z6fR4psHkR1lQKzDjAvIEbbkO4hadgqafVUJXVTkk3rVQ3qtXVSaByfq65/sR0ps4Pko
CyIJDAX907H2pbPXhy57s1Yf2UiMrG52tPXOnuSnr+r1zCIv6jYmVXRXmxJq/Pq9IeABXgmmK7p5
jP7yNZvUH4Hxt4CdqI5Mohun5+Kdb9QIHzJSNtPDCTmfM3sIj9QrdPaZ6bq7Vcau2kutM7JJfYFk
3PpkZWRQtarnSJgovZ2o4pquaGuhkyqzSozNEDBnlJUpjhldSXEPb/S8njYB1hIqsz4Nnk/t0+Ho
qee2RL8pjxpd+iaRnUwOiI35fduEvff0dFQHNNEXwbqnlnkNK3sGk9V6dQRZe2GZctUbjajnFj/q
Doc/Qhcr3XVFtr5xAqzBTHKGJWu+UqgX9y/Xpy/yhnqoDkzOzMC7KiqQ49oewqP1iv7cxDS0u9oD
Ka0HucpqkP2vEPU0OBI5r69V9MJ3zQM2Vg44sLbMzBPe2RbRvjrdhWtgvdxTvk/H0qVzSumWOV7U
s9yndyOiRo+zatXX9sIlI9JoGA5wTRI7yNER5g2Rnnm8QllQHglkA5lANXCAYHbY9ekYumxOGdr6
oUfptd0n5CVLMe9JLrrlwb6o3APvbvVKMjw+GCOt+KyC/t+HbrVnmU/vKREt2tumlt/WWyrNd+Jo
dQV1Dnbpvpl55HLQtDFY7m9rlRnOF2ehrWk247w8G/KZXnbGUgKeyOt74DubwNVzTpt+8EtjB/KB
xcFJ1CsKJES0SODybLLOW7+XtK8CdtnMQB8M+4nXakOFbhVlOTAO9E3C5ffk463svf+soMVOODKH
fpRycRoqg757XmebHiyr2KuIwcp9TR5eWBSKrWf7JLavWO9FCUDLoJVMkl9+oVibXxIxUmxAzfZw
objlrGX0D5tUO7LhYIDAniUSl8M66AWBDsy6xrN6iC/6DfLaN3X68azlx6bS9WYbAGEU0ydn5YU9
UGzjKDR71ha6cFUgAg57HBiTpG65vQ/e+VA5XgLa8dYClxiG9c9CwL89F0hNX9oe3f5Jg9G3IYIy
LJBn0zcpUj4929g+Is0IQb0TT3Oh+lAebtf3WWHZWIKxta6HnUJ7CT62DzUPGfhlItCxjd0YNbo5
LfbB6XIBq0y207IShGOApKNNtcA7m2G3SEPS5AI4U5Tzk6RNKGrew0KWtfcm5oy9sEfS2Nb+EAVq
+xQLdqXKVlffFGv++BzHoOuXkU/fWNdUAaOBUZ9DCAM2Xj8rZ/TF+YljYPduDgz4lNoJsafYSHIv
lzXvlCxb71lLPfPmbfPW7mMo8653lCPANGQLHCT6YqEpCs5+YMJgJ4is3yBcBoZqa/4sm0xAQMd4
uC/Zzly0kL8kH2iCYQRX07uierCO3SC7Q5guGpsML+8q18skXAMTpMTyW+DvoIuG8KUZyCPbVLcX
Tt5bCafYc2fk4Dr4fHfr/b2cNPJMFtoEcy0uhRPd/zSvl73rDBfxT8qiP7FmYu9hG514/SicUMPC
3WYCZQvguCwSmJCLfgCMAKc4Q6EnIEssx+WZQmqWrTXiiUkYgcKh8M/xeAPoBJaZ45BiDAsUYLqX
HINtSkCb1D8pF0JX935usNBlME4Ougk5yrsWL94hEGBjYoCDKLDgL4U2Z+GG7GL7CjgAYqf/LMuO
GnDIZEmTZe2jE9EKuG9la+4e2+S8VagXgS1qsI2eO0gtTxfKm4FFs8QTkaXx6XT7w0jfFl/1iMH6
tqmRywhg4GJhvGBERj89ES2H55r9P/5+8wBKCsBGkBnF5sYaNA1n9cS7bu5Dd5rzA8TLsXWnGhLz
TaMWBsmpLtQ8PZd8DeNcbBuOyerxaF+0VSbqJnaw5Q7KUl8bDf8wCn3LpCwgwkL85iSyEFaV782w
D5hz2PtaoWM5XuxgCgJG8LOD2PiCH7NOLaGXsOGFusBtUFYYq6XuQMKV3VHd1d31OfH7qMGiOE50
kO2Qq7uVbcYPFLbHO+vvAwE2vysRIjDPI/SNzWatIZ2UeX3/2ZeWsT7Z2n/Z4SZE5Grx+Tq+kWb9
kf0dpG8ic7PYfG2GvEJnpBAtRCzM+Ht6EOQCw7hg43KkCwUnZamb4J2wDjImcea9pWIuDMRXh6Ji
iGYuZvJ/BwphNnsvvDcT8lif7r/3ma0txVQHRmbJQchvBS8thASbl2gAFxdp1VZl0bbs2bO6o92z
iFrdOr69ILcUrx/S2LhsPZw6UC9QYC4Yn0Z8lzjDTBCAAB4wj8QH4N51mu6OP2dvSCzbWwDBVvOU
PApzF1rJbmZrIBuPrYauiQc8Pw1ybF8dTNYBHuva4mE+Iw2ekcvmKQTzFMwR8A42/7VdQ9lzGB7x
9VxdBb+uNt/nkAwP6Ia3rqNgMFLWzub9bdZWhnOhC4Un5NK9bcW+D9fdPUHKDToCzB17+sGBcGr9
rCCThIFXIfzSKjwuKibk9rBGXp40mHpKy/YaqWweZv3j7EzC8IG5zwynM8PYwIgHnSeC2H6CYVER
IdZCeB4rG/u91EvgwDI+j7NyT8zA3mk2tZ7N8WlpRL12kz5kgS/x6l5bwl8WXYReaumjcLMurQ/i
U1kETk6CsYPxoB3eHkoQIN9LvHukuvVuN6psqacQb4O944J1Dkhm0Z+FEHSI9mHzNJRRgvuo9c6+
UhVIyMHYwbCnIhCKTwWGP9snzugBernmOIpHBrBx1Np/GenX0/3xnvHUijF7b3xstWmvQzXK7+xv
HdvYZR0bjE/QL4PIUwEDO+4BwyqYwx+8BDFwBcnA9x4PnglQ9bqRGX3P75E0Wofvf7kztHz2+qZ1
DZFYVBYxPr9nYvcZ/VJOdVnF5PuGdTrj0wrfq/4o0OCHYrFrTurcd1rvpFPZY8p90eoXNzT9+OPu
sNtqFaVJ3ZKO+0tB0im9XHK32aekT/q5IfJmnU+F8xvMQ5o70OBqyUGJb4vNCQpWhEOIc7dORIeq
4t7FOz7sWlme4Z/mgt86WbN/t+TPweftCRn2fh6/ny2kzBv9a0Lb9h2tzz1U/Zghz+rA6rMvRqxs
jLEz38HyrEAXBUKAqA7BzsDAzBa2fevXth4HKsevWU/+rKMPgdZxx/oS6xsHG3PMAwGeJlv8vri3
gf237QZ53/HVykZ6oH7aisThvr/tuw42P8TH5oGZjFvHTOu4Nw3oNhtN8A5D3ZixenB2VLYZb/1O
+zLsT+LSikurARyvL9wHVF9HXy/gJfqtETD7kjkft72ApbmVwbfl44MZoOzPbdfMvfN6vC+2HQet
Y3ffuZ95mT2HuZbFx8svj609/fwAgO5bX7aeHqp+bR/B5hDT222W1yTNarf3PNTaxQ712o+7/ccr
e9denPYvfOszDjWXtX5rv7LAxNSuldmB2EEOkPfuL9p/55fW7tbnM9WGrdBOEEc9HGKXU9YF0FWg
Xtg8PUf4nLqNA0qxtZb3YPuJljY1AmAJtu592u6d9u2LriAV8u2o/vN6tW+xaul9yocxb79UaQeY
tcLCOuOUOuQ42x4LbpyajdaBVu8vy8Mx6xvio4EyFENmrrz/uGnfXiaG7rZ9tWVMeJSWd7XHNt4H
Wz/b979xY/5gff9gY+u3nk+Oxvd1eGP33wKVxbWrmn5GLvAMwbHfVn+s4twvqhaYubsQf8O8tyu3
NNfaIFf3it7JZ2TYpJTTcp0ZH6/z7MjLSEi6YVCq6Qne4Verxn66492qWhXIZM3voR9LvTVrG9Ia
nx2ddV5Xp7XLAyemDb7im2rwVJg6jzyk4N9qsP/tl+KezAMvSP/bkh1dbz/UxjxeUtCOEPBBmT2P
rtrw0vwvEfjlvtSy5TmEMXiw8h/Osw/nntbn/7fmhyMJQTvcMhzJM/+X7c/fzRHgCPwyAkcyT/3y
0379OyC9Q2cHAd95hHs1e3KKgHzRE5O0+28txDuqPfohD+l/rbqx0O+H+6Pta7z0pmVB66zFPstj
P3pjYcjoFQwiAX9BeM1luejhS3JR4+E4LSCGWYPgof3kuH599PgTf00Efp/GbguCrbGVLklMGt/d
njl/TcMORCxABw8srw4i376yobioLlJf5qP+jQ2RAFJ1fcaATr1yHVImeIONB4oavq+qCnmRyxYP
qxTZE7Hl7WV1my/u5So9Lcd+wsRuziEzkyw/BxUgvGJy5PziCPzOEGAnkaDVaf1TNnkY8o6kYQnI
Vw1hOfwA4XfWETpAdU1PcUuo3uGFs3WASvEicgQ4AhyB/wECzNOYBfq0J7uEB5q15k4nZtP1T/Ym
W2A/IDMm79+qSIwg7PuxaMGTJaGNn3jkwd6o0Imlv/RwCttu6k7XjkgjoVIIyT5UeYBHzSzvn7L0
2fVR4+3RTr2J8S/8VnXg7/nPEPh9GruMARO0oVfWhavG5diHpNvE1HfHZU9d3S+l9Ltd4R2fVvh3
VwZi4cbaSODlmuAWlGCxQBgysCtbUI9kksIgb1Z135Zm1d8l25FotGMrhD/aMNncpNSDsYuSJNHZ
O9lq/7lGYWqt+1OF/2ftx7/NEegQCLBQnlf60/UspLmMEVEdgHikQ1SEF7LDIcD6XJxYBTGJEiHH
gWKuXNDvhBC0DaDByULgmBchx0FiLtB9htwqoC+UQaQDvuckMQXy3uI5ee1VjX5NIMwywsUMbFYW
l0y0nDwQCQVJCpaj92u+iz+LI8AR4Aj8FgiYB4bwPz+MwgtMzhOWWww8Cb/1QSKb+9kcfk1P4p7Z
B83dQwUOfCCQD7snn/tQmLR6mp/vjzZCdDbkK7fPx/4t8OTv+PcR+H0auwwvO5H+sap+44jMhONO
6WIfDEzNyeOPc550eq7zpLuGdvKXeWNVy2qDO97e6isr3hlqAhEhjJ1YzrRZktjXkyUx8YeJx115
QOgZKbsQlx0CBkJpaJot5ecdvgZEDicd4N9vTP5NjsDRjMDh5kMdzXXgZetYCBSAV0GJEbwJWBOA
eFkHsk36RjXOmFskDeyfpFfc1gNt8wLZUyYYusu9suOBVeq5DZo1G+tarKddLAlR1XFqmr7xwmyW
kvjrS8kx4xvy2VXZQvWiALG5oIw2KORKL3JM+0w/JZVIvsf76muBuR2M4N/OE9KxWpmXliPAETia
ETic8OD/dvlNg7ddPmzrG48sRY3vY/7bLfXfef4xZewezG3Kwuv3FxBDoLwt0Alf7Zx3w6BOFefm
Ofr1Tpa7AmOzDbyxiUMzxH5DM+R+F+W7Gp4o9ix8ZLm7RE5OsCXJosmKCVHMpipZW7n11iZiHzN2
5hjVVbjHSLRiCeE4Sy2/OAIcAY4AR+C/j0CmTOhl6/UBi5q0P/z9OOHDv+aRWhkMy7nFev8lqPMj
Fe5d7z8zCN8L8mE2kOgRZ5QoM90oeTJiGScxJVoX1db5EzKGKXX1d90+SJ0DHtY9jMi/Vukzwcv8
eCXt8nqN+MeRyXTx7EK03gFquYvKcPoiv/y4XQtt/siFzgOWZwsQsvxmYX+/Vv34czgCHAGOAEeA
I/C/RuCYMHYFEJVmRmeKjSl073NBGjnQxAL96wE2CkDhHA7S6H3f1xY9sBqXDkiXE6f2cHUd0SWh
W1eHJTPLTjIgxLnTA8M7T9YMQX/ix7qS5ogWYiJo5X61euLXuz4OKDHVAJn09m/FoG6k6zFGPWsY
OAKE0cAbamqT8osjwBHgCHAEfhmBw2EaZU9pzzAcfy4LC3aBK/fD3catEQPl6Fj/iEkSBYOIZNuw
J7Gx7udsGTHtRgLSFNHbVumFIOczUcaBHeM6Gw/2TcCeZR69X4niJbmpyE0V4HE4wHWgdx+sZge6
Nw1ClZ//wfjzbiSdPxDFVjpchCqga50FemQuI7LUJQnliiJi4E7cz9A9XHx+Gem9dxxJfY7kufxe
jgBHgCPAEeAI/K8Q6PDGLhi6TODZvIBkWQRJqvYXGJ1gsMpWEbyrbS6gihKSbKKU2cnq3BVUo/6A
Fl23W/Gu27HbA7et6ZVpS7qyMKXgSpAfkkVBPq9nYv/Hvt211h3Rmtlj0hNIiqLp+m6PGojr6La+
GOxeTTewLFiy7ZK1QdFVIH7mXt3/VQ/n7+UIcASOegRAhzGEnFQrqyDOfCeNojSkIkURkOwwvFU0
oVVrum1FWIgyygQRD8aGIEOOLeS3VnvASwtUgRAOrKFM6gN6BgvGhnJiKvKSHBKs2KCkPtmPbHjH
FroE7FxLFUhu5BUQd1RVJCQ5SBYJ/vDlOTUfIJqeQavkHcQV+sTrla1VXgnIS5hCZ9yQzs8kEZbP
iwJBAv+lB5KgYMZoPitjGlXNL3pBqiINZCn3yG6xDwM+hG2mTm8XSW9GDhSoqkIZF2fR+luHyFdA
nUBDsr3ESp5MY3KuIwz4sENWJouGPfXIxshg9ub7ygH4rgU0wW35aSjMsDWLH6NiNSh4t82ZZwZu
vpMoZjmZUe+AzDo4FPDUUBuTVznqOw8vIEeAI8AR4AhwBA6BQIc3dv2qocJqbxqTXRwWO2yRKLLv
YUhjEkPq8HQ50yoKe41dHWmpMrF8PD779CGd5N5zdwZWTp1T8R1KslqBiMrK7NatdUH/zAXBVafm
OHv1TZHyTWMZtHLLfEojAh1slrP7t/6u/JuqgivBtcBomFtP3g0U0aNf/LHbmWOy7AOqg7G6KQt2
fbaxLuqDXRLfOPDhyBHgCHAEWhBo9SSevkgfF9Gx48cT6VfXrEcFSxuEwVGcYM8Q1F3X5unLz85C
vlIvsTKSKKbdmJOGlDuK9R7fLEUnBgwxRTLUMGgpbnm2l/7zADCc3y9Daf98F50HfCguXdcSpq+3
/Tlvc3Tza/3lZa9U0s6fNNhPGuSIbb6vt7551CfqHyvC0hgEtl6jLvTp90mvW3rj0E4wuusW+hIH
n+VS1szoSquDQWrJd8kqAvGsqUv1Ezb41cKIYU10Yr1xfJrxE8hbbAPSEhkYx7FJMGWj6vWbcK+V
jaSPN4Y6a4JIXKJed0oKKmb3Mo3IIR/a/+IzxF6g+Yg+qxP/uOZDtceDPeiPXkrEKUXqWakSanqh
P/qJ5ewyMzs/TYn8a4OU/d4q5SSvLqWLhhbLsenb7+qprx6RhkLuAJGWQb7vlDnq2V3t+q4PhqJV
Exeh0dtCRh8E6ng9bXjzC/3p6jSCNLdCSJqMNBdRtCuK8YCVTWgwvCfZjvXmbBuqvKkX+XmEk4Z5
jhofrhwBjgBHgCPQkRHo2MauheCf6sNNAVULuaxi0sSuiQOf7tK4qbI61Ag5smBYasb4wuSuF/ZM
Oql9I2nY16yGZYykBAtOOD3bMWh0n5RNS0oaqpFkIeAnEOAUXB3SJ6lL5wQRKMoRqg/TADxTmF3c
tPnC7om7uiVZsy/r4xqzoiZS+1lRfYWpz8tsWVWL/WVkRsG4bMfxYGBbgaBKrGiKhsxn8osjwBHg
CHAE9iDgAsPVQ6m4otH4c1jTe/T/EaVsCYqXacCDbBDRsgXOHtdvivx0i4IeuKqAVnu9xJJpU+jA
r8mlm0KWKygWUwVNhQNPLG0KIbTShz9/7Xj0cJWKbev9xs0GhgwWQ0BlYfy3xpCxONNJf1jswT2L
Ykl3NnoaXn95EFq/ocm42Ictw5AWRj4NDff7heF+Ab1XERHKi1HSnZInfPvdg0Ll4MI1VtbThItL
8LU1UfFPkKVCQKkxrItywqadtGGZJ/rk4rHSXDeQoDB9yX7fG5dvoWSapsYSsSBEoRiSISWIxYFo
XZFPe+i7kXjhZp9+VRiLxzFjtzpqmeoJ0+EeSlaU+nDiKr94XyLW12XaEMhCEjHNhtRTFpCzVviE
66LY1kWg0Ric8lo2RyS0Zq22+Nrs6GN3j5O2FC3Qs1d7jdu2BvWfu30rnFwdk6bolNoMK1i6YdUo
/kl9//3j0dMFLljlZKqPXCBOWRcUrwNjPBEbWkhH2L4hIKAVTfTHx3qjeyZlkqYDedZ5N+YIcAQ4
AhwBjkBHQKBjG7sg5VPlUYLL3eHSCV2dw7slWnI+m5A76avywDpghtJ6Jkvp53R3nmgRBDEc0yNg
2MZFrMFoVSG8+amNzStfS5V7pMii64PTupz/cXfnmg0NSl0I/tYv1ZZyQQ/n0FRZTFGoHn251FuM
JETcDdHQw8VN388e1flixuD8+rguUyflOVevcIerozrSR2Tasif3SBrODN1QTA8/vLZpUTgMLgM7
+DC4DHVHGBO8jBwBjsBvjIAkoqaAaE/aEgxf0dNuvDmhs7ikMhx1LqyPzPDaMka8tLP+T7MGkEdz
nEg7YxkZtz4i3ywJtPY0l3Lt5HS0aUUApc116zPcOOXc6asbjcWjLPf7NP3sJ8v02TEBJZ6bFrnl
tDRxhyl/wWZivx9ZZB18tNR4sIDc/GpV+NS1uvX2LkSZc2m34Bt9bHrg0TJjAlL9iCTiGLI4dUaV
fPlS9JfdOPmCJNy86sLj0KPnd8a7H9kaGfpds+WhnyIJd11RrOx4fSxZeeo8eu4m5LpO1n3bz80U
brg8V9+8PoCc71QHT92oy9cv89Jr51TRtff1JRc/tDl6dyMWxw13qrdPzBbWnJ0lNhcHUDLWaUgU
hRBbpNPAS8y8rz/6pbuYgN1we/TOqdloZUUUOT/YpVzkRkmTn9gRk8dU0CuTCIpJWKj1Cfbhiqpk
jEwy7jvRZWwt8gbzlnrxDdW6c+oDWwMrvpmC5t21GPddFxKuJ4h6L8sVZkzNwpVv7VKP+7JWnOaR
0s54dHvdH6cXoGfdbha9zS+OAEeAI8AR4Ah0PAQ69gLW4i19tLhxdf9U63HHOaWsgZ3kXuyntSki
VFfuXFE/57rjO53KjF0wQuNGp5NY3l/bUFHgJF9dO6jTGZ0TSPrV/VPOYt+DDFsdgpJN0qnmqOb/
17rGbz/a0LQTDFYmIG28VOTZ1iPR8uWVA1L+kCThxEt6J4+Dn3atXxemjf8sbvzmlZ/rtyO7ZEG6
zj27HW988BJzBDgCvwECwFrPdMyFHhb0dunFxlNACWVHkBd71Vc0+kJN05B6AQ0sqqaJuQ6iLvHi
vwkwoU7pTG995xyyVKlAjhnptHpxBbr1zJXNb7pF+8QHypTP3pogff/UViUKvl06McPYdklfXIdi
hH21ZS6GKV6Wjb+NQFXf1tLqtcBymABG94Nj9E2Qs2r95xbggGi9HDb1+cWRXjsVcYqE/e4nCvRb
pxei3Uo9lr+ZQuYVvhXL3WwkXFLSHO0DqbEr3SGUbUXqzomdjYc+OMdYBDm99vGZxH0zoltTXlGG
ejVh1Jce3PWtCeQbMMi9CIqUb9d33jyCVCCvzUr1SNv1wkAyMT5z0xm6aHWOtoduXnw+nkOrqYO4
yK4nAvjulHm+dK/VdfKDRd5TpmWhtczji3RNm9hZhPeT7yFP2IlyyIbB79LUtapw+9aQMRBykL/e
4pUyNMnhSNebv3txvLCCnQSPHoDrXlluNPxjR3NtmiTuCkJy82/QBfgrOAIcAY4AR4Aj8F9BoOMv
YlZMfqwMNpz6RfW7Nxam9M13WTvnOEgaMCBHK/1q/Usbm9Z/sdFX1TXJ6sp2kmTwAruBUIoZsgLT
2r1zaW3xD+6I+8q+yf1znJbUTrKYJEP4XG2INm3zK3UvlDRv/LHMW4ecVmbosktAkDl20w81a+ZV
h6ov65XUJ9thSe7itHSCbRQGI7d5c3O09vG1DRtK3RFv3EDmhu5/pffyh3IEOALHBAKg4yYiJYgK
s9A6oJKyMV3GfMh97eWSm4RqNWIA5wJTQ3yrkmYqGuqRSNSfH+qBSrwVyGmG2FYhy5g85O26Tpu/
WZd6lfjCfcBruxwxHn5DF4AbSqJeaiEOIJPa94JcXGCQMud3ILQSUdCwogB4MgVsckHErc6YvqyR
dqXE4cpAwc+nA6lVWQ11MEIoZxlJ+tdA9HFNxPdlXxcJl5UpqR8NIe8VuMKvQRl0Wo2cX9bLSYuK
acF6H+6u6ChTQEZMjemw/tosOoqaRjUIHlmQF+KHlHaGLqOb1j6roKmBmNBHxsGdV3U1ViCPZC8L
UAlIqKSCfOQfYMfzlijayeVho2+IChtAbI9AHrP7rDRcQauVRJZ3WwAmdbqMa1EkhjQCHBRUEPu7
kPvTOp/Xja1nZ70aNfom6ktPS0NbbuyOqi8fpj5IYbUEySWZ5UofEx2NV4IjwBHgCHAEfncIdHxj
lzUZGLzbGqOBGXMrlyBZtGSkyHZfTAMJh1jYJIVyEvmab6qXQz6tZpJQQThyS0ixwCSBFlUE6heV
+uYz49eVgGU7EeE4OxpBgVgUyZDD67S2lw1iHmX43hL43pKNTbuQJJJElwUcx6LQ6FOBHVRXkQyb
CS439LsbULzCHAGOwL+BgACXodGuCaSRBvd6EiEVRGzh/jOAVIkW+XCWgUWSIFK3gxgaI4Pa87YY
IV1seuVmn4KakZCF4DmQKwtK5/9Gedp8BZsy7YpQp6IMxoXoJIIbAfNx6y2M2ThPRuowB40w9mIo
Bs6DfNib1uv5c+rkc+qV2AmqYGRqmmATDF0zRCILghZhZvhhlSyN0MXFNIMaQhKQYZXkAnOyF1ia
93zXg6TuTn3XkuaAEZRw5m5DlJGhAQ018hWm4qA3guHeuI0PhF3x7wEq1IusV3fXq5Y1onsWN2k3
u0nqH90B9Y+LvZHGB7dpmwsT9S/mDMXfpQE7s1fh5IqH1Vb8Jo4AR4AjwBE46hA4NoxdBiszal3W
BLaM1wXUiEkIZccyapXABYPXFI1g1765s2AsM4MZwtsMLwg6eDXYGFghkDnJCt85xGV+z8oeavjD
RtTcUFjgzVYSzw3mF0eAI8AR4AgcFgJg7mppVl2hMaYpe+ClCbMkk3iGCcu9RbStn1ahMIUzY+6/
kzFCcNwrDHaiyMKKwavarl7EQgwHIrorDUUnLqaj5jXID2rABg3sxiVpIlqSkoB29EtEJQsb9Isb
o+iUwwKl5SYRg8nN3mya7uy97fGJMSIKs9rMioVIIvg/WPrUfBtRPRHlwCoAAYKdSDG+nSx/+eQS
dcuHNc0nVinC8R5dH9ZsTRy5JBAbOWJp5IUNY+lzgDOG6v53gD0SIPi9HAGOAEeAI8AROEIEjh1j
d2/FBZAd/PckfrCZqSvC948QRtgE7JEVOuLvHum7+P0cAY4AR+CYREDX9ki47Vc/8JqSYSl410e1
NOanqGs1hB9DykoMjLD4pJuGYjWq1g1ZrMglRWuQQ6QshJkZgMw7y/Rx/x3Q9Dg3hJFtozUobEPB
GHiNFXhWi62bB3q7z5TTrGd2CJd2T9CL3huKFy5uFC7TBOwaIofvnT1A+mpYDgohlxEGrV1byqdk
ummQi/Ew6T0X8yBb4Ccu57v3Av3gc9L02mersFcxcPZmn2Ef5kJht9Ji8abJ0YqQkm3ISYJd8Nd2
tuEI8DNCpDQSIubBwUEuC9XfqJLTV22h/aZl4/KZo/E7kAf82Ru7cOr7Vf7BS3zkzooInvrwNvT1
HT31HYEAsv47+PHvcAQ4AhwBjgBH4H+JwLFo7P4v8eTv5ghwBDgCHIH/AgIROIW8IIfW3bVV2BgU
rINu36ae8OVk/I3Lq8jIKatz1tNMIJA6FXTjtMFpqIQZqLphCPD/NqTBb5lgRoK2LMuOPZIrbpES
caRLr/7EHapvQPjku0rU7vedlrQJeSMycpHQh0tjU6qljAtlpbYZJH+WRzXUhQiq56ae+PthA0g9
GLl29owLloK0kWYZCJxZKpD3w6FsJP54EVJotQhBEAqNYk6IUALF29YLpJnG5JFm13qtuE5MPGt2
ZfMp04bjNwtAyxdiqmlpheIoDeHTWbh3gUNYmxr3d8MBwKEdsSQTRV9cro/6OSDfvaoh8sSGAehZ
4qLq5Tlkx+VD0a6k1/Xz/QIeujNIkwjkDbeGQh8JdvxejgBHgCPAEeAI/K8R4Mbu/7oF+Ps5AhwB
jgBHAJskVQe4IHRXBLsNKxEkZuahyOlpwvOfNujPzW8UHjjpfT2lr0sq9UV013deMj0iu/K7ROs/
/md/YSPyYlnEKKThBOdjVdE/z52Lfv7yBGURpLaAqxfkd9tag8BMZX7GAoBbL/ZvlgbD/gbEUVf3
U3e9Um15fX0s+eYnd/ofWP9J4LmsJOwp8qh9i4PkWgv21l3Uw/IVEGU1J6zRyr1i4shbt/guXR/R
P8fAAP1jI+6zokmYqWHRARrwujdmgAGMDJDGiyDJhhb7on866UM9/cE+gR+AJALitYEsC4xWqiAB
CKIEkAV67V9VgZFrFXJ74Tua7fhOxmqN6rbvGsl5XpI0KjniWf7cKGnZO1WQ12yYOb37hxm11BNe
i5kH+aROqGStj0Y2KdYrh76nBk5Ml0p0ioVvPdof/Ng2NEmIrLy8B9rq4V5dPkI5AhwBjgBHoIMi
wI3dDtpwvNgcAY4AR+CYQQDYqSBnd3+mZKggWJ8sW5T5ZhGNyNIHQ5SVp/+k3rrMT65fEZbvX9kc
VgzRAqRMutEFNXzwzCDhWUaaAERXYv9E8tkqf7TXTsN5ca3HO3pZDV1jRyTG+BngfXvZG5jtyz5D
7LOW6GKWHwufgcloElR5FYf03kBlznlrvdJmg/zfFw3Si9gTC+vElmDDtOzczvShuwvxjqCXkgu7
kNmv7wqkl2P75Q9vDf8REmqjwI+Y1sWGPpGFiK9cdF5RFQ73RIpiG92JLPiwxjvWIznGNzT6xn1S
g6b2tOFm4NaCehtmvd0Ban2iLynbpeIbvqrDN21QE24s2RGOQiWsSBRRKmpacHtP8nhOLolEK1SR
yS21Ytauj7TUE5zkGvXq1qf76ptLG9FtPwbwrJ9D1rvXbotFkKAZuiglJApK0ZW5+JERLhxm7NjH
TF/jFeEIcAQ4AhyB3xUC3Nj9XTU3ryxHgCPAETh6EPC2sClP7oJfqg+hD4emoOYqM9QYoYoAsgx3
0uZzs/BNCRhFM51IrfAoko0Q4/vT0Lx/bVDXf9uE8isDRp7TQv0jk9DG23sY220gk1MGTMOyTPR5
Q+mX95fh0rWBUI+kROR3wh8nZeGyGKJXD0oSdrm9SGa5t5M7k1KCYlcPSsW73DV6AnwknJdLfsj1
x3ac7SJlbi+2ehVFzJQJ3fgH9MotJbElK724V72iZx7noBVTOqsbp+ehulK3zkgS0bN96aZCO/rb
nAZ1QLVf79pJQnWDk/DWR3qr25Z5ieOZ3XRduoS8ZVUo5a1CWtwnAU1f5Av1AUUAY1Qaqk23IHVi
hj4rFUSQ3BGRsLzkAPh/Pxqq//R2hXrF3EYjf6sf9ZREXR3ojJbenIe25DsNtRpCmse4UNPGLHJz
koSAHZqKENRsequrPdQ6JR1tBK/x1f2duMYdwZYISCd9d5K+cHa5snFeo1xQFULHJRAjMDBF23JR
mlY5Jh0FSxlG/OIIcAQ4AhwBjkAHRYAbux204XixOQIcAY5AR0eg1RB7vq++CUxcvSygW1s/YwZn
Fhi4Hw/FK0DPFsPfmNauAFI/QpmH2P6Wh2v/ng+kUQj9YFLsg0HojiCLWwHeZAKkxGDkMSmgJ/rq
ZYioW9jfSyEcd0yq7rukq77EGyGEafQyrdzT05D38jxkfsaIryBH1bg6F+2+06Lu9MSIxdMiNcTu
94AMz8ODUDmieFuc2l8VlAgRwfu5h4WfvefSLsQzo6u6AGikwDNsUkfj6gixFIIW79x05UfglxLL
vKpUSol0Y0+0+1YEirxwGzPU2X8/PZEsb603a2dWHzA8bVMyZe8lefQn+Gh5vP2JAGHGllLw/rLf
ALPox4PoSoYV09dt7SPMYD47AzXN6EGhngjqHie4KgMj+sruuO7qXqobfo2XFUR4GRatz+zo/YyX
nyPAEeAIcAR+vwhwY/f32/a85hwBjgBH4KhAoK1R1rZAcQNv/xBaZqAe7Dvtvg8GHzM8237GjL64
tzIeNc0M27afsd/Z58ywjRuE7aOrmRFZ6mHPbPv5/hHYFQq1QF6sJf7uvX8HYx0xg5l91vqu/eoC
tx8sdLj9c9s/2/yNYXaQHFsv1N27j6eW3d/+/a1lPWBU+VHRX3ghOAIcAY4AR4AjcLgIcGP3cJHi
93EEOAIcAY4AR4AjwBHgCHAEOAIcAY5Ah0GAG7sdpql4QTkCHAGOAEeAI8AR4AhwBDgCHAGOAEfg
cBHgxu7hIsXv4whwBDgCHAGOAEeAI8AR4AhwBDgCHIEOgwA3djtMU/GCcgQ4AhwBjgBHgCPAEeAI
cAQ4AhwBjsDhIsCN3cNFit/HEeAIcAQ4AhwBjgBHgCPAEeAIcAQ4Ah0GAW7sdpim4gXlCHAEOAIc
AY4AR4AjwBHgCHAEOAIcgcNFIG7sGqC0wH5aL/N30A8U4B8YdPfYD7+OXQRa21hv6Qes/QWhTX0F
pr1o2Gw2IxKJHLs48JpxBH4bBAx8iDkVY2yOt1ZZmt+mSPwtHIFjHgG2jznoXsZmI4ai8HF3zPcC
XkGOAEegwyPA7BG2TzrcihAUiyIBpAANZty2XIIG+noaNZAhaPAR/ODDfR6/ryMioLPNNbSzTnVB
i0Gzw28iyEO2GLzwH9Y51JycTIHpW3bEKvIycwSOIgRUSbIeTMTUSEqyx9h4y8vL5RPvUdRovCgd
HgFVEIS9G5021RGQoMuyK5aZiXBamouPuw7f1LwCHAGOwLGMQIszQAWD5IBz+r4HmyR8wT0IyzJC
0fBeXMDw1R2uDCTJk5EaAyPI4JP/sdxrBHDphvx6dPxlObETzjKNXOuyz5BYvQVhkaAad90fevQa
lg2H4rwfHMv9gNftN0EA4iS0qKp2MnRBahtAwf6tadR1/z/+dfuDjzwHEzIfb79Jg/CX/C4QgIAl
GgqF+oDB266+7Ndmr28IrHGPwZjjh7m/i97AK8kR4Ah0fAQE3e/zDdxvTgcXLtitndvWj9BhpyGU
kIhQyNe+3obhRLrez/wQix0fE16DX0AAdgLdByCUfzzrJEhavxjOujVkgLGrKEoP9sMh5AhwBH49
BPbZc5sP1nVk8zY1n/LrvYU/iSPAEWiLwIHGnRqLdWmob+jCkeIIcAQ4AhyBjoPAgeZz8NiBu1dP
bmfsgiUDYc8SBM3Bf/n1+0bADFqH6EqWuwu77tbrwJ3p9w0Vrz1H4L+FAB9v/y1k+XM5AgdHgI87
3js4AhwBjsCxgQBLTWlv7B4b9eK14AhwBDgCHAGOAEeAI8AR4AhwBDgCHAGOwB4E4mzMAqRish9+
cQTMvnDYBGccL44AR4AjwBHgCHAEOAIcAY4AR4AjcLQg0I5/gQADr4hEyMk9YF4uN3qOllb7bcoB
fQM0UUx1BugPZtI3/Ji9gHeF36YJ+Ft+NwgcLGyyrQrc7wYMXlGOwG+BAFvSDvIePu5+iwbg7+AI
cAQ4Ar8eAgfaRzHbBbIx487clouQytU7jMqEl4CMaE/SrqFrWLAnBmiXHjWIEMjz1TlD4a/XNkfn
kzDRcc32zoKvIVUQCTXUiA6dRdQNHSMseEQDeSCRl7v/j87W46XqUAhgmGF1O5AtdwHNNzhVajlK
MszzJRUjoRqqo/Lx1qEalRf2qEcAa5qA0mEX1GnPmIsf5GIsIC/keNXGq8D3O0d9U/ICcgQ4AhwB
hMFMMbLgf5JNTqqWCwRmCOyjFrYzdu9M3LUFPvi/A6LWsIGD+XtCgJmyrpYKTwRWZsR++MUR4Ahw
BDgCHAGOAEeAI8AR4AhwBDoeAu3cvB2v+LzEHAGOAEeAI8AR4AhwBDgCHAGOAEeAI8AR2B8Bbuzy
XsER4AhwBDgCHAGOAEeAI8AR4AhwBDgCxxwC/w8KQFL/DjSMIwAAAABJRU5ErkJggg==

--_004_8518c87f5ef24ba9ad851a52f28047ddXCHRTP013ciscocom_--


From nobody Tue Jan 29 22:23:03 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netconf@ietf.org
Delivered-To: netconf@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id F3D811311C0; Tue, 29 Jan 2019 22:23:00 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netconf@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.90.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netconf@ietf.org
Message-ID: <154882938095.7720.6011805352295735233@ietfa.amsl.com>
Date: Tue, 29 Jan 2019 22:23:00 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/K7PdGNA5QD0wmVKunemF73EDEoM>
Subject: [netconf] I-D Action: draft-ietf-netconf-yang-push-21.txt
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Jan 2019 06:23:01 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Configuration WG of the IETF.

        Title           : Subscription to YANG Datastores
        Authors         : Alexander Clemm
                          Eric Voit
                          Alberto Gonzalez Prieto
                          Ambika Prasad Tripathy
                          Einar Nilsen-Nygaard
                          Andy Bierman
                          Balazs Lengyel
	Filename        : draft-ietf-netconf-yang-push-21.txt
	Pages           : 56
	Date            : 2019-01-29

Abstract:
   Via the mechanism described in this document, subscriber applications
   may request a continuous, customized stream of updates from a YANG
   datastore.  Providing such visibility into updates enables new
   capabilities based on the remote mirroring and monitoring of
   configuration and operational state.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netconf-yang-push/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netconf-yang-push-21
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-yang-push-21

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netconf-yang-push-21


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Wed Jan 30 01:54:19 2019
Return-Path: <wlupton@broadband-forum.org>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EAF47130F2D for <netconf@ietfa.amsl.com>; Wed, 30 Jan 2019 01:54:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.04
X-Spam-Level: 
X-Spam-Status: No, score=-2.04 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=broadband-forum-org.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 UQN2oohVtqwr for <netconf@ietfa.amsl.com>; Wed, 30 Jan 2019 01:54:14 -0800 (PST)
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (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 4A887130F21 for <netconf@ietf.org>; Wed, 30 Jan 2019 01:54:14 -0800 (PST)
Received: by mail-io1-xd2a.google.com with SMTP id b16so18912994ior.1 for <netconf@ietf.org>; Wed, 30 Jan 2019 01:54:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadband-forum-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=FN6hA42vu+xdf0lRzx1J2Dw8s+53WoTbv95LPeYEcK4=; b=sNXUNgZsv6Nd8e9gskwhJarF5zqxYDkUh1kKHkUzLABJ8yMg5pB9oHsGSJ0+LtzDXo B5NndeMPK9Lyb6bTsCfF63cJSqpQTCAkzD+svwZhflaX1UySl7KpXDEPZc68RcL1mtPZ 0kUmguMEMzYhzX8RaleEIUWWqSfCMChg7LIfiD2GefpGcc6JyQQ6Max1DsWMCglpHDyw ydYRQ5G5LtsFrtQ7FiPFROmnO+Gyc77NzHDeo7KlaT5DbNOpOvhPuNXtMbiFC2oyc0cE FvOR94LpJ5w7gwIaldyeCcf7a9L1ztD5eO4Lf4OLeWEhrvKMkv/sowVcRDUPzDRmf9HT nK+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=FN6hA42vu+xdf0lRzx1J2Dw8s+53WoTbv95LPeYEcK4=; b=TKXskcB7w1dA61VauW28bjC9ChkRjYr0L2DtiBxbp/xw9TfQwbOgmX4ThSwsckhwjQ W/9T7X3IAdStr/d9fEYFfcvD5O4WRi0WS5SzPeMMCf8Nz3KC73YoO9MVReMN71Cmg1eG zWzWekTIkzMDPySB9o2ZErkM6+FdUGkJrk9c9xG9tkVbw8Cqs7N9EbUgzwaAj7gkCdEX 1/CSKpg2fxJiPcKljNBbTVBbtJAhVmw1LF81rBCCsBSuB5DbbXuUjl6rec0o/BnsAgCo zUN0oTCXyEOtyICWPrRJoe+SI5VwKEKKi/KjQfexAihDOQNvjc6N+ElkjzsGNcWj5Trw 4E1Q==
X-Gm-Message-State: AHQUAuZhaoyfqzLRRWUKFzMkvSYTsheae30Cf+qHjmRo0Nf4hmzAc81A N0+k5/X6TVyk40xZY5rEG53y0RacJxZujKjxEKQeOg==
X-Google-Smtp-Source: ALg8bN5Zg+43bMlM0fJ4iiD4NV1cmCuQkGr/9TGd42qMm8JHKEelxCSVqPKJOQfYzudH1DCHigXqHiQt0V2+pIXtEVY=
X-Received: by 2002:a6b:fb08:: with SMTP id h8mr17606839iog.212.1548842052916;  Wed, 30 Jan 2019 01:54:12 -0800 (PST)
MIME-Version: 1.0
References: <CAEe_xxgchMoE9UyR2LUDbMAyFVZfOWCfVwEFN0HFtsWOYgK3eg@mail.gmail.com> <8518c87f5ef24ba9ad851a52f28047dd@XCH-RTP-013.cisco.com>
In-Reply-To: <8518c87f5ef24ba9ad851a52f28047dd@XCH-RTP-013.cisco.com>
From: William Lupton <wlupton@broadband-forum.org>
Date: Wed, 30 Jan 2019 09:54:01 +0000
Message-ID: <CAEe_xxjkewpvPqA-Dzs3iRHXLbMQG=SSHMo-GBvF9ar60hGvUw@mail.gmail.com>
To: "Eric Voit (evoit)" <evoit@cisco.com>
Cc: "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/related; boundary="000000000000615ae90580a9e43f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/gcoHzQqHVh1nBDQvw_xKzREELEs>
Subject: Re: [netconf] YANG Push drafts comments
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Jan 2019 09:54:18 -0000

--000000000000615ae90580a9e43f
Content-Type: multipart/alternative; boundary="000000000000615ae70580a9e43e"

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

Thanks Eric. Please see some follow-ups below (I've removed items where I
have no further comment). Cheers, W.

On Tue, 29 Jan 2019 at 20:31, Eric Voit (evoit) <evoit@cisco.com> wrote:

> Hi William,
>
>
>
> Thanks for the interest, thoughts in-line...
>
>
>
> *From:* netconf <netconf-bounces@ietf.org> *On Behalf Of *William Lupton
> *Sent:* Tuesday, January 29, 2019 6:41 AM
> *To:* netconf@ietf.org
> *Subject:* [netconf] YANG Push drafts comments
>
>
> 1.      General:
>
> 1.      Why is the subscription id optional? Without it, will the
> receiver always be able to tell how to handle an event message?
>
> I assume you are referring to the pushed notification messages carrying
> event records.  The RFC-5277 one way notification doesn=E2=80=99t support=
 a
> subscription-id object in its current event schema, so we can=E2=80=99t e=
mbed this
> object for subscribed-notifications.  This is one reason that
> draft-ietf-netconf-notification-messages was adopted.  For YANG push, we =
do
> have a subscription-id in the notification definition, which is then
> carried within the RFC-5277 one-way notification.
>

I would expect this question to arise in the minds of many readers. A note
might be useful?


> 2.      draft-ietf-netconf-subscribed-notifications:
>
>
>
> 3.      Event record:
>
> 1.      So does the "event record" term apply to all the drafts? If so,
> does "event" apply to all the drafts? (This note is in the context of a
> later note about the fact that "event stream" appears to be specific to
> this draft.)
>
> Subscribing to an event stream is different than a subscribing to a
> datastore. [...]
>

This was a terminology comment. I felt that it wasn't always clear which
terms were generic and would apply to all drafts. "event record", "event"
and "event stream" caused me particular problems. It was just a comment...
if people don't think there's a need for clarification (or greater rigor in
the use of terms) then that's fine.


> 4.      Event stream:
>
> 1.      Having now read most of the YANG Push draft, I realize that
> "Event streams" are a legacy thing and are not used by YANG Push. This
> could be made clear. Otherwise it looks like these are a base concept tha=
t
> will be built on.
>
> I think event streams are useful.  I don=E2=80=99t consider them legacy.
>

I didn't mean "legacy" pejoratively. Reading the draft I was thinking "Ah,
event streams are a core concept that will be leveraged by the other
drafts". So I was surprised to discover that YANG Push doesn't use them.
Assuming that I'm correct here, I think that a note (either here or in YANG
Push) could be helpful.


> 3.      So referring to them as sets of Events (rather than sets of Event
> streams) seems inaccurate.
>
> I don=E2=80=99t see any text on either sets of events, or sets of event s=
treams.
>

Sorry, part of this got lost in translation. I intended to refer to the
fact that:

   - Event stream is defined (1.2) as "A continuous, chronologically
   ordered set of events..."
   - And then later (2.1) it seems to be suggested that an event stream is
   a set of event records (rather than a set of events)

(But re-reading it just now, I'm not sure whether it really says this! I
also note that you commented on this point later. So we can drop this one.)


> 5.      Notification message:
>
> 1.      I don't find "The time the event was generated by the event
> source" quite clear. Is it the time at which the change occurred or was
> detected (event occurrence time), or the time at which the message was
> created? Probably the former?
>
> I can=E2=80=99t find the exact text quote:  "The time the event was gener=
ated by
> the event source" .   Where is this?
>

Sorry. The actual text is from RFC 5277, describing eventTime. Obviously
I'm not suggesting that RFC 5277 be changed!

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Thanks Eric. Please see =
some follow-ups below (I&#39;ve removed items where I have no further comme=
nt). Cheers, W.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Tue, 29 Jan 2019 at 20:31, Eric Voit (evoit) &lt;<a href=
=3D"mailto:evoit@cisco.com">evoit@cisco.com</a>&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_-5344286789420537316WordSection1">
<p class=3D"MsoNormal">Hi William,<u></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal">Thanks for the interest, thoughts in-line...<u></u><=
u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> netconf &lt;<a href=3D"mailto:netconf-b=
ounces@ietf.org" target=3D"_blank">netconf-bounces@ietf.org</a>&gt; <b>On B=
ehalf Of
</b>William Lupton<br>
<b>Sent:</b> Tuesday, January 29, 2019 6:41 AM<br>
<b>To:</b> <a href=3D"mailto:netconf@ietf.org" target=3D"_blank">netconf@ie=
tf.org</a><br>
<b>Subject:</b> [netconf] YANG Push drafts comments<u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal"><br></p><div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:47.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>1.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">General:<u></u><=
u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:83.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>1.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">Why is the subsc=
ription id optional? Without it, will the receiver always be able to tell h=
ow to handle an event message?<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white">
I assume you are referring to the pushed notification messages carrying eve=
nt records.=C2=A0 The RFC-5277 one way notification doesn=E2=80=99t support=
 a subscription-id object in its current event schema, so we can=E2=80=99t =
embed this object for subscribed-notifications.=C2=A0 This
 is one reason that draft-ietf-netconf-notification-messages was adopted.=
=C2=A0 For YANG push, we do have a subscription-id in the notification defi=
nition, which is then carried within the RFC-5277 one-way notification.</p>=
</div></div></div></div></div></blockquote><div><br></div><div>I would expe=
ct this question to arise in the minds of many readers. A note might be use=
ful?</div><div>=C2=A0=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-le=
ft:1ex"><div lang=3D"EN-US"><div class=3D"gmail-m_-5344286789420537316WordS=
ection1"><div style=3D"border-top:none;border-right:none;border-bottom:none=
;border-left:1.5pt solid blue;padding:0in 0in 0in 4pt"><div><div><div><div>=
<p class=3D"MsoNormal" style=3D"background:white"><u></u></p>
<p class=3D"MsoNormal" style=3D"margin-left:47.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>2.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">draft-ietf-netco=
nf-subscribed-notifications:</span></p>
<p class=3D"MsoNormal" style=3D"background:white">
<u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal" style=3D"margin-left:83.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>3.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">Event record:<u>=
</u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:119.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>1.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">So does the &quo=
t;event record&quot; term apply to all the drafts? If so, does &quot;event&=
quot; apply to all the drafts? (This note is in the context of a later note=
 about the fact that &quot;event stream&quot; appears to be
 specific to this draft.)<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white">
Subscribing to an event stream is different than a subscribing to a datasto=
re. [...]</p></div></div></div></div></div></div></div></blockquote><div><b=
r></div><div>This was a terminology comment. I felt that it wasn&#39;t alwa=
ys clear which terms were generic and would apply to all drafts. &quot;even=
t record&quot;, &quot;event&quot; and &quot;event stream&quot; caused me pa=
rticular problems. It was just a comment... if people don&#39;t think there=
&#39;s a need for clarification (or greater rigor in the use of terms) then=
 that&#39;s fine.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmail-m_-53442867894205373=
16WordSection1"><div style=3D"border-top:none;border-right:none;border-bott=
om:none;border-left:1.5pt solid blue;padding:0in 0in 0in 4pt"><div><div><di=
v><div>
<p class=3D"MsoNormal" style=3D"margin-left:83.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>4.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">Event stream:<u>=
</u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:119.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>1.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">Having now read =
most of the YANG Push draft, I realize that &quot;Event streams&quot; are a=
 legacy thing and are not used by YANG Push. This could be made clear. Othe=
rwise it looks like these are a base concept
 that will be built on.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white">
I think event streams are useful.=C2=A0 I don=E2=80=99t consider them legac=
y.</p></div></div></div></div></div></div></div></blockquote><div><br></div=
><div>I didn&#39;t mean &quot;legacy&quot; pejoratively. Reading the draft =
I was thinking &quot;Ah, event streams are a core concept that will be leve=
raged by the other drafts&quot;. So I was surprised to discover that YANG P=
ush doesn&#39;t use them. Assuming that I&#39;m correct here, I think that =
a note (either here or in YANG Push) could be helpful.</div><div>=C2=A0<br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"=
><div class=3D"gmail-m_-5344286789420537316WordSection1"><div style=3D"bord=
er-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid bl=
ue;padding:0in 0in 0in 4pt">
<p class=3D"MsoNormal" style=3D"margin-left:119.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>3.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">So referring to =
them as sets of Events (rather than sets of Event streams) seems inaccurate=
.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white">
I don=E2=80=99t see any text on either sets of events, or sets of event str=
eams.</p></div></div></div></blockquote><div><br></div><div>Sorry, part of =
this got lost in translation. I intended to refer to the fact that:</div><d=
iv><ul><li>Event stream is defined (1.2) as &quot;A continuous, chronologic=
ally ordered set of events...&quot;</li><li>And then later (2.1) it seems t=
o be suggested that an event stream is a set of event records (rather than =
a set of events)</li></ul><div>(But re-reading it just now, I&#39;m not sur=
e whether it really says this! I also note that you commented on this point=
 later. So we can drop this one.)</div></div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><div lang=3D"EN-US"><div class=3D"gmai=
l-m_-5344286789420537316WordSection1"><div style=3D"border-top:none;border-=
right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0in 0in =
0in 4pt"><div><div><div><div><p class=3D"MsoNormal" style=3D"background:whi=
te"><u></u><u></u></p>
<p class=3D"MsoNormal" style=3D"margin-left:83.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>5.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">Notification mes=
sage:<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:119.25pt;background:white">
<u></u><span style=3D"font-size:12pt"><span>1.<span style=3D"font:7pt &quot=
;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:12pt">I don&#39;t find=
 &quot;The time the event was generated by the event source&quot;=C2=A0quit=
e clear. Is it the time at which the change occurred or was detected (event=
 occurrence time), or the time at which the message
 was created? Probably the former?<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"background:white">
I can=E2=80=99t find the exact text quote:=C2=A0 <span style=3D"font-size:1=
2pt">&quot;The time the event was generated by the event source&quot;=C2=A0=
.
</span>=C2=A0=C2=A0Where is this?</p></div></div></div></div></div></div></=
div></blockquote><div><br></div><div>Sorry. The actual text is from RFC 527=
7, describing eventTime. Obviously I&#39;m not suggesting that RFC 5277 be =
changed!</div></div></div></div>

--000000000000615ae70580a9e43e--

--000000000000615ae90580a9e43f
Content-Type: image/png; name="image002.png"
Content-Disposition: inline; filename="image002.png"
Content-Transfer-Encoding: base64
Content-ID: <1689e0e372e5b16b21>
X-Attachment-Id: 1689e0e372e5b16b21

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
dEaAB4ZCOkgACXSPAAq73eOFdyMBJIAEkAASQAJIAAkgASSABJDAUUAAhd2jYJCwiUgACSABJIAE
kAASQAJIAAkgASTQPQIo7HaPF96NBJAAEkACSAAJIAEkgASQABJAAkcBARR2j4JBwiYiASSABJAA
EkACSAAJIAEkgASQQPcIoLDbPV54NxJAAkgACSABJIAEkAASQAJIAAkcBQRQ2D0KBgmbiASQABJA
AkgACSABJIAEkAASQALdI4DCbvd44d1IAAkgASSABJAAEkACSAAJIAEkcBQQQGH3KBgkbCISQAJI
AAkgASSABJAAEkACSAAJdI8ACrvd44V3IwEkgASQABJAAkgACSABJIAEkMBRQACF3aNgkLCJSAAJ
IAEkgASQABJAAkgACSABJNA9Aijsdo8X3o0EkAASQAJIAAkgASSABJAAEkACRwEBFHaPgkHCJiIB
JIAEkAASQAJIAAkgASSABJBA9wigsNs9Xng3EkACSAAJIAEkgASQABJAAkgACRwFBFDYPQoGCZuI
BJAAEkACSAAJIAEkgASQABJAAt0jgMJu93jh3UgACSABJIAEkAASQAJIAAkgASRwFBBAYfcoGCRs
IhJAAkgACSABJIAEkAASQAJIAAl0jwAKu93jhXcjASSABJAAEkACSAAJIAEkgASQwFFAAIXdo2CQ
sIlIAAkgASSABJAAEkACSAAJIAEk0D0CKOx2jxfejQSQABJAAkgACSABJIAEkAASQAJHAQEUdo+C
QcImIgEkgASQABJAAkgACSABJIAEkED3CKCw2z1eeDcSQAJIAAkgASSABJAAEkACSAAJHAUEUNg9
CgYJm4gEkAASQAJIAAkgASSABJAAEkAC3SOAwm73eOHdSAAJIAEkgASQABJAAkgACSABJHAUEEBh
9ygYJGwiEkACSAAJIAEkgASQABJAAkgACXSPAAq73eOFdyMBJIAEkAASQAJIAAkgASSABJDAUUAA
hd2jYJCwiUgACSABJIAEkAASQAJIAAkgASTQPQIo7HaPF96NBJAAEkACSAAJIAEkgASQABJAAkcB
ARR2j4JBwiYiASSABJAAEkACSAAJIAEkgASQQPcIoLDbPV54NxJAAkgACSABJIAEkAASQAJIAAkc
BQT2I+yaJiGmQURRJyIRjoK+YBMPnoBpjbOum0RnhAgw3KKU+tu6BIMQygoK/GIiwfBdOHjO+CQS
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
--000000000000615ae90580a9e43f--


From nobody Wed Jan 30 07:51:37 2019
Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F091130EB9; Wed, 30 Jan 2019 07:51:28 -0800 (PST)
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, 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 aKPd4P52dlq7; Wed, 30 Jan 2019 07:51:24 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id B2046130F4F; Wed, 30 Jan 2019 07:51:20 -0800 (PST)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id 77CAE1AE012C; Wed, 30 Jan 2019 16:51:18 +0100 (CET)
Date: Wed, 30 Jan 2019 16:51:18 +0100 (CET)
Message-Id: <20190130.165118.1684515639662649114.mbj@tail-f.com>
To: yang-doctors@ietf.org, draft-ietf-netconf-yang-push.all@ietf.org
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Jan_30_16_51_18_2019_579)--"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/rDk8FCRIqYyBdyQiK-SJ0uFlULw>
Subject: [netconf] Yangdoctors last call review of draft-ietf-netconf-yang-push
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 Jan 2019 15:51:29 -0000

----Next_Part(Wed_Jan_30_16_51_18_2019_579)--
Content-Type: Text/Plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,

This is my YANG doctor's review of draft-ietf-netconf-yang-push-21.

Reviewer: Martin Bj=F6rklund
Review result: Ready with Issues


o  General

  Check the output of idnits.  Specifically, add the 2119
  boilerplate.

  Also, since the YANG module uses 2119 language, add the YANG-ified
  version of the boilerplate to the description statement in the
  module, just before the copyright.


o  General

  The module is inconsistently indented and formatted.  The RFC editor
  will enforce consistent formatting, so in order to make their life
  easier it is better to do this work before it reaches them.

  Attached is a cleaned up version of the YANG module where I have
  done the following changes:

    o  pyang -f yang --keep-comments --yang-line-length 69

       (requires pyang 1.7.8)

    o  added newlines in long descriptions, to make separate
       paragraphs

    o  added extra space after "." in description statement (most of
       them already had two spaces)

    o  formatted some paragraphs (I use fill-paragraph in emacs, manual=
ly)

    o  added the 2119 boilerplate

  NOTE: I haven't done any other of the changes that I propose in
  this review.


o  Figure 6

  The tree diagram for push-change-update doesn't match the module.

  OLD:

     notifications:
       +---n push-update
       |  +--ro id?      sn:subscription-id
       |  +--ro datastore-contents?   <anydata>
       |  +--ro incomplete-update?     empty
       +---n push-change-update {on-change}?
          +--ro id?     sn:subscription-id
          +--ro datastore-changes?
          |  +--ro yang-patch
          |     +--ro patch-id        string
          |     +--ro ypatch:comment?    string
          |     +--ro ypatch:edit* [edit-id]
          |        +--ro ypatch:edit-id      string
          |        +--ro ypatch:operation    enumeration
          |        +--ro ypatch:target       target-resource-offset
          |        +--ro ypatch:point?       target-resource-offset
          |        +--ro ypatch:where?       enumeration
          |        +--ro ypatch:value?
          +--ro incomplete-update?    empty

  NEW:

     notifications:
       +---n push-update
       |  +--ro id?                   sn:subscription-id
       |  +--ro datastore-contents?   <anydata>
       |  +--ro incomplete-update?    empty
       +---n push-change-update {on-change}?
          +--ro id?                  sn:subscription-id
          +--ro datastore-changes
          |  +--ro yang-patch
          |     +--ro patch-id    string
          |     +--ro comment?    string
          |     +--ro edit* [edit-id]
          |        +--ro edit-id      string
          |        +--ro operation    enumeration
          |        +--ro target       target-resource-offset
          |        +--ro point?       target-resource-offset
          |        +--ro where?       enumeration
          |        +--ro value?       <anydata>
          +--ro incomplete-update?   empty


o  Figure 6

  The purpose of including tree diagrams is to give a easy-to-read
  overview to the reader.  When the diagram is spread out over
  several pages, it becomes more difficult to grasp.

  In this case, I would suggest that you split the diagram into
  smaller pieces, and place them together with the text that describe
  them.

  For example, in 4.2 you can have the first part of the tree that
  deals with subscription config; 4.3.1 the augmented notifs etc.


o  Figure 9

  This example is difficult to read.  I suggest:

  OLD:

   <netconf:rpc message-id=3D"101"
     xmlns:netconf=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
     <establish-subscription
     xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications=
"
     xmlns:yp=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push">
       <yp:datastore
       xmlns:ds=3D"urn:ietf:params:xml:ns:yang:ietf-datastores">
         ds:operational
       </yp:datastore>
       <yp:datastore-xpath-filter
       xmlns:ex=3D"http://example.com/sample-data/1.0">
         /ex:foo
       </yp:datastore-xpath-filter>
       <yp:on-change>
         <yp:dampening-period>100</yp:dampening-period>
       </yp:on-change>
     </establish-subscription>
   </netconf:rpc>

  NEW:

   <rpc message-id=3D"101"
        xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
     <establish-subscription
         xmlns=3D
           "urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
         xmlns:yp=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push">
       <yp:datastore
           xmlns:ds=3D"urn:ietf:params:xml:ns:yang:ietf-datastores">
         ds:operational
       </yp:datastore>
       <yp:datastore-xpath-filter
           xmlns:ex=3D"http://example.com/sample-data/1.0">
         /ex:foo
       </yp:datastore-xpath-filter>
       <yp:on-change>
         <yp:dampening-period>100</yp:dampening-period>
       </yp:on-change>
     </establish-subscription>
   </rpc>


o  Figure 11

  Similar in this example:

  OLD:

   <netconf:rpc message-id=3D"102"
      xmlns:netconf=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
      <modify-subscription
      xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-subscribed-notification=
s"
      xmlns:yp=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push">
       <id>1011</id>
       <yp:datastore
       xmlns:ds=3D"urn:ietf:params:xml:ns:yang:ietf-datastores">
         ds:operational
       </yp:datastore>
       <yp:datastore-xpath-filter
         xmlns:ex=3D"http://example.com/sample-data/1.0">
         /ex:bar
       </yp:datastore-xpath-filter>
       <yp:periodic>
         <yp:period>250</yp:period>
       </yp:periodic>
      </modify-subscription>
   </netconf:rpc>

  NEW:

   <rpc message-id=3D"102"
        xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
     <modify-subscription
         xmlns=3D
           "urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
         xmlns:yp=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push">
       <id>1011</id>
       <yp:datastore
           xmlns:ds=3D"urn:ietf:params:xml:ns:yang:ietf-datastores">
         ds:operational
       </yp:datastore>
       <yp:datastore-xpath-filter
           xmlns:ex=3D"http://example.com/sample-data/1.0">
         /ex:bar
       </yp:datastore-xpath-filter>
       <yp:periodic>
         <yp:period>250</yp:period>
       </yp:periodic>
      </modify-subscription>
   </rpc>


o  Section 4.4.4

  (The figure in this example doesn't have a number)

  OLD:

 <netconf:rpc message-id=3D"103"
 xmlns:netconf=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
   <resync-subscription
   xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push"
   xmlns:sn=3D"urn:ietf:params:xml:ns:yang:ietf-subscribed-notification=
s">
     <id>1011</id>
   </resync-subscription>
 </netconf:rpc>

  NEW:

   <rpc message-id=3D"103"
        xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
     <resync-subscription
         xmlns=3D"urn:ietf:params:xml:ns:yang:ietf-yang-push"
       <id>1011</id>
     </resync-subscription>
    </netconf:rpc>

o  Section 5.

  In order to get the RFC references right,  follow the pattern in
  other documents with YANG modules; e.g. RFC 8343.  Specifically,
  all references in RFCs must be found in the main text; this means
  that you need to add something like:

   This YANG module imports typedefs from [RFC6991].


o  import yang-patch

  OLD:

    reference
      "RFC 8072: YANG Patch";

  NEW:

    reference
      "RFC 8072: YANG Patch Media Type";


o  typedef change-type

  The "reference" statement contains text that should be in the
  "description" statement (this comment has been raised before on the
  ML).

  I suggest:

  OLD:

    description
      "Specifies different types of datastore changes.";
    reference
      "RFC 8072 section 2.5, with a delta that it is valid for a
       receiver to process an update record which performs a create
       operation on a datastore node the receiver believes exists,
       or to process a delete on a datastore node the receiver
       believes is missing.";

   NEW:

    description
      "Specifies different types of datastore changes.

       This type is based on the edit operations defined for YANG
       Patch, with the difference that it is valid for a receiver to
       process an update record which performs a create operation on
       a datastore node the receiver believes exists, or to process a
       delete on a datastore node the receiver believes is missing.";
    reference
      "RFC 8072: YANG Patch Media Type, section 2.5";


o  wrong type used (timeticks)

  This was discussed on the ML, but apparently the change wasn't
  introduced yet.

  A couple of 'period' nodes use the type yang:timeticks, but it is
  not an appropriate type.  RFC 6991 describes it as:

         The timeticks type represents a non-negative integer that
         represents the time, modulo 2^32 (4294967296 decimal), in
         hundredths of a second between two epochs.  When a schema
         node is defined that uses this type, the description of
         the schema node identifies both of the reference epochs.

  As Juergen pointed out, it seems you want a TimeInterval - but this
  type is not present in RFC 6991.  So add:

    type centiseconds {
      type uint32;
      description
        "A period of time, measured in units of 0.01 seconds.";
    }

  and use that instead.


o  container datastore-changes

  OLD:

    container datastore-changes {
      description
        "This contains the set of datastore changes of the target
         datastore starting at the time of the previous update, per
         the terms of the subscription.  The datastore changes are
         encoded per RFC 8027 (YANG Patch).";
      uses ypatch:yang-patch;

  NEW:

    container datastore-changes {
      description
        "This contains the set of datastore changes of the target
         datastore starting at the time of the previous update, per
         the terms of the subscription.";
      uses ypatch:yang-patch;

   (The reference was not correct, and it isn't really necessary
   anymore, since you use the grouping from yang patch.)


o  leaf datastore-xpath-filter

  This leaf has the same problem that stream-xpath-filter had; it
  doesn't work for RESTCONF.  We need to apply the same solution as
  for stream-xpath-filter:

  OLD:

       leaf datastore-xpath-filter {
         if-feature "sn:xpath";
         type yang:xpath1.0;
         description
           "This parameter contains an XPath expression identifying
           the portions of the target datastore to retrieve.
           If the expression returns a node-set, all nodes in the
           node-set are selected by the filter.  Otherwise, if the
           expression does not return a node-set, the filter
           doesn't select any nodes.
           The expression is evaluated in the following XPath
           context:
            o  The set of namespace declarations are those in scope
               on the 'datastore-xpath-filter' leaf element.
            o  The set of variable bindings is empty.
            o  The function library is the core function library, and
               the XPath functions defined in section 10 in RFC 7950.
            o  The context node is the root node of the target
               datastore.";
       }

  NEW:

       leaf datastore-xpath-filter {
         if-feature "sn:xpath";
         type yang:xpath1.0;
         description
           "This parameter contains an XPath expression identifying
           the portions of the target datastore to retrieve.

           If the expression returns a node-set, all nodes in the
           node-set are selected by the filter.  Otherwise, if the
           expression does not return a node-set, the filter
           doesn't select any nodes.

           The expression is evaluated in the following XPath
           context:

             o   The set of namespace declarations is the set of prefix=

                 and namespace pairs for all YANG modules implemented
                 by the server, where the prefix is the YANG module
                 name and the namespace is as defined by the
                 'namespace' statement in the YANG module.

                 If the leaf is encoded in XML, all namespace
                 declarations in scope on the 'stream-xpath-filter'
                 leaf element are added to the set of namespace
                 declarations.  If a prefix found in the XML is
                 already present in the set of namespace declarations,
                 the namespace in the XML is used.

             o  The set of variable bindings is empty.

             o  The function library is the core function library, and
                the XPath functions defined in section 10 in RFC 7950.

             o  The context node is the root node of the target
                datastore.";
       }


o  Section A.1

  I have trouble parsing this paragraph:

   References to specific identities within the either the subscribed-
   notifications YANG model or the yang-push YANG model may be returned=

   as part of the error responses resulting from failed attempts at
   datastore subscription.  Following are valid errors per RPC (note:
   throughout this section the prefix 'sn' indicates an item imported
   from the subscribed-notifications.yang model):

  "the either the" needs to be fixed.

  Suggest you spell ou the real names of the YANG modules you refer
  to (s/subscribed-notifications.yang
  model/"ietf-subscribed-notifications" YANG module/  etc)


o  Section A.1

  I don't think this document should repeat what's already specified
  in the SN draft.  Specifically, I think this section should list
  the *additional* errors that this document introduces.  I also note
  that the list in this document is not the same as in the SN draft...

  So I suggest:

  OLD:

   establish-subscription         modify-subscription
   ----------------------         -------------------
    cant-exclude                   sn:filter-unsupported
    datastore-not-subscribable     sn:insufficient-resources
    sn:dscp-unavailable            sn:no-such-subscription
    sn:filter-unsupported          period-unsupported
    sn:insufficient-resources      update-too-big
    on-change-unsupported          sync-too-big
    on-change-sync-unsupported     unchanging-selection
    period-unsupported
    update-too-big                resync-subscription
    sync-too-big                  --------------------
    unchanging-selection           no-such-subscription-resync
                                   sync-too-big

   delete-subscription            kill-subscription
   ----------------------         -----------------
    sn:no-such-subscription        sn:no-such-subscription

  NEW:

   establish-subscription         modify-subscription
   ----------------------         -------------------
    cant-exclude                   period-unsupported
    datastore-not-subscribable     update-too-big
    on-change-unsupported          sync-too-big
    on-change-sync-unsupported     unchanging-selection
    period-unsupported
    update-too-big                resync-subscription
    sync-too-big                  --------------------
    unchanging-selection           no-such-subscription-resync
                                   sync-too-big



o  Section A.2

  Similar to A.1, suggest you remove the sn: errors that are already
  covered by SN.




/martin

----Next_Part(Wed_Jan_30_16_51_18_2019_579)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="ietf-yang-push@2019-01-29.yang"

module ietf-yang-push {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-push";
  prefix yp;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-subscribed-notifications {
    prefix sn;
    reference
      "draft-ietf-netconf-subscribed-notifications:
       Customized Subscriptions to a Publisher's Event Streams
       NOTE TO RFC Editor: Please replace above reference to
       draft-ietf-netconf-subscribed-notifications with RFC number
       when published (i.e. RFC xxxx).";
  }
  import ietf-datastores {
    prefix ds;
    reference
      "RFC 8342: Network Management Datastore Architecture (NMDA)";
  }
  import ietf-restconf {
    prefix rc;
    reference
      "RFC 8040: RESTCONF Protocol";
  }
  import ietf-yang-patch {
    prefix ypatch;
    reference
      "RFC 8072: YANG Patch";
  }

  organization
    "IETF NETCONF Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/netconf/>

     WG List:  <mailto:netconf@ietf.org>

     Editor:   Alexander Clemm
               <mailto:ludwig@clemm.org>
     Editor:   Eric Voit
               <mailto:evoit@cisco.com>
     Editor:   Alberto Gonzalez Prieto
               <mailto:agonzalezpri@vmware.com>
     Editor:   Ambika Prasad Tripathy
               <mailto:ambtripa@cisco.com>
     Editor:   Einar Nilsen-Nygaard
               <mailto:einarnn@cisco.com>
     Editor:   Andy Bierman
               <mailto:andy@yumaworks.com>
     Editor:   Balazs Lengyel
               <mailto:balazs.lengyel@ericsson.com>";
  description
    "This module contains YANG specifications for YANG push.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2019 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX;
     see the RFC itself for full legal notices.";

   // RFC Ed.: replace XXXX with actual RFC number and remove this
   // note.

  revision 2019-01-29 {
    description
      "Initial revision.
       NOTE TO RFC EDITOR:
       (1)Please replace the above revision date to
       the date of RFC publication when published.
       (2) Please replace the date in the file name
       (ietf-yang-push@2019-01-29.yang) to the date of RFC
       publication.
       (3) Please replace the following reference to
       draft-ietf-netconf-yang-push-21 with RFC number when
       published (i.e. RFC xxxx).";
    reference
      "draft-ietf-netconf-yang-push-21";
  }

  /*
   * FEATURES
   */

  feature on-change {
    description
      "This feature indicates that on-change triggered subscriptions
       are supported.";
  }

  /*
   * IDENTITIES
   */

  /* Error type identities for datastore subscription  */

  identity resync-subscription-error {
    description
      "Problem found while attempting to fulfill an
       'resync-subscription' RPC request.";
  }

  identity cant-exclude {
    base sn:establish-subscription-error;
    description
      "Unable to remove the set of 'excluded-changes'.  This means
       the publisher is unable to restrict 'push-change-update's to
       just the change types requested for this subscription.";
  }

  identity datastore-not-subscribable {
    base sn:establish-subscription-error;
    base sn:subscription-terminated-reason;
    description
      "This is not a subscribable datastore.";
  }

  identity no-such-subscription-resync {
    base resync-subscription-error;
    description
      "Referenced subscription doesn't exist. This may be as a result
       of a non-existent subscription ID, an ID which belongs to
       another subscriber, or an ID for configured subscription.";
  }

  identity on-change-unsupported {
    base sn:establish-subscription-error;
    description
      "On-change is not supported for any objects which are
       selectable by this filter.";
  }

  identity on-change-sync-unsupported {
    base sn:establish-subscription-error;
    description
      "Neither sync on start nor resynchronization are supported for
       this subscription.  This error will be used for two
       reasons.  First if an 'establish-subscription' RPC includes
       'sync-on-start', yet the publisher can't support sending a
       'push-update' for this subscription for reasons other than
       'on-change-unsupported' or 'sync-too-big'.  And second, if the
       'resync-subscription' RPC is invoked either for an existing
       periodic subscription, or for an on-change subscription which
       can't support resynchronization.";
  }

  identity period-unsupported {
    base sn:establish-subscription-error;
    base sn:modify-subscription-error;
    base sn:subscription-suspended-reason;
    description
      "Requested time period or dampening-period is too short.  This
       can be for both periodic and on-change subscriptions (with or
       without dampening.) Hints suggesting alternative periods may
       be returned as supplemental information.";
  }

  identity update-too-big {
    base sn:establish-subscription-error;
    base sn:modify-subscription-error;
    base sn:subscription-suspended-reason;
    description
      "Periodic or on-change push update datatrees exceed a maximum
       size limit.  Hints on estimated size of what was too big may
       be returned as supplemental information.";
  }

  identity sync-too-big {
    base sn:establish-subscription-error;
    base sn:modify-subscription-error;
    base resync-subscription-error;
    base sn:subscription-suspended-reason;
    description
      "Sync-on-start or resynchronization datatree exceeds a maximum
       size limit.  Hints on estimated size of what was too big may
       be returned as supplemental information.";
  }

  identity unchanging-selection {
    base sn:establish-subscription-error;
    base sn:modify-subscription-error;
    base sn:subscription-terminated-reason;
    description
      "Selection filter is unlikely to ever select datatree nodes.
       This means that based on the subscriber's current access
       rights, the publisher recognizes that the selection filter is
       unlikely to ever select datatree nodes which change.  Examples
       for this might be that node or subtree doesn't exist, read
       access is not permitted for a receiver, or static objects that
       only change at reboot have been chosen.";
  }

  /*
   * TYPE DEFINITIONS
   */

  typedef change-type {
    type enumeration {
      enum create {
        description
          "A change that refers to the creation of a new datastore
           node.";
      }
      enum delete {
        description
          "A change that refers to the deletion of a datastore
           node.";
      }
      enum insert {
        description
          "A change that refers to the insertion of a new
           user-ordered datastore node.";
      }
      enum move {
        description
          "A change that refers to a reordering of the target
           datastore node.";
      }
      enum replace {
        description
          "A change that refers to a replacement of the target
           datastore node's value.";
      }
    }
    description
      "Specifies different types of datastore changes.";
    reference
      "RFC 8072 section 2.5, with a delta that it is valid for a
       receiver to process an update record which performs a create
       operation on a datastore node the receiver believes exists,
       or to process a delete on a datastore node the receiver
       believes is missing.";
  }

  typedef selection-filter-ref {
    type leafref {
      path "/sn:filters/yp:selection-filter/yp:filter-id";
    }
    description
      "This type is used to reference a selection filter.";
  }

  /*
   * GROUP DEFINITIONS
   */

  grouping datastore-criteria {
    description
      "A grouping to define criteria for which selected objects
       from  a targeted datastore should be included in push
       updates.";
    leaf datastore {
      type identityref {
        base ds:datastore;
      }
      mandatory true;
      description
        "Datastore from which to retrieve data.";
    }
    uses selection-filter-objects;
  }

  grouping selection-filter-types {
    description
      "This grouping defines the types of selectors for objects
       from a datastore.";
    choice filter-spec {
      description
        "The content filter specification for this request.";
      anydata datastore-subtree-filter {
        if-feature "sn:subtree";
        description
          "This parameter identifies the portions of the
           target datastore to retrieve.";
        reference
          "RFC 6241: Network Configuration Protocol, Section 6.";
      }
      leaf datastore-xpath-filter {
        if-feature "sn:xpath";
        type yang:xpath1.0;
        description
          "This parameter contains an XPath expression identifying
           the portions of the target datastore to retrieve.

           If the expression returns a node-set, all nodes in the
           node-set are selected by the filter.  Otherwise, if the
           expression does not return a node-set, the filter
           doesn't select any nodes.

           The expression is evaluated in the following XPath
           context:

           o  The set of namespace declarations are those in scope
              on the 'datastore-xpath-filter' leaf element.
           o  The set of variable bindings is empty.
           o  The function library is the core function library, and
              the XPath functions defined in section 10 in RFC 7950.
           o  The context node is the root node of the target
              datastore.";
      }
    }
  }

  grouping selection-filter-objects {
    description
      "This grouping defines a selector for objects from a
       datastore.";
    choice selection-filter {
      description
        "The source of the selection filter applied to the
         subscription.  This will come either referenced from a global
         list, or be provided within the subscription itself.";
      case by-reference {
        description
          "Incorporate a filter that has been configured
           separately.";
        leaf selection-filter-ref {
          type selection-filter-ref;
          mandatory true;
          description
            "References an existing selection filter which is to be
             applied to the subscription.";
        }
      }
      case within-subscription {
        description
          "Local definition allows a filter to have the same
           lifecycle as the subscription.";
        uses selection-filter-types;
      }
    }
  }

  grouping update-policy-modifiable {
    description
      "This grouping describes the datastore specific subscription
       conditions that can be changed during the lifetime of the
       subscription.";
    choice update-trigger {
      description
        "Defines necessary conditions for sending an event record to
         the subscriber.";
      case periodic {
        container periodic {
          presence "indicates a periodic subscription";
          description
            "The publisher is requested to notify periodically the
             current values of the datastore as defined by the
             selection filter.";
          leaf period {
            type yang:timeticks;
            mandatory true;
            description
              "Duration of time which should occur between periodic
               push updates, in one hundredths of a second.";
          }
          leaf anchor-time {
            type yang:date-and-time;
            description
              "Designates a timestamp before or after which a series
               of periodic push updates are determined. The next
               update will take place at a whole multiple interval
               from the anchor time.  For example, for an anchor time
               is set for the top of a particular minute and a period
               interval of a minute, updates will be sent at the top
               of every minute this subscription is active.";
          }
        }
      }
      case on-change {
        if-feature "on-change";
        container on-change {
          presence "indicates an on-change subscription";
          description
            "The publisher is requested to notify changes in values
             in the datastore subset as defined by a selection
             filter.";
          leaf dampening-period {
            type yang:timeticks;
            default "0";
            description
              "Specifies the minimum interval between the assembly of
               successive update records for a single receiver of a
               subscription.  Whenever subscribed objects change, and
               a dampening period interval (which may be zero) has
               elapsed since the previous update record creation for
               a receiver, then any subscribed objects and properties
               which have changed since the previous update record
               will have their current values marshalled and placed
               into a new update record.";
          }
        }
      }
    }
  }

  grouping update-policy {
    description
      "This grouping describes the datastore-specific subscription
       conditions of a subscription.";
    uses update-policy-modifiable {
      augment "update-trigger/on-change/on-change" {
        description
          "Includes objects not modifiable once subscription is
           established.";
        leaf sync-on-start {
          type boolean;
          default "true";
          description
            "When this object is set to false, it restricts an
             on-change subscription from sending push-update
             notifications.  When false, pushing a full selection per
             the terms of the selection filter MUST NOT be done for
             this subscription.  Only updates about changes,
             i.e. only push-change-update notifications are sent.
             When true (default behavior), in order to facilitate a
             receiver's synchronization, a full update is sent when
             the subscription starts using a push-update
             notification.  After that, push-change-update
             notifications are exclusively sent unless the publisher
             chooses to resync the subscription via a new push-update
             notification.";
        }
        leaf-list excluded-change {
          type change-type;
          description
            "Use to restrict which changes trigger an update.  For
             example, if modify is excluded, only creation and
             deletion of objects is reported.";
        }
      }
    }
  }

  grouping hints {
    description
      "Parameters associated with some error for a subscription
       made upon a datastore.";
    leaf period-hint {
      type yang:timeticks;
      description
        "Returned when the requested time period is too short. This
         hint can assert a viable period for either a periodic push
         cadence or an on-change dampening interval.";
    }
    leaf filter-failure-hint {
      type string;
      description
        "Information describing where and/or why a provided filter
         was unsupportable for a subscription.";
    }
    leaf object-count-estimate {
      type uint32;
      description
        "If there are too many objects which could potentially be
         returned by the selection filter, this identifies the
         estimate of the number of objects which the filter would
         potentially pass.";
    }
    leaf object-count-limit {
      type uint32;
      description
        "If there are too many objects which could be returned by
         the selection filter, this identifies the upper limit of
         the publisher's ability to service for this subscription.";
    }
    leaf kilobytes-estimate {
      type uint32;
      description
        "If the returned information could be beyond the capacity
         of the publisher, this would identify the data size which
         could result from this selection filter.";
    }
    leaf kilobytes-limit {
      type uint32;
      description
        "If the returned information would be beyond the capacity
         of the publisher, this identifies the upper limit of the
         publisher's ability to service for this subscription.";
    }
  }

  /*
   * RPCs
   */

  rpc resync-subscription {
    if-feature "on-change";
    description
      "This RPC allows a subscriber of an active on-change
       subscription to request a full push of objects.

       A successful invocation results in a push-update of all
       datastore nodes that the subscriber is permitted to access.
       This RPC can only be invoked on the same session on which the
       subscription is currently active.  In case of an error, a
       resync-subscription-error is sent as part of an error
       response.";
    input {
      leaf id {
        type sn:subscription-id;
        mandatory true;
        description
          "Identifier of the subscription that is to be resynced.";
      }
    }
  }

  rc:yang-data resync-subscription-error {
    container resync-subscription-error {
      description
        "If a 'resync-subscription' RPC fails, the subscription is
         not resynced and the RPC error response MUST indicate the
         reason for this failure.  This yang-data MAY be inserted as
         structured data within a subscription's RPC error response
         to indicate the failure reason.";
      leaf reason {
        type identityref {
          base resync-subscription-error;
        }
        mandatory true;
        description
          "Indicates the reason why the publisher has declined a
           request for subscription resynchronization.";
      }
      uses hints;
    }
  }

  augment "/sn:establish-subscription/sn:input" {
    description
      "This augmentation adds additional subscription parameters
       that apply specifically to datastore updates to RPC input.";
    uses update-policy;
  }

  augment "/sn:establish-subscription/sn:input/sn:target" {
    description
      "This augmentation adds the datastore as a valid target
       for the subscription to RPC input.";
    case datastore {
      description
        "Information specifying the parameters of an request for a
         datastore subscription.";
      uses datastore-criteria;
    }
  }

  rc:yang-data establish-subscription-datastore-error-info {
    container establish-subscription-datastore-error-info {
      description
        "If any 'establish-subscription' RPC parameters are
         unsupportable against the datastore, a subscription is not
         created and the RPC error response MUST indicate the reason
         why the subscription failed to be created.  This yang-data
         MAY be inserted as structured data within a subscription's
         RPC error response to indicate the failure reason.  This
         yang-data MUST be inserted if hints are to be provided back
         to the subscriber.";
      leaf reason {
        type identityref {
          base sn:establish-subscription-error;
        }
        description
          "Indicates the reason why the subscription has failed to
           be created to a targeted datastore.";
      }
      uses hints;
    }
  }

  augment "/sn:modify-subscription/sn:input" {
    description
      "This augmentation adds additional subscription parameters
       specific to datastore updates.";
    uses update-policy-modifiable;
  }

  augment "/sn:modify-subscription/sn:input/sn:target" {
    description
      "This augmentation adds the datastore as a valid target
       for the subscription to RPC input.";
    case datastore {
      description
        "Information specifying the parameters of an request for a
         datastore subscription.";
      uses datastore-criteria;
    }
  }

  rc:yang-data modify-subscription-datastore-error-info {
    container modify-subscription-datastore-error-info {
      description
        "This yang-data MAY be provided as part of a subscription's
         RPC error response when there is a failure of a
         'modify-subscription' RPC which has been made against a
         datastore.  This yang-data MUST be used if hints are to be
         provides back to the subscriber.";
      leaf reason {
        type identityref {
          base sn:modify-subscription-error;
        }
        description
          "Indicates the reason why the subscription has failed to
           be modified.";
      }
      uses hints;
    }
  }

  /*
   * NOTIFICATIONS
   */

  notification push-update {
    description
      "This notification contains a push update, containing data
       subscribed to via a subscription.  This notification is sent
       for periodic updates, for a periodic subscription.  It can
       also be used for synchronization updates of an on-change
       subscription.  This notification shall only be sent to
       receivers of a subscription.  It does not constitute a
       general-purpose notification that would be subscribable as
       part of the NETCONF event stream by any receiver.";
    leaf id {
      type sn:subscription-id;
      description
        "This references the subscription which drove the
         notification to be sent.";
    }
    anydata datastore-contents {
      description
        "This contains the updated data.  It constitutes a snapshot
         at the time-of-update of the set of data that has been
         subscribed to.  The snapshot corresponds to the same
         snapshot that would be returned in a corresponding get
         operation with the same selection filter parameters
         applied.";
    }
    leaf incomplete-update {
      type empty;
      description
        "This is a flag which indicates that not all datastore
         nodes subscribed to are included with this update.  In
         other words, the publisher has failed to fulfill its full
         subscription obligations, and despite its best efforts is
         providing an incomplete set of objects.";
    }
  }

  notification push-change-update {
    if-feature "on-change";
    description
      "This notification contains an on-change push update. This
       notification shall only be sent to the receivers of a
       subscription; it does not constitute a general-purpose
       notification.";
    leaf id {
      type sn:subscription-id;
      description
        "This references the subscription which drove the
         notification to be sent.";
    }
    container datastore-changes {
      description
        "This contains the set of datastore changes of the target
         datastore starting at the time of the previous update, per
         the terms of the subscription.  The datastore changes are
         encoded per RFC 8027 (YANG Patch).";
      uses ypatch:yang-patch;
    }
    leaf incomplete-update {
      type empty;
      description
        "The presence of this object indicates not all changes which
         have occurred since the last update are included with this
         update.  In other words, the publisher has failed to
         fulfill its full subscription obligations, for example in
         cases where it was not able to keep up with a change
         burst.";
    }
  }

  augment "/sn:subscription-started" {
    description
      "This augmentation adds datastore-specific objects to
       the notification that a subscription has started.";
    uses update-policy;
  }

  augment "/sn:subscription-started/sn:target" {
    description
      "This augmentation allows the datastore to be included as
       part of the notification that a subscription has started.";
    case datastore {
      uses datastore-criteria {
        refine "selection-filter/within-subscription" {
          description
            "Specifies the selection filter and where it originated
             from.  If the 'selection-filter-ref' is populated, the
             filter within the subscription came from the 'filters'
             container.  Otherwise it is populated in-line as part of
             the subscription itself.";
        }
      }
    }
  }

  augment "/sn:subscription-modified" {
    description
      "This augmentation adds datastore-specific objects to
       the notification that a subscription has been modified.";
    uses update-policy;
  }

  augment "/sn:subscription-modified/sn:target" {
    description
      "This augmentation allows the datastore to be included as
       part of the notification that a subscription has been
       modified.";
    case datastore {
      uses datastore-criteria {
        refine "selection-filter/within-subscription" {
          description
            "Specifies where the selection filter, and where it came
             from within the subscription and then populated within
             this notification.  If the 'selection-filter-ref' is
             populated, the filter within the subscription came from
             the 'filters' container.  Otherwise it is populated
             in-line as part of the subscription itself.";
        }
      }
    }
  }

  /*
   * DATA NODES
   */

  augment "/sn:filters" {
    description
      "This augmentation allows the datastore to be included as part
       of the selection filtering criteria for a subscription.";
    list selection-filter {
      key "filter-id";
      description
        "A list of pre-configured filters that can be applied
         to datastore subscriptions.";
      leaf filter-id {
        type string;
        description
          "An identifier to differentiate between selection
           filters.";
      }
      uses selection-filter-types;
    }
  }

  augment "/sn:subscriptions/sn:subscription" {
    when 'yp:datastore';
    description
      "This augmentation adds many datastore specific objects to a
       subscription.";
    uses update-policy;
  }

  augment "/sn:subscriptions/sn:subscription/sn:target" {
    description
      "This augmentation allows the datastore to be included as
       part of the selection filtering criteria for a subscription.";
    case datastore {
      uses datastore-criteria;
    }
  }
}

----Next_Part(Wed_Jan_30_16_51_18_2019_579)----

