From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web12.3473.1608153221482470255 for ; Wed, 16 Dec 2020 13:13:42 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=LupAaBw/; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608153220; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=f862Vp1xJQ81UFqCG8etsFBmJKHo26djJMNspMBCJQU=; b=LupAaBw/GuyWX00xeAwPgBkQz9NN1k2mgDcI8E4UFzsLifMX0JcDNiIvzog6d9/9feEt1F r8+A6ju/PlSgD+6hjOshFpEMrkiGo0LnHgd/b0zwNer4Eh+qBsBcA3nTikEns6zyDsmyFE R1iCd6uQyhfPgy+TxspL5M1THycOx0k= 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-260-Pc0BB8nCP5-6TRG5fI6YXg-1; Wed, 16 Dec 2020 16:13:38 -0500 X-MC-Unique: Pc0BB8nCP5-6TRG5fI6YXg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D150C1E7C1; Wed, 16 Dec 2020 21:13:37 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-152.ams2.redhat.com [10.36.114.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id D20C75D9CD; Wed, 16 Dec 2020 21:13:32 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io, virtio-fs@redhat.com, lersek@redhat.com Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [edk2 PATCH 01/48] OvmfPkg: introduce VirtioFsDxe Date: Wed, 16 Dec 2020 22:10:38 +0100 Message-Id: <20201216211125.19496-2-lersek@redhat.com> In-Reply-To: <20201216211125.19496-1-lersek@redhat.com> References: <20201216211125.19496-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 VGhlIHB1cnBvc2Ugb2YgdGhlIGRyaXZlciBpcyB0byBlYXNlIGZpbGUgZXhjaGFuZ2UgKGZpbGUg c2hhcmluZykgYmV0d2Vlbgp0aGUgZ3Vlc3QgZmlybXdhcmUgYW5kIHRoZSB2aXJ0dWFsaXphdGlv biBob3N0LiBUaGUgZHJpdmVyIGlzIHN1cHBvc2VkIHRvCmludGVyb3BlcmF0ZSB3aXRoIFFFTVUn cyAidmlydGlvZnNkIiAoVmlydGlvIEZpbGVzeXN0ZW0gRGFlbW9uKS4KClJlZmVyZW5jZXM6Ci0g aHR0cHM6Ly92aXJ0aW8tZnMuZ2l0bGFiLmlvLwotIGh0dHBzOi8vbGlidmlydC5vcmcva2Jhc2Uv dmlydGlvZnMuaHRtbAoKVmlydGlvRnNEeGUgd2lsbCBiaW5kIHZpcnRpby1mcyBkZXZpY2VzLCBh bmQgcHJvZHVjZQpFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MIGluc3RhbmNlcyBvbiB0 aGVtLgoKSW4gdGhlIGxvbmdlciB0ZXJtLCBhc3N1bWluZyBRRU1VIHdpbGwgY3JlYXRlICJib290 b3JkZXIiIGZ3X2NmZyBmaWxlCmVudHJpZXMgZm9yIHZpcnRpby1mcyBkZXZpY2VzLCBib290aW5n IGd1ZXN0IE9TZXMgZnJvbSBob3N0LXNpZGUKZGlyZWN0b3JpZXMgc2hvdWxkIGJlY29tZSBwb3Nz aWJsZSAoZGVwZW5kZW50IG9uIHRoZSBtYXRjaGluZwpRZW11Qm9vdE9yZGVyTGliIGVuaGFuY2Vt ZW50KS4KCkFkZCB0aGUgc2tlbGV0b24gb2YgdGhlIGRyaXZlci4gSW5zdGFsbCBFRklfRFJJVkVS X0JJTkRJTkdfUFJPVE9DT0wgd2l0aApzdHViIG1lbWJlciBmdW5jdGlvbnMuIEluc3RhbGwgRUZJ X0NPTVBPTkVOVF9OQU1FMl9QUk9UT0NPTCB3aXRoIGZpbmFsCm1lbWJlciBmdW5jdGlvbnMuIFRo aXMgc3VmZmljZXMgZm9yIHRoZSBEUklWRVJTIGNvbW1hbmQgaW4gdGhlIFVFRkkgU2hlbGwKdG8g bGlzdCB0aGUgZHJpdmVyIHdpdGggYSBodW1hbi1yZWFkYWJsZSBuYW1lLgoKVGhlIGZpbGUgcGVy bWlzc2lvbiBtb2RlbCBpcyBkZXNjcmliZWQgaW1tZWRpYXRlbHkgaW4gdGhlIElORiBmaWxlIGFz IGEKY29tbWVudCBibG9jaywgZm9yIGZ1dHVyZSByZWZlcmVuY2UuCgpDYzogQXJkIEJpZXNoZXV2 ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+CkNjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5q dXN0ZW5AaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEByZWRo YXQuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MzA5NwpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPgot LS0KIE92bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjICAgICAgICAgICAgIHwgICAxICsKIE92bWZQa2cv T3ZtZlBrZ0lhMzJYNjQuZHNjICAgICAgICAgIHwgICAxICsKIE92bWZQa2cvT3ZtZlBrZ1g2NC5k c2MgICAgICAgICAgICAgIHwgICAxICsKIE92bWZQa2cvT3ZtZlBrZ0lhMzIuZmRmICAgICAgICAg ICAgIHwgICAxICsKIE92bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZmRmICAgICAgICAgIHwgICAxICsK IE92bWZQa2cvT3ZtZlBrZ1g2NC5mZGYgICAgICAgICAgICAgIHwgICAxICsKIE92bWZQa2cvVmly dGlvRnNEeGUvVmlydGlvRnNEeGUuaW5mIHwgIDkyICsrKysrKysrKysrKysrKysKIE92bWZQa2cv VmlydGlvRnNEeGUvRHJpdmVyQmluZGluZy5jIHwgMTEyICsrKysrKysrKysrKysrKysrKysrCiA4 IGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9P dm1mUGtnSWEzMi5kc2MgYi9Pdm1mUGtnL092bWZQa2dJYTMyLmRzYwppbmRleCA4ZWVkZTc5NmE4 YmQuLjRmZjcwNjc0ZmI2ZSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Pdm1mUGtnSWEzMi5kc2MKKysr IGIvT3ZtZlBrZy9Pdm1mUGtnSWEzMi5kc2MKQEAgLTgwNywxNiArODA3LDE3IEBAIFtDb21wb25l bnRzXQogICB9DQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ByaW50RHhlL1ByaW50RHhlLmlu Zg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL0Rpc2tJb0R4ZS9EaXNrSW9EeGUuaW5m DQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svUGFydGl0aW9uRHhlL1BhcnRpdGlvbkR4 ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRGlzay9SYW1EaXNrRHhlL1JhbURpc2tE eGUuaW5mDQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svVW5pY29kZUNvbGxhdGlvbi9F bmdsaXNoRHhlL0VuZ2xpc2hEeGUuaW5mDQogICBGYXRQa2cvRW5oYW5jZWRGYXREeGUvRmF0Lmlu Zg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VkZkR4ZS9VZGZEeGUuaW5mDQorICBP dm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL0J1cy9T Y3NpL1Njc2lCdXNEeGUvU2NzaUJ1c0R4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9CdXMvU2NzaS9T Y3NpRGlza0R4ZS9TY3NpRGlza0R4ZS5pbmYNCiAgIE92bWZQa2cvU2F0YUNvbnRyb2xsZXJEeGUv U2F0YUNvbnRyb2xsZXJEeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBh c3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuaW5mDQogICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFC dXNEeGUvQXRhQnVzRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvTnZtRXhwcmVzc0R4 ZS9Odm1FeHByZXNzRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9IaWlEYXRhYmFz ZUR4ZS9IaWlEYXRhYmFzZUR4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvU2V0dXBC cm93c2VyRHhlL1NldHVwQnJvd3NlckR4ZS5pbmYNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL092bWZQ a2dJYTMyWDY0LmRzYyBiL092bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZHNjCmluZGV4IGY5ZjgyYTQ4 ZjRiOS4uZDQwYTU5MTgzYzc5IDEwMDY0NAotLS0gYS9Pdm1mUGtnL092bWZQa2dJYTMyWDY0LmRz YworKysgYi9Pdm1mUGtnL092bWZQa2dJYTMyWDY0LmRzYwpAQCAtODIxLDE2ICs4MjEsMTcgQEAg W0NvbXBvbmVudHMuWDY0XQogICB9DQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ByaW50RHhl L1ByaW50RHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL0Rpc2tJb0R4ZS9E aXNrSW9EeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svUGFydGl0aW9uRHhl L1BhcnRpdGlvbkR4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRGlzay9SYW1EaXNr RHhlL1JhbURpc2tEeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svVW5pY29k ZUNvbGxhdGlvbi9FbmdsaXNoRHhlL0VuZ2xpc2hEeGUuaW5mDQogICBGYXRQa2cvRW5oYW5jZWRG YXREeGUvRmF0LmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VkZkR4ZS9VZGZE eGUuaW5mDQorICBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZg0KICAgTWRlTW9k dWxlUGtnL0J1cy9TY3NpL1Njc2lCdXNEeGUvU2NzaUJ1c0R4ZS5pbmYNCiAgIE1kZU1vZHVsZVBr Zy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlza0R4ZS5pbmYNCiAgIE92bWZQa2cvU2F0YUNv bnRyb2xsZXJEeGUvU2F0YUNvbnRyb2xsZXJEeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvQnVzL0F0 YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuaW5mDQogICBNZGVNb2R1bGVQa2cv QnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL0J1cy9QY2kv TnZtRXhwcmVzc0R4ZS9Odm1FeHByZXNzRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9IaWlEYXRhYmFzZUR4ZS9IaWlEYXRhYmFzZUR4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvU2V0dXBCcm93c2VyRHhlL1NldHVwQnJvd3NlckR4ZS5pbmYNCmRpZmYgLS1naXQgYS9P dm1mUGtnL092bWZQa2dYNjQuZHNjIGIvT3ZtZlBrZy9Pdm1mUGtnWDY0LmRzYwppbmRleCBlNTlh ZTA1YjczYWEuLmVjNzg4NjIzNWFjZiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Pdm1mUGtnWDY0LmRz YworKysgYi9Pdm1mUGtnL092bWZQa2dYNjQuZHNjCkBAIC04MTcsMTYgKzgxNywxNyBAQCBbQ29t cG9uZW50c10KICAgfQ0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9QcmludER4ZS9QcmludER4 ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRGlzay9EaXNrSW9EeGUvRGlza0lvRHhl LmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1BhcnRpdGlvbkR4ZS9QYXJ0aXRp b25EeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svUmFtRGlza0R4ZS9SYW1E aXNrRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VuaWNvZGVDb2xsYXRp b24vRW5nbGlzaER4ZS9FbmdsaXNoRHhlLmluZg0KICAgRmF0UGtnL0VuaGFuY2VkRmF0RHhlL0Zh dC5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRGlzay9VZGZEeGUvVWRmRHhlLmluZg0K KyAgT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9C dXMvU2NzaS9TY3NpQnVzRHhlL1Njc2lCdXNEeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvQnVzL1Nj c2kvU2NzaURpc2tEeGUvU2NzaURpc2tEeGUuaW5mDQogICBPdm1mUGtnL1NhdGFDb250cm9sbGVy RHhlL1NhdGFDb250cm9sbGVyRHhlLmluZg0KICAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRh cGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmluZg0KICAgTWRlTW9kdWxlUGtnL0J1cy9BdGEv QXRhQnVzRHhlL0F0YUJ1c0R4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9CdXMvUGNpL052bUV4cHJl c3NEeGUvTnZtRXhwcmVzc0R4ZS5pbmYNCiAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0 YWJhc2VEeGUvSGlpRGF0YWJhc2VEeGUuaW5mDQogICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Nl dHVwQnJvd3NlckR4ZS9TZXR1cEJyb3dzZXJEeGUuaW5mDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9P dm1mUGtnSWEzMi5mZGYgYi9Pdm1mUGtnL092bWZQa2dJYTMyLmZkZgppbmRleCBjMDdiNzc1ZDBh MmQuLmY0MDBjODQ1YjljOSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Pdm1mUGtnSWEzMi5mZGYKKysr IGIvT3ZtZlBrZy9Pdm1mUGtnSWEzMi5mZGYKQEAgLTI4NSwxNiArMjg1LDE3IEBAIFtGVi5EWEVG Vl0KIElORiAgT3ZtZlBrZy9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRHhlLmluZg0KIElO RiAgUnVsZU92ZXJyaWRlPUFDUElUQUJMRSBPdm1mUGtnL0FjcGlUYWJsZXMvQWNwaVRhYmxlcy5p bmYNCiBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQWNwaS9TM1NhdmVTdGF0ZUR4ZS9TM1Nh dmVTdGF0ZUR4ZS5pbmYNCiBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQWNwaS9Cb290U2Ny aXB0RXhlY3V0b3JEeGUvQm9vdFNjcmlwdEV4ZWN1dG9yRHhlLmluZg0KIElORiAgTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9BY3BpL0Jvb3RHcmFwaGljc1Jlc291cmNlVGFibGVEeGUvQm9vdEdyYXBo aWNzUmVzb3VyY2VUYWJsZUR4ZS5pbmYNCiANCiBJTkYgIEZhdFBrZy9FbmhhbmNlZEZhdER4ZS9G YXQuaW5mDQogSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svVWRmRHhlL1VkZkR4ZS5p bmYNCitJTkYgIE92bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaW5mDQogDQogIWlmICQo VE9PTF9DSEFJTl9UQUcpICE9ICJYQ09ERTUiDQogSU5GICBTaGVsbFBrZy9EeW5hbWljQ29tbWFu ZC9UZnRwRHluYW1pY0NvbW1hbmQvVGZ0cER5bmFtaWNDb21tYW5kLmluZg0KIElORiAgU2hlbGxQ a2cvRHluYW1pY0NvbW1hbmQvSHR0cER5bmFtaWNDb21tYW5kL0h0dHBEeW5hbWljQ29tbWFuZC5p bmYNCiBJTkYgIE92bWZQa2cvTGludXhJbml0cmREeW5hbWljU2hlbGxDb21tYW5kL0xpbnV4SW5p dHJkRHluYW1pY1NoZWxsQ29tbWFuZC5pbmYNCiAhZW5kaWYNCiBJTkYgIFNoZWxsUGtnL0FwcGxp Y2F0aW9uL1NoZWxsL1NoZWxsLmluZg0KIA0KZGlmZiAtLWdpdCBhL092bWZQa2cvT3ZtZlBrZ0lh MzJYNjQuZmRmIGIvT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5mZGYKaW5kZXggOWFkZjE1MjVjMTM1 Li5kMDU1NTUyZmQwOWYgMTAwNjQ0Ci0tLSBhL092bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZmRmCisr KyBiL092bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZmRmCkBAIC0yODYsMTYgKzI4NiwxNyBAQCBbRlYu RFhFRlZdCiBJTkYgIE92bWZQa2cvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUR4ZS5pbmYN CiBJTkYgIFJ1bGVPdmVycmlkZT1BQ1BJVEFCTEUgT3ZtZlBrZy9BY3BpVGFibGVzL0FjcGlUYWJs ZXMuaW5mDQogSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0FjcGkvUzNTYXZlU3RhdGVEeGUv UzNTYXZlU3RhdGVEeGUuaW5mDQogSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0FjcGkvQm9v dFNjcmlwdEV4ZWN1dG9yRHhlL0Jvb3RTY3JpcHRFeGVjdXRvckR4ZS5pbmYNCiBJTkYgIE1kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvQWNwaS9Cb290R3JhcGhpY3NSZXNvdXJjZVRhYmxlRHhlL0Jvb3RH cmFwaGljc1Jlc291cmNlVGFibGVEeGUuaW5mDQogDQogSU5GICBGYXRQa2cvRW5oYW5jZWRGYXRE eGUvRmF0LmluZg0KIElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VkZkR4ZS9VZGZE eGUuaW5mDQorSU5GICBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZg0KIA0KICFp ZiAkKFRPT0xfQ0hBSU5fVEFHKSAhPSAiWENPREU1Ig0KIElORiAgU2hlbGxQa2cvRHluYW1pY0Nv bW1hbmQvVGZ0cER5bmFtaWNDb21tYW5kL1RmdHBEeW5hbWljQ29tbWFuZC5pbmYNCiBJTkYgIFNo ZWxsUGtnL0R5bmFtaWNDb21tYW5kL0h0dHBEeW5hbWljQ29tbWFuZC9IdHRwRHluYW1pY0NvbW1h bmQuaW5mDQogSU5GICBPdm1mUGtnL0xpbnV4SW5pdHJkRHluYW1pY1NoZWxsQ29tbWFuZC9MaW51 eEluaXRyZER5bmFtaWNTaGVsbENvbW1hbmQuaW5mDQogIWVuZGlmDQogSU5GICBTaGVsbFBrZy9B cHBsaWNhdGlvbi9TaGVsbC9TaGVsbC5pbmYNCiANCmRpZmYgLS1naXQgYS9Pdm1mUGtnL092bWZQ a2dYNjQuZmRmIGIvT3ZtZlBrZy9Pdm1mUGtnWDY0LmZkZgppbmRleCAxN2JhOWUxNzdhYzMuLjFh MmVmNWJmMmFlMyAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Pdm1mUGtnWDY0LmZkZgorKysgYi9Pdm1m UGtnL092bWZQa2dYNjQuZmRmCkBAIC0yOTUsMTYgKzI5NSwxNyBAQCBbRlYuRFhFRlZdCiBJTkYg IE92bWZQa2cvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUR4ZS5pbmYNCiBJTkYgIFJ1bGVP dmVycmlkZT1BQ1BJVEFCTEUgT3ZtZlBrZy9BY3BpVGFibGVzL0FjcGlUYWJsZXMuaW5mDQogSU5G ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0FjcGkvUzNTYXZlU3RhdGVEeGUvUzNTYXZlU3RhdGVE eGUuaW5mDQogSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0FjcGkvQm9vdFNjcmlwdEV4ZWN1 dG9yRHhlL0Jvb3RTY3JpcHRFeGVjdXRvckR4ZS5pbmYNCiBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvQWNwaS9Cb290R3JhcGhpY3NSZXNvdXJjZVRhYmxlRHhlL0Jvb3RHcmFwaGljc1Jlc291 cmNlVGFibGVEeGUuaW5mDQogDQogSU5GICBGYXRQa2cvRW5oYW5jZWRGYXREeGUvRmF0LmluZg0K IElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VkZkR4ZS9VZGZEeGUuaW5mDQorSU5G ICBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZg0KIA0KICFpZiAkKFRPT0xfQ0hB SU5fVEFHKSAhPSAiWENPREU1Ig0KIElORiAgU2hlbGxQa2cvRHluYW1pY0NvbW1hbmQvVGZ0cER5 bmFtaWNDb21tYW5kL1RmdHBEeW5hbWljQ29tbWFuZC5pbmYNCiBJTkYgIFNoZWxsUGtnL0R5bmFt aWNDb21tYW5kL0h0dHBEeW5hbWljQ29tbWFuZC9IdHRwRHluYW1pY0NvbW1hbmQuaW5mDQogSU5G ICBPdm1mUGtnL0xpbnV4SW5pdHJkRHluYW1pY1NoZWxsQ29tbWFuZC9MaW51eEluaXRyZER5bmFt aWNTaGVsbENvbW1hbmQuaW5mDQogIWVuZGlmDQogSU5GICBTaGVsbFBrZy9BcHBsaWNhdGlvbi9T aGVsbC9TaGVsbC5pbmYNCiANCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRp b0ZzRHhlLmluZiBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaW5mCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjljYjQ0YmM3Yzk2Ci0tLSAvZGV2L251 bGwKKysrIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKQEAgLTAsMCArMSw5 MiBAQAorIyMgQGZpbGUNCisjIFByb3ZpZGUgRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NP TCBpbnN0YW5jZXMgb24gdmlydGlvLWZzIGRldmljZXMuDQorIw0KKyMgQ29weXJpZ2h0IChDKSAy MDIwLCBSZWQgSGF0LCBJbmMuDQorIw0KKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCisjDQorIw0KKyMgUGVybWlzc2lvbiBNb2RlbCBvZiB0aGlzIGRyaXZl cjoNCisjDQorIyBSZWdhcmRsZXNzIG9mIHRoZSBVSUQgYW5kIEdJRCB2YWx1ZXMgdGhpcyBkcml2 ZXIgc2VuZCBpbiB0aGUgRlVTRSByZXF1ZXN0DQorIyBoZWFkZXIsIHRoZSBkYWVtb24gKHRoYXQg aXMsIHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UpIGFsd2F5cyBhY3RzIHdpdGgNCisjIHJv b3QgcHJpdmlsZWdlcyBvbiB0aGUgaG9zdCBzaWRlLiBUaGUgb25seSB0aW1lIHRoZSBkYWVtb24g Y29uc2lkZXJzIHNhaWQgVUlEDQorIyBhbmQgR0lEIGZpZWxkcyBpcyB3aGVuIGNyZWF0aW5nIGEg bmV3IGZpbGUgb3IgZGlyZWN0b3J5LiBUaHVzLCB0aGUgZ3Vlc3QNCisjIGRyaXZlciBjYW5ub3Qg cmVseSBvbiB0aGUgaG9zdCBmb3IgZW5mb3JjaW5nIGFueSBmaWxlIG1vZGUgcGVybWlzc2lvbnMs DQorIyByZWdhcmRsZXNzIG9mIHRoZSAicGVyc29uYWxpdHkiIHRoYXQgdGhlIGd1ZXN0IGRyaXZl ciBwb3NlcyBhcywgYmVjYXVzZQ0KKyMgInJvb3QiIG9uIHRoZSBob3N0IHNpZGUgaWdub3JlcyBh bGwgZmlsZSBtb2RlIGJpdHMuDQorIw0KKyMgVGhlcmVmb3JlIHRoZSBndWVzdCBkcml2ZXIgaGFz IHRvIGRvIGl0cyBvd24gcGVybWlzc2lvbiBjaGVja2luZywgYW5kIHVzZSB0aGUNCisjIGhvc3Qt c2lkZSBmaWxlIG1vZGUgYml0cyBvbmx5IGFzIGEga2luZCBvZiAibWV0YWRhdGEgc3RvcmFnZSIg b3IgInJlbWluZGVyIg0KKyMgLS0gaG9wZWZ1bGx5IGluIGEgd2F5IHRoYXQgbWFrZXMgc29tZSBz ZW5zZSBvbiB0aGUgaG9zdCBzaWRlIHRvby4NCisjDQorIyBUaGUgY29tcGxldGUgbWFwcGluZyBi ZXR3ZWVuIHRoZSBFRklfRklMRV9QUk9UT0NPTCBhbmQgdGhlIGhvc3Qtc2lkZSBmaWxlDQorIyBt b2RlIGJpdHMgaXMgZGVzY3JpYmVkIGJlbG93Lg0KKyMNCisjIC0gVGhlIGd1ZXN0IGRyaXZlciBw b3NlcyBhcyBVSUQgMCwgR0lEIDAsIFBJRCAxLg0KKyMNCisjIC0gSWYgYW5kIG9ubHkgaWYgYWxs ICJ3IiBiaXRzIGFyZSBtaXNzaW5nIGZyb20gYSBmaWxlIG9uIHRoZSBob3N0IHNpZGUsIHRoZW4N CisjICAgdGhlIGZpbGUgb3IgZGlyZWN0b3J5IGlzIHJlcG9ydGVkIGFzIEVGSV9GSUxFX1JFQURf T05MWSBpbiB0aGUgZ3Vlc3QuIFdoZW4NCisjICAgc2V0dGluZyBFRklfRklMRV9SRUFEX09OTFkg aW4gdGhlIGd1ZXN0LCBhbGwgInciIGJpdHMgKDAyMjIpIGFyZSBjbGVhcmVkIG9uDQorIyAgIHRo ZSBob3N0OyB3aGVuIGNsZWFyaW5nIEVGSV9GSUxFX1JFQURfT05MWSBpbiB0aGUgZ3Vlc3QsIGFs bCAidyIgYml0cyBhcmUNCisjICAgc2V0IG9uIHRoZSBob3N0LiBWaWV3ZWQgZnJvbSB0aGUgaG9z dCBzaWRlLCB0aGlzIHNvcnQgb2YgcmVmbGVjdHMgdGhhdCBhbg0KKyMgICBFRklfRklMRV9SRUFE X09OTFkgZmlsZSBzaG91bGQgbm90IGJlIHdyaXR0ZW4gYnkgYW55b25lLg0KKyMNCisjIC0gVGhl IGF0dHJpYnV0ZXMgRUZJX0ZJTEVfSElEREVOLCBFRklfRklMRV9TWVNURU0sIEVGSV9GSUxFX1JF U0VSVkVELCBhbmQNCisjICAgRUZJX0ZJTEVfQVJDSElWRSBhcmUgbmV2ZXIgcmVwb3J0ZWQgaW4g dGhlIGd1ZXN0LCBhbmQgdGhleSBhcmUgc2lsZW50bHkNCisjICAgaWdub3JlZCB3aGVuIGEgU2V0 SW5mbygpIGNhbGwgb3IgYSBmaWxlLWNyZWF0aW5nIE9wZW4oKSBjYWxsIHJlcXVlc3RzIHRoZW0u DQorIw0KKyMgLSBPbiB0aGUgaG9zdCwgZmlsZXMgYXJlIGNyZWF0ZWQgd2l0aCAwNjY2IGZpbGUg bW9kZSBiaXRzLCBkaXJlY3RvcmllcyBhcmUNCisjICAgY3JlYXRlZCB3aXRoIDA3NzcgZmlsZSBt b2RlIGJpdHMuDQorIw0KKyMgLSBJbiB0aGUgZ3Vlc3QsIHRoZSBFRklfRklMRV9SRUFEX09OTFkg YXR0cmlidXRlIG9ubHkgY29udHJvbHMgdGhlIHBlcm1pdHRlZA0KKyMgICBvcGVuIG1vZGUuIElu IHBhcnRpY3VsYXIsIG9uIGRpcmVjdG9yaWVzLCB0aGUgRUZJX0ZJTEVfUkVBRF9PTkxZIGF0dHJp YnV0ZQ0KKyMgICBkb2VzIG5vdCBwcmV2ZW50IHRoZSBjcmVhdGlvbiBvciBkZWxldGlvbiBvZiBl bnRyaWVzIGluc2lkZSB0aGUgZGlyZWN0b3J5Ow0KKyMgICBFRklfRklMRV9SRUFEX09OTFkgb25s eSBwcmV2ZW50cyB0aGUgcmVuYW1pbmcsIGRlbGV0aW5nLCBmbHVzaGluZyAoc3luY2luZykNCisj ICAgYW5kIHRvdWNoaW5nIG9mIHRoZSBkaXJlY3RvcnkgaXRzZWxmICh3aXRoICJ0b3VjaGluZyIg bWVhbmluZyB1cGRhdGluZyB0aGUNCisjICAgdGltZXN0YW1wcykuIFRoZSBmYWN0IHRoYXQgRUZJ X0ZJTEVfUkVBRF9PTkxZIGJlaW5nIHNldCBvbiBhIGRpcmVjdG9yeSBpcw0KKyMgICBpcnJlbGV2 YW50IGluIHRoZSBndWVzdCB3aXRoIHJlZ2FyZCB0byBlbnRyeSBjcmVhdGlvbi9kZWxldGlvbiwg aXMNCisjICAgd2VsbC1taXJyb3JlZCBieSB0aGUgZmFjdCB0aGF0IHZpcnRpb2ZzZCAtLSB3aGlj aCBydW5zIGFzIHJvb3QsIHJlZ2FyZGxlc3MNCisjICAgb2YgZ3Vlc3QgZHJpdmVyIHBlcnNvbmFs aXR5IC0tIGlnbm9yZXMgdGhlIGFic2VuY2Ugb2YgInciIHBlcm1pc3Npb25zIG9uIGENCisjICAg aG9zdC1zaWRlIGRpcmVjdG9yeSwgd2hlbiBjcmVhdGluZyBvciByZW1vdmluZyBlbnRyaWVzIGlu IGl0Lg0KKyMNCisjIC0gV2hlbiBhbiBFRklfRklMRV9QUk9UT0NPTCBpcyBvcGVuZWQgcmVhZC1v bmx5LCB0aGVuIHRoZSBEZWxldGUoKSwgV3JpdGUoKQ0KKyMgICBhbmQgRmx1c2goKSBtZW1iZXIg ZnVuY3Rpb25zIGFyZSBkaXNhYmxlZCBmb3IgaXQuIEFkZGl0aW9uYWxseSwgU2V0SW5mbygpDQor IyAgIGlzIHJlc3RyaWN0ZWQgdG8gZmxpcHBpbmcgdGhlIEVGSV9GSUxFX1JFQURfT05MWSBiaXQg KHdoaWNoIHRha2VzIGVmZmVjdCBhdA0KKyMgICB0aGUgbmV4dCBPcGVuKCkpLg0KKyMNCisjIC0g QXMgYSBjb25zZXF1ZW5jZSBvZiB0aGUgYWJvdmUsIGZvciBkZWxldGluZyBhIGRpcmVjdG9yeSwg aXQgbXVzdCBiZQ0KKyMgICBwcmVzZW50ZWQgaW4gdGhlIGd1ZXN0IGFzIG9wZW5hYmxlIGZvciB3 cml0aW5nLg0KKyMNCisjIC0gV2UgZGl2ZXJnZSBmcm9tIHRoZSBVRUZJIHNwZWMsIGFuZCBwZXJt aXQgRmx1c2goKSBvbiBhIGRpcmVjdG9yeSB0aGF0IGhhcw0KKyMgICBiZWVuIG9wZW5lZCByZWFk LXdyaXRlOyBvdGhlcndpc2UgdGhlIG9ubHkgd2F5IHRvIGludm9rZSBGVVNFX0ZTWU5DRElSIG9u IGENCisjICAgZGlyZWN0b3J5IHdvdWxkIGJlIHRvIENsb3NlKCkgaXQuDQorIw0KKyMgLSBPcGVu Vm9sdW1lKCkgb3BlbnMgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciByZWFkLW9ubHkgYWNjZXNzLiBU aGUgT3BlbigpDQorIyAgIG1lbWJlciBmdW5jdGlvbiBtYXkgb3BlbiBpdCBmb3IgcmVhZC13cml0 ZSBhY2Nlc3MuIFdoaWxlIHRoZSByb290IGRpcmVjdG9yeQ0KKyMgICBjYW5ub3QgYmUgcmVuYW1l ZCBvciBkZWxldGVkLCBvcGVuaW5nIGl0IGZvciByZWFkLXdyaXRlIGFjY2VzcyBpcyB1c2VmdWwN CisjICAgZm9yIGNhbGxpbmcgRmx1c2goKSwgYWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91cyBwYXJh Z3JhcGgsIG9yIGZvciB1cGRhdGluZw0KKyMgICB0aGUgcm9vdCBkaXJlY3RvcnkncyB0aW1lc3Rh bXBzIHdpdGggU2V0SW5mbygpLg0KKyMjDQorDQorW0RlZmluZXNdDQorICBJTkZfVkVSU0lPTiAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gMS4yOQ0KKyAgQkFTRV9OQU1FICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9IFZpcnRpb0ZzRHhlDQorICBGSUxFX0dVSUQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gN0JEOURERjctOEI4My00ODhFLUFFQzktMjRDNzg2MTAyODlDDQor ICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUVGSV9EUklWRVINCisg IEVOVFJZX1BPSU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBWaXJ0aW9Gc0VudHJ5UG9p bnQNCisNCitbUGFja2FnZXNdDQorICBNZGVQa2cvTWRlUGtnLmRlYw0KKw0KK1tTb3VyY2VzXQ0K KyAgRHJpdmVyQmluZGluZy5jDQorDQorW0xpYnJhcnlDbGFzc2VzXQ0KKyAgQmFzZUxpYg0KKyAg VWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliDQorICBVZWZpRHJpdmVyRW50cnlQb2ludA0KKw0KK1tQ cm90b2NvbHNdDQorICBnRWZpQ29tcG9uZW50TmFtZTJQcm90b2NvbEd1aWQgICAgICAgICMjIFBS T0RVQ0VTDQorICBnRWZpRHJpdmVyQmluZGluZ1Byb3RvY29sR3VpZCAgICAgICAgICMjIFBST0RV Q0VTDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9Ecml2ZXJCaW5kaW5nLmMgYi9P dm1mUGtnL1ZpcnRpb0ZzRHhlL0RyaXZlckJpbmRpbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmFjMGE2MzMwZjAxYgotLS0gL2Rldi9udWxsCisrKyBiL092bWZQ a2cvVmlydGlvRnNEeGUvRHJpdmVyQmluZGluZy5jCkBAIC0wLDAgKzEsMTEyIEBACisvKiogQGZp bGUNCisgIFByb3ZpZGUgRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NPTCBpbnN0YW5jZXMg b24gdmlydGlvLWZzIGRldmljZXMuDQorDQorICBDb3B5cmlnaHQgKEMpIDIwMjAsIFJlZCBIYXQs IEluYy4NCisNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQorKiovDQorDQorI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPiAgICAgICAgICAgICAgICAg IC8vIEFzY2lpU3RyQ21wKCkNCisjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFi bGVMaWIuaD4gLy8gZ0JTDQorI2luY2x1ZGUgPFByb3RvY29sL0NvbXBvbmVudE5hbWUyLmg+ICAg ICAgICAgIC8vIEVGSV9DT01QT05FTlRfTkFNRTJfUFJPVE9DT0wNCisjaW5jbHVkZSA8UHJvdG9j b2wvRHJpdmVyQmluZGluZy5oPiAgICAgICAgICAgLy8gRUZJX0RSSVZFUl9CSU5ESU5HX1BST1RP Q09MDQorDQorLy8NCisvLyBVRUZJIERyaXZlciBNb2RlbCBwcm90b2NvbCBpbnN0YW5jZXMuDQor Ly8NCitTVEFUSUMgRUZJX0RSSVZFUl9CSU5ESU5HX1BST1RPQ09MICBtRHJpdmVyQmluZGluZzsN CitTVEFUSUMgRUZJX0NPTVBPTkVOVF9OQU1FMl9QUk9UT0NPTCBtQ29tcG9uZW50TmFtZTI7DQor DQorLy8NCisvLyBVRUZJIERyaXZlciBNb2RlbCBwcm90b2NvbCBtZW1iZXIgZnVuY3Rpb25zLg0K Ky8vDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRpb0ZzQmluZGluZ1N1cHBvcnRlZCAoDQor ICBJTiBFRklfRFJJVkVSX0JJTkRJTkdfUFJPVE9DT0wgKlRoaXMsDQorICBJTiBFRklfSEFORExF ICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCisgIElOIEVGSV9ERVZJQ0VfUEFU SF9QUk9UT0NPTCAgICAqUmVtYWluaW5nRGV2aWNlUGF0aCBPUFRJT05BTA0KKyAgKQ0KK3sNCisg IHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQorfQ0KKw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitW aXJ0aW9Gc0JpbmRpbmdTdGFydCAoDQorICBJTiBFRklfRFJJVkVSX0JJTkRJTkdfUFJPVE9DT0wg KlRoaXMsDQorICBJTiBFRklfSEFORExFICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckhhbmRs ZSwNCisgIElOIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgICAqUmVtYWluaW5nRGV2aWNlUGF0 aCBPUFRJT05BTA0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfREVWSUNFX0VSUk9SOw0KK30NCisN CitFRklfU1RBVFVTDQorRUZJQVBJDQorVmlydGlvRnNCaW5kaW5nU3RvcCAoDQorICBJTiBFRklf RFJJVkVSX0JJTkRJTkdfUFJPVE9DT0wgKlRoaXMsDQorICBJTiBFRklfSEFORExFICAgICAgICAg ICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCisgIElOIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICBOdW1iZXJPZkNoaWxkcmVuLA0KKyAgSU4gRUZJX0hBTkRMRSAgICAgICAgICAgICAgICAg ICpDaGlsZEhhbmRsZUJ1ZmZlciBPUFRJT05BTA0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfREVW SUNFX0VSUk9SOw0KK30NCisNCitFRklfU1RBVFVTDQorRUZJQVBJDQorVmlydGlvRnNHZXREcml2 ZXJOYW1lICgNCisgIElOICBFRklfQ09NUE9ORU5UX05BTUUyX1BST1RPQ09MICpUaGlzLA0KKyAg SU4gIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAgKkxhbmd1YWdlLA0KKyAgT1VUIENIQVIx NiAgICAgICAgICAgICAgICAgICAgICAgKipEcml2ZXJOYW1lDQorICApDQorew0KKyAgaWYgKEFz Y2lpU3RyQ21wIChMYW5ndWFnZSwgImVuIikgIT0gMCkgew0KKyAgICByZXR1cm4gRUZJX1VOU1VQ UE9SVEVEOw0KKyAgfQ0KKyAgKkRyaXZlck5hbWUgPSBMIlZpcnRpbyBGaWxlc3lzdGVtIERyaXZl ciI7DQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQorfQ0KKw0KK0VGSV9TVEFUVVMNCitFRklBUEkN CitWaXJ0aW9Gc0dldENvbnRyb2xsZXJOYW1lICgNCisgIElOICBFRklfQ09NUE9ORU5UX05BTUUy X1BST1RPQ09MICpUaGlzLA0KKyAgSU4gIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgQ29u dHJvbGxlckhhbmRsZSwNCisgIElOICBFRklfSEFORExFICAgICAgICAgICAgICAgICAgIENoaWxk SGFuZGxlIE9QVElPTkFMLA0KKyAgSU4gIENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAgKkxh bmd1YWdlLA0KKyAgT1VUIENIQVIxNiAgICAgICAgICAgICAgICAgICAgICAgKipDb250cm9sbGVy TmFtZQ0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQorfQ0KKw0KKy8vDQor Ly8gRW50cnkgcG9pbnQgb2YgdGhpcyBkcml2ZXIuDQorLy8NCitFRklfU1RBVFVTDQorRUZJQVBJ DQorVmlydGlvRnNFbnRyeVBvaW50ICgNCisgIElOIEVGSV9IQU5ETEUgICAgICAgSW1hZ2VIYW5k bGUsDQorICBJTiBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZQ0KKyAgKQ0KK3sNCisgIEVG SV9TVEFUVVMgU3RhdHVzOw0KKw0KKyAgbURyaXZlckJpbmRpbmcuU3VwcG9ydGVkICAgICAgICAg ICA9IFZpcnRpb0ZzQmluZGluZ1N1cHBvcnRlZDsNCisgIG1Ecml2ZXJCaW5kaW5nLlN0YXJ0ICAg ICAgICAgICAgICAgPSBWaXJ0aW9Gc0JpbmRpbmdTdGFydDsNCisgIG1Ecml2ZXJCaW5kaW5nLlN0 b3AgICAgICAgICAgICAgICAgPSBWaXJ0aW9Gc0JpbmRpbmdTdG9wOw0KKyAgbURyaXZlckJpbmRp bmcuVmVyc2lvbiAgICAgICAgICAgICA9IDB4MTA7DQorICBtRHJpdmVyQmluZGluZy5JbWFnZUhh bmRsZSAgICAgICAgID0gSW1hZ2VIYW5kbGU7DQorICBtRHJpdmVyQmluZGluZy5Ecml2ZXJCaW5k aW5nSGFuZGxlID0gSW1hZ2VIYW5kbGU7DQorDQorICBtQ29tcG9uZW50TmFtZTIuR2V0RHJpdmVy TmFtZSAgICAgID0gVmlydGlvRnNHZXREcml2ZXJOYW1lOw0KKyAgbUNvbXBvbmVudE5hbWUyLkdl dENvbnRyb2xsZXJOYW1lICA9IFZpcnRpb0ZzR2V0Q29udHJvbGxlck5hbWU7DQorICBtQ29tcG9u ZW50TmFtZTIuU3VwcG9ydGVkTGFuZ3VhZ2VzID0gImVuIjsNCisNCisgIFN0YXR1cyA9IGdCUy0+ SW5zdGFsbE11bHRpcGxlUHJvdG9jb2xJbnRlcmZhY2VzICgmSW1hZ2VIYW5kbGUsDQorICAgICAg ICAgICAgICAgICAgJmdFZmlEcml2ZXJCaW5kaW5nUHJvdG9jb2xHdWlkLCAmbURyaXZlckJpbmRp bmcsDQorICAgICAgICAgICAgICAgICAgJmdFZmlDb21wb25lbnROYW1lMlByb3RvY29sR3VpZCwg Jm1Db21wb25lbnROYW1lMiwgTlVMTCk7DQorICByZXR1cm4gU3RhdHVzOw0KK30NCi0tIAoyLjE5 LjEuMy5nMzAyNDdhYTVkMjAxCgoK