<?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>171005</bug_id>
          
          <creation_ts>2017-04-19 13:14:07 -0700</creation_ts>
          <short_desc>[WK2] Add delegate hooks for overriding unhandled data interaction operations</short_desc>
          <delta_ts>2017-04-22 05:12:06 -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>WebKit2</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1298793</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-19 13:14:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/31669646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298882</commentid>
    <comment_count>1</comment_count>
      <attachid>307520</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-19 16:19:26 -0700</bug_when>
    <thetext>Created attachment 307520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298973</commentid>
    <comment_count>2</comment_count>
      <attachid>307542</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-19 19:54:26 -0700</bug_when>
    <thetext>Created attachment 307542
Augment unit test to check the session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298997</commentid>
    <comment_count>3</comment_count>
      <attachid>307550</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-19 21:40:40 -0700</bug_when>
    <thetext>Created attachment 307550
Include item providers in delegate method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299999</commentid>
    <comment_count>4</comment_count>
      <attachid>307550</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 16:54:56 -0700</bug_when>
    <thetext>Comment on attachment 307550
Include item providers in delegate method.

Thanks Tim!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300003</commentid>
    <comment_count>5</comment_count>
      <attachid>307550</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-21 17:03:05 -0700</bug_when>
    <thetext>Comment on attachment 307550
Include item providers in delegate method.

Clearing flags on attachment: 307550

Committed r215653: &lt;http://trac.webkit.org/changeset/215653&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300004</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-21 17:03:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307520</attachid>
            <date>2017-04-19 16:19:26 -0700</date>
            <delta_ts>2017-04-19 19:54:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171005-20170419161925.patch</filename>
            <type>text/plain</type>
            <size>31419</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTUyZTY5YjU3MjRmODUz
OThkNTgzYWIxNjY5ZjlhNDVlYjJiNzI0NS4uMTBkNGE0MjIxNjNiOTViZGU3MGQxZGFlYTBkZjIx
OGY0ZmY2Y2IzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBk
ZWxlZ2F0ZSBob29rcyBmb3Igb3ZlcnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9w
ZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTAwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2Njk2NDY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBvdmVy
cmlkaW5nIGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9ucyB0aHJvdWdoIHR3byBuZXcgZGVsZWdh
dGUgbWV0aG9kczoKKyAgICAgICAgX3dlYlZpZXc6d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9w
ZXJhdGlvblRvT3BlcmF0aW9uOmZvclNlc3Npb246LCBhbmQKKyAgICAgICAgX3dlYlZpZXc6ZGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOi4gVGhlIGZvcm1lciBt
YXkgYmUgb3ZlcnJpZGRlbiB0byByZXR1cm4gYSBkaWZmZXJlbnQKKyAgICAgICAgb3BlcmF0aW9u
IHR5cGUgdGhhbiB3aGF0IFdlYktpdCB3b3VsZCBvcmlnaW5hbGx5IGhhdmUgcmV0dXJuZWQsIGFu
IHRoZSBsYXR0ZXIgbWF5IGJlIG92ZXJyaWRkZW4gdG8gcnVuIGN1c3RvbQorICAgICAgICBsb2dp
YyBhZnRlciB0aGUgd2ViIHByb2Nlc3MgaGFzIGhhbmRsZWQgYSBkYXRhIGludGVyYWN0aW9uIG9w
ZXJhdGlvbi4KKworICAgICAgICBBZGRpdGlvbmFsbHksIGluY2x1ZGVzIHNvbWUgbWlub3IgY2xl
YW51cCBhcm91bmQgV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLiBXaXRoIHRoZSBuZXcKKyAgICAg
ICAgX3dlYlZpZXc6ZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9u
OiBkZWxlZ2F0ZSBtZXRob2QsIHRoZSBsYXN0IG1ldGhvZCBvbiBfV0tUZXN0aW5nRGVsZWdhdGUK
KyAgICAgICAgbWF5IGJlIHJlbW92ZWQuIFRoaXMgbWVhbnMgX1dLVGVzdGluZ0RlbGVnYXRlIGlz
IG5vIGxvbmdlciBuZWVkZWQsIHNvIHRoaXMgcGF0Y2ggcmVtb3ZlcyBpdHMgaGVhZGVyIGVudGly
ZWx5LgorICAgICAgICBBbHNvLCByZWxvY2F0ZXMgc29tZSBzdGF0ZSB2YXJpYWJsZXMgZm9ybWVy
bHkgb24gV0tDb250ZW50VmlldyB0byBXS0NvbnRlbnRWaWV3J3MgV0tEYXRhSW50ZXJhY3Rpb25T
dGF0ZSBzdHJ1Y3QKKyAgICAgICAgaW5zdGVhZCwgc28gdGhhdCBhbGwgc3RhdGUgYXNzb2NpYXRl
ZCB3aXRoIGRhdGEgaW50ZXJhY3Rpb24gbWF5IGJlIGNsZWFuZWQgdXAgYXQgdGhlIHNhbWUgdGlt
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3Rlc3RpbmdEZWxlZ2F0ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX3NldFRlc3RpbmdEZWxlZ2F0ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRk
IGEgbmV3ICJoYW5kbGVkIiBJUEMgYXJndW1lbnQgdG8gRGlkUGVyZm9ybURhdGFJbnRlcmFjdGlv
bkNvbnRyb2xsZXJPcGVyYXRpb24uIFRoaXMgbGV0cyB0aGUgVUkgcHJvY2VzcworICAgICAgICBr
bm93IHdoZXRoZXIgb3Igbm90IHRoZSBkYXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbiB3YXMgaGFu
ZGxlZCBieSB0aGUgd2ViIHByb2Nlc3MsIGFuZCBpcyBldmVudHVhbGx5IHBsdW1iZWQKKyAgICAg
ICAgdGhyb3VnaCB0byB0aGUgVUkgZGVsZWdhdGUgdmlhIHRoZSBuZXcgU1BJLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBjbGVhbnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfZGlzcGxheUZvcm1Ob2RlSW5wdXRWaWV3XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2Rl
OnVzZXJPYmplY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURhdGFJbnRlcmFj
dGlvbkNvbnRyb2xsZXJPcGVyYXRpb24pOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6
CisKIDIwMTctMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dLMl0gQWRkIGluZnJhc3RydWN0dXJlIGFuZCB1bml0IHRlc3RzIGZvciBmaWxl
IHVwbG9hZHMgdXNpbmcgZGF0YSBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA0ZTM2
MTRlYWE2OTljNzE1MDdjY2U4NmYwNWZjZDBmZDhjNWFmYzg2Li42ZjNjZWZjNDI4ZjY4ZGM5M2E0
YTRkYmFiOGFlYmE1Y2IzNGVlZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtOTYsNiArOTYsOCBA
QCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBwZXJmb3JtRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6KE5T
QXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGF0YUludGVyYWN0aW9uOihpZClpbnRlcmFjdGlvbiBzZXNzaW9uV2lsbEJlZ2luOihpZClzZXNz
aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0aW9uOihpZClpbnRlcmFjdGlvbiBzZXNz
aW9uOihpZClzZXNzaW9uIGRpZEVuZFdpdGhPcGVyYXRpb246KE5TVUludGVnZXIpb3BlcmF0aW9u
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDooQk9P
TCloYW5kbGVkIGZvclNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOworLSAoTlNVSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3
aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uVG9PcGVyYXRpb246KE5TVUludGVnZXIp
b3BlcmF0aW9uIGZvclNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwogI2Vsc2UKIC0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CiAt
IChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNN
ZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVu
dCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCAyNzBhZmRmNzI0YWVjYjRiZDMyODE4ZDMwMzkzMGYxN2QyMGEx
OTFlLi44YjkwN2MwOTE1NGZhZmFiZmI3MTkyOTk2MTk1OTc5NzYwOWUxNGM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTAsNyAr
OTAsNiBAQAogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLU2Vzc2lvblN0YXRlSW50ZXJu
YWwuaCIKLSNpbXBvcnQgIl9XS1Rlc3RpbmdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLVmlzaXRl
ZExpbmtTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5h
bC5oIgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgpAQCAtMjk5LDggKzI5
OCw2IEBAIFdLV2ViVmlldyogZnJvbVdlYlBhZ2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGFnZSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpXZWJWaWV3SW1wbD4gX2ltcGw7CiAg
ICAgUmV0YWluUHRyPFdLVGV4dEZpbmRlckNsaWVudD4gX3RleHRGaW5kZXJDbGllbnQ7CiAjZW5k
aWYKLQotICAgIGlkPF9XS1Rlc3RpbmdEZWxlZ2F0ZT4gX3Rlc3RpbmdEZWxlZ2F0ZTsKIH0KIAog
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZQpAQCAtNTA3NywxNiAr
NTA3NCw2IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRv
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNlCiAjZW5kaWYKIH0KIAotLSAoaWQ8X1dL
VGVzdGluZ0RlbGVnYXRlPilfdGVzdGluZ0RlbGVnYXRlCi17Ci0gICAgcmV0dXJuIF90ZXN0aW5n
RGVsZWdhdGU7Ci19Ci0KLS0gKHZvaWQpX3NldFRlc3RpbmdEZWxlZ2F0ZTooaWQ8X1dLVGVzdGlu
Z0RlbGVnYXRlPil0ZXN0aW5nRGVsZWdhdGUKLXsKLSAgICBfdGVzdGluZ0RlbGVnYXRlID0gdGVz
dGluZ0RlbGVnYXRlOwotfQotCiAjaWYgUExBVEZPUk0oSU9TKQogCiAtIChDR1JlY3QpX2NvbnRl
bnRWaXNpYmxlUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAzMDg0ZDg2ODdjYTQ1NzkzMTliZDU3MzMyODZm
OGUwNGE1MTg3MDljLi40NGZkYWNkYzE3ODQ3MjcwM2I1YmEyYjViMzk3ZmY0MzZmMmVjZTRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaApAQCAtODEsNyArODEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBf
V0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvdG9jb2wgX1dLSWNvbkxvYWRpbmdEZWxlZ2F0
ZTsKIEBwcm90b2NvbCBfV0tJbnB1dERlbGVnYXRlOwogQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5E
ZWxlZ2F0ZTsKLUBwcm90b2NvbCBfV0tUZXN0aW5nRGVsZWdhdGU7CiAKIEBpbnRlcmZhY2UgV0tX
ZWJWaWV3IChXS1ByaXZhdGUpCiAKQEAgLTI5Nyw3ICsyOTYsNiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAaW50ZXJmYWNlIFdLV2ViVmll
dyAoV0tUZXN0aW5nKQogCiAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZh
Y2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHdlYWssIHNldHRlcj1fc2V0VGVzdGluZ0RlbGVnYXRlOikgaWQ8X1dLVGVzdGluZ0RlbGVnYXRl
PiBfdGVzdGluZ0RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhlYmU5ZTNlM2MyOTYzNmY2MDQwNjZiYjAx
NTk0YWZlNGVkYWQ4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLUBjbGFzcyBX
S1dlYlZpZXc7Ci0KLU5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCi0KLUBwcm90b2NvbCBfV0tUZXN0
aW5nRGVsZWdhdGUgPE5TT2JqZWN0PgotQG9wdGlvbmFsCi0KLSNpZiBUQVJHRVRfT1NfSVBIT05F
Ci0tICh2b2lkKXdlYlZpZXdEaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJh
dGlvbjooV0tXZWJWaWV3ICopd2ViVmlldzsKLSNlbmRpZiAvLyBUQVJHRVRfT1NfUEhPTkUKLQot
QGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA3ZTE3MTNkYmY0ODJmMDgy
NTkxZjljYjBlZDA1NTMxODc3MjE2NWY1Li45YzlhOWViNWM1ZTRjOTI0OTlmNThhNmRiNmZhYWY1
ZDhhNDI1YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4MCw3
ICszODAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9w
ZXJhdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlv
bkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYgaW1hZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgdWludDY0X3QgYWN0aW9uKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI5MjA1ZjRlMzAzNTE0YmZkNDQ2MTkzMzYz
YTM0MjA0MThiZTFiZWQuLjliMzBiMmE3NTk0Nzk5MDgwZmY1ZTBhYWY1ZGFmMTc1ZmNmZGI4OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2Myw3ICs1NjMs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxl
Y3Rpb25PZmZzZXQoV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCB1aW50MzJfdCBvZmZzZXQsIHN0
ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mLCBD
YWxsYmFja0Jhc2U6OkVycm9yKT4pOwogICAgIHZvaWQgcmVxdWVzdFJlY3RzQXRTZWxlY3Rpb25P
ZmZzZXRXaXRoVGV4dChpbnQzMl90IG9mZnNldCwgY29uc3QgU3RyaW5nJiwgc3RkOjpmdW5jdGlv
bjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPik7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgdm9pZCBkaWRQ
ZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpOworICAgIHZvaWQgZGlk
UGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKTsK
ICAgICB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0
ZWQpOwogICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uKTsKICAgICB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxNGE1N2Y5YzY1
OTU5N2MxNGE2NmViZTZmY2Q1ODFmNGM2MGYxZmQzLi44Y2FjOWIxYTFmZThiM2M4YzNmMzhhMWU1
NTUwMjZjMzk4OWQ5YzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxMCw3ICszMTAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBE
aWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCisgICAgRGlkUGVy
Zm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKQogICAg
IERpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCiAgICAg
RGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4
dEluZGljYXRvckRhdGE+IHRleHRJbmRpY2F0b3IpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBhNmQ2YmMwNTBjMjU3
OTBmNzU4YzhkNDNjY2VhNjljZGRhMTE0MTBhLi45NzQyNDVmNjg0MGY4NTBhYmEwZTliYjlkYzkw
ZGQ5MGMyMmM3YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCkBAIC0yMDUsNyArMjA1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgdm9pZCBkaWRQZXJmb3JtRGF0YUludGVy
YWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUGVyZm9y
bURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0
YXJ0ZWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRv
ckRhdGE+LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgdWludDY0X3Qg
YWN0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlv
bihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpp
bmRleCA0NjQ2YzRhYWQzNmQ1MzgyNDM5ZDc1NTMzZWVlMTRmM2NiYzBkMjI5Li4zZTc1NWNkNzIx
YzY2ODU0MGVmMmM0MTM0MmIwYTQxNDRmMmY2M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc3MSw5ICs3NzEsOSBAQCBS
ZWY8VmFsaWRhdGlvbkJ1YmJsZT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJi
bGUoY29uc3QgU3RyaW5nJiBtZXNzYQogfQogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04p
Ci12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbigpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbihib29sIGhhbmRsZWQpCiB7Ci0gICAgW21fY29udGVudFZp
ZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uXTsKKyAgICBb
bV9jb250ZW50VmlldyBfZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRp
b246aGFuZGxlZF07CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEhhbmRsZVN0YXJ0RGF0
YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5ZjNh
ZGQ5N2JiM2M1ZmU5ZmI4YzMxNzE0N2Y1ZDI2YmFhYWVkMzVmLi41NmQwNGEzZmExM2QxMDE4MDVi
ZjYxNWIzMzkwMzIwYjg2MzE4Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTIwMCwxNCArMjAwLDkg
QEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVS
QUNUSU9OKQogICAgIFdlYktpdDo6V0tEYXRhSW50ZXJhY3Rpb25TdGF0ZSBfZGF0YUludGVyYWN0
aW9uU3RhdGU7Ci0gICAgQk9PTCBfaXNQZXJmb3JtaW5nRGF0YUludGVyYWN0aW9uT3BlcmF0aW9u
OwogICAgIFJldGFpblB0cjxXS0RhdGFJbnRlcmFjdGlvbj4gX2RhdGFJbnRlcmFjdGlvbjsKICAg
ICBSZXRhaW5QdHI8V0tEYXRhT3BlcmF0aW9uPiBfZGF0YU9wZXJhdGlvbjsKICAgICBDR1BvaW50
IF9kZWZlcnJlZEFjdGlvblNoZWV0UmVxdWVzdExvY2F0aW9uOwotICAgIFJldGFpblB0cjxVSVZp
ZXc+IF92aXNpYmxlQ29udGVudFZpZXdTbmFwc2hvdDsKLSAgICBSZXRhaW5QdHI8VUlJbWFnZVZp
ZXc+IF9kYXRhSW50ZXJhY3Rpb25VbnNlbGVjdGVkQ29udGVudFNuYXBzaG90OwotICAgIEJPT0wg
X2lzUnVubmluZ0NvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbkFuaW1hdGlvbjsKLSAgICBSZXRh
aW5QdHI8V0tEYXRhSW50ZXJhY3Rpb25DYXJldFZpZXc+IF9kYXRhSW50ZXJhY3Rpb25DYXJldFZp
ZXc7CiAjZW5kaWYKIH0KIApAQCAtMjg4LDcgKzI4Myw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0
aW9uRGF0YSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7CiAKICNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLS0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJh
Y3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOworLSAodm9pZClfZGlkUGVyZm9ybURhdGFJbnRlcmFj
dGlvbkNvbnRyb2xsZXJPcGVyYXRpb246KEJPT0wpaGFuZGxlZDsKIC0gKHZvaWQpX2RpZEhhbmRs
ZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDooQk9PTClzdGFydGVkOwogLSAodm9pZClfc3Rh
cnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFnZSB3
aXRoSW5kaWNhdG9yRGF0YTooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0
YT4paW5kaWNhdG9yRGF0YSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9u
IGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoodWludDY0X3QpYWN0aW9u
OwogLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPilkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAz
MjU3YjE1OTA1MTQ0OWI2MWMzZWIxM2RmY2MzNTY0ZjVmMGFjYzAxLi5iNjczNzM4MjEzMmJkYTBh
ZjRkMmFmYjZmNGY2MGE0NTgxOWMyZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNjEsNyArNjEs
NiBAQAogI2ltcG9ydCAiX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmgiCiAjaW1wb3J0ICJfV0tGb3Jt
SW5wdXRTZXNzaW9uLmgiCiAjaW1wb3J0ICJfV0tJbnB1dERlbGVnYXRlLmgiCi0jaW1wb3J0ICJf
V0tUZXN0aW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9y
dCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZp
Y2VzL1VUQ29yZVR5cGVzLmg+CkBAIC02NTMsOSArNjUyLDYgQEAgc3RhdGljIFVJV2ViU2VsZWN0
aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9uTW9kZShXS1NlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51
bGFyaXQKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIFtzZWxmIHRlYXJkb3du
RGF0YUludGVyYWN0aW9uRGVsZWdhdGVzXTsKLSAgICBfaXNQZXJmb3JtaW5nRGF0YUludGVyYWN0
aW9uT3BlcmF0aW9uID0gTk87Ci0gICAgW19kYXRhSW50ZXJhY3Rpb25DYXJldFZpZXcgcmVtb3Zl
XTsKLSAgICBfZGF0YUludGVyYWN0aW9uQ2FyZXRWaWV3ID0gbmlsOwogI2VuZGlmCiAKICAgICBf
aW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQgPSBOTzsKQEAgLTExNTgsNyArMTE1NCw3IEBAIHN0
YXRpYyBOU1ZhbHVlICpuc1NpemVGb3JUYXBIaWdobGlnaHRCb3JkZXJSYWRpdXMoV2ViQ29yZTo6
SW50U2l6ZSBib3JkZXJSYWRpdXMsCiAgICAgQk9PTCBzaG91bGRab29tVG9Gb2N1c1JlY3QgPSBZ
RVM7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gdGVhY2ggV0tXZWJWaWV3IHRvIHByb3Blcmx5IHpvb20gYW5kIHNjcm9sbCBkdXJpbmcgYSBk
YXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbi4KLSAgICBzaG91bGRab29tVG9Gb2N1c1JlY3QgPSAh
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdLmhhc1BlbmRpbmdPcGVy
YXRpb247CisgICAgc2hvdWxkWm9vbVRvRm9jdXNSZWN0ID0gIV9kYXRhSW50ZXJhY3Rpb25TdGF0
ZS5pc1BlcmZvcm1pbmdPcGVyYXRpb247CiAjZW5kaWYKICAgICBpZiAoc2hvdWxkWm9vbVRvRm9j
dXNSZWN0KSB7CiAgICAgICAgIC8vIEluIGNhc2UgdXNlciBzY2FsaW5nIGlzIGZvcmNlIGVuYWJs
ZWQsIGRvIG5vdCB1c2UgdGhhdCBzY2FsaW5nIHdoZW4gem9vbWluZyBpbiB3aXRoIGFuIGlucHV0
IGZpZWxkLgpAQCAtMzgzOSw3ICszODM1LDcgQEAgc3RhdGljIGJvb2wgaXNBc3Npc3RhYmxlSW5w
dXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgICAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBp
cyB0byBhbGxvdyBub2RlIGFzc2lzdGFuY2UgaWYgdGhlIHVzZXIgaXMgaW50ZXJhY3Rpbmcgb3Ig
dGhlIGtleWJvYXJkIGlzIGFscmVhZHkgYWN0aXZlLgogICAgICAgICBzaG91bGRTaG93S2V5Ym9h
cmQgPSB1c2VySXNJbnRlcmFjdGluZyB8fCBfdGV4dFNlbGVjdGlvbkFzc2lzdGFudDsKICNpZiBF
TkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkIHw9IF9p
c1BlcmZvcm1pbmdEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb247CisgICAgICAgIHNob3VsZFNob3dL
ZXlib2FyZCB8PSBfZGF0YUludGVyYWN0aW9uU3RhdGUuaXNQZXJmb3JtaW5nT3BlcmF0aW9uOwog
I2VuZGlmCiAgICAgfQogICAgIGlmICghc2hvdWxkU2hvd0tleWJvYXJkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAzYzAyZjg2NmMy
OWNhYzhhNGYyMzg5ZDhmMWIwMjUyNWUyYTdjM2MwLi45Y2M2ODAzNGQ2OGIxNWY2MjZlM2U0MjBl
ZTAxZjAwNTY2ZGQ2MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQpAQCAtMTExNiw5ICsxMTE2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldElzU2Nyb2xsaW5nT3Jab29taW5nKGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcpCiAKICNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZv
cm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbihib29sIGhhbmRs
ZWQpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LmRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9s
bGVyT3BlcmF0aW9uKCk7CisgICAgbV9wYWdlQ2xpZW50LmRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uKGhhbmRsZWQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
NWE1ZjQ5MTQzMDVhZjIyYTg4MzczNDU1YzUwMDJjODE1ZWQ4MGVmLi5hNmJmNTI1M2Q0ODEwOGNm
M2E4YTQwZmI5YWM3ZGQzMmRmMjdkOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDA3LDcgKzIwMDcsNiBAQAogCQlFRENB
NzFCNzEyOEREQThDMDAyMDFCMjYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjEwMDEyODlGQ0Q5MDA4
NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgKi87IH07CiAJCUYwMzY5Nzg4MTVGNEJG
MDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29s
b3JQaWNrZXIuY3BwICovOyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFn
RGVzdGluYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUY0MzM3MDk3MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzM3MDk2MUU0RDZBNDQw
MDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYgLyogV2Vi
SWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLzsg
fTsKIAkJRjQ0REZFQjMxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMTFFOUU3
NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLzsgfTsKIAkJRjYxMTNFMjUxMjZD
RTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3
IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9OwpAQCAtNDM0Miw3ICs0MzQxLDYg
QEAKIAkJRUNCRkMxREIxRTZBNEQ2NjAwMDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRB
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29s
b3JQaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29s
b3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDA5QkExNzFFNkU2
NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjQzMzcwOTYxRTRENkE0NDAwMDUyQjBFIC8qIF9XS1Rlc3RpbmdE
ZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXN0aW5nRGVs
ZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjAxRTlFNzUyRjAw
MzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8q
IFdlYkljb25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBXZWJJY29uVXRpbGl0aWVzLm1tOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAv
KiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01NTYwLDcgKzU1NTgsNiBAQAogCQkJCTFBMDAyRDNGMTk2QjMyOTQwMEI5QUQ0NCAv
KiBfV0tTZXNzaW9uU3RhdGUuaCAqLywKIAkJCQkxQTAwMkQzRTE5NkIzMjk0MDBCOUFENDQgLyog
X1dLU2Vzc2lvblN0YXRlLm1tICovLAogCQkJCTFBMDAyRDQyMTk2QjMzNzAwMEI5QUQ0NCAvKiBf
V0tTZXNzaW9uU3RhdGVJbnRlcm5hbC5oICovLAotCQkJCUY0MzM3MDk2MUU0RDZBNDQwMDA1MkIw
RSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLywKIAkJCQkyRDZCMzcxOTE4QTk2N0FEMDA0MkFF
ODAgLyogX1dLVGh1bWJuYWlsVmlldy5oICovLAogCQkJCTJENkIzNzFBMThBOTY3QUQwMDQyQUU4
MCAvKiBfV0tUaHVtYm5haWxWaWV3Lm1tICovLAogCQkJCTJEQUNFNjREMThBREJGRjAwMEU0Q0E3
NiAvKiBfV0tUaHVtYm5haWxWaWV3SW50ZXJuYWwuaCAqLywKQEAgLTgxMjksNyArODEyNiw2IEBA
CiAJCQkJMzc2MzExRkUxQTNGQjYwMDAwNUEyRTUxIC8qIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDAyRDQ0MTk2QjMzODkwMEI5
QUQ0NCAvKiBfV0tTZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDAyRDQzMTk2
QjMzNzAwMEI5QUQ0NCAvKiBfV0tTZXNzaW9uU3RhdGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRjQzMzcwOTcxRTRENzJFRDAwMDUyQjBFIC8qIF9XS1Rlc3RpbmdEZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQ2QjM3MUIxOEE5NjdBRDAwNDJBRTgwIC8qIF9XS1RodW1ibmFp
bFZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQUNFNjRFMThBREJGRjAwMEU0Q0E3NiAvKiBf
V0tUaHVtYm5haWxWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMjQxMzAzMUFB
Q0ZBNzUwMEE1OEMxNSAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBjY2NkMDc1YmRmMTBlOWI4MmMxZGIwNDg1MjJiYmZjM2IzYjJkM2I4Li42NjM4MDM1MmFi
OTQwYWNiZjhjNGUwNzRlYTA3NTFhODc4OTk0ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNjAxLDcgKzM2MDEsNyBAQCB2b2lkIFdl
YlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIGNvbnN0
IFdlYkNvcmU6OkRyYWdEYQogCiAgICAgICAgIGF1dG8mIGZyYW1lID0gbV9wYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAgICAgZnJhbWUuZWRpdG9yKCku
c2V0SWdub3JlU2VsZWN0aW9uQ2hhbmdlcyh0cnVlKTsKLSAgICAgICAgbV9wYWdlLT5kcmFnQ29u
dHJvbGxlcigpLnBlcmZvcm1EcmFnT3BlcmF0aW9uKGRyYWdEYXRhKTsKKyAgICAgICAgYm9vbCBo
YW5kbGVkID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLnBlcmZvcm1EcmFnT3BlcmF0aW9uKGRy
YWdEYXRhKTsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuc2V0SWdub3JlU2VsZWN0aW9uQ2hhbmdl
cyhmYWxzZSk7CiAKICAgICAgICAgLy8gSWYgd2Ugc3RhcnRlZCBsb2FkaW5nIGEgbG9jYWwgZmls
ZSwgdGhlIHNhbmRib3ggZXh0ZW5zaW9uIHRyYWNrZXIgd291bGQgaGF2ZSBhZG9wdGVkIHRoaXMK
QEAgLTM2MTAsNyArMzYxMCw5IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgY29uc3QgV2ViQ29yZTo6RHJhZ0RhCiAKICAgICAgICAg
bV9wZW5kaW5nRHJvcEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkLmNsZWFyKCk7CiAjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNv
bnRyb2xsZXJPcGVyYXRpb24oaGFuZGxlZCkpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZWQpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZmVkM2QyMTRiOWM0M2VmZWVj
ZDdiY2Y1YzAzOTJiMDIwNTQ0OWE4Li4xN2ZhZWZjYjNkZmY1ZjcxZTZjNTZkZDMzZmQ5M2JjOWQ4
OTM4OTE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDQtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRlbGVnYXRlIGhvb2tzIGZvciBvdmVy
cmlkaW5nIHVuaGFuZGVkIGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMDA1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zMTY2OTY0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGEgbmV3IEFQSSB0ZXN0IGNoZWNraW5nIHRoYXQgbm9ybWFsIFdl
YktpdCBiZWhhdmlvciB3aGVuIHZlbmRpbmcgdXBkYXRlZCBkYXRhIGludGVyYWN0aW9uIG9wZXJh
dGlvbnMgbWF5CisgICAgICAgIGJlIG92ZXJyaWRkZW4sIHJlc3VsdGluZyBpbiBhIGRhdGEgaW50
ZXJhY3Rpb24gb3BlcmF0aW9uIGJlaW5nIHBlcmZvcm1lZCB3aGVuIGl0IG90aGVyd2lzZSB3b3Vs
ZCBub3QgaGF2ZS4gQWxzbworICAgICAgICBhZGp1c3RzIGZvciBzb21lIGNoYW5nZXMgaW4gV2Vi
S2l0MiAoU2VlIFdlYktpdDIgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMpLgorCisgICAgICAg
IE5ldyBBUEkgdGVzdDoKKyAgICAgICAgRGF0YUludGVyYWN0aW9uVGVzdHMuT3ZlcnJpZGVEYXRh
SW50ZXJhY3Rpb25PcGVyYXRpb24KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoLVtVSUl0ZW1Qcm92aWRlciByZWdp
c3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOndpdGhEYXRhOl0pOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3Mv
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3Mv
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgZGVhbGxvY10pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Ig
X3dlYlZpZXc6ZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOl0p
OgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX3dlYlZpZXc6d2lsbFVwZGF0
ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOmZvclNlc3Npb246XSk6CisgICAg
ICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciB3ZWJWaWV3RGlkUGVyZm9ybURhdGFJbnRl
cmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb246XSk6IERlbGV0ZWQuCisKIDIwMTctMDQtMTggIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gQWRk
IGluZnJhc3RydWN0dXJlIGFuZCB1bml0IHRlc3RzIGZvciBmaWxlIHVwbG9hZHMgdXNpbmcgZGF0
YSBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
RGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9E
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCAwZjMyYjdjZDBiM2JlZTE4ZmM4YjljOGRhNGU1
Y2QzZTFhMjUwNzdmLi41ZTk3ZGVkY2JiYWVlYTA1ZjBmNTQ4YzVhNGY2YWQwYjBjZTZjZWRkIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25U
ZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rp
b25UZXN0cy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oPgogCiB0eXBlZGVmIHZvaWQgKF5GaWxlTG9hZENvbXBsZXRpb25C
bG9jaykoTlNVUkwgKiwgQk9PTCwgTlNFcnJvciAqKTsKK3R5cGVkZWYgdm9pZCAoXkRhdGFMb2Fk
Q29tcGxldGlvbkJsb2NrKShOU0RhdGEgKiwgTlNFcnJvciAqKTsKIAogc3RhdGljIFVJSW1hZ2Ug
KnRlc3RJY29uSW1hZ2UoKQogewpAQCAtNzYsNiArNzcsMTUgQEAgc3RhdGljIHZvaWQgY2xlYW5V
cERhdGFJbnRlcmFjdGlvblRlbXBvcmFyeVBhdGgoKQogICAgIH1dOwogfQogCistICh2b2lkKXJl
Z2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopdHlw
ZUlkZW50aWZpZXIgd2l0aERhdGE6KE5TRGF0YSAqKWRhdGEKK3sKKyAgICBSZXRhaW5QdHI8TlNE
YXRhPiByZXRhaW5lZERhdGEgPSBkYXRhOworICAgIFtzZWxmIHJlZ2lzdGVyRGF0YVJlcHJlc2Vu
dGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIgdmlzaWJpbGl0eTpOU0l0ZW1Q
cm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2FkSGFuZGxlcjogW3JldGFpbmVk
RGF0YV0gKERhdGFMb2FkQ29tcGxldGlvbkJsb2NrIGJsb2NrKSAtPiBOU1Byb2dyZXNzICogewor
ICAgICAgICBibG9jayhyZXRhaW5lZERhdGEuZ2V0KCksIG5pbCk7CisgICAgICAgIHJldHVybiBb
TlNQcm9ncmVzcyBkaXNjcmV0ZVByb2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjEwMF07CisgICAg
fV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgKERhdGFJbnRl
cmFjdGlvblRlc3RzKQpAQCAtNDYzLDYgKzQ3MywyOSBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRl
c3RzLCBFeHRlcm5hbFNvdXJjZUpQRUdPbmx5KQogICAgIGNoZWNrU2VsZWN0aW9uUmVjdHNXaXRo
TG9nZ2luZyhAWyBtYWtlQ0dSZWN0VmFsdWUoMSwgMjAxLCAyMTUsIDE3NCkgXSwgW2RhdGFJbnRl
cmFjdGlvblNpbXVsYXRvciBmaW5hbFNlbGVjdGlvblJlY3RzXSk7CiB9CiAKK1RFU1QoRGF0YUlu
dGVyYWN0aW9uVGVzdHMsIE92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uKQoreworICAg
IFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKKwor
ICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gc2ltdWxhdGVkSXRlbVByb3ZpZGVyID0gYWRv
cHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NpbXVsYXRlZEl0ZW1Q
cm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0
cmluZyAqKWtVVFR5cGVIVE1MIHdpdGhEYXRhOltAIjxib2R5PjwvYm9keT4iIGRhdGFVc2luZ0Vu
Y29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkQ2Fs
bFBlcmZvcm1Db21wbGV0aW9uQmxvY2sgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8RGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yPiBkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQo
KV0pOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlk
ZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92aWRlci5nZXQoKSBdXTsKKyAgICBbZGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yIHNldE92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQmxvY2s6Xk5T
VUludGVnZXIoTlNVSW50ZWdlciBvcGVyYXRpb24sIGlkIHNlc3Npb24pCisgICAgeworICAgICAg
ICBFWFBFQ1RfRVEoMFUsIG9wZXJhdGlvbik7CisgICAgICAgIHJldHVybiAxOworICAgIH1dOwor
ICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RGF0YUludGVyYWN0aW9uT3BlcmF0aW9u
Q29tcGxldGlvbkJsb2NrOl4oQk9PTCBoYW5kbGVkLCBpZCBzZXNzaW9uKSB7CisgICAgICAgIGRp
ZENhbGxQZXJmb3JtQ29tcGxldGlvbkJsb2NrID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbZGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMzAwLCA0MDApIHRvOkNHUG9p
bnRNYWtlKDEwMCwgMzAwKV07CisgICAgRVhQRUNUX1RSVUUoZGlkQ2FsbFBlcmZvcm1Db21wbGV0
aW9uQmxvY2spOworfQorCiBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBBdHRhY2htZW50RWxl
bWVudEl0ZW1Qcm92aWRlcnMpCiB7CiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24+IGNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB0ZXN0d2Via2l0YXBp
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkJ1bmRsZUVkaXRpbmdEZWxl
Z2F0ZVBsdWdJbiJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IuaAppbmRleCBiMmNhNDdlNmQzYThjMmQ4OTdkMjQzNjI1OTNmOTY2MGNh
OGIzNTVkLi5kZWU5ZTdlNzcxYzkzNWQzMDk0MjQyZGRmMDdiYzQxOGI2Njg0YWZkIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaApA
QCAtMjksNyArMjksNiBAQAogI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBv
cnQgPFVJS2l0L1VJS2l0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
PgotI2ltcG9ydCA8V2ViS2l0L19XS1Rlc3RpbmdEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrUHRyLmg+CiAKIEBjbGFzcyBNb2NrRGF0YU9wZXJhdGlvblNlc3Npb247CkBAIC00OSw3ICs0
OCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRlcmFjdGlvblBoYXNlKSB7
CiAgICAgRGF0YUludGVyYWN0aW9uUGVyZm9ybWluZyA9IDQKIH07CiAKLUBpbnRlcmZhY2UgRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yIDogTlNPYmplY3Q8X1dLVGVzdGluZ0RlbGVnYXRlLCBXS1VJ
RGVsZWdhdGVQcml2YXRlPiB7CitAaW50ZXJmYWNlIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA6
IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHsKICAgICBSZXRhaW5QdHI8VGVzdFdLV2Vi
Vmlldz4gX3dlYlZpZXc7CiAgICAgUmV0YWluUHRyPE1vY2tEYXRhSW50ZXJhY3Rpb25TZXNzaW9u
PiBfZGF0YUludGVyYWN0aW9uU2Vzc2lvbjsKICAgICBSZXRhaW5QdHI8TW9ja0RhdGFPcGVyYXRp
b25TZXNzaW9uPiBfZGF0YU9wZXJhdGlvblNlc3Npb247CkBAIC03Myw2ICs3Miw5IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRlcmFjdGlvblBoYXNlKSB7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQmxvY2tQdHI8Qk9PTChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKT4gc2hv
d0N1c3RvbUFjdGlvblNoZWV0QmxvY2s7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQmxvY2tQdHI8
TlNBcnJheSAqKE5TQXJyYXkgKik+IGNvbnZlcnRJdGVtUHJvdmlkZXJzQmxvY2s7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU0FycmF5ICpleHRlcm5hbEl0ZW1Qcm92aWRlcnM7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQmxvY2tQdHI8TlNVSW50ZWdlcihOU1VJbnRlZ2VyLCBpZCk+
IG92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQmxvY2s7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQmxvY2tQdHI8dm9pZChCT09MLCBpZCk+IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbkNv
bXBsZXRpb25CbG9jazsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5
ICpzb3VyY2VJdGVtUHJvdmlkZXJzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U0FycmF5ICpvYnNlcnZlZEV2ZW50TmFtZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TQXJyYXkgKmZpbmFsU2VsZWN0aW9uUmVjdHM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KaW5kZXggYTU2NDUxN2VjOGFm
MzUwN2NlZGViYzU2ZTY4MDBhMzVlNDJkOWYwNC4uMWFmNjg4OTcwZGZlNmQ2MGYxOWM5YjZiMzk4
ODg2MmE4NGIwMTZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvci5tbQpAQCAtNzUsNyArNzUsNiBAQCBzdGF0aWMgTlNBcnJheSAq
ZGF0YUludGVyYWN0aW9uRXZlbnROYW1lcygpCiAgICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdF0p
IHsKICAgICAgICAgX3dlYlZpZXcgPSB3ZWJWaWV3OwogICAgICAgICBfc2hvdWxkRW5zdXJlVUlB
cHBsaWNhdGlvbiA9IE5POwotICAgICAgICBbX3dlYlZpZXcgX3NldFRlc3RpbmdEZWxlZ2F0ZTpz
ZWxmXTsKICAgICAgICAgW193ZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAgfQogICAg
IHJldHVybiBzZWxmOwpAQCAtODMsOSArODIsNiBAQCBzdGF0aWMgTlNBcnJheSAqZGF0YUludGVy
YWN0aW9uRXZlbnROYW1lcygpCiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIGlmIChbX3dlYlZp
ZXcgX3Rlc3RpbmdEZWxlZ2F0ZV0gPT0gc2VsZikKLSAgICAgICAgW193ZWJWaWV3IF9zZXRUZXN0
aW5nRGVsZWdhdGU6bmlsXTsKLQogICAgIGlmIChbX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gPT0gc2Vs
ZikKICAgICAgICAgW193ZWJWaWV3IHNldFVJRGVsZWdhdGU6bmlsXTsKIApAQCAtMjcxLDE0ICsy
NjcsMjAgQEAgc3RhdGljIE5TQXJyYXkgKmRhdGFJbnRlcmFjdGlvbkV2ZW50TmFtZXMoKQogICAg
IHJldHVybiBfcGhhc2U7CiB9CiAKLSNwcmFnbWEgbWFyayAtIF9XS1Rlc3RpbmdEZWxlZ2F0ZQor
I3ByYWdtYSBtYXJrIC0gV0tVSURlbGVnYXRlUHJpdmF0ZQogCi0tICh2b2lkKXdlYlZpZXdEaWRQ
ZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjooV0tXZWJWaWV3ICopd2Vi
VmlldworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkYXRhSW50ZXJhY3Rp
b25PcGVyYXRpb25XYXNIYW5kbGVkOihCT09MKWhhbmRsZWQgZm9yU2Vzc2lvbjooaWQpc2Vzc2lv
bgogewogICAgIF9pc0RvbmVXaXRoQ3VycmVudFJ1biA9IHRydWU7CisKKyAgICBpZiAoc2VsZi5k
YXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Db21wbGV0aW9uQmxvY2spCisgICAgICAgIHNlbGYuZGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uQ29tcGxldGlvbkJsb2NrKGhhbmRsZWQsIHNlc3Npb24pOwog
fQogCi0jcHJhZ21hIG1hcmsgLSBXS1VJRGVsZWdhdGVQcml2YXRlCistIChOU1VJbnRlZ2VyKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVy
YXRpb25Ub09wZXJhdGlvbjooTlNVSW50ZWdlcilvcGVyYXRpb24gZm9yU2Vzc2lvbjooaWQpc2Vz
c2lvbgoreworICAgIHJldHVybiBzZWxmLm92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9u
QmxvY2sgPyBzZWxmLm92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQmxvY2sob3BlcmF0
aW9uLCBzZXNzaW9uKSA6IG9wZXJhdGlvbjsKK30KIAogLSAoTlNBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rp
b25JdGVtUHJvdmlkZXJzOihOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+KilvcmlnaW5hbEl0ZW1Q
cm92aWRlcnMKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307542</attachid>
            <date>2017-04-19 19:54:26 -0700</date>
            <delta_ts>2017-04-19 21:40:39 -0700</delta_ts>
            <desc>Augment unit test to check the session.</desc>
            <filename>bug-171005-20170419195425.patch</filename>
            <type>text/plain</type>
            <size>31979</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTUyZTY5YjU3MjRmODUz
OThkNTgzYWIxNjY5ZjlhNDVlYjJiNzI0NS4uOTBiNjg3ZjMxYjQ0ZmY4OTUyNDNlZTlkYzQ5OGM3
YjgwNDlmMjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBk
ZWxlZ2F0ZSBob29rcyBmb3Igb3ZlcnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9w
ZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTAwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2Njk2NDY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBvdmVy
cmlkaW5nIGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9ucyB0aHJvdWdoIHR3byBuZXcgZGVsZWdh
dGUgbWV0aG9kczoKKyAgICAgICAgX3dlYlZpZXc6d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9w
ZXJhdGlvblRvT3BlcmF0aW9uOmZvclNlc3Npb246LCBhbmQKKyAgICAgICAgX3dlYlZpZXc6ZGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOi4gVGhlIGZvcm1lciBt
YXkgYmUgb3ZlcnJpZGRlbiB0byByZXR1cm4gYSBkaWZmZXJlbnQKKyAgICAgICAgb3BlcmF0aW9u
IHR5cGUgdGhhbiB3aGF0IFdlYktpdCB3b3VsZCBvcmlnaW5hbGx5IGhhdmUgcmV0dXJuZWQsIGFu
ZCB0aGUgbGF0dGVyIG1heSBiZSBvdmVycmlkZGVuIHRvIHJ1biBjdXN0b20KKyAgICAgICAgbG9n
aWMgYWZ0ZXIgdGhlIHdlYiBwcm9jZXNzIGhhcyBoYW5kbGVkIGEgZGF0YSBpbnRlcmFjdGlvbiBv
cGVyYXRpb24uCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCBpbmNsdWRlcyBzb21lIG1pbm9yIGNs
ZWFudXAgYXJvdW5kIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi4gV2l0aCB0aGUgbmV3CisgICAg
ICAgIF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6Zm9yU2Vzc2lv
bjogZGVsZWdhdGUgbWV0aG9kLCB0aGUgbGFzdCBtZXRob2Qgb24gX1dLVGVzdGluZ0RlbGVnYXRl
CisgICAgICAgIG1heSBiZSByZW1vdmVkLiBUaGlzIG1lYW5zIF9XS1Rlc3RpbmdEZWxlZ2F0ZSBp
cyBubyBsb25nZXIgbmVlZGVkLCBzbyB0aGlzIHBhdGNoIHJlbW92ZXMgaXRzIGhlYWRlciBlbnRp
cmVseS4KKyAgICAgICAgQWxzbywgcmVsb2NhdGVzIHNvbWUgc3RhdGUgdmFyaWFibGVzIGZvcm1l
cmx5IG9uIFdLQ29udGVudFZpZXcgdG8gV0tDb250ZW50VmlldydzIFdLRGF0YUludGVyYWN0aW9u
U3RhdGUgc3RydWN0CisgICAgICAgIGluc3RlYWQsIHNvIHRoYXQgYWxsIHN0YXRlIGFzc29jaWF0
ZWQgd2l0aCBkYXRhIGludGVyYWN0aW9uIG1heSBiZSBjbGVhbmVkIHVwIGF0IHRoZSBzYW1lIHRp
bWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF90ZXN0aW5nRGVsZWdhdGVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXRUZXN0aW5nRGVsZWdhdGU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFk
ZCBhIG5ldyAiaGFuZGxlZCIgSVBDIGFyZ3VtZW50IHRvIERpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uLiBUaGlzIGxldHMgdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
a25vdyB3aGV0aGVyIG9yIG5vdCB0aGUgZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb24gd2FzIGhh
bmRsZWQgYnkgdGhlIHdlYiBwcm9jZXNzLCBhbmQgaXMgZXZlbnR1YWxseSBwbHVtYmVkCisgICAg
ICAgIHRocm91Z2ggdG8gdGhlIFVJIGRlbGVnYXRlIHZpYSB0aGUgbmV3IFNQSS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmlld10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9zdGFydEFzc2lzdGluZ05vZGU6dXNlcklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9k
ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EYXRhSW50ZXJh
Y3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24p
OgorCiAyMDE3LTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXSzJdIEFkZCBpbmZyYXN0cnVjdHVyZSBhbmQgdW5pdCB0ZXN0cyBmb3IgZmls
ZSB1cGxvYWRzIHVzaW5nIGRhdGEgaW50ZXJhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggNGUz
NjE0ZWFhNjk5YzcxNTA3Y2NlODZmMDVmY2QwZmQ4YzVhZmM4Ni4uNmYzY2VmYzQyOGY2OGRjOTNh
NGE0ZGJhYjhhZWJhNWNiMzRlZWQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTk2LDYgKzk2LDgg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcGVyZm9ybURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJdGVtUHJvdmlkZXJzOihO
U0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICopaXRlbVByb3ZpZGVycyBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRhdGFJbnRlcmFjdGlvbjooaWQpaW50ZXJhY3Rpb24gc2Vzc2lvbldpbGxCZWdpbjooaWQpc2Vz
c2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbjooaWQpaW50ZXJhY3Rpb24gc2Vz
c2lvbjooaWQpc2Vzc2lvbiBkaWRFbmRXaXRoT3BlcmF0aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlv
biBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6KEJP
T0wpaGFuZGxlZCBmb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOihOU1VJbnRlZ2Vy
KW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKICNlbHNlCiAtIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwog
LSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5T
TWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1l
bnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KaW5kZXggMjcwYWZkZjcyNGFlY2I0YmQzMjgxOGQzMDM5MzBmMTdkMjBh
MTkxZS4uOGI5MDdjMDkxNTRmYWZhYmZiNzE5Mjk5NjE5NTk3OTc2MDllMTRjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTkwLDcg
KzkwLDYgQEAKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Nlc3Npb25TdGF0ZUludGVy
bmFsLmgiCi0jaW1wb3J0ICJfV0tUZXN0aW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS1Zpc2l0
ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJu
YWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KQEAgLTI5OSw4ICsy
OTgsNiBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkm
IHBhZ2UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9pbXBsOwog
ICAgIFJldGFpblB0cjxXS1RleHRGaW5kZXJDbGllbnQ+IF90ZXh0RmluZGVyQ2xpZW50OwogI2Vu
ZGlmCi0KLSAgICBpZDxfV0tUZXN0aW5nRGVsZWdhdGU+IF90ZXN0aW5nRGVsZWdhdGU7CiB9CiAK
IC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKQEAgLTUwNzcsMTYg
KzUwNzQsNiBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0
b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oVUlTZQogI2VuZGlmCiB9CiAKLS0gKGlkPF9X
S1Rlc3RpbmdEZWxlZ2F0ZT4pX3Rlc3RpbmdEZWxlZ2F0ZQotewotICAgIHJldHVybiBfdGVzdGlu
Z0RlbGVnYXRlOwotfQotCi0tICh2b2lkKV9zZXRUZXN0aW5nRGVsZWdhdGU6KGlkPF9XS1Rlc3Rp
bmdEZWxlZ2F0ZT4pdGVzdGluZ0RlbGVnYXRlCi17Ci0gICAgX3Rlc3RpbmdEZWxlZ2F0ZSA9IHRl
c3RpbmdEZWxlZ2F0ZTsKLX0KLQogI2lmIFBMQVRGT1JNKElPUykKIAogLSAoQ0dSZWN0KV9jb250
ZW50VmlzaWJsZVJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMzA4NGQ4Njg3Y2E0NTc5MzE5YmQ1NzMzMjg2
ZjhlMDRhNTE4NzA5Yy4uNDRmZGFjZGMxNzg0NzI3MDNiNWJhMmI1YjM5N2ZmNDM2ZjJlY2U0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTgxLDcgKzgxLDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQHByb3RvY29sIF9XS0ljb25Mb2FkaW5nRGVsZWdh
dGU7CiBAcHJvdG9jb2wgX1dLSW5wdXREZWxlZ2F0ZTsKIEBwcm90b2NvbCBfV0tGdWxsc2NyZWVu
RGVsZWdhdGU7Ci1AcHJvdG9jb2wgX1dLVGVzdGluZ0RlbGVnYXRlOwogCiBAaW50ZXJmYWNlIFdL
V2ViVmlldyAoV0tQcml2YXRlKQogCkBAIC0yOTcsNyArMjk2LDYgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQGludGVyZmFjZSBXS1dlYlZp
ZXcgKFdLVGVzdGluZykKIAogLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJm
YWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrLCBzZXR0ZXI9X3NldFRlc3RpbmdEZWxlZ2F0ZTopIGlkPF9XS1Rlc3RpbmdEZWxlZ2F0
ZT4gX3Rlc3RpbmdEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0RlbGVnYXRlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZWJlOWUzZTNjMjk2MzZmNjA0MDY2YmIw
MTU5NGFmZTRlZGFkODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdh
dGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1AY2xhc3Mg
V0tXZWJWaWV3OwotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1AcHJvdG9jb2wgX1dLVGVz
dGluZ0RlbGVnYXRlIDxOU09iamVjdD4KLUBvcHRpb25hbAotCi0jaWYgVEFSR0VUX09TX0lQSE9O
RQotLSAodm9pZCl3ZWJWaWV3RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVy
YXRpb246KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0jZW5kaWYgLy8gVEFSR0VUX09TX1BIT05FCi0K
LUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggN2UxNzEzZGJmNDgyZjA4
MjU5MWY5Y2IwZWQwNTUzMTg3NzIxNjVmNS4uOWM5YTllYjVjNWU0YzkyNDk5ZjU4YTZkYjZmYWFm
NWQ4YTQyNWJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zODAs
NyArMzgwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJP
cGVyYXRpb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIHVpbnQ2NF90IGFjdGlvbikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiOTIwNWY0ZTMwMzUxNGJmZDQ0NjE5MzM2
M2EzNDIwNDE4YmUxYmVkLi45YjMwYjJhNzU5NDc5OTA4MGZmNWUwYWFmNWRhZjE3NWZjZmRiODkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NjMsNyArNTYz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFJlY3RzRm9yR3JhbnVsYXJpdHlXaXRoU2Vs
ZWN0aW9uT2Zmc2V0KFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgdWludDMyX3Qgb2Zmc2V0LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+Jiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lkIHJlcXVlc3RSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0V2l0aFRleHQoaW50MzJfdCBvZmZzZXQsIGNvbnN0IFN0cmluZyYsIHN0ZDo6ZnVuY3Rp
b248dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4pOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHZvaWQgZGlk
UGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCk7
CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFy
dGVkKTsKICAgICB2b2lkIHJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTRhNTdmOWM2
NTk1OTdjMTRhNjZlYmU2ZmNkNTgxZjRjNjBmMWZkMy4uOGNhYzliMWExZmU4YjNjOGMzZjM4YTFl
NTU1MDI2YzM5ODlkOWM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTAsNyArMzEwLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAg
RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKQorICAgIERpZFBl
cmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkKICAg
ICBEaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQogICAg
IERpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYTZkNmJjMDUwYzI1
NzkwZjc1OGM4ZDQzY2NlYTY5Y2RkYTExNDEwYS4uOTc0MjQ1ZjY4NDBmODUwYWJhMGU5YmI5ZGM5
MGRkOTBjMjJjN2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRl
cmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBz
dGFydGVkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdl
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhPiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIHVpbnQ2NF90
IGFjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rp
b24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggNDY0NmM0YWFkMzZkNTM4MjQzOWQ3NTUzM2VlZTE0ZjNjYmMwZDIyOS4uM2U3NTVjZDcy
MWM2Njg1NDBlZjJjNDEzNDJiMGE0MTQ0ZjJmNjNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03NzEsOSArNzcxLDkgQEAg
UmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxpZGF0aW9uQnVi
YmxlKGNvbnN0IFN0cmluZyYgbWVzc2EKIH0KIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xs
ZXJPcGVyYXRpb24oKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFj
dGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKQogewotICAgIFttX2NvbnRlbnRW
aWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbl07CisgICAg
W21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0
aW9uOmhhbmRsZWRdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRIYW5kbGVTdGFydERh
dGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOWYz
YWRkOTdiYjNjNWZlOWZiOGMzMTcxNDdmNWQyNmJhYWFlZDM1Zi4uNTZkMDRhM2ZhMTNkMTAxODA1
YmY2MTViMzM5MDMyMGI4NjMxOGY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yMDAsMTQgKzIwMCw5
IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKICNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKICAgICBXZWJLaXQ6OldLRGF0YUludGVyYWN0aW9uU3RhdGUgX2RhdGFJbnRlcmFj
dGlvblN0YXRlOwotICAgIEJPT0wgX2lzUGVyZm9ybWluZ0RhdGFJbnRlcmFjdGlvbk9wZXJhdGlv
bjsKICAgICBSZXRhaW5QdHI8V0tEYXRhSW50ZXJhY3Rpb24+IF9kYXRhSW50ZXJhY3Rpb247CiAg
ICAgUmV0YWluUHRyPFdLRGF0YU9wZXJhdGlvbj4gX2RhdGFPcGVyYXRpb247CiAgICAgQ0dQb2lu
dCBfZGVmZXJyZWRBY3Rpb25TaGVldFJlcXVlc3RMb2NhdGlvbjsKLSAgICBSZXRhaW5QdHI8VUlW
aWV3PiBfdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Q7Ci0gICAgUmV0YWluUHRyPFVJSW1hZ2VW
aWV3PiBfZGF0YUludGVyYWN0aW9uVW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdDsKLSAgICBCT09M
IF9pc1J1bm5pbmdDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25BbmltYXRpb247Ci0gICAgUmV0
YWluUHRyPFdLRGF0YUludGVyYWN0aW9uQ2FyZXRWaWV3PiBfZGF0YUludGVyYWN0aW9uQ2FyZXRW
aWV3OwogI2VuZGlmCiB9CiAKQEAgLTI4OCw3ICsyODMsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVj
dGlvbkRhdGEgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlv
bk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OwogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0tICh2b2lkKV9kaWRQZXJmb3JtRGF0YUludGVy
YWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKKy0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJh
Y3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOihCT09MKWhhbmRsZWQ7CiAtICh2b2lkKV9kaWRIYW5k
bGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6KEJPT0wpc3RhcnRlZDsKIC0gKHZvaWQpX3N0
YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2Ug
d2l0aEluZGljYXRvckRhdGE6KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGE+KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlv
bjsKIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbjooc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
MzI1N2IxNTkwNTE0NDliNjFjM2ViMTNkZmNjMzU2NGY1ZjBhY2MwMS4uYjY3MzczODIxMzJiZGEw
YWY0ZDJhZmI2ZjRmNjBhNDU4MTljMmQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTYxLDcgKzYx
LDYgQEAKICNpbXBvcnQgIl9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIgogI2ltcG9ydCAiX1dLRm9y
bUlucHV0U2Vzc2lvbi5oIgogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgotI2ltcG9ydCAi
X1dLVGVzdGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnQuaD4KICNpbXBv
cnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2
aWNlcy9VVENvcmVUeXBlcy5oPgpAQCAtNjUzLDkgKzY1Miw2IEBAIHN0YXRpYyBVSVdlYlNlbGVj
dGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFu
dWxhcml0CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBbc2VsZiB0ZWFyZG93
bkRhdGFJbnRlcmFjdGlvbkRlbGVnYXRlc107Ci0gICAgX2lzUGVyZm9ybWluZ0RhdGFJbnRlcmFj
dGlvbk9wZXJhdGlvbiA9IE5POwotICAgIFtfZGF0YUludGVyYWN0aW9uQ2FyZXRWaWV3IHJlbW92
ZV07Ci0gICAgX2RhdGFJbnRlcmFjdGlvbkNhcmV0VmlldyA9IG5pbDsKICNlbmRpZgogCiAgICAg
X2luc3BlY3Rvck5vZGVTZWFyY2hFbmFibGVkID0gTk87CkBAIC0xMTU4LDcgKzExNTQsNyBAQCBz
dGF0aWMgTlNWYWx1ZSAqbnNTaXplRm9yVGFwSGlnaGxpZ2h0Qm9yZGVyUmFkaXVzKFdlYkNvcmU6
OkludFNpemUgYm9yZGVyUmFkaXVzLAogICAgIEJPT0wgc2hvdWxkWm9vbVRvRm9jdXNSZWN0ID0g
WUVTOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIC8vIEZJWE1FOiBXZSBuZWVk
IHRvIHRlYWNoIFdLV2ViVmlldyB0byBwcm9wZXJseSB6b29tIGFuZCBzY3JvbGwgZHVyaW5nIGEg
ZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb24uCi0gICAgc2hvdWxkWm9vbVRvRm9jdXNSZWN0ID0g
IVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXS5oYXNQZW5kaW5nT3Bl
cmF0aW9uOworICAgIHNob3VsZFpvb21Ub0ZvY3VzUmVjdCA9ICFfZGF0YUludGVyYWN0aW9uU3Rh
dGUuaXNQZXJmb3JtaW5nT3BlcmF0aW9uOwogI2VuZGlmCiAgICAgaWYgKHNob3VsZFpvb21Ub0Zv
Y3VzUmVjdCkgewogICAgICAgICAvLyBJbiBjYXNlIHVzZXIgc2NhbGluZyBpcyBmb3JjZSBlbmFi
bGVkLCBkbyBub3QgdXNlIHRoYXQgc2NhbGluZyB3aGVuIHpvb21pbmcgaW4gd2l0aCBhbiBpbnB1
dCBmaWVsZC4KQEAgLTM4MzksNyArMzgzNSw3IEBAIHN0YXRpYyBib29sIGlzQXNzaXN0YWJsZUlu
cHV0VHlwZShJbnB1dFR5cGUgdHlwZSkKICAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3Ig
aXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nIG9y
IHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KICAgICAgICAgc2hvdWxkU2hvd0tleWJv
YXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQ7CiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBf
aXNQZXJmb3JtaW5nRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uOworICAgICAgICBzaG91bGRTaG93
S2V5Ym9hcmQgfD0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmlzUGVyZm9ybWluZ09wZXJhdGlvbjsK
ICNlbmRpZgogICAgIH0KICAgICBpZiAoIXNob3VsZFNob3dLZXlib2FyZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggM2MwMmY4NjZj
MjljYWM4YTRmMjM4OWQ4ZjFiMDI1MjVlMmE3YzNjMC4uOWNjNjgwMzRkNjhiMTVmNjI2ZTNlNDIw
ZWUwMWYwMDU2NmRkNjI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KQEAgLTExMTYsOSArMTExNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRJc1Njcm9sbGluZ09yWm9vbWluZyhib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKQogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5k
bGVkKQogewotICAgIG1fcGFnZUNsaWVudC5kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJv
bGxlck9wZXJhdGlvbigpOworICAgIG1fcGFnZUNsaWVudC5kaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbihoYW5kbGVkKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YTVhNWY0OTE0MzA1YWYyMmE4ODM3MzQ1NWM1MDAyYzgxNWVkODBlZi4uYTZiZjUyNTNkNDgxMDhj
ZjNhOGE0MGZiOWFjN2RkMzJkZjI3ZDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNyw3ICsyMDA3LDYgQEAKIAkJRURD
QTcxQjcxMjhEREE4QzAwMjAxQjI2IC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYxMDAxMjg5RkNEOTAw
ODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwICovOyB9OwogCQlGMDM2OTc4ODE1RjRC
RjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCAqLzsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25B
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlGNDMzNzA5NzFFNEQ3MkVEMDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMzNzA5NjFFNEQ2QTQ0
MDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdl
Ykljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi87
IH07CiAJCUY0NERGRUIzMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0REZFQjExRTlF
NzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gKi87IH07CiAJCUY2MTEzRTI1MTI2
Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0UxODIwMDU3RDBB
NyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKQEAgLTQzNDIsNyArNDM0MSw2
IEBACiAJCUVDQkZDMURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JU
QVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwOUJBMTcxRTZF
NjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUY0MzM3MDk2MUU0RDZBNDQwMDA1MkIwRSAvKiBfV0tUZXN0aW5n
RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGVzdGluZ0Rl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYw
MDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYkljb25VdGlsaXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAv
KiBXZWJJY29uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV2ViSWNvblV0aWxpdGllcy5tbTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcg
LyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTU2MCw3ICs1NTU4LDYgQEAKIAkJCQkxQTAwMkQzRjE5NkIzMjk0MDBCOUFENDQg
LyogX1dLU2Vzc2lvblN0YXRlLmggKi8sCiAJCQkJMUEwMDJEM0UxOTZCMzI5NDAwQjlBRDQ0IC8q
IF9XS1Nlc3Npb25TdGF0ZS5tbSAqLywKIAkJCQkxQTAwMkQ0MjE5NkIzMzcwMDBCOUFENDQgLyog
X1dLU2Vzc2lvblN0YXRlSW50ZXJuYWwuaCAqLywKLQkJCQlGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJC
MEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi8sCiAJCQkJMkQ2QjM3MTkxOEE5NjdBRDAwNDJB
RTgwIC8qIF9XS1RodW1ibmFpbFZpZXcuaCAqLywKIAkJCQkyRDZCMzcxQTE4QTk2N0FEMDA0MkFF
ODAgLyogX1dLVGh1bWJuYWlsVmlldy5tbSAqLywKIAkJCQkyREFDRTY0RDE4QURCRkYwMDBFNENB
NzYgLyogX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggKi8sCkBAIC04MTI5LDcgKzgxMjYsNiBA
QAogCQkJCTM3NjMxMUZFMUEzRkI2MDAwMDVBMkU1MSAvKiBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0NDE5NkIzMzg5MDBC
OUFENDQgLyogX1dLU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0MzE5
NkIzMzcwMDBCOUFENDQgLyogX1dLU2Vzc2lvblN0YXRlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAotCQkJCUY0MzM3MDk3MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJENkIzNzFCMThBOTY3QUQwMDQyQUU4MCAvKiBfV0tUaHVtYm5h
aWxWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREFDRTY0RTE4QURCRkYwMDBFNENBNzYgLyog
X1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzI0MTMwMzFB
QUNGQTc1MDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggY2NjZDA3NWJkZjEwZTliODJjMWRiMDQ4NTIyYmJmYzNiM2IyZDNiOC4uNjYzODAzNTJh
Yjk0MGFjYmY4YzRlMDc0ZWEwNzUxYTg3ODk5NGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzYwMSw3ICszNjAxLDcgQEAgdm9pZCBX
ZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBjb25z
dCBXZWJDb3JlOjpEcmFnRGEKIAogICAgICAgICBhdXRvJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgICAgIGZyYW1lLmVkaXRvcigp
LnNldElnbm9yZVNlbGVjdGlvbkNoYW5nZXModHJ1ZSk7Ci0gICAgICAgIG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnRGF0YSk7CisgICAgICAgIGJvb2wg
aGFuZGxlZCA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihk
cmFnRGF0YSk7CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLnNldElnbm9yZVNlbGVjdGlvbkNoYW5n
ZXMoZmFsc2UpOwogCiAgICAgICAgIC8vIElmIHdlIHN0YXJ0ZWQgbG9hZGluZyBhIGxvY2FsIGZp
bGUsIHRoZSBzYW5kYm94IGV4dGVuc2lvbiB0cmFja2VyIHdvdWxkIGhhdmUgYWRvcHRlZCB0aGlz
CkBAIC0zNjEwLDcgKzM2MTAsOSBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxl
ckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkRyYWdEYQogCiAgICAgICAg
IG1fcGVuZGluZ0Ryb3BFeHRlbnNpb25zRm9yRmlsZVVwbG9hZC5jbGVhcigpOwogI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkpOworICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25D
b250cm9sbGVyT3BlcmF0aW9uKGhhbmRsZWQpKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJB
TShoYW5kbGVkKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWZlZDNkMjE0YjljNDNlZmVl
Y2Q3YmNmNWMwMzkyYjAyMDU0NDlhOC4uMTdmYWVmY2IzZGZmNWY3MWU2YzU2ZGQzM2ZkOTNiYzlk
ODkzODkxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA0LTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBkZWxlZ2F0ZSBob29rcyBmb3Igb3Zl
cnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTAwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzE2Njk2NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdCBjaGVja2luZyB0aGF0IG5vcm1hbCBX
ZWJLaXQgYmVoYXZpb3Igd2hlbiB2ZW5kaW5nIHVwZGF0ZWQgZGF0YSBpbnRlcmFjdGlvbiBvcGVy
YXRpb25zIG1heQorICAgICAgICBiZSBvdmVycmlkZGVuLCByZXN1bHRpbmcgaW4gYSBkYXRhIGlu
dGVyYWN0aW9uIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWQgd2hlbiBpdCBvdGhlcndpc2Ugd291
bGQgbm90IGhhdmUuIEFsc28KKyAgICAgICAgYWRqdXN0cyBmb3Igc29tZSBjaGFuZ2VzIGluIFdl
YktpdDIgKFNlZSBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAg
ICBOZXcgQVBJIHRlc3Q6CisgICAgICAgIERhdGFJbnRlcmFjdGlvblRlc3RzLk92ZXJyaWRlRGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbToKKyAgICAgICAgKC1bVUlJdGVtUHJvdmlkZXIgcmVn
aXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp3aXRoRGF0YTpdKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIGRlYWxsb2NdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
IF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6Zm9yU2Vzc2lvbjpd
KToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF93ZWJWaWV3OndpbGxVcGRh
dGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09wZXJhdGlvbjpmb3JTZXNzaW9uOl0pOgorICAg
ICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igd2ViVmlld0RpZFBlcmZvcm1EYXRhSW50
ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOl0pOiBEZWxldGVkLgorCiAyMDE3LTA0LTE4ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIEFk
ZCBpbmZyYXN0cnVjdHVyZSBhbmQgdW5pdCB0ZXN0cyBmb3IgZmlsZSB1cGxvYWRzIHVzaW5nIGRh
dGEgaW50ZXJhY3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
RGF0YUludGVyYWN0aW9uVGVzdHMubW0KaW5kZXggMGYzMmI3Y2QwYjNiZWUxOGZjOGI5YzhkYTRl
NWNkM2UxYTI1MDc3Zi4uZGZjYWRkNTY4NDcwMTRjMzIxMDFmMzNiMzQ0NGUyYTQ4NjI2OTBmZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9u
VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0
aW9uVGVzdHMubW0KQEAgLTM3LDcgKzM3LDEyIEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaD4KIAorQGludGVyZmFjZSBNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24KKy0g
KFVJSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVyQXRJbmRleDooTlNVSW50ZWdlcilpbmRleDsK
K0BlbmQKKwogdHlwZWRlZiB2b2lkICheRmlsZUxvYWRDb21wbGV0aW9uQmxvY2spKE5TVVJMICos
IEJPT0wsIE5TRXJyb3IgKik7Cit0eXBlZGVmIHZvaWQgKF5EYXRhTG9hZENvbXBsZXRpb25CbG9j
aykoTlNEYXRhICosIE5TRXJyb3IgKik7CiAKIHN0YXRpYyBVSUltYWdlICp0ZXN0SWNvbkltYWdl
KCkKIHsKQEAgLTc2LDYgKzgxLDE1IEBAIHN0YXRpYyB2b2lkIGNsZWFuVXBEYXRhSW50ZXJhY3Rp
b25UZW1wb3JhcnlQYXRoKCkKICAgICB9XTsKIH0KIAorLSAodm9pZClyZWdpc3RlckRhdGFSZXBy
ZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0cmluZyAqKXR5cGVJZGVudGlmaWVyIHdp
dGhEYXRhOihOU0RhdGEgKilkYXRhCit7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gcmV0YWluZWRE
YXRhID0gZGF0YTsKKyAgICBbc2VsZiByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJ
ZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNl
bnRhdGlvblZpc2liaWxpdHlBbGwgbG9hZEhhbmRsZXI6IFtyZXRhaW5lZERhdGFdIChEYXRhTG9h
ZENvbXBsZXRpb25CbG9jayBibG9jaykgLT4gTlNQcm9ncmVzcyAqIHsKKyAgICAgICAgYmxvY2so
cmV0YWluZWREYXRhLmdldCgpLCBuaWwpOworICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlz
Y3JldGVQcm9ncmVzc1dpdGhUb3RhbFVuaXRDb3VudDoxMDBdOworICAgIH1dOworfQorCiBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IChEYXRhSW50ZXJhY3Rpb25UZXN0cykK
QEAgLTQ2Myw2ICs0NzcsMzUgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgRXh0ZXJuYWxT
b3VyY2VKUEVHT25seSkKICAgICBjaGVja1NlbGVjdGlvblJlY3RzV2l0aExvZ2dpbmcoQFsgbWFr
ZUNHUmVjdFZhbHVlKDEsIDIwMSwgMjE1LCAxNzQpIF0sIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3IgZmluYWxTZWxlY3Rpb25SZWN0c10pOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3Rz
LCBPdmVycmlkZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbikKK3sKKyAgICBSZXRhaW5QdHI8VGVz
dFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CisKKyAgICBSZXRhaW5QdHI8
VUlJdGVtUHJvdmlkZXI+IHNpbXVsYXRlZEl0ZW1Qcm92aWRlciA9IGFkb3B0TlMoW1tVSUl0ZW1Q
cm92aWRlciBhbGxvY10gaW5pdF0pOworICAgIFtzaW11bGF0ZWRJdGVtUHJvdmlkZXIgcmVnaXN0
ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjooTlNTdHJpbmcgKilrVVRUeXBl
SFRNTCB3aXRoRGF0YTpbQCI8Ym9keT48L2JvZHk+IiBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhT
dHJpbmdFbmNvZGluZ11dOworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTG9hZGluZ0RhdGEg
PSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yPiBkYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFs
bG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92
aWRlci5nZXQoKSBdXTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHNldE92ZXJyaWRl
RGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQmxvY2s6Xk5TVUludGVnZXIoTlNVSW50ZWdlciBvcGVy
YXRpb24sIGlkIHNlc3Npb24pCisgICAgeworICAgICAgICBFWFBFQ1RfRVEoMFUsIG9wZXJhdGlv
bik7CisgICAgICAgIHJldHVybiAxOworICAgIH1dOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3Igc2V0RGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQ29tcGxldGlvbkJsb2NrOl4oQk9PTCBo
YW5kbGVkLCBpZCBzZXNzaW9uKSB7CisgICAgICAgIEVYUEVDVF9GQUxTRShoYW5kbGVkKTsKKyAg
ICAgICAgW1tzZXNzaW9uIGl0ZW1Qcm92aWRlckF0SW5kZXg6MF0gbG9hZERhdGFSZXByZXNlbnRh
dGlvbkZvclR5cGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWtVVFR5cGVIVE1MIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNEYXRhICpkYXRhLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgTlNT
dHJpbmcgKnRleHQgPSBbW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOmRhdGEgZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgICAgIEVYUEVD
VF9XS19TVFJFUSgiPGJvZHk+PC9ib2R5PiIsIHRleHQuVVRGOFN0cmluZyk7CisgICAgICAgICAg
ICBFWFBFQ1RfRkFMU0UoISFlcnJvcik7CisgICAgICAgICAgICBmaW5pc2hlZExvYWRpbmdEYXRh
ID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgfV07CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVs
YXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDMwMCwgNDAwKSB0bzpDR1BvaW50TWFrZSgxMDAsIDMw
MCldOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRMb2FkaW5nRGF0YSk7
Cit9CisKIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEF0dGFjaG1lbnRFbGVtZW50SXRlbVBy
b3ZpZGVycykKIHsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIHRlc3R3ZWJraXRhcGlfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1Z0lu
Il07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVs
YXRvci5oCmluZGV4IGIyY2E0N2U2ZDNhOGMyZDg5N2QyNDM2MjU5M2Y5NjYwY2E4YjM1NWQuLmRl
ZTllN2U3NzFjOTM1ZDMwOTQyNDJkZGYwN2JjNDE4YjY2ODRhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCkBAIC0yOSw3ICsy
OSw2IEBACiAjaW1wb3J0IDxVSUtpdC9VSUl0ZW1Qcm92aWRlci5oPgogI2ltcG9ydCA8VUlLaXQv
VUlLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+Ci0jaW1wb3J0
IDxXZWJLaXQvX1dLVGVzdGluZ0RlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
IAogQGNsYXNzIE1vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbjsKQEAgLTQ5LDcgKzQ4LDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgRGF0YUludGVyYWN0aW9uUGhhc2UpIHsKICAgICBEYXRh
SW50ZXJhY3Rpb25QZXJmb3JtaW5nID0gNAogfTsKIAotQGludGVyZmFjZSBEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgOiBOU09iamVjdDxfV0tUZXN0aW5nRGVsZWdhdGUsIFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+IHsKK0BpbnRlcmZhY2UgRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIDogTlNPYmplY3Q8
V0tVSURlbGVnYXRlUHJpdmF0ZT4gewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBfd2Vi
VmlldzsKICAgICBSZXRhaW5QdHI8TW9ja0RhdGFJbnRlcmFjdGlvblNlc3Npb24+IF9kYXRhSW50
ZXJhY3Rpb25TZXNzaW9uOwogICAgIFJldGFpblB0cjxNb2NrRGF0YU9wZXJhdGlvblNlc3Npb24+
IF9kYXRhT3BlcmF0aW9uU2Vzc2lvbjsKQEAgLTczLDYgKzcyLDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgRGF0YUludGVyYWN0aW9uUGhhc2UpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCbG9ja1B0cjxCT09MKF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopPiBzaG93Q3VzdG9tQWN0
aW9uU2hlZXRCbG9jazsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCbG9ja1B0cjxOU0FycmF5ICoo
TlNBcnJheSAqKT4gY29udmVydEl0ZW1Qcm92aWRlcnNCbG9jazsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIE5TQXJyYXkgKmV4dGVybmFsSXRlbVByb3ZpZGVyczsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCbG9ja1B0cjxOU1VJbnRlZ2VyKE5TVUludGVnZXIsIGlkKT4gb3ZlcnJpZGVE
YXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9jazsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCbG9j
a1B0cjx2b2lkKEJPT0wsIGlkKT4gZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQ29tcGxldGlvbkJs
b2NrOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKnNvdXJjZUl0
ZW1Qcm92aWRlcnM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKm9i
c2VydmVkRXZlbnROYW1lczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJh
eSAqZmluYWxTZWxlY3Rpb25SZWN0czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQppbmRleCBhNTY0NTE3ZWM4YWYzNTA3Y2VkZWJj
NTZlNjgwMGEzNWU0MmQ5ZjA0Li4xYWY2ODg5NzBkZmU2ZDYwZjE5YzliNmIzOTg4ODYyYTg0YjAx
NmYzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yLm1tCkBAIC03NSw3ICs3NSw2IEBAIHN0YXRpYyBOU0FycmF5ICpkYXRhSW50ZXJh
Y3Rpb25FdmVudE5hbWVzKCkKICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgewogICAgICAg
ICBfd2ViVmlldyA9IHdlYlZpZXc7CiAgICAgICAgIF9zaG91bGRFbnN1cmVVSUFwcGxpY2F0aW9u
ID0gTk87Ci0gICAgICAgIFtfd2ViVmlldyBfc2V0VGVzdGluZ0RlbGVnYXRlOnNlbGZdOwogICAg
ICAgICBbX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpzZWxmXTsKICAgICB9CiAgICAgcmV0dXJuIHNl
bGY7CkBAIC04Myw5ICs4Miw2IEBAIHN0YXRpYyBOU0FycmF5ICpkYXRhSW50ZXJhY3Rpb25FdmVu
dE5hbWVzKCkKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgaWYgKFtfd2ViVmlldyBfdGVzdGlu
Z0RlbGVnYXRlXSA9PSBzZWxmKQotICAgICAgICBbX3dlYlZpZXcgX3NldFRlc3RpbmdEZWxlZ2F0
ZTpuaWxdOwotCiAgICAgaWYgKFtfd2ViVmlldyBVSURlbGVnYXRlXSA9PSBzZWxmKQogICAgICAg
ICBbX3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpuaWxdOwogCkBAIC0yNzEsMTQgKzI2NywyMCBAQCBz
dGF0aWMgTlNBcnJheSAqZGF0YUludGVyYWN0aW9uRXZlbnROYW1lcygpCiAgICAgcmV0dXJuIF9w
aGFzZTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gX1dLVGVzdGluZ0RlbGVnYXRlCisjcHJhZ21hIG1h
cmsgLSBXS1VJRGVsZWdhdGVQcml2YXRlCiAKLS0gKHZvaWQpd2ViVmlld0RpZFBlcmZvcm1EYXRh
SW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlv
bldhc0hhbmRsZWQ6KEJPT0wpaGFuZGxlZCBmb3JTZXNzaW9uOihpZClzZXNzaW9uCiB7CiAgICAg
X2lzRG9uZVdpdGhDdXJyZW50UnVuID0gdHJ1ZTsKKworICAgIGlmIChzZWxmLmRhdGFJbnRlcmFj
dGlvbk9wZXJhdGlvbkNvbXBsZXRpb25CbG9jaykKKyAgICAgICAgc2VsZi5kYXRhSW50ZXJhY3Rp
b25PcGVyYXRpb25Db21wbGV0aW9uQmxvY2soaGFuZGxlZCwgc2Vzc2lvbik7CiB9CiAKLSNwcmFn
bWEgbWFyayAtIFdLVUlEZWxlZ2F0ZVByaXZhdGUKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3Bl
cmF0aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClzZXNzaW9uCit7Cisg
ICAgcmV0dXJuIHNlbGYub3ZlcnJpZGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9jayA/IHNl
bGYub3ZlcnJpZGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9jayhvcGVyYXRpb24sIHNlc3Np
b24pIDogb3BlcmF0aW9uOworfQogCiAtIChOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+Kilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92
aWRlcnM6KE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4qKW9yaWdpbmFsSXRlbVByb3ZpZGVycwog
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307550</attachid>
            <date>2017-04-19 21:40:40 -0700</date>
            <delta_ts>2017-04-21 17:03:05 -0700</delta_ts>
            <desc>Include item providers in delegate method.</desc>
            <filename>bug-171005-20170419214040.patch</filename>
            <type>text/plain</type>
            <size>31970</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTUyZTY5YjU3MjRmODUz
OThkNTgzYWIxNjY5ZjlhNDVlYjJiNzI0NS4uOTBiNjg3ZjMxYjQ0ZmY4OTUyNDNlZTlkYzQ5OGM3
YjgwNDlmMjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBk
ZWxlZ2F0ZSBob29rcyBmb3Igb3ZlcnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9w
ZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTAwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2Njk2NDY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBvdmVy
cmlkaW5nIGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9ucyB0aHJvdWdoIHR3byBuZXcgZGVsZWdh
dGUgbWV0aG9kczoKKyAgICAgICAgX3dlYlZpZXc6d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9w
ZXJhdGlvblRvT3BlcmF0aW9uOmZvclNlc3Npb246LCBhbmQKKyAgICAgICAgX3dlYlZpZXc6ZGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDpmb3JTZXNzaW9uOi4gVGhlIGZvcm1lciBt
YXkgYmUgb3ZlcnJpZGRlbiB0byByZXR1cm4gYSBkaWZmZXJlbnQKKyAgICAgICAgb3BlcmF0aW9u
IHR5cGUgdGhhbiB3aGF0IFdlYktpdCB3b3VsZCBvcmlnaW5hbGx5IGhhdmUgcmV0dXJuZWQsIGFu
ZCB0aGUgbGF0dGVyIG1heSBiZSBvdmVycmlkZGVuIHRvIHJ1biBjdXN0b20KKyAgICAgICAgbG9n
aWMgYWZ0ZXIgdGhlIHdlYiBwcm9jZXNzIGhhcyBoYW5kbGVkIGEgZGF0YSBpbnRlcmFjdGlvbiBv
cGVyYXRpb24uCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCBpbmNsdWRlcyBzb21lIG1pbm9yIGNs
ZWFudXAgYXJvdW5kIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi4gV2l0aCB0aGUgbmV3CisgICAg
ICAgIF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6Zm9yU2Vzc2lv
bjogZGVsZWdhdGUgbWV0aG9kLCB0aGUgbGFzdCBtZXRob2Qgb24gX1dLVGVzdGluZ0RlbGVnYXRl
CisgICAgICAgIG1heSBiZSByZW1vdmVkLiBUaGlzIG1lYW5zIF9XS1Rlc3RpbmdEZWxlZ2F0ZSBp
cyBubyBsb25nZXIgbmVlZGVkLCBzbyB0aGlzIHBhdGNoIHJlbW92ZXMgaXRzIGhlYWRlciBlbnRp
cmVseS4KKyAgICAgICAgQWxzbywgcmVsb2NhdGVzIHNvbWUgc3RhdGUgdmFyaWFibGVzIGZvcm1l
cmx5IG9uIFdLQ29udGVudFZpZXcgdG8gV0tDb250ZW50VmlldydzIFdLRGF0YUludGVyYWN0aW9u
U3RhdGUgc3RydWN0CisgICAgICAgIGluc3RlYWQsIHNvIHRoYXQgYWxsIHN0YXRlIGFzc29jaWF0
ZWQgd2l0aCBkYXRhIGludGVyYWN0aW9uIG1heSBiZSBjbGVhbmVkIHVwIGF0IHRoZSBzYW1lIHRp
bWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF90ZXN0aW5nRGVsZWdhdGVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXRUZXN0aW5nRGVsZWdhdGU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFk
ZCBhIG5ldyAiaGFuZGxlZCIgSVBDIGFyZ3VtZW50IHRvIERpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uLiBUaGlzIGxldHMgdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
a25vdyB3aGV0aGVyIG9yIG5vdCB0aGUgZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb24gd2FzIGhh
bmRsZWQgYnkgdGhlIHdlYiBwcm9jZXNzLCBhbmQgaXMgZXZlbnR1YWxseSBwbHVtYmVkCisgICAg
ICAgIHRocm91Z2ggdG8gdGhlIFVJIGRlbGVnYXRlIHZpYSB0aGUgbmV3IFNQSS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmlld10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9zdGFydEFzc2lzdGluZ05vZGU6dXNlcklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9k
ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EYXRhSW50ZXJh
Y3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24p
OgorCiAyMDE3LTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXSzJdIEFkZCBpbmZyYXN0cnVjdHVyZSBhbmQgdW5pdCB0ZXN0cyBmb3IgZmls
ZSB1cGxvYWRzIHVzaW5nIGRhdGEgaW50ZXJhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggNGUz
NjE0ZWFhNjk5YzcxNTA3Y2NlODZmMDVmY2QwZmQ4YzVhZmM4Ni4uZTY5OTc5Yjc5Y2IzZDc5OWVk
ZGRhNzkxMGUyZDQ2MGM1MDE2Nzk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTk2LDYgKzk2LDgg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcGVyZm9ybURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJdGVtUHJvdmlkZXJzOihO
U0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICopaXRlbVByb3ZpZGVycyBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRhdGFJbnRlcmFjdGlvbjooaWQpaW50ZXJhY3Rpb24gc2Vzc2lvbldpbGxCZWdpbjooaWQpc2Vz
c2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbjooaWQpaW50ZXJhY3Rpb24gc2Vz
c2lvbjooaWQpc2Vzc2lvbiBkaWRFbmRXaXRoT3BlcmF0aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlv
biBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6KEJP
T0wpaGFuZGxlZCBmb3JTZXNzaW9uOihpZClzZXNzaW9uIGl0ZW1Qcm92aWRlcnM6KE5TQXJyYXk8
VUlJdGVtUHJvdmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOihOU1VJbnRlZ2Vy
KW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKICNlbHNlCiAtIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwog
LSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5T
TWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1l
bnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KaW5kZXggMjcwYWZkZjcyNGFlY2I0YmQzMjgxOGQzMDM5MzBmMTdkMjBh
MTkxZS4uOGI5MDdjMDkxNTRmYWZhYmZiNzE5Mjk5NjE5NTk3OTc2MDllMTRjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTkwLDcg
KzkwLDYgQEAKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1Nlc3Npb25TdGF0ZUludGVy
bmFsLmgiCi0jaW1wb3J0ICJfV0tUZXN0aW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS1Zpc2l0
ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJu
YWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KQEAgLTI5OSw4ICsy
OTgsNiBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkm
IHBhZ2UpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF9pbXBsOwog
ICAgIFJldGFpblB0cjxXS1RleHRGaW5kZXJDbGllbnQ+IF90ZXh0RmluZGVyQ2xpZW50OwogI2Vu
ZGlmCi0KLSAgICBpZDxfV0tUZXN0aW5nRGVsZWdhdGU+IF90ZXN0aW5nRGVsZWdhdGU7CiB9CiAK
IC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKQEAgLTUwNzcsMTYg
KzUwNzQsNiBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0
b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oVUlTZQogI2VuZGlmCiB9CiAKLS0gKGlkPF9X
S1Rlc3RpbmdEZWxlZ2F0ZT4pX3Rlc3RpbmdEZWxlZ2F0ZQotewotICAgIHJldHVybiBfdGVzdGlu
Z0RlbGVnYXRlOwotfQotCi0tICh2b2lkKV9zZXRUZXN0aW5nRGVsZWdhdGU6KGlkPF9XS1Rlc3Rp
bmdEZWxlZ2F0ZT4pdGVzdGluZ0RlbGVnYXRlCi17Ci0gICAgX3Rlc3RpbmdEZWxlZ2F0ZSA9IHRl
c3RpbmdEZWxlZ2F0ZTsKLX0KLQogI2lmIFBMQVRGT1JNKElPUykKIAogLSAoQ0dSZWN0KV9jb250
ZW50VmlzaWJsZVJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMzA4NGQ4Njg3Y2E0NTc5MzE5YmQ1NzMzMjg2
ZjhlMDRhNTE4NzA5Yy4uNDRmZGFjZGMxNzg0NzI3MDNiNWJhMmI1YjM5N2ZmNDM2ZjJlY2U0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTgxLDcgKzgxLDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQHByb3RvY29sIF9XS0ljb25Mb2FkaW5nRGVsZWdh
dGU7CiBAcHJvdG9jb2wgX1dLSW5wdXREZWxlZ2F0ZTsKIEBwcm90b2NvbCBfV0tGdWxsc2NyZWVu
RGVsZWdhdGU7Ci1AcHJvdG9jb2wgX1dLVGVzdGluZ0RlbGVnYXRlOwogCiBAaW50ZXJmYWNlIFdL
V2ViVmlldyAoV0tQcml2YXRlKQogCkBAIC0yOTcsNyArMjk2LDYgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQGludGVyZmFjZSBXS1dlYlZp
ZXcgKFdLVGVzdGluZykKIAogLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJm
YWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrLCBzZXR0ZXI9X3NldFRlc3RpbmdEZWxlZ2F0ZTopIGlkPF9XS1Rlc3RpbmdEZWxlZ2F0
ZT4gX3Rlc3RpbmdEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0RlbGVnYXRlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZWJlOWUzZTNjMjk2MzZmNjA0MDY2YmIw
MTU5NGFmZTRlZGFkODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdh
dGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1AY2xhc3Mg
V0tXZWJWaWV3OwotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1AcHJvdG9jb2wgX1dLVGVz
dGluZ0RlbGVnYXRlIDxOU09iamVjdD4KLUBvcHRpb25hbAotCi0jaWYgVEFSR0VUX09TX0lQSE9O
RQotLSAodm9pZCl3ZWJWaWV3RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVy
YXRpb246KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0jZW5kaWYgLy8gVEFSR0VUX09TX1BIT05FCi0K
LUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggN2UxNzEzZGJmNDgyZjA4
MjU5MWY5Y2IwZWQwNTUzMTg3NzIxNjVmNS4uOWM5YTllYjVjNWU0YzkyNDk5ZjU4YTZkYjZmYWFm
NWQ4YTQyNWJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zODAs
NyArMzgwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJP
cGVyYXRpb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rp
b25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIHVpbnQ2NF90IGFjdGlvbikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiOTIwNWY0ZTMwMzUxNGJmZDQ0NjE5MzM2
M2EzNDIwNDE4YmUxYmVkLi45YjMwYjJhNzU5NDc5OTA4MGZmNWUwYWFmNWRhZjE3NWZjZmRiODkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NjMsNyArNTYz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFJlY3RzRm9yR3JhbnVsYXJpdHlXaXRoU2Vs
ZWN0aW9uT2Zmc2V0KFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgdWludDMyX3Qgb2Zmc2V0LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+Jiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lkIHJlcXVlc3RSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0V2l0aFRleHQoaW50MzJfdCBvZmZzZXQsIGNvbnN0IFN0cmluZyYsIHN0ZDo6ZnVuY3Rp
b248dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4pOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHZvaWQgZGlk
UGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCk7
CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFy
dGVkKTsKICAgICB2b2lkIHJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTRhNTdmOWM2
NTk1OTdjMTRhNjZlYmU2ZmNkNTgxZjRjNjBmMWZkMy4uOGNhYzliMWExZmU4YjNjOGMzZjM4YTFl
NTU1MDI2YzM5ODlkOWM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTAsNyArMzEwLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAg
RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKQorICAgIERpZFBl
cmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkKICAg
ICBEaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQogICAg
IERpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYTZkNmJjMDUwYzI1
NzkwZjc1OGM4ZDQzY2NlYTY5Y2RkYTExNDEwYS4uOTc0MjQ1ZjY4NDBmODUwYWJhMGU5YmI5ZGM5
MGRkOTBjMjJjN2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRl
cmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBz
dGFydGVkKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdl
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhPiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIHVpbnQ2NF90
IGFjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rp
b24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggNDY0NmM0YWFkMzZkNTM4MjQzOWQ3NTUzM2VlZTE0ZjNjYmMwZDIyOS4uM2U3NTVjZDcy
MWM2Njg1NDBlZjJjNDEzNDJiMGE0MTQ0ZjJmNjNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03NzEsOSArNzcxLDkgQEAg
UmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxpZGF0aW9uQnVi
YmxlKGNvbnN0IFN0cmluZyYgbWVzc2EKIH0KIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xs
ZXJPcGVyYXRpb24oKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURhdGFJbnRlcmFj
dGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKQogewotICAgIFttX2NvbnRlbnRW
aWV3IF9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbl07CisgICAg
W21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0
aW9uOmhhbmRsZWRdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRIYW5kbGVTdGFydERh
dGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOWYz
YWRkOTdiYjNjNWZlOWZiOGMzMTcxNDdmNWQyNmJhYWFlZDM1Zi4uNTZkMDRhM2ZhMTNkMTAxODA1
YmY2MTViMzM5MDMyMGI4NjMxOGY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yMDAsMTQgKzIwMCw5
IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKICNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKICAgICBXZWJLaXQ6OldLRGF0YUludGVyYWN0aW9uU3RhdGUgX2RhdGFJbnRlcmFj
dGlvblN0YXRlOwotICAgIEJPT0wgX2lzUGVyZm9ybWluZ0RhdGFJbnRlcmFjdGlvbk9wZXJhdGlv
bjsKICAgICBSZXRhaW5QdHI8V0tEYXRhSW50ZXJhY3Rpb24+IF9kYXRhSW50ZXJhY3Rpb247CiAg
ICAgUmV0YWluUHRyPFdLRGF0YU9wZXJhdGlvbj4gX2RhdGFPcGVyYXRpb247CiAgICAgQ0dQb2lu
dCBfZGVmZXJyZWRBY3Rpb25TaGVldFJlcXVlc3RMb2NhdGlvbjsKLSAgICBSZXRhaW5QdHI8VUlW
aWV3PiBfdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Q7Ci0gICAgUmV0YWluUHRyPFVJSW1hZ2VW
aWV3PiBfZGF0YUludGVyYWN0aW9uVW5zZWxlY3RlZENvbnRlbnRTbmFwc2hvdDsKLSAgICBCT09M
IF9pc1J1bm5pbmdDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb25BbmltYXRpb247Ci0gICAgUmV0
YWluUHRyPFdLRGF0YUludGVyYWN0aW9uQ2FyZXRWaWV3PiBfZGF0YUludGVyYWN0aW9uQ2FyZXRW
aWV3OwogI2VuZGlmCiB9CiAKQEAgLTI4OCw3ICsyODMsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVj
dGlvbkRhdGEgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlv
bk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OwogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0tICh2b2lkKV9kaWRQZXJmb3JtRGF0YUludGVy
YWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKKy0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJh
Y3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOihCT09MKWhhbmRsZWQ7CiAtICh2b2lkKV9kaWRIYW5k
bGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6KEJPT0wpc3RhcnRlZDsKIC0gKHZvaWQpX3N0
YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2Ug
d2l0aEluZGljYXRvckRhdGE6KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGE+KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlv
bjsKIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbjooc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
MzI1N2IxNTkwNTE0NDliNjFjM2ViMTNkZmNjMzU2NGY1ZjBhY2MwMS4uYjY3MzczODIxMzJiZGEw
YWY0ZDJhZmI2ZjRmNjBhNDU4MTljMmQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTYxLDcgKzYx
LDYgQEAKICNpbXBvcnQgIl9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIgogI2ltcG9ydCAiX1dLRm9y
bUlucHV0U2Vzc2lvbi5oIgogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgotI2ltcG9ydCAi
X1dLVGVzdGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnQuaD4KICNpbXBv
cnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2
aWNlcy9VVENvcmVUeXBlcy5oPgpAQCAtNjUzLDkgKzY1Miw2IEBAIHN0YXRpYyBVSVdlYlNlbGVj
dGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFu
dWxhcml0CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBbc2VsZiB0ZWFyZG93
bkRhdGFJbnRlcmFjdGlvbkRlbGVnYXRlc107Ci0gICAgX2lzUGVyZm9ybWluZ0RhdGFJbnRlcmFj
dGlvbk9wZXJhdGlvbiA9IE5POwotICAgIFtfZGF0YUludGVyYWN0aW9uQ2FyZXRWaWV3IHJlbW92
ZV07Ci0gICAgX2RhdGFJbnRlcmFjdGlvbkNhcmV0VmlldyA9IG5pbDsKICNlbmRpZgogCiAgICAg
X2luc3BlY3Rvck5vZGVTZWFyY2hFbmFibGVkID0gTk87CkBAIC0xMTU4LDcgKzExNTQsNyBAQCBz
dGF0aWMgTlNWYWx1ZSAqbnNTaXplRm9yVGFwSGlnaGxpZ2h0Qm9yZGVyUmFkaXVzKFdlYkNvcmU6
OkludFNpemUgYm9yZGVyUmFkaXVzLAogICAgIEJPT0wgc2hvdWxkWm9vbVRvRm9jdXNSZWN0ID0g
WUVTOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIC8vIEZJWE1FOiBXZSBuZWVk
IHRvIHRlYWNoIFdLV2ViVmlldyB0byBwcm9wZXJseSB6b29tIGFuZCBzY3JvbGwgZHVyaW5nIGEg
ZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb24uCi0gICAgc2hvdWxkWm9vbVRvRm9jdXNSZWN0ID0g
IVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXS5oYXNQZW5kaW5nT3Bl
cmF0aW9uOworICAgIHNob3VsZFpvb21Ub0ZvY3VzUmVjdCA9ICFfZGF0YUludGVyYWN0aW9uU3Rh
dGUuaXNQZXJmb3JtaW5nT3BlcmF0aW9uOwogI2VuZGlmCiAgICAgaWYgKHNob3VsZFpvb21Ub0Zv
Y3VzUmVjdCkgewogICAgICAgICAvLyBJbiBjYXNlIHVzZXIgc2NhbGluZyBpcyBmb3JjZSBlbmFi
bGVkLCBkbyBub3QgdXNlIHRoYXQgc2NhbGluZyB3aGVuIHpvb21pbmcgaW4gd2l0aCBhbiBpbnB1
dCBmaWVsZC4KQEAgLTM4MzksNyArMzgzNSw3IEBAIHN0YXRpYyBib29sIGlzQXNzaXN0YWJsZUlu
cHV0VHlwZShJbnB1dFR5cGUgdHlwZSkKICAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3Ig
aXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nIG9y
IHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KICAgICAgICAgc2hvdWxkU2hvd0tleWJv
YXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQ7CiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBf
aXNQZXJmb3JtaW5nRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uOworICAgICAgICBzaG91bGRTaG93
S2V5Ym9hcmQgfD0gX2RhdGFJbnRlcmFjdGlvblN0YXRlLmlzUGVyZm9ybWluZ09wZXJhdGlvbjsK
ICNlbmRpZgogICAgIH0KICAgICBpZiAoIXNob3VsZFNob3dLZXlib2FyZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggM2MwMmY4NjZj
MjljYWM4YTRmMjM4OWQ4ZjFiMDI1MjVlMmE3YzNjMC4uOWNjNjgwMzRkNjhiMTVmNjI2ZTNlNDIw
ZWUwMWYwMDU2NmRkNjI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KQEAgLTExMTYsOSArMTExNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRJc1Njcm9sbGluZ09yWm9vbWluZyhib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKQogCiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbigpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5k
bGVkKQogewotICAgIG1fcGFnZUNsaWVudC5kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJv
bGxlck9wZXJhdGlvbigpOworICAgIG1fcGFnZUNsaWVudC5kaWRQZXJmb3JtRGF0YUludGVyYWN0
aW9uQ29udHJvbGxlck9wZXJhdGlvbihoYW5kbGVkKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YTVhNWY0OTE0MzA1YWYyMmE4ODM3MzQ1NWM1MDAyYzgxNWVkODBlZi4uYTZiZjUyNTNkNDgxMDhj
ZjNhOGE0MGZiOWFjN2RkMzJkZjI3ZDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNyw3ICsyMDA3LDYgQEAKIAkJRURD
QTcxQjcxMjhEREE4QzAwMjAxQjI2IC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYxMDAxMjg5RkNEOTAw
ODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwICovOyB9OwogCQlGMDM2OTc4ODE1RjRC
RjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCAqLzsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25B
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlGNDMzNzA5NzFFNEQ3MkVEMDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMzNzA5NjFFNEQ2QTQ0
MDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdl
Ykljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi87
IH07CiAJCUY0NERGRUIzMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0REZFQjExRTlF
NzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gKi87IH07CiAJCUY2MTEzRTI1MTI2
Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2Q0UxODIwMDU3RDBB
NyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKQEAgLTQzNDIsNyArNDM0MSw2
IEBACiAJCUVDQkZDMURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JU
QVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNv
bG9yUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwOUJBMTcxRTZF
NjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUY0MzM3MDk2MUU0RDZBNDQwMDA1MkIwRSAvKiBfV0tUZXN0aW5n
RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGVzdGluZ0Rl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYw
MDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYkljb25VdGlsaXRpZXMuaDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAv
KiBXZWJJY29uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV2ViSWNvblV0aWxpdGllcy5tbTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcg
LyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTU2MCw3ICs1NTU4LDYgQEAKIAkJCQkxQTAwMkQzRjE5NkIzMjk0MDBCOUFENDQg
LyogX1dLU2Vzc2lvblN0YXRlLmggKi8sCiAJCQkJMUEwMDJEM0UxOTZCMzI5NDAwQjlBRDQ0IC8q
IF9XS1Nlc3Npb25TdGF0ZS5tbSAqLywKIAkJCQkxQTAwMkQ0MjE5NkIzMzcwMDBCOUFENDQgLyog
X1dLU2Vzc2lvblN0YXRlSW50ZXJuYWwuaCAqLywKLQkJCQlGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJC
MEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi8sCiAJCQkJMkQ2QjM3MTkxOEE5NjdBRDAwNDJB
RTgwIC8qIF9XS1RodW1ibmFpbFZpZXcuaCAqLywKIAkJCQkyRDZCMzcxQTE4QTk2N0FEMDA0MkFF
ODAgLyogX1dLVGh1bWJuYWlsVmlldy5tbSAqLywKIAkJCQkyREFDRTY0RDE4QURCRkYwMDBFNENB
NzYgLyogX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggKi8sCkBAIC04MTI5LDcgKzgxMjYsNiBA
QAogCQkJCTM3NjMxMUZFMUEzRkI2MDAwMDVBMkU1MSAvKiBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0NDE5NkIzMzg5MDBC
OUFENDQgLyogX1dLU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0MzE5
NkIzMzcwMDBCOUFENDQgLyogX1dLU2Vzc2lvblN0YXRlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAotCQkJCUY0MzM3MDk3MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJENkIzNzFCMThBOTY3QUQwMDQyQUU4MCAvKiBfV0tUaHVtYm5h
aWxWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREFDRTY0RTE4QURCRkYwMDBFNENBNzYgLyog
X1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzI0MTMwMzFB
QUNGQTc1MDBBNThDMTUgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggY2NjZDA3NWJkZjEwZTliODJjMWRiMDQ4NTIyYmJmYzNiM2IyZDNiOC4uNjYzODAzNTJh
Yjk0MGFjYmY4YzRlMDc0ZWEwNzUxYTg3ODk5NGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzYwMSw3ICszNjAxLDcgQEAgdm9pZCBX
ZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBjb25z
dCBXZWJDb3JlOjpEcmFnRGEKIAogICAgICAgICBhdXRvJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgICAgIGZyYW1lLmVkaXRvcigp
LnNldElnbm9yZVNlbGVjdGlvbkNoYW5nZXModHJ1ZSk7Ci0gICAgICAgIG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnRGF0YSk7CisgICAgICAgIGJvb2wg
aGFuZGxlZCA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5wZXJmb3JtRHJhZ09wZXJhdGlvbihk
cmFnRGF0YSk7CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLnNldElnbm9yZVNlbGVjdGlvbkNoYW5n
ZXMoZmFsc2UpOwogCiAgICAgICAgIC8vIElmIHdlIHN0YXJ0ZWQgbG9hZGluZyBhIGxvY2FsIGZp
bGUsIHRoZSBzYW5kYm94IGV4dGVuc2lvbiB0cmFja2VyIHdvdWxkIGhhdmUgYWRvcHRlZCB0aGlz
CkBAIC0zNjEwLDcgKzM2MTAsOSBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxl
ckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkRyYWdEYQogCiAgICAgICAg
IG1fcGVuZGluZ0Ryb3BFeHRlbnNpb25zRm9yRmlsZVVwbG9hZC5jbGVhcigpOwogI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkpOworICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25D
b250cm9sbGVyT3BlcmF0aW9uKGhhbmRsZWQpKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJB
TShoYW5kbGVkKTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWZlZDNkMjE0YjljNDNlZmVl
Y2Q3YmNmNWMwMzkyYjAyMDU0NDlhOC4uYzI4MzI4M2QxYzU0ZTZiYTQ4OGI3YjMxNGYwNGJmYjM3
ZGUyMDRkNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA0LTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBkZWxlZ2F0ZSBob29rcyBmb3Igb3Zl
cnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTAwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzE2Njk2NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdCBjaGVja2luZyB0aGF0IG5vcm1hbCBX
ZWJLaXQgYmVoYXZpb3Igd2hlbiB2ZW5kaW5nIHVwZGF0ZWQgZGF0YSBpbnRlcmFjdGlvbiBvcGVy
YXRpb25zIG1heQorICAgICAgICBiZSBvdmVycmlkZGVuLCByZXN1bHRpbmcgaW4gYSBkYXRhIGlu
dGVyYWN0aW9uIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWQgd2hlbiBpdCBvdGhlcndpc2Ugd291
bGQgbm90IGhhdmUuIEFsc28KKyAgICAgICAgYWRqdXN0cyBmb3Igc29tZSBjaGFuZ2VzIGluIFdl
YktpdDIgKFNlZSBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzKS4KKworICAgICAg
ICBOZXcgQVBJIHRlc3Q6CisgICAgICAgIERhdGFJbnRlcmFjdGlvblRlc3RzLk92ZXJyaWRlRGF0
YUludGVyYWN0aW9uT3BlcmF0aW9uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbToKKyAgICAgICAgKC1bVUlJdGVtUHJvdmlkZXIgcmVn
aXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp3aXRoRGF0YTpdKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIGRlYWxsb2NdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
IF93ZWJWaWV3OmRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6Zm9yU2Vzc2lvbjpp
dGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX3dl
YlZpZXc6d2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOmZvclNl
c3Npb246XSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciB3ZWJWaWV3RGlk
UGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb246XSk6IERlbGV0ZWQuCisK
IDIwMTctMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dLMl0gQWRkIGluZnJhc3RydWN0dXJlIGFuZCB1bml0IHRlc3RzIGZvciBmaWxlIHVw
bG9hZHMgdXNpbmcgZGF0YSBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCAwZjMyYjdjZDBiM2Jl
ZTE4ZmM4YjljOGRhNGU1Y2QzZTFhMjUwNzdmLi42ZmJiNTQyNzkwNzBkMGZkM2M5YTFlNWQ3MmUw
MDI1MDBiNWI3NjU2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9E
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogCiB0eXBlZGVmIHZvaWQgKF5GaWxl
TG9hZENvbXBsZXRpb25CbG9jaykoTlNVUkwgKiwgQk9PTCwgTlNFcnJvciAqKTsKK3R5cGVkZWYg
dm9pZCAoXkRhdGFMb2FkQ29tcGxldGlvbkJsb2NrKShOU0RhdGEgKiwgTlNFcnJvciAqKTsKIAog
c3RhdGljIFVJSW1hZ2UgKnRlc3RJY29uSW1hZ2UoKQogewpAQCAtNzYsNiArNzcsMTUgQEAgc3Rh
dGljIHZvaWQgY2xlYW5VcERhdGFJbnRlcmFjdGlvblRlbXBvcmFyeVBhdGgoKQogICAgIH1dOwog
fQogCistICh2b2lkKXJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6
KE5TU3RyaW5nICopdHlwZUlkZW50aWZpZXIgd2l0aERhdGE6KE5TRGF0YSAqKWRhdGEKK3sKKyAg
ICBSZXRhaW5QdHI8TlNEYXRhPiByZXRhaW5lZERhdGEgPSBkYXRhOworICAgIFtzZWxmIHJlZ2lz
dGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIgdmlz
aWJpbGl0eTpOU0l0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2FkSGFu
ZGxlcjogW3JldGFpbmVkRGF0YV0gKERhdGFMb2FkQ29tcGxldGlvbkJsb2NrIGJsb2NrKSAtPiBO
U1Byb2dyZXNzICogeworICAgICAgICBibG9jayhyZXRhaW5lZERhdGEuZ2V0KCksIG5pbCk7Cisg
ICAgICAgIHJldHVybiBbTlNQcm9ncmVzcyBkaXNjcmV0ZVByb2dyZXNzV2l0aFRvdGFsVW5pdENv
dW50OjEwMF07CisgICAgfV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXS1dl
YlZpZXcgKERhdGFJbnRlcmFjdGlvblRlc3RzKQpAQCAtNDYzLDYgKzQ3MywzNSBAQCBURVNUKERh
dGFJbnRlcmFjdGlvblRlc3RzLCBFeHRlcm5hbFNvdXJjZUpQRUdPbmx5KQogICAgIGNoZWNrU2Vs
ZWN0aW9uUmVjdHNXaXRoTG9nZ2luZyhAWyBtYWtlQ0dSZWN0VmFsdWUoMSwgMjAxLCAyMTUsIDE3
NCkgXSwgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBmaW5hbFNlbGVjdGlvblJlY3RzXSk7CiB9
CiAKK1RFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIE92ZXJyaWRlRGF0YUludGVyYWN0aW9uT3Bl
cmF0aW9uKQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6
QCJzaW1wbGUiXTsKKworICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gc2ltdWxhdGVkSXRl
bVByb3ZpZGVyID0gYWRvcHROUyhbW1VJSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0XSk7CisgICAg
W3NpbXVsYXRlZEl0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJ
ZGVudGlmaWVyOihOU1N0cmluZyAqKWtVVFR5cGVIVE1MIHdpdGhEYXRhOltAIjxib2R5PjwvYm9k
eT4iIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CisKKyAgICBfX2Js
b2NrIGJvb2wgZmluaXNoZWRMb2FkaW5nRGF0YSA9IGZhbHNlOworICAgIFJldGFpblB0cjxEYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMo
W1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3
LmdldCgpXSk7CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBzZXRFeHRlcm5hbEl0ZW1Q
cm92aWRlcnM6QFsgc2ltdWxhdGVkSXRlbVByb3ZpZGVyLmdldCgpIF1dOworICAgIFtkYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3Igc2V0T3ZlcnJpZGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9j
azpeTlNVSW50ZWdlcihOU1VJbnRlZ2VyIG9wZXJhdGlvbiwgaWQgc2Vzc2lvbikKKyAgICB7Cisg
ICAgICAgIEVYUEVDVF9FUSgwVSwgb3BlcmF0aW9uKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fV07CisgICAgW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBzZXREYXRhSW50ZXJhY3Rpb25PcGVy
YXRpb25Db21wbGV0aW9uQmxvY2s6XihCT09MIGhhbmRsZWQsIE5TQXJyYXkgKml0ZW1Qcm92aWRl
cnMpIHsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZWQpOworICAgICAgICBbaXRlbVByb3Zp
ZGVycy5maXJzdE9iamVjdCBsb2FkRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6
KE5TU3RyaW5nICopa1VUVHlwZUhUTUwgY29tcGxldGlvbkhhbmRsZXI6XihOU0RhdGEgKmRhdGEs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgICAgICBOU1N0cmluZyAqdGV4dCA9IFtbW05TU3Ry
aW5nIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGlu
Z10gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCI8Ym9keT48L2Jv
ZHk+IiwgdGV4dC5VVEY4U3RyaW5nKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRSghIWVycm9y
KTsKKyAgICAgICAgICAgIGZpbmlzaGVkTG9hZGluZ0RhdGEgPSB0cnVlOworICAgICAgICB9XTsK
KyAgICB9XTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1h
a2UoMzAwLCA0MDApIHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWRpbmdEYXRhKTsKK30KKwogVEVTVChEYXRhSW50ZXJh
Y3Rpb25UZXN0cywgQXR0YWNobWVudEVsZW1lbnRJdGVtUHJvdmlkZXJzKQogewogICAgIFJldGFp
blB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gdGVzdHdlYmtpdGFwaV9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4iXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKaW5kZXggYjJjYTQ3ZTZk
M2E4YzJkODk3ZDI0MzYyNTkzZjk2NjBjYThiMzU1ZC4uMzQzNmVjNDhlYTUyMjJjOWVkNTI4MjRh
NTJhNWU5MGU0NDhkMDYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQgPFVJS2l0
L1VJSXRlbVByb3ZpZGVyLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9fV0tUZXN0aW5nRGVs
ZWdhdGUuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCiBAY2xhc3MgTW9ja0RhdGFPcGVy
YXRpb25TZXNzaW9uOwpAQCAtNDksNyArNDgsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogICAgIERhdGFJbnRlcmFjdGlvblBlcmZvcm1pbmcg
PSA0CiB9OwogCi1AaW50ZXJmYWNlIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA6IE5TT2JqZWN0
PF9XS1Rlc3RpbmdEZWxlZ2F0ZSwgV0tVSURlbGVnYXRlUHJpdmF0ZT4geworQGludGVyZmFjZSBE
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgOiBOU09iamVjdDxXS1VJRGVsZWdhdGVQcml2YXRlPiB7
CiAgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IF93ZWJWaWV3OwogICAgIFJldGFpblB0cjxN
b2NrRGF0YUludGVyYWN0aW9uU2Vzc2lvbj4gX2RhdGFJbnRlcmFjdGlvblNlc3Npb247CiAgICAg
UmV0YWluUHRyPE1vY2tEYXRhT3BlcmF0aW9uU2Vzc2lvbj4gX2RhdGFPcGVyYXRpb25TZXNzaW9u
OwpAQCAtNzMsNiArNzIsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJh
Y3Rpb25QaGFzZSkgewogQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPEJPT0woX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKik+IHNob3dDdXN0b21BY3Rpb25TaGVldEJsb2NrOwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5TQXJyYXkgKihOU0FycmF5ICopPiBjb252ZXJ0SXRl
bVByb3ZpZGVyc0Jsb2NrOwogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNBcnJheSAq
ZXh0ZXJuYWxJdGVtUHJvdmlkZXJzOworQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5T
VUludGVnZXIoTlNVSW50ZWdlciwgaWQpPiBvdmVycmlkZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlv
bkJsb2NrOworQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPHZvaWQoQk9PTCwgTlNBcnJh
eSAqKT4gZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uQ29tcGxldGlvbkJsb2NrOworCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKnNvdXJjZUl0ZW1Qcm92aWRlcnM7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKm9ic2VydmVkRXZlbnROYW1l
czsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqZmluYWxTZWxlY3Rp
b25SZWN0czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlv
blNpbXVsYXRvci5tbQppbmRleCBhNTY0NTE3ZWM4YWYzNTA3Y2VkZWJjNTZlNjgwMGEzNWU0MmQ5
ZjA0Li4xNmM2NTM3YzAzM2UzNzZkN2Q0ZTViZGRjODBkMjA5NjMzNzZiYjljIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCkBA
IC03NSw3ICs3NSw2IEBAIHN0YXRpYyBOU0FycmF5ICpkYXRhSW50ZXJhY3Rpb25FdmVudE5hbWVz
KCkKICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgewogICAgICAgICBfd2ViVmlldyA9IHdl
YlZpZXc7CiAgICAgICAgIF9zaG91bGRFbnN1cmVVSUFwcGxpY2F0aW9uID0gTk87Ci0gICAgICAg
IFtfd2ViVmlldyBfc2V0VGVzdGluZ0RlbGVnYXRlOnNlbGZdOwogICAgICAgICBbX3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTpzZWxmXTsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CkBAIC04Myw5ICs4
Miw2IEBAIHN0YXRpYyBOU0FycmF5ICpkYXRhSW50ZXJhY3Rpb25FdmVudE5hbWVzKCkKIAogLSAo
dm9pZClkZWFsbG9jCiB7Ci0gICAgaWYgKFtfd2ViVmlldyBfdGVzdGluZ0RlbGVnYXRlXSA9PSBz
ZWxmKQotICAgICAgICBbX3dlYlZpZXcgX3NldFRlc3RpbmdEZWxlZ2F0ZTpuaWxdOwotCiAgICAg
aWYgKFtfd2ViVmlldyBVSURlbGVnYXRlXSA9PSBzZWxmKQogICAgICAgICBbX3dlYlZpZXcgc2V0
VUlEZWxlZ2F0ZTpuaWxdOwogCkBAIC0yNzEsMTQgKzI2NywyMCBAQCBzdGF0aWMgTlNBcnJheSAq
ZGF0YUludGVyYWN0aW9uRXZlbnROYW1lcygpCiAgICAgcmV0dXJuIF9waGFzZTsKIH0KIAotI3By
YWdtYSBtYXJrIC0gX1dLVGVzdGluZ0RlbGVnYXRlCisjcHJhZ21hIG1hcmsgLSBXS1VJRGVsZWdh
dGVQcml2YXRlCiAKLS0gKHZvaWQpd2ViVmlld0RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250
cm9sbGVyT3BlcmF0aW9uOihXS1dlYlZpZXcgKil3ZWJWaWV3CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6KEJP
T0wpaGFuZGxlZCBmb3JTZXNzaW9uOihpZClzZXNzaW9uIGl0ZW1Qcm92aWRlcnM6KE5TQXJyYXk8
VUlJdGVtUHJvdmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzCiB7CiAgICAgX2lzRG9uZVdpdGhDdXJy
ZW50UnVuID0gdHJ1ZTsKKworICAgIGlmIChzZWxmLmRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbkNv
bXBsZXRpb25CbG9jaykKKyAgICAgICAgc2VsZi5kYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Db21w
bGV0aW9uQmxvY2soaGFuZGxlZCwgaXRlbVByb3ZpZGVycyk7CiB9CiAKLSNwcmFnbWEgbWFyayAt
IFdLVUlEZWxlZ2F0ZVByaXZhdGUKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOihO
U1VJbnRlZ2VyKW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClzZXNzaW9uCit7CisgICAgcmV0dXJu
IHNlbGYub3ZlcnJpZGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9jayA/IHNlbGYub3ZlcnJp
ZGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25CbG9jayhvcGVyYXRpb24sIHNlc3Npb24pIDogb3Bl
cmF0aW9uOworfQogCiAtIChOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+Kilfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnM6KE5T
QXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4qKW9yaWdpbmFsSXRlbVByb3ZpZGVycwogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>