<?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>227670</bug_id>
          
          <creation_ts>2021-07-04 00:15:52 -0700</creation_ts>
          <short_desc>ActiveScratchBufferScope should take the buffer as argument</short_desc>
          <delta_ts>2021-07-04 16:55:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227013</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774705</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-04 00:15:52 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=227013 created ActiveScratchBufferScope.
It is used by operations that can cause the GC to run, to mark as roots the contents of the scratch buffer that is live during that time (if any).
The bug is that it simply asks the VM for a scratch buffer of the right size, but this will always return the last scratch buffer, and not necessarily the one that the operations is actually using.

A fairly simple fix is to pass it directly the scratch buffer, since the operation normally can get it easily enough.
In most cases the operation has access to the m_buffer field of the ScratchBuffer, but getting a pointer to the entire structure from that is fairly simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774706</commentid>
    <comment_count>1</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-04 00:16:42 -0700</bug_when>
    <thetext>rdar://80011612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774707</commentid>
    <comment_count>2</comment_count>
      <attachid>432859</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-04 00:23:09 -0700</bug_when>
    <thetext>Created attachment 432859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774708</commentid>
    <comment_count>3</comment_count>
      <attachid>432859</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-07-04 00:44:27 -0700</bug_when>
    <thetext>Comment on attachment 432859
Patch

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

r=me with suggested improvement, and if EWS bots are happy.

&gt; Source/JavaScriptCore/dfg/DFGThunks.cpp:94
&gt; -    // Set up one argument.
&gt; +    // Set up two arguments.
&gt;      jit.move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
&gt; +    jit.move(bufferGPR, GPRInfo::argumentGPR1);

Let&apos;s just replace this with:
    jit.setupArguments&lt;decltype(operationCompileOSRExit)&gt;(GPRInfo::callFrameRegister, bufferGPR);

This has the benefit of ensuring that if bufferGPR happens to be GPRInfo::argumentGPR0, that it will do the right thing to shuffle the value out before overwriting it.  And you can also remove the comment now.

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:1916
&gt; -    
&gt; +

Please undo since there are no other relevant changes in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774718</commentid>
    <comment_count>4</comment_count>
      <attachid>432863</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-04 07:47:37 -0700</bug_when>
    <thetext>Created attachment 432863
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774731</commentid>
    <comment_count>5</comment_count>
      <attachid>432865</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-04 11:46:22 -0700</bug_when>
    <thetext>Created attachment 432865
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774739</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-04 16:55:55 -0700</bug_when>
    <thetext>Committed r279560 (239391@main): &lt;https://commits.webkit.org/239391@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432865.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432859</attachid>
            <date>2021-07-04 00:23:09 -0700</date>
            <delta_ts>2021-07-04 07:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch227670</filename>
            <type>text/plain</type>
            <size>11792</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJlNDY2MDM4NzVlZS4uM2U2MmJjNDdmNTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wNy0wNCAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIEFjdGl2ZVNjcmF0
Y2hCdWZmZXJTY29wZSBzaG91bGQgdGFrZSB0aGUgYnVmZmVyIGFzIGFyZ3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NzAKKyAgICAgICAg
cmRhcjovLzgwMDExNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzAxMyBj
cmVhdGVkIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZS4KKyAgICAgICAgSXQgaXMgdXNlZCBieSBv
cGVyYXRpb25zIHRoYXQgY2FuIGNhdXNlIHRoZSBHQyB0byBydW4sIHRvIG1hcmsgYXMgcm9vdHMg
dGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciB0aGF0IGlzIGxpdmUgZHVyaW5nIHRo
YXQgdGltZSAoaWYgYW55KS4KKyAgICAgICAgVGhlIGJ1ZyBpcyB0aGF0IGl0IHNpbXBseSBhc2tz
IHRoZSBWTSBmb3IgYSBzY3JhdGNoIGJ1ZmZlciBvZiB0aGUgcmlnaHQgc2l6ZSwgYnV0IHRoaXMg
d2lsbCBhbHdheXMgcmV0dXJuIHRoZSBsYXN0IHNjcmF0Y2ggYnVmZmVyLCBhbmQgbm90IG5lY2Vz
c2FyaWx5IHRoZSBvbmUgdGhhdCB0aGUgb3BlcmF0aW9uIGlzIGFjdHVhbGx5IHVzaW5nLgorCisg
ICAgICAgIEEgZmFpcmx5IHNpbXBsZSBmaXggaXMgdG8gcGFzcyBpdCBkaXJlY3RseSB0aGUgc2Ny
YXRjaCBidWZmZXIsIHNpbmNlIHRoZSBvcGVyYXRpb24gbm9ybWFsbHkgY2FuIGdldCBpdCBlYXNp
bHkgZW5vdWdoLgorICAgICAgICBJbiBtb3N0IGNhc2VzIHRoZSBvcGVyYXRpb24gaGFzIGFjY2Vz
cyB0byB0aGUgbV9idWZmZXIgZmllbGQgb2YgdGhlIFNjcmF0Y2hCdWZmZXIsIGJ1dCBnZXR0aW5n
IGEgcG9pbnRlciB0byB0aGUgZW50aXJlIHN0cnVjdHVyZSBmcm9tIHRoYXQgaXMgZmFpcmx5IHNp
bXBsZSAoSSBhZGRlZCBTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSgpIHRvIGRvIHNvKS4KKworICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Lmg6CisgICAgICAgICog
ZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KToKKyAgICAgICAg
KiBkZmcvREZHVGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZSk6CisgICAgICAgICog
cnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSk6Cisg
ICAgICAgICogcnVudGltZS9WTUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWN0aXZlU2NyYXRj
aEJ1ZmZlclNjb3BlOjpBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorICAgICAgICAoSlNDOjpB
Y3RpdmVTY3JhdGNoQnVmZmVyU2NvcGU6On5BY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorCiAy
MDIxLTA2LTI5ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgImZ1bmN0aW9uIGRlY2xhcmVkIOKAmHN0YXRpY+KAmSBidXQgbmV2ZXIgZGVm
aW5lZCIgYnVpbGQgd2FybmluZ3Mgc2luY2UgcjI3ODk3MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXQuY3BwCmluZGV4IGI4OWEwZjg4MjFkZC4uNGVhMDQ1MThlZmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTE0MSwxMSArMTQxLDEx
IEBAIHZvaWQgT1NSRXhpdDo6ZW1pdFJlc3RvcmVBcmd1bWVudHMoQ0NhbGxIZWxwZXJzJiBqaXQs
IFZNJiB2bSwgY29uc3QgT3BlcmFuZHM8VmFsCiAgICAgfQogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQs
IHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdm9pZCogYnVmZmVyVG9QcmVzZXJ2ZSkpCiB7
CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3Bl
IGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMg
KyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNj
b3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZm
ZXJUb1ByZXNlcnZlKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1i
ZXJPZlJlZ2lzdGVycyk7CiAKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7
CiAgICAgICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVkIGNvZGUuIFNvLCB0aGVy
ZSdzIG5vIGxvbmdlciBhbnkgb3B0aW1pemVkCkBAIC05MzAsNyArOTMwLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIHZv
aWQsIChDYWxsRnJhbWUKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
QWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BS
SW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7Cisg
ICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3Jh
dGNoQnVmZmVyOjpmcm9tRGF0YShzY3JhdGNoKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMg
KyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CiAKICAgICBTcGVjdWxhdGlvbkZhaWx1cmVE
ZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IHN0YXRpY19jYXN0PFNwZWN1bGF0aW9uRmFpbHVyZURlYnVn
SW5mbyo+KGRlYnVnSW5mb1Jhdyk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBkZWJ1Z0lu
Zm8tPmNvZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKaW5kZXgg
MWI2MzM2YTJkMmZhLi4xYTljYzA4ZDY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RydWN0IE9TUkV4aXRTdGF0ZSA6IFJlZkNv
dW50ZWQ8T1NSRXhpdFN0YXRlPiB7CiAgICAgUHJvZmlsZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhp
dCB7IG51bGxwdHIgfTsKIH07CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGlsZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2b2lkLCAoQ2FsbEZyYW1lKiwgdm9pZCop
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0
aW9uRmFpbHVyZSwgdm9pZCwgKENhbGxGcmFtZSosIHZvaWQqLCB2b2lkKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9TUkV4aXRTaWRlU3RhdGUsIHZv
aWQsIChWTSosIGNvbnN0IE9TUkV4aXRCYXNlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAKQEAgLTE0
OSw3ICsxNDksNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFs
aXplT1NSRXhpdFNpZGVTdGF0ZSwgdm9pZCwgKFZNKiwgY29ucwogc3RydWN0IE9TUkV4aXQgOiBw
dWJsaWMgT1NSRXhpdEJhc2UgewogICAgIE9TUkV4aXQoRXhpdEtpbmQsIEpTVmFsdWVTb3VyY2Us
IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUsIFNwZWN1bGF0aXZlSklUKiwgdW5zaWduZWQg
c3RyZWFtSW5kZXgsIHVuc2lnbmVkIHJlY292ZXJ5SW5kZXggPSBVSU5UX01BWCk7CiAKLSAgICBm
cmllbmQgdm9pZCBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgb3BlcmF0aW9uQ29tcGlsZU9TUkV4
aXQoQ2FsbEZyYW1lKik7CisgICAgZnJpZW5kIHZvaWQgSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
IG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSosIHZvaWQqKTsKIAogICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1fcGF0Y2hhYmxlSnVtcExvY2F0aW9uOwog
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxPU1JFeGl0UHRyVGFnPiBtX2NvZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA0MjI4NzNkZjc4YzUu
LmNhNjA0YWQ1NjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCkBAIC0xMDM5LDkgKzEwMzksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVy
U2NvcGUgYWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKHZtLCBlbGVtZW50Q291bnQpOworICAgIEFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2NyYXRjaEJ1
ZmZlcjo6ZnJvbURhdGEoYnVmZmVyKSwgZWxlbWVudENvdW50KTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKKwogICAgIC8vIFdlIGFzc3VtZSB0aGF0IG11bHRp
cGxlIEpTQXJyYXk6OnB1c2ggY2FsbHMgd2l0aCBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250
aWd1b3VzIGRvIG5vdCBjYXVzZSBKUyB0cmFwcy4KICAgICAvLyBJZiBpdCBjYW4gY2F1c2UgYW55
IEpTIGludGVyYWN0aW9ucywgd2UgY2FuIGNhbGwgdGhlIGNhbGxlciBKUyBmdW5jdGlvbiBvZiB0
aGlzIGZ1bmN0aW9uIGFuZCBvdmVyd3JpdGUgdGhlCiAgICAgLy8gY29udGVudCBvZiBTY3JhdGNo
QnVmZmVyLiBJZiB0aGUgSW5kZXhpbmdUeXBlIGlzIG5vdyBBcnJheVdpdGhJbnQzMi9BcnJheVdp
dGhDb250aWd1b3VzLCB3ZSBjYW4gZW5zdXJlCkBAIC0xNzM0LDcgKzE3MzUsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAg
IEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUodm0sIHNp
emUpOworICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2Nv
cGUoU2NyYXRjaEJ1ZmZlcjo6ZnJvbURhdGEoYnVmZmVyKSwgc2l6ZSk7CiAKICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PGNoYXIqPihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3Ry
dWN0dXJlLCBzdGF0aWNfY2FzdDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpOwogfQpAQCAtMzA0
Miw3ICszMDQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5
V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUgYWN0aXZlU2Ny
YXRjaEJ1ZmZlclNjb3BlKHZtLCBudW1JdGVtcyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNj
b3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZm
ZXIpLCBudW1JdGVtcyk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgRW5jb2RlZEpTVmFsdWUqIHZhbHVlcyA9IHN0YXRpY19jYXN0PEVuY29kZWRKU1Zh
bHVlKj4oYnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggNmFmMzYwMjYzZDFjLi4yZGEzYzQzY2M4ZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC05MjM4LDEz
ICs5MjM4LDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheShOb2RlKiBu
b2RlKQogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCBy
ZXN1bHQodGhpcyk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAg
IGNhbGxPcGVyYXRpb24oCi0gICAgICAgIG9wZXJhdGlvbk5ld0FycmF5LCByZXN1bHQuZ3ByKCks
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIGdsb2JhbE9iamVjdCksIG1faml0
LmdyYXBoKCkucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24obm9kZS0+aW5kZXhpbmdUeXBlKCkpKSwKKyAg
ICAgICAgb3BlcmF0aW9uTmV3QXJyYXksIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgZ2xvYmFsT2JqZWN0KSwgbV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxs
b2NhdGlvbihub2RlLT5pbmRleGluZ1R5cGUoKSkpLAogICAgICAgICBzdGF0aWNfY2FzdDx2b2lk
Kj4oYnVmZmVyKSwgc2l6ZV90KG5vZGUtPm51bUNoaWxkcmVuKCkpKTsKICAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOwogCi0gICAgY2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIFVzZUNo
aWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CisgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUs
IFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdBcnJheVdpdGhTcHJlYWQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVGh1bmtzLmNwcAppbmRleCBjZGQ3MzA5YWI2ZDIuLjdjNmU5NTdmNDNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcApAQCAtODksOCArODksOSBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG9zckV4aXRHZW5lcmF0aW9uVGh1
bmtHZW5lcmF0b3IoVk0mIHZtKQogICAgIH0KICAgICBzdG9yZVNwb29sZXIuZmluYWxpemVGUFIo
KTsKIAotICAgIC8vIFNldCB1cCBvbmUgYXJndW1lbnQuCisgICAgLy8gU2V0IHVwIHR3byBhcmd1
bWVudHMuCiAgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgaml0Lm1vdmUoYnVmZmVyR1BSLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CiAKICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDU2OWMwMjQ0NmMzMy4uNTJlZmI0MDBlMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xOTEzLDcgKzE5MTMsNyBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0OjpmaXJlV2F0Y2hwb2ludEFuZE1ha2VBbGxBcnJheVN0cnVjdHVy
ZXNTbG93UHV0KFZNJiB2bSkKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYg
dm0pCiB7CiAgICAgQVNTRVJUKCZ2bSA9PSAmdGhpcy0+dm0oKSk7Ci0gICAgCisKICAgICBpZiAo
aXNIYXZpbmdBQmFkVGltZSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCmluZGV4IDg3MjIzM2IzN2EzNy4uYzljNTNlMjNjZDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTI2MCw2ICsyNjAsMTEgQEAgc3RydWN0IFNjcmF0Y2hCdWZm
ZXIgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIHN0YXRpYyBTY3JhdGNo
QnVmZmVyKiBmcm9tRGF0YSh2b2lkKiBidWZmZXIpCisgICAgeworICAgICAgICByZXR1cm4gYml0
d2lzZV9jYXN0PFNjcmF0Y2hCdWZmZXIqPihzdGF0aWNfY2FzdDxjaGFyKj4oYnVmZmVyKSAtIE9C
SkVDVF9PRkZTRVRPRihTY3JhdGNoQnVmZmVyLCBtX2J1ZmZlcikpOworICAgIH0KKwogICAgIHN0
YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGJ1ZmZlclNpemUpIHsg
cmV0dXJuIHNpemVvZihTY3JhdGNoQnVmZmVyKSArIGJ1ZmZlclNpemU7IH0KICAgICB2b2lkIHNl
dEFjdGl2ZUxlbmd0aChzaXplX3QgYWN0aXZlTGVuZ3RoKSB7IHUubV9hY3RpdmVMZW5ndGggPSBh
Y3RpdmVMZW5ndGg7IH0KICAgICBzaXplX3QgYWN0aXZlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
dS5tX2FjdGl2ZUxlbmd0aDsgfTsKQEAgLTI4Miw3ICsyODcsNyBAQCBzdHJ1Y3QgU2NyYXRjaEJ1
ZmZlciB7CiAKIGNsYXNzIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSB7CiBwdWJsaWM6Ci0gICAg
QWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKFZNJiwgc2l6ZV90IGFjdGl2ZVNjcmF0Y2hCdWZmZXJT
aXplSW5KU1ZhbHVlcyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKFNjcmF0Y2hCdWZm
ZXIqLCBzaXplX3QgYWN0aXZlU2NyYXRjaEJ1ZmZlclNpemVJbkpTVmFsdWVzKTsKICAgICB+QWN0
aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNSW5saW5lcy5oCmluZGV4IGI5NDhiMmQzNmI3Ny4uM2QzYjAxMGI1NWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaApAQCAtMzIsMTkgKzMy
LDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUgQWN0aXZlU2NyYXRjaEJ1ZmZlclNj
b3BlOjpBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoVk0mIHZtLCBzaXplX3QgYWN0aXZlU2NyYXRj
aEJ1ZmZlclNpemVJbkpTVmFsdWVzKQotICAgIDogbV9zY3JhdGNoQnVmZmVyKHZtLnNjcmF0Y2hC
dWZmZXJGb3JTaXplKGFjdGl2ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcyAqIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpKQoraW5saW5lIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZTo6QWN0aXZl
U2NyYXRjaEJ1ZmZlclNjb3BlKFNjcmF0Y2hCdWZmZXIqIGJ1ZmZlciwgc2l6ZV90IGFjdGl2ZVNj
cmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcykKKyAgICA6IG1fc2NyYXRjaEJ1ZmZlcihidWZmZXIp
CiB7CiAgICAgLy8gVGVsbCBHQyBtYXJrIHBoYXNlIGhvdyBtdWNoIG9mIHRoZSBzY3JhdGNoIGJ1
ZmZlciBpcyBhY3RpdmUgZHVyaW5nIHRoZSBjYWxsIG9wZXJhdGlvbiB0aGlzIHNjb3BlIGlzIHVz
ZWQgaW4uCiAgICAgaWYgKG1fc2NyYXRjaEJ1ZmZlcikKLSAgICAgICAgbV9zY3JhdGNoQnVmZmVy
LT51Lm1fYWN0aXZlTGVuZ3RoID0gYWN0aXZlU2NyYXRjaEJ1ZmZlclNpemVJbkpTVmFsdWVzICog
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKKyAgICAgICAgbV9zY3JhdGNoQnVmZmVyLT5zZXRBY3Rp
dmVMZW5ndGgoYWN0aXZlU2NyYXRjaEJ1ZmZlclNpemVJbkpTVmFsdWVzICogc2l6ZW9mKEVuY29k
ZWRKU1ZhbHVlKSk7CiB9CiAKIGlubGluZSBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGU6On5BY3Rp
dmVTY3JhdGNoQnVmZmVyU2NvcGUoKQogewogICAgIC8vIFRlbGwgdGhlIEdDIHRoYXQgd2UncmUg
bm90IHVzaW5nIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbnltb3JlLgogICAgIGlmIChtX3NjcmF0Y2hC
dWZmZXIpCi0gICAgICAgIG1fc2NyYXRjaEJ1ZmZlci0+dS5tX2FjdGl2ZUxlbmd0aCA9IDA7Cisg
ICAgICAgIG1fc2NyYXRjaEJ1ZmZlci0+c2V0QWN0aXZlTGVuZ3RoKDApOwogfQogCiBib29sIFZN
OjplbnN1cmVTdGFja0NhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQo=
</data>
<flag name="review"
          id="454925"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432863</attachid>
            <date>2021-07-04 07:47:37 -0700</date>
            <delta_ts>2021-07-04 11:46:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch227670</filename>
            <type>text/plain</type>
            <size>11310</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJlNDY2MDM4NzVlZS4uODc2Y2EzYjQxZTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wNy0wNCAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIEFjdGl2ZVNjcmF0
Y2hCdWZmZXJTY29wZSBzaG91bGQgdGFrZSB0aGUgYnVmZmVyIGFzIGFyZ3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NzAKKyAgICAgICAg
cmRhcjovLzgwMDExNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzAxMyBjcmVhdGVk
IEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZS4KKyAgICAgICAgSXQgaXMgdXNlZCBieSBvcGVyYXRp
b25zIHRoYXQgY2FuIGNhdXNlIHRoZSBHQyB0byBydW4sIHRvIG1hcmsgYXMgcm9vdHMgdGhlIGNv
bnRlbnRzIG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciB0aGF0IGlzIGxpdmUgZHVyaW5nIHRoYXQgdGlt
ZSAoaWYgYW55KS4KKyAgICAgICAgVGhlIGJ1ZyBpcyB0aGF0IGl0IHNpbXBseSBhc2tzIHRoZSBW
TSBmb3IgYSBzY3JhdGNoIGJ1ZmZlciBvZiB0aGUgcmlnaHQgc2l6ZSwgYnV0IHRoaXMgd2lsbCBh
bHdheXMgcmV0dXJuIHRoZSBsYXN0IHNjcmF0Y2ggYnVmZmVyLCBhbmQgbm90IG5lY2Vzc2FyaWx5
IHRoZSBvbmUgdGhhdCB0aGUgb3BlcmF0aW9uIGlzIGFjdHVhbGx5IHVzaW5nLgorCisgICAgICAg
IEEgZmFpcmx5IHNpbXBsZSBmaXggaXMgdG8gcGFzcyBpdCBkaXJlY3RseSB0aGUgc2NyYXRjaCBi
dWZmZXIsIHNpbmNlIHRoZSBvcGVyYXRpb24gbm9ybWFsbHkgY2FuIGdldCBpdCBlYXNpbHkgZW5v
dWdoLgorICAgICAgICBJbiBtb3N0IGNhc2VzIHRoZSBvcGVyYXRpb24gaGFzIGFjY2VzcyB0byB0
aGUgbV9idWZmZXIgZmllbGQgb2YgdGhlIFNjcmF0Y2hCdWZmZXIsIGJ1dCBnZXR0aW5nIGEgcG9p
bnRlciB0byB0aGUgZW50aXJlIHN0cnVjdHVyZSBmcm9tIHRoYXQgaXMgZmFpcmx5IHNpbXBsZSAo
SSBhZGRlZCBTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSgpIHRvIGRvIHNvKS4KKworICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04pOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Lmg6CisgICAgICAgICogZGZnL0RG
R09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpTQ19ERUZJTkVfSklUX09QRVJB
VElPTik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KToKKyAgICAgICAgKiBkZmcv
REZHVGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JFeGl0R2VuZXJhdGlvblRodW5r
R2VuZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZSk6CisgICAgICAgICogcnVudGlt
ZS9WTS5oOgorICAgICAgICAoSlNDOjpTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9WTUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWN0aXZlU2NyYXRjaEJ1ZmZl
clNjb3BlOjpBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorICAgICAgICAoSlNDOjpBY3RpdmVT
Y3JhdGNoQnVmZmVyU2NvcGU6On5BY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorCiAyMDIxLTA2
LTI5ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgImZ1bmN0aW9uIGRlY2xhcmVkIOKAmHN0YXRpY+KAmSBidXQgbmV2ZXIgZGVmaW5lZCIg
YnVpbGQgd2FybmluZ3Mgc2luY2UgcjI3ODk3MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCmluZGV4IGI4OWEwZjg4MjFkZC4uNGVhMDQ1MThlZmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTE0MSwxMSArMTQxLDExIEBAIHZv
aWQgT1NSRXhpdDo6ZW1pdFJlc3RvcmVBcmd1bWVudHMoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2
bSwgY29uc3QgT3BlcmFuZHM8VmFsCiAgICAgfQogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQsIHZvaWQs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdm9pZCogYnVmZmVyVG9QcmVzZXJ2ZSkpCiB7CiAgICAg
Vk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZmZXJUb1By
ZXNlcnZlKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyk7CiAKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAg
ICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVkIGNvZGUuIFNvLCB0aGVyZSdzIG5v
IGxvbmdlciBhbnkgb3B0aW1pemVkCkBAIC05MzAsNyArOTMwLDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIHZvaWQsIChD
YWxsRnJhbWUKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgQWN0aXZl
U2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgQWN0
aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVm
ZmVyOjpmcm9tRGF0YShzY3JhdGNoKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CiAKICAgICBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0lu
Zm8qIGRlYnVnSW5mbyA9IHN0YXRpY19jYXN0PFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyo+
KGRlYnVnSW5mb1Jhdyk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBkZWJ1Z0luZm8tPmNv
ZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKaW5kZXggMWI2MzM2
YTJkMmZhLi4xYTljYzA4ZDY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RydWN0IE9TUkV4aXRTdGF0ZSA6IFJlZkNvdW50ZWQ8
T1NSRXhpdFN0YXRlPiB7CiAgICAgUHJvZmlsZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhpdCB7IG51
bGxwdHIgfTsKIH07CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGls
ZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2b2lkLCAoQ2FsbEZyYW1lKiwgdm9pZCopKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFp
bHVyZSwgdm9pZCwgKENhbGxGcmFtZSosIHZvaWQqLCB2b2lkKikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9TUkV4aXRTaWRlU3RhdGUsIHZvaWQsIChW
TSosIGNvbnN0IE9TUkV4aXRCYXNlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAKQEAgLTE0OSw3ICsx
NDksNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplT1NS
RXhpdFNpZGVTdGF0ZSwgdm9pZCwgKFZNKiwgY29ucwogc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMg
T1NSRXhpdEJhc2UgewogICAgIE9TUkV4aXQoRXhpdEtpbmQsIEpTVmFsdWVTb3VyY2UsIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUsIFNwZWN1bGF0aXZlSklUKiwgdW5zaWduZWQgc3RyZWFt
SW5kZXgsIHVuc2lnbmVkIHJlY292ZXJ5SW5kZXggPSBVSU5UX01BWCk7CiAKLSAgICBmcmllbmQg
dm9pZCBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgb3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQoQ2Fs
bEZyYW1lKik7CisgICAgZnJpZW5kIHZvaWQgSklUX09QRVJBVElPTl9BVFRSSUJVVEVTIG9wZXJh
dGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSosIHZvaWQqKTsKIAogICAgIENvZGVMb2NhdGlv
bkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1fcGF0Y2hhYmxlSnVtcExvY2F0aW9uOwogICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxPU1JFeGl0UHRyVGFnPiBtX2NvZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA0MjI4NzNkZjc4YzUuLmNhNjA0
YWQ1NjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CkBAIC0xMDM5LDkgKzEwMzksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUg
YWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKHZtLCBlbGVtZW50Q291bnQpOworICAgIEFjdGl2ZVNj
cmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2NyYXRjaEJ1ZmZlcjo6
ZnJvbURhdGEoYnVmZmVyKSwgZWxlbWVudENvdW50KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKKwogICAgIC8vIFdlIGFzc3VtZSB0aGF0IG11bHRpcGxlIEpT
QXJyYXk6OnB1c2ggY2FsbHMgd2l0aCBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250aWd1b3Vz
IGRvIG5vdCBjYXVzZSBKUyB0cmFwcy4KICAgICAvLyBJZiBpdCBjYW4gY2F1c2UgYW55IEpTIGlu
dGVyYWN0aW9ucywgd2UgY2FuIGNhbGwgdGhlIGNhbGxlciBKUyBmdW5jdGlvbiBvZiB0aGlzIGZ1
bmN0aW9uIGFuZCBvdmVyd3JpdGUgdGhlCiAgICAgLy8gY29udGVudCBvZiBTY3JhdGNoQnVmZmVy
LiBJZiB0aGUgSW5kZXhpbmdUeXBlIGlzIG5vdyBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250
aWd1b3VzLCB3ZSBjYW4gZW5zdXJlCkBAIC0xNzM0LDcgKzE3MzUsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIEFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUodm0sIHNpemUpOwor
ICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2Ny
YXRjaEJ1ZmZlcjo6ZnJvbURhdGEoYnVmZmVyKSwgc2l6ZSk7CiAKICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGNoYXIqPihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3RydWN0dXJl
LCBzdGF0aWNfY2FzdDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpOwogfQpAQCAtMzA0Miw3ICsz
MDQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUgYWN0aXZlU2NyYXRjaEJ1
ZmZlclNjb3BlKHZtLCBudW1JdGVtcyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZmZXIpLCBu
dW1JdGVtcyk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgRW5jb2RlZEpTVmFsdWUqIHZhbHVlcyA9IHN0YXRpY19jYXN0PEVuY29kZWRKU1ZhbHVlKj4o
YnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggNmFmMzYwMjYzZDFjLi4yZGEzYzQzY2M4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC05MjM4LDEzICs5MjM4
LDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheShOb2RlKiBub2RlKQog
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAgIGNhbGxP
cGVyYXRpb24oCi0gICAgICAgIG9wZXJhdGlvbk5ld0FycmF5LCByZXN1bHQuZ3ByKCksIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIGdsb2JhbE9iamVjdCksIG1faml0LmdyYXBo
KCkucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24obm9kZS0+aW5kZXhpbmdUeXBlKCkpKSwKKyAgICAgICAg
b3BlcmF0aW9uTmV3QXJyYXksIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIo
bV9ncmFwaCwgZ2xvYmFsT2JqZWN0KSwgbV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlv
bihub2RlLT5pbmRleGluZ1R5cGUoKSkpLAogICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oYnVm
ZmVyKSwgc2l6ZV90KG5vZGUtPm51bUNoaWxkcmVuKCkpKTsKICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOwogCi0gICAgY2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIFVzZUNoaWxkcmVu
Q2FsbGVkRXhwbGljaXRseSk7CisgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIFVzZUNo
aWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheVdpdGhTcHJlYWQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGh1bmtzLmNwcAppbmRleCBjZGQ3MzA5YWI2ZDIuLjdhNzUyYzc1MDkyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcApAQCAtODksOCArODksNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5l
cmF0b3IoVk0mIHZtKQogICAgIH0KICAgICBzdG9yZVNwb29sZXIuZmluYWxpemVGUFIoKTsKIAot
ICAgIC8vIFNldCB1cCBvbmUgYXJndW1lbnQuCi0gICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgaml0LnNldHVwQXJndW1l
bnRzPGRlY2x0eXBlKG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0KT4oR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGJ1ZmZlckdQUik7CiAgICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsK
IAogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGppdC5jYWxsKE9wZXJh
dGlvblB0clRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA4NzIyMzNiMzdh
MzcuLmM5YzUzZTIzY2QxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0yNjAs
NiArMjYwLDExIEBAIHN0cnVjdCBTY3JhdGNoQnVmZmVyIHsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKKyAgICBzdGF0aWMgU2NyYXRjaEJ1ZmZlciogZnJvbURhdGEodm9pZCogYnVm
ZmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxTY3JhdGNoQnVmZmVyKj4o
c3RhdGljX2Nhc3Q8Y2hhcio+KGJ1ZmZlcikgLSBPQkpFQ1RfT0ZGU0VUT0YoU2NyYXRjaEJ1ZmZl
ciwgbV9idWZmZXIpKTsKKyAgICB9CisKICAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXpl
KENoZWNrZWQ8c2l6ZV90PiBidWZmZXJTaXplKSB7IHJldHVybiBzaXplb2YoU2NyYXRjaEJ1ZmZl
cikgKyBidWZmZXJTaXplOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVMZW5ndGgoc2l6ZV90IGFjdGl2
ZUxlbmd0aCkgeyB1Lm1fYWN0aXZlTGVuZ3RoID0gYWN0aXZlTGVuZ3RoOyB9CiAgICAgc2l6ZV90
IGFjdGl2ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHUubV9hY3RpdmVMZW5ndGg7IH07CkBAIC0y
ODIsNyArMjg3LDcgQEAgc3RydWN0IFNjcmF0Y2hCdWZmZXIgewogCiBjbGFzcyBBY3RpdmVTY3Jh
dGNoQnVmZmVyU2NvcGUgewogcHVibGljOgotICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShW
TSYsIHNpemVfdCBhY3RpdmVTY3JhdGNoQnVmZmVyU2l6ZUluSlNWYWx1ZXMpOworICAgIEFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyKiwgc2l6ZV90IGFjdGl2ZVNjcmF0Y2hC
dWZmZXJTaXplSW5KU1ZhbHVlcyk7CiAgICAgfkFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSgpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1J
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaAppbmRl
eCBiOTQ4YjJkMzZiNzcuLjNkM2IwMTBiNTVmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1JbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1JbmxpbmVzLmgKQEAgLTMyLDE5ICszMiwxOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotaW5saW5lIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZTo6QWN0aXZlU2NyYXRjaEJ1ZmZlclNj
b3BlKFZNJiB2bSwgc2l6ZV90IGFjdGl2ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcykKLSAg
ICA6IG1fc2NyYXRjaEJ1ZmZlcih2bS5zY3JhdGNoQnVmZmVyRm9yU2l6ZShhY3RpdmVTY3JhdGNo
QnVmZmVyU2l6ZUluSlNWYWx1ZXMgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSkKK2lubGluZSBB
Y3RpdmVTY3JhdGNoQnVmZmVyU2NvcGU6OkFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNo
QnVmZmVyKiBidWZmZXIsIHNpemVfdCBhY3RpdmVTY3JhdGNoQnVmZmVyU2l6ZUluSlNWYWx1ZXMp
CisgICAgOiBtX3NjcmF0Y2hCdWZmZXIoYnVmZmVyKQogewogICAgIC8vIFRlbGwgR0MgbWFyayBw
aGFzZSBob3cgbXVjaCBvZiB0aGUgc2NyYXRjaCBidWZmZXIgaXMgYWN0aXZlIGR1cmluZyB0aGUg
Y2FsbCBvcGVyYXRpb24gdGhpcyBzY29wZSBpcyB1c2VkIGluLgogICAgIGlmIChtX3NjcmF0Y2hC
dWZmZXIpCi0gICAgICAgIG1fc2NyYXRjaEJ1ZmZlci0+dS5tX2FjdGl2ZUxlbmd0aCA9IGFjdGl2
ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcyAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7Cisg
ICAgICAgIG1fc2NyYXRjaEJ1ZmZlci0+c2V0QWN0aXZlTGVuZ3RoKGFjdGl2ZVNjcmF0Y2hCdWZm
ZXJTaXplSW5KU1ZhbHVlcyAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpOwogfQogCiBpbmxpbmUg
QWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlOjp+QWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKCkKIHsK
ICAgICAvLyBUZWxsIHRoZSBHQyB0aGF0IHdlJ3JlIG5vdCB1c2luZyB0aGUgc2NyYXRjaCBidWZm
ZXIgYW55bW9yZS4KICAgICBpZiAobV9zY3JhdGNoQnVmZmVyKQotICAgICAgICBtX3NjcmF0Y2hC
dWZmZXItPnUubV9hY3RpdmVMZW5ndGggPSAwOworICAgICAgICBtX3NjcmF0Y2hCdWZmZXItPnNl
dEFjdGl2ZUxlbmd0aCgwKTsKIH0KIAogYm9vbCBWTTo6ZW5zdXJlU3RhY2tDYXBhY2l0eUZvcihS
ZWdpc3RlciogbmV3VG9wT2ZTdGFjaykK
</data>
<flag name="commit-queue"
          id="454930"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432865</attachid>
            <date>2021-07-04 11:46:22 -0700</date>
            <delta_ts>2021-07-04 16:55:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch227670</filename>
            <type>text/plain</type>
            <size>11394</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJlNDY2MDM4NzVlZS4uODc2Y2EzYjQxZTM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wNy0wNCAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIEFjdGl2ZVNjcmF0
Y2hCdWZmZXJTY29wZSBzaG91bGQgdGFrZSB0aGUgYnVmZmVyIGFzIGFyZ3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NzAKKyAgICAgICAg
cmRhcjovLzgwMDExNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzAxMyBjcmVhdGVk
IEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZS4KKyAgICAgICAgSXQgaXMgdXNlZCBieSBvcGVyYXRp
b25zIHRoYXQgY2FuIGNhdXNlIHRoZSBHQyB0byBydW4sIHRvIG1hcmsgYXMgcm9vdHMgdGhlIGNv
bnRlbnRzIG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciB0aGF0IGlzIGxpdmUgZHVyaW5nIHRoYXQgdGlt
ZSAoaWYgYW55KS4KKyAgICAgICAgVGhlIGJ1ZyBpcyB0aGF0IGl0IHNpbXBseSBhc2tzIHRoZSBW
TSBmb3IgYSBzY3JhdGNoIGJ1ZmZlciBvZiB0aGUgcmlnaHQgc2l6ZSwgYnV0IHRoaXMgd2lsbCBh
bHdheXMgcmV0dXJuIHRoZSBsYXN0IHNjcmF0Y2ggYnVmZmVyLCBhbmQgbm90IG5lY2Vzc2FyaWx5
IHRoZSBvbmUgdGhhdCB0aGUgb3BlcmF0aW9uIGlzIGFjdHVhbGx5IHVzaW5nLgorCisgICAgICAg
IEEgZmFpcmx5IHNpbXBsZSBmaXggaXMgdG8gcGFzcyBpdCBkaXJlY3RseSB0aGUgc2NyYXRjaCBi
dWZmZXIsIHNpbmNlIHRoZSBvcGVyYXRpb24gbm9ybWFsbHkgY2FuIGdldCBpdCBlYXNpbHkgZW5v
dWdoLgorICAgICAgICBJbiBtb3N0IGNhc2VzIHRoZSBvcGVyYXRpb24gaGFzIGFjY2VzcyB0byB0
aGUgbV9idWZmZXIgZmllbGQgb2YgdGhlIFNjcmF0Y2hCdWZmZXIsIGJ1dCBnZXR0aW5nIGEgcG9p
bnRlciB0byB0aGUgZW50aXJlIHN0cnVjdHVyZSBmcm9tIHRoYXQgaXMgZmFpcmx5IHNpbXBsZSAo
SSBhZGRlZCBTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSgpIHRvIGRvIHNvKS4KKworICAgICAgICAq
IGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04pOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Lmg6CisgICAgICAgICogZGZnL0RG
R09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpTQ19ERUZJTkVfSklUX09QRVJB
VElPTik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5KToKKyAgICAgICAgKiBkZmcv
REZHVGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JFeGl0R2VuZXJhdGlvblRodW5r
R2VuZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZSk6CisgICAgICAgICogcnVudGlt
ZS9WTS5oOgorICAgICAgICAoSlNDOjpTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9WTUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QWN0aXZlU2NyYXRjaEJ1ZmZl
clNjb3BlOjpBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorICAgICAgICAoSlNDOjpBY3RpdmVT
Y3JhdGNoQnVmZmVyU2NvcGU6On5BY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUpOgorCiAyMDIxLTA2
LTI5ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgImZ1bmN0aW9uIGRlY2xhcmVkIOKAmHN0YXRpY+KAmSBidXQgbmV2ZXIgZGVmaW5lZCIg
YnVpbGQgd2FybmluZ3Mgc2luY2UgcjI3ODk3MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXQuY3BwCmluZGV4IGI4OWEwZjg4MjFkZC4uNGVhMDQ1MThlZmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTE0MSwxMSArMTQxLDExIEBAIHZv
aWQgT1NSRXhpdDo6ZW1pdFJlc3RvcmVBcmd1bWVudHMoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2
bSwgY29uc3QgT3BlcmFuZHM8VmFsCiAgICAgfQogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQsIHZvaWQs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdm9pZCogYnVmZmVyVG9QcmVzZXJ2ZSkpCiB7CiAgICAg
Vk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZmZXJUb1By
ZXNlcnZlKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVycyk7CiAKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAg
ICAgIC8vIFdlJ3JlIGFib3V0IHRvIGV4aXQgb3B0aW1pemVkIGNvZGUuIFNvLCB0aGVyZSdzIG5v
IGxvbmdlciBhbnkgb3B0aW1pemVkCkBAIC05MzAsNyArOTMwLDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUsIHZvaWQsIChD
YWxsRnJhbWUKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgQWN0aXZl
U2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSh2bSwgR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CisgICAgQWN0
aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVm
ZmVyOjpmcm9tRGF0YShzY3JhdGNoKSwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyk7CiAKICAgICBTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0lu
Zm8qIGRlYnVnSW5mbyA9IHN0YXRpY19jYXN0PFNwZWN1bGF0aW9uRmFpbHVyZURlYnVnSW5mbyo+
KGRlYnVnSW5mb1Jhdyk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBkZWJ1Z0luZm8tPmNv
ZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmgKaW5kZXggMWI2MzM2
YTJkMmZhLi4xYTljYzA4ZDY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RydWN0IE9TUkV4aXRTdGF0ZSA6IFJlZkNvdW50ZWQ8
T1NSRXhpdFN0YXRlPiB7CiAgICAgUHJvZmlsZXI6Ok9TUkV4aXQqIHByb2ZpbGVyRXhpdCB7IG51
bGxwdHIgfTsKIH07CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGls
ZU9TUkV4aXQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBpbGVPU1JFeGl0LCB2b2lkLCAoQ2FsbEZyYW1lKiwgdm9pZCopKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWdQcmludFNwZWN1bGF0aW9uRmFp
bHVyZSwgdm9pZCwgKENhbGxGcmFtZSosIHZvaWQqLCB2b2lkKikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9TUkV4aXRTaWRlU3RhdGUsIHZvaWQsIChW
TSosIGNvbnN0IE9TUkV4aXRCYXNlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAKQEAgLTE0OSw3ICsx
NDksNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplT1NS
RXhpdFNpZGVTdGF0ZSwgdm9pZCwgKFZNKiwgY29ucwogc3RydWN0IE9TUkV4aXQgOiBwdWJsaWMg
T1NSRXhpdEJhc2UgewogICAgIE9TUkV4aXQoRXhpdEtpbmQsIEpTVmFsdWVTb3VyY2UsIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUsIFNwZWN1bGF0aXZlSklUKiwgdW5zaWduZWQgc3RyZWFt
SW5kZXgsIHVuc2lnbmVkIHJlY292ZXJ5SW5kZXggPSBVSU5UX01BWCk7CiAKLSAgICBmcmllbmQg
dm9pZCBKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgb3BlcmF0aW9uQ29tcGlsZU9TUkV4aXQoQ2Fs
bEZyYW1lKik7CisgICAgZnJpZW5kIHZvaWQgSklUX09QRVJBVElPTl9BVFRSSUJVVEVTIG9wZXJh
dGlvbkNvbXBpbGVPU1JFeGl0KENhbGxGcmFtZSosIHZvaWQqKTsKIAogICAgIENvZGVMb2NhdGlv
bkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IG1fcGF0Y2hhYmxlSnVtcExvY2F0aW9uOwogICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxPU1JFeGl0UHRyVGFnPiBtX2NvZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA0MjI4NzNkZjc4YzUuLmNhNjA0
YWQ1NjY2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CkBAIC0xMDM5LDkgKzEwMzksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUg
YWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKHZtLCBlbGVtZW50Q291bnQpOworICAgIEFjdGl2ZVNj
cmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2NyYXRjaEJ1ZmZlcjo6
ZnJvbURhdGEoYnVmZmVyKSwgZWxlbWVudENvdW50KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKKwogICAgIC8vIFdlIGFzc3VtZSB0aGF0IG11bHRpcGxlIEpT
QXJyYXk6OnB1c2ggY2FsbHMgd2l0aCBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250aWd1b3Vz
IGRvIG5vdCBjYXVzZSBKUyB0cmFwcy4KICAgICAvLyBJZiBpdCBjYW4gY2F1c2UgYW55IEpTIGlu
dGVyYWN0aW9ucywgd2UgY2FuIGNhbGwgdGhlIGNhbGxlciBKUyBmdW5jdGlvbiBvZiB0aGlzIGZ1
bmN0aW9uIGFuZCBvdmVyd3JpdGUgdGhlCiAgICAgLy8gY29udGVudCBvZiBTY3JhdGNoQnVmZmVy
LiBJZiB0aGUgSW5kZXhpbmdUeXBlIGlzIG5vdyBBcnJheVdpdGhJbnQzMi9BcnJheVdpdGhDb250
aWd1b3VzLCB3ZSBjYW4gZW5zdXJlCkBAIC0xNzM0LDcgKzE3MzUsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIEFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUodm0sIHNpemUpOwor
ICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBhY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUoU2Ny
YXRjaEJ1ZmZlcjo6ZnJvbURhdGEoYnVmZmVyKSwgc2l6ZSk7CiAKICAgICByZXR1cm4gYml0d2lz
ZV9jYXN0PGNoYXIqPihjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIGFycmF5U3RydWN0dXJl
LCBzdGF0aWNfY2FzdDxKU1ZhbHVlKj4oYnVmZmVyKSwgc2l6ZSkpOwogfQpAQCAtMzA0Miw3ICsz
MDQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKLSAgICBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUgYWN0aXZlU2NyYXRjaEJ1
ZmZlclNjb3BlKHZtLCBudW1JdGVtcyk7CisgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyOjpmcm9tRGF0YShidWZmZXIpLCBu
dW1JdGVtcyk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgRW5jb2RlZEpTVmFsdWUqIHZhbHVlcyA9IHN0YXRpY19jYXN0PEVuY29kZWRKU1ZhbHVlKj4o
YnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggNmFmMzYwMjYzZDFjLi4yZGEzYzQzY2M4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC05MjM4LDEzICs5MjM4
LDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheShOb2RlKiBub2RlKQog
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAKICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQo
dGhpcyk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAgIGNhbGxP
cGVyYXRpb24oCi0gICAgICAgIG9wZXJhdGlvbk5ld0FycmF5LCByZXN1bHQuZ3ByKCksIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIGdsb2JhbE9iamVjdCksIG1faml0LmdyYXBo
KCkucmVnaXN0ZXJTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24obm9kZS0+aW5kZXhpbmdUeXBlKCkpKSwKKyAgICAgICAg
b3BlcmF0aW9uTmV3QXJyYXksIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIo
bV9ncmFwaCwgZ2xvYmFsT2JqZWN0KSwgbV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlv
bihub2RlLT5pbmRleGluZ1R5cGUoKSkpLAogICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oYnVm
ZmVyKSwgc2l6ZV90KG5vZGUtPm51bUNoaWxkcmVuKCkpKTsKICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOwogCi0gICAgY2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIFVzZUNoaWxkcmVu
Q2FsbGVkRXhwbGljaXRseSk7CisgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIFVzZUNo
aWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheVdpdGhTcHJlYWQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGh1bmtzLmNwcAppbmRleCBjZGQ3MzA5YWI2ZDIuLjBjNGQxOTVkOTE0OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcApAQCAtODksOCArODksOCBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5l
cmF0b3IoVk0mIHZtKQogICAgIH0KICAgICBzdG9yZVNwb29sZXIuZmluYWxpemVGUFIoKTsKIAot
ICAgIC8vIFNldCB1cCBvbmUgYXJndW1lbnQuCi0gICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgLy8gVGhpcyB3aWxsIGlt
cGxpY2l0bHkgcGFzcyBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciBhcyB0aGUgZmlyc3QgYXJn
dW1lbnQgYmFzZWQgb24gdGhlIG9wZXJhdGlvbiB0eXBlLgorICAgIGppdC5zZXR1cEFyZ3VtZW50
czxkZWNsdHlwZShvcGVyYXRpb25Db21waWxlT1NSRXhpdCk+KGJ1ZmZlckdQUik7CiAgICAgaml0
LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1
bmN0aW9uQ2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uaAppbmRleCA4NzIyMzNiMzdhMzcuLmM5YzUzZTIzY2QxNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCkBAIC0yNjAsNiArMjYwLDExIEBAIHN0cnVjdCBTY3JhdGNoQnVm
ZmVyIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBzdGF0aWMgU2NyYXRj
aEJ1ZmZlciogZnJvbURhdGEodm9pZCogYnVmZmVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxTY3JhdGNoQnVmZmVyKj4oc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1ZmZlcikgLSBP
QkpFQ1RfT0ZGU0VUT0YoU2NyYXRjaEJ1ZmZlciwgbV9idWZmZXIpKTsKKyAgICB9CisKICAgICBz
dGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKENoZWNrZWQ8c2l6ZV90PiBidWZmZXJTaXplKSB7
IHJldHVybiBzaXplb2YoU2NyYXRjaEJ1ZmZlcikgKyBidWZmZXJTaXplOyB9CiAgICAgdm9pZCBz
ZXRBY3RpdmVMZW5ndGgoc2l6ZV90IGFjdGl2ZUxlbmd0aCkgeyB1Lm1fYWN0aXZlTGVuZ3RoID0g
YWN0aXZlTGVuZ3RoOyB9CiAgICAgc2l6ZV90IGFjdGl2ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IHUubV9hY3RpdmVMZW5ndGg7IH07CkBAIC0yODIsNyArMjg3LDcgQEAgc3RydWN0IFNjcmF0Y2hC
dWZmZXIgewogCiBjbGFzcyBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGUgewogcHVibGljOgotICAg
IEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShWTSYsIHNpemVfdCBhY3RpdmVTY3JhdGNoQnVmZmVy
U2l6ZUluSlNWYWx1ZXMpOworICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVm
ZmVyKiwgc2l6ZV90IGFjdGl2ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcyk7CiAgICAgfkFj
dGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1JbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTUlubGluZXMuaAppbmRleCBiOTQ4YjJkMzZiNzcuLjNkM2IwMTBiNTVmYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1JbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1JbmxpbmVzLmgKQEAgLTMyLDE5ICsz
MiwxOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIEFjdGl2ZVNjcmF0Y2hCdWZmZXJT
Y29wZTo6QWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKFZNJiB2bSwgc2l6ZV90IGFjdGl2ZVNjcmF0
Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcykKLSAgICA6IG1fc2NyYXRjaEJ1ZmZlcih2bS5zY3JhdGNo
QnVmZmVyRm9yU2l6ZShhY3RpdmVTY3JhdGNoQnVmZmVyU2l6ZUluSlNWYWx1ZXMgKiBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpKSkKK2lubGluZSBBY3RpdmVTY3JhdGNoQnVmZmVyU2NvcGU6OkFjdGl2
ZVNjcmF0Y2hCdWZmZXJTY29wZShTY3JhdGNoQnVmZmVyKiBidWZmZXIsIHNpemVfdCBhY3RpdmVT
Y3JhdGNoQnVmZmVyU2l6ZUluSlNWYWx1ZXMpCisgICAgOiBtX3NjcmF0Y2hCdWZmZXIoYnVmZmVy
KQogewogICAgIC8vIFRlbGwgR0MgbWFyayBwaGFzZSBob3cgbXVjaCBvZiB0aGUgc2NyYXRjaCBi
dWZmZXIgaXMgYWN0aXZlIGR1cmluZyB0aGUgY2FsbCBvcGVyYXRpb24gdGhpcyBzY29wZSBpcyB1
c2VkIGluLgogICAgIGlmIChtX3NjcmF0Y2hCdWZmZXIpCi0gICAgICAgIG1fc2NyYXRjaEJ1ZmZl
ci0+dS5tX2FjdGl2ZUxlbmd0aCA9IGFjdGl2ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcyAq
IHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgIG1fc2NyYXRjaEJ1ZmZlci0+c2V0QWN0
aXZlTGVuZ3RoKGFjdGl2ZVNjcmF0Y2hCdWZmZXJTaXplSW5KU1ZhbHVlcyAqIHNpemVvZihFbmNv
ZGVkSlNWYWx1ZSkpOwogfQogCiBpbmxpbmUgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlOjp+QWN0
aXZlU2NyYXRjaEJ1ZmZlclNjb3BlKCkKIHsKICAgICAvLyBUZWxsIHRoZSBHQyB0aGF0IHdlJ3Jl
IG5vdCB1c2luZyB0aGUgc2NyYXRjaCBidWZmZXIgYW55bW9yZS4KICAgICBpZiAobV9zY3JhdGNo
QnVmZmVyKQotICAgICAgICBtX3NjcmF0Y2hCdWZmZXItPnUubV9hY3RpdmVMZW5ndGggPSAwOwor
ICAgICAgICBtX3NjcmF0Y2hCdWZmZXItPnNldEFjdGl2ZUxlbmd0aCgwKTsKIH0KIAogYm9vbCBW
TTo6ZW5zdXJlU3RhY2tDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykK
</data>

          </attachment>
      

    </bug>

</bugzilla>