<?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>226548</bug_id>
          
          <creation_ts>2021-06-02 12:04:02 -0700</creation_ts>
          <short_desc>Make attributedBundleIdendifier a property for WKWebViewConfiguration instead of _WKWebsiteDataStoreConfiguration</short_desc>
          <delta_ts>2021-12-22 09:59:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>jenner</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1766090</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-02 12:04:02 -0700</bug_when>
    <thetext>Make attributedBundleIdendifier a property for WKWebViewConfiguration instead of _WKWebsiteDataStoreConfiguration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766092</commentid>
    <comment_count>1</comment_count>
      <attachid>430387</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-02 12:09:14 -0700</bug_when>
    <thetext>Created attachment 430387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766105</commentid>
    <comment_count>2</comment_count>
      <attachid>430390</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-02 12:32:48 -0700</bug_when>
    <thetext>Created attachment 430390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766141</commentid>
    <comment_count>3</comment_count>
      <attachid>430399</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-02 13:47:34 -0700</bug_when>
    <thetext>Created attachment 430399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766669</commentid>
    <comment_count>4</comment_count>
      <attachid>430540</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-03 22:35:11 -0700</bug_when>
    <thetext>Created attachment 430540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766843</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-04 11:02:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/r278475</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766844</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-04 11:03:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78876958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826324</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-22 09:59:25 -0800</bug_when>
    <thetext>*** Bug 233345 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430387</attachid>
            <date>2021-06-02 12:09:14 -0700</date>
            <delta_ts>2021-06-02 12:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226548-20210602120913.patch</filename>
            <type>text/plain</type>
            <size>47788</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1MmQ5MjRjMDkwNmI4ZjY5
NzcxNWI3YmRhNGQwN2JlMzM1NGUyNDYuLjhiZjEyMzQ5ZWVlMWJmYWRjYzJkMDMyZjNkOGI0NGQx
NGUwYzIyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDYtMDIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIGF0dHJp
YnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4CisgICAgICAgIDxy
ZGFyOi8vNzg3Mzc1NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgaGF2ZSBiZWVuIHB1dHRpbmcgcHJvcGVydGllcyB0byBnbyBpbnRvIHRoZSBO
U1VSTFNlc3Npb25Db25maWd1cmF0aW9uIG9uIHRoZSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi4KKyAgICAgICAgVGhpcyBoYXMgYmVlbiBvayBzbyBmYXIsIGJ1dCBub3cgd2UgaGF2
ZSBhbiBhcHBsaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHJ1biBuZXR3b3JraW5nIGF0dHJpYnV0ZWQg
dG8gZGlmZmVyZW50IGFwcGxpY2F0aW9ucworICAgICAgICBidXQgc2hhcmluZyB0aGUgZGF0YSBz
dG9yYWdlIGluIHRoZSBzYW1lIHByb2Nlc3MuICBXZSBub3cgZG8gd2hhdCB3ZSBzaG91bGQndmUg
ZG9uZSBsb25nIGFnbzogcHV0IHRoZXNlIG5vbi1zdG9yYWdlLXJlbGF0ZWQKKyAgICAgICAgcHJv
cGVydGllcyBvbiB0aGUgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi4KKworICAgICAgICBJIGludHJv
ZHVjZSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMgd2hpY2ggY3VycmVudGx5IGhhcyBvbmx5IG9u
ZSBtZW1iZXIsIGJ1dCB3aWxsIHNvb24gaGF2ZSBtb3JlLgorCisgICAgICAgIEkgbWFkZSBpdCBz
byB0aGF0IGlmIG11bHRpcGxlIFdLV2ViVmlld3Mgd2l0aCB0aGUgc2FtZSBkYXRhIHN0b3JlIGhh
dmUgdGhlIHNhbWUgYXR0cmlidXRlZEJ1bmRsZUlkZW5kaWZpZXIsIHRoZXkgc2hhcmUgYW4gTlNV
UkxTZXNzaW9uLgorICAgICAgICBPdGhlcndpc2UsIHRoZXkgZ2V0IHRoZWlyIG93biBOU1VSTFNl
c3Npb24gaW4gYSBkaWZmZXJlbnQgU2Vzc2lvblNldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMgY29uc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpp
bml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Np
b25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjppbml0aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVyczo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAo
V1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz46Omhhc2gp
OgorICAgICAgICAoV1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycz46OmVxdWFsKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9jb3VudE5vbkRlZmF1bHRTZXNz
aW9uU2V0czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6fldlYlBh
Z2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3Jt
U2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb246OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNS0yOCAgU2FtIFdlaW5pZyAgPHdl
aW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgQ0Eg
c2VwYXJhdGVkIHBvcnRhbCBiaXRzIGZvciBHcmFwaGljc0xheWVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGZmMGZmNGFmMWNmY2M3
MzIwMDlmMGY5YTZiZDExYjc0NWFiMGNmN2MuLjQ3YzYxNmE4YzVmNGFmNzI4NWI3OTEzMGZjMWU3
NDNhOWI5NzNiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0yNzk1LDQgKzI3OTUsMzEgQEAgUlRDRGF0YUNoYW5uZWxSZW1vdGVN
YW5hZ2VyUHJveHkmIE5ldHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFByb3h5KCkKIH0KICNl
bmRpZgogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMo
Y29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBw
YWdlSUQsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit7CisgICAgYXV0
byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyhwYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOworfQorCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgUEFMOjpTZXNzaW9uSUQm
IHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCit7CisgICAgYXV0byBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyhwYWdlSUQpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3VudE5vbkRlZmF1bHRT
ZXNzaW9uU2V0cyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24pCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigwKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVy
KHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCAwODMzODJjOTlhMDdiMjZmZDU4OTIxYzVjODdlMmE2MWIyMTA3NjFjLi5iOGYx
ZWEzZjY2ZmFhNDM0ZTk3Njk1NTdiNGM4YzBhNmQyY2FlMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDYsNiArMTA2LDcgQEAgY2xh
c3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50OwogY2xhc3MgTmV0d29ya1Byb3hpbWl0eU1hbmFn
ZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTdG9yYWdlTWFuYWdlclNl
dDsKK2NsYXNzIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczsKIGNsYXNzIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjsKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjsKIGVudW0gY2xh
c3MgQ2FsbERvd25sb2FkRGlkU3RhcnQgOiBib29sOwpAQCAtNDUyLDYgKzQ1MywxMCBAQCBwcml2
YXRlOgogICAgIAogICAgIHZvaWQgZmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgYWRkV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVtb3ZlV2ViUGFnZU5l
dHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFnZVByb3h5SWRlbnRp
Zmllcik7CisgICAgdm9pZCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhjb25zdCBQQUw6OlNl
c3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc2l6ZV90KT4mJik7CisKICNpZiBVU0Uo
U09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Npb25JRCwgYm9vbCk7
CiAgICAgdm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNDBlYTEyYTBkNDRhZWRhMjE0OTJlODUyNDc5ZDZh
OGRjMjJkODNjOC4uMDUxZTg0ZDUzZWM1NTRhYWQ3ZTI2NDBlNjRiMDExM2FlNmI2NGJlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCkBAIC0xOTYsNCArMTk2LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwQm91bmROYXZpZ2F0aW9uVGVz
dGluZ0RhdGEgZGF0YSkgQXN5bmMKICAgICBDbGVhckFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogI2VuZGlmCisKKyAgICBBZGRXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyBwYXJhbWV0ZXJzKQorICAgIFJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SUQpCisgICAgQ291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSAtPiAoc2l6ZV90IGNvdW50KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDE3NTQwZDQ1NTRmZTVjOTNhMzEwMjBhNmZl
Y2E3ODhkZDc1YTAwYTQuLjY5NWIxOWNjNWIyNGJmNjRhNTc0OGVjMDVjZmJjNGE0N2E1NzVhNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAg
LTU5LDYgKzU5LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRTY2hlZHVsZXI7CiBjbGFzcyBOZXR3b3Jr
UHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIE5ldHdvcmtTb2Nr
ZXRDaGFubmVsOworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogY2xhc3MgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU29ja2V0VGFzazsKIHN0cnVjdCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTE2OCw2ICsxNjksMTAgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5ldHdvcmtXZWJzaXRlRGF0YShPcHRpb25h
bDxXYWxsVGltZT4sIE9wdGlvbmFsPEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+
PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoKTsgfQogCisgICAgdmlydHVhbCB2b2lkIGFkZFdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRl
cnMmJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKSB7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBjb3VudE5v
bkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwogcHJvdGVjdGVkOgog
ICAgIE5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApp
bmRleCA2ZjhhYzM5NjgyOGYxOGZmOTAxODJkMWJjZmQ1MjIwN2M0MmEzM2QzLi42NjUwZjIzZTg5
MWY3NDBhYTYzYTAyYjg0OTdiMWNmZjBjMjc2NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtNDcsNyArNDcsNiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgcHJveHlDb25maWd1cmF0aW9uOwogICAgIGVuY29kZXIgPDwgc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyOwotICAgIGVuY29kZXIgPDwgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXI7CiAgICAgZW5jb2RlciA8PCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKICAgICBlbmNv
ZGVyIDw8IGh0dHBQcm94eTsKICAgICBlbmNvZGVyIDw8IGh0dHBzUHJveHk7CkBAIC0xMjAsMTEg
KzExOSw2IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgZGVjb2RlciA+PiBzb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgaWYgKCFzb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAg
ICBPcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwotICAgIGRlY29k
ZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgaWYgKCFhdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBP
cHRpb25hbDxib29sPiBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKICAgICBkZWNvZGVyID4+
IHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uOwpAQCAtMzAxLDcgKzI5NSw2IEBAIE9wdGlvbmFs
PE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjCiAgICAgICAgICwgV1RGTW92ZShwcm94eUNvbmZpZ3VyYXRpb24pCiAg
ICAgICAgICwgV1RGTW92ZSgqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAg
ICAgICAsIFdURk1vdmUoKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcikKLSAg
ICAgICAgLCBXVEZNb3ZlKCphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKICAgICAgICAgLCBX
VEZNb3ZlKCpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpo
dHRwUHJveHkpCiAgICAgICAgICwgV1RGTW92ZSgqaHR0cHNQcm94eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCBhNjhiYjUzMDc3YTI5MGEwYjIwMDYxZDBmYjg3NDNiZGZlYzBh
ZDEyLi5hZjkwNGI1MWM1ZTQyZjI5YjlmNjEzZTM3NDBkOGZmYmRkMmVlNzcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02MCw3ICs2MCw2IEBAIHN0cnVjdCBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
cHJveHlDb25maWd1cmF0aW9uOwogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXI7CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
cjsKLSAgICBTdHJpbmcgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgYm9vbCBzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbiB7IGZhbHNlIH07CiAgICAgVVJMIGh0dHBQcm94eTsKICAg
ICBVUkwgaHR0cHNQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggMzBmZTUyZmNiYTNkY2JhNWQx
YWZmZDgwMDFhZGYzYzdhNzliYzgxMy4uMjI5M2RmMzg2MTJjMmVlMDZmMDVkYTFlNjNlOGFiYWJk
ODNhNWVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTM4LDYgKzM4LDcgQEAgT0JKQ19DTEFTUyBf
TlNIU1RTU3RvcmFnZTsKICNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiTmV0d29y
a0RhdGFUYXNrQ29jb2EuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUg
IldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrTG9hZE1ldHJpY3MuaD4KQEAgLTc1LDcgKzc2LDYgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgY29uc3QgU3Ry
aW5nJiBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdDsKICAgICBjb25z
dCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpIGNvbnN0Owot
ICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdDsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnN0IFN0cmluZyYgZGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZSgpIGNvbnN0OwogI2VuZGlmCkBAIC0xMjgsNiArMTI4LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZW1vdmVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdl
YlNvY2tldFRhc2smKSBmaW5hbDsKICNlbmRpZgogCisgICAgdm9pZCBhZGRXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0
ZXJzJiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIpIGZpbmFsOworICAgIHNpemVfdCBjb3VudE5vbkRlZmF1bHRT
ZXNzaW9uU2V0cygpIGNvbnN0IGZpbmFsOworCiAgICAgc3RydWN0IElzb2xhdGVkU2Vzc2lvbiB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKQEAgLTEzNiw3
ICsxNDAsNyBAQCBwcml2YXRlOgogICAgICAgICBXYWxsVGltZSBsYXN0VXNlZDsKICAgICB9Owog
Ci0gICAgc3RydWN0IFNlc3Npb25TZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXNzaW9uU2V0PiB7
CisgICAgc3RydWN0IFNlc3Npb25TZXQgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXNzaW9uU2V0Piwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFNlc3Npb25TZXQ+IHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHN0YXRpYyBSZWY8U2Vzc2lvblNldD4gY3JlYXRlKCkKICAgICAgICAgewpAQCAtMTU5LDggKzE2
Myw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8U2Vzc2lvblNldD4gbV9kZWZhdWx0U2Vzc2lvblNl
dDsKICAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFJlZjxTZXNzaW9uU2V0Pj4g
bV9wZXJQYWdlU2Vzc2lvblNldHM7CisgICAgSGFzaE1hcDxXZWJQYWdlTmV0d29ya1BhcmFtZXRl
cnMsIFdlYWtQdHI8U2Vzc2lvblNldD4+IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25TZXRzOwogCi0g
ICAgdm9pZCBpbml0aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmLCBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICopOworICAgIHZvaWQgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lv
bnNJblNldChTZXNzaW9uU2V0JiwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqKTsKICAgICBT
ZXNzaW9uU2V0JiBzZXNzaW9uU2V0Rm9yUGFnZShXZWJQYWdlUHJveHlJZGVudGlmaWVyKTsKICAg
ICBjb25zdCBTZXNzaW9uU2V0JiBzZXNzaW9uU2V0Rm9yUGFnZShXZWJQYWdlUHJveHlJZGVudGlm
aWVyKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWxTZXNzaW9uU2V0KFNlc3Np
b25TZXQmKTsKQEAgLTE2OCw3ICsxNzMsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2JvdW5k
SW50ZXJmYWNlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyOwotICAgIFN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogICAgIFJl
dGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogICAgIFJldGFp
blB0cjxETUZXZWJzaXRlUG9saWN5TW9uaXRvcj4gbV9kZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9u
aXRvcjsKICAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDcyNjE1YWM5Y2ZjNjdkNTg4Zjg3MWUzN2E1
NDM0OTU5OGJjMzc0YjAuLmQxYjc4MWRmODI4YTBiYWI0MDlhMjAyNWY0ZjM5ODlhZTcwYWI2ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIk5ldHdvcmtM
b2FkLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAiTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgIldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cy5oIgogI2ltcG9ydCAiV2ViU29ja2V0VGFzay5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VS
TFNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgpAQCAtMTA5OSwxMSAr
MTEwMCw2IEBAIGNvbnN0IFN0cmluZyYgTmV0d29ya1Nlc3Npb25Db2NvYTo6c291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9zb3VyY2VBcHBs
aWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiB9CiAKLWNvbnN0IFN0cmluZyYgTmV0d29ya1Nl
c3Npb25Db2NvYTo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwotfQotCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIGNvbnN0IFN0cmluZyYgTmV0d29ya1Nlc3Npb25Db2NvYTo6ZGF0YUNvbm5lY3Rp
b25TZXJ2aWNlVHlwZSgpIGNvbnN0CiB7CkBAIC0xMTc2LDcgKzExNzIsNiBAQCBOZXR3b3JrU2Vz
c2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgTmV0d29yawogICAgICwgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIocGFyYW1ldGVy
cy5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCiAgICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKHBhcmFtZXRl
cnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQotICAgICwgbV9hdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
KQogICAgICwgbV9wcm94eUNvbmZpZ3VyYXRpb24ocGFyYW1ldGVycy5wcm94eUNvbmZpZ3VyYXRp
b24pCiAgICAgLCBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKHBhcmFtZXRlcnMuc2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24pCiAgICAgLCBtX2Zhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25F
bmFibGVkKHBhcmFtZXRlcnMuZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQpCkBAIC0x
MjI4LDEzICsxMjIzLDYgQEAgTmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2Nv
YShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmsKICAgICBpZiAoIW1fc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyLmlzRW1wdHkoKSkKICAgICAgICAgY29u
ZmlndXJhdGlvbi5fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gbV9zb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAKLSNpZiBIQVZFKENGTkVUV09SS19O
U1VSTFNFU1NJT05fQVRUUklCVVRFRF9CVU5ETEVfSURFTlRJRklFUikKLSAgICBpZiAoIW1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChbY29uZmln
dXJhdGlvbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcildKQotICAgICAgICAgICAgY29uZmlndXJhdGlvbi5fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgPSBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwotICAgIH0KLSNlbmRpZgot
CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBpZiAoIXBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5hbHRlcm5hdGl2
ZVNlcnZpY2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwpAQCAtMTI4NCw3ICsxMjcyLDcgQEAg
TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIE5ldHdvcmsKICAgICAgICAgY29va2llU3RvcmFnZS5nZXQoKS5fb3Zl
cnJpZGVTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5ID0gWUVTOwogI2VuZGlmCiAKLSAgICBpbml0
aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KG1fZGVmYXVsdFNlc3Npb25TZXQuZ2V0KCksIGNv
bmZpZ3VyYXRpb24pOworICAgIGluaXRpYWxpemVOU1VSTFNlc3Npb25zSW5TZXQobV9kZWZhdWx0
U2Vzc2lvblNldC5nZXQoKSwgY29uZmlndXJhdGlvbik7CiAKICAgICBtX2RldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNFbmFibGVkID0gcGFyYW1ldGVycy5kZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRW5hYmxlZDsKICAgICBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBwYXJhbWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CkBAIC0xMzAxLDcgKzEyODksNyBAQCBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgTmV0d29yawogCiBOZXR3b3JrU2Vzc2lvbkNvY29hOjp+TmV0d29ya1Nl
c3Npb25Db2NvYSgpID0gZGVmYXVsdDsKIAotdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjppbml0
aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmIHNlc3Npb25TZXQsIE5TVVJM
U2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24pCit2b2lkIE5ldHdvcmtTZXNzaW9u
Q29jb2E6OmluaXRpYWxpemVOU1VSTFNlc3Npb25zSW5TZXQoU2Vzc2lvblNldCYgc2Vzc2lvblNl
dCwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbikKIHsKICAgICBzZXNz
aW9uU2V0LnNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2UuaW5pdGlhbGl6ZShjb25maWd1cmF0
aW9uLCAqdGhpcywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW46Ok5vKTsKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICJDcmVh
dGVkIE5ldHdvcmtTZXNzaW9uIHdpdGggY29va2llQWNjZXB0UG9saWN5ICVsdSIsIGNvbmZpZ3Vy
YXRpb24uSFRUUENvb2tpZVN0b3JhZ2UuY29va2llQWNjZXB0UG9saWN5KTsKQEAgLTEzNDcsMTAg
KzEzMzUsNiBAQCBTZXNzaW9uV3JhcHBlciYgTmV0d29ya1Nlc3Npb25Db2NvYTo6U2Vzc2lvblNl
dDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1NlcwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgY29uZmlndXJhdGlvbi5fQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlID0gZXhp
c3RpbmdDb25maWd1cmF0aW9uLl9DVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CiAjZW5kaWYK
LSNpZiBIQVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fQVRUUklCVVRFRF9CVU5ETEVfSURFTlRJ
RklFUikKLSAgICBpZiAoW2NvbmZpZ3VyYXRpb24gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpXSkKLSAgICAgICAgY29uZmlndXJhdGlvbi5f
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24uX2F0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyOwotI2VuZGlmCiAKICAgICBlcGhlbWVyYWxTdGF0ZWxlc3NT
ZXNzaW9uLmluaXRpYWxpemUoY29uZmlndXJhdGlvbiwgc2Vzc2lvbiwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzcywgaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbik7CiAKQEAgLTE2NzcsNiArMTY2MSwzOCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9u
Q29jb2E6OnJlbW92ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdl
UHJveAogCiAjZW5kaWYgLy8gSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQogCit2b2lkIE5l
dHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKK3sKKyAgICBhdXRvIGFkZFJlc3VsdDEgPSBtX3BlclBhcmFtZXRlcnNTZXNzaW9uU2V0cy5h
ZGQocGFyYW1ldGVycywgbnVsbHB0cik7CisgICAgaWYgKGF1dG8gc2V0ID0gYWRkUmVzdWx0MS5p
dGVyYXRvci0+dmFsdWUpIHsKKyAgICAgICAgbV9wZXJQYWdlU2Vzc2lvblNldHMuYWRkKHBhZ2VJ
RCwgKnNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGFkZFJlc3VsdDIg
PSBtX3BlclBhZ2VTZXNzaW9uU2V0cy5hZGQocGFnZUlELCBTZXNzaW9uU2V0OjpjcmVhdGUoKSk7
CisgICAgQVNTRVJUKGFkZFJlc3VsdDIuaXNOZXdFbnRyeSk7CisgICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbbV9kZWZhdWx0U2Vzc2lvblNldC0+c2Vzc2lvbldpdGhDcmVkZW50aWFs
U3RvcmFnZS5zZXNzaW9uLmdldCgpLmNvbmZpZ3VyYXRpb24gY29weV0pOworI2lmIEhBVkUoQ0ZO
RVRXT1JLX05TVVJMU0VTU0lPTl9BVFRSSUJVVEVEX0JVTkRMRV9JREVOVElGSUVSKQorICAgIGlm
IChbY29uZmlndXJhdGlvbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcildKQorICAgICAgICBjb25maWd1cmF0aW9uLmdldCgpLl9hdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllciA9IHBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXIoKTsKKyNlbmRpZgorICAgIGluaXRpYWxpemVOU1VSTFNlc3Npb25zSW5TZXQoYWRkUmVzdWx0
Mi5pdGVyYXRvci0+dmFsdWUuZ2V0KCksIGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIGFkZFJl
c3VsdDEuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVdlYWtQdHIoYWRkUmVzdWx0Mi5pdGVyYXRvci0+
dmFsdWUuZ2V0KCkpOworfQorCit2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKK3sKKyAg
ICBtX3BlclBhZ2VTZXNzaW9uU2V0cy5yZW1vdmUocGFnZUlEKTsKK30KKworc2l6ZV90IE5ldHdv
cmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QKK3sKKyAg
ICBIYXNoU2V0PFJlZjxTZXNzaW9uU2V0Pj4gdW5pcXVlU2V0czsKKyAgICBmb3IgKGF1dG8mIHNl
dCA6IG1fcGVyUGFnZVNlc3Npb25TZXRzLnZhbHVlcygpKQorICAgICAgICB1bmlxdWVTZXRzLmFk
ZChzZXQpOworICAgIHJldHVybiB1bmlxdWVTZXRzLnNpemUoKTsKK30KKwogVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gTmV0d29ya1Nlc3Npb25Db2NvYTo6aG9zdE5hbWVzV2l0
aEFsdGVybmF0aXZlU2VydmljZXMoKSBjb25zdAogewogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVS
TkFUSVZFX1NFUlZJQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
TmV0d29ya1BhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTM3NzQ0MjQ3ZGM2N2U1YTA5MzhhMGFiYTA0
YzRlNGQyNTY0NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBt
X2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworfQorCitPcHRpb25hbDxXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnM+IFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyOworICAgIGRlY29kZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CisgICAg
aWYgKCFhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAKKyAgICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXIpCisgICAgfX07Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzZDY0ZGNkZWFmZTMy
ZDk4NmFmMmUxNzQ2YzZmNWI4YmY4ZGVlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHsK
K3B1YmxpYzoKKyAgICBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBhdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgOiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyKGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKSB7IH0KKworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworICAgIFdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycygpID0gZGVmYXVsdDsKKyAgICBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV1RG
OjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICA6IG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpIHsgfQorICAgIGJvb2wgaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKyAgICB1bnNpZ25lZCBoYXNo
KCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5oYXNoKCk7IH0K
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiBvdGhl
cikgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9PSBvdGhlci5t
X2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIGF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllcjsgfQorcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9hdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViS2l0OjpXZWJQYWdlTmV0d29ya1Bh
cmFtZXRlcnM+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6OldlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycyYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgV2ViS2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmIGEs
IGNvbnN0IFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiBiKSB7IHJldHVybiBhID09
IGI7IH0KKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSBmYWxzZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViS2l0
OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM+IDogcHVibGljIFNpbXBsZUNsYXNzSGFzaFRyYWl0
czxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz4geyB9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CmluZGV4IDAyMjI1NDUzYzMxYTViYTkxODU4ZmU3MDVjNjVlOTU0YzE0
ZDcwNjYuLjNiODZjZjVkOWI1NGNhZTczOTBiZDEzYTY1MDdiMzY3MjllYmQ2MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dApAQCAtMjE3LDYgKzIxNyw3IEBAIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAogU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwIEBuby11bmlmeQogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKK1NoYXJlZC9XZWJQYWdl
TmV0d29ya1BhcmFtZXRlcnMuY3BwCiBTaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcCBA
bm8tdW5pZnkKIFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggN2VmMDRhZTg5MmQ1NDRhMzk3NTkwMWIyYjA5
NDBjMTBlMzdlMTI4NC4uYTJmMWFjNTUwY2JiNjE2NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwCkBAIC03OSw2ICs3OSw3IEBAIFJlZjxQYWdlQ29uZmlndXJhdGlvbj4gUGFnZUNv
bmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGNvcHktPm1fYXBwbGljYXRpb25NYW5pZmVz
dCA9IHRoaXMtPm1fYXBwbGljYXRpb25NYW5pZmVzdDsKICNlbmRpZgogICAgIGNvcHktPm1fc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSB0aGlzLT5tX3Nob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nOworICAgIGNvcHktPm1fYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXIgPSB0aGlzLT5tX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogICAgIGZvciAoYXV0
byYgcGFpciA6IHRoaXMtPm1fdXJsU2NoZW1lSGFuZGxlcnMpCiAgICAgICAgIGNvcHktPm1fdXJs
U2NoZW1lSGFuZGxlcnMuc2V0KHBhaXIua2V5LCBwYWlyLnZhbHVlLmNvcHlSZWYoKSk7CiAgICAg
Y29weS0+bV9jb3JzRGlzYWJsaW5nUGF0dGVybnMgPSB0aGlzLT5tX2NvcnNEaXNhYmxpbmdQYXR0
ZXJuczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmgKaW5kZXggYTk5NTdhYTc1YzY3ODdkZGNmYTA1MmExMjNkOWJhYzRiYzZkNzNlMi4u
ZTBmZjdmZDAyZDhkY2I3ZTQ4YWY4N2M4YTkzYWE1MWYyNmJjZTFmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTE2Niw3
ICsxNjYsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyhXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
ZyB2YWx1ZSkgeyBtX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nID0gdmFsdWU7
IH0KICAgICBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91
bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc7IH0KLSAgICAKKworICAgIHZvaWQgc2V0QXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoV1RGOjpTdHJpbmcmJiBpZGVudGlmaWVyKSB7IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpOyB9CisgICAgY29u
c3QgV1RGOjpTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsgfQorCiBwcml2YXRlOgogCiAgICAgUmVm
UHRyPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CkBAIC0yMTcsNiArMjIw
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsK
IAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBXZWJDb3JlOjpTaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKKyAgICBXVEY6OlN0cmluZyBtX2F0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLm1tCmluZGV4IDczNjdlODgwMjc2ZmE2NDE3YTllNDlmZTg5ODc5Y2ZjZTk4OWMxNDMu
LjY4MDA4M2E3MDIxZmM3OGFkZTZjMDg4NTA0ZTM2MzA4NTA3YWVlYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLm1tCkBAIC0xMzIyLDYgKzEzMjIsMTkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgcmV0dXJuIF9zYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0OwogfQog
CistICh2b2lkKV9zZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVu
dGlmaWVyCit7CisgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRBdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcihpZGVudGlmaWVyKTsKK30KKworLSAoTlNTdHJpbmcgKilfYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIKK3sKKyAgICBhdXRvJiBpZGVudGlmaWVyID0gX3BhZ2VDb25maWd1cmF0aW9u
LT5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpOworICAgIGlmICghaWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKwogQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tEZXByZWNhdGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCAyNDI1ZWM2ZmZjYWMwYmM1NmQ2NGI4
ZDM3OTUyOTQzMWY1OWEwMzc4Li4wYTJkYzhjYmE2NTUzNmRhMjk0YThkNGJhNzRhMjBmY2E3ZjUy
OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtMTMyLDYgKzEzMiw5
IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiAvLyBF
eHBlY3RzIDAgKHRoZSBjb2xvciBkb2Vzbid0IG5lZWQgdG8gY29udGludWUgaW50byB0aGUgcGFn
ZSBhdCBhbGwpIG9yIGFueSBwb3NpdGl2ZSBudW1iZXIuCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRTYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0OikgZG91YmxlIF9zYW1wbGVk
UGFnZVRvcENvbG9yTWluSGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKKy8vIEF0dHJpYnV0ZXMgbmV0d29yayBhY3Rpdml0eSBmcm9t
IHRoaXMgV0tXZWJWaWV3IHRvIHRoZSBhcHAgd2l0aCB0aGlzIGJ1bmRsZS4KK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOikgTlNTdHJp
bmcgKl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKKwogQGVuZAogCiAjaWYgVEFSR0VUX09T
X0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggZmVlYTZlMjk1ZmU4ZGIxNjJjZDg3YmU0MTdlYjJh
MTE1ZGFkYWFkYS4uNmZlMjU0Y2VhN2Q0MzhkM2ZmNzJhYTA5MDg0ZGE1MzMwZjUzNTNhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tCkBAIC03NDEsNCArNzQxLDExIEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpX
ZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29y
CiAgICAgcmV0dXJuICEhV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWZhdWx0TmV0d29y
a1Byb2Nlc3MoKTsKIH0KIAorLSAodm9pZClfY291bnROb25EZWZhdWx0U2Vzc2lvblNldHM6KHZv
aWQoXikoc2l6ZV90KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LT5jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoc2l6ZV90IGNvdW50KSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGNvdW50KTsKKyAgICB9KTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQ
cml2YXRlLmgKaW5kZXggMmU4ZWQxMWQwYWFkODg2YTVlNGZkZGQ5OThhNGUyZDdiMTJkMmVlYy4u
NmQ5ODE2N2QyNTEwYWJhODhhYTZjNGQ5NzVhN2I5ZTVlZTU1YjgxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX21ha2VO
ZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoQk9PTClfbmV0d29ya1Byb2Nl
c3NFeGlzdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKICsgKEJPT0wpX2RlZmF1bHROZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfY291bnRO
b25EZWZhdWx0U2Vzc2lvblNldHM6KHZvaWQoXikoc2l6ZV90KSljb21wbGV0aW9uSGFuZGxlcjsK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDk4
OWI3MjNkMTVhYjEyZTlmZWE3Mjg0NGVlNDljYzMwNTYxNzViZWMuLmYwODM0YjYwMGYxMmY0NmM3
MDYwYjcwYzA0Y2RkZjljMTQ4ZmJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCkBAIC0zOSw3ICszOSw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSkKIC8vIFRoZXNlIHByb3BlcnRpZXMgYXBwbHkgdG8gYm90aCBwZXJzaXN0
ZW50IGFuZCBub24tcGVyc2lzdGVudCBkYXRhIHN0b3Jlcy4KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5n
ICphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbQppbmRleCBkMDlkZDA3ODA5OWNkOTNlZTdlY2U4NDM5NmVl
YTMyNDk1ZTc1MjI1Li5hODRlOTI5ZTI2Yjc1NDUyYmNjZGU3YzE4MjNlYTE5Y2Q1Y2U4ZDUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC0yNDIsMTYgKzI0
Miw2IEBAIHN0YXRpYyB2b2lkIGNoZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKICAgICBfY29u
ZmlndXJhdGlvbi0+c2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKGlkZW50
aWZpZXIpOwogfQogCi0tICh2b2lkKXNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOihOU1N0
cmluZyAqKWlkZW50aWZpZXIKLXsKLSAgICBfY29uZmlndXJhdGlvbi0+c2V0QXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXIoaWRlbnRpZmllcik7Ci19Ci0KLS0gKE5TU3RyaW5nICopYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXIKLXsKLSAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKCk7Ci19Ci0KIC0gKE5TVVJMICopYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeQogewogICAgIHJldHVybiBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOl9jb25maWd1cmF0
aW9uLT5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFmZDc2MjdjOTAwN2M3NDRk
NjI1MDA3ZTE1MmE2ZjYxYWMxZmJkZDIuLjQxMjEzZjFhYzQxZWY5NDQ4ZGY5NTliNjI4N2I3ZTQ3
MmM3ZjhiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKICNp
bmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgpAQCAtNjA0LDYgKzYwNSw4IEBA
IFdlYlBhZ2VQcm94eTo6fldlYlBhZ2VQcm94eSgpCiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6
IG1fbmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxsYmFja3MpCiAgICAgICAgIGNhbGxiYWNrKCk7
CiAKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6UmVtb3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKHNlc3Npb25J
RCgpLCBtX2lkZW50aWZpZXIpLCAwKTsKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKQogICAgIFdFQlBBR0VQUk9YWV9ERVNUUlVDVE9SX1dLQ09PUkRJTkFUT1JfQURESVRJ
T05TCiAjZW5kaWYKQEAgLTEwOTksNiArMTEwMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5p
dGlhbGl6ZVdlYlBhZ2UoKQogICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0
b24oKTsKICNlbmRpZgogCisgICAgaWYgKGF1dG8mIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
ID0gbV9jb25maWd1cmF0aW9uLT5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpOyAhIWF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKSB7CisgICAgICAgIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzIHsgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgfTsKKyAgICAgICAgd2Vi
c2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhzZXNzaW9uSUQoKSwgbV9pZGVudGlm
aWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSwgMCk7CisgICAgfQorCiAgICAgc2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzczo6Q3JlYXRlV2ViUGFnZShtX3dlYlBhZ2VJRCwgY3JlYXRpb25QYXJhbWV0
ZXJzKG1fcHJvY2VzcywgKm1fZHJhd2luZ0FyZWEpKSwgMCk7CiAKICAgICBtX3Byb2Nlc3MtPmFk
ZFZpc2l0ZWRMaW5rU3RvcmVVc2VyKHZpc2l0ZWRMaW5rU3RvcmUoKSwgbV9pZGVudGlmaWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCBiMzk3OGYyNGU0YWI5NDY5
ODI0NTc0OGQxYTdiY2FmNWM2MWNjZTNjLi5mOTMxOGIxNzhhOTE1MGJjN2I2ZTBjNDlhZjI1NDVj
Y2U5ZWE3ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC0xNTks
NyArMTU5LDYgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJh
bWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJgogICAgIHBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oKS5w
cm94eUNvbmZpZ3VyYXRpb24oKTsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
ID0gY29uZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigp
OwotICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyID0gY29uZmlndXJhdGlvbigpLmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
KCk7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24gPSBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKICAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwUHJveHkgPSBXVEZNb3ZlKGh0dHBQcm94
eSk7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuaHR0cHNQcm94eSA9
IFdURk1vdmUoaHR0cHNQcm94eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGJkOTZhYjFlY2Q0MWE5
ZjQ5ODRmMWJmNmFkZDlmNmQ3MTkwYmVlZjcuLmQ0MDkwYTliYjc3ZWNlNDRmOTNhMTgyYzc0Yzcw
MGFhMDE2YWUyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMTc5LDYgKzIxNzksMTEgQEAgdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
KENvbXBsZXRpb25IYW5kbGVyPHYKICAgICBuZXR3b3JrUHJvY2VzcygpLmNsZWFyQnVuZGxlSWRl
bnRpZmllcihbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCit2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c2l6ZV90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBuZXR3b3JrUHJvY2VzcygpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNvdW50Tm9uRGVmYXVs
dFNlc3Npb25TZXRzKG1fc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
fQorCiBzdGF0aWMgYm9vbCBuZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hTaG91bGRGYWlsRm9yVGVz
dGluZyB7IGZhbHNlIH07CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6bWFrZU5leHROZXR3b3Jr
UHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAwMzRiY2E1NDI5
OTE1NTdmZDc2MGFiYTIwNTJjODY3ODI1YWU2ZjVkLi4xYjlhN2JhM2Y0ZTY5YzRiYmExMzVjNjY4
YmViNjJlZjNhZWY2NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0zNTEsNyArMzUxLDkgQEAgcHVibGlj
OgogI2VuZGlmCiAgICAgdm9pZCB1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vz
cyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwotICAgIAorCisgICAgdm9pZCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCk+JiYpOworCiBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgRm9yY2VSZWluaXRpYWxpemF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICNpZiBFTkFC
TEUoQVBQX0JPVU5EX0RPTUFJTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5jcHAKaW5kZXggYTc3OGZhODNmYWYzNDg5NGNjZjJmNDJjMmEyMDk4NTFjY2NhNjEyZC4uZTZl
ODExOTM0N2E1M2ZmZmZmODMxOWJmOWE4YmVjZTc0ZmUyNzE2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcApAQCAtNzcsNyArNzcsNiBAQCBSZWY8V2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5
KCkgY29uc3QKICAgICBjb3B5LT5tX2Nvb2tpZVN0b3JhZ2VGaWxlID0gdGhpcy0+bV9jb29raWVT
dG9yYWdlRmlsZTsKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciA9IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIGNvcHkt
Pm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7Ci0gICAgY29weS0+bV9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciA9IHRoaXMtPm1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAg
Y29weS0+bV9odHRwUHJveHkgPSB0aGlzLT5tX2h0dHBQcm94eTsKICAgICBjb3B5LT5tX2h0dHBz
UHJveHkgPSB0aGlzLT5tX2h0dHBzUHJveHk7CiAgICAgY29weS0+bV9kZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZCA9IHRoaXMtPm1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCAwMWVi
YjFkNzA4M2RmZmVhNWI2NDI4MGEwNzgyODdkZmJkYjJmZGVkLi45ODc0MTAxMDBjYzQ2MDMxOTBl
NDk1YzQ3MWI4NzYyY2ZkMzU2YzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmgKQEAgLTEzMiw5ICsxMzIsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIHNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRTb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX3Nv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7
IH0KLQotICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOyB9Ci0gICAgdm9pZCBzZXRB
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcihTdHJpbmcmJiBpZGVudGlmaWVyKSB7IG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpOyB9CiAgICAgCiAgICAg
Y29uc3QgVVJMJiBodHRwUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2h0dHBQcm94eTsgfQogICAg
IHZvaWQgc2V0SFRUUFByb3h5KFVSTCYmIHByb3h5KSB7IG1faHR0cFByb3h5ID0gV1RGTW92ZShw
cm94eSk7IH0KQEAgLTE5Nyw3ICsxOTQsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2Nvb2tp
ZVN0b3JhZ2VGaWxlOwogICAgIFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcjsKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7
Ci0gICAgU3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1f
Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyOwogICAgIFN0cmluZyBtX2RhdGFDb25uZWN0aW9uU2Vy
dmljZVR5cGU7CiAgICAgVVJMIG1faHR0cFByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzE5NzkzZTc2OTZjODI2MzVmMzk2MWYy
N2ZlNjkwZGY1MjM0ZjMxYy4uODNkYmQyMGIyODRlNDk0OTY1MjI4ZTg1MWYzMGQ4NGIwM2IzNWM4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00NDQxLDYgKzQ0NDEsOCBAQAogCQk1QzE0MjcxQjFDMjNGOENDMDBENDExODMgLyogTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MUUxRkQwQjE0NjAwRUVBMzIzIC8qIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUMxOUE1MUYxRkQwQjE0NzAwRUVBMzIzIC8qIFVSTFNjaGVtZVRhc2tQYXJhbWV0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFNjaGVtZVRhc2tQYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMUIzOERGMjY2NzE0MDcw
MEIxNTQ1QiAvKiBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
MUIzOEUwMjY2NzE0MDcwMEIxNTQ1QiAvKiBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyMENCOUIxQkIwRENEMjAwODk1QkIxIC8qIE5ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzIw
Q0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUMyNjk1ODQyMDA0MkYxMjAwNUM0MzlCIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVy
c1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgzNCw2
ICs2ODM2LDggQEAKIAkJCQlDMDZDNjA5NDEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oICovLAogCQkJCUJDN0I2MjUxMTJBNDNDOTYwMEQxNzRBNCAvKiBXZWJQ
YWdlR3JvdXBEYXRhLmNwcCAqLywKIAkJCQlCQzdCNjI1MDEyQTQzQzk2MDBEMTc0QTQgLyogV2Vi
UGFnZUdyb3VwRGF0YS5oICovLAorCQkJCTVDMUIzOEUwMjY2NzE0MDcwMEIxNTQ1QiAvKiBXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwICovLAorCQkJCTVDMUIzOERGMjY2NzE0MDcwMEIxNTQ1
QiAvKiBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaCAqLywKIAkJCQlDMDMzN0REQzEyN0E1MjFD
MDA4RkY0RjQgLyogV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcCAqLywKIAkJCQlCQzU3NDRFRDEy
NjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmNwcCAqLywKIAkJCQlCQzU3NDRFRTEyNjM4
RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk0YTQ3NTFkYzIwNjljYWEwNjc2ZjlhMGI5
MDhiOTgyYzA1ZjBiMC4uODkzMzgxYWFiOWM4MzY4NjVjYjVhMzY5OTYwNTFlYTI0YTBiYTcwMyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTA2LTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBhdHRyaWJ1dGVkQnVuZGxlSWRlbmRpZmllciBhIHBy
b3BlcnR5IGZvciBXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjU0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVE
YXRhc3RvcmUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wNS0y
NyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgU2FtcGxlZCBQ
YWdlIFRvcCBDb2xvcjogYWxsb3cgc25hcHNob3R0aW5nIG9mIGVsZW1lbnRzIHdpdGggQ1NTIGFu
aW1hdGlvbnMvdHJhbnNpdGlvbnMgaWYgdGhleSdyZSBwYXVzZWQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUu
bW0KaW5kZXggMzZmZmRjMDAxYzdlZTY3ODJkOTUyNzRjMmRiMzc2ZmRhMDhjMGQ4Yy4uMDNjM2E2
MmU3ZTFhYjg5NmEyNmQ4YWZjOTAzNjA0NmYwMTNiYzZkYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUu
bW0KQEAgLTI2Nyw3ICsyNjcsNiBAQCBURVNUKFdlYktpdCwgU2V0dGluZ05vblBlcnNpc3RlbnRE
YXRhU3RvcmVQYXRoc1Rocm93c0V4Y2VwdGlvbikKICAgICBbY29uZmlndXJhdGlvbiBzZXRIVFRQ
U1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBwbGUuY29tLyJdXTsK
ICAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6
QCJjb20uYXBwbGUuU2FmYXJpIl07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOkAiY29tLmFwcGxlLlNhZmFyaSJdOwotICAgIFtjb25m
aWd1cmF0aW9uIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOkAiY29tLmFwcGxlLlNhZmFy
aSJdOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25QZXJzaXN0ZW50V2Vi
U3RvcmFnZSkKQEAgLTMxMiw2ICszMTEsNDAgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZl
dGNoTm9uUGVyc2lzdGVudFdlYlN0b3JhZ2UpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWFkeVRvQ29udGludWUpOwogfQogCitURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgU2Vzc2lv
blNldENvdW50KQoreworICAgIGF1dG8gY291bnRTZXNzaW9uU2V0cyA9IFtdIHsKKyAgICAgICAg
X19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgX19ibG9jayBzaXplX3QgcmVzdWx0
ID0gMDsKKyAgICAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gX2Nv
dW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOl4oc2l6ZV90IGNvdW50KSB7CisgICAgICAgICAgICBy
ZXN1bHQgPSBjb3VudDsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9XTsKKyAg
ICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9OworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBhdXRvIHdlYlZp
ZXcwID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgICAgICBFWFBFQ1RfRVEoY291bnRT
ZXNzaW9uU2V0cygpLCAwdSk7CisgICAgICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbmZp
Z3VyYXRpb24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTsKKyAgICAgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBAInRlc3QuYnVu
ZGxlLmlkLjEiOworICAgICAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgICAgICBFWFBFQ1RfRVEoY291bnRTZXNzaW9uU2V0cygpLCAwdSk7Cisg
ICAgICAgIFt3ZWJWaWV3MSBsb2FkSFRNTFN0cmluZzpAImhpIiBiYXNlVVJMOm5pbF07CisgICAg
ICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAgICAgICAgYXV0byB3ZWJW
aWV3MiA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgW3dlYlZpZXcy
IGxvYWRIVE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsKKyAgICAgICAgRVhQRUNUX0VRKGNv
dW50U2Vzc2lvblNldHMoKSwgMXUpOworICAgICAgICBjb25maWd1cmF0aW9uLmdldCgpLl9hdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IEAidGVzdC5idW5kbGUuaWQuMiI7CisgICAgICAgIGF1
dG8gd2ViVmlldzMgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgICAgIEVY
UEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAgICAgICAgW3dlYlZpZXczIGxvYWRI
VE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsKKyAgICAgICAgRVhQRUNUX0VRKGNvdW50U2Vz
c2lvblNldHMoKSwgMnUpOworICAgIH0KKyAgICB3aGlsZSAoY291bnRTZXNzaW9uU2V0cygpKSB7
IH0KK30KKwogVEVTVChXZWJLaXQsIENsZWFyQ3VzdG9tRGF0YVN0b3JlTm9XZWJWaWV3cykKIHsK
ICAgICBIVFRQU2VydmVyIHNlcnZlcihbY29ubmVjdGlvbkNvdW50ID0gMF0gKENvbm5lY3Rpb24g
Y29ubmVjdGlvbikgbXV0YWJsZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430390</attachid>
            <date>2021-06-02 12:32:48 -0700</date>
            <delta_ts>2021-06-02 13:52:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226548-20210602123247.patch</filename>
            <type>text/plain</type>
            <size>47695</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlNjg2N2UwZWIzZmQ2ZGQ4
YmM4NWIxZGE0ZDQ5NmQ5NWI4M2QwZDUuLmVkZDdlZDI0MTQxYzNiY2RiOGY4MGM1OTVjN2YxMDYw
ZWIwMzAxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDYtMDIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIGF0dHJp
YnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4CisgICAgICAgIDxy
ZGFyOi8vNzg3Mzc1NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgaGF2ZSBiZWVuIHB1dHRpbmcgcHJvcGVydGllcyB0byBnbyBpbnRvIHRoZSBO
U1VSTFNlc3Npb25Db25maWd1cmF0aW9uIG9uIHRoZSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi4KKyAgICAgICAgVGhpcyBoYXMgYmVlbiBvayBzbyBmYXIsIGJ1dCBub3cgd2UgaGF2
ZSBhbiBhcHBsaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHJ1biBuZXR3b3JraW5nIGF0dHJpYnV0ZWQg
dG8gZGlmZmVyZW50IGFwcGxpY2F0aW9ucworICAgICAgICBidXQgc2hhcmluZyB0aGUgZGF0YSBz
dG9yYWdlIGluIHRoZSBzYW1lIHByb2Nlc3MuICBXZSBub3cgZG8gd2hhdCB3ZSBzaG91bGQndmUg
ZG9uZSBsb25nIGFnbzogcHV0IHRoZXNlIG5vbi1zdG9yYWdlLXJlbGF0ZWQKKyAgICAgICAgcHJv
cGVydGllcyBvbiB0aGUgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi4KKworICAgICAgICBJIGludHJv
ZHVjZSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMgd2hpY2ggY3VycmVudGx5IGhhcyBvbmx5IG9u
ZSBtZW1iZXIsIGJ1dCB3aWxsIHNvb24gaGF2ZSBtb3JlLgorCisgICAgICAgIEkgbWFkZSBpdCBz
byB0aGF0IGlmIG11bHRpcGxlIFdLV2ViVmlld3Mgd2l0aCB0aGUgc2FtZSBkYXRhIHN0b3JlIGhh
dmUgdGhlIHNhbWUgYXR0cmlidXRlZEJ1bmRsZUlkZW5kaWZpZXIsIHRoZXkgc2hhcmUgYW4gTlNV
UkxTZXNzaW9uLgorICAgICAgICBPdGhlcndpc2UsIHRoZXkgZ2V0IHRoZWlyIG93biBOU1VSTFNl
c3Npb24gaW4gYSBkaWZmZXJlbnQgU2Vzc2lvblNldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMgY29uc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpp
bml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Np
b25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjppbml0aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVyczo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAo
V1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz46Omhhc2gp
OgorICAgICAgICAoV1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycz46OmVxdWFsKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9jb3VudE5vbkRlZmF1bHRTZXNz
aW9uU2V0czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6fldlYlBh
Z2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3Jt
U2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb246OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGIw
ZjBjNTAxMWJkNDM4NTUzNmM5MGY0N2M3MWZlNzUwMjBkYTE5YmUuLmFhMzQzZThkNzRjZDBhMWJj
Y2Y1NjgwNTM2NzA2MTE3ODk1NmNjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNzk1LDQgKzI3OTUsMzEgQEAgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIE5ldHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFBy
b3h5KCkKIH0KICNlbmRpZgogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
Cit7CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBp
ZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPmFkZFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCit7
CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAo
IXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPnJlbW92ZVdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3Vu
dE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNl
c3Npb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigwKTsKKworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCBiOGE3YWQ0OWNhMTBlZDBmMzNlNjAxN2NkNGQzNmIwMmZl
YmQ5OTY2Li5lOWEyMWIwODMxYzczYjNlYTQ5OTRjNmI5ODgwYWQ1NDNlZGZmZjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDYsNiAr
MTA2LDcgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50OwogY2xhc3MgTmV0d29ya1By
b3hpbWl0eU1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTdG9y
YWdlTWFuYWdlclNldDsKK2NsYXNzIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczsKIGNsYXNzIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjsKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjsKIGVudW0gY2xhc3MgQ2FsbERvd25sb2FkRGlkU3RhcnQgOiBib29sOwpAQCAtNDUyLDYgKzQ1
MywxMCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgZmx1c2hDb29raWVzKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgYWRk
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVt
b3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllcik7CisgICAgdm9pZCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhj
b25zdCBQQUw6OlNlc3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc2l6ZV90KT4mJik7
CisKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Np
b25JRCwgYm9vbCk7CiAgICAgdm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTA0NjNkMjViZDZhNDg5NGEy
ZTZlOWMxNWYxNWUyYzgyODg0ZjE5ZS4uYWUxNWZmMGUxMmNhNTQ1MTc4OTA3ZDk3MmEwOWNlNmQy
MzIxYTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xOTYsNCArMTk2LDggQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcEJvdW5kTmF2aWdhdGlvbkRh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwQm91bmRO
YXZpZ2F0aW9uVGVzdGluZ0RhdGEgZGF0YSkgQXN5bmMKICAgICBDbGVhckFwcEJvdW5kTmF2aWdh
dGlvbkRhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogI2VuZGlmCisK
KyAgICBBZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKQorICAgIFJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFy
YW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQpCisgICAgQ291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoc2l6ZV90IGNvdW50KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDdhZjNmMzZmMWU2MWM0
YzJiMjM1OGU3ZDZmOGY3ZTM3YjllNzMxYTguLjdmYTkyNzQ0ZjIxNTJkYzM2MzAxNWI4YWMyZDgy
NjUwNDM1ZGNiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRTY2hlZHVsZXI7CiBj
bGFzcyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNz
IE5ldHdvcmtTb2NrZXRDaGFubmVsOworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwog
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU29ja2V0VGFz
azsKIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTE2OCw2ICsx
NjksMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5ldHdvcmtXZWJzaXRl
RGF0YShzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiwgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KIAorICAgIHZpcnR1YWwg
dm9pZCBhZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgeyB9CisgICAg
dmlydHVhbCBzaXplX3QgY291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdCB7IHJldHVy
biAwOyB9CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYs
IGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggODI0YzA2NWZhMGY4MWE3NjMxZmFkNTI1NGY4NzZi
NmEwZTZmNGNkYi4uY2Y3ZmU5N2YyMjQ5OTMzZWFkZDkwNzkwODIxZjU3NzdkMmExNTIzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgdm9pZCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBlbmNv
ZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8
IHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgc2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb247CiAgICAgZW5jb2RlciA8PCBodHRwUHJveHk7CiAgICAgZW5jb2RlciA8PCBo
dHRwc1Byb3h5OwpAQCAtMTIwLDExICsxMTksNiBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwog
ICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAg
IGlmICghc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXI7Ci0gICAgaWYgKCFhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uOwogICAgIGRlY29kZXIgPj4gc2hvdWxkTG9nQ29va2llSW5mb3JtYXRp
b247CkBAIC0zMDEsNyArMjk1LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMKICAgICAgICAg
LCBXVEZNb3ZlKHByb3h5Q29uZmlndXJhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiAgICAgICAgICwgV1RGTW92ZSgqc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQotICAgICAgICAsIFdURk1vdmUoKmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKQogICAgICAgICAsIFdURk1vdmUoKnNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKQogICAgICAgICAsIFdURk1vdmUoKmh0dHBQcm94eSkKICAgICAgICAgLCBXVEZN
b3ZlKCpodHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY2YjFl
NDg4MDJhYjE1NmUyOWEzNDgxY2NmZDE2OWVlODQ0MGUyZTEuLjkwM2JiMGNhNGMxMzU4MzczNzcw
NzA4OTU5YTA1ZWQ4Y2JkM2RmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTYwLDcgKzYwLDYgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm94eUNvbmZpZ3VyYXRpb247CiAgICAg
U3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwotICAgIFN0cmluZyBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcjsKICAgICBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsg
ZmFsc2UgfTsKICAgICBVUkwgaHR0cFByb3h5OwogICAgIFVSTCBodHRwc1Byb3h5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EuaAppbmRleCAyNDlmMTBmMjEyODVlMDYzM2NhYTIxZDkxZWZjNDVjM2Y4MzMxZDRkLi43
ZGY0MDI3MmI1ODc5MzNkZDdkMjg0ODgyNmRhMTE2OWE1MDk4NWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
aApAQCAtMzgsNiArMzgsNyBAQCBPQkpDX0NMQVNTIF9OU0hTVFNTdG9yYWdlOwogI2luY2x1ZGUg
IkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlNv
Y2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAt
NzUsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgY29uc3QgU3RyaW5nJiBkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3Q7CiAjZW5k
aWYKQEAgLTEyOCw2ICsxMjgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZVdlYlNvY2tl
dFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgZmlu
YWw7CisgICAgc2l6ZV90IGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QgZmluYWw7
CisKICAgICBzdHJ1Y3QgSXNvbGF0ZWRTZXNzaW9uIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgpAQCAtMTM2LDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIFdhbGxUaW1lIGxhc3RVc2VkOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+IHsKKyAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Vz
c2lvblNldD4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxTZXNzaW9uU2V0PiBj
cmVhdGUoKQogICAgICAgICB7CkBAIC0xNTksOCArMTYzLDkgQEAgcHJpdmF0ZToKIAogICAgIFJl
ZjxTZXNzaW9uU2V0PiBtX2RlZmF1bHRTZXNzaW9uU2V0OwogICAgIEhhc2hNYXA8V2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgUmVmPFNlc3Npb25TZXQ+PiBtX3BlclBhZ2VTZXNzaW9uU2V0czsKKyAg
ICBIYXNoTWFwPFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycywgV2Vha1B0cjxTZXNzaW9uU2V0Pj4g
bV9wZXJQYXJhbWV0ZXJzU2Vzc2lvblNldHM7CiAKLSAgICB2b2lkIGluaXRpYWxpemVTdGFuZGFy
ZFNlc3Npb25zSW5TZXQoU2Vzc2lvblNldCYsIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKik7
CisgICAgdm9pZCBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmLCBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICopOwogICAgIFNlc3Npb25TZXQmIHNlc3Npb25TZXRGb3JQ
YWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAgIGNvbnN0IFNlc3Npb25TZXQmIHNlc3Np
b25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNvbnN0OwogICAgIHZvaWQgaW52
YWxpZGF0ZUFuZENhbmNlbFNlc3Npb25TZXQoU2Vzc2lvblNldCYpOwpAQCAtMTY4LDcgKzE3Myw2
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOwogICAg
IFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcg
bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
bV9wcm94eUNvbmZpZ3VyYXRpb247CiAgICAgUmV0YWluUHRyPERNRldlYnNpdGVQb2xpY3lNb25p
dG9yPiBtX2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yOwogICAgIGJvb2wgbV9kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
aW5kZXggODk0OTVmZjM4NTcxNGE5MjUwODM3Y2FmMDMzYTBiZjhjNzNiNTFlYi4uZDlkMWE0ZjY1
ZDU4OTZjOTQ4ZTc3YzUwMWVlMGI3MjVjYjkyODUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAt
MzYsNiArMzYsNyBAQAogI2ltcG9ydCAiTmV0d29ya0xvYWQuaCIKICNpbXBvcnQgIk5ldHdvcmtQ
cm9jZXNzLmgiCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgor
I2ltcG9ydCAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJTb2NrZXRU
YXNrLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9DcmVkZW50aWFsLmg+CkBAIC0xMDk5LDExICsxMTAwLDYgQEAgY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
cjsKIH0KIAotY29uc3QgU3RyaW5nJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXI7Ci19Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3QKIHsK
QEAgLTExNzYsNyArMTE3Miw2IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgLCBtX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcihwYXJhbWV0ZXJzLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBhcmFtZXRlcnMu
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIocGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXIpCi0gICAgLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKHBhcmFt
ZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5Q29uZmlndXJh
dGlvbihwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbikKICAgICAsIG1fc2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24ocGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbikKICAg
ICAsIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCkKQEAgLTEyMjgsMTMgKzEyMjMsNiBAQCBOZXR3b3Jr
U2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgTmV0d29yawogICAgIGlmICghbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlk
ZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICBjb25maWd1cmF0aW9uLl9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllcjsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9BVFRSSUJVVEVEX0JV
TkRMRV9JREVOVElGSUVSKQotICAgIGlmICghbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5p
c0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKFtjb25maWd1cmF0aW9uIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKV0pCi0gICAgICAgICAgICBj
b25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXI7Ci0gICAgfQotI2VuZGlmCi0KICNpZiBIQVZFKENGTkVUV09SS19BTFRF
Uk5BVElWRV9TRVJWSUNFKQogICAgIGlmICghcGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VE
aXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CkBAIC0xMjg0LDcgKzEyNzIsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3
b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawog
ICAgICAgICBjb29raWVTdG9yYWdlLmdldCgpLl9vdmVycmlkZVNlc3Npb25Db29raWVBY2NlcHRQ
b2xpY3kgPSBZRVM7CiAjZW5kaWYKIAotICAgIGluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQobV9kZWZhdWx0U2Vzc2lvblNldC5nZXQoKSwgY29uZmlndXJhdGlvbik7CisgICAgaW5pdGlh
bGl6ZU5TVVJMU2Vzc2lvbnNJblNldChtX2RlZmF1bHRTZXNzaW9uU2V0LmdldCgpLCBjb25maWd1
cmF0aW9uKTsKIAogICAgIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBw
YXJhbWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIG1fYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHBh
cmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9y
VGVzdGluZzsKQEAgLTEzMDEsNyArMTI4OSw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAK
IE5ldHdvcmtTZXNzaW9uQ29jb2E6On5OZXR3b3JrU2Vzc2lvbkNvY29hKCkgPSBkZWZhdWx0Owog
Ci12b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQoU2Vzc2lvblNldCYgc2Vzc2lvblNldCwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29u
ZmlndXJhdGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6aW5pdGlhbGl6ZU5TVVJMU2Vz
c2lvbnNJblNldChTZXNzaW9uU2V0JiBzZXNzaW9uU2V0LCBOU1VSTFNlc3Npb25Db25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uKQogewogICAgIHNlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50
aWFsU3RvcmFnZS5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sICp0aGlzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8p
OwogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIkNyZWF0ZWQgTmV0d29ya1Nlc3Npb24gd2l0aCBj
b29raWVBY2NlcHRQb2xpY3kgJWx1IiwgY29uZmlndXJhdGlvbi5IVFRQQ29va2llU3RvcmFnZS5j
b29raWVBY2NlcHRQb2xpY3kpOwpAQCAtMTM0NywxMCArMTMzNSw2IEBAIFNlc3Npb25XcmFwcGVy
JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3Rh
dGVsZXNzU2VzCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb25maWd1cmF0aW9uLl9D
VERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24uX0NURGF0
YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJM
U0VTU0lPTl9BVFRSSUJVVEVEX0JVTkRMRV9JREVOVElGSUVSKQotICAgIGlmIChbY29uZmlndXJh
dGlvbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcildKQotICAgICAgICBjb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciA9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Ci0j
ZW5kaWYKIAogICAgIGVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb24uaW5pdGlhbGl6ZShjb25maWd1
cmF0aW9uLCBzZXNzaW9uLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1l
cmFsU3RhdGVsZXNzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKIApAQCAtMTY3Nyw2
ICsxNjYxLDM4IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFz
ayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94CiAKICNlbmRpZiAvLyBIQVZFKE5T
VVJMU0VTU0lPTl9XRUJTT0NLRVQpCiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2Vi
UGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIGF1dG8gYWRkUmVzdWx0
MSA9IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25TZXRzLmFkZChwYXJhbWV0ZXJzLCBudWxscHRyKTsK
KyAgICBpZiAoYXV0byBzZXQgPSBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSkgeworICAgICAg
ICBtX3BlclBhZ2VTZXNzaW9uU2V0cy5hZGQocGFnZUlELCAqc2V0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gYWRkUmVzdWx0MiA9IG1fcGVyUGFnZVNlc3Npb25TZXRzLmFk
ZChwYWdlSUQsIFNlc3Npb25TZXQ6OmNyZWF0ZSgpKTsKKyAgICBBU1NFUlQoYWRkUmVzdWx0Mi5p
c05ld0VudHJ5KTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFttX2RlZmF1bHRT
ZXNzaW9uU2V0LT5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLnNlc3Npb24uZ2V0KCkuY29u
ZmlndXJhdGlvbiBjb3B5XSk7CisjaWYgSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX0FUVFJJ
QlVURURfQlVORExFX0lERU5USUZJRVIpCisgICAgaWYgKFtjb25maWd1cmF0aW9uIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKV0pCisgICAg
ICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gcGFy
YW1ldGVycy5hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpOworI2VuZGlmCisgICAgaW5pdGlh
bGl6ZU5TVVJMU2Vzc2lvbnNJblNldChhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSwg
Y29uZmlndXJhdGlvbi5nZXQoKSk7CisgICAgYWRkUmVzdWx0MS5pdGVyYXRvci0+dmFsdWUgPSBt
YWtlV2Vha1B0cihhZGRSZXN1bHQyLml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7Cit9CisKK3ZvaWQg
TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQoreworICAgIG1fcGVyUGFnZVNlc3Npb25TZXRzLnJl
bW92ZShwYWdlSUQpOworfQorCitzaXplX3QgTmV0d29ya1Nlc3Npb25Db2NvYTo6Y291bnROb25E
ZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdAoreworICAgIEhhc2hTZXQ8UmVmPFNlc3Npb25TZXQ+
PiB1bmlxdWVTZXRzOworICAgIGZvciAoYXV0byYgc2V0IDogbV9wZXJQYWdlU2Vzc2lvblNldHMu
dmFsdWVzKCkpCisgICAgICAgIHVuaXF1ZVNldHMuYWRkKHNldCk7CisgICAgcmV0dXJuIHVuaXF1
ZVNldHMuc2l6ZSgpOworfQorCiBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpob3N0TmFtZXNXaXRoQWx0ZXJuYXRpdmVTZXJ2aWNlcygpIGNv
bnN0CiB7CiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA2YTFkNzdmM2MzMmYwZjcyZGE4YzNiMzEyNjNkNzFjZDY1YjFmMWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3Bw
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXI7Cit9CisKK3N0ZDo6b3B0aW9uYWw8V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiBXZWJQYWdl
TmV0d29ya1BhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CisgICAgaWYgKCFhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAKKyAg
ICByZXR1cm4ge3sKKyAgICAgICAgV1RGTW92ZSgqYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIp
CisgICAgfX07Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjExZDg4NTNhMzQ1MWYzNmJlNDgzZTJjZmM1NjMx
ZmJmYTY3NjgwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcikKKyAgICAgICAgOiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKGF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKSB7IH0KKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYp
IGNvbnN0OworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cz4gZGVjb2RlKElQQzo6RGVjb2RlciYpOworCisgICAgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
KCkgPSBkZWZhdWx0OworICAgIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXVEY6Okhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAgICAgIDogbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
cihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkgeyB9CisgICAgYm9vbCBpc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIu
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQorICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7
IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyLmhhc2goKTsgfQorICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmIG90aGVyKSBjb25zdCB7
IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID09IG90aGVyLm1fYXR0cmlidXRl
ZEJ1bmRsZUlkZW50aWZpZXI7IH0KKworICAgIGNvbnN0IFN0cmluZyYgYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
OyB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz4g
eworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQ
YXJhbWV0ZXJzJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYgYSwgY29uc3QgV2Vi
S2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZh
bHNlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJLaXQ6OldlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycz4gOiBwdWJsaWMgU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFdlYktpdDo6
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiB7IH07CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggMDIyMjU0NTNjMzFhNWJhOTE4NThmZTcwNWM2NWU5NTRjMTRkNzA2Ni4uM2I4
NmNmNWQ5YjU0Y2FlNzM5MGJkMTNhNjUwN2IzNjcyOWViZDYyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0y
MTcsNiArMjE3LDcgQEAgU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCiBTaGFyZWQvV2ViTW91
c2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKIFNoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFy
YW1ldGVycy5jcHAKIFNoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIEBuby11bmlmeQog
U2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAKIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmNwcAppbmRleCA3ZWYwNGFlODkyZDU0NGEzOTc1OTAxYjJiMDk0MGMxMGUzN2Ux
Mjg0Li5hMmYxYWM1NTBjYmI2MTY0N2E3ODg4ZDc5ZTc0MDYzMTk4MGZhMzk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAK
QEAgLTc5LDYgKzc5LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlv
bjo6Y29weSgpIGNvbnN0CiAgICAgY29weS0+bV9hcHBsaWNhdGlvbk1hbmlmZXN0ID0gdGhpcy0+
bV9hcHBsaWNhdGlvbk1hbmlmZXN0OwogI2VuZGlmCiAgICAgY29weS0+bV9zaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZyA9IHRoaXMtPm1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmc7CisgICAgY29weS0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IHRo
aXMtPm1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgZm9yIChhdXRvJiBwYWlyIDog
dGhpcy0+bV91cmxTY2hlbWVIYW5kbGVycykKICAgICAgICAgY29weS0+bV91cmxTY2hlbWVIYW5k
bGVycy5zZXQocGFpci5rZXksIHBhaXIudmFsdWUuY29weVJlZigpKTsKICAgICBjb3B5LT5tX2Nv
cnNEaXNhYmxpbmdQYXR0ZXJucyA9IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApp
bmRleCA4MTVmN2ZkMDc0NDc4Yzc3ZGEzNDk3NjQ2NTI3YmE1YzI0ZmU0MDU5Li5kMzNiNzZmY2Fl
Yzc1OGY5NjJkMmUwMDVjYjI1YmZkYmZlMmQxM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTY2LDcgKzE2NiwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nKFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHZhbHVlKSB7
IG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSB2YWx1ZTsgfQogICAgIFdl
YkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZzsgfQotICAgIAorCisgICAgdm9pZCBzZXRBdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcihXVEY6OlN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KKyAgICBjb25zdCBXVEY6OlN0
cmluZyYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyOyB9CisKIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQcm9jZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsKQEAgLTIxNyw2ICsyMjAsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9odHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogCiAgICAgV2Vi
Q29yZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nOjpObyB9OworICAgIFdURjo6U3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
aW5kZXggZGI3Mzg2OWYzNTc1MzE4MTE5ZjRlNjA0OWEyMDFjM2FmNGYwOTdhOC4uZDBjN2U5YTFm
NThiZTI0YjhiMGZhNDVjMjJiZmI1YWViM2JlYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
QEAgLTEzMjIsNiArMTMyMiwxOSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICByZXR1cm4gX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQ7CiB9CiAKKy0gKHZvaWQp
X3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIKK3sK
KyAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKGlk
ZW50aWZpZXIpOworfQorCistIChOU1N0cmluZyAqKV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
cgoreworICAgIGF1dG8mIGlkZW50aWZpZXIgPSBfcGFnZUNvbmZpZ3VyYXRpb24tPmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1
cm4gbmlsOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDI0MjVlYzZmZmNhYzBiYzU2ZDY0YjhkMzc5NTI5NDMx
ZjU5YTAzNzguLjBhMmRjOGNiYTY1NTM2ZGEyOTRhOGQ0YmE3NGEyMGZjYTdmNTI5YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0xMzIsNiArMTMyLDkgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIC8vIEV4cGVjdHMgMCAo
dGhlIGNvbG9yIGRvZXNuJ3QgbmVlZCB0byBjb250aW51ZSBpbnRvIHRoZSBwYWdlIGF0IGFsbCkg
b3IgYW55IHBvc2l0aXZlIG51bWJlci4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFNhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQ6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9wQ29s
b3JNaW5IZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAorLy8gQXR0cmlidXRlcyBuZXR3b3JrIGFjdGl2aXR5IGZyb20gdGhpcyBXS1dl
YlZpZXcgdG8gdGhlIGFwcCB3aXRoIHRoaXMgYnVuZGxlLgorQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2F0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyOworCiBAZW5kCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbQppbmRleCA2MTQ3ZDQwMzQyMTlhYzMyYTljOGY4NmNiZmQ1ODdmY2FmOTE4ZDkz
Li42NzJiMjA1MzQ0MmU3ZTgzNGFhNDUzYzQwZDMyYzlkOTA3MDFlMTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0KQEAgLTc0MSw0ICs3NDEsMTEgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRh
UmVjb3JkPiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICByZXR1
cm4gISFXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRlZmF1bHROZXR3b3JrUHJvY2Vzcygp
OwogfQogCistICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0czoodm9pZCheKShzaXpl
X3QpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNvdW50Tm9u
RGVmYXVsdFNlc3Npb25TZXRzKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildIChzaXplX3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoY291bnQpOworICAgIH0pOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApp
bmRleCAyZThlZDExZDBhYWQ4ODZhNWU0ZmRkZDk5OGE0ZTJkN2IxMmQyZWVjLi42ZDk4MTY3ZDI1
MTBhYmE4OGFhNmM0ZDk3NWE3YjllNWVlNTViODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
LmgKQEAgLTEwMCw2ICsxMDAsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
V2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfbWFrZU5leHROZXR3b3Jr
UHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChCT09MKV9uZXR3b3JrUHJvY2Vzc0V4aXN0cyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogKyAo
Qk9PTClfZGVmYXVsdE5ldHdvcmtQcm9jZXNzRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9jb3VudE5vbkRlZmF1bHRT
ZXNzaW9uU2V0czoodm9pZCheKShzaXplX3QpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggOTg5YjcyM2QxNWFi
MTJlOWZlYTcyODQ0ZWU0OWNjMzA1NjE3NWJlYy4uZjA4MzRiNjAwZjEyZjQ2YzcwNjBiNzBjMDRj
ZGRmOWMxNDhmYmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgK
QEAgLTM5LDcgKzM5LDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKQogLy8gVGhlc2UgcHJvcGVydGllcyBhcHBseSB0byBib3RoIHBlcnNpc3RlbnQgYW5kIG5v
bi1wZXJzaXN0ZW50IGRhdGEgc3RvcmVzLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFy
eUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLm1tCmluZGV4IGQwOWRkMDc4MDk5Y2Q5M2VlN2VjZTg0Mzk2ZWVhMzI0OTVlNzUy
MjUuLmE4NGU5MjllMjZiNzU0NTJiY2NkZTdjMTgyM2VhMTljZDVjZThkNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTI0MiwxNiArMjQyLDYgQEAgc3Rh
dGljIHZvaWQgY2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9u
LT5zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9
CiAKLS0gKHZvaWQpc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnRpZmllcgotewotICAgIF9jb25maWd1cmF0aW9uLT5zZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcihpZGVudGlmaWVyKTsKLX0KLQotLSAoTlNTdHJpbmcgKilhdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcgotewotICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIoKTsKLX0KLQogLSAoTlNVUkwgKilhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5CiB7
CiAgICAgcmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPmFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ5NjgwNjE0MjNiNzk1NWMzYzM3YWRkZTUy
N2RjN2NlYzMyOGU4OS4uYjlhZWFhN2U1YjdiYzBlMTY5NmM5MjFjM2ZiN2E4ODlkYWUyMTBkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjcsNiArMTI3
LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUlu
c3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogI2luY2x1ZGUgIldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCkBAIC02MDQsNiArNjA1LDggQEAgV2ViUGFnZVBy
b3h5Ojp+V2ViUGFnZVByb3h5KCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9uZXh0QWN0
aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrcykKICAgICAgICAgY2FsbGJhY2soKTsKIAorICAgIHdl
YnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpSZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoc2Vzc2lvbklEKCksIG1faWRl
bnRpZmllciksIDApOworCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAg
ICAgV0VCUEFHRVBST1hZX0RFU1RSVUNUT1JfV0tDT09SRElOQVRPUl9BRERJVElPTlMKICNlbmRp
ZgpAQCAtMTEwMCw2ICsxMTAzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppbml0aWFsaXplV2Vi
UGFnZSgpCiAgICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpOwogI2Vu
ZGlmCiAKKyAgICBpZiAoYXV0byYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBtX2NvbmZp
Z3VyYXRpb24tPmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7ICEhYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIpIHsKKyAgICAgICAgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMgeyBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciB9OworICAgICAgICB3ZWJzaXRlRGF0YVN0
b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWRk
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKHNlc3Npb25JRCgpLCBtX2lkZW50aWZpZXIsIFdURk1v
dmUocGFyYW1ldGVycykpLCAwKTsKKyAgICB9CisKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpDcmVhdGVXZWJQYWdlKG1fd2ViUGFnZUlELCBjcmVhdGlvblBhcmFtZXRlcnMobV9wcm9j
ZXNzLCAqbV9kcmF3aW5nQXJlYSkpLCAwKTsKIAogICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExp
bmtTdG9yZVVzZXIodmlzaXRlZExpbmtTdG9yZSgpLCBtX2lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFT
dG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IDA0Yzg1ZWJkZDIzMzU0Yzc0NWI5NmZkNmQx
MzRiYjg2Y2QzZmFiNjQuLjNhYTczYWYwMjE2YTFjYWM1M2VkODQ4YTM1YjdjZTBiNmIxNjFhNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE1OSw3ICsxNTksNiBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMoV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmln
dXJhdGlvbigpOwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1
cmF0aW9uKCkuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7Ci0gICAgcGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXIgPSBjb25maWd1cmF0aW9uKCkuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBw
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1h
dGlvbiA9IHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uOwogICAgIHBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLmh0dHBQcm94eSA9IFdURk1vdmUoaHR0cFByb3h5KTsKICAgICBw
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwc1Byb3h5ID0gV1RGTW92ZSho
dHRwc1Byb3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYmQ5NmFiMWVjZDQxYTlmNDk4NGYxYmY2
YWRkOWY2ZDcxOTBiZWVmNy4uZDQwOTBhOWJiNzdlY2U0NGY5M2ExODJjNzRjNzAwYWEwMTZhZTI2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIxNzksNiArMjE3OSwxMSBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlv
bkhhbmRsZXI8dgogICAgIG5ldHdvcmtQcm9jZXNzKCkuY2xlYXJCdW5kbGVJZGVudGlmaWVyKFtj
YWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y291
bnROb25EZWZhdWx0U2Vzc2lvblNldHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzaXplX3QpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q291bnROb25EZWZhdWx0U2Vzc2lvblNl
dHMobV9zZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHN0YXRp
YyBib29sIG5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaFNob3VsZEZhaWxGb3JUZXN0aW5nIHsgZmFs
c2UgfTsKIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjptYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1
bmNoRmFpbEZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDE3YWFkMDU3YTM0MTRmYjk4NDVl
OTkyYTNhNzIwNTEyYmI4YjYwODAuLjk5NTdlNTFhYzU4N2IzNjY2MGJkNmIyZTIwOTI1ODExMTM2
ZTdhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTM1MSw3ICszNTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhckJ1bmRs
ZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgCisKKyAgICB2b2lkIGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc2l6ZV90KT4mJik7CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBGb3Jj
ZVJlaW5pdGlhbGl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogI2lmIEVOQUJMRShBUFBfQk9V
TkRfRE9NQUlOUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRl
eCBhNzc4ZmE4M2ZhZjM0ODk0Y2NmMmY0MmMyYTIwOTg1MWNjY2E2MTJkLi5lNmU4MTE5MzQ3YTUz
ZmZmZmY4MzE5YmY5YThiZWNlNzRmZTI3MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAog
ICAgIGNvcHktPm1fY29va2llU3RvcmFnZUZpbGUgPSB0aGlzLT5tX2Nvb2tpZVN0b3JhZ2VGaWxl
OwogICAgIGNvcHktPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdGhpcy0+
bV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9zb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSB0aGlzLT5tX3NvdXJjZUFwcGxpY2F0aW9u
U2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBjb3B5LT5tX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlm
aWVyID0gdGhpcy0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBjb3B5LT5tX2h0
dHBQcm94eSA9IHRoaXMtPm1faHR0cFByb3h5OwogICAgIGNvcHktPm1faHR0cHNQcm94eSA9IHRo
aXMtPm1faHR0cHNQcm94eTsKICAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNFbmFibGVkID0gdGhpcy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDAxZWJiMWQ3MDgzZGZm
ZWE1YjY0MjgwYTA3ODI4N2RmYmRiMmZkZWQuLjk4NzQxMDEwMGNjNDYwMzE5MGU0OTVjNDcxYjg3
NjJjZmQzNTZjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAt
MTMyLDkgKzEzMiw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXI7IH0KICAgICB2b2lkIHNldFNvdXJjZUFwcGxpY2F0aW9u
U2Vjb25kYXJ5SWRlbnRpZmllcihTdHJpbmcmJiBpZGVudGlmaWVyKSB7IG1fc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQotCi0gICAg
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KLSAgICB2b2lkIHNldEF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KICAgICAKICAgICBjb25zdCBVUkwm
IGh0dHBQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cFByb3h5OyB9CiAgICAgdm9pZCBzZXRI
VFRQUHJveHkoVVJMJiYgcHJveHkpIHsgbV9odHRwUHJveHkgPSBXVEZNb3ZlKHByb3h5KTsgfQpA
QCAtMTk3LDcgKzE5NCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY29va2llU3RvcmFnZUZp
bGU7CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAg
IFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBTdHJp
bmcgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9ib3VuZEludGVy
ZmFjZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsK
ICAgICBVUkwgbV9odHRwUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxNDgyMTkyMWU0NzRkMjc0YWQ3ZTA5MDBkNzRkNmIxNzYz
Yjg2ZjAzLi4yZTdmYzlmOWY2NjMyYzc0MDE5ODM1MDQxNzEzNDFjODFhMWQ3Mjg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0NDAs
NiArNDQ0MCw4IEBACiAJCTVDMTQyNzFCMUMyM0Y4Q0MwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzE5QTUxRTFGRDBCMTQ2MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8q
IFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4RTAyNjY3
MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTZXNz
aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMERE
MTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzI2OTU4NDIwMDQyRjEyMDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09wZW5QYW5lbFBhcmFtZXRlcnNQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODM0LDYgKzY4MzYsOCBA
QAogCQkJCUMwNkM2MDk0MTI0QzE0NDMwMDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmggKi8sCiAJCQkJQkM3QjYyNTExMkE0M0M5NjAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cERh
dGEuY3BwICovLAogCQkJCUJDN0I2MjUwMTJBNDNDOTYwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBE
YXRhLmggKi8sCisJCQkJNUMxQjM4RTAyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycy5jcHAgKi8sCisJCQkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycy5oICovLAogCQkJCUMwMzM3RERDMTI3QTUyMUMwMDhGRjRGNCAv
KiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwICovLAogCQkJCUJDNTc0NEVEMTI2MzhGQjMwMDZG
MEYxMiAvKiBXZWJQb3B1cEl0ZW0uY3BwICovLAogCQkJCUJDNTc0NEVFMTI2MzhGQjMwMDZGMEYx
MiAvKiBXZWJQb3B1cEl0ZW0uaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBjMjYzODUzNmZjNDY4YjYzMDhhZDkzYzJiNmVjZDUyNzM0YzFk
ZDM3Li5kYjEwMmFhNGZhYTQxM2U0ZGRlZmQzMmI1ODI2YjZlYzQzNGNmNzA0IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjEtMDYtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBNYWtlIGF0dHJpYnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9y
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA2LTAyICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJzaXRlRGF0YXN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KaW5kZXggMzZmZmRjMDAxYzdlZTY3ODJkOTUyNzRjMmRi
Mzc2ZmRhMDhjMGQ4Yy4uMDNjM2E2MmU3ZTFhYjg5NmEyNmQ4YWZjOTAzNjA0NmYwMTNiYzZkYiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNp
dGVEYXRhc3RvcmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KQEAgLTI2Nyw3ICsyNjcsNiBAQCBURVNUKFdlYktpdCwg
U2V0dGluZ05vblBlcnNpc3RlbnREYXRhU3RvcmVQYXRoc1Rocm93c0V4Y2VwdGlvbikKICAgICBb
Y29uZmlndXJhdGlvbiBzZXRIVFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly93d3cuYXBwbGUuY29tLyJdXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2FmYXJpIl07CiAgICAgW2NvbmZpZ3Vy
YXRpb24gc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOkAiY29tLmFwcGxl
LlNhZmFyaSJdOwotICAgIFtjb25maWd1cmF0aW9uIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlm
aWVyOkAiY29tLmFwcGxlLlNhZmFyaSJdOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwg
RmV0Y2hOb25QZXJzaXN0ZW50V2ViU3RvcmFnZSkKQEAgLTMxMiw2ICszMTEsNDAgQEAgVEVTVChX
S1dlYnNpdGVEYXRhU3RvcmUsIEZldGNoTm9uUGVyc2lzdGVudFdlYlN0b3JhZ2UpCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogfQogCitURVNUKFdLV2Vi
c2l0ZURhdGFTdG9yZSwgU2Vzc2lvblNldENvdW50KQoreworICAgIGF1dG8gY291bnRTZXNzaW9u
U2V0cyA9IFtdIHsKKyAgICAgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAg
X19ibG9jayBzaXplX3QgcmVzdWx0ID0gMDsKKyAgICAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUg
ZGVmYXVsdERhdGFTdG9yZV0gX2NvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOl4oc2l6ZV90IGNv
dW50KSB7CisgICAgICAgICAgICByZXN1bHQgPSBjb3VudDsKKyAgICAgICAgICAgIGRvbmUgPSB0
cnVlOworICAgICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworICAgIEBhdXRvcmVsZWFzZXBvb2wg
eworICAgICAgICBhdXRvIHdlYlZpZXcwID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAg
ICAgICBFWFBFQ1RfRVEoY291bnRTZXNzaW9uU2V0cygpLCAwdSk7CisgICAgICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAg
ICAgIEVYUEVDVF9OVUxMKGNvbmZpZ3VyYXRpb24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgPSBAInRlc3QuYnVuZGxlLmlkLjEiOworICAgICAgICBhdXRvIHdlYlZpZXcxID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBFWFBFQ1RfRVEoY291bnRT
ZXNzaW9uU2V0cygpLCAwdSk7CisgICAgICAgIFt3ZWJWaWV3MSBsb2FkSFRNTFN0cmluZzpAImhp
IiBiYXNlVVJMOm5pbF07CisgICAgICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1
KTsKKyAgICAgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKKyAgICAgICAgW3dlYlZpZXcyIGxvYWRIVE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsK
KyAgICAgICAgRVhQRUNUX0VRKGNvdW50U2Vzc2lvblNldHMoKSwgMXUpOworICAgICAgICBjb25m
aWd1cmF0aW9uLmdldCgpLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IEAidGVzdC5idW5k
bGUuaWQuMiI7CisgICAgICAgIGF1dG8gd2ViVmlldzMgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpXSk7CisgICAgICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAg
ICAgICAgW3dlYlZpZXczIGxvYWRIVE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsKKyAgICAg
ICAgRVhQRUNUX0VRKGNvdW50U2Vzc2lvblNldHMoKSwgMnUpOworICAgIH0KKyAgICB3aGlsZSAo
Y291bnRTZXNzaW9uU2V0cygpKSB7IH0KK30KKwogVEVTVChXZWJLaXQsIENsZWFyQ3VzdG9tRGF0
YVN0b3JlTm9XZWJWaWV3cykKIHsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbY29ubmVjdGlvbkNv
dW50ID0gMF0gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgbXV0YWJsZSB7Cg==
</data>
<flag name="commit-queue"
          id="451828"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430399</attachid>
            <date>2021-06-02 13:47:34 -0700</date>
            <delta_ts>2021-06-03 22:35:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226548-20210602134733.patch</filename>
            <type>text/plain</type>
            <size>48142</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlNjg2N2UwZWIzZmQ2ZGQ4
YmM4NWIxZGE0ZDQ5NmQ5NWI4M2QwZDUuLmVkZDdlZDI0MTQxYzNiY2RiOGY4MGM1OTVjN2YxMDYw
ZWIwMzAxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDYtMDIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIGF0dHJp
YnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4CisgICAgICAgIDxy
ZGFyOi8vNzg3Mzc1NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgaGF2ZSBiZWVuIHB1dHRpbmcgcHJvcGVydGllcyB0byBnbyBpbnRvIHRoZSBO
U1VSTFNlc3Npb25Db25maWd1cmF0aW9uIG9uIHRoZSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi4KKyAgICAgICAgVGhpcyBoYXMgYmVlbiBvayBzbyBmYXIsIGJ1dCBub3cgd2UgaGF2
ZSBhbiBhcHBsaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHJ1biBuZXR3b3JraW5nIGF0dHJpYnV0ZWQg
dG8gZGlmZmVyZW50IGFwcGxpY2F0aW9ucworICAgICAgICBidXQgc2hhcmluZyB0aGUgZGF0YSBz
dG9yYWdlIGluIHRoZSBzYW1lIHByb2Nlc3MuICBXZSBub3cgZG8gd2hhdCB3ZSBzaG91bGQndmUg
ZG9uZSBsb25nIGFnbzogcHV0IHRoZXNlIG5vbi1zdG9yYWdlLXJlbGF0ZWQKKyAgICAgICAgcHJv
cGVydGllcyBvbiB0aGUgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi4KKworICAgICAgICBJIGludHJv
ZHVjZSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMgd2hpY2ggY3VycmVudGx5IGhhcyBvbmx5IG9u
ZSBtZW1iZXIsIGJ1dCB3aWxsIHNvb24gaGF2ZSBtb3JlLgorCisgICAgICAgIEkgbWFkZSBpdCBz
byB0aGF0IGlmIG11bHRpcGxlIFdLV2ViVmlld3Mgd2l0aCB0aGUgc2FtZSBkYXRhIHN0b3JlIGhh
dmUgdGhlIHNhbWUgYXR0cmlidXRlZEJ1bmRsZUlkZW5kaWZpZXIsIHRoZXkgc2hhcmUgYW4gTlNV
UkxTZXNzaW9uLgorICAgICAgICBPdGhlcndpc2UsIHRoZXkgZ2V0IHRoZWlyIG93biBOU1VSTFNl
c3Npb24gaW4gYSBkaWZmZXJlbnQgU2Vzc2lvblNldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMgY29uc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpp
bml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Np
b25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjppbml0aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVyczo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAo
V1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz46Omhhc2gp
OgorICAgICAgICAoV1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycz46OmVxdWFsKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9jb3VudE5vbkRlZmF1bHRTZXNz
aW9uU2V0czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6fldlYlBh
Z2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3Jt
U2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb246OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGIw
ZjBjNTAxMWJkNDM4NTUzNmM5MGY0N2M3MWZlNzUwMjBkYTE5YmUuLmFhMzQzZThkNzRjZDBhMWJj
Y2Y1NjgwNTM2NzA2MTE3ODk1NmNjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNzk1LDQgKzI3OTUsMzEgQEAgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIE5ldHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFBy
b3h5KCkKIH0KICNlbmRpZgogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
Cit7CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBp
ZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPmFkZFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCit7
CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAo
IXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPnJlbW92ZVdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3Vu
dE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNl
c3Npb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigwKTsKKworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCBiOGE3YWQ0OWNhMTBlZDBmMzNlNjAxN2NkNGQzNmIwMmZl
YmQ5OTY2Li5lOWEyMWIwODMxYzczYjNlYTQ5OTRjNmI5ODgwYWQ1NDNlZGZmZjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDYsNiAr
MTA2LDcgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50OwogY2xhc3MgTmV0d29ya1By
b3hpbWl0eU1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTdG9y
YWdlTWFuYWdlclNldDsKK2NsYXNzIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczsKIGNsYXNzIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjsKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjsKIGVudW0gY2xhc3MgQ2FsbERvd25sb2FkRGlkU3RhcnQgOiBib29sOwpAQCAtNDUyLDYgKzQ1
MywxMCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgZmx1c2hDb29raWVzKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgYWRk
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVt
b3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllcik7CisgICAgdm9pZCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhj
b25zdCBQQUw6OlNlc3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc2l6ZV90KT4mJik7
CisKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Np
b25JRCwgYm9vbCk7CiAgICAgdm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTA0NjNkMjViZDZhNDg5NGEy
ZTZlOWMxNWYxNWUyYzgyODg0ZjE5ZS4uYWUxNWZmMGUxMmNhNTQ1MTc4OTA3ZDk3MmEwOWNlNmQy
MzIxYTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xOTYsNCArMTk2LDggQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcEJvdW5kTmF2aWdhdGlvbkRh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwQm91bmRO
YXZpZ2F0aW9uVGVzdGluZ0RhdGEgZGF0YSkgQXN5bmMKICAgICBDbGVhckFwcEJvdW5kTmF2aWdh
dGlvbkRhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogI2VuZGlmCisK
KyAgICBBZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKQorICAgIFJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFy
YW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQpCisgICAgQ291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoc2l6ZV90IGNvdW50KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDdhZjNmMzZmMWU2MWM0
YzJiMjM1OGU3ZDZmOGY3ZTM3YjllNzMxYTguLjdmYTkyNzQ0ZjIxNTJkYzM2MzAxNWI4YWMyZDgy
NjUwNDM1ZGNiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRTY2hlZHVsZXI7CiBj
bGFzcyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNz
IE5ldHdvcmtTb2NrZXRDaGFubmVsOworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwog
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU29ja2V0VGFz
azsKIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTE2OCw2ICsx
NjksMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5ldHdvcmtXZWJzaXRl
RGF0YShzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiwgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KIAorICAgIHZpcnR1YWwg
dm9pZCBhZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgeyB9CisgICAg
dmlydHVhbCBzaXplX3QgY291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdCB7IHJldHVy
biAwOyB9CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYs
IGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggODI0YzA2NWZhMGY4MWE3NjMxZmFkNTI1NGY4NzZi
NmEwZTZmNGNkYi4uY2Y3ZmU5N2YyMjQ5OTMzZWFkZDkwNzkwODIxZjU3NzdkMmExNTIzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgdm9pZCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBlbmNv
ZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8
IHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgc2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb247CiAgICAgZW5jb2RlciA8PCBodHRwUHJveHk7CiAgICAgZW5jb2RlciA8PCBo
dHRwc1Byb3h5OwpAQCAtMTIwLDExICsxMTksNiBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwog
ICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAg
IGlmICghc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXI7Ci0gICAgaWYgKCFhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uOwogICAgIGRlY29kZXIgPj4gc2hvdWxkTG9nQ29va2llSW5mb3JtYXRp
b247CkBAIC0zMDEsNyArMjk1LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMKICAgICAgICAg
LCBXVEZNb3ZlKHByb3h5Q29uZmlndXJhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiAgICAgICAgICwgV1RGTW92ZSgqc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQotICAgICAgICAsIFdURk1vdmUoKmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKQogICAgICAgICAsIFdURk1vdmUoKnNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKQogICAgICAgICAsIFdURk1vdmUoKmh0dHBQcm94eSkKICAgICAgICAgLCBXVEZN
b3ZlKCpodHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY2YjFl
NDg4MDJhYjE1NmUyOWEzNDgxY2NmZDE2OWVlODQ0MGUyZTEuLjkwM2JiMGNhNGMxMzU4MzczNzcw
NzA4OTU5YTA1ZWQ4Y2JkM2RmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTYwLDcgKzYwLDYgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm94eUNvbmZpZ3VyYXRpb247CiAgICAg
U3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwotICAgIFN0cmluZyBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcjsKICAgICBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsg
ZmFsc2UgfTsKICAgICBVUkwgaHR0cFByb3h5OwogICAgIFVSTCBodHRwc1Byb3h5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EuaAppbmRleCAyNDlmMTBmMjEyODVlMDYzM2NhYTIxZDkxZWZjNDVjM2Y4MzMxZDRkLi43
ZGY0MDI3MmI1ODc5MzNkZDdkMjg0ODgyNmRhMTE2OWE1MDk4NWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
aApAQCAtMzgsNiArMzgsNyBAQCBPQkpDX0NMQVNTIF9OU0hTVFNTdG9yYWdlOwogI2luY2x1ZGUg
IkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlNv
Y2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAt
NzUsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgY29uc3QgU3RyaW5nJiBkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3Q7CiAjZW5k
aWYKQEAgLTEyOCw2ICsxMjgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZVdlYlNvY2tl
dFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgZmlu
YWw7CisgICAgc2l6ZV90IGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QgZmluYWw7
CisKICAgICBzdHJ1Y3QgSXNvbGF0ZWRTZXNzaW9uIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgpAQCAtMTM2LDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIFdhbGxUaW1lIGxhc3RVc2VkOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+IHsKKyAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Vz
c2lvblNldD4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxTZXNzaW9uU2V0PiBj
cmVhdGUoKQogICAgICAgICB7CkBAIC0xNTksOCArMTYzLDkgQEAgcHJpdmF0ZToKIAogICAgIFJl
ZjxTZXNzaW9uU2V0PiBtX2RlZmF1bHRTZXNzaW9uU2V0OwogICAgIEhhc2hNYXA8V2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgUmVmPFNlc3Npb25TZXQ+PiBtX3BlclBhZ2VTZXNzaW9uU2V0czsKKyAg
ICBIYXNoTWFwPFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycywgV2Vha1B0cjxTZXNzaW9uU2V0Pj4g
bV9wZXJQYXJhbWV0ZXJzU2Vzc2lvblNldHM7CiAKLSAgICB2b2lkIGluaXRpYWxpemVTdGFuZGFy
ZFNlc3Npb25zSW5TZXQoU2Vzc2lvblNldCYsIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKik7
CisgICAgdm9pZCBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmLCBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICopOwogICAgIFNlc3Npb25TZXQmIHNlc3Npb25TZXRGb3JQ
YWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAgIGNvbnN0IFNlc3Npb25TZXQmIHNlc3Np
b25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNvbnN0OwogICAgIHZvaWQgaW52
YWxpZGF0ZUFuZENhbmNlbFNlc3Npb25TZXQoU2Vzc2lvblNldCYpOwpAQCAtMTY4LDcgKzE3Myw2
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOwogICAg
IFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcg
bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
bV9wcm94eUNvbmZpZ3VyYXRpb247CiAgICAgUmV0YWluUHRyPERNRldlYnNpdGVQb2xpY3lNb25p
dG9yPiBtX2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yOwogICAgIGJvb2wgbV9kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
aW5kZXggODk0OTVmZjM4NTcxNGE5MjUwODM3Y2FmMDMzYTBiZjhjNzNiNTFlYi4uZGZhZjBkOWE3
ZjljNjc5YjA1NjRiYjE3ODY4ZDU4OTM1NjkxNmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAt
MzYsNiArMzYsNyBAQAogI2ltcG9ydCAiTmV0d29ya0xvYWQuaCIKICNpbXBvcnQgIk5ldHdvcmtQ
cm9jZXNzLmgiCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgor
I2ltcG9ydCAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJTb2NrZXRU
YXNrLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9DcmVkZW50aWFsLmg+CkBAIC0xMDk5LDExICsxMTAwLDYgQEAgY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
cjsKIH0KIAotY29uc3QgU3RyaW5nJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXI7Ci19Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3QKIHsK
QEAgLTExNzYsNyArMTE3Miw2IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgLCBtX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcihwYXJhbWV0ZXJzLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBhcmFtZXRlcnMu
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIocGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXIpCi0gICAgLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKHBhcmFt
ZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5Q29uZmlndXJh
dGlvbihwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbikKICAgICAsIG1fc2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24ocGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbikKICAg
ICAsIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCkKQEAgLTEyMjgsMTMgKzEyMjMsNiBAQCBOZXR3b3Jr
U2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgTmV0d29yawogICAgIGlmICghbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlk
ZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICBjb25maWd1cmF0aW9uLl9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllcjsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9BVFRSSUJVVEVEX0JV
TkRMRV9JREVOVElGSUVSKQotICAgIGlmICghbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5p
c0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKFtjb25maWd1cmF0aW9uIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKV0pCi0gICAgICAgICAgICBj
b25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXI7Ci0gICAgfQotI2VuZGlmCi0KICNpZiBIQVZFKENGTkVUV09SS19BTFRF
Uk5BVElWRV9TRVJWSUNFKQogICAgIGlmICghcGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VE
aXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CkBAIC0xMjg0LDcgKzEyNzIsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3
b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawog
ICAgICAgICBjb29raWVTdG9yYWdlLmdldCgpLl9vdmVycmlkZVNlc3Npb25Db29raWVBY2NlcHRQ
b2xpY3kgPSBZRVM7CiAjZW5kaWYKIAotICAgIGluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQobV9kZWZhdWx0U2Vzc2lvblNldC5nZXQoKSwgY29uZmlndXJhdGlvbik7CisgICAgaW5pdGlh
bGl6ZU5TVVJMU2Vzc2lvbnNJblNldChtX2RlZmF1bHRTZXNzaW9uU2V0LmdldCgpLCBjb25maWd1
cmF0aW9uKTsKIAogICAgIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBw
YXJhbWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIG1fYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHBh
cmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9y
VGVzdGluZzsKQEAgLTEzMDEsNyArMTI4OSw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAK
IE5ldHdvcmtTZXNzaW9uQ29jb2E6On5OZXR3b3JrU2Vzc2lvbkNvY29hKCkgPSBkZWZhdWx0Owog
Ci12b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQoU2Vzc2lvblNldCYgc2Vzc2lvblNldCwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29u
ZmlndXJhdGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6aW5pdGlhbGl6ZU5TVVJMU2Vz
c2lvbnNJblNldChTZXNzaW9uU2V0JiBzZXNzaW9uU2V0LCBOU1VSTFNlc3Npb25Db25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uKQogewogICAgIHNlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50
aWFsU3RvcmFnZS5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sICp0aGlzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8p
OwogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIkNyZWF0ZWQgTmV0d29ya1Nlc3Npb24gd2l0aCBj
b29raWVBY2NlcHRQb2xpY3kgJWx1IiwgY29uZmlndXJhdGlvbi5IVFRQQ29va2llU3RvcmFnZS5j
b29raWVBY2NlcHRQb2xpY3kpOwpAQCAtMTM0NywxMCArMTMzNSw2IEBAIFNlc3Npb25XcmFwcGVy
JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3Rh
dGVsZXNzU2VzCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb25maWd1cmF0aW9uLl9D
VERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24uX0NURGF0
YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJM
U0VTU0lPTl9BVFRSSUJVVEVEX0JVTkRMRV9JREVOVElGSUVSKQotICAgIGlmIChbY29uZmlndXJh
dGlvbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcildKQotICAgICAgICBjb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciA9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Ci0j
ZW5kaWYKIAogICAgIGVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb24uaW5pdGlhbGl6ZShjb25maWd1
cmF0aW9uLCBzZXNzaW9uLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1l
cmFsU3RhdGVsZXNzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKIApAQCAtMTY3Nyw2
ICsxNjYxLDM4IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFz
ayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94CiAKICNlbmRpZiAvLyBIQVZFKE5T
VVJMU0VTU0lPTl9XRUJTT0NLRVQpCiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2Vi
UGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIGF1dG8gYWRkUmVzdWx0
MSA9IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25TZXRzLmFkZChwYXJhbWV0ZXJzLCBudWxscHRyKTsK
KyAgICBpZiAoYXV0byBzZXQgPSBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSkgeworICAgICAg
ICBtX3BlclBhZ2VTZXNzaW9uU2V0cy5hZGQocGFnZUlELCAqc2V0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gYWRkUmVzdWx0MiA9IG1fcGVyUGFnZVNlc3Npb25TZXRzLmFk
ZChwYWdlSUQsIFNlc3Npb25TZXQ6OmNyZWF0ZSgpKTsKKyAgICBBU1NFUlQoYWRkUmVzdWx0Mi5p
c05ld0VudHJ5KTsKKyAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW21fZGVmYXVsdFNlc3Npb25TZXQtPnNlc3Npb25XaXRoQ3Jl
ZGVudGlhbFN0b3JhZ2Uuc2Vzc2lvbi5nZXQoKS5jb25maWd1cmF0aW9uIGNvcHldKTsKKyNpZiBI
QVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fQVRUUklCVVRFRF9CVU5ETEVfSURFTlRJRklFUikK
KyAgICBpZiAoW2NvbmZpZ3VyYXRpb24gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpXSkKKyAgICAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5f
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKCk7CisjZW5kaWYKKyAgICBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KGFk
ZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0aW9uLmdldCgpKTsKKyAg
ICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRyKGFkZFJlc3VsdDIuaXRl
cmF0b3ItPnZhbHVlLmdldCgpKTsKK30KKwordm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1v
dmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQp
Cit7CisgICAgbV9wZXJQYWdlU2Vzc2lvblNldHMucmVtb3ZlKHBhZ2VJRCk7Cit9CisKK3NpemVf
dCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0
Cit7CisgICAgSGFzaFNldDxSZWY8U2Vzc2lvblNldD4+IHVuaXF1ZVNldHM7CisgICAgZm9yIChh
dXRvJiBzZXQgOiBtX3BlclBhZ2VTZXNzaW9uU2V0cy52YWx1ZXMoKSkKKyAgICAgICAgdW5pcXVl
U2V0cy5hZGQoc2V0KTsKKyAgICByZXR1cm4gdW5pcXVlU2V0cy5zaXplKCk7Cit9CisKIFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IE5ldHdvcmtTZXNzaW9uQ29jb2E6Omhvc3RO
YW1lc1dpdGhBbHRlcm5hdGl2ZVNlcnZpY2VzKCkgY29uc3QKIHsKICNpZiBIQVZFKENGTkVUV09S
S19BTFRFUk5BVElWRV9TRVJWSUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZhMWQ3N2YzYzMyZjBmNzJkYThj
M2IzMTI2M2Q3MWNkNjViMWYxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlTmV0d29ya1BhcmFt
ZXRlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZU5ldHdvcmtQYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKK30KKworc3RkOjpvcHRpb25hbDxX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM+IFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBhdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllcjsKKyAgICBpZiAoIWF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAgIHJldHVybiB7eworICAgICAgICBXVEZN
b3ZlKCphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKKyAgICB9fTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MTFkODg1M2EzNDUxZjM2YmU0ODNlMmNmYzU2MzFmYmZhNjc2ODA3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMgeworcHVibGljOgorICAgIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhj
b25zdCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKQorICAgICAgICA6IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpIHsgfQor
CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7
CisKKyAgICBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoKSA9IGRlZmF1bHQ7CisgICAgV2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAg
ICAgOiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZh
bHVlKSB7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
OyB9CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIuaGFzaCgpOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIgPT0gb3RoZXIubV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsgfQorCisg
ICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KK3ByaXZhdGU6CisgICAgU3RyaW5n
IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgV2ViS2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmIGtleSkgeyByZXR1cm4g
a2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzJiBhLCBjb25zdCBXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Cit9OworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiA6IHB1Ymxp
YyBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8V2ViS2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM+
IHsgfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaAppbmRleCA5OTcxMzI0ZDllOGJiZWY5OWVkNzBlNzMyYWMw
YWM0Yjk3YWZjZWE1Li4zNmQ2OWVhYzFkODk0MTlmZmM1ZmM3MzNkMmYxOWI3NjNkYTIyZDM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggMDIyMjU0NTNjMzFhNWJhOTE4NThmZTcwNWM2NWU5NTRjMTRkNzA2Ni4uM2I4NmNmNWQ5YjU0
Y2FlNzM5MGJkMTNhNjUwN2IzNjcyOWViZDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMTcsNiArMjE3
LDcgQEAgU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCiBTaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAgQG5vLXVuaWZ5CiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKIFNoYXJl
ZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5j
cHAKIFNoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIEBuby11bmlmeQogU2hhcmVkL1dl
YlBvcHVwSXRlbS5jcHAKIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmNwcAppbmRleCA3ZWYwNGFlODkyZDU0NGEzOTc1OTAxYjJiMDk0MGMxMGUzN2UxMjg0Li5hMmYx
YWM1NTBjYmI2MTY0N2E3ODg4ZDc5ZTc0MDYzMTk4MGZhMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTc5LDYg
Kzc5LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlvbjo6Y29weSgp
IGNvbnN0CiAgICAgY29weS0+bV9hcHBsaWNhdGlvbk1hbmlmZXN0ID0gdGhpcy0+bV9hcHBsaWNh
dGlvbk1hbmlmZXN0OwogI2VuZGlmCiAgICAgY29weS0+bV9zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyA9IHRoaXMtPm1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmc7CisgICAgY29weS0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IHRoaXMtPm1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogdGhpcy0+bV91
cmxTY2hlbWVIYW5kbGVycykKICAgICAgICAgY29weS0+bV91cmxTY2hlbWVIYW5kbGVycy5zZXQo
cGFpci5rZXksIHBhaXIudmFsdWUuY29weVJlZigpKTsKICAgICBjb3B5LT5tX2NvcnNEaXNhYmxp
bmdQYXR0ZXJucyA9IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA4MTVm
N2ZkMDc0NDc4Yzc3ZGEzNDk3NjQ2NTI3YmE1YzI0ZmU0MDU5Li5kMzNiNzZmY2FlYzc1OGY5NjJk
MmUwMDVjYjI1YmZkYmZlMmQxM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTY2LDcgKzE2NiwxMCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKFdlYkNv
cmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHZhbHVlKSB7IG1fc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSB2YWx1ZTsgfQogICAgIFdlYkNvcmU6OlNo
b3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZzsgfQotICAgIAorCisgICAgdm9pZCBzZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcihXVEY6OlN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KKyAgICBjb25zdCBXVEY6OlN0cmluZyYgYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyOyB9CisKIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsKQEAgLTIxNyw2ICsyMjAsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9odHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogCiAgICAgV2ViQ29yZTo6U2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nOjpObyB9OworICAgIFdURjo6U3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggZGI3
Mzg2OWYzNTc1MzE4MTE5ZjRlNjA0OWEyMDFjM2FmNGYwOTdhOC4uZDBjN2U5YTFmNThiZTI0Yjhi
MGZhNDVjMjJiZmI1YWViM2JlYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEzMjIs
NiArMTMyMiwxOSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1
cm4gX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQ7CiB9CiAKKy0gKHZvaWQpX3NldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIKK3sKKyAgICBfcGFn
ZUNvbmZpZ3VyYXRpb24tPnNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKGlkZW50aWZpZXIp
OworfQorCistIChOU1N0cmluZyAqKV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcgoreworICAg
IGF1dG8mIGlkZW50aWZpZXIgPSBfcGFnZUNvbmZpZ3VyYXRpb24tPmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbmlsOwor
ICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCmluZGV4IDI0MjVlYzZmZmNhYzBiYzU2ZDY0YjhkMzc5NTI5NDMxZjU5YTAzNzgu
LjBhMmRjOGNiYTY1NTM2ZGEyOTRhOGQ0YmE3NGEyMGZjYTdmNTI5YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0xMzIsNiArMTMyLDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIC8vIEV4cGVjdHMgMCAodGhlIGNvbG9y
IGRvZXNuJ3QgbmVlZCB0byBjb250aW51ZSBpbnRvIHRoZSBwYWdlIGF0IGFsbCkgb3IgYW55IHBv
c2l0aXZlIG51bWJlci4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNhbXBsZWRQ
YWdlVG9wQ29sb3JNaW5IZWlnaHQ6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWln
aHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAorLy8gQXR0cmlidXRlcyBuZXR3b3JrIGFjdGl2aXR5IGZyb20gdGhpcyBXS1dlYlZpZXcgdG8g
dGhlIGFwcCB3aXRoIHRoaXMgYnVuZGxlLgorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2F0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyOworCiBAZW5kCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQppbmRleCA2MTQ3ZDQwMzQyMTlhYzMyYTljOGY4NmNiZmQ1ODdmY2FmOTE4ZDkzLi42NzJiMjA1
MzQ0MmU3ZTgzNGFhNDUzYzQwZDMyYzlkOTA3MDFlMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTc0
MSw0ICs3NDEsMTEgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB0
b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICByZXR1cm4gISFXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRlZmF1bHROZXR3b3JrUHJvY2VzcygpOwogfQogCist
ICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0czoodm9pZCheKShzaXplX3QpKWNvbXBs
ZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNvdW50Tm9uRGVmYXVsdFNl
c3Npb25TZXRzKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcildIChzaXplX3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQp
OworICAgIH0pOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCAyZThl
ZDExZDBhYWQ4ODZhNWU0ZmRkZDk5OGE0ZTJkN2IxMmQyZWVjLi42ZDk4MTY3ZDI1MTBhYmE4OGFh
NmM0ZDk3NWE3YjllNWVlNTViODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEw
MCw2ICsxMDAsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURh
dGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xh
dW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtIChCT09MKV9uZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogKyAoQk9PTClfZGVm
YXVsdE5ldHdvcmtQcm9jZXNzRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0
czoodm9pZCheKShzaXplX3QpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggOTg5YjcyM2QxNWFiMTJlOWZlYTcy
ODQ0ZWU0OWNjMzA1NjE3NWJlYy4uZjA4MzRiNjAwZjEyZjQ2YzcwNjBiNzBjMDRjZGRmOWMxNDhm
YmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM5LDcg
KzM5LDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogLy8g
VGhlc2UgcHJvcGVydGllcyBhcHBseSB0byBib3RoIHBlcnNpc3RlbnQgYW5kIG5vbi1wZXJzaXN0
ZW50IGRhdGEgc3RvcmVzLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBO
U1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRI
VFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tCmluZGV4IGQwOWRkMDc4MDk5Y2Q5M2VlN2VjZTg0Mzk2ZWVhMzI0OTVlNzUyMjUuLmE4NGU5
MjllMjZiNzU0NTJiY2NkZTdjMTgyM2VhMTljZDVjZThkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTI0MiwxNiArMjQyLDYgQEAgc3RhdGljIHZvaWQg
Y2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKLS0gKHZv
aWQpc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgot
ewotICAgIF9jb25maWd1cmF0aW9uLT5zZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcihpZGVu
dGlmaWVyKTsKLX0KLQotLSAoTlNTdHJpbmcgKilhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcgot
ewotICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIo
KTsKLX0KLQogLSAoTlNVUkwgKilhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5CiB7CiAgICAgcmV0
dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ5NjgwNjE0MjNiNzk1NWMzYzM3YWRkZTUyN2RjN2NlYzMy
OGU4OS4uYjlhZWFhN2U1YjdiYzBlMTY5NmM5MjFjM2ZiN2E4ODlkYWUyMTBkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUluc3BlY3RvckNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmgiCkBAIC02MDQsNiArNjA1LDggQEAgV2ViUGFnZVByb3h5Ojp+V2Vi
UGFnZVByb3h5KCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9uZXh0QWN0aXZpdHlTdGF0
ZUNoYW5nZUNhbGxiYWNrcykKICAgICAgICAgY2FsbGJhY2soKTsKIAorICAgIHdlYnNpdGVEYXRh
U3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpS
ZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoc2Vzc2lvbklEKCksIG1faWRlbnRpZmllciks
IDApOworCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAgICAgV0VCUEFH
RVBST1hZX0RFU1RSVUNUT1JfV0tDT09SRElOQVRPUl9BRERJVElPTlMKICNlbmRpZgpAQCAtMTEw
MCw2ICsxMTAzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZSgpCiAg
ICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpOwogI2VuZGlmCiAKKyAg
ICBpZiAoYXV0byYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBtX2NvbmZpZ3VyYXRpb24t
PmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7ICEhYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXIpIHsKKyAgICAgICAgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBhdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllciB9OworICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWRkV2ViUGFnZU5l
dHdvcmtQYXJhbWV0ZXJzKHNlc3Npb25JRCgpLCBtX2lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1l
dGVycykpLCAwKTsKKyAgICB9CisKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDcmVh
dGVXZWJQYWdlKG1fd2ViUGFnZUlELCBjcmVhdGlvblBhcmFtZXRlcnMobV9wcm9jZXNzLCAqbV9k
cmF3aW5nQXJlYSkpLCAwKTsKIAogICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExpbmtTdG9yZVVz
ZXIodmlzaXRlZExpbmtTdG9yZSgpLCBtX2lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCmluZGV4IDA0Yzg1ZWJkZDIzMzU0Yzc0NWI5NmZkNmQxMzRiYjg2Y2Qz
ZmFiNjQuLjNhYTczYWYwMjE2YTFjYWM1M2VkODQ4YTM1YjdjZTBiNmIxNjFhNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9D
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE1OSw3ICsxNTksNiBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMmCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmlndXJhdGlvbigp
OwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBjb25m
aWd1cmF0aW9uKCkuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IHNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uOwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLmh0dHBQcm94eSA9IFdURk1vdmUoaHR0cFByb3h5KTsKICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwc1Byb3h5ID0gV1RGTW92ZShodHRwc1Byb3h5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYmQ5NmFiMWVjZDQxYTlmNDk4NGYxYmY2YWRkOWY2ZDcx
OTBiZWVmNy4uZDQwOTBhOWJiNzdlY2U0NGY5M2ExODJjNzRjNzAwYWEwMTZhZTI2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTIxNzksNiArMjE3OSwxMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8
dgogICAgIG5ldHdvcmtQcm9jZXNzKCkuY2xlYXJCdW5kbGVJZGVudGlmaWVyKFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsgfSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y291bnROb25EZWZh
dWx0U2Vzc2lvblNldHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzaXplX3QpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q291bnROb25EZWZhdWx0U2Vzc2lvblNldHMobV9zZXNz
aW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHN0YXRpYyBib29sIG5l
eHROZXR3b3JrUHJvY2Vzc0xhdW5jaFNob3VsZEZhaWxGb3JUZXN0aW5nIHsgZmFsc2UgfTsKIAog
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjptYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZv
clRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDE3YWFkMDU3YTM0MTRmYjk4NDVlOTkyYTNhNzIw
NTEyYmI4YjYwODAuLjk5NTdlNTFhYzU4N2IzNjY2MGJkNmIyZTIwOTI1ODExMTM2ZTdhNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKQEAgLTM1MSw3ICszNTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lk
IHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZp
ZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgCisK
KyAgICB2b2lkIGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc2l6ZV90KT4mJik7CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBGb3JjZVJlaW5pdGlh
bGl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRleCBhNzc4ZmE4
M2ZhZjM0ODk0Y2NmMmY0MmMyYTIwOTg1MWNjY2E2MTJkLi5lNmU4MTE5MzQ3YTUzZmZmZmY4MzE5
YmY5YThiZWNlNzRmZTI3MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGNvcHkt
Pm1fY29va2llU3RvcmFnZUZpbGUgPSB0aGlzLT5tX2Nvb2tpZVN0b3JhZ2VGaWxlOwogICAgIGNv
cHktPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgPSB0aGlzLT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcjsKLSAgICBjb3B5LT5tX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gdGhp
cy0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBjb3B5LT5tX2h0dHBQcm94eSA9
IHRoaXMtPm1faHR0cFByb3h5OwogICAgIGNvcHktPm1faHR0cHNQcm94eSA9IHRoaXMtPm1faHR0
cHNQcm94eTsKICAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
ID0gdGhpcy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDAxZWJiMWQ3MDgzZGZmZWE1YjY0Mjgw
YTA3ODI4N2RmYmRiMmZkZWQuLjk4NzQxMDEwMGNjNDYwMzE5MGU0OTVjNDcxYjg3NjJjZmQzNTZj
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMTMyLDkgKzEz
Miw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXI7IH0KICAgICB2b2lkIHNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcihTdHJpbmcmJiBpZGVudGlmaWVyKSB7IG1fc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQotCi0gICAgY29uc3QgU3Ry
aW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KLSAgICB2b2lkIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KICAgICAKICAgICBjb25zdCBVUkwmIGh0dHBQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cFByb3h5OyB9CiAgICAgdm9pZCBzZXRIVFRQUHJveHko
VVJMJiYgcHJveHkpIHsgbV9odHRwUHJveHkgPSBXVEZNb3ZlKHByb3h5KTsgfQpAQCAtMTk3LDcg
KzE5NCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY29va2llU3RvcmFnZUZpbGU7CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBt
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBTdHJpbmcgbV9hdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9ib3VuZEludGVyZmFjZUlkZW50
aWZpZXI7CiAgICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICAgICBVUkwg
bV9odHRwUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNDgyMTkyMWU0NzRkMjc0YWQ3ZTA5MDBkNzRkNmIxNzYzYjg2ZjAzLi4y
ZTdmYzlmOWY2NjMyYzc0MDE5ODM1MDQxNzEzNDFjODFhMWQ3Mjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0NDAsNiArNDQ0MCw4
IEBACiAJCTVDMTQyNzFCMUMyM0Y4Q0MwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QzE5QTUxRTFGRDBCMTQ2MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzE5QTUxRjFG
RDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlTmV0d29ya1BhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4RTAyNjY3MTQwNzAwQjE1
NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTZXNzaW9uQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzI2OTU4NDIw
MDQyRjEyMDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODM0LDYgKzY4MzYsOCBAQAogCQkJCUMw
NkM2MDk0MTI0QzE0NDMwMDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8s
CiAJCQkJQkM3QjYyNTExMkE0M0M5NjAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cERhdGEuY3BwICov
LAogCQkJCUJDN0I2MjUwMTJBNDNDOTYwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBEYXRhLmggKi8s
CisJCQkJNUMxQjM4RTAyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cy5jcHAgKi8sCisJCQkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycy5oICovLAogCQkJCUMwMzM3RERDMTI3QTUyMUMwMDhGRjRGNCAvKiBXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQuY3BwICovLAogCQkJCUJDNTc0NEVEMTI2MzhGQjMwMDZGMEYxMiAvKiBX
ZWJQb3B1cEl0ZW0uY3BwICovLAogCQkJCUJDNTc0NEVFMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQ
b3B1cEl0ZW0uaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBjMjYzODUzNmZjNDY4YjYzMDhhZDkzYzJiNmVjZDUyNzM0YzFkZDM3Li5kYjEw
MmFhNGZhYTQxM2U0ZGRlZmQzMmI1ODI2YjZlYzQzNGNmNzA0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDYt
MDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBNYWtlIGF0dHJpYnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0
YXN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNp
dGVEYXRhc3RvcmUubW0KaW5kZXggMzZmZmRjMDAxYzdlZTY3ODJkOTUyNzRjMmRiMzc2ZmRhMDhj
MGQ4Yy4uMDNjM2E2MmU3ZTFhYjg5NmEyNmQ4YWZjOTAzNjA0NmYwMTNiYzZkYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3Rv
cmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNp
dGVEYXRhc3RvcmUubW0KQEAgLTI2Nyw3ICsyNjcsNiBAQCBURVNUKFdlYktpdCwgU2V0dGluZ05v
blBlcnNpc3RlbnREYXRhU3RvcmVQYXRoc1Rocm93c0V4Y2VwdGlvbikKICAgICBbY29uZmlndXJh
dGlvbiBzZXRIVFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBw
bGUuY29tLyJdXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2FmYXJpIl07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOkAiY29tLmFwcGxlLlNhZmFyaSJd
OwotICAgIFtjb25maWd1cmF0aW9uIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOkAiY29t
LmFwcGxlLlNhZmFyaSJdOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25Q
ZXJzaXN0ZW50V2ViU3RvcmFnZSkKQEAgLTMxMiw2ICszMTEsNDAgQEAgVEVTVChXS1dlYnNpdGVE
YXRhU3RvcmUsIEZldGNoTm9uUGVyc2lzdGVudFdlYlN0b3JhZ2UpCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogfQogCitURVNUKFdLV2Vic2l0ZURhdGFT
dG9yZSwgU2Vzc2lvblNldENvdW50KQoreworICAgIGF1dG8gY291bnRTZXNzaW9uU2V0cyA9IFtd
IHsKKyAgICAgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgX19ibG9jayBz
aXplX3QgcmVzdWx0ID0gMDsKKyAgICAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERh
dGFTdG9yZV0gX2NvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOl4oc2l6ZV90IGNvdW50KSB7Cisg
ICAgICAgICAgICByZXN1bHQgPSBjb3VudDsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAg
ICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAg
ICBhdXRvIHdlYlZpZXcwID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgICAgICBFWFBF
Q1RfRVEoY291bnRTZXNzaW9uU2V0cygpLCAwdSk7CisgICAgICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgICAgIEVYUEVD
VF9OVUxMKGNvbmZpZ3VyYXRpb24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTsK
KyAgICAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIg
PSBAInRlc3QuYnVuZGxlLmlkLjEiOworICAgICAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBFWFBFQ1RfRVEoY291bnRTZXNzaW9uU2V0
cygpLCAwdSk7CisgICAgICAgIFt3ZWJWaWV3MSBsb2FkSFRNTFN0cmluZzpAImhpIiBiYXNlVVJM
Om5pbF07CisgICAgICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAgICAg
ICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAg
ICAgW3dlYlZpZXcyIGxvYWRIVE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsKKyAgICAgICAg
RVhQRUNUX0VRKGNvdW50U2Vzc2lvblNldHMoKSwgMXUpOworICAgICAgICBjb25maWd1cmF0aW9u
LmdldCgpLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IEAidGVzdC5idW5kbGUuaWQuMiI7
CisgICAgICAgIGF1dG8gd2ViVmlldzMgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAgICAgICAgW3dl
YlZpZXczIGxvYWRIVE1MU3RyaW5nOkAiaGkiIGJhc2VVUkw6bmlsXTsKKyAgICAgICAgRVhQRUNU
X0VRKGNvdW50U2Vzc2lvblNldHMoKSwgMnUpOworICAgIH0KKyAgICB3aGlsZSAoY291bnRTZXNz
aW9uU2V0cygpKSB7IH0KK30KKwogVEVTVChXZWJLaXQsIENsZWFyQ3VzdG9tRGF0YVN0b3JlTm9X
ZWJWaWV3cykKIHsKICAgICBIVFRQU2VydmVyIHNlcnZlcihbY29ubmVjdGlvbkNvdW50ID0gMF0g
KENvbm5lY3Rpb24gY29ubmVjdGlvbikgbXV0YWJsZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430540</attachid>
            <date>2021-06-03 22:35:11 -0700</date>
            <delta_ts>2021-06-04 10:53:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226548-20210603223510.patch</filename>
            <type>text/plain</type>
            <size>48054</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlNjg2N2UwZWIzZmQ2ZGQ4
YmM4NWIxZGE0ZDQ5NmQ5NWI4M2QwZDUuLmU4MWRlZmExZTY1NDYwMWMxODdhNGM0NGE4ZjM5MDQy
YjU1ZDhhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjEtMDYtMDMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIGF0dHJp
YnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4CisgICAgICAgIDxy
ZGFyOi8vNzg3Mzc1NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgaGF2ZSBiZWVuIHB1dHRpbmcgcHJvcGVydGllcyB0byBnbyBpbnRvIHRoZSBO
U1VSTFNlc3Npb25Db25maWd1cmF0aW9uIG9uIHRoZSBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi4KKyAgICAgICAgVGhpcyBoYXMgYmVlbiBvayBzbyBmYXIsIGJ1dCBub3cgd2UgaGF2
ZSBhbiBhcHBsaWNhdGlvbiB0aGF0IG5lZWRzIHRvIHJ1biBuZXR3b3JraW5nIGF0dHJpYnV0ZWQg
dG8gZGlmZmVyZW50IGFwcGxpY2F0aW9ucworICAgICAgICBidXQgc2hhcmluZyB0aGUgZGF0YSBz
dG9yYWdlIGluIHRoZSBzYW1lIHByb2Nlc3MuICBXZSBub3cgZG8gd2hhdCB3ZSBzaG91bGQndmUg
ZG9uZSBsb25nIGFnbzogcHV0IHRoZXNlIG5vbi1zdG9yYWdlLXJlbGF0ZWQKKyAgICAgICAgcHJv
cGVydGllcyBvbiB0aGUgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi4KKworICAgICAgICBJIGludHJv
ZHVjZSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMgd2hpY2ggY3VycmVudGx5IGhhcyBvbmx5IG9u
ZSBtZW1iZXIsIGJ1dCB3aWxsIHNvb24gaGF2ZSBtb3JlLgorCisgICAgICAgIEkgbWFkZSBpdCBz
byB0aGF0IGlmIG11bHRpcGxlIFdLV2ViVmlld3Mgd2l0aCB0aGUgc2FtZSBkYXRhIHN0b3JlIGhh
dmUgdGhlIHNhbWUgYXR0cmlidXRlZEJ1bmRsZUlkZW5kaWZpZXIsIHRoZXkgc2hhcmUgYW4gTlNV
UkxTZXNzaW9uLgorICAgICAgICBPdGhlcndpc2UsIHRoZXkgZ2V0IHRoZWlyIG93biBOU1VSTFNl
c3Npb24gaW4gYSBkaWZmZXJlbnQgU2Vzc2lvblNldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMgY29uc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpp
bml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Np
b25JZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdl
YlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hOjppbml0aWFsaXplU3RhbmRhcmRTZXNzaW9uc0luU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVyczo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVyczo6YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAo
V1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycz46Omhhc2gp
OgorICAgICAgICAoV1RGOjpEZWZhdWx0SGFzaDxXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycz46OmVxdWFsKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OnNldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3NldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9jb3VudE5vbkRlZmF1bHRTZXNz
aW9uU2V0czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6XSk6
IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6fldlYlBh
Z2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0
b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3Jt
U2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb246OmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGIw
ZjBjNTAxMWJkNDM4NTUzNmM5MGY0N2M3MWZlNzUwMjBkYTE5YmUuLmFhMzQzZThkNzRjZDBhMWJj
Y2Y1NjgwNTM2NzA2MTE3ODk1NmNjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNzk1LDQgKzI3OTUsMzEgQEAgUlRDRGF0YUNo
YW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkmIE5ldHdvcmtQcm9jZXNzOjpydGNEYXRhQ2hhbm5lbFBy
b3h5KCkKIH0KICNlbmRpZgogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
Cit7CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBp
ZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPmFkZFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoY29uc3QgUEFM
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCit7
CisgICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAo
IXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIHNlc3Npb24tPnJlbW92ZVdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyhwYWdlSUQpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3Vu
dE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgYXV0byBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNl
c3Npb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigwKTsKKworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCBiOGE3YWQ0OWNhMTBlZDBmMzNlNjAxN2NkNGQzNmIwMmZl
YmQ5OTY2Li5lOWEyMWIwODMxYzczYjNlYTQ5OTRjNmI5ODgwYWQ1NDNlZGZmZjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDYsNiAr
MTA2LDcgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50OwogY2xhc3MgTmV0d29ya1By
b3hpbWl0eU1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBTdG9y
YWdlTWFuYWdlclNldDsKK2NsYXNzIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczsKIGNsYXNzIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjsKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjsKIGVudW0gY2xhc3MgQ2FsbERvd25sb2FkRGlkU3RhcnQgOiBib29sOwpAQCAtNDUyLDYgKzQ1
MywxMCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgZmx1c2hDb29raWVzKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgYWRk
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgcmVt
b3ZlV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgV2ViUGFn
ZVByb3h5SWRlbnRpZmllcik7CisgICAgdm9pZCBjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhj
b25zdCBQQUw6OlNlc3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc2l6ZV90KT4mJik7
CisKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Np
b25JRCwgYm9vbCk7CiAgICAgdm9pZCB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hhbmdlZChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOTA0NjNkMjViZDZhNDg5NGEy
ZTZlOWMxNWYxNWUyYzgyODg0ZjE5ZS4uYWUxNWZmMGUxMmNhNTQ1MTc4OTA3ZDk3MmEwOWNlNmQy
MzIxYTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xOTYsNCArMTk2LDggQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcEJvdW5kTmF2aWdhdGlvbkRh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwQm91bmRO
YXZpZ2F0aW9uVGVzdGluZ0RhdGEgZGF0YSkgQXN5bmMKICAgICBDbGVhckFwcEJvdW5kTmF2aWdh
dGlvbkRhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogI2VuZGlmCisK
KyAgICBBZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKQorICAgIFJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFy
YW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQpCisgICAgQ291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoc2l6ZV90IGNvdW50KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDdhZjNmMzZmMWU2MWM0
YzJiMjM1OGU3ZDZmOGY3ZTM3YjllNzMxYTguLjdmYTkyNzQ0ZjIxNTJkYzM2MzAxNWI4YWMyZDgy
NjUwNDM1ZGNiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRTY2hlZHVsZXI7CiBj
bGFzcyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNz
IE5ldHdvcmtTb2NrZXRDaGFubmVsOworY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwog
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU29ja2V0VGFz
azsKIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKQEAgLTE2OCw2ICsx
NjksMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5ldHdvcmtXZWJzaXRl
RGF0YShzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiwgc3RkOjpvcHRpb25hbDxIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KIAorICAgIHZpcnR1YWwg
dm9pZCBhZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgeyB9CisgICAg
dmlydHVhbCBzaXplX3QgY291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdCB7IHJldHVy
biAwOyB9CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYs
IGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggODI0YzA2NWZhMGY4MWE3NjMxZmFkNTI1NGY4NzZi
NmEwZTZmNGNkYi4uY2Y3ZmU5N2YyMjQ5OTMzZWFkZDkwNzkwODIxZjU3NzdkMmExNTIzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgdm9pZCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHByb3h5Q29uZmlndXJhdGlvbjsKICAgICBlbmNv
ZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8
IHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IGF0
dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgc2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb247CiAgICAgZW5jb2RlciA8PCBodHRwUHJveHk7CiAgICAgZW5jb2RlciA8PCBo
dHRwc1Byb3h5OwpAQCAtMTIwLDExICsxMTksNiBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwog
ICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAg
IGlmICghc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGF0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXI7Ci0gICAgaWYgKCFhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAKICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uOwogICAgIGRlY29kZXIgPj4gc2hvdWxkTG9nQ29va2llSW5mb3JtYXRp
b247CkBAIC0zMDEsNyArMjk1LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMKICAgICAgICAg
LCBXVEZNb3ZlKHByb3h5Q29uZmlndXJhdGlvbikKICAgICAgICAgLCBXVEZNb3ZlKCpzb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiAgICAgICAgICwgV1RGTW92ZSgqc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKQotICAgICAgICAsIFdURk1vdmUoKmF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKQogICAgICAgICAsIFdURk1vdmUoKnNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKQogICAgICAgICAsIFdURk1vdmUoKmh0dHBQcm94eSkKICAgICAgICAgLCBXVEZN
b3ZlKCpodHRwc1Byb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY2YjFl
NDg4MDJhYjE1NmUyOWEzNDgxY2NmZDE2OWVlODQ0MGUyZTEuLjkwM2JiMGNhNGMxMzU4MzczNzcw
NzA4OTU5YTA1ZWQ4Y2JkM2RmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTYwLDcgKzYwLDYgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm94eUNvbmZpZ3VyYXRpb247CiAgICAg
U3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwotICAgIFN0cmluZyBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcjsKICAgICBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uIHsg
ZmFsc2UgfTsKICAgICBVUkwgaHR0cFByb3h5OwogICAgIFVSTCBodHRwc1Byb3h5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EuaAppbmRleCAyNDlmMTBmMjEyODVlMDYzM2NhYTIxZDkxZWZjNDVjM2Y4MzMxZDRkLi43
ZGY0MDI3MmI1ODc5MzNkZDdkMjg0ODgyNmRhMTE2OWE1MDk4NWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
aApAQCAtMzgsNiArMzgsNyBAQCBPQkpDX0NMQVNTIF9OU0hTVFNTdG9yYWdlOwogI2luY2x1ZGUg
IkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlNv
Y2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgpAQCAt
NzUsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1
dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgY29uc3QgU3RyaW5nJiBkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3Q7CiAjZW5k
aWYKQEAgLTEyOCw2ICsxMjgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZVdlYlNvY2tl
dFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmJikgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgZmlu
YWw7CisgICAgc2l6ZV90IGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgY29uc3QgZmluYWw7
CisKICAgICBzdHJ1Y3QgSXNvbGF0ZWRTZXNzaW9uIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgpAQCAtMTM2LDcgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIFdhbGxUaW1lIGxhc3RVc2VkOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+IHsKKyAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Vz
c2lvblNldD4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxTZXNzaW9uU2V0PiBj
cmVhdGUoKQogICAgICAgICB7CkBAIC0xNTksOCArMTYzLDkgQEAgcHJpdmF0ZToKIAogICAgIFJl
ZjxTZXNzaW9uU2V0PiBtX2RlZmF1bHRTZXNzaW9uU2V0OwogICAgIEhhc2hNYXA8V2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgUmVmPFNlc3Npb25TZXQ+PiBtX3BlclBhZ2VTZXNzaW9uU2V0czsKKyAg
ICBIYXNoTWFwPFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycywgV2Vha1B0cjxTZXNzaW9uU2V0Pj4g
bV9wZXJQYXJhbWV0ZXJzU2Vzc2lvblNldHM7CiAKLSAgICB2b2lkIGluaXRpYWxpemVTdGFuZGFy
ZFNlc3Npb25zSW5TZXQoU2Vzc2lvblNldCYsIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKik7
CisgICAgdm9pZCBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmLCBOU1VS
TFNlc3Npb25Db25maWd1cmF0aW9uICopOwogICAgIFNlc3Npb25TZXQmIHNlc3Npb25TZXRGb3JQ
YWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAgIGNvbnN0IFNlc3Npb25TZXQmIHNlc3Np
b25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNvbnN0OwogICAgIHZvaWQgaW52
YWxpZGF0ZUFuZENhbmNlbFNlc3Npb25TZXQoU2Vzc2lvblNldCYpOwpAQCAtMTY4LDcgKzE3Myw2
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOwogICAg
IFN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcg
bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
bV9wcm94eUNvbmZpZ3VyYXRpb247CiAgICAgUmV0YWluUHRyPERNRldlYnNpdGVQb2xpY3lNb25p
dG9yPiBtX2RldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yOwogICAgIGJvb2wgbV9kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0K
aW5kZXggODk0OTVmZjM4NTcxNGE5MjUwODM3Y2FmMDMzYTBiZjhjNzNiNTFlYi4uZGZhZjBkOWE3
ZjljNjc5YjA1NjRiYjE3ODY4ZDU4OTM1NjkxNmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAt
MzYsNiArMzYsNyBAQAogI2ltcG9ydCAiTmV0d29ya0xvYWQuaCIKICNpbXBvcnQgIk5ldHdvcmtQ
cm9jZXNzLmgiCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgor
I2ltcG9ydCAiV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXZWJTb2NrZXRU
YXNrLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9DcmVkZW50aWFsLmg+CkBAIC0xMDk5LDExICsxMTAwLDYgQEAgY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmll
cjsKIH0KIAotY29uc3QgU3RyaW5nJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXI7Ci19Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogY29uc3QgU3RyaW5nJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCkgY29uc3QKIHsK
QEAgLTExNzYsNyArMTE3Miw2IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAgICAgLCBtX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcihwYXJhbWV0ZXJzLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cikKICAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBhcmFtZXRlcnMu
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogICAgICwgbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIocGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXIpCi0gICAgLCBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKHBhcmFt
ZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpCiAgICAgLCBtX3Byb3h5Q29uZmlndXJh
dGlvbihwYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbikKICAgICAsIG1fc2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24ocGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbikKICAg
ICAsIG1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQocGFyYW1ldGVycy5mYXN0U2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCkKQEAgLTEyMjgsMTMgKzEyMjMsNiBAQCBOZXR3b3Jr
U2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgTmV0d29yawogICAgIGlmICghbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlk
ZW50aWZpZXIuaXNFbXB0eSgpKQogICAgICAgICBjb25maWd1cmF0aW9uLl9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllcjsKIAotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9BVFRSSUJVVEVEX0JV
TkRMRV9JREVOVElGSUVSKQotICAgIGlmICghbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5p
c0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKFtjb25maWd1cmF0aW9uIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKV0pCi0gICAgICAgICAgICBj
b25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXI7Ci0gICAgfQotI2VuZGlmCi0KICNpZiBIQVZFKENGTkVUV09SS19BTFRF
Uk5BVElWRV9TRVJWSUNFKQogICAgIGlmICghcGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VE
aXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CkBAIC0xMjg0LDcgKzEyNzIsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3
b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawog
ICAgICAgICBjb29raWVTdG9yYWdlLmdldCgpLl9vdmVycmlkZVNlc3Npb25Db29raWVBY2NlcHRQ
b2xpY3kgPSBZRVM7CiAjZW5kaWYKIAotICAgIGluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQobV9kZWZhdWx0U2Vzc2lvblNldC5nZXQoKSwgY29uZmlndXJhdGlvbik7CisgICAgaW5pdGlh
bGl6ZU5TVVJMU2Vzc2lvbnNJblNldChtX2RlZmF1bHRTZXNzaW9uU2V0LmdldCgpLCBjb25maWd1
cmF0aW9uKTsKIAogICAgIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBw
YXJhbWV0ZXJzLmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIG1fYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHBh
cmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9y
VGVzdGluZzsKQEAgLTEzMDEsNyArMTI4OSw3IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrCiAK
IE5ldHdvcmtTZXNzaW9uQ29jb2E6On5OZXR3b3JrU2Vzc2lvbkNvY29hKCkgPSBkZWZhdWx0Owog
Ci12b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmluaXRpYWxpemVTdGFuZGFyZFNlc3Npb25zSW5T
ZXQoU2Vzc2lvblNldCYgc2Vzc2lvblNldCwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqY29u
ZmlndXJhdGlvbikKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6aW5pdGlhbGl6ZU5TVVJMU2Vz
c2lvbnNJblNldChTZXNzaW9uU2V0JiBzZXNzaW9uU2V0LCBOU1VSTFNlc3Npb25Db25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uKQogewogICAgIHNlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50
aWFsU3RvcmFnZS5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sICp0aGlzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8p
OwogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIkNyZWF0ZWQgTmV0d29ya1Nlc3Npb24gd2l0aCBj
b29raWVBY2NlcHRQb2xpY3kgJWx1IiwgY29uZmlndXJhdGlvbi5IVFRQQ29va2llU3RvcmFnZS5j
b29raWVBY2NlcHRQb2xpY3kpOwpAQCAtMTM0NywxMCArMTMzNSw2IEBAIFNlc3Npb25XcmFwcGVy
JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3Rh
dGVsZXNzU2VzCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb25maWd1cmF0aW9uLl9D
VERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24uX0NURGF0
YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgotI2lmIEhBVkUoQ0ZORVRXT1JLX05TVVJM
U0VTU0lPTl9BVFRSSUJVVEVEX0JVTkRMRV9JREVOVElGSUVSKQotICAgIGlmIChbY29uZmlndXJh
dGlvbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcildKQotICAgICAgICBjb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciA9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Ci0j
ZW5kaWYKIAogICAgIGVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb24uaW5pdGlhbGl6ZShjb25maWd1
cmF0aW9uLCBzZXNzaW9uLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1l
cmFsU3RhdGVsZXNzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKIApAQCAtMTY3Nyw2
ICsxNjYxLDM4IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFz
ayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94CiAKICNlbmRpZiAvLyBIQVZFKE5T
VVJMU0VTU0lPTl9XRUJTT0NLRVQpCiAKK3ZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2Vi
UGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQoreworICAgIGF1dG8gYWRkUmVzdWx0
MSA9IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25TZXRzLmFkZChwYXJhbWV0ZXJzLCBudWxscHRyKTsK
KyAgICBpZiAoYXV0byBzZXQgPSBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSkgeworICAgICAg
ICBtX3BlclBhZ2VTZXNzaW9uU2V0cy5hZGQocGFnZUlELCAqc2V0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gYWRkUmVzdWx0MiA9IG1fcGVyUGFnZVNlc3Npb25TZXRzLmFk
ZChwYWdlSUQsIFNlc3Npb25TZXQ6OmNyZWF0ZSgpKTsKKyAgICBBU1NFUlQoYWRkUmVzdWx0Mi5p
c05ld0VudHJ5KTsKKyAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW21fZGVmYXVsdFNlc3Npb25TZXQtPnNlc3Npb25XaXRoQ3Jl
ZGVudGlhbFN0b3JhZ2Uuc2Vzc2lvbi5nZXQoKS5jb25maWd1cmF0aW9uIGNvcHldKTsKKyNpZiBI
QVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fQVRUUklCVVRFRF9CVU5ETEVfSURFTlRJRklFUikK
KyAgICBpZiAoW2NvbmZpZ3VyYXRpb24gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpXSkKKyAgICAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5f
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKCk7CisjZW5kaWYKKyAgICBpbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KGFk
ZFJlc3VsdDIuaXRlcmF0b3ItPnZhbHVlLmdldCgpLCBjb25maWd1cmF0aW9uLmdldCgpKTsKKyAg
ICBhZGRSZXN1bHQxLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VXZWFrUHRyKGFkZFJlc3VsdDIuaXRl
cmF0b3ItPnZhbHVlLmdldCgpKTsKK30KKwordm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1v
dmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQp
Cit7CisgICAgbV9wZXJQYWdlU2Vzc2lvblNldHMucmVtb3ZlKHBhZ2VJRCk7Cit9CisKK3NpemVf
dCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygpIGNvbnN0
Cit7CisgICAgSGFzaFNldDxSZWY8U2Vzc2lvblNldD4+IHVuaXF1ZVNldHM7CisgICAgZm9yIChh
dXRvJiBzZXQgOiBtX3BlclBhZ2VTZXNzaW9uU2V0cy52YWx1ZXMoKSkKKyAgICAgICAgdW5pcXVl
U2V0cy5hZGQoc2V0KTsKKyAgICByZXR1cm4gdW5pcXVlU2V0cy5zaXplKCk7Cit9CisKIFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IE5ldHdvcmtTZXNzaW9uQ29jb2E6Omhvc3RO
YW1lc1dpdGhBbHRlcm5hdGl2ZVNlcnZpY2VzKCkgY29uc3QKIHsKICNpZiBIQVZFKENGTkVUV09S
S19BTFRFUk5BVElWRV9TRVJWSUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VOZXR3b3JrUGFyYW1ldGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZhMWQ3N2YzYzMyZjBmNzJkYThj
M2IzMTI2M2Q3MWNkNjViMWYxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlTmV0d29ya1BhcmFt
ZXRlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZU5ldHdvcmtQYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKK30KKworc3RkOjpvcHRpb25hbDxX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM+IFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBhdHRyaWJ1dGVkQnVuZGxl
SWRlbnRpZmllcjsKKyAgICBpZiAoIWF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAgIHJldHVybiB7eworICAgICAgICBXVEZN
b3ZlKCphdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcikKKyAgICB9fTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MTFkODg1M2EzNDUxZjM2YmU0ODNlMmNmYzU2MzFmYmZhNjc2ODA3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmgKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgRGVjb2RlcjsKK2Ns
YXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMgeworcHVibGljOgorICAgIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhj
b25zdCBTdHJpbmcmIGF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKQorICAgICAgICA6IG1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIpIHsgfQor
CisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7
CisKKyAgICBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoKSA9IGRlZmF1bHQ7CisgICAgV2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAg
ICAgOiBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZh
bHVlKSB7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllci5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
OyB9CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIuaGFzaCgpOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRs
ZUlkZW50aWZpZXIgPT0gb3RoZXIubV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsgfQorCisg
ICAgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KK3ByaXZhdGU6CisgICAgU3RyaW5n
IG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdl
YktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgV2ViS2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMmIGtleSkgeyByZXR1cm4g
a2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzJiBhLCBjb25zdCBXZWJLaXQ6OldlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Cit9OworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzPiA6IHB1Ymxp
YyBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8V2ViS2l0OjpXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM+
IHsgfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaAppbmRleCA5OTcxMzI0ZDllOGJiZWY5OWVkNzBlNzMyYWMw
YWM0Yjk3YWZjZWE1Li4zNmQ2OWVhYzFkODk0MTlmZmM1ZmM3MzNkMmYxOWI3NjNkYTIyZDM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggMDIyMjU0NTNjMzFhNWJhOTE4NThmZTcwNWM2NWU5NTRjMTRkNzA2Ni4uM2I4NmNmNWQ5YjU0
Y2FlNzM5MGJkMTNhNjUwN2IzNjcyOWViZDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMTcsNiArMjE3
LDcgQEAgU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCiBTaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAgQG5vLXVuaWZ5CiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKIFNoYXJl
ZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorU2hhcmVkL1dlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5j
cHAKIFNoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIEBuby11bmlmeQogU2hhcmVkL1dl
YlBvcHVwSXRlbS5jcHAKIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9u
LmNwcAppbmRleCA3ZWYwNGFlODkyZDU0NGEzOTc1OTAxYjJiMDk0MGMxMGUzN2UxMjg0Li5hMmYx
YWM1NTBjYmI2MTY0N2E3ODg4ZDc5ZTc0MDYzMTk4MGZhMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTc5LDYg
Kzc5LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlvbjo6Y29weSgp
IGNvbnN0CiAgICAgY29weS0+bV9hcHBsaWNhdGlvbk1hbmlmZXN0ID0gdGhpcy0+bV9hcHBsaWNh
dGlvbk1hbmlmZXN0OwogI2VuZGlmCiAgICAgY29weS0+bV9zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyA9IHRoaXMtPm1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmc7CisgICAgY29weS0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IHRoaXMtPm1fYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogdGhpcy0+bV91
cmxTY2hlbWVIYW5kbGVycykKICAgICAgICAgY29weS0+bV91cmxTY2hlbWVIYW5kbGVycy5zZXQo
cGFpci5rZXksIHBhaXIudmFsdWUuY29weVJlZigpKTsKICAgICBjb3B5LT5tX2NvcnNEaXNhYmxp
bmdQYXR0ZXJucyA9IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA4MTVm
N2ZkMDc0NDc4Yzc3ZGEzNDk3NjQ2NTI3YmE1YzI0ZmU0MDU5Li5kMzNiNzZmY2FlYzc1OGY5NjJk
MmUwMDVjYjI1YmZkYmZlMmQxM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTY2LDcgKzE2NiwxMCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKFdlYkNv
cmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHZhbHVlKSB7IG1fc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSB2YWx1ZTsgfQogICAgIFdlYkNvcmU6OlNo
b3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZzsgfQotICAgIAorCisgICAgdm9pZCBzZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllcihXVEY6OlN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRp
ZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KKyAgICBjb25zdCBXVEY6OlN0cmluZyYgYXR0
cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyOyB9CisKIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsKQEAgLTIxNyw2ICsyMjAsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9odHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogCiAgICAgV2ViQ29yZTo6U2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nOjpObyB9OworICAgIFdURjo6U3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggZGI3
Mzg2OWYzNTc1MzE4MTE5ZjRlNjA0OWEyMDFjM2FmNGYwOTdhOC4uZDBjN2U5YTFmNThiZTI0Yjhi
MGZhNDVjMjJiZmI1YWViM2JlYTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEzMjIs
NiArMTMyMiwxOSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1
cm4gX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQ7CiB9CiAKKy0gKHZvaWQpX3NldEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIKK3sKKyAgICBfcGFn
ZUNvbmZpZ3VyYXRpb24tPnNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKGlkZW50aWZpZXIp
OworfQorCistIChOU1N0cmluZyAqKV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcgoreworICAg
IGF1dG8mIGlkZW50aWZpZXIgPSBfcGFnZUNvbmZpZ3VyYXRpb24tPmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyKCk7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbmlsOwor
ICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCmluZGV4IDI0MjVlYzZmZmNhYzBiYzU2ZDY0YjhkMzc5NTI5NDMxZjU5YTAzNzgu
LjBhMmRjOGNiYTY1NTM2ZGEyOTRhOGQ0YmE3NGEyMGZjYTdmNTI5YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0xMzIsNiArMTMyLDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIC8vIEV4cGVjdHMgMCAodGhlIGNvbG9y
IGRvZXNuJ3QgbmVlZCB0byBjb250aW51ZSBpbnRvIHRoZSBwYWdlIGF0IGFsbCkgb3IgYW55IHBv
c2l0aXZlIG51bWJlci4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNhbXBsZWRQ
YWdlVG9wQ29sb3JNaW5IZWlnaHQ6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWln
aHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAorLy8gQXR0cmlidXRlcyBuZXR3b3JrIGFjdGl2aXR5IGZyb20gdGhpcyBXS1dlYlZpZXcgdG8g
dGhlIGFwcCB3aXRoIHRoaXMgYnVuZGxlLgorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2F0dHJpYnV0ZWRCdW5k
bGVJZGVudGlmaWVyOworCiBAZW5kCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQppbmRleCA2MTQ3ZDQwMzQyMTlhYzMyYTljOGY4NmNiZmQ1ODdmY2FmOTE4ZDkzLi42NzJiMjA1
MzQ0MmU3ZTgzNGFhNDUzYzQwZDMyYzlkOTA3MDFlMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTc0
MSw0ICs3NDEsMTEgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB0
b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICByZXR1cm4gISFXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRlZmF1bHROZXR3b3JrUHJvY2VzcygpOwogfQogCist
ICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0czoodm9pZCheKShzaXplX3QpKWNvbXBs
ZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNvdW50Tm9uRGVmYXVsdFNl
c3Npb25TZXRzKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcildIChzaXplX3QgY291bnQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY291bnQp
OworICAgIH0pOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCAyZThl
ZDExZDBhYWQ4ODZhNWU0ZmRkZDk5OGE0ZTJkN2IxMmQyZWVjLi42ZDk4MTY3ZDI1MTBhYmE4OGFh
NmM0ZDk3NWE3YjllNWVlNTViODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEw
MCw2ICsxMDAsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURh
dGFTdG9yZUZldGNoT3B0aW9ucykgewogKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xh
dW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtIChCT09MKV9uZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogKyAoQk9PTClfZGVm
YXVsdE5ldHdvcmtQcm9jZXNzRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0
czoodm9pZCheKShzaXplX3QpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggOTg5YjcyM2QxNWFiMTJlOWZlYTcy
ODQ0ZWU0OWNjMzA1NjE3NWJlYy4uZjA4MzRiNjAwZjEyZjQ2YzcwNjBiNzBjMDRjZGRmOWMxNDhm
YmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM5LDcg
KzM5LDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogLy8g
VGhlc2UgcHJvcGVydGllcyBhcHBseSB0byBib3RoIHBlcnNpc3RlbnQgYW5kIG5vbi1wZXJzaXN0
ZW50IGRhdGEgc3RvcmVzLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBO
U1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmF0dHJpYnV0ZWRCdW5kbGVJ
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRI
VFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNl
dHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Lm1tCmluZGV4IGQwOWRkMDc4MDk5Y2Q5M2VlN2VjZTg0Mzk2ZWVhMzI0OTVlNzUyMjUuLmE4NGU5
MjllMjZiNzU0NTJiY2NkZTdjMTgyM2VhMTljZDVjZThkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KQEAgLTI0MiwxNiArMjQyLDYgQEAgc3RhdGljIHZvaWQg
Y2hlY2tVUkxBcmd1bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKLS0gKHZv
aWQpc2V0QXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgot
ewotICAgIF9jb25maWd1cmF0aW9uLT5zZXRBdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcihpZGVu
dGlmaWVyKTsKLX0KLQotLSAoTlNTdHJpbmcgKilhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcgot
ewotICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIo
KTsKLX0KLQogLSAoTlNVUkwgKilhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5CiB7CiAgICAgcmV0
dXJuIFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6X2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ5NjgwNjE0MjNiNzk1NWMzYzM3YWRkZTUyN2RjN2NlYzMy
OGU4OS4uYjlhZWFhN2U1YjdiYzBlMTY5NmM5MjFjM2ZiN2E4ODlkYWUyMTBkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUluc3BlY3RvckNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlTmV0d29ya1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmgiCkBAIC02MDQsNiArNjA1LDggQEAgV2ViUGFnZVByb3h5Ojp+V2Vi
UGFnZVByb3h5KCkKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9uZXh0QWN0aXZpdHlTdGF0
ZUNoYW5nZUNhbGxiYWNrcykKICAgICAgICAgY2FsbGJhY2soKTsKIAorICAgIHdlYnNpdGVEYXRh
U3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpS
ZW1vdmVXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMoc2Vzc2lvbklEKCksIG1faWRlbnRpZmllciks
IDApOworCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAgICAgV0VCUEFH
RVBST1hZX0RFU1RSVUNUT1JfV0tDT09SRElOQVRPUl9BRERJVElPTlMKICNlbmRpZgpAQCAtMTEw
MCw2ICsxMTAzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZSgpCiAg
ICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpOwogI2VuZGlmCiAKKyAg
ICBpZiAoYXV0byYgYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBtX2NvbmZpZ3VyYXRpb24t
PmF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKCk7ICEhYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZp
ZXIpIHsKKyAgICAgICAgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBhdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllciB9OworICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWRkV2ViUGFnZU5l
dHdvcmtQYXJhbWV0ZXJzKHNlc3Npb25JRCgpLCBtX2lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1l
dGVycykpLCAwKTsKKyAgICB9CisKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDcmVh
dGVXZWJQYWdlKG1fd2ViUGFnZUlELCBjcmVhdGlvblBhcmFtZXRlcnMobV9wcm9jZXNzLCAqbV9k
cmF3aW5nQXJlYSkpLCAwKTsKIAogICAgIG1fcHJvY2Vzcy0+YWRkVmlzaXRlZExpbmtTdG9yZVVz
ZXIodmlzaXRlZExpbmtTdG9yZSgpLCBtX2lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCmluZGV4IDA0Yzg1ZWJkZDIzMzU0Yzc0NWI5NmZkNmQxMzRiYjg2Y2Qz
ZmFiNjQuLjNhYTczYWYwMjE2YTFjYWM1M2VkODQ4YTM1YjdjZTBiNmIxNjFhNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9D
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE1OSw3ICsxNTksNiBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMmCiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmlndXJhdGlvbigp
OwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBjb25m
aWd1cmF0aW9uKCkuYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IHNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uOwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLmh0dHBQcm94eSA9IFdURk1vdmUoaHR0cFByb3h5KTsKICAgICBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwc1Byb3h5ID0gV1RGTW92ZShodHRwc1Byb3h5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYmQ5NmFiMWVjZDQxYTlmNDk4NGYxYmY2YWRkOWY2ZDcx
OTBiZWVmNy4uZDQwOTBhOWJiNzdlY2U0NGY5M2ExODJjNzRjNzAwYWEwMTZhZTI2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTIxNzksNiArMjE3OSwxMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8
dgogICAgIG5ldHdvcmtQcm9jZXNzKCkuY2xlYXJCdW5kbGVJZGVudGlmaWVyKFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsgfSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y291bnROb25EZWZh
dWx0U2Vzc2lvblNldHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzaXplX3QpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q291bnROb25EZWZhdWx0U2Vzc2lvblNldHMobV9zZXNz
aW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHN0YXRpYyBib29sIG5l
eHROZXR3b3JrUHJvY2Vzc0xhdW5jaFNob3VsZEZhaWxGb3JUZXN0aW5nIHsgZmFsc2UgfTsKIAog
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjptYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZv
clRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDE3YWFkMDU3YTM0MTRmYjk4NDVlOTkyYTNhNzIw
NTEyYmI4YjYwODAuLjk5NTdlNTFhYzU4N2IzNjY2MGJkNmIyZTIwOTI1ODExMTM2ZTdhNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKQEAgLTM1MSw3ICszNTEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lk
IHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZp
ZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgCisK
KyAgICB2b2lkIGNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc2l6ZV90KT4mJik7CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBGb3JjZVJlaW5pdGlh
bGl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRleCBhNzc4ZmE4
M2ZhZjM0ODk0Y2NmMmY0MmMyYTIwOTg1MWNjY2E2MTJkLi5lNmU4MTE5MzQ3YTUzZmZmZmY4MzE5
YmY5YThiZWNlNzRmZTI3MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogICAgIGNvcHkt
Pm1fY29va2llU3RvcmFnZUZpbGUgPSB0aGlzLT5tX2Nvb2tpZVN0b3JhZ2VGaWxlOwogICAgIGNv
cHktPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgPSB0aGlzLT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcjsKLSAgICBjb3B5LT5tX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gdGhp
cy0+bV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBjb3B5LT5tX2h0dHBQcm94eSA9
IHRoaXMtPm1faHR0cFByb3h5OwogICAgIGNvcHktPm1faHR0cHNQcm94eSA9IHRoaXMtPm1faHR0
cHNQcm94eTsKICAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVk
ID0gdGhpcy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDAxZWJiMWQ3MDgzZGZmZWE1YjY0Mjgw
YTA3ODI4N2RmYmRiMmZkZWQuLjk4NzQxMDEwMGNjNDYwMzE5MGU0OTVjNDcxYjg3NjJjZmQzNTZj
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMTMyLDkgKzEz
Miw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXI7IH0KICAgICB2b2lkIHNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcihTdHJpbmcmJiBpZGVudGlmaWVyKSB7IG1fc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQotCi0gICAgY29uc3QgU3Ry
aW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmli
dXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KLSAgICB2b2lkIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVu
dGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KICAgICAKICAgICBjb25zdCBVUkwmIGh0dHBQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1faHR0cFByb3h5OyB9CiAgICAgdm9pZCBzZXRIVFRQUHJveHko
VVJMJiYgcHJveHkpIHsgbV9odHRwUHJveHkgPSBXVEZNb3ZlKHByb3h5KTsgfQpAQCAtMTk3LDcg
KzE5NCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY29va2llU3RvcmFnZUZpbGU7CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyBt
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsKLSAgICBTdHJpbmcgbV9hdHRy
aWJ1dGVkQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9ib3VuZEludGVyZmFjZUlkZW50
aWZpZXI7CiAgICAgU3RyaW5nIG1fZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICAgICBVUkwg
bV9odHRwUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNDgyMTkyMWU0NzRkMjc0YWQ3ZTA5MDBkNzRkNmIxNzYzYjg2ZjAzLi4y
ZTdmYzlmOWY2NjMyYzc0MDE5ODM1MDQxNzEzNDFjODFhMWQ3Mjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0NDAsNiArNDQ0MCw4
IEBACiAJCTVDMTQyNzFCMUMyM0Y4Q0MwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QzE5QTUxRTFGRDBCMTQ2MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzE5QTUxRjFG
RDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VO
ZXR3b3JrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlTmV0d29ya1BhcmFtZXRl
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxQjM4RTAyNjY3MTQwNzAwQjE1
NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTZXNzaW9uQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzI2OTU4NDIw
MDQyRjEyMDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODM0LDYgKzY4MzYsOCBAQAogCQkJCUMw
NkM2MDk0MTI0QzE0NDMwMDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8s
CiAJCQkJQkM3QjYyNTExMkE0M0M5NjAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cERhdGEuY3BwICov
LAogCQkJCUJDN0I2MjUwMTJBNDNDOTYwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBEYXRhLmggKi8s
CisJCQkJNUMxQjM4RTAyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVy
cy5jcHAgKi8sCisJCQkJNUMxQjM4REYyNjY3MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3Jr
UGFyYW1ldGVycy5oICovLAogCQkJCUMwMzM3RERDMTI3QTUyMUMwMDhGRjRGNCAvKiBXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQuY3BwICovLAogCQkJCUJDNTc0NEVEMTI2MzhGQjMwMDZGMEYxMiAvKiBX
ZWJQb3B1cEl0ZW0uY3BwICovLAogCQkJCUJDNTc0NEVFMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQ
b3B1cEl0ZW0uaCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBjMjYzODUzNmZjNDY4YjYzMDhhZDkzYzJiNmVjZDUyNzM0YzFkZDM3Li4zYjM4
M2Y0ODI4ODQ2YTY3ZjUyNGRjOWVhZTRmNjk4ZTUyNWRmMzJkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDYt
MDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBNYWtlIGF0dHJpYnV0ZWRCdW5kbGVJZGVuZGlmaWVyIGEgcHJvcGVydHkgZm9yIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA2LTAyICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBDaGVja2VkOjpzYWZlR2V0KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0
YXN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNp
dGVEYXRhc3RvcmUubW0KaW5kZXggMzZmZmRjMDAxYzdlZTY3ODJkOTUyNzRjMmRiMzc2ZmRhMDhj
MGQ4Yy4uZDBiMmUyMGFjZjAzMWZmOTQ1YWI0Y2ZmNzJmZWM4YzhmNTVlZjkyNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNpdGVEYXRhc3Rv
cmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYnNp
dGVEYXRhc3RvcmUubW0KQEAgLTI2Nyw3ICsyNjcsNiBAQCBURVNUKFdlYktpdCwgU2V0dGluZ05v
blBlcnNpc3RlbnREYXRhU3RvcmVQYXRoc1Rocm93c0V4Y2VwdGlvbikKICAgICBbY29uZmlndXJh
dGlvbiBzZXRIVFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBw
bGUuY29tLyJdXTsKICAgICBbY29uZmlndXJhdGlvbiBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI6QCJjb20uYXBwbGUuU2FmYXJpIl07CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0
U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOkAiY29tLmFwcGxlLlNhZmFyaSJd
OwotICAgIFtjb25maWd1cmF0aW9uIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOkAiY29t
LmFwcGxlLlNhZmFyaSJdOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25Q
ZXJzaXN0ZW50V2ViU3RvcmFnZSkKQEAgLTMxMiw2ICszMTEsMzggQEAgVEVTVChXS1dlYnNpdGVE
YXRhU3RvcmUsIEZldGNoTm9uUGVyc2lzdGVudFdlYlN0b3JhZ2UpCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogfQogCitURVNUKFdLV2Vic2l0ZURhdGFT
dG9yZSwgU2Vzc2lvblNldENvdW50KQoreworICAgIGF1dG8gY291bnRTZXNzaW9uU2V0cyA9IFtd
IHsKKyAgICAgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgX19ibG9jayBz
aXplX3QgcmVzdWx0ID0gMDsKKyAgICAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERh
dGFTdG9yZV0gX2NvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOl4oc2l6ZV90IGNvdW50KSB7Cisg
ICAgICAgICAgICByZXN1bHQgPSBjb3VudDsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAg
ICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAg
ICBhdXRvIHdlYlZpZXcwID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgICAgICBFWFBF
Q1RfRVEoY291bnRTZXNzaW9uU2V0cygpLCAwdSk7CisgICAgICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgICAgIEVYUEVD
VF9OVUxMKGNvbmZpZ3VyYXRpb24uZ2V0KCkuX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKTsK
KyAgICAgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIg
PSBAInRlc3QuYnVuZGxlLmlkLjEiOworICAgICAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgICAgICBbd2ViVmlldzEgbG9hZEhUTUxTdHJpbmc6
QCJoaSIgYmFzZVVSTDpuaWxdOworICAgICAgICBFWFBFQ1RfRVEoY291bnRTZXNzaW9uU2V0cygp
LCAxdSk7CisgICAgICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgICAgIFt3ZWJWaWV3MiBsb2FkSFRNTFN0cmluZzpAImhpIiBiYXNlVVJMOm5p
bF07CisgICAgICAgIEVYUEVDVF9FUShjb3VudFNlc3Npb25TZXRzKCksIDF1KTsKKyAgICAgICAg
Y29uZmlndXJhdGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBAInRlc3Qu
YnVuZGxlLmlkLjIiOworICAgICAgICBhdXRvIHdlYlZpZXczID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgICAgICBbd2ViVmlldzMgbG9hZEhUTUxTdHJpbmc6QCJoaSIgYmFz
ZVVSTDpuaWxdOworICAgICAgICBFWFBFQ1RfRVEoY291bnRTZXNzaW9uU2V0cygpLCAydSk7Cisg
ICAgfQorICAgIHdoaWxlIChjb3VudFNlc3Npb25TZXRzKCkpIHsgfQorfQorCiBURVNUKFdlYktp
dCwgQ2xlYXJDdXN0b21EYXRhU3RvcmVOb1dlYlZpZXdzKQogewogICAgIEhUVFBTZXJ2ZXIgc2Vy
dmVyKFtjb25uZWN0aW9uQ291bnQgPSAwXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSBtdXRhYmxl
IHsK
</data>
<flag name="review"
          id="452019"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>