<?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>189959</bug_id>
          
          <creation_ts>2018-09-25 11:24:45 -0700</creation_ts>
          <short_desc>Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)</short_desc>
          <delta_ts>2018-12-10 14:58:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1463224</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-25 11:24:45 -0700</bug_when>
    <thetext>We no longer make use of CF Network&apos;s cookie partitioning so we should change the compile-time flag to something that makes sense. This should also make it easier/cleaner for other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463225</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-25 11:25:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/44767642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463236</commentid>
    <comment_count>2</comment_count>
      <attachid>350769</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-25 11:33:29 -0700</bug_when>
    <thetext>Created attachment 350769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463362</commentid>
    <comment_count>3</comment_count>
      <attachid>350769</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-25 15:07:52 -0700</bug_when>
    <thetext>Comment on attachment 350769
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463363</commentid>
    <comment_count>4</comment_count>
      <attachid>350769</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-09-25 15:08:26 -0700</bug_when>
    <thetext>Comment on attachment 350769
Patch

Thanks, Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463389</commentid>
    <comment_count>5</comment_count>
      <attachid>350769</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 15:50:05 -0700</bug_when>
    <thetext>Comment on attachment 350769
Patch

Clearing flags on attachment: 350769

Committed r236485: &lt;https://trac.webkit.org/changeset/236485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463390</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 15:50:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486758</commentid>
    <comment_count>7</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-12-10 14:58:35 -0800</bug_when>
    <thetext>Hey John I&apos;m wondering if there was a particular reason ENABLE_RESOURCE_LOAD_STATISTICS is set in Platform.h rather than FeatureDefines.xcconfig.

I recently did https://trac.webkit.org/changeset/238809/webkit which synced the contents of FeatureDefines.xcconfig with the CMake side. Someone asked why ENABLE_RESOURCE_LOAD_STATISTICS wasn&apos;t present afterwards and when I went digging I found this commit.

Should this be moved to FeatureDefines.xcconfig?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350769</attachid>
            <date>2018-09-25 11:33:29 -0700</date>
            <delta_ts>2018-09-25 15:50:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189959-20180925113328.patch</filename>
            <type>text/plain</type>
            <size>60045</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRmNzQ2YzRhYjYzZTFkNjRkY2RlYjM2
ZTBkZmRhZDdlNzY2MWU1MGMuLmM1ZDcxNzUyNGJkNjg4ZDBkZjFlMDczNGE0MzI3ZmNmOWM5M2Q1
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDktMjUgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIGZyb20gSEFWRShDRk5FVFdPUktfU1RP
UkFHRV9QQVJUSVRJT05JTkcpIHRvIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk5NTkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0NzY3NjQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAgICAgICBF
bmFibGVzIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyBmb3IgQ29jb2EgcGxhdGZvcm1zLgorCiAy
MDE4LTA5LTI0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBXVEZfQ09NUElMRVJfR0NDX09SX0NMQU5HIHRvIFdURl9DT01QSUxFUl9H
Q0NfQ09NUEFUSUJMRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkZTkwNmI0NjZkNzVkOGJjNmE4OGMyNzIwN2Uz
YzlkNGU3ZDhiOGUuLmYxMjU4ODZhNTU4OTQ2NmY5NTE5MGE4ZDBlMWVkYWI3YWQ3NmNiMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxOC0wOS0yNSAgSm9obiBXaWxhbmRlciAgPHdp
bGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFuZ2UgZnJvbSBIQVZFKENGTkVUV09SS19T
VE9SQUdFX1BBUlRJVElPTklORykgdG8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTk1OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ3Njc2NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugb2Ygbm8gY29k
ZSBjaGFuZ2UuCisKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG1ha2UgdXNlIG9mIENGTmV0d29yaydz
IGNvb2tpZSBwYXJ0aXRpb25pbmcgc28gd2Ugc2hvdWxkCisgICAgICAgIGNoYW5nZSB0aGUgY29t
cGlsZS10aW1lIGZsYWcgdG8gc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UuIFRoaXMgc2hvdWxk
CisgICAgICAgIGFsc28gbWFrZSBpdCBlYXNpZXIvY2xlYW5lciBmb3Igb3RoZXIgcG9ydHMuCisK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRIYXNSZXF1ZXN0
ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OmxvZ1VzZXJJbnRlcmFjdGlvbldpdGhSZWR1Y2VkVGltZVJlc29sdXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dpbmRvd0Ny
ZWF0aW9uKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaDoKKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNy
ZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0ZvclVSTCk6
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9t
RE9NIGNvbnN0KToKKwogMjAxOC0wOS0yNSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtFTUVdIEZpeCB2YXJpYWJsZSBuYW1lIHRoYXQg
c2hvdWxkIGhhdmUgZ29uZSBpbiByMjM2MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMTM3NWZiZjc1MjEwNmZj
NmI2MjIyMmFiNjc3YmM4OWRhYWJlZmEuLjNkYjE0ZTFmM2RhMDZhMGFiZTE4ZGQ1MmRiNTM0YzRk
NzJjNzRkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTgtMDktMjUgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIGZyb20gSEFWRShD
Rk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpIHRvIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODk5NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0NzY3NjQyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vIGxvbmdlciBtYWtlIHVz
ZSBvZiBDRk5ldHdvcmsncyBjb29raWUgcGFydGl0aW9uaW5nIHNvIHdlIHNob3VsZAorICAgICAg
ICBjaGFuZ2UgdGhlIGNvbXBpbGUtdGltZSBmbGFnIHRvIHNvbWV0aGluZyB0aGF0IG1ha2VzIHNl
bnNlLiBUaGlzIHNob3VsZAorICAgICAgICBhbHNvIG1ha2UgaXQgZWFzaWVyL2NsZWFuZXIgZm9y
IG90aGVyIHBvcnRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhY2hlOjpDYWNoZTo6cmV0cmlldmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRh
VGFza0NvY29hOjphcHBseUNvb2tpZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxVcGRhdGVQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3JIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxl
bnRSZXNvdXJjZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRldGFjaGVkRnJvbVBhcmVudDIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsQ2hhbmdlRG9jdW1lbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisKIDIwMTgtMDktMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlIHNob3VsZCBw
YXNzIGl0cyBjb21wbGV0aW9uIGhhbmRsZXIgdG8gaXRzIGNsaWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXgg
ODdlZDJmZDY5NDc5ZTg3NWNhODM1NGZhMWJiMTZmMWQzODI4NDk3ZC4uZjEzYWY5ZGIyOTk3MGEy
ZTBhYmZhNWI4MGE3OTgyZTkyYmVlYzQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC02OTQsNyArNjk0LDcg
QEAKICNlbmRpZiAvKiBPUyhEQVJXSU4pICovCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZp
bmUgSEFWRV9DRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcgMQorI2RlZmluZSBFTkFCTEVf
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIDEKICNlbmRpZgogCiAjaWYgT1MoREFSV0lOKSB8fCBP
UyhGVUNIU0lBKSB8fCAoKE9TKEZSRUVCU0QpIHx8IGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZp
bmVkKF9fQklPTklDX18pKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTSkg
fHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
MjBkY2ZhZmUyOWRiNDY1ZjdkYzllMmQ1OGFmYjlmMWY2ODE1MTgyZC4uMTBiNmQyODBlMTNlZmMy
MTY1NzlhNWEwZTAwZjEzYzJmMWRiYWY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03
ODIzLDcgKzc4MjMsNyBAQCB2b2lkIERvY3VtZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBBU1NFUlQoc2V0dGluZ3MoKS5zdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZCgpKTsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElU
SU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1f
ZnJhbWUgJiYgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSkgewogICAgICAgICBwcm9t
aXNlLT5yZXNvbHZlPElETEJvb2xlYW4+KHRydWUpOwogICAgICAgICByZXR1cm47CkBAIC03ODc0
LDcgKzc4NzQsNyBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgQVNTRVJUKHNldHRpbmdzKCkuc3RvcmFn
ZUFjY2Vzc0FQSUVuYWJsZWQoKSk7CiAgICAgCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9Q
QVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBp
ZiAobV9mcmFtZSAmJiBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpKSB7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODAyNCw3ICs4MDI0LDcg
QEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTWFpbkFydGljbGVFbGVtZW50QWZ0ZXJMYXlvdXQoKQog
ICAgIG1fbWFpbkFydGljbGVFbGVtZW50ID0gdGFsbGVzdEFydGljbGU7CiB9CiAKLSNpZiBIQVZF
KENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQogYm9vbCBEb2N1bWVudDo6aGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nl
c3MoKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5oYXNG
cmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpOwpAQCAtODA0NCw3ICs4MDQ0LDYgQEAgdm9pZCBE
b2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2Vy
SW50ZXJhY3Rpb24oY29uc3QKIHsKICAgICBtX3ByaW1hcnlEb21haW5SZXF1ZXN0ZWRQYWdlU3Bl
Y2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiA9IHByaW1hcnlEb21haW47CiB9
Ci0KICNlbmRpZgogCiB2b2lkIERvY3VtZW50OjpzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
OGQ2YzViYzJjNDU1YjFhOGIwYzkwNTRmYWY3NmRhOGQwMTRlMDA2Yy4uYjA5NTc3ZDg5ZGVhMmQ0
NmM5MTcwYWRkZjk2NjNlMTkyMjEyZGMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0Nzgs
NyArMTQ3OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsaW5nVG91Y2hFdmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFuZGxpbmdUb3VjaEV2ZW50OyB9CiAjZW5kaWYKIAotI2lmIEhBVkUoQ0ZO
RVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCiAgICAgYm9vbCBoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNz
V2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4pOwogICAgIHZv
aWQgc2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJh
Y3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKTsKICNlbmRpZgpAQCAtMTgyNiw3ICsx
ODI2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25zdCBXVEZMb2dD
aGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZpbmFsOwogCi0j
aWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNj
ZXNzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzcyhi
b29sKTsKICNlbmRpZgpAQCAtMjAyMSw3ICsyMDIxLDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hT
ZXQ8QXBwbGljYXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyKj4gbV9hcHBsaWNhdGlvblN0YXRlQ2hh
bmdlTGlzdGVuZXJzOwogICAgIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9O
SU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgU3RyaW5nIG1f
cHJpbWFyeURvbWFpblJlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlcklu
dGVyYWN0aW9uIHsgfTsKICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggN2MzNmMyMDVmMjAyMDM0ZjM1YmE2MDEwMGQ0
NGQzYmFlMWJkNTA4NC4uZTc2NWJiMDJlZTI4YWVmNGFlNzFmYWJiYWRkZWRmNzRkYzU4OGZhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0yMDAsNyArMjAwLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAg
ICAgUmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+IGNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQog
I2VuZGlmCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNT
dG9yYWdlQWNjZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHNldEhhc0Zy
YW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKGJvb2wpIGZpbmFsIHsgfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDVjMjQzYzRiYzkyOTk1MjEx
ZjBmN2JmMDc5ODE4ZjJkMTI2ZWNiNzYuLjFiOTExYTJiN2QyOTIyYmEzNjY5NWQ0ZDkyNjMwNDBm
NTBmMmZmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0zNzUsNyArMzc1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRp
bmdBcHBsaWNhdGlvbk1hbmlmZXN0KHVpbnQ2NF90LCBjb25zdCBzdGQ6Om9wdGlvbmFsPEFwcGxp
Y2F0aW9uTWFuaWZlc3Q+JikgeyB9CiAjZW5kaWYKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JB
R0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgdmlydHVhbCBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nl
c3MoYm9vbCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuY3BwCmluZGV4IDQ2N2UyNjk5YWI1MjFjMWU5NWQ2NjVkODE2MTY5NjE5MjBj
NzNhOWEuLjkwNDhmODE3NzJkOWQzMThhMWI1NDU3MTlkMzVkYmFmYWY4NTlhNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmNwcApAQCAtMTc5LDcg
KzE3OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1VzZXJJbnRlcmFjdGlvbldp
dGhSZWR1Y2VkVGltZVJlc29sdXRpb24oY29uc3QgRG9jCiAgICAgc3RhdGlzdGljcy5sYXN0U2Vl
biA9IG5ld1RpbWU7CiAgICAgc3RhdGlzdGljcy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGlt
ZSA9IG5ld1RpbWU7CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykK
KyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvKiBvcGVu
ZXIgPSBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5vcGVuZXIoKSkgewogICAgICAgICBpZiAo
YXV0byogb3BlbmVyRG9jdW1lbnQgPSBvcGVuZXItPmRvY3VtZW50KCkpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiBvcGVuZXJGcmFtZSA9IG9wZW5lckRvY3VtZW50LT5mcmFtZSgpKSB7CkBAIC0x
OTQsNyArMTk0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0
aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihjb25zdCBEb2MKICAgICBtX25vdGlmaWNhdGlv
blRpbWVyLnN0b3AoKTsKICAgICBub3RpZnlPYnNlcnZlcigpOwogCi0jaWYgSEFWRShDRk5FVFdP
UktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIGlmIChzaG91bGRMb2dVc2VySW50ZXJhY3Rpb24oKSkgewogICAgICAgICBhdXRvIGNvdW50
ZXIgPSArK21fbG9nZ2luZ0NvdW50ZXI7CiAjZGVmaW5lIExPQ0FMX0xPRyhzdHIsIC4uLikgXApA
QCAtMjE4LDcgKzIxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1VzZXJJbnRl
cmFjdGlvbldpdGhSZWR1Y2VkVGltZVJlc29sdXRpb24oY29uc3QgRG9jCiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OmxvZ1dpbmRvd0NyZWF0aW9uKGNvbnN0IFVSTCYgcG9wdXBVcmwsIHVp
bnQ2NF90IG9wZW5lclBhZ2VJRCwgRG9jdW1lbnQmIG9wZW5lckRvY3VtZW50KQogewotI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCiAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihwcmlt
YXJ5RG9tYWluKHBvcHVwVXJsKSwgb3BlbmVyUGFnZUlELCBvcGVuZXJEb2N1bWVudCwgZmFsc2Up
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocG9wdXBVcmwpOwpAQCAtMjI3LDcgKzIyNyw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dpbmRvd0NyZWF0aW9uKGNvbnN0IFVSTCYg
cG9wdXBVcmwsIHVpbnQ2NF90IG9wZW5lCiAjZW5kaWYKIH0KIAotI2lmIEhBVkUoQ0ZORVRXT1JL
X1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKGNvbnN0IFN0cmluZyYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRf
dCBvcGVuZXJQYWdlSUQsIERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCwgYm9vbCBpc1RyaWdnZXJl
ZEJ5VXNlckdlc3R1cmUpCiB7CiAgICAgYXV0byBvcGVuZXJVcmwgPSBvcGVuZXJEb2N1bWVudC51
cmwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKaW5k
ZXggNWYwNTFiYjA1OGUwNTVjZjgxNjU0N2U3MjA2NGQ4NDAzOGQ4ZDA1Ni4uOGI1ODdkOGE2NTZj
MDljNWM2NmIzZDlhOGYzOWI4YWQwMDc5ZWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZE9ic2VydmVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5T2JzZXJ2ZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGNsZWFyU3RhdGUoKTsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9O
SU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBib29sIHNob3VsZExvZ1Vz
ZXJJbnRlcmFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTG9nVXNlckludGVyYWN0aW9u
OyB9CiAgICAgdm9pZCBzZXRTaG91bGRMb2dVc2VySW50ZXJhY3Rpb24oYm9vbCBzaG91bGRMb2dV
c2VySW50ZXJhY3Rpb24pIHsgbV9zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24gPSBzaG91bGRMb2dV
c2VySW50ZXJhY3Rpb247IH0KICNlbmRpZgpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpOwogICAgIFZlY3RvcjxSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPiB0YWtlU3RhdGlzdGljcygpOwogCi0jaWYgSEFWRShDRk5FVFdPUktf
U1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoY29uc3QgU3RyaW5n
JiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgRG9j
dW1lbnQmIG9wZW5lckRvY3VtZW50LCBib29sIGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSk7CiAj
ZW5kaWYKIApAQCAtOTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIFdURjo6RnVuY3Rpb248dm9p
ZCAoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpPiBtX25vdGlmaWNhdGlvbkNhbGxi
YWNrOwogICAgIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCB1aW50NjRfdCwgY29u
c3QgU3RyaW5nJiwgYm9vbCk+IG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxi
YWNrOwogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uVGltZXI7Ci0jaWYgSEFWRShDRk5FVFdPUktf
U1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IHVpbnQ2NF90IG1fbG9nZ2luZ0NvdW50ZXIgeyAwIH07CiAgICAgYm9vbCBtX3Nob3VsZExvZ1Vz
ZXJJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCA5MGE4OGQzNmUxM2U3MDFkMjQ0ZGMzNTYzYmFiZjY1NmRlYTFmYjRkLi5jZmFjZmVk
MTIyOTNiMDllY2E4ZTlmNmI4MjM2NDQzYmJkYThmODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0yMjg0LDcgKzIyODQsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBE
T01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29ucwogICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZlV2luZG93LmRv
Y3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCByZXNv
dXJjZVJlcXVlc3QsICJfc2VsZiJfcywgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRM
aXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6
WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIGFjdGl2ZURvY3VtZW50LT5zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUg
fTsKICAgICAgICAgbmV3RnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJh
bWVMb2FkUmVxdWVzdCkpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05J
TkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgaWYgKGF1
dG8gb3BlbmVyRG9jdW1lbnQgPSBvcGVuZXJGcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAgICAg
ICBpZiAoYXV0byBvcGVuZXJQYWdlSUQgPSBvcGVuZXJGcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5w
YWdlSUQoKSkKICAgICAgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCku
bG9nV2luZG93Q3JlYXRpb24oY29tcGxldGVkVVJMLCBvcGVuZXJQYWdlSUQudmFsdWUoKSwgKm9w
ZW5lckRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDgxZGFjZmY5N2Q5MDFmZWVjNTViZGM4
MmY4YTE4MDY3M2E0ODNjNDIuLjhhM2Q0NDM3MTEyY2RkOWYzOTRjNTBlNGVmNjU5MmIxOGQyMzUz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZiBwbGF0Zm9ybVNlc3Npb24oKSB7IHJldHVybiBtX3BsYXRmb3JtU2Vz
c2lvbi5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDRkhUVFBDb29raWVT
dG9yYWdlUmVmPiBjb29raWVTdG9yYWdlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoYm9vbCk7Ci0jaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvbWFpbnNUb0Jsb2NrLCBib29sIGNsZWFyRmlyc3QpOwpAQCAtMTg1LDcgKzE4NSw3IEBA
IHByaXZhdGU6CiAKICAgICBDcmVkZW50aWFsU3RvcmFnZSBtX2NyZWRlbnRpYWxTdG9yYWdlOwog
Ci0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNv
b2tpZXMoY29uc3QgU3RyaW5nJiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKSBjb25zdDsK
ICAgICBIYXNoU2V0PFN0cmluZz4gbV90b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc1RvQmxv
Y2s7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nLCBEZWZh
dWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFp
dHM8dWludDY0X3Q+PiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFj
Y2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggMzNkMjNiYzliODk4
N2RmMWVmMGE1YTliZDdkMjg3OTA4YzdiNTFkYS4uZmEwNGM4YjcwOTljYmFlYjZlNWY0YzE1YjE3
NDUyNjc0MDliM2FkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTIy
MCw3ICsyMjAsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0U3RvcmFnZUFjY2Vz
c0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkID0g
ZW5hYmxlZDsKIH0KIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQor
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKIHN0YXRpYyBpbmxpbmUgU3Ry
aW5nIGdldFBhcnRpdGlvbmluZ0RvbWFpbihjb25zdCBVUkwmIHVybCkKIHsKQEAgLTM4Niw3ICsz
ODYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVzZXRDYWNoZU1heEFnZUNhcEZv
clByZXZhbGVudFJlc291cmNlcygpCiB7CiAgICAgbV9jYWNoZU1heEFnZUNhcEZvclByZXZhbGVu
dFJlc291cmNlcyA9IHN0ZDo6bnVsbG9wdDsKIH0KLSNlbmRpZiAvLyBIQVZFKENGTkVUV09SS19T
VE9SQUdFX1BBUlRJVElPTklORykKKyNlbmRpZiAvLyAgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKIAogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3Qg
VVJMJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
TmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IGNlMGNhYTA5
MmMzZjcxYjlkNDMzZjcxZDI3ZTg0NzY3MDVhZmNmNjEuLmQ4YzM0N2M2YzI0YzlhODk2OTRmNWNj
ODk4YjA2OWRiNTYwNmUxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bQpAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29v
a2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcykKIAogc3RhdGljIE5TQXJyYXkgKmNvb2tp
ZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlEKQogewotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5H
KQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKHNlc3Npb24u
c2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKICNlbHNlCkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVMKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmls
dGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcyk7CiAgICAgQVNTRVJUKFtmaWx0ZXJlZENvb2tp
ZXMuZ2V0KCkgY291bnRdIDw9IDEpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJU
SVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAo
c2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKICAg
ICAgICAgcmV0dXJuOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYWM0
NDM0N2JlZDc5NDQ2NDkyNjFiMjM3NTMwYThlMjg0NDg5MGQ5OC4uZjExYzNjZWQ0NDZhMmY2NDAw
ZjY0NGEwOThhN2I1MWNiZDU1OTQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTM5Nyw3ICszOTcsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogewogICAgIGF1dG8mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgc3Rk
Ojp0aWUoY29va2llU3RyaW5nLCBzZWN1cmVDb29raWVzQWNjZXNzZWQpID0gbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZy
YW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwotI2lmIEhBVkUoQ0ZORVRXT1JL
X1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBpZiAoTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0
aW9uKCkpCiAgICAgICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRp
b24oIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NIiwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhpcyksIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgZmly
c3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGVtcHR5U3RyaW5nKCksIGZyYW1lSUQsIHBhZ2VJ
RCwgc3RkOjpudWxsb3B0KTsKICNlbmRpZgpAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdl
U2Vzc2lvbihzZXNzaW9uSUQpOwogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVz
RnJvbURPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBj
b29raWVTdHJpbmcpOwotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAoTmV0d29ya1Byb2Nlc3M6OnNp
bmdsZXRvbigpLnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCiAgICAgICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9p
ZCo+KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5m
bywgdXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CiAj
ZW5kaWYKQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKQog
ewotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAg
ICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBh
Z2VJRCk7CiAjZWxzZQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBz
CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBw
YWdlSUQpCiB7Ci0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoYXV0byogc3RvcmFnZVNl
c3Npb24gPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
CiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5yZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVz
T25QYWdlKHBhZ2VJRCk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBiNDUwYTg4NmYyYTE2MGQ4ODAyYjM5NWQ5MGEzNWNl
MGY5NGExZjc0Li5iOWU1Mzc3MGJiZGQyMDEwMzRmNjZlMzE5Y2RhNzE2OTM4YTFhZWM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
Mjg0LDcgKzI4NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgaWYgKHBhcmFtZXRl
cnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAotI2lmIEhBVkUoQ0ZORVRX
T1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICBtX2xvZ0Nvb2tpZUluZm9ybWF0aW9uID0gcGFyYW1ldGVycy5sb2dDb29raWVJbmZvcm1h
dGlvbjsKICNlbmRpZgogCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
d3JpdGVCbG9iVG9GaWxlUGF0aChjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgY29uc3QgU3RyaW5n
JgogICAgIH0pOwogfQogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcp
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgYm9vbCBz
aG91bGRDbGVhckZpcnN0LCB1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgaWYgKGF1dG8qIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Np
b24oc2Vzc2lvbklEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA5MmQ2ZDAzNDRiNjIwZjlkZmVlZDYyMGI4NDVhNWMwNDczM2MzMjJjLi43
OWI3OGE1NDQ0NjA4MjNmNDc4YjRlYmY0ODA2ZDE4OTYxOGZmNmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMzksNyArMTM5LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBhZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzJiYpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcp
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lkIHVwZGF0ZVBy
ZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBib29sIHNob3VsZENsZWFyRmlyc3QsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmly
c3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRf
dCBjb250ZXh0SWQpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpT
ZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CkBAIC0xNTcsNyArMTU3LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9Q
QVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGJvb2wgc2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvZ0Nvb2tpZUluZm9y
bWF0aW9uOyB9CiAjZW5kaWYKIApAQCAtMzAyLDcgKzMwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2Rpc2tDYWNoZUlzRGlzYWJsZWRGb3JUZXN0aW5nOwogICAgIGJvb2wgbV9jYW5IYW5kbGVI
VFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjsKICAgICBTZWNvbmRzIG1fbG9hZFRocm90dGxlTGF0
ZW5jeTsKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgYm9vbCBtX2xvZ0Nvb2tpZUluZm9ybWF0aW9uIHsg
ZmFsc2UgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0ZDBjOGIxZTYwYjYzYmQ3ZDQy
MzNhOGY4ZmE5NjExY2I2Mzg0NWY2Li5kY2Q5ZWI2ZjU5NGQwM2ViOGVjZWEwNWYzOTlmOGZkZjZk
ZjNjYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTgxLDcgKzgxLDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUHJlY29ubmVjdFRvKFdlYkNvcmU6
OlVSTCB1cmwsIGVudW0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05J
TkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBVcGRhdGVQcmV2
YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBW
ZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgYm9vbCBzaG91bGRDbGVhckZpcnN0LCB1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0
SWQpCiAgICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IGYwMTNjOWQyMmM3ZjM5ZThmMWY5NmUyOWQ4MTExNjRiNTZhMjgyYTguLmQ4ZjdkNGUz
ZTAxY2I4OWQ5ZWRkNDVmYzM2NDNmZDBkY2IxNTdkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZWxpZiBV
U0UoQ1VSTCkKICAgICBlbmNvZGVyIDw8IGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZTsKICNl
bmRpZgotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBlbmNvZGVyIDw8IGxvZ0Nvb2tpZUluZm9ybWF0aW9u
OwogI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKQEAgLTIxOSw3ICsyMTksNyBA
QCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
IAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5sb2dDb29r
aWVJbmZvcm1hdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDcxNGE3MjFmNjRkNTkwMmVmODEzMmU5M2M4MDliZDg4
ZjMxN2Y3NDUuLjRlYzEwZGYxZTg5N2NiNmMzZWVhZDE4ZmUzMGM3NDZlMDQwNWU1YmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBzdHJ1Y3QgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFN0cmluZyBjb29raWVQZXJzaXN0
ZW50U3RvcmFnZUZpbGU7CiAjZW5kaWYKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFS
VElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBib29sIGxvZ0Nv
b2tpZUluZm9ybWF0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTBi
ZDMwMWNjZTNlMDdmZWU1NzA5N2Y0MzM3NmYxMDZiNGVhYmI1ZC4uYjhhNzRhM2NlZjVmZDYxMTg4
NTcxMzI0YTA2OGY5NjA4YmFjZWJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTgsNyArNTgsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg+CiAjZW5kaWYKIApAQCAtNTM4LDcgKzUzOCw3IEBAIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0
cmljcyYgbmV0d29ya0xvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBIQVZFKENGTkVU
V09SS19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgaWYgKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCiAgICAgICAgIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCk7CiAjZW5kaWYKQEAgLTg0Nyw3ICs4NDcsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtDYWNoZQogICAgIH0KICNlbmRpZgogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9Q
QVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICBsb2dDb29raWVJbmZvcm1hdGlvbigp
OwogI2VuZGlmCkBAIC05NDYsNyArOTQ2LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29ubmVjdGlvbi0+Y2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZCgpOwog
fQogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uKCkKIHsKICAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmds
ZXRvbigpLnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA5NmVkYWIz
NzQ3ZTgwN2Q4ZWY4NmRiODIzODU5OTY2NmE3NDg5NDA4Li5hZmIwZTljNzk1NjYzZWFiMDVlYzRh
ZjRmMzgyNTRiNzdmYWVjMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OwogCi0jaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCk7CiAg
ICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYKQEAg
LTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29uc3VtZVNhbmRib3hFeHRlbnNp
b25zKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2FuZGJveEV4dGVuc2lvbnMoKTsKIAotI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3Q7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCmluZGV4IDBkODBiZjdjOGMyNTcwZmI4MGRhNTY0OGI5MWVjZGRmOGI1NjU1NDAuLmZl
MmFhNWFmOTY2OTFiZjIxNDhmNTUyM2ZmMWUwZmVlZWVhMjEwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTM0MSw3
ICszNDEsNyBAQCB2b2lkIENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IEdsb2JhbEZyYW1lSQogICAgICAgICBhdXRvIGVudHJ5ID0g
RW50cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAKICAgICAgICAgc3RkOjpvcHRp
b25hbDxTZWNvbmRzPiBtYXhBZ2VDYXA7Ci0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJU
SVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAg
aWYgKGF1dG8gbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICAgICAgbWF4QWdlQ2Fw
ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uLT5tYXhBZ2VDYWNoZUNhcChyZXF1ZXN0KTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDYyYjFjMTQ5NWExYzE3YWMyNmU5OGNlYmE3ZjJhNzA4
MWU2ODJlYWMuLjAzMGZhNTJiYjIzNWYxZTc4Y2NmZjFmMWRhNmVhN2UwYjBmZTE4OTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHRyeVBh
c3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNu
aWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcg
TlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmKTsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9O
SU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgc3RhdGljIE5T
SFRUUENvb2tpZVN0b3JhZ2UgKnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UoKTsKICAgICB2b2lkIGFw
cGx5Q29va2llQmxvY2tpbmdQb2xpY3koYm9vbCBzaG91bGRCbG9jayk7CiAjZW5kaWYKQEAgLTEw
Miw3ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKICAgICB1aW50
NjRfdCBtX3BhZ2VJRDsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5H
KQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBtX2hhc0Jl
ZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDBhNDA5NDUxODg0ZTlmYTJkNDU1M2RmN2ViYmM5ZmNhZDc0
ZWU3ZmUuLmU1YWY0ZjgzZjFiNTAxYjhiM2Q4YTFiYzU3YzlkNzM5MDVmYzk5MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMTEyLDggKzExMiw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRl
CiAgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKIH0KIAotI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotCisjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKIE5TSFRUUENvb2tpZVN0b3JhZ2UgKk5ldHdvcmtEYXRhVGFz
a0NvY29hOjpzdGF0ZWxlc3NDb29raWVTdG9yYWdlKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UmV0YWluUHRyPE5TSFRUUENvb2tpZVN0b3JhZ2U+PiBzdGF0ZWxlc3NDb29raWVTdG9y
YWdlOwpAQCAtMTQyLDcgKzE0MSw2IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5
Q29va2llQmxvY2tpbmdQb2xpY3koYm9vbCBzaG91bGRCbG9jaykKICAgICBbbV90YXNrIF9zZXRF
eHBsaWNpdENvb2tpZVN0b3JhZ2U6c3RvcmFnZS5fY29va2llU3RvcmFnZV07CiAgICAgbV9oYXNC
ZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID0gc2hvdWxkQmxvY2s7CiB9Ci0KICNl
bmRpZgogCiBib29sIE5ldHdvcmtEYXRhVGFza0NvY29hOjppc1RoaXJkUGFydHlSZXF1ZXN0KGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTE5Nyw3ICsxOTUsNyBA
QCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Np
b24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogI2VuZGlmCiAKICAgICBib29sIHNob3VsZEJsb2Nr
Q29va2llcyA9IGZhbHNlOwotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5H
KQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgc2hvdWxkQmxvY2tD
b29raWVzID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9ja0Nvb2tp
ZXMocmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlEKTsKICNlbmRpZgogICAgIGlmIChzaG91bGRCbG9j
a0Nvb2tpZXMgfHwgKG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSAmJiBpc1Ro
aXJkUGFydHlSZXF1ZXN0KHJlcXVlc3QpKSkKQEAgLTIzMCw3ICsyMjgsNyBAQCBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXRhVAogI2VuZGlmCiAgICAgfQogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFH
RV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIGlmIChOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkTG9nQ29va2llSW5m
b3JtYXRpb24oKSkKQEAgLTM0Nyw3ICszNDUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29h
Ojp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgog
ICAgICAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3QudXJsKCkpOwog
CiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMgPSBmYWxzZTsKLSNpZiBIQVZFKENGTkVUV09S
S19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkuc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QsIG1fZnJhbWVJRCwgbV9wYWdlSUQp
OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChOZXR3b3JrUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKQEAgLTM2MCw3ICszNTgsNyBA
QCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMgfHwg
KG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSAmJiBpc1RoaXJkUGFydHlSZXF1
ZXN0KHJlcXVlc3QpKSkKICAgICAgICAgcmVxdWVzdC5zZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRv
T3JpZ2luU3RyaW5nKCk7CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIC8vIEFsd2F5cyBh
cHBseSB0aGUgcG9saWN5IHNpbmNlIGJsb2NraW5nIG1heSBuZWVkIHRvIGJlIHR1cm5lZCBvbiBv
ciBvZmYgaW4gYSByZWRpcmVjdC4KICAgICBhcHBseUNvb2tpZUJsb2NraW5nUG9saWN5KHNob3Vs
ZEJsb2NrQ29va2llcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggOTUzY2NlZWQxMGFiOWZjMWEyZjk1Njk5
NGU5OWQ0ODI5MGZhNWNkNC4uMzdkOGI1MGM3MDc1ODk5MDcwMjZmOGRlYTYwNGNiZDJkN2EyMmM2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBwcm94eVNldHRpbmdzOwogI2VuZGlmCiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9S
QUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZW5j
b2RlciA8PCBzaG91bGRMb2dVc2VySW50ZXJhY3Rpb247CiAjZW5kaWYKIApAQCAtNDAyLDcgKzQw
Miw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCBhMDQ2MjQ1Y2QyZTY5N2I1ZDdlMGM4MjRjODljMTUzMTlkZTAyODBhLi4z
ZTY2ZGQzOGZhMWQ0Y2MzMzUwMGM2YmQ2YzU3YTY5MTk5MThiZmQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xOTIs
NyArMTkyLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZl
Y3RvcjxTdHJpbmc+IG1lZGlhTUlNRVR5cGVzOwogI2VuZGlmCiAKLSNpZiBIQVZFKENGTkVUV09S
S19TVE9SQUdFX1BBUlRJVElPTklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgYm9vbCBzaG91bGRMb2dVc2VySW50ZXJhY3Rpb24geyBmYWxzZSB9OwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCmluZGV4IDRlNWFlMzE3M2E5NTFjZmYzOTBhMTk3NjExMGY0MGViNGIxOTJjMzYuLmYyMmEy
MWE1MjllZDllNWQ5NzViNDZlZTUyMjYyNzIwNjFjMmQ1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNzcsNyAr
NzcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJLaXROZXR3b3JrQ2FjaGVFZmZpY2Fj
eUxvZ2dpbmdFbmFibGVkRGVmYXVsdHNLZXkgPSBAIgogc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
V2ViS2l0U3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleSA9IEAiV2ViS2l0
U3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIiOwogc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tleSA9
IEAiV2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHMiOwogCi0jaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0TG9nQ29va2llSW5mb3Jt
YXRpb25EZWZhdWx0c0tleSA9IEAiV2ViS2l0TG9nQ29va2llSW5mb3JtYXRpb24iOwogI2VuZGlm
CiAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmCiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBs
ZS53ZWJraXQubWljcm9waG9uZSIsIHBhcmFtZXRlcnMuYXVkaW9DYXB0dXJlRXh0ZW5zaW9uSGFu
ZGxlKTsKICNlbmRpZgogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHBhcmFtZXRlcnMuc2hvdWxkTG9n
VXNlckludGVyYWN0aW9uID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViS2l0TG9nQ29va2llSW5m
b3JtYXRpb25EZWZhdWx0c0tleV07CiAjZW5kaWYKICAgICAKQEAgLTMwNSw3ICszMDUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYQogICAgIHBhcmFtZXRlcnMuc3RvcmFnZUFjY2Vzc0FQSUVu
YWJsZWQgPSBzdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCgpOwogICAgIHBhcmFtZXRlcnMuc3VwcHJl
c3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gbV9jb25maWd1cmF0aW9u
LT5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UoKTsKIAotI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBwYXJhbWV0ZXJzLmxvZ0Nvb2tpZUluZm9ybWF0aW9uID0gW2RlZmF1
bHRzIGJvb2xGb3JLZXk6V2ViS2l0TG9nQ29va2llSW5mb3JtYXRpb25EZWZhdWx0c0tleV07CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggODEwZGFmOTFkNGMzMjU4ZTBlMzMwMDRhZjIwMGVk
MzhlYmU5NjdjOS4uZDkxMGIwZGMzZTRhZWVhY2ExMDk0MTI3YTExYzQ2YjUzMjQzMmYyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC0zOTEsNyArMzkxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFMK
ICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlw
dGlvbiwgdmFsdWUsIHNpZ25pZmljYW50RmlndXJlcywgc2hvdWxkU2FtcGxlKTsKIH0KIAotI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVwZGF0ZVByZXZh
bGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgU2hvdWxkQ2xlYXJGaXJzdCBzaG91
bGRDbGVhckZpcnN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDZmOTY0
OGRiOGEwZTcwN2MwNzM0ZDMzMDIzNDA1N2FkMWZhOGUzYTAuLmE2YzQyMTNhZWEyZGZhZjhkY2Fk
NjU5YTdmMjhhYzFmZWRiYzVmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdp
bnMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBIU1RTQ2FjaGVIb3N0TmFtZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWlu
c1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZG9tYWluc1RvQmxvY2ssIFNob3VsZENsZWFyRmlyc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJp
bmc+JiYgZG9tYWlucyk+JiYpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsK
ICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMy
X3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlm
aWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwotI2lmIEhBVkUoQ0ZORVRXT1JL
X1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgdm9pZCBkaWRVcGRhdGVCbG9ja0Nvb2tpZXModWludDY0X3QgY29udGV4dElkKTsK
ICAgICB2b2lkIHN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWlu
dDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzUmVzdWx0
KFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucywgdWludDY0X3QgY29udGV4dElkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhZTdmNTZlNGQzNjhmYThmNTlkYTg2ODZmMmZiYzMy
MWE0OWNmZTIyLi5jMmE0OWI0ZDlkMWVhZjJkN2UzZWU0NzY2OTQyN2QxN2IxMjZjY2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0MSw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIExvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcg
ZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgZW51bSBXZWJDb3JlOjpTaG91bGRTYW1wbGUg
c2hvdWxkU2FtcGxlKQogICAgIExvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90
IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVl
LCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIGVudW0gV2ViQ29yZTo6U2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5H
KQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgRGlkVXBkYXRlQmxv
Y2tDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSWQpCiAgICAgU3RvcmFnZUFjY2Vzc1JlcXVlc3RS
ZXN1bHQoYm9vbCB3YXNHcmFudGVkLCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgQWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXNSZXN1bHQoVmVjdG9yPFN0cmluZz4gZG9tYWlucywgdWludDY0X3QgY29u
dGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjgw
MDRkZTM0ZjFkNmQ5NTZjY2VmODAxYWJlZmNmMThmYzhjNDU2Ni4uYmQ2NzA0NmUzNzM2ZDA3MGE1
MGNjMjQyZmUzOWQ0MzIyNThlNTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdF
X1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogI2lu
Y2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2VuZGlmCiAKQEAgLTc2
NTYsNyArNzY1Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3luY2hyb25vdXNVUkxTY2hl
bWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiAgICAgaXRlcmF0b3ItPnZh
bHVlLT5zdGFydFRhc2soKnRoaXMsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUo
cGFyYW1ldGVycy5yZXF1ZXN0KSwgV1RGTW92ZShyZXBseSkpOwogfQogCi0jaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKIHZvaWQgV2ViUGFnZVByb3h5OjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1
YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCB3ZWJQcm9jZXNzQ29udGV4dElkKQogewogICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+aGFz
U3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0
KSwgZnJhbWVJRCwgbV9wYWdlSUQsIFt0aGlzLCB3ZWJQcm9jZXNzQ29udGV4dElkXSAoYm9vbCBo
YXNBY2Nlc3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjM1
YmVlNGRmZTc4NTRkMTJhMWE0ZDQ1ZmQ1Yjk5MmJmMDlmMDQ2OS4uMjNkZThkYjE5Mzk5ZDUyYjA0
NTBiNGUzOWVmNzY0NWQ1OTEwN2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTEzMjMsNyArMTMyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRvdWNoQmFyTWVu
dUl0ZW1EYXRhUmVtb3ZlZChjb25zdCBUb3VjaEJhck1lbnVJdGVtRGF0YSYpOwogI2VuZGlmCiAK
LSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcm
JiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3Qgd2ViUHJvY2Vzc0NvbnRleHRJZCk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3Qgd2ViUHJvY2Vzc0NvbnRleHRJZCwgYm9vbCBwcm9tcHQpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggNGNmYzdmNjBhMWRhZjYwNDMxOWNkNzY3ZTI3MGQzNzIzM2QwOWNhOS4uNWU2
N2M2MGZmNTA4MDdlZjA1ZGQ0YjgxZmY2OWJkNWM1NDcyNjRhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTI2LDcgKzUyNiw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVSTFNjaGVtZVRhc2sodWlu
dDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogICAgIExv
YWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KSBEZWxheWVkCiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIEhhc1N0b3JhZ2VBY2Nlc3Mo
U3RyaW5nIHN1YkZyYW1lSG9zdCwgU3RyaW5nIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgY29udGV4dElEKQogICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyBz
dWJGcmFtZUhvc3QsIFN0cmluZyB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IGNvbnRleHRJRCwgYm9vbCBwcm9tcHQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmlu
ZGV4IGZhNWVmMjE1MjRiYzg0NTk2YzhmZDI4NGU1YTE2ZjY4MjU2MGFmNzIuLjZkMzM4OTBhYzhk
ZGYwNzZmMDJkNjI3MTRhNTFiNTAyMjZiNzdmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAt
MjM5LDcgKzIzOSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxs
SGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9O
SU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1fd2Vi
c2l0ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmhhc1N0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZy
YW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgICAgICByZXR1cm47CkBAIC0z
MTIsNyArMzEyLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05J
TkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAobV93ZWJz
aXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+Z3JhbnRTdG9yYWdl
QWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFyeURvbWFp
biwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2bwogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJ
VElPTklORykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmICht
X3dlYnNpdGVEYXRhU3RvcmUpCiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVtb3ZlQWxs
U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGVs
c2UKQEAgLTc0OCw3ICs3NDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6c2NoZWR1bGVDbGVhckJsb2NraW5nU3RhdGVGb3JEb21haW5zKGNvbnN0CiAgICAgfSk7CiB9
CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdTdGF0ZVJlc2V0KCkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtODI3LDcgKzgyNyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcChTZWNvbmRzIHNlY29uZHMsIENv
bXBsZXRpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vjb25k
cyA+PSAwX3MpOwogICAgIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5H
KQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1fd2Vic2l0
ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tD
b29raWVzRm9yCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotI2lmIEhBVkUo
Q0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dl
YnNpdGVEYXRhU3RvcmUtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihk
b21haW5zVG9CbG9jaywgc2hvdWxkQ2xlYXJGaXJzdCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogICAgICAgICByZXR1cm47CkBAIC04NTMsNyArODUzLDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0
b3I8U3RyaW4KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0jaWYgSEFWRShD
Rk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQogICAgICAgICBtX3dlYnNp
dGVEYXRhU3RvcmUtPnJlbW92ZVByZXZhbGVudERvbWFpbnMoZG9tYWlucyk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggMzZhYWU1YmFlN2ViOTc2ZDczOGUzOWI2OGI5YjUyM2FhMTdiNGZl
ZS4uZDg1Y2FhMzkxZDAwY2MyZWNlZDc1MjM2NWFhZmQ3ZGEyMDIyMWJmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKQEAgLTEyNDgsNyArMTI0OCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3Zl
RGF0YUZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zKE9wdGlvblNldDxXZWJzCiAgICAg
fSk7CiB9CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvbWFpbnNUb0Jsb2NrLCBTaG91bGRDbGVhckZpcnN0IHNob3VsZENsZWFyRmlyc3QsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRv
IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEzNDQsNyArMTM0NCw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5n
JiYgdG9wRnJhCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9Q
QVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBh
dXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29s
IDogcHJvY2Vzc1Bvb2xzKCkpIHsKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBz
ZWNvbmRzLCBDCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZv
clByZXZhbGVudFJlc291cmNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBhdXRvIGNhbGxiYWNrQWdn
cmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xz
KCkpIHsKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRD
YWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhDb21wbGV0aW9uSGFuZGxlCiAKIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiB7Ci0jaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKICAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAg
ICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxlQ29va2llQmxvY2tpbmdTdGF0ZVJl
c2V0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA1NTY5YzljNWRlNDgwYWQwOTA2MzBiMWIy
NzljZjM4YjA1OTU4NDkyLi5iNGQ3MDBlOTkwYmZmMDI2OWY3NmI5MDQ3NDIzZDQ0Y2QxYzc4OWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCkBAIC02Miw3ICs2Miw3IEBAIHN0cnVjdCBTdG9yYWdlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29yZDsKIHN0cnVjdCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFS
VElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiBlbnVtIGNs
YXNzIFN0b3JhZ2VBY2Nlc3NTdGF0dXM7CiBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRT
dGF0dXM7CiAjZW5kaWYKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1v
dmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2Vic2l0ZURh
dGFSZWNvcmQ+JiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2
b2lkIHJlbW92ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlucyhPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnMsIEZ1bmN0aW9u
PHZvaWQoSGFzaFNldDxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAotI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nv
b2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrLCBTaG91bGRDbGVh
ckZpcnN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25z
dCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYpOwogICAgIHZv
aWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXModWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCAzZTlmYzljYzEwMTIxMWI5NmE4NjViYjM2NjNhMDc1ZjgyMDJiNDUwLi5m
NDI2OGEzYzJkYWIzNjdjYjQ0NDg5NGFhZDM3MzgwOTU1MTlkNmQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtMTMwNSw3ICsxMzA1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZElu
dmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKICAgICBtX3BhZ2UuZmluZENvbnRyb2xsZXIo
KS5kaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpOwogfQogCi0jaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYm
IHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKIHsKICAg
ICBtX3BhZ2UuaGFzU3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUo
dG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDVlMDBjZDQzZjZiYzM5M2Y4M2QyNmYwNDhlZTJhM2Q4NTMyYjA5ZTEuLjE1Y2Fl
YjllMGI4MmRjMDNlMTI3NTg0NWFhYjZiMjdjMWYxOWE1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTM2Myw3ICszNjMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9j
dW1lbnRNYXJrZXJSZWN0cygpIGZpbmFsOwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9Q
QVJUSVRJT05JTkcpCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BG
cmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQgKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNzAzYThhMDRhZjg2Y2Q4Mjg1NmNkNjk2NGZlN2VhYTk4ZDZmN2ZlZi4uMWI4NTU4
MzU1NzQ5ZmQ2OTU2MjZmODA5NzY1NTNmMzAyODZmZjE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGV0YWNoZWRGcm9tUGFyZW50MigpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1
cm47CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChtX2hhc0ZyYW1lU3BlY2lmaWNT
dG9yYWdlQWNjZXNzKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHNl
c3Npb25JRCgpLCBmcmFtZUlEKCkudmFsdWUoKSwgcGFnZUlEKCkudmFsdWUoKSksIDApOwogICAg
ICAgICBtX2hhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzID0gZmFsc2U7CkBAIC0zODYsNyAr
Mzg2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VNYWlu
RG9jdW1lbnQoKQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxDaGFu
Z2VEb2N1bWVudChjb25zdCBVUkwmIGN1cnJlbnRVcmwsIGNvbnN0IFVSTCYgbmV3VXJsKQogewot
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxYzVlZTZh
OTlmYmJmN2M1MzAyODYyMTM0OTg4YTU2OTBiOTk0ZjdkLi5jMWI5Y2QwZjk0MzMyNzljZGQ4NGMw
Yzk1ZmE4MWI5ODRlNWY1NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTUs
NyArNTUsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgp
IGNvbnN0IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFs
OwogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9y
YWdlQWNjZXNzKCkgeyByZXR1cm4gbV9oYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzczsgfQog
ICAgIHZvaWQgc2V0SGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoYm9vbCB2YWx1ZSkgeyBt
X2hhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzID0gdmFsdWU7IH07CiAjZW5kaWYKQEAgLTI4
Myw3ICsyODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mcmFtZUhhc0N1c3RvbUNvbnRlbnRQ
cm92aWRlcjsKICAgICBib29sIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZTsKICAgICBib29sIG1f
dXNlSWNvbkxvYWRpbmdDbGllbnQgeyBmYWxzZSB9OwotI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JB
R0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgYm9vbCBtX2hhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzIHsgZmFsc2UgfTsKICNlbmRp
ZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZmJhZDg0OWJmMjRlYmQ5MWI0NmMxMWY5ZjMxYTAzMDY0NWZhZjJiNC4uMTYyMWU5ZjQ0MmYy
YWI3YTE2MjU2NGVmODFhNTM3NzgyNGQ0M2I5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYwNDksNyArNjA0OSw3IEBAIHZvaWQgV2ViUGFn
ZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlm
aWVyJiYgcmVtb3RlCiAgICAgICAgIGNsb3NlKCk7CiB9CiAKLSNpZiBIQVZFKENGTkVUV09SS19T
VE9SQUdFX1BBUlRJVElPTklORykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogc3RhdGljIHVpbnQ2NF90IG5leHRSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbnRleHRJZCgpCiB7
CiAgICAgc3RhdGljIHVpbnQ2NF90IG5leHRDb250ZXh0SWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDJkMmU4ZjU3MGJhNDkyMTZhOGVmYzhj
ZDFlMWE2MjQ2ZTE4MDU2MDYuLjNkYTE0MzIwYzMzZGYxNGFkOGMyYjczZTg1NTc1NjYyMjJlMjRj
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEw
NjksNyArMTA2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmRQYXJ0aWFsRWRpdG9yU3RhdGVB
bmRTY2hlZHVsZVBvc3RMYXlvdXRVcGRhdGUoKTsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0VkaXRv
clN0YXRlVXBkYXRlKCk7CiAKLSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
ayk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3Qs
IFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9pZCBzdG9yYWdlQWNjZXNzUmVzcG9u
c2UoYm9vbCB3YXNHcmFudGVkLCB1aW50NjRfdCBjb250ZXh0SWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNDNk
NGRiZDE5ZTYzODQyMDA4OWFjNGI4NTczYzdmNjMxZmU3YTc4MC4uOGRkYWFmMzFhN2JmMDAyZDc0
NzdiZDc4MjgxM2JhODJiY2ZmMDRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MDgsNyArNTA4LDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0SXNTdXNwZW5kZWQoYm9v
bCBzdXNwZW5kZWQpCiAgICAgVGVhckRvd25EcmF3aW5nQXJlYUZvclN1c3BlbmQoKTsKIAotI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgU3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGJvb2wgd2FzR3Jh
bnRlZCwgdWludDY0X3QgY29udGV4dElkKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCBlODY4YjVhZjE2YWEyZDYxM2E5ODIxMWZiYjU5NmZlYmNj
YThjMTRkLi41MDhmZjY2ODkxYTMyOWQ1ZTllM2IzNmJjNTkyMmQxNTMzYjQ4NTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBKU0M6Oldhc206OmVuYWJsZUZhc3RNZW1vcnkoKTsK
ICNlbmRpZgogCi0jaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFy
ZWQoKS5zZXRTaG91bGRMb2dVc2VySW50ZXJhY3Rpb24ocGFyYW1ldGVycy5zaG91bGRMb2dVc2Vy
SW50ZXJhY3Rpb24pOwogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>