From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB635C433E2 for ; Mon, 20 Jul 2020 13:18:39 +0000 (UTC) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5BDA520729 for ; Mon, 20 Jul 2020 13:18:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BDA520729 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-audit-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-456-HtJES1V-MgKQ73EJY3aCBA-1; Mon, 20 Jul 2020 09:18:26 -0400 X-MC-Unique: HtJES1V-MgKQ73EJY3aCBA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 224E018C63C3; Mon, 20 Jul 2020 13:18:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 049D160E3E; Mon, 20 Jul 2020 13:18:23 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6A7E418095FF; Mon, 20 Jul 2020 13:18:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 06HNGmif002202 for ; Fri, 17 Jul 2020 19:16:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id 103F11054596; Fri, 17 Jul 2020 23:16:48 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0A3B61054575 for ; Fri, 17 Jul 2020 23:16:48 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D0F64800658 for ; Fri, 17 Jul 2020 23:16:47 +0000 (UTC) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by relay.mimecast.com with ESMTP id us-mta-161-MDEFgS1pO9SWUHr26BXfjw-1; Fri, 17 Jul 2020 19:16:43 -0400 X-MC-Unique: MDEFgS1pO9SWUHr26BXfjw-1 Received: from dede-linux-virt.corp.microsoft.com (unknown [131.107.160.54]) by linux.microsoft.com (Postfix) with ESMTPSA id 2CF8120B4909; Fri, 17 Jul 2020 16:09:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2CF8120B4909 From: Deven Bowers To: agk@redhat.com, axboe@kernel.dk, snitzer@redhat.com, jmorris@namei.org, serge@hallyn.com, zohar@linux.ibm.com, viro@zeniv.linux.org.uk, paul@paul-moore.com, eparis@redhat.com, jannh@google.com, dm-devel@redhat.com, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-audit@redhat.com Subject: [RFC PATCH v4 00/12] Integrity Policy Enforcement LSM (IPE) Date: Fri, 17 Jul 2020 16:09:29 -0700 Message-Id: <20200717230941.1190744-1-deven.desai@linux.microsoft.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 06HNGmif002202 X-loop: linux-audit@redhat.com X-Mailman-Approved-At: Mon, 20 Jul 2020 09:18:19 -0400 Cc: sashal@kernel.org, mdsakib@microsoft.com, corbet@lwn.net, linux-kernel@vger.kernel.org, pasha.tatshin@soleen.com, nramas@linux.microsoft.com, tyhicks@linux.microsoft.com, jaskarankhurana@linux.microsoft.com X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T3ZlcnZpZXc6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSVBFIGlzIGEg TGludXggU2VjdXJpdHkgTW9kdWxlIHdoaWNoIGFsbG93cyBmb3IgYSBjb25maWd1cmFibGUKcG9s aWN5IHRvIGVuZm9yY2UgaW50ZWdyaXR5IHJlcXVpcmVtZW50cyBvbiB0aGUgd2hvbGUgc3lzdGVt LiBJdAphdHRlbXB0cyB0byBzb2x2ZSB0aGUgaXNzdWUgb2YgQ29kZSBJbnRlZ3JpdHk6IHRoYXQg YW55IGNvZGUgYmVpbmcKZXhlY3V0ZWQgKG9yIGZpbGVzIGJlaW5nIHJlYWQpLCBhcmUgaWRlbnRp Y2FsIHRvIHRoZSB2ZXJzaW9uIHRoYXQKd2FzIGJ1aWx0IGJ5IGEgdHJ1c3RlZCBzb3VyY2UuCgpU aGUgdHlwZSBvZiBzeXN0ZW0gZm9yIHdoaWNoIElQRSBpcyBkZXNpZ25lZCBmb3IgdXNlIGlzIGFu IGVtYmVkZGVkIGRldmljZQp3aXRoIGEgc3BlY2lmaWMgcHVycG9zZSAoZS5nLiBuZXR3b3JrIGZp cmV3YWxsIGRldmljZSBpbiBhIGRhdGEgY2VudGVyKSwKd2hlcmUgYWxsIHNvZnR3YXJlIGFuZCBj b25maWd1cmF0aW9uIGlzIGJ1aWx0IGFuZCBwcm92aXNpb25lZCBieSB0aGUgb3duZXIuCgpTcGVj aWZpY2FsbHksIGEgc3lzdGVtIHdoaWNoIGxldmVyYWdlcyBJUEUgaXMgbm90IGludGVuZGVkIGZv ciBnZW5lcmFsCnB1cnBvc2UgY29tcHV0aW5nIGFuZCBkb2VzIG5vdCB1dGlsaXplIGFueSBzb2Z0 d2FyZSBvciBjb25maWd1cmF0aW9uCmJ1aWx0IGJ5IGEgdGhpcmQgcGFydHkuIEFuIGlkZWFsIHN5 c3RlbSB0byBsZXZlcmFnZSBJUEUgaGFzIGJvdGggbXV0YWJsZQphbmQgaW1tdXRhYmxlIGNvbXBv bmVudHMsIGhvd2V2ZXIsIGFsbCBiaW5hcnkgZXhlY3V0YWJsZSBjb2RlIGlzIGltbXV0YWJsZS4K ClRoZSBzY29wZSBvZiBJUEUgaXMgY29uc3RyYWluZWQgdG8gdGhlIE9TLiBJdCBpcyBhc3N1bWVk IHRoYXQgcGxhdGZvcm0KZmlybXdhcmUgdmVyaWZpZXMgdGhlIHRoZSBrZXJuZWwgYW5kIG9wdGlv bmFsbHkgdGhlIHJvb3QgZmlsZXN5c3RlbSAoZS5nLgp2aWEgVS1Cb290IHZlcmlmaWVkIGJvb3Qp LiBJUEUgdGhlbiB1dGlsaXplcyBMU00gaG9va3MgdG8gZW5mb3JjZSBhCmZsZXhpYmxlLCBrZXJu ZWwtcmVzaWRlbnQgaW50ZWdyaXR5IHZlcmlmaWNhdGlvbiBwb2xpY3kuCgpJUEUgZGlmZmVycyBm cm9tIG90aGVyIExTTXMgd2hpY2ggcHJvdmlkZSBpbnRlZ3JpdHkgY2hlY2tpbmcgKGZvciBpbnN0 YW5jZSwKSU1BKSwgYXMgaXQgaGFzIG5vIGRlcGVuZGVuY3kgb24gdGhlIGZpbGVzeXN0ZW0gbWV0 YWRhdGEgaXRzZWxmLiBUaGUKYXR0cmlidXRlcyB0aGF0IElQRSBjaGVja3MgYXJlIGRldGVybWlu aXN0aWMgcHJvcGVydGllcyB0aGF0IGV4aXN0IHNvbGVseQppbiB0aGUga2VybmVsLiBBZGRpdGlv bmFsbHksIElQRSBwcm92aWRlcyBubyBhZGRpdGlvbmFsIG1lY2hhbmlzbXMgb2YKdmVyaWZ5aW5n IHRoZXNlIGZpbGVzIChlLmcuIElNQSBTaWduYXR1cmVzKSAtIGFsbCBvZiB0aGUgYXR0cmlidXRl cyBvZgp2ZXJpZnlpbmcgZmlsZXMgYXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpdGhpbiB0aGUga2Vy bmVsLCBzdWNoIGFzIGRtLXZlcml0eQpvciBmc3Zlcml0eS4KCklQRSBwcm92aWRlcyBhIHBvbGlj eSB0aGF0IGFsbG93cyBvd25lcnMgb2YgdGhlIHN5c3RlbSB0byBlYXNpbHkgc3BlY2lmeQppbnRl Z3JpdHkgcmVxdWlyZW1lbnRzIGFuZCB1c2VzIGRtLXZlcml0eSBzaWduYXR1cmVzIHRvIHNpbXBs aWZ5IHRoZQphdXRoZW50aWNhdGlvbiBvZiBhbGxvd2VkIG9iamVjdHMgbGlrZSBhdXRob3JpemVk IGNvZGUgYW5kIGRhdGEuCgpJUEUgc3VwcG9ydHMgdHdvIG1vZGVzLCBwZXJtaXNzaXZlIChzaW1p bGFyIHRvIFNFTGludXgncyBwZXJtaXNzaXZlIG1vZGUpCmFuZCBlbmZvcmNlLiBQZXJtaXNzaXZl IG1vZGUgcGVyZm9ybXMgdGhlIHNhbWUgY2hlY2tzLCBhbmQgbG9ncyBwb2xpY3kKdmlvbGF0aW9u cyBhcyBlbmZvcmNlIG1vZGUsIGJ1dCB3aWxsIG5vdCBlbmZvcmNlIHRoZSBwb2xpY3kuIFRoaXMg YWxsb3dzCnVzZXJzIHRvIHRlc3QgcG9saWNpZXMgYmVmb3JlIGVuZm9yY2luZyB0aGVtLgoKVGhl IGRlZmF1bHQgbW9kZSBpcyBlbmZvcmNlLCBhbmQgY2FuIGJlIGNoYW5nZWQgdmlhIHRoZSBrZXJu ZWwgY29tbWFuZGxpbmUKcGFyYW1ldGVyIGBpcGUuZW5mb3JjZT0oMHwxKWAsIG9yIHRoZSBzZWN1 cml0eWZzIG5vZGUKYC9zeXMva2VybmVsL3NlY3VyaXR5L2lwZS9lbmZvcmNlYC4gVGhlIGFiaWxp dHkgdG8gc3dpdGNoIG1vZGVzIGNhbiBiZQpjb21waWxlZCBvdXQgb2YgdGhlIExTTSB2aWEgc2V0 dGluZyB0aGUgY29uZmlnCkNPTkZJR19TRUNVUklUWV9JUEVfUEVSTUlTU0lWRV9TV0lUQ0ggdG8g Ti4KCklQRSBhZGRpdGlvbmFsbHkgc3VwcG9ydHMgc3VjY2VzcyBhdWRpdGluZy4gV2hlbiBlbmFi bGVkLCBhbGwgZXZlbnRzCnRoYXQgcGFzcyBJUEUgcG9saWN5IGFuZCBhcmUgbm90IGJsb2NrZWQg d2lsbCBlbWl0IGFuIGF1ZGl0IGV2ZW50LiBUaGlzCmlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFu ZCBjYW4gYmUgZW5hYmxlZCB2aWEgdGhlIGtlcm5lbCBjb21tYW5kbGluZQpgaXBlLnN1Y2Nlc3Nf YXVkaXQ9KDB8MSlgIG9yIHRoZSBzZWN1cml0eWZzIG5vZGUKYC9zeXMva2VybmVsL3NlY3VyaXR5 L2lwZS9zdWNjZXNzX2F1ZGl0YC4KClBvbGljaWVzIGNhbiBiZSBzdGFnZWQgYXQgcnVudGltZSB0 aHJvdWdoIHNlY3VyaXR5ZnMgYW5kIGFjdGl2YXRlZCB0aHJvdWdoCnN5c2ZzLiBQbGVhc2Ugc2Vl IHRoZSBEZXBsb3lpbmcgUG9saWNpZXMgc2VjdGlvbiBvZiB0aGlzIGNvdmVyIGxldHRlciBmb3IK bW9yZSBpbmZvcm1hdGlvbi4KClRoZSBJUEUgTFNNIGlzIGNvbXBpbGVkIHVuZGVyIENPTkZJR19T RUNVUklUWV9JUEUuCgpQb2xpY3k6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKSVBFIHBvbGljeSBpcyBkZXNpZ25lZCB0byBiZSBib3RoIGZvcndhcmQgY29tcGF0aWJsZSBh bmQgYmFja3dhcmRzCmNvbXBhdGlibGUuIFRoZXJlIGlzIG9uZSByZXF1aXJlZCBsaW5lLCBhdCB0 aGUgdG9wIG9mIHRoZSBwb2xpY3ksCmluZGljYXRpbmcgdGhlIHBvbGljeSBuYW1lLCBhbmQgdGhl IHBvbGljeSB2ZXJzaW9uLCBmb3IgaW5zdGFuY2U6CgogIHBvbGljeV9uYW1lPSJFeCBQb2xpY3ki IHBvbGljeV92ZXJzaW9uPTAuMC4wCgpUaGUgcG9saWN5IHZlcnNpb24gaW5kaWNhdGVzIHRoZSBj dXJyZW50IHZlcnNpb24gb2YgdGhlIHBvbGljeSAoTk9UIHRoZQpwb2xpY3kgc3ludGF4IHZlcnNp b24pLiBUaGlzIGlzIHVzZWQgdG8gcHJldmVudCByb2xsLWJhY2sgb2YgcG9saWN5IHRvCnBvdGVu dGlhbGx5IGluc2VjdXJlIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBwb2xpY3kuCgpUaGUgbmV4 dCBwb3J0aW9uIG9mIElQRSBwb2xpY3ksIGFyZSBydWxlcy4gUnVsZXMgYXJlIGZvcm1lZCBieSBr ZXk9dmFsdWUKcGFpcnMsIGtub3duIGFzIHByb3BlcnRpZXMuIElQRSBydWxlcyByZXF1aXJlIHR3 byBwcm9wZXJ0aWVzOiAiYWN0aW9uIiwKd2hpY2ggZGV0ZXJtaW5lcyB3aGF0IElQRSBkb2VzIHdo ZW4gaXQgZW5jb3VudGVycyBhIG1hdGNoIGFnYWluc3QgdGhlCnBvbGljeSwgYW5kICJvcCIsIHdo aWNoIGRldGVybWluZXMgd2hlbiB0aGF0IHJ1bGUgc2hvdWxkIGJlIGV2YWx1YXRlZC4KVGh1cywg YSBtaW5pbWFsIHJ1bGUgaXM6CgogIG9wPUVYRUNVVEUgYWN0aW9uPUFMTE9XCgpUaGlzIGV4YW1w bGUgd2lsbCBhbGxvdyBhbnkgZXhlY3V0aW9uLiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgYXJlIHVz ZWQgdG8KcmVzdHJpY3QgYXR0cmlidXRlcyBhYm91dCB0aGUgZmlsZXMgYmVpbmcgZXZhbHVhdGVk LiBUaGVzZSBwcm9wZXJ0aWVzIGFyZQppbnRlbmRlZCB0byBiZSBkZXRlcm1pbmlzdGljIGF0dHJp YnV0ZXMgdGhhdCBhcmUgcmVzaWRlbnQgaW4gdGhlIGtlcm5lbC4KQXZhaWxhYmxlIHByb3BlcnRp ZXMgZm9yIElQRSBkZXNjcmliZWQgaW4gdGhlIHByb3BlcnRpZXMgc2VjdGlvbiBvZiB0aGlzCmNv dmVyLWxldHRlciwgdGhlIHJlcG9zaXRvcnkgYXZhaWxhYmxlIGluIEFwcGVuZGl4IEEsIGFuZCB0 aGUga2VybmVsCmRvY3VtZW50YXRpb24gcGFnZS4KCk9yZGVyIGRvZXMgbm90IG1hdHRlciBmb3Ig dGhlIHJ1bGUncyBwcm9wZXJ0aWVzIC0gdGhleSBjYW4gYmUgbGlzdGVkIGluCmFueSBvcmRlciwg aG93ZXZlciBpdCBpcyBlbmNvdXJhZ2VkIHRvIGhhdmUgdGhlICJvcCIgcHJvcGVydHkgYmUgZmly c3QsCmFuZCB0aGUgImFjdGlvbiIgcHJvcGVydHkgYmUgbGFzdCwgZm9yIHJlYWRhYmlsaXR5LgoK QWRkaXRpb25hbGx5LCBydWxlcyBhcmUgZXZhbHVhdGVkIHRvcC10by1ib3R0b20uIEFzIGEgcmVz dWx0LCBhbnkKcmV2b2NhdGlvbiBydWxlcywgb3IgZGVuaWVzIHNob3VsZCBiZSBwbGFjZWQgZWFy bHkgaW4gdGhlIGZpbGUgdG8gZW5zdXJlCnRoYXQgdGhlc2UgcnVsZXMgYXJlIGV2YWx1YXRlZCBi ZWZvcmUgYSBydWxlIHdpdGggImFjdGlvbj1BTExPVyIgaXMgaGl0LgoKQW55IHVua25vd24gc3lu dGF4IGluIElQRSBwb2xpY3kgd2lsbCByZXN1bHQgaW4gYSBmYXRhbCBlcnJvciB0byBwYXJzZQp0 aGUgcG9saWN5LiBVc2VyIG1vZGUgY2FuIGludGVycm9nYXRlIHRoZSBrZXJuZWwgdG8gdW5kZXJz dGFuZCB3aGF0CnByb3BlcnRpZXMgYW5kIHRoZSBhc3NvY2lhdGVkIHZlcnNpb25zIHRocm91Z2gg dGhlIHNlY3VyaXR5ZnMgbm9kZSwKJHNlY3VyaXR5ZnMvaXBlL3Byb3BlcnR5X2NvbmZpZywgd2hp Y2ggd2lsbCByZXR1cm4gYSBzdHJpbmcgb2YgZm9ybToKCiAga2V5MT12ZXJzaW9uMQogIGtleTI9 dmVyc2lvbjIKICAuCiAgLgogIC4KICBrZXlOPXZlcnNpb25OCgpVc2VyLW1vZGUgc2hvdWxkIGNv cnJlbGF0ZSB0aGVzZSB2ZXJzaW9ucyB3aXRoIHRoZSBzdXBwb3J0ZWQgdmFsdWVzCmlkZW50aWZp ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBwb2xpY3kgc2hv dWxkCmJlIGFjY2VwdGVkIGJ5IHRoZSBzeXN0ZW0uCgpBZGRpdGlvbmFsbHksIGEgREVGQVVMVCBv cGVyYXRpb24gbXVzdCBiZSBzZXQgZm9yIGFsbCB1bmRlcnN0b29kCm9wZXJhdGlvbnMgd2l0aGlu IElQRS4gRm9yIHBvbGljaWVzIHRvIHJlbWFpbiBjb21wbGV0ZWx5IGZvcndhcmRzCmNvbXBhdGli bGUsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdXNlcnMgYWRkIGEgIkRFRkFVTFQgYWN0aW9uPUFM TE9XIgphbmQgb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIG9uIGEgcGVyLW9wZXJhdGlvbiBiYXNpcy4K CkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwb2xpY3kgc3ludGF4LCBwbGVhc2Ugc2Vl IEFwcGVuZGl4IEEgb3IKdGhlIGtlcm5lbCBkb2N1bWVudGF0aW9uIHBhZ2UuCgpFYXJseSBVc2Vy bW9kZSBQcm90ZWN0aW9uOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSVBFIGNhbiBiZSBw cm92aWRlZCB3aXRoIGEgcG9saWN5IGF0IHN0YXJ0dXAgdG8gbG9hZCBhbmQgZW5mb3JjZS4KVGhp cyBpcyBpbnRlbmRlZCB0byBiZSBhIG1pbmltYWwgcG9saWN5IHRvIGdldCB0aGUgc3lzdGVtIHRv IGEgc3RhdGUKd2hlcmUgdXNlcmxhbmQgaXMgc2V0dXAgYW5kIHJlYWR5IHRvIHJlY2VpdmUgY29t bWFuZHMsIGF0IHdoaWNoCnBvaW50IGEgcG9saWN5IGNhbiBiZSBkZXBsb3llZCB2aWEgc2VjdXJp dHlmcy4gVGhpcyAiYm9vdCBwb2xpY3kiIGNhbiBiZQpzcGVjaWZpZWQgdmlhIHRoZSBjb25maWcs IFNFQ1VSSVRZX0lQRV9CT09UX1BPTElDWSwgd2hpY2ggYWNjZXB0cyBhIHBhdGgKdG8gYSBwbGFp bi10ZXh0IHZlcnNpb24gb2YgdGhlIElQRSBwb2xpY3kgdG8gYXBwbHkuIFRoaXMgcG9saWN5IHdp bGwgYmUKY29tcGlsZWQgaW50byB0aGUga2VybmVsLiBJZiBub3Qgc3BlY2lmaWVkLCBJUEUgd2ls bCBiZSBkaXNhYmxlZCB1bnRpbCBhCnBvbGljeSBpcyBkZXBsb3llZCBhbmQgYWN0aXZhdGVkIHRo cm91Z2ggdGhlIG1ldGhvZCBhYm92ZS4KClBvbGljeSBFeGFtcGxlczoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBbGxvdyBhbGw6CgogIHBvbGljeV9uYW1lPSJBbGxvdyBB bGwiIHBvbGljeV92ZXJzaW9uPTAuMC4wCiAgREVGQVVMVCBhY3Rpb249QUxMT1cKCkFsbG93IG9u bHkgaW5pdGlhbCBzdXBlcmJsb2NrOgoKICBwb2xpY3lfbmFtZT0iQWxsb3cgQWxsIEluaXRpYWwg U0IiIHBvbGljeV92ZXJzaW9uPTAuMC4wCiAgREVGQVVMVCBhY3Rpb249REVOWQoKICBvcD1FWEVD VVRFIGJvb3RfdmVyaWZpZWQ9VFJVRSBhY3Rpb249QUxMT1cKCkFsbG93IGFueSBzaWduZWQgZG0t dmVyaXR5IHZvbHVtZSBhbmQgdGhlIGluaXRpYWwgc3VwZXJibG9jazoKCiAgcG9saWN5X25hbWU9 IkFsbG93U2lnbmVkQW5kSW5pdGlhbCIgcG9saWN5X3ZlcnNpb249MC4wLjAKICBERUZBVUxUIGFj dGlvbj1ERU5ZCgogIG9wPUVYRUNVVEUgYm9vdF92ZXJpZmllZD1UUlVFIGFjdGlvbj1BTExPVwog IG9wPUVYRUNVVEUgZG12ZXJpdHlfc2lnbmF0dXJlPVRSVUUgYWN0aW9uPUFMTE9XCgpQcm9oaWJp dCBleGVjdXRpb24gZnJvbSBhIHNwZWNpZmljIGRtLXZlcml0eSB2b2x1bWU6CgogIHBvbGljeV9u YW1lPSJBbGxvd1NpZ25lZEFuZEluaXRpYWwiIHBvbGljeV92ZXJzaW9uPTAuMC4wCiAgREVGQVVM VCBhY3Rpb249REVOWQoKICBvcD1FWEVDVVRFIGRtdmVyaXR5X3Jvb3RoYXNoPTQwMWZjZWM1OTQ0 ODIzYWUxMmY2MjcyNmU4MTg0NDA3YTVmYTk1OTk3ODNmMDMwZGVjMTQ2OTM4IGFjdGlvbj1ERU5Z CiAgb3A9RVhFQ1VURSBib290X3ZlcmlmaWVkPVRSVUUgYWN0aW9uPUFMTE9XCiAgb3A9RVhFQ1VU RSBkbXZlcml0eV9zaWduYXR1cmU9VFJVRSBhY3Rpb249QUxMT1cKCkFsbG93IG9ubHkgYSBzcGVj aWZpYyBkbS12ZXJpdHkgdm9sdW1lOgoKICBwb2xpY3lfbmFtZT0iQWxsb3dTaWduZWRBbmRJbml0 aWFsIiBwb2xpY3lfdmVyc2lvbj0wLjAuMAogIERFRkFVTFQgYWN0aW9uPURFTlkKCiAgb3A9RVhF Q1VURSBkbXZlcml0eV9yb290aGFzaD00MDFmY2VjNTk0NDgyM2FlMTJmNjI3MjZlODE4NDQwN2E1 ZmE5NTk5NzgzZjAzMGRlYzE0NjkzOCBhY3Rpb249QUxMT1cKCkRlcGxveWluZyBQb2xpY2llczoK LS0tLS0tLS0tLS0tLS0tLS0tLQoKRGVwbG95aW5nIHBvbGljaWVzIGlzIHNpbXBsZS4gRmlyc3Qg c2lnbiBhIHBsYWluIHRleHQgcG9saWN5LCB3aXRoIGEKY2VydGlmaWNhdGUgdGhhdCBpcyBwcmVz ZW50IGluIHRoZSBTWVNURU1fVFJVU1RFRF9LRVlSSU5HIG9mIHlvdXIgdGVzdAptYWNoaW5lLiBU aHJvdWdoIG9wZW5zc2wsIHRoZSBzaWduaW5nIGNhbiBiZSBkb25lIHZpYToKCiAgb3BlbnNzbCBz bWltZSAtc2lnbiAtaW4gIiRNWV9QT0xJQ1kiIC1zaWduZXIgIiRNWV9DRVJUSUZJQ0FURSIgXAog ICAgLWlua2V5ICIkTVlfUFJJVkFURV9LRVkiIC1iaW5hcnkgLW91dGZvcm0gZGVyIC1ub2F0dHIg LW5vZGV0YWNoIFwKICAgIC1vdXQgIiRNWV9QT0xJQ1kucDdzIgoKVGhlbiwgc2ltcGx5IGNhdCB0 aGUgZmlsZSBpbnRvIHRoZSBJUEUncyAibmV3X3BvbGljeSIgc2VjdXJpdHlmcyBub2RlOgoKICBj YXQgIiRNWV9QT0xJQ1kucDdzIiA+IC9zeXMva2VybmVsL3NlY3VyaXR5L2lwZS9uZXdfcG9saWN5 CgpUaGUgcG9saWN5IHNob3VsZCBub3cgYmUgcHJlc2VudCB1bmRlciB0aGUgcG9saWNpZXMvIHN1 YmRpcmVjdG9yeSwgdW5kZXIKaXRzICJwb2xpY3lfbmFtZSIgYXR0cmlidXRlLgoKVGhlIHBvbGlj eSBpcyBub3cgcHJlc2VudCBpbiB0aGUga2VybmVsIGFuZCBjYW4gYmUgbWFya2VkIGFzIGFjdGl2 ZSwKdmlhIHRoZSBzeXNjdGwgImlwZS5hY3RpdmVfcG9saWN5IjoKCiAgZWNobyAtbiAxID4gIi9z eXMva2VybmVsL3NlY3VyaXR5L2lwZS8kTVlfUE9MSUNZX05BTUUvYWN0aXZlIgoKVGhpcyB3aWxs IG5vdyBtYXJrIHRoZSBwb2xpY3kgYXMgYWN0aXZlIGFuZCB0aGUgc3lzdGVtIHdpbGwgYmUgZW5m b3JjaW5nCiRNWV9QT0xJQ1lfTkFNRS4gQXQgYW55IHBvaW50IHRoZSBwb2xpY3kgY2FuIGJlIHVw ZGF0ZWQgb24gdGhlIHByb3Zpc2lvbgp0aGF0IHRoZSBwb2xpY3kgdmVyc2lvbiB0byBiZSBkZXBs b3llZCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCnJ1bm5pbmcgdmVyc2lvbiAodG8g cHJldmVudCByb2xsLWJhY2sgYXR0YWNrcykuIFRoaXMgdXBkYXRlIGNhbiBiZSBkb25lCmJ5IHJl ZGlyZWN0aW5nIHRoZSBmaWxlIGludG8gdGhlIHBvbGljeSdzICJyYXciIG5vZGUsIHVuZGVyIHRo ZSBwb2xpY2llcwpzdWJkaXJlY3Rvcnk6CgogIGNhdCAiJE1ZX1VQREFURURfUE9MSUNZLnA3cyIg PiBcCiAgICAiL3N5cy9rZXJuZWwvc2VjdXJpdHkvaXBlL3BvbGljaWVzLyRNWV9QT0xJQ1lfTkFN RS9yYXciCgpBZGRpdGlvbmFsbHksIHBvbGljaWVzIGNhbiBiZSBkZWxldGVkIHZpYSB0aGUgImRl bF9wb2xpY3kiIHNlY3VyaXR5ZnMKbm9kZS4gU2ltcGx5IHdyaXRlIHRoZSBuYW1lIG9mIHRoZSBw b2xpY3kgdG8gYmUgZGVsZXRlZCB0byB0aGF0IG5vZGU6CgogIGVjaG8gLW4gMSA+CiAgICAiL3N5 cy9rZXJuZWwvc2VjdXJpdHkvaXBlL3BvbGljaWVzLyRNWV9QT0xJQ1lfTkFNRS9kZWxldGUiCgpU aGVyZSBhcmUgdHdvIHJlcXVpcmVtZW50cyB0byBkZWxldGUgcG9saWNpZXM6CgoxLiBUaGUgcG9s aWN5IGJlaW5nIGRlbGV0ZWQgbXVzdCBub3QgYmUgdGhlIGFjdGl2ZSBwb2xpY3kuCjIuIFRoZSBw b2xpY3kgYmVpbmcgZGVsZXRlZCBtdXN0IG5vdCBiZSB0aGUgYm9vdCBwb2xpY3kuCgpJdCdzIGlt cG9ydGFudCB0byBrbm93IGFib3ZlIHRoYXQgdGhlICJlY2hvIiBjb21tYW5kIHdpbGwgYWRkIGEg bmV3bGluZQp0byB0aGUgZW5kIG9mIHRoZSBpbnB1dCwgYW5kIHRoaXMgd2lsbCBiZSBjb25zaWRl cmVkIGFzIHBhcnQgb2YgdGhlCmZpbGVuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgbmV3bGluZSB2 aWEgdGhlIC1uIHBhcmFtZXRlci4KCk5PVEU6IElmIGEgTUFDIExTTSBpcyBlbmFibGVkLCB0aGUg c2VjdXJpdHlmcyBjb21tYW5kcyB3aWxsIHJlcXVpcmUKQ0FQX01BQ19BRE1JTi4gVGhpcyBpcyBk dWUgdG8gc3lzZnMgc3VwcG9ydGluZyBmaW5lLWdyYWluZWQgTUFDCmF0dHJpYnV0ZXMsIHdoaWxl IHNlY3VyaXR5ZnMgYXQgdGhlIGN1cnJlbnQgbW9tZW50IGRvZXMgbm90LgoKUHJvcGVydGllczoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGlzIGluaXRpYWwgcGF0Y2hz ZXQgaW50cm9kdWNpbmcgSVBFIGFkZHMgdGhyZWUgcHJvcGVydGllczoKJ2Jvb3RfdmVyaWZpZWQn LCAnZG12ZXJpdHlfc2lnbmF0dXJlJyBhbmQgJ2RtdmVyaXR5X3Jvb3RoYXNoJy4KCmJvb3RfdmVy aWZpZWQgKENPTkZJR19JUEVfQk9PVF9QUk9QKToKICBUaGlzIHByb3BlcnR5IGNhbiBiZSB1dGls aXplZCBmb3IgYXV0aG9yaXphdGlvbiBvZiB0aGUgZmlyc3QKICBzdXBlci1ibG9jayB0aGF0IGlz IG1vdW50ZWQgb24gdGhlIHN5c3RlbSwgd2hlcmUgSVBFIGF0dGVtcHRzCiAgdG8gZXZhbHVhdGUg YSBmaWxlLiBUeXBpY2FsbHkgdGhpcyBpcyB1c2VkIGZvciBzeXN0ZW1zIHdpdGgKICBhbiBpbml0 cmFtZnMgb3Igb3RoZXIgaW5pdGlhbCBkaXNrLCB3aGVyZSB0aGlzIGlzIHVubW91bnRlZCBiZWZv cmUKICB0aGUgc3lzdGVtIGJlY29tZXMgYXZhaWxhYmxlLCBhbmQgaXMgbm90IGNvdmVyZWQgYnkg YW55IG90aGVyIHByb3BlcnR5LgogIFRoZSBmb3JtYXQgb2YgdGhpcyBwcm9wZXJ0eSBpczoKCiAg ICBib290X3ZlcmlmaWVkPShUUlVFfEZBTFNFKQoKICBXQVJOSU5HOiBUaGlzIHByb3BlcnR5IHdp bGwgdHJ1c3QgYW55IGRpc2sgd2hlcmUgdGhlIGZpcnN0IElQRQogIGV2YWx1YXRpb24gb2NjdXJz LiBJZiB5b3UgZG8gbm90IGhhdmUgYSBzdGFydHVwIGRpc2sgdGhhdCBpcwogIHVucGFja2VkIGFu ZCB1bm1vdW50ZWQgKGxpa2UgaW5pdHJhbWZzKSwgdGhlbiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkK ICB0cnVzdCB0aGUgcm9vdCBmaWxlc3lzdGVtIGFuZCBwb3RlbnRpYWxseSBvdmVyYXV0aG9yaXpl IHRoZSBlbnRpcmUKICBkaXNrLgoKZG12ZXJpdHlfcm9vdGhhc2ggKENPTkZJR19JUEVfRE1fVkVS SVRZX1JPT1RIQVNIKToKICBUaGlzIHByb3BlcnR5IGNhbiBiZSB1dGlsaXplZCBmb3IgYXV0aG9y aXphdGlvbiBvciByZXZvY2F0aW9uIG9mCiAgc3BlY2lmaWMgZG12ZXJpdHkgdm9sdW1lcywgaWRl bnRpZmllZCB2aWEgcm9vdCBoYXNoLiBJdCBoYXMgYQogIGRlcGVuZGVuY3kgb24gdGhlIERNX1ZF UklUWSBtb2R1bGUuIFRoZSBmb3JtYXQgb2YgdGhpcyBwcm9wZXJ0eSBpczoKCiAgICBkbXZlcml0 eV9yb290aGFzaD08SGFzaEhleERpZ2VzdD4KCmRtdmVyaXR5X3NpZ25hdHVyZSAoQ09ORklHX0lQ RV9ETV9WRVJJVFlfU0lHTkFUVVJFKToKICBUaGlzIHByb3BlcnR5IGNhbiBiZSB1dGlsaXplZCBm b3IgYXV0aG9yaXphdGlvbiBvZiBhbGwgZG0tdmVyaXR5CiAgdm9sdW1lcyB0aGF0IGhhdmUgYSBz aWduZWQgcm9vdGhhc2ggdGhhdCBjaGFpbnMgdG8gdGhlIHN5c3RlbQogIHRydXN0ZWQga2V5cmlu Zy4gSXQgaGFzIGEgZGVwZW5kZW5jeSBvbiB0aGUKICBETV9WRVJJVFlfVkVSSUZZX1JPT1RIQVNI X1NJRyBjb25maWcuIFRoZSBmb3JtYXQgb2YgdGhpcyBwcm9wZXJ0eSBpczoKCiAgICBkbXZlcml0 eV9zaWduYXR1cmU9KFRSVUV8RkFMU0UpCgpUZXN0aW5nOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KCkEgdGVzdCBzdWl0ZSBpcyBhdmFpbGFibGUgKEFwcGVuZGl4IEIpIGZv ciBlYXNlIG9mIHVzZS4gRm9yIG1hbnVhbAppbnN0cnVjdGlvbnM6CgpFbmFibGUgSVBFIHRocm91 Z2ggdGhlIGZvbGxvd2luZyBLY29uZmlnczoKCiAgQ09ORklHX1NFQ1VSSVRZX0lQRT15CiAgQ09O RklHX1NFQ1VSSVRZX0lQRV9CT09UX1BPTElDWT0iLi4vQWxsb3dBbGxJbml0aWFsU0IucG9sIgog IENPTkZJR19TRUNVUklUWV9JUEVfUEVSTUlTU0lWRV9TV0lUQ0g9eQogIENPTkZJR19JUEVfQk9P VF9QUk9QPXkKICBDT05GSUdfSVBFX0RNX1ZFUklUWV9ST09USEFTSD15CiAgQ09ORklHX0lQRV9E TV9WRVJJVFlfU0lHTkFUVVJFPXkKICBDT05GSUdfRE1fVkVSSVRZPXkKICBDT05GSUdfRE1fVkVS SVRZX1ZFUklGWV9ST09USEFTSF9TSUc9eQogIENPTkZJR19TWVNURU1fVFJVU1RFRF9LRVlSSU5H PXkKICBDT05GSUdfU1lTVEVNX1RSVVNURURfS0VZUz0iL3BhdGgvdG8vbXkvY2VydC9saXN0LnBl bSIKClN0YXJ0IGEgdGVzdCBzeXN0ZW0sIHRoYXQgYm9vdHMgZGlyZWN0bHkgZnJvbSB0aGUgZmls ZXN5c3RlbSwgd2l0aG91dAphbiBpbml0cmQuIEkgcmVjb21tZW5kIHRlc3RpbmcgaW4gcGVybWlz c2l2ZSBtb2RlIHVudGlsIGFsbCB0ZXN0cwpwYXNzLCB0aGVuIHN3aXRjaCB0byBlbmZvcmNlIHRv IGVuc3VyZSBiZWhhdmlvciByZW1haW5zIGlkZW50aWNhbC4KCmJvb3RfdmVyaWZpZWQ6CgogIElm IGJvb3RlZCBjb3JyZWN0bHksIHRoZSBmaWxlc3lzdGVtIG1vdW50ZWQgb24gLyBzaG91bGQgYmUg bWFya2VkIGFzCiAgYm9vdF92ZXJpZmllZC4gVmVyaWZ5IGJ5IHR1cm5pbmcgb24gc3VjY2VzcyBh dWRpdGluZyAoc3lzY3RsCiAgaXBlLnN1Y2Nlc3NfYXVkaXQ9MSksIGFuZCBydW4gYSBiaW5hcnku IEluIHRoZSBhdWRpdCBvdXRwdXQsCiAgYHByb3BfYm9vdF92ZXJpZmllZGAgc2hvdWxkIGJlIGBU UlVFYC4KCiAgVG8gdGVzdCBkZW5pYWxzLCBtb3VudCBhIHRlbXBvcmFyeSBmaWxlc3lzdGVtICht b3VudCAtdCB0bXBmcyAtbwogIHNpemU9NE0gdG1wIHRtcCksIGFuZCBjb3B5IGEgYmluYXJ5IChl LmcuIGxzKSB0byB0aGlzIG5ldwogIGZpbGVzeXN0ZW0uIERpc2FibGUgc3VjY2VzcyBhdWRpdGlu ZyBhbmQgYXR0ZW1wdCB0byBydW4gdGhlIGZpbGUuCiAgVGhlIGZpbGUgc2hvdWxkIGhhdmUgYW4g YXVkaXQgZXZlbnQsIGJ1dCBiZSBhbGxvd2VkIHRvIGV4ZWN1dGUgaW4KICBwZXJtaXNzaXZlIG1v ZGUsIGFuZCBwcm9wX2Jvb3RfdmVyaWZpZWQgc2hvdWxkIGJlIEZBTFNFLgoKZG12ZXJpdHlfcm9v dGhhc2g6CgogIEZpcnN0LCB5b3UgbXVzdCBjcmVhdGUgYSBkbS12ZXJpdHkgdm9sdW1lLiBUaGlz IGNhbiBiZSBkb25lIHRocm91Z2gKICBzcXVhc2hmcy10b29scyBhbmQgdmVyaXR5c2V0dXAgKHBy b3ZpZGVkIGJ5IGNyeXB0c2V0dXApLgoKICBDcmVhdGluZyBhIHNxdWFzaGZzIHZvbHVtZToKCiAg ICBta3NxdWFzaGZzIC9wYXRoL3RvL2RpcmVjdG9yeS93aXRoL2V4ZWN1dGFibGUgL3BhdGgvdG8v b3V0cHV0LnNxdWFzaGZzCgogIEZvcm1hdCB0aGUgdm9sdW1lIGZvciB1c2Ugd2l0aCBkbS12ZXJp dHkgJiBzYXZlIHRoZSByb290IGhhc2g6CgogICAgb3V0cHV0X3JoPSQodmVyaXR5c2V0dXAgZm9y bWF0IG91dHB1dC5zcXVhc2hmcyBvdXRwdXQuaGFzaHRyZWUgfCBcCiAgICAgIHRlZSB2ZXJpdHlf b3V0LnR4dCB8IGF3ayAiL1Jvb3QgaGFzaC8iIHwgXAogICAgICBzZWQgLUUgInMvUm9vdCBoYXNo OlxzKy8vZyIpCgogICAgZWNobyAtbiAkb3V0cHV0X3JoID4gb3V0cHV0LnJvb3RoYXNoCgogIENy ZWF0ZSBhIHR3byBwb2xpY2llcywgZmlsbGluZyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGRzIGJl bG93OgoKICAgIFBvbGljeSAxOgoKICAgICAgcG9saWN5X25hbWU9InJvb3RoYXNoLWRlbmlhbCIg cG9saWN5X3ZlcnNpb249MC4wLjAKICAgICAgREVGQVVMVCBhY3Rpb249QUxMT1cKICAgICAgb3A9 RVhFQ1VURSBkbXZlcml0eV9yb290aGFzaD0kb3V0cHV0X3JoIGFjdGlvbj1ERU5ZCgogICAgUG9s aWN5IDI6CgogICAgICBwb2xpY3lfbmFtZT0icm9vdGhhc2gtYWxsb3ciIHBvbGljeV92ZXJzaW9u PTAuMC4wCiAgICAgIERFRkFVTFQgYWN0aW9uPUFMTE9XCiAgICAgIERFRkFVTFQgb3A9RVhFQ1VU RSBhY3Rpb249REVOWQoKICAgICAgb3A9RVhFQ1VURSBib290X3ZlcmlmaWVkPVRSVUUgYWN0aW9u PUFMTE9XCiAgICAgIG9wPUVYRUNVVEUgZG12ZXJpdHlfcm9vdGhhc2g9JG91dHB1dF9yaCBhY3Rp b249QUxMT1cKCiAgRGVwbG95IGVhY2ggcG9saWN5LCB0aGVuIG1hcmsgdGhlIGZpcnN0LCAicm9v dGhhc2gtZGVuaWFsIiBhcyBhY3RpdmUsCiAgcGVyIHRoZSAiRGVwbG95aW5nIFBvbGljaWVzIiBz ZWN0aW9uIG9mIHRoaXMgY292ZXIgbGV0dGVyLiBNb3VudCB0aGUKICBkbS12ZXJpdHkgdm9sdW1l OgoKICAgIHZlcml0eXNldHVwIG9wZW4gb3V0cHV0LnNxdWFzaGZzIG91dHB1dC5oYXNodHJlZSB1 bnZlcmlmaWVkIFwKICAgICAgYGNhdCBvdXRwdXQucm9vdGhhc2hgCgogICAgbW91bnQgL2Rldi9t YXBwZXIvdW52ZXJpZmllZCAvbXkvbW91bnQvcG9pbnQKCiAgQXR0ZW1wdCB0byBleGVjdXRlIGEg YmluYXJ5IGluIHRoZSBtb3VudCBwb2ludCwgYW5kIGl0IHNob3VsZCBlbWl0IGFuCiAgYXVkaXQg ZXZlbnQgZm9yIGEgbWF0Y2ggYWdhaW5zdCB0aGUgcnVsZToKICAKICAgIG9wPUVYRUNVVEUgZG12 ZXJpdHlfcm9vdGhhc2g9JG91dHB1dF9yaCBhY3Rpb249REVOWQoKICBUbyB0ZXN0IHRoZSBzZWNv bmQgcG9saWN5LCBwZXJmb3JtIHRoZSBzYW1lIHN0ZXBzLCBidXQgdGhpcyB0aW1lLCBlbmFibGUK ICBzdWNjZXNzIGF1ZGl0aW5nIGJlZm9yZSBydW5uaW5nIHRoZSBleGVjdXRhYmxlLiBUaGUgc3Vj Y2VzcyBhdWRpdCBldmVudAogIHNob3VsZCBiZSBhIG1hdGNoIGFnYWluc3QgdGhpcyBydWxlOgoK ICAgIG9wPUVYRUNVVEUgZG12ZXJpdHlfcm9vdGhhc2g9JG91dHB1dF9yaCBhY3Rpb249QUxMT1cK CmRtdmVyaXR5X3NpZ25hdHVyZToKCiAgRm9sbG93IHRoZSBzZXR1cCBzdGVwcyBmb3IgZG12ZXJp dHlfcm9vdGhhc2guIFNpZ24gdGhlIHJvb3RoYXNoIHZpYToKCiAgICBvcGVuc3NsIHNtaW1lIC1z aWduIC1pbiAib3V0cHV0LnJvb3RoYXNoIiAtc2lnbmVyICIkTVlfQ0VSVElGSUNBVEUiIFwKICAg ICAgLWlua2V5ICIkTVlfUFJJVkFURV9LRVkiIC1iaW5hcnkgLW91dGZvcm0gZGVyIC1ub2F0dHIg XAogICAgICAtb3V0ICJvdXRwdXQucDdzIgoKICAgIENyZWF0ZSBhIHBvbGljeToKCiAgICAgIHBv bGljeV9uYW1lPSJ2ZXJpZmllZCIgcG9saWN5X3ZlcnNpb249MC4wLjAKICAgICAgREVGQVVMVCBh Y3Rpb249REVOWQoKICAgICAgb3A9RVhFQ1VURSBib290X3ZlcmlmaWVkPVRSVUUgYWN0aW9uPUFM TE9XCiAgICAgIG9wPUVYRUNVVEUgZG12ZXJpdHlfdmVyaWZpZWQ9VFJVRSBhY3Rpb249QUxMT1cK CiAgRGVwbG95IHRoZSBwb2xpY3ksIGFuZCBtYXJrIGFzIGFjdGl2ZSwgcGVyIHRoZSAiRGVwbG95 aW5nIFBvbGljaWVzIgogIHNlY3Rpb24gb2YgdGhpcyBjb3ZlciBsZXR0ZXIuIE1vdW50IHRoZSBk bS12ZXJpdHkgdm9sdW1lIHdpdGgKICB2ZXJpZmljYXRpb246CgogICAgdmVyaXR5c2V0dXAgb3Bl biBvdXRwdXQuc3F1YXNoZnMgb3V0cHV0Lmhhc2h0cmVlIHVudmVyaWZpZWQgXAogICAgICBgY2F0 IG91dHB1dC5yb290aGFzaGAgLS1yb290LWhhc2gtc2lnbmF0dXJlPW91dHB1dC5wN3MKCiAgICBt b3VudCAvZGV2L21hcHBlci91bnZlcmlmaWVkIC9teS9tb3VudC9wb2ludAoKICBOT1RFOiBUaGUg LS1yb290LWhhc2gtc2lnbmF0dXJlIG9wdGlvbiB3YXMgaW50cm9kdWNlZCBpbiB2ZXJpdHlzZXR1 cAogIDIuMy4wCgogIFR1cm4gb24gc3VjY2VzcyBhdWRpdGluZyBhbmQgYXR0ZW1wdCB0byBleGVj dXRlIGEgYmluYXJ5IGluIHRoZSBtb3VudAogIHBvaW50LCBhbmQgaXQgc2hvdWxkIGVtaXQgYW4g YXVkaXQgZXZlbnQgZm9yIGEgbWF0Y2ggYWdhaW5zdCB0aGUgcnVsZToKCiAgICBvcD1FWEVDVVRF IGRtdmVyaXR5X3ZlcmlmaWVkPVRSVUUgYWN0aW9uPUFMTE9XCgogIFRvIHRlc3QgZGVuaWFscywg bW91bnQgdGhlIGRtLXZlcml0eSB2b2x1bWUgdGhlIHNhbWUgd2F5IGFzIHRoZQogICJkbXZlcml0 eV9yb290aGFzaCIgc2VjdGlvbiwgYW5kIGF0dGVtcHQgdG8gZXhlY3V0ZSBhIGJpbmFyeS4gRmFp bHVyZQogIHNob3VsZCBvY2N1ci4KCkRvY3VtZW50YXRpb246Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKRnVsbCBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBvbiBnaXRo dWIgaW4gSVBFJ3MgbWFzdGVyIHJlcG9zaXRvcnkKKEFwcGVuZGl4IEEpLiBUaGlzIGlzIGludGVu ZGVkIHRvIGJlIGFuIGV4aGF1c3RpdmUgc291cmNlIG9mIGRvY3VtZW50YXRpb24KYXJvdW5kIElQ RS4KCkFkZGl0aW9uYWxseSwgdGhlcmUgaXMgaGlnaGVyIGxldmVsIGRvY3VtZW50YXRpb24gaW4g dGhlIGFkbWluLWd1aWRlLgoKVGVjaG5pY2FsIGRpYWdyYW1zIGFyZSBhdmFpbGFibGUgaGVyZToK CiAgaHR0cDovL21pY3Jvc29mdC5naXRodWIuaW8vaXBlL3RlY2huaWNhbC9kaWFncmFtcy8KCktu b3duIEdhcHM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSVBFIGhhcyB0 d28ga25vd24gZ2FwczoKCjEuIElQRSBjYW5ub3QgdmVyaWZ5IHRoZSBpbnRlZ3JpdHkgb2YgYW5v bnltb3VzIGV4ZWN1dGFibGUgbWVtb3J5LCBzdWNoIGFzCiAgdGhlIHRyYW1wb2xpbmVzIGNyZWF0 ZWQgYnkgZ2NjIGNsb3N1cmVzIGFuZCBsaWJmZmksIG9yIEpJVCdkIGNvZGUuCiAgVW5mb3J0dW5h dGVseSwgYXMgdGhpcyBpcyBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZSwgdGhlcmUgaXMgbm8g d2F5IGZvcgogIElQRSB0byBkZXRlY3QgdGhhdCB0aGlzIGNvZGUgaGFzIG5vdCBiZWVuIHRhbXBl cmVkIHdpdGggaW4gdHJhbnNpdGlvbgogIGZyb20gd2hlcmUgaXQgd2FzIGJ1aWx0LCB0byB3aGVy ZSBpdCBpcyBydW5uaW5nLiBBcyBhIHJlc3VsdCwgSVBFIGlzCiAgaW5jYXBhYmxlIG9mIHRhY2ts aW5nIHRoaXMgcHJvYmxlbSBmb3IgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUuCiAgSG93ZXZl ciwgdGhlcmUgaXMgYSBwYXRjaCBzZXJpZXMgYmVpbmcgcHJlcGFyZWQgdGhhdCBhZGRyZXNzZXMg dGhpcwogIHByb2JsZW0gZm9yIGxpYmZmaSBhbmQgZ2NjIGNsb3N1cmVzIGJ5IGltcGxlbWV0aW5n IGEgc2FmZXIga2VybmVsCiAgdHJhbXBvbGluZSBBUEkuIAoKMi4gSVBFIGNhbm5vdCB2ZXJpZnkg dGhlIGludGVncml0eSBvZiBpbnRlcnByZXRlZCBsYW5ndWFnZXMnIHByb2dyYW1zIHdoZW4KICB0 aGVzZSBzY3JpcHRzIGludm9rZWQgdmlhIGA8aW50ZXJwcmV0ZXI+IDxmaWxlPmAuIFRoaXMgaXMg YmVjYXVzZSB0aGUgd2F5CiAgaW50ZXJwcmV0ZXJzIGV4ZWN1dGUgdGhlc2UgZmlsZXMsIHRoZSBz Y3JpcHRzIHRoZW1zZWx2ZXMgYXJlIG5vdAogIGV2YWx1YXRlZCBhcyBleGVjdXRhYmxlIGNvZGUg dGhyb3VnaCBvbmUgb2YgSVBFJ3MgaG9va3MuIEludGVycHJldGVycwogIGNhbiBiZSBlbmxpZ2h0 ZW5lZCB0byB0aGUgdXNhZ2Ugb2YgSVBFIGJ5IHRyeWluZyB0byBtbWFwIGEgZmlsZSBpbnRvCiAg ZXhlY3V0YWJsZSBtZW1vcnkgKCtYKSwgYWZ0ZXIgb3BlbmluZyB0aGUgZmlsZSBhbmQgcmVzcG9u ZGluZyB0byB0aGUKICBlcnJvciBjb2RlIGFwcHJvcHJpYXRlbHkuIFRoaXMgYWxzbyBhcHBsaWVz IHRvIGluY2x1ZGVkIGZpbGVzLCBvciBoaWdoCiAgdmFsdWUgZmlsZXMsIHN1Y2ggYXMgY29uZmln dXJhdGlvbiBmaWxlcyBvZiBjcml0aWNhbCBzeXN0ZW0gY29tcG9uZW50cy4KICBUaGlzIHNwZWNp ZmljIGdhcCBpcyBwbGFubmVkIG9uIGJlaW5nIGFkZHJlc3NlZCB3aXRoaW4gSVBFLiBGb3IgbW9y ZQogIGluZm9ybWF0aW9uIG9uIGhvdyB3ZSBwbGFuIHRvIGFkZHJlc3MgdGhpcyBnYXAsIHBsZWFz ZSBzZWUgdGhlIEZ1dHVyZQogIERldmVsb3BtZW50IHNlY3Rpb24sIGJlbG93LgoKRnV0dXJlIERl dmVsb3BtZW50OgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN1cHBvcnQg Zm9yIGZpbHRlcmluZyBzaWduYXR1cmVzIGJ5IHNwZWNpZmljIGNlcnRpZmljYXRlcy4gSW4gdGhp cyBjYXNlLApvdXIgImRtdmVyaXR5X3NpZ25hdHVyZSIgKG9yIGEgc2VwYXJhdGUgcHJvcGVydHkp IGNhbiBiZSBzZXQgdG8gYQpzcGVjaWZpYyBjZXJ0aWZpY2F0ZSBkZWNsYXJlZCBpbiBJUEUncyBw b2xpY3ksIGFsbG93aW5nIGZvciBtb3JlCmNvbnRyb2xsZWQgdXNlLWNhc2VzIGRldGVybWluZSBi eSBhIHVzZXIncyBQS0kgc3RydWN0dXJlLgoKU3VwcG9ydCBmb3IgaW50ZWdyaXR5IHZlcmlmaWNh dGlvbiBmb3IgZ2VuZXJhbCBmaWxlIHJlYWRzLiBUaGlzIGFkZHJlc3Nlcwp0aGUgc2NyaXB0IGlu dGVycHJldGVyIGlzc3VlIGluZGljYXRlZCBpbiB0aGUgIktub3duIEdhcHMiIHNlY3Rpb24sIGFz CnRoZXNlIHNjcmlwdCBmaWxlcyBhcmUgdHlwaWNhbGx5IG9wZW5lZCB3aXRoIE9fUkRPTkxZLiBX ZSBhcmUgZXZhbHVhdGluZwp3aGV0aGVyIHRvIGRvIHRoaXMgYnkgY29tcGFyaW5nIHRoZSBvcmln aW5hbCB1c2VybGFuZCBmaWxlcGF0aCBwYXNzZWQgaW50bwp0aGUgb3BlbiBzeXNjYWxsLCB0aGVy ZWJ5IGFsbG93aW5nIGV4aXN0aW5nIGNhbGxlcnMgdG8gdGFrZSBhZHZhbnRhZ2UKd2l0aG91dCBh bnkgY29kZSBjaGFuZ2VzOyB0aGUgYWx0ZXJuYXRlIGRlc2lnbiBpcyB0byBleHRlbmQgdGhlIG5l dwpvcGVuYXQyKDIpIHN5c2NhbGwsIHdpdGggYW4gbmV3IGZsYWcsIHRlbnRhdGl2ZWx5IGNhbGxl ZCAiT19WRVJJRlkiLiBXaGlsZQp0aGUgc2Vjb25kIG9wdGlvbiByZXF1aXJlcyBhIGNvZGUgY2hh bmdlIGZvciBhbGwgdGhlIGludGVycHJldGVycywKZnJhbWV3b3JrcyBhbmQgbGFuZ3VhZ2VzIHRo YXQgd2lzaCB0byBsZXZlcmFnZSBpdCwgaXQgaXMgYSB3aG9sbHkgY2xlYW5lcgppbXBsZW1lbnRh dGlvbiBpbiB0aGUga2VybmVsLiBGb3IgaW50ZXJwcmV0ZXJzIHNwZWNpZmljYWxseSwgdGhlIE9f TUFZRVhFQwpwYXRjaCBzZXJpZXMgcHVibGlzaGVkIGJ5IE1pY2thw6tsIFNhbGHDvG5bMV0gaXMg YSBzaW1pbGFyIGltcGxlbWVudGF0aW9uCnRvIHRoZSBPX1ZFUklGWSBpZGVhIGRlc2NyaWJlZCBh Ym92ZS4KCk9uYm9hcmRpbmcgSVBFJ3MgdGVzdCBzdWl0ZSB0byBLZXJuZWxDSS4gQ3VycmVudGx5 IHdlIGFyZSBkZXZlbG9waW5nIGEKdGVzdCBzdWl0ZSBpbiB0aGUgc2FtZSB2ZWluIGFzIFNFTGlu dXgncyB0ZXN0IHN1aXRlLiBPbmNlIGRldmVsb3BtZW50Cm9mIHRoZSB0ZXN0IHN1aXRlIGlzIGNv bXBsZXRlLCBhbmQgcHJvdmlkZWQgSVBFIGlzIGFjY2VwdGVkLCB3ZSBpbnRlbmQKdG8gb25ib2Fy ZCB0aGlzIHRlc3Qgc3VpdGUgb250byBLZXJuZWxDSS4KCkhhcmRlbmVkIHJlc2lzdGFuY2UgYWdh aW5zdCByb2xsLWJhY2sgYXR0YWNrcy4gQ3VycmVudGx5IHRoZXJlIGV4aXN0cyBhCndpbmRvdyBv ZiBvcHBvcnR1bml0eSBiZXR3ZWVuIHVzZXItbW9kZSBzZXR1cCBhbmQgdGhlIHVzZXItcG9saWN5 IGJlaW5nCmRlcGxveWVkLCB3aGVyZSBhIHByaW9yIHVzZXItcG9saWN5IGNhbiBiZSBsb2FkZWQs IHRoYXQgaXMgcG90ZW50aWFsbHkKaW5zZWN1cmUuIEhvd2V2ZXIsIHdpdGggYSBrZXJuZWwgdXBk YXRlLCB5b3UgY2FuIHJldmlzZSB0aGUgYm9vdCBwb2xpY3kncwp2ZXJzaW9uIHRvIGJlIHRoZSBz YW1lIHZlcnNpb24gYXMgdGhlIGxhdGVzdCBwb2xpY3ksIGNsb3NpbmcgdGhpcyB3aW5kb3cuCklu IHRoZSBmdXR1cmUsIEkgd291bGQgbGlrZSB0byBjbG9zZSB0aGlzIHdpbmRvdyBvZiBvcHBvcnR1 bml0eSB3aXRob3V0CmEga2VybmVsIHVwZGF0ZSwgdXNpbmcgc29tZSBwZXJzaXN0ZW50IHN0b3Jh Z2UgbWVjaGFuaXNtLgoKT3BlbiBJc3N1ZXM6Ci0tLS0tLS0tLS0tLQoKRm9yIGxpbnV4LWF1ZGl0 L2ludGVncml0eSBmb2xrczoKMS4gSW50cm9kdWN0aW9uIG9mIG5ldyBhdWRpdCBkZWZpbml0aW9u cyBpbiB0aGUga2VybmVsIGludGVncml0eSByYW5nZSAtIGlzCiAgdGhpcyBwcmVmZXJyZWQsIGFz IG9wcG9zZWQgdG8gcmV1c2luZyBkZWZpbml0aW9ucyB3aXRoIGV4aXN0aW5nIElNQQogIGRlZmlu aXRpb25zPwoKVE9ET3M6Ci0tLS0tLQoKbGludXgtYXVkaXQgY2hhbmdlcyB0byBzdXBwb3J0IHRo ZSBuZXcgYXVkaXQgZXZlbnRzLgoKCkFwcGVuZGl4OgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCkEuIElQRSBHaXRodWIgUmVwb3NpdG9yeTogaHR0cHM6Ly9naXRodWIuY29t L21pY3Jvc29mdC9pcGUKICAgSG9zdGVkIERvY3VtZW50YXRpb246IGh0dHBzOi8vbWljcm9zb2Z0 LmdpdGh1Yi5pby9pcGUKQi4gSVBFIFVzZXJzJyBHdWlkZTogRG9jdW1lbnRhdGlvbi9hZG1pbi1n dWlkZS9MU00vaXBlLnJzdApDLiBJUEUgVGVzdCBTdWl0ZTogKlRCQSogKHVuZGVyIGRldmVsb3Bt ZW50KQoKUmVmZXJlbmNlczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgox LiBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1pbnRlZ3JpdHkvMjAyMDA1MDUxNTMxNTYu OTI1MTExLTEtbWljQGRpZ2lrb2QubmV0LwoKQ2hhbmdlbG9nOgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCnYxOiBJbnRyb2R1Y2VkCgp2MjoKICBTcGxpdCB0aGUgc2Vjb25k IHBhdGNoIG9mIHRoZSBwcmV2aW91cyBzZXJpZXMgaW50byB0d28uCiAgTWlub3IgY29ycmVjdGlv bnMgaW4gdGhlIGNvdmVyLWxldHRlciBhbmQgZG9jdW1lbnRhdGlvbgogIGNvbW1lbnRzIHJlZ2Fy ZGluZyBDQVBfTUFDX0FETUlOIGNoZWNrcyBpbiBJUEUuCgp2MzoKICBBZGRyZXNzIHZhcmlvdXMg Y29tbWVudHMgYnkgSmFubiBIb3JuLiBIaWdobGlnaHRzOgogICAgU3dpdGNoIHZhcmlvdXMgYXVk aXQgYWxsb2NhdG9ycyB0byBHRlBfS0VSTkVMLgogICAgVXRpbGl6ZSByY3VfYWNjZXNzX3BvaW50 ZXIoKSBpbiB2YXJpb3VzIGxvY2F0aW9ucy4KICAgIFN0cmlwIG91dCB0aGUgY2FjaGluZyBzeXN0 ZW0gZm9yIHByb3BlcnRpZXMKICAgIFN0cmlwIGNvbW1lbnRzIGZyb20gaGVhZGVycwogICAgTW92 ZSBmdW5jdGlvbnMgYXJvdW5kIGluIHBhdGNoZXMKICAgIFJlbW92ZSBrZXJuZWwgY29tbWFuZCBs aW5lIHBhcmFtZXRlcnMKICAgIFJlY29uY2lsZSB0aGUgcmFjZSBjb25kaXRpb24gb24gdGhlIGRl bGV0ZSBub2RlIGZvciBwb2xpY3kgYnkKICAgICAgZXhwYW5kaW5nIHRoZSBwb2xpY3kgY3JpdGlj YWwgc2VjdGlvbi4KCiAgQWRkcmVzcyBhIGZldyBjb21tZW50cyBieSBKb25hdGhhbiBDb3JiZXQg YXJvdW5kIHRoZSBkb2N1bWVudGF0aW9uCiAgICBwYWdlcyBmb3IgSVBFLgoKICBGaXggYW4gaXNz dWUgd2l0aCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgSVBFIHBvbGljeSB3aXRoIGEgIi0wIgogICAg dmVyc2lvbiwgY2F1c2VkIGJ5IG5vdCBpbml0aWFsaXppbmcgdGhlIGhsaXN0IGVudHJpZXMgYmVm b3JlCiAgICBmcmVlaW5nLgoKdjQ6CiAgQWRkcmVzcyBhIGNvbmNlcm4gYXJvdW5kIElQRSdzIGJl aGF2aW9yIHdpdGggdW5rbm93biBzeW50YXguCiAgICBTcGVjaWZpY2FsbHksIG1ha2UgYW55IHVu a25vd24gc3ludGF4IGEgZmF0YWwgZXJyb3IgaW5zdGVhZCBvZiBhCiAgICB3YXJuaW5nLCBhcyBz dWdnZXN0ZWQgYnkgTWlja2HDq2wgU2FsYcO8bi4KICBJbnRyb2R1Y2UgYSBuZXcgc2VjdXJpdHlm cyBub2RlLCAkc2VjdXJpdHlmcy9pcGUvcHJvcGVydHlfY29uZmlnLAogICAgd2hpY2ggcHJvdmlk ZXMgYSBsaXN0aW5nIG9mIHdoYXQgcHJvcGVydGllcyBhcmUgZW5hYmxlZCBieSB0aGUKICAgIGtl cm5lbCBhbmQgdGhlaXIgdmVyc2lvbnMuIFRoaXMgYWxsb3dzIHVzZXJtb2RlIHRvIHByZWRpY3Qg d2hhdAogICAgcG9saWNpZXMgc2hvdWxkIGJlIGFsbG93ZWQuCiAgU3RyaXAgc29tZSBjb21tZW50 cyBmcm9tIGMgZmlsZXMgdGhhdCBJIG1pc3NlZC4KICBDbGFyaWZ5IHNvbWUgZG9jdW1lbnRhdGlv biBjb21tZW50cyBhcm91bmQgJ2Jvb3RfdmVyaWZpZWQnLgogICAgV2hpbGUgdGhpcyBjdXJyZW50 bHkgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGNoYW5nZSB0aGUgcHJvcGVydHkKICAgIGl0c2VsZiwg dGhlIGRpc3RpbmN0aW9uIGlzIGltcG9ydGFudCB3aGVuIElQRSBjYW4gZW5mb3JjZSB2ZXJpZmll ZAogICAgcmVhZHMuIEFkZGl0aW9uYWxseSwgJ0tFUk5FTF9SRUFEJyB3YXMgb21pdHRlZCBmcm9t IHRoZSBkb2N1bWVudGF0aW9uLgogICAgVGhpcyBoYXMgYmVlbiBjb3JyZWN0ZWQuCiAgQ2hhbmdl IFNlY3VyaXR5RlMgYW5kIFNIQTEgdG8gYSByZXZlcnNlIGRlcGVuZGVuY3kuCiAgVXBkYXRlIHRo ZSBjb3Zlci1sZXR0ZXIgd2l0aCB0aGUgdXBkYXRlZCBiZWhhdmlvciBvZiB1bmtub3duIHN5bnRh eC4KICBSZW1vdmUgYWxsIHN5c2N0bHMsIG1ha2luZyBhbiBlcXVpdmFsZW50IGZ1bmN0aW9uIGlu IHNlY3VyaXR5ZnMuCiAgUmV3b3JrIHRoZSBhY3RpdmUvZGVsZXRlIG1lY2hhbmlzbSB0byBiZSBh IG5vZGUgdW5kZXIgdGhlIHBvbGljeSBpbgogICAgJHNlY3VyaXR5ZnMvaXBlL3BvbGljaWVzLgog IFRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgaXBlLmVuZm9yY2UgYW5kIGlwZS5z dWNjZXNzX2F1ZGl0CiAgICBoYXZlIHJldHVybmVkIGFzIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBu byBsb25nZXIgZXhwb3NlZCB0aHJvdWdoCiAgICBzeXNmcy4KCkRldmVuIEJvd2VycyAoMTIpOgog IHNjcmlwdHM6IGFkZCBpcGUgdG9vbGluZyB0byBnZW5lcmF0ZSBib290IHBvbGljeQogIHNlY3Vy aXR5OiBhZGQgaXBlIGxzbSBldmFsdWF0aW9uIGxvb3AgYW5kIGF1ZGl0IHN5c3RlbQogIHNlY3Vy aXR5OiBhZGQgaXBlIGxzbSBwb2xpY3kgcGFyc2VyIGFuZCBwb2xpY3kgbG9hZGluZwogIGlwZTog YWRkIHByb3BlcnR5IGZvciB0cnVzdCBvZiBib290IHZvbHVtZQogIGZzOiBhZGQgc2VjdXJpdHkg YmxvYiBhbmQgaG9va3MgZm9yIGJsb2NrX2RldmljZQogIGRtLXZlcml0eTogbW92ZSBzaWduYXR1 cmUgY2hlY2sgYWZ0ZXIgdHJlZSB2YWxpZGF0aW9uCiAgZG0tdmVyaXR5OiBhZGQgYmRldl9zZXRz ZWN1cml0eSBob29rIGZvciBkbS12ZXJpdHkgc2lnbmF0dXJlCiAgaXBlOiBhZGQgcHJvcGVydHkg Zm9yIHNpZ25lZCBkbXZlcml0eSB2b2x1bWVzCiAgZG0tdmVyaXR5OiBhZGQgYmRldl9zZXRzZWN1 cml0eSBob29rIGZvciByb290LWhhc2gKICBpcGU6IGFkZCBwcm9wZXJ0eSBmb3IgZG12ZXJpdHkg cm9vdGhhc2gKICBkb2N1bWVudGF0aW9uOiBhZGQgaXBlIGRvY3VtZW50YXRpb24KICBjbGVhbnVw OiB1YXBpL2xpbnV4L2F1ZGl0LmgKCiBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL0xTTS9pbmRl eC5yc3QgICAgICB8ICAgIDEgKwogRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9MU00vaXBlLnJz dCAgICAgICAgfCAgNDcyICsrKysrKysKIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgOCArCiBkcml2ZXJzL21kL2RtLXZlcml0eS10YXJnZXQuYyAgICAg ICAgICAgICAgICB8ICAgNTAgKy0KIGRyaXZlcnMvbWQvZG0tdmVyaXR5LXZlcmlmeS1zaWcuYyAg ICAgICAgICAgIHwgIDE0NyArLQogZHJpdmVycy9tZC9kbS12ZXJpdHktdmVyaWZ5LXNpZy5oICAg ICAgICAgICAgfCAgIDIwICstCiBkcml2ZXJzL21kL2RtLXZlcml0eS5oICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDIgKy0KIGZzL2Jsb2NrX2Rldi5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgOCArCiBpbmNsdWRlL2xpbnV4L2RldmljZS1tYXBwZXIuaCAgICAgICAgICAg ICAgICB8ICAgIDMgKwogaW5jbHVkZS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAxICsKIGluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oICAgICAgICAgICAgICAg IHwgICAgNSArCiBpbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oICAgICAgICAgICAgICAgICAgICB8 ICAgMTEgKwogaW5jbHVkZS9saW51eC9zZWN1cml0eS5oICAgICAgICAgICAgICAgICAgICAgfCAg IDIyICsKIGluY2x1ZGUvdWFwaS9saW51eC9hdWRpdC5oICAgICAgICAgICAgICAgICAgIHwgICAz NiArLQogc2NyaXB0cy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAx ICsKIHNjcmlwdHMvaXBlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAr CiBzY3JpcHRzL2lwZS9wb2xnZW4vLmdpdGlnbm9yZSAgICAgICAgICAgICAgICB8ICAgIDEgKwog c2NyaXB0cy9pcGUvcG9sZ2VuL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHNj cmlwdHMvaXBlL3BvbGdlbi9wb2xnZW4uYyAgICAgICAgICAgICAgICAgIHwgIDEzNiArKwogc2Vj dXJpdHkvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICstCiBzZWN1 cml0eS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogc2VjdXJp dHkvaXBlLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIHNlY3VyaXR5 L2lwZS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NyArCiBzZWN1cml0eS9p cGUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzMgKwogc2VjdXJpdHkvaXBl L2lwZS1hdWRpdC5jICAgICAgICAgICAgICAgICAgICAgfCAgMzE2ICsrKysrCiBzZWN1cml0eS9p cGUvaXBlLWF1ZGl0LmggICAgICAgICAgICAgICAgICAgICB8ICAgMjYgKwogc2VjdXJpdHkvaXBl L2lwZS1ibG9icy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDkxICsrCiBzZWN1cml0eS9pcGUv aXBlLWJsb2JzLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTggKwogc2VjdXJpdHkvaXBlL2lw ZS1lbmdpbmUuYyAgICAgICAgICAgICAgICAgICAgfCAgMjIxICsrKwogc2VjdXJpdHkvaXBlL2lw ZS1lbmdpbmUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDQ5ICsKIHNlY3VyaXR5L2lwZS9pcGUt aG9va3MuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE2OSArKysKIHNlY3VyaXR5L2lwZS9pcGUt aG9va3MuaCAgICAgICAgICAgICAgICAgICAgIHwgICA3MCArCiBzZWN1cml0eS9pcGUvaXBlLXBh cnNlLmMgICAgICAgICAgICAgICAgICAgICB8ICA4OTAgKysrKysrKysrKysrCiBzZWN1cml0eS9p cGUvaXBlLXBhcnNlLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKwogc2VjdXJpdHkvaXBl L2lwZS1waW4uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkzICsrCiBzZWN1cml0eS9pcGUv aXBlLXBpbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzYgKwogc2VjdXJpdHkvaXBlL2lw ZS1wb2xpY3kuYyAgICAgICAgICAgICAgICAgICAgfCAgMTQ4ICsrCiBzZWN1cml0eS9pcGUvaXBl LXBvbGljeS5oICAgICAgICAgICAgICAgICAgICB8ICAgNjkgKwogc2VjdXJpdHkvaXBlL2lwZS1w cm9wLWludGVybmFsLmggICAgICAgICAgICAgfCAgIDQ5ICsKIHNlY3VyaXR5L2lwZS9pcGUtcHJv cGVydHkuYyAgICAgICAgICAgICAgICAgIHwgIDE0MiArKwogc2VjdXJpdHkvaXBlL2lwZS1wcm9w ZXJ0eS5oICAgICAgICAgICAgICAgICAgfCAgMTAwICsrCiBzZWN1cml0eS9pcGUvaXBlLXNlY2Zz LmMgICAgICAgICAgICAgICAgICAgICB8IDEzMTYgKysrKysrKysrKysrKysrKysrCiBzZWN1cml0 eS9pcGUvaXBlLXNlY2ZzLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKwogc2VjdXJpdHkv aXBlL2lwZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTE2ICsrCiBzZWN1cml0eS9p cGUvaXBlLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKwogc2VjdXJpdHkvaXBl L3Byb3BlcnRpZXMvS2NvbmZpZyAgICAgICAgICAgICAgfCAgIDM2ICsKIHNlY3VyaXR5L2lwZS9w cm9wZXJ0aWVzL01ha2VmaWxlICAgICAgICAgICAgIHwgICAxMyArCiBzZWN1cml0eS9pcGUvcHJv cGVydGllcy9ib290LXZlcmlmaWVkLmMgICAgICB8ICAgODIgKysKIHNlY3VyaXR5L2lwZS9wcm9w ZXJ0aWVzL2RtdmVyaXR5LXJvb3RoYXNoLmMgIHwgIDE1MyArKwogc2VjdXJpdHkvaXBlL3Byb3Bl cnRpZXMvZG12ZXJpdHktc2lnbmF0dXJlLmMgfCAgIDgyICsrCiBzZWN1cml0eS9pcGUvcHJvcGVy dGllcy9wcm9wLWVudHJ5LmggICAgICAgICB8ICAgMzggKwogc2VjdXJpdHkvaXBlL3V0aWxpdHku aCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsKIHNlY3VyaXR5L3NlY3VyaXR5LmMgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA2MSArCiA1MyBmaWxlcyBjaGFuZ2VkLCA1NDA2IGlu c2VydGlvbnMoKyksIDk0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50 YXRpb24vYWRtaW4tZ3VpZGUvTFNNL2lwZS5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzY3JpcHRz L2lwZS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNjcmlwdHMvaXBlL3BvbGdlbi8uZ2l0 aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9pcGUvcG9sZ2VuL01ha2VmaWxlCiBj cmVhdGUgbW9kZSAxMDA2NDQgc2NyaXB0cy9pcGUvcG9sZ2VuL3BvbGdlbi5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc2VjdXJpdHkvaXBlLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzZWN1 cml0eS9pcGUvS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9NYWtlZmls ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9pcGUtYXVkaXQuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9pcGUtYXVkaXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNl Y3VyaXR5L2lwZS9pcGUtYmxvYnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9p cGUtYmxvYnMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9pcGUtZW5naW5lLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzZWN1cml0eS9pcGUvaXBlLWVuZ2luZS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1ob29rcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2Vj dXJpdHkvaXBlL2lwZS1ob29rcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lw ZS1wYXJzZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1wYXJzZS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1waW4uYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNlY3VyaXR5L2lwZS9pcGUtcGluLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzZWN1cml0eS9p cGUvaXBlLXBvbGljeS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1wb2xp Y3kuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3VyaXR5L2lwZS9pcGUtcHJvcC1pbnRlcm5hbC5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1wcm9wZXJ0eS5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS1wcm9wZXJ0eS5oCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc2VjdXJpdHkvaXBlL2lwZS1zZWNmcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkv aXBlL2lwZS1zZWNmcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkvaXBlL2lwZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c2VjdXJpdHkvaXBlL3Byb3BlcnRpZXMvS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNlY3Vy aXR5L2lwZS9wcm9wZXJ0aWVzL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJpdHkv aXBlL3Byb3BlcnRpZXMvYm9vdC12ZXJpZmllZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2VjdXJp dHkvaXBlL3Byb3BlcnRpZXMvZG12ZXJpdHktcm9vdGhhc2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNlY3VyaXR5L2lwZS9wcm9wZXJ0aWVzL2RtdmVyaXR5LXNpZ25hdHVyZS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc2VjdXJpdHkvaXBlL3Byb3BlcnRpZXMvcHJvcC1lbnRyeS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc2VjdXJpdHkvaXBlL3V0aWxpdHkuaAoKLS0gCjIuMjcuMAoKCi0tCkxpbnV4LWF1 ZGl0IG1haWxpbmcgbGlzdApMaW51eC1hdWRpdEByZWRoYXQuY29tCmh0dHBzOi8vd3d3LnJlZGhh dC5jb20vbWFpbG1hbi9saXN0aW5mby9saW51eC1hdWRpdA==