<?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>176348</bug_id>
          
          <creation_ts>2017-09-04 22:16:24 -0700</creation_ts>
          <short_desc>[iOS WK2] Add plumbing for WKContentView to ask the web process for additional drag items</short_desc>
          <delta_ts>2017-09-05 19:41:57 -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>
          
          <blocked>176421</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1345341</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-04 22:16:24 -0700</bug_when>
    <thetext>Work towards &lt;rdar://problem/31144674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345349</commentid>
    <comment_count>1</comment_count>
      <attachid>319880</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-04 23:40:40 -0700</bug_when>
    <thetext>Created attachment 319880
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345452</commentid>
    <comment_count>2</comment_count>
      <attachid>319900</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-05 08:44:20 -0700</bug_when>
    <thetext>Created attachment 319900
Tweak ChangeLog wording</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345470</commentid>
    <comment_count>3</comment_count>
      <attachid>319900</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-05 09:18:21 -0700</bug_when>
    <thetext>Comment on attachment 319900
Tweak ChangeLog wording

View in context: https://bugs.webkit.org/attachment.cgi?id=319900&amp;action=review

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:634
&gt; +void WebPage::requestAdditionalItemsForDragSession(const WebCore::IntPoint&amp; clientPosition, const WebCore::IntPoint&amp; globalPosition)

WebCore:: namespace prefixes shouldn&apos;t be necessary here, nor in WebPageProxy. I&apos;ll remove these (either here, or in the next patch in the sequence).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345581</commentid>
    <comment_count>4</comment_count>
      <attachid>319928</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-05 12:50:52 -0700</bug_when>
    <thetext>Created attachment 319928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345731</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-05 17:49:17 -0700</bug_when>
    <thetext>(This is the second patch in the sequence -- final part here: https://bugs.webkit.org/show_bug.cgi?id=176421)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345759</commentid>
    <comment_count>6</comment_count>
      <attachid>319928</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-05 19:13:00 -0700</bug_when>
    <thetext>Comment on attachment 319928
Patch

Thanks Tim!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345766</commentid>
    <comment_count>7</comment_count>
      <attachid>319928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-05 19:41:55 -0700</bug_when>
    <thetext>Comment on attachment 319928
Patch

Clearing flags on attachment: 319928

Committed r221660: &lt;http://trac.webkit.org/changeset/221660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345767</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-05 19:41:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319880</attachid>
            <date>2017-09-04 23:40:40 -0700</date>
            <delta_ts>2017-09-05 08:44:18 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-176348-20170904234039.patch</filename>
            <type>text/plain</type>
            <size>42265</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhmYTU2YTg2OGFiNGZiZWVl
YzM0MzFmYWRiNWJlODcwMzJlMjgzMWIuLmQ4Yjk4YzQyMzBhOGEzM2Y0ZTZmODkxYWE5ZmRhODRi
Nzc3Y2U5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzMgQEAKIDIwMTctMDktMDQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPUyBXSzJdIEFkZCBw
bHVtYmluZyBmb3IgV0tDb250ZW50VmlldyB0byBhc2sgdGhlIHdlYiBwcm9jZXNzIGZvciBhZGRp
dGlvbmFsIGRyYWcgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjM0OAorICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMx
MTQ0Njc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYm9pbGVycGxhdGUgcGx1bWJpbmcgdG8gcmVxdWVzdCBhZGRpdGlvbmFsIGl0ZW1zIHRv
IGFuIGV4aXN0aW5nIHNlc3Npb24uIFRoaXMgaW1wbGVtZW50cyBzb21lIFVJLXNpZGUgbG9naWMK
KyAgICAgICAgaW4gV0tDb250ZW50VmlldyB0byBzZW5kIGFuIGFkZGl0aW9uYWwgZHJhZyBpdGVt
cyByZXF1ZXN0IGFuZCBoYW5kbGUgYSByZXNwb25zZSBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy4gCisg
ICAgICAgIFRvIHN0YXJ0LCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JE
cmFnU2Vzc2lvbiBpcyBpbnZva2VkIGJ5IC1fZHJhZ0ludGVyYWN0aW9uOgorICAgICAgICBpdGVt
c0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hBdFBvaW50OmNvbXBsZXRpb246IGluIFdLQ29u
dGVudFZpZXcsIGFuZCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgd2ViIHByb2Nlc3MgaXMKKyAgICAg
ICAgaGFuZGxlZCBpbiAtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRl
bXNSZXF1ZXN0Ol0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9u
OmF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICBBZGQgc29tZSBTUEkgdG8gYWxsb3cgc2lt
dWxhdGluZyBhIHJlcXVlc3QgZm9yIGFkZGl0aW9uYWwgZHJhZyBpdGVtcy4gU2VlIFRvb2xzL0No
YW5nZUxvZyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVu
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBhbiBJUEMgbWVz
c2FnZSBoYW5kbGVyIGZvciB0aGUgYWRkaXRpb25hbCBkcmFnIGl0ZW1zIHJlc3BvbnNlIGZyb20g
dGhlIHdlYiBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVy
YWN0aW9uU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
OjpCbG9ja1B0cjx2b2lkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJh
Y3Rpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
OjpzaG91bGRSZXF1ZXN0QWRkaXRpb25hbEl0ZW1Gb3JEcmFnU2Vzc2lvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OkRyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6ZHJhZ1Nlc3Npb25XaWxsUmVx
dWVzdEFkZGl0aW9uYWxJdGVtKToKKworICAgICAgICBJbnZva2UgdGhlIG5ldyBhZGRpdGlvbmFs
IGl0ZW1zIGNvbXBsZXRpb24gaGFuZGxlciB3aGVuIHRlYXJpbmcgZG93biwgdG8gYXZvaWQgZ2V0
dGluZyBVSUtpdCBpbiBhIGJhZCBzdGF0ZS4KKworICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGU6OmRyYWdBbmREcm9wU2Vzc2lvbnNEaWRFbmQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
ZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9pdGVtc0ZvckJlZ2lubmluZ09yQWRkaW5nVG9TZXNzaW9uV2l0aFJlZ2lzdHJh
dGlvbkxpc3Q6c3RhZ2VkRHJhZ1NvdXJjZTpdKToKKworICAgICAgICBGYWN0b3JzIGNvbW1vbiBs
b2dpYyB0byBjb252ZXJ0IGEgc3RhZ2VkIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9M
aXN0IGFuZCBEcmFnU291cmNlU3RhdGUgaW50byBhIGxpc3Qgb2YKKyAgICAgICAgZHJhZyBpdGVt
cywgaW52b2tpbmcgdGhlIHByaXZhdGUgVUkgZGVsZWdhdGUgaW4gdGhlIHByb2Nlc3MuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZHJhZ0ludGVyYWN0aW9uOml0ZW1zRm9yQWRkaW5nVG9T
ZXNzaW9uOndpdGhUb3VjaEF0UG9pbnQ6Y29tcGxldGlvbjpdKToKKworICAgICAgICBJbXBsZW1l
bnRzIGEgKHByb3Bvc2VkKSBhZGRpdGlvbmFsIGRyYWcgaXRlbSBkZWxlZ2F0ZSB0aGF0IHNlcnZl
cyBhcyBhbiBhc3luY2hyb25vdXMgYWx0ZXJuYXRpdmUgdG8gdGhlIEFQSQorICAgICAgICB2YXJp
YW50LCAtX2RyYWdJbnRlcmFjdGlvbjppdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hB
dFBvaW50Oi4gU2VlIDxyZGFyOi8vcHJvYmxlbS8zMzE0NjgwMz4gZm9yIG1vcmUKKyAgICAgICAg
aW5mb3JtYXRpb24uCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246
aXRlbXNGb3JCZWdpbm5pbmdTZXNzaW9uOl0pOgorCisgICAgICAgIFJlZmFjdG9yZWQgdG8gdXNl
IC1faXRlbXNGb3JCZWdpbm5pbmdPckFkZGluZ1RvU2Vzc2lvbldpdGhSZWdpc3RyYXRpb25MaXN0
OnN0YWdlZERyYWdTb3VyY2U6LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRl
SXRlbXNGb3JBZGRpbmdUb1Nlc3Npb246YXRMb2NhdGlvbjpjb21wbGV0aW9uOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nl
c3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRk
IGFuIElQQyBtZXNzYWdlIGhhbmRsZXIgZm9yIHRoZSBhZGRpdGlvbmFsIGRyYWcgaXRlbXMgcmVx
dWVzdCBmcm9tIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWRk
aXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24pOgorCisyMDE3LTA5LTA0ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIFtpT1MgRG5EXSBSZWZhY3RvciBk
cmFnIGFuZCBkcm9wIGxvZ2ljIGluIFdLQ29udGVudFZpZXcgaW4gcHJlcGFyYXRpb24gZm9yIHN1
cHBvcnRpbmcgbXVsdGlwbGUgZHJhZyBpdGVtcyBpbiBhIGRyYWcgc2Vzc2lvbgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjY0CiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMTE0NDY3ND4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDNlMDFkYWRkMzM5NDlmNTk4ODJhYmQyY2ZiNWY2OGYy
NTM2NGJmMjMuLjUzNGE4ZmU1YTRkNzNhYmVhM2JjYTZiZjQzOGViMjAxZmI2MmJhYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTgz
MSw2ICs1ODMxLDEzIEBAIC0gKE5TQXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihp
ZClzZXNzaW9uCiAjZW5kaWYKIH0KIAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1Rv
U2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRp
b246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uCit7CisjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCisgICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vz
c2lvbjpzZXNzaW9uIGF0TG9jYXRpb246bG9jYXRpb24gY29tcGxldGlvbjpjb21wbGV0aW9uXTsK
KyNlbmRpZgorfQorCiAtICh2b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uOihpZClzZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlv
bgogewogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzk1ODNhNzRh
ODBmZmQwOWU2ZDExZTljNTc1ZDBhODk4MDE4MWYxMy4uMWE3ZmQzYWU2ZjgzOGVkYjI0ZTViNTc3
ZmNlMWE0NThmNTNjN2RiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zNzMsNiArMzczLDcgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAodm9pZClfc2lt
dWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUlu
dGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwogLSAoTlNBcnJheSAqKV9zaW11bGF0ZWRJdGVtc0ZvclNlc3Npb246KGlkKXNl
c3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2ltdWxh
dGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50
KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZv
ckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hf
YmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0g
KHZvaWQpX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlv
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDE2NjcwNjY4ZWY3MGQ4
ZWMwZTJkYzY1NTU4MmZjZGU2MThhMDM2YjQuLjUzZmVhMGE0ZmY4YmI4MTU5ZTRiYTU4NDY3MzBk
MDg0M2QxYTg1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4MSw2
ICszODEsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmly
dHVhbCB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJv
b2wgaGFuZGxlZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRl
cmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEhh
bmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiwgY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmIGltYWdlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbmNs
dWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JEYXRhPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25D
YXJldFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcHJldmlvdXNDYXJldFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNhcmV0UmVjdCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA1M2UxYWQ3MDkwNTY3M2I5MzgzZTQ2Y2ExZjY0ZGJiYTViNGQ0
OTM5Li5mZDlmMGYxNmVmM2Y0NWJhM2JiM2QyZmFiMzNjNzQxZjY0ZGVhNjI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTYxLDcgKzU2MSw5IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50
ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCk7CiAgICAgdm9pZCBkaWRI
YW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKTsKKyAgICB2b2lk
IGRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpOwogICAgIHZv
aWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsK
KyAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24o
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pOwogI2VuZGlmCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA1MGM1NjExMDljY2M2Yzc3MjFhMjVhYmM5MTNkZWI3YzI5NjQyZjVhLi4zYzE4YjIz
OTM4NGZiYWVlZGZjOTg4MGIzMmEwZWVjNzZkZTc0ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTcsNiArMzE3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
ICAgICBEaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbihib29sIGhh
bmRsZWQpCiAgICAgRGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3Rh
cnRlZCkKKyAgICBEaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVk
KQogICAgIERpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yKQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUu
aAppbmRleCBhM2Q4YWViNzQyYmNiOWI4YmQ1N2MxMWNjYmZhNDRlNWIzNmUzOWRjLi4zYjFjMzI5
YjcyYTQyMzY5Zjg0MDAzMzBmNTdmZWNiYjFhZmZiZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oCkBAIC03MCw2
ICs3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyU3RhZ2VkRHJhZ1NvdXJjZShEaWRCZWNv
bWVBY3RpdmUgPSBEaWRCZWNvbWVBY3RpdmU6Ok5vKTsKICAgICBVSVRhcmdldGVkRHJhZ1ByZXZp
ZXcgKnByZXZpZXdGb3JEcmFnSXRlbShVSURyYWdJdGVtICosIFVJVmlldyAqY29udGVudFZpZXcs
IFVJVmlldyAqcHJldmlld0NvbnRhaW5lcikgY29uc3Q7CiAgICAgdm9pZCBkcmFnU2Vzc2lvbldp
bGxEZWxheVNldERvd25BbmltYXRpb24oZGlzcGF0Y2hfYmxvY2tfdCBjb21wbGV0aW9uKTsKKyAg
ICBib29sIHNob3VsZFJlcXVlc3RBZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uKGlkIDxVSURy
YWdTZXNzaW9uPikgY29uc3Q7CisgICAgdm9pZCBkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRp
b25hbEl0ZW0odm9pZCAoXmNvbXBsZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikpOwog
CiAgICAgLy8gVGhlc2UgaGVscGVyIG1ldGhvZHMgYXJlIHVuaXF1ZSB0byBVSURyb3BJbnRlcmFj
dGlvbi4KICAgICB2b2lkIGRyb3BTZXNzaW9uRGlkRW50ZXJPclVwZGF0ZShpZCA8VUlEcm9wU2Vz
c2lvbj4sIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7CkBAIC04Niw2ICs4OCw3IEBAIHB1Ymxp
YzoKICAgICBpZDxVSURyb3BTZXNzaW9uPiBkcm9wU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZHJvcFNlc3Npb24uZ2V0KCk7IH0KICAgICBCbG9ja1B0cjx2b2lkKCk+IHRha2VEcmFnU3RhcnRD
b21wbGV0aW9uQmxvY2soKSB7IHJldHVybiBXVEZNb3ZlKG1fZHJhZ1N0YXJ0Q29tcGxldGlvbkJs
b2NrKTsgfQogICAgIEJsb2NrUHRyPHZvaWQoKT4gdGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2so
KSB7IHJldHVybiBXVEZNb3ZlKG1fZHJhZ0NhbmNlbFNldERvd25CbG9jayk7IH0KKyAgICBCbG9j
a1B0cjx2b2lkKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKT4gdGFrZUFkZERyYWdJdGVtQ29tcGxl
dGlvbkJsb2NrKCkgeyByZXR1cm4gV1RGTW92ZShtX2FkZERyYWdJdGVtQ29tcGxldGlvbkJsb2Nr
KTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUHJldmlld3NGb3JBY3RpdmVEcmFnU291
cmNlcygpOwpAQCAtOTksNiArMTAyLDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQgPFVJ
RHJvcFNlc3Npb24+PiBtX2Ryb3BTZXNzaW9uOwogICAgIEJsb2NrUHRyPHZvaWQoKT4gbV9kcmFn
U3RhcnRDb21wbGV0aW9uQmxvY2s7CiAgICAgQmxvY2tQdHI8dm9pZCgpPiBtX2RyYWdDYW5jZWxT
ZXREb3duQmxvY2s7CisgICAgQmxvY2tQdHI8dm9pZChOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKik+
IG1fYWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2s7CiAKICAgICBzdGQ6Om9wdGlvbmFsPERyYWdT
b3VyY2VTdGF0ZT4gbV9zdGFnZWREcmFnU291cmNlOwogICAgIFZlY3RvcjxEcmFnU291cmNlU3Rh
dGU+IG1fYWN0aXZlRHJhZ1NvdXJjZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQppbmRleCA3M2ZmMDdiYjQwZTJi
NDllMzgwZTRiODQ3NmIyMGMxMzIyZGI4OTY5Li5lNTJkYmE5OTViZDViYTFhODg3ZjNhZTRmODhm
OTE2ZDQyOTMxOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW0KQEAgLTE2Nyw2ICsxNjcsMTcgQEAgdm9pZCBE
cmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OmRyYWdTZXNzaW9uV2lsbERlbGF5U2V0RG93bkFuaW1h
dGlvbihkaXNwYXRjaF9ibG8KICAgICBtX2RyYWdDYW5jZWxTZXREb3duQmxvY2sgPSBjb21wbGV0
aW9uOwogfQogCitib29sIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6c2hvdWxkUmVxdWVzdEFk
ZGl0aW9uYWxJdGVtRm9yRHJhZ1Nlc3Npb24oaWQgPFVJRHJhZ1Nlc3Npb24+IHNlc3Npb24pIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZHJhZ1Nlc3Npb24gPT0gc2Vzc2lvbiAmJiAhbV9hZGREcmFn
SXRlbUNvbXBsZXRpb25CbG9jayAmJiAhbV9kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7Cit9CisK
K3ZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRk
aXRpb25hbEl0ZW0odm9pZCAoXmNvbXBsZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikp
Cit7CisgICAgY2xlYXJTdGFnZWREcmFnU291cmNlKCk7CisgICAgbV9hZGREcmFnSXRlbUNvbXBs
ZXRpb25CbG9jayA9IGNvbXBsZXRpb247Cit9CisKIHZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0
YXRlOjpkcm9wU2Vzc2lvbkRpZEVudGVyT3JVcGRhdGUoaWQgPFVJRHJvcFNlc3Npb24+IHNlc3Np
b24sIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICBtX2Ryb3BTZXNzaW9uID0gc2Vz
c2lvbjsKQEAgLTIxMCw2ICsyMjEsOSBAQCB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6
ZHJhZ0FuZERyb3BTZXNzaW9uc0RpZEVuZCgpCiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2Nr
ID0gdGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSkKICAgICAgICAgY29tcGxldGlvbkJsb2Nr
KCk7CiAKKyAgICBpZiAoYXV0byBjb21wbGV0aW9uQmxvY2sgPSB0YWtlQWRkRHJhZ0l0ZW1Db21w
bGV0aW9uQmxvY2soKSkKKyAgICAgICAgY29tcGxldGlvbkJsb2NrKEBbIF0pOworCiAgICAgaWYg
KGF1dG8gY29tcGxldGlvbkJsb2NrID0gdGFrZURyYWdTdGFydENvbXBsZXRpb25CbG9jaygpKQog
ICAgICAgICBjb21wbGV0aW9uQmxvY2soKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggM2MzMDg2YmM5NzBlMDFlOTIyMGYzMGFm
YTk0YmMwM2NjYmFmMDI3Zi4uN2Y5YmU3YjVkNDg0ZTczMGIzMGNhZTJhM2VjYTdmYTFkMDFmNTlk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTIwNSw2ICsyMDUsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRp
b24oYm9vbCBoYW5kbGVkKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUlu
dGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkSGFu
ZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRlZCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0ZW0mLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2UpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29uY2x1ZGVFZGl0
RGF0YUludGVyYWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY2FyZXRSZWN0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAwZjJiNzc0YjdjZjI3N2UwMTQ2YTM2
NzNlYjI0ZWMzODljMjYwYjUwLi5iZDBmZWU0YWZmODE4Njg5OTQwNWIwMTExNDQ2NWIyNDMyZmQz
YjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCkBAIC03ODYsNiArNzg2LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEhhbmRs
ZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCiAgICAgW21fY29udGVu
dFZpZXcgX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDpzdGFydGVkXTsKIH0K
IAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVl
c3QoYm9vbCBhZGRlZCkKK3sKKyAgICBbbV9jb250ZW50VmlldyBfZGlkSGFuZGxlQWRkaXRpb25h
bERyYWdJdGVtc1JlcXVlc3Q6YWRkZWRdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFy
dERyYWcoY29uc3QgRHJhZ0l0ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiBpbWFnZSkKIHsKICAgICBbbV9jb250ZW50VmlldyBfc3RhcnREcmFnOlNoYXJlYWJsZUJpdG1h
cDo6Y3JlYXRlKGltYWdlKS0+bWFrZUNHSW1hZ2VDb3B5KCkgaXRlbTppdGVtXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAppbmRleCA5ZjcwM2Q4YmYyODliZmI1OGIwZWQ2NDViNTRhMzgyODZmOTQ1NGVhLi43ZGY5YmQy
NjE4Y2VkNWIyNjE1Y2FiNTU5YjkzOWY2YjhmZGFmYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zMjEs
NiArMzIxLDcgQEAgRk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRF
TlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9kaWRDaGFuZ2VEcmFnSW50ZXJh
Y3Rpb25Qb2xpY3k7CiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbjooQk9PTCloYW5kbGVkOwogLSAodm9pZClfZGlkSGFuZGxlU3RhcnREYXRhSW50
ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQ7CistICh2b2lkKV9kaWRIYW5kbGVBZGRpdGlv
bmFsRHJhZ0l0ZW1zUmVxdWVzdDooQk9PTClhZGRlZDsKIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0
YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIGl0ZW06KGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJilp
dGVtOwogLSAodm9pZClfZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPilkYXRhOwogLSAodm9pZClfZGlkQ2hhbmdl
RGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0
OihDR1JlY3QpcmVjdDsKQEAgLTMzMyw2ICszMzQsNyBAQCBGT1JfRUFDSF9XS0NPTlRFTlRWSUVX
X0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZv
aWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Np
b247CiAtIChOU0FycmF5ICopX3NpbXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbjsK
IC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNl
c3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uOworLSAodm9pZClf
c2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihD
R1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9u
OwogI2VuZGlmCiAKIC0gKHZvaWQpX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjoo
Q0dQb2ludClsb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGE5Njg5NjE0NjBiMDdhNDcxMDU0
ZTUyZGUyYWJiOTVmMDNiMzJlMWUuLjdlOGMzZmY4NWJjNzFlNTAyYTlmOWNjZDU3NzgxZGFhMDIx
NjBlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDI1OSw2ICs0MjU5LDMwIEBAIC0gKHZvaWQpX3N0
YXJ0RHJhZzooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIGl0ZW06KGNvbnN0IERyYWdJdGVt
JilpdGVtCiAgICAgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5zdGFnZURyYWdJdGVtKGl0ZW0s
IGRyYWdJbWFnZS5nZXQoKSk7CiB9CiAKKy0gKHZvaWQpX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFn
SXRlbXNSZXF1ZXN0OihCT09MKWFkZGVkCit7CisgICAgYXV0byBjb21wbGV0aW9uID0gX2RyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZS50YWtlQWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKTsKKyAg
ICBpZiAoIWNvbXBsZXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkl0ZW1Qcm92aWRl
clJlZ2lzdHJhdGlvbkluZm9MaXN0ICpyZWdpc3RyYXRpb25MaXN0ID0gW1tXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSB0YWtlUmVnaXN0cmF0aW9uTGlzdF07CisgICAg
aWYgKCFhZGRlZCB8fCAhcmVnaXN0cmF0aW9uTGlzdCB8fCAhX2RyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5oYXNTdGFnZWREcmFnU291cmNlKCkpIHsKKyAgICAgICAgX2RyYWdEcm9wSW50ZXJhY3Rp
b25TdGF0ZS5jbGVhclN0YWdlZERyYWdTb3VyY2UoKTsKKyAgICAgICAgY29tcGxldGlvbihAWyBd
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3RhZ2VkRHJhZ1NvdXJjZSA9
IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuc3RhZ2VkRHJhZ1NvdXJjZSgpOworICAgIE5TQXJy
YXkgKmRyYWdJdGVtc1RvQWRkID0gW3NlbGYgX2l0ZW1zRm9yQmVnaW5uaW5nT3JBZGRpbmdUb1Nl
c3Npb25XaXRoUmVnaXN0cmF0aW9uTGlzdDpyZWdpc3RyYXRpb25MaXN0IHN0YWdlZERyYWdTb3Vy
Y2U6c3RhZ2VkRHJhZ1NvdXJjZV07CisgICAgaWYgKCFkcmFnSXRlbXNUb0FkZC5jb3VudCkKKyAg
ICAgICAgX3BhZ2UtPmRyYWdDYW5jZWxsZWQoKTsKKworICAgIFJFTEVBU0VfTE9HKERyYWdBbmRE
cm9wLCAiRHJhZyBzZXNzaW9uOiAlcCBhZGRpbmcgJXR1IGl0ZW1zIiwgX2RyYWdEcm9wSW50ZXJh
Y3Rpb25TdGF0ZS5kcmFnU2Vzc2lvbigpLCBkcmFnSXRlbXNUb0FkZC5jb3VudCk7CisgICAgX2Ry
YWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5jbGVhclN0YWdlZERyYWdTb3VyY2UoZHJhZ0l0ZW1zVG9B
ZGQuY291bnQgPyBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OkRpZEJlY29tZUFjdGl2ZTo6WWVz
IDogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpEaWRCZWNvbWVBY3RpdmU6Ok5vKTsKKworICAg
IGNvbXBsZXRpb24oZHJhZ0l0ZW1zVG9BZGQpOworfQorCiAtICh2b2lkKV9kaWRIYW5kbGVTdGFy
dERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6KEJPT0wpc3RhcnRlZAogewogICAgIEJsb2NrUHRyPHZv
aWQoKT4gc2F2ZWRDb21wbGV0aW9uQmxvY2sgPSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLnRh
a2VEcmFnU3RhcnRDb21wbGV0aW9uQmxvY2soKTsKQEAgLTQ0NTQsNiArNDQ3OCwzNyBAQCAtICh2
b2lkKV9yZXN0b3JlQ2FsbG91dEJhcklmTmVlZGVkCiAgICAgX3Nob3VsZFJlc3RvcmVDYWxsb3V0
QmFyQWZ0ZXJEcm9wID0gTk87CiB9CiAKKy0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKV9pdGVt
c0ZvckJlZ2lubmluZ09yQWRkaW5nVG9TZXNzaW9uV2l0aFJlZ2lzdHJhdGlvbkxpc3Q6KFdlYkl0
ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICopcmVnaXN0cmF0aW9uTGlzdCBzdGFnZWRE
cmFnU291cmNlOihjb25zdCBEcmFnU291cmNlU3RhdGUmKXN0YWdlZERyYWdTb3VyY2UKK3sKKyAg
ICBVSUl0ZW1Qcm92aWRlciAqZGVmYXVsdEl0ZW1Qcm92aWRlciA9IHJlZ2lzdHJhdGlvbkxpc3Qu
aXRlbVByb3ZpZGVyOworICAgIGlmICghZGVmYXVsdEl0ZW1Qcm92aWRlcikKKyAgICAgICAgcmV0
dXJuIEBbIF07CisKKyAgICBOU0FycmF5ICphZGp1c3RlZEl0ZW1Qcm92aWRlcnM7CisgICAgaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRl
OworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVByb3ZpZGVyc0Zvckl0ZW1Qcm92aWRlcjpy
ZXByZXNlbnRpbmdPYmplY3RzOmFkZGl0aW9uYWxEYXRhOildKSB7CisgICAgICAgIGF1dG8gcmVw
cmVzZW50aW5nT2JqZWN0cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0p
OworICAgICAgICBhdXRvIGFkZGl0aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW3JlZ2lzdHJhdGlvbkxpc3QgZW51bWVyYXRl
SXRlbXM6W3JlcHJlc2VudGluZ09iamVjdHMsIGFkZGl0aW9uYWxEYXRhXSAoV2ViSXRlbVByb3Zp
ZGVyUmVnaXN0cmF0aW9uSW5mbyAqaXRlbSwgTlNVSW50ZWdlcikgeworICAgICAgICAgICAgaWYg
KGl0ZW0ucmVwcmVzZW50aW5nT2JqZWN0KQorICAgICAgICAgICAgICAgIFtyZXByZXNlbnRpbmdP
YmplY3RzIGFkZE9iamVjdDppdGVtLnJlcHJlc2VudGluZ09iamVjdF07CisgICAgICAgICAgICBp
ZiAoaXRlbS50eXBlSWRlbnRpZmllciAmJiBpdGVtLmRhdGEpCisgICAgICAgICAgICAgICAgW2Fk
ZGl0aW9uYWxEYXRhIHNldE9iamVjdDppdGVtLmRhdGEgZm9yS2V5Oml0ZW0udHlwZUlkZW50aWZp
ZXJdOworICAgICAgICB9XTsKKyAgICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlk
ZXJzRm9ySXRlbVByb3ZpZGVyOmRlZmF1bHRJdGVtUHJvdmlkZXIgcmVwcmVzZW50aW5nT2JqZWN0
czpyZXByZXNlbnRpbmdPYmplY3RzLmdldCgpIGFkZGl0aW9uYWxEYXRhOmFkZGl0aW9uYWxEYXRh
LmdldCgpXTsKKyAgICB9IGVsc2UKKyAgICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gQFsg
ZGVmYXVsdEl0ZW1Qcm92aWRlciBdOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmRyYWdJdGVtcyA9
IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTphZGp1c3RlZEl0ZW1Qcm92aWRlcnMu
Y291bnRdOworICAgIGZvciAoVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciBpbiBhZGp1c3Rl
ZEl0ZW1Qcm92aWRlcnMpIHsKKyAgICAgICAgYXV0byBpdGVtID0gYWRvcHROUyhbW1VJRHJhZ0l0
ZW0gYWxsb2NdIGluaXRXaXRoSXRlbVByb3ZpZGVyOml0ZW1Qcm92aWRlcl0pOworICAgICAgICBb
aXRlbSBfc2V0UHJpdmF0ZUxvY2FsQ29udGV4dDpAKHN0YWdlZERyYWdTb3VyY2UuaXRlbUlkZW50
aWZpZXIpXTsKKyAgICAgICAgW2RyYWdJdGVtcyBhZGRPYmplY3Q6aXRlbS5hdXRvcmVsZWFzZSgp
XTsKKyAgICB9CisKKyAgICByZXR1cm4gZHJhZ0l0ZW1zOworfQorCiAjcHJhZ21hIG1hcmsgLSBV
SURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlCiAKIC0gKEJPT0wpX2RyYWdJbnRlcmFjdGlvbjooVUlE
cmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzaG91bGREZWxheUNvbXBldGluZ0dlc3R1cmVS
ZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopY29tcGV0aW5nR2VzdHVyZVJlY29nbml6
ZXIKQEAgLTQ0NzcsNiArNDUzMiwxNyBAQCAtIChOU0ludGVnZXIpX2RyYWdJbnRlcmFjdGlvbjoo
VUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBkYXRhT3duZXJGb3JTZXNzaQogICAgIHJl
dHVybiBkYXRhT3duZXI7CiB9CiAKKy0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50
ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBpdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQgPFVJRHJh
Z1Nlc3Npb24+KXNlc3Npb24gd2l0aFRvdWNoQXRQb2ludDooQ0dQb2ludClwb2ludCBjb21wbGV0
aW9uOih2b2lkKF4pKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKSljb21wbGV0aW9uCit7CisgICAg
aWYgKCFfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLnNob3VsZFJlcXVlc3RBZGRpdGlvbmFsSXRl
bUZvckRyYWdTZXNzaW9uKHNlc3Npb24pKSB7CisgICAgICAgIGNvbXBsZXRpb24oQFsgXSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmRy
YWdTZXNzaW9uV2lsbFJlcXVlc3RBZGRpdGlvbmFsSXRlbShjb21wbGV0aW9uKTsKKyAgICBfcGFn
ZS0+cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKHJvdW5kZWRJbnRQb2ludChw
b2ludCksIHJvdW5kZWRJbnRQb2ludChwb2ludCkpOworfQorCiAtICh2b2lkKV9kcmFnSW50ZXJh
Y3Rpb246KFVJRHJhZ0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJlcGFyZUZvclNlc3Npb246
KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3Qp
Y29tcGxldGlvbgogewogICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
cl07CkBAIC00NTE1LDM3ICs0NTgxLDcgQEAgLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopZHJh
Z0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGl0ZW0KIAogICAg
IGF1dG8gc3RhZ2VkRHJhZ1NvdXJjZSA9IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuc3RhZ2Vk
RHJhZ1NvdXJjZSgpOwogICAgIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICpy
ZWdpc3RyYXRpb25MaXN0ID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3Rh
bmNlXSB0YWtlUmVnaXN0cmF0aW9uTGlzdF07Ci0gICAgVUlJdGVtUHJvdmlkZXIgKmRlZmF1bHRJ
dGVtUHJvdmlkZXIgPSByZWdpc3RyYXRpb25MaXN0Lml0ZW1Qcm92aWRlcjsKLSAgICBpZiAoIWRl
ZmF1bHRJdGVtUHJvdmlkZXIpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJE
cmFnIHNlc3Npb24gZmFpbGVkOiAlcCAobm8gaXRlbSBwcm92aWRlcnMgZ2VuZXJhdGVkIGJlZm9y
ZSBhZGp1c3RtZW50KSIsIHNlc3Npb24pOwotICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgp
OwotICAgICAgICBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmNsZWFyU3RhZ2VkRHJhZ1NvdXJj
ZSgpOwotICAgICAgICByZXR1cm4gQFsgXTsKLSAgICB9Ci0KLSAgICAvLyBHaXZlIGludGVybmFs
IGNsaWVudHMgc3VjaCBhcyBNYWlsIG9uZSBmaW5hbCBjaGFuY2UgdG8gYXVnbWVudCB0aGUgY29u
dGVudHMgb2YgZWFjaCBVSUl0ZW1Qcm92aWRlciBiZWZvcmUgc2VuZGluZyB0aGUgZHJhZyBpdGVt
cyBvZmYgdG8gVUlLaXQuCi0gICAgTlNBcnJheSAqYWRqdXN0ZWRJdGVtUHJvdmlkZXJzOwotICAg
IGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc2VsZi53ZWJWaWV3VUlEZWxl
Z2F0ZTsKLSAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzphZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlk
ZXI6cmVwcmVzZW50aW5nT2JqZWN0czphZGRpdGlvbmFsRGF0YTopXSkgewotICAgICAgICBhdXRv
IHJlcHJlc2VudGluZ09iamVjdHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKLSAgICAgICAgYXV0byBhZGRpdGlvbmFsRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIFtyZWdpc3RyYXRpb25MaXN0IGVudW1l
cmF0ZUl0ZW1zOltyZXByZXNlbnRpbmdPYmplY3RzLCBhZGRpdGlvbmFsRGF0YV0gKFdlYkl0ZW1Q
cm92aWRlclJlZ2lzdHJhdGlvbkluZm8gKml0ZW0sIE5TVUludGVnZXIpIHsKLSAgICAgICAgICAg
IGlmIChpdGVtLnJlcHJlc2VudGluZ09iamVjdCkKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50
aW5nT2JqZWN0cyBhZGRPYmplY3Q6aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOwotICAgICAgICAg
ICAgaWYgKGl0ZW0udHlwZUlkZW50aWZpZXIgJiYgaXRlbS5kYXRhKQotICAgICAgICAgICAgICAg
IFthZGRpdGlvbmFsRGF0YSBzZXRPYmplY3Q6aXRlbS5kYXRhIGZvcktleTppdGVtLnR5cGVJZGVu
dGlmaWVyXTsKLSAgICAgICAgfV07Ci0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9IFt1
aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVBy
b3ZpZGVyc0Zvckl0ZW1Qcm92aWRlcjpkZWZhdWx0SXRlbVByb3ZpZGVyIHJlcHJlc2VudGluZ09i
amVjdHM6cmVwcmVzZW50aW5nT2JqZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTphZGRpdGlvbmFs
RGF0YS5nZXQoKV07Ci0gICAgfSBlbHNlCi0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9
IEBbIGRlZmF1bHRJdGVtUHJvdmlkZXIgXTsKLQotICAgIE5TTXV0YWJsZUFycmF5ICpkcmFnSXRl
bXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6YWRqdXN0ZWRJdGVtUHJvdmlk
ZXJzLmNvdW50XTsKLSAgICBmb3IgKFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgaW4gYWRq
dXN0ZWRJdGVtUHJvdmlkZXJzKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IGFkb3B0TlMoW1tVSURy
YWdJdGVtIGFsbG9jXSBpbml0V2l0aEl0ZW1Qcm92aWRlcjppdGVtUHJvdmlkZXJdKTsKLSAgICAg
ICAgW2l0ZW0gX3NldFByaXZhdGVMb2NhbENvbnRleHQ6QChzdGFnZWREcmFnU291cmNlLml0ZW1J
ZGVudGlmaWVyKV07Ci0gICAgICAgIFtkcmFnSXRlbXMgYWRkT2JqZWN0Oml0ZW0uYXV0b3JlbGVh
c2UoKV07Ci0gICAgfQotCisgICAgTlNBcnJheSAqZHJhZ0l0ZW1zID0gW3NlbGYgX2l0ZW1zRm9y
QmVnaW5uaW5nT3JBZGRpbmdUb1Nlc3Npb25XaXRoUmVnaXN0cmF0aW9uTGlzdDpyZWdpc3RyYXRp
b25MaXN0IHN0YWdlZERyYWdTb3VyY2U6c3RhZ2VkRHJhZ1NvdXJjZV07CiAgICAgaWYgKCFbZHJh
Z0l0ZW1zIGNvdW50XSkKICAgICAgICAgX3BhZ2UtPmRyYWdDYW5jZWxsZWQoKTsKIApAQCAtNDgy
OCw2ICs0ODY0LDExIEBAIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlv
blNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0CiAgICAgW3NlbGYgX2RyYWdJ
bnRlcmFjdGlvbjpfZHJhZ0ludGVyYWN0aW9uLmdldCgpIHByZXBhcmVGb3JTZXNzaW9uOnNlc3Np
b24gY29tcGxldGlvbjpjb21wbGV0aW9uXTsKIH0KIAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0Zv
ckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9u
IGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uCit7CisgICAgW3NlbGYg
X2RyYWdJbnRlcmFjdGlvbjpfZHJhZ0ludGVyYWN0aW9uLmdldCgpIGl0ZW1zRm9yQWRkaW5nVG9T
ZXNzaW9uOnNlc3Npb24gd2l0aFRvdWNoQXRQb2ludDpsb2NhdGlvbiBjb21wbGV0aW9uOmNvbXBs
ZXRpb25dOworfQorCiAjZW5kaWYKIAogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25B
dExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAyMTFhYWM3ZGQ4MDcxMzcwMjc1OTdhMWY2YTcw
NDQ1N2ZmNjkzNTVlLi5iZDBjODFiNmI0ZmQwMTVmZGExZWQ2NzNhMGUwMzNjZDk0YzNlZmJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAg
LTEwOTQsMTIgKzEwOTQsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0YXJ0RGF0
YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCiAgICAgbV9wYWdlQ2xpZW50LmRpZEhh
bmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChzdGFydGVkKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQp
Cit7CisgICAgbV9wYWdlQ2xpZW50LmRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0
KGFkZGVkKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdGFydERhdGFJbnRlcmFj
dGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbikKIHsKICAgICBpZiAoaXNWYWxpZCgpKQogICAg
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RTdGFydERhdGFJ
bnRlcmFjdGlvbihjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24pLCBtX3BhZ2VJRCk7CiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Np
b24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pCit7CisgICAgaWYgKGlzVmFsaWQoKSkKKyAgICAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWRkaXRpb25hbEl0
ZW1zRm9yRHJhZ1Nlc3Npb24oY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uKSwgbV9wYWdl
SUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0
aW9uKHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+IGRhdGEpCiB7CiAgICAgbV9wYWdl
Q2xpZW50LmRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihkYXRhKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNTk1OWEyOGRhNGFiN2FhNzRm
YjUxZDA5NTk0M2I3NzQ0NGFhOGU3Li5lNTQ2OTkzMDRhYmZlNDY3ZmY1MTYwY2JkOTZmMmU1OWQx
OGNhNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xMDMyLDYgKzEwMzIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4g
c3dpdGNoVG9CbG9ja1NlbGVjdGlvbkF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBT
ZWxlY3Rpb25IYW5kbGVQb3NpdGlvbik7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAg
ICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24pOworICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uKTsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDljNzEw
NjYxOTJkY2FmMGFmZDM4NDVjMjFjODM3ZmVlZjMwMmMxN2QuLjA1MjFhYTI4MjNiNzNhY2Y4MzM1
NmRmNmM3YTFlM2I4NWMwODMxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjUzLDYgKzI1Myw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJB
Q1RJT04pCiAgICAgUmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKFdlYkNvcmU6OkludFBvaW50
IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbikKKyAgICBS
ZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oV2ViQ29yZTo6SW50UG9pbnQgY2xp
ZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uKQogI2VuZGlmCiAK
ICAgICAjIFBvcHVwIG1lbnUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGUwZGQ3ZjlmYTI3MGUyZmI2NzZmNTcxYTM4NjFj
Y2NkYzhhNDY0NDcuLmZiN2I0NjY1NjZhMWJjZTg4N2Q1NzhiNGM4ZDA5NDU0NmI5N2ZlZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCkBAIC02MzEsNiArNjMxLDEzIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0YXJ0RGF0YUlu
dGVyYWN0aW9uKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVx
dWVzdChkaWRTdGFydCkpOwogfQogCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRl
bXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRIYW5kbGVB
ZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChmYWxzZSkpOworfQorCiB2b2lkIFdlYlBhZ2U6OmRp
ZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbigpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxUZXh0
SW5kaWNhdG9yRGF0YT4gdGV4dEluZGljYXRvckRhdGE7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTA5MzA5YzczYTQxYzdkZTVjZTQwMThhNWU2
ZWIzYjM1ZGNkYWJmMy4uMWZhYzA3Mzk4OWYwNGE3Yzk1N2QyNWMyZDI5NTMxMTk2MGZhMmU2NiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUxIEBACisyMDE3LTA5LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1MgV0syXSBBZGQgcGx1bWJpbmcgZm9yIFdLQ29udGVudFZpZXcg
dG8gYXNrIHRoZSB3ZWIgcHJvY2VzcyBmb3IgYWRkaXRpb25hbCBkcmFnIGl0ZW1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYzNDgKKyAgICAgICAg
V29yayB0b3dhcmRzIDxyZGFyOi8vcHJvYmxlbS8zMTE0NDY3ND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VzIG5ldyB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHNpbXVsYXRlIGFkZGluZyB0YXBwaW5nIHRvIGFkZCBhZGRpdGlvbmFsIGl0
ZW1zIHRvIHRoZSBjdXJyZW50IGRyYWcKKyAgICAgICAgc2Vzc2lvbi4gV2UgYWRkIC1bRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206dG86YWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRp
b25zOl0sIGZvciB3aGljaCB0aGUgbGFzdAorICAgICAgICBhcmd1bWVudCBpcyBhIGRpY3Rpb25h
cnkgbWFwcGluZyBwcm9ncmVzcyAoYSBkb3VibGUgYmV0d2VlbiAwIGFuZCAxKSB0byBOU1ZhbHVl
cyByZXByZXNlbnRpbmcgdGhlIGxvY2F0aW9uIGZyb20KKyAgICAgICAgd2hpY2ggdGhlIGRyYWcg
YW5kIGRyb3Agc2ltdWxhdGlvbiB3aWxsIHJlcXVlc3QgYW4gYWRkaXRpb25hbCBkcmFnIGl0ZW0u
IER1cmluZyB0aGUgc2ltdWxhdGVkIGRyYWcgYW5kIGRyb3AsCisgICAgICAgIHdoZW4gdGhlIHBy
b2dyZXNzIHZhbHVlIGV4Y2VlZHMgYSB2YWx1ZSBpbiB0aGUgbWFwIG9mIHJlbWFpbmluZyBhZGRp
dGlvbmFsIGl0ZW0gcmVxdWVzdCBsb2NhdGlvbnMsIHdlIGhhbHQKKyAgICAgICAgcHJvZ3Jlc3Mg
YW5kIGluc3RlYWQgcmVxdWVzdCBhZGRpdGlvbmFsIGl0ZW1zIGZyb20gdGhlIGxvY2F0aW9uIHNw
ZWNpZmllZC4KKworICAgICAgICBUaGUgb25seSBwYXNzaW5nIHRlc3Qgd2UgY2FuIGNyZWF0ZSB1
c2luZyB0aGUgbmV3IG1hY2hpbmVyeSBpcyBvbmUgdGhhdCB2ZXJpZmllcyB0aGF0IHByZXZlbnRE
ZWZhdWx0KCkgb24KKyAgICAgICAgZHJhZ3N0YXJ0IHdvcmtzIGFzIGV4cGVjdGVkLCBwcmV2ZW50
aW5nIGFkZGl0aW9uYWwgaXRlbXMgZnJvbSBiZWluZyBhZGRlZC4gV2hpbGUgdGhpcyB0cml2aWFs
bHkgcGFzc2VzIG5vdywKKyAgICAgICAgc2luY2UgdGhlIHdlYi1wcm9jZXNzLXNpZGUgb2YgdGhl
IGFkZGl0aW9uYWwgaXRlbXMgZmxvdyBpcyBub3QgeWV0IGltcGxlbWVudGVkLCBpdCBzaG91bGQg
Y29udGludWUgdG8gcGFzcyBhZnRlcgorICAgICAgICB0aGlzIHBvcnRpb24gaXMgaW1wbGVtZW50
ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L3NlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbDogQWRkZWQuCisKKyAg
ICAgICAgQWRkIGEgbmV3IHRlc3QgcGFnZSB0aGF0IGNvbnRhaW5zIHNvbWUgbm9uLWVkaXRhYmxl
IHRleHQsIGFuIGltYWdlLCBhIGxpbmssIGFuZCBhIHJpY2ggdGV4dCBlZGl0YWJsZSBhcmVhLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW06CisgICAgICAgICgtW01vY2tEcmFn
RHJvcFNlc3Npb24gYWRkSXRlbXM6XSk6CisKKyAgICAgICAgQ29udmVuaWVuY2UgbWV0aG9kIHRv
IGFkZCBhZGRpdGlvbmFsIG1vY2sgZHJhZyBpdGVtcyB0byBhIGRyYWcgb3IgZHJvcCBzZXNzaW9u
LgorCisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBfcmVzZXRTaW11bGF0ZWRT
dGF0ZV0pOgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgcnVuRnJvbTp0bzpd
KToKKworICAgICAgICBDb252ZXJ0ZWQgaW50byBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5k
IHRoZSBsYXR0ZXIgdmVyc2lvbiwgcGFzc2luZyBpbiBuaWwgZm9yIHRoZSBhZGRpdGlvbmFsIGl0
ZW0gcmVxdWVzdAorICAgICAgICBsb2NhdGlvbnMgZGljdGlvbmFyeS4KKworICAgICAgICAoLVtE
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgcnVuRnJvbTp0bzphZGRpdGlvbmFsSXRlbVJlcXVlc3RM
b2NhdGlvbnM6XSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBfZW5xdWV1
ZVBlbmRpbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNdKToKKyAgICAgICAgKC1bRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yIF9zZW5kUXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0XSk6
CisKKyAgICAgICAgTmV3IGhlbHBlciBtZXRob2RzIHRvIGRldGVjdCB3aGVuIGFuZCB3aGVyZSBh
ZGRpdGlvbmFsIGl0ZW1zIHNob3VsZCBiZSAiYWRkZWQiLCBhbmQgc3Vic2VxdWVudGx5IHNpbXVs
YXRlIGFkZGluZworICAgICAgICBkcmFnIGl0ZW1zIGF0IHRoZXNlIGdpdmVuIGxvY2F0aW9ucy4K
KworICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX2FkdmFuY2VQcm9ncmVzc10p
OgorCiAyMDE3LTA5LTA0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFN3aXRjaCBIVE1MTWVkaWFFbGVtZW50IHRvIHJlbGVhc2UgbG9nZ2luZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAyNjBjYWEyZmJlNzU4OWY5NDgwYTUwODI1MThmMTQ5MDdh
ZjI3ZmIxLi42ZmNhNjgyYzI4ZGRkMmRkODAzMTRhYTllYmQzYTQ1ZjAxZWMyOTdjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNjk0LDYgKzY5NCw3IEBACiAJCUY0RDRGM0I2MUU0RTJCQ0Iw
MEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyog
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tICovOyB9OwogCQlGNEQ0RjNCOTFFNEUzNkU0MDBC
QjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUlu
dGVyYWN0aW9uVGVzdHMubW0gKi87IH07CiAJCUY0RDVFNEU4MUYwQzVEMzgwMDhDMUE0OSAvKiBk
cmFnc3RhcnQtY2xlYXItc2VsZWN0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENUU0RTcxRjBDNUQyNzAwOEMxQTQ5IC8qIGRy
YWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCAqLzsgfTsKKwkJRjRENjVEQTgxRjVFNDcwNDAw
OUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ2NURB
NzFGNUU0NkMwMDA5RDhDMjcgLyogc2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJs
ZS5odG1sICovOyB9OwogCQlGNERFRjZFRDFFOUI0REI2MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGlu
ay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1h
bmQtaW5wdXQuaHRtbCAqLzsgfTsKIAkJRjRGMTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdl
LXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFy
Z2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sICovOyB9OwogCQlGNEY0MDVCQzFENEMwRDFD
MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0
MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbCAqLzsgfTsKQEAgLTk1Myw2ICs5NTQsNyBAQAogCQkJCUY2RkREREQ2MTQyNDFD
NkYwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTEyRERDMDAxRTgzNzNFNzAwQ0Y2Q0FFIC8qIHJlbmRlcmVkLWltYWdlLWV4Y2x1ZGluZy1vdmVy
Zmxvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0Njg0OUMwMUVFRjVFRjMwMEI5
MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJRjRENjVEQTgxRjVFNDcwNDAwOUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1h
bmQtZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QTY2QkRCODFFQUYx
OEQ1MDBDQ0M5MjQgLyogc2V0LWxvbmctdGl0bGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1MkI4Q0Y5ODE1ODY4RDkxMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxk
LW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTcy
NCw2ICsxNzI2LDcgQEAKIAkJRjRENEYzQjUxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYz
QjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YUludGVyYWN0aW9uVGVzdHMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVFNEU3MUYwQzVEMjcwMDhDMUE0OSAvKiBk
cmFnc3RhcnQtY2xlYXItc2VsZWN0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZHJhZ3N0YXJ0LWNsZWFy
LXNlbGVjdGlvbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRENjVEQTcx
RjVFNDZDMDAwOUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzZWxlY3RlZC10ZXh0LWltYWdlLWxp
bmstYW5kLWVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNERF
RjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8q
IGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzQsNiArMjIzNyw3IEBACiAJCQkJRjQxQUI5OUEx
RUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCAqLywKIAkJCQlBMTJEREJGRjFF
ODM3M0MxMDBDRjZDQUUgLyogcmVuZGVyZWQtaW1hZ2UtZXhjbHVkaW5nLW92ZXJmbG93Lmh0bWwg
Ki8sCiAJCQkJRjQ2ODQ5QkYxRUVGNUVEQzAwQjkzN0ZFIC8qIHJpY2gtYW5kLXBsYWluLXRleHQu
aHRtbCAqLywKKwkJCQlGNEQ2NURBNzFGNUU0NkMwMDA5RDhDMjcgLyogc2VsZWN0ZWQtdGV4dC1p
bWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sICovLAogCQkJCUM5QjRBRDI5MUVDQTZFQTUwMEY1
RkVBMCAvKiBzaWxlbmNlLWxvbmcubTRhICovLAogCQkJCUY0RjQwNUJCMUQ0QzBDRjgwMDdBOTcw
NyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovLAogCQkJCTUx
NUJFMTZFMUQ0Mjg4RkYwMEREN0M2OCAvKiBTdG9yZUJsb2JUb0JlRGVsZXRlZC5odG1sICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zZWxlY3Rl
ZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3NlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMDI5ZjZmMWZhMWU4MjQ1MjlkMWYxMmZmNTljMzhjNTBiNjA5MjYw
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9zZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSwz
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHls
ZT4KK2h0bWwsIGJvZHkgeworICAgIHdpZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAg
ICBtYXJnaW46IDA7Cit9CisKKyN0ZXh0LCAjaW1hZ2UsICNsaW5rIHsKKyAgICBoZWlnaHQ6IDEw
MHB4OworICAgIGZvbnQtc2l6ZTogODBweDsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQor
CisjZWRpdG9yIHsKKyAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICBoZWlnaHQ6IGNh
bGMoMTAwJSAtIDMwMHB4KTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBp
ZD0idGV4dCI+QUJDRDwvZGl2PgorPGRpdj48aW1nIGlkPSJpbWFnZSIgc3JjPSJhcHBsZS5naWYi
PjwvaW1nPjwvZGl2PgorPGRpdj48YSBpZD0ibGluayIgaHJlZj0iaHR0cHM6Ly93d3cuYXBwbGUu
Y29tLyI+QSBsaW5rPC9hPjwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9ImVkaXRvciI+
PC9kaXY+Cis8c2NyaXB0PgorZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXh0LCAw
LCB0ZXh0LCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCAz
ZjczYmYwNjY0Nzg4Y2FkNzA0M2ExNmZjNTc3ZTMwMzEyOTk4MWE0Li41NWIwYmJkZjE1OGFiN2Y0
ZTk2NmQ3NzQzODU0NTg4MDBhYjY0MzFlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtMTIzNCw2ICsxMjM0LDIx
IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIERvTm90Q3Jhc2hXaGVuU2VsZWN0aW9uTW92
ZXNPZmZzY3JlZW5BZnRlckRyYWdTdGFydCkKICAgICBFWFBFQ1RfV0tfU1RSRVEoIkZBUiBPRkZT
Q1JFRU4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0
aW9uKCkuZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygpIl0pOwogfQogCitURVNUKERhdGFJbnRlcmFj
dGlvblRlc3RzLCBBZGRpdGlvbmFsSXRlbXNDYW5CZVByZXZlbnRlZE9uRHJhZ1N0YXJ0KQorewor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1l
ZGl0YWJsZSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJs
aW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIGUgPT4gZS5wcmV2ZW50RGVmYXVsdCgp
KSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbWFnZS5h
ZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCBlID0+IGUucHJldmVudERlZmF1bHQoKSkiXTsK
KworICAgIGF1dG8gc2ltdWxhdG9yID0gYWRvcHROUyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRv
ciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICBbc2ltdWxhdG9y
IHJ1bkZyb206Q0dQb2ludE1ha2UoNTAsIDUwKSB0bzpDR1BvaW50TWFrZSg1MCwgNDAwKSBhZGRp
dGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnM6QHsKKyAgICAgICAgQDAuMzM6IFtOU1ZhbHVlIHZh
bHVlV2l0aENHUG9pbnQ6Q0dQb2ludE1ha2UoNTAsIDE1MCldLAorICAgICAgICBAMC42NjogW05T
VmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpDR1BvaW50TWFrZSg1MCwgMjUwKV0KKyAgICB9XTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoIkFCQ0QiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZWRpdG9yLnRleHRDb250ZW50Il0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKaW5kZXgg
MGEwZDUwZGU0Njk1NmU1YWYxNTViNWQ4ZTc2YzEwZTRjOTcxYjUwMy4uYTEzMzJkZWY4NDg4Yzlj
OGI5ZjY0NDI0YjcyYTg0NDM1NDg4MTdkYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmgKQEAgLTg2LDYgKzg2LDggQEAgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFt
ZTsKIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvbkxlYXZlRXZlbnROYW1l
OwogZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgRGF0YUludGVyYWN0aW9uU3RhcnRFdmVudE5hbWU7
CiAKK3R5cGVkZWYgTlNEaWN0aW9uYXJ5PE5TTnVtYmVyICosIE5TVmFsdWUgKj4gKlByb2dyZXNz
VG9DR1BvaW50VmFsdWVNYXA7CisKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRl
cmFjdGlvblBoYXNlKSB7CiAgICAgRGF0YUludGVyYWN0aW9uQ2FuY2VsbGVkID0gMCwKICAgICBE
YXRhSW50ZXJhY3Rpb25CZWdpbm5pbmcgPSAxLApAQCAtMTA3LDYgKzEwOSw5IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIERhdGFJbnRlcmFjdGlvblBoYXNlKSB7CiAgICAgQ0dQb2ludCBf
ZW5kTG9jYXRpb247CiAgICAgQ0dSZWN0IF9sYXN0S25vd25EcmFnQ2FyZXRSZWN0OwogCisgICAg
UmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk8TlNOdW1iZXIgKiwgTlNWYWx1ZSAqPj5fcmVt
YWluaW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zQnlQcm9ncmVzczsKKyAgICBSZXRh
aW5QdHI8TlNNdXRhYmxlQXJyYXk8TlNWYWx1ZSAqPj5fcXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1
ZXN0TG9jYXRpb25zOworCiAgICAgYm9vbCBfaXNEb25lV2FpdGluZ0ZvcklucHV0U2Vzc2lvbjsK
ICAgICBCT09MIF9zaG91bGRQZXJmb3JtT3BlcmF0aW9uOwogICAgIGRvdWJsZSBfY3VycmVudFBy
b2dyZXNzOwpAQCAtMTE1LDcgKzEyMCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIERh
dGFJbnRlcmFjdGlvblBoYXNlKSB7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZp
ZXc6KFRlc3RXS1dlYlZpZXcgKil3ZWJWaWV3OworLy8gVGhlIHN0YXJ0IGxvY2F0aW9uLCBlbmQg
bG9jYXRpb24sIGFuZCBsb2NhdGlvbnMgb2YgYWRkaXRpb25hbCBpdGVtIHJlcXVlc3RzIGFyZSBh
bGwgaW4gd2luZG93IGNvb3JkaW5hdGVzLgogLSAodm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0
TG9jYXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRpb247CistICh2b2lkKXJ1bkZyb206KENHUG9p
bnQpc3RhcnRMb2NhdGlvbiB0bzooQ0dQb2ludCllbmRMb2NhdGlvbiBhZGRpdGlvbmFsSXRlbVJl
cXVlc3RMb2NhdGlvbnM6KFByb2dyZXNzVG9DR1BvaW50VmFsdWVNYXApYWRkaXRpb25hbEl0ZW1S
ZXF1ZXN0TG9jYXRpb25zOwogLSAodm9pZCl3YWl0Rm9ySW5wdXRTZXNzaW9uOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NGb2N1c1RvU3RhcnRJbnB1dFNlc3Npb247CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0K
aW5kZXggY2M0YWY3OTNjNTQ3ODUwMWM3MjU1ODdhYmRiMzE3YjIzNWE5OGJmNC4uYTRlZWZkMTcx
ZTQ4MTIyOGJjMDlmZDI3NDM1YzRlYTc5YmNkMTU2OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQpAQCAtMTMzLDYgKzEzMywx
NyBAQCAtICh2b2lkKXNldEl0ZW1zOihOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKilpdGVtcwogICAg
IF9tb2NrSXRlbXMgPSBpdGVtczsKIH0KIAorLSAodm9pZClhZGRJdGVtczooTlNBcnJheTxVSURy
YWdJdGVtICo+ICopaXRlbXMKK3sKKyAgICBpZiAoIVtpdGVtcyBjb3VudF0pCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghW19tb2NrSXRlbXMgY291bnRdKQorICAgICAgICBfbW9ja0l0ZW1z
ID0gaXRlbXM7CisgICAgZWxzZQorICAgICAgICBfbW9ja0l0ZW1zID0gW19tb2NrSXRlbXMgYXJy
YXlCeUFkZGluZ09iamVjdHNGcm9tQXJyYXk6aXRlbXNdOworfQorCiAtIChDR1BvaW50KWxvY2F0
aW9uSW5WaWV3OihVSVZpZXcgKil2aWV3CiB7CiAgICAgcmV0dXJuIFtfd2luZG93IGNvbnZlcnRQ
b2ludDpfbW9ja0xvY2F0aW9uSW5XaW5kb3cgdG9WaWV3OnZpZXddOwpAQCAtMzA3LDYgKzMxOCw4
IEBAIC0gKHZvaWQpX3Jlc2V0U2ltdWxhdGVkU3RhdGUKICAgICBfZGF0YU9wZXJhdGlvblNlc3Np
b24gPSBuaWw7CiAgICAgX3Nob3VsZFBlcmZvcm1PcGVyYXRpb24gPSBOTzsKICAgICBfbGFzdEtu
b3duRHJhZ0NhcmV0UmVjdCA9IENHUmVjdFplcm87CisgICAgX3JlbWFpbmluZ0FkZGl0aW9uYWxJ
dGVtUmVxdWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3MgPSBuaWw7CisgICAgX3F1ZXVlZEFkZGl0aW9u
YWxJdGVtUmVxdWVzdExvY2F0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOwogfQogCiAtIChOU0FycmF5ICopb2JzZXJ2ZWRFdmVudE5hbWVzCkBAIC0zMjYsNiAr
MzM5LDExIEBAIC0gKHZvaWQpc2ltdWxhdGVBbGxUb3VjaGVzQ2FuY2VsZWQ6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiAKIC0gKHZvaWQpcnVuRnJvbTooQ0dQb2ludClzdGFydExvY2F0
aW9uIHRvOihDR1BvaW50KWVuZExvY2F0aW9uCiB7CisgICAgW3NlbGYgcnVuRnJvbTpzdGFydExv
Y2F0aW9uIHRvOmVuZExvY2F0aW9uIGFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uczpuaWxd
OworfQorCistICh2b2lkKXJ1bkZyb206KENHUG9pbnQpc3RhcnRMb2NhdGlvbiB0bzooQ0dQb2lu
dCllbmRMb2NhdGlvbiBhZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnM6KFByb2dyZXNzVG9D
R1BvaW50VmFsdWVNYXApYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zCit7CiAgICAgTlNO
b3RpZmljYXRpb25DZW50ZXIgKmRlZmF1bHRDZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl07CiAgICAgW2RlZmF1bHRDZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3Ioc2ltdWxhdGVBbGxUb3VjaGVzQ2FuY2VsZWQ6KSBuYW1lOlRlc3RXZWJL
aXRBUElTaW11bGF0ZUNhbmNlbEFsbFRvdWNoZXNOb3RpZmljYXRpb25OYW1lIG9iamVjdDpuaWxd
OwogCkBAIC0zMzQsNiArMzUyLDkgQEAgLSAodm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0TG9j
YXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRpb24KIAogICAgIFtzZWxmIF9yZXNldFNpbXVsYXRl
ZFN0YXRlXTsKIAorICAgIGlmIChhZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnMpCisgICAg
ICAgIF9yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNzID0g
YWRvcHROUyhbYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zIG11dGFibGVDb3B5XSk7CisK
ICAgICBSZXRhaW5QdHI8RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yPiBzdHJvbmdTZWxmID0gc2Vs
ZjsKICAgICBmb3IgKE5TU3RyaW5nICpldmVudE5hbWUgaW4gZGF0YUludGVyYWN0aW9uRXZlbnRO
YW1lcygpKSB7CiAgICAgICAgIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvciAqd2Vha1NlbGYgPSBz
dHJvbmdTZWxmLmdldCgpOwpAQCAtMzkxLDggKzQxMiw0NSBAQCAtICh2b2lkKV9jb25jbHVkZURh
dGFJbnRlcmFjdGlvbkFuZFBlcmZvcm1PcGVyYXRpb25JZk5lY2Vzc2FyeQogICAgICAgICBbX3dl
YlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lvbkRpZEVuZDpfZGF0YUludGVyYWN0
aW9uU2Vzc2lvbi5nZXQoKV07CiB9CiAKKy0gKHZvaWQpX2VucXVldWVQZW5kaW5nQWRkaXRpb25h
bEl0ZW1SZXF1ZXN0TG9jYXRpb25zCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKnByb2dyZXNzVmFs
dWVzVG9SZW1vdmUgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAoTlNOdW1iZXIg
KnByb2dyZXNzVmFsdWUgaW4gX3JlbWFpbmluZ0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9u
c0J5UHJvZ3Jlc3MuZ2V0KCkpIHsKKyAgICAgICAgZG91YmxlIHByb2dyZXNzID0gcHJvZ3Jlc3NW
YWx1ZS5kb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKHByb2dyZXNzID4gX2N1cnJlbnRQcm9ncmVz
cykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBbcHJvZ3Jlc3NWYWx1ZXNUb1JlbW92
ZSBhZGRPYmplY3Q6cHJvZ3Jlc3NWYWx1ZV07CisgICAgICAgIFtfcXVldWVkQWRkaXRpb25hbEl0
ZW1SZXF1ZXN0TG9jYXRpb25zIGFkZE9iamVjdDpbX3JlbWFpbmluZ0FkZGl0aW9uYWxJdGVtUmVx
dWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3Mgb2JqZWN0Rm9yS2V5OnByb2dyZXNzVmFsdWVdXTsKKyAg
ICB9CisKKyAgICBmb3IgKE5TTnVtYmVyICpwcm9ncmVzc1RvUmVtb3ZlIGluIHByb2dyZXNzVmFs
dWVzVG9SZW1vdmUpCisgICAgICAgIFtfcmVtYWluaW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9j
YXRpb25zQnlQcm9ncmVzcyByZW1vdmVPYmplY3RGb3JLZXk6cHJvZ3Jlc3NUb1JlbW92ZV07Cit9
CisKKy0gKEJPT0wpX3NlbmRRdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3QKK3sKKyAgICBpZiAo
IVtfcXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zIGNvdW50XSkKKyAgICAgICAg
cmV0dXJuIE5POworCisgICAgUmV0YWluUHRyPE5TVmFsdWU+IHJlcXVlc3RMb2NhdGlvblZhbHVl
ID0gW19xdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnMgb2JqZWN0QXRJbmRleDow
XTsKKyAgICBbX3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucyByZW1vdmVPYmpl
Y3RBdEluZGV4OjBdOworCisgICAgYXV0byByZXF1ZXN0TG9jYXRpb24gPSBbW193ZWJWaWV3IHdp
bmRvd10gY29udmVydFBvaW50OltyZXF1ZXN0TG9jYXRpb25WYWx1ZSBDR1BvaW50VmFsdWVdIHRv
Vmlldzpfd2ViVmlldy5nZXQoKV07CisgICAgW193ZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRk
aW5nVG9TZXNzaW9uOl9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uLmdldCgpIGF0TG9jYXRpb246cmVx
dWVzdExvY2F0aW9uIGNvbXBsZXRpb246W2RyYWdTZXNzaW9uID0gX2RhdGFJbnRlcmFjdGlvblNl
c3Npb24sIGRyb3BTZXNzaW9uID0gX2RhdGFPcGVyYXRpb25TZXNzaW9uXSAoTlNBcnJheSAqaXRl
bXMpIHsKKyAgICAgICAgW2RyYWdTZXNzaW9uIGFkZEl0ZW1zOml0ZW1zXTsKKyAgICAgICAgW2Ry
b3BTZXNzaW9uIGFkZEl0ZW1zOml0ZW1zXTsKKyAgICB9XTsKKyAgICByZXR1cm4gWUVTOworfQor
CiAtICh2b2lkKV9hZHZhbmNlUHJvZ3Jlc3MKIHsKKyAgICBbc2VsZiBfZW5xdWV1ZVBlbmRpbmdB
ZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNdOworICAgIGlmIChbc2VsZiBfc2VuZFF1ZXVl
ZEFkZGl0aW9uYWxJdGVtUmVxdWVzdF0pIHsKKyAgICAgICAgW3NlbGYgX3NjaGVkdWxlQWR2YW5j
ZVByb2dyZXNzXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIF9sYXN0S25vd25EcmFn
Q2FyZXRSZWN0ID0gW193ZWJWaWV3IF9kcmFnQ2FyZXRSZWN0XTsKICAgICBfY3VycmVudFByb2dy
ZXNzICs9IHByb2dyZXNzSW5jcmVtZW50U3RlcDsKICAgICBDR1BvaW50IGxvY2F0aW9uSW5XaW5k
b3cgPSBzZWxmLl9jdXJyZW50TG9jYXRpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319900</attachid>
            <date>2017-09-05 08:44:20 -0700</date>
            <delta_ts>2017-09-05 12:50:51 -0700</delta_ts>
            <desc>Tweak ChangeLog wording</desc>
            <filename>bug-176348-20170905084419.patch</filename>
            <type>text/plain</type>
            <size>42404</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhmYTU2YTg2OGFiNGZiZWVl
YzM0MzFmYWRiNWJlODcwMzJlMjgzMWIuLjYzN2Y5MDc0NGM0ODZiY2I3ZWI3MzYxN2MzOTM2ZjAx
ZjViZTgwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzQgQEAKIDIwMTctMDktMDQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPUyBXSzJdIEFkZCBw
bHVtYmluZyBmb3IgV0tDb250ZW50VmlldyB0byBhc2sgdGhlIHdlYiBwcm9jZXNzIGZvciBhZGRp
dGlvbmFsIGRyYWcgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjM0OAorICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMx
MTQ0Njc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYm9pbGVycGxhdGUgcGx1bWJpbmcgdG8gcmVxdWVzdCBhZGRpdGlvbmFsIGl0ZW1zIHRv
IGFuIGV4aXN0aW5nIHNlc3Npb24uIFRoaXMgaW1wbGVtZW50cyBzb21lIFVJLXNpZGUgbG9naWMK
KyAgICAgICAgaW4gV0tDb250ZW50VmlldyB0byBzZW5kIGFuIGFkZGl0aW9uYWwgZHJhZyBpdGVt
cyByZXF1ZXN0IGFuZCBoYW5kbGUgYSByZXNwb25zZSBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy4gCisg
ICAgICAgIFRvIHN0YXJ0LCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JE
cmFnU2Vzc2lvbiBpcyBpbnZva2VkIGJ5IC1fZHJhZ0ludGVyYWN0aW9uOgorICAgICAgICBpdGVt
c0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hBdFBvaW50OmNvbXBsZXRpb246IGluIFdLQ29u
dGVudFZpZXcsIGFuZCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgd2ViIHByb2Nlc3MgaXMKKyAgICAg
ICAgaGFuZGxlZCBpbiAtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRl
bXNSZXF1ZXN0Ol0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9u
OmF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICBBZGQgU1BJIHRvIHNpbXVsYXRlIGEgcmVx
dWVzdCBmb3IgYWRkaXRpb25hbCBkcmFnIGl0ZW1zLiBTZWUgVG9vbHMvQ2hhbmdlTG9nIGZvciBt
b3JlIGRldGFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRkIGFuIElQQyBtZXNzYWdlIGhhbmRsZXIg
Zm9yIHRoZSBhZGRpdGlvbmFsIGRyYWcgaXRlbXMgcmVzcG9uc2UgZnJvbSB0aGUgd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OkJsb2NrUHRyPHZv
aWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnNob3VsZFJlcXVl
c3RBZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25h
bEl0ZW0pOgorCisgICAgICAgIEludm9rZSB0aGUgbmV3IGFkZGl0aW9uYWwgaXRlbXMgY29tcGxl
dGlvbiBoYW5kbGVyIHdoZW4gdGVhcmluZyBkb3duIHRvIGF2b2lkIGdldHRpbmcgVUlLaXQgaW50
byBhIGJhZCBzdGF0ZS4KKworICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGU6OmRyYWdBbmREcm9wU2Vzc2lvbnNEaWRFbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkSGFuZGxlQWRk
aXRpb25hbERyYWdJdGVtc1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZUFk
ZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9p
dGVtc0ZvckJlZ2lubmluZ09yQWRkaW5nVG9TZXNzaW9uV2l0aFJlZ2lzdHJhdGlvbkxpc3Q6c3Rh
Z2VkRHJhZ1NvdXJjZTpdKToKKworICAgICAgICBGYWN0b3JzIGNvbW1vbiBsb2dpYyB0byBjb252
ZXJ0IGEgc3RhZ2VkIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFuZCBEcmFn
U291cmNlU3RhdGUgaW50byBhIGxpc3Qgb2YKKyAgICAgICAgZHJhZyBpdGVtcywgaW52b2tpbmcg
dGhlIHByaXZhdGUgVUkgZGVsZWdhdGUgaW4gdGhlIHByb2Nlc3MuIFRoaXMgaXMgY2FsbGVkIGJv
dGggd2hlbiBzdGFydGluZyBhIGRyYWcgc2Vzc2lvbiwKKyAgICAgICAgYW5kIGFkZGluZyBpdGVt
cyB0byBhbiBleGlzdGluZyBkcmFnIHNlc3Npb24uCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfZHJhZ0ludGVyYWN0aW9uOml0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOndpdGhUb3VjaEF0UG9p
bnQ6Y29tcGxldGlvbjpdKToKKworICAgICAgICBJbXBsZW1lbnRzIGEgKHByb3Bvc2VkKSBhZGRp
dGlvbmFsIGRyYWcgaXRlbSBkZWxlZ2F0ZSB0aGF0IHNlcnZlcyBhcyBhbiBhc3luY2hyb25vdXMg
YWx0ZXJuYXRpdmUgdG8gdGhlIEFQSQorICAgICAgICB2YXJpYW50LCAtX2RyYWdJbnRlcmFjdGlv
bjppdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hBdFBvaW50Oi4gU2VlIDxyZGFyOi8v
cHJvYmxlbS8zMzE0NjgwMz4gZm9yIG1vcmUKKyAgICAgICAgaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246aXRlbXNGb3JCZWdpbm5pbmdTZXNz
aW9uOl0pOgorCisgICAgICAgIFJlZmFjdG9yZWQgdG8gdXNlIC1faXRlbXNGb3JCZWdpbm5pbmdP
ckFkZGluZ1RvU2Vzc2lvbldpdGhSZWdpc3RyYXRpb25MaXN0OnN0YWdlZERyYWdTb3VyY2U6Lgor
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlSXRlbXNGb3JBZGRpbmdUb1Nlc3Np
b246YXRMb2NhdGlvbjpjb21wbGV0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEhhbmRs
ZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRkIGFuIElQQyBtZXNzYWdlIGhhbmRs
ZXIgZm9yIHRoZSBhZGRpdGlvbmFsIGRyYWcgaXRlbXMgcmVxdWVzdCBmcm9tIHRoZSBVSSBwcm9j
ZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nl
c3Npb24pOgorCisyMDE3LTA5LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCiAgICAgICAgIFtpT1MgRG5EXSBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGxvZ2ljIGlu
IFdLQ29udGVudFZpZXcgaW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgZHJh
ZyBpdGVtcyBpbiBhIGRyYWcgc2Vzc2lvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjY0CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTE0NDY3
ND4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDNlMDFkYWRkMzM5NDlmNTk4ODJhYmQyY2ZiNWY2OGYyNTM2NGJmMjMuLjUzNGE4ZmU1YTRk
NzNhYmVhM2JjYTZiZjQzOGViMjAxZmI2MmJhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTgzMSw2ICs1ODMxLDEzIEBAIC0gKE5T
QXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uCiAjZW5kaWYKIH0K
IAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBh
dExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAq
KSljb21wbGV0aW9uCit7CisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgW19jb250
ZW50VmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjpzZXNzaW9uIGF0TG9jYXRp
b246bG9jYXRpb24gY29tcGxldGlvbjpjb21wbGV0aW9uXTsKKyNlbmRpZgorfQorCiAtICh2b2lk
KV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOihpZClzZXNzaW9uIGNv
bXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbgogewogI2lmIEVOQUJMRShEQVRB
X0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzk1ODNhNzRhODBmZmQwOWU2ZDExZTljNTc1ZDBh
ODk4MDE4MWYxMy4uMWE3ZmQzYWU2ZjgzOGVkYjI0ZTViNTc3ZmNlMWE0NThmNTNjN2RiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCkBAIC0zNzMsNiArMzczLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
SW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246
KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAoTlNBcnJh
eSAqKV9zaW11bGF0ZWRJdGVtc0ZvclNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vz
c2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246
KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Np
b246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlTG9uZ1By
ZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IDE2NjcwNjY4ZWY3MGQ4ZWMwZTJkYzY1NTU4MmZjZGU2MThh
MDM2YjQuLjUzZmVhMGE0ZmY4YmI4MTU5ZTRiYTU4NDY3MzBkMDg0M2QxYTg1MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4MSw2ICszODEsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1E
YXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBz
dGFydGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRl
bXNSZXF1ZXN0KGJvb2wgYWRkZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKGNv
bnN0IFdlYkNvcmU6OkRyYWdJdGVtJiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlv
bihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcHJldmlvdXNDYXJldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNh
cmV0UmVjdCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
M2UxYWQ3MDkwNTY3M2I5MzgzZTQ2Y2ExZjY0ZGJiYTViNGQ0OTM5Li5mZDlmMGYxNmVmM2Y0NWJh
M2JiM2QyZmFiMzNjNzQxZjY0ZGVhNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtNTYxLDcgKzU2MSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3Bl
cmF0aW9uKGJvb2wgaGFuZGxlZCk7CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFj
dGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKTsKKyAgICB2b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxE
cmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpOwogICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUlu
dGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKKyAgICB2b2lkIHJlcXVlc3RBZGRp
dGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAg
dm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGF0YT4pOwogI2VuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1MGM1NjExMDljY2M2
Yzc3MjFhMjVhYmM5MTNkZWI3YzI5NjQyZjVhLi4zYzE4YjIzOTM4NGZiYWVlZGZjOTg4MGIzMmEw
ZWVjNzZkZTc0ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTcsNiArMzE3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBEaWRQZXJmb3JtRGF0YUlu
dGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbihib29sIGhhbmRsZWQpCiAgICAgRGlkSGFuZGxl
U3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCkKKyAgICBEaWRIYW5kbGVB
ZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKQogICAgIERpZENvbmNsdWRlRWRp
dERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
PiB0ZXh0SW5kaWNhdG9yKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaAppbmRleCBhM2Q4YWViNzQyYmNi
OWI4YmQ1N2MxMWNjYmZhNDRlNWIzNmUzOWRjLi4zYjFjMzI5YjcyYTQyMzY5Zjg0MDAzMzBmNTdm
ZWNiYjFhZmZiZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oCkBAIC03MCw2ICs3MCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyU3RhZ2VkRHJhZ1NvdXJjZShEaWRCZWNvbWVBY3RpdmUgPSBEaWRCZWNvbWVB
Y3RpdmU6Ok5vKTsKICAgICBVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKnByZXZpZXdGb3JEcmFnSXRl
bShVSURyYWdJdGVtICosIFVJVmlldyAqY29udGVudFZpZXcsIFVJVmlldyAqcHJldmlld0NvbnRh
aW5lcikgY29uc3Q7CiAgICAgdm9pZCBkcmFnU2Vzc2lvbldpbGxEZWxheVNldERvd25BbmltYXRp
b24oZGlzcGF0Y2hfYmxvY2tfdCBjb21wbGV0aW9uKTsKKyAgICBib29sIHNob3VsZFJlcXVlc3RB
ZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uKGlkIDxVSURyYWdTZXNzaW9uPikgY29uc3Q7Cisg
ICAgdm9pZCBkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25hbEl0ZW0odm9pZCAoXmNvbXBs
ZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikpOwogCiAgICAgLy8gVGhlc2UgaGVscGVy
IG1ldGhvZHMgYXJlIHVuaXF1ZSB0byBVSURyb3BJbnRlcmFjdGlvbi4KICAgICB2b2lkIGRyb3BT
ZXNzaW9uRGlkRW50ZXJPclVwZGF0ZShpZCA8VUlEcm9wU2Vzc2lvbj4sIGNvbnN0IFdlYkNvcmU6
OkRyYWdEYXRhJik7CkBAIC04Niw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICBpZDxVSURyb3BTZXNz
aW9uPiBkcm9wU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHJvcFNlc3Npb24uZ2V0KCk7IH0K
ICAgICBCbG9ja1B0cjx2b2lkKCk+IHRha2VEcmFnU3RhcnRDb21wbGV0aW9uQmxvY2soKSB7IHJl
dHVybiBXVEZNb3ZlKG1fZHJhZ1N0YXJ0Q29tcGxldGlvbkJsb2NrKTsgfQogICAgIEJsb2NrUHRy
PHZvaWQoKT4gdGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSB7IHJldHVybiBXVEZNb3ZlKG1f
ZHJhZ0NhbmNlbFNldERvd25CbG9jayk7IH0KKyAgICBCbG9ja1B0cjx2b2lkKE5TQXJyYXk8VUlE
cmFnSXRlbSAqPiAqKT4gdGFrZUFkZERyYWdJdGVtQ29tcGxldGlvbkJsb2NrKCkgeyByZXR1cm4g
V1RGTW92ZShtX2FkZERyYWdJdGVtQ29tcGxldGlvbkJsb2NrKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlUHJldmlld3NGb3JBY3RpdmVEcmFnU291cmNlcygpOwpAQCAtOTksNiArMTAy
LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQgPFVJRHJvcFNlc3Npb24+PiBtX2Ryb3BT
ZXNzaW9uOwogICAgIEJsb2NrUHRyPHZvaWQoKT4gbV9kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7
CiAgICAgQmxvY2tQdHI8dm9pZCgpPiBtX2RyYWdDYW5jZWxTZXREb3duQmxvY2s7CisgICAgQmxv
Y2tQdHI8dm9pZChOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKik+IG1fYWRkRHJhZ0l0ZW1Db21wbGV0
aW9uQmxvY2s7CiAKICAgICBzdGQ6Om9wdGlvbmFsPERyYWdTb3VyY2VTdGF0ZT4gbV9zdGFnZWRE
cmFnU291cmNlOwogICAgIFZlY3RvcjxEcmFnU291cmNlU3RhdGU+IG1fYWN0aXZlRHJhZ1NvdXJj
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50
ZXJhY3Rpb25TdGF0ZS5tbQppbmRleCA3M2ZmMDdiYjQwZTJiNDllMzgwZTRiODQ3NmIyMGMxMzIy
ZGI4OTY5Li5lNTJkYmE5OTViZDViYTFhODg3ZjNhZTRmODhmOTE2ZDQyOTMxOGI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUubW0KQEAgLTE2Nyw2ICsxNjcsMTcgQEAgdm9pZCBEcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGU6OmRyYWdTZXNzaW9uV2lsbERlbGF5U2V0RG93bkFuaW1hdGlvbihkaXNwYXRjaF9ibG8KICAg
ICBtX2RyYWdDYW5jZWxTZXREb3duQmxvY2sgPSBjb21wbGV0aW9uOwogfQogCitib29sIERyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZTo6c2hvdWxkUmVxdWVzdEFkZGl0aW9uYWxJdGVtRm9yRHJhZ1Nl
c3Npb24oaWQgPFVJRHJhZ1Nlc3Npb24+IHNlc3Npb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZHJhZ1Nlc3Npb24gPT0gc2Vzc2lvbiAmJiAhbV9hZGREcmFnSXRlbUNvbXBsZXRpb25CbG9jayAm
JiAhbV9kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7Cit9CisKK3ZvaWQgRHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlOjpkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25hbEl0ZW0odm9pZCAoXmNv
bXBsZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikpCit7CisgICAgY2xlYXJTdGFnZWRE
cmFnU291cmNlKCk7CisgICAgbV9hZGREcmFnSXRlbUNvbXBsZXRpb25CbG9jayA9IGNvbXBsZXRp
b247Cit9CisKIHZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcm9wU2Vzc2lvbkRpZEVu
dGVyT3JVcGRhdGUoaWQgPFVJRHJvcFNlc3Npb24+IHNlc3Npb24sIGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKIHsKICAgICBtX2Ryb3BTZXNzaW9uID0gc2Vzc2lvbjsKQEAgLTIxMCw2ICsyMjEs
OSBAQCB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6ZHJhZ0FuZERyb3BTZXNzaW9uc0Rp
ZEVuZCgpCiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2NrID0gdGFrZURyYWdDYW5jZWxTZXRE
b3duQmxvY2soKSkKICAgICAgICAgY29tcGxldGlvbkJsb2NrKCk7CiAKKyAgICBpZiAoYXV0byBj
b21wbGV0aW9uQmxvY2sgPSB0YWtlQWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKSkKKyAgICAg
ICAgY29tcGxldGlvbkJsb2NrKEBbIF0pOworCiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2Nr
ID0gdGFrZURyYWdTdGFydENvbXBsZXRpb25CbG9jaygpKQogICAgICAgICBjb21wbGV0aW9uQmxv
Y2soKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggM2MzMDg2YmM5NzBlMDFlOTIyMGYzMGFmYTk0YmMwM2NjYmFmMDI3Zi4uN2Y5
YmU3YjVkNDg0ZTczMGIzMGNhZTJhM2VjYTdmYTFkMDFmNTlkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTIwNSw2ICsyMDUsNyBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVy
Zm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29s
IHN0YXJ0ZWQpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVt
c1JlcXVlc3QoYm9vbCBhZGRlZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydERyYWcoY29uc3Qg
V2ViQ29yZTo6RHJhZ0l0ZW0mLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2Up
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2FyZXRSZWN0KSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCAwZjJiNzc0YjdjZjI3N2UwMTQ2YTM2NzNlYjI0ZWMzODljMjYwYjUwLi5i
ZDBmZWU0YWZmODE4Njg5OTQwNWIwMTExNDQ2NWIyNDMyZmQzYjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03ODYsNiArNzg2
LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9u
UmVxdWVzdChib29sIHN0YXJ0ZWQpCiAgICAgW21fY29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0
RGF0YUludGVyYWN0aW9uUmVxdWVzdDpzdGFydGVkXTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRlZCkKK3sKKyAg
ICBbbV9jb250ZW50VmlldyBfZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3Q6YWRk
ZWRdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERyYWcoY29uc3QgRHJhZ0l0ZW0m
IGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSkKIHsKICAgICBbbV9j
b250ZW50VmlldyBfc3RhcnREcmFnOlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFr
ZUNHSW1hZ2VDb3B5KCkgaXRlbTppdGVtXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5ZjcwM2Q4YmYyODli
ZmI1OGIwZWQ2NDViNTRhMzgyODZmOTQ1NGVhLi43ZGY5YmQyNjE4Y2VkNWIyNjE1Y2FiNTU5Yjkz
OWY2YjhmZGFmYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zMjEsNiArMzIxLDcgQEAgRk9SX0VBQ0hf
V0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VC
X1ZJRVcpCiAtICh2b2lkKV9kaWRDaGFuZ2VEcmFnSW50ZXJhY3Rpb25Qb2xpY3k7CiAtICh2b2lk
KV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjooQk9PTCloYW5k
bGVkOwogLSAodm9pZClfZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09M
KXN0YXJ0ZWQ7CistICh2b2lkKV9kaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdDoo
Qk9PTClhZGRlZDsKIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWlt
YWdlIGl0ZW06KGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJilpdGVtOwogLSAodm9pZClfZGlkQ29u
Y2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhPilkYXRhOwogLSAodm9pZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRS
ZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdDsKQEAgLTMz
Myw2ICszMzQsNyBAQCBGT1JfRUFDSF9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2lu
RGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Npb247CiAtIChOU0FycmF5ICopX3Np
bXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbjsKIC0gKHZvaWQpX3NpbXVsYXRlUHJl
cGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlz
cGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uOworLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGlu
Z1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBs
ZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uOwogI2VuZGlmCiAKIC0gKHZvaWQp
X3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IGE5Njg5NjE0NjBiMDdhNDcxMDU0ZTUyZGUyYWJiOTVmMDNiMzJlMWUu
LjdlOGMzZmY4NWJjNzFlNTAyYTlmOWNjZDU3NzgxZGFhMDIxNjBlMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtNDI1OSw2ICs0MjU5LDMwIEBAIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0YWluUHRyPENH
SW1hZ2VSZWY+KWltYWdlIGl0ZW06KGNvbnN0IERyYWdJdGVtJilpdGVtCiAgICAgX2RyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5zdGFnZURyYWdJdGVtKGl0ZW0sIGRyYWdJbWFnZS5nZXQoKSk7CiB9
CiAKKy0gKHZvaWQpX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0OihCT09MKWFk
ZGVkCit7CisgICAgYXV0byBjb21wbGV0aW9uID0gX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50
YWtlQWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKTsKKyAgICBpZiAoIWNvbXBsZXRpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0
ICpyZWdpc3RyYXRpb25MaXN0ID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZElu
c3RhbmNlXSB0YWtlUmVnaXN0cmF0aW9uTGlzdF07CisgICAgaWYgKCFhZGRlZCB8fCAhcmVnaXN0
cmF0aW9uTGlzdCB8fCAhX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oYXNTdGFnZWREcmFnU291
cmNlKCkpIHsKKyAgICAgICAgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5jbGVhclN0YWdlZERy
YWdTb3VyY2UoKTsKKyAgICAgICAgY29tcGxldGlvbihAWyBdKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gc3RhZ2VkRHJhZ1NvdXJjZSA9IF9kcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUuc3RhZ2VkRHJhZ1NvdXJjZSgpOworICAgIE5TQXJyYXkgKmRyYWdJdGVtc1RvQWRkID0g
W3NlbGYgX2l0ZW1zRm9yQmVnaW5uaW5nT3JBZGRpbmdUb1Nlc3Npb25XaXRoUmVnaXN0cmF0aW9u
TGlzdDpyZWdpc3RyYXRpb25MaXN0IHN0YWdlZERyYWdTb3VyY2U6c3RhZ2VkRHJhZ1NvdXJjZV07
CisgICAgaWYgKCFkcmFnSXRlbXNUb0FkZC5jb3VudCkKKyAgICAgICAgX3BhZ2UtPmRyYWdDYW5j
ZWxsZWQoKTsKKworICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBzZXNzaW9uOiAl
cCBhZGRpbmcgJXR1IGl0ZW1zIiwgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5kcmFnU2Vzc2lv
bigpLCBkcmFnSXRlbXNUb0FkZC5jb3VudCk7CisgICAgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0
ZS5jbGVhclN0YWdlZERyYWdTb3VyY2UoZHJhZ0l0ZW1zVG9BZGQuY291bnQgPyBEcmFnRHJvcElu
dGVyYWN0aW9uU3RhdGU6OkRpZEJlY29tZUFjdGl2ZTo6WWVzIDogRHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlOjpEaWRCZWNvbWVBY3RpdmU6Ok5vKTsKKworICAgIGNvbXBsZXRpb24oZHJhZ0l0ZW1z
VG9BZGQpOworfQorCiAtICh2b2lkKV9kaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVl
c3Q6KEJPT0wpc3RhcnRlZAogewogICAgIEJsb2NrUHRyPHZvaWQoKT4gc2F2ZWRDb21wbGV0aW9u
QmxvY2sgPSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLnRha2VEcmFnU3RhcnRDb21wbGV0aW9u
QmxvY2soKTsKQEAgLTQ0NTQsNiArNDQ3OCwzNyBAQCAtICh2b2lkKV9yZXN0b3JlQ2FsbG91dEJh
cklmTmVlZGVkCiAgICAgX3Nob3VsZFJlc3RvcmVDYWxsb3V0QmFyQWZ0ZXJEcm9wID0gTk87CiB9
CiAKKy0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKV9pdGVtc0ZvckJlZ2lubmluZ09yQWRkaW5n
VG9TZXNzaW9uV2l0aFJlZ2lzdHJhdGlvbkxpc3Q6KFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlv
bkluZm9MaXN0ICopcmVnaXN0cmF0aW9uTGlzdCBzdGFnZWREcmFnU291cmNlOihjb25zdCBEcmFn
U291cmNlU3RhdGUmKXN0YWdlZERyYWdTb3VyY2UKK3sKKyAgICBVSUl0ZW1Qcm92aWRlciAqZGVm
YXVsdEl0ZW1Qcm92aWRlciA9IHJlZ2lzdHJhdGlvbkxpc3QuaXRlbVByb3ZpZGVyOworICAgIGlm
ICghZGVmYXVsdEl0ZW1Qcm92aWRlcikKKyAgICAgICAgcmV0dXJuIEBbIF07CisKKyAgICBOU0Fy
cmF5ICphZGp1c3RlZEl0ZW1Qcm92aWRlcnM7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlmIChbdWlEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFkanVzdGVkRGF0YUludGVy
YWN0aW9uSXRlbVByb3ZpZGVyc0Zvckl0ZW1Qcm92aWRlcjpyZXByZXNlbnRpbmdPYmplY3RzOmFk
ZGl0aW9uYWxEYXRhOildKSB7CisgICAgICAgIGF1dG8gcmVwcmVzZW50aW5nT2JqZWN0cyA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBhdXRvIGFkZGl0
aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsK
KyAgICAgICAgW3JlZ2lzdHJhdGlvbkxpc3QgZW51bWVyYXRlSXRlbXM6W3JlcHJlc2VudGluZ09i
amVjdHMsIGFkZGl0aW9uYWxEYXRhXSAoV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mbyAq
aXRlbSwgTlNVSW50ZWdlcikgeworICAgICAgICAgICAgaWYgKGl0ZW0ucmVwcmVzZW50aW5nT2Jq
ZWN0KQorICAgICAgICAgICAgICAgIFtyZXByZXNlbnRpbmdPYmplY3RzIGFkZE9iamVjdDppdGVt
LnJlcHJlc2VudGluZ09iamVjdF07CisgICAgICAgICAgICBpZiAoaXRlbS50eXBlSWRlbnRpZmll
ciAmJiBpdGVtLmRhdGEpCisgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxEYXRhIHNldE9iamVj
dDppdGVtLmRhdGEgZm9yS2V5Oml0ZW0udHlwZUlkZW50aWZpZXJdOworICAgICAgICB9XTsKKyAg
ICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZp
ZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3ZpZGVyOmRl
ZmF1bHRJdGVtUHJvdmlkZXIgcmVwcmVzZW50aW5nT2JqZWN0czpyZXByZXNlbnRpbmdPYmplY3Rz
LmdldCgpIGFkZGl0aW9uYWxEYXRhOmFkZGl0aW9uYWxEYXRhLmdldCgpXTsKKyAgICB9IGVsc2UK
KyAgICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gQFsgZGVmYXVsdEl0ZW1Qcm92aWRlciBd
OworCisgICAgTlNNdXRhYmxlQXJyYXkgKmRyYWdJdGVtcyA9IFtOU011dGFibGVBcnJheSBhcnJh
eVdpdGhDYXBhY2l0eTphZGp1c3RlZEl0ZW1Qcm92aWRlcnMuY291bnRdOworICAgIGZvciAoVUlJ
dGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciBpbiBhZGp1c3RlZEl0ZW1Qcm92aWRlcnMpIHsKKyAg
ICAgICAgYXV0byBpdGVtID0gYWRvcHROUyhbW1VJRHJhZ0l0ZW0gYWxsb2NdIGluaXRXaXRoSXRl
bVByb3ZpZGVyOml0ZW1Qcm92aWRlcl0pOworICAgICAgICBbaXRlbSBfc2V0UHJpdmF0ZUxvY2Fs
Q29udGV4dDpAKHN0YWdlZERyYWdTb3VyY2UuaXRlbUlkZW50aWZpZXIpXTsKKyAgICAgICAgW2Ry
YWdJdGVtcyBhZGRPYmplY3Q6aXRlbS5hdXRvcmVsZWFzZSgpXTsKKyAgICB9CisKKyAgICByZXR1
cm4gZHJhZ0l0ZW1zOworfQorCiAjcHJhZ21hIG1hcmsgLSBVSURyYWdJbnRlcmFjdGlvbkRlbGVn
YXRlCiAKIC0gKEJPT0wpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRl
cmFjdGlvbiBzaG91bGREZWxheUNvbXBldGluZ0dlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVS
ZWNvZ25pemVyICopY29tcGV0aW5nR2VzdHVyZVJlY29nbml6ZXIKQEAgLTQ0NzcsNiArNDUzMiwx
NyBAQCAtIChOU0ludGVnZXIpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilp
bnRlcmFjdGlvbiBkYXRhT3duZXJGb3JTZXNzaQogICAgIHJldHVybiBkYXRhT3duZXI7CiB9CiAK
Ky0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biBpdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gd2l0
aFRvdWNoQXRQb2ludDooQ0dQb2ludClwb2ludCBjb21wbGV0aW9uOih2b2lkKF4pKE5TQXJyYXk8
VUlEcmFnSXRlbSAqPiAqKSljb21wbGV0aW9uCit7CisgICAgaWYgKCFfZHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlLnNob3VsZFJlcXVlc3RBZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uKHNlc3Np
b24pKSB7CisgICAgICAgIGNvbXBsZXRpb24oQFsgXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmRyYWdTZXNzaW9uV2lsbFJlcXVlc3RB
ZGRpdGlvbmFsSXRlbShjb21wbGV0aW9uKTsKKyAgICBfcGFnZS0+cmVxdWVzdEFkZGl0aW9uYWxJ
dGVtc0ZvckRyYWdTZXNzaW9uKHJvdW5kZWRJbnRQb2ludChwb2ludCksIHJvdW5kZWRJbnRQb2lu
dChwb2ludCkpOworfQorCiAtICh2b2lkKV9kcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gcHJlcGFyZUZvclNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilz
ZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbgogewogICAgIFtz
ZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CkBAIC00NTE1LDM3ICs0NTgx
LDcgQEAgLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGl0ZW0KIAogICAgIGF1dG8gc3RhZ2VkRHJhZ1NvdXJj
ZSA9IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuc3RhZ2VkRHJhZ1NvdXJjZSgpOwogICAgIFdl
Ykl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICpyZWdpc3RyYXRpb25MaXN0ID0gW1tX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSB0YWtlUmVnaXN0cmF0aW9u
TGlzdF07Ci0gICAgVUlJdGVtUHJvdmlkZXIgKmRlZmF1bHRJdGVtUHJvdmlkZXIgPSByZWdpc3Ry
YXRpb25MaXN0Lml0ZW1Qcm92aWRlcjsKLSAgICBpZiAoIWRlZmF1bHRJdGVtUHJvdmlkZXIpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gZmFpbGVkOiAl
cCAobm8gaXRlbSBwcm92aWRlcnMgZ2VuZXJhdGVkIGJlZm9yZSBhZGp1c3RtZW50KSIsIHNlc3Np
b24pOwotICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOwotICAgICAgICBfZHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLmNsZWFyU3RhZ2VkRHJhZ1NvdXJjZSgpOwotICAgICAgICByZXR1cm4g
QFsgXTsKLSAgICB9Ci0KLSAgICAvLyBHaXZlIGludGVybmFsIGNsaWVudHMgc3VjaCBhcyBNYWls
IG9uZSBmaW5hbCBjaGFuY2UgdG8gYXVnbWVudCB0aGUgY29udGVudHMgb2YgZWFjaCBVSUl0ZW1Q
cm92aWRlciBiZWZvcmUgc2VuZGluZyB0aGUgZHJhZyBpdGVtcyBvZmYgdG8gVUlLaXQuCi0gICAg
TlNBcnJheSAqYWRqdXN0ZWRJdGVtUHJvdmlkZXJzOwotICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPiB1aURlbGVnYXRlID0gc2VsZi53ZWJWaWV3VUlEZWxlZ2F0ZTsKLSAgICBpZiAoW3VpRGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzphZGp1c3RlZERhdGFJ
bnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlkZXI6cmVwcmVzZW50aW5nT2JqZWN0
czphZGRpdGlvbmFsRGF0YTopXSkgewotICAgICAgICBhdXRvIHJlcHJlc2VudGluZ09iamVjdHMg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgYXV0byBh
ZGRpdGlvbmFsRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgIFtyZWdpc3RyYXRpb25MaXN0IGVudW1lcmF0ZUl0ZW1zOltyZXByZXNlbnRp
bmdPYmplY3RzLCBhZGRpdGlvbmFsRGF0YV0gKFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbklu
Zm8gKml0ZW0sIE5TVUludGVnZXIpIHsKLSAgICAgICAgICAgIGlmIChpdGVtLnJlcHJlc2VudGlu
Z09iamVjdCkKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRPYmplY3Q6
aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOwotICAgICAgICAgICAgaWYgKGl0ZW0udHlwZUlkZW50
aWZpZXIgJiYgaXRlbS5kYXRhKQotICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsRGF0YSBzZXRP
YmplY3Q6aXRlbS5kYXRhIGZvcktleTppdGVtLnR5cGVJZGVudGlmaWVyXTsKLSAgICAgICAgfV07
Ci0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IGFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVByb3ZpZGVyc0Zvckl0ZW1Qcm92aWRl
cjpkZWZhdWx0SXRlbVByb3ZpZGVyIHJlcHJlc2VudGluZ09iamVjdHM6cmVwcmVzZW50aW5nT2Jq
ZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTphZGRpdGlvbmFsRGF0YS5nZXQoKV07Ci0gICAgfSBl
bHNlCi0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9IEBbIGRlZmF1bHRJdGVtUHJvdmlk
ZXIgXTsKLQotICAgIE5TTXV0YWJsZUFycmF5ICpkcmFnSXRlbXMgPSBbTlNNdXRhYmxlQXJyYXkg
YXJyYXlXaXRoQ2FwYWNpdHk6YWRqdXN0ZWRJdGVtUHJvdmlkZXJzLmNvdW50XTsKLSAgICBmb3Ig
KFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgaW4gYWRqdXN0ZWRJdGVtUHJvdmlkZXJzKSB7
Ci0gICAgICAgIGF1dG8gaXRlbSA9IGFkb3B0TlMoW1tVSURyYWdJdGVtIGFsbG9jXSBpbml0V2l0
aEl0ZW1Qcm92aWRlcjppdGVtUHJvdmlkZXJdKTsKLSAgICAgICAgW2l0ZW0gX3NldFByaXZhdGVM
b2NhbENvbnRleHQ6QChzdGFnZWREcmFnU291cmNlLml0ZW1JZGVudGlmaWVyKV07Ci0gICAgICAg
IFtkcmFnSXRlbXMgYWRkT2JqZWN0Oml0ZW0uYXV0b3JlbGVhc2UoKV07Ci0gICAgfQotCisgICAg
TlNBcnJheSAqZHJhZ0l0ZW1zID0gW3NlbGYgX2l0ZW1zRm9yQmVnaW5uaW5nT3JBZGRpbmdUb1Nl
c3Npb25XaXRoUmVnaXN0cmF0aW9uTGlzdDpyZWdpc3RyYXRpb25MaXN0IHN0YWdlZERyYWdTb3Vy
Y2U6c3RhZ2VkRHJhZ1NvdXJjZV07CiAgICAgaWYgKCFbZHJhZ0l0ZW1zIGNvdW50XSkKICAgICAg
ICAgX3BhZ2UtPmRyYWdDYW5jZWxsZWQoKTsKIApAQCAtNDgyOCw2ICs0ODY0LDExIEBAIC0gKHZv
aWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24g
Y29tcGxldGlvbjooZGlzcGF0CiAgICAgW3NlbGYgX2RyYWdJbnRlcmFjdGlvbjpfZHJhZ0ludGVy
YWN0aW9uLmdldCgpIHByZXBhcmVGb3JTZXNzaW9uOnNlc3Npb24gY29tcGxldGlvbjpjb21wbGV0
aW9uXTsKIH0KIAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQp
c2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXiko
TlNBcnJheSAqKSljb21wbGV0aW9uCit7CisgICAgW3NlbGYgX2RyYWdJbnRlcmFjdGlvbjpfZHJh
Z0ludGVyYWN0aW9uLmdldCgpIGl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOnNlc3Npb24gd2l0aFRv
dWNoQXRQb2ludDpsb2NhdGlvbiBjb21wbGV0aW9uOmNvbXBsZXRpb25dOworfQorCiAjZW5kaWYK
IAogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQppbmRleCAyMTFhYWM3ZGQ4MDcxMzcwMjc1OTdhMWY2YTcwNDQ1N2ZmNjkzNTVlLi5iZDBjODFi
NmI0ZmQwMTVmZGExZWQ2NzNhMGUwMzNjZDk0YzNlZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwOTQsMTIgKzEwOTQsMjMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChi
b29sIHN0YXJ0ZWQpCiAgICAgbV9wYWdlQ2xpZW50LmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0
aW9uUmVxdWVzdChzdGFydGVkKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZUFk
ZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpCit7CisgICAgbV9wYWdlQ2xpZW50
LmRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGFkZGVkKTsKK30KKwogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbikKIHsKICAgICBpZiAoaXNWYWxpZCgpKQogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjbGllbnRQb3Np
dGlvbiwgZ2xvYmFsUG9zaXRpb24pLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24pCit7CisgICAgaWYgKGlzVmFsaWQoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY2xp
ZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uKSwgbV9wYWdlSUQpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKHN0ZDo6b3B0aW9uYWw8VGV4
dEluZGljYXRvckRhdGE+IGRhdGEpCiB7CiAgICAgbV9wYWdlQ2xpZW50LmRpZENvbmNsdWRlRWRp
dERhdGFJbnRlcmFjdGlvbihkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBhNTk1OWEyOGRhNGFiN2FhNzRmYjUxZDA5NTk0M2I3NzQ0NGFhOGU3
Li5lNTQ2OTkzMDRhYmZlNDY3ZmY1MTYwY2JkOTZmMmU1OWQxOGNhNjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMyLDYgKzEwMzIsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gc3dpdGNoVG9CbG9ja1NlbGVjdGlv
bkF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBTZWxlY3Rpb25IYW5kbGVQb3NpdGlv
bik7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCByZXF1ZXN0U3RhcnRE
YXRhSW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOworICAgIHZvaWQgcmVxdWVz
dEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsK
ICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDljNzEwNjYxOTJkY2FmMGFmZDM4NDVjMjFj
ODM3ZmVlZjMwMmMxN2QuLjA1MjFhYTI4MjNiNzNhY2Y4MzM1NmRmNmM3YTFlM2I4NWMwODMxNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgpAQCAtMjUzLDYgKzI1Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgUmVxdWVzdFN0
YXJ0RGF0YUludGVyYWN0aW9uKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJD
b3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbikKKyAgICBSZXF1ZXN0QWRkaXRpb25hbEl0ZW1z
Rm9yRHJhZ1Nlc3Npb24oV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6
OkludFBvaW50IGdsb2JhbFBvc2l0aW9uKQogI2VuZGlmCiAKICAgICAjIFBvcHVwIG1lbnUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CmluZGV4IGUwZGQ3ZjlmYTI3MGUyZmI2NzZmNTcxYTM4NjFjY2NkYzhhNDY0NDcuLmZiN2I0NjY1
NjZhMWJjZTg4N2Q1NzhiNGM4ZDA5NDU0NmI5N2ZlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC02MzEsNiArNjMxLDEz
IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IEludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChkaWRTdGFydCkpOwogfQog
Cit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVx
dWVzdChmYWxzZSkpOworfQorCiB2b2lkIFdlYlBhZ2U6OmRpZENvbmNsdWRlRWRpdERhdGFJbnRl
cmFjdGlvbigpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dElu
ZGljYXRvckRhdGE7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYTA5MzA5YzczYTQxYzdkZTVjZTQwMThhNWU2ZWIzYjM1ZGNkYWJmMy4uYTA4Njc1
ZDZjZGE1NWI1MDEwOGU1OGZhMTFkNWI2ZGVlYzNmZTIzZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA5LTA0
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1Mg
V0syXSBBZGQgcGx1bWJpbmcgZm9yIFdLQ29udGVudFZpZXcgdG8gYXNrIHRoZSB3ZWIgcHJvY2Vz
cyBmb3IgYWRkaXRpb25hbCBkcmFnIGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYzNDgKKyAgICAgICAgV29yayB0b3dhcmRzIDxyZGFyOi8v
cHJvYmxlbS8zMTE0NDY3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnRyb2R1Y2VzIG5ldyB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHNpbXVsYXRl
IHRhcHBpbmcgdG8gYWRkIGFkZGl0aW9uYWwgaXRlbXMgdG8gdGhlIGN1cnJlbnQgZHJhZyBzZXNz
aW9uLiBXZQorICAgICAgICBhZGQgLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgcnVuRnJvbTp0
bzphZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnM6XSwgZm9yIHdoaWNoIHRoZSBsYXN0IGFy
Z3VtZW50IGlzIGEKKyAgICAgICAgZGljdGlvbmFyeSBtYXBwaW5nIHByb2dyZXNzIChhIGRvdWJs
ZSBiZXR3ZWVuIDAgYW5kIDEpIHRvIE5TVmFsdWVzIHJlcHJlc2VudGluZyB0aGUgbG9jYXRpb24g
ZnJvbSB3aGljaCB0aGUgZHJhZworICAgICAgICBhbmQgZHJvcCBzaW11bGF0aW9uIHdpbGwgcmVx
dWVzdCBhbiBhZGRpdGlvbmFsIGRyYWcgaXRlbS4gRHVyaW5nIHRoZSBzaW11bGF0ZWQgZHJhZyBh
bmQgZHJvcCwgd2hlbiB0aGUgcHJvZ3Jlc3MKKyAgICAgICAgdmFsdWUgZXhjZWVkcyBhIHZhbHVl
IGluIHRoZSBtYXAgb2YgcmVtYWluaW5nIGFkZGl0aW9uYWwgaXRlbSByZXF1ZXN0IGxvY2F0aW9u
cywgd2UgaGFsdCBkcmFnIHNpbXVsYXRpb24KKyAgICAgICAgcHJvZ3Jlc3MgZm9yIHRoYXQgcnVu
bG9vcCBhbmQgaW5zdGVhZCByZXF1ZXN0IGFkZGl0aW9uYWwgaXRlbXMgZnJvbSB0aGUgbG9jYXRp
b24gc3BlY2lmaWVkLgorCisgICAgICAgIFRoZSBvbmx5ICh1c2VmdWwpIHBhc3NpbmcgdGVzdCB3
ZSBjYW4gY3JlYXRlIHVzaW5nIHRoZSBuZXcgbWFjaGluZXJ5IGlzIG9uZSB0aGF0IHZlcmlmaWVz
IHRoYXQgcHJldmVudERlZmF1bHQoKQorICAgICAgICBvbiBkcmFnc3RhcnQgd29ya3MgYXMgZXhw
ZWN0ZWQsIHByZXZlbnRpbmcgYWRkaXRpb25hbCBpdGVtcyBmcm9tIGJlaW5nIGFkZGVkLiBXaGls
ZSB0aGlzIHRyaXZpYWxseSBwYXNzZXMgbm93LAorICAgICAgICBzaW5jZSB0aGUgd2ViLXByb2Nl
c3Mtc2lkZSBvZiB0aGUgYWRkaXRpb25hbCBpdGVtcyBmbG93IGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQsIGl0IHNob3VsZCBjb250aW51ZSB0byBwYXNzIGFmdGVyCisgICAgICAgIHRoZSB3ZWIgcHJv
Y2VzcyBwb3J0aW9uIGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVk
aXRhYmxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHBhZ2UgdGhhdCBj
b250YWlucyBzb21lIG5vbi1lZGl0YWJsZSB0ZXh0LCBhbiBpbWFnZSwgYSBsaW5rLCBhbmQgYSBy
aWNoIHRleHQgZWRpdGFibGUgYXJlYS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
Lm1tOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9uIGFkZEl0ZW1zOl0pOgorCisgICAg
ICAgIENvbnZlbmllbmNlIG1ldGhvZCB0byBhZGQgYWRkaXRpb25hbCBtb2NrIGRyYWcgaXRlbXMg
dG8gYSBkcmFnIG9yIGRyb3Agc2Vzc2lvbi4KKworICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgX3Jlc2V0U2ltdWxhdGVkU3RhdGVdKToKKyAgICAgICAgKC1bRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yIHJ1bkZyb206dG86XSk6CisKKyAgICAgICAgQ29udmVydGVkIGludG8gYSBj
b252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbGF0dGVyIHZlcnNpb24sIHBhc3NpbmcgaW4g
bmlsIGZvciB0aGUgYWRkaXRpb25hbCBpdGVtIHJlcXVlc3QKKyAgICAgICAgbG9jYXRpb25zIGRp
Y3Rpb25hcnkuCisKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206
dG86YWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOl0pOgorICAgICAgICAoLVtEYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3IgX2VucXVldWVQZW5kaW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9j
YXRpb25zXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBfc2VuZFF1ZXVl
ZEFkZGl0aW9uYWxJdGVtUmVxdWVzdF0pOgorCisgICAgICAgIE5ldyBoZWxwZXIgbWV0aG9kcyB0
byBkZXRlY3Qgd2hlbiBhbmQgd2hlcmUgYWRkaXRpb25hbCBpdGVtcyBzaG91bGQgYmUgImFkZGVk
IiwgYW5kIHN1YnNlcXVlbnRseSBzaW11bGF0ZSBhZGRpbmcKKyAgICAgICAgZHJhZyBpdGVtcyBh
dCB0aGVzZSBnaXZlbiBsb2NhdGlvbnMuCisKKyAgICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yIF9hZHZhbmNlUHJvZ3Jlc3NdKToKKwogMjAxNy0wOS0wNCAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0Y2ggSFRNTE1lZGlhRWxlbWVu
dCB0byByZWxlYXNlIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjYwY2FhMmZi
ZTc1ODlmOTQ4MGE1MDgyNTE4ZjE0OTA3YWYyN2ZiMS4uNmZjYTY4MmMyOGRkZDJkZDgwMzE0YWE5
ZWJkM2E0NWYwMWVjMjk3YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5NCw2ICs2OTQs
NyBAQAogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRE
NEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLzsg
fTsKIAkJRjRENEYzQjkxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjcx
RTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovOyB9OwogCQlGNEQ1
RTRFODFGMEM1RDM4MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDVF
NEU3MUYwQzVEMjcwMDhDMUE0OSAvKiBkcmFnc3RhcnQtY2xlYXItc2VsZWN0aW9uLmh0bWwgKi87
IH07CisJCUY0RDY1REE4MUY1RTQ3MDQwMDlEOEMyNyAvKiBzZWxlY3RlZC10ZXh0LWltYWdlLWxp
bmstYW5kLWVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRENjVEQTcxRjVFNDZDMDAwOUQ4QzI3IC8qIHNlbGVjdGVkLXRl
eHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjRERUY2RUQxRTlCNERC
NjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRERUY2RUMxRTlCNEQ5NTAw
NDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0RjEzNzky
MUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3
OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAq
LzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6
ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CkBAIC05NTMsNiArOTU0
LDcgQEAKIAkJCQlGNkZERERENjE0MjQxQzZGMDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExMkREQzAwMUU4MzczRTcwMENGNkNBRSAvKiByZW5k
ZXJlZC1pbWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmljaC1hbmQtcGxhaW4tdGV4dC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0RDY1REE4MUY1RTQ3MDQwMDlEOEMyNyAvKiBz
ZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJN0E2NkJEQjgxRUFGMThENTAwQ0NDOTI0IC8qIHNldC1sb25nLXRpdGxlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTJCOENGOTgxNTg2OEQ5MTAwMjgxMDUzIC8q
IFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQUJENDkx
QjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTE3MjQsNiArMTcyNiw3IEBACiAJCUY0RDRGM0I1MUU0RTJC
Q0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERh
dGFJbnRlcmFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1
RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0RDY1REE3MUY1RTQ2QzAwMDlEOEMyNyAvKiBzZWxlY3RlZC10ZXh0
LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAic2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWlu
LWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW1hZ2Ut
aW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxh
eWluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNDA1QkExRDRDMENG
ODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjM0LDYg
KzIyMzcsNyBAQAogCQkJCUY0MUFCOTlBMUVGNDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0
Lmh0bWwgKi8sCiAJCQkJQTEyRERCRkYxRTgzNzNDMTAwQ0Y2Q0FFIC8qIHJlbmRlcmVkLWltYWdl
LWV4Y2x1ZGluZy1vdmVyZmxvdy5odG1sICovLAogCQkJCUY0Njg0OUJGMUVFRjVFREMwMEI5MzdG
RSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8sCisJCQkJRjRENjVEQTcxRjVFNDZDMDAw
OUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCAqLywK
IAkJCQlDOUI0QUQyOTFFQ0E2RUE1MDBGNUZFQTAgLyogc2lsZW5jZS1sb25nLm00YSAqLywKIAkJ
CQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLywKIAkJCQk1MTVCRTE2RTFENDI4OEZGMDBERDdDNjggLyogU3RvcmVC
bG9iVG9CZURlbGV0ZWQuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evc2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zZWxlY3RlZC10ZXh0
LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAyOWY2ZjFmYTFlODI0
NTI5ZDFmMTJmZjU5YzM4YzUwYjYwOTI2MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1l
ZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CitodG1sLCBib2R5IHsKKyAgICB3aWR0aDogMTAw
JTsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgbWFyZ2luOiAwOworfQorCisjdGV4dCwgI2ltYWdl
LCAjbGluayB7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBmb250LXNpemU6IDgwcHg7CisgICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworI2VkaXRvciB7CisgICAgYm9yZGVyOiBibGFjayAx
cHggc29saWQ7CisgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzMDBweCk7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorCis8Ym9keT4KKzxkaXYgaWQ9InRleHQiPkFCQ0Q8L2Rpdj4KKzxkaXY+PGltZyBp
ZD0iaW1hZ2UiIHNyYz0iYXBwbGUuZ2lmIj48L2ltZz48L2Rpdj4KKzxkaXY+PGEgaWQ9Imxpbmsi
IGhyZWY9Imh0dHBzOi8vd3d3LmFwcGxlLmNvbS8iPkEgbGluazwvYT48L2Rpdj4KKzxkaXYgY29u
dGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvZGl2PgorPHNjcmlwdD4KK2dldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQodGV4dCwgMCwgdGV4dCwgMSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJ
bnRlcmFjdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUlu
dGVyYWN0aW9uVGVzdHMubW0KaW5kZXggM2Y3M2JmMDY2NDc4OGNhZDcwNDNhMTZmYzU3N2UzMDMx
Mjk5ODFhNC4uNTViMGJiZGYxNThhYjdmNGU5NjZkNzc0Mzg1NDU4ODAwYWI2NDMxZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVz
dHMubW0KQEAgLTEyMzQsNiArMTIzNCwyMSBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBE
b05vdENyYXNoV2hlblNlbGVjdGlvbk1vdmVzT2Zmc2NyZWVuQWZ0ZXJEcmFnU3RhcnQpCiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJGQVIgT0ZGU0NSRUVOIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkudG9TdHJpbmcoKSJd
KTsKIH0KIAorVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgQWRkaXRpb25hbEl0ZW1zQ2FuQmVQ
cmV2ZW50ZWRPbkRyYWdTdGFydCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAw
KV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNlbGVj
dGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUiXTsKKyAgICBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibGluay5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQn
LCBlID0+IGUucHJldmVudERlZmF1bHQoKSkiXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgZSA9
PiBlLnByZXZlbnREZWZhdWx0KCkpIl07CisKKyAgICBhdXRvIHNpbXVsYXRvciA9IGFkb3B0TlMo
W1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3
LmdldCgpXSk7CisgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDUwLCA1MCkgdG86
Q0dQb2ludE1ha2UoNTAsIDQwMCkgYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOkB7Cisg
ICAgICAgIEAwLjMzOiBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OkNHUG9pbnRNYWtlKDUwLCAx
NTApXSwKKyAgICAgICAgQDAuNjY6IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6Q0dQb2ludE1h
a2UoNTAsIDI1MCldCisgICAgfV07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJBQkNEIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRvci50ZXh0Q29udGVudCJdKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3IuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRl
cmFjdGlvblNpbXVsYXRvci5oCmluZGV4IDBhMGQ1MGRlNDY5NTZlNWFmMTU1YjVkOGU3NmMxMGU0
Yzk3MWI1MDMuLmExMzMyZGVmODQ4OGM5YzhiOWY2NDQyNGI3MmE4NDQzNTQ4ODE3ZGEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5o
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5o
CkBAIC04Niw2ICs4Niw4IEBAIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlv
blBlcmZvcm1PcGVyYXRpb25FdmVudE5hbWU7CiBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBEYXRh
SW50ZXJhY3Rpb25MZWF2ZUV2ZW50TmFtZTsKIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IERhdGFJ
bnRlcmFjdGlvblN0YXJ0RXZlbnROYW1lOwogCit0eXBlZGVmIE5TRGljdGlvbmFyeTxOU051bWJl
ciAqLCBOU1ZhbHVlICo+ICpQcm9ncmVzc1RvQ0dQb2ludFZhbHVlTWFwOworCiB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogICAgIERhdGFJbnRlcmFj
dGlvbkNhbmNlbGxlZCA9IDAsCiAgICAgRGF0YUludGVyYWN0aW9uQmVnaW5uaW5nID0gMSwKQEAg
LTEwNyw2ICsxMDksOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJhY3Rp
b25QaGFzZSkgewogICAgIENHUG9pbnQgX2VuZExvY2F0aW9uOwogICAgIENHUmVjdCBfbGFzdEtu
b3duRHJhZ0NhcmV0UmVjdDsKIAorICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PE5T
TnVtYmVyICosIE5TVmFsdWUgKj4+X3JlbWFpbmluZ0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0
aW9uc0J5UHJvZ3Jlc3M7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PE5TVmFsdWUgKj4+
X3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uczsKKwogICAgIGJvb2wgX2lzRG9u
ZVdhaXRpbmdGb3JJbnB1dFNlc3Npb247CiAgICAgQk9PTCBfc2hvdWxkUGVyZm9ybU9wZXJhdGlv
bjsKICAgICBkb3VibGUgX2N1cnJlbnRQcm9ncmVzczsKQEAgLTExNSw3ICsxMjAsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogfQogCiAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihUZXN0V0tXZWJWaWV3ICopd2ViVmlldzsKKy8v
IFRoZSBzdGFydCBsb2NhdGlvbiwgZW5kIGxvY2F0aW9uLCBhbmQgbG9jYXRpb25zIG9mIGFkZGl0
aW9uYWwgaXRlbSByZXF1ZXN0cyBhcmUgYWxsIGluIHdpbmRvdyBjb29yZGluYXRlcy4KIC0gKHZv
aWQpcnVuRnJvbTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRvOihDR1BvaW50KWVuZExvY2F0aW9u
OworLSAodm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0TG9jYXRpb24gdG86KENHUG9pbnQpZW5k
TG9jYXRpb24gYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOihQcm9ncmVzc1RvQ0dQb2lu
dFZhbHVlTWFwKWFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uczsKIC0gKHZvaWQpd2FpdEZv
cklucHV0U2Vzc2lvbjsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzRm9jdXNU
b1N0YXJ0SW5wdXRTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3Mv
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4IGNjNGFmNzkzYzU0Nzg1MDFjNzI1NTg3YWJk
YjMxN2IyMzVhOThiZjQuLmE0ZWVmZDE3MWU0ODEyMjhiYzA5ZmQyNzQzNWM0ZWE3OWJjZDE1Njgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVs
YXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3IubW0KQEAgLTEzMyw2ICsxMzMsMTcgQEAgLSAodm9pZClzZXRJdGVtczooTlNBcnJheTxV
SURyYWdJdGVtICo+ICopaXRlbXMKICAgICBfbW9ja0l0ZW1zID0gaXRlbXM7CiB9CiAKKy0gKHZv
aWQpYWRkSXRlbXM6KE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKWl0ZW1zCit7CisgICAgaWYgKCFb
aXRlbXMgY291bnRdKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVtfbW9ja0l0ZW1zIGNv
dW50XSkKKyAgICAgICAgX21vY2tJdGVtcyA9IGl0ZW1zOworICAgIGVsc2UKKyAgICAgICAgX21v
Y2tJdGVtcyA9IFtfbW9ja0l0ZW1zIGFycmF5QnlBZGRpbmdPYmplY3RzRnJvbUFycmF5Oml0ZW1z
XTsKK30KKwogLSAoQ0dQb2ludClsb2NhdGlvbkluVmlldzooVUlWaWV3ICopdmlldwogewogICAg
IHJldHVybiBbX3dpbmRvdyBjb252ZXJ0UG9pbnQ6X21vY2tMb2NhdGlvbkluV2luZG93IHRvVmll
dzp2aWV3XTsKQEAgLTMwNyw2ICszMTgsOCBAQCAtICh2b2lkKV9yZXNldFNpbXVsYXRlZFN0YXRl
CiAgICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gbmlsOwogICAgIF9zaG91bGRQZXJmb3JtT3Bl
cmF0aW9uID0gTk87CiAgICAgX2xhc3RLbm93bkRyYWdDYXJldFJlY3QgPSBDR1JlY3RaZXJvOwor
ICAgIF9yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNzID0g
bmlsOworICAgIF9xdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnMgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKIH0KIAogLSAoTlNBcnJheSAqKW9ic2Vy
dmVkRXZlbnROYW1lcwpAQCAtMzI2LDYgKzMzOSwxMSBAQCAtICh2b2lkKXNpbXVsYXRlQWxsVG91
Y2hlc0NhbmNlbGVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogCiAtICh2b2lkKXJ1
bkZyb206KENHUG9pbnQpc3RhcnRMb2NhdGlvbiB0bzooQ0dQb2ludCllbmRMb2NhdGlvbgogewor
ICAgIFtzZWxmIHJ1bkZyb206c3RhcnRMb2NhdGlvbiB0bzplbmRMb2NhdGlvbiBhZGRpdGlvbmFs
SXRlbVJlcXVlc3RMb2NhdGlvbnM6bmlsXTsKK30KKworLSAodm9pZClydW5Gcm9tOihDR1BvaW50
KXN0YXJ0TG9jYXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRpb24gYWRkaXRpb25hbEl0ZW1SZXF1
ZXN0TG9jYXRpb25zOihQcm9ncmVzc1RvQ0dQb2ludFZhbHVlTWFwKWFkZGl0aW9uYWxJdGVtUmVx
dWVzdExvY2F0aW9ucworewogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyICpkZWZhdWx0Q2VudGVy
ID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwogICAgIFtkZWZhdWx0Q2Vu
dGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHNpbXVsYXRlQWxsVG91Y2hl
c0NhbmNlbGVkOikgbmFtZTpUZXN0V2ViS2l0QVBJU2ltdWxhdGVDYW5jZWxBbGxUb3VjaGVzTm90
aWZpY2F0aW9uTmFtZSBvYmplY3Q6bmlsXTsKIApAQCAtMzM0LDYgKzM1Miw5IEBAIC0gKHZvaWQp
cnVuRnJvbTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRvOihDR1BvaW50KWVuZExvY2F0aW9uCiAK
ICAgICBbc2VsZiBfcmVzZXRTaW11bGF0ZWRTdGF0ZV07CiAKKyAgICBpZiAoYWRkaXRpb25hbEl0
ZW1SZXF1ZXN0TG9jYXRpb25zKQorICAgICAgICBfcmVtYWluaW5nQWRkaXRpb25hbEl0ZW1SZXF1
ZXN0TG9jYXRpb25zQnlQcm9ncmVzcyA9IGFkb3B0TlMoW2FkZGl0aW9uYWxJdGVtUmVxdWVzdExv
Y2F0aW9ucyBtdXRhYmxlQ29weV0pOworCiAgICAgUmV0YWluUHRyPERhdGFJbnRlcmFjdGlvblNp
bXVsYXRvcj4gc3Ryb25nU2VsZiA9IHNlbGY7CiAgICAgZm9yIChOU1N0cmluZyAqZXZlbnROYW1l
IGluIGRhdGFJbnRlcmFjdGlvbkV2ZW50TmFtZXMoKSkgewogICAgICAgICBEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgKndlYWtTZWxmID0gc3Ryb25nU2VsZi5nZXQoKTsKQEAgLTM5MSw4ICs0MTIs
NDUgQEAgLSAodm9pZClfY29uY2x1ZGVEYXRhSW50ZXJhY3Rpb25BbmRQZXJmb3JtT3BlcmF0aW9u
SWZOZWNlc3NhcnkKICAgICAgICAgW193ZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNl
c3Npb25EaWRFbmQ6X2RhdGFJbnRlcmFjdGlvblNlc3Npb24uZ2V0KCldOwogfQogCistICh2b2lk
KV9lbnF1ZXVlUGVuZGluZ0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucworeworICAgIE5T
TXV0YWJsZUFycmF5ICpwcm9ncmVzc1ZhbHVlc1RvUmVtb3ZlID0gW05TTXV0YWJsZUFycmF5IGFy
cmF5XTsKKyAgICBmb3IgKE5TTnVtYmVyICpwcm9ncmVzc1ZhbHVlIGluIF9yZW1haW5pbmdBZGRp
dGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNzLmdldCgpKSB7CisgICAgICAgIGRv
dWJsZSBwcm9ncmVzcyA9IHByb2dyZXNzVmFsdWUuZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChw
cm9ncmVzcyA+IF9jdXJyZW50UHJvZ3Jlc3MpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgW3Byb2dyZXNzVmFsdWVzVG9SZW1vdmUgYWRkT2JqZWN0OnByb2dyZXNzVmFsdWVdOworICAg
ICAgICBbX3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucyBhZGRPYmplY3Q6W19y
ZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNzIG9iamVjdEZv
cktleTpwcm9ncmVzc1ZhbHVlXV07CisgICAgfQorCisgICAgZm9yIChOU051bWJlciAqcHJvZ3Jl
c3NUb1JlbW92ZSBpbiBwcm9ncmVzc1ZhbHVlc1RvUmVtb3ZlKQorICAgICAgICBbX3JlbWFpbmlu
Z0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3MgcmVtb3ZlT2JqZWN0Rm9y
S2V5OnByb2dyZXNzVG9SZW1vdmVdOworfQorCistIChCT09MKV9zZW5kUXVldWVkQWRkaXRpb25h
bEl0ZW1SZXF1ZXN0Cit7CisgICAgaWYgKCFbX3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExv
Y2F0aW9ucyBjb3VudF0pCisgICAgICAgIHJldHVybiBOTzsKKworICAgIFJldGFpblB0cjxOU1Zh
bHVlPiByZXF1ZXN0TG9jYXRpb25WYWx1ZSA9IFtfcXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0
TG9jYXRpb25zIG9iamVjdEF0SW5kZXg6MF07CisgICAgW19xdWV1ZWRBZGRpdGlvbmFsSXRlbVJl
cXVlc3RMb2NhdGlvbnMgcmVtb3ZlT2JqZWN0QXRJbmRleDowXTsKKworICAgIGF1dG8gcmVxdWVz
dExvY2F0aW9uID0gW1tfd2ViVmlldyB3aW5kb3ddIGNvbnZlcnRQb2ludDpbcmVxdWVzdExvY2F0
aW9uVmFsdWUgQ0dQb2ludFZhbHVlXSB0b1ZpZXc6X3dlYlZpZXcuZ2V0KCldOworICAgIFtfd2Vi
VmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjpfZGF0YUludGVyYWN0aW9uU2Vz
c2lvbi5nZXQoKSBhdExvY2F0aW9uOnJlcXVlc3RMb2NhdGlvbiBjb21wbGV0aW9uOltkcmFnU2Vz
c2lvbiA9IF9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uLCBkcm9wU2Vzc2lvbiA9IF9kYXRhT3BlcmF0
aW9uU2Vzc2lvbl0gKE5TQXJyYXkgKml0ZW1zKSB7CisgICAgICAgIFtkcmFnU2Vzc2lvbiBhZGRJ
dGVtczppdGVtc107CisgICAgICAgIFtkcm9wU2Vzc2lvbiBhZGRJdGVtczppdGVtc107CisgICAg
fV07CisgICAgcmV0dXJuIFlFUzsKK30KKwogLSAodm9pZClfYWR2YW5jZVByb2dyZXNzCiB7Cisg
ICAgW3NlbGYgX2VucXVldWVQZW5kaW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zXTsK
KyAgICBpZiAoW3NlbGYgX3NlbmRRdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3RdKSB7CisgICAg
ICAgIFtzZWxmIF9zY2hlZHVsZUFkdmFuY2VQcm9ncmVzc107CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBfbGFzdEtub3duRHJhZ0NhcmV0UmVjdCA9IFtfd2ViVmlldyBfZHJhZ0NhcmV0
UmVjdF07CiAgICAgX2N1cnJlbnRQcm9ncmVzcyArPSBwcm9ncmVzc0luY3JlbWVudFN0ZXA7CiAg
ICAgQ0dQb2ludCBsb2NhdGlvbkluV2luZG93ID0gc2VsZi5fY3VycmVudExvY2F0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319928</attachid>
            <date>2017-09-05 12:50:52 -0700</date>
            <delta_ts>2017-09-05 19:41:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176348-20170905125051.patch</filename>
            <type>text/plain</type>
            <size>42368</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhmYTU2YTg2OGFiNGZiZWVl
YzM0MzFmYWRiNWJlODcwMzJlMjgzMWIuLjYzN2Y5MDc0NGM0ODZiY2I3ZWI3MzYxN2MzOTM2ZjAx
ZjViZTgwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzQgQEAKIDIwMTctMDktMDQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPUyBXSzJdIEFkZCBw
bHVtYmluZyBmb3IgV0tDb250ZW50VmlldyB0byBhc2sgdGhlIHdlYiBwcm9jZXNzIGZvciBhZGRp
dGlvbmFsIGRyYWcgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjM0OAorICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMx
MTQ0Njc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYm9pbGVycGxhdGUgcGx1bWJpbmcgdG8gcmVxdWVzdCBhZGRpdGlvbmFsIGl0ZW1zIHRv
IGFuIGV4aXN0aW5nIHNlc3Npb24uIFRoaXMgaW1wbGVtZW50cyBzb21lIFVJLXNpZGUgbG9naWMK
KyAgICAgICAgaW4gV0tDb250ZW50VmlldyB0byBzZW5kIGFuIGFkZGl0aW9uYWwgZHJhZyBpdGVt
cyByZXF1ZXN0IGFuZCBoYW5kbGUgYSByZXNwb25zZSBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy4gCisg
ICAgICAgIFRvIHN0YXJ0LCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JE
cmFnU2Vzc2lvbiBpcyBpbnZva2VkIGJ5IC1fZHJhZ0ludGVyYWN0aW9uOgorICAgICAgICBpdGVt
c0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hBdFBvaW50OmNvbXBsZXRpb246IGluIFdLQ29u
dGVudFZpZXcsIGFuZCB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgd2ViIHByb2Nlc3MgaXMKKyAgICAg
ICAgaGFuZGxlZCBpbiAtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRl
bXNSZXF1ZXN0Ol0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZUl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9u
OmF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICBBZGQgU1BJIHRvIHNpbXVsYXRlIGEgcmVx
dWVzdCBmb3IgYWRkaXRpb25hbCBkcmFnIGl0ZW1zLiBTZWUgVG9vbHMvQ2hhbmdlTG9nIGZvciBt
b3JlIGRldGFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRkIGFuIElQQyBtZXNzYWdlIGhhbmRsZXIg
Zm9yIHRoZSBhZGRpdGlvbmFsIGRyYWcgaXRlbXMgcmVzcG9uc2UgZnJvbSB0aGUgd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OkJsb2NrUHRyPHZv
aWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGU6OnNob3VsZFJlcXVl
c3RBZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
RHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25h
bEl0ZW0pOgorCisgICAgICAgIEludm9rZSB0aGUgbmV3IGFkZGl0aW9uYWwgaXRlbXMgY29tcGxl
dGlvbiBoYW5kbGVyIHdoZW4gdGVhcmluZyBkb3duIHRvIGF2b2lkIGdldHRpbmcgVUlLaXQgaW50
byBhIGJhZCBzdGF0ZS4KKworICAgICAgICAoV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGU6OmRyYWdBbmREcm9wU2Vzc2lvbnNEaWRFbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkSGFuZGxlQWRk
aXRpb25hbERyYWdJdGVtc1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEhhbmRsZUFk
ZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9p
dGVtc0ZvckJlZ2lubmluZ09yQWRkaW5nVG9TZXNzaW9uV2l0aFJlZ2lzdHJhdGlvbkxpc3Q6c3Rh
Z2VkRHJhZ1NvdXJjZTpdKToKKworICAgICAgICBGYWN0b3JzIGNvbW1vbiBsb2dpYyB0byBjb252
ZXJ0IGEgc3RhZ2VkIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0IGFuZCBEcmFn
U291cmNlU3RhdGUgaW50byBhIGxpc3Qgb2YKKyAgICAgICAgZHJhZyBpdGVtcywgaW52b2tpbmcg
dGhlIHByaXZhdGUgVUkgZGVsZWdhdGUgaW4gdGhlIHByb2Nlc3MuIFRoaXMgaXMgY2FsbGVkIGJv
dGggd2hlbiBzdGFydGluZyBhIGRyYWcgc2Vzc2lvbiwKKyAgICAgICAgYW5kIGFkZGluZyBpdGVt
cyB0byBhbiBleGlzdGluZyBkcmFnIHNlc3Npb24uCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfZHJhZ0ludGVyYWN0aW9uOml0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOndpdGhUb3VjaEF0UG9p
bnQ6Y29tcGxldGlvbjpdKToKKworICAgICAgICBJbXBsZW1lbnRzIGEgKHByb3Bvc2VkKSBhZGRp
dGlvbmFsIGRyYWcgaXRlbSBkZWxlZ2F0ZSB0aGF0IHNlcnZlcyBhcyBhbiBhc3luY2hyb25vdXMg
YWx0ZXJuYXRpdmUgdG8gdGhlIEFQSQorICAgICAgICB2YXJpYW50LCAtX2RyYWdJbnRlcmFjdGlv
bjppdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjp3aXRoVG91Y2hBdFBvaW50Oi4gU2VlIDxyZGFyOi8v
cHJvYmxlbS8zMzE0NjgwMz4gZm9yIG1vcmUKKyAgICAgICAgaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246aXRlbXNGb3JCZWdpbm5pbmdTZXNz
aW9uOl0pOgorCisgICAgICAgIFJlZmFjdG9yZWQgdG8gdXNlIC1faXRlbXNGb3JCZWdpbm5pbmdP
ckFkZGluZ1RvU2Vzc2lvbldpdGhSZWdpc3RyYXRpb25MaXN0OnN0YWdlZERyYWdTb3VyY2U6Lgor
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlSXRlbXNGb3JBZGRpbmdUb1Nlc3Np
b246YXRMb2NhdGlvbjpjb21wbGV0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEhhbmRs
ZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRkIGFuIElQQyBtZXNzYWdlIGhhbmRs
ZXIgZm9yIHRoZSBhZGRpdGlvbmFsIGRyYWcgaXRlbXMgcmVxdWVzdCBmcm9tIHRoZSBVSSBwcm9j
ZXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nl
c3Npb24pOgorCisyMDE3LTA5LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCiAgICAgICAgIFtpT1MgRG5EXSBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGxvZ2ljIGlu
IFdLQ29udGVudFZpZXcgaW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgZHJh
ZyBpdGVtcyBpbiBhIGRyYWcgc2Vzc2lvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjY0CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTE0NDY3
ND4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDNlMDFkYWRkMzM5NDlmNTk4ODJhYmQyY2ZiNWY2OGYyNTM2NGJmMjMuLjUzNGE4ZmU1YTRk
NzNhYmVhM2JjYTZiZjQzOGViMjAxZmI2MmJhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTgzMSw2ICs1ODMxLDEzIEBAIC0gKE5T
QXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uCiAjZW5kaWYKIH0K
IAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBh
dExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoTlNBcnJheSAq
KSljb21wbGV0aW9uCit7CisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgW19jb250
ZW50VmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjpzZXNzaW9uIGF0TG9jYXRp
b246bG9jYXRpb24gY29tcGxldGlvbjpjb21wbGV0aW9uXTsKKyNlbmRpZgorfQorCiAtICh2b2lk
KV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOihpZClzZXNzaW9uIGNv
bXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbgogewogI2lmIEVOQUJMRShEQVRB
X0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggYzk1ODNhNzRhODBmZmQwOWU2ZDExZTljNTc1ZDBh
ODk4MDE4MWYxMy4uMWE3ZmQzYWU2ZjgzOGVkYjI0ZTViNTc3ZmNlMWE0NThmNTNjN2RiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCkBAIC0zNzMsNiArMzczLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
SW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uRGlkRW5kOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246
KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAoTlNBcnJh
eSAqKV9zaW11bGF0ZWRJdGVtc0ZvclNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vz
c2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246
KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Np
b246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlTG9uZ1By
ZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IDE2NjcwNjY4ZWY3MGQ4ZWMwZTJkYzY1NTU4MmZjZGU2MThh
MDM2YjQuLjUzZmVhMGE0ZmY4YmI4MTU5ZTRiYTU4NDY3MzBkMDg0M2QxYTg1MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4MSw2ICszODEsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1E
YXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBz
dGFydGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRl
bXNSZXF1ZXN0KGJvb2wgYWRkZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKGNv
bnN0IFdlYkNvcmU6OkRyYWdJdGVtJiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlv
bihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcHJldmlvdXNDYXJldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNh
cmV0UmVjdCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
M2UxYWQ3MDkwNTY3M2I5MzgzZTQ2Y2ExZjY0ZGJiYTViNGQ0OTM5Li5mZDlmMGYxNmVmM2Y0NWJh
M2JiM2QyZmFiMzNjNzQxZjY0ZGVhNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtNTYxLDcgKzU2MSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3Bl
cmF0aW9uKGJvb2wgaGFuZGxlZCk7CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFj
dGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKTsKKyAgICB2b2lkIGRpZEhhbmRsZUFkZGl0aW9uYWxE
cmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpOwogICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUlu
dGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKKyAgICB2b2lkIHJlcXVlc3RBZGRp
dGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAg
dm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJhY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGF0YT4pOwogI2VuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1MGM1NjExMDljY2M2
Yzc3MjFhMjVhYmM5MTNkZWI3YzI5NjQyZjVhLi4zYzE4YjIzOTM4NGZiYWVlZGZjOTg4MGIzMmEw
ZWVjNzZkZTc0ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTcsNiArMzE3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICBEaWRQZXJmb3JtRGF0YUlu
dGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbihib29sIGhhbmRsZWQpCiAgICAgRGlkSGFuZGxl
U3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCkKKyAgICBEaWRIYW5kbGVB
ZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKQogICAgIERpZENvbmNsdWRlRWRp
dERhdGFJbnRlcmFjdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
PiB0ZXh0SW5kaWNhdG9yKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaAppbmRleCBhM2Q4YWViNzQyYmNi
OWI4YmQ1N2MxMWNjYmZhNDRlNWIzNmUzOWRjLi4zYjFjMzI5YjcyYTQyMzY5Zjg0MDAzMzBmNTdm
ZWNiYjFhZmZiZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJh
Z0Ryb3BJbnRlcmFjdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oCkBAIC03MCw2ICs3MCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNsZWFyU3RhZ2VkRHJhZ1NvdXJjZShEaWRCZWNvbWVBY3RpdmUgPSBEaWRCZWNvbWVB
Y3RpdmU6Ok5vKTsKICAgICBVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKnByZXZpZXdGb3JEcmFnSXRl
bShVSURyYWdJdGVtICosIFVJVmlldyAqY29udGVudFZpZXcsIFVJVmlldyAqcHJldmlld0NvbnRh
aW5lcikgY29uc3Q7CiAgICAgdm9pZCBkcmFnU2Vzc2lvbldpbGxEZWxheVNldERvd25BbmltYXRp
b24oZGlzcGF0Y2hfYmxvY2tfdCBjb21wbGV0aW9uKTsKKyAgICBib29sIHNob3VsZFJlcXVlc3RB
ZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uKGlkIDxVSURyYWdTZXNzaW9uPikgY29uc3Q7Cisg
ICAgdm9pZCBkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25hbEl0ZW0odm9pZCAoXmNvbXBs
ZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikpOwogCiAgICAgLy8gVGhlc2UgaGVscGVy
IG1ldGhvZHMgYXJlIHVuaXF1ZSB0byBVSURyb3BJbnRlcmFjdGlvbi4KICAgICB2b2lkIGRyb3BT
ZXNzaW9uRGlkRW50ZXJPclVwZGF0ZShpZCA8VUlEcm9wU2Vzc2lvbj4sIGNvbnN0IFdlYkNvcmU6
OkRyYWdEYXRhJik7CkBAIC04Niw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICBpZDxVSURyb3BTZXNz
aW9uPiBkcm9wU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHJvcFNlc3Npb24uZ2V0KCk7IH0K
ICAgICBCbG9ja1B0cjx2b2lkKCk+IHRha2VEcmFnU3RhcnRDb21wbGV0aW9uQmxvY2soKSB7IHJl
dHVybiBXVEZNb3ZlKG1fZHJhZ1N0YXJ0Q29tcGxldGlvbkJsb2NrKTsgfQogICAgIEJsb2NrUHRy
PHZvaWQoKT4gdGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSB7IHJldHVybiBXVEZNb3ZlKG1f
ZHJhZ0NhbmNlbFNldERvd25CbG9jayk7IH0KKyAgICBCbG9ja1B0cjx2b2lkKE5TQXJyYXk8VUlE
cmFnSXRlbSAqPiAqKT4gdGFrZUFkZERyYWdJdGVtQ29tcGxldGlvbkJsb2NrKCkgeyByZXR1cm4g
V1RGTW92ZShtX2FkZERyYWdJdGVtQ29tcGxldGlvbkJsb2NrKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlUHJldmlld3NGb3JBY3RpdmVEcmFnU291cmNlcygpOwpAQCAtOTksNiArMTAy
LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQgPFVJRHJvcFNlc3Npb24+PiBtX2Ryb3BT
ZXNzaW9uOwogICAgIEJsb2NrUHRyPHZvaWQoKT4gbV9kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7
CiAgICAgQmxvY2tQdHI8dm9pZCgpPiBtX2RyYWdDYW5jZWxTZXREb3duQmxvY2s7CisgICAgQmxv
Y2tQdHI8dm9pZChOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKik+IG1fYWRkRHJhZ0l0ZW1Db21wbGV0
aW9uQmxvY2s7CiAKICAgICBzdGQ6Om9wdGlvbmFsPERyYWdTb3VyY2VTdGF0ZT4gbV9zdGFnZWRE
cmFnU291cmNlOwogICAgIFZlY3RvcjxEcmFnU291cmNlU3RhdGU+IG1fYWN0aXZlRHJhZ1NvdXJj
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRl
cmFjdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50
ZXJhY3Rpb25TdGF0ZS5tbQppbmRleCA3M2ZmMDdiYjQwZTJiNDllMzgwZTRiODQ3NmIyMGMxMzIy
ZGI4OTY5Li5lNTJkYmE5OTViZDViYTFhODg3ZjNhZTRmODhmOTE2ZDQyOTMxOGI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUubW0KQEAgLTE2Nyw2ICsxNjcsMTcgQEAgdm9pZCBEcmFnRHJvcEludGVyYWN0aW9uU3Rh
dGU6OmRyYWdTZXNzaW9uV2lsbERlbGF5U2V0RG93bkFuaW1hdGlvbihkaXNwYXRjaF9ibG8KICAg
ICBtX2RyYWdDYW5jZWxTZXREb3duQmxvY2sgPSBjb21wbGV0aW9uOwogfQogCitib29sIERyYWdE
cm9wSW50ZXJhY3Rpb25TdGF0ZTo6c2hvdWxkUmVxdWVzdEFkZGl0aW9uYWxJdGVtRm9yRHJhZ1Nl
c3Npb24oaWQgPFVJRHJhZ1Nlc3Npb24+IHNlc3Npb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZHJhZ1Nlc3Npb24gPT0gc2Vzc2lvbiAmJiAhbV9hZGREcmFnSXRlbUNvbXBsZXRpb25CbG9jayAm
JiAhbV9kcmFnU3RhcnRDb21wbGV0aW9uQmxvY2s7Cit9CisKK3ZvaWQgRHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlOjpkcmFnU2Vzc2lvbldpbGxSZXF1ZXN0QWRkaXRpb25hbEl0ZW0odm9pZCAoXmNv
bXBsZXRpb24pKE5TQXJyYXkgPFVJRHJhZ0l0ZW0gKj4gKikpCit7CisgICAgY2xlYXJTdGFnZWRE
cmFnU291cmNlKCk7CisgICAgbV9hZGREcmFnSXRlbUNvbXBsZXRpb25CbG9jayA9IGNvbXBsZXRp
b247Cit9CisKIHZvaWQgRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlOjpkcm9wU2Vzc2lvbkRpZEVu
dGVyT3JVcGRhdGUoaWQgPFVJRHJvcFNlc3Npb24+IHNlc3Npb24sIGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKIHsKICAgICBtX2Ryb3BTZXNzaW9uID0gc2Vzc2lvbjsKQEAgLTIxMCw2ICsyMjEs
OSBAQCB2b2lkIERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6ZHJhZ0FuZERyb3BTZXNzaW9uc0Rp
ZEVuZCgpCiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2NrID0gdGFrZURyYWdDYW5jZWxTZXRE
b3duQmxvY2soKSkKICAgICAgICAgY29tcGxldGlvbkJsb2NrKCk7CiAKKyAgICBpZiAoYXV0byBj
b21wbGV0aW9uQmxvY2sgPSB0YWtlQWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKSkKKyAgICAg
ICAgY29tcGxldGlvbkJsb2NrKEBbIF0pOworCiAgICAgaWYgKGF1dG8gY29tcGxldGlvbkJsb2Nr
ID0gdGFrZURyYWdTdGFydENvbXBsZXRpb25CbG9jaygpKQogICAgICAgICBjb21wbGV0aW9uQmxv
Y2soKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggM2MzMDg2YmM5NzBlMDFlOTIyMGYzMGFmYTk0YmMwM2NjYmFmMDI3Zi4uN2Y5
YmU3YjVkNDg0ZTczMGIzMGNhZTJhM2VjYTdmYTFkMDFmNTlkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTIwNSw2ICsyMDUsNyBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVy
Zm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oYm9vbCBoYW5kbGVkKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29s
IHN0YXJ0ZWQpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVt
c1JlcXVlc3QoYm9vbCBhZGRlZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydERyYWcoY29uc3Qg
V2ViQ29yZTo6RHJhZ0l0ZW0mLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2Up
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZENoYW5nZURhdGFJbnRlcmFjdGlvbkNhcmV0UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2FyZXRSZWN0KSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCAwZjJiNzc0YjdjZjI3N2UwMTQ2YTM2NzNlYjI0ZWMzODljMjYwYjUwLi5i
ZDBmZWU0YWZmODE4Njg5OTQwNWIwMTExNDQ2NWIyNDMyZmQzYjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03ODYsNiArNzg2
LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9u
UmVxdWVzdChib29sIHN0YXJ0ZWQpCiAgICAgW21fY29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0
RGF0YUludGVyYWN0aW9uUmVxdWVzdDpzdGFydGVkXTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRlZCkKK3sKKyAg
ICBbbV9jb250ZW50VmlldyBfZGlkSGFuZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3Q6YWRk
ZWRdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydERyYWcoY29uc3QgRHJhZ0l0ZW0m
IGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSkKIHsKICAgICBbbV9j
b250ZW50VmlldyBfc3RhcnREcmFnOlNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlKS0+bWFr
ZUNHSW1hZ2VDb3B5KCkgaXRlbTppdGVtXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5ZjcwM2Q4YmYyODli
ZmI1OGIwZWQ2NDViNTRhMzgyODZmOTQ1NGVhLi43ZGY5YmQyNjE4Y2VkNWIyNjE1Y2FiNTU5Yjkz
OWY2YjhmZGFmYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zMjEsNiArMzIxLDcgQEAgRk9SX0VBQ0hf
V0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VC
X1ZJRVcpCiAtICh2b2lkKV9kaWRDaGFuZ2VEcmFnSW50ZXJhY3Rpb25Qb2xpY3k7CiAtICh2b2lk
KV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjooQk9PTCloYW5k
bGVkOwogLSAodm9pZClfZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09M
KXN0YXJ0ZWQ7CistICh2b2lkKV9kaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdDoo
Qk9PTClhZGRlZDsKIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWlt
YWdlIGl0ZW06KGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJilpdGVtOwogLSAodm9pZClfZGlkQ29u
Y2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhPilkYXRhOwogLSAodm9pZClfZGlkQ2hhbmdlRGF0YUludGVyYWN0aW9uQ2FyZXRS
ZWN0OihDR1JlY3QpcHJldmlvdXNSZWN0IGN1cnJlbnRSZWN0OihDR1JlY3QpcmVjdDsKQEAgLTMz
Myw2ICszMzQsNyBAQCBGT1JfRUFDSF9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2lu
RGF0YUludGVyYWN0aW9uV2l0aFNlc3Npb246KGlkKXNlc3Npb247CiAtIChOU0FycmF5ICopX3Np
bXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbjsKIC0gKHZvaWQpX3NpbXVsYXRlUHJl
cGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlz
cGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uOworLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGlu
Z1RvU2Vzc2lvbjooaWQpc2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBs
ZXRpb246KHZvaWQoXikoTlNBcnJheSAqKSljb21wbGV0aW9uOwogI2VuZGlmCiAKIC0gKHZvaWQp
X3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IGE5Njg5NjE0NjBiMDdhNDcxMDU0ZTUyZGUyYWJiOTVmMDNiMzJlMWUu
LjEwNjNlZTI4ZGZhOTk0YjkxMGE0MTNhMDc4M2Q0ODhiODM5MTM3NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtNDI1OSw2ICs0MjU5LDMxIEBAIC0gKHZvaWQpX3N0YXJ0RHJhZzooUmV0YWluUHRyPENH
SW1hZ2VSZWY+KWltYWdlIGl0ZW06KGNvbnN0IERyYWdJdGVtJilpdGVtCiAgICAgX2RyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5zdGFnZURyYWdJdGVtKGl0ZW0sIGRyYWdJbWFnZS5nZXQoKSk7CiB9
CiAKKy0gKHZvaWQpX2RpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0OihCT09MKWFk
ZGVkCit7CisgICAgYXV0byBjb21wbGV0aW9uID0gX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50
YWtlQWRkRHJhZ0l0ZW1Db21wbGV0aW9uQmxvY2soKTsKKyAgICBpZiAoIWNvbXBsZXRpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0
ICpyZWdpc3RyYXRpb25MaXN0ID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZElu
c3RhbmNlXSB0YWtlUmVnaXN0cmF0aW9uTGlzdF07CisgICAgaWYgKCFhZGRlZCB8fCAhcmVnaXN0
cmF0aW9uTGlzdCB8fCAhX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5oYXNTdGFnZWREcmFnU291
cmNlKCkpIHsKKyAgICAgICAgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5jbGVhclN0YWdlZERy
YWdTb3VyY2UoKTsKKyAgICAgICAgY29tcGxldGlvbihAWyBdKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gc3RhZ2VkRHJhZ1NvdXJjZSA9IF9kcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUuc3RhZ2VkRHJhZ1NvdXJjZSgpOworICAgIE5TQXJyYXkgKmRyYWdJdGVtc1RvQWRkID0g
W3NlbGYgX2l0ZW1zRm9yQmVnaW5uaW5nT3JBZGRpbmdUb1Nlc3Npb25XaXRoUmVnaXN0cmF0aW9u
TGlzdDpyZWdpc3RyYXRpb25MaXN0IHN0YWdlZERyYWdTb3VyY2U6c3RhZ2VkRHJhZ1NvdXJjZV07
CisKKyAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJvcCwgIkRyYWcgc2Vzc2lvbjogJXAgYWRkaW5n
ICV0dSBpdGVtcyIsIF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuZHJhZ1Nlc3Npb24oKSwgZHJh
Z0l0ZW1zVG9BZGQuY291bnQpOworICAgIF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuY2xlYXJT
dGFnZWREcmFnU291cmNlKGRyYWdJdGVtc1RvQWRkLmNvdW50ID8gRHJhZ0Ryb3BJbnRlcmFjdGlv
blN0YXRlOjpEaWRCZWNvbWVBY3RpdmU6OlllcyA6IERyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTo6
RGlkQmVjb21lQWN0aXZlOjpObyk7CisKKyAgICBjb21wbGV0aW9uKGRyYWdJdGVtc1RvQWRkKTsK
KworICAgIGlmIChkcmFnSXRlbXNUb0FkZC5jb3VudCkKKyAgICAgICAgX3BhZ2UtPmRpZFN0YXJ0
RHJhZygpOworfQorCiAtICh2b2lkKV9kaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVl
c3Q6KEJPT0wpc3RhcnRlZAogewogICAgIEJsb2NrUHRyPHZvaWQoKT4gc2F2ZWRDb21wbGV0aW9u
QmxvY2sgPSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLnRha2VEcmFnU3RhcnRDb21wbGV0aW9u
QmxvY2soKTsKQEAgLTQ0NTQsNiArNDQ3OSwzNyBAQCAtICh2b2lkKV9yZXN0b3JlQ2FsbG91dEJh
cklmTmVlZGVkCiAgICAgX3Nob3VsZFJlc3RvcmVDYWxsb3V0QmFyQWZ0ZXJEcm9wID0gTk87CiB9
CiAKKy0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKV9pdGVtc0ZvckJlZ2lubmluZ09yQWRkaW5n
VG9TZXNzaW9uV2l0aFJlZ2lzdHJhdGlvbkxpc3Q6KFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlv
bkluZm9MaXN0ICopcmVnaXN0cmF0aW9uTGlzdCBzdGFnZWREcmFnU291cmNlOihjb25zdCBEcmFn
U291cmNlU3RhdGUmKXN0YWdlZERyYWdTb3VyY2UKK3sKKyAgICBVSUl0ZW1Qcm92aWRlciAqZGVm
YXVsdEl0ZW1Qcm92aWRlciA9IHJlZ2lzdHJhdGlvbkxpc3QuaXRlbVByb3ZpZGVyOworICAgIGlm
ICghZGVmYXVsdEl0ZW1Qcm92aWRlcikKKyAgICAgICAgcmV0dXJuIEBbIF07CisKKyAgICBOU0Fy
cmF5ICphZGp1c3RlZEl0ZW1Qcm92aWRlcnM7CisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
IHVpRGVsZWdhdGUgPSBzZWxmLndlYlZpZXdVSURlbGVnYXRlOworICAgIGlmIChbdWlEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFkanVzdGVkRGF0YUludGVy
YWN0aW9uSXRlbVByb3ZpZGVyc0Zvckl0ZW1Qcm92aWRlcjpyZXByZXNlbnRpbmdPYmplY3RzOmFk
ZGl0aW9uYWxEYXRhOildKSB7CisgICAgICAgIGF1dG8gcmVwcmVzZW50aW5nT2JqZWN0cyA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBhdXRvIGFkZGl0
aW9uYWxEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsK
KyAgICAgICAgW3JlZ2lzdHJhdGlvbkxpc3QgZW51bWVyYXRlSXRlbXM6W3JlcHJlc2VudGluZ09i
amVjdHMsIGFkZGl0aW9uYWxEYXRhXSAoV2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mbyAq
aXRlbSwgTlNVSW50ZWdlcikgeworICAgICAgICAgICAgaWYgKGl0ZW0ucmVwcmVzZW50aW5nT2Jq
ZWN0KQorICAgICAgICAgICAgICAgIFtyZXByZXNlbnRpbmdPYmplY3RzIGFkZE9iamVjdDppdGVt
LnJlcHJlc2VudGluZ09iamVjdF07CisgICAgICAgICAgICBpZiAoaXRlbS50eXBlSWRlbnRpZmll
ciAmJiBpdGVtLmRhdGEpCisgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxEYXRhIHNldE9iamVj
dDppdGVtLmRhdGEgZm9yS2V5Oml0ZW0udHlwZUlkZW50aWZpZXJdOworICAgICAgICB9XTsKKyAg
ICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZp
ZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVByb3ZpZGVyOmRl
ZmF1bHRJdGVtUHJvdmlkZXIgcmVwcmVzZW50aW5nT2JqZWN0czpyZXByZXNlbnRpbmdPYmplY3Rz
LmdldCgpIGFkZGl0aW9uYWxEYXRhOmFkZGl0aW9uYWxEYXRhLmdldCgpXTsKKyAgICB9IGVsc2UK
KyAgICAgICAgYWRqdXN0ZWRJdGVtUHJvdmlkZXJzID0gQFsgZGVmYXVsdEl0ZW1Qcm92aWRlciBd
OworCisgICAgTlNNdXRhYmxlQXJyYXkgKmRyYWdJdGVtcyA9IFtOU011dGFibGVBcnJheSBhcnJh
eVdpdGhDYXBhY2l0eTphZGp1c3RlZEl0ZW1Qcm92aWRlcnMuY291bnRdOworICAgIGZvciAoVUlJ
dGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciBpbiBhZGp1c3RlZEl0ZW1Qcm92aWRlcnMpIHsKKyAg
ICAgICAgYXV0byBpdGVtID0gYWRvcHROUyhbW1VJRHJhZ0l0ZW0gYWxsb2NdIGluaXRXaXRoSXRl
bVByb3ZpZGVyOml0ZW1Qcm92aWRlcl0pOworICAgICAgICBbaXRlbSBfc2V0UHJpdmF0ZUxvY2Fs
Q29udGV4dDpAKHN0YWdlZERyYWdTb3VyY2UuaXRlbUlkZW50aWZpZXIpXTsKKyAgICAgICAgW2Ry
YWdJdGVtcyBhZGRPYmplY3Q6aXRlbS5hdXRvcmVsZWFzZSgpXTsKKyAgICB9CisKKyAgICByZXR1
cm4gZHJhZ0l0ZW1zOworfQorCiAjcHJhZ21hIG1hcmsgLSBVSURyYWdJbnRlcmFjdGlvbkRlbGVn
YXRlCiAKIC0gKEJPT0wpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRl
cmFjdGlvbiBzaG91bGREZWxheUNvbXBldGluZ0dlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVS
ZWNvZ25pemVyICopY29tcGV0aW5nR2VzdHVyZVJlY29nbml6ZXIKQEAgLTQ0NzcsNiArNDUzMywx
NyBAQCAtIChOU0ludGVnZXIpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilp
bnRlcmFjdGlvbiBkYXRhT3duZXJGb3JTZXNzaQogICAgIHJldHVybiBkYXRhT3duZXI7CiB9CiAK
Ky0gKHZvaWQpX2RyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biBpdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gd2l0
aFRvdWNoQXRQb2ludDooQ0dQb2ludClwb2ludCBjb21wbGV0aW9uOih2b2lkKF4pKE5TQXJyYXk8
VUlEcmFnSXRlbSAqPiAqKSljb21wbGV0aW9uCit7CisgICAgaWYgKCFfZHJhZ0Ryb3BJbnRlcmFj
dGlvblN0YXRlLnNob3VsZFJlcXVlc3RBZGRpdGlvbmFsSXRlbUZvckRyYWdTZXNzaW9uKHNlc3Np
b24pKSB7CisgICAgICAgIGNvbXBsZXRpb24oQFsgXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmRyYWdTZXNzaW9uV2lsbFJlcXVlc3RB
ZGRpdGlvbmFsSXRlbShjb21wbGV0aW9uKTsKKyAgICBfcGFnZS0+cmVxdWVzdEFkZGl0aW9uYWxJ
dGVtc0ZvckRyYWdTZXNzaW9uKHJvdW5kZWRJbnRQb2ludChwb2ludCksIHJvdW5kZWRJbnRQb2lu
dChwb2ludCkpOworfQorCiAtICh2b2lkKV9kcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0ludGVyYWN0
aW9uICopaW50ZXJhY3Rpb24gcHJlcGFyZUZvclNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilz
ZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbgogewogICAgIFtz
ZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CkBAIC00NTE1LDM3ICs0NTgy
LDcgQEAgLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGl0ZW0KIAogICAgIGF1dG8gc3RhZ2VkRHJhZ1NvdXJj
ZSA9IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuc3RhZ2VkRHJhZ1NvdXJjZSgpOwogICAgIFdl
Ykl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0ICpyZWdpc3RyYXRpb25MaXN0ID0gW1tX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSB0YWtlUmVnaXN0cmF0aW9u
TGlzdF07Ci0gICAgVUlJdGVtUHJvdmlkZXIgKmRlZmF1bHRJdGVtUHJvdmlkZXIgPSByZWdpc3Ry
YXRpb25MaXN0Lml0ZW1Qcm92aWRlcjsKLSAgICBpZiAoIWRlZmF1bHRJdGVtUHJvdmlkZXIpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIHNlc3Npb24gZmFpbGVkOiAl
cCAobm8gaXRlbSBwcm92aWRlcnMgZ2VuZXJhdGVkIGJlZm9yZSBhZGp1c3RtZW50KSIsIHNlc3Np
b24pOwotICAgICAgICBfcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOwotICAgICAgICBfZHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLmNsZWFyU3RhZ2VkRHJhZ1NvdXJjZSgpOwotICAgICAgICByZXR1cm4g
QFsgXTsKLSAgICB9Ci0KLSAgICAvLyBHaXZlIGludGVybmFsIGNsaWVudHMgc3VjaCBhcyBNYWls
IG9uZSBmaW5hbCBjaGFuY2UgdG8gYXVnbWVudCB0aGUgY29udGVudHMgb2YgZWFjaCBVSUl0ZW1Q
cm92aWRlciBiZWZvcmUgc2VuZGluZyB0aGUgZHJhZyBpdGVtcyBvZmYgdG8gVUlLaXQuCi0gICAg
TlNBcnJheSAqYWRqdXN0ZWRJdGVtUHJvdmlkZXJzOwotICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPiB1aURlbGVnYXRlID0gc2VsZi53ZWJWaWV3VUlEZWxlZ2F0ZTsKLSAgICBpZiAoW3VpRGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzphZGp1c3RlZERhdGFJ
bnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlkZXI6cmVwcmVzZW50aW5nT2JqZWN0
czphZGRpdGlvbmFsRGF0YTopXSkgewotICAgICAgICBhdXRvIHJlcHJlc2VudGluZ09iamVjdHMg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgYXV0byBh
ZGRpdGlvbmFsRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgIFtyZWdpc3RyYXRpb25MaXN0IGVudW1lcmF0ZUl0ZW1zOltyZXByZXNlbnRp
bmdPYmplY3RzLCBhZGRpdGlvbmFsRGF0YV0gKFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbklu
Zm8gKml0ZW0sIE5TVUludGVnZXIpIHsKLSAgICAgICAgICAgIGlmIChpdGVtLnJlcHJlc2VudGlu
Z09iamVjdCkKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRPYmplY3Q6
aXRlbS5yZXByZXNlbnRpbmdPYmplY3RdOwotICAgICAgICAgICAgaWYgKGl0ZW0udHlwZUlkZW50
aWZpZXIgJiYgaXRlbS5kYXRhKQotICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsRGF0YSBzZXRP
YmplY3Q6aXRlbS5kYXRhIGZvcktleTppdGVtLnR5cGVJZGVudGlmaWVyXTsKLSAgICAgICAgfV07
Ci0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IGFkanVzdGVkRGF0YUludGVyYWN0aW9uSXRlbVByb3ZpZGVyc0Zvckl0ZW1Qcm92aWRl
cjpkZWZhdWx0SXRlbVByb3ZpZGVyIHJlcHJlc2VudGluZ09iamVjdHM6cmVwcmVzZW50aW5nT2Jq
ZWN0cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTphZGRpdGlvbmFsRGF0YS5nZXQoKV07Ci0gICAgfSBl
bHNlCi0gICAgICAgIGFkanVzdGVkSXRlbVByb3ZpZGVycyA9IEBbIGRlZmF1bHRJdGVtUHJvdmlk
ZXIgXTsKLQotICAgIE5TTXV0YWJsZUFycmF5ICpkcmFnSXRlbXMgPSBbTlNNdXRhYmxlQXJyYXkg
YXJyYXlXaXRoQ2FwYWNpdHk6YWRqdXN0ZWRJdGVtUHJvdmlkZXJzLmNvdW50XTsKLSAgICBmb3Ig
KFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgaW4gYWRqdXN0ZWRJdGVtUHJvdmlkZXJzKSB7
Ci0gICAgICAgIGF1dG8gaXRlbSA9IGFkb3B0TlMoW1tVSURyYWdJdGVtIGFsbG9jXSBpbml0V2l0
aEl0ZW1Qcm92aWRlcjppdGVtUHJvdmlkZXJdKTsKLSAgICAgICAgW2l0ZW0gX3NldFByaXZhdGVM
b2NhbENvbnRleHQ6QChzdGFnZWREcmFnU291cmNlLml0ZW1JZGVudGlmaWVyKV07Ci0gICAgICAg
IFtkcmFnSXRlbXMgYWRkT2JqZWN0Oml0ZW0uYXV0b3JlbGVhc2UoKV07Ci0gICAgfQotCisgICAg
TlNBcnJheSAqZHJhZ0l0ZW1zID0gW3NlbGYgX2l0ZW1zRm9yQmVnaW5uaW5nT3JBZGRpbmdUb1Nl
c3Npb25XaXRoUmVnaXN0cmF0aW9uTGlzdDpyZWdpc3RyYXRpb25MaXN0IHN0YWdlZERyYWdTb3Vy
Y2U6c3RhZ2VkRHJhZ1NvdXJjZV07CiAgICAgaWYgKCFbZHJhZ0l0ZW1zIGNvdW50XSkKICAgICAg
ICAgX3BhZ2UtPmRyYWdDYW5jZWxsZWQoKTsKIApAQCAtNDgyOCw2ICs0ODY1LDExIEBAIC0gKHZv
aWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24g
Y29tcGxldGlvbjooZGlzcGF0CiAgICAgW3NlbGYgX2RyYWdJbnRlcmFjdGlvbjpfZHJhZ0ludGVy
YWN0aW9uLmdldCgpIHByZXBhcmVGb3JTZXNzaW9uOnNlc3Npb24gY29tcGxldGlvbjpjb21wbGV0
aW9uXTsKIH0KIAorLSAodm9pZClfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lvbjooaWQp
c2Vzc2lvbiBhdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXiko
TlNBcnJheSAqKSljb21wbGV0aW9uCit7CisgICAgW3NlbGYgX2RyYWdJbnRlcmFjdGlvbjpfZHJh
Z0ludGVyYWN0aW9uLmdldCgpIGl0ZW1zRm9yQWRkaW5nVG9TZXNzaW9uOnNlc3Npb24gd2l0aFRv
dWNoQXRQb2ludDpsb2NhdGlvbiBjb21wbGV0aW9uOmNvbXBsZXRpb25dOworfQorCiAjZW5kaWYK
IAogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQppbmRleCAyMTFhYWM3ZGQ4MDcxMzcwMjc1OTdhMWY2YTcwNDQ1N2ZmNjkzNTVlLi40NzI4ZTBk
ZmZlMTBjNWZmN2M3MDdlMDRhODMxODA0YWZiYmUyZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwOTQsMTIgKzEwOTQsMjMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChi
b29sIHN0YXJ0ZWQpCiAgICAgbV9wYWdlQ2xpZW50LmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0
aW9uUmVxdWVzdChzdGFydGVkKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZUFk
ZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGJvb2wgYWRkZWQpCit7CisgICAgbV9wYWdlQ2xpZW50
LmRpZEhhbmRsZUFkZGl0aW9uYWxEcmFnSXRlbXNSZXF1ZXN0KGFkZGVkKTsKK30KKwogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbikKIHsKICAgICBpZiAoaXNWYWxpZCgpKQogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjbGllbnRQb3Np
dGlvbiwgZ2xvYmFsUG9zaXRpb24pLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgSW50UG9pbnQmIGNs
aWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pCit7CisgICAgaWYg
KGlzVmFsaWQoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpS
ZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY2xpZW50UG9zaXRpb24sIGdsb2Jh
bFBvc2l0aW9uKSwgbV9wYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29uY2x1
ZGVFZGl0RGF0YUludGVyYWN0aW9uKHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+IGRh
dGEpCiB7CiAgICAgbV9wYWdlQ2xpZW50LmRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihk
YXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBh
NTk1OWEyOGRhNGFiN2FhNzRmYjUxZDA5NTk0M2I3NzQ0NGFhOGU3Li5lNTQ2OTkzMDRhYmZlNDY3
ZmY1MTYwY2JkOTZmMmU1OWQxOGNhNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMyLDYgKzEwMzIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJDb3JlOjpSYW5nZT4gc3dpdGNoVG9CbG9ja1NlbGVjdGlvbkF0UG9pbnQoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBTZWxlY3Rpb25IYW5kbGVQb3NpdGlvbik7CiAjaWYgRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCiAgICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24oY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24pOworICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9uYWxJdGVtc0Zv
ckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICNlbmRpZgogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDljNzEwNjYxOTJkY2FmMGFmZDM4NDVjMjFjODM3ZmVlZjMwMmMxN2QuLjA1
MjFhYTI4MjNiNzNhY2Y4MzM1NmRmNmM3YTFlM2I4NWMwODMxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjUz
LDYgKzI1Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgUmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9u
KFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9i
YWxQb3NpdGlvbikKKyAgICBSZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oV2Vi
Q29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKQogI2VuZGlmCiAKICAgICAjIFBvcHVwIG1lbnUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGUwZGQ3ZjlmYTI3
MGUyZmI2NzZmNTcxYTM4NjFjY2NkYzhhNDY0NDcuLjQ3NzkxNjExOWJmZDIxZThhMDBkYWVmMDFj
NGUxMzkyNTJkNjc3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC02MzEsNiArNjMxLDEzIEBAIHZvaWQgV2ViUGFnZTo6
cmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgY29uc3QKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEhhbmRsZVN0YXJ0
RGF0YUludGVyYWN0aW9uUmVxdWVzdChkaWRTdGFydCkpOwogfQogCit2b2lkIFdlYlBhZ2U6OnJl
cXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRIYW5kbGVB
ZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChmYWxzZSkpOworfQorCiB2b2lkIFdlYlBhZ2U6OmRp
ZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbigpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxUZXh0
SW5kaWNhdG9yRGF0YT4gdGV4dEluZGljYXRvckRhdGE7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTA5MzA5YzczYTQxYzdkZTVjZTQwMThhNWU2
ZWIzYjM1ZGNkYWJmMy4uYTA4Njc1ZDZjZGE1NWI1MDEwOGU1OGZhMTFkNWI2ZGVlYzNmZTIzZCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUxIEBACisyMDE3LTA5LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1MgV0syXSBBZGQgcGx1bWJpbmcgZm9yIFdLQ29udGVudFZpZXcg
dG8gYXNrIHRoZSB3ZWIgcHJvY2VzcyBmb3IgYWRkaXRpb25hbCBkcmFnIGl0ZW1zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYzNDgKKyAgICAgICAg
V29yayB0b3dhcmRzIDxyZGFyOi8vcHJvYmxlbS8zMTE0NDY3ND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VzIG5ldyB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHNpbXVsYXRlIHRhcHBpbmcgdG8gYWRkIGFkZGl0aW9uYWwgaXRlbXMgdG8g
dGhlIGN1cnJlbnQgZHJhZyBzZXNzaW9uLiBXZQorICAgICAgICBhZGQgLVtEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgcnVuRnJvbTp0bzphZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnM6XSwg
Zm9yIHdoaWNoIHRoZSBsYXN0IGFyZ3VtZW50IGlzIGEKKyAgICAgICAgZGljdGlvbmFyeSBtYXBw
aW5nIHByb2dyZXNzIChhIGRvdWJsZSBiZXR3ZWVuIDAgYW5kIDEpIHRvIE5TVmFsdWVzIHJlcHJl
c2VudGluZyB0aGUgbG9jYXRpb24gZnJvbSB3aGljaCB0aGUgZHJhZworICAgICAgICBhbmQgZHJv
cCBzaW11bGF0aW9uIHdpbGwgcmVxdWVzdCBhbiBhZGRpdGlvbmFsIGRyYWcgaXRlbS4gRHVyaW5n
IHRoZSBzaW11bGF0ZWQgZHJhZyBhbmQgZHJvcCwgd2hlbiB0aGUgcHJvZ3Jlc3MKKyAgICAgICAg
dmFsdWUgZXhjZWVkcyBhIHZhbHVlIGluIHRoZSBtYXAgb2YgcmVtYWluaW5nIGFkZGl0aW9uYWwg
aXRlbSByZXF1ZXN0IGxvY2F0aW9ucywgd2UgaGFsdCBkcmFnIHNpbXVsYXRpb24KKyAgICAgICAg
cHJvZ3Jlc3MgZm9yIHRoYXQgcnVubG9vcCBhbmQgaW5zdGVhZCByZXF1ZXN0IGFkZGl0aW9uYWwg
aXRlbXMgZnJvbSB0aGUgbG9jYXRpb24gc3BlY2lmaWVkLgorCisgICAgICAgIFRoZSBvbmx5ICh1
c2VmdWwpIHBhc3NpbmcgdGVzdCB3ZSBjYW4gY3JlYXRlIHVzaW5nIHRoZSBuZXcgbWFjaGluZXJ5
IGlzIG9uZSB0aGF0IHZlcmlmaWVzIHRoYXQgcHJldmVudERlZmF1bHQoKQorICAgICAgICBvbiBk
cmFnc3RhcnQgd29ya3MgYXMgZXhwZWN0ZWQsIHByZXZlbnRpbmcgYWRkaXRpb25hbCBpdGVtcyBm
cm9tIGJlaW5nIGFkZGVkLiBXaGlsZSB0aGlzIHRyaXZpYWxseSBwYXNzZXMgbm93LAorICAgICAg
ICBzaW5jZSB0aGUgd2ViLXByb2Nlc3Mtc2lkZSBvZiB0aGUgYWRkaXRpb25hbCBpdGVtcyBmbG93
IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIGl0IHNob3VsZCBjb250aW51ZSB0byBwYXNzIGFmdGVy
CisgICAgICAgIHRoZSB3ZWIgcHJvY2VzcyBwb3J0aW9uIGlzIGltcGxlbWVudGVkLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zZWxlY3RlZC10
ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBh
IG5ldyB0ZXN0IHBhZ2UgdGhhdCBjb250YWlucyBzb21lIG5vbi1lZGl0YWJsZSB0ZXh0LCBhbiBp
bWFnZSwgYSBsaW5rLCBhbmQgYSByaWNoIHRleHQgZWRpdGFibGUgYXJlYS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRGF0
YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tOgorICAgICAgICAoLVtNb2NrRHJhZ0Ryb3BTZXNzaW9u
IGFkZEl0ZW1zOl0pOgorCisgICAgICAgIENvbnZlbmllbmNlIG1ldGhvZCB0byBhZGQgYWRkaXRp
b25hbCBtb2NrIGRyYWcgaXRlbXMgdG8gYSBkcmFnIG9yIGRyb3Agc2Vzc2lvbi4KKworICAgICAg
ICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX3Jlc2V0U2ltdWxhdGVkU3RhdGVdKToKKyAg
ICAgICAgKC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206dG86XSk6CisKKyAgICAg
ICAgQ29udmVydGVkIGludG8gYSBjb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbGF0dGVy
IHZlcnNpb24sIHBhc3NpbmcgaW4gbmlsIGZvciB0aGUgYWRkaXRpb25hbCBpdGVtIHJlcXVlc3QK
KyAgICAgICAgbG9jYXRpb25zIGRpY3Rpb25hcnkuCisKKyAgICAgICAgKC1bRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yIHJ1bkZyb206dG86YWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOl0p
OgorICAgICAgICAoLVtEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgX2VucXVldWVQZW5kaW5nQWRk
aXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zXSk6CisgICAgICAgICgtW0RhdGFJbnRlcmFjdGlv
blNpbXVsYXRvciBfc2VuZFF1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdF0pOgorCisgICAgICAg
IE5ldyBoZWxwZXIgbWV0aG9kcyB0byBkZXRlY3Qgd2hlbiBhbmQgd2hlcmUgYWRkaXRpb25hbCBp
dGVtcyBzaG91bGQgYmUgImFkZGVkIiwgYW5kIHN1YnNlcXVlbnRseSBzaW11bGF0ZSBhZGRpbmcK
KyAgICAgICAgZHJhZyBpdGVtcyBhdCB0aGVzZSBnaXZlbiBsb2NhdGlvbnMuCisKKyAgICAgICAg
KC1bRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIF9hZHZhbmNlUHJvZ3Jlc3NdKToKKwogMjAxNy0w
OS0wNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
d2l0Y2ggSFRNTE1lZGlhRWxlbWVudCB0byByZWxlYXNlIGxvZ2dpbmcKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMjYwY2FhMmZiZTc1ODlmOTQ4MGE1MDgyNTE4ZjE0OTA3YWYyN2ZiMS4uNmZj
YTY4MmMyOGRkZDJkZDgwMzE0YWE5ZWJkM2E0NWYwMWVjMjk3YyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTY5NCw2ICs2OTQsNyBAQAogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyog
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5tbSAqLzsgfTsKIAkJRjRENEYzQjkxRTRFMzZFNDAwQkIyNzY3IC8qIERh
dGFJbnRlcmFjdGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRl
c3RzLm1tICovOyB9OwogCQlGNEQ1RTRFODFGMEM1RDM4MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNs
ZWFyLXNlbGVjdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0RDVFNEU3MUYwQzVEMjcwMDhDMUE0OSAvKiBkcmFnc3RhcnQtY2xl
YXItc2VsZWN0aW9uLmh0bWwgKi87IH07CisJCUY0RDY1REE4MUY1RTQ3MDQwMDlEOEMyNyAvKiBz
ZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENjVEQTcxRjVFNDZDMDAw
OUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCAqLzsg
fTsKIAkJRjRERUY2RUQxRTlCNERCNjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0
bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0
LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRl
c3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8q
IGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRDMENG
ODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
Ki87IH07CkBAIC05NTMsNiArOTU0LDcgQEAKIAkJCQlGNkZERERENjE0MjQxQzZGMDA0RjE3Mjkg
LyogcHVzaC1zdGF0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExMkREQzAwMUU4
MzczRTcwMENGNkNBRSAvKiByZW5kZXJlZC1pbWFnZS1leGNsdWRpbmctb3ZlcmZsb3cuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDY4NDlDMDFFRUY1RUYzMDBCOTM3RkUgLyogcmlj
aC1hbmQtcGxhaW4tdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0RDY1REE4
MUY1RTQ3MDQwMDlEOEMyNyAvKiBzZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0E2NkJEQjgxRUFGMThENTAwQ0NDOTI0
IC8qIHNldC1sb25nLXRpdGxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTJCOENG
OTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJQ0VCQUJENDkxQjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVy
bmFsLXNjaGVtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE3MjQsNiArMTcyNiw3
IEBACiAJCUY0RDRGM0I1MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I3MUU0RTM2RTQw
MEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEQ1RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNs
ZWFyLXNlbGVjdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24u
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RDY1REE3MUY1RTQ2QzAwMDlE
OEMyNyAvKiBzZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0
YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2RUMxRTlCNEQ5
NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRl
by10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFy
Z2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1z
aXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMjM0LDYgKzIyMzcsNyBAQAogCQkJCUY0MUFCOTlBMUVGNDY5MkMwMDgz
RkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgKi8sCiAJCQkJQTEyRERCRkYxRTgzNzNDMTAwQ0Y2
Q0FFIC8qIHJlbmRlcmVkLWltYWdlLWV4Y2x1ZGluZy1vdmVyZmxvdy5odG1sICovLAogCQkJCUY0
Njg0OUJGMUVFRjVFREMwMEI5MzdGRSAvKiByaWNoLWFuZC1wbGFpbi10ZXh0Lmh0bWwgKi8sCisJ
CQkJRjRENjVEQTcxRjVFNDZDMDAwOUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1h
bmQtZWRpdGFibGUuaHRtbCAqLywKIAkJCQlDOUI0QUQyOTFFQ0E2RUE1MDBGNUZFQTAgLyogc2ls
ZW5jZS1sb25nLm00YSAqLywKIAkJCQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tpbm55
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywKIAkJCQk1MTVCRTE2RTFENDI4
OEZGMDBERDdDNjggLyogU3RvcmVCbG9iVG9CZURlbGV0ZWQuaHRtbCAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc2VsZWN0ZWQtdGV4dC1pbWFn
ZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9zZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzAyOWY2ZjFmYTFlODI0NTI5ZDFmMTJmZjU5YzM4YzUwYjYwOTI2MAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc2VsZWN0ZWQt
dGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CitodG1sLCBi
b2R5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgbWFyZ2luOiAw
OworfQorCisjdGV4dCwgI2ltYWdlLCAjbGluayB7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBm
b250LXNpemU6IDgwcHg7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworI2VkaXRvciB7
CisgICAgYm9yZGVyOiBibGFjayAxcHggc29saWQ7CisgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAz
MDBweCk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxkaXYgaWQ9InRleHQiPkFC
Q0Q8L2Rpdj4KKzxkaXY+PGltZyBpZD0iaW1hZ2UiIHNyYz0iYXBwbGUuZ2lmIj48L2ltZz48L2Rp
dj4KKzxkaXY+PGEgaWQ9ImxpbmsiIGhyZWY9Imh0dHBzOi8vd3d3LmFwcGxlLmNvbS8iPkEgbGlu
azwvYT48L2Rpdj4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJlZGl0b3IiPjwvZGl2PgorPHNj
cmlwdD4KK2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGV4dCwgMCwgdGV4dCwgMSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KaW5kZXggM2Y3M2JmMDY2NDc4
OGNhZDcwNDNhMTZmYzU3N2UzMDMxMjk5ODFhNC4uNTViMGJiZGYxNThhYjdmNGU5NjZkNzc0Mzg1
NDU4ODAwYWI2NDMxZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
RGF0YUludGVyYWN0aW9uVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KQEAgLTEyMzQsNiArMTIzNCwyMSBAQCBURVNUKERh
dGFJbnRlcmFjdGlvblRlc3RzLCBEb05vdENyYXNoV2hlblNlbGVjdGlvbk1vdmVzT2Zmc2NyZWVu
QWZ0ZXJEcmFnU3RhcnQpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJGQVIgT0ZGU0NSRUVOIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmdldFJh
bmdlQXQoMCkudG9TdHJpbmcoKSJdKTsKIH0KIAorVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywg
QWRkaXRpb25hbEl0ZW1zQ2FuQmVQcmV2ZW50ZWRPbkRyYWdTdGFydCkKK3sKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDpAInNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUiXTsK
KyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibGluay5hZGRFdmVu
dExpc3RlbmVyKCdkcmFnc3RhcnQnLCBlID0+IGUucHJldmVudERlZmF1bHQoKSkiXTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiaW1hZ2UuYWRkRXZlbnRMaXN0
ZW5lcignZHJhZ3N0YXJ0JywgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpIl07CisKKyAgICBhdXRv
IHNpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGlu
aXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CisgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNH
UG9pbnRNYWtlKDUwLCA1MCkgdG86Q0dQb2ludE1ha2UoNTAsIDQwMCkgYWRkaXRpb25hbEl0ZW1S
ZXF1ZXN0TG9jYXRpb25zOkB7CisgICAgICAgIEAwLjMzOiBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1Bv
aW50OkNHUG9pbnRNYWtlKDUwLCAxNTApXSwKKyAgICAgICAgQDAuNjY6IFtOU1ZhbHVlIHZhbHVl
V2l0aENHUG9pbnQ6Q0dQb2ludE1ha2UoNTAsIDI1MCldCisgICAgfV07CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJBQkNEIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVk
aXRvci50ZXh0Q29udGVudCJdKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQog
CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2lvcy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oCmluZGV4IDBhMGQ1MGRlNDY5
NTZlNWFmMTU1YjVkOGU3NmMxMGU0Yzk3MWI1MDMuLmExMzMyZGVmODQ4OGM5YzhiOWY2NDQyNGI3
MmE4NDQzNTQ4ODE3ZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvci5oCkBAIC04Niw2ICs4Niw4IEBAIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IERhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb25FdmVudE5hbWU7CiBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBEYXRhSW50ZXJhY3Rpb25MZWF2ZUV2ZW50TmFtZTsKIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IERhdGFJbnRlcmFjdGlvblN0YXJ0RXZlbnROYW1lOwogCit0eXBlZGVm
IE5TRGljdGlvbmFyeTxOU051bWJlciAqLCBOU1ZhbHVlICo+ICpQcm9ncmVzc1RvQ0dQb2ludFZh
bHVlTWFwOworCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFz
ZSkgewogICAgIERhdGFJbnRlcmFjdGlvbkNhbmNlbGxlZCA9IDAsCiAgICAgRGF0YUludGVyYWN0
aW9uQmVnaW5uaW5nID0gMSwKQEAgLTEwNyw2ICsxMDksOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBEYXRhSW50ZXJhY3Rpb25QaGFzZSkgewogICAgIENHUG9pbnQgX2VuZExvY2F0aW9u
OwogICAgIENHUmVjdCBfbGFzdEtub3duRHJhZ0NhcmV0UmVjdDsKIAorICAgIFJldGFpblB0cjxO
U011dGFibGVEaWN0aW9uYXJ5PE5TTnVtYmVyICosIE5TVmFsdWUgKj4+X3JlbWFpbmluZ0FkZGl0
aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3M7CisgICAgUmV0YWluUHRyPE5TTXV0
YWJsZUFycmF5PE5TVmFsdWUgKj4+X3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9u
czsKKwogICAgIGJvb2wgX2lzRG9uZVdhaXRpbmdGb3JJbnB1dFNlc3Npb247CiAgICAgQk9PTCBf
c2hvdWxkUGVyZm9ybU9wZXJhdGlvbjsKICAgICBkb3VibGUgX2N1cnJlbnRQcm9ncmVzczsKQEAg
LTExNSw3ICsxMjAsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBEYXRhSW50ZXJhY3Rp
b25QaGFzZSkgewogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihUZXN0V0tX
ZWJWaWV3ICopd2ViVmlldzsKKy8vIFRoZSBzdGFydCBsb2NhdGlvbiwgZW5kIGxvY2F0aW9uLCBh
bmQgbG9jYXRpb25zIG9mIGFkZGl0aW9uYWwgaXRlbSByZXF1ZXN0cyBhcmUgYWxsIGluIHdpbmRv
dyBjb29yZGluYXRlcy4KIC0gKHZvaWQpcnVuRnJvbTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRv
OihDR1BvaW50KWVuZExvY2F0aW9uOworLSAodm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0TG9j
YXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRpb24gYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRp
b25zOihQcm9ncmVzc1RvQ0dQb2ludFZhbHVlTWFwKWFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0
aW9uczsKIC0gKHZvaWQpd2FpdEZvcklucHV0U2Vzc2lvbjsKIAogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgYWxsb3dzRm9jdXNUb1N0YXJ0SW5wdXRTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9pb3MvRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tCmluZGV4IGNjNGFm
NzkzYzU0Nzg1MDFjNzI1NTg3YWJkYjMxN2IyMzVhOThiZjQuLmE0ZWVmZDE3MWU0ODEyMjhiYzA5
ZmQyNzQzNWM0ZWE3OWJjZDE1NjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9z
L0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lv
cy9EYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0KQEAgLTEzMyw2ICsxMzMsMTcgQEAgLSAodm9p
ZClzZXRJdGVtczooTlNBcnJheTxVSURyYWdJdGVtICo+ICopaXRlbXMKICAgICBfbW9ja0l0ZW1z
ID0gaXRlbXM7CiB9CiAKKy0gKHZvaWQpYWRkSXRlbXM6KE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAq
KWl0ZW1zCit7CisgICAgaWYgKCFbaXRlbXMgY291bnRdKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIVtfbW9ja0l0ZW1zIGNvdW50XSkKKyAgICAgICAgX21vY2tJdGVtcyA9IGl0ZW1zOwor
ICAgIGVsc2UKKyAgICAgICAgX21vY2tJdGVtcyA9IFtfbW9ja0l0ZW1zIGFycmF5QnlBZGRpbmdP
YmplY3RzRnJvbUFycmF5Oml0ZW1zXTsKK30KKwogLSAoQ0dQb2ludClsb2NhdGlvbkluVmlldzoo
VUlWaWV3ICopdmlldwogewogICAgIHJldHVybiBbX3dpbmRvdyBjb252ZXJ0UG9pbnQ6X21vY2tM
b2NhdGlvbkluV2luZG93IHRvVmlldzp2aWV3XTsKQEAgLTMwNyw2ICszMTgsOCBAQCAtICh2b2lk
KV9yZXNldFNpbXVsYXRlZFN0YXRlCiAgICAgX2RhdGFPcGVyYXRpb25TZXNzaW9uID0gbmlsOwog
ICAgIF9zaG91bGRQZXJmb3JtT3BlcmF0aW9uID0gTk87CiAgICAgX2xhc3RLbm93bkRyYWdDYXJl
dFJlY3QgPSBDR1JlY3RaZXJvOworICAgIF9yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RM
b2NhdGlvbnNCeVByb2dyZXNzID0gbmlsOworICAgIF9xdWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVl
c3RMb2NhdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKIH0K
IAogLSAoTlNBcnJheSAqKW9ic2VydmVkRXZlbnROYW1lcwpAQCAtMzI2LDYgKzMzOSwxMSBAQCAt
ICh2b2lkKXNpbXVsYXRlQWxsVG91Y2hlc0NhbmNlbGVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbgogCiAtICh2b2lkKXJ1bkZyb206KENHUG9pbnQpc3RhcnRMb2NhdGlvbiB0bzooQ0dQ
b2ludCllbmRMb2NhdGlvbgogeworICAgIFtzZWxmIHJ1bkZyb206c3RhcnRMb2NhdGlvbiB0bzpl
bmRMb2NhdGlvbiBhZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnM6bmlsXTsKK30KKworLSAo
dm9pZClydW5Gcm9tOihDR1BvaW50KXN0YXJ0TG9jYXRpb24gdG86KENHUG9pbnQpZW5kTG9jYXRp
b24gYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zOihQcm9ncmVzc1RvQ0dQb2ludFZhbHVl
TWFwKWFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucworewogICAgIE5TTm90aWZpY2F0aW9u
Q2VudGVyICpkZWZhdWx0Q2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdOwogICAgIFtkZWZhdWx0Q2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKHNpbXVsYXRlQWxsVG91Y2hlc0NhbmNlbGVkOikgbmFtZTpUZXN0V2ViS2l0QVBJU2ltdWxh
dGVDYW5jZWxBbGxUb3VjaGVzTm90aWZpY2F0aW9uTmFtZSBvYmplY3Q6bmlsXTsKIApAQCAtMzM0
LDYgKzM1Miw5IEBAIC0gKHZvaWQpcnVuRnJvbTooQ0dQb2ludClzdGFydExvY2F0aW9uIHRvOihD
R1BvaW50KWVuZExvY2F0aW9uCiAKICAgICBbc2VsZiBfcmVzZXRTaW11bGF0ZWRTdGF0ZV07CiAK
KyAgICBpZiAoYWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zKQorICAgICAgICBfcmVtYWlu
aW5nQWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zQnlQcm9ncmVzcyA9IGFkb3B0TlMoW2Fk
ZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucyBtdXRhYmxlQ29weV0pOworCiAgICAgUmV0YWlu
UHRyPERhdGFJbnRlcmFjdGlvblNpbXVsYXRvcj4gc3Ryb25nU2VsZiA9IHNlbGY7CiAgICAgZm9y
IChOU1N0cmluZyAqZXZlbnROYW1lIGluIGRhdGFJbnRlcmFjdGlvbkV2ZW50TmFtZXMoKSkgewog
ICAgICAgICBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgKndlYWtTZWxmID0gc3Ryb25nU2VsZi5n
ZXQoKTsKQEAgLTM5MSw4ICs0MTIsNDUgQEAgLSAodm9pZClfY29uY2x1ZGVEYXRhSW50ZXJhY3Rp
b25BbmRQZXJmb3JtT3BlcmF0aW9uSWZOZWNlc3NhcnkKICAgICAgICAgW193ZWJWaWV3IF9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRFbmQ6X2RhdGFJbnRlcmFjdGlvblNlc3Npb24u
Z2V0KCldOwogfQogCistICh2b2lkKV9lbnF1ZXVlUGVuZGluZ0FkZGl0aW9uYWxJdGVtUmVxdWVz
dExvY2F0aW9ucworeworICAgIE5TTXV0YWJsZUFycmF5ICpwcm9ncmVzc1ZhbHVlc1RvUmVtb3Zl
ID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBmb3IgKE5TTnVtYmVyICpwcm9ncmVzc1Zh
bHVlIGluIF9yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnNCeVByb2dyZXNz
LmdldCgpKSB7CisgICAgICAgIGRvdWJsZSBwcm9ncmVzcyA9IHByb2dyZXNzVmFsdWUuZG91Ymxl
VmFsdWU7CisgICAgICAgIGlmIChwcm9ncmVzcyA+IF9jdXJyZW50UHJvZ3Jlc3MpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgW3Byb2dyZXNzVmFsdWVzVG9SZW1vdmUgYWRkT2JqZWN0
OnByb2dyZXNzVmFsdWVdOworICAgICAgICBbX3F1ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExv
Y2F0aW9ucyBhZGRPYmplY3Q6W19yZW1haW5pbmdBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlv
bnNCeVByb2dyZXNzIG9iamVjdEZvcktleTpwcm9ncmVzc1ZhbHVlXV07CisgICAgfQorCisgICAg
Zm9yIChOU051bWJlciAqcHJvZ3Jlc3NUb1JlbW92ZSBpbiBwcm9ncmVzc1ZhbHVlc1RvUmVtb3Zl
KQorICAgICAgICBbX3JlbWFpbmluZ0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uc0J5UHJv
Z3Jlc3MgcmVtb3ZlT2JqZWN0Rm9yS2V5OnByb2dyZXNzVG9SZW1vdmVdOworfQorCistIChCT09M
KV9zZW5kUXVldWVkQWRkaXRpb25hbEl0ZW1SZXF1ZXN0Cit7CisgICAgaWYgKCFbX3F1ZXVlZEFk
ZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucyBjb3VudF0pCisgICAgICAgIHJldHVybiBOTzsK
KworICAgIFJldGFpblB0cjxOU1ZhbHVlPiByZXF1ZXN0TG9jYXRpb25WYWx1ZSA9IFtfcXVldWVk
QWRkaXRpb25hbEl0ZW1SZXF1ZXN0TG9jYXRpb25zIG9iamVjdEF0SW5kZXg6MF07CisgICAgW19x
dWV1ZWRBZGRpdGlvbmFsSXRlbVJlcXVlc3RMb2NhdGlvbnMgcmVtb3ZlT2JqZWN0QXRJbmRleDow
XTsKKworICAgIGF1dG8gcmVxdWVzdExvY2F0aW9uID0gW1tfd2ViVmlldyB3aW5kb3ddIGNvbnZl
cnRQb2ludDpbcmVxdWVzdExvY2F0aW9uVmFsdWUgQ0dQb2ludFZhbHVlXSB0b1ZpZXc6X3dlYlZp
ZXcuZ2V0KCldOworICAgIFtfd2ViVmlldyBfc2ltdWxhdGVJdGVtc0ZvckFkZGluZ1RvU2Vzc2lv
bjpfZGF0YUludGVyYWN0aW9uU2Vzc2lvbi5nZXQoKSBhdExvY2F0aW9uOnJlcXVlc3RMb2NhdGlv
biBjb21wbGV0aW9uOltkcmFnU2Vzc2lvbiA9IF9kYXRhSW50ZXJhY3Rpb25TZXNzaW9uLCBkcm9w
U2Vzc2lvbiA9IF9kYXRhT3BlcmF0aW9uU2Vzc2lvbl0gKE5TQXJyYXkgKml0ZW1zKSB7CisgICAg
ICAgIFtkcmFnU2Vzc2lvbiBhZGRJdGVtczppdGVtc107CisgICAgICAgIFtkcm9wU2Vzc2lvbiBh
ZGRJdGVtczppdGVtc107CisgICAgfV07CisgICAgcmV0dXJuIFlFUzsKK30KKwogLSAodm9pZClf
YWR2YW5jZVByb2dyZXNzCiB7CisgICAgW3NlbGYgX2VucXVldWVQZW5kaW5nQWRkaXRpb25hbEl0
ZW1SZXF1ZXN0TG9jYXRpb25zXTsKKyAgICBpZiAoW3NlbGYgX3NlbmRRdWV1ZWRBZGRpdGlvbmFs
SXRlbVJlcXVlc3RdKSB7CisgICAgICAgIFtzZWxmIF9zY2hlZHVsZUFkdmFuY2VQcm9ncmVzc107
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBfbGFzdEtub3duRHJhZ0NhcmV0UmVjdCA9
IFtfd2ViVmlldyBfZHJhZ0NhcmV0UmVjdF07CiAgICAgX2N1cnJlbnRQcm9ncmVzcyArPSBwcm9n
cmVzc0luY3JlbWVudFN0ZXA7CiAgICAgQ0dQb2ludCBsb2NhdGlvbkluV2luZG93ID0gc2VsZi5f
Y3VycmVudExvY2F0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>