<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>184277</bug_id>
          
          <creation_ts>2018-04-03 12:55:12 -0700</creation_ts>
          <short_desc>REGRESSION(r230210): it is breaking internal bots (Requested by youenn on #webkit).</short_desc>
          <delta_ts>2018-04-03 12:59:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>184205</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1411528</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-03 12:55:12 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/230210 broke the build:
it is breaking internal bots (Requested by youenn on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411530</commentid>
    <comment_count>1</comment_count>
      <attachid>337103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-03 12:55:25 -0700</bug_when>
    <thetext>Created attachment 337103
ROLLOUT of r230210

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411531</commentid>
    <comment_count>2</comment_count>
      <attachid>337103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-03 12:58:14 -0700</bug_when>
    <thetext>Comment on attachment 337103
ROLLOUT of r230210

Clearing flags on attachment: 337103

Committed r230218: &lt;https://trac.webkit.org/changeset/230218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411532</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-03 12:58:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411535</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-03 12:59:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/39151245&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337103</attachid>
            <date>2018-04-03 12:55:25 -0700</date>
            <delta_ts>2018-04-03 12:58:14 -0700</delta_ts>
            <desc>ROLLOUT of r230210</desc>
            <filename>bug-184277-20180403155525.patch</filename>
            <type>text/plain</type>
            <size>73755</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4N2M3MGY3YWQ5Mjk1ZGFh
MzQ0YjA4NGEzYzFiYmVlMDI4NDQ4ZTcuLmQ2NzBhZDk2MzY2YWFjZTQ2YzYzMGVkZDhjNjYwZmZm
ZDNjNDBkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMDMgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMzAyMTAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODQyNzcKKworICAgICAgICBpdCBpcyBicmVha2luZyBpbnRlcm5hbCBib3Rz
IChSZXF1ZXN0ZWQgYnkgeW91ZW5uIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiTWFrZSBOZXR3b3JrUHJvY2VzcyBnZXQgQ29udGVudEJsb2Nr
ZXIgaW5mb3JtYXRpb24gZnJvbQorICAgICAgICBVSVByb2Nlc3MiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyMDUKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDIxMAorCiAyMDE4LTA0LTAzICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtFeHRyYSB6b29tIG1vZGVd
IFVwZGF0ZSB0aW1lIHBpY2tlciB0byB1c2UgcGxhdGZvcm0gdmlldyBjb250cm9sbGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhNWI5ZjFkZTliYmFiNjczZjMzMjY0NGUyZWRiMWE3Nzc2N2MzODkz
Li42MGU5MmI3ZTczOTAzNGQ5YTc4ZDIzNTFiMjk4Mjc2ZDRlMDUxZDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKQEAgLTEwNyw3ICsxMDcsNiBAQCBzZXQoV2ViS2l0X1NPVVJDRVMKIAogICAgIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKICAgICBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKLSAgICBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxv
Yi5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTYyMCw3ICs2MTks
NiBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAKICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgotICAgIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KICAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggNGY1NjRkNTg5Nzg3NWNjMjYzYTg2OGE0NTQxZmVkYmE0ZGI4YjUxYS4uMjI4MDQwMDBmOWI5
MzYxZDU2ODRmYmIwMzg3NjQ3YzUyZmU2NDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTE1LDcgKzExNSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIE5ldHdvcmtS
VENTb2NrZXQgXAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBcCiAgICAgTmV0d29ya1NvY2tl
dFN0cmVhbSBcCi0gICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgXAogICAgIFBsdWdp
bkNvbnRyb2xsZXJQcm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODUyM2UwMzNmN2RmYzgyYmY3ZTdmZWZhZDQxNjVkMzljOGNhMTJkZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmgiCi0KLSNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIK
LSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLU5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpID0gZGVmYXVsdDsKLU5ldHdvcmtDb250ZW50UnVs
ZUxpc3RNYW5hZ2VyOjp+TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKQotewotICAgIGF1
dG8gcGVuZGluZ0NhbGxiYWNrcyA9IFdURk1vdmUobV9wZW5kaW5nQ2FsbGJhY2tzKTsKLSAgICBp
ZiAocGVuZGluZ0NhbGxiYWNrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFja2Vu
ZDsKLSAgICBmb3IgKGF1dG8mIGNhbGxiYWNrcyA6IHBlbmRpbmdDYWxsYmFja3MudmFsdWVzKCkp
IHsKLSAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykKLSAgICAgICAgICAg
IGNhbGxiYWNrKGJhY2tlbmQpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlcjo6Y29udGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGxl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgQmFja2VuZENhbGxiYWNrJiYgY2FsbGJhY2spCi17Ci0g
ICAgYXV0byBpdGVyYXRvciA9IG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLmZpbmQoaWRlbnRp
Zmllcik7Ci0gICAgaWYgKGl0ZXJhdG9yICE9IG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLmVu
ZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrKCppdGVyYXRvci0+dmFsdWUpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIG1fcGVuZGluZ0NhbGxiYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgW10g
ewotICAgICAgICByZXR1cm4gVmVjdG9yPEJhY2tlbmRDYWxsYmFjaz4geyB9OwotICAgIH0pLml0
ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwotICAgIE5ldHdvcmtQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpDb250ZW50RXh0ZW5zaW9uUnVsZXMgeyBpZGVudGlmaWVy
IH0sIDApOwotfQotCi12b2lkIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjphZGRDb250
ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YT4+JiBjb250ZW50UnVsZUxpc3RzKQotewotICAgIGF1dG8mIGJhY2tlbmQgPSAqbV9jb250
ZW50RXh0ZW5zaW9uQmFja2VuZHMuZW5zdXJlKGlkZW50aWZpZXIsIFtdIHsKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25zQmFja2VuZD4oKTsKLSAgICB9KS5pdGVyYXRvci0+dmFsdWU7Ci0KLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIGNvbnRlbnRSdWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMpIHsKLSAgICAg
ICAgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhIGNvbnRlbnRSdWxlTGlzdERhdGEgPSBj
b250ZW50UnVsZUxpc3Quc2Vjb25kOwotICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRS
dWxlTGlzdERhdGEpKTsKLSAgICAgICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKGNvbnRl
bnRSdWxlTGlzdC5maXJzdCwgV1RGTW92ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdCkpOwotICAg
IH0KLQotICAgIGF1dG8gcGVuZGluZ0NhbGxiYWNrcyA9IG1fcGVuZGluZ0NhbGxiYWNrcy50YWtl
KGlkZW50aWZpZXIpOwotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBwZW5kaW5nQ2FsbGJhY2tz
KQotICAgICAgICBjYWxsYmFjayhiYWNrZW5kKTsKLQotfQotCi12b2lkIE5ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyOjpyZW1vdmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9s
bGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgYXV0
byBpdGVyYXRvciA9IG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLmZpbmQoaWRlbnRpZmllcik7
Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLmVuZCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpdGVyYXRvci0+dmFsdWUtPnJlbW92ZUNvbnRlbnRFeHRl
bnNpb24obmFtZSk7Ci19Ci0KLXZvaWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OnJl
bW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQotewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NvbnRlbnRFeHRlbnNpb25CYWNr
ZW5kcy5maW5kKGlkZW50aWZpZXIpOwotICAgIGlmIChpdGVyYXRvciA9PSBtX2NvbnRlbnRFeHRl
bnNpb25CYWNrZW5kcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaXRlcmF0b3ItPnZh
bHVlLT5yZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9ucygpOwotfQotCi12b2lkIE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyOjpyZW1vdmUoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQotewotICAgIG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLnJlbW92ZShp
ZGVudGlmaWVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwZjc2Y2UyNTlhYTczNjRkYzBlNzYxMmUwZGQzMzk2OWE2NmUw
Nzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0KLSNpbmNsdWRlICJVc2VyQ29udGVu
dENvbnRyb2xsZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50UHJvdmlkZXIuaD4KLQotbmFtZXNwYWNl
IElQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotY2xhc3MgRGVjb2RlcjsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIHsKLXB1Ymxp
YzoKLSAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpOwotICAgIH5OZXR3b3JrQ29u
dGVudFJ1bGVMaXN0TWFuYWdlcigpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQotICAgIHVzaW5nIEJhY2tlbmRDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNv
bnRlbnRFeHRlbnNpb25zQmFja2VuZCYpPjsKLSAgICB2b2lkIGNvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZChVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBCYWNrZW5kQ2FsbGJhY2smJik7
Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50Q29u
dHJvbGxlcklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYpOwotICAgIHZvaWQgcmVtb3ZlQ29udGVudFJ1bGVM
aXN0KFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7
Ci0gICAgdm9pZCByZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50Q29udHJvbGxl
cklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3ZlKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXIpOwotCi0gICAgSGFzaE1hcDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25zQmFja2VuZD4+IG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzOwotICAgIEhhc2hNYXA8VXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgVmVjdG9yPEJhY2tlbmRDYWxsYmFjaz4+IG1f
cGVuZGluZ0NhbGxiYWNrczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTAxNjQxNmY0
ZjM0NjE2NjZlZjI3MWI2ZjU5NDVhYTIxYThiMDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwz
MiArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
Ci0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotCi1tZXNzYWdlcyAtPiBOZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlciB7Ci0gICAgUmVtb3ZlKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIEFkZENvbnRlbnRSdWxlTGlzdHMoV2ViS2l0OjpV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+IGNvbnRl
bnRGaWx0ZXJzKQotICAgIFJlbW92ZUNvbnRlbnRSdWxlTGlzdChXZWJLaXQ6OlVzZXJDb250ZW50
Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUpCi0gICAgUmVtb3Zl
QWxsQ29udGVudFJ1bGVMaXN0cyhXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggZTRlNzEzZjcyMWIzZTAyZGYx
YTNhZTY2Mzc0Njc4ZTIzMDA3ZmVmYi4uYTE0NWU4MTNmZjRhYWQzZjFmNzViYWJlZjJkYTk4Y2Iy
NmM2ZDQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcApAQCAtMjgsOSArMjgsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIgotI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCIK
LSNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmg+CkBAIC05NywyMCArOTUsMTIgQEAgTmV0d29ya0xvYWRDaGVja2VyOjpSZXF1
ZXN0T3JFcnJvciBOZXR3b3JrTG9hZENoZWNrZXI6OnJldHVybkVycm9yKFN0cmluZyYmIGVycm8K
IHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgVmFsaWRhdGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCi0gICAgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQo
V1RGTW92ZShyZXF1ZXN0KSwgW3RoaXMsIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXShhdXRv
JiYgcmVxdWVzdCwgYXV0byBzdGF0dXMpIG11dGFibGUgewotICAgICAgICBpZiAoc3RhdHVzLmJs
b2NrZWRMb2FkKSB7Ci0gICAgICAgICAgICBoYW5kbGVyKHRoaXMtPnJldHVybkVycm9yKEFTQ0lJ
TGl0ZXJhbCgiQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbiIpKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy0+Y29udGludWVDaGVja2luZ1JlcXVlc3Qo
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgfSk7Ci0jZWxzZQotICAg
IGNvbnRpbnVlQ2hlY2tpbmdSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoaGFuZGxl
cikpOworICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChyZXF1ZXN0
KS5ibG9ja2VkTG9hZCkgeworICAgICAgICBoYW5kbGVyKHJldHVybkVycm9yKEFTQ0lJTGl0ZXJh
bCgiQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbiIpKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAjZW5kaWYKLX0KIAotdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRpbnVlQ2hlY2tp
bmdSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFZhbGlkYXRpb25IYW5kbGVyJiYg
aGFuZGxlcikKLXsKICAgICBpZiAoYXV0byogY29udGVudFNlY3VyaXR5UG9saWN5ID0gdGhpcy0+
Y29udGVudFNlY3VyaXR5UG9saWN5KCkpIHsKICAgICAgICAgaWYgKGlzUmVkaXJlY3RlZCgpKSB7
CiAgICAgICAgICAgICBVUkwgdXJsID0gcmVxdWVzdC51cmwoKTsKQEAgLTIzOSwxOCArMjI5LDIx
IEBAIENvbnRlbnRTZWN1cml0eVBvbGljeSogTmV0d29ya0xvYWRDaGVja2VyOjpjb250ZW50U2Vj
dXJpdHlQb2xpY3koKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
LXZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9y
TG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tl
ZFN0YXR1cyYpPiYmIGNhbGxiYWNrKQorQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25zQmFja2VuZCYgTmV0d29ya0xvYWRDaGVja2VyOjpjb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQo
KQogewotICAgIGlmICghbV91c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKSB7Ci0gICAg
ICAgIENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja2VkU3RhdHVzIHN0YXR1czsKLSAgICAgICAgY2Fs
bGJhY2soV1RGTW92ZShyZXF1ZXN0KSwgc3RhdHVzKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlm
ICghbV9jb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQpIHsKKyAgICAgICAgbV9jb250ZW50RXh0ZW5z
aW9uc0JhY2tlbmQgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQ+KCk7CisgICAgICAgIGZvciAoYXV0byYgcGFpciA6IG1fY29udGVu
dFJ1bGVMaXN0cykKKyAgICAgICAgICAgIG1fY29udGVudEV4dGVuc2lvbnNCYWNrZW5kLT5hZGRD
b250ZW50RXh0ZW5zaW9uKHBhaXIuZmlyc3QsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojpj
cmVhdGUoV1RGTW92ZShwYWlyLnNlY29uZCkpKTsKICAgICB9Ci0gICAgTmV0d29ya1Byb2Nlc3M6
OnNpbmdsZXRvbigpLm5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkuY29udGVudEV4dGVu
c2lvbnNCYWNrZW5kKCptX3VzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3Qp
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiBiYWNrZW5kKSBtdXRhYmxlIHsK
LSAgICAgICAgYXV0byBzdGF0dXMgPSBiYWNrZW5kLnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVs
ZXNGb3JQaW5nTG9hZChyZXF1ZXN0LnVybCgpLCBtX21haW5Eb2N1bWVudFVSTCk7Ci0gICAgICAg
IGFwcGx5QmxvY2tlZFN0YXR1c1RvUmVxdWVzdChzdGF0dXMsIG51bGxwdHIsIHJlcXVlc3QpOwot
ICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlcXVlc3QpLCBzdGF0dXMpOwotICAgIH0pOworICAg
IHJldHVybiAqbV9jb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ7Cit9CisKK0NvbnRlbnRFeHRlbnNp
b25zOjpCbG9ja2VkU3RhdHVzIE5ldHdvcmtMb2FkQ2hlY2tlcjo6cHJvY2Vzc0NvbnRlbnRFeHRl
bnNpb25SdWxlc0ZvckxvYWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGF1dG8g
c3RhdHVzID0gY29udGVudEV4dGVuc2lvbnNCYWNrZW5kKCkucHJvY2Vzc0NvbnRlbnRFeHRlbnNp
b25SdWxlc0ZvclBpbmdMb2FkKHJlcXVlc3QudXJsKCksIG1fbWFpbkRvY3VtZW50VVJMKTsKKyAg
ICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVlc3Qoc3RhdHVzLCBudWxscHRyLCByZXF1ZXN0KTsK
KyAgICByZXR1cm4gc3RhdHVzOwogfQogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lP
TlMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5oCmluZGV4IDAzMmQ1ZjQzODczZGNlZWJjY2VmNDJmMzU1OWZjNTllMmM1ZjY0ZTAuLmVj
ZmI1ZWI1YmNhNzdjMjdlMWQ0YWNkODJiOGI5YzhhMjllZDQ0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMjUsOCArMjUs
OCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNDAsMTIgKzQwLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
cjsKIAotY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29y
a0xvYWRDaGVja2VyPiB7CitjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8TmV0d29ya0xvYWRDaGVja2VyPiBjcmVhdGUoV2ViQ29yZTo6RmV0Y2hPcHRp
b25zOjpNb2RlIG1vZGUsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxIZWFkZXJzLCBX
ZWJDb3JlOjpVUkwmJiB1cmwsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3Vy
Y2VPcmlnaW4pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrTG9h
ZENoZWNrZXIgeyBtb2RlLCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBzZXNzaW9uSUQsIFdURk1vdmUob3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwp
LCBXVEZNb3ZlKHNvdXJjZU9yaWdpbikgfSk7Ci0gICAgfQorICAgIE5ldHdvcmtMb2FkQ2hlY2tl
cihXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Ok1vZGUsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3Rz
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUEFMOjpTZXNzaW9uSUQsIFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAmJiwgV2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJik7CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCiAgICAgdXNpbmcg
UmVxdWVzdE9yRXJyb3IgPSBFeHBlY3RlZDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+OwpAQCAtNTUsMTAgKzUyLDEwIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0Q1NQUmVzcG9uc2VIZWFkZXJzKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYmIGhlYWRlcnMpIHsgbV9jc3BSZXNwb25zZUhlYWRlcnMgPSBXVEZNb3Zl
KGhlYWRlcnMpOyB9CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICB2b2lkIHNl
dENvbnRlbnRFeHRlbnNpb25Db250cm9sbGVyKFdlYkNvcmU6OlVSTCYmIG1haW5Eb2N1bWVudFVS
TCwgc3RkOjpvcHRpb25hbDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyPiBpZGVudGlm
aWVyKQorICAgIHZvaWQgc2V0Q29udGVudEV4dGVuc2lvblJ1bGVMaXN0cyhXZWJDb3JlOjpVUkwm
JiBtYWluRG9jdW1lbnRVUkwsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE+PiYmIGNvbnRlbnRSdWxlTGlzdHMpCiAgICAgewogICAgICAgICBt
X21haW5Eb2N1bWVudFVSTCA9IFdURk1vdmUobWFpbkRvY3VtZW50VVJMKTsKLSAgICAgICAgbV91
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICAgICAgbV9j
b250ZW50UnVsZUxpc3RzID0gV1RGTW92ZShjb250ZW50UnVsZUxpc3RzKTsKICAgICB9CiAjZW5k
aWYKIApAQCAtNjYsMTYgKzYzLDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrTG9hZENo
ZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlLCBib29sIHNob3VsZEZvbGxvd1JlZGly
ZWN0cywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdlYkNvcmU6OlVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYpOwotCiAgICAgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdDsKICAgICBib29sIGlzQ2hlY2tpbmcoKSBj
b25zdCB7IHJldHVybiAhIW1fY29yc1ByZWZsaWdodENoZWNrZXI7IH0KICAgICBib29sIGlzUmVk
aXJlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3VudDsgfQogCiAgICAgdm9pZCBj
aGVja1JlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFZhbGlkYXRpb25IYW5kbGVy
JiYpOwogCi0gICAgdm9pZCBjb250aW51ZUNoZWNraW5nUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgVmFsaWRhdGlvbkhhbmRsZXImJik7Ci0KICAgICBib29sIGRvZXNOb3ROZWVk
Q09SU0NoZWNrKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGNvbnN0OwogICAgIHZvaWQgY2hlY2tDT1JT
UmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgVmFsaWRhdGlvbkhhbmRsZXImJik7
CiAgICAgdm9pZCBjaGVja0NPUlNSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgVmFsaWRhdGlvbkhhbmRsZXImJik7CkBAIC04NCw3ICs3Nyw4IEBAIHByaXZhdGU6
CiAgICAgUmVxdWVzdE9yRXJyb3IgcmV0dXJuRXJyb3IoU3RyaW5nJiYgZXJyb3IpOwogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICB2b2lkIHByb2Nlc3NDb250ZW50RXh0ZW5z
aW9uUnVsZXNGb3JMb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6QmxvY2tlZFN0YXR1cyYpPiYmKTsKKyAgICBXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kJiBjb250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQoKTsKKyAgICBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tlZFN0YXR1cyBw
cm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKICNlbmRpZgogCiAgICAgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpNb2RlIG1fbW9kZTsK
QEAgLTk4LDEzICs5MiwxNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzPiBtX2NzcFJlc3BvbnNlSGVhZGVy
czsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIFdlYkNvcmU6OlVSTCBtX21h
aW5Eb2N1bWVudFVSTDsKLSAgICBzdGQ6Om9wdGlvbmFsPFVzZXJDb250ZW50Q29udHJvbGxlcklk
ZW50aWZpZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcjsKKyAgICBWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4gbV9jb250
ZW50UnVsZUxpc3RzOwogI2VuZGlmCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyPiBtX2NvcnNQcmVmbGlnaHRDaGVja2VyOwogICAgIGJvb2wgbV9pc1Nh
bWVPcmlnaW5SZXF1ZXN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1NpbXBsZVJlcXVlc3QgeyB0
cnVlIH07CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudFNlY3Vy
aXR5UG9saWN5PiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeTsKKyNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kPiBtX2NvbnRlbnRFeHRlbnNpb25zQmFja2VuZDsK
KyNlbmRpZgogICAgIHNpemVfdCBtX3JlZGlyZWN0Q291bnQgeyAwIH07CiAgICAgV2ViQ29yZTo6
VVJMIG1fcHJldmlvdXNVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA3OTc3ZGExMzIwNTY1MDViOGQwMzdkY2NhNGQxMzY4
YzgzZWMxMWZmLi4xYzU1ODhlNzk0MzQ5OGZhNDE5NzQ0YTgyOWU4Yjc0NDRmMzgzMDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MzksNyArMzksNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQmxv
YlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
LSNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgpAQCAtMTcyLDEzICsxNzEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
LSAgICAgICAgbV9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgot
CiAgICAgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CmluZGV4IGNlNDEyYjQ1OTI4NmIzNjlkZjEyY2QwOGYzMzM4NWFkOGM5ZGRkZTkuLmQ4Y2VhNjlk
ZTg3NjI5OTJhYjAyOTc0ZTQ1YTc4NzE4NDQwZDc1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRl
ICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKLSNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4K
ICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMTU4LDEw
ICsxNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZXNzaW9uSXNDb250cm9sbGVkQnlBdXRv
bWF0aW9uKFBBTDo6U2Vzc2lvbklELCBib29sKTsKICAgICBib29sIHNlc3Npb25Jc0NvbnRyb2xs
ZWRCeUF1dG9tYXRpb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCi0jaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKLSAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciYgbmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKSB7IHJldHVybiBtX05ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyOyB9Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2VzcygpOwog
ICAgIH5OZXR3b3JrUHJvY2VzcygpOwpAQCAtMjk2LDEwICsyOTEsNiBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKElPUykKICAgICBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIgbV93ZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXI7CiAjZW5kaWYKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgbV9OZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlcjsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDQ0MDc3ZDNjZTVlZjFkZDBiNTk0MDRlNWY5ZTZkNzY3
MTcwMzIyZDcuLjAxNzJjM2I0MTliODFmMTVkM2Y3ODlhZDhlOGQ2ZjNhZjk4OTFkNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGVuY29kZXIgPDwgbWFpbkRv
Y3VtZW50VVJMOwotICAgIGVuY29kZXIgPDwgdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
cjsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnRSdWxlTGlzdHM7CiAjZW5kaWYKIH0KIApAQCAtMTg0
LDExICsxODQsMTEgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmMKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tYWluRG9jdW1lbnRVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8VXNlckNvbnRlbnRDb250cm9sbGVySWRl
bnRpZmllcj4+IHVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+
PiB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyOwotICAgIGlmICghdXNlckNvbnRlbnRD
b250cm9sbGVySWRlbnRpZmllcikKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+Pj4gY29udGVudFJ1bGVMaXN0
czsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnRSdWxlTGlzdHM7CisgICAgaWYgKCFjb250ZW50UnVs
ZUxpc3RzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0LnVzZXJDb250ZW50Q29u
dHJvbGxlcklkZW50aWZpZXIgPSAqdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcjsKKyAg
ICByZXN1bHQuY29udGVudFJ1bGVMaXN0cyA9IFdURk1vdmUoKmNvbnRlbnRSdWxlTGlzdHMpOwog
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCAy
Y2MzM2FjZTliZjAwOTIzMTlhYmJlNTZjYWZiYTBiODJkNTU3MzAyLi43N2RlODU1NTNlZGY0Yzk4
Y2JhN2M0NjczZmI2ZTNiNzEwZDRlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVy
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIFdlYkNvcmU6OlVSTCBtYWluRG9jdW1l
bnRVUkw7Ci0gICAgc3RkOjpvcHRpb25hbDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
PiB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiBjb250ZW50UnVsZUxpc3Rz
OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3Bw
CmluZGV4IDI1Zjk2M2EyMDFjYTIxYjlkYWE2NzM5MWVkY2ZiNzhjMzcxMGM5YTMuLmJjNDg5NDM2
ODhkNTA2NzM5MTFmMWFhZGUwYThjNzczNzZkMjRhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBAIC00MiwxMyArNDIsMTMgQEAgUGluZ0xvYWQ6OlBpbmdM
b2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgSFRUUEhlYWRl
ck1hcCYmIG8KICAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQogICAgICwg
bV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1f
dGltZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQotICAgICwg
bV9uZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUobV9wYXJhbWV0
ZXJzLm1vZGUsIG1fcGFyYW1ldGVycy5zaG91bGRGb2xsb3dSZWRpcmVjdHMsIG1fcGFyYW1ldGVy
cy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgV1RGTW92
ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJs
KCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVmKCkpKQorICAgICwgbV9uZXR3
b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG1fcGFyYW1l
dGVycy5tb2RlLCBtX3BhcmFtZXRlcnMuc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBtX3BhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1v
dmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVy
bCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpKSkKIHsKIAogICAgIGlm
IChtX3BhcmFtZXRlcnMuY3NwUmVzcG9uc2VIZWFkZXJzKQogICAgICAgICBtX25ldHdvcmtMb2Fk
Q2hlY2tlci0+c2V0Q1NQUmVzcG9uc2VIZWFkZXJzKFdURk1vdmUobV9wYXJhbWV0ZXJzLmNzcFJl
c3BvbnNlSGVhZGVycy52YWx1ZSgpKSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
LSAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c2V0Q29udGVudEV4dGVuc2lvbkNvbnRyb2xsZXIo
V1RGTW92ZShtX3BhcmFtZXRlcnMubWFpbkRvY3VtZW50VVJMKSwgbV9wYXJhbWV0ZXJzLnVzZXJD
b250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpOworICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5z
ZXRDb250ZW50RXh0ZW5zaW9uUnVsZUxpc3RzKFdURk1vdmUobV9wYXJhbWV0ZXJzLm1haW5Eb2N1
bWVudFVSTCksIFdURk1vdmUobV9wYXJhbWV0ZXJzLmNvbnRlbnRSdWxlTGlzdHMpKTsKICNlbmRp
ZgogCiAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgdGhpcyBvYmplY3Qgd2ls
bCBoYW5nIGFyb3VuZCBmb3JldmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9QaW5nTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5oCmluZGV4IGExZWY2ZTczMTdmZTU1ZjZjNWRjZjUzYWM3NTUzYTljYjA3Yzk2YWYuLjc0YTY5
ODU3NzZhOWZiNWE3ZjU5MTViZGU4NDY1NDVjMDNmYWJjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1BpbmdMb2FkLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKICAg
ICBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiBtX3Rhc2s7CiAgICAgV2ViQ29yZTo6VGltZXIgbV90
aW1lb3V0VGltZXI7Ci0gICAgUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4gbV9uZXR3b3JrTG9hZENo
ZWNrZXI7CisgICAgVW5pcXVlUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4gbV9uZXR3b3JrTG9hZENo
ZWNrZXI7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IG1fbGFz
dFJlZGlyZWN0aW9uUmVxdWVzdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IGI3YTRjOTY1Yzc5MDExNTA5YmI1NTI1NzZmZDUwNTBjNjY0NTM4YzMu
LjI3ZjA1YzdiMzgxNWJmNTFjNjkzNDRlMWE2NmRlNTdmMDAwMGU3NWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMTg1LDcgKzE4NSw2IEBAIGRlZiBmb3J3
YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICAgICB0eXBl
c19ieV9uYW1lc3BhY2VbJ0lQQyddLnVwZGF0ZShbKCdjbGFzcycsICdDb25uZWN0aW9uJyldKQog
CiAgICAgbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlcyA9IGZyb3plbnNldChbCi0gICAgICAg
ICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJywKQEAgLTE5Myw3ICsxOTIsNyBAQCBkZWYgZm9y
d2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYktpdDo6VXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdTdHJpbmcnLAogICAgIF0pCiAKICAg
ICBmb3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViM2ZiNDNmOTQwMTA4N2Y4MGMwYmNmNzQw
YjZlYjllNDgwYTA0YjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWVudW0gVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllclR5cGUgeyB9Owot
dXNpbmcgVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllclR5cGU+OwotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDg2NzE1
OWI2OGY0MDJmMjlhZWRkYjdmMzI5ZTc4MDA5ZmYxOWE1MGMuLjcwODlkYThiMmE4NmRmZGVmODc1
Yjk4ODBiNmY0ZmFiMDNhNzJkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNzksMTMgKzE3OSw4IEBAIHN0ZDo6b3B0
aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKElQQzo6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxVc2VyQ29u
dGVudENvbnRyb2xsZXJJZGVudGlmaWVyPiB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
OwotICAgIGRlY29kZXIgPj4gdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcjsKLSAgICBp
ZiAoIXVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29udHJvbGxlcklEKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICBwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29udHJvbGxlcklEID0g
KnVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXI7Ci0KICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMud2Vic2l0ZURhdGFT
dG9yZUlEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCBiYWViYWY0ZDQxMDA4OTY1YTU2ZjRjMWMzZjIxYWNlODczZWE0MzI2Li42
YmQxOTYxZjNjNGQ0NTAwNGRkZGZkNjIwMWM2ODI3ZDk3ZTkwNDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC05OCw3ICs5OCw3
IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQ7CiAgICAgdWludDY0X3QgaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1JRDsK
IAotICAgIFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgdXNlckNvbnRlbnRDb250cm9s
bGVySUQ7CisgICAgdWludDY0X3QgdXNlckNvbnRlbnRDb250cm9sbGVySUQ7CiAgICAgdWludDY0
X3QgdmlzaXRlZExpbmtUYWJsZUlEOwogICAgIHVpbnQ2NF90IHdlYnNpdGVEYXRhU3RvcmVJRDsK
ICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKaW5kZXggYWJkYTdkNWU1YzY0ZTAxNTRhZDM1Njk5
NjdhZTg3NmY2ZjY5ZGMzMC4uMjc1MDA3YWY3MTViMjVmYTdiMmQ2ZDlkNzA1ZmU3NTMyOTU5ZTU1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKQEAgLTUzLDEx
ICs1MywxMCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VHcm91cERhdGE+IFdlYlBhZ2VHcm91cERh
dGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgYm9vbCB2aXNpYmxlVG9IaXN0
b3J5Q2xpZW50OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVu
dCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgc3RkOjpvcHRpb25hbDxVc2Vy
Q29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyPiB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlm
aWVyOwotICAgIGRlY29kZXIgPj4gdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcjsKLSAg
ICBpZiAoIXVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpCisgICAgdWludDY0X3QgdXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotICAgIHJldHVybiB7IHsgaWQsIHBhZ2VHcm91cElELCB2aXNpYmxlVG9JbmplY3RlZEJ1
bmRsZSwgdmlzaWJsZVRvSGlzdG9yeUNsaWVudCwgKnVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXIgfSB9OworICAgIHJldHVybiB7IHsgaWQsIHBhZ2VHcm91cElELCB2aXNpYmxlVG9Jbmpl
Y3RlZEJ1bmRsZSwgdmlzaWJsZVRvSGlzdG9yeUNsaWVudCwgdXNlckNvbnRlbnRDb250cm9sbGVy
SWRlbnRpZmllciB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCmluZGV4IDkzMGQ4ZWU5OGFlZTZlMjY3MTUxZDE2NmQ5
ODAxOTI0OTJiMDM5YjIuLjJjNjFlNTk3YjY1NmNkOGI4Mjc2ZDIwYzQ2ZTg0MWM5OWY4MGI1YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmgKQEAgLTI1LDcgKzI1LDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJ
UEMgewpAQCAtNDQsNyArNDMsNyBAQCBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YSB7CiAgICAgYm9v
bCB2aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsKICAgICBib29sIHZpc2libGVUb0hpc3RvcnlDbGll
bnQ7CiAKLSAgICBVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIHVzZXJDb250ZW50Q29u
dHJvbGxlcklkZW50aWZpZXI7CisgICAgdWludDY0X3QgdXNlckNvbnRlbnRDb250cm9sbGVySWRl
bnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXgg
NWM2OTQyMjQwNGI3MzBlZGU2ZjJhNDViMTM3ZGYyZjAxOWJmNGE4MC4uNjEzODkzZTQzMGJiYmM5
ZWQ3MDM0YWViMTRmYzU4ZGM1ZTI4ZWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yNiwyMyArMjYs
MTkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5
LmgiCiAKLSNpbmNsdWRlICJBUElDb250ZW50UnVsZUxpc3QuaCIKICNpbmNsdWRlICJBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2Vz
LmgiCiAjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikKICNpbmNsdWRl
ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKICNp
bmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgotI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KIApAQCAtODksMTAgKzg1LDYgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9j
ZXNzUHJveHkoKQogICAgIEFTU0VSVChtX3BlbmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tz
LmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJh
Y2tzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2luc0NhbGxiYWNrcy5pc0VtcHR5KCkpOwotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lP
TlMpCi0gICAgZm9yIChhdXRvKiBwcm94eSA6IG1fd2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eGllcykKLSAgICAgICAgcHJveHktPnJlbW92ZU5ldHdvcmtQcm9jZXNzKCp0aGlzKTsKLSNlbmRp
ZgogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtNTQ4LDI4ICs1NDAs
NCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJv
b2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgfQogfQogCi0KLSNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpjb250ZW50RXh0ZW5zaW9u
UnVsZXMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAg
IGlmIChhdXRvKiB3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSA9IFdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5OjpnZXQoaWRlbnRpZmllcikpIHsKLSAgICAgICAgbV93ZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94aWVzLmFkZCh3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSk7
Ci0gICAgICAgIHdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5hZGROZXR3b3JrUHJvY2Vz
cygqdGhpcyk7Ci0KLSAgICAgICAgYXV0byBydWxlcyA9IFdURjo6bWFwKHdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5LT5jb250ZW50RXh0ZW5zaW9uUnVsZXMoKSwgW10oYXV0byYmIGtleVZh
bHVlKSAtPiBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+
IHsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihrZXlWYWx1ZS52YWx1ZS0+bmFt
ZSgpLCBrZXlWYWx1ZS52YWx1ZS0+Y29tcGlsZWRSdWxlTGlzdCgpLmRhdGEoKSk7Ci0gICAgICAg
IH0pOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
cjo6QWRkQ29udGVudFJ1bGVMaXN0cyB7IGlkZW50aWZpZXIsIHJ1bGVzIH0sIDApOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyOjpBZGRDb250ZW50UnVsZUxpc3RzIHsgaWRlbnRpZmllciwgeyB9IH0sIDApOwot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYgcHJveHkpCi17Ci0g
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OlJlbW92ZSB7
IHByb3h5LmlkZW50aWZpZXIoKSB9LCAwKTsKLSAgICBtX3dlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3hpZXMucmVtb3ZlKCZwcm94eSk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCmluZGV4IGM5ZGM3OTJhOWI1ZTA3Y2NmZTEwNTI5YTdlMTlhZTZhYmE0OTBk
OTcuLmZmZmI0MTRmOTY1MTc5ZDI2MTBhNjEzZTJiZTZlZTNjZDMzZTEwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAjaW5jbHVk
ZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aCIKLSNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CkBAIC02MCw3ICs1OSw2IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwog
ZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0
YVR5cGU7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7Ci1jbGFzcyBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAogY2xh
c3MgTmV0d29ya1Byb2Nlc3NQcm94eSA6IHB1YmxpYyBDaGlsZFByb2Nlc3NQcm94eSwgcHJpdmF0
ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKQEAgLTk2LDEwICs5NCw2IEBAIHB1YmxpYzoKICAg
ICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBtX3Rocm90dGxlcjsgfQog
ICAgIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCgpIHsgcmV0dXJuIG1fcHJvY2Vzc1Bvb2w7
IH0KIAotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgdm9pZCBkaWREZXN0cm95
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkmKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJv
Y2Vzc1Bvb2wmKTsKIApAQCAtMTQ1LDEwICsxMzksNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWxs
U3RvcmFnZUFjY2Vzc0VudHJpZXNSZXN1bHQoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zLCB1aW50
NjRfdCBjb250ZXh0SWQpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQotICAgIHZvaWQgY29udGVudEV4dGVuc2lvblJ1bGVzKFVzZXJDb250ZW50Q29udHJvbGxlcklk
ZW50aWZpZXIpOwotI2VuZGlmCi0KICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAg
IHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKQEAgLTE3MSwxMCArMTYxLDYgQEAgcHJpdmF0ZToK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2Vz
cyk+PiBtX3dyaXRlQmxvYlRvRmlsZVBhdGhDYWxsYmFja01hcDsKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4+IG1fc3Rv
cmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpPj4gbV9hbGxTdG9y
YWdlQWNjZXNzRW50cmllc0NhbGxiYWNrTWFwOwotCi0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBIYXNoU2V0PFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Kj4gbV93ZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxODRjMmZkNTQ0MWY4
ZDg3MDQzNmQxNWI3NmE0ZDJkZmY2MzcyODZmLi42MTI2ZWE1ZDg3ZDY0YWRjMmU4ZDZlZWMyNjM4
MWQwY2Q4YzcyNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00Nyw4ICs0
Nyw0IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewog
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIFN0b3JhZ2VBY2Nl
c3NSZXF1ZXN0UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQogICAg
IEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzUmVzdWx0KFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMsIHVp
bnQ2NF90IGNvbnRleHRJZCkKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAg
Q29udGVudEV4dGVuc2lvblJ1bGVzKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRp
ZmllciBpZGVudGlmaWVyKQotI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5jcHAKaW5kZXggNDJmYjhlYWUzZGIyZGRmZjkyNGUwMTlkNjcxNGIyNjgyNDgyYThl
ZS4uNDIzM2M4ZTVjZmZjNjYyMDEzMWNkYmI4M2MwMDJkY2E1NTYzNDFiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1
ZGUgIkFQSVVzZXJTY3JpcHQuaCIKICNpbmNsdWRlICJBUElVc2VyU3R5bGVTaGVldC5oIgogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJOZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIgpAQCAtNDgsMzcg
KzQ2LDE4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgSGFzaE1hcDxVc2VyQ29u
dGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSo+
JiB3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaE1hcDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eSo+PiBwcm94aWVzOwotICAgIHJldHVybiBwcm94aWVzOwot
fQotCi0KLVdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KiBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eTo6Z2V0KFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKLXsKLSAgICByZXR1cm4gd2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveGllcygpLmdldChp
ZGVudGlmaWVyKTsKLX0KLSAgICAKIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eSgpCi0gICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVP
YmplY3RJZGVudGlmaWVyPFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXJUeXBlPigpKQot
ICAgICwgbV91c2VyU2NyaXB0cyhBUEk6OkFycmF5OjpjcmVhdGUoKSkKKyAgICA6IG1fdXNlclNj
cmlwdHMoQVBJOjpBcnJheTo6Y3JlYXRlKCkpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0cyhBUEk6
OkFycmF5OjpjcmVhdGUoKSkKIHsKLSAgICB3ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVz
KCkuYWRkKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5Ojp+V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoKQogewotICAgIHdlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3hpZXMoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKLSAgICBmb3Ig
KGF1dG8qIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykgewotICAgICAgICBwcm9jZXNzLT5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICBmb3Ig
KFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKSB7CisgICAgICAgIHByb2Nl
c3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllcigpKTsKICAgICAgICAg
cHJvY2Vzcy0+ZGlkRGVzdHJveVdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KCp0aGlzKTsK
ICAgICB9Ci0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBmb3IgKGF1dG8qIHBy
b2Nlc3MgOiBtX25ldHdvcmtQcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPmRpZERlc3Ryb3lX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSgqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkm
IHdlYlByb2Nlc3NQcm94eSwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
QEAgLTg2LDcgKzY1LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRk
UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwKICAgICBpZiAoIW1fcHJv
Y2Vzc2VzLmFkZCgmd2ViUHJvY2Vzc1Byb3h5KS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47
CiAKLSAgICB3ZWJQcm9jZXNzUHJveHkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgKnRoaXMpOworICAgIHdlYlByb2Nlc3NQcm94eS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIoKSwgKnRoaXMpOwogCiAgICAgQVNTRVJUKHBhcmFt
ZXRlcnMudXNlckNvbnRlbnRXb3JsZHMuaXNFbXB0eSgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8m
IHdvcmxkIDogbV91c2VyQ29udGVudFdvcmxkcykKQEAgLTExNiw3ICs5NSw3IEBAIHZvaWQgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5
JiB3ZWJQcm9jZXNzUHJvCiAgICAgQVNTRVJUKG1fcHJvY2Vzc2VzLmNvbnRhaW5zKCZ3ZWJQcm9j
ZXNzUHJveHkpKTsKIAogICAgIG1fcHJvY2Vzc2VzLnJlbW92ZSgmd2ViUHJvY2Vzc1Byb3h5KTsK
LSAgICB3ZWJQcm9jZXNzUHJveHkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlm
aWVyKCkudG9VSW50NjQoKSk7CisgICAgd2ViUHJvY2Vzc1Byb3h5LnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eTo6YWRkVXNlckNvbnRlbnRXb3JsZFVzZShBUEk6OlVzZXJDb250ZW50V29ybGQm
IHdvcmxkKQpAQCAtMTI3LDcgKzEwNiw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHk6OmFkZFVzZXJDb250ZW50V29ybGRVc2UoQVBJOjpVc2VyQ29udGVudFdvcmxkCiAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3VzZXJDb250ZW50V29ybGRzLmFkZCgmd29ybGQpOwogICAgIGlm
IChhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSog
cHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQotICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyQ29udGVudFdvcmxkcyh7IHN0ZDo6
bWFrZV9wYWlyKHdvcmxkLmlkZW50aWZpZXIoKSwgd29ybGQubmFtZSgpKSB9KSwgaWRlbnRpZmll
cigpLnRvVUludDY0KCkpOworICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyQ29udGVudFdvcmxkcyh7IHN0ZDo6bWFrZV9w
YWlyKHdvcmxkLmlkZW50aWZpZXIoKSwgd29ybGQubmFtZSgpKSB9KSwgaWRlbnRpZmllcigpKTsK
ICAgICB9CiB9CiAKQEAgLTE1MSw3ICsxMzAsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyhBUEk6OlVzZXJDb250ZW50Vwog
ewogICAgIGlmIChzaG91bGRTZW5kUmVtb3ZlVXNlckNvbnRlbnRXb3JsZHNNZXNzYWdlKHdvcmxk
LCBudW1iZXJPZlVzZXNUb1JlbW92ZSkpIHsKICAgICAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoeyB3
b3JsZC5pZGVudGlmaWVyKCkgfSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAg
ICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVt
b3ZlVXNlckNvbnRlbnRXb3JsZHMoeyB3b3JsZC5pZGVudGlmaWVyKCkgfSksIGlkZW50aWZpZXIo
KSk7CiAgICAgfQogfQogCkBAIC0xNjQsNyArMTQzLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZFVzZXMoSGFzaENvdW50ZWRTZXQ8
UmUKICAgICB9CiAKICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vz
c2VzKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OlJlbW92ZVVzZXJDb250ZW50V29ybGRzKHdvcmxkc1RvUmVtb3ZlKSwgaWRlbnRpZmll
cigpLnRvVUludDY0KCkpOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OlJlbW92ZVVzZXJDb250ZW50V29ybGRzKHdvcmxkc1RvUmVtb3Zl
KSwgaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eTo6YWRkVXNlclNjcmlwdChBUEk6OlVzZXJTY3JpcHQmIHVzZXJTY3JpcHQpCkBAIC0xNzYsNyAr
MTU1LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkVXNlclNjcmlw
dChBUEk6OlVzZXJTY3JpcHQmIHVzZXJTY3JpcHQpCiAgICAgbV91c2VyU2NyaXB0cy0+ZWxlbWVu
dHMoKS5hcHBlbmQoJnVzZXJTY3JpcHQpOwogCiAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkqIHBy
b2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU2NyaXB0cyh7IHsgdXNlclNjcmlwdC5pZGVu
dGlmaWVyKCksIHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTY3JpcHQudXNlclNjcmlwdCgpIH0g
fSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU2NyaXB0cyh7IHsgdXNlclNj
cmlwdC5pZGVudGlmaWVyKCksIHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTY3JpcHQudXNlclNj
cmlwdCgpIH0gfSksIGlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0JiB1c2VyU2NyaXB0
KQpAQCAtMTg0LDcgKzE2Myw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OnJlbW92ZVVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0JiB1c2VyU2NyaXB0CiAgICAgUmVmPEFQ
STo6VXNlckNvbnRlbnRXb3JsZD4gd29ybGQgPSB1c2VyU2NyaXB0LnVzZXJDb250ZW50V29ybGQo
KTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCi0g
ICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
UmVtb3ZlVXNlclNjcmlwdCh3b3JsZC0+aWRlbnRpZmllcigpLCB1c2VyU2NyaXB0LmlkZW50aWZp
ZXIoKSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVVc2VyU2NyaXB0KHdvcmxk
LT5pZGVudGlmaWVyKCksIHVzZXJTY3JpcHQuaWRlbnRpZmllcigpKSwgaWRlbnRpZmllcigpKTsK
IAogICAgIG1fdXNlclNjcmlwdHMtPmVsZW1lbnRzKCkucmVtb3ZlQWxsKCZ1c2VyU2NyaXB0KTsK
IApAQCAtMTk0LDcgKzE3Myw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OnJlbW92ZVVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0JiB1c2VyU2NyaXB0CiB2b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cyhBUEk6OlVzZXJD
b250ZW50V29ybGQmIHdvcmxkKQogewogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNz
IDogbV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclNjcmlwdHMoeyB3b3JsZC5pZGVudGlmaWVy
KCkgfSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU2NyaXB0cyh7
IHdvcmxkLmlkZW50aWZpZXIoKSB9KSwgaWRlbnRpZmllcigpKTsKIAogICAgIHVuc2lnbmVkIHVz
ZXJTY3JpcHRzUmVtb3ZlZCA9IG1fdXNlclNjcmlwdHMtPnJlbW92ZUFsbE9mVHlwZU1hdGNoaW5n
PEFQSTo6VXNlclNjcmlwdD4oWyZdKGNvbnN0IGF1dG8mIHVzZXJTY3JpcHQpIHsKICAgICAgICAg
cmV0dXJuICZ1c2VyU2NyaXB0LT51c2VyQ29udGVudFdvcmxkKCkgPT0gJndvcmxkOwpAQCAtMjE1
LDcgKzE5NCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFs
bFVzZXJTY3JpcHRzKCkKICAgICAgICAgd29ybGRJZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQo
d29ybGRDb3VudFBhaXIua2V5LT5pZGVudGlmaWVyKCkpOwogCiAgICAgZm9yIChXZWJQcm9jZXNz
UHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU2NyaXB0cyh3b3Js
ZElkZW50aWZpZXJzKSwgaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZUFsbFVzZXJT
Y3JpcHRzKHdvcmxkSWRlbnRpZmllcnMpLCBpZGVudGlmaWVyKCkpOwogCiAgICAgbV91c2VyU2Ny
aXB0cy0+ZWxlbWVudHMoKS5jbGVhcigpOwogCkBAIC0yMzEsNyArMjEwLDcgQEAgdm9pZCBXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkVXNlclN0eWxlU2hlZXQoQVBJOjpVc2VyU3R5
bGVTaGVldCYgdXNlclMKICAgICBtX3VzZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHMoKS5hcHBlbmQo
JnVzZXJTdHlsZVNoZWV0KTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDog
bV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6QWRkVXNlclN0eWxlU2hlZXRzKHsgeyB1c2VyU3R5bGVTaGVldC5pZGVu
dGlmaWVyKCksIHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTdHlsZVNoZWV0LnVzZXJTdHlsZVNo
ZWV0KCkgfSB9KSwgaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICBwcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTdHlsZVNoZWV0
cyh7IHsgdXNlclN0eWxlU2hlZXQuaWRlbnRpZmllcigpLCB3b3JsZC0+aWRlbnRpZmllcigpLCB1
c2VyU3R5bGVTaGVldC51c2VyU3R5bGVTaGVldCgpIH0gfSksIGlkZW50aWZpZXIoKSk7CiB9CiAK
IHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0
KEFQSTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQpAQCAtMjM5LDcgKzIxOCw3IEBA
IHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0
KEFQSTo6VXNlclN0eWxlU2hlZXQmIHVzCiAgICAgUmVmPEFQSTo6VXNlckNvbnRlbnRXb3JsZD4g
d29ybGQgPSB1c2VyU3R5bGVTaGVldC51c2VyQ29udGVudFdvcmxkKCk7CiAKICAgICBmb3IgKFdl
YlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQotICAgICAgICBwcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTdHlsZVNo
ZWV0KHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTdHlsZVNoZWV0LmlkZW50aWZpZXIoKSksIGlk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVVc2VyU3R5bGVTaGVldCh3b3JsZC0+aWRl
bnRpZmllcigpLCB1c2VyU3R5bGVTaGVldC5pZGVudGlmaWVyKCkpLCBpZGVudGlmaWVyKCkpOwog
CiAgICAgbV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzKCkucmVtb3ZlQWxsKCZ1c2VyU3R5bGVT
aGVldCk7CiAKQEAgLTI0OSw3ICsyMjgsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5OjpyZW1vdmVVc2VyU3R5bGVTaGVldChBUEk6OlVzZXJTdHlsZVNoZWV0JiB1cwogdm9p
ZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRz
KEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCiB7CiAgICAgZm9yIChXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoeyB3
b3JsZC5pZGVudGlmaWVyKCkgfSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAg
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHMoeyB3b3JsZC5pZGVudGlmaWVyKCkgfSksIGlkZW50aWZpZXIoKSk7
CiAKICAgICB1bnNpZ25lZCB1c2VyU3R5bGVTaGVldHNSZW1vdmVkID0gbV91c2VyU3R5bGVTaGVl
dHMtPnJlbW92ZUFsbE9mVHlwZU1hdGNoaW5nPEFQSTo6VXNlclN0eWxlU2hlZXQ+KFsmXShjb25z
dCBhdXRvJiB1c2VyU3R5bGVTaGVldCkgewogICAgICAgICByZXR1cm4gJnVzZXJTdHlsZVNoZWV0
LT51c2VyQ29udGVudFdvcmxkKCkgPT0gJndvcmxkOwpAQCAtMjcwLDcgKzI0OSw3IEBAIHZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cygp
CiAgICAgICAgIHdvcmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKHdvcmxkQ291bnRQYWly
LmtleS0+aWRlbnRpZmllcigpKTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNz
IDogbV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKHdvcmxkSWRlbnRpZmll
cnMpLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRz
KHdvcmxkSWRlbnRpZmllcnMpLCBpZGVudGlmaWVyKCkpOwogCiAgICAgbV91c2VyU3R5bGVTaGVl
dHMtPmVsZW1lbnRzKCkuY2xlYXIoKTsKIApAQCAtMjkxLDcgKzI3MCw3IEBAIGJvb2wgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcihXZWJT
Y3JpcHRNZXNzYWdlCiAgICAgbV9zY3JpcHRNZXNzYWdlSGFuZGxlcnMuYWRkKGhhbmRsZXIuaWRl
bnRpZmllcigpLCAmaGFuZGxlcik7CiAKICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2Vz
cyA6IG1fcHJvY2Vzc2VzKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoeyB7IGhhbmRs
ZXIuaWRlbnRpZmllcigpLCB3b3JsZC0+aWRlbnRpZmllcigpLCBoYW5kbGVyLm5hbWUoKSB9IH0p
LCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVy
cyh7IHsgaGFuZGxlci5pZGVudGlmaWVyKCksIHdvcmxkLT5pZGVudGlmaWVyKCksIGhhbmRsZXIu
bmFtZSgpIH0gfSksIGlkZW50aWZpZXIoKSk7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0zMDEsNyArMjgwLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVt
b3ZlVXNlck1lc3NhZ2VIYW5kbGVyRm9yTmFtZShjb25zdCBTdHJpbmcKICAgICBmb3IgKGF1dG8g
aXQgPSBtX3NjcmlwdE1lc3NhZ2VIYW5kbGVycy5iZWdpbigpLCBlbmQgPSBtX3NjcmlwdE1lc3Nh
Z2VIYW5kbGVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFs
dWUtPm5hbWUoKSA9PSBuYW1lICYmICZpdC0+dmFsdWUtPnVzZXJDb250ZW50V29ybGQoKSA9PSAm
d29ybGQpIHsKICAgICAgICAgICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9w
cm9jZXNzZXMpCi0gICAgICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIod29ybGQu
aWRlbnRpZmllcigpLCBpdC0+dmFsdWUtPmlkZW50aWZpZXIoKSksIGlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcih3b3JsZC5p
ZGVudGlmaWVyKCksIGl0LT52YWx1ZS0+aWRlbnRpZmllcigpKSwgaWRlbnRpZmllcigpKTsKIAog
ICAgICAgICAgICAgbV9zY3JpcHRNZXNzYWdlSGFuZGxlcnMucmVtb3ZlKGl0KTsKIApAQCAtMzE0
LDcgKzI5Myw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVz
ZXJNZXNzYWdlSGFuZGxlckZvck5hbWUoY29uc3QgU3RyaW5nCiB2b2lkIFdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyTWVzc2FnZUhhbmRsZXJzKEFQSTo6VXNlckNv
bnRlbnRXb3JsZCYgd29ybGQpCiB7CiAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3Mg
OiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKHsgd29y
bGQuaWRlbnRpZmllcigpIH0pLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxs
VXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyh7IHdvcmxkLmlkZW50aWZpZXIoKSB9KSwgaWRlbnRp
ZmllcigpKTsKIAogICAgIHVuc2lnbmVkIG51bWJlclJlbW92ZWQgPSAwOwogICAgIG1fc2NyaXB0
TWVzc2FnZUhhbmRsZXJzLnJlbW92ZUlmKFsmXShhdXRvJiBlbnRyeSkgewpAQCAtMzUxLDMzICsz
MzAsMjQgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkQ29udGVudFJ1
bGVMaXN0KEFQSTo6Q29udGVudFJ1bGVMaXN0JiBjb24KIAogICAgIGF1dG8gcGFpciA9IHN0ZDo6
bWFrZV9wYWlyKGNvbnRlbnRSdWxlTGlzdC5uYW1lKCksIGNvbnRlbnRSdWxlTGlzdC5jb21waWxl
ZFJ1bGVMaXN0KCkuZGF0YSgpKTsKIAotICAgIGZvciAoYXV0byogcHJvY2VzcyA6IG1fcHJvY2Vz
c2VzKQotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OkFkZENvbnRlbnRSdWxlTGlzdHMoeyBwYWlyIH0pLCBpZGVudGlmaWVyKCkudG9VSW50
NjQoKSk7Ci0KLSAgICBmb3IgKGF1dG8qIHByb2Nlc3MgOiBtX25ldHdvcmtQcm9jZXNzZXMpCi0g
ICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyOjpBZGRDb250ZW50UnVsZUxpc3RzIHsgaWRlbnRpZmllcigpLCB7IHBhaXIgfSB9LCAwKTsK
KyAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQorICAgICAg
ICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZENv
bnRlbnRSdWxlTGlzdHMoeyBwYWlyIH0pLCBpZGVudGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVDb250ZW50UnVsZUxpc3QoY29uc3QgU3Ry
aW5nJiBuYW1lKQogewogICAgIG1fY29udGVudFJ1bGVMaXN0cy5yZW1vdmUobmFtZSk7CiAKLSAg
ICBmb3IgKGF1dG8qIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVDb250ZW50UnVsZUxp
c3QobmFtZSksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKLQotICAgIGZvciAoYXV0byogcHJv
Y2VzcyA6IG1fbmV0d29ya1Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OlJlbW92ZUNvbnRlbnRSdWxlTGlzdCB7
IGlkZW50aWZpZXIoKSwgbmFtZSB9LCAwKTsKKyAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJv
Y2VzcyA6IG1fcHJvY2Vzc2VzKQorICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJV
c2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZUNvbnRlbnRSdWxlTGlzdChuYW1lKSwgaWRlbnRp
ZmllcigpKTsKIH0KIAogdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3Zl
QWxsQ29udGVudFJ1bGVMaXN0cygpCiB7CiAgICAgbV9jb250ZW50UnVsZUxpc3RzLmNsZWFyKCk7
CiAKLSAgICBmb3IgKGF1dG8qIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxDb250
ZW50UnVsZUxpc3RzKCksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKLQotICAgIGZvciAoYXV0
byogcHJvY2VzcyA6IG1fbmV0d29ya1Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OlJlbW92ZUFsbENvbnRlbnRS
dWxlTGlzdHMgeyBpZGVudGlmaWVyKCkgfSwgMCk7CisgICAgZm9yIChXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzKCksIGlk
ZW50aWZpZXIoKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmgKaW5kZXggYWIzZjI2MDJiMGMyM2Q3NjM5MDAyMDBhZmM2Y2Y1YTc4ZmZjZjg0OC4uMjMw
ZjYyM2Q5OGU0NzgyOTUwMTEwZDk0OWY1MjU2NTYyMDBlM2I4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS5oCkBAIC0yNywxMSArMjcsMTEgQEAKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlVzZXJD
b250ZW50Q29udHJvbGxlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvSWRlbnRpZmllZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTU0LDIzICs1NCwyMCBAQCBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTmV0d29ya1By
b2Nlc3NQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczsKIAotY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyQ29udGVudENvbnRyb2xs
ZXI+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlw
ZTo6VXNlckNvbnRlbnRDb250cm9sbGVyPiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwg
cHVibGljIElkZW50aWZpZWQ8V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5PiBjcmVhdGUo
KQogICAgIHsgCiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5KTsKLSAgICB9Ci0gICAgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHko
KTsKKyAgICB9IAorICAgIGV4cGxpY2l0IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KCk7
CiAgICAgfldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KCk7CiAKLSAgICBzdGF0aWMgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkqIGdldChVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyKTsKLQogICAgIHZvaWQgYWRkUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCByZW1vdmVQcm9jZXNzKFdlYlByb2Nlc3NQ
cm94eSYpOwogCkBAIC05NCwxNyArOTEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQWxs
VXNlck1lc3NhZ2VIYW5kbGVycyhBUEk6OlVzZXJDb250ZW50V29ybGQmKTsKIAogI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgdm9pZCBhZGROZXR3b3JrUHJvY2VzcyhOZXR3b3Jr
UHJvY2Vzc1Byb3h5JiBwcm94eSkgeyBtX25ldHdvcmtQcm9jZXNzZXMucmVtb3ZlKCZwcm94eSk7
IH0KLSAgICB2b2lkIHJlbW92ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHBy
b3h5KSB7IG1fbmV0d29ya1Byb2Nlc3Nlcy5hZGQoJnByb3h5KTsgfQotCiAgICAgdm9pZCBhZGRD
b250ZW50UnVsZUxpc3QoQVBJOjpDb250ZW50UnVsZUxpc3QmKTsKICAgICB2b2lkIHJlbW92ZUNv
bnRlbnRSdWxlTGlzdChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRS
dWxlTGlzdHMoKTsKLSAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSTo6Q29udGVu
dFJ1bGVMaXN0Pj4mIGNvbnRlbnRFeHRlbnNpb25SdWxlcygpIHsgcmV0dXJuIG1fY29udGVudFJ1
bGVMaXN0czsgfQogI2VuZGlmCiAKLSAgICBVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLQogcHJpdmF0ZToK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtMTE2LDE1ICsx
MDcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEhh
c2hDb3VudGVkU2V0PFJlZlB0cjxBUEk6OlVzZXJDb250ZW50V29ybGQ+PiYpOwogICAgIGJvb2wg
c2hvdWxkU2VuZFJlbW92ZVVzZXJDb250ZW50V29ybGRzTWVzc2FnZShBUEk6OlVzZXJDb250ZW50
V29ybGQmLCB1bnNpZ25lZCBudW1iZXJPZlVzZXNUb1JlbW92ZSk7CiAKLSAgICBVc2VyQ29udGVu
dENvbnRyb2xsZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBIYXNoU2V0PFdlYlByb2Nl
c3NQcm94eSo+IG1fcHJvY2Vzc2VzOworICAgIEhhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj4gbV9w
cm9jZXNzZXM7ICAgIAogICAgIFJlZjxBUEk6OkFycmF5PiBtX3VzZXJTY3JpcHRzOwogICAgIFJl
ZjxBUEk6OkFycmF5PiBtX3VzZXJTdHlsZVNoZWV0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI+PiBtX3NjcmlwdE1lc3NhZ2VIYW5kbGVyczsK
ICAgICBIYXNoQ291bnRlZFNldDxSZWZQdHI8QVBJOjpVc2VyQ29udGVudFdvcmxkPj4gbV91c2Vy
Q29udGVudFdvcmxkczsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgSGFz
aFNldDxOZXR3b3JrUHJvY2Vzc1Byb3h5Kj4gbV9uZXR3b3JrUHJvY2Vzc2VzOwogICAgIEhhc2hN
YXA8U3RyaW5nLCBSZWZQdHI8QVBJOjpDb250ZW50UnVsZUxpc3Q+PiBtX2NvbnRlbnRSdWxlTGlz
dHM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmZjk5YzUwZjY0YmRkZTI5Njk4YmNlOTEzNDUzODRmYzU4MjNmNzU1
Li5lYTIwMTZiYWZlZjQ3ODU4YmQ5Mjc1ZDEzZmYyNTczN2E4MzQxOWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1NCw3ICs5NTQs
NiBAQAogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyogV2ViUlRDUmVzb2x2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY0MUUzQzA2
NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGODFFM0MxMDIx
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJS
VENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGOTFFM0MxMDI1MDAxQUU2NzggLyogTGliV2Vi
UlRDUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGQUY1RjcxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCAq
LzsgfTsKLQkJNDFGQkU4MjYyMDZERjdGQTAwMEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRkJFODI0MjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFu
YWdlci5jcHAgKi87IH07CiAJCTQ0NTBBRUMwMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1v
cnlDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovOyB9
OwogCQk0NjBGNDg4RjFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwRjQ4OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNDYwRjQ4OTAxRjk5
NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5
OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki87IH07CkBAIC0xMTkzLDcgKzExOTIsNiBAQAogCQk1MkQ1QTFCMDFDNTc0OTVBMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBQTFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CiAJCTUyRDVBMUIxMUM1NzQ5NjIwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovOyB9OwogCQk1MkQ1QTFCNzFDNTc0QTAyMDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUI0MUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovOyB9OwotCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4MUIg
LyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJGMDYwREQxNjU0MzE3
NTAwRjMyODFCIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJNTMwMjU4M0IxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJl
UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMwMjU4MkUxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuY3Bw
ICovOyB9OwogCQk1MzAyNTgzQzFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMw
MjU4MkYxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCAqLzsgfTsK
IAkJNTMwMjU4M0QxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMwMjU4MzAxRENC
QkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuY3BwICovOyB9OwpAQCAtMzMzNiwx
MCArMzMzNCw2IEBACiAJCTQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSVENSZXNvbHZlci5oOyBw
YXRoID0gTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1Jlc29sdmVyLmg7
IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUZBRjVGNzFFM0MwQjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVz
b2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGliV2ViUlRD
UmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUZCRTgyMTIwNkQ4N0Y2MDAwRjA3NDEg
LyogVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRkJFODIyMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDFGQkU4MjMyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQxRkJFODI0MjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEY0ODhEMUY5OTZGNkMwMENGNEI4NyAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM2MjIsNyArMzYxNiw2IEBACiAJCTUyRDVBMUIyMUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUEx
QjMxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQjQxQzU3NDlGMjAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MkYwNjBERDE2NTQzMTc1MDBGMzI4MUIgLyogTmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgyRTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0Nh
cHR1cmVSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBO
ZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUv
TmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUzMDI1ODJGMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaDsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzMDFEQ0JCRDFEMDBEQTg5QzIgLyog
TmV0d29ya0NhcHR1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01MjcwLDcgKzUyNjMsNiBAQAogCQkJCTFBNjQyNDVDMTJERTI5QTEwMENBQUUyQyAvKiBVcGRh
dGVJbmZvLmggKi8sCiAJCQkJNUMxOUE1MUUxRkQwQjE0NjAwRUVBMzIzIC8qIFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzLmNwcCAqLywKIAkJCQk1QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMuaCAqLywKLQkJCQk0MUZCRTgyMTIwNkQ4N0Y2MDAwRjA3NDEg
LyogVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oICovLAogCQkJCTFBQzEzMzY1MTg1
NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5jcHAgKi8sCiAJCQkJMUFDMTMzNjYxODU2NUI1NzAw
RjNFQzA1IC8qIFVzZXJEYXRhLmggKi8sCiAJCQkJMjY4NDA1NEExOEI4NjZGRjAwMjJDMzhCIC8q
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwICovLApAQCAtNjM1OSw5ICs2MzUxLDYg
QEAKIAkJCQk1MTNBMTY0OTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwICovLAogCQkJCTUxM0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTUxM0ExNjRCMTYzMEE5QkYwMDVEN0Qy
MiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKLQkJCQk0
MUZCRTgyNDIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIu
Y3BwICovLAotCQkJCTQxRkJFODIyMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5oICovLAotCQkJCTQxRkJFODIzMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk0NkRGMDYzOTFG
MzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCAqLywKIAkJ
CQk0NkRGMDYzQTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmggKi8sCiAJCQkJNTMyMTU5NTExREJBRTZGQzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFzay5j
cHAgKi8sCkBAIC04MjQ3LDcgKzgyMzYsNiBAQAogCQkJCTI5ODRGNTdCMTY0QjkxNUYwMDRCQzBD
NiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJ
NTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovLAotCQkJCTUyRjA2MERE
MTY1NDMxNzUwMEYzMjgxQiAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE3Q0YwRTExNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE3Q0YwRTIxNjNB
NDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJ
CQkJNTFBQ0M5MzQxNjI4MDY0ODAwMzQyNTUwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKQEAgLTEwNjU3LDggKzEwNjQ1LDYgQEAKIAkJCQk1MzAyNTgzQjFEQ0JCRDIy
MDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTNBMTY0QzE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFERDlGMjgxNjM2N0RBMjAwMTU3OEU5IC8qIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxRkJFODI2MjA2REY3RkEwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4
MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDZERjA2M0IxRjM5MDVGODAwMTk4MEJCIC8qIE5ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzIxNTk1NDFEQkFFNzFE
MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzQkE0
N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGQ3ZjhiZjg0OWM2NGRmYTQzNGYwNDk2ZTA5ZTk1NGQyYzAz
N2FhZmEuLmIxNGE1ODAzMjZhMDJkNmQxODQxYTZkODhhNGY4MmNiMzE5NDYzMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKQEAgLTQ1Niw5ICs0NTYsNiBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBp
bmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9h
ZGVyQ2xpZW50ID0gdG9XZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZS5sb2FkZXIoKS5jbGllbnQo
KSk7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gd2ViRnJhbWVMb2FkZXJDbGllbnQgPyB3ZWJG
cmFtZUxvYWRlckNsaWVudC0+d2ViRnJhbWUoKSA6IG51bGxwdHI7Ci0KICAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSByZXF1ZXN0OwpAQCAtNDc1LDExICs0NzIsMTMgQEAgdm9pZCBXZWJMb2FkZXJT
dHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY28KIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgbG9hZFBhcmFt
ZXRlcnMubWFpbkRvY3VtZW50VVJMID0gZG9jdW1lbnQtPnRvcERvY3VtZW50KCkudXJsKCk7Ci0g
ICAgLy8gRklYTUU6IEluc3RlYWQgb2YgcGFzc2luZyB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyLCB3ZSBzaG91bGQganVzdCBwYXNzIHdlYlBhZ2VJZCB0byBOZXR3b3JrUHJvY2Vzcy4K
LSAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKSkgewotICAgICAgICBXZWJQYWdlKiB3
ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKLSAgICAgICAg
aWYgKHdlYlBhZ2UpCi0gICAgICAgICAgICBsb2FkUGFyYW1ldGVycy51c2VyQ29udGVudENvbnRy
b2xsZXJJZGVudGlmaWVyID0gd2ViUGFnZS0+dXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
cigpOworCisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKSkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKSkg
eworICAgICAgICAgICAgcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLmZvckVhY2hDb250ZW50
RXh0ZW5zaW9uKFsmbG9hZFBhcmFtZXRlcnNdKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb24mIGNvbnRlbnRFeHRlbnNpb24pIHsKKyAg
ICAgICAgICAgICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50UnVsZUxpc3RzLmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihpZGVudGlmaWVyLCBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdCY+KGNvbnRlbnRFeHRlbnNpb24uY29tcGlsZWRFeHRlbnNpb24oKSkuZGF0YSgp
KSk7CisgICAgICAgICAgICB9LCAqZG9jdW1lbnRMb2FkZXIpOworICAgICAgICB9CiAgICAgfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5kZXggYjllNTg1ODM1
ZmUzMDhhODUwYTNkODUyN2Q4YWUwYjIzYzBmZjM3Yi4uMjIzNWE4ZGYwNGQxYzRiY2E2ZDMwZWY1
MzAwMzI5NWQxYWUwNTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKQEAg
LTUwLDkgKzUwLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1zdGF0aWMgSGFzaE1hcDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXIqPiYgdXNlckNvbnRlbnRDb250cm9sbGVycygpCitzdGF0
aWMgSGFzaE1hcDx1aW50NjRfdCwgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyKj4mIHVzZXJDb250
ZW50Q29udHJvbGxlcnMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcio+
PiB1c2VyQ29udGVudENvbnRyb2xsZXJzOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
TWFwPHVpbnQ2NF90LCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIqPj4gdXNlckNvbnRlbnRDb250
cm9sbGVyczsKIAogICAgIHJldHVybiB1c2VyQ29udGVudENvbnRyb2xsZXJzOwogfQpAQCAtNjYs
NyArNjYsNyBAQCBzdGF0aWMgV29ybGRNYXAmIHdvcmxkTWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1SZWY8V2ViVXNlckNvbnRlbnRDb250cm9sbGVyPiBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OmdldE9yQ3JlYXRlKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKK1JlZjxXZWJVc2VyQ29udGVudENvbnRyb2xsZXI+IFdlYlVzZXJDb250ZW50Q29udHJvbGxl
cjo6Z2V0T3JDcmVhdGUodWludDY0X3QgaWRlbnRpZmllcikKIHsKICAgICBhdXRvJiB1c2VyQ29u
dGVudENvbnRyb2xsZXJQdHIgPSB1c2VyQ29udGVudENvbnRyb2xsZXJzKCkuYWRkKGlkZW50aWZp
ZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAodXNlckNvbnRlbnRDb250cm9s
bGVyUHRyKQpAQCAtNzgsMTcgKzc4LDE3IEBAIFJlZjxXZWJVc2VyQ29udGVudENvbnRyb2xsZXI+
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6Z2V0T3JDcmVhdGUoVXNlckNvbnRlbnRDCiAgICAg
cmV0dXJuIHVzZXJDb250ZW50Q29udHJvbGxlci5yZWxlYXNlTm9uTnVsbCgpOwogfQogCi1XZWJV
c2VyQ29udGVudENvbnRyb2xsZXI6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcihVc2VyQ29udGVu
dENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCitXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcih1aW50NjRfdCBpZGVudGlmaWVyKQogICAgIDog
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCksICp0aGlzKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlVzZXJDb250ZW50Q29udHJvbGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZp
ZXIsICp0aGlzKTsKIH0KIAogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjp+V2ViVXNlckNvbnRl
bnRDb250cm9sbGVyKCkKIHsKICAgICBBU1NFUlQodXNlckNvbnRlbnRDb250cm9sbGVycygpLmNv
bnRhaW5zKG1faWRlbnRpZmllcikpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllcik7
CiAKICAgICB1c2VyQ29udGVudENvbnRyb2xsZXJzKCkucmVtb3ZlKG1faWRlbnRpZmllcik7CiB9
CkBAIC0yNDIsNyArMjQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCF3ZWJQYWdlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT5wYWdlSUQoKSwgd2ViRnJhbWUtPmlu
Zm8oKSwgbV9pZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UodmFsdWUtPmRhdGEoKSkpLCBt
X2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPnBh
Z2VJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSh2YWx1ZS0+ZGF0YSgpKSksIG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpKTsKICAgICB9CiAK
ICAgICBSZWZQdHI8V2ViVXNlckNvbnRlbnRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmgKaW5kZXggZjU4ZDIxZThjZGZjNmJlZDljMDQ5ZGQyZGMz
MGFmOTQ5ZDA4YWJkMS4uOWI3MmQ5NmM4YmJiNzc5YzFiZWI5YjFmMGFhYzIxMmMzYzllNDU1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJVc2VyQ29u
dGVudENvbnRyb2xsZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50UHJvdmlkZXIuaD4KQEAgLTUwLDEwICs0OSwx
MCBAQCBjbGFzcyBXZWJVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yUHJveHk7CiAKIGNsYXNz
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpVc2VyQ29u
dGVudFByb3ZpZGVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFdlYlVzZXJDb250ZW50Q29udHJvbGxlcj4gZ2V0T3JDcmVhdGUoVXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI+IGdldE9yQ3JlYXRlKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogICAgIHZpcnR1
YWwgfldlYlVzZXJDb250ZW50Q29udHJvbGxlcigpOwogCi0gICAgVXNlckNvbnRlbnRDb250cm9s
bGVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
dWludDY0X3QgaWRlbnRpZmllcigpIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfSAKIAogICAgIHZv
aWQgYWRkVXNlclNjcmlwdChJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkJiwgV2ViQ29yZTo6VXNl
clNjcmlwdCYmKTsKICAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHRXaXRoVVJMKEluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQmLCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKQEAgLTcyLDcgKzcxLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIpOworICAgIGV4cGxpY2l0
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlcih1aW50NjRfdCBpZGVudGlmaWVyKTsKIAogICAgIC8v
IFdlYkNvcmU6OlVzZXJDb250ZW50UHJvdmlkZXIKICAgICB2b2lkIGZvckVhY2hVc2VyU2NyaXB0
KEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJiwgY29uc3QgV2ViQ29yZTo6
VXNlclNjcmlwdCYpPiYmKSBjb25zdCBmaW5hbDsKQEAgLTExMiw3ICsxMTEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVtb3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVySW50ZXJuYWwoSW5qZWN0
ZWRCdW5kbGVTY3JpcHRXb3JsZCYsIHVpbnQ2NF90IHVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcklk
ZW50aWZpZXIpOwogI2VuZGlmCiAKLSAgICBVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8UmVmUHRyPEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ+LCBWZWN0b3I8c3RkOjpw
YWlyPHVpbnQ2NF90LCBXZWJDb3JlOjpVc2VyU2NyaXB0Pj4+IFdvcmxkVG9Vc2VyU2NyaXB0TWFw
OwogICAgIFdvcmxkVG9Vc2VyU2NyaXB0TWFwIG1fdXNlclNjcmlwdHM7CkBAIC0xMjcsNiArMTI2
LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgbV9jb250ZW50
RXh0ZW5zaW9uQmFja2VuZDsKICNlbmRpZgorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiMjc0NzRi
YmMyY2UzMjM1ZWI0MzU3ZjZhZDNjNWQ4YWE4NTEzZDBjLi44NDQyY2Q3YjY4MTE0ODMyODgyNTQ0
MDg5ZDM3NTMzMmMxMGNlNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC00Niw3ICs0Niw2IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAj
aW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCi0j
aW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9B
Y3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CkBAIC0xMDcwLDggKzEwNjks
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcGVuR0xEaXNwbGF5TWFza0NoYW5nZWQodWludDMyX3Qg
ZGlzcGxheU1hc2spOwogI2VuZGlmCiAKLSAgICBVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlm
aWVyIHVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlci0+aWRlbnRpZmllcigpOyB9Ci0KIHByaXZhdGU6CiAgICAgV2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>