<?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>233905</bug_id>
          
          <creation_ts>2021-12-06 17:39:02 -0800</creation_ts>
          <short_desc>TypedArray prototype set should go down the fast path when using non clamped integer types of the same byte size</short_desc>
          <delta_ts>2021-12-07 20:01:22 -0800</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>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820840</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-06 17:39:02 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820847</commentid>
    <comment_count>1</comment_count>
      <attachid>446106</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-06 18:27:47 -0800</bug_when>
    <thetext>Created attachment 446106
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820849</commentid>
    <comment_count>2</comment_count>
      <attachid>446106</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-06 18:33:32 -0800</bug_when>
    <thetext>Comment on attachment 446106
patch

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

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:283
&gt; +    if (isInt(Adaptor::typeValue) &amp;&amp; isInt(ci-&gt;typedArrayStorageType) &amp;&amp; !isClamped(Adaptor::typeValue) &amp;&amp; JSC::elementSize(Adaptor::typeValue) == JSC::elementSize(ci-&gt;typedArrayStorageType))

Nit: Why do you need the isClamped check? Shouldn&apos;t that follow from the if above and the fact that the elementSizes are the same? It might still be worth having as an ASSERT in the body of this if though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820883</commentid>
    <comment_count>3</comment_count>
      <attachid>446106</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-06 21:50:06 -0800</bug_when>
    <thetext>Comment on attachment 446106
patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:283
&gt;&gt; +    if (isInt(Adaptor::typeValue) &amp;&amp; isInt(ci-&gt;typedArrayStorageType) &amp;&amp; !isClamped(Adaptor::typeValue) &amp;&amp; JSC::elementSize(Adaptor::typeValue) == JSC::elementSize(ci-&gt;typedArrayStorageType))
&gt; 
&gt; Nit: Why do you need the isClamped check? Shouldn&apos;t that follow from the if above and the fact that the elementSizes are the same? It might still be worth having as an ASSERT in the body of this if though.

No, because we could have something like, |this| is Uint8ClampedArray and the source is Int8Array. Above check doesn&apos;t hit, element sizes are the same, but we can&apos;t use this copying path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820884</commentid>
    <comment_count>4</comment_count>
      <attachid>446120</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-06 21:50:24 -0800</bug_when>
    <thetext>Created attachment 446120
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820885</commentid>
    <comment_count>5</comment_count>
      <attachid>446120</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-12-06 21:51:12 -0800</bug_when>
    <thetext>Comment on attachment 446120
patch for landing

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

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:219
&gt; +        || (elementSize == otherElementSize &amp;&amp; (static_cast&lt;void*&gt;(typedVector() + offset) &lt;= static_cast&lt;void*&gt;(other-&gt;typedVector() + otherOffset)))

this fixes a pre-existing bug where we sometimes do a forwards loop even though we should&apos;ve been doing a backwards loop. I added a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821008</commentid>
    <comment_count>6</comment_count>
      <attachid>446120</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-12-07 06:08:10 -0800</bug_when>
    <thetext>Comment on attachment 446120
patch for landing

r=me again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821346</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-07 20:00:30 -0800</bug_when>
    <thetext>Committed r286639 (244952@main): &lt;https://commits.webkit.org/244952@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446120.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821347</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 20:01:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/86189423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446106</attachid>
            <date>2021-12-06 18:27:47 -0800</date>
            <delta_ts>2021-12-06 21:50:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>7111</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODY1ODQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTEyLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFR5cGVkQXJyYXkgcHJvdG90eXBlIHNldCBzaG91bGQgZ28gZG93biB0
aGUgZmFzdCBwYXRoIHdoZW4gdXNpbmcgbm9uIGNsYW1wZWQgaW50ZWdlciB0eXBlcyBvZiB0aGUg
c2FtZSBieXRlIHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogbWljcm9iZW5jaG1hcmtzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1zZXQuanM6IEFk
ZGVkLgorICAgICAgICAqIHN0cmVzcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzOiBBZGRl
ZC4KKwogMjAyMS0xMi0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIHNoZWxsJ3MgJC5nbG9iYWxPYmplY3RGb3IgaXMgbm90IHNhZmUgZm9yIG5v
biBvYmplY3QgY2VsbHMKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3R5cGVkLWFycmF5
LXByb3RvdHlwZS1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
dHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHggPSBuZXcgSW50
OEFycmF5KDEwMDAwKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50OEFycmF5KDEwMDAwKTsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyArK2kpCisgICAgICAgIHhbaV0gPSBpOworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyArK2kpCisgICAgICAgIHkuc2V0KHgpOworICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgNTAwOyArK2kpCisgICAgICAgIHguc2V0KHkpOworfQorCitmdW5j
dGlvbiB0ZXN0MigpIHsKKyAgICBsZXQgeCA9IG5ldyBJbnQxNkFycmF5KDEwMDAwKTsKKyAgICBs
ZXQgeSA9IG5ldyBVaW50MTZBcnJheSgxMDAwMCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4
Lmxlbmd0aDsgKytpKQorICAgICAgICB4W2ldID0gaTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDUwMDsgKytpKQorICAgICAgICB5LnNldCh4KTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUw
MDsgKytpKQorICAgICAgICB4LnNldCh5KTsKK30KKworZnVuY3Rpb24gdGVzdDMoKSB7CisgICAg
bGV0IHggPSBuZXcgSW50MzJBcnJheSgxMDAwMCk7CisgICAgbGV0IHkgPSBuZXcgVWludDMyQXJy
YXkoMTAwMDApOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7ICsraSkKKyAgICAg
ICAgeFtpXSA9IGk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKKyAgICAgICAg
eS5zZXQoeCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKKyAgICAgICAgeC5z
ZXQoeSk7Cit9CisKK2Z1bmN0aW9uIHRlc3Q0KCkgeworICAgIGxldCB4ID0gbmV3IFVpbnQ4Q2xh
bXBlZEFycmF5KDEwMDAwKTsKKyAgICBsZXQgeSA9IG5ldyBJbnQ4QXJyYXkoMTAwMDApOworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7ICsraSkKKyAgICAgICAgeFtpXSA9IGk7Cisg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKKyAgICAgICAgeS5zZXQoeCk7Cit9CisK
K3Rlc3QoKTsKK3Rlc3QyKCk7Cit0ZXN0MygpOwordGVzdDQoKTsKSW5kZXg6IEpTVGVzdHMvc3Ry
ZXNzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9z
dHJlc3MvdHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzL3N0cmVzcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjcgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkgeworICAgIGxldCB4ID0g
bmV3IEludDhBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50OEFycmF5KDEpOworICAgIHhb
MF0gPSAtMTsKKyAgICB5LnNldCh4KTsKKyAgICBhc3NlcnQoeVswXSA9PT0gMjU1KTsKK30KK3Rl
c3QxKCk7CisKK2Z1bmN0aW9uIHRlc3QyKCkgeworICAgIGxldCB4ID0gbmV3IEludDhBcnJheSgx
KTsKKyAgICBsZXQgeSA9IG5ldyBVaW50OEFycmF5KDEpOworICAgIHlbMF0gPSAyNTU7CisgICAg
eC5zZXQoeSk7CisgICAgYXNzZXJ0KHhbMF0gPT09IC0xKTsKK30KK3Rlc3QyKCk7CisKK2Z1bmN0
aW9uIHRlc3QzKCkgeworICAgIGxldCB4ID0gbmV3IEludDE2QXJyYXkoMSk7CisgICAgbGV0IHkg
PSBuZXcgVWludDE2QXJyYXkoMSk7CisgICAgeFswXSA9IC0xOworICAgIHkuc2V0KHgpOworICAg
IGFzc2VydCh5WzBdID09PSA2NTUzNSk7Cit9Cit0ZXN0MygpOworCitmdW5jdGlvbiB0ZXN0NCgp
IHsKKyAgICBsZXQgeCA9IG5ldyBJbnQxNkFycmF5KDEpOworICAgIGxldCB5ID0gbmV3IFVpbnQx
NkFycmF5KDEpOworICAgIHlbMF0gPSA2NTUzNTsKKyAgICB4LnNldCh5KTsKKyAgICBhc3NlcnQo
eFswXSA9PT0gLTEpOworfQordGVzdDQoKTsKKworZnVuY3Rpb24gdGVzdDUoKSB7CisgICAgbGV0
IHggPSBuZXcgSW50MzJBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50MzJBcnJheSgxKTsK
KyAgICB4WzBdID0gLTE7CisgICAgeS5zZXQoeCk7CisgICAgYXNzZXJ0KHlbMF0gPT09IDQyOTQ5
NjcyOTUpOworfQordGVzdDUoKTsKKworZnVuY3Rpb24gdGVzdDYoKSB7CisgICAgbGV0IHggPSBu
ZXcgSW50MzJBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50MzJBcnJheSgxKTsKKyAgICB5
WzBdID0gNDI5NDk2NzI5NTsKKyAgICB4LnNldCh5KTsKKyAgICBhc3NlcnQoeFswXSA9PT0gLTEp
OworfQordGVzdDYoKTsKKworZnVuY3Rpb24gdGVzdDcoKSB7CisgICAgbGV0IHggPSBuZXcgVWlu
dDhDbGFtcGVkQXJyYXkoMSk7CisgICAgbGV0IHkgPSBuZXcgSW50OEFycmF5KDEpOworICAgIHhb
MF0gPSAyNTU7CisgICAgeS5zZXQoeCk7CisgICAgYXNzZXJ0KHlbMF0gPT09IC0xKTsKK30KK3Rl
c3Q3KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NjU1NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0xMi0wNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBUeXBlZEFycmF5IHByb3RvdHlwZSBzZXQgc2hvdWxkIGdvIGRvd24gdGhlIGZhc3Qg
cGF0aCB3aGVuIHVzaW5nIG5vbiBjbGFtcGVkIGludGVnZXIgdHlwZXMgb2YgdGhlIHNhbWUgYnl0
ZSBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjYW4gdXNlIG1lbW1vdmUgaW4gdGhpcyBzY2VuYXJpbyBiZWNhdXNlIHRoZSBiaXRwYXR0ZXJu
IG9mIHRoZQorICAgICAgICBkYXRhIGJldHdlZW4gdGhlIHNpZ25lZCBhbmQgdW5zaWduZWQgdmFs
dWVzIHdpbGwgYmUgdGhlIHNhbWUuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmll
dzxBZGFwdG9yPjo6c2V0KToKKwogMjAyMS0xMi0wMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgU3RydWN0dXJlSURCbG9iCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAkocmV2aXNpb24gMjg2NTU1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1NSwzNCArMjU1LDM0IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj46OnMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgYXV0byBtZW1tb3Zl
RmFzdFBhdGggPSBbJl0gKGF1dG8qIG90aGVyKSB7CisgICAgYXV0byBtZW1tb3ZlRmFzdFBhdGgg
PSBbJl0gKEpTQXJyYXlCdWZmZXJWaWV3KiBvdGhlcikgewogICAgICAgICAvLyBUaGUgc3VwZXIg
ZmFzdCBjYXNlOiB3ZSBjYW4ganVzdCBtZW1tb3ZlIHNpbmNlIHdlJ3JlIHRoZSBzYW1lIHVuZGVy
bHlpbmcgc3RvcmFnZSB0eXBlLgogICAgICAgICBsZW5ndGggPSBzdGQ6Om1pbihsZW5ndGgsIG90
aGVyLT5sZW5ndGgoKSk7CiAgICAgICAgIAotICAgICAgICBSRUxFQVNFX0FTU0VSVChvdGhlci0+
Y2FuQWNjZXNzUmFuZ2VRdWlja2x5KG9iamVjdE9mZnNldCwgbGVuZ3RoKSk7CiAgICAgICAgIGJv
b2wgc3VjY2VzcyA9IHZhbGlkYXRlUmFuZ2UoZ2xvYmFsT2JqZWN0LCBvZmZzZXQsIGxlbmd0aCk7
CiAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpID09IHN1Y2Nlc3Mp
OwogICAgICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZV92PGRlY2x0eXBlKHR5cGVkVmVjdG9y
KCkpLCBkZWNsdHlwZShvdGhlci0+dHlwZWRWZWN0b3IoKSk+KSk7Ci0gICAgICAgIG1lbW1vdmUo
dHlwZWRWZWN0b3IoKSArIG9mZnNldCwgb3RoZXItPnR5cGVkVmVjdG9yKCkgKyBvYmplY3RPZmZz
ZXQsIGxlbmd0aCAqIGVsZW1lbnRTaXplKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNDOjpl
bGVtZW50U2l6ZShBZGFwdG9yOjp0eXBlVmFsdWUpID09IEpTQzo6ZWxlbWVudFNpemUob3RoZXIt
PmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpOworICAgICAgICBtZW1tb3Zl
KHR5cGVkVmVjdG9yKCkgKyBvZmZzZXQsIGJpdHdpc2VfY2FzdDx0eXBlbmFtZSBBZGFwdG9yOjpU
eXBlKj4ob3RoZXItPnZlY3RvcigpKSArIG9iamVjdE9mZnNldCwgbGVuZ3RoICogZWxlbWVudFNp
emUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwogCiAgICAgY29uc3QgQ2xhc3NJbmZv
KiBjaSA9IG9iamVjdC0+Y2xhc3NJbmZvKHZtKTsKICAgICBpZiAoY2ktPnR5cGVkQXJyYXlTdG9y
YWdlVHlwZSA9PSBBZGFwdG9yOjp0eXBlVmFsdWUpCi0gICAgICAgIHJldHVybiBtZW1tb3ZlRmFz
dFBhdGgoanNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2JqZWN0KSk7CisgICAgICAg
IHJldHVybiBtZW1tb3ZlRmFzdFBhdGgoanNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4ob2JqZWN0
KSk7CiAKICAgICBhdXRvIGlzU29tZVVpbnQ4ID0gW10gKFR5cGVkQXJyYXlUeXBlIHR5cGUpIHsK
ICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVHlwZWRBcnJheVR5cGU6OlR5cGVVaW50OCB8fCB0eXBl
ID09IFR5cGVkQXJyYXlUeXBlOjpUeXBlVWludDhDbGFtcGVkOwogICAgIH07Ci0gICAgaWYgKGlz
U29tZVVpbnQ4KGNpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpICYmIGlzU29tZVVpbnQ4KEFkYXB0
b3I6OnR5cGVWYWx1ZSkpIHsKLSAgICAgICAgaWYgKGNpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUg
PT0gVHlwZWRBcnJheVR5cGU6OlR5cGVVaW50OCkKLSAgICAgICAgICAgIHJldHVybiBtZW1tb3Zl
RmFzdFBhdGgoanNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PFVpbnQ4QWRhcHRvcj4qPihv
YmplY3QpKTsKLSAgICAgICAgcmV0dXJuIG1lbW1vdmVGYXN0UGF0aChqc0Nhc3Q8SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXc8VWludDhDbGFtcGVkQWRhcHRvcj4qPihvYmplY3QpKTsKLSAgICB9Ci0g
ICAgCisKKyAgICBpZiAoaXNTb21lVWludDgoY2ktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgJiYg
aXNTb21lVWludDgoQWRhcHRvcjo6dHlwZVZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG1lbW1vdmVG
YXN0UGF0aChqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmplY3QpKTsKKworICAgIGlmIChp
c0ludChBZGFwdG9yOjp0eXBlVmFsdWUpICYmIGlzSW50KGNpLT50eXBlZEFycmF5U3RvcmFnZVR5
cGUpICYmICFpc0NsYW1wZWQoQWRhcHRvcjo6dHlwZVZhbHVlKSAmJiBKU0M6OmVsZW1lbnRTaXpl
KEFkYXB0b3I6OnR5cGVWYWx1ZSkgPT0gSlNDOjplbGVtZW50U2l6ZShjaS0+dHlwZWRBcnJheVN0
b3JhZ2VUeXBlKSkKKyAgICAgICAgcmV0dXJuIG1lbW1vdmVGYXN0UGF0aChqc0Nhc3Q8SlNBcnJh
eUJ1ZmZlclZpZXcqPihvYmplY3QpKTsKKwogICAgIHN3aXRjaCAoY2ktPnR5cGVkQXJyYXlTdG9y
YWdlVHlwZSkgewogICAgIGNhc2UgVHlwZUludDg6CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgc2V0V2l0aFNwZWNpZmljVHlwZTxJbnQ4QWRhcHRvcj4oCg==
</data>
<flag name="review"
          id="471438"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
    <flag name="commit-queue"
          id="471449"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446120</attachid>
            <date>2021-12-06 21:50:24 -0800</date>
            <delta_ts>2021-12-07 20:00:31 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>10571</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODY1ODQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTEyLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFR5cGVkQXJyYXkgcHJvdG90eXBlIHNldCBzaG91bGQgZ28gZG93biB0
aGUgZmFzdCBwYXRoIHdoZW4gdXNpbmcgbm9uIGNsYW1wZWQgaW50ZWdlciB0eXBlcyBvZiB0aGUg
c2FtZSBieXRlIHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KKworICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvdHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC1v
cmRlci5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1z
ZXQuanM6IEFkZGVkLgorCiAyMDIxLTEyLTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gc2hlbGwncyAkLmdsb2JhbE9iamVjdEZvciBpcyBub3Qg
c2FmZSBmb3Igbm9uIG9iamVjdCBjZWxscwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
dHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzCShub25leGlzdGVudCkKKysr
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1zZXQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQg
eCA9IG5ldyBJbnQ4QXJyYXkoMTAwMDApOworICAgIGxldCB5ID0gbmV3IFVpbnQ4QXJyYXkoMTAw
MDApOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeC5sZW5ndGg7ICsraSkKKyAgICAgICAgeFtp
XSA9IGk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKKyAgICAgICAgeS5zZXQo
eCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDA7ICsraSkKKyAgICAgICAgeC5zZXQoeSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QyKCkgeworICAgIGxldCB4ID0gbmV3IEludDE2QXJyYXkoMTAw
MDApOworICAgIGxldCB5ID0gbmV3IFVpbnQxNkFycmF5KDEwMDAwKTsKKyAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IHgubGVuZ3RoOyArK2kpCisgICAgICAgIHhbaV0gPSBpOworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgNTAwOyArK2kpCisgICAgICAgIHkuc2V0KHgpOworICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgNTAwOyArK2kpCisgICAgICAgIHguc2V0KHkpOworfQorCitmdW5jdGlvbiB0ZXN0
MygpIHsKKyAgICBsZXQgeCA9IG5ldyBJbnQzMkFycmF5KDEwMDAwKTsKKyAgICBsZXQgeSA9IG5l
dyBVaW50MzJBcnJheSgxMDAwMCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsg
KytpKQorICAgICAgICB4W2ldID0gaTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgKytp
KQorICAgICAgICB5LnNldCh4KTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgKytpKQor
ICAgICAgICB4LnNldCh5KTsKK30KKworZnVuY3Rpb24gdGVzdDQoKSB7CisgICAgbGV0IHggPSBu
ZXcgVWludDhDbGFtcGVkQXJyYXkoMTAwMDApOworICAgIGxldCB5ID0gbmV3IEludDhBcnJheSgx
MDAwMCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgKytpKQorICAgICAgICB4
W2ldID0gaTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgKytpKQorICAgICAgICB5LnNl
dCh4KTsKK30KKwordGVzdCgpOwordGVzdDIoKTsKK3Rlc3QzKCk7Cit0ZXN0NCgpOwpJbmRleDog
SlNUZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC1vcmRlci5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LW9yZGVyLmpz
CShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1z
ZXQtb3JkZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gYXNz
ZXJ0KGIpIHsKKyAgICBpZiAoIWIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcjsKK30KKworZnVu
Y3Rpb24gZm9vKG4pIHsKKyAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhDbGFtcGVkQXJyYXkobiAr
IDEpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKQorICAgICAgICBhcnJheVtpXSA9
IDQyICsgaTsKKyAgICBhcnJheS5zZXQobmV3IEludDhBcnJheShhcnJheS5idWZmZXIsIDAsIG4p
LCAxKTsKKyAgICByZXR1cm4gYXJyYXk7Cit9Cithc3NlcnQoZm9vKDEwKS50b1N0cmluZygpID09
PSAiNDIsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEiKTsKSW5kZXg6IEpTVGVzdHMvc3Ry
ZXNzL3R5cGVkLWFycmF5LXByb3RvdHlwZS1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9z
dHJlc3MvdHlwZWQtYXJyYXktcHJvdG90eXBlLXNldC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzL3N0cmVzcy90eXBlZC1hcnJheS1wcm90b3R5cGUtc2V0LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjcgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIHRlc3QxKCkgeworICAgIGxldCB4ID0g
bmV3IEludDhBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50OEFycmF5KDEpOworICAgIHhb
MF0gPSAtMTsKKyAgICB5LnNldCh4KTsKKyAgICBhc3NlcnQoeVswXSA9PT0gMjU1KTsKK30KK3Rl
c3QxKCk7CisKK2Z1bmN0aW9uIHRlc3QyKCkgeworICAgIGxldCB4ID0gbmV3IEludDhBcnJheSgx
KTsKKyAgICBsZXQgeSA9IG5ldyBVaW50OEFycmF5KDEpOworICAgIHlbMF0gPSAyNTU7CisgICAg
eC5zZXQoeSk7CisgICAgYXNzZXJ0KHhbMF0gPT09IC0xKTsKK30KK3Rlc3QyKCk7CisKK2Z1bmN0
aW9uIHRlc3QzKCkgeworICAgIGxldCB4ID0gbmV3IEludDE2QXJyYXkoMSk7CisgICAgbGV0IHkg
PSBuZXcgVWludDE2QXJyYXkoMSk7CisgICAgeFswXSA9IC0xOworICAgIHkuc2V0KHgpOworICAg
IGFzc2VydCh5WzBdID09PSA2NTUzNSk7Cit9Cit0ZXN0MygpOworCitmdW5jdGlvbiB0ZXN0NCgp
IHsKKyAgICBsZXQgeCA9IG5ldyBJbnQxNkFycmF5KDEpOworICAgIGxldCB5ID0gbmV3IFVpbnQx
NkFycmF5KDEpOworICAgIHlbMF0gPSA2NTUzNTsKKyAgICB4LnNldCh5KTsKKyAgICBhc3NlcnQo
eFswXSA9PT0gLTEpOworfQordGVzdDQoKTsKKworZnVuY3Rpb24gdGVzdDUoKSB7CisgICAgbGV0
IHggPSBuZXcgSW50MzJBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50MzJBcnJheSgxKTsK
KyAgICB4WzBdID0gLTE7CisgICAgeS5zZXQoeCk7CisgICAgYXNzZXJ0KHlbMF0gPT09IDQyOTQ5
NjcyOTUpOworfQordGVzdDUoKTsKKworZnVuY3Rpb24gdGVzdDYoKSB7CisgICAgbGV0IHggPSBu
ZXcgSW50MzJBcnJheSgxKTsKKyAgICBsZXQgeSA9IG5ldyBVaW50MzJBcnJheSgxKTsKKyAgICB5
WzBdID0gNDI5NDk2NzI5NTsKKyAgICB4LnNldCh5KTsKKyAgICBhc3NlcnQoeFswXSA9PT0gLTEp
OworfQordGVzdDYoKTsKKworZnVuY3Rpb24gdGVzdDcoKSB7CisgICAgbGV0IHggPSBuZXcgVWlu
dDhDbGFtcGVkQXJyYXkoMSk7CisgICAgbGV0IHkgPSBuZXcgSW50OEFycmF5KDEpOworICAgIHhb
MF0gPSAyNTU7CisgICAgeS5zZXQoeCk7CisgICAgYXNzZXJ0KHlbMF0gPT09IC0xKTsKK30KK3Rl
c3Q3KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NjU1NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMCBAQAorMjAyMS0xMi0wNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBUeXBlZEFycmF5IHByb3RvdHlwZSBzZXQgc2hvdWxkIGdvIGRvd24gdGhlIGZhc3Qg
cGF0aCB3aGVuIHVzaW5nIG5vbiBjbGFtcGVkIGludGVnZXIgdHlwZXMgb2YgdGhlIHNhbWUgYnl0
ZSBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBLZWl0aCBNaWxsZXIuCisKKyAgICAgICAgV2Ug
Y2FuIHVzZSBtZW1tb3ZlIGluIHRoaXMgc2NlbmFyaW8gYmVjYXVzZSB0aGUgYml0cGF0dGVybiBv
ZiB0aGUKKyAgICAgICAgZGF0YSBiZXR3ZWVuIHRoZSBzaWduZWQgYW5kIHVuc2lnbmVkIHZhbHVl
cyB3aWxsIGJlIHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBhIGJ1
ZyB3aGVyZSB3ZSB3ZXJlIGxvb2tpbmcgYXQgdGhlIHdyb25nCisgICAgICAgIHBvaW50ZXIgd2hl
biBkZXRlcm1pbmluZyB0byBkbyBhIGZvcndhcmQgb3IgYmFja3dhcmRzIGxvb3AgaW4KKyAgICAg
ICAgb3VyIG1lbW1vdmUuIFdlIHdlcmUgbG9va2luZyBhdCB0aGUgdmVjdG9yIGluc3RlYWQgb2Yg
dmVjdG9yK29mZnNldC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0
b3I+OjpzZXQpOgorCiAyMDIxLTEyLTAzICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBTdHJ1Y3R1cmVJREJsb2IKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oCShyZXZpc2lvbiAyODY1NTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjE2LDcgKzIxNiw3IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRh
cHRvcj46OnMKICAgICAvLyBIYW5kbGUgY2FzZXMgKDEpIGFuZCAoMkEpLgogICAgIGlmICghaGFz
QXJyYXlCdWZmZXIoKSB8fCAhb3RoZXItPmhhc0FycmF5QnVmZmVyKCkKICAgICAgICAgfHwgZXhp
c3RpbmdCdWZmZXIoKSAhPSBvdGhlci0+ZXhpc3RpbmdCdWZmZXIoKQotICAgICAgICB8fCAoZWxl
bWVudFNpemUgPT0gb3RoZXJFbGVtZW50U2l6ZSAmJiB2ZWN0b3IoKSA8PSBvdGhlci0+dmVjdG9y
KCkpCisgICAgICAgIHx8IChlbGVtZW50U2l6ZSA9PSBvdGhlckVsZW1lbnRTaXplICYmIChzdGF0
aWNfY2FzdDx2b2lkKj4odHlwZWRWZWN0b3IoKSArIG9mZnNldCkgPD0gc3RhdGljX2Nhc3Q8dm9p
ZCo+KG90aGVyLT50eXBlZFZlY3RvcigpICsgb3RoZXJPZmZzZXQpKSkKICAgICAgICAgfHwgdHlw
ZSA9PSBDb3B5VHlwZTo6TGVmdFRvUmlnaHQpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgc2V0SW5kZXhRdWlja2x5VG9OYXRpdmVW
YWx1ZSgKQEAgLTI1NSwzNCArMjU1LDM0IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OnMKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgYXV0byBtZW1tb3ZlRmFzdFBh
dGggPSBbJl0gKGF1dG8qIG90aGVyKSB7CisgICAgYXV0byBtZW1tb3ZlRmFzdFBhdGggPSBbJl0g
KEpTQXJyYXlCdWZmZXJWaWV3KiBvdGhlcikgewogICAgICAgICAvLyBUaGUgc3VwZXIgZmFzdCBj
YXNlOiB3ZSBjYW4ganVzdCBtZW1tb3ZlIHNpbmNlIHdlJ3JlIHRoZSBzYW1lIHVuZGVybHlpbmcg
c3RvcmFnZSB0eXBlLgogICAgICAgICBsZW5ndGggPSBzdGQ6Om1pbihsZW5ndGgsIG90aGVyLT5s
ZW5ndGgoKSk7CiAgICAgICAgIAotICAgICAgICBSRUxFQVNFX0FTU0VSVChvdGhlci0+Y2FuQWNj
ZXNzUmFuZ2VRdWlja2x5KG9iamVjdE9mZnNldCwgbGVuZ3RoKSk7CiAgICAgICAgIGJvb2wgc3Vj
Y2VzcyA9IHZhbGlkYXRlUmFuZ2UoZ2xvYmFsT2JqZWN0LCBvZmZzZXQsIGxlbmd0aCk7CiAgICAg
ICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpID09IHN1Y2Nlc3MpOwogICAg
ICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAg
UkVMRUFTRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZV92PGRlY2x0eXBlKHR5cGVkVmVjdG9yKCkpLCBk
ZWNsdHlwZShvdGhlci0+dHlwZWRWZWN0b3IoKSk+KSk7Ci0gICAgICAgIG1lbW1vdmUodHlwZWRW
ZWN0b3IoKSArIG9mZnNldCwgb3RoZXItPnR5cGVkVmVjdG9yKCkgKyBvYmplY3RPZmZzZXQsIGxl
bmd0aCAqIGVsZW1lbnRTaXplKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNDOjplbGVtZW50
U2l6ZShBZGFwdG9yOjp0eXBlVmFsdWUpID09IEpTQzo6ZWxlbWVudFNpemUob3RoZXItPmNsYXNz
SW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpOworICAgICAgICBtZW1tb3ZlKHR5cGVk
VmVjdG9yKCkgKyBvZmZzZXQsIGJpdHdpc2VfY2FzdDx0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKj4o
b3RoZXItPnZlY3RvcigpKSArIG9iamVjdE9mZnNldCwgbGVuZ3RoICogZWxlbWVudFNpemUpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwogCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjaSA9
IG9iamVjdC0+Y2xhc3NJbmZvKHZtKTsKICAgICBpZiAoY2ktPnR5cGVkQXJyYXlTdG9yYWdlVHlw
ZSA9PSBBZGFwdG9yOjp0eXBlVmFsdWUpCi0gICAgICAgIHJldHVybiBtZW1tb3ZlRmFzdFBhdGgo
anNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2JqZWN0KSk7CisgICAgICAgIHJldHVy
biBtZW1tb3ZlRmFzdFBhdGgoanNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4ob2JqZWN0KSk7CiAK
ICAgICBhdXRvIGlzU29tZVVpbnQ4ID0gW10gKFR5cGVkQXJyYXlUeXBlIHR5cGUpIHsKICAgICAg
ICAgcmV0dXJuIHR5cGUgPT0gVHlwZWRBcnJheVR5cGU6OlR5cGVVaW50OCB8fCB0eXBlID09IFR5
cGVkQXJyYXlUeXBlOjpUeXBlVWludDhDbGFtcGVkOwogICAgIH07Ci0gICAgaWYgKGlzU29tZVVp
bnQ4KGNpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpICYmIGlzU29tZVVpbnQ4KEFkYXB0b3I6OnR5
cGVWYWx1ZSkpIHsKLSAgICAgICAgaWYgKGNpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUgPT0gVHlw
ZWRBcnJheVR5cGU6OlR5cGVVaW50OCkKLSAgICAgICAgICAgIHJldHVybiBtZW1tb3ZlRmFzdFBh
dGgoanNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PFVpbnQ4QWRhcHRvcj4qPihvYmplY3Qp
KTsKLSAgICAgICAgcmV0dXJuIG1lbW1vdmVGYXN0UGF0aChqc0Nhc3Q8SlNHZW5lcmljVHlwZWRB
cnJheVZpZXc8VWludDhDbGFtcGVkQWRhcHRvcj4qPihvYmplY3QpKTsKLSAgICB9Ci0gICAgCisK
KyAgICBpZiAoaXNTb21lVWludDgoY2ktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgJiYgaXNTb21l
VWludDgoQWRhcHRvcjo6dHlwZVZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG1lbW1vdmVGYXN0UGF0
aChqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmplY3QpKTsKKworICAgIGlmIChpc0ludChB
ZGFwdG9yOjp0eXBlVmFsdWUpICYmIGlzSW50KGNpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpICYm
ICFpc0NsYW1wZWQoQWRhcHRvcjo6dHlwZVZhbHVlKSAmJiBKU0M6OmVsZW1lbnRTaXplKEFkYXB0
b3I6OnR5cGVWYWx1ZSkgPT0gSlNDOjplbGVtZW50U2l6ZShjaS0+dHlwZWRBcnJheVN0b3JhZ2VU
eXBlKSkKKyAgICAgICAgcmV0dXJuIG1lbW1vdmVGYXN0UGF0aChqc0Nhc3Q8SlNBcnJheUJ1ZmZl
clZpZXcqPihvYmplY3QpKTsKKwogICAgIHN3aXRjaCAoY2ktPnR5cGVkQXJyYXlTdG9yYWdlVHlw
ZSkgewogICAgIGNhc2UgVHlwZUludDg6CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgc2V0V2l0aFNwZWNpZmljVHlwZTxJbnQ4QWRhcHRvcj4oCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
ODY1ODYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0xMi0wNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBUeXBlZEFycmF5IHByb3RvdHlwZSBzZXQgc2hvdWxkIGdvIGRvd24gdGhlIGZhc3Qg
cGF0aCB3aGVuIHVzaW5nIG5vbiBjbGFtcGVkIGludGVnZXIgdHlwZXMgb2YgdGhlIHNhbWUgYnl0
ZSBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBLZWl0aCBNaWxsZXIuCisKKyAgICAgICAgKiBq
cy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1zZXQtb3ZlcmxhcHBpbmctZWxlbWVudHMtb2Ytc2Ft
ZS1zaXplLmpzOgorICAgICAgICAqIGpzL3R5cGVkYXJyYXktc2V0LW92ZXJsYXBwaW5nLWVsZW1l
bnRzLW9mLXNhbWUtc2l6ZS1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTItMDYgIExhdXJvIE1vdXJh
ICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFNtYWxsIGdhcmRlbmluZwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvdHlwZWRhcnJheS1zZXQtb3ZlcmxhcHBpbmctZWxlbWVudHMt
b2Ytc2FtZS1zaXplLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy90
eXBlZGFycmF5LXNldC1vdmVybGFwcGluZy1lbGVtZW50cy1vZi1zYW1lLXNpemUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyODY1NTUpCisrKyBMYXlvdXRUZXN0cy9qcy90eXBlZGFycmF5LXNldC1v
dmVybGFwcGluZy1lbGVtZW50cy1vZi1zYW1lLXNpemUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0cyB0aGUgY29kZSBwYXRoIG9mIHR5cGVkQXJyYXkuc2V0
IHRoCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBmb28oMTApIGlzIFs0Miw0
Miw0Miw0Miw0Miw0Miw0Miw0Miw0Miw0Miw0Ml0KK1BBU1MgZm9vKDEwKSBpcyBbNDIsNDIsNDMs
NDQsNDUsNDYsNDcsNDgsNDksNTAsNTFdCiBQQVNTIGJhcigxMCkgaXMgWzQyLDQzLDQ0LDQ1LDQ2
LDQ3LDQ4LDQ5LDUwLDUxLDUxXQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvdHlwZWRhcnJheS1zZXQtb3ZlcmxhcHBp
bmctZWxlbWVudHMtb2Ytc2FtZS1zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy90eXBlZGFycmF5LXNldC1vdmVybGFwcGluZy1lbGVtZW50cy1vZi1zYW1l
LXNpemUuanMJKHJldmlzaW9uIDI4NjU1NSkKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy90eXBlZGFycmF5LXNldC1vdmVybGFwcGluZy1lbGVtZW50cy1vZi1zYW1lLXNpemUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDYgQEAgZnVuY3Rpb24gYmFyKG4pIHsKICAgICByZXR1
cm4gYXJyYXk7CiB9CiAKLXNob3VsZEJlKCJmb28oMTApIiwgIls0Miw0Miw0Miw0Miw0Miw0Miw0
Miw0Miw0Miw0Miw0Ml0iKTsKK3Nob3VsZEJlKCJmb28oMTApIiwgIls0Miw0Miw0Myw0NCw0NSw0
Niw0Nyw0OCw0OSw1MCw1MV0iKTsKIHNob3VsZEJlKCJiYXIoMTApIiwgIls0Miw0Myw0NCw0NSw0
Niw0Nyw0OCw0OSw1MCw1MSw1MV0iKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>