<?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>230058</bug_id>
          
          <creation_ts>2021-09-08 12:35:20 -0700</creation_ts>
          <short_desc>Use std::not_fn instead of lambda in URLParser</short_desc>
          <delta_ts>2021-09-10 16:52:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1791577</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-08 12:35:20 -0700</bug_when>
    <thetext>Use std::not_fn instead of lambda in URLParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791582</commentid>
    <comment_count>1</comment_count>
      <attachid>437657</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-08 12:48:13 -0700</bug_when>
    <thetext>Created attachment 437657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791599</commentid>
    <comment_count>2</comment_count>
      <attachid>437662</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-08 13:24:40 -0700</bug_when>
    <thetext>Created attachment 437662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791686</commentid>
    <comment_count>3</comment_count>
      <attachid>437678</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-08 16:35:41 -0700</bug_when>
    <thetext>Created attachment 437678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792166</commentid>
    <comment_count>4</comment_count>
      <attachid>437678</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-09 16:58:06 -0700</bug_when>
    <thetext>Comment on attachment 437678
Patch

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

&gt; Source/WTF/wtf/text/StringCommon.h:539
&gt; +template&lt;typename CharacterType, std::enable_if_t&lt;std::is_integral&lt;CharacterType&gt;::value&gt;* = nullptr&gt;

You can use std::is_integral_v.

&gt; Source/WTF/wtf/text/StringImpl.h:596
&gt; +template&lt;typename CodeUnitMatchFunction, std::enable_if_t&lt;std::is_invocable_r&lt;bool, CodeUnitMatchFunction, UChar&gt;::value&gt;* = nullptr&gt;

UChar → LChar
You can use is_invocable_r_v.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792231</commentid>
    <comment_count>5</comment_count>
      <attachid>437678</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 20:47:38 -0700</bug_when>
    <thetext>Comment on attachment 437678
Patch

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

&gt;&gt; Source/WTF/wtf/text/StringImpl.h:596
&gt;&gt; +template&lt;typename CodeUnitMatchFunction, std::enable_if_t&lt;std::is_invocable_r&lt;bool, CodeUnitMatchFunction, UChar&gt;::value&gt;* = nullptr&gt;
&gt; 
&gt; UChar → LChar
&gt; You can use is_invocable_r_v.

UChar is correct here because CodeUnitMatchFunction used to be bool (*)(UChar) and it will be called with UChar.
I like is_invocable_r_v though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792232</commentid>
    <comment_count>6</comment_count>
      <attachid>437831</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 20:49:41 -0700</bug_when>
    <thetext>Created attachment 437831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792234</commentid>
    <comment_count>7</comment_count>
      <attachid>437831</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-09 20:55:17 -0700</bug_when>
    <thetext>Comment on attachment 437831
Patch

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

&gt; Source/WTF/wtf/text/WTFString.h:173
&gt;      size_t find(CodeUnitMatchFunction matchFunction, unsigned start = 0) const { return m_impl ? m_impl-&gt;find(matchFunction, start) : notFound; }

Does this copy the matchFunction object? Should you use CodeUnitMatchFunction&amp;&amp; and std::forward here?
You don&apos;t templatize StringImpl::find(CodeUnitMatchFunction, unsigned index). Why can you call it with matchFunction? Does this convert matchFunction to bool (*)(UChar)? If so, why do you need to templatize this method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792237</commentid>
    <comment_count>8</comment_count>
      <attachid>437831</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-09 21:07:35 -0700</bug_when>
    <thetext>Comment on attachment 437831
Patch

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

&gt; Source/WTF/wtf/text/StringImpl.h:659
&gt; +template&lt;typename CodeUnitMatchFunction, std::enable_if_t&lt;std::is_invocable_r_v&lt;bool, CodeUnitMatchFunction, UChar&gt;&gt;*&gt;

Now both &apos;find&apos; are template functions. How about unifying them by templatize LChar and UChar?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792238</commentid>
    <comment_count>9</comment_count>
      <attachid>437831</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-09 21:14:47 -0700</bug_when>
    <thetext>Comment on attachment 437831
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:78
&gt; +static TestNavigationDelegate *delegateAllowingAllTLS()

These changes seems came from other bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792258</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 00:09:15 -0700</bug_when>
    <thetext>Oh I see.  LChar is indeed correct in the one you suggested because it will be called with LChar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792262</commentid>
    <comment_count>11</comment_count>
      <attachid>437848</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 00:21:55 -0700</bug_when>
    <thetext>Created attachment 437848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792264</commentid>
    <comment_count>12</comment_count>
      <attachid>437848</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-10 00:44:04 -0700</bug_when>
    <thetext>Comment on attachment 437848
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Add a few explicit template parameters needed since we are passing a template parameter now instead of a function pointer.

You don&apos;t modify String::find in this patch. You don&apos;t need this change.

&gt; Source/WTF/wtf/text/StringImpl.h:647
&gt; +inline size_t find(const CodeUnit* characters, unsigned length, CodeUnitMatchFunction matchFunction, unsigned index)

I think it should be CodeUnitMatchFunction&amp;&amp;. Otherwide the callable object is coped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792293</commentid>
    <comment_count>13</comment_count>
      <attachid>437848</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-10 05:15:30 -0700</bug_when>
    <thetext>Comment on attachment 437848
Patch

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

&gt;&gt; Source/WTF/wtf/text/StringImpl.h:647
&gt;&gt; +inline size_t find(const CodeUnit* characters, unsigned length, CodeUnitMatchFunction matchFunction, unsigned index)
&gt; 
&gt; I think it should be CodeUnitMatchFunction&amp;&amp;. Otherwide the callable object is coped.

It&apos;s so-called Universal Reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792360</commentid>
    <comment_count>14</comment_count>
      <attachid>437877</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 09:03:42 -0700</bug_when>
    <thetext>Created attachment 437877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792520</commentid>
    <comment_count>15</comment_count>
      <attachid>437877</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-10 14:24:21 -0700</bug_when>
    <thetext>Comment on attachment 437877
Patch

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

&gt; Source/WTF/wtf/text/StringImpl.h:647
&gt; +inline size_t find(const CodeUnit* characters, unsigned length, CodeUnitMatchFunction&amp;&amp; matchFunction, unsigned index)

&apos;find&apos; functions in StringCommon.h and StringImpl.h are similar. I think they should be in the same file.

&gt; Source/WebCore/html/DOMTokenList.cpp:47
&gt; +    return token.find(isHTMLSpace&lt;UChar&gt;) != notFound;

You don&apos;t modify String::find in this patch. Why do you need this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792521</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 14:25:33 -0700</bug_when>
    <thetext>It used to be able to infer &lt;UChar&gt; because it was being passed as a bool(*)(UChar) but now it can&apos;t because it&apos;s a templatized invocable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792549</commentid>
    <comment_count>17</comment_count>
      <attachid>437877</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-10 15:13:32 -0700</bug_when>
    <thetext>Comment on attachment 437877
Patch

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

&gt;&gt; Source/WebCore/html/DOMTokenList.cpp:47
&gt;&gt; +    return token.find(isHTMLSpace&lt;UChar&gt;) != notFound;
&gt; 
&gt; You don&apos;t modify String::find in this patch. Why do you need this change?

I confirmed that this patch can compile without this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792558</commentid>
    <comment_count>18</comment_count>
      <attachid>437877</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-10 15:28:23 -0700</bug_when>
    <thetext>Comment on attachment 437877
Patch

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

&gt; Source/WTF/wtf/URLParser.cpp:2710
&gt; +            return segment.find(std::not_fn(isASCIIHexDigit&lt;UChar&gt;), 2) == notFound;

find == notFound is harder to read than !contains; can we add/use contains instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792566</commentid>
    <comment_count>19</comment_count>
      <attachid>437916</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 15:37:07 -0700</bug_when>
    <thetext>Created attachment 437916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792605</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-10 16:51:54 -0700</bug_when>
    <thetext>Committed r282303 (241575@main): &lt;https://commits.webkit.org/241575@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437916.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792606</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-10 16:52:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/82995709&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437657</attachid>
            <date>2021-09-08 12:48:13 -0700</date>
            <delta_ts>2021-09-08 13:27:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210908124813.patch</filename>
            <type>text/plain</type>
            <size>7345</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYjM2MDJhMDAxM2RjMTMyODEzYTdh
MTUxYTBlNmM3ZGUwYzI0YzUuLmFlN2NiMzU3Yjg0Y2U3NDU5MzQ0MTQwMjI2MWRmNTJkODAyMTNm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDggIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxl
LmNvbT4KIAogICAgICAgICBTYWZhcmkgVFAgMTMxIGF1ZGlvIGNhblBsYXlUeXBlKCkgcmVwb3J0
cyBmYWxzZSBuZWdhdGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIuY3BwCmluZGV4IDk4MWI1YWZmZTI0MGM2MGMw
NDMyZDcwNTIzNTExNDQyYWZiNjM5ZGYuLmNlNWEyN2ZmNDkwZGE3Nzk3ODZkNGVhOGNhNWQwNWFi
NjBhNTU5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcApAQCAtMjY5NiwyNSArMjY5NiwxOSBAQCBzdGF0
aWMgYm9vbCBkbnNOYW1lRW5kc0luTnVtYmVyKFN0cmluZ1ZpZXcgbmFtZSkKIHsKICAgICAvLyBo
dHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2VuZHMtaW4tYS1udW1iZXItY2hlY2tlcgogICAg
IGF1dG8gY29udGFpbnNPY3RhbERlY2ltYWxPckhleE51bWJlciA9IFtdIChTdHJpbmdWaWV3IHNl
Z21lbnQpIHsKLSAgICAgICAgYXV0byBpc05vbkRpZ2l0ID0gW10oVUNoYXIgYykgewotICAgICAg
ICAgICAgcmV0dXJuICFpc0FTQ0lJRGlnaXQoYyk7Ci0gICAgICAgIH07CiAgICAgICAgIGNvbnN0
IGF1dG8gc2VnbWVudExlbmd0aCA9IHNlZ21lbnQubGVuZ3RoKCk7CiAgICAgICAgIGlmICghVU5M
SUtFTFkoc2VnbWVudExlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGF1dG8gZmlyc3RDb2RlVW5pdCA9IHNlZ21lbnRbMF07Ci0gICAgICAgIGlmIChMSUtFTFkoaXNO
b25EaWdpdChmaXJzdENvZGVVbml0KSkpCisgICAgICAgIGlmIChMSUtFTFkoIWlzQVNDSUlEaWdp
dChmaXJzdENvZGVVbml0KSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlm
IChzZWdtZW50TGVuZ3RoID09IDEpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
YXV0byBzZWNvbmRDb2RlVW5pdCA9IHNlZ21lbnRbMV07CiAgICAgICAgIGlmICgoc2Vjb25kQ29k
ZVVuaXQgPT0gJ3gnIHx8IHNlY29uZENvZGVVbml0ID09ICdYJykgJiYgZmlyc3RDb2RlVW5pdCA9
PSAnMCcpIHsKLSAgICAgICAgICAgIGF1dG8gaXNOb25IZXhEaWdpdCA9IFtdKFVDaGFyIGMpIHsK
LSAgICAgICAgICAgICAgICByZXR1cm4gIWlzQVNDSUlIZXhEaWdpdChjKTsKLSAgICAgICAgICAg
IH07Ci0gICAgICAgICAgICByZXR1cm4gc2VnbWVudC5maW5kKGlzTm9uSGV4RGlnaXQsIDIpID09
IG5vdEZvdW5kOworICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnQuZmluZChzdGQ6Om5vdF9mbihp
c0FTQ0lJSGV4RGlnaXQ8VUNoYXI+KSwgMikgPT0gbm90Rm91bmQ7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHNlZ21lbnQuZmluZChpc05vbkRpZ2l0KSA9PSBub3RGb3VuZDsKKyAgICAgICAg
cmV0dXJuIHNlZ21lbnQuZmluZChzdGQ6Om5vdF9mbihpc0FTQ0lJRGlnaXQ8VUNoYXI+KSkgPT0g
bm90Rm91bmQ7CiAgICAgfTsKIAogICAgIHNpemVfdCBsYXN0RG90TG9jYXRpb24gPSBuYW1lLnJl
dmVyc2VGaW5kKCcuJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0Nv
bW1vbi5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaAppbmRleCBiZDdlYWE2
NzEwOWNhODM5NzI4OWU0ZTJiOGNkM2NjYTFkZjdkYjMzLi5kNDdhM2YxNjdjNjBiZTU2YTliNjcz
ZmViYTFkNjA5NjIwMWE3MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0NvbW1vbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmgKQEAgLTUz
Niw3ICs1MzYsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBzaXplX3QgZmluZElubmVyKGNvbnN0
IFNlYXJjaENoYXJhY3RlclR5cGUqIHNlYXJjaENoYXJhY3RlcgogICAgIHJldHVybiBpbmRleCAr
IGk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW50ZWdyYWw8Q2hh
cmFjdGVyVHlwZT46OnZhbHVlPiogPSBudWxscHRyPgogaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0
IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlw
ZSBtYXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5kZXggPSAwKQogewogICAgIHdoaWxlIChpbmRl
eCA8IGxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCBjZTMyMWRlYTk5MjI1
NGE0NmUwOTU2OGVmZjZmNzkxMDM4MWMxNTI0Li5hN2M3ZGE0OWI2Y2Y3OWU5MjZmNzk4MDhlMjVk
YjI4N2FlYzhhMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNTkzLDcgKzU5Myw5
IEBAIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxs
KGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBTCiB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGg+IGJv
b2wgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nSW1wbCYsIGNvbnN0
IGNoYXIgKCZsb3dlcmNhc2VMZXR0ZXJzKVtsZW5ndGhdKTsKIHRlbXBsYXRlPHVuc2lnbmVkIGxl
bmd0aD4gYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBs
KiwgY29uc3QgY2hhciAoJmxvd2VyY2FzZUxldHRlcnMpW2xlbmd0aF0pOwogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19p
bnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+KiA9
IG51bGxwdHI+CiBzaXplX3QgZmluZChjb25zdCBMQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgQ29k
ZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDApOwordGVtcGxhdGU8dHlwZW5h
bWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW52b2Nh
YmxlX3I8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj46OnZhbHVlPiogPSBudWxs
cHRyPgogc2l6ZV90IGZpbmQoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0
TWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXggPSAwKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gc2l6ZV90IHJldmVyc2VGaW5kTGluZVRlcm1pbmF0b3IoY29uc3QgQ2hh
cmFjdGVyVHlwZSosIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgaW5kZXggPSBTdHJpbmdJbXBs
OjpNYXhMZW5ndGgpOwpAQCAtNjQzLDYgKzY0NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSBjb25zdCBVQ2hhciogU3RyaW5nSW1wbDo6Y2hhcmFjdGVyczxVQ2hhcj4oKSBjb25zdAogICAg
IHJldHVybiBjaGFyYWN0ZXJzMTYoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW52b2NhYmxlX3I8Ym9vbCwg
Q29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj46OnZhbHVlPio+CiBpbmxpbmUgc2l6ZV90IGZp
bmQoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRj
aEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4KQogewogICAgIHdoaWxlIChp
bmRleCA8IGxlbmd0aCkgewpAQCAtNjUzLDYgKzY1Niw3IEBAIGlubGluZSBzaXplX3QgZmluZChj
b25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVu
Y3RpCiAgICAgcmV0dXJuIG5vdEZvdW5kOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5p
dE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29s
LCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+Kj4KIGlubGluZSBzaXplX3Qg
ZmluZChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1h
dGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXgpCiB7CiAgICAgd2hpbGUg
KGluZGV4IDwgbGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z1ZpZXcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCmluZGV4IGVkZWZlMTU5
ZDJkNzE4ZWI2Y2UxMzk0ZDk2YjMyMGE0NDQ4Yjg5MDcuLmRjZWI0YTVlMWE4ZWZkZmVjY2Q0YmQw
NTU2YmZhYzllZjk4YTc1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Vmlldy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCkBAIC0xMzgsNiAr
MTM4LDcgQEAgcHVibGljOgogICAgIFNwbGl0UmVzdWx0IHNwbGl0QWxsb3dpbmdFbXB0eUVudHJp
ZXMoVUNoYXIpIGNvbnN0OwogCiAgICAgc2l6ZV90IGZpbmQoVUNoYXIsIHVuc2lnbmVkIHN0YXJ0
ID0gMCkgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW52b2NhYmxlX3I8Ym9vbCwgQ29kZVVuaXRNYXRj
aEZ1bmN0aW9uLCBVQ2hhcj46OnZhbHVlPiogPSBudWxscHRyPgogICAgIHNpemVfdCBmaW5kKENv
ZGVVbml0TWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdDsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZpbmQoU3RyaW5nVmlldywgdW5zaWduZWQgc3RhcnQgPSAw
KSBjb25zdDsKIApAQCAtNTk1LDYgKzU5Niw3IEBAIGlubGluZSBzaXplX3QgU3RyaW5nVmlldzo6
ZmluZChVQ2hhciBjaGFyYWN0ZXIsIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAogICAgIHJldHVybiBX
VEY6OmZpbmQoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoLCBjaGFyYWN0ZXIsIHN0YXJ0KTsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfaW52b2NhYmxlX3I8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hh
cj46OnZhbHVlPio+CiBpbmxpbmUgc2l6ZV90IFN0cmluZ1ZpZXc6OmZpbmQoQ29kZVVuaXRNYXRj
aEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAogewogICAgIGlm
IChpczhCaXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDcxMWNhNjRhMDNhNjE0NDFm
YWU0ZTdlZWIzZGIyMTg2MjI5ZmM1ZWYuLmI4NTg5MzNmM2IyYjZmMzkzOTNlODU2YmEzZGFhNDM3
YTM3MGIyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1
YmxpYzoKICAgICBzaXplX3QgZmluZElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSBjb25zdCB7IHJldHVybiBtX2ltcGwgPyBtX2ltcGwtPmZpbmRJZ25vcmluZ0FTQ0lJQ2Fz
ZShzdHJpbmcuaW1wbCgpKSA6IG5vdEZvdW5kOyB9CiAgICAgc2l6ZV90IGZpbmRJZ25vcmluZ0FT
Q0lJQ2FzZShjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgc3RhcnRPZmZzZXQpIGNvbnN0
IHsgcmV0dXJuIG1faW1wbCA/IG1faW1wbC0+ZmluZElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZy5p
bXBsKCksIHN0YXJ0T2Zmc2V0KSA6IG5vdEZvdW5kOyB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2Fi
bGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+KiA9IG51bGxw
dHI+CiAgICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24s
IHVuc2lnbmVkIHN0YXJ0ID0gMCkgY29uc3QgeyByZXR1cm4gbV9pbXBsID8gbV9pbXBsLT5maW5k
KG1hdGNoRnVuY3Rpb24sIHN0YXJ0KSA6IG5vdEZvdW5kOyB9CiAgICAgc2l6ZV90IGZpbmQoY29u
c3QgTENoYXIqIHN0cmluZywgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdCB7IHJldHVybiBtX2lt
cGwgPyBtX2ltcGwtPmZpbmQoc3RyaW5nLCBzdGFydCkgOiBub3RGb3VuZDsgfQogCg==
</data>
<flag name="commit-queue"
          id="460872"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437662</attachid>
            <date>2021-09-08 13:24:40 -0700</date>
            <delta_ts>2021-09-08 16:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210908132439.patch</filename>
            <type>text/plain</type>
            <size>9739</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYjM2MDJhMDAxM2RjMTMyODEzYTdh
MTUxYTBlNmM3ZGUwYzI0YzUuLmFlN2NiMzU3Yjg0Y2U3NDU5MzQ0MTQwMjI2MWRmNTJkODAyMTNm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDggIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxl
LmNvbT4KIAogICAgICAgICBTYWZhcmkgVFAgMTMxIGF1ZGlvIGNhblBsYXlUeXBlKCkgcmVwb3J0
cyBmYWxzZSBuZWdhdGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMDYwOWE5OWZkYjkyMTgwYjYxNzVhYTBj
OTk0NWExNWUyZGNhNzYzLi5iYWRjMmM2ZGVjYzBhZTM0Nzg0YzlhNDUxOTc0Y2Y4NzYyNDhiNmZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMDggIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4g
aW5zdGVhZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgZXhwbGljaXQgdGVtcGxhdGUgcGFyYW1l
dGVycyBuZWVkZWQgc2luY2Ugd2UgYXJlIHBhc3NpbmcgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgbm93
IGluc3RlYWQgb2YgYSBmdW5jdGlvbiBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9ET01Ub2tl
bkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9rZW5Db250YWluc0hUTUxTcGFjZSk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cnVuY2F0ZUZvclNjcmlwdExpa2VBdHRyaWJ1dGUpOgorCiAyMDIxLTA5LTA4ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgcGVyY2VudGFn
ZXMgaW4gdGhlIHNjYWxlKCkgdHJhbnNmb3JtIGZ1bmN0aW9ucywgYW5kIHRoZSBzY2FsZSBwcm9w
ZXJ0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL1VSTFBhcnNlci5jcHAKaW5kZXggOTgxYjVhZmZlMjQwYzYwYzA0MzJkNzA1MjM1MTE0
NDJhZmI2MzlkZi4uY2U1YTI3ZmY0OTBkYTc3OTc4NmQ0ZWE4Y2E1ZDA1YWI2MGE1NTlmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9VUkxQYXJzZXIuY3BwCkBAIC0yNjk2LDI1ICsyNjk2LDE5IEBAIHN0YXRpYyBib29sIGRuc05h
bWVFbmRzSW5OdW1iZXIoU3RyaW5nVmlldyBuYW1lKQogewogICAgIC8vIGh0dHBzOi8vdXJsLnNw
ZWMud2hhdHdnLm9yZy8jZW5kcy1pbi1hLW51bWJlci1jaGVja2VyCiAgICAgYXV0byBjb250YWlu
c09jdGFsRGVjaW1hbE9ySGV4TnVtYmVyID0gW10gKFN0cmluZ1ZpZXcgc2VnbWVudCkgewotICAg
ICAgICBhdXRvIGlzTm9uRGlnaXQgPSBbXShVQ2hhciBjKSB7Ci0gICAgICAgICAgICByZXR1cm4g
IWlzQVNDSUlEaWdpdChjKTsKLSAgICAgICAgfTsKICAgICAgICAgY29uc3QgYXV0byBzZWdtZW50
TGVuZ3RoID0gc2VnbWVudC5sZW5ndGgoKTsKICAgICAgICAgaWYgKCFVTkxJS0VMWShzZWdtZW50
TGVuZ3RoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYXV0byBmaXJzdENv
ZGVVbml0ID0gc2VnbWVudFswXTsKLSAgICAgICAgaWYgKExJS0VMWShpc05vbkRpZ2l0KGZpcnN0
Q29kZVVuaXQpKSkKKyAgICAgICAgaWYgKExJS0VMWSghaXNBU0NJSURpZ2l0KGZpcnN0Q29kZVVu
aXQpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKHNlZ21lbnRMZW5n
dGggPT0gMSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBhdXRvIHNlY29uZENv
ZGVVbml0ID0gc2VnbWVudFsxXTsKICAgICAgICAgaWYgKChzZWNvbmRDb2RlVW5pdCA9PSAneCcg
fHwgc2Vjb25kQ29kZVVuaXQgPT0gJ1gnKSAmJiBmaXJzdENvZGVVbml0ID09ICcwJykgewotICAg
ICAgICAgICAgYXV0byBpc05vbkhleERpZ2l0ID0gW10oVUNoYXIgYykgewotICAgICAgICAgICAg
ICAgIHJldHVybiAhaXNBU0NJSUhleERpZ2l0KGMpOwotICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgIHJldHVybiBzZWdtZW50LmZpbmQoaXNOb25IZXhEaWdpdCwgMikgPT0gbm90Rm91bmQ7Cisg
ICAgICAgICAgICByZXR1cm4gc2VnbWVudC5maW5kKHN0ZDo6bm90X2ZuKGlzQVNDSUlIZXhEaWdp
dDxVQ2hhcj4pLCAyKSA9PSBub3RGb3VuZDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gc2Vn
bWVudC5maW5kKGlzTm9uRGlnaXQpID09IG5vdEZvdW5kOworICAgICAgICByZXR1cm4gc2VnbWVu
dC5maW5kKHN0ZDo6bm90X2ZuKGlzQVNDSUlEaWdpdDxVQ2hhcj4pKSA9PSBub3RGb3VuZDsKICAg
ICB9OwogCiAgICAgc2l6ZV90IGxhc3REb3RMb2NhdGlvbiA9IG5hbWUucmV2ZXJzZUZpbmQoJy4n
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oCmluZGV4IGJkN2VhYTY3MTA5Y2E4Mzk3Mjg5
ZTRlMmI4Y2QzY2NhMWRmN2RiMzMuLmQ0N2EzZjE2N2M2MGJlNTZhOWI2NzNmZWJhMWQ2MDk2MjAx
YTczMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmgKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaApAQCAtNTM2LDcgKzUzNiw3IEBA
IEFMV0FZU19JTkxJTkUgc3RhdGljIHNpemVfdCBmaW5kSW5uZXIoY29uc3QgU2VhcmNoQ2hhcmFj
dGVyVHlwZSogc2VhcmNoQ2hhcmFjdGVyCiAgICAgcmV0dXJuIGluZGV4ICsgaTsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnRlZ3JhbDxDaGFyYWN0ZXJUeXBlPjo6
dmFsdWU+KiA9IG51bGxwdHI+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgQ2hhcmFjdGVyVHlw
ZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNoQ2hhcmFj
dGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGNlMzIxZGVhOTkyMjU0YTQ2ZTA5NTY4ZWZm
NmY3OTEwMzgxYzE1MjQuLmE3YzdkYTQ5YjZjZjc5ZTkyNmY3OTgwOGUyNWRiMjg3YWVjOGEzMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC01OTMsNyArNTkzLDkgQEAgV1RGX0VYUE9S
VF9QUklWQVRFIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3QgU3RyaW5n
SW1wbCosIGNvbnN0IFMKIHRlbXBsYXRlPHVuc2lnbmVkIGxlbmd0aD4gYm9vbCBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiwgY29uc3QgY2hhciAoJmxvd2Vy
Y2FzZUxldHRlcnMpW2xlbmd0aF0pOwogdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBib29sIGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBjaGFy
ICgmbG93ZXJjYXNlTGV0dGVycylbbGVuZ3RoXSk7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvZGVV
bml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yPGJv
b2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KIHNp
emVfdCBmaW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVu
Y3Rpb24sIHVuc2lnbmVkIGluZGV4ID0gMCk7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1h
dGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29sLCBD
b2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+KiA9IG51bGxwdHI+CiBzaXplX3Qg
ZmluZChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCB1bnNpZ25lZCBpbmRleCA9IDApOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBl
PiBzaXplX3QgcmV2ZXJzZUZpbmRMaW5lVGVybWluYXRvcihjb25zdCBDaGFyYWN0ZXJUeXBlKiwg
dW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBpbmRleCA9IFN0cmluZ0ltcGw6Ok1heExlbmd0aCk7
CkBAIC02NDMsNiArNjQ1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIGNvbnN0IFVDaGFy
KiBTdHJpbmdJbXBsOjpjaGFyYWN0ZXJzPFVDaGFyPigpIGNvbnN0CiAgICAgcmV0dXJuIGNoYXJh
Y3RlcnMxNigpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24s
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNo
RnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+Kj4KIGlubGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0
Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXgpCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3Ro
KSB7CkBAIC02NTMsNiArNjU2LDcgQEAgaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGkKICAgICByZXR1
cm4gbm90Rm91bmQ7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlv
biwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yPGJvb2wsIENvZGVVbml0TWF0
Y2hGdW5jdGlvbiwgVUNoYXI+Ojp2YWx1ZT4qPgogaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiBt
YXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCkKIHsKICAgICB3aGlsZSAoaW5kZXggPCBsZW5n
dGgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKaW5kZXggZWRlZmUxNTlkMmQ3MThlYjZjZTEz
OTRkOTZiMzIwYTQ0NDhiODkwNy4uZGNlYjRhNWUxYThlZmRmZWNjZDRiZDA1NTZiZmFjOWVmOThh
NzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJs
aWM6CiAgICAgU3BsaXRSZXN1bHQgc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcyhVQ2hhcikgY29u
c3Q7CiAKICAgICBzaXplX3QgZmluZChVQ2hhciwgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVD
aGFyPjo6dmFsdWU+KiA9IG51bGxwdHI+CiAgICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1
bmN0aW9uLCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzaXplX3QgZmluZChTdHJpbmdWaWV3LCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OwogCkBA
IC01OTUsNiArNTk2LDcgQEAgaW5saW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKFVDaGFyIGNo
YXJhY3RlciwgdW5zaWduZWQgc3RhcnQpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFy
YWN0ZXJzMTYoKSwgbV9sZW5ndGgsIGNoYXJhY3Rlciwgc3RhcnQpOwogfQogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19p
bnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+Kj4K
IGlubGluZSBzaXplX3QgU3RyaW5nVmlldzo6ZmluZChDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0
Y2hGdW5jdGlvbiwgdW5zaWduZWQgc3RhcnQpIGNvbnN0CiB7CiAgICAgaWYgKGlzOEJpdCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggNzExY2E2NGEwM2E2MTQ0MWZhZTRlN2VlYjNkYjIx
ODYyMjlmYzVlZi4uYjg1ODkzM2YzYjJiNmYzOTM5M2U4NTZiYTNkYWE0MzdhMzcwYjIwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0xNjksNiArMTY5LDcgQEAgcHVibGljOgogICAgIHNp
emVfdCBmaW5kSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsg
cmV0dXJuIG1faW1wbCA/IG1faW1wbC0+ZmluZElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZy5pbXBs
KCkpIDogbm90Rm91bmQ7IH0KICAgICBzaXplX3QgZmluZElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBzdGFydE9mZnNldCkgY29uc3QgeyByZXR1cm4gbV9p
bXBsID8gbV9pbXBsLT5maW5kSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nLmltcGwoKSwgc3RhcnRP
ZmZzZXQpIDogbm90Rm91bmQ7IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0
Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yPGJvb2wsIENv
ZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KICAgICBzaXpl
X3QgZmluZChDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgc3Rh
cnQgPSAwKSBjb25zdCB7IHJldHVybiBtX2ltcGwgPyBtX2ltcGwtPmZpbmQobWF0Y2hGdW5jdGlv
biwgc3RhcnQpIDogbm90Rm91bmQ7IH0KICAgICBzaXplX3QgZmluZChjb25zdCBMQ2hhciogc3Ry
aW5nLCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA/IG1faW1wbC0+
ZmluZChzdHJpbmcsIHN0YXJ0KSA6IG5vdEZvdW5kOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmNwcAppbmRleCBhYmNhNmQ5YmMyZTJlZjZiNmVjZjU0YWE2YTM0OWRjYmFjYjM5Y2Fj
Li43ZjRmOGJiNzI2NDdjMzliMGEzNjc2NDRkNmVkMzY3ZTJmZjQxMGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC00NCw3ICs0NCw3IEBAIERPTVRva2VuTGlzdDo6RE9N
VG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB0b2tlbkNvbnRhaW5zSFRNTFNwYWNlKGNvbnN0
IFN0cmluZyYgdG9rZW4pCiB7Ci0gICAgcmV0dXJuIHRva2VuLmZpbmQoaXNIVE1MU3BhY2UpICE9
IG5vdEZvdW5kOworICAgIHJldHVybiB0b2tlbi5maW5kKGlzSFRNTFNwYWNlPFVDaGFyPikgIT0g
bm90Rm91bmQ7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTVRva2VuTGlzdDo6dmFsaWRhdGVU
b2tlbihjb25zdCBTdHJpbmcmIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yLmNwcAppbmRleCBmMjY5ZDVjMDQwNDc1ZDVjM2I2YTQwODNlMjFmMDAyZmNjMDc2NDUx
Li5iNWFkM2ZkYmNlMTAxZGZjYTU1NGQxODQ5NTZlMzg3MzhiNWViMzVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRp
YyB2b2lkIHRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJpYnV0ZShTdHJpbmcmIGRlY29kZWRTbmlw
cGV0KQogICAgIC8vIHNsYXNoLCBvciBsZXNzLXRoYW4gc2lnbi4KICAgICBzaXplX3QgcG9zaXRp
b24gPSAwOwogICAgIGlmICgocG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5kKCc9JykpICE9
IG5vdEZvdW5kCi0gICAgICAgICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNO
b3RIVE1MU3BhY2UsIHBvc2l0aW9uICsgMSkpICE9IG5vdEZvdW5kCisgICAgICAgICYmIChwb3Np
dGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNOb3RIVE1MU3BhY2U8VUNoYXI+LCBwb3NpdGlv
biArIDEpKSAhPSBub3RGb3VuZAogICAgICAgICAmJiAocG9zaXRpb24gPSBkZWNvZGVkU25pcHBl
dC5maW5kKGlzVGVybWluYXRpbmdDaGFyYWN0ZXIsIGlzSFRNTFF1b3RlKGRlY29kZWRTbmlwcGV0
W3Bvc2l0aW9uXSkgPyBwb3NpdGlvbiArIDEgOiBwb3NpdGlvbikpICE9IG5vdEZvdW5kKSB7CiAg
ICAgICAgIGRlY29kZWRTbmlwcGV0LnRydW5jYXRlKHBvc2l0aW9uKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437678</attachid>
            <date>2021-09-08 16:35:41 -0700</date>
            <delta_ts>2021-09-09 20:49:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210908163540.patch</filename>
            <type>text/plain</type>
            <size>9889</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyYjM2MDJhMDAxM2RjMTMyODEzYTdh
MTUxYTBlNmM3ZGUwYzI0YzUuLmFlN2NiMzU3Yjg0Y2U3NDU5MzQ0MTQwMjI2MWRmNTJkODAyMTNm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDggIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxl
LmNvbT4KIAogICAgICAgICBTYWZhcmkgVFAgMTMxIGF1ZGlvIGNhblBsYXlUeXBlKCkgcmVwb3J0
cyBmYWxzZSBuZWdhdGl2ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMDYwOWE5OWZkYjkyMTgwYjYxNzVhYTBj
OTk0NWExNWUyZGNhNzYzLi5iYWRjMmM2ZGVjYzBhZTM0Nzg0YzlhNDUxOTc0Y2Y4NzYyNDhiNmZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMDggIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4g
aW5zdGVhZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgZXhwbGljaXQgdGVtcGxhdGUgcGFyYW1l
dGVycyBuZWVkZWQgc2luY2Ugd2UgYXJlIHBhc3NpbmcgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgbm93
IGluc3RlYWQgb2YgYSBmdW5jdGlvbiBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9ET01Ub2tl
bkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9rZW5Db250YWluc0hUTUxTcGFjZSk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cnVuY2F0ZUZvclNjcmlwdExpa2VBdHRyaWJ1dGUpOgorCiAyMDIxLTA5LTA4ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgcGVyY2VudGFn
ZXMgaW4gdGhlIHNjYWxlKCkgdHJhbnNmb3JtIGZ1bmN0aW9ucywgYW5kIHRoZSBzY2FsZSBwcm9w
ZXJ0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL1VSTFBhcnNlci5jcHAKaW5kZXggOTgxYjVhZmZlMjQwYzYwYzA0MzJkNzA1MjM1MTE0
NDJhZmI2MzlkZi4uY2JkZTQwN2UzOWQyYTI1ZWMyYWZhMGRkZDdhNTI0N2VlMGM5MjdjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9VUkxQYXJzZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNl
ci5oPgogCiAjaW5jbHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRl
IDxtdXRleD4KICNpbmNsdWRlIDx3dGYvdGV4dC9Db2RlUG9pbnRJdGVyYXRvci5oPgogCkBAIC0y
Njk2LDI1ICsyNjk3LDE5IEBAIHN0YXRpYyBib29sIGRuc05hbWVFbmRzSW5OdW1iZXIoU3RyaW5n
VmlldyBuYW1lKQogewogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZW5kcy1p
bi1hLW51bWJlci1jaGVja2VyCiAgICAgYXV0byBjb250YWluc09jdGFsRGVjaW1hbE9ySGV4TnVt
YmVyID0gW10gKFN0cmluZ1ZpZXcgc2VnbWVudCkgewotICAgICAgICBhdXRvIGlzTm9uRGlnaXQg
PSBbXShVQ2hhciBjKSB7Ci0gICAgICAgICAgICByZXR1cm4gIWlzQVNDSUlEaWdpdChjKTsKLSAg
ICAgICAgfTsKICAgICAgICAgY29uc3QgYXV0byBzZWdtZW50TGVuZ3RoID0gc2VnbWVudC5sZW5n
dGgoKTsKICAgICAgICAgaWYgKCFVTkxJS0VMWShzZWdtZW50TGVuZ3RoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgYXV0byBmaXJzdENvZGVVbml0ID0gc2VnbWVudFswXTsK
LSAgICAgICAgaWYgKExJS0VMWShpc05vbkRpZ2l0KGZpcnN0Q29kZVVuaXQpKSkKKyAgICAgICAg
aWYgKExJS0VMWSghaXNBU0NJSURpZ2l0KGZpcnN0Q29kZVVuaXQpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgaWYgKHNlZ21lbnRMZW5ndGggPT0gMSkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICBhdXRvIHNlY29uZENvZGVVbml0ID0gc2VnbWVudFsxXTsK
ICAgICAgICAgaWYgKChzZWNvbmRDb2RlVW5pdCA9PSAneCcgfHwgc2Vjb25kQ29kZVVuaXQgPT0g
J1gnKSAmJiBmaXJzdENvZGVVbml0ID09ICcwJykgewotICAgICAgICAgICAgYXV0byBpc05vbkhl
eERpZ2l0ID0gW10oVUNoYXIgYykgewotICAgICAgICAgICAgICAgIHJldHVybiAhaXNBU0NJSUhl
eERpZ2l0KGMpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZp
bmQoaXNOb25IZXhEaWdpdCwgMikgPT0gbm90Rm91bmQ7CisgICAgICAgICAgICByZXR1cm4gc2Vn
bWVudC5maW5kKHN0ZDo6bm90X2ZuKGlzQVNDSUlIZXhEaWdpdDxVQ2hhcj4pLCAyKSA9PSBub3RG
b3VuZDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gc2VnbWVudC5maW5kKGlzTm9uRGlnaXQp
ID09IG5vdEZvdW5kOworICAgICAgICByZXR1cm4gc2VnbWVudC5maW5kKHN0ZDo6bm90X2ZuKGlz
QVNDSUlEaWdpdDxVQ2hhcj4pKSA9PSBub3RGb3VuZDsKICAgICB9OwogCiAgICAgc2l6ZV90IGxh
c3REb3RMb2NhdGlvbiA9IG5hbWUucmV2ZXJzZUZpbmQoJy4nKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0NvbW1vbi5oCmluZGV4IGJkN2VhYTY3MTA5Y2E4Mzk3Mjg5ZTRlMmI4Y2QzY2NhMWRmN2RiMzMu
LmQ0N2EzZjE2N2M2MGJlNTZhOWI2NzNmZWJhMWQ2MDk2MjAxYTczMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdDb21tb24uaApAQCAtNTM2LDcgKzUzNiw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IHNpemVfdCBmaW5kSW5uZXIoY29uc3QgU2VhcmNoQ2hhcmFjdGVyVHlwZSogc2VhcmNoQ2hhcmFj
dGVyCiAgICAgcmV0dXJuIGluZGV4ICsgaTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19pbnRlZ3JhbDxDaGFyYWN0ZXJUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CiBp
bmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9
IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oCmluZGV4IGNlMzIxZGVhOTkyMjU0YTQ2ZTA5NTY4ZWZmNmY3OTEwMzgxYzE1MjQuLmE3Yzdk
YTQ5YjZjZjc5ZTkyNmY3OTgwOGUyNWRiMjg3YWVjOGEzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SW1wbC5oCkBAIC01OTMsNyArNTkzLDkgQEAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFMKIHRlbXBs
YXRlPHVuc2lnbmVkIGxlbmd0aD4gYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShj
b25zdCBTdHJpbmdJbXBsJiwgY29uc3QgY2hhciAoJmxvd2VyY2FzZUxldHRlcnMpW2xlbmd0aF0p
OwogdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBib29sIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBjaGFyICgmbG93ZXJjYXNlTGV0dGVycylb
bGVuZ3RoXSk7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yPGJvb2wsIENvZGVVbml0TWF0Y2hGdW5j
dGlvbiwgVUNoYXI+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KIHNpemVfdCBmaW5kKGNvbnN0IExDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4
ID0gMCk7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24s
IFVDaGFyPjo6dmFsdWU+KiA9IG51bGxwdHI+CiBzaXplX3QgZmluZChjb25zdCBVQ2hhciosIHVu
c2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDAp
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzaXplX3QgcmV2ZXJzZUZpbmRM
aW5lVGVybWluYXRvcihjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQgbGVuZ3RoLCB1bnNp
Z25lZCBpbmRleCA9IFN0cmluZ0ltcGw6Ok1heExlbmd0aCk7CkBAIC02NDMsNiArNjQ1LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIGNvbnN0IFVDaGFyKiBTdHJpbmdJbXBsOjpjaGFyYWN0
ZXJzPFVDaGFyPigpIGNvbnN0CiAgICAgcmV0dXJuIGNoYXJhY3RlcnMxNigpOwogfQogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3Rk
Ojppc19pbnZvY2FibGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFs
dWU+Kj4KIGlubGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQg
aW5kZXgpCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CkBAIC02NTMsNiArNjU2LDcg
QEAgaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGkKICAgICByZXR1cm4gbm90Rm91bmQ7CiB9CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX2ludm9jYWJsZV9yPGJvb2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+Ojp2
YWx1ZT4qPgogaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiBtYXRjaEZ1bmN0aW9uLCB1bnNpZ25l
ZCBpbmRleCkKIHsKICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdWaWV3LmgKaW5kZXggZWRlZmUxNTlkMmQ3MThlYjZjZTEzOTRkOTZiMzIwYTQ0NDhiODkwNy4u
ZGNlYjRhNWUxYThlZmRmZWNjZDRiZDA1NTZiZmFjOWVmOThhNzU0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdWaWV3LmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgU3BsaXRSZXN1bHQg
c3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcyhVQ2hhcikgY29uc3Q7CiAKICAgICBzaXplX3QgZmlu
ZChVQ2hhciwgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2Fi
bGVfcjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+KiA9IG51bGxw
dHI+CiAgICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBzdGFy
dCA9IDApIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgZmluZChTdHJpbmdW
aWV3LCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OwogCkBAIC01OTUsNiArNTk2LDcgQEAgaW5s
aW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgc3Rh
cnQpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgs
IGNoYXJhY3Rlciwgc3RhcnQpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNo
RnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcjxib29sLCBDb2Rl
VW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPjo6dmFsdWU+Kj4KIGlubGluZSBzaXplX3QgU3RyaW5n
Vmlldzo6ZmluZChDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQg
c3RhcnQpIGNvbnN0CiB7CiAgICAgaWYgKGlzOEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgK
aW5kZXggNzExY2E2NGEwM2E2MTQ0MWZhZTRlN2VlYjNkYjIxODYyMjlmYzVlZi4uYjg1ODkzM2Yz
YjJiNmYzOTM5M2U4NTZiYTNkYWE0MzdhMzcwYjIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5o
CkBAIC0xNjksNiArMTY5LDcgQEAgcHVibGljOgogICAgIHNpemVfdCBmaW5kSWdub3JpbmdBU0NJ
SUNhc2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA/IG1faW1w
bC0+ZmluZElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZy5pbXBsKCkpIDogbm90Rm91bmQ7IH0KICAg
ICBzaXplX3QgZmluZElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNp
Z25lZCBzdGFydE9mZnNldCkgY29uc3QgeyByZXR1cm4gbV9pbXBsID8gbV9pbXBsLT5maW5kSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nLmltcGwoKSwgc3RhcnRPZmZzZXQpIDogbm90Rm91bmQ7IH0K
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yPGJvb2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwg
VUNoYXI+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KICAgICBzaXplX3QgZmluZChDb2RlVW5pdE1hdGNo
RnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdCB7IHJldHVy
biBtX2ltcGwgPyBtX2ltcGwtPmZpbmQobWF0Y2hGdW5jdGlvbiwgc3RhcnQpIDogbm90Rm91bmQ7
IH0KICAgICBzaXplX3QgZmluZChjb25zdCBMQ2hhciogc3RyaW5nLCB1bnNpZ25lZCBzdGFydCA9
IDApIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA/IG1faW1wbC0+ZmluZChzdHJpbmcsIHN0YXJ0KSA6
IG5vdEZvdW5kOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBhYmNh
NmQ5YmMyZTJlZjZiNmVjZjU0YWE2YTM0OWRjYmFjYjM5Y2FjLi43ZjRmOGJiNzI2NDdjMzliMGEz
Njc2NDRkNmVkMzY3ZTJmZjQxMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIERPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsCiAKIHN0YXRpYyBpbmxp
bmUgYm9vbCB0b2tlbkNvbnRhaW5zSFRNTFNwYWNlKGNvbnN0IFN0cmluZyYgdG9rZW4pCiB7Ci0g
ICAgcmV0dXJuIHRva2VuLmZpbmQoaXNIVE1MU3BhY2UpICE9IG5vdEZvdW5kOworICAgIHJldHVy
biB0b2tlbi5maW5kKGlzSFRNTFNwYWNlPFVDaGFyPikgIT0gbm90Rm91bmQ7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBTdHJpbmcmIHRv
a2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBmMjY5
ZDVjMDQwNDc1ZDVjM2I2YTQwODNlMjFmMDAyZmNjMDc2NDUxLi5iNWFkM2ZkYmNlMTAxZGZjYTU1
NGQxODQ5NTZlMzg3MzhiNWViMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyB2b2lkIHRydW5jYXRlRm9yU2Ny
aXB0TGlrZUF0dHJpYnV0ZShTdHJpbmcmIGRlY29kZWRTbmlwcGV0KQogICAgIC8vIHNsYXNoLCBv
ciBsZXNzLXRoYW4gc2lnbi4KICAgICBzaXplX3QgcG9zaXRpb24gPSAwOwogICAgIGlmICgocG9z
aXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5kKCc9JykpICE9IG5vdEZvdW5kCi0gICAgICAgICYm
IChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNOb3RIVE1MU3BhY2UsIHBvc2l0aW9u
ICsgMSkpICE9IG5vdEZvdW5kCisgICAgICAgICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0
LmZpbmQoaXNOb3RIVE1MU3BhY2U8VUNoYXI+LCBwb3NpdGlvbiArIDEpKSAhPSBub3RGb3VuZAog
ICAgICAgICAmJiAocG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5kKGlzVGVybWluYXRpbmdD
aGFyYWN0ZXIsIGlzSFRNTFF1b3RlKGRlY29kZWRTbmlwcGV0W3Bvc2l0aW9uXSkgPyBwb3NpdGlv
biArIDEgOiBwb3NpdGlvbikpICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIGRlY29kZWRTbmlwcGV0
LnRydW5jYXRlKHBvc2l0aW9uKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437831</attachid>
            <date>2021-09-09 20:49:41 -0700</date>
            <delta_ts>2021-09-10 00:21:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210909204940.patch</filename>
            <type>text/plain</type>
            <size>13021</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE5Yzk0OWEyNzdmODI1Y2UxMmI4MGVi
NTI5NjMwMTgxNTc4ZTJkZjMuLjc3ZjE4ZTU1Y2RhNDJlNzYzYmJmMGI3NzdkMDEyY2FkNjdhYmZh
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgZGFl
bW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMDlkMTJhNjJhMjc4MTg3MDAyOWY3Yzg2NWM4YjEyNzM2OWVmZmE2
Mi4uNzY3MjVhOGJiNWJhNjliZWNkZDg3YWJkMDQyN2Y4MmM0OTFhYzkzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHN0ZDo6bm90X2ZuIGluc3RlYWQgb2YgbGFt
YmRhIGluIFVSTFBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwMDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgZmV3IGV4cGxpY2l0IHRlbXBsYXRlIHBhcmFtZXRlcnMgbmVlZGVkIHNp
bmNlIHdlIGFyZSBwYXNzaW5nIGEgdGVtcGxhdGUgcGFyYW1ldGVyIG5vdyBpbnN0ZWFkIG9mIGEg
ZnVuY3Rpb24gcG9pbnRlci4KKworICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRva2VuQ29udGFpbnNIVE1MU3BhY2UpOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ1bmNhdGVGb3JTY3Jp
cHRMaWtlQXR0cmlidXRlKToKKwogMjAyMS0wOS0wOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgQ3VsbCBpbmxpbmUgY3VsbGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAK
aW5kZXggOTgxYjVhZmZlMjQwYzYwYzA0MzJkNzA1MjM1MTE0NDJhZmI2MzlkZi4uY2JkZTQwN2Uz
OWQyYTI1ZWMyYWZhMGRkZDdhNTI0N2VlMGM5MjdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgogCiAjaW5jbHVkZSA8YXJy
YXk+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9Db2RlUG9pbnRJdGVyYXRvci5oPgogCkBAIC0yNjk2LDI1ICsyNjk3LDE5IEBAIHN0
YXRpYyBib29sIGRuc05hbWVFbmRzSW5OdW1iZXIoU3RyaW5nVmlldyBuYW1lKQogewogICAgIC8v
IGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZW5kcy1pbi1hLW51bWJlci1jaGVja2VyCiAg
ICAgYXV0byBjb250YWluc09jdGFsRGVjaW1hbE9ySGV4TnVtYmVyID0gW10gKFN0cmluZ1ZpZXcg
c2VnbWVudCkgewotICAgICAgICBhdXRvIGlzTm9uRGlnaXQgPSBbXShVQ2hhciBjKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gIWlzQVNDSUlEaWdpdChjKTsKLSAgICAgICAgfTsKICAgICAgICAgY29u
c3QgYXV0byBzZWdtZW50TGVuZ3RoID0gc2VnbWVudC5sZW5ndGgoKTsKICAgICAgICAgaWYgKCFV
TkxJS0VMWShzZWdtZW50TGVuZ3RoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgYXV0byBmaXJzdENvZGVVbml0ID0gc2VnbWVudFswXTsKLSAgICAgICAgaWYgKExJS0VMWShp
c05vbkRpZ2l0KGZpcnN0Q29kZVVuaXQpKSkKKyAgICAgICAgaWYgKExJS0VMWSghaXNBU0NJSURp
Z2l0KGZpcnN0Q29kZVVuaXQpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
aWYgKHNlZ21lbnRMZW5ndGggPT0gMSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBhdXRvIHNlY29uZENvZGVVbml0ID0gc2VnbWVudFsxXTsKICAgICAgICAgaWYgKChzZWNvbmRD
b2RlVW5pdCA9PSAneCcgfHwgc2Vjb25kQ29kZVVuaXQgPT0gJ1gnKSAmJiBmaXJzdENvZGVVbml0
ID09ICcwJykgewotICAgICAgICAgICAgYXV0byBpc05vbkhleERpZ2l0ID0gW10oVUNoYXIgYykg
ewotICAgICAgICAgICAgICAgIHJldHVybiAhaXNBU0NJSUhleERpZ2l0KGMpOwotICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZpbmQoaXNOb25IZXhEaWdpdCwgMikg
PT0gbm90Rm91bmQ7CisgICAgICAgICAgICByZXR1cm4gc2VnbWVudC5maW5kKHN0ZDo6bm90X2Zu
KGlzQVNDSUlIZXhEaWdpdDxVQ2hhcj4pLCAyKSA9PSBub3RGb3VuZDsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gc2VnbWVudC5maW5kKGlzTm9uRGlnaXQpID09IG5vdEZvdW5kOworICAgICAg
ICByZXR1cm4gc2VnbWVudC5maW5kKHN0ZDo6bm90X2ZuKGlzQVNDSUlEaWdpdDxVQ2hhcj4pKSA9
PSBub3RGb3VuZDsKICAgICB9OwogCiAgICAgc2l6ZV90IGxhc3REb3RMb2NhdGlvbiA9IG5hbWUu
cmV2ZXJzZUZpbmQoJy4nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Q29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oCmluZGV4IGJkN2Vh
YTY3MTA5Y2E4Mzk3Mjg5ZTRlMmI4Y2QzY2NhMWRmN2RiMzMuLjlkMzU1ZTU0ZjgzMDQzODA0Zjli
YWIxNWJjMDViMzIxOGI5ZGQyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQ29tbW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaApAQCAt
NTM2LDcgKzUzNiw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHNpemVfdCBmaW5kSW5uZXIoY29u
c3QgU2VhcmNoQ2hhcmFjdGVyVHlwZSogc2VhcmNoQ2hhcmFjdGVyCiAgICAgcmV0dXJuIGluZGV4
ICsgaTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK3RlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnRlZ3JhbF92
PENoYXJhY3RlclR5cGU+PiogPSBudWxscHRyPgogaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IENo
YXJhY3RlclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSBt
YXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5kZXggPSAwKQogewogICAgIHdoaWxlIChpbmRleCA8
IGxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCBjZTMyMWRlYTk5MjI1NGE0
NmUwOTU2OGVmZjZmNzkxMDM4MWMxNTI0Li40YTkxMzZhNmRjZDM0NDdmNDdjMjZiOWU4ZmUwNDQ4
ZGU0ZDkxZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNTkzLDcgKzU5Myw5IEBA
IFdURl9FWFBPUlRfUFJJVkFURSBib29sIGVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsKGNv
bnN0IFN0cmluZ0ltcGwqLCBjb25zdCBTCiB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGg+IGJvb2wg
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nSW1wbCYsIGNvbnN0IGNo
YXIgKCZsb3dlcmNhc2VMZXR0ZXJzKVtsZW5ndGhdKTsKIHRlbXBsYXRlPHVuc2lnbmVkIGxlbmd0
aD4gYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsKiwg
Y29uc3QgY2hhciAoJmxvd2VyY2FzZUxldHRlcnMpW2xlbmd0aF0pOwogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZv
Y2FibGVfcl92PGJvb2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+PiogPSBudWxscHRy
Pgogc2l6ZV90IGZpbmQoY29uc3QgTENoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0TWF0
Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXggPSAwKTsKK3RlbXBsYXRlPHR5cGVuYW1lIENvZGVV
bml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yX3Y8
Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj4+KiA9IG51bGxwdHI+CiBzaXplX3Qg
ZmluZChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCB1bnNpZ25lZCBpbmRleCA9IDApOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBl
PiBzaXplX3QgcmV2ZXJzZUZpbmRMaW5lVGVybWluYXRvcihjb25zdCBDaGFyYWN0ZXJUeXBlKiwg
dW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBpbmRleCA9IFN0cmluZ0ltcGw6Ok1heExlbmd0aCk7
CkBAIC02NDMsNiArNjQ1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIGNvbnN0IFVDaGFy
KiBTdHJpbmdJbXBsOjpjaGFyYWN0ZXJzPFVDaGFyPigpIGNvbnN0CiAgICAgcmV0dXJuIGNoYXJh
Y3RlcnMxNigpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24s
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcl92PGJvb2wsIENvZGVVbml0TWF0
Y2hGdW5jdGlvbiwgVUNoYXI+Pio+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgTENoYXIqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uIG1hdGNoRnVu
Y3Rpb24sIHVuc2lnbmVkIGluZGV4KQogewogICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgewpA
QCAtNjUzLDYgKzY1Niw3IEBAIGlubGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3RpCiAgICAgcmV0dXJuIG5v
dEZvdW5kOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcl92PGJvb2wsIENvZGVVbml0TWF0Y2hG
dW5jdGlvbiwgVUNoYXI+Pio+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uIG1hdGNoRnVuY3Rp
b24sIHVuc2lnbmVkIGluZGV4KQogewogICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ1ZpZXcuaAppbmRleCBlZGVmZTE1OWQyZDcxOGViNmNlMTM5NGQ5NmIzMjBh
NDQ0OGI4OTA3Li42ZGM2MzdlZTg3NGNmOTI3NGQ5NjEyZDI1NDY5YzA3ODNiMDljNTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBT
cGxpdFJlc3VsdCBzcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKFVDaGFyKSBjb25zdDsKIAogICAg
IHNpemVfdCBmaW5kKFVDaGFyLCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6
OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj4+KiA9
IG51bGxwdHI+CiAgICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25l
ZCBzdGFydCA9IDApIGNvbnN0OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgZmluZChT
dHJpbmdWaWV3LCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OwogCkBAIC01OTUsNiArNTk2LDcg
QEAgaW5saW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKFVDaGFyIGNoYXJhY3RlciwgdW5zaWdu
ZWQgc3RhcnQpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9s
ZW5ndGgsIGNoYXJhY3Rlciwgc3RhcnQpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5p
dE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcl92PGJv
b2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+Pio+CiBpbmxpbmUgc2l6ZV90IFN0cmlu
Z1ZpZXc6OmZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVk
IHN0YXJ0KSBjb25zdAogewogICAgIGlmIChpczhCaXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5o
CmluZGV4IDcxMWNhNjRhMDNhNjE0NDFmYWU0ZTdlZWIzZGIyMTg2MjI5ZmM1ZWYuLjM1ZTBjZmJi
MjBiNmFjMzIyZDZlYjFlNjYyZWUyMTFiOWM5YzBjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
aApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAgICBzaXplX3QgZmluZElnbm9yaW5nQVND
SUlDYXNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2ltcGwgPyBtX2lt
cGwtPmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcuaW1wbCgpKSA6IG5vdEZvdW5kOyB9CiAg
ICAgc2l6ZV90IGZpbmRJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIHN0cmluZywgdW5z
aWduZWQgc3RhcnRPZmZzZXQpIGNvbnN0IHsgcmV0dXJuIG1faW1wbCA/IG1faW1wbC0+ZmluZEln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZy5pbXBsKCksIHN0YXJ0T2Zmc2V0KSA6IG5vdEZvdW5kOyB9
CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcl92PGJvb2wsIENvZGVVbml0TWF0Y2hGdW5jdGlv
biwgVUNoYXI+PiogPSBudWxscHRyPgogICAgIHNpemVfdCBmaW5kKENvZGVVbml0TWF0Y2hGdW5j
dGlvbiBtYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0IHsgcmV0dXJuIG1f
aW1wbCA/IG1faW1wbC0+ZmluZChtYXRjaEZ1bmN0aW9uLCBzdGFydCkgOiBub3RGb3VuZDsgfQog
ICAgIHNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiBzdHJpbmcsIHVuc2lnbmVkIHN0YXJ0ID0gMCkg
Y29uc3QgeyByZXR1cm4gbV9pbXBsID8gbV9pbXBsLT5maW5kKHN0cmluZywgc3RhcnQpIDogbm90
Rm91bmQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGFiY2E2ZDli
YzJlMmVmNmI2ZWNmNTRhYTZhMzQ5ZGNiYWNiMzljYWMuLjdmNGY4YmI3MjY0N2MzOWIwYTM2NzY0
NGQ2ZWQzNjdlMmZmNDEwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwKIAogc3RhdGljIGlubGluZSBi
b29sIHRva2VuQ29udGFpbnNIVE1MU3BhY2UoY29uc3QgU3RyaW5nJiB0b2tlbikKIHsKLSAgICBy
ZXR1cm4gdG9rZW4uZmluZChpc0hUTUxTcGFjZSkgIT0gbm90Rm91bmQ7CisgICAgcmV0dXJuIHRv
a2VuLmZpbmQoaXNIVE1MU3BhY2U8VUNoYXI+KSAhPSBub3RGb3VuZDsKIH0KIAogRXhjZXB0aW9u
T3I8dm9pZD4gRE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IFN0cmluZyYgdG9rZW4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGYyNjlkNWMw
NDA0NzVkNWMzYjZhNDA4M2UyMWYwMDJmY2MwNzY0NTEuLmI1YWQzZmRiY2UxMDFkZmNhNTU0ZDE4
NDk1NmUzODczOGI1ZWIzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1hTU0F1ZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVGb3JTY3JpcHRM
aWtlQXR0cmlidXRlKFN0cmluZyYgZGVjb2RlZFNuaXBwZXQpCiAgICAgLy8gc2xhc2gsIG9yIGxl
c3MtdGhhbiBzaWduLgogICAgIHNpemVfdCBwb3NpdGlvbiA9IDA7CiAgICAgaWYgKChwb3NpdGlv
biA9IGRlY29kZWRTbmlwcGV0LmZpbmQoJz0nKSkgIT0gbm90Rm91bmQKLSAgICAgICAgJiYgKHBv
c2l0aW9uID0gZGVjb2RlZFNuaXBwZXQuZmluZChpc05vdEhUTUxTcGFjZSwgcG9zaXRpb24gKyAx
KSkgIT0gbm90Rm91bmQKKyAgICAgICAgJiYgKHBvc2l0aW9uID0gZGVjb2RlZFNuaXBwZXQuZmlu
ZChpc05vdEhUTUxTcGFjZTxVQ2hhcj4sIHBvc2l0aW9uICsgMSkpICE9IG5vdEZvdW5kCiAgICAg
ICAgICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNUZXJtaW5hdGluZ0NoYXJh
Y3RlciwgaXNIVE1MUXVvdGUoZGVjb2RlZFNuaXBwZXRbcG9zaXRpb25dKSA/IHBvc2l0aW9uICsg
MSA6IHBvc2l0aW9uKSkgIT0gbm90Rm91bmQpIHsKICAgICAgICAgZGVjb2RlZFNuaXBwZXQudHJ1
bmNhdGUocG9zaXRpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCBiNmJiYWE1MjE1
MmJmMTJhYmU4OTI4NTU0NWRiNTIyNTVlMDcyYjExLi44OWZmNzIwODkxOGZlNjUyZTM3OTc4ZDky
MTM1MDIzN2IyMTkwYjcxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC03NSw2ICs3NSwxOCBAQAog
CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyBUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlICpkZWxlZ2F0ZUFsbG93aW5nQWxsVExTKCkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRyPFRl
c3ROYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlID0gW10geworICAgICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICAgICAgZGVs
ZWdhdGUuZ2V0KCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlID0gXihXS1dlYlZp
ZXcgKiwgTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlLCB2b2lkICheY29t
cGxldGlvbkhhbmRsZXIpKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiwgTlNV
UkxDcmVkZW50aWFsICopKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50
aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworICAg
ICAgICB9OworICAgICAgICByZXR1cm4gZGVsZWdhdGU7CisgICAgfSgpOworICAgIHJldHVybiBk
ZWxlZ2F0ZS5nZXQoKTsKK30KKwogc3RhdGljIE5TVVJMICpleGFtcGxlVVJMKCkKIHsKICAgICBy
ZXR1cm4gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdOwpAQCAt
MTIyLDkgKzEzNCwxMCBAQCB2b2lkIHJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QoV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiwgRnVuY3RpbwogICAgIE5TVVJMICpzZXJ2
ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVSTDsKIAogICAgIGF1dG8gd2ViVmlldyA9IGNvbmZp
Z3VyYXRpb24gPyBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSkgOiBhZG9wdE5TKFtXS1dlYlZpZXcg
bmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZUFs
bG93aW5nQWxsVExTKCk7CiAgICAgYWRkQXR0cmlidXRpb25Ub1dlYlZpZXcod2ViVmlldy5nZXQo
KSwgc2VydmVyKTsKICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFTdG9y
ZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsKLSAgICBbW3dlYlZpZXcg
Y29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
OkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSBmb3JIb3N0OnNlcnZlclVSTC5ob3N0XTsK
KyAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgp
LmdldCgpXV07CiAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzpzZXJ2ZXJVUkwgZGVzdGluYXRpb25VUkw6ZXhhbXBs
ZVVSTCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFu
ZGxlcjpeewogICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RCZWZvcmVSZWRpcmVj
dCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOwpAQCAtMjcwLDkgKzI4
MywxMCBAQCBURVNUKEV2ZW50QXR0cmlidXRpb24sIEZyYXVkUHJldmVudGlvbikKICAgICBOU1VS
TCAqc2VydmVyVVJMID0gc2VydmVyLnJlcXVlc3QoKS5VUkw7CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9u
RGVsZWdhdGUgPSBkZWxlZ2F0ZUFsbG93aW5nQWxsVExTKCk7CiAgICAgW3dlYlZpZXcgX2FkZEV2
ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6NDIgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgp
IHNvdXJjZURlc2NyaXB0aW9uOkAidGVzdCBzb3VyY2UgZGVzY3JpcHRpb24iIHB1cmNoYXNlcjpA
InRlc3QgcHVyY2hhc2VyIiByZXBvcnRFbmRwb2ludDpzZXJ2ZXJVUkwgb3B0aW9uYWxOb25jZTpA
IkFCQ0RFRmFiY2RlZjAxMjM0NTY3ODkiXTsKICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0u
d2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsK
LSAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluOkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSBmb3JIb3N0OnNl
cnZlclVSTC5ob3N0XTsKKyAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFT
dG9yZSBfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOkBbKGlkKXRl
c3RDZXJ0aWZpY2F0ZSgpLmdldCgpXV07CiAKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVSTCBkZXN0
aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW3dl
YlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6
WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437848</attachid>
            <date>2021-09-10 00:21:55 -0700</date>
            <delta_ts>2021-09-10 09:03:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210910002155.patch</filename>
            <type>text/plain</type>
            <size>9577</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjM1NGFiMjRiYWZlMzBjNjYyY2YyMjYzYWY4MjAwM2VkYTZjNjY5
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMjgyMTA1LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGQ5ZmExZDdmZmY0ZDEzYmNkZDkzMWEyNmIzNDBjMjQyMDhkNzMxNjQuLjhjMDk5NDU2OGRi
YjNkYWRhZWNhNzUwY2Y5Y2UzY2MwNzhhZjAwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMS0wOS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFVzZSBzdGQ6Om5vdF9mbiBpbnN0ZWFkIG9mIGxhbWJkYSBpbiBVUkxQYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA1
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IGZldyBleHBsaWNpdCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIG5lZWRlZCBzaW5jZSB3ZSBhcmUgcGFz
c2luZyBhIHRlbXBsYXRlIHBhcmFtZXRlciBub3cgaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIHBvaW50
ZXIuCisKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b2tlbkNvbnRhaW5zSFRNTFNwYWNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRp
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJpYnV0
ZSk6CisKIDIwMjEtMDktMDkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtUYWJsZSBsYXlvdXRdIEluY29ycmVjdCB2ZXJ0aWNhbCBwb3NpdGlvbiB3aGVuIHRoZSBp
bmxpbmUgbGV2ZWwgYm94IGhhcyAwcHggdXNlZCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9VUkxQYXJzZXIuY3BwIGIvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAppbmRl
eCA5ODFiNWFmZmUyNDBjNjBjMDQzMmQ3MDUyMzUxMTQ0MmFmYjYzOWRmLi5jYmRlNDA3ZTM5ZDJh
MjVlYzJhZmEwZGRkN2E1MjQ3ZWUwYzkyN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9V
UkxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlIDx3dGYvVVJMUGFyc2VyLmg+CiAKICNpbmNsdWRlIDxhcnJheT4K
KyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NvZGVQb2ludEl0ZXJhdG9yLmg+CiAKQEAgLTI2OTYsMjUgKzI2OTcsMTkgQEAgc3RhdGlj
IGJvb2wgZG5zTmFtZUVuZHNJbk51bWJlcihTdHJpbmdWaWV3IG5hbWUpCiB7CiAgICAgLy8gaHR0
cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNlbmRzLWluLWEtbnVtYmVyLWNoZWNrZXIKICAgICBh
dXRvIGNvbnRhaW5zT2N0YWxEZWNpbWFsT3JIZXhOdW1iZXIgPSBbXSAoU3RyaW5nVmlldyBzZWdt
ZW50KSB7Ci0gICAgICAgIGF1dG8gaXNOb25EaWdpdCA9IFtdKFVDaGFyIGMpIHsKLSAgICAgICAg
ICAgIHJldHVybiAhaXNBU0NJSURpZ2l0KGMpOwotICAgICAgICB9OwogICAgICAgICBjb25zdCBh
dXRvIHNlZ21lbnRMZW5ndGggPSBzZWdtZW50Lmxlbmd0aCgpOwogICAgICAgICBpZiAoIVVOTElL
RUxZKHNlZ21lbnRMZW5ndGgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBh
dXRvIGZpcnN0Q29kZVVuaXQgPSBzZWdtZW50WzBdOwotICAgICAgICBpZiAoTElLRUxZKGlzTm9u
RGlnaXQoZmlyc3RDb2RlVW5pdCkpKQorICAgICAgICBpZiAoTElLRUxZKCFpc0FTQ0lJRGlnaXQo
Zmlyc3RDb2RlVW5pdCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
c2VnbWVudExlbmd0aCA9PSAxKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGF1
dG8gc2Vjb25kQ29kZVVuaXQgPSBzZWdtZW50WzFdOwogICAgICAgICBpZiAoKHNlY29uZENvZGVV
bml0ID09ICd4JyB8fCBzZWNvbmRDb2RlVW5pdCA9PSAnWCcpICYmIGZpcnN0Q29kZVVuaXQgPT0g
JzAnKSB7Ci0gICAgICAgICAgICBhdXRvIGlzTm9uSGV4RGlnaXQgPSBbXShVQ2hhciBjKSB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICFpc0FTQ0lJSGV4RGlnaXQoYyk7Ci0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnQuZmluZChpc05vbkhleERpZ2l0LCAyKSA9PSBu
b3RGb3VuZDsKKyAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZpbmQoc3RkOjpub3RfZm4oaXNB
U0NJSUhleERpZ2l0PFVDaGFyPiksIDIpID09IG5vdEZvdW5kOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBzZWdtZW50LmZpbmQoaXNOb25EaWdpdCkgPT0gbm90Rm91bmQ7CisgICAgICAgIHJl
dHVybiBzZWdtZW50LmZpbmQoc3RkOjpub3RfZm4oaXNBU0NJSURpZ2l0PFVDaGFyPikpID09IG5v
dEZvdW5kOwogICAgIH07CiAKICAgICBzaXplX3QgbGFzdERvdExvY2F0aW9uID0gbmFtZS5yZXZl
cnNlRmluZCgnLicpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21t
b24uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmgKaW5kZXggYmQ3ZWFhNjcx
MDljYTgzOTcyODllNGUyYjhjZDNjY2ExZGY3ZGIzMy4uOWQzNTVlNTRmODMwNDM4MDRmOWJhYjE1
YmMwNWIzMjE4YjlkZDI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdD
b21tb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oCkBAIC01MzYs
NyArNTM2LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90IGZpbmRJbm5lcihjb25zdCBT
ZWFyY2hDaGFyYWN0ZXJUeXBlKiBzZWFyY2hDaGFyYWN0ZXIKICAgICByZXR1cm4gaW5kZXggKyBp
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludGVncmFsX3Y8Q2hh
cmFjdGVyVHlwZT4+KiA9IG51bGxwdHI+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgQ2hhcmFj
dGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNo
Q2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVu
Z3RoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGNlMzIxZGVhOTkyMjU0YTQ2ZTA5
NTY4ZWZmNmY3OTEwMzgxYzE1MjQuLjdmMDZhZjE1MGEyYmU5ZjkwY2FjNzgxYmVhY2Q0OGZlM2U3
Y2MyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC01OTMsOCArNTkzLDggQEAgV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3Qg
U3RyaW5nSW1wbCosIGNvbnN0IFMKIHRlbXBsYXRlPHVuc2lnbmVkIGxlbmd0aD4gYm9vbCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiwgY29uc3QgY2hhciAo
Jmxvd2VyY2FzZUxldHRlcnMpW2xlbmd0aF0pOwogdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBi
b29sIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25z
dCBjaGFyICgmbG93ZXJjYXNlTGV0dGVycylbbGVuZ3RoXSk7CiAKLXNpemVfdCBmaW5kKGNvbnN0
IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHVuc2lnbmVk
IGluZGV4ID0gMCk7Ci1zaXplX3QgZmluZChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwg
Q29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDApOwordGVtcGxhdGU8dHlw
ZW5hbWUgQ29kZVVuaXQsIHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCBDb2RlVW5pdD4+KiA9IG51bGxwdHI+CitzaXplX3QgZmluZChjb25zdCBDb2RlVW5pdCosIHVu
c2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDAp
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzaXplX3QgcmV2ZXJzZUZpbmRM
aW5lVGVybWluYXRvcihjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQgbGVuZ3RoLCB1bnNp
Z25lZCBpbmRleCA9IFN0cmluZ0ltcGw6Ok1heExlbmd0aCk7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPiBzaXplX3QgcmV2ZXJzZUZpbmQoY29uc3QgQ2hhcmFjdGVyVHlwZSosIHVu
c2lnbmVkIGxlbmd0aCwgQ2hhcmFjdGVyVHlwZSBtYXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5k
ZXggPSBTdHJpbmdJbXBsOjpNYXhMZW5ndGgpOwpAQCAtNjQzLDE3ICs2NDMsOCBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgY29uc3QgVUNoYXIqIFN0cmluZ0ltcGw6OmNoYXJhY3RlcnM8VUNo
YXI+KCkgY29uc3QKICAgICByZXR1cm4gY2hhcmFjdGVyczE2KCk7CiB9CiAKLWlubGluZSBzaXpl
X3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5p
dE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXgpCi17Ci0gICAgd2hp
bGUgKGluZGV4IDwgbGVuZ3RoKSB7Ci0gICAgICAgIGlmIChtYXRjaEZ1bmN0aW9uKGNoYXJhY3Rl
cnNbaW5kZXhdKSkKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsKLSAgICAgICAgKytpbmRleDsK
LSAgICB9Ci0gICAgcmV0dXJuIG5vdEZvdW5kOwotfQotCi1pbmxpbmUgc2l6ZV90IGZpbmQoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0
aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4KQordGVtcGxhdGU8dHlwZW5hbWUgQ29k
ZVVuaXQsIHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBDb2RlVW5p
dD4+Kj4KK2lubGluZSBzaXplX3QgZmluZChjb25zdCBDb2RlVW5pdCogY2hhcmFjdGVycywgdW5z
aWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWdu
ZWQgaW5kZXgpCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CiAgICAgICAgIGlmICht
YXRjaEZ1bmN0aW9uKGNoYXJhY3RlcnNbaW5kZXhdKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgK
aW5kZXggOGM2YzEyNWRjYzI4NDBkMjMxMDI3Njk2Y2UyMjk2ZTU3OTI5NjAyYy4uZjg5NTZmZGY2
MDc5OTA1ZjdjOGExNDdmYmUzYzBmMWU4MzA0YzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3
LmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgU3BsaXRSZXN1bHQgc3BsaXRBbGxv
d2luZ0VtcHR5RW50cmllcyhVQ2hhcikgY29uc3Q7CiAKICAgICBzaXplX3QgZmluZChVQ2hhciwg
dW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5p
dE1hdGNoRnVuY3Rpb24sIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnZvY2FibGVfcl92PGJv
b2wsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgVUNoYXI+PiogPSBudWxscHRyPgogICAgIHNpemVf
dCBmaW5kKENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgc3RhcnQgPSAwKSBjb25zdDsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGZpbmQoU3RyaW5nVmlldywgdW5zaWduZWQg
c3RhcnQgPSAwKSBjb25zdDsKIApAQCAtNTk1LDExICs1OTYsMTIgQEAgaW5saW5lIHNpemVfdCBT
dHJpbmdWaWV3OjpmaW5kKFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgc3RhcnQpIGNvbnN0CiAg
ICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIGNoYXJhY3Rlciwg
c3RhcnQpOwogfQogCi1pbmxpbmUgc2l6ZV90IFN0cmluZ1ZpZXc6OmZpbmQoQ29kZVVuaXRNYXRj
aEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAordGVtcGxhdGU8
dHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
aW52b2NhYmxlX3Jfdjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIFVDaGFyPj4qPgoraW5s
aW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKENvZGVVbml0TWF0Y2hGdW5jdGlvbiYmIG1hdGNo
RnVuY3Rpb24sIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAogewogICAgIGlmIChpczhCaXQoKSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgbWF0Y2hGdW5j
dGlvbiwgc3RhcnQpOwotICAgIHJldHVybiBXVEY6OmZpbmQoY2hhcmFjdGVyczE2KCksIG1fbGVu
Z3RoLCBtYXRjaEZ1bmN0aW9uLCBzdGFydCk7CisgICAgICAgIHJldHVybiBXVEY6OmZpbmQoY2hh
cmFjdGVyczgoKSwgbV9sZW5ndGgsIHN0ZDo6Zm9yd2FyZDxDb2RlVW5pdE1hdGNoRnVuY3Rpb24+
KG1hdGNoRnVuY3Rpb24pLCBzdGFydCk7CisgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJz
MTYoKSwgbV9sZW5ndGgsIHN0ZDo6Zm9yd2FyZDxDb2RlVW5pdE1hdGNoRnVuY3Rpb24+KG1hdGNo
RnVuY3Rpb24pLCBzdGFydCk7CiB9CiAKIGlubGluZSBzaXplX3QgU3RyaW5nVmlldzo6cmV2ZXJz
ZUZpbmQoVUNoYXIgY2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBhYmNhNmQ5YmMyZTJlZjZiNmVjZjU0YWE2YTM0OWRj
YmFjYjM5Y2FjLi43ZjRmOGJiNzI2NDdjMzliMGEzNjc2NDRkNmVkMzY3ZTJmZjQxMGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC00NCw3ICs0NCw3IEBAIERPTVRva2Vu
TGlzdDo6RE9NVG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB0b2tlbkNvbnRhaW5zSFRNTFNw
YWNlKGNvbnN0IFN0cmluZyYgdG9rZW4pCiB7Ci0gICAgcmV0dXJuIHRva2VuLmZpbmQoaXNIVE1M
U3BhY2UpICE9IG5vdEZvdW5kOworICAgIHJldHVybiB0b2tlbi5maW5kKGlzSFRNTFNwYWNlPFVD
aGFyPikgIT0gbm90Rm91bmQ7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTVRva2VuTGlzdDo6
dmFsaWRhdGVUb2tlbihjb25zdCBTdHJpbmcmIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBmMjY5ZDVjMDQwNDc1ZDVjM2I2YTQwODNlMjFmMDAy
ZmNjMDc2NDUxLi5iNWFkM2ZkYmNlMTAxZGZjYTU1NGQxODQ5NTZlMzg3MzhiNWViMzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtMjMxLDcgKzIzMSw3
IEBAIHN0YXRpYyB2b2lkIHRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJpYnV0ZShTdHJpbmcmIGRl
Y29kZWRTbmlwcGV0KQogICAgIC8vIHNsYXNoLCBvciBsZXNzLXRoYW4gc2lnbi4KICAgICBzaXpl
X3QgcG9zaXRpb24gPSAwOwogICAgIGlmICgocG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5k
KCc9JykpICE9IG5vdEZvdW5kCi0gICAgICAgICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0
LmZpbmQoaXNOb3RIVE1MU3BhY2UsIHBvc2l0aW9uICsgMSkpICE9IG5vdEZvdW5kCisgICAgICAg
ICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNOb3RIVE1MU3BhY2U8VUNoYXI+
LCBwb3NpdGlvbiArIDEpKSAhPSBub3RGb3VuZAogICAgICAgICAmJiAocG9zaXRpb24gPSBkZWNv
ZGVkU25pcHBldC5maW5kKGlzVGVybWluYXRpbmdDaGFyYWN0ZXIsIGlzSFRNTFF1b3RlKGRlY29k
ZWRTbmlwcGV0W3Bvc2l0aW9uXSkgPyBwb3NpdGlvbiArIDEgOiBwb3NpdGlvbikpICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgIGRlY29kZWRTbmlwcGV0LnRydW5jYXRlKHBvc2l0aW9uKTsKICAgICB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437877</attachid>
            <date>2021-09-10 09:03:42 -0700</date>
            <delta_ts>2021-09-10 15:37:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210910090341.patch</filename>
            <type>text/plain</type>
            <size>9743</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjM1NGFiMjRiYWZlMzBjNjYyY2YyMjYzYWY4MjAwM2VkYTZjNjY5
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMg
bm90IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhciku
CisgICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hh
cgorICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJv
b2wuCisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFt
ZUVuZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmg6CisKIDIwMjEtMDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMjgyMTA1LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGQ5ZmExZDdmZmY0ZDEzYmNkZDkzMWEyNmIzNDBjMjQyMDhkNzMxNjQuLjhjMDk5NDU2OGRi
YjNkYWRhZWNhNzUwY2Y5Y2UzY2MwNzhhZjAwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMS0wOS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFVzZSBzdGQ6Om5vdF9mbiBpbnN0ZWFkIG9mIGxhbWJkYSBpbiBVUkxQYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA1
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IGZldyBleHBsaWNpdCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIG5lZWRlZCBzaW5jZSB3ZSBhcmUgcGFz
c2luZyBhIHRlbXBsYXRlIHBhcmFtZXRlciBub3cgaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIHBvaW50
ZXIuCisKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b2tlbkNvbnRhaW5zSFRNTFNwYWNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRp
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJpYnV0
ZSk6CisKIDIwMjEtMDktMDkgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtUYWJsZSBsYXlvdXRdIEluY29ycmVjdCB2ZXJ0aWNhbCBwb3NpdGlvbiB3aGVuIHRoZSBp
bmxpbmUgbGV2ZWwgYm94IGhhcyAwcHggdXNlZCBoZWlnaHQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9VUkxQYXJzZXIuY3BwIGIvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAppbmRl
eCA5ODFiNWFmZmUyNDBjNjBjMDQzMmQ3MDUyMzUxMTQ0MmFmYjYzOWRmLi5jYmRlNDA3ZTM5ZDJh
MjVlYzJhZmEwZGRkN2E1MjQ3ZWUwYzkyN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9V
UkxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlIDx3dGYvVVJMUGFyc2VyLmg+CiAKICNpbmNsdWRlIDxhcnJheT4K
KyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NvZGVQb2ludEl0ZXJhdG9yLmg+CiAKQEAgLTI2OTYsMjUgKzI2OTcsMTkgQEAgc3RhdGlj
IGJvb2wgZG5zTmFtZUVuZHNJbk51bWJlcihTdHJpbmdWaWV3IG5hbWUpCiB7CiAgICAgLy8gaHR0
cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNlbmRzLWluLWEtbnVtYmVyLWNoZWNrZXIKICAgICBh
dXRvIGNvbnRhaW5zT2N0YWxEZWNpbWFsT3JIZXhOdW1iZXIgPSBbXSAoU3RyaW5nVmlldyBzZWdt
ZW50KSB7Ci0gICAgICAgIGF1dG8gaXNOb25EaWdpdCA9IFtdKFVDaGFyIGMpIHsKLSAgICAgICAg
ICAgIHJldHVybiAhaXNBU0NJSURpZ2l0KGMpOwotICAgICAgICB9OwogICAgICAgICBjb25zdCBh
dXRvIHNlZ21lbnRMZW5ndGggPSBzZWdtZW50Lmxlbmd0aCgpOwogICAgICAgICBpZiAoIVVOTElL
RUxZKHNlZ21lbnRMZW5ndGgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBh
dXRvIGZpcnN0Q29kZVVuaXQgPSBzZWdtZW50WzBdOwotICAgICAgICBpZiAoTElLRUxZKGlzTm9u
RGlnaXQoZmlyc3RDb2RlVW5pdCkpKQorICAgICAgICBpZiAoTElLRUxZKCFpc0FTQ0lJRGlnaXQo
Zmlyc3RDb2RlVW5pdCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
c2VnbWVudExlbmd0aCA9PSAxKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGF1
dG8gc2Vjb25kQ29kZVVuaXQgPSBzZWdtZW50WzFdOwogICAgICAgICBpZiAoKHNlY29uZENvZGVV
bml0ID09ICd4JyB8fCBzZWNvbmRDb2RlVW5pdCA9PSAnWCcpICYmIGZpcnN0Q29kZVVuaXQgPT0g
JzAnKSB7Ci0gICAgICAgICAgICBhdXRvIGlzTm9uSGV4RGlnaXQgPSBbXShVQ2hhciBjKSB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICFpc0FTQ0lJSGV4RGlnaXQoYyk7Ci0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnQuZmluZChpc05vbkhleERpZ2l0LCAyKSA9PSBu
b3RGb3VuZDsKKyAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZpbmQoc3RkOjpub3RfZm4oaXNB
U0NJSUhleERpZ2l0PFVDaGFyPiksIDIpID09IG5vdEZvdW5kOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBzZWdtZW50LmZpbmQoaXNOb25EaWdpdCkgPT0gbm90Rm91bmQ7CisgICAgICAgIHJl
dHVybiBzZWdtZW50LmZpbmQoc3RkOjpub3RfZm4oaXNBU0NJSURpZ2l0PFVDaGFyPikpID09IG5v
dEZvdW5kOwogICAgIH07CiAKICAgICBzaXplX3QgbGFzdERvdExvY2F0aW9uID0gbmFtZS5yZXZl
cnNlRmluZCgnLicpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21t
b24uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmgKaW5kZXggYmQ3ZWFhNjcx
MDljYTgzOTcyODllNGUyYjhjZDNjY2ExZGY3ZGIzMy4uOWQzNTVlNTRmODMwNDM4MDRmOWJhYjE1
YmMwNWIzMjE4YjlkZDI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdD
b21tb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oCkBAIC01MzYs
NyArNTM2LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90IGZpbmRJbm5lcihjb25zdCBT
ZWFyY2hDaGFyYWN0ZXJUeXBlKiBzZWFyY2hDaGFyYWN0ZXIKICAgICByZXR1cm4gaW5kZXggKyBp
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludGVncmFsX3Y8Q2hh
cmFjdGVyVHlwZT4+KiA9IG51bGxwdHI+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgQ2hhcmFj
dGVyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNo
Q2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVu
Z3RoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGNlMzIxZGVhOTkyMjU0YTQ2ZTA5
NTY4ZWZmNmY3OTEwMzgxYzE1MjQuLmM3NmNkNTIzNjc2MTFjOTQyZDM0MmJmMDkxYjE2MmEwYTY3
NzQ0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC01OTMsOCArNTkzLDggQEAgV1RG
X0VYUE9SVF9QUklWQVRFIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3Qg
U3RyaW5nSW1wbCosIGNvbnN0IFMKIHRlbXBsYXRlPHVuc2lnbmVkIGxlbmd0aD4gYm9vbCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiwgY29uc3QgY2hhciAo
Jmxvd2VyY2FzZUxldHRlcnMpW2xlbmd0aF0pOwogdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBi
b29sIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25z
dCBjaGFyICgmbG93ZXJjYXNlTGV0dGVycylbbGVuZ3RoXSk7CiAKLXNpemVfdCBmaW5kKGNvbnN0
IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHVuc2lnbmVk
IGluZGV4ID0gMCk7Ci1zaXplX3QgZmluZChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwg
Q29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCA9IDApOwordGVtcGxhdGU8dHlw
ZW5hbWUgQ29kZVVuaXQsIHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCBDb2RlVW5pdD4+KiA9IG51bGxwdHI+CitzaXplX3QgZmluZChjb25zdCBDb2RlVW5pdCosIHVu
c2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uJiYsIHVuc2lnbmVkIGluZGV4ID0g
MCk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHNpemVfdCByZXZlcnNlRmlu
ZExpbmVUZXJtaW5hdG9yKGNvbnN0IENoYXJhY3RlclR5cGUqLCB1bnNpZ25lZCBsZW5ndGgsIHVu
c2lnbmVkIGluZGV4ID0gU3RyaW5nSW1wbDo6TWF4TGVuZ3RoKTsKIHRlbXBsYXRlPHR5cGVuYW1l
IENoYXJhY3RlclR5cGU+IHNpemVfdCByZXZlcnNlRmluZChjb25zdCBDaGFyYWN0ZXJUeXBlKiwg
dW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25lZCBp
bmRleCA9IFN0cmluZ0ltcGw6Ok1heExlbmd0aCk7CkBAIC02NDMsMTcgKzY0Myw4IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSBjb25zdCBVQ2hhciogU3RyaW5nSW1wbDo6Y2hhcmFjdGVyczxV
Q2hhcj4oKSBjb25zdAogICAgIHJldHVybiBjaGFyYWN0ZXJzMTYoKTsKIH0KIAotaW5saW5lIHNp
emVfdCBmaW5kKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVV
bml0TWF0Y2hGdW5jdGlvbiBtYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCkKLXsKLSAgICB3
aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKLSAgICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hhcmFj
dGVyc1tpbmRleF0pKQotICAgICAgICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICArK2luZGV4
OwotICAgIH0KLSAgICByZXR1cm4gbm90Rm91bmQ7Ci19Ci0KLWlubGluZSBzaXplX3QgZmluZChj
b25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVu
Y3Rpb24gbWF0Y2hGdW5jdGlvbiwgdW5zaWduZWQgaW5kZXgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2RlVW5pdCwgdHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9pZl90
PHN0ZDo6aXNfaW52b2NhYmxlX3Jfdjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIENvZGVV
bml0Pj4qPgoraW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IENvZGVVbml0KiBjaGFyYWN0ZXJzLCB1
bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiYmIG1hdGNoRnVuY3Rpb24sIHVu
c2lnbmVkIGluZGV4KQogewogICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgewogICAgICAgICBp
ZiAobWF0Y2hGdW5jdGlvbihjaGFyYWN0ZXJzW2luZGV4XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmll
dy5oCmluZGV4IDhjNmMxMjVkY2MyODQwZDIzMTAyNzY5NmNlMjI5NmU1NzkyOTYwMmMuLmI3NjI4
NDllNmY2OTA0MjE3NTM1YjFiNTZmYWVhODA3OWZhNmJlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Vmlldy5oCkBAIC0xMzgsNyArMTM4LDggQEAgcHVibGljOgogICAgIFNwbGl0UmVzdWx0IHNwbGl0
QWxsb3dpbmdFbXB0eUVudHJpZXMoVUNoYXIpIGNvbnN0OwogCiAgICAgc2l6ZV90IGZpbmQoVUNo
YXIsIHVuc2lnbmVkIHN0YXJ0ID0gMCkgY29uc3Q7Ci0gICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBzdGFydCA9IDApIGNvbnN0OworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2lu
dm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj4+KiA9IG51bGxw
dHI+CisgICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uJiYsIHVuc2lnbmVkIHN0
YXJ0ID0gMCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBmaW5kKFN0cmlu
Z1ZpZXcsIHVuc2lnbmVkIHN0YXJ0ID0gMCkgY29uc3Q7CiAKICAgICBzaXplX3QgcmV2ZXJzZUZp
bmQoVUNoYXIsIHVuc2lnbmVkIGluZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpKSBjb25zdDsKQEAgLTU5NSwxMSArNTk2LDEyIEBAIGlubGluZSBzaXplX3QgU3RyaW5n
Vmlldzo6ZmluZChVQ2hhciBjaGFyYWN0ZXIsIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAogICAgIHJl
dHVybiBXVEY6OmZpbmQoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoLCBjaGFyYWN0ZXIsIHN0YXJ0
KTsKIH0KIAotaW5saW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKENvZGVVbml0TWF0Y2hGdW5j
dGlvbiBtYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBzdGFydCkgY29uc3QKK3RlbXBsYXRlPHR5cGVu
YW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9j
YWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj4+Kj4KK2lubGluZSBz
aXplX3QgU3RyaW5nVmlldzo6ZmluZChDb2RlVW5pdE1hdGNoRnVuY3Rpb24mJiBtYXRjaEZ1bmN0
aW9uLCB1bnNpZ25lZCBzdGFydCkgY29uc3QKIHsKICAgICBpZiAoaXM4Qml0KCkpCi0gICAgICAg
IHJldHVybiBXVEY6OmZpbmQoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG1hdGNoRnVuY3Rpb24s
IHN0YXJ0KTsKLSAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3RlcnMxNigpLCBtX2xlbmd0aCwg
bWF0Y2hGdW5jdGlvbiwgc3RhcnQpOworICAgICAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3Rl
cnM4KCksIG1fbGVuZ3RoLCBzdGQ6OmZvcndhcmQ8Q29kZVVuaXRNYXRjaEZ1bmN0aW9uPihtYXRj
aEZ1bmN0aW9uKSwgc3RhcnQpOworICAgIHJldHVybiBXVEY6OmZpbmQoY2hhcmFjdGVyczE2KCks
IG1fbGVuZ3RoLCBzdGQ6OmZvcndhcmQ8Q29kZVVuaXRNYXRjaEZ1bmN0aW9uPihtYXRjaEZ1bmN0
aW9uKSwgc3RhcnQpOwogfQogCiBpbmxpbmUgc2l6ZV90IFN0cmluZ1ZpZXc6OnJldmVyc2VGaW5k
KFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgaW5kZXgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5jcHAKaW5kZXggYWJjYTZkOWJjMmUyZWY2YjZlY2Y1NGFhNmEzNDlkY2JhY2Iz
OWNhYy4uN2Y0ZjhiYjcyNjQ3YzM5YjBhMzY3NjQ0ZDZlZDM2N2UyZmY0MTBhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtNDQsNyArNDQsNyBAQCBET01Ub2tlbkxpc3Q6
OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLAogCiBzdGF0aWMgaW5saW5lIGJvb2wgdG9rZW5Db250YWluc0hUTUxTcGFjZShj
b25zdCBTdHJpbmcmIHRva2VuKQogewotICAgIHJldHVybiB0b2tlbi5maW5kKGlzSFRNTFNwYWNl
KSAhPSBub3RGb3VuZDsKKyAgICByZXR1cm4gdG9rZW4uZmluZChpc0hUTUxTcGFjZTxVQ2hhcj4p
ICE9IG5vdEZvdW5kOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBET01Ub2tlbkxpc3Q6OnZhbGlk
YXRlVG9rZW4oY29uc3QgU3RyaW5nJiB0b2tlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvci5jcHAKaW5kZXggZjI2OWQ1YzA0MDQ3NWQ1YzNiNmE0MDgzZTIxZjAwMmZjYzA3
NjQ1MS4uYjVhZDNmZGJjZTEwMWRmY2E1NTRkMTg0OTU2ZTM4NzM4YjVlYjM1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBz
dGF0aWMgdm9pZCB0cnVuY2F0ZUZvclNjcmlwdExpa2VBdHRyaWJ1dGUoU3RyaW5nJiBkZWNvZGVk
U25pcHBldCkKICAgICAvLyBzbGFzaCwgb3IgbGVzcy10aGFuIHNpZ24uCiAgICAgc2l6ZV90IHBv
c2l0aW9uID0gMDsKICAgICBpZiAoKHBvc2l0aW9uID0gZGVjb2RlZFNuaXBwZXQuZmluZCgnPScp
KSAhPSBub3RGb3VuZAotICAgICAgICAmJiAocG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5k
KGlzTm90SFRNTFNwYWNlLCBwb3NpdGlvbiArIDEpKSAhPSBub3RGb3VuZAorICAgICAgICAmJiAo
cG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5kKGlzTm90SFRNTFNwYWNlPFVDaGFyPiwgcG9z
aXRpb24gKyAxKSkgIT0gbm90Rm91bmQKICAgICAgICAgJiYgKHBvc2l0aW9uID0gZGVjb2RlZFNu
aXBwZXQuZmluZChpc1Rlcm1pbmF0aW5nQ2hhcmFjdGVyLCBpc0hUTUxRdW90ZShkZWNvZGVkU25p
cHBldFtwb3NpdGlvbl0pID8gcG9zaXRpb24gKyAxIDogcG9zaXRpb24pKSAhPSBub3RGb3VuZCkg
ewogICAgICAgICBkZWNvZGVkU25pcHBldC50cnVuY2F0ZShwb3NpdGlvbik7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437916</attachid>
            <date>2021-09-10 15:37:07 -0700</date>
            <delta_ts>2021-09-10 16:51:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230058-20210910153706.patch</filename>
            <type>text/plain</type>
            <size>10903</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5Mzg4ZWFlODE0MjFkZDY1ZmM4NjQ5
MGQ0NWJiMjViZjhjNTk4YjIuLjEyMGJhOGFiMWJmZmM1NzM2YTdkMGFjN2I5ODFkYzBlZGQxNDNh
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc3RkOjpub3RfZm4gaW5zdGVh
ZCBvZiBsYW1iZGEgaW4gVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAwNTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBTaW5jZSB0aGUgcmV0dXJuIHR5cGUgb2Ygc3RkOjpub3RfZm4gaXMgbm90
IHNwZWNpZmllZCwgaXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgYm9vbCgqKShVQ2hhcikuCisg
ICAgICAgIFRoaXMgbmVjZXNzaXRhdGVzIHRoZSB0ZW1wbGF0aXppbmcgb2YgQ29kZVVuaXRNYXRj
aEZ1bmN0aW9uIHRvIGJlIGFueXRoaW5nIHRoYXQgaXMgaW52b2NhYmxlIHdpdGggYSBVQ2hhcgor
ICAgICAgICBhbmQgcmV0dXJucyBhIHR5cGUgdGhhdCBpcyBjb252ZXJ0YWJsZSB0byBhIGJvb2wu
CisKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6ZG5zTmFtZUVu
ZHNJbk51bWJlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29tbW9uLmg6CisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQvV1RG
U3RyaW5nLmg6CisKIDIwMjEtMDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMjgyMTA1LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDdhZTc4NDU5NGJkYzA1MmJiYzhjNDAyZjJiZTA1ZGRkYmMzYzdjYTcuLjQzYTA3NGExYzhiZTk2
NDMyY2NiZjNiZWU1YzA2ZmI1MDM4M2U0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0wOS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFVzZSBzdGQ6Om5vdF9mbiBpbnN0ZWFkIG9mIGxhbWJkYSBpbiBVUkxQYXJzZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA1OAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBhIGZldyBl
eHBsaWNpdCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIG5lZWRlZCBzaW5jZSB3ZSBhcmUgcGFzc2luZyBh
IHRlbXBsYXRlIHBhcmFtZXRlciBub3cgaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIHBvaW50ZXIuCisK
KyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b2tl
bkNvbnRhaW5zSFRNTFNwYWNlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJpYnV0ZSk6CisK
IDIwMjEtMDktMTAgIE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1hcmNvc2MuY29tPgogCiAgICAg
ICAgIFtXZWItU2hhcmVdIGhhbmRsZSBub24tZnVsbHkgYWN0aXZlIGRvY3VtZW50cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VSTFBh
cnNlci5jcHAKaW5kZXggOTgxYjVhZmZlMjQwYzYwYzA0MzJkNzA1MjM1MTE0NDJhZmI2MzlkZi4u
NWJjYTMyNmIyZDU1Mzk3MDk5ZWNkMDk1YjUzYjRjOTgzMmU2NDdlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgogCiAjaW5j
bHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxtdXRleD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9Db2RlUG9pbnRJdGVyYXRvci5oPgogCkBAIC0yNjk2LDI1ICsyNjk3
LDE4IEBAIHN0YXRpYyBib29sIGRuc05hbWVFbmRzSW5OdW1iZXIoU3RyaW5nVmlldyBuYW1lKQog
ewogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZW5kcy1pbi1hLW51bWJlci1j
aGVja2VyCiAgICAgYXV0byBjb250YWluc09jdGFsRGVjaW1hbE9ySGV4TnVtYmVyID0gW10gKFN0
cmluZ1ZpZXcgc2VnbWVudCkgewotICAgICAgICBhdXRvIGlzTm9uRGlnaXQgPSBbXShVQ2hhciBj
KSB7Ci0gICAgICAgICAgICByZXR1cm4gIWlzQVNDSUlEaWdpdChjKTsKLSAgICAgICAgfTsKICAg
ICAgICAgY29uc3QgYXV0byBzZWdtZW50TGVuZ3RoID0gc2VnbWVudC5sZW5ndGgoKTsKICAgICAg
ICAgaWYgKCFVTkxJS0VMWShzZWdtZW50TGVuZ3RoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgYXV0byBmaXJzdENvZGVVbml0ID0gc2VnbWVudFswXTsKLSAgICAgICAgaWYg
KExJS0VMWShpc05vbkRpZ2l0KGZpcnN0Q29kZVVuaXQpKSkKKyAgICAgICAgaWYgKExJS0VMWSgh
aXNBU0NJSURpZ2l0KGZpcnN0Q29kZVVuaXQpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgaWYgKHNlZ21lbnRMZW5ndGggPT0gMSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBhdXRvIHNlY29uZENvZGVVbml0ID0gc2VnbWVudFsxXTsKLSAgICAgICAgaWYg
KChzZWNvbmRDb2RlVW5pdCA9PSAneCcgfHwgc2Vjb25kQ29kZVVuaXQgPT0gJ1gnKSAmJiBmaXJz
dENvZGVVbml0ID09ICcwJykgewotICAgICAgICAgICAgYXV0byBpc05vbkhleERpZ2l0ID0gW10o
VUNoYXIgYykgewotICAgICAgICAgICAgICAgIHJldHVybiAhaXNBU0NJSUhleERpZ2l0KGMpOwot
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZpbmQoaXNOb25IZXhE
aWdpdCwgMikgPT0gbm90Rm91bmQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHNlZ21lbnQu
ZmluZChpc05vbkRpZ2l0KSA9PSBub3RGb3VuZDsKKyAgICAgICAgaWYgKChzZWNvbmRDb2RlVW5p
dCA9PSAneCcgfHwgc2Vjb25kQ29kZVVuaXQgPT0gJ1gnKSAmJiBmaXJzdENvZGVVbml0ID09ICcw
JykKKyAgICAgICAgICAgIHJldHVybiBzZWdtZW50LmZpbmQoc3RkOjpub3RfZm4oaXNBU0NJSUhl
eERpZ2l0PFVDaGFyPiksIDIpID09IG5vdEZvdW5kOworICAgICAgICByZXR1cm4gIXNlZ21lbnQu
Y29udGFpbnMoc3RkOjpub3RfZm4oaXNBU0NJSURpZ2l0PFVDaGFyPikpOwogICAgIH07CiAKICAg
ICBzaXplX3QgbGFzdERvdExvY2F0aW9uID0gbmFtZS5yZXZlcnNlRmluZCgnLicpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQ29tbW9uLmgKaW5kZXggYmQ3ZWFhNjcxMDljYTgzOTcyODllNGUyYjhjZDNj
Y2ExZGY3ZGIzMy4uOWQzNTVlNTRmODMwNDM4MDRmOWJhYjE1YmMwNWIzMjE4YjlkZDI0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oCkBAIC01MzYsNyArNTM2LDcgQEAgQUxXQVlTX0lO
TElORSBzdGF0aWMgc2l6ZV90IGZpbmRJbm5lcihjb25zdCBTZWFyY2hDaGFyYWN0ZXJUeXBlKiBz
ZWFyY2hDaGFyYWN0ZXIKICAgICByZXR1cm4gaW5kZXggKyBpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwgc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludGVncmFsX3Y8Q2hhcmFjdGVyVHlwZT4+KiA9IG51bGxw
dHI+CiBpbmxpbmUgc2l6ZV90IGZpbmQoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJUeXBlIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25lZCBp
bmRleCA9IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCmluZGV4IGNlMzIxZGVhOTkyMjU0YTQ2ZTA5NTY4ZWZmNmY3OTEwMzgxYzE1MjQu
LmM3NmNkNTIzNjc2MTFjOTQyZDM0MmJmMDkxYjE2MmEwYTY3NzQ0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCkBAIC01OTMsOCArNTkzLDggQEAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFMK
IHRlbXBsYXRlPHVuc2lnbmVkIGxlbmd0aD4gYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShjb25zdCBTdHJpbmdJbXBsJiwgY29uc3QgY2hhciAoJmxvd2VyY2FzZUxldHRlcnMpW2xl
bmd0aF0pOwogdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBib29sIGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBjaGFyICgmbG93ZXJjYXNlTGV0
dGVycylbbGVuZ3RoXSk7CiAKLXNpemVfdCBmaW5kKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVu
Z3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4ID0gMCk7Ci1zaXplX3Qg
ZmluZChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9u
LCB1bnNpZ25lZCBpbmRleCA9IDApOwordGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXQsIHR5cGVu
YW1lIENvZGVVbml0TWF0Y2hGdW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9j
YWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBDb2RlVW5pdD4+KiA9IG51bGxw
dHI+CitzaXplX3QgZmluZChjb25zdCBDb2RlVW5pdCosIHVuc2lnbmVkIGxlbmd0aCwgQ29kZVVu
aXRNYXRjaEZ1bmN0aW9uJiYsIHVuc2lnbmVkIGluZGV4ID0gMCk7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IHNpemVfdCByZXZlcnNlRmluZExpbmVUZXJtaW5hdG9yKGNvbnN0
IENoYXJhY3RlclR5cGUqLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIGluZGV4ID0gU3RyaW5n
SW1wbDo6TWF4TGVuZ3RoKTsKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHNpemVf
dCByZXZlcnNlRmluZChjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQgbGVuZ3RoLCBDaGFy
YWN0ZXJUeXBlIG1hdGNoQ2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCA9IFN0cmluZ0ltcGw6Ok1h
eExlbmd0aCk7CkBAIC02NDMsMTcgKzY0Myw4IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSBj
b25zdCBVQ2hhciogU3RyaW5nSW1wbDo6Y2hhcmFjdGVyczxVQ2hhcj4oKSBjb25zdAogICAgIHJl
dHVybiBjaGFyYWN0ZXJzMTYoKTsKIH0KIAotaW5saW5lIHNpemVfdCBmaW5kKGNvbnN0IExDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVVbml0TWF0Y2hGdW5jdGlvbiBtYXRj
aEZ1bmN0aW9uLCB1bnNpZ25lZCBpbmRleCkKLXsKLSAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgp
IHsKLSAgICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hhcmFjdGVyc1tpbmRleF0pKQotICAgICAg
ICAgICAgcmV0dXJuIGluZGV4OwotICAgICAgICArK2luZGV4OwotICAgIH0KLSAgICByZXR1cm4g
bm90Rm91bmQ7Ci19Ci0KLWlubGluZSBzaXplX3QgZmluZChjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24gbWF0Y2hGdW5jdGlvbiwg
dW5zaWduZWQgaW5kZXgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2RlVW5pdCwgdHlwZW5hbWUgQ29k
ZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW52b2NhYmxlX3Jf
djxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24sIENvZGVVbml0Pj4qPgoraW5saW5lIHNpemVf
dCBmaW5kKGNvbnN0IENvZGVVbml0KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvZGVV
bml0TWF0Y2hGdW5jdGlvbiYmIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4KQogewogICAg
IHdoaWxlIChpbmRleCA8IGxlbmd0aCkgewogICAgICAgICBpZiAobWF0Y2hGdW5jdGlvbihjaGFy
YWN0ZXJzW2luZGV4XSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1Zp
ZXcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCmluZGV4IDhjNmMxMjVkY2My
ODQwZDIzMTAyNzY5NmNlMjI5NmU1NzkyOTYwMmMuLjQ0OGFmNzY4OWY3NGE4ODUwMjgxOWUyYzY2
OWU4MmUzYmEwZGIxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmll
dy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCkBAIC0xMzgsNyArMTM4
LDggQEAgcHVibGljOgogICAgIFNwbGl0UmVzdWx0IHNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMo
VUNoYXIpIGNvbnN0OwogCiAgICAgc2l6ZV90IGZpbmQoVUNoYXIsIHVuc2lnbmVkIHN0YXJ0ID0g
MCkgY29uc3Q7Ci0gICAgc2l6ZV90IGZpbmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCB1bnNpZ25l
ZCBzdGFydCA9IDApIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hG
dW5jdGlvbiwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29k
ZVVuaXRNYXRjaEZ1bmN0aW9uLCBVQ2hhcj4+KiA9IG51bGxwdHI+CisgICAgc2l6ZV90IGZpbmQo
Q29kZVVuaXRNYXRjaEZ1bmN0aW9uJiYsIHVuc2lnbmVkIHN0YXJ0ID0gMCkgY29uc3Q7CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBmaW5kKFN0cmluZ1ZpZXcsIHVuc2lnbmVkIHN0YXJ0
ID0gMCkgY29uc3Q7CiAKICAgICBzaXplX3QgcmV2ZXJzZUZpbmQoVUNoYXIsIHVuc2lnbmVkIGlu
ZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBjb25zdDsKQEAgLTE1
MSw3ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIEF0b21TdHJpbmcg
Y29udmVydFRvQVNDSUlMb3dlcmNhc2VBdG9tKCkgY29uc3Q7CiAKICAgICBib29sIGNvbnRhaW5z
KFVDaGFyKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5zKENvZGVVbml0TWF0Y2hGdW5jdGlvbikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW52b2NhYmxlX3Jfdjxib29sLCBDb2RlVW5pdE1hdGNoRnVu
Y3Rpb24sIFVDaGFyPj4qID0gbnVsbHB0cj4KKyAgICBib29sIGNvbnRhaW5zKENvZGVVbml0TWF0
Y2hGdW5jdGlvbiYmKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zKFN0cmluZ1ZpZXcgc3RyaW5n
KSBjb25zdCB7IHJldHVybiBmaW5kKHN0cmluZywgMCkgIT0gbm90Rm91bmQ7IH0KICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCBjb250YWlucyhjb25zdCBjaGFyKikgY29uc3Q7CiAKQEAgLTUx
Miw5ICs1MTQsMTAgQEAgaW5saW5lIGJvb2wgU3RyaW5nVmlldzo6Y29udGFpbnMoVUNoYXIgY2hh
cmFjdGVyKSBjb25zdAogICAgIHJldHVybiBmaW5kKGNoYXJhY3RlcikgIT0gbm90Rm91bmQ7CiB9
CiAKLWlubGluZSBib29sIFN0cmluZ1ZpZXc6OmNvbnRhaW5zKENvZGVVbml0TWF0Y2hGdW5jdGlv
biBmdW5jdGlvbikgY29uc3QKK3RlbXBsYXRlPHR5cGVuYW1lIENvZGVVbml0TWF0Y2hGdW5jdGlv
biwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2ludm9jYWJsZV9yX3Y8Ym9vbCwgQ29kZVVuaXRN
YXRjaEZ1bmN0aW9uLCBVQ2hhcj4+Kj4KK2lubGluZSBib29sIFN0cmluZ1ZpZXc6OmNvbnRhaW5z
KENvZGVVbml0TWF0Y2hGdW5jdGlvbiYmIGZ1bmN0aW9uKSBjb25zdAogewotICAgIHJldHVybiBm
aW5kKGZ1bmN0aW9uKSAhPSBub3RGb3VuZDsKKyAgICByZXR1cm4gZmluZChzdGQ6OmZvcndhcmQ8
Q29kZVVuaXRNYXRjaEZ1bmN0aW9uPihmdW5jdGlvbikpICE9IG5vdEZvdW5kOwogfQogCiB0ZW1w
bGF0ZTxib29sIGlzU3BlY2lhbENoYXJhY3RlcihVQ2hhcik+IGlubGluZSBib29sIFN0cmluZ1Zp
ZXc6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnMoKSBjb25zdApAQCAtNTk1LDExICs1OTgsMTIgQEAg
aW5saW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQg
c3RhcnQpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5n
dGgsIGNoYXJhY3Rlciwgc3RhcnQpOwogfQogCi1pbmxpbmUgc2l6ZV90IFN0cmluZ1ZpZXc6OmZp
bmQoQ29kZVVuaXRNYXRjaEZ1bmN0aW9uIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIHN0YXJ0KSBj
b25zdAordGVtcGxhdGU8dHlwZW5hbWUgQ29kZVVuaXRNYXRjaEZ1bmN0aW9uLCBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfaW52b2NhYmxlX3Jfdjxib29sLCBDb2RlVW5pdE1hdGNoRnVuY3Rpb24s
IFVDaGFyPj4qPgoraW5saW5lIHNpemVfdCBTdHJpbmdWaWV3OjpmaW5kKENvZGVVbml0TWF0Y2hG
dW5jdGlvbiYmIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIHN0YXJ0KSBjb25zdAogewogICAgIGlm
IChpczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzOCgpLCBtX2xl
bmd0aCwgbWF0Y2hGdW5jdGlvbiwgc3RhcnQpOwotICAgIHJldHVybiBXVEY6OmZpbmQoY2hhcmFj
dGVyczE2KCksIG1fbGVuZ3RoLCBtYXRjaEZ1bmN0aW9uLCBzdGFydCk7CisgICAgICAgIHJldHVy
biBXVEY6OmZpbmQoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIHN0ZDo6Zm9yd2FyZDxDb2RlVW5p
dE1hdGNoRnVuY3Rpb24+KG1hdGNoRnVuY3Rpb24pLCBzdGFydCk7CisgICAgcmV0dXJuIFdURjo6
ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIHN0ZDo6Zm9yd2FyZDxDb2RlVW5pdE1hdGNo
RnVuY3Rpb24+KG1hdGNoRnVuY3Rpb24pLCBzdGFydCk7CiB9CiAKIGlubGluZSBzaXplX3QgU3Ry
aW5nVmlldzo6cmV2ZXJzZUZpbmQoVUNoYXIgY2hhcmFjdGVyLCB1bnNpZ25lZCBpbmRleCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBhYmNhNmQ5YmMyZTJlZjZi
NmVjZjU0YWE2YTM0OWRjYmFjYjM5Y2FjLi43ZjRmOGJiNzI2NDdjMzliMGEzNjc2NDRkNmVkMzY3
ZTJmZjQxMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIERPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB0b2tl
bkNvbnRhaW5zSFRNTFNwYWNlKGNvbnN0IFN0cmluZyYgdG9rZW4pCiB7Ci0gICAgcmV0dXJuIHRv
a2VuLmZpbmQoaXNIVE1MU3BhY2UpICE9IG5vdEZvdW5kOworICAgIHJldHVybiB0b2tlbi5maW5k
KGlzSFRNTFNwYWNlPFVDaGFyPikgIT0gbm90Rm91bmQ7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBTdHJpbmcmIHRva2VuKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBmMjY5ZDVjMDQwNDc1ZDVj
M2I2YTQwODNlMjFmMDAyZmNjMDc2NDUxLi5iNWFkM2ZkYmNlMTAxZGZjYTU1NGQxODQ5NTZlMzg3
MzhiNWViMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApA
QCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyB2b2lkIHRydW5jYXRlRm9yU2NyaXB0TGlrZUF0dHJp
YnV0ZShTdHJpbmcmIGRlY29kZWRTbmlwcGV0KQogICAgIC8vIHNsYXNoLCBvciBsZXNzLXRoYW4g
c2lnbi4KICAgICBzaXplX3QgcG9zaXRpb24gPSAwOwogICAgIGlmICgocG9zaXRpb24gPSBkZWNv
ZGVkU25pcHBldC5maW5kKCc9JykpICE9IG5vdEZvdW5kCi0gICAgICAgICYmIChwb3NpdGlvbiA9
IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNOb3RIVE1MU3BhY2UsIHBvc2l0aW9uICsgMSkpICE9IG5v
dEZvdW5kCisgICAgICAgICYmIChwb3NpdGlvbiA9IGRlY29kZWRTbmlwcGV0LmZpbmQoaXNOb3RI
VE1MU3BhY2U8VUNoYXI+LCBwb3NpdGlvbiArIDEpKSAhPSBub3RGb3VuZAogICAgICAgICAmJiAo
cG9zaXRpb24gPSBkZWNvZGVkU25pcHBldC5maW5kKGlzVGVybWluYXRpbmdDaGFyYWN0ZXIsIGlz
SFRNTFF1b3RlKGRlY29kZWRTbmlwcGV0W3Bvc2l0aW9uXSkgPyBwb3NpdGlvbiArIDEgOiBwb3Np
dGlvbikpICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIGRlY29kZWRTbmlwcGV0LnRydW5jYXRlKHBv
c2l0aW9uKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>