<?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>230915</bug_id>
          
          <creation_ts>2021-09-28 14:36:36 -0700</creation_ts>
          <short_desc>DoesGCCheck does not use enough bits for nodeIndex</short_desc>
          <delta_ts>2021-09-29 09:56:15 -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>
          
          
          <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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798040</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 14:36:36 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798041</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 14:37:06 -0700</bug_when>
    <thetext>&lt;rdar://83297515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798074</commentid>
    <comment_count>2</comment_count>
      <attachid>439533</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 15:34:06 -0700</bug_when>
    <thetext>Created attachment 439533
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798076</commentid>
    <comment_count>3</comment_count>
      <attachid>439534</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 15:38:03 -0700</bug_when>
    <thetext>Created attachment 439534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798096</commentid>
    <comment_count>4</comment_count>
      <attachid>439534</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-09-28 16:09:59 -0700</bug_when>
    <thetext>Comment on attachment 439534
Patch

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

r=me with fix.

&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:79
&gt; +    unsigned nodeOp() { return u.other &amp; nodeOpMask; }

This should be:
    unsigned nodeOp() { return (u.other &gt;&gt; nodeOpShift) &amp; nodeOpMask; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798120</commentid>
    <comment_count>5</comment_count>
      <attachid>439534</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 17:18:48 -0700</bug_when>
    <thetext>Comment on attachment 439534
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGDoesGCCheck.h:79
&gt;&gt; +    unsigned nodeOp() { return u.other &amp; nodeOpMask; }
&gt; 
&gt; This should be:
&gt;     unsigned nodeOp() { return (u.other &gt;&gt; nodeOpShift) &amp; nodeOpMask; }

Will fix. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798123</commentid>
    <comment_count>6</comment_count>
      <attachid>439549</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 17:39:36 -0700</bug_when>
    <thetext>Created attachment 439549
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798132</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-28 18:33:09 -0700</bug_when>
    <thetext>Committed r283207 (242249@main): &lt;https://commits.webkit.org/242249@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439549.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798290</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-29 06:23:35 -0700</bug_when>
    <thetext>Hi, this new test fails on every architecture (x86_64, aarch64, ppc64le, s390x) with the error:

Running stress/verify-can-gc-node-index.js.default
stress/verify-can-gc-node-index.js.default: Exception: RangeError: Maximum call stack size exceeded.
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:7:11
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: f@verify-can-gc-node-index.js:8:6
stress/verify-can-gc-node-index.js.default: ERROR: Unexpected exit code: 3
FAIL: stress/verify-can-gc-node-index.js.default

So it&apos;s doing too much recursion. This is using the JSCOnly port and Red Hat&apos;s internal CI, which has cloop enabled, but I see the JSC EWS failed in the same way, and I doubt that EWS is using cloop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798409</commentid>
    <comment_count>9</comment_count>
      <attachid>439617</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-29 09:54:25 -0700</bug_when>
    <thetext>Created attachment 439617
[fast-cq] fix test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798411</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 09:56:13 -0700</bug_when>
    <thetext>Committed r283231 (242273@main): &lt;https://commits.webkit.org/242273@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439617.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439533</attachid>
            <date>2021-09-28 15:34:06 -0700</date>
            <delta_ts>2021-09-28 15:50:58 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>12417</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMxOTYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRvZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Ig
bm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5NzUxNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUt
aW5kZXguanM6IEFkZGVkLgorICAgICAgICAoZ2VuKToKKyAgICAgICAgKGYpOgorCiAyMDIxLTA5
LTI4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBT
cGVlZCB1cCBzZXR0aW5nIEpTRnVuY3Rpb24ncyAicHJvdG90eXBlIiBwcm9wZXJ0eQpJbmRleDog
SlNUZXN0cy9zdHJlc3MvdmVyaWZ5LWNhbi1nYy1ub2RlLWluZGV4LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL3ZlcmlmeS1jYW4tZ2Mtbm9kZS1pbmRleC5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUtaW5kZXguanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tZGVzdHJveS12bSIsICIt
LW1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3Q9NTAwIiwg
Ii0tbWF4aW11bUlubGluaW5nUmVjdXJzaW9uPTUiKQorCitmdW5jdGlvbiogZ2VuKCkgeworfQor
bGV0IGcgPSBnZW4oKTsKK2Z1bmN0aW9uIGYoKSB7CisgICAgZy5uZXh0KCk7CisgICAgZigpOwor
ICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigpOworICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigp
OworICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigpOworfTsKK2YoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA5LTI4ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRv
ZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Igbm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5
NzUxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRmZy9ERkdEb2VzR0NDaGVjay5oOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpE
b2VzR0NDaGVjayk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmVuY29kZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6
RG9lc0dDQ2hlY2s6OmV4cGVjdERvZXNHQyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9l
c0dDQ2hlY2s6OmlzU3BlY2lhbCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OnNwZWNpYWwpOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlT3ApOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlSW5kZXgpOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhp
dCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvb3BIaW50KToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
QjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorCiAyMDIxLTA5LTI3ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGFuIHVubGlu
a2VkIGJhc2VsaW5lIEpJVApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0NDaGVjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDQ2hlY2suaAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywzOCArNDMsNDEgQEAgc3Ry
dWN0IERvZXNHQ0NoZWNrIHsKICAgICB9OwogCiAgICAgRG9lc0dDQ2hlY2soKQotICAgICAgICA6
IG1fdmFsdWUoZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQotICAgIHsgfQor
ICAgIHsKKyAgICAgICAgdS5lbmNvZGVkID0gZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlh
bGl6ZWQpOworICAgIH0KIAotICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBlY3RE
b2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQorICAgIHN0YXRpYyB1
aW50NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5z
aWduZWQgbm9kZU9wKQogICAgIHsKLSAgICAgICAgLy8gV2Uga25vdyBub2RlT3AgYWx3YXlzIGZp
dHMgYmVjYXVzZSBvZiB0aGUgc3RhdGljX2Fzc2VydCBpbiBERkdEb2VzR0NDaGVjay5jcHAuCi0g
ICAgICAgIEFTU0VSVCgobm9kZUluZGV4IDw8IG5vZGVJbmRleFNoaWZ0KSA+PiBub2RlSW5kZXhT
aGlmdCA9PSBub2RlSW5kZXgpOwotICAgICAgICByZXR1cm4gbm9kZUluZGV4IDw8IG5vZGVJbmRl
eFNoaWZ0IHwgbm9kZU9wIDw8IG5vZGVPcFNoaWZ0IHwgYml0cyhleHBlY3REb2VzR0MpOworICAg
ICAgICBVbmlvbiB1bjsKKyAgICAgICAgdW4ubm9kZUluZGV4ID0gbm9kZUluZGV4OworICAgICAg
ICB1bi5vdGhlciA9IChub2RlT3AgPDwgbm9kZU9wU2hpZnQpIHwgYml0cyhleHBlY3REb2VzR0Mp
OworICAgICAgICByZXR1cm4gdW4uZW5jb2RlZDsKICAgICB9CiAKICAgICBzdGF0aWMgdWludDMy
X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCiAgICAgewotICAg
ICAgICByZXR1cm4gYml0cyhzcGVjaWFsKSA8PCBzcGVjaWFsU2hpZnQgfCBpc1NwZWNpYWxCaXQg
fCBiaXRzKGV4cGVjdERvZXNHQyk7CisgICAgICAgIFVuaW9uIHVuOworICAgICAgICB1bi5ub2Rl
SW5kZXggPSAwOworICAgICAgICB1bi5vdGhlciA9IGJpdHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNo
aWZ0IHwgaXNTcGVjaWFsQml0IHwgYml0cyhleHBlY3REb2VzR0MpOworICAgICAgICByZXR1cm4g
dW4uZW5jb2RlZDsKICAgICB9CiAKICAgICB2b2lkIHNldChib29sIGV4cGVjdERvZXNHQywgdW5z
aWduZWQgbm9kZUluZGV4LCB1bnNpZ25lZCBub2RlT3ApCiAgICAgewotICAgICAgICBtX3ZhbHVl
ID0gZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZUluZGV4LCBub2RlT3ApOworICAgICAgICB1LmVu
Y29kZWQgPSBlbmNvZGUoZXhwZWN0RG9lc0dDLCBub2RlSW5kZXgsIG5vZGVPcCk7CiAgICAgfQog
CiAgICAgdm9pZCBzZXQoYm9vbCBleHBlY3REb2VzR0MsIFNwZWNpYWwgc3BlY2lhbCkKICAgICB7
Ci0gICAgICAgIG1fdmFsdWUgPSBlbmNvZGUoZXhwZWN0RG9lc0dDLCBzcGVjaWFsKTsKKyAgICAg
ICAgdS5lbmNvZGVkID0gZW5jb2RlKGV4cGVjdERvZXNHQywgc3BlY2lhbCk7CiAgICAgfQogCi0g
ICAgYm9vbCBleHBlY3REb2VzR0MoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlICYgZXhwZWN0RG9l
c0dDQml0OyB9Ci0gICAgYm9vbCBpc1NwZWNpYWwoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlICYg
aXNTcGVjaWFsQml0OyB9Ci0KLSAgICBTcGVjaWFsIHNwZWNpYWwoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxTcGVjaWFsPihtX3ZhbHVlID4+IHNwZWNpYWxTaGlmdCk7IH0KLQotICAgIHVuc2lnbmVk
IG5vZGVPcCgpIHsgcmV0dXJuIChtX3ZhbHVlID4+IG5vZGVPcFNoaWZ0KSAmIG5vZGVPcE1hc2s7
IH0KLSAgICB1bnNpZ25lZCBub2RlSW5kZXgoKSB7IHJldHVybiBtX3ZhbHVlID4+IG5vZGVJbmRl
eFNoaWZ0OyB9CisgICAgYm9vbCBleHBlY3REb2VzR0MoKSBjb25zdCB7IHJldHVybiB1Lm90aGVy
ICYgZXhwZWN0RG9lc0dDQml0OyB9CisgICAgYm9vbCBpc1NwZWNpYWwoKSBjb25zdCB7IHJldHVy
biB1Lm90aGVyICYgaXNTcGVjaWFsQml0OyB9CisgICAgU3BlY2lhbCBzcGVjaWFsKCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8U3BlY2lhbD4odS5vdGhlciA+PiBzcGVjaWFsU2hpZnQpOyB9CisgICAg
dW5zaWduZWQgbm9kZU9wKCkgeyByZXR1cm4gdS5vdGhlciAmIG5vZGVPcE1hc2s7IH0KKyAgICB1
bnNpZ25lZCBub2RlSW5kZXgoKSB7IHJldHVybiB1Lm5vZGVJbmRleDsgfQogCiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCB2ZXJpZnlDYW5HQyhWTSYpOwogCkBAIC05NiwxMSArOTksMTQgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVPcE1hc2sgPSAoMSA8
PCBub2RlT3BCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BT
aGlmdCA9IGNvbW1vbkJpdHM7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJ
bmRleEJpdHMgPSAyMTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVJbmRleFNo
aWZ0ID0gbm9kZU9wU2hpZnQgKyBub2RlT3BCaXRzOwotICAgIHN0YXRpY19hc3NlcnQobm9kZUlu
ZGV4U2hpZnQgKyBub2RlSW5kZXhCaXRzID09IDMyKTsKLQotICAgIHVpbnQzMl90IG1fdmFsdWUg
eyAwIH07CitwdWJsaWM6CisgICAgdW5pb24gVW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAg
ICAgICAgICAgdWludDMyX3Qgb3RoZXI7CisgICAgICAgICAgICB1aW50MzJfdCBub2RlSW5kZXg7
CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90IGVuY29kZWQ7CisgICAgfSB1OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgREZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdC5jcHAJKHJldmlzaW9uIDI4MzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Myw3ICs3NTMsMTQgQEAgdm9pZCBP
U1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgLy8gdG8gc2V0
IGl0IGhlcmUgYmVjYXVzZSBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2FsbGVkIG9uIHRoZSBm
aXJzdCB0aW1lCiAgICAgICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBzaXRlLCBidXQgYWxs
IHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKICAgICAgICAgICAgIC8v
IHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVPU1JFeGl0KCkgZmlyc3QuCi0gICAgICAgICAg
ICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5j
b2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KSksIHZtLmhlYXAuYWRk
cmVzc09mRG9lc0dDKCkpOworICAgICAgICAgICAgRG9lc0dDQ2hlY2sgY2hlY2s7CisgICAgICAg
ICAgICBjaGVjay51LmVuY29kZWQgPSBEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0No
ZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAg
ICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoY2hlY2sudS5lbmNvZGVk
KSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZWxzZQorICAgICAgICAgICAgaml0LnN0
b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2hlY2sudS5vdGhlciksICZ2bS5oZWFw
LmFkZHJlc3NPZkRvZXNHQygpLT51Lm90aGVyKTsKKyAgICAgICAgICAgIGppdC5zdG9yZTMyKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUubm9kZUluZGV4KSwgJnZtLmhlYXAuYWRk
cmVzc09mRG9lc0dDKCktPnUubm9kZUluZGV4KTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQog
ICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAyODMxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTQ5LDcgKzIxNDksMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgIGlmIGNvbnN0ZXhwciAodmFsaWRhdGVERkdEb2VzR0MpIHsKICAgICAgICAgaWYgKE9w
dGlvbnM6OnZhbGlkYXRlRG9lc0dDKCkpIHsKICAgICAgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dD
ID0gZG9lc0dDKG1faml0LmdyYXBoKCksIG5vZGUpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MihUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmlu
ZGV4KCksIG5vZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICAg
ICAgICAgIERvZXNHQ0NoZWNrIGNoZWNrOworICAgICAgICAgICAgY2hlY2sudS5lbmNvZGVkID0g
RG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmluZGV4KCksIG5vZGUtPm9w
KCkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihjaGVjay51Lm90aGVyKSwgJnZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKS0+dS5vdGhlcik7
CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNo
ZWNrLnUubm9kZUluZGV4KSwgJnZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKS0+dS5ub2RlSW5k
ZXgpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDI4MzE1OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3MDEsNyArMjcwMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAg
ICAgIGlmIChPcHRpb25zOjp2YWxpZGF0ZURvZXNHQygpKSB7CiAgICAgICAgICAgICBib29sIGV4
cGVjdERvZXNHQyA9IGRvZXNHQyhtX2ppdC5ncmFwaCgpLCBub2RlKTsKLSAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIoVHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dD
LCBub2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0Mo
KSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KFRydXN0ZWRJbW02NChEb2VzR0NDaGVjazo6
ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhl
YXAuYWRkcmVzc09mRG9lc0dDKCkpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24g
MjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMTAsOCArMjExMCwxNCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlTG9vcEhpbnQoTm9kCiAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKHZhbGlk
YXRlREZHRG9lc0dDKSB7CiAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZhbGlkYXRlRG9l
c0dDKCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtb2NrIHdoYXQgYSBS
ZXR1cm4gZG9lczogY2xhaW1zIHRvIEdDLgotICAgICAgICAgICAgICAgICAgICBtX2ppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkp
LCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0ND
aGVjazo6U3BlY2lhbDo6VW5pbml0aWFsaXplZCkpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BS
SW5mbzo6cmVnVDApKTsKKyAgICAgICAgICAgICAgICAgICAgRG9lc0dDQ2hlY2sgY2hlY2s7Cisg
ICAgICAgICAgICAgICAgICAgIGNoZWNrLnUuZW5jb2RlZCA9IERvZXNHQ0NoZWNrOjplbmNvZGUo
dHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpOworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoY2hlY2sudS5lbmNvZGVkKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygp
KTsKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoY2hlY2sudS5vdGhlciksICZ2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dD
KCktPnUub3RoZXIpOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUubm9kZUluZGV4KSwgJnZtKCkuaGVhcC5hZGRyZXNz
T2ZEb2VzR0MoKS0+dS5ub2RlSW5kZXgpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyODMxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOCw3ICs3MTgsNyBA
QCBwcml2YXRlOgogICAgICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAg
ICAgICAgICAgICBpZiAoT3B0aW9uczo6dmFsaWRhdGVEb2VzR0MoKSkgewogICAgICAgICAgICAg
ICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1fZ3JhcGgsIG1fbm9kZSk7Ci0gICAgICAg
ICAgICAgICAgbV9vdXQuc3RvcmUobV9vdXQuY29uc3RJbnQzMihEb2VzR0NDaGVjazo6ZW5jb2Rl
KGV4cGVjdERvZXNHQywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJz
b2x1dGUodm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CisgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmUobV9vdXQuY29uc3RJbnQ2NChEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNH
QywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJzb2x1dGUodm0oKS5o
ZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAt
MTYwMjIsOCArMTYwMjIsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGlmIChPcHRpb25z
Ojp2YWxpZGF0ZURvZXNHQygpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
bW9jayB3aGF0IGEgUmV0dXJuIGRvZXM6IGNsYWltcyB0byBHQy4KICAgICAgICAgICAgICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLT5oZWFwLmFkZHJlc3NP
ZkRvZXNHQygpKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERv
ZXNHQ0NoZWNrOjpTcGVjaWFsOjpVbmluaXRpYWxpemVkKSksIEdQUkluZm86OnJlZ1QxKTsKLSAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDEsIENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCkpOworICAgICAgICAgICAgICAgICAgICBqaXQubW92
ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERv
ZXNHQ0NoZWNrOjpTcGVjaWFsOjpVbmluaXRpYWxpemVkKSksIEdQUkluZm86OnJlZ1QxKTsKKyAg
ICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDEsIENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJlc3RvcmUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9uIDI4MzE1OCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKFZNJiB2
bSwgdW5zaWduZWQKICAgICAgICAgICAgIC8vIHRvIHNldCBpdCBoZXJlIGJlY2F1c2UgY29tcGls
ZUZUTE9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgZmlyc3QgdGltZQogICAgICAgICAg
ICAgLy8gd2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdp
bGwgdGFrZSB0aGlzIGNvbXBpbGVkCiAgICAgICAgICAgICAvLyByYW1wIHdpdGhvdXQgY2FsbGlu
ZyBjb21waWxlRlRMT1NSRXhpdCgpIGZpcnN0LgotICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBEb2VzR0ND
aGVjazo6U3BlY2lhbDo6RlRMT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsK
KyAgICAgICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KERvZXNH
Q0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkZUTE9TUkV4aXQpKSwg
dm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CiAgICAgICAgIH0KICAgICB9CiAK
</data>
<flag name="commit-queue"
          id="463195"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439534</attachid>
            <date>2021-09-28 15:38:03 -0700</date>
            <delta_ts>2021-09-28 17:39:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>12481</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMxOTYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRvZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Ig
bm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5NzUxNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUt
aW5kZXguanM6IEFkZGVkLgorICAgICAgICAoZ2VuKToKKyAgICAgICAgKGYpOgorCiAyMDIxLTA5
LTI4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBT
cGVlZCB1cCBzZXR0aW5nIEpTRnVuY3Rpb24ncyAicHJvdG90eXBlIiBwcm9wZXJ0eQpJbmRleDog
SlNUZXN0cy9zdHJlc3MvdmVyaWZ5LWNhbi1nYy1ub2RlLWluZGV4LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvc3RyZXNzL3ZlcmlmeS1jYW4tZ2Mtbm9kZS1pbmRleC5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUtaW5kZXguanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tZGVzdHJveS12bSIsICIt
LW1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3Q9NTAwIiwg
Ii0tbWF4aW11bUlubGluaW5nUmVjdXJzaW9uPTUiKQorCitmdW5jdGlvbiogZ2VuKCkgeworfQor
bGV0IGcgPSBnZW4oKTsKK2Z1bmN0aW9uIGYoKSB7CisgICAgZy5uZXh0KCk7CisgICAgZigpOwor
ICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigpOworICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigp
OworICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigpOworfTsKK2YoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA5LTI4ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRv
ZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Igbm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5
NzUxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRmZy9ERkdEb2VzR0NDaGVjay5oOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpE
b2VzR0NDaGVjayk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmVuY29kZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6
RG9lc0dDQ2hlY2s6OmV4cGVjdERvZXNHQyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9l
c0dDQ2hlY2s6OmlzU3BlY2lhbCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hl
Y2s6OnNwZWNpYWwpOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlT3ApOgor
ICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlSW5kZXgpOgorICAgICAgICAqIGRm
Zy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhp
dCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvb3BIaW50KToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
QjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorCiAyMDIxLTA5LTI3ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGFuIHVubGlu
a2VkIGJhc2VsaW5lIEpJVApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0NDaGVjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDQ2hlY2suaAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0NDaGVjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywzOCArNDMsNDEgQEAgc3Ry
dWN0IERvZXNHQ0NoZWNrIHsKICAgICB9OwogCiAgICAgRG9lc0dDQ2hlY2soKQotICAgICAgICA6
IG1fdmFsdWUoZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQotICAgIHsgfQor
ICAgIHsKKyAgICAgICAgdS5lbmNvZGVkID0gZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlh
bGl6ZWQpOworICAgIH0KIAotICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBlY3RE
b2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQorICAgIHN0YXRpYyB1
aW50NjRfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5z
aWduZWQgbm9kZU9wKQogICAgIHsKLSAgICAgICAgLy8gV2Uga25vdyBub2RlT3AgYWx3YXlzIGZp
dHMgYmVjYXVzZSBvZiB0aGUgc3RhdGljX2Fzc2VydCBpbiBERkdEb2VzR0NDaGVjay5jcHAuCi0g
ICAgICAgIEFTU0VSVCgobm9kZUluZGV4IDw8IG5vZGVJbmRleFNoaWZ0KSA+PiBub2RlSW5kZXhT
aGlmdCA9PSBub2RlSW5kZXgpOwotICAgICAgICByZXR1cm4gbm9kZUluZGV4IDw8IG5vZGVJbmRl
eFNoaWZ0IHwgbm9kZU9wIDw8IG5vZGVPcFNoaWZ0IHwgYml0cyhleHBlY3REb2VzR0MpOworICAg
ICAgICBVbmlvbiB1bjsKKyAgICAgICAgdW4ubm9kZUluZGV4ID0gbm9kZUluZGV4OworICAgICAg
ICB1bi5vdGhlciA9IChub2RlT3AgPDwgbm9kZU9wU2hpZnQpIHwgYml0cyhleHBlY3REb2VzR0Mp
OworICAgICAgICByZXR1cm4gdW4uZW5jb2RlZDsKICAgICB9CiAKLSAgICBzdGF0aWMgdWludDMy
X3QgZW5jb2RlKGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCisgICAgc3RhdGlj
IHVpbnQ2NF90IGVuY29kZShib29sIGV4cGVjdERvZXNHQywgU3BlY2lhbCBzcGVjaWFsKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGJpdHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0IHwgaXNTcGVj
aWFsQml0IHwgYml0cyhleHBlY3REb2VzR0MpOworICAgICAgICBVbmlvbiB1bjsKKyAgICAgICAg
dW4ubm9kZUluZGV4ID0gMDsKKyAgICAgICAgdW4ub3RoZXIgPSBiaXRzKHNwZWNpYWwpIDw8IHNw
ZWNpYWxTaGlmdCB8IGlzU3BlY2lhbEJpdCB8IGJpdHMoZXhwZWN0RG9lc0dDKTsKKyAgICAgICAg
cmV0dXJuIHVuLmVuY29kZWQ7CiAgICAgfQogCiAgICAgdm9pZCBzZXQoYm9vbCBleHBlY3REb2Vz
R0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQogICAgIHsKLSAgICAgICAg
bV92YWx1ZSA9IGVuY29kZShleHBlY3REb2VzR0MsIG5vZGVJbmRleCwgbm9kZU9wKTsKKyAgICAg
ICAgdS5lbmNvZGVkID0gZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZUluZGV4LCBub2RlT3ApOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwp
CiAgICAgewotICAgICAgICBtX3ZhbHVlID0gZW5jb2RlKGV4cGVjdERvZXNHQywgc3BlY2lhbCk7
CisgICAgICAgIHUuZW5jb2RlZCA9IGVuY29kZShleHBlY3REb2VzR0MsIHNwZWNpYWwpOwogICAg
IH0KIAotICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAmIGV4
cGVjdERvZXNHQ0JpdDsgfQotICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZSAmIGlzU3BlY2lhbEJpdDsgfQotCi0gICAgU3BlY2lhbCBzcGVjaWFsKCkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8U3BlY2lhbD4obV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpOyB9Ci0KLSAgICB1
bnNpZ25lZCBub2RlT3AoKSB7IHJldHVybiAobV92YWx1ZSA+PiBub2RlT3BTaGlmdCkgJiBub2Rl
T3BNYXNrOyB9Ci0gICAgdW5zaWduZWQgbm9kZUluZGV4KCkgeyByZXR1cm4gbV92YWx1ZSA+PiBu
b2RlSW5kZXhTaGlmdDsgfQorICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4g
dS5vdGhlciAmIGV4cGVjdERvZXNHQ0JpdDsgfQorICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3Qg
eyByZXR1cm4gdS5vdGhlciAmIGlzU3BlY2lhbEJpdDsgfQorICAgIFNwZWNpYWwgc3BlY2lhbCgp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNwZWNpYWw+KHUub3RoZXIgPj4gc3BlY2lhbFNoaWZ0KTsg
fQorICAgIHVuc2lnbmVkIG5vZGVPcCgpIHsgcmV0dXJuIHUub3RoZXIgJiBub2RlT3BNYXNrOyB9
CisgICAgdW5zaWduZWQgbm9kZUluZGV4KCkgeyByZXR1cm4gdS5ub2RlSW5kZXg7IH0KIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdmVyaWZ5Q2FuR0MoVk0mKTsKIApAQCAtOTYsMTEgKzk5
LDE0IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2RlT3BNYXNr
ID0gKDEgPDwgbm9kZU9wQml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bm9kZU9wU2hpZnQgPSBjb21tb25CaXRzOwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBub2RlSW5kZXhCaXRzID0gMjE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub2Rl
SW5kZXhTaGlmdCA9IG5vZGVPcFNoaWZ0ICsgbm9kZU9wQml0czsKLSAgICBzdGF0aWNfYXNzZXJ0
KG5vZGVJbmRleFNoaWZ0ICsgbm9kZUluZGV4Qml0cyA9PSAzMik7Ci0KLSAgICB1aW50MzJfdCBt
X3ZhbHVlIHsgMCB9OworcHVibGljOgorICAgIHVuaW9uIFVuaW9uIHsKKyAgICAgICAgc3RydWN0
IHsKKyAgICAgICAgICAgIHVpbnQzMl90IG90aGVyOworICAgICAgICAgICAgdWludDMyX3Qgbm9k
ZUluZGV4OworICAgICAgICB9OworICAgICAgICB1aW50NjRfdCBlbmNvZGVkOworICAgIH0gdTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIERGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXQuY3BwCShyZXZpc2lvbiAyODMxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTMsNyArNzUzLDE0IEBA
IHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIC8v
IHRvIHNldCBpdCBoZXJlIGJlY2F1c2UgY29tcGlsZU9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBv
biB0aGUgZmlyc3QgdGltZQogICAgICAgICAgICAgLy8gd2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwg
YnV0IGFsbCBzdWJzZXF1ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlzIGNvbXBpbGVkCiAgICAgICAg
ICAgICAvLyByYW1wIHdpdGhvdXQgY2FsbGluZyBjb21waWxlT1NSRXhpdCgpIGZpcnN0LgotICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hl
Y2s6OmVuY29kZSh0cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCkpLCB2bS5o
ZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKKyAgICAgICAgICAgIERvZXNHQ0NoZWNrIGNoZWNrOwor
ICAgICAgICAgICAgY2hlY2sudS5lbmNvZGVkID0gRG9lc0dDQ2hlY2s6OmVuY29kZSh0cnVlLCBE
b2VzR0NDaGVjazo6U3BlY2lhbDo6REZHT1NSRXhpdCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KGNoZWNrLnUu
ZW5jb2RlZCksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworI2Vsc2UKKyAgICAgICAgICAg
IGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUub3RoZXIpLCAm
dm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKS0+dS5vdGhlcik7CisgICAgICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjaGVjay51Lm5vZGVJbmRleCksICZ2bS5o
ZWFwLmFkZHJlc3NPZkRvZXNHQygpLT51Lm5vZGVJbmRleCk7CisjZW5kaWYKICAgICAgICAgfQog
ICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjE0OSw3ICsyMTQ5LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAgICAg
IGlmIChPcHRpb25zOjp2YWxpZGF0ZURvZXNHQygpKSB7CiAgICAgICAgICAgICBib29sIGV4cGVj
dERvZXNHQyA9IGRvZXNHQyhtX2ppdC5ncmFwaCgpLCBub2RlKTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoVHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBu
b2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7
CisgICAgICAgICAgICBEb2VzR0NDaGVjayBjaGVjazsKKyAgICAgICAgICAgIGNoZWNrLnUuZW5j
b2RlZCA9IERvZXNHQ0NoZWNrOjplbmNvZGUoZXhwZWN0RG9lc0dDLCBub2RlLT5pbmRleCgpLCBu
b2RlLT5vcCgpKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoY2hlY2sudS5vdGhlciksICZ2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCktPnUu
b3RoZXIpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihjaGVjay51Lm5vZGVJbmRleCksICZ2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCktPnUu
bm9kZUluZGV4KTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyODMxNTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzAxLDcgKzI3MDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgaWYgY29uc3RleHByICh2YWxpZGF0ZURGR0RvZXNHQykg
ewogICAgICAgICBpZiAoT3B0aW9uczo6dmFsaWRhdGVEb2VzR0MoKSkgewogICAgICAgICAgICAg
Ym9vbCBleHBlY3REb2VzR0MgPSBkb2VzR0MobV9qaXQuZ3JhcGgoKSwgbm9kZSk7Ci0gICAgICAg
ICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVj
dERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3AoKSkpLCB2bSgpLmhlYXAuYWRkcmVzc09m
RG9lc0dDKCkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChUcnVzdGVkSW1tNjQoRG9lc0dD
Q2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmluZGV4KCksIG5vZGUtPm9wKCkpKSwg
dm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJl
dmlzaW9uIDI4MzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTEwLDggKzIxMTAsMTQgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUxvb3BIaW50KE5vZAogICAgICAgICAgICAgaWYgY29uc3RleHBy
ICh2YWxpZGF0ZURGR0RvZXNHQykgewogICAgICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2YWxp
ZGF0ZURvZXNHQygpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbW9jayB3
aGF0IGEgUmV0dXJuIGRvZXM6IGNsYWltcyB0byBHQy4KLSAgICAgICAgICAgICAgICAgICAgbV9q
aXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodm0oKS5oZWFwLmFkZHJlc3NPZkRv
ZXNHQygpKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwg
RG9lc0dDQ2hlY2s6OlNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKSwgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1QwKSk7CisgICAgICAgICAgICAgICAgICAgIERvZXNHQ0NoZWNrIGNo
ZWNrOworICAgICAgICAgICAgICAgICAgICBjaGVjay51LmVuY29kZWQgPSBEb2VzR0NDaGVjazo6
ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpVbmluaXRpYWxpemVkKTsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTY0KGNoZWNrLnUuZW5jb2RlZCksIHZtKCkuaGVhcC5hZGRyZXNzT2ZE
b2VzR0MoKSk7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUub3RoZXIpLCAmdm0oKS5oZWFwLmFkZHJlc3NP
ZkRvZXNHQygpLT51Lm90aGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjaGVjay51Lm5vZGVJbmRleCksICZ2bSgpLmhlYXAu
YWRkcmVzc09mRG9lc0dDKCktPnUubm9kZUluZGV4KTsKKyNlbmRpZgogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTgsNyAr
NzE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgY29uc3RleHByICh2YWxpZGF0ZURGR0RvZXNH
QykgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZhbGlkYXRlRG9lc0dDKCkpIHsKICAgICAg
ICAgICAgICAgICBib29sIGV4cGVjdERvZXNHQyA9IGRvZXNHQyhtX2dyYXBoLCBtX25vZGUpOwot
ICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlKG1fb3V0LmNvbnN0SW50MzIoRG9lc0dDQ2hlY2s6
OmVuY29kZShleHBlY3REb2VzR0MsIG1fbm9kZS0+aW5kZXgoKSwgbV9ub2RlLT5vcCgpKSksIG1f
b3V0LmFic29sdXRlKHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSkpOworICAgICAgICAgICAg
ICAgIG1fb3V0LnN0b3JlKG1fb3V0LmNvbnN0SW50NjQoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBl
Y3REb2VzR0MsIG1fbm9kZS0+aW5kZXgoKSwgbV9ub2RlLT5vcCgpKSksIG1fb3V0LmFic29sdXRl
KHZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKQEAgLTE2MDIyLDggKzE2MDIyLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBpZiAo
T3B0aW9uczo6dmFsaWRhdGVEb2VzR0MoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIG1vY2sgd2hhdCBhIFJldHVybiBkb2VzOiBjbGFpbXMgdG8gR0MuCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bS0+aGVhcC5h
ZGRyZXNzT2ZEb2VzR0MoKSksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAgICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0
cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6VW5pbml0aWFsaXplZCkpLCBHUFJJbmZvOjpyZWdU
MSk7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTMyKEdQUkluZm86OnJlZ1QxLCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsKKyAgICAgICAgICAgICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoRG9lc0dDQ2hlY2s6OmVuY29kZSh0
cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6VW5pbml0aWFsaXplZCkpLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QxLCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICByZXN0b3JlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAyODMx
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1
YihWTSYgdm0sIHVuc2lnbmVkCiAgICAgICAgICAgICAvLyB0byBzZXQgaXQgaGVyZSBiZWNhdXNl
IGNvbXBpbGVGVExPU1JFeGl0KCkgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpcnN0IHRpbWUKICAg
ICAgICAgICAgIC8vIHdlIGV4aXQgZnJvbSB0aGlzIHNpdGUsIGJ1dCBhbGwgc3Vic2VxdWVudCBl
eGl0cyB3aWxsIHRha2UgdGhpcyBjb21waWxlZAogICAgICAgICAgICAgLy8gcmFtcCB3aXRob3V0
IGNhbGxpbmcgY29tcGlsZUZUTE9TUkV4aXQoKSBmaXJzdC4KLSAgICAgICAgICAgIGppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwg
RG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkZUTE9TUkV4aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2Vz
R0MoKSk7CisgICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02
NChEb2VzR0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpGVExPU1JF
eGl0KSksIHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOwogICAgICAgICB9CiAgICAgfQogCg==
</data>
<flag name="review"
          id="463192"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439549</attachid>
            <date>2021-09-28 17:39:36 -0700</date>
            <delta_ts>2021-09-28 18:33:10 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>12486</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMxOTYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRvZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Ig
bm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5NzUxNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIExhbS4KKworICAgICAgICAqIHN0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUtaW5kZXgu
anM6IEFkZGVkLgorICAgICAgICAoZ2VuKToKKyAgICAgICAgKGYpOgorCiAyMDIxLTA5LTI4ICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBTcGVlZCB1
cCBzZXR0aW5nIEpTRnVuY3Rpb24ncyAicHJvdG90eXBlIiBwcm9wZXJ0eQpJbmRleDogSlNUZXN0
cy9zdHJlc3MvdmVyaWZ5LWNhbi1nYy1ub2RlLWluZGV4LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVz
dHMvc3RyZXNzL3ZlcmlmeS1jYW4tZ2Mtbm9kZS1pbmRleC5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3N0cmVzcy92ZXJpZnktY2FuLWdjLW5vZGUtaW5kZXguanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxOSBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tZGVzdHJveS12bSIsICItLW1heGlt
dW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3Q9NTAwIiwgIi0tbWF4
aW11bUlubGluaW5nUmVjdXJzaW9uPTUiKQorCitmdW5jdGlvbiogZ2VuKCkgeworfQorbGV0IGcg
PSBnZW4oKTsKK2Z1bmN0aW9uIGYoKSB7CisgICAgZy5uZXh0KCk7CisgICAgZigpOworICAgIGYo
KTsKKyAgICBmKCk7CisgICAgZigpOworICAgIGYoKTsKKyAgICBmKCk7CisgICAgZigpOworICAg
IGYoKTsKKyAgICBmKCk7CisgICAgZigpOworfTsKK2YoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA5LTI4ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRvZXMgbm90
IHVzZSBlbm91Z2ggYml0cyBmb3Igbm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5NzUxNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIGRmZy9ERkdEb2Vz
R0NDaGVjay5oOgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpEb2VzR0NDaGVjayk6
CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OmVuY29kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RG9lc0dDQ2hlY2s6OnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6
OmV4cGVjdERvZXNHQyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6Omlz
U3BlY2lhbCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6RG9lc0dDQ2hlY2s6OnNwZWNpYWwp
OgorICAgICAgICAoSlNDOjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlT3ApOgorICAgICAgICAoSlND
OjpERkc6OkRvZXNHQ0NoZWNrOjpub2RlSW5kZXgpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUxvb3BIaW50KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVO
b2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBh
cmVTdHJpY3RFcSk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorCiAyMDIxLTA5LTI3ICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGFuIHVubGlua2VkIGJhc2VsaW5l
IEpJVApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0NDaGVjay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDQ2hlY2suaAko
cmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0ND
aGVjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywzOCArNDMsNDEgQEAgc3RydWN0IERvZXNHQ0No
ZWNrIHsKICAgICB9OwogCiAgICAgRG9lc0dDQ2hlY2soKQotICAgICAgICA6IG1fdmFsdWUoZW5j
b2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpKQotICAgIHsgfQorICAgIHsKKyAgICAg
ICAgdS5lbmNvZGVkID0gZW5jb2RlKHRydWUsIFNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpOworICAg
IH0KIAotICAgIHN0YXRpYyB1aW50MzJfdCBlbmNvZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2ln
bmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQorICAgIHN0YXRpYyB1aW50NjRfdCBlbmNv
ZGUoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVkIG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9w
KQogICAgIHsKLSAgICAgICAgLy8gV2Uga25vdyBub2RlT3AgYWx3YXlzIGZpdHMgYmVjYXVzZSBv
ZiB0aGUgc3RhdGljX2Fzc2VydCBpbiBERkdEb2VzR0NDaGVjay5jcHAuCi0gICAgICAgIEFTU0VS
VCgobm9kZUluZGV4IDw8IG5vZGVJbmRleFNoaWZ0KSA+PiBub2RlSW5kZXhTaGlmdCA9PSBub2Rl
SW5kZXgpOwotICAgICAgICByZXR1cm4gbm9kZUluZGV4IDw8IG5vZGVJbmRleFNoaWZ0IHwgbm9k
ZU9wIDw8IG5vZGVPcFNoaWZ0IHwgYml0cyhleHBlY3REb2VzR0MpOworICAgICAgICBVbmlvbiB1
bjsKKyAgICAgICAgdW4ubm9kZUluZGV4ID0gbm9kZUluZGV4OworICAgICAgICB1bi5vdGhlciA9
IChub2RlT3AgPDwgbm9kZU9wU2hpZnQpIHwgYml0cyhleHBlY3REb2VzR0MpOworICAgICAgICBy
ZXR1cm4gdW4uZW5jb2RlZDsKICAgICB9CiAKLSAgICBzdGF0aWMgdWludDMyX3QgZW5jb2RlKGJv
b2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCisgICAgc3RhdGljIHVpbnQ2NF90IGVu
Y29kZShib29sIGV4cGVjdERvZXNHQywgU3BlY2lhbCBzcGVjaWFsKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGJpdHMoc3BlY2lhbCkgPDwgc3BlY2lhbFNoaWZ0IHwgaXNTcGVjaWFsQml0IHwgYml0
cyhleHBlY3REb2VzR0MpOworICAgICAgICBVbmlvbiB1bjsKKyAgICAgICAgdW4ubm9kZUluZGV4
ID0gMDsKKyAgICAgICAgdW4ub3RoZXIgPSBiaXRzKHNwZWNpYWwpIDw8IHNwZWNpYWxTaGlmdCB8
IGlzU3BlY2lhbEJpdCB8IGJpdHMoZXhwZWN0RG9lc0dDKTsKKyAgICAgICAgcmV0dXJuIHVuLmVu
Y29kZWQ7CiAgICAgfQogCiAgICAgdm9pZCBzZXQoYm9vbCBleHBlY3REb2VzR0MsIHVuc2lnbmVk
IG5vZGVJbmRleCwgdW5zaWduZWQgbm9kZU9wKQogICAgIHsKLSAgICAgICAgbV92YWx1ZSA9IGVu
Y29kZShleHBlY3REb2VzR0MsIG5vZGVJbmRleCwgbm9kZU9wKTsKKyAgICAgICAgdS5lbmNvZGVk
ID0gZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZUluZGV4LCBub2RlT3ApOwogICAgIH0KIAogICAg
IHZvaWQgc2V0KGJvb2wgZXhwZWN0RG9lc0dDLCBTcGVjaWFsIHNwZWNpYWwpCiAgICAgewotICAg
ICAgICBtX3ZhbHVlID0gZW5jb2RlKGV4cGVjdERvZXNHQywgc3BlY2lhbCk7CisgICAgICAgIHUu
ZW5jb2RlZCA9IGVuY29kZShleHBlY3REb2VzR0MsIHNwZWNpYWwpOwogICAgIH0KIAotICAgIGJv
b2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAmIGV4cGVjdERvZXNHQ0Jp
dDsgfQotICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZSAmIGlzU3Bl
Y2lhbEJpdDsgfQotCi0gICAgU3BlY2lhbCBzcGVjaWFsKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
U3BlY2lhbD4obV92YWx1ZSA+PiBzcGVjaWFsU2hpZnQpOyB9Ci0KLSAgICB1bnNpZ25lZCBub2Rl
T3AoKSB7IHJldHVybiAobV92YWx1ZSA+PiBub2RlT3BTaGlmdCkgJiBub2RlT3BNYXNrOyB9Ci0g
ICAgdW5zaWduZWQgbm9kZUluZGV4KCkgeyByZXR1cm4gbV92YWx1ZSA+PiBub2RlSW5kZXhTaGlm
dDsgfQorICAgIGJvb2wgZXhwZWN0RG9lc0dDKCkgY29uc3QgeyByZXR1cm4gdS5vdGhlciAmIGV4
cGVjdERvZXNHQ0JpdDsgfQorICAgIGJvb2wgaXNTcGVjaWFsKCkgY29uc3QgeyByZXR1cm4gdS5v
dGhlciAmIGlzU3BlY2lhbEJpdDsgfQorICAgIFNwZWNpYWwgc3BlY2lhbCgpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PFNwZWNpYWw+KHUub3RoZXIgPj4gc3BlY2lhbFNoaWZ0KTsgfQorICAgIHVuc2ln
bmVkIG5vZGVPcCgpIHsgcmV0dXJuICh1Lm90aGVyID4+IG5vZGVPcFNoaWZ0KSAmIG5vZGVPcE1h
c2s7IH0KKyAgICB1bnNpZ25lZCBub2RlSW5kZXgoKSB7IHJldHVybiB1Lm5vZGVJbmRleDsgfQog
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB2ZXJpZnlDYW5HQyhWTSYpOwogCkBAIC05Niwx
MSArOTksMTQgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vZGVP
cE1hc2sgPSAoMSA8PCBub2RlT3BCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBub2RlT3BTaGlmdCA9IGNvbW1vbkJpdHM7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG5vZGVJbmRleEJpdHMgPSAyMTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IG5vZGVJbmRleFNoaWZ0ID0gbm9kZU9wU2hpZnQgKyBub2RlT3BCaXRzOwotICAgIHN0YXRpY19h
c3NlcnQobm9kZUluZGV4U2hpZnQgKyBub2RlSW5kZXhCaXRzID09IDMyKTsKLQotICAgIHVpbnQz
Ml90IG1fdmFsdWUgeyAwIH07CitwdWJsaWM6CisgICAgdW5pb24gVW5pb24geworICAgICAgICBz
dHJ1Y3QgeworICAgICAgICAgICAgdWludDMyX3Qgb3RoZXI7CisgICAgICAgICAgICB1aW50MzJf
dCBub2RlSW5kZXg7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90IGVuY29kZWQ7CisgICAg
fSB1OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgREZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdC5jcHAJKHJldmlzaW9uIDI4MzE1OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Myw3ICs3NTMs
MTQgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIAogICAgICAgICAg
ICAgLy8gdG8gc2V0IGl0IGhlcmUgYmVjYXVzZSBjb21waWxlT1NSRXhpdCgpIGlzIG9ubHkgY2Fs
bGVkIG9uIHRoZSBmaXJzdCB0aW1lCiAgICAgICAgICAgICAvLyB3ZSBleGl0IGZyb20gdGhpcyBz
aXRlLCBidXQgYWxsIHN1YnNlcXVlbnQgZXhpdHMgd2lsbCB0YWtlIHRoaXMgY29tcGlsZWQKICAg
ICAgICAgICAgIC8vIHJhbXAgd2l0aG91dCBjYWxsaW5nIGNvbXBpbGVPU1JFeGl0KCkgZmlyc3Qu
Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2Vz
R0NDaGVjazo6ZW5jb2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KSks
IHZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOworICAgICAgICAgICAgRG9lc0dDQ2hlY2sgY2hl
Y2s7CisgICAgICAgICAgICBjaGVjay51LmVuY29kZWQgPSBEb2VzR0NDaGVjazo6ZW5jb2RlKHRy
dWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpERkdPU1JFeGl0KTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoY2hl
Y2sudS5lbmNvZGVkKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CisjZWxzZQorICAgICAg
ICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2hlY2sudS5vdGhl
ciksICZ2bS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpLT51Lm90aGVyKTsKKyAgICAgICAgICAgIGpp
dC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUubm9kZUluZGV4KSwg
JnZtLmhlYXAuYWRkcmVzc09mRG9lc0dDKCktPnUubm9kZUluZGV4KTsKKyNlbmRpZgogICAgICAg
ICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAyODMxNTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTQ5LDcgKzIxNDksMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgIGlmIGNvbnN0ZXhwciAodmFsaWRhdGVERkdEb2VzR0MpIHsKICAg
ICAgICAgaWYgKE9wdGlvbnM6OnZhbGlkYXRlRG9lc0dDKCkpIHsKICAgICAgICAgICAgIGJvb2wg
ZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1faml0LmdyYXBoKCksIG5vZGUpOwotICAgICAgICAgICAg
bV9qaXQuc3RvcmUzMihUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2Vz
R0MsIG5vZGUtPmluZGV4KCksIG5vZGUtPm9wKCkpKSwgdm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNH
QygpKTsKKyAgICAgICAgICAgIERvZXNHQ0NoZWNrIGNoZWNrOworICAgICAgICAgICAgY2hlY2su
dS5lbmNvZGVkID0gRG9lc0dDQ2hlY2s6OmVuY29kZShleHBlY3REb2VzR0MsIG5vZGUtPmluZGV4
KCksIG5vZGUtPm9wKCkpOworICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihjaGVjay51Lm90aGVyKSwgJnZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0Mo
KS0+dS5vdGhlcik7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKGNoZWNrLnUubm9kZUluZGV4KSwgJnZtKCkuaGVhcC5hZGRyZXNzT2ZEb2VzR0Mo
KS0+dS5ub2RlSW5kZXgpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDI4
MzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MDEsNyArMjcwMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZHRG9l
c0dDKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2YWxpZGF0ZURvZXNHQygpKSB7CiAgICAgICAg
ICAgICBib29sIGV4cGVjdERvZXNHQyA9IGRvZXNHQyhtX2ppdC5ncmFwaCgpLCBub2RlKTsKLSAg
ICAgICAgICAgIG1faml0LnN0b3JlMzIoVHJ1c3RlZEltbTMyKERvZXNHQ0NoZWNrOjplbmNvZGUo
ZXhwZWN0RG9lc0dDLCBub2RlLT5pbmRleCgpLCBub2RlLT5vcCgpKSksIHZtKCkuaGVhcC5hZGRy
ZXNzT2ZEb2VzR0MoKSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KFRydXN0ZWRJbW02NChE
b2VzR0NDaGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbm9kZS0+aW5kZXgoKSwgbm9kZS0+b3Ao
KSkpLCB2bSgpLmhlYXAuYWRkcmVzc09mRG9lc0dDKCkpOwogICAgICAgICB9CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMTAsOCArMjExMCwxNCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9vcEhpbnQoTm9kCiAgICAgICAgICAgICBpZiBjb25z
dGV4cHIgKHZhbGlkYXRlREZHRG9lc0dDKSB7CiAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6
OnZhbGlkYXRlRG9lc0dDKCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBt
b2NrIHdoYXQgYSBSZXR1cm4gZG9lczogY2xhaW1zIHRvIEdDLgotICAgICAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bSgpLmhlYXAuYWRkcmVz
c09mRG9lc0dDKCkpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0
cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6VW5pbml0aWFsaXplZCkpLCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsKKyAgICAgICAgICAgICAgICAgICAgRG9lc0dDQ2hl
Y2sgY2hlY2s7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrLnUuZW5jb2RlZCA9IERvZXNHQ0No
ZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OlVuaW5pdGlhbGl6ZWQpOwor
I2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoY2hlY2sudS5lbmNvZGVkKSwgdm0oKS5oZWFwLmFkZHJl
c3NPZkRvZXNHQygpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2hlY2sudS5vdGhlciksICZ2bSgpLmhlYXAuYWRk
cmVzc09mRG9lc0dDKCktPnUub3RoZXIpOworICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKGNoZWNrLnUubm9kZUluZGV4KSwgJnZtKCku
aGVhcC5hZGRyZXNzT2ZEb2VzR0MoKS0+dS5ub2RlSW5kZXgpOworI2VuZGlmCiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyODMxNTgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcx
OCw3ICs3MTgsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiBjb25zdGV4cHIgKHZhbGlkYXRlREZH
RG9lc0dDKSB7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmFsaWRhdGVEb2VzR0MoKSkgewog
ICAgICAgICAgICAgICAgIGJvb2wgZXhwZWN0RG9lc0dDID0gZG9lc0dDKG1fZ3JhcGgsIG1fbm9k
ZSk7Ci0gICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUobV9vdXQuY29uc3RJbnQzMihEb2VzR0ND
aGVjazo6ZW5jb2RlKGV4cGVjdERvZXNHQywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkp
KSwgbV9vdXQuYWJzb2x1dGUodm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CisgICAgICAg
ICAgICAgICAgbV9vdXQuc3RvcmUobV9vdXQuY29uc3RJbnQ2NChEb2VzR0NDaGVjazo6ZW5jb2Rl
KGV4cGVjdERvZXNHQywgbV9ub2RlLT5pbmRleCgpLCBtX25vZGUtPm9wKCkpKSwgbV9vdXQuYWJz
b2x1dGUodm0oKS5oZWFwLmFkZHJlc3NPZkRvZXNHQygpKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIApAQCAtMTYwMjIsOCArMTYwMjIsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2YWxpZGF0ZURvZXNHQygpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8v
IFdlIG5lZWQgdG8gbW9jayB3aGF0IGEgUmV0dXJuIGRvZXM6IGNsYWltcyB0byBHQy4KICAgICAg
ICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLT5o
ZWFwLmFkZHJlc3NPZkRvZXNHQygpKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgICAg
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihEb2VzR0NDaGVjazo6ZW5j
b2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpVbmluaXRpYWxpemVkKSksIEdQUkluZm86
OnJlZ1QxKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDEs
IENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCkpOworICAgICAgICAgICAgICAg
ICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChEb2VzR0NDaGVjazo6ZW5j
b2RlKHRydWUsIERvZXNHQ0NoZWNrOjpTcGVjaWFsOjpVbmluaXRpYWxpemVkKSksIEdQUkluZm86
OnJlZ1QxKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDEs
IENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCkpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3RvcmUoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHJldmlzaW9u
IDI4MzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKFZNJiB2bSwgdW5zaWduZWQKICAgICAgICAgICAgIC8vIHRvIHNldCBpdCBoZXJlIGJl
Y2F1c2UgY29tcGlsZUZUTE9TUkV4aXQoKSBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgZmlyc3QgdGlt
ZQogICAgICAgICAgICAgLy8gd2UgZXhpdCBmcm9tIHRoaXMgc2l0ZSwgYnV0IGFsbCBzdWJzZXF1
ZW50IGV4aXRzIHdpbGwgdGFrZSB0aGlzIGNvbXBpbGVkCiAgICAgICAgICAgICAvLyByYW1wIHdp
dGhvdXQgY2FsbGluZyBjb21waWxlRlRMT1NSRXhpdCgpIGZpcnN0LgotICAgICAgICAgICAgaml0
LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoRG9lc0dDQ2hlY2s6OmVuY29kZSh0
cnVlLCBEb2VzR0NDaGVjazo6U3BlY2lhbDo6RlRMT1NSRXhpdCkpLCB2bS5oZWFwLmFkZHJlc3NP
ZkRvZXNHQygpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTY0KERvZXNHQ0NoZWNrOjplbmNvZGUodHJ1ZSwgRG9lc0dDQ2hlY2s6OlNwZWNpYWw6OkZU
TE9TUkV4aXQpKSwgdm0uaGVhcC5hZGRyZXNzT2ZEb2VzR0MoKSk7CiAgICAgICAgIH0KICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439617</attachid>
            <date>2021-09-29 09:54:25 -0700</date>
            <delta_ts>2021-09-29 09:56:14 -0700</delta_ts>
            <desc>[fast-cq] fix test</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>937</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMyMjkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA5LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIERvZXNHQ0NoZWNrIGRvZXMgbm90IHVzZSBlbm91Z2ggYml0cyBmb3Ig
bm9kZUluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA5MTUKKyAgICAgICAgPHJkYXI6Ly84MzI5NzUxNT4KKworICAgICAgICBVbnJldmlld2Vk
LiBGb3Jnb3QgdG8gYWRkIGEgdHJ5L2NhdGNoIGluIHRoZSB0ZXN0LgorCisgICAgICAgICogc3Ry
ZXNzL3ZlcmlmeS1jYW4tZ2Mtbm9kZS1pbmRleC5qczoKKwogMjAyMS0wOS0yOCAgU2FhbSBCYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb2VzR0NDaGVjayBkb2VzIG5vdCB1
c2UgZW5vdWdoIGJpdHMgZm9yIG5vZGVJbmRleApJbmRleDogSlNUZXN0cy9zdHJlc3MvdmVyaWZ5
LWNhbi1nYy1ub2RlLWluZGV4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3Zlcmlm
eS1jYW4tZ2Mtbm9kZS1pbmRleC5qcwkocmV2aXNpb24gMjgzMjI4KQorKysgSlNUZXN0cy9zdHJl
c3MvdmVyaWZ5LWNhbi1nYy1ub2RlLWluZGV4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw0ICsx
Niw2IEBAIGZ1bmN0aW9uIGYoKSB7CiAgICAgZigpOwogICAgIGYoKTsKIH07Ci1mKCk7Cit0cnkg
eworICAgIGYoKTsKK30gY2F0Y2ggeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>