<?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>171451</bug_id>
          
          <creation_ts>2017-04-28 14:50:41 -0700</creation_ts>
          <short_desc>Teach the DatabaseProcess to be fully SessionID aware</short_desc>
          <delta_ts>2017-04-28 17:34:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302808</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-28 14:50:41 -0700</bug_when>
    <thetext>Teach the DatabaseProcess to be fully SessionID aware

It knew a little about sessions...  but now it should know all!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302809</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-28 14:53:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/30785618&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302832</commentid>
    <comment_count>2</comment_count>
      <attachid>308604</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-28 15:37:13 -0700</bug_when>
    <thetext>Created attachment 308604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302848</commentid>
    <comment_count>3</comment_count>
      <attachid>308604</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-28 16:03:23 -0700</bug_when>
    <thetext>Comment on attachment 308604
Patch

Do we have a way to test this in API tests or WebKitTestRunner?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302878</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-28 17:05:08 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 308604 [details]
&gt; Patch
&gt; 
&gt; Do we have a way to test this in API tests or WebKitTestRunner?

It *is* tested in TWKAPI, including a change in this patch! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302898</commentid>
    <comment_count>5</comment_count>
      <attachid>308604</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 17:34:42 -0700</bug_when>
    <thetext>Comment on attachment 308604
Patch

Clearing flags on attachment: 308604

Committed r215961: &lt;http://trac.webkit.org/changeset/215961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302899</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 17:34:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308604</attachid>
            <date>2017-04-28 15:37:13 -0700</date>
            <delta_ts>2017-04-28 17:34:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171451-20170428153712.patch</filename>
            <type>text/plain</type>
            <size>48681</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjEyYzk5OWJiM2E3MjBj
ZmZhODA2ZmQ2YjFmYTgxZTI0YTM5ZTVmMy4uMzZkNWE3NWVhODhhNGQ3NDM4YzlhYmEzN2UyZDY1
MTk0OGUwNTBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE3LTA0LTI4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCB0aGUgRGF0YWJh
c2VQcm9jZXNzIHRvIGJlIGZ1bGx5IFNlc3Npb25JRCBhd2FyZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBTZXNzaW9uSURzIHdlcmUgYWxy
ZWFkeSBhdCB0aGUgcGVyaXBoZXJ5IG9mIElEQiBhbmQgdGhlIERhdGFiYXNlUHJvY2Vzcy4KKyAg
ICAgICAgR2V0dGluZyBhIHNlcGFyYXRlIElEQlNlcnZlciBwZXIgU2Vzc2lvbklEIGlzIGEgcHJl
dHR5IHN0cmFpZ2h0Zm9yd2FyZCBpbXByb3ZlbWVudC4KKworICAgICAgICAqIERhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nl
c3M6OmlkYlNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6
OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OmRl
bGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nl
c3M6OmluZGV4ZWREYXRhYmFzZU9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3M6OmluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpEYXRhYmFzZVByb2Nlc3M6OmVuc3VyZUluZGV4ZWREYXRhYmFzZVJlbGF0aXZlUGF0aEV4
aXN0cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6YWJzb2x1
dGVJbmRleGVkRGF0YWJhc2VQYXRoRnJvbURhdGFiYXNlUmVsYXRpdmVQYXRoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmg6CisgICAgICAgIChX
ZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6aW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKToKKyAgICAgICAgKiBEYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaW5pc2hIYW5kbGlu
Z1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y2xlYXJPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlSW5kZXgpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZUluZGV4KToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZW5hbWVJbmRleCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cHV0T3JBZGQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldFJlY29yZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0QWxsUmVjb3Jkcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0Q291bnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRlbGV0ZVJlY29yZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkN1cnNvcik6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6aXRlcmF0ZUN1cnNv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZXN0YWJsaXNo
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydE9wZW5BbmRVcGdyYWRlTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50Ojpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRBbGxEYXRhYmFzZU5hbWVzKToK
KyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oOgorCisgICAgICAgICogU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRGF0YWJhc2Vz
L0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OmVuc3VyZURhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwYWdlQWRkZWRUb1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNv
bHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OmRhdGFiYXNlUHJvY2Vzc1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OnJlc29sdmVkSW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KToKKworICAgICAgICAq
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFi
YXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZv
clNlc3Npb24pOgorCiAyMDE3LTA0LTI4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyIG5lZWRzIHRvIGtu
b3cgd2hlbiB0aGUgc2VsZWN0ZWQgdGV4dCBvciBhdWRpbyB0cmFjayBjaGFuZ2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4
IDdlNmUyNGQ4NTRlMjNhNDk0ZDUxY2U0MzdlYWQ5MzI1NjI3M2M0MzIuLjUxZTgwMTJiYmI3ODdm
MDUzZGVlNzc1Yzc2MGQ5NTczNzZhZjFkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC05MSwzNiArOTEsNDIgQEAgdm9p
ZCBEYXRhYmFzZVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGUKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQot
SURCU2VydmVyOjpJREJTZXJ2ZXImIERhdGFiYXNlUHJvY2Vzczo6aWRiU2VydmVyKCkKK0lEQlNl
cnZlcjo6SURCU2VydmVyJiBEYXRhYmFzZVByb2Nlc3M6OmlkYlNlcnZlcihTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewotICAgIGlmICghbV9pZGJTZXJ2ZXIpCi0gICAgICAgIG1faWRiU2VydmVyID0g
SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNyZWF0ZShpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKSwg
RGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX2lk
YlNlcnZlcnMuYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CisgICAgaWYgKCFhZGRSZXN1bHQuaXNO
ZXdFbnRyeSkgeworICAgICAgICBBU1NFUlQoYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7Cisg
ICAgICAgIHJldHVybiAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICB9CisKKyAgICBh
dXRvIHBhdGggPSBtX2lkYkRhdGFiYXNlUGF0aHMuZ2V0KHNlc3Npb25JRCk7CisgICAgLy8gVGhl
cmUgc2hvdWxkIGFscmVhZHkgYmUgYSByZWdpc3RlcmVkIHBhdGggZm9yIHRoaXMgU2Vzc2lvbklE
LgorICAgIC8vIElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFNlc3Npb25JRCBj
b21lIGZyb20/CisgICAgQVNTRVJUKCFwYXRoLmlzRW1wdHkoKSk7CiAKLSAgICByZXR1cm4gKm1f
aWRiU2VydmVyOworICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6Y3JlYXRlKHBhdGgsIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkpOworICAg
IHJldHVybiAqYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKIH0KICNlbmRpZgogCi12b2lkIERh
dGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZURhdGFiYXNlUHJvY2Vzcyhjb25zdCBEYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit2b2lkIERhdGFiYXNlUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29uc3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIC8vICoqKioqKioqKgogICAgIC8vIElNUE9SVEFOVDogRG8gbm90IGNoYW5nZSB0aGUg
ZGlyZWN0b3J5IHN0cnVjdHVyZSBmb3IgaW5kZXhlZCBkYXRhYmFzZXMgb24gZGlzayB3aXRob3V0
IGZpcnN0IGNvbnN1bHRpbmcgYSByZXZpZXdlciBmcm9tIEFwcGxlICg8cmRhcjovL3Byb2JsZW0v
MTc0NTQ3MTI+KQogICAgIC8vICoqKioqKioqKgogCi0gICAgbV9pbmRleGVkRGF0YWJhc2VEaXJl
Y3RvcnkgPSBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKKyAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1faWRiRGF0YWJhc2VQYXRocy5hZGQocGFyYW1ldGVycy5zZXNzaW9uSUQsIFN0
cmluZygpKTsKKyAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICByZXR1cm47
CisKKyAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gcGFyYW1ldGVycy5pbmRleGVkRGF0
YWJhc2VEaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAot
ICAgIGVuc3VyZUluZGV4ZWREYXRhYmFzZVJlbGF0aXZlUGF0aEV4aXN0cyhTdHJpbmdJbXBsOjpl
bXB0eSgpKTsKKyAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhp
cywgJkRhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlUGF0aEV4aXN0cywgcGFyYW1ldGVycy5pbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnkpKTsKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCi12b2lkIERhdGFiYXNlUHJvY2Vzczo6ZW5zdXJlSW5kZXhlZERhdGFiYXNlUmVsYXRp
dmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVQYXRoKQotewotICAgIHBvc3REYXRh
YmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmRGF0YWJhc2VQcm9jZXNzOjpl
bnN1cmVQYXRoRXhpc3RzLCBhYnNvbHV0ZUluZGV4ZWREYXRhYmFzZVBhdGhGcm9tRGF0YWJhc2VS
ZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoKSkpOwotfQotI2VuZGlmCi0KIHZvaWQgRGF0YWJhc2VQ
cm9jZXNzOjplbnN1cmVQYXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTEyOSwxNSArMTM1LDYgQEAgdm9pZCBEYXRhYmFz
ZVByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBtYWtlIGFsbCBkaXJlY3RvcmllcyBmb3IgcGF0aCAnJXMnIiwg
cGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQot
U3RyaW5nIERhdGFiYXNlUHJvY2Vzczo6YWJzb2x1dGVJbmRleGVkRGF0YWJhc2VQYXRoRnJvbURh
dGFiYXNlUmVsYXRpdmVQYXRoKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVQYXRoKQotewotICAgIC8v
IEZJWE1FOiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSB3YXMgb3JpZ2luYWxseSBkZXNpZ25l
ZCB0byBhcHBlbmQgaW5kaXZpZHVhbCBhdG9taWMgY29tcG9uZW50cy4KLSAgICAvLyBXZSBkb24n
dCBoYXZlIGEgZnVuY3Rpb24gZGVzaWduZWQgdG8gYXBwZW5kIGEgbXVsdGktY29tcG9uZW50IHN1
YnBhdGgsIGJ1dCB3ZSBzaG91bGQuCi0gICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChtX2luZGV4ZWREYXRhYmFzZURpcmVjdG9yeSwgcmVsYXRpdmVQYXRoKTsKLX0KLSNlbmRpZgot
CiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRhc2sm
JiB0YXNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xODcsMTcgKzE4
NCwyMyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6Y3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKCkKICNlbmRpZgogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJz
aXRlRGF0YShTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRh
VHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hX
ZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgY2Fs
bGJhY2tJRF0oY29uc3QgV2Vic2l0ZURhdGEmIHdlYnNpdGVEYXRhKSB7CiAgICAgICAgIHBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5
OjpEaWRGZXRjaFdlYnNpdGVEYXRhKGNhbGxiYWNrSUQsIHdlYnNpdGVEYXRhKSwgMCk7CiAgICAg
fTsKIAorICAgIFN0cmluZyBwYXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQp
OworICAgIGlmIChwYXRoLmlzRW1wdHkoKSB8fCAhd2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICh3ZWJzaXRl
RGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJhc2VzKSkg
ewogICAgICAgICAvLyBGSVhNRTogUGljayB0aGUgcmlnaHQgZGF0YWJhc2Ugc3RvcmUgYmFzZWQg
b24gdGhlIHNlc3Npb24gSUQuCi0gICAgICAgIHBvc3REYXRhYmFzZVRhc2soQ3Jvc3NUaHJlYWRU
YXNrKFt0aGlzLCB3ZWJzaXRlRGF0YVR5cGVzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZWN1cml0eU9yaWdpbnMgPSBpbmRleGVkRGF0YWJhc2VPcmlnaW5zKCldIHsKKyAgICAg
ICAgcG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRhc2soW3RoaXMsIHdlYnNpdGVEYXRhVHlw
ZXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHBhdGgg
PSBXVEZNb3ZlKHBhdGgpXSgpIG11dGFibGUgeworICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBzZWN1cml0eU9yaWdpbnMgPSBpbmRleGVkRGF0YWJhc2VPcmlnaW5zKHBhdGgpXSB7CiAgICAg
ICAgICAgICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAgICAgICAgICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKICAgICAgICAg
ICAgICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoeyBzZWN1cml0eU9yaWdpbiwg
V2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFzZXMsIDAgfSk7CkBAIC0yMDksMjcgKzIx
MiwzNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYgogI2VuZGlmCiB9CiAKLXZvaWQgRGF0YWJh
c2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3Zv
aWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBz
dGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgYXV0
byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBjYWxsYmFja0lEXSgpIHsKICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzUHJv
eHk6OkRpZERlbGV0ZVdlYnNpdGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKICAgICB9OwogCi0gICAg
aWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJE
YXRhYmFzZXMpKQotICAgICAgICBpZGJTZXJ2ZXIoKS5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc01v
ZGlmaWVkU2luY2UobW9kaWZpZWRTaW5jZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIGF1dG8qIHNlcnZlciA9IG1faWRiU2VydmVycy5nZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAo
IXNlcnZlciB8fCAhd2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6Oklu
ZGV4ZWREQkRhdGFiYXNlcykpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHNlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNN
b2RpZmllZFNpbmNlKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
ICNlbmRpZgogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JP
cmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5
T3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBbdGhpcywgY2FsbGJhY2tJRF0oKSB7CiAgICAgICAgIHBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5OjpEaWRE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoY2FsbGJhY2tJRCksIDApOwogICAgIH07CiAKLSAg
ICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWRE
QkRhdGFiYXNlcykpCi0gICAgICAgIGlkYlNlcnZlcigpLmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
Rm9yT3JpZ2lucyhzZWN1cml0eU9yaWdpbkRhdGFzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgYXV0byogc2VydmVyID0gbV9pZGJTZXJ2ZXJzLmdldChzZXNzaW9uSUQpOworICAg
IGlmICghc2VydmVyIHx8ICF3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlw
ZTo6SW5kZXhlZERCRGF0YWJhc2VzKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2VydmVyLT5jbG9zZUFuZERlbGV0ZURhdGFi
YXNlc0Zvck9yaWdpbnMoc2VjdXJpdHlPcmlnaW5EYXRhcywgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogI2VuZGlmCiB9CiAKQEAgLTI2MywxMyArMjc2LDEzIEBAIHZvaWQgRGF0YWJhc2VQ
cm9jZXNzOjphY2Nlc3NUb1RlbXBvcmFyeUZpbGVDb21wbGV0ZShjb25zdCBTdHJpbmcmIHBhdGgp
CiAgICAgICAgIGV4dGVuc2lvbi0+cmV2b2tlKCk7CiB9CiAKLVZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+IERhdGFiYXNlUHJvY2Vzczo6aW5kZXhlZERhdGFiYXNlT3JpZ2lucygp
CitWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBEYXRhYmFzZVByb2Nlc3M6Omlu
ZGV4ZWREYXRhYmFzZU9yaWdpbnMoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIGlmIChtX2lu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgaWYgKHBhdGguaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gc2VjdXJpdHlPcmlnaW5zOwotICAgIGZvciAoYXV0byYgb3JpZ2luUGF0aCA6IGxp
c3REaXJlY3RvcnkobV9pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnksICIqIikpIHsKKyAgICBmb3Ig
KGF1dG8mIG9yaWdpblBhdGggOiBsaXN0RGlyZWN0b3J5KHBhdGgsICIqIikpIHsKICAgICAgICAg
U3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllciA9IHBhdGhHZXRGaWxlTmFtZShvcmlnaW5QYXRoKTsK
IAogICAgICAgICBpZiAoYXV0byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbURhdGFiYXNlSWRlbnRpZmllcihkYXRhYmFzZUlkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCmluZGV4IDY1OWU5NjE5
ZmNkZDFhNWIyMTYyNTA3MzI5ZDM2NWRhMjMwMjlmZjkuLjljOTQ5MTljY2U0ODkxM2Q2MTg4NTkw
ZDAxNWMzNDBhN2M1ZTJkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzLmgKQEAgLTMxLDEyICszMSwxMiBAQAogI2luY2x1ZGUgIlNhbmRi
b3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkJhY2tpbmdTdG9yZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8d3Rm
L0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTZXNzaW9uSUQ7CiBzdHJ1Y3QgU2VjdXJpdHlPcmln
aW5EYXRhOwogfQogCkBAIC01OCwxMiArNTgsNyBAQCBwdWJsaWM6CiAgICAgfkRhdGFiYXNlUHJv
Y2VzcygpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgY29uc3QgU3RyaW5n
JiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREYXRh
YmFzZURpcmVjdG9yeTsgfQotCi0gICAgdm9pZCBlbnN1cmVJbmRleGVkRGF0YWJhc2VSZWxhdGl2
ZVBhdGhFeGlzdHMoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIGFic29sdXRlSW5kZXhlZERh
dGFiYXNlUGF0aEZyb21EYXRhYmFzZVJlbGF0aXZlUGF0aChjb25zdCBTdHJpbmcmKTsKLQotICAg
IFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyJiBpZGJTZXJ2ZXIoKTsKKyAgICBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlciYgaWRiU2VydmVyKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAj
ZW5kaWYKIAogICAgIFdvcmtRdWV1ZSYgcXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9
CkBAIC05Niw3ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VQ
cm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIC8v
IE1lc3NhZ2UgSGFuZGxlcnMKLSAgICB2b2lkIGluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MoY29u
c3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisgICAgdm9pZCBpbml0aWFs
aXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKICAgICB2b2lkIGNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOwog
CiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7
CkBAIC0xMDgsNyArMTAzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCi0gICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gaW5k
ZXhlZERhdGFiYXNlT3JpZ2lucygpOworICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IGluZGV4ZWREYXRhYmFzZU9yaWdpbnMoY29uc3QgU3RyaW5nJiBwYXRoKTsKICNlbmRp
ZgogCiAgICAgLy8gRm9yIGV4ZWN1dGlvbiBvbiB3b3JrIHF1ZXVlIHRocmVhZCBvbmx5CkBAIC0x
MjAsOCArMTE1LDggQEAgcHJpdmF0ZToKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgU3RyaW5nIG1faW5kZXhlZERhdGFiYXNl
RGlyZWN0b3J5OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4gbV9p
ZGJTZXJ2ZXI7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJE
YXRhYmFzZVBhdGhzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBSZWZQdHI8V2Vi
Q29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+PiBtX2lkYlNlcnZlcnM7CiAjZW5kaWYKICAgICBI
YXNoTWFwPFN0cmluZywgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Jsb2JUZW1wb3JhcnlG
aWxlU2FuZGJveEV4dGVuc2lvbnM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjpmdW5jdGlv
bjx2b2lkIChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKT4+IG1fc2FuZGJveEV4dGVu
c2lvbkZvckJsb2JzQ29tcGxldGlvbkhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NDY2ODIzMzM5YjFlNjQ5NjFmZjU1OWU5OGJkNDBlYzk1YWNmNDE0Zi4uNzlkZjVjMGZmODI2ZTQ1
MDEwOGY5N2U4Zjg1ODk0MGFiNmUzNjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yMyw4
ICsyMyw4IEBACiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IERh
dGFiYXNlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7Ci0gICAgIyBJbml0aWFsaXplcyB0aGUgRGF0
YWJhc2VQcm9jZXNzIHdpdGggdGhlIGNvcnJlY3QgcGFyYW1ldGVycwotICAgIEluaXRpYWxpemVE
YXRhYmFzZVByb2Nlc3Moc3RydWN0IFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCisgICAgIyBJbml0aWFsaXplcyBhIFdl
YnNpdGVEYXRhU3RvcmUvU2Vzc2lvbiBpbiB0aGUgRGF0YWJhc2VQcm9jZXNzIHdpdGggdGhlIGNv
cnJlY3QgcGFyYW1ldGVycworICAgIEluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBX
ZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlv
biB3aXRoIGEgV2ViUHJvY2VzcwogICAgIENyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGJhNDI2ZGVlMzFk
MjU1ODUzMWU5Yjc1NjA1MDM5NDJmOGFkMWQzNDUuLmZkYjE4MTJlMWYwZTI5MGY5ZWYzMzA5MjZm
NGUyZGJkYmVhOWFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0x
MDcsMTMgKzEwNywxMyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2
ZXJJZGVudGlmaWVyKCkKICAgICByZXR1cm4gKytpZGVudGlmaWVyOwogfQogCi12b2lkIERhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVy
KHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29y
ZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKQogewogICAgIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVDb25uZWN0
aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCk7CiAgICAgTE9HKEluZGV4ZWREQiwgIkRhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyIC0gJSIg
UFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKCFtX3dlYklE
QkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiAKLSAg
ICBtX3dlYklEQkNvbm5lY3Rpb25zLnNldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoKnRoaXMsIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKSk7CisgICAgbV93ZWJJREJDb25uZWN0aW9ucy5zZXQoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKCp0aGlzLCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgc2Vzc2lvbklEKSk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2ZXIodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgK
aW5kZXggN2MzMGE3ZmRlNGMxYjIxN2I4ZWQyMTA1Mjg1YzMyMTg5OGJjMDRmYi4uOTE2MWU5NzQz
MzkwOGQ0MWJiZmYxNWU1ODFkMjBlY2EwZmZmMDA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
QEAgLTYxLDcgKzYyLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIC8vIE1lc3NhZ2VzIGhhbmRsZXJzIChNb2Rlcm4gSURCKQotICAgIHZvaWQgZXN0YWJs
aXNoSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcik7CisgICAgdm9pZCBlc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6
U2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZv
aWQgcmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ+PiBtX3dlYklEQkNvbm5lY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNjBiZWM2ZTQyYjUyNWU4NTdkMzNmNzFl
MWM1MzhiMDc4NTkxNTAyZS4uZmVmMGNjNTZiMzc5OGQ0M2VhNzg0ZjIzYWIyNTQyMjE5ZDI1OTA5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24gTGVnYWN5UmVjZWl2ZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgICMg
Q3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MK
LSAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKSAtPiAodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVy
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikKICAgICBSZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2ZXIodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCAyNzRhZGQ1ZWE3NjZlZWFhNTEwNTlkMTMyZDNm
Y2RkNGI2NWUwNjQwLi5jMDE2MzNiODg0NTQ3YmMzYjFjODhiZWNjNGYyNTVhMGUxNTQ2ZDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC00NSwxOCArNDUs
MTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1S
ZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNy
ZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dD4gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQoY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHNlc3Npb25J
RCkpOwogfQogCi1XZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudChEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAg
ICwgbV9pZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogewogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAg
IG1fY29ubmVjdGlvblRvQ2xpZW50ID0gSURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmNyZWF0ZSgqdGhpcyk7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIoKS5yZWdpc3RlckNvbm5lY3Rpb24oKm1fY29ubmVjdGlvblRvQ2xpZW50KTsKKyAgICBEYXRh
YmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkucmVnaXN0ZXJD
b25uZWN0aW9uKCptX2Nvbm5lY3Rpb25Ub0NsaWVudCk7CiB9CiAKIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6fldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCgpCkBAIC02NSw3ICs2Niw3IEBAIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6fldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCgpCiAKIHZv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2Vzcygp
CiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS51bnJlZ2lz
dGVyQ29ubmVjdGlvbigqbV9jb25uZWN0aW9uVG9DbGllbnQpOworICAgIERhdGFiYXNlUHJvY2Vz
czo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS51bnJlZ2lzdGVyQ29ubmVjdGlv
bigqbV9jb25uZWN0aW9uVG9DbGllbnQpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKQpAQCAtMjIzLDYyICsy
MjQsNjIgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QKIAogdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0KQog
ewotICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZGVsZXRlRGF0
YWJhc2UocmVxdWVzdCk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIobV9zZXNzaW9uSUQpLmRlbGV0ZURhdGFiYXNlKHJlcXVlc3QpOwogfQogCiB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0KQogewotICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCku
b3BlbkRhdGFiYXNlKHJlcXVlc3QpOworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCku
aWRiU2VydmVyKG1fc2Vzc2lvbklEKS5vcGVuRGF0YWJhc2UocmVxdWVzdCk7CiB9CiAKIHZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogewotICAgIERhdGFiYXNlUHJv
Y2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuYWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlv
bklkZW50aWZpZXIpOworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVy
KG1fc2Vzc2lvbklEKS5hYm9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb21taXRUcmFuc2FjdGlvbihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICBE
YXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmNvbW1pdFRyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaW5pc2hI
YW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikKIHsKLSAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigp
LmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRy
YW5zYWN0aW9uSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvKQogewotICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaWRiU2VydmVyKCkuY3JlYXRlT2JqZWN0U3RvcmUocmVxdWVzdCwgaW5mbyk7CisgICAg
RGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNyZWF0
ZU9iamVjdFN0b3JlKHJlcXVlc3QsIGluZm8pOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigp
LmlkYlNlcnZlcigpLmRlbGV0ZU9iamVjdFN0b3JlKHJlcXVlc3QsIG5hbWUpOworICAgIERhdGFi
YXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5kZWxldGVPYmpl
Y3RTdG9yZShyZXF1ZXN0LCBuYW1lKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKIHsKLSAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLnJlbmFtZU9iamVjdFN0
b3JlKHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CisgICAgRGF0YWJh
c2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLnJlbmFtZU9iamVj
dFN0b3JlKHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiB9CiAKIHZv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7Ci0g
ICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5jbGVhck9iamVjdFN0
b3JlKHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VQcm9jZXNz
OjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNsZWFyT2JqZWN0U3RvcmUocmVx
dWVzdCwgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25z
dCBJREJJbmRleEluZm8mIGluZm8pCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIoKS5jcmVhdGVJbmRleChyZXF1ZXN0LCBpbmZvKTsKKyAgICBEYXRhYmFzZVBy
b2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuY3JlYXRlSW5kZXgocmVx
dWVzdCwgaW5mbyk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVJ
bmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgdWludDY0X3Qgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpz
aW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kZWxldGVJbmRleChyZXF1ZXN0LCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIG5hbWUpOworICAgIERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2Vy
dmVyKG1fc2Vzc2lvbklEKS5kZWxldGVJbmRleChyZXF1ZXN0LCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIG5hbWUpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVuYW1lSW5k
ZXgoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUp
CiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5yZW5hbWVJ
bmRleChyZXF1ZXN0LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3
TmFtZSk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNz
aW9uSUQpLnJlbmFtZUluZGV4KHJlcXVlc3QsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJ
ZGVudGlmaWVyLCBuZXdOYW1lKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJLZXlEYXRh
JiBrZXksIGNvbnN0IElEQlZhbHVlJiB2YWx1ZSwgdW5zaWduZWQgb3ZlcndyaXRlTW9kZSkKQEAg
LTI5Myw3NyArMjk0LDc3IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpwdXRPckFk
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCCiAKICAgICBJbmRleGVk
REI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBtb2RlID0gc3RhdGljX2Nhc3Q8SW5kZXhlZERC
OjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU+KG92ZXJ3cml0ZU1vZGUpOwogCi0gICAgRGF0YWJh
c2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5wdXRPckFkZChyZXF1ZXN0LCBrZXks
IHZhbHVlLCBtb2RlKTsKKyAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZl
cihtX3Nlc3Npb25JRCkucHV0T3JBZGQocmVxdWVzdCwga2V5LCB2YWx1ZSwgbW9kZSk7CiB9CiAK
IHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQkdldFJlY29yZERhdGEmIGdldFJlY29yZERhdGEpCiB7
Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5nZXRSZWNvcmQo
cmVxdWVzdCwgZ2V0UmVjb3JkRGF0YSk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmdldFJlY29yZChyZXF1ZXN0LCBnZXRSZWNvcmREYXRh
KTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldEFsbFJlY29yZHMoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQkdldEFsbFJlY29yZHNEYXRhJiBn
ZXRBbGxSZWNvcmRzRGF0YSkKIHsKLSAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlk
YlNlcnZlcigpLmdldEFsbFJlY29yZHMocmVxdWVzdCwgZ2V0QWxsUmVjb3Jkc0RhdGEpOworICAg
IERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRB
bGxSZWNvcmRzKHJlcXVlc3QsIGdldEFsbFJlY29yZHNEYXRhKTsKIH0KIAogdm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
LCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQogewotICAgIERhdGFiYXNlUHJvY2Vzczo6
c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuZ2V0Q291bnQocmVxdWVzdCwgcmFuZ2UpOworICAgIERh
dGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRDb3Vu
dChyZXF1ZXN0LCByYW5nZSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
ZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3QsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYgcmFuZ2UpCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJT
ZXJ2ZXIoKS5kZWxldGVSZWNvcmQocmVxdWVzdCwgcmFuZ2UpOworICAgIERhdGFiYXNlUHJvY2Vz
czo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5kZWxldGVSZWNvcmQocmVxdWVz
dCwgcmFuZ2UpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkN1cnNv
cihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCwgY29uc3QgSURCQ3Vyc29ySW5mbyYgaW5m
bykKIHsKLSAgICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLm9wZW5D
dXJzb3IocmVxdWVzdCwgaW5mbyk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5p
ZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLm9wZW5DdXJzb3IocmVxdWVzdCwgaW5mbyk7CiB9CiAKIHZv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0LCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYgZGF0YSkKIHsKLSAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLml0ZXJhdGVDdXJzb3Io
cmVxdWVzdCwgZGF0YSk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2
ZXIobV9zZXNzaW9uSUQpLml0ZXJhdGVDdXJzb3IocmVxdWVzdCwgZGF0YSk7CiB9CiAKIHZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGlu
Zm8pCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5lc3Rh
Ymxpc2hUcmFuc2FjdGlvbihkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBpbmZvKTsKKyAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuZXN0
YWJsaXNoVHJhbnNhY3Rpb24oZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgaW5mbyk7CiB9
CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkYXRhYmFzZUNvbm5lY3Rpb25QZW5k
aW5nQ2xvc2UodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikKIHsKLSAgICBE
YXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLmRhdGFiYXNlQ29ubmVjdGlv
blBlbmRpbmdDbG9zZShkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBEYXRhYmFz
ZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuZGF0YWJhc2VDb25u
ZWN0aW9uUGVuZGluZ0Nsb3NlKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogfQogCiB2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgRGF0YWJhc2VQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQoZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0
b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZChkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIpCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIo
KS5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpz
aW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgRGF0YWJh
c2VQcm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQogewotICAg
IERhdGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkub3BlbkRCUmVxdWVzdENh
bmNlbGxlZChyZXF1ZXN0RGF0YSk7CisgICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKS5p
ZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLm9wZW5EQlJlcXVlc3RDYW5jZWxsZWQocmVxdWVzdERhdGEp
OwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29uZmlybURpZENsb3NlRnJv
bVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIERh
dGFiYXNlUHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKCkuY29uZmlybURpZENsb3NlRnJv
bVNlcnZlcihkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBEYXRhYmFzZVByb2Nl
c3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuY29uZmlybURpZENsb3NlRnJv
bVNlcnZlcihkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5pZGJTZXJ2ZXIoKS5nZXRBbGxEYXRhYmFzZU5hbWVzKHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB0b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgIERhdGFiYXNl
UHJvY2Vzczo6c2luZ2xldG9uKCkuaWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRBbGxEYXRhYmFz
ZU5hbWVzKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB0b3BPcmlnaW4sIG9wZW5pbmdPcmln
aW4sIGNhbGxiYWNrSUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDExYzZjYzFjMWQ4MGE1YzRmYTVlZDVmZDU5
NWJiYjk1YzFkZDVlMWQuLmI2ZjEzYzg1OTdmNDYxMDIwYzIzY2FkYzFlNjU1NWYxZWY0ZTEyN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIElEQkN1cnNvckluZm87CkBAIC01MSw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZSwgcHVibGljIElQ
Qzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+
IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ+IGNyZWF0ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKIAogICAgIHZp
cnR1YWwgfldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCgpOwogCkBAIC0xMjUsNyArMTI2LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKKyAgICBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoRGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlc3Npb25JRCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgZmluYWw7CiAKQEAgLTEzNCw2ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFJl
ZjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50PiBt
X2Nvbm5lY3Rpb25Ub0NsaWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCBlNDMzMjAxNzFjNGUwYmUzNzkxMzY5OWZmNjEzZTkyZTJhNDJjM2Ez
Li44NmIyODA1MmFmMWIxZTVhYjRlOGNiNDNhNmY4NmVkZGEyNjU1YmU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFz
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zOSw2ICszOSw3IEBAIERhdGFiYXNl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKCkKIHZvaWQgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorICAgIGVuY29kZXIgPDwgc2Vzc2lvbklEOwogICAgIGVuY29kZXIgPDwgaW5kZXhlZERhdGFi
YXNlRGlyZWN0b3J5OwogICAgIGVuY29kZXIgPDwgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwogI2VuZGlmCkBAIC00Nyw2ICs0OCw4IEBAIHZvaWQgRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogYm9vbCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQogewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnNlc3Npb25JRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW5kZXhlZERhdGFi
YXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCmluZGV4IDBkNDUwZjhiOTcwODIyOTY4MmYzMTBiNWU5YTY3YTM1NDkyYzAzZjUu
LjgyNDYzMDk0MDMxOGUyYTEyMTBkZTI3N2U1NTRiNTBhMTVhODNlYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKgogICovCiAK
LSNpZm5kZWYgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzX2gKLSNkZWZpbmUgRGF0
YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKQEAgLTQ1LDYgKzQ1LDggQEAgc3RydWN0IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpOwogCisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBTdHJpbmcgaW5kZXhlZERhdGFiYXNlRGly
ZWN0b3J5OwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBpbmRleGVkRGF0YWJhc2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CkBAIC01NCw0ICs1NiwzIEBAIHN0cnVjdCBEYXRhYmFzZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKLSNlbmRpZiAvLyBEYXRhYmFzZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggNDUyOTJmMGM2Y2ZkMjgxMmQ3YmU1NWQ2NjAwNTEwMjA1ZDBhMDhiOC4u
ODI2N2VjM2NmNjdjZGI0MjFhNWRkN2NhNmFhMDZlOGY3OWNiNjQ2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01MTYsMTIgKzUxNiwxNCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVEYXRhYmFzZVByb2Nlc3MoKQogICAgIERhdGFiYXNl
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogICAgIEFTU0VSVCghbV9jb25maWd1cmF0aW9uLT5pbmRleGVkREJEYXRhYmFz
ZURpcmVjdG9yeSgpLmlzRW1wdHkoKSk7Ci0gICAgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VE
aXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7
CiAKKyAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYnNpdGVEYXRhU3RvcmUoKS53ZWJzaXRl
RGF0YVN0b3JlKCkuc2Vzc2lvbklEKCk7CisgICAgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VE
aXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmluZGV4ZWRE
YXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAotICAgIG1fZGF0YWJh
c2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3M6OkluaXRpYWxpemVEYXRh
YmFzZVByb2Nlc3MocGFyYW1ldGVycyksIDApOworICAgIEFTU0VSVCghcGFyYW1ldGVycy5pbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKTsKKyAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShwYXJhbWV0ZXJzKSwgMCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldERhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKQEAgLTYxNCw2ICs2
MTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5z
aW9ucygpCiAgICAgbV9yZXNvbHZlZFBhdGhzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gcmVz
b2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25m
aWd1cmF0aW9uLT53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpKTsKICAgICBtX3Jlc29sdmVkUGF0
aHMubWVkaWFDYWNoZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3Rv
cnlGb3JTYW5kYm94RXh0ZW5zaW9uKG1fY29uZmlndXJhdGlvbi0+bWVkaWFDYWNoZURpcmVjdG9y
eSgpKTsKICAgICBtX3Jlc29sdmVkUGF0aHMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gcmVz
b2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25m
aWd1cmF0aW9uLT5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkpOworICAgIG1fcmVzb2x2ZWRQ
YXRocy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRl
RGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihtX2NvbmZpZ3VyYXRpb24tPmluZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5KCkpOwogCiAgICAgbV9yZXNvbHZlZFBhdGhzLmFkZGl0aW9uYWxXZWJQ
cm9jZXNzU2FuZGJveEV4dGVuc2lvblBhdGhzLnJlc2VydmVDYXBhY2l0eShtX2NvbmZpZ3VyYXRp
b24tPmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFBhdGhzKCkuc2l6ZSgpKTsKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHBhdGggOiBtX2NvbmZpZ3VyYXRpb24tPmFkZGl0aW9uYWxSZWFkQWNjZXNz
QWxsb3dlZFBhdGhzKCkpCkBAIC05MzgsNiArOTQxLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnBhZ2VBZGRlZFRvUHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgfSBlbHNlIGlmIChz
ZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpIHsKICAgICAgICAgc2Vu
ZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRl
RGF0YVN0b3JlKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKSkpOwogICAgICAg
ICBwYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0
YVN0b3JlKHBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKSksIDApOworCisgICAg
ICAgIGF1dG8gZGF0YWJhc2VQYXJhbWV0ZXJzID0gcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGF0
YWJhc2VQcm9jZXNzUGFyYW1ldGVycygpOworICAgICAgICBpZiAoIWRhdGFiYXNlUGFyYW1ldGVy
cy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICAgICAgc2VuZFRv
RGF0YWJhc2VQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6RGF0YWJhc2VQ
cm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShkYXRhYmFzZVBhcmFtZXRlcnMpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5k
ZXggNDU2MjYwMDI3N2NjZThjNmNkOWI2Yjc4MWM1MjI3YzRkMGQ0NTgzYi4uN2U2ZjU1Y2Y1ZGZm
OWJmMTEyZmQyOTZmNWNlNjg5MTk0YzNmZjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKQEAgLTYwOCw2ICs2MDgsNyBAQCBwcml2YXRlOgogICAgICAgICBT
dHJpbmcgbWVkaWFDYWNoZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFn
ZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aDsK
KyAgICAgICAgU3RyaW5nIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeTsKIAogI2lmIFBMQVRGT1JN
KElPUykKICAgICAgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggZjU1ZWJiMTMzMTZjZDI0OTc0ZmMwYjQ4ZGYwYzY4YTFkZWFmZjNjYi4uZDQy
NTYzMzg3NWI3MjZhNWVmMDkyOGNhMTcxM2E0ZWQxYTA0Y2IwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiQVBJV2Vic2l0ZURhdGFSZWNvcmQuaCIKKyNpbmNsdWRlICJEYXRh
YmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyUHJveHkuaCIKQEAgLTExNiw2ICsxMTcsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCkKICAgICBtX3Jlc29sdmVkQ29u
ZmlndXJhdGlvbi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLm1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkpOwogICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLndlYlNR
TERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZv
clNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5
KTsKICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0g
cmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9j
b25maWd1cmF0aW9uLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJl
YWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmluZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIGlmICghbV9jb25maWd1cmF0aW9uLmphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24uamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgPSByZXNvbHZl
UGF0aEZvclNhbmRib3hFeHRlbnNpb24obV9jb25maWd1cmF0aW9uLmphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5KTsKQEAgLTEyMzcsNiArMTIzOSwyMSBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKQogI2VuZGlmCiB9CiAK
K0RhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpkYXRh
YmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCkKK3sKKyAgICBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNz
aW9uSUQ7CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBwYXJhbWV0ZXJzLmlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVkSW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
KCk7CisgICAgaWYgKCFwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5
KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURp
cmVjdG9yeShwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSwgcGFyYW1ldGVycy5p
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gcGFyYW1ldGVyczsKK30KKwogI2lmICFQTEFURk9STShDT0NPQSkKIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKaW5kZXggOWM3MWU2ZDMwNGM5ZGFjNzBkNjc4M2RjNzgzMzM1YTNjYzgyYmQ3ZC4uYzQw
ODRjNjc0MDk5MzY1NTM5MDZjYmYwNTA5ZWY0NjAxZjg0YWNkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC01Myw2ICs1Myw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOwogZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZldGNoT3B0aW9uOwog
ZW51bSBjbGFzcyBXZWJzaXRlRGF0YVR5cGU7CitzdHJ1Y3QgRGF0YWJhc2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogCkBAIC0xMDcsNiArMTA4LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgcmVzb2x2ZWREYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb2x2ZWRDb25maWd1cmF0aW9uLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5OyB9CiAgICAgY29u
c3QgU3RyaW5nJiByZXNvbHZlZEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkgY29u
c3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uamF2YVNjcmlwdENvbmZpZ3VyYXRp
b25EaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQ29va2llU3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLmNvb2tpZVN0
b3JhZ2VEaXJlY3Rvcnk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkSW5kZXhlZERhdGFi
YXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24uaW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7IH0KIAogICAgIFN0b3JhZ2VNYW5hZ2VyKiBzdG9yYWdl
TWFuYWdlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU1hbmFnZXIuZ2V0KCk7IH0KIApAQCAtMTE0LDYg
KzExNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlBy
b2Nlc3NQb29sJikgY29uc3Q7CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJh
bWV0ZXJzKCk7CisgICAgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIGRhdGFiYXNl
UHJvY2Vzc1BhcmFtZXRlcnMoKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJzaXRlRGF0
YVN0b3JlKFdlYkNvcmU6OlNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IGU2YzFhYTJmMTdlOTFjNGNmMDlhMjdiZTJiYmVm
YzcwMzRjYjMzNDQuLjE5Y2ZjZDU3YmY1NDcwNGNmMzRjMGM2MzZiMjVhOTJkNjM4NmQ3NWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC01
NiwxNiArNTYsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1SZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmNyZWF0ZSgpCitSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcik7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKHNlc3Npb25JRCkpOwogfQogCi1X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCitXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihTZXNzaW9uSUQg
c2Vzc2lvbklEKQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogewogICAgIHJlbGF4QWRv
cHRpb25SZXF1aXJlbWVudCgpOwogCi0gICAgbV9pc09wZW5JblNlcnZlciA9IHNlbmRTeW5jKE1l
c3NhZ2VzOjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkVzdGFibGlzaElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcigpLCBNZXNzYWdlczo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OlJlcGx5KG1faWRlbnRpZmllcikpOwor
ICAgIG1faXNPcGVuSW5TZXJ2ZXIgPSBzZW5kU3luYyhNZXNzYWdlczo6RGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoc2Vzc2lvbklE
KSwgTWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6RXN0YWJsaXNoSURC
Q29ubmVjdGlvblRvU2VydmVyOjpSZXBseShtX2lkZW50aWZpZXIpKTsKICAgICBtX2Nvbm5lY3Rp
b25Ub1NlcnZlciA9IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRo
aXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgK
aW5kZXggZTVkNjgxNTEyNmZkMTI2Zjg2MmUwZjQ2MjI0YjA5NzI2NWFmMDQzNS4uZDE2M2MwOTBi
ZmVjZjIwMjEzYTA4NWJjY2I3ZjllZTUwODFjYjYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Np
b25JRC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBX
ZWJJREJSZXN1bHQ7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLCBw
dWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI+IGNyZWF0ZShXZWJDb3JlOjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCB+V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyKCk7CiAKQEAgLTEwOCwxMyArMTA5LDE0IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIoKTsKKyAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoV2ViQ29yZTo6
U2Vzc2lvbklEKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBmaW5hbDsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKICAgICBib29s
IG1faXNPcGVuSW5TZXJ2ZXIgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9uVG9TZXJ2ZXI7CisgICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA2MTgxMzBm
NGQwNzk1MmEwZDU3NjAwODQ2MTQ4ZjEyNGY1MjVlODkwLi5hM2I3NmQ0ZTA1YTVlMDk2NWI3NGY0
MTI2Mjc2ZWYxM2U2YzFlNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckYKIHsKICAg
ICBhdXRvIHJlc3VsdCA9IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uYWRkKHNlc3Npb25J
RCwgbnVsbHB0cik7CiAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KSB7Ci0gICAgICAgIHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUgPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpOwor
ICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpjcmVhdGUoc2Vzc2lvbklEKTsKICAgICAgICAgQVNTRVJUKCFtX3dlYklEQkNvbm5lY3Rpb25z
QnlJZGVudGlmaWVyLmNvbnRhaW5zKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmlkZW50aWZpZXIo
KSkpOwogICAgICAgICBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyLnNldChyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCksIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAxNDhhMThmOWI2ZjgyN2M0NTM4M2EyYmEyOGNmYTgwNTQzMTBlMGRjLi42NWFmN2M1MWJmZjJh
NDZiZjNjNmY3OWU1OWNkYWIxNmE3Nzk0MjcyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDQtMjggIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFRlYWNoIHRoZSBEYXRhYmFz
ZVByb2Nlc3MgdG8gYmUgZnVsbHkgU2Vzc2lvbklEIGF3YXJlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKwogMjAxNy0wNC0yOCAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBm
b2xsb3ctdXAgdG8gcjIxNDcwNS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cy5tbQppbmRleCA4ZjUyMDE0MTRjNWIxMTE0MDAzOGVjMjkwYWM5NWM4YTRhMDY2MDcxLi40YjRm
MTEyZWRmMTY3NzNhMDI0MDRjYTdiZDVjZDRmMmVmMGMzNzZmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0
aHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCkBAIC0xMjIsMTMgKzEyMiwxMiBAQCBURVNUKFdlYktp
dDIsIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocykKICAgICBFWFBFQ1RfVFJVRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c3FsUGF0aC5wYXRoXSk7
CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhp
c3RzQXRQYXRoOmxvY2FsU3RvcmFnZVBhdGgucGF0aF0pOwogCisgICAgRVhQRUNUX1RSVUUoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmlkYlBhdGgucGF0
aF0pOworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDpkZWZhdWx0SURCUGF0aC5wYXRoXSk7CisKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgYmUgdHJ1ZSwgYnV0IGNvbWVzIHVwIGZhbHNlLiBQb3NzaWJseSBhIENGTmV0d29y
ayBpc3N1ZS4gQmVpbmcgZXhwbG9yZWQgaW4gPHJkYXI6Ly9wcm9ibGVtLzMxNjY2Mjc1PgogICAg
IEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNB
dFBhdGg6Y29va2llU3RvcmFnZVBhdGgucGF0aF0pOwogCi0gICAgLy8gRklYTUU6IDxyZGFyOi8v
cHJvYmxlbS8zMDc4NTYxOD4gLSBXZSBkb24ndCB5ZXQgc3VwcG9ydCBJREIgZGF0YWJhc2UgcHJv
Y2Vzc2VzIGF0IGN1c3RvbSBwYXRocyBwZXIgV2Vic2l0ZURhdGFTdG9yZSAoVGhlc2Ugc2hvdWxk
IGJlIGZsaXBwZWQpCi0gICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gZmlsZUV4aXN0c0F0UGF0aDppZGJQYXRoLnBhdGhdKTsKLSAgICBFWFBFQ1RfVFJVRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdElE
QlBhdGgucGF0aF0pOwotCiAgICAgLy8gRklYTUU6IFRoZSBkZWZhdWx0IFNRTCBhbmQgTG9jYWxT
dG9yYWdlIHBhdGhzIGFyZSBiZWluZyB1c2VkIGZvciBzb21ldGhpbmcsIGJ1dCB0aGV5IHNob3Vs
ZG4ndCBiZS4gKHRoZXNlcyBzaG91bGQgYmUgZmFsc2UsIG5vdCB0cnVlKQogICAgIEVYUEVDVF9U
UlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZh
dWx0U1FMUGF0aC5wYXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRMb2NhbFN0b3JhZ2VQYXRoLnBhdGhd
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>