<?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>225822</bug_id>
          
          <creation_ts>2021-05-14 14:07:25 -0700</creation_ts>
          <short_desc>MediaSessionCoordinator survives page reload/navigation</short_desc>
          <delta_ts>2021-05-17 00:50:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760202</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-05-14 14:07:25 -0700</bug_when>
    <thetext>MediaSessionCoordinator survives page reload/navigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760209</commentid>
    <comment_count>1</comment_count>
      <attachid>428659</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-05-14 14:27:36 -0700</bug_when>
    <thetext>Created attachment 428659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760229</commentid>
    <comment_count>2</comment_count>
      <attachid>428659</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-05-14 14:55:50 -0700</bug_when>
    <thetext>Comment on attachment 428659
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:367
&gt; -    m_session-&gt;callActionHandler({ .action = MediaSessionAction::Play });
&gt; +    m_session-&gt;callActionHandler({ .action = MediaSessionAction::Pause });

:-O</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760233</commentid>
    <comment_count>3</comment_count>
      <attachid>428666</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-05-14 15:03:05 -0700</bug_when>
    <thetext>Created attachment 428666
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760258</commentid>
    <comment_count>4</comment_count>
      <attachid>428673</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-05-14 15:31:19 -0700</bug_when>
    <thetext>Created attachment 428673
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760651</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-05-16 13:32:41 -0700</bug_when>
    <thetext>Committed r277573 (237801@main): &lt;https://commits.webkit.org/237801@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760653</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-16 13:33:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78082780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760688</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-17 00:50:10 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428659</attachid>
            <date>2021-05-14 14:27:36 -0700</date>
            <delta_ts>2021-05-17 00:50:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225822-20210514142735.patch</filename>
            <type>text/plain</type>
            <size>37855</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI3NTU1MTU0MGFlNmZm
NTcwZjJjNWQ1ZmM2MmMwMmVhYWQyM2ZkNS4uMGU2MDZiMWIxYmUyNDZmZjUwMzQ2NTc4MTg3Mzkx
YjQ0MTI3NTI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA1LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIHN1cnZpdmVzIHBhZ2UgcmVsb2FkL25hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1c2UgdGhlIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIGlzIGNyZWF0ZWQgYW5kIG93bmVkIGJ5IFBhZ2UsIGl0IHdpbGwgc3Vydml2ZQor
ICAgICAgICBhIHJlbG9hZCAoYXMgUGFnZSBpcyBub3QgcmUtY3JlYXRlZCksIGFuZCB0aGUgc2Ft
ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciBvYmplY3QKKyAgICAgICAgd2lsbCBiZSBhZGRlZCB0
byBNZWRpYVNlc3Npb24gd2hlbiB0aGUgbmV3IE5hdmlnYXRvciBpcyBjcmVhdGVkLgorCisgICAg
ICAgIFJhdGhlciB0aGFuIGhhdmUgUGFnZSBvd24gdGhlIGNvb3JkaW5hdG9yIGl0c2VsZiwgaXQg
Y2FuIGluc3RlYWQgb3duIHRoZQorICAgICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGUgdXNlZCB0byBjcmVhdGUgdGhlIGNvb3JkaW5hdG9yLiBXaGVuIHRoZSBNZWRpYVNlc3Npb24K
KyAgICAgICAgaXMgY3JlYXRlZCwgaXQgd2lsbCBxdWVyeSB0aGUgUGFnZSB0byBhc2sgZm9yIGEg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlIHRvCisgICAgICAgIHVzZSB0byBjcmVhdGUg
dGhlIGNvb3JkaW5hdG9yLCBndWFyYW50ZWVpbmcgYSBuZXcgb2JqZWN0IGlzIGNyZWF0ZWQuCisK
KyAgICAgICAgVGhlIHNlc3Npb24gaXRzZWxmIHNob3VsZCBiZSBsZWZ0IHdoZW4gdGhlIGRvY3Vt
ZW50IGlzIHB1dCBpbnRvIEJhY2svRm9yd2FyZAorICAgICAgICBDYWNoZSwgb3IgY2xvc2VkIHdo
ZW4gdGhlIGRvY3VtZW50IGlzIHN0b3BwZWQgZW50aXJlbHkuCisKKyAgICAgICAgQSBmZXcgZHJp
dmUtYnkgZml4ZXM6CisKKyAgICAgICAgVGhlIGRpcmVjdGlvbiBvZiBjb29yZGluYXRvclN0YXRl
Q2hhbmdlZCgpIGlzIG5vdyByZXZlcnNlZDsgaXQgZmxvd3MgZG93biBmcm9tIHRoZQorICAgICAg
ICBVSVByb2Nlc3MgdG8gdXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuIFRoaXMgYWxsb3dzIHRoZSBjb29yZGluYXRvcgorICAgICAgICB0byByZWFjdCB3aGVu
IGl0J3MgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiBjaGFuZ2VzIHN0YXRlLgorCisgICAgICAgIEFk
ZCBhIG5ldyB1cHdhcmQgbm90aWZpY2F0aW9uIHdoZW4gdGhlIHRyYWNrSWRlbnRpZmllciBpbiBN
ZWRpYU1ldGFkYXRhIGNoYW5nZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpNZWRpYVNl
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OmNyZWF0ZUNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbjo6c2V0Q29vcmRpbmF0b3IpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpqb2luKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpsZWF2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Om1l
dGFkYXRhQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNo
YW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvckNsaWVudDo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRNZWRpYVNlc3Npb25Db29yZGluYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
bWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp0cmFja0lkZW50aWZpZXJDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0
b3JTdGF0ZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmg6CisKIDIwMjEtMDMtMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlbW90ZUF1ZGlvU2Vzc2lvbiBjYWxscyBpbnRv
IEFWQXVkaW9TZXNzaW9uIHdoZW4gR1BVUCBpcyBlbmFibGVkLCBjYXVzaW5nIGhhbmdzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGUwYzYzZGZlMzZmYWJjMWM2ZDE5ZTFiOWFiZjgzZTA0YTFmOWRmNGMuLmY1ODE3Y2I5
ZmNkYzlmOGI5NGI4NjQyNTk0OTA1MDg3MDA0ZGU0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMjEtMDUtMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Igc3Vydml2ZXMgcGFnZSByZWxvYWQvbmF2aWdhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IHRoZSBjbGFzc2VzIGFmZmVjdGVkIGJ5IHZpcnR1YWwgZnVuY3Rpb24gY2hhbmdlcyBpbiBNZWRp
YVNlc3Npb25Db29yZGluYXRvci4gVXBkYXRlCisgICAgICAgIHRoZSBjcmVhdGlvbiBtZWNoYW5p
c20gaW5zaWRlIFdlYlBhZ2UvUHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NyZWF0ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OnRyYWNrSWRlbnRpZmllckNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdl
ZCk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRl
Q2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOgorCiAyMDIxLTA1LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJvY2Vzc10gTW92ZSBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5IHRvIHRoZSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5kZXggODlj
NjljOGQzMTE4YzM4NTUzODhhMWRjNWFmMDE4ZDEzYTYwMjg2My4uYWI1ZWI0NDU4MmVkN2VmMjVh
OWJhMzEyM2MwYzA1NDI0MWU2YmEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiTWVkaWFNZXRhZGF0YS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVz
Lmg+CiAKQEAgLTEzNiw2ICsxMzcsMTMgQEAgTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2
aWdhdG9yJiBuYXZpZ2F0b3IpCiB7CiAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKERvY3VtZW50
OjpzaGFyZWRMb2dnZXIoKSk7CiAgICAgbV9sb2dJZGVudGlmaWVyID0gbmV4dExvZ0lkZW50aWZp
ZXIoKTsKKworICAgIGF1dG8qIGZyYW1lID0gbmF2aWdhdG9yLmZyYW1lKCk7CisgICAgaWYgKGF1
dG8qIHBhZ2UgPSBmcmFtZSA/IGZyYW1lLT5wYWdlKCkgOiBudWxscHRyKSB7CisgICAgICAgIGlm
IChhdXRvIGNvb3JkaW5hdG9yUHJpdmF0ZSA9IHBhZ2UtPm1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KCkpCisgICAgICAgICAgICBjcmVhdGVDb29yZGluYXRvcigqY29vcmRpbmF0b3JQcml2YXRlKTsK
KyAgICB9CisKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUik7CkBAIC0xNDgsNiArMTU2LDIyIEBAIGJvb2wgTWVkaWFTZXNzaW9uOjp2aXJ0dWFs
SGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUt
Pmhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6c3VzcGVuZChS
ZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKK3sKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKyAgICBpZiAobV9jb29yZGluYXRvciAmJiByZWFzb24gPT0gUmVhc29uRm9y
U3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAgICAgbV9jb29yZGluYXRvci0+bGVh
dmUoKTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6c3RvcCgpCit7CisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisg
ICAgICAgIG1fY29vcmRpbmF0b3ItPmNsb3NlKCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVNl
c3Npb246OnNldE1ldGFkYXRhKFJlZlB0cjxNZWRpYU1ldGFkYXRhPiYmIG1ldGFkYXRhKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC0xNzEsMTcgKzE5NSwxNCBAQCB2b2lk
IE1lZGlhU2Vzc2lvbjo6c2V0UmVhZHlTdGF0ZShNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRl
KQogICAgIG5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKTsKIH0KIAotdm9pZCBNZWRpYVNlc3Np
b246OnNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcikK
K3ZvaWQgTWVkaWFTZXNzaW9uOjpjcmVhdGVDb29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlPiYmIGNvb3JkaW5hdG9yUHJpdmF0ZSkKIHsKLSAgICBpZiAobV9jb29y
ZGluYXRvciA9PSBjb29yZGluYXRvcikKLSAgICAgICAgcmV0dXJuOwotCiAgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKIAogICAgIGlmIChtX2Nvb3JkaW5hdG9yKQogICAgICAgICBtX2Nv
b3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24obnVsbHB0cik7CiAKLSAgICBtX2Nvb3JkaW5hdG9y
ID0gY29vcmRpbmF0b3I7CisgICAgbV9jb29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjcmVhdGUoV1RGTW92ZShjb29yZGluYXRvclByaXZhdGUpKTsKIAogICAgIGlmIChtX2Nv
b3JkaW5hdG9yKQogICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24odGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5oCmluZGV4IDkyNDViNjg3ZWUxNjhiMWY5OTkyOWQ0MDQzN2UxMDc0NzgzYTg3ODMuLmYzYTEw
NjcwOTkwNmJiZDMwZjQ5MWY3ODk3MzlhYjRjOTBhNGQ1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC00OCw2ICs0OCw3
IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1lZGlh
TWV0YWRhdGE7CiBjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZTsKIGNsYXNzIE5hdmlnYXRvcjsKIAogY2xhc3MgTWVkaWFT
ZXNzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uPiwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewpAQCAtNzcsNyArNzgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUpOwogCiAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNyZWF0ZUNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGU+JiYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkK
QEAgLTEzMSw2ICsxMzIsOCBAQCBwcml2YXRlOgogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
TWVkaWFTZXNzaW9uIjsgfQogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAogICAgIFJlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiBh
Y3RpdmVNZWRpYUVsZW1lbnQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDBkNmRlNDQ2Nzk3OWExZjNmYTE0ZDFkODYzZGE0MDE5NGJjNzdjYTIuLjljNjAyOGQx
NDBkNjgzYmIxMjc1NTBmZDE0NDJkYWJjNDQxZGY1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAKQEAgLTg5LDcgKzg5LDYgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
am9pbihET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICB9CiAKICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zdGF0ZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGU6OkpvaW5lZDsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcml2YXRlQ29vcmRpbmF0b3It
PmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6Okpv
aW5lZCk7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgIH0pOwogfQpAQCAtMTAwLDEz
ICs5OSwyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bGVh
dmUoKQogICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6Okpv
aW5lZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBtYWtl
U3RyaW5nKCJVbmFibGUgdG8gbGVhdmUgd2hlbiBzdGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhtX3N0YXRlKSkgfTsKIAotICAgIG1fc3RhdGUgPSBNZWRpYVNlc3Npb25Db29y
ZGluYXRvclN0YXRlOjpDbG9zZWQ7Ci0gICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmxlYXZlKCk7
Ci0gICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZCk7CisgICAgY2xvc2UoKTsKIAogICAgIHJl
dHVybiB7IH07CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNsb3NlKCkKK3sK
KyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fc3RhdGUgPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQ7CisgICAgaWYgKCFtX3ByaXZhdGVDb29yZGluYXRv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmxlYXZlKCk7
CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3IgPSBudWxscHRyOworfQorCiB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsK
QEAgLTI0OCw2ICsyNTYsMTggQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TWVk
aWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICAgICAgbV9zZXNzaW9uLT5hZGRP
YnNlcnZlcigqdGhpcyk7CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Om1ldGFk
YXRhQ2hhbmdlZChjb25zdCBSZWZQdHI8TWVkaWFNZXRhZGF0YT4mIG1ldGFkYXRhKQoreworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIGlmICghbV9wcml2YXRlQ29vcmRp
bmF0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IG1ldGFkYXRh
ID8gbWV0YWRhdGEtPnRyYWNrSWRlbnRpZmllcigpIDogZW1wdHlTdHJpbmcoKTsKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIG1fc3RhdGUsICIsIHRyYWNrSWRlbnRpZmllcjoiLCBpZGVu
dGlmaWVyKTsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+dHJhY2tJZGVudGlmaWVyQ2hhbmdl
ZChpZGVudGlmaWVyKTsKKyNlbmRpZgorfQorCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+
JiBwb3NpdGlvblN0YXRlKQogewogICAgIGlmIChwb3NpdGlvblN0YXRlKQpAQCAtMjU4LDYgKzI3
OCw5IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2Vk
KGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TCiAgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBp
ZiAoIW1fcHJpdmF0ZUNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIXBv
c2l0aW9uU3RhdGUpIHsKICAgICAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKHsgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI3Myw2ICsyOTYsOSBAQCB2b2lk
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlIHBsYQogICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGU6OkpvaW5lZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX3ByaXZh
dGVDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wcml2YXRlQ29vcmRpbmF0
b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBsYXliYWNrU3RhdGUpOwogfQogCkBAIC0yODMsNiAr
MzA5LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQo
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXQKICAgICBpZiAobV9zdGF0ZSAhPSBNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmICghbV9wcml2YXRlQ29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fcHJp
dmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdlZChyZWFkeVN0YXRlKTsKIH0KIApAQCAt
Mjk1LDYgKzMyNCwxNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lv
blRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dgogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgYm9vbCBpc1BhdXNlZCA9IG1fc2Vzc2lvbi0+cGxheWJhY2tTdGF0ZSgp
ID09IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZDsKKworICAgIGlmIChpc1BhdXNl
ZCAmJiBjdXJyZW50UG9zaXRpb25BcHByb3hpbWF0ZWx5RXF1YWxUbyh0aW1lKSkgeworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghaXNQYXVzZWQpCisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoeyAu
YWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQYXVzZSB9KTsKKwogICAgIG1fc2Vzc2lvbi0+
Y2FsbEFjdGlvbkhhbmRsZXIoeyAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8s
IC5zZWVrVGltZSA9IHRpbWUgfSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CkBA
IC0zMjUsNyArMzY0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNz
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGwKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoeyAuYWN0aW9uID0g
TWVkaWFTZXNzaW9uQWN0aW9uOjpQbGF5IH0pOworICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhh
bmRsZXIoeyAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQYXVzZSB9KTsKICAgICBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIApAQCAtMzQyLDYgKzM4MSwxNCBAQCB2b2lkIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywg
Q29tcGxldGlvbkhhbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCit2b2lkIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX3N0YXRlID09IHN0YXRlKQor
ICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZSA9IHN0YXRlOworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgbV9zdGF0ZSk7Cit9CisKIGJvb2wgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmN1cnJlbnRQb3NpdGlvbkFwcHJveGltYXRlbHlFcXVhbFRvKGRvdWJsZSB0aW1lKSBjb25zdAog
ewogICAgIGlmICghbV9zZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggOTJj
ZGRkNzk4YzVlYmE1ODQ5MWIwODY0M2Q4ZGExOTRlNWU3YmRhZC4uYmU1MjAwMDJhNWJiMWJmN2Vj
NjlmMGRiM2Q2ZTI2NTZjN2JhMzExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC00
OCw2ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgam9pbihET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbGVhdmUoKTsKKyAgICB2b2lkIGNsb3Nl
KCk7CiAKICAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUNv
b3JkaW5hdG9yLT5pZGVudGlmaWVyKCk7IH0KICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQpAQCAtNjYsNiArNjcsNyBAQCBw
cml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGU+JiYpOwogCiAgICAgLy8gTWVkaWFTZXNzaW9uOjpPYnNl
cnZlcgorICAgIHZvaWQgbWV0YWRhdGFDaGFuZ2VkKGNvbnN0IFJlZlB0cjxNZWRpYU1ldGFkYXRh
PiYpIGZpbmFsOwogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8
TWVkaWFQb3NpdGlvblN0YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKQEAgLTc1LDYgKzc3LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBsYXlTZXNzaW9uKE9wdGlvbmFsPGRvdWJsZT4gYXRUaW1lLCBP
cHRpb25hbDxkb3VibGU+IGhvc3RUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKICAgICB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpIGZp
bmFsOwogCiAgICAgYm9vbCBjdXJyZW50UG9zaXRpb25BcHByb3hpbWF0ZWx5RXF1YWxUbyhkb3Vi
bGUpIGNvbnN0OwogCkBAIC04NSw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPE1l
ZGlhU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUg
bV9zdGF0ZSB7IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OldhaXRpbmcgfTsKLSAgICBS
ZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiBtX3ByaXZhdGVDb29yZGluYXRvcjsK
KyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiBtX3ByaXZhdGVDb29y
ZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lk
KiBtX2xvZ0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGUuaAppbmRleCBmYTlmYjhjN2Y1ODQwMGFkN2IxM2EyMWU2ZWM2NjZjNTMzYzhlNWM5Li5mMzZl
ZWQyYzI2MTRlOTZhNzE2YzhiMjg1MTEyYjcyOTRkNDVlYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHBsYXlTZXNzaW9uKE9wdGlvbmFsPGRvdWJsZT4gYXRUaW1lLCBPcHRpb25hbDxk
b3VibGU+IGhvc3RUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGUpIHsgfTsKIH07CiAKIGNsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gewpAQCAt
NjgsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFu
Z2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrSWRl
bnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwogCiAgICAgdm9pZCBzZXRMb2dnZXIo
Y29uc3QgV1RGOjpMb2dnZXImLCBjb25zdCB2b2lkKik7CiAgICAgdmlydHVhbCB2b2lkIHNldENs
aWVudChXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQpIHsgbV9j
bGllbnQgPSBjbGllbnQ7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmM0NWFiOWFlNGY4YTQzZGIy
OTNhMGExNjJmMGYyODkxODUwZDhlNi4uMmY0Zjk1NjlmZmVjNzQ3NmEzZTQ5MTg2YWM3MmRmYzE3
YzI5NzAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNzMsNiArMTczLDExIEBACiAjaW5jbHVk
ZSAiRGlzcGxheVZpZXcuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRl
ICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0YXRpYyBIYXNoU2V0PFBhZ2UqPiYgYWxsUGFnZXMoKQpAQCAtMzM4MCw2ICszMzg1LDM1
IEBAIHZvaWQgUGFnZTo6c2V0UGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxQYXlt
ZW50Q29vcmRpbmF0b3I+JiYgcGF5bWVudENvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBQYWdlOjpzZXRNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmIG1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKQoreworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBXVEZNb3ZlKG1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKTsKKworICAgIGF1dG8qIHdpbmRvdyA9IG1haW5GcmFtZSgp
LndpbmRvdygpOworICAgIGlmIChhdXRvKiBuYXZpZ2F0b3IgPSB3aW5kb3cgPyB3aW5kb3ctPm9w
dGlvbmFsTmF2aWdhdG9yKCkgOiBudWxscHRyKQorICAgICAgICBOYXZpZ2F0b3JNZWRpYVNlc3Np
b246Om1lZGlhU2Vzc2lvbigqbmF2aWdhdG9yKS5jcmVhdGVDb29yZGluYXRvcigqbV9tZWRpYVNl
c3Npb25Db29yZGluYXRvcik7Cit9CisKK3ZvaWQgUGFnZTo6aW52YWxpZGF0ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKCkKK3sKKyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gbnVsbHB0
cjsKKyAgICBhdXRvKiB3aW5kb3cgPSBtYWluRnJhbWUoKS53aW5kb3coKTsKKyAgICBpZiAoIXdp
bmRvdykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogbmF2aWdhdG9yID0gd2luZG93LT5v
cHRpb25hbE5hdmlnYXRvcigpOworICAgIGlmICghbmF2aWdhdG9yKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvKiBjb29yZGluYXRvciA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFT
ZXNzaW9uKCpuYXZpZ2F0b3IpLmNvb3JkaW5hdG9yKCk7CisgICAgaWYgKCFjb29yZGluYXRvcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgY29vcmRpbmF0b3ItPmNsb3NlKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBQYWdlOjpjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmIGNoYW5u
ZWxOYW1lLCBXVEZMb2dDaGFubmVsU3RhdGUgc3RhdGUsIFdURkxvZ0xldmVsIGxldmVsKQogewog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA4MGM2MjM5YmFlZmRk
ZGIxMjhjODIxNjU0MDU0NjlkNmI5ZGJkYzU3Li5mYzVmZjIyM2NiYzY5Njg5MTRjNDRlZWQ0YmNm
NzBkNDljOTcxNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTE2LDYgKzExNiw3IEBAIGNsYXNzIExv
d1Bvd2VyTW9kZU5vdGlmaWVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUmVjb3JkZXJQcm92aWRlcjsKK2NsYXNz
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZTsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9u
OwogY2xhc3MgUGFnZUNvbnNvbGVDbGllbnQ7CiBjbGFzcyBQYWdlRGVidWdnYWJsZTsKQEAgLTUy
Myw2ICs1MjQsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IE9wdGlvbmFsPEFwcGxpY2F0aW9uTWFu
aWZlc3Q+JiBhcHBsaWNhdGlvbk1hbmlmZXN0KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlv
bk1hbmlmZXN0OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSogbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoKSB7IHJldHVybiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpOworI2VuZGlmCisKICAgICAvLyBO
b3RpZmljYXRpb25zIHdoZW4gdGhlIFBhZ2Ugc3RhcnRzIGFuZCBzdG9wcyBiZWluZyBwcmVzZW50
ZWQgdmlhIGEgbmF0aXZlIHdpbmRvdy4KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFjdGl2
aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+KTsKICAgICBPcHRpb25TZXQ8
QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0
aXZpdHlTdGF0ZTsgfQpAQCAtMTE0MCw2ICsxMTQ3LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IG1fZGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9tZWRpYVNl
c3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgorCiAgICAgVmVjdG9yPFVzZXJDb250ZW50VVJMUGF0
dGVybj4gbV9jb3JzRGlzYWJsaW5nUGF0dGVybnM7CiAgICAgVmVjdG9yPFVzZXJTdHlsZVNoZWV0
PiBtX3VzZXJTdHlsZVNoZWV0c1BlbmRpbmdJbmplY3Rpb247CiAgICAgT3B0aW9uYWw8SGFzaFNl
dDxTdHJpbmc+PiBtX2FsbG93ZWROZXR3b3JrSG9zdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggOTMxYzAzMWFiMjJlZTBlOTdlNDk2MWY4YjEzMWM1M2FhMWVmYWRlMi4u
MDM0OWUzY2Y3MGZiZDI1MDJhYzU3YzgwMDMxYmM5MWRkMGU4NmY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNjI0Myw3ICs2MjQzLDcgQEAgdm9pZCBJbnRlcm5hbHM6
OmxvYWRBcnR3b3JrSW1hZ2UoU3RyaW5nJiYgdXJsLCBBcnR3b3JrSW1hZ2VQcm9taXNlJiYgcHJv
bWlzZSkKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxp
c3RlbmVyKQogewotICAgIGlmIChtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgIGlmICht
X21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcikKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CkBAIC02MjU2LDggKzYyNTYsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbgogICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JN
ZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5hdmlnYXRv
cigpKTsKICAgICBhdXRvIG1vY2sgPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0
ZShjb250ZXh0LCBXVEZNb3ZlKGxpc3RlbmVyKSk7CiAgICAgbV9tb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IgPSBtb2NrLnB0cigpOwotICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKG1vY2suZ2V0KCkpOwotICAgIHNlc3Npb24u
c2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKSk7CisgICAgc2Vz
c2lvbi5jcmVhdGVDb29yZGluYXRvcihXVEZNb3ZlKG1vY2spKTsKIAogICAgIHJldHVybiB7IH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzM2QwM2NiMTIxZTQxMjU3Y2I1
YTk4NjhkOTQyZWU4YjAwYmNlNzU1Li45ZDNjY2M0OWU2YzBmYmFlNWVhN2Y3NjQyZGJjMjk1MTU0
MjY3ZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExOTMsNyArMTE5Myw2
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQotICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9tZWRpYVNlc3Npb25D
b29yZGluYXRvcjsKICAgICBSZWZQdHI8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA2
NTczMzJmN2UyYzA5OTZkMmJkM2JhMDU2MjJkYmJkOTVkZThkZjU1Li5hMTJkMGU4MGRjYzFiZDE0
ZWY0MDBlNTA1NmQxYmYxYTdlYjY1ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0xMjAsMTAgKzEyMCwx
MCBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZQogICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+
c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJwbGF5YmFja1N0YXRlQ2hhbmdlZCIp
OwogfQogCi12b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0
ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3ZvaWQgTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp0cmFja0lkZW50aWZpZXJDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcikKIHsKLSAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIsIHN0YXRlKTsKLSAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2so
bV9jb250ZXh0LmdldCgpLCAiY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQiKTsKKyAgICBBTFdBWVNf
TE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIGlkZW50aWZpZXIpOworICAgIG1fc3RhdGVD
aGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJ0cmFja0lk
ZW50aWZpZXJDaGFuZ2VkIik7CiB9CiAKIFdURkxvZ0NoYW5uZWwmIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCA0NzgwNDg3NmEzMThm
MjkwZTJlZWYyNTI0ZDYxOTk1Nzg5NDcyN2ZkLi5kM2I4NjMwYmI0ODA2MjdkY2M0NjcxMDYzYmNl
ZjdjZTEwMTlkY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0
ZT4mKSBmaW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZSkgZmluYWw7Ci0gICAgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHRyYWNrSWRlbnRp
ZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBjb25zdCBjaGFyKiBsb2dD
bGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsg
fQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Zy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVG
b3JUZXN0aW5nLmgKaW5kZXggNzE2NWJjNGZkN2NiZTQxMjI2NzY2ODA1MDUzNGVmOGM5MjFiZjNm
NC4uZGZlNzExZDVkNmNhYmRkOTJhMzhkNWMwZThlMDIxODgxOTUxODc4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0
aW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmgKQEAgLTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgX1dLTWVkaWFQb3Np
dGlvblN0YXRlIHsKIC0gKHZvaWQpcG9zaXRpb25TdGF0ZUNoYW5nZWQ6KHN0cnVjdCBfV0tNZWRp
YVBvc2l0aW9uU3RhdGUgKiBfTnVsbGFibGUpc3RhdGU7CiAtICh2b2lkKXJlYWR5U3RhdGVDaGFu
Z2VkOihfV0tNZWRpYVNlc3Npb25SZWFkeVN0YXRlKXN0YXRlOwogLSAodm9pZClwbGF5YmFja1N0
YXRlQ2hhbmdlZDooX1dLTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSlzdGF0ZTsKLS0gKHZvaWQp
Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQ6KF9XS01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUp
c3RhdGU7CistICh2b2lkKXRyYWNrSWRlbnRpZmllckNoYW5nZWQ6KE5TU3RyaW5nICopdHJhY2tJ
ZGVudGlmaWVyOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KaW5kZXgg
OWNiNGE5MWJjZWNhNmI4NzIxODJkM2VlNTAzNmU5NWU2MmIxODRiYi4uMzc0Y2YxOTVmNmI0Mjdj
YzBhOTY4NmQ3ZjE5NWM1MTMyYmZhNWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTU1NywxMyArNTU3LDkg
QEAgLSAodm9pZClfY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8
X1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IKICAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5h
dG9yIHBsYXliYWNrU3RhdGVDaGFuZ2VkOnN0YXRpY19jYXN0PF9XS01lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGU+KHN0YXRlKV07CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGNvb3JkaW5hdG9y
U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUp
IGZpbmFsCisgICAgICAgIHZvaWQgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
OjpXYWl0aW5nKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFdLTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZVdhaXRpbmcpLCAiV0tNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlV2FpdGluZyBk
b2VzIG5vdCBtYXRjaCBXZWJLaXQgdmFsdWUiKTsKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
OjpKb2luZWQpID09IHN0YXRpY19jYXN0PHNpemVfdD4oV0tNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlSm9pbmVkKSwgIldLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZUpvaW5lZCBkb2Vz
IG5vdCBtYXRjaCBXZWJLaXQgdmFsdWUiKTsKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpD
bG9zZWQpID09IHN0YXRpY19jYXN0PHNpemVfdD4oV0tNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlQ2xvc2VkKSwgIldLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZUNsb3NlZCBkb2VzIG5v
dCBtYXRjaCBXZWJLaXQgdmFsdWUiKTsKLQotICAgICAgICAgICAgW21fY2xpZW50Q29vcmRpbmF0
b3IgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQ6c3RhdGljX2Nhc3Q8X1dLTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZT4oc3RhdGUpXTsKKyAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9y
IHRyYWNrSWRlbnRpZmllckNoYW5nZWQ6aWRlbnRpZmllcl07CiAgICAgICAgIH0KIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaAppbmRleCBhODE1MjBh
NjIzOGFmNjZjZjRmMGNhNTk3ZDI1ZWZkOGVkZTI2YmMwLi5lMDJhNGY1ODlmNGM2NWRiYTEyNmIx
NDgwYjAyNTE1ZmNhMjA2NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRl
LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0
YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+Jikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFu
Z2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0lkZW50aWZpZXJDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0
cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1fY2xp
ZW50ID0gY2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAK
aW5kZXggZTE5MTI3MGY5NzJmMjM5NzQyZmQ3YzE4NjAzOGY5NmM3ZGMxZDgyOC4uYjJhMmNlYzc2
ZDRkYzBmZWYwMDQ1ZTA4Yjk4ODRmZGVmN2EzNmIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eS5jcHAKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIHZvaWQgUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0CiAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRl
KTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGlu
YXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0
YXRlKQordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojp0cmFja0lkZW50
aWZpZXJDaGFuZ2VkKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5jb29yZGluYXRvclN0
YXRlQ2hhbmdlZChzdGF0ZSk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnRyYWNrSWRlbnRp
ZmllckNoYW5nZWQoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6c2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRpbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCkBAIC0xNzQsNiArMTc0LDExIEBAIHZvaWQg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0
IFN0cmluZyYgdHJhY2tJZCwKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpTZXRTZXNzaW9uVHJhY2sg
eyB0cmFja0lkIH0sIGNhbGxiYWNrKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlIHN0YXRlKQoreworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpDb29yZGluYXRvclN0YXRlQ2hh
bmdlZCB7IHN0YXRlIH0pOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dD
aGFubmVsJiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpsb2dDaGFubmVsKCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaAppbmRleCA2MWI2MTM2
OGNlMGY5MTdjZWRkMzJmMjRmMmIyOGFjY2NmZmJhY2U2Li4xMDU0YmE4NmE3MGY2OWM1YjQwM2Jl
N2Y2MTMwMmJmMWFiMWM5ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC03MywxMyArNzMsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFu
Z2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4mKTsKICAgICB2
b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOwog
ICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSk7Ci0gICAgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlKTsKKyAgICB2b2lkIHRyYWNrSWRlbnRpZmllckNoYW5n
ZWQoY29uc3QgU3RyaW5nJik7CiAKICAgICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVu
dAogICAgIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBsYXlTZXNzaW9uKE9wdGlvbmFsPGRvdWJs
ZT4gYXRUaW1lLCBPcHRpb25hbDxkb3VibGU+IGhvc3RUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2
b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUpIGZpbmFsOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3Qg
V1RGOjpMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4N2Q1
Njc1MWNmYjZhYjkxYTE3YmIxZjI1MWNhZjJkZjk3ODdjNjYwLi5kNTY5ODE1ZmFiZjVlNWNjMGZi
NDkzY2U5Yjk3ZmZhNTA2NzIwN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ0LDcgKzQ0LDcgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIFBs
YXliYWNrU3RhdGVDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKTsKIAotICAgIENvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKTsKKyAgICBU
cmFja0lkZW50aWZpZXJDaGFuZ2VkKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIGZpbmFsCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggN2Q2
Y2Y0M2EwMDEyYzI4YjhkYzI5MGU3OTllOWE4YzRhYTkyMDVhZC4uNmIxY2U1YTVhZjAxZTAyYjcz
YzFlNDIxOTRiYjYzYmVkNjc5ZjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0xMDU4MCw4ICsxMDU4MCw2IEBAIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiB2b2lkIFdlYlBhZ2VQcm94
eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoIW1fbWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eSk7Ci0KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKHByaXZhdGVDb29yZGlu
YXRvci0+aWRlbnRpZmllcigpKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcml2
YXRlQ29vcmRpbmF0b3IgPSBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvciksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgc3VjY2VzcykgbXV0YWJs
ZSB7CiAKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhc3VjY2VzcykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCBkZDBhOWIzODc5Y2M2MjRkMWM4
ZjRmNDY0ZmNkYjRjMjM0YWNlYjA4Li5iZWZkMzU2NzkxYTYzNzNjMjExOGRhNzQzYTVkMzA5ZmEw
MDE0YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApA
QCAtMTc1LDEwICsxNzUsMTAgQEAgdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGwKICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6UGxheWJh
Y2tTdGF0ZUNoYW5nZWQgeyBzdGF0ZSB9KTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OnRyYWNrSWRlbnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQogewot
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOwotICAgIG1f
cGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpD
b29yZGluYXRvclN0YXRlQ2hhbmdlZCB7IHN0YXRlIH0pOworICAgIEFMV0FZU19MT0dfSUZfUE9T
U0lCTEUoTE9HSURFTlRJRklFUiwgaWRlbnRpZmllcik7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlRyYWNrSWRlbnRpZmllckNo
YW5nZWQgeyBpZGVudGlmaWVyIH0pOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTIxNyw2ICsyMTcsMTMgQEAgdm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0
cmluZyYgdHJhY2tJZGVudGlmaWUKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwog
fQogCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIGlm
IChhdXRvIGNvb3JkaW5hdG9yQ2xpZW50ID0gY2xpZW50KCkpCisgICAgICAgIGNvb3JkaW5hdG9y
Q2xpZW50LT5jb29yZGluYXRvclN0YXRlQ2hhbmdlZChzdGF0ZSk7Cit9CisKIFdURkxvZ0NoYW5u
ZWwmIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gTG9nTWVkaWE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmgKaW5kZXggNTY5NjM4YjhjODdlNGI2NTFlNDk4OWI4N2IwZjU1ZWIwOTI1ZmQ5Yi4uNWE3
YzNhMzg2ZmRiMzk4YTc1N2U1Y2ZjZmQ4ODU2NmYxMzAzMzQ4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtNTgsNiArNTgsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGxheVNlc3Npb24oT3B0aW9uYWw8ZG91YmxlPiwgT3B0aW9uYWw8ZG91YmxlPiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBwYXVzZVNlc3Npb24oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRTZXNzaW9uVHJhY2so
Y29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9p
ZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlKTsKIAogICAgIC8vIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSBvdmVycmlk
ZXMuCiAgICAgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KQEAgLTcxLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4mKSBm
aW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7Ci0gICAgdm9pZCBjb29yZGluYXRvclN0
YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSBmaW5hbDsK
KyAgICB2b2lkIHRyYWNrSWRlbnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAK
ICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
bWVzc2FnZXMuaW4KaW5kZXggYjUyMmEwNDA1M2VjMzY1MTViMmUxYTU1YmNlODE1MjFjYTM5MTk0
Yy4uZWE0NTk5NDBiOWJlZjlhNDNhYzlkMjhlM2EzZDkzY2VjNGVkNTg0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVk
aWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCkBAIC0z
NCw2ICszNCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIE5v
dFJlZkNvdW50ZWQgewogICAgIFBhdXNlU2Vzc2lvbigpIC0+IChib29sIHJlc3VsdCkgQXN5bmMK
IAogICAgIFNldFNlc3Npb25UcmFjayhTdHJpbmcgdHJhY2tJZGVudGlmaWVyKSAtPiAoYm9vbCBy
ZXN1bHQpIEFzeW5jCisKKyAgICBDb29yZGluYXRvclN0YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSk7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3
YTAyODBmN2ExZjg1NjRhMTA3OGE0N2ZjOTU4NzIxMDc0ZmNkMjFkLi4xNGYyMzhiM2E3ZWRmOTFi
ODZhNDNkNTlkNmMzZDdkYmZkYTRjNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzU4MiwxNCArNzU4MiwxNCBAQCB2b2lkIFdlYlBhZ2U6
OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Q29tcGxldGlvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYgc2Vzc2lvbiA9
IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3co
KS0+bmF2aWdhdG9yKCkpOwotICAgIGF1dG8gY29vcmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y3JlYXRlKCp0aGlzLCBpZGVudGlmaWVyKTsKLSAgICBtX3JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gY29vcmRpbmF0b3IucHRyKCk7Ci0gICAgbV9tZWRpYVNl
c3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29vcmRp
bmF0b3IuZ2V0KCkpOwotICAgIHNlc3Npb24uc2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25D
b29yZGluYXRvci5nZXQoKSk7Ci0KKyAgICBtX3BhZ2UtPnNldE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZp
ZXIpKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KKwordm9pZCBXZWJQYWdlOjpp
bnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQoreworICAgIG1fcGFnZS0+aW52YWxp
ZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7Cit9CiAjZW5kaWYKIAogI2lmICFQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCBmYzk2MjFlMzcyYzViNDA0MmI5ZWRiY2JjZjJlMzIzNjQzYWFlYTMxLi4xODgwNWYxN2E3NGFj
N2I1NDg5MzhjMTg1NGFjMzgxNTU3MjEwNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNDM4LDYgKzE0MzgsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKICAgICB2b2lkIGNyZWF0ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIHZvaWQgaW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CiAj
ZW5kaWYKIAogICAgIHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChib29sIHdhc0Fw
cEJvdW5kKSB7IG1fbGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA9IHdhc0FwcEJvdW5kOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCAxYjNhNjgxZmNiNTFmNDEzZTIxYmE0MjU0NDJiOGMwYTFmZDVlMGFjLi43MzE4
OWU0MmJlZWQ0OWVlYmMyZDkwMWI5MTYxMWY2OWJmOWYwMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTY0MSw2
ICs2NDEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCiAgICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU3Ry
aW5nIGlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgSW52YWxpZGF0ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428666</attachid>
            <date>2021-05-14 15:03:05 -0700</date>
            <delta_ts>2021-05-14 16:02:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225822-20210514150305.patch</filename>
            <type>text/plain</type>
            <size>37898</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI3NTU1MTU0MGFlNmZm
NTcwZjJjNWQ1ZmM2MmMwMmVhYWQyM2ZkNS4uMjFmZDQ5ODJiMmNmY2UyNmM4MjdlNjNlYjM3ZTFh
YWQyYzc2Mzc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA1LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIHN1cnZpdmVzIHBhZ2UgcmVsb2FkL25hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBCZWNhdXNlIHRoZSBNZWRpYVNlc3Npb25Db29y
ZGluYXRvciBpcyBjcmVhdGVkIGFuZCBvd25lZCBieSBQYWdlLCBpdCB3aWxsIHN1cnZpdmUKKyAg
ICAgICAgYSByZWxvYWQgKGFzIFBhZ2UgaXMgbm90IHJlLWNyZWF0ZWQpLCBhbmQgdGhlIHNhbWUg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Igb2JqZWN0CisgICAgICAgIHdpbGwgYmUgYWRkZWQgdG8g
TWVkaWFTZXNzaW9uIHdoZW4gdGhlIG5ldyBOYXZpZ2F0b3IgaXMgY3JlYXRlZC4KKworICAgICAg
ICBSYXRoZXIgdGhhbiBoYXZlIFBhZ2Ugb3duIHRoZSBjb29yZGluYXRvciBpdHNlbGYsIGl0IGNh
biBpbnN0ZWFkIG93biB0aGUKKyAgICAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
IHVzZWQgdG8gY3JlYXRlIHRoZSBjb29yZGluYXRvci4gV2hlbiB0aGUgTWVkaWFTZXNzaW9uCisg
ICAgICAgIGlzIGNyZWF0ZWQsIGl0IHdpbGwgcXVlcnkgdGhlIFBhZ2UgdG8gYXNrIGZvciBhIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSB0bworICAgICAgICB1c2UgdG8gY3JlYXRlIHRo
ZSBjb29yZGluYXRvciwgZ3VhcmFudGVlaW5nIGEgbmV3IG9iamVjdCBpcyBjcmVhdGVkLgorCisg
ICAgICAgIFRoZSBzZXNzaW9uIGl0c2VsZiBzaG91bGQgYmUgbGVmdCB3aGVuIHRoZSBkb2N1bWVu
dCBpcyBwdXQgaW50byBCYWNrL0ZvcndhcmQKKyAgICAgICAgQ2FjaGUsIG9yIGNsb3NlZCB3aGVu
IHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIGVudGlyZWx5LgorCisgICAgICAgIEEgZmV3IGRyaXZl
LWJ5IGZpeGVzOgorCisgICAgICAgIFRoZSBkaXJlY3Rpb24gb2YgY29vcmRpbmF0b3JTdGF0ZUNo
YW5nZWQoKSBpcyBub3cgcmV2ZXJzZWQ7IGl0IGZsb3dzIGRvd24gZnJvbSB0aGUKKyAgICAgICAg
VUlQcm9jZXNzIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLiBUaGlzIGFsbG93cyB0aGUgY29vcmRpbmF0b3IKKyAgICAgICAgdG8gcmVhY3Qgd2hlbiBp
dCdzIHByaXZhdGUgaW1wbGVtZW50YXRpb24gY2hhbmdlcyBzdGF0ZS4KKworICAgICAgICBBZGQg
YSBuZXcgdXB3YXJkIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSB0cmFja0lkZW50aWZpZXIgaW4gTWVk
aWFNZXRhZGF0YSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpjcmVhdGVDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b246OnNldENvb3JkaW5hdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6am9pbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6bGVhdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjptZXRh
ZGF0YUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JDbGllbnQ6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRl
c3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9y
U3RhdGVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOgorCiAyMDIxLTAzLTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb24gY2FsbHMgaW50byBB
VkF1ZGlvU2Vzc2lvbiB3aGVuIEdQVVAgaXMgZW5hYmxlZCwgY2F1c2luZyBoYW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBlMGM2M2RmZTM2ZmFiYzFjNmQxOWUxYjlhYmY4M2UwNGExZjlkZjRjLi4xNjRmMTIzMjc1
ZGYxYjQwYmIxYjc1NzJmYWZkZjcwYTBlNDE4NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBA
CisyMDIxLTA1LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAg
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHN1cnZpdmVzIHBhZ2UgcmVsb2FkL25hdmlnYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgdGhl
IGNsYXNzZXMgYWZmZWN0ZWQgYnkgdmlydHVhbCBmdW5jdGlvbiBjaGFuZ2VzIGluIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLiBVcGRhdGUKKyAgICAgICAgdGhlIGNyZWF0aW9uIG1lY2hhbmlzbSBp
bnNpZGUgV2ViUGFnZS9Qcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfY3JlYXRlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eTo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjp0cmFja0lkZW50aWZpZXJDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnZh
bGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMjEtMDUtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW01lZGlhIGluIEdQVSBQcm9jZXNzXSBNb3ZlIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkgdG8gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCA4OWM2OWM4
ZDMxMThjMzg1NTM4OGExZGM1YWYwMThkMTNhNjAyODYzLi5kMGI1NDkwYmI2NWMzOWUzNWViNDE0
OTZkMjM1MmQxMzI4ZDJlNjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJNZWRpYU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
IApAQCAtMTM2LDYgKzEzNywxNSBAQCBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNo
YXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRpZmllcigp
OworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgYXV0byogZnJh
bWUgPSBuYXZpZ2F0b3IuZnJhbWUoKTsKKyAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lID8gZnJh
bWUtPnBhZ2UoKSA6IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JQcml2
YXRlID0gcGFnZS0+bWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIGNyZWF0
ZUNvb3JkaW5hdG9yKCpjb29yZGluYXRvclByaXZhdGUpOworICAgIH0KKyNlbmRpZgorCiAgICAg
c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAt
MTQ4LDYgKzE1OCwyMiBAQCBib29sIE1lZGlhU2Vzc2lvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0
aXZpdHkoKTsKIH0KIAordm9pZCBNZWRpYVNlc3Npb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbiByZWFzb24pCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisg
ICAgaWYgKG1fY29vcmRpbmF0b3IgJiYgcmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJh
Y2tGb3J3YXJkQ2FjaGUpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPmxlYXZlKCk7CisjZW5kaWYK
K30KKwordm9pZCBNZWRpYVNlc3Npb246OnN0b3AoKQoreworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQorICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3Jk
aW5hdG9yLT5jbG9zZSgpOworI2VuZGlmCit9CisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRh
ZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwpAQCAtMTcxLDE3ICsxOTcsMTQgQEAgdm9pZCBNZWRpYVNlc3Npb246
OnNldFJlYWR5U3RhdGUoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBub3RpZnlS
ZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGlu
YXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciogY29vcmRpbmF0b3IpCit2b2lkIE1lZGlhU2Vz
c2lvbjo6Y3JlYXRlQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZT4mJiBjb29yZGluYXRvclByaXZhdGUpCiB7Ci0gICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29v
cmRpbmF0b3IpCi0gICAgICAgIHJldHVybjsKLQogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uik7CiAKICAgICBpZiAobV9jb29yZGluYXRvcikKICAgICAgICAgbV9jb29yZGluYXRvci0+c2V0
TWVkaWFTZXNzaW9uKG51bGxwdHIpOwogCi0gICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9y
OworICAgIG1fY29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFdU
Rk1vdmUoY29vcmRpbmF0b3JQcml2YXRlKSk7CiAKICAgICBpZiAobV9jb29yZGluYXRvcikKICAg
ICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA5MjQ1
YjY4N2VlMTY4YjFmOTk5MjlkNDA0MzdlMTA3NDc4M2E4NzgzLi5mM2ExMDY3MDk5MDZiYmQzMGY0
OTFmNzg5NzM5YWI0YzkwYTRkNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBNZWRpYU1ldGFkYXRhOwogY2xh
c3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGU7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKIGNsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKIAogICAgIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29v
cmRpbmF0b3IuZ2V0KCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb3JkaW5hdG9y
KE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjcmVh
dGVDb29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmKTsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCkBAIC0xMzEsNiArMTMy
LDggQEAgcHJpdmF0ZToKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbiI7
IH0KICAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CisgICAgdm9pZCBzdG9w
KCkgZmluYWw7CiAKICAgICBSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gYWN0aXZlTWVkaWFFbGVt
ZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCAwZDZkZTQ0
Njc5NzlhMWYzZmExNGQxZDg2M2RhNDAxOTRiYzc3Y2EyLi45YzYwMjhkMTQwZDY4M2JiMTI3NTUw
ZmQxNDQyZGFiYzQ0MWRmNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC04
OSw3ICs4OSw2IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgfQogCiAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPm1fc3RhdGUgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQ7Ci0g
ICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5jb29yZGluYXRvclN0
YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpOwogICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTEwMCwxMyArOTksMjIgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKCkKICAgICBpZiAo
bV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxl
IHRvIGxlYXZlIHdoZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9z
dGF0ZSkpIH07CiAKLSAgICBtX3N0YXRlID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6
Q2xvc2VkOwotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5sZWF2ZSgpOwotICAgIG1fcHJpdmF0
ZUNvb3JkaW5hdG9yLT5jb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGlu
YXRvclN0YXRlOjpDbG9zZWQpOworICAgIGNsb3NlKCk7CiAKICAgICByZXR1cm4geyB9OwogfQog
Cit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjbG9zZSgpCit7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKyAgICBtX3N0YXRlID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZTo6Q2xvc2VkOworICAgIGlmICghbV9wcml2YXRlQ29vcmRpbmF0b3IpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5sZWF2ZSgpOworICAgIG1fcHJpdmF0
ZUNvb3JkaW5hdG9yID0gbnVsbHB0cjsKK30KKwogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQogewogICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CkBAIC0yNDgsNiArMjU2
LDE4IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRp
YVNlc3Npb24qIHNlc3Npb24pCiAgICAgICAgIG1fc2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjptZXRhZGF0YUNoYW5nZWQoY29u
c3QgUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiBtZXRhZGF0YSkKK3sKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9QTEFZTElTVCkKKyAgICBpZiAoIW1fcHJpdmF0ZUNvb3JkaW5hdG9yKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtZXRhZGF0YSA/IG1ldGFkYXRhLT50
cmFja0lkZW50aWZpZXIoKSA6IGVtcHR5U3RyaW5nKCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCBtX3N0YXRlLCAiLCB0cmFja0lkZW50aWZpZXI6IiwgaWRlbnRpZmllcik7CisgICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPnRyYWNrSWRlbnRpZmllckNoYW5nZWQoaWRlbnRpZmllcik7
CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0
ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiYgcG9zaXRpb25TdGF0
ZSkKIHsKICAgICBpZiAocG9zaXRpb25TdGF0ZSkKQEAgLTI1OCw2ICsyNzgsOSBAQCB2b2lkIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25h
bDxNZWRpYVBvc2l0aW9uUwogICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGU6OkpvaW5lZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX3ByaXZhdGVD
b29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFwb3NpdGlvblN0YXRlKSB7
CiAgICAgICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7IH0p
OwogICAgICAgICByZXR1cm47CkBAIC0yNzMsNiArMjk2LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSBwbGEKICAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpK
b2luZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghbV9wcml2YXRlQ29vcmRpbmF0b3Ip
CisgICAgICAgIHJldHVybjsKKwogICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0
YXRlQ2hhbmdlZChwbGF5YmFja1N0YXRlKTsKIH0KIApAQCAtMjgzLDYgKzMwOSw5IEBAIHZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgcmVhZHlTdGF0CiAgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZTo6Sm9pbmVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIW1fcHJpdmF0
ZUNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKICAgICBtX3ByaXZhdGVDb29yZGluYXRv
ci0+cmVhZHlTdGF0ZUNoYW5nZWQocmVhZHlTdGF0ZSk7CiB9CiAKQEAgLTI5NSw2ICszMjQsMTYg
QEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUoZG91Ymxl
IHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGJvb2wgaXNQYXVzZWQgPSBtX3Nlc3Npb24tPnBsYXliYWNrU3RhdGUoKSA9PSBNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlOjpQYXVzZWQ7CisKKyAgICBpZiAoaXNQYXVzZWQgJiYgY3VycmVudFBv
c2l0aW9uQXBwcm94aW1hdGVseUVxdWFsVG8odGltZSkpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWlzUGF1c2Vk
KQorICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKHsgLmFjdGlvbiA9IE1lZGlh
U2Vzc2lvbkFjdGlvbjo6UGF1c2UgfSk7CisKICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5k
bGVyKHsgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLCAuc2Vla1RpbWUgPSB0
aW1lIH0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQpAQCAtMzI1LDcgKzM2NCw3
IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKHsgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFj
dGlvbjo6UGxheSB9KTsKKyAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKHsgLmFjdGlv
biA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6UGF1c2UgfSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CiB9CiAKQEAgLTM0Miw2ICszODEsMTQgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2ssIENvbXBsZXRpb25IYW4K
ICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1f
c3RhdGUpOworfQorCiBib29sIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjdXJyZW50UG9zaXRp
b25BcHByb3hpbWF0ZWx5RXF1YWxUbyhkb3VibGUgdGltZSkgY29uc3QKIHsKICAgICBpZiAoIW1f
c2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IDkyY2RkZDc5OGM1ZWJhNTg0
OTFiMDg2NDNkOGRhMTk0ZTVlN2JkYWQuLmJlNTIwMDAyYTViYjFiZjdlYzY5ZjBkYjNkNmUyNjU2
YzdiYTMxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGpvaW4oRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGxlYXZlKCk7CisgICAgdm9pZCBjbG9zZSgpOwogCiAgICAgU3Ry
aW5nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGVDb29yZGluYXRvci0+aWRl
bnRpZmllcigpOyB9CiAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KQEAgLTY2LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiYmKTsKIAogICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKKyAgICB2b2lk
IG1ldGFkYXRhQ2hhbmdlZChjb25zdCBSZWZQdHI8TWVkaWFNZXRhZGF0YT4mKSBmaW5hbDsKICAg
ICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4mKSBmaW5hbDsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CkBAIC03NSw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwbGF5U2Vzc2lvbihPcHRpb25hbDxkb3VibGU+IGF0VGltZSwgT3B0aW9uYWw8ZG91Ymxl
PiBob3N0VGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAgICAg
dm9pZCBwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7
CiAgICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdl
ZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSBmaW5hbDsKIAogICAgIGJv
b2wgY3VycmVudFBvc2l0aW9uQXBwcm94aW1hdGVseUVxdWFsVG8oZG91YmxlKSBjb25zdDsKIApA
QCAtODUsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1f
c2Vzc2lvbjsKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIG1fc3RhdGUgeyBNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpXYWl0aW5nIH07Ci0gICAgUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CisgICAgUmVmUHRyPE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CiAgICAg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgKaW5kZXggZmE5
ZmI4YzdmNTg0MDBhZDdiMTNhMjFlNmVjNjY2YzUzM2M4ZTVjOS4uZjM2ZWVkMmMyNjE0ZTk2YTcx
NmM4YjI4NTExMmI3Mjk0ZDQ1ZWFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwbGF5
U2Vzc2lvbihPcHRpb25hbDxkb3VibGU+IGF0VGltZSwgT3B0aW9uYWw8ZG91YmxlPiBob3N0VGlt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb29yZGluYXRvclN0
YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSB7IH07CiB9
OwogCiBjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+IHsKQEAgLTY4LDcgKzY5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRp
b25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0
YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0lkZW50aWZpZXJDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpID0gMDsKIAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IFdURjo6TG9n
Z2VyJiwgY29uc3Qgdm9pZCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50
O30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDJjNDVhYjlhZTRmOGE0M2RiMjkzYTBhMTYyZjBmMjg5
MTg1MGQ4ZTYuLjJmNGY5NTY5ZmZlYzc0NzZhM2U0OTE4NmFjNzJkZmMxN2MyOTcwMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMTczLDYgKzE3MywxMSBAQAogI2luY2x1ZGUgIkRpc3BsYXlWaWV3
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yTWVk
aWFTZXNzaW9uLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgSGFz
aFNldDxQYWdlKj4mIGFsbFBhZ2VzKCkKQEAgLTMzODAsNiArMzM4NSwzNSBAQCB2b2lkIFBhZ2U6
OnNldFBheW1lbnRDb29yZGluYXRvcihzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudENvb3JkaW5hdG9y
PiYmIHBheW1lbnRDbwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKK3ZvaWQgUGFnZTo6c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBtZWRpYVNlc3Npb25Db29yZGluYXRvcikKK3sK
KyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gV1RGTW92ZShtZWRpYVNlc3Npb25Db29y
ZGluYXRvcik7CisKKyAgICBhdXRvKiB3aW5kb3cgPSBtYWluRnJhbWUoKS53aW5kb3coKTsKKyAg
ICBpZiAoYXV0byogbmF2aWdhdG9yID0gd2luZG93ID8gd2luZG93LT5vcHRpb25hbE5hdmlnYXRv
cigpIDogbnVsbHB0cikKKyAgICAgICAgTmF2aWdhdG9yTWVkaWFTZXNzaW9uOjptZWRpYVNlc3Np
b24oKm5hdmlnYXRvcikuY3JlYXRlQ29vcmRpbmF0b3IoKm1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IpOworfQorCit2b2lkIFBhZ2U6OmludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigp
Cit7CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGluYXRvciA9IG51bGxwdHI7CisgICAgYXV0byog
d2luZG93ID0gbWFpbkZyYW1lKCkud2luZG93KCk7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8qIG5hdmlnYXRvciA9IHdpbmRvdy0+b3B0aW9uYWxOYXZpZ2F0
b3IoKTsKKyAgICBpZiAoIW5hdmlnYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
Y29vcmRpbmF0b3IgPSBOYXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbigqbmF2aWdh
dG9yKS5jb29yZGluYXRvcigpOworICAgIGlmICghY29vcmRpbmF0b3IpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNvb3JkaW5hdG9yLT5jbG9zZSgpOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6
Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBjaGFubmVsTmFtZSwgV1RGTG9n
Q2hhbm5lbFN0YXRlIHN0YXRlLCBXVEZMb2dMZXZlbCBsZXZlbCkKIHsKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggODBjNjIzOWJhZWZkZGRiMTI4YzgyMTY1NDA1
NDY5ZDZiOWRiZGM1Ny4uZmM1ZmYyMjNjYmM2OTY4OTE0YzQ0ZWVkNGJjZjcwZDQ5Yzk3MTViOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTExNiw2ICsxMTYsNyBAQCBjbGFzcyBMb3dQb3dlck1vZGVOb3Rp
ZmllcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE1lZGlhUGxheWJhY2tU
YXJnZXQ7CiBjbGFzcyBNZWRpYVJlY29yZGVyUHJvdmlkZXI7CitjbGFzcyBNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGU7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBhZ2VD
b25zb2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CkBAIC01MjMsNiArNTI0LDEyIEBA
IHB1YmxpYzoKICAgICBjb25zdCBPcHRpb25hbDxBcHBsaWNhdGlvbk1hbmlmZXN0PiYgYXBwbGlj
YXRpb25NYW5pZmVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25NYW5pZmVzdDsgfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUqIG1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgeyBy
ZXR1cm4gbV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKyNlbmRpZgorCiAgICAgLy8gTm90aWZpY2F0aW9ucyB3
aGVuIHRoZSBQYWdlIHN0YXJ0cyBhbmQgc3RvcHMgYmVpbmcgcHJlc2VudGVkIHZpYSBhIG5hdGl2
ZSB3aW5kb3cuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBY3Rpdml0eVN0YXRlKE9wdGlv
blNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPik7CiAgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6
OkZsYWc+IGFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2aXR5U3RhdGU7IH0K
QEAgLTExNDAsNiArMTE0NywxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyPiBtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0
cjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I7CisjZW5kaWYKKwogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBhdHRlcm4+IG1fY29yc0Rp
c2FibGluZ1BhdHRlcm5zOwogICAgIFZlY3RvcjxVc2VyU3R5bGVTaGVldD4gbV91c2VyU3R5bGVT
aGVldHNQZW5kaW5nSW5qZWN0aW9uOwogICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nPj4gbV9h
bGxvd2VkTmV0d29ya0hvc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDkzMWMwMzFhYjIyZWUwZTk3ZTQ5NjFmOGIxMzFjNTNhYTFlZmFkZTIuLjAzNDllM2NmNzBmYmQy
NTAyYWM1N2M4MDAzMWJjOTFkZDBlODZmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTYyNDMsNyArNjI0Myw3IEBAIHZvaWQgSW50ZXJuYWxzOjpsb2FkQXJ0d29ya0lt
YWdlKFN0cmluZyYmIHVybCwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmIHByb21pc2UpCiAjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5h
bHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKIHsKLSAg
ICBpZiAobV9tZWRpYVNlc3Npb25Db29yZGluYXRvcikKKyAgICBpZiAobV9tb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBhdXRvKiBkb2N1bWVu
dCA9IGNvbnRleHREb2N1bWVudCgpOwpAQCAtNjI1Niw4ICs2MjU2LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3Jp
cHRFeGVjdXRpb24KICAgICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVkaWFTZXNzaW9uOjpt
ZWRpYVNlc3Npb24oZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKSk7CiAgICAgYXV0
byBtb2NrID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29udGV4dCwgV1RG
TW92ZShsaXN0ZW5lcikpOwogICAgIG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gbW9j
ay5wdHIoKTsKLSAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OmNyZWF0ZShtb2NrLmdldCgpKTsKLSAgICBzZXNzaW9uLnNldENvb3JkaW5hdG9y
KG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOworICAgIHNlc3Npb24uY3JlYXRlQ29v
cmRpbmF0b3IoV1RGTW92ZShtb2NrKSk7CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMzNkMDNjYjEyMWU0MTI1N2NiNWE5ODY4ZDk0MmVlOGIw
MGJjZTc1NS4uOWQzY2NjNDllNmMwZmJhZTVlYTdmNzY0MmRiYzI5NTE1NDI2N2ZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMTkzLDcgKzExOTMsNiBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLSAgICBSZWZQ
dHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiAg
ICAgUmVmUHRyPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9tb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggNjU3MzMyZjdlMmMwOTk2
ZDJiZDNiYTA1NjIyZGJiZDk1ZGU4ZGY1NS4uYTEyZDBlODBkY2MxYmQxNGVmNDAwZTUwNTZkMWJm
MWE3ZWI2NWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMTIwLDEwICsxMjAsMTAgQEAgdm9pZCBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUKICAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJh
Y2sobV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQiKTsKIH0KIAotdm9pZCBN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIp
CiB7Ci0gICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7Ci0g
ICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQo
KSwgImNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkIik7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSLCBpZGVudGlmaWVyKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXIt
PnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAidHJhY2tJZGVudGlmaWVyQ2hhbmdl
ZCIpOwogfQogCiBXVEZMb2dDaGFubmVsJiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Omxv
Z0NoYW5uZWwoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggNDc4MDQ4NzZhMzE4ZjI5MGUyZWVmMjUyNGQ2
MTk5NTc4OTQ3MjdmZC4uZDNiODYzMGJiNDgwNjI3ZGNjNDY3MTA2M2JjZWY3Y2UxMDE5ZGNmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0
YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAg
ICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsK
ICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUp
IGZpbmFsOwotICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZSkgZmluYWw7CisgICAgdm9pZCB0cmFja0lkZW50aWZpZXJDaGFuZ2VkKGNv
bnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29u
c3QgeyByZXR1cm4gIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KICAgICBXVEZMb2dD
aGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmlu
ZGV4IDcxNjViYzRmZDdjYmU0MTIyNjc2NjgwNTA1MzRlZjhjOTIxYmYzZjQuLmRmZTcxMWQ1ZDZj
YWJkZDkyYTM4ZDVjMGU4ZTAyMTg4MTk1MTg3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Zy5oCkBAIC0xNTUsNyArMTU1LDcgQEAgc3RydWN0IF9XS01lZGlhUG9zaXRpb25TdGF0ZSB7CiAt
ICh2b2lkKXBvc2l0aW9uU3RhdGVDaGFuZ2VkOihzdHJ1Y3QgX1dLTWVkaWFQb3NpdGlvblN0YXRl
ICogX051bGxhYmxlKXN0YXRlOwogLSAodm9pZClyZWFkeVN0YXRlQ2hhbmdlZDooX1dLTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSlzdGF0ZTsKIC0gKHZvaWQpcGxheWJhY2tTdGF0ZUNoYW5nZWQ6KF9X
S01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpc3RhdGU7Ci0tICh2b2lkKWNvb3JkaW5hdG9yU3Rh
dGVDaGFuZ2VkOihfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKXN0YXRlOworLSAodm9p
ZCl0cmFja0lkZW50aWZpZXJDaGFuZ2VkOihOU1N0cmluZyAqKXRyYWNrSWRlbnRpZmllcjsKIEBl
bmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDljYjRhOTFiY2VjYTZi
ODcyMTgyZDNlZTUwMzZlOTVlNjJiMTg0YmIuLjM3NGNmMTk1ZjZiNDI3Y2MwYTk2ODZkN2YxOTVj
NTEzMmJmYTVmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBAIC01NTcsMTMgKzU1Nyw5IEBAIC0gKHZvaWQpX2Ny
ZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9XS01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yCiAgICAgICAgICAgICBbbV9jbGllbnRDb29yZGluYXRvciBwbGF5YmFja1N0
YXRlQ2hhbmdlZDpzdGF0aWNfY2FzdDxfV0tNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihzdGF0
ZSldOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKSBmaW5hbAorICAgICAg
ICB2b2lkIHRyYWNrSWRlbnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKSBm
aW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6V2FpdGluZykgPT0g
c3RhdGljX2Nhc3Q8c2l6ZV90PihXS01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGVXYWl0aW5n
KSwgIldLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZVdhaXRpbmcgZG9lcyBub3QgbWF0Y2gg
V2ViS2l0IHZhbHVlIik7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSA9PSBz
dGF0aWNfY2FzdDxzaXplX3Q+KFdLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZUpvaW5lZCks
ICJXS01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGVKb2luZWQgZG9lcyBub3QgbWF0Y2ggV2Vi
S2l0IHZhbHVlIik7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkKSA9PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KFdLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZUNsb3NlZCksICJX
S01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGVDbG9zZWQgZG9lcyBub3QgbWF0Y2ggV2ViS2l0
IHZhbHVlIik7Ci0KLSAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9yIGNvb3JkaW5hdG9y
U3RhdGVDaGFuZ2VkOnN0YXRpY19jYXN0PF9XS01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU+
KHN0YXRlKV07CisgICAgICAgICAgICBbbV9jbGllbnRDb29yZGluYXRvciB0cmFja0lkZW50aWZp
ZXJDaGFuZ2VkOmlkZW50aWZpZXJdOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgKaW5kZXggYTgxNTIwYTYyMzhhZjY2Y2Y0ZjBj
YTU5N2QyNWVmZDhlZGUyNmJjMC4uZTAyYTRmNTg5ZjRjNjVkYmExMjZiMTQ4MGIwMjUxNWZjYTIw
NjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oCkBAIC01OCw3ICs1
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcm
KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYWtQdHI8V2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGUxOTEyNzBm
OTcyZjIzOTc0MmZkN2MxODYwMzhmOTZjN2RjMWQ4MjguLmIyYTJjZWM3NmQ0ZGMwZmVmMDA0NWUw
OGI5ODg0ZmRlZjdhMzZiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
Y3BwCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdAogICAgIG1f
cHJpdmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdlZChzdGF0ZSk7CiB9CiAKLXZvaWQg
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5n
ZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3ZvaWQgUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZChj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoc3Rh
dGUpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT50cmFja0lkZW50aWZpZXJDaGFuZ2VkKGlk
ZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6
OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNhbGxiYWNrKQpAQCAtMTc0LDYgKzE3NCwxMSBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk6OnNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmIHRyYWNr
SWQsCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6U2V0U2Vzc2lvblRyYWNrIHsgdHJhY2tJZCB9LCBj
YWxsYmFjayk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6
Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZSBzdGF0ZSkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Q29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQgeyBzdGF0ZSB9
KTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmgKaW5kZXggNjFiNjEzNjhjZTBmOTE3Y2VkZDMy
ZjI0ZjJiMjhhY2NjZmZiYWNlNi4uMTA1NGJhODZhNzBmNjljNWI0MDNiZTdmNjEzMDJiZjFhYjFj
OWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaApAQCAtNzMsMTMgKzcz
LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+Jik7CiAgICAgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKICAgICB2b2lkIHBsYXli
YWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOwotICAg
IHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZSk7CisgICAgdm9pZCB0cmFja0lkZW50aWZpZXJDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgLy8gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQKICAgICB2b2lkIHNl
ZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBwbGF5U2Vzc2lvbihPcHRpb25hbDxkb3VibGU+IGF0VGltZSwgT3B0
aW9uYWw8ZG91YmxlPiBob3N0VGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgZmluYWw7CiAgICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBjb29yZGluYXRv
clN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSBmaW5h
bDsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IFdURjo6TG9nZ2VyJiBs
b2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODdkNTY3NTFjZmI2YWI5MWEx
N2JiMWYyNTFjYWYyZGY5Nzg3YzY2MC4uZDU2OTgxNWZhYmY1ZTVjYzBmYjQ5M2NlOWI5N2ZmYTUw
NjcyMDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC00NCw3ICs0NCw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICAgICBQbGF5YmFja1N0YXRlQ2hh
bmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0
ZSk7CiAKLSAgICBDb29yZGluYXRvclN0YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSk7CisgICAgVHJhY2tJZGVudGlmaWVy
Q2hhbmdlZChTdHJpbmcgdHJhY2tJZGVudGlmaWVyKSBmaW5hbAogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdkNmNmNDNhMDAxMmMyOGI4
ZGMyOTBlNzk5ZTlhOGM0YWE5MjA1YWQuLjZiMWNlNWE1YWYwMWUwMmI3M2MxZTQyMTk0YmI2M2Jl
ZDY3OWY1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTA1ODAsOCArMTA1ODAsNiBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdl
UHJveHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQogdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0
ZT4mJiBwcml2YXRlQ29vcmRpbmF0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKCFtX21lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOwotCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpD
cmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihwcml2YXRlQ29vcmRpbmF0b3ItPmlkZW50aWZp
ZXIoKSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJpdmF0ZUNvb3JkaW5hdG9y
ID0gV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogCiAgICAgICAg
IGlmICghd2Vha1RoaXMgfHwgIXN1Y2Nlc3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKaW5kZXggZGQwYTliMzg3OWNjNjI0ZDFjOGY0ZjQ2NGZjZGI0YzIz
NGFjZWIwOC4uYmVmZDM1Njc5MWE2MzczYzIxMThkYTc0M2E1ZDMwOWZhMDAxNGJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlh
U2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTE3NSwxMCArMTc1
LDEwIEBAIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlBsYXliYWNrU3RhdGVDaGFuZ2Vk
IHsgc3RhdGUgfSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNv
b3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp0cmFja0lkZW50
aWZpZXJDaGFuZ2VkKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIHsKLSAgICBBTFdBWVNfTE9H
X0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0b3JTdGF0
ZUNoYW5nZWQgeyBzdGF0ZSB9KTsKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5U
SUZJRVIsIGlkZW50aWZpZXIpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5OjpUcmFja0lkZW50aWZpZXJDaGFuZ2VkIHsgaWRlbnRp
ZmllciB9KTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nl
c3Npb25Ub1RpbWUoZG91YmxlIHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC0yMTcsNiArMjE3LDEzIEBAIHZvaWQgUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrSWRl
bnRpZmllCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAordm9pZCBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9H
X0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBpZiAoYXV0byBjb29yZGlu
YXRvckNsaWVudCA9IGNsaWVudCgpKQorICAgICAgICBjb29yZGluYXRvckNsaWVudC0+Y29vcmRp
bmF0b3JTdGF0ZUNoYW5nZWQoc3RhdGUpOworfQorCiBXVEZMb2dDaGFubmVsJiBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExv
Z01lZGlhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IDU2
OTYzOGI4Yzg3ZTRiNjUxZTQ5ODliODdiMGY1NWViMDkyNWZkOWIuLjVhN2MzYTM4NmZkYjM5OGE3
NTdlNWNmY2ZkODg1NjZmMTMwMzM0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXlTZXNz
aW9uKE9wdGlvbmFsPGRvdWJsZT4sIE9wdGlvbmFsPGRvdWJsZT4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcGF1c2VTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY29vcmRpbmF0b3JT
dGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSk7CiAKICAg
ICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgb3ZlcnJpZGVzLgogICAgIFN0cmlu
ZyBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC03
MSw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25z
dCBPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAgICAgdm9p
ZCByZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5h
bDsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUpIGZpbmFsOwotICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgZmluYWw7CisgICAgdm9pZCB0cmFj
a0lkZW50aWZpZXJDaGFuZ2VkKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgY29uc3QgY2hh
ciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmlu
ZGV4IGI1MjJhMDQwNTNlYzM2NTE1YjJlMWE1NWJjZTgxNTIxY2EzOTE5NGMuLmVhNDU5OTQwYjli
ZWY5YTQzYWM5ZDI4ZTNhM2Q5M2NlYzRlZDU4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMzQsNiArMzQsOCBAQCBt
ZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciBOb3RSZWZDb3VudGVkIHsK
ICAgICBQYXVzZVNlc3Npb24oKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCiAKICAgICBTZXRTZXNz
aW9uVHJhY2soU3RyaW5nIHRyYWNrSWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwor
CisgICAgQ29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2EwMjgwZjdhMWY4NTY0
YTEwNzhhNDdmYzk1ODcyMTA3NGZjZDIxZC4uMTRmMjM4YjNhN2VkZjkxYjg2YTQzZDU5ZDZjM2Q3
ZGJmZGE0YzU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTc1ODIsMTQgKzc1ODIsMTQgQEAgdm9pZCBXZWJQYWdlOjpjcmVhdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb24KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JNZWRp
YVNlc3Npb246Om1lZGlhU2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5hdmlnYXRvcigp
KTsKLSAgICBhdXRvIGNvb3JkaW5hdG9yID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNyZWF0ZSgqdGhpcywgaWRlbnRpZmllcik7Ci0gICAgbV9yZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvciA9IGNvb3JkaW5hdG9yLnB0cigpOwotICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKGNvb3JkaW5hdG9yLmdldCgpKTsK
LSAgICBzZXNzaW9uLnNldENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0
KCkpOwotCisgICAgbV9wYWdlLT5zZXRNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKCp0aGlzLCBpZGVudGlmaWVyKSk7CiAgICAgY29t
cGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6aW52YWxpZGF0ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yKCkKK3sKKyAgICBtX3BhZ2UtPmludmFsaWRhdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcigpOworfQogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmM5NjIxZTM3MmM1
YjQwNDJiOWVkYmNiY2YyZTMyMzY0M2FhZWEzMS4uMTg4MDVmMTdhNzRhYzdiNTQ4OTM4YzE4NTRh
YzM4MTU1NzIxMDczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTQzOCw2ICsxNDM4LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCiAgICAgdm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cihjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIGludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpOwogI2VuZGlmCiAKICAgICB2
b2lkIHNldExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoYm9vbCB3YXNBcHBCb3VuZCkgeyBtX2xh
c3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQgPSB3YXNBcHBCb3VuZDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMWIz
YTY4MWZjYjUxZjQxM2UyMWJhNDI1NDQyYjhjMGExZmQ1ZTBhYy4uNzMxODllNDJiZWVkNDllZWJj
MmQ5MDFiOTE2MTFmNjliZjlmMDMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02NDEsNiArNjQxLDcgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQogICAgIENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFN0cmluZyBpZGVudGlmaWVy
KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYworICAgIEludmFsaWRhdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcigpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQo=
</data>
<flag name="commit-queue"
          id="449664"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428673</attachid>
            <date>2021-05-14 15:31:19 -0700</date>
            <delta_ts>2021-05-17 00:50:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225822-20210514153118.patch</filename>
            <type>text/plain</type>
            <size>37932</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI3NTU1MTU0MGFlNmZm
NTcwZjJjNWQ1ZmM2MmMwMmVhYWQyM2ZkNS4uMjFmZDQ5ODJiMmNmY2UyNmM4MjdlNjNlYjM3ZTFh
YWQyYzc2Mzc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA1LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIHN1cnZpdmVzIHBhZ2UgcmVsb2FkL25hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBCZWNhdXNlIHRoZSBNZWRpYVNlc3Npb25Db29y
ZGluYXRvciBpcyBjcmVhdGVkIGFuZCBvd25lZCBieSBQYWdlLCBpdCB3aWxsIHN1cnZpdmUKKyAg
ICAgICAgYSByZWxvYWQgKGFzIFBhZ2UgaXMgbm90IHJlLWNyZWF0ZWQpLCBhbmQgdGhlIHNhbWUg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Igb2JqZWN0CisgICAgICAgIHdpbGwgYmUgYWRkZWQgdG8g
TWVkaWFTZXNzaW9uIHdoZW4gdGhlIG5ldyBOYXZpZ2F0b3IgaXMgY3JlYXRlZC4KKworICAgICAg
ICBSYXRoZXIgdGhhbiBoYXZlIFBhZ2Ugb3duIHRoZSBjb29yZGluYXRvciBpdHNlbGYsIGl0IGNh
biBpbnN0ZWFkIG93biB0aGUKKyAgICAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
IHVzZWQgdG8gY3JlYXRlIHRoZSBjb29yZGluYXRvci4gV2hlbiB0aGUgTWVkaWFTZXNzaW9uCisg
ICAgICAgIGlzIGNyZWF0ZWQsIGl0IHdpbGwgcXVlcnkgdGhlIFBhZ2UgdG8gYXNrIGZvciBhIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSB0bworICAgICAgICB1c2UgdG8gY3JlYXRlIHRo
ZSBjb29yZGluYXRvciwgZ3VhcmFudGVlaW5nIGEgbmV3IG9iamVjdCBpcyBjcmVhdGVkLgorCisg
ICAgICAgIFRoZSBzZXNzaW9uIGl0c2VsZiBzaG91bGQgYmUgbGVmdCB3aGVuIHRoZSBkb2N1bWVu
dCBpcyBwdXQgaW50byBCYWNrL0ZvcndhcmQKKyAgICAgICAgQ2FjaGUsIG9yIGNsb3NlZCB3aGVu
IHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIGVudGlyZWx5LgorCisgICAgICAgIEEgZmV3IGRyaXZl
LWJ5IGZpeGVzOgorCisgICAgICAgIFRoZSBkaXJlY3Rpb24gb2YgY29vcmRpbmF0b3JTdGF0ZUNo
YW5nZWQoKSBpcyBub3cgcmV2ZXJzZWQ7IGl0IGZsb3dzIGRvd24gZnJvbSB0aGUKKyAgICAgICAg
VUlQcm9jZXNzIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLiBUaGlzIGFsbG93cyB0aGUgY29vcmRpbmF0b3IKKyAgICAgICAgdG8gcmVhY3Qgd2hlbiBp
dCdzIHByaXZhdGUgaW1wbGVtZW50YXRpb24gY2hhbmdlcyBzdGF0ZS4KKworICAgICAgICBBZGQg
YSBuZXcgdXB3YXJkIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSB0cmFja0lkZW50aWZpZXIgaW4gTWVk
aWFNZXRhZGF0YSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpjcmVhdGVDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b246OnNldENvb3JkaW5hdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6am9pbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6bGVhdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjptZXRh
ZGF0YUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JDbGllbnQ6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRl
c3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9y
U3RhdGVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOgorCiAyMDIxLTAzLTIxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBSZW1vdGVBdWRpb1Nlc3Npb24gY2FsbHMgaW50byBB
VkF1ZGlvU2Vzc2lvbiB3aGVuIEdQVVAgaXMgZW5hYmxlZCwgY2F1c2luZyBoYW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBlMGM2M2RmZTM2ZmFiYzFjNmQxOWUxYjlhYmY4M2UwNGExZjlkZjRjLi4xNjRmMTIzMjc1
ZGYxYjQwYmIxYjc1NzJmYWZkZjcwYTBlNDE4NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBA
CisyMDIxLTA1LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAg
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHN1cnZpdmVzIHBhZ2UgcmVsb2FkL25hdmlnYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgdGhl
IGNsYXNzZXMgYWZmZWN0ZWQgYnkgdmlydHVhbCBmdW5jdGlvbiBjaGFuZ2VzIGluIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLiBVcGRhdGUKKyAgICAgICAgdGhlIGNyZWF0aW9uIG1lY2hhbmlzbSBp
bnNpZGUgV2ViUGFnZS9Qcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfY3JlYXRlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eTo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjp0cmFja0lkZW50aWZpZXJDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnZh
bGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMjEtMDUtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgW01lZGlhIGluIEdQVSBQcm9jZXNzXSBNb3ZlIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkgdG8gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCA4OWM2OWM4
ZDMxMThjMzg1NTM4OGExZGM1YWYwMThkMTNhNjAyODYzLi45NjBiMzFhZTZlODQwN2YzYTc5NmFk
MzdjZGQ5NjRhNGJhZmRhYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJNZWRpYU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
IApAQCAtMTM2LDYgKzEzNywxNSBAQCBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNo
YXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRpZmllcigp
OworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgYXV0byogZnJh
bWUgPSBuYXZpZ2F0b3IuZnJhbWUoKTsKKyAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lID8gZnJh
bWUtPnBhZ2UoKSA6IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JQcml2
YXRlID0gcGFnZS0+bWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIGNyZWF0
ZUNvb3JkaW5hdG9yKCpjb29yZGluYXRvclByaXZhdGUpOworICAgIH0KKyNlbmRpZgorCiAgICAg
c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAt
MTQ4LDYgKzE1OCwyNCBAQCBib29sIE1lZGlhU2Vzc2lvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0
aXZpdHkoKTsKIH0KIAordm9pZCBNZWRpYVNlc3Npb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbiByZWFzb24pCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisg
ICAgaWYgKG1fY29vcmRpbmF0b3IgJiYgcmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJh
Y2tGb3J3YXJkQ2FjaGUpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPmxlYXZlKCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
OjpzdG9wKCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBp
ZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+Y2xvc2UoKTsKKyNlbmRp
ZgorfQorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRh
dGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKQEAgLTE3
MSwxNyArMTk5LDE0IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUgc3RhdGUpCiAgICAgbm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVycygpOwog
fQogCi12b2lkIE1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IqIGNvb3JkaW5hdG9yKQordm9pZCBNZWRpYVNlc3Npb246OmNyZWF0ZUNvb3JkaW5hdG9y
KFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYgY29vcmRpbmF0b3JQcml2YXRl
KQogewotICAgIGlmIChtX2Nvb3JkaW5hdG9yID09IGNvb3JkaW5hdG9yKQotICAgICAgICByZXR1
cm47Ci0KICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgaWYgKG1fY29vcmRp
bmF0b3IpCiAgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbihudWxscHRyKTsK
IAotICAgIG1fY29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKKyAgICBtX2Nvb3JkaW5hdG9yID0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvb3JkaW5hdG9yUHJpdmF0
ZSkpOwogCiAgICAgaWYgKG1fY29vcmRpbmF0b3IpCiAgICAgICAgIG1fY29vcmRpbmF0b3ItPnNl
dE1lZGlhU2Vzc2lvbih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXggOTI0NWI2ODdlZTE2OGIxZjk5OTI5ZDQwNDM3
ZTEwNzQ3ODNhODc4My4uZjNhMTA2NzA5OTA2YmJkMzBmNDkxZjc4OTczOWFiNGM5MGE0ZDU0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MTWVkaWFF
bGVtZW50OwogY2xhc3MgTWVkaWFNZXRhZGF0YTsKIGNsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOwogY2xhc3MgTmF2aWdh
dG9yOwogCiBjbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Np
b24+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSB7CkBAIC03Nyw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlYWR5U3RhdGUo
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7CiAKICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvciog
Y29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLmdldCgpOyB9Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRv
ciopOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3JlYXRlQ29vcmRpbmF0b3IoUmVmPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX1BMQVlMSVNUKQpAQCAtMTMxLDYgKzEzMiw4IEBAIHByaXZhdGU6CiAgICAgLy8g
QWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJNZWRpYVNlc3Npb24iOyB9CiAgICAgYm9vbCB2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pIGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCiAgICAgUmVmUHRy
PEhUTUxNZWRpYUVsZW1lbnQ+IGFjdGl2ZU1lZGlhRWxlbWVudCgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggMGQ2ZGU0NDY3OTc5YTFmM2ZhMTRkMWQ4NjNkYTQw
MTk0YmM3N2NhMi4uOWM2MDI4ZDE0MGQ2ODNiYjEyNzU1MGZkMTQ0MmRhYmM0NDFkZjViYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtODksNyArODksNiBAQCB2b2lkIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpqb2luKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCiAgICAgICAgIH0KIAogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3N0YXRlID0gTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkOwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5t
X3ByaXZhdGVDb29yZGluYXRvci0+Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKTsKICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAg
ICAgfSk7CiB9CkBAIC0xMDAsMTMgKzk5LDIyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSgpCiAgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBsZWF2ZSB3aGVuIHN0YXRlIGlz
ICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9OwogCi0gICAgbV9zdGF0
ZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZDsKLSAgICBtX3ByaXZhdGVD
b29yZGluYXRvci0+bGVhdmUoKTsKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+Y29vcmRpbmF0
b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkKTsKKyAg
ICBjbG9zZSgpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KIAordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6Y2xvc2UoKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAg
bV9zdGF0ZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZDsKKyAgICBpZiAo
IW1fcHJpdmF0ZUNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ByaXZhdGVD
b29yZGluYXRvci0+bGVhdmUoKTsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvciA9IG51bGxwdHI7
Cit9CisKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvIGlkZW50aWZp
ZXIgPSBMT0dJREVOVElGSUVSOwpAQCAtMjQ4LDYgKzI1NiwxOCBAQCB2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZXRNZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQogICAg
ICAgICBtX3Nlc3Npb24tPmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIAordm9pZCBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6bWV0YWRhdGFDaGFuZ2VkKGNvbnN0IFJlZlB0cjxNZWRpYU1ldGFkYXRh
PiYgbWV0YWRhdGEpCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
aWYgKCFtX3ByaXZhdGVDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBp
ZGVudGlmaWVyID0gbWV0YWRhdGEgPyBtZXRhZGF0YS0+dHJhY2tJZGVudGlmaWVyKCkgOiBlbXB0
eVN0cmluZygpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSwgIiwgdHJh
Y2tJZGVudGlmaWVyOiIsIGlkZW50aWZpZXIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT50
cmFja0lkZW50aWZpZXJDaGFuZ2VkKGlkZW50aWZpZXIpOworI2VuZGlmCit9CisKIHZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFs
PE1lZGlhUG9zaXRpb25TdGF0ZT4mIHBvc2l0aW9uU3RhdGUpCiB7CiAgICAgaWYgKHBvc2l0aW9u
U3RhdGUpCkBAIC0yNTgsNiArMjc4LDkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblMKICAgICBp
ZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIGlmICghbV9wcml2YXRlQ29vcmRpbmF0b3IpCisgICAgICAgIHJl
dHVybjsKKwogICAgIGlmICghcG9zaXRpb25TdGF0ZSkgewogICAgICAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5nZWQoeyB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MjczLDYgKzI5Niw5IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3Rh
dGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxhCiAgICAgaWYgKG1fc3RhdGUg
IT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAoIW1fcHJpdmF0ZUNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKICAg
ICBtX3ByaXZhdGVDb29yZGluYXRvci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQocGxheWJhY2tTdGF0
ZSk7CiB9CiAKQEAgLTI4Myw2ICszMDksOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdAogICAg
IGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX3ByaXZhdGVDb29yZGluYXRvcikKKyAgICAgICAg
cmV0dXJuOworCiAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHJl
YWR5U3RhdGUpOwogfQogCkBAIC0yOTUsNiArMzI0LDE2IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBib29sIGlzUGF1c2VkID0gbV9zZXNz
aW9uLT5wbGF5YmFja1N0YXRlKCkgPT0gTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2Vk
OworCisgICAgaWYgKGlzUGF1c2VkICYmIGN1cnJlbnRQb3NpdGlvbkFwcHJveGltYXRlbHlFcXVh
bFRvKHRpbWUpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKCFpc1BhdXNlZCkKKyAgICAgICAgbV9zZXNzaW9uLT5j
YWxsQWN0aW9uSGFuZGxlcih7IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlIH0p
OworCiAgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcih7IC5hY3Rpb24gPSBNZWRpYVNl
c3Npb25BY3Rpb246OlNlZWt0bywgLnNlZWtUaW1lID0gdGltZSB9KTsKICAgICBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKIH0KQEAgLTMyNSw3ICszNjQsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9u
SGFuZGxlcih7IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXkgfSk7CisgICAgbV9z
ZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcih7IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246
OlBhdXNlIH0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCkBAIC0zNDIsNiAr
MzgxLDE0IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFNlc3Npb25UcmFjayhj
b25zdCBTdHJpbmcmIHRyYWNrLCBDb21wbGV0aW9uSGFuCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3Rh
dGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpCit7CisgICAgaWYg
KG1fc3RhdGUgPT0gc3RhdGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlID0gc3RhdGU7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3N0YXRlKTsKK30KKwogYm9vbCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6Y3VycmVudFBvc2l0aW9uQXBwcm94aW1hdGVseUVxdWFsVG8o
ZG91YmxlIHRpbWUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3Nlc3Npb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaAppbmRleCA5MmNkZGQ3OThjNWViYTU4NDkxYjA4NjQzZDhkYTE5NGU1ZTdiZGFk
Li5iZTUyMDAwMmE1YmIxYmY3ZWM2OWYwZGIzZDZlMjY1NmM3YmEzMTE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBqb2lu
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBsZWF2
ZSgpOworICAgIHZvaWQgY2xvc2UoKTsKIAogICAgIFN0cmluZyBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlQ29vcmRpbmF0b3ItPmlkZW50aWZpZXIoKTsgfQogICAgIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9
CkBAIC02Niw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJik7CiAKICAgICAv
LyBNZWRpYVNlc3Npb246Ok9ic2VydmVyCisgICAgdm9pZCBtZXRhZGF0YUNoYW5nZWQoY29uc3Qg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+JikgZmluYWw7CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hh
bmdlZChjb25zdCBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAgICAgdm9p
ZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsK
ICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFs
OwpAQCAtNzUsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxheVNlc3Npb24oT3B0aW9u
YWw8ZG91YmxlPiBhdFRpbWUsIE9wdGlvbmFsPGRvdWJsZT4gaG9zdFRpbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcGF1c2VTZXNzaW9uKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2Vzc2lvblRy
YWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OworICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZSkgZmluYWw7CiAKICAgICBib29sIGN1cnJlbnRQb3NpdGlvbkFwcHJv
eGltYXRlbHlFcXVhbFRvKGRvdWJsZSkgY29uc3Q7CiAKQEAgLTg1LDcgKzg4LDcgQEAgcHJpdmF0
ZToKIAogICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZSBtX3N0YXRlIHsgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZTo6V2FpdGluZyB9OwotICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+IG1f
cHJpdmF0ZUNvb3JkaW5hdG9yOworICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGU+IG1fcHJpdmF0ZUNvb3JkaW5hdG9yOwogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCmluZGV4IGZhOWZiOGM3ZjU4NDAwYWQ3YjEzYTIxZTZl
YzY2NmM1MzNjOGU1YzkuLmYzNmVlZDJjMjYxNGU5NmE3MTZjOGIyODUxMTJiNzI5NGQ0NWVhYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCkBAIC00OSw2ICs0OSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGxheVNlc3Npb24oT3B0aW9uYWw8ZG91Ymxl
PiBhdFRpbWUsIE9wdGlvbmFsPGRvdWJsZT4gaG9zdFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2VTZXNzaW9uKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vzc2lv
blRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgeyB9OwogfTsKIAogY2xhc3MgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlPiB7CkBAIC02OCw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRl
PiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcmKSA9IDA7CiAK
ICAgICB2b2lkIHNldExvZ2dlcihjb25zdCBXVEY6OkxvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JD
bGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDt9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCAyYzQ1YWI5YWU0ZjhhNDNkYjI5M2EwYTE2MmYwZjI4OTE4NTBkOGU2Li4yZjRmOTU2OWZmZWM3
NDc2YTNlNDkxODZhYzcyZGZjMTdjMjk3MDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE3Myw2
ICsxNzMsMTEgQEAKICNpbmNsdWRlICJEaXNwbGF5Vmlldy5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEhhc2hTZXQ8UGFnZSo+JiBhbGxQYWdlcygp
CkBAIC0zMzgwLDYgKzMzODUsMzUgQEAgdm9pZCBQYWdlOjpzZXRQYXltZW50Q29vcmRpbmF0b3Io
c3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4mJiBwYXltZW50Q28KIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCit2b2lkIFBhZ2U6OnNl
dE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGU+JiYgbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCit7CisgICAgbV9tZWRpYVNlc3Npb25Db29y
ZGluYXRvciA9IFdURk1vdmUobWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOworCisgICAgYXV0byog
d2luZG93ID0gbWFpbkZyYW1lKCkud2luZG93KCk7CisgICAgaWYgKGF1dG8qIG5hdmlnYXRvciA9
IHdpbmRvdyA/IHdpbmRvdy0+b3B0aW9uYWxOYXZpZ2F0b3IoKSA6IG51bGxwdHIpCisgICAgICAg
IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKCpuYXZpZ2F0b3IpLmNyZWF0ZUNv
b3JkaW5hdG9yKCptX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKTsKK30KKwordm9pZCBQYWdlOjpp
bnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQoreworICAgIG1fbWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IgPSBudWxscHRyOworICAgIGF1dG8qIHdpbmRvdyA9IG1haW5GcmFtZSgpLndp
bmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBu
YXZpZ2F0b3IgPSB3aW5kb3ctPm9wdGlvbmFsTmF2aWdhdG9yKCk7CisgICAgaWYgKCFuYXZpZ2F0
b3IpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNvb3JkaW5hdG9yID0gTmF2aWdhdG9y
TWVkaWFTZXNzaW9uOjptZWRpYVNlc3Npb24oKm5hdmlnYXRvcikuY29vcmRpbmF0b3IoKTsKKyAg
ICBpZiAoIWNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBjb29yZGluYXRvci0+
Y2xvc2UoKTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OmNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVs
KGNvbnN0IFN0cmluZyYgY2hhbm5lbE5hbWUsIFdURkxvZ0NoYW5uZWxTdGF0ZSBzdGF0ZSwgV1RG
TG9nTGV2ZWwgbGV2ZWwpCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IDgwYzYyMzliYWVmZGRkYjEyOGM4MjE2NTQwNTQ2OWQ2YjlkYmRjNTcuLmZjNWZmMjIz
Y2JjNjk2ODkxNGM0NGVlZDRiY2Y3MGQ0OWM5NzE1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMTYs
NiArMTE2LDcgQEAgY2xhc3MgTG93UG93ZXJNb2RlTm90aWZpZXI7CiBjbGFzcyBNZWRpYUNhblN0
YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFSZWNv
cmRlclByb3ZpZGVyOworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlOwogY2xh
c3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlQ29uc29sZUNsaWVudDsKIGNsYXNzIFBh
Z2VEZWJ1Z2dhYmxlOwpAQCAtNTIzLDYgKzUyNCwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgT3B0
aW9uYWw8QXBwbGljYXRpb25NYW5pZmVzdD4mIGFwcGxpY2F0aW9uTWFuaWZlc3QoKSBjb25zdCB7
IHJldHVybiBtX2FwcGxpY2F0aW9uTWFuaWZlc3Q7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlKiBtZWRpYVNlc3Npb25Db29yZGluYXRvcigpIHsgcmV0dXJuIG1fbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuZ2V0KCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7
CisjZW5kaWYKKwogICAgIC8vIE5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgUGFnZSBzdGFydHMgYW5k
IHN0b3BzIGJlaW5nIHByZXNlbnRlZCB2aWEgYSBuYXRpdmUgd2luZG93LgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6Rmxh
Zz4pOwogICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9hY3Rpdml0eVN0YXRlOyB9CkBAIC0xMTQwLDYgKzExNDcsMTAgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gbV9k
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCisKICAgICBWZWN0
b3I8VXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsKICAgICBW
ZWN0b3I8VXNlclN0eWxlU2hlZXQ+IG1fdXNlclN0eWxlU2hlZXRzUGVuZGluZ0luamVjdGlvbjsK
ICAgICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZz4+IG1fYWxsb3dlZE5ldHdvcmtIb3N0czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5MzFjMDMxYWIyMmVlMGU5N2U0OTYx
ZjhiMTMxYzUzYWExZWZhZGUyLi4wMzQ5ZTNjZjcwZmJkMjUwMmFjNTdjODAwMzFiYzkxZGQwZTg2
ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02MjQzLDcgKzYyNDMs
NyBAQCB2b2lkIEludGVybmFsczo6bG9hZEFydHdvcmtJbWFnZShTdHJpbmcmJiB1cmwsIEFydHdv
cmtJbWFnZVByb21pc2UmJiBwcm9taXNlKQogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKQogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8
U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCiB7Ci0gICAgaWYgKG1fbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IpCisgICAgaWYgKG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsK
QEAgLTYyNTYsOCArNjI1Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6cmVnaXN0
ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uCiAgICAgYXV0byYg
c2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5k
b21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOwogICAgIGF1dG8gbW9jayA9IE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKTsKICAgICBt
X21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA9IG1vY2sucHRyKCk7Ci0gICAgbV9tZWRpYVNl
c3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUobW9jay5n
ZXQoKSk7Ci0gICAgc2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmdldCgpKTsKKyAgICBzZXNzaW9uLmNyZWF0ZUNvb3JkaW5hdG9yKFdURk1vdmUobW9jaykp
OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDMzZDAzY2IxMjFlNDEyNTdjYjVhOTg2OGQ5NDJlZThiMDBiY2U3NTUuLjlkM2NjYzQ5ZTZjMGZi
YWU1ZWE3Zjc2NDJkYmMyOTUxNTQyNjdmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtMTE5Myw3ICsxMTkzLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0gICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogICAgIFJlZlB0cjxNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+IG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogI2VuZGlmCiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDY1NzMzMmY3ZTJjMDk5NmQyYmQzYmEwNTYyMmRiYmQ5NWRlOGRm
NTUuLmExMmQwZTgwZGNjMWJkMTRlZjQwMGU1MDU2ZDFiZjFhN2ViNjVlZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHAKQEAgLTEyMCwxMCArMTIwLDEwIEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlCiAgICAgbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBs
YXliYWNrU3RhdGVDaGFuZ2VkIik7CiB9CiAKLXZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
IHN0YXRlKQordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnRyYWNrSWRlbnRpZmll
ckNoYW5nZWQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQogewotICAgIEFMV0FZU19MT0dfSUZf
UE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOwotICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5l
ci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJjb29yZGluYXRvclN0YXRlQ2hh
bmdlZCIpOworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgaWRlbnRp
Zmllcik7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29u
dGV4dC5nZXQoKSwgInRyYWNrSWRlbnRpZmllckNoYW5nZWQiKTsKIH0KIAogV1RGTG9nQ2hhbm5l
bCYgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
CmluZGV4IDQ3ODA0ODc2YTMxOGYyOTBlMmVlZjI1MjRkNjE5OTU3ODk0NzI3ZmQuLmQzYjg2MzBi
YjQ4MDYyN2RjYzQ2NzEwNjNiY2VmN2NlMTAxOWRjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtNjAsNyArNjAs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9u
YWw8TWVkaWFQb3NpdGlvblN0YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKLSAgICB2b2lkIGNvb3Jk
aW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpIGZpbmFsOwor
ICAgIHZvaWQgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IiOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCA3MTY1YmM0ZmQ3Y2JlNDEyMjY3
NjY4MDUwNTM0ZWY4YzkyMWJmM2Y0Li5kZmU3MTFkNWQ2Y2FiZGQ5MmEzOGQ1YzBlOGUwMjE4ODE5
NTE4NzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMTU1LDcgKzE1NSw3IEBA
IHN0cnVjdCBfV0tNZWRpYVBvc2l0aW9uU3RhdGUgewogLSAodm9pZClwb3NpdGlvblN0YXRlQ2hh
bmdlZDooc3RydWN0IF9XS01lZGlhUG9zaXRpb25TdGF0ZSAqIF9OdWxsYWJsZSlzdGF0ZTsKIC0g
KHZvaWQpcmVhZHlTdGF0ZUNoYW5nZWQ6KF9XS01lZGlhU2Vzc2lvblJlYWR5U3RhdGUpc3RhdGU7
CiAtICh2b2lkKXBsYXliYWNrU3RhdGVDaGFuZ2VkOihfV0tNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlKXN0YXRlOwotLSAodm9pZCljb29yZGluYXRvclN0YXRlQ2hhbmdlZDooX1dLTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZSlzdGF0ZTsKKy0gKHZvaWQpdHJhY2tJZGVudGlmaWVyQ2hhbmdl
ZDooTlNTdHJpbmcgKil0cmFja0lkZW50aWZpZXI7CiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxM
X0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbQppbmRleCA5Y2I0YTkxYmNlY2E2Yjg3MjE4MmQzZWU1MDM2ZTk1ZTYyYjE4
NGJiLi4zNzRjZjE5NWY2YjQyN2NjMGE5Njg2ZDdmMTk1YzUxMzJiZmE1ZjI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bQpAQCAtNTU3LDEzICs1NTcsOSBAQCAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcgogICAgICAgICAg
ICAgW21fY2xpZW50Q29vcmRpbmF0b3IgcGxheWJhY2tTdGF0ZUNoYW5nZWQ6c3RhdGljX2Nhc3Q8
X1dLTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZT4oc3RhdGUpXTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZSBzdGF0ZSkgZmluYWwKKyAgICAgICAgdm9pZCB0cmFja0lkZW50aWZpZXJD
aGFuZ2VkKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikgZmluYWwKICAgICAgICAgewotICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yU3RhdGU6OldhaXRpbmcpID09IHN0YXRpY19jYXN0PHNpemVfdD4oV0tN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlV2FpdGluZyksICJXS01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGVXYWl0aW5nIGRvZXMgbm90IG1hdGNoIFdlYktpdCB2YWx1ZSIpOwotICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihXS01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGVKb2luZWQpLCAiV0tNZWRpYVNlc3Npb25Db29yZGlu
YXRvclN0YXRlSm9pbmVkIGRvZXMgbm90IG1hdGNoIFdlYktpdCB2YWx1ZSIpOwotICAgICAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZCkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihXS01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGVDbG9zZWQpLCAiV0tNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlQ2xvc2VkIGRvZXMgbm90IG1hdGNoIFdlYktpdCB2YWx1ZSIpOwotCi0gICAgICAgICAg
ICBbbV9jbGllbnRDb29yZGluYXRvciBjb29yZGluYXRvclN0YXRlQ2hhbmdlZDpzdGF0aWNfY2Fz
dDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlPihzdGF0ZSldOworICAgICAgICAgICAg
W21fY2xpZW50Q29vcmRpbmF0b3IgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZDppZGVudGlmaWVyXTsK
ICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJp
dmF0ZS5oCmluZGV4IGE4MTUyMGE2MjM4YWY2NmNmNGYwY2E1OTdkMjVlZmQ4ZWRlMjZiYzAuLmUw
MmE0ZjU4OWY0YzY1ZGJhMTI2YjE0ODBiMDI1MTVmY2EyMDY2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eVByaXZhdGUuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhUG9zaXRpb25TdGF0ZT4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFu
Z2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRy
YWNrSWRlbnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIHNldENsaWVudChXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xp
ZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5LmNwcAppbmRleCBlMTkxMjcwZjk3MmYyMzk3NDJmZDdjMTg2MDM4Zjk2
YzdkYzFkODI4Li5iMmEyY2VjNzZkNGRjMGZlZjAwNDVlMDhiOTg4NGZkZWY3YTM2YjJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtMTQ4LDEwICsxNDgsMTAg
QEAgdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpyZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXQKICAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cmVh
ZHlTdGF0ZUNoYW5nZWQoc3RhdGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHk6OnRyYWNrSWRlbnRpZmllckNoYW5nZWQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0gICAgbV9wcml2YXRlQ29vcmRp
bmF0b3ItPmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKHN0YXRlKTsKKyAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+dHJhY2tJZGVudGlmaWVyQ2hhbmdlZChpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpzZWVrU2Vzc2lvblRvVGltZShkb3Vi
bGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKQEAgLTE3
NCw2ICsxNzQsMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpz
ZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkLAogICAgIG1fd2ViUGFnZVByb3h5
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OlNldFNlc3Npb25UcmFjayB7IHRyYWNrSWQgfSwgY2FsbGJhY2spOwogfQogCit2b2lkIFJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2Vk
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpCit7CisgICAgbV93
ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OkNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSk7Cit9CisKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHk6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5oCmluZGV4IDYxYjYxMzY4Y2UwZjkxN2NlZGQzMmYyNGYyYjI4YWNjY2ZmYmFjZTYuLjEw
NTRiYTg2YTcwZjY5YzViNDAzYmU3ZjYxMzAyYmYxYWIxYzlmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5LmgKQEAgLTczLDEzICs3MywxNCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3Np
dGlvblN0YXRlPiYpOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKTsKLSAgICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpOworICAgIHZvaWQg
dHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yQ2xpZW50CiAgICAgdm9pZCBzZWVrU2Vzc2lvblRvVGltZShkb3VibGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcGxheVNl
c3Npb24oT3B0aW9uYWw8ZG91YmxlPiBhdFRpbWUsIE9wdGlvbmFsPGRvdWJsZT4gaG9zdFRpbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcGF1c2VT
ZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQg
c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIGZpbmFsOworICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgZmluYWw7CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBjb25zdCBXVEY6OkxvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDg3ZDU2NzUxY2ZiNmFiOTFhMTdiYjFmMjUxY2FmMmRmOTc4N2M2NjAu
LmQ1Njk4MTVmYWJmNWU1Y2MwZmI0OTNjZTliOTdmZmE1MDY3MjA3YjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQsNyArNDQs
NyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogCiAgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpOwogCi0gICAgQ29vcmRpbmF0b3JT
dGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGUgc3RhdGUpOworICAgIFRyYWNrSWRlbnRpZmllckNoYW5nZWQoU3RyaW5nIHRyYWNrSWRl
bnRpZmllcikgZmluYWwKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA3ZDZjZjQzYTAwMTJjMjhiOGRjMjkwZTc5OWU5YThjNGFhOTIwNWFk
Li42YjFjZTVhNWFmMDFlMDJiNzNjMWU0MjE5NGJiNjNiZWQ2NzlmNTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNTgwLDggKzEwNTgwLDYgQEAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXR3b3JrRXh0
ZW5zaW9uc1NhbmRib3hFeHRlbnMKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5hdG9y
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIEFTU0VSVCghbV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KTsKLQogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IocHJpdmF0ZUNvb3JkaW5hdG9yLT5pZGVudGlmaWVyKCkpLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdURk1vdmUocHJpdmF0ZUNvb3Jk
aW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKIAogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFzdWNj
ZXNzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4
IGRkMGE5YjM4NzljYzYyNGQxYzhmNGY0NjRmY2RiNGMyMzRhY2ViMDguLmJlZmQzNTY3OTFhNjM3
M2MyMTE4ZGE3NDNhNWQzMDlmYTAwMTRiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0xNzUsMTAgKzE3NSwxMCBAQCB2b2lkIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNl
c3Npb25QbAogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5OjpQbGF5YmFja1N0YXRlQ2hhbmdlZCB7IHN0YXRlIH0pOwogfQogCi12b2lk
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKQordm9pZCBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6dHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIpCiB7Ci0gICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElG
SUVSLCBzdGF0ZSk7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSk7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBpZGVudGlmaWVyKTsKKyAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eTo6VHJhY2tJZGVudGlmaWVyQ2hhbmdlZCB7IGlkZW50aWZpZXIgfSk7CiB9CiAKIHZvaWQgUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAt
MjE3LDYgKzIxNywxMyBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRT
ZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZQogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElG
SUVSLCBzdGF0ZSk7CisgICAgaWYgKGF1dG8gY29vcmRpbmF0b3JDbGllbnQgPSBjbGllbnQoKSkK
KyAgICAgICAgY29vcmRpbmF0b3JDbGllbnQtPmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKHN0YXRl
KTsKK30KKwogV1RGTG9nQ2hhbm5lbCYgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Omxv
Z0NoYW5uZWwoKSBjb25zdAogewogICAgIHJldHVybiBMb2dNZWRpYTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCA1Njk2MzhiOGM4N2U0YjY1MWU0OTg5Yjg3
YjBmNTVlYjA5MjVmZDliLi41YTdjM2EzODZmZGIzOThhNzU3ZTVjZmNmZDg4NTY2ZjEzMDMzNDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC01OCw2ICs1
OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF5U2Vzc2lvbihPcHRpb25hbDxkb3VibGU+LCBP
cHRpb25hbDxkb3VibGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHBhdXNlU2Vzc2lvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpOwogCiAgICAgLy8gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlIG92ZXJyaWRlcy4KICAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzEsNyArNzIsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFQb3NpdGlvblN0YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0
YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKLSAg
ICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGUpIGZpbmFsOworICAgIHZvaWQgdHJhY2tJZGVudGlmaWVyQ2hhbmdlZChjb25z
dCBTdHJpbmcmKSBmaW5hbDsKIAogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0
IHsgcmV0dXJuICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KICAgICBXVEZMb2dD
aGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCBiNTIyYTA0MDUzZWMzNjUxNWIy
ZTFhNTViY2U4MTUyMWNhMzkxOTRjLi5lYTQ1OTk0MGI5YmVmOWE0M2FjOWQyOGUzYTNkOTNjZWM0
ZWQ1ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9u
L1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4KQEAgLTM0LDYgKzM0LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CiAgICAgUGF1c2VTZXNzaW9uKCkgLT4g
KGJvb2wgcmVzdWx0KSBBc3luYwogCiAgICAgU2V0U2Vzc2lvblRyYWNrKFN0cmluZyB0cmFja0lk
ZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKworICAgIENvb3JkaW5hdG9yU3RhdGVD
aGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
IHN0YXRlKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDdhMDI4MGY3YTFmODU2NGExMDc4YTQ3ZmM5NTg3MjEwNzRmY2Qy
MWQuLjE0ZjIzOGIzYTdlZGY5MWI4NmE0M2Q1OWQ2YzNkN2RiZmRhNGM1OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03NTgyLDE0ICs3NTgy
LDE0IEBAIHZvaWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVkaWFTZXNzaW9uOjptZWRpYVNlc3Npb24o
ZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKSk7Ci0gICAgYXV0byBjb29yZGluYXRv
ciA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZp
ZXIpOwotICAgIG1fcmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBjb29yZGluYXRvci5w
dHIoKTsKLSAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmNyZWF0ZShjb29yZGluYXRvci5nZXQoKSk7Ci0gICAgc2Vzc2lvbi5zZXRDb29yZGlu
YXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsKLQorICAgIG1fcGFnZS0+c2V0
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNy
ZWF0ZSgqdGhpcywgaWRlbnRpZmllcikpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwog
fQorCit2b2lkIFdlYlBhZ2U6OmludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpCit7
CisgICAgbV9wYWdlLT5pbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKK30KICNl
bmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IGZjOTYyMWUzNzJjNWI0MDQyYjllZGJjYmNmMmUzMjM2NDNh
YWVhMzEuLjE4ODA1ZjE3YTc0YWM3YjU0ODkzOGMxODU0YWMzODE1NTcyMTA3M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0MzgsNiArMTQzOCw3
IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQogICAg
IHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29uc3QgU3RyaW5nJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBpbnZhbGlkYXRlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbldh
c0FwcEJvdW5kKGJvb2wgd2FzQXBwQm91bmQpIHsgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5k
ID0gd2FzQXBwQm91bmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDFiM2E2ODFmY2I1MWY0MTNlMjFiYTQyNTQ0
MmI4YzBhMWZkNWUwYWMuLjczMTg5ZTQyYmVlZDQ5ZWViYzJkOTAxYjkxNjExZjY5YmY5ZjAzMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgpAQCAtNjQxLDYgKzY0MSw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0Nv
bW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKICAgICBDcmVhdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcihTdHJpbmcgaWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2VzcykgQXN5
bmMKKyAgICBJbnZhbGlkYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
</data>

          </attachment>
      

    </bug>

</bugzilla>