<?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>230686</bug_id>
          
          <creation_ts>2021-09-23 05:11:10 -0700</creation_ts>
          <short_desc>Replace Node::isInert() with RenderStyle::effectiveInert()</short_desc>
          <delta_ts>2021-09-27 04:26:19 -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>DOM</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>
          <dependson>229330</dependson>
          <blocked>84635</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796462</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-09-23 05:11:10 -0700</bug_when>
    <thetext>The latter is less buggy, and one source of truth is always better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796491</commentid>
    <comment_count>1</comment_count>
      <attachid>439043</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-09-23 08:05:36 -0700</bug_when>
    <thetext>Created attachment 439043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796534</commentid>
    <comment_count>2</comment_count>
      <attachid>439053</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-09-23 09:49:42 -0700</bug_when>
    <thetext>Created attachment 439053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797205</commentid>
    <comment_count>3</comment_count>
      <attachid>439263</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-09-25 06:56:44 -0700</bug_when>
    <thetext>Created attachment 439263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797398</commentid>
    <comment_count>4</comment_count>
      <attachid>439263</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-27 01:25:57 -0700</bug_when>
    <thetext>Comment on attachment 439263
Patch

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

&gt; Source/WebCore/dom/Element.cpp:3537
&gt; +    // FIXME: Replace inert/modal dialog logic with style-&gt;effectiveInert() after fixing invalidation
&gt; +    auto elementHasInertAttribute = [](Element&amp; element) -&gt; bool {
&gt; +        return element.document().settings().inertAttributeEnabled() &amp;&amp; is&lt;HTMLElement&gt;(element) &amp;&amp; element.hasAttribute(HTMLNames::inertAttr);
&gt; +    };
&gt; +
&gt; +    if (elementHasInertAttribute(const_cast&lt;Element&amp;&gt;(*this)))
&gt; +        return false;
&gt; +
&gt; +    Node* activeModalDialog = document().activeModalDialog();
&gt; +    if (activeModalDialog &amp;&amp; !activeModalDialog-&gt;containsIncludingShadowDOM(this))
&gt; +        return false;

This doesn&apos;t look correct. I can look at some point into resolving this correctly via style.

Meanwhile I think you should leave Node::isInert() equivalent in place (that is compute inertness separately from DOM) and use that in isFocusable() as before.

Or you could just let whatever focusability-with-inert-test you are trying to fix regress. It is probably not critical at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797414</commentid>
    <comment_count>5</comment_count>
      <attachid>439336</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-09-27 02:27:21 -0700</bug_when>
    <thetext>Created attachment 439336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797426</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-27 04:25:57 -0700</bug_when>
    <thetext>Committed r283105 (242163@main): &lt;https://commits.webkit.org/242163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439336.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797427</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-27 04:26:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/83568603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439043</attachid>
            <date>2021-09-23 08:05:36 -0700</date>
            <delta_ts>2021-09-23 10:00:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230686-20210923170535.patch</filename>
            <type>text/plain</type>
            <size>13675</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU5NmYwOGUyYjI1ZjIx
OGRjMzZlMGZiNGVjZDY4ZmZjOTRkYzVjNC4uNjdiZjVhN2I3NTNlMjc2YjhlZWNlYWNiNzNlNTM2
NzQwOWE2ZTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA5LTIzICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBOb2RlOjppc0luZXJ0
KCkgd2l0aCBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIE5vZGU6OmlzSW5lcnQo
KSBpbiBmYXZvciBvZiBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKS4gV2UgY2FuJ3QgdXNl
IGl0IGluCisgICAgICAgIEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCksIHNpbmNlIHRoZXJlJ3MgYSBi
dWcgd2l0aCBpbnZhbGlkYXRpb24gd2hlbiBhY2Nlc3NpbmcgdGhlIGNhY2hlZCBjb21wdXRlZFN0
eWxlLCBoZW5jZQorICAgICAgICB0aGUgZXh0cmEgbG9naWMgYW5kIHRoZSBGSVhNRSBjb21tZW50
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzSW5lcnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lv
biBjb25zdCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6aXNGb2N1c2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
aXNGb2N1c2FibGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmNhblN0YXJ0U2VsZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6
bm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
Ojpub2RlSXNVc2VyU2VsZWN0QWxsKToKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNJbnRlcm5hbCk6CisK
IDIwMjEtMDktMjMgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtl
IGluZXJ0IG5vZGVzIGludmlzaWJsZSB0byBoaXQgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzMDZjYTUy
N2YyY2FjNTlmYjI2MGU2MmQ1MzE4ODI2YjIzODQyMGY5Li41MWRjMzhjNzc0ZDdiYmZiNTk4ZWI1
MDAzYjZmYTRhZWJkYTcyYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTIz
ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBOb2RlOjpp
c0luZXJ0KCkgd2l0aCBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIE5vZGU6Omlz
SW5lcnQoKSBpbiBmYXZvciBvZiBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKS4gV2UgY2Fu
J3QgdXNlIGl0IGluCisgICAgICAgIEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCksIHNpbmNlIHRoZXJl
J3MgYSBidWcgd2l0aCBpbnZhbGlkYXRpb24gd2hlbiBhY2Nlc3NpbmcgdGhlIGNhY2hlZCBjb21w
dXRlZFN0eWxlLCBoZW5jZQorICAgICAgICB0aGUgZXh0cmEgbG9naWMgYW5kIHRoZSBGSVhNRSBj
b21tZW50LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKToKKwogMjAy
MS0wOS0yMyAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE9w
dXMgYW5kIFZvcmJpcyBjb2RlY3MgYXJlbid0IGF2YWlsYWJsZSBvbiBpUGFkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5k
ZXggNjgxOTM2ZjU4ZjBmOWM4YWQ0M2E0Mjg0MWJhYzJhMmYxY2YxMjFjOS4uNzkwZjI3MTVjMjg2
MDA5ZjQ0YmYyMjlhNTQ3NWRhNTg4MmU4ZGY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zMjQ5LDcgKzMyNDks
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzRE9NSGlkZGVuKCkgY29uc3QKIAogYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0luZXJ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbm9k
ZSgpICYmIG5vZGUoKS0+aXNJbmVydCgpOworICAgIHJldHVybiByZW5kZXJlcigpICYmIHJlbmRl
cmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0CkBAIC0zMjcyLDcgKzMy
NzIsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmRlZmF1bHRPYmplY3RJbmNsdXNpb24oKSBjb25zdAogICAgIAogICAgIGlmICh1c2VQYXJlbnRE
YXRhID8gbV9pc0lnbm9yZWRGcm9tUGFyZW50RGF0YS5pc0FYSGlkZGVuIDogaXNBWEhpZGRlbigp
KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2Jq
ZWN0OwotICAgIAorCiAgICAgaWYgKGlzSW5lcnQoKSB8fCBpZ25vcmVkRnJvbU1vZGFsUHJlc2Vu
Y2UoKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb246Oklnbm9y
ZU9iamVjdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBhMGU2M2MzYTU2MDJhMDVl
ZGFkNWNlZjZiZTVhMmUzZGZkOGQ1YzliLi41YzA4MmQwYTMxNTA4NmI4MGE2MzMyNTRlMGQ1MGU3
M2UxY2FkYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02NDEsMTcgKzY0MSwxNyBAQCBW
ZWN0b3I8U3RyaW5nPiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOYW1lcygpIGNvbnN0CiAKIGJvb2wg
RWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogewotICAgIGlmICghaXNDb25uZWN0ZWQoKSB8
fCAhc3VwcG9ydHNGb2N1cygpIHx8IGlzSW5lcnQoKSkKKyAgICBpZiAoIWlzQ29ubmVjdGVkKCkg
fHwgIXN1cHBvcnRzRm9jdXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFy
ZW5kZXJlcigpKSB7CiAgICAgICAgIC8vIEVsZW1lbnRzIGluIGNhbnZhcyBmYWxsYmFjayBjb250
ZW50IGFyZSBub3QgcmVuZGVyZWQsIGJ1dCB0aGV5IGFyZSBhbGxvd2VkIHRvIGJlCiAgICAgICAg
IC8vIGZvY3VzYWJsZSBhcyBsb25nIGFzIHRoZWlyIGNhbnZhcyBpcyBkaXNwbGF5ZWQgYW5kIHZp
c2libGUuCiAgICAgICAgIGlmIChhdXRvKiBjYW52YXMgPSBhbmNlc3RvcnNPZlR5cGU8SFRNTENh
bnZhc0VsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKQotICAgICAgICAgICAgcmV0dXJuIGNhbnZhcy0+
aXNWaXNpYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpOworICAgICAgICAgICAgcmV0dXJu
IGNhbnZhcy0+aXNGb2N1c2FibGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIGlzVmlzaWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKTsKKyAgICBy
ZXR1cm4gaXNGb2N1c2FibGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCk7CiB9CiAKIGJvb2wg
RWxlbWVudDo6aXNVc2VyQWN0aW9uRWxlbWVudEluQWN0aXZlQ2hhaW4oKSBjb25zdApAQCAtMzUw
MywxMSArMzUwMywxMCBAQCBib29sIEVsZW1lbnQ6Omhhc1ZhbGlkU3R5bGUoKSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEVsZW1lbnQ6OmlzVmlzaWJsZVdpdGhvdXRSZXNvbHZp
bmdGdWxsU3R5bGUoKSBjb25zdAorYm9vbCBFbGVtZW50Ojppc0ZvY3VzYWJsZVdpdGhvdXRSZXNv
bHZpbmdGdWxsU3R5bGUoKSBjb25zdAogewotCiAgICAgaWYgKHJlbmRlclN0eWxlKCkgfHwgaGFz
VmFsaWRTdHlsZSgpKQotICAgICAgICByZXR1cm4gcmVuZGVyU3R5bGUoKSAmJiByZW5kZXJTdHls
ZSgpLT52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZTsKKyAgICAgICAgcmV0dXJu
IHJlbmRlclN0eWxlKCkgJiYgIXJlbmRlclN0eWxlKCktPmVmZmVjdGl2ZUluZXJ0KCkgJiYgcmVu
ZGVyU3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGU7CiAKICAgICBh
dXRvIGNvbXB1dGVkU3R5bGVGb3JFbGVtZW50ID0gW10oRWxlbWVudCYgZWxlbWVudCkgLT4gY29u
c3QgUmVuZGVyU3R5bGUqIHsKICAgICAgICAgYXV0byogc3R5bGUgPSBlbGVtZW50Lmhhc05vZGVG
bGFnKE5vZGVGbGFnOjpJc0NvbXB1dGVkU3R5bGVJbnZhbGlkRmxhZykgPyBudWxscHRyIDogZWxl
bWVudC5leGlzdGluZ0NvbXB1dGVkU3R5bGUoKTsKQEAgLTM1MjUsOSArMzUyNCwyMSBAQCBib29s
IEVsZW1lbnQ6OmlzVmlzaWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKSBjb25zdAogICAg
IGlmIChzdHlsZS0+dmlzaWJpbGl0eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZJWE1FOiBSZXBsYWNlIGluZXJ0L21vZGFsIGRpYWxv
ZyBsb2dpYyB3aXRoIHN0eWxlLT5lZmZlY3RpdmVJbmVydCgpIGFmdGVyIGZpeGluZyBpbnZhbGlk
YXRpb24KKyAgICBhdXRvIGVsZW1lbnRIYXNJbmVydEF0dHJpYnV0ZSA9IFtdKEVsZW1lbnQmIGVs
ZW1lbnQpIC0+IGJvb2wgeworICAgICAgICByZXR1cm4gZWxlbWVudC5kb2N1bWVudCgpLnNldHRp
bmdzKCkuaW5lcnRBdHRyaWJ1dGVFbmFibGVkKCkgJiYgaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQp
ICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aW5lcnRBdHRyKTsKKyAgICB9Owor
CisgICAgaWYgKGVsZW1lbnRIYXNJbmVydEF0dHJpYnV0ZShjb25zdF9jYXN0PEVsZW1lbnQmPigq
dGhpcykpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOb2RlKiBhY3RpdmVNb2RhbERp
YWxvZyA9IGRvY3VtZW50KCkuYWN0aXZlTW9kYWxEaWFsb2coKTsKKyAgICBpZiAoYWN0aXZlTW9k
YWxEaWFsb2cgJiYgIWFjdGl2ZU1vZGFsRGlhbG9nLT5jb250YWluc0luY2x1ZGluZ1NoYWRvd0RP
TSh0aGlzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogY29tcG9zZWRUcmVlQW5jZXN0b3JzKGNvbnN0X2Nhc3Q8RWxlbWVudCY+KCp0aGlzKSkpIHsK
ICAgICAgICAgYXV0byogc3R5bGUgPSBjb21wdXRlZFN0eWxlRm9yRWxlbWVudChlbGVtZW50KTsK
LSAgICAgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+ZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpO
b25lKQorICAgICAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5kaXNwbGF5KCkgPT0gRGlzcGxheVR5
cGU6Ok5vbmUgfHwgZWxlbWVudEhhc0luZXJ0QXR0cmlidXRlKGVsZW1lbnQpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOWYyN2I2NTRj
ZmI1NWU4Y2ViYzQ3MTM5MGYyZTI1NGE3YWQxYTZhYS4uNjI2MGM0Njc0YjZmMDczYTU5N2I0OWE2
OGRhOWQ2Mzg0OGVlNTliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zNTIsNyArMzUyLDcgQEAg
cHVibGljOgogICAgIGJvb2wgbmVlZHNTdHlsZUludmFsaWRhdGlvbigpIGNvbnN0OwogCiAgICAg
Ym9vbCBoYXNWYWxpZFN0eWxlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1Zpc2libGVXaXRob3V0UmVz
b2x2aW5nRnVsbFN0eWxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0ZvY3VzYWJsZVdpdGhvdXRSZXNv
bHZpbmdGdWxsU3R5bGUoKSBjb25zdDsKIAogICAgIC8vIE1ldGhvZHMgZm9yIGluZGljYXRpbmcg
dGhlIHN0eWxlIGlzIGFmZmVjdGVkIGJ5IGR5bmFtaWMgdXBkYXRlcyAoZS5nLiwgY2hpbGRyZW4g
Y2hhbmdpbmcsIG91ciBwb3NpdGlvbiBjaGFuZ2luZyBpbiBvdXIgc2libGluZyBsaXN0LCBldGMu
KQogICAgIGJvb2wgc3R5bGVBZmZlY3RlZEJ5RW1wdHkoKSBjb25zdCB7IHJldHVybiBoYXNTdHls
ZUZsYWcoTm9kZVN0eWxlRmxhZzo6U3R5bGVBZmZlY3RlZEJ5RW1wdHkpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKaW5kZXggZDI0NWI0NDU1MGUzOGI2MDMxNTU1MDZiZjAzMTMwMDBkM2E3ODNkYi4uZDA4MDMy
YWFlZWRmNjRkOGM4OGZmODM5YzE5MjFmZDY3ZTlhOTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAt
MTEyNywxMSArMTEyNywxMSBAQCBib29sIE5vZGU6OmNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QK
ICAgICBpZiAoaGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmIChpc0luZXJ0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlmIChyZW5kZXJl
cigpKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSA9IHJlbmRlcmVyKCktPnN0
eWxlKCk7CisgICAgICAgIGlmIChzdHlsZS5lZmZlY3RpdmVJbmVydCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgICAgIC8vIFdlIGFsbG93IHNlbGVjdGlvbnMgdG8gYmVnaW4g
d2l0aGluIGFuIGVsZW1lbnQgdGhhdCBoYXMgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSBzZXQs
CiAgICAgICAgIC8vIGJ1dCBpZiB0aGUgZWxlbWVudCBpcyBkcmFnZ2FibGUgdGhlbiBkcmFnZ2lu
ZyBzaG91bGQgdGFrZSBwcmlvcml0eSBvdmVyIHNlbGVjdGlvbi4KICAgICAgICAgaWYgKHN0eWxl
LnVzZXJEcmFnKCkgPT0gVXNlckRyYWc6OkVsZW1lbnQgJiYgc3R5bGUudXNlclNlbGVjdCgpID09
IFVzZXJTZWxlY3Q6Ok5vbmUpCkBAIC0yNjIzLDMwICsyNjIzLDYgQEAgdm9pZCogTm9kZTo6b3Bh
cXVlUm9vdFNsb3coKSBjb25zdAogICAgIHJldHVybiBjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNf
Y2FzdDxjb25zdCB2b2lkKj4obm9kZSkpOwogfQogCi1ib29sIE5vZGU6OmlzSW5lcnQoKSBjb25z
dAotewotICAgIGlmICghaXNDb25uZWN0ZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAg
ICBpZiAodGhpcyAhPSAmZG9jdW1lbnQoKSAmJiB0aGlzICE9IGRvY3VtZW50KCkuZG9jdW1lbnRF
bGVtZW50KCkpIHsKLSAgICAgICAgTm9kZSogYWN0aXZlTW9kYWxEaWFsb2cgPSBkb2N1bWVudCgp
LmFjdGl2ZU1vZGFsRGlhbG9nKCk7Ci0gICAgICAgIGlmIChhY3RpdmVNb2RhbERpYWxvZyAmJiAh
YWN0aXZlTW9kYWxEaWFsb2ctPmNvbnRhaW5zSW5jbHVkaW5nU2hhZG93RE9NKHRoaXMpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5pbmVydEF0dHJpYnV0ZUVuYWJsZWQoKSkgewotICAgICAgICBmb3IgKFJlZlB0ciBlbGVt
ZW50ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNv
bXBvc2VkVHJlZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+KCplbGVtZW50
KSAmJiBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnQpLmhhc0F0dHJpYnV0ZShIVE1MTmFt
ZXM6OmluZXJ0QXR0cikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSB8fCAhZG9jdW1lbnQoKS5mcmFt
ZSgpLT5vd25lckVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IGRvY3VtZW50KCkuZnJhbWUoKS0+b3duZXJFbGVtZW50KCktPmlzSW5lcnQoKTsKLX0KLQogdGVt
cGxhdGU8PiBDb250YWluZXJOb2RlKiBwYXJlbnQ8VHJlZT4oY29uc3QgTm9kZSYgbm9kZSkKIHsK
ICAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA0ODg5Zjc2OTdl
YmZiZTRmZGUyM2I3MDdlMGMyMmIyODc4ZTI5YmI0Li4xNWUyMTkzMzkzZWJiZDJmYTM4MDU3Mjlj
NGM4ODE3NjQ0MWE4Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUyNCwxMyArNTI0LDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkKCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oTm9kZUZsYWc6OklzUGFyc2luZ0NoaWxkcmVuRmlu
aXNoZWQpOyB9CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAotICAgIC8vIFdoZXRoZXIgdGhlIG5v
ZGUgaXMgaW5lcnQ6Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2UvaW50ZXJhY3Rpb24uaHRtbCNpbmVydAotICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNH
L2luZXJ0L2Jsb2IvbWFzdGVyL1JFQURNRS5tZAotICAgIC8vIFRoaXMgY2FuJ3QgYmUgaW4gRWxl
bWVudCBiZWNhdXNlIHRleHQgbm9kZXMgbXVzdCBiZSByZWNvZ25pemVkIGFzCi0gICAgLy8gaW5l
cnQgdG8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbi4KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlz
SW5lcnQoKSBjb25zdDsKLQogcHJvdGVjdGVkOgogICAgIGVudW0gY2xhc3MgTm9kZUZsYWcgOiB1
aW50MzJfdCB7CiAgICAgICAgIElzQ2hhcmFjdGVyRGF0YSA9IDEgPDwgMCwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwCmluZGV4IGJiYWUxMWEyZTRmMTcxMzkyNDA4ZWJjNDEwYmIxNzFkNTA4YWI5ZTku
LjFjNmUwNmI3N2Q0YTIxZTY5YmVlMGNmNTZlNTE2MGFhNGQxNTVmNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcApAQCAtOTM5LDE2ICs5MzksMTQgQEAgYm9vbCBQb3NpdGlvbjo6bm9kZUlzSW5l
cnRPclVzZXJTZWxlY3ROb25lKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG5vZGUtPmlzSW5lcnQoKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+
c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZTsKKyAgICByZXR1cm4gbm9k
ZS0+cmVuZGVyZXIoKSAmJiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkg
PT0gVXNlclNlbGVjdDo6Tm9uZSB8fCBub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2
ZUluZXJ0KCkpOwogfQogCiBib29sIFBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0QWxsKGNvbnN0
IE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8IG5vZGUtPmlzSW5lcnQoKSkKKyAgICBp
ZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbm9kZS0+cmVuZGVy
ZXIoKSAmJiBub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2Vs
ZWN0OjpBbGw7CisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgKG5vZGUtPnJlbmRlcmVy
KCktPnN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6OkFsbCAmJiAhbm9kZS0+cmVu
ZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKTsKIH0KIAogTm9kZSogUG9zaXRpb246
OnJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXJlYUVsZW1lbnQuY3BwCmluZGV4IGFkM2UxMTgwOTUyYzM1ZTM3YTJiMWRkZjFiNzhjYTk4
ODI5MGE0N2EuLjZjZjhjNWRhYjU5NjIyNzUzZmQ0NWIxOGMxNzdjYWMwNDBhNWMzOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBi
b29sIEhUTUxBcmVhRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0CiBib29sIEhUTUxB
cmVhRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogewogICAgIFJlZlB0cjxIVE1MSW1hZ2VF
bGVtZW50PiBpbWFnZSA9IGltYWdlRWxlbWVudCgpOwotICAgIGlmICghaW1hZ2UgfHwgIWltYWdl
LT5pc1Zpc2libGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCkpCisgICAgaWYgKCFpbWFnZSB8
fCAhaW1hZ2UtPmlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gc3VwcG9ydHNGb2N1cygpICYmIHRhYkluZGV4
U2V0RXhwbGljaXRseSgpLnZhbHVlX29yKDApID49IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDgxZTQ5MjAyMDc3YjJiZDVlYzE3MDMxNDllM2Y1MDY5
MTVkNWFmNDMuLmY1Mjc4M2FlOGFmN2Q1ZDYzYzViYzhlYWI2YzM2OWM2ZDRhZThhZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yMTc4LDcgKzIxNzgs
NyBAQCBhdXRvIFJlbmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNJbnRlcm5h
bChjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJz
ZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkgewog
ICAgICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgICAgICAvLyBPbmx5
IGFzayBsZWFmIHJlbmRlciBvYmplY3RzIGZvciB0aGVpciBsaW5lIGJveCByZWN0cy4KLSAgICAg
ICAgaWYgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKSAmJiByZW5kZXJl
ci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSAmJiAhbm9kZS5pc0lu
ZXJ0KCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+Zmlyc3RDaGlsZFNs
b3coKSAmJiByZW5kZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9u
ZSAmJiAhcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgewogICAgICAgICAgICAg
Ym9vbCBpc1N0YXJ0Tm9kZSA9IHJlbmRlcmVyLT5ub2RlKCkgPT0gcmFuZ2Uuc3RhcnQuY29udGFp
bmVyLnB0cigpOwogICAgICAgICAgICAgYm9vbCBpc0VuZE5vZGUgPSByZW5kZXJlci0+bm9kZSgp
ID09IHJhbmdlLmVuZC5jb250YWluZXIucHRyKCk7CiAgICAgICAgICAgICBpZiAoaGFzRmxpcHBl
ZFdyaXRpbmdNb2RlICE9IHJlbmRlcmVyLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCmluZGV4IDViY2EwOTUxMzA5YTZlYThjNzY4ODRhNGQ1N2EyYzg0MDE4Y2MzNDEu
LmZhOWM5ZjAzMzNmNGY1ZTFmZjdlOGRiYmY2NWQ1MTlkMTFhM2UyZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yODg1
LDcgKzI4ODUsNyBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKFdl
YlBhZ2UmIHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYQogICAgICAgICBpZiAoYXR0YWNo
bWVudC5maWxlKCkpCiAgICAgICAgICAgICBpbmZvLnVybCA9IFVSTDo6ZmlsZVVSTFdpdGhGaWxl
U3lzdGVtUGF0aChkb3duY2FzdDxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KCpoaXROb2RlKS5maWxl
KCktPnBhdGgoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaW5mby5pc1NlbGVjdGFibGUgPSBy
ZW5kZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSAmJiAhaGl0
Tm9kZS0+aXNJbmVydCgpOworICAgICAgICBpbmZvLmlzU2VsZWN0YWJsZSA9IHJlbmRlcmVyLT5z
dHlsZSgpLnVzZXJTZWxlY3QoKSAhPSBVc2VyU2VsZWN0OjpOb25lICYmICFyZW5kZXJlci0+c3R5
bGUoKS5lZmZlY3RpdmVJbmVydCgpOwogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHNlbGVj
dCBibG9ja3MgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gOTclIG9mIHRoZSB2aXNpYmxlIGFyZWEgb2Yg
dGhlIGRvY3VtZW50LgogICAgICAgICAvLyBGSVhNRTogSXMgdGhpcyBoZXVyaXN0aWMgc3RpbGwg
bmVlZGVkLCBub3cgdGhhdCBibG9jayBzZWxlY3Rpb24gaGFzIGJlZW4gcmVtb3ZlZD8KICAgICAg
ICAgaWYgKGluZm8uaXNTZWxlY3RhYmxlICYmICFoaXROb2RlLT5pc1RleHROb2RlKCkpCg==
</data>
<flag name="commit-queue"
          id="462619"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439053</attachid>
            <date>2021-09-23 09:49:42 -0700</date>
            <delta_ts>2021-09-25 06:56:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230686-20210923184941.patch</filename>
            <type>text/plain</type>
            <size>13562</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyOTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU4ZGFiMDc3NjI2NmY0
NWQ3OTM3NmRjMTA3YjY3MDk2NDUyODUzNi4uOTAxNjdkNTMzZjI4ZDIxZWQ0Mjg0ZWQ1OTRmMjA4
NzRjYTQ0NWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA5LTIzICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBOb2RlOjppc0luZXJ0
KCkgd2l0aCBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIE5vZGU6OmlzSW5lcnQo
KSBpbiBmYXZvciBvZiBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKS4gV2UgY2FuJ3QgdXNl
IGl0IGluCisgICAgICAgIEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCksIHNpbmNlIHRoZXJlJ3MgYSBi
dWcgd2l0aCBpbnZhbGlkYXRpb24gd2hlbiBhY2Nlc3NpbmcgdGhlIGNhY2hlZCBjb21wdXRlZFN0
eWxlLCBoZW5jZQorICAgICAgICB0aGUgZXh0cmEgbG9naWMgYW5kIHRoZSBGSVhNRSBjb21tZW50
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNp
b24gY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSBjb25zdCk6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjYW5TdGFydFNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246
Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6bm9kZUlzVXNlclNlbGVjdEFsbCk6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50Ojppc0ZvY3VzYWJsZSBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzSW50ZXJuYWwpOgor
CiAyMDIxLTA5LTIzICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBpbmVydCBub2RlcyBpbnZpc2libGUgdG8gaGl0IHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTQwYjdk
MjQwYjA2ZDVmZDRkNzQ1YTZmMDA5NmE0YTBjYjNkZWU4Mi4uMjNhOTNhOTZjYzUzNjcyZDY1OGNl
ZTQzYzgzOGRkODMwY2RkMWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0y
MyAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgTm9kZTo6
aXNJbmVydCgpIHdpdGggUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZUluZXJ0KCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcmVtb3ZlcyBOb2RlOjpp
c0luZXJ0KCkgaW4gZmF2b3Igb2YgUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZUluZXJ0KCkuIFdlIGNh
bid0IHVzZSBpdCBpbgorICAgICAgICBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpLCBzaW5jZSB0aGVy
ZSdzIGEgYnVnIHdpdGggaW52YWxpZGF0aW9uIHdoZW4gYWNjZXNzaW5nIHRoZSBjYWNoZWQgY29t
cHV0ZWRTdHlsZSwgaGVuY2UKKyAgICAgICAgdGhlIGV4dHJhIGxvZ2ljIGFuZCB0aGUgRklYTUUg
Y29tbWVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIw
MjEtMDktMjMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBpbmNvcnJlY3QgbWFjaCBzZXJ2aWNlIG5hbWUgaW4gc2FuZGJveGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCBlY2UxNDljZjdiMWViNGQzMGFiNzQ1ZDFhODFhZmY5MWZkMjM2YTM4Li4wYWVjZDU3Yzg2NGIz
M2FiY2M5NTM5MDlhNGU2N2JlYzIzMjBlZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTMyNjcsOCArMzI2Nyw4
IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVjdDo6ZGVm
YXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiAgICAgCiAgICAgaWYgKHVzZVBhcmVudERhdGEg
PyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gOiBpc0FYSGlkZGVuKCkpCiAg
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7
Ci0gICAgCi0gICAgaWYgKChub2RlKCkgJiYgbm9kZSgpLT5pc0luZXJ0KCkpIHx8IGlnbm9yZWRG
cm9tTW9kYWxQcmVzZW5jZSgpKQorCisgICAgaWYgKChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCkt
PnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgfHwgaWdub3JlZEZyb21Nb2RhbFByZXNlbmNlKCkp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmpl
Y3Q7CiAgICAgCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lzSWdub3JlZEZyb21QYXJlbnRE
YXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgOiBpc1ByZXNlbnRhdGlvbmFsQ2hp
bGRPZkFyaWFSb2xlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTBlNjNjM2E1NjAyYTA1
ZWRhZDVjZWY2YmU1YTJlM2RmZDhkNWM5Yi4uNWMwODJkMGEzMTUwODZiODBhNjMzMjU0ZTBkNTBl
NzNlMWNhZGM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjQxLDE3ICs2NDEsMTcgQEAg
VmVjdG9yPFN0cmluZz4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTmFtZXMoKSBjb25zdAogCiBib29s
IEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQ29ubmVjdGVkKCkg
fHwgIXN1cHBvcnRzRm9jdXMoKSB8fCBpc0luZXJ0KCkpCisgICAgaWYgKCFpc0Nvbm5lY3RlZCgp
IHx8ICFzdXBwb3J0c0ZvY3VzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICgh
cmVuZGVyZXIoKSkgewogICAgICAgICAvLyBFbGVtZW50cyBpbiBjYW52YXMgZmFsbGJhY2sgY29u
dGVudCBhcmUgbm90IHJlbmRlcmVkLCBidXQgdGhleSBhcmUgYWxsb3dlZCB0byBiZQogICAgICAg
ICAvLyBmb2N1c2FibGUgYXMgbG9uZyBhcyB0aGVpciBjYW52YXMgaXMgZGlzcGxheWVkIGFuZCB2
aXNpYmxlLgogICAgICAgICBpZiAoYXV0byogY2FudmFzID0gYW5jZXN0b3JzT2ZUeXBlPEhUTUxD
YW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKLSAgICAgICAgICAgIHJldHVybiBjYW52YXMt
PmlzVmlzaWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKTsKKyAgICAgICAgICAgIHJldHVy
biBjYW52YXMtPmlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpOwogICAgIH0K
IAotICAgIHJldHVybiBpc1Zpc2libGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCk7CisgICAg
cmV0dXJuIGlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpOwogfQogCiBib29s
IEVsZW1lbnQ6OmlzVXNlckFjdGlvbkVsZW1lbnRJbkFjdGl2ZUNoYWluKCkgY29uc3QKQEAgLTM1
MDMsMTEgKzM1MDMsMTAgQEAgYm9vbCBFbGVtZW50OjpoYXNWYWxpZFN0eWxlKCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFbGVtZW50Ojppc1Zpc2libGVXaXRob3V0UmVzb2x2
aW5nRnVsbFN0eWxlKCkgY29uc3QKK2Jvb2wgRWxlbWVudDo6aXNGb2N1c2FibGVXaXRob3V0UmVz
b2x2aW5nRnVsbFN0eWxlKCkgY29uc3QKIHsKLQogICAgIGlmIChyZW5kZXJTdHlsZSgpIHx8IGhh
c1ZhbGlkU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIHJlbmRlclN0eWxlKCkgJiYgcmVuZGVyU3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGU7CisgICAgICAgIHJldHVy
biByZW5kZXJTdHlsZSgpICYmICFyZW5kZXJTdHlsZSgpLT5lZmZlY3RpdmVJbmVydCgpICYmIHJl
bmRlclN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlOwogCiAgICAg
YXV0byBjb21wdXRlZFN0eWxlRm9yRWxlbWVudCA9IFtdKEVsZW1lbnQmIGVsZW1lbnQpIC0+IGNv
bnN0IFJlbmRlclN0eWxlKiB7CiAgICAgICAgIGF1dG8qIHN0eWxlID0gZWxlbWVudC5oYXNOb2Rl
RmxhZyhOb2RlRmxhZzo6SXNDb21wdXRlZFN0eWxlSW52YWxpZEZsYWcpID8gbnVsbHB0ciA6IGVs
ZW1lbnQuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCk7CkBAIC0zNTI1LDkgKzM1MjQsMjEgQEAgYm9v
bCBFbGVtZW50Ojppc1Zpc2libGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCkgY29uc3QKICAg
ICBpZiAoc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBGSVhNRTogUmVwbGFjZSBpbmVydC9tb2RhbCBkaWFs
b2cgbG9naWMgd2l0aCBzdHlsZS0+ZWZmZWN0aXZlSW5lcnQoKSBhZnRlciBmaXhpbmcgaW52YWxp
ZGF0aW9uCisgICAgYXV0byBlbGVtZW50SGFzSW5lcnRBdHRyaWJ1dGUgPSBbXShFbGVtZW50JiBl
bGVtZW50KSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQuZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmluZXJ0QXR0cmlidXRlRW5hYmxlZCgpICYmIGlzPEhUTUxFbGVtZW50PihlbGVtZW50
KSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6OmluZXJ0QXR0cik7CisgICAgfTsK
KworICAgIGlmIChlbGVtZW50SGFzSW5lcnRBdHRyaWJ1dGUoY29uc3RfY2FzdDxFbGVtZW50Jj4o
KnRoaXMpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSogYWN0aXZlTW9kYWxE
aWFsb2cgPSBkb2N1bWVudCgpLmFjdGl2ZU1vZGFsRGlhbG9nKCk7CisgICAgaWYgKGFjdGl2ZU1v
ZGFsRGlhbG9nICYmICFhY3RpdmVNb2RhbERpYWxvZy0+Y29udGFpbnNJbmNsdWRpbmdTaGFkb3dE
T00odGhpcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGZvciAoYXV0byYgZWxlbWVu
dCA6IGNvbXBvc2VkVHJlZUFuY2VzdG9ycyhjb25zdF9jYXN0PEVsZW1lbnQmPigqdGhpcykpKSB7
CiAgICAgICAgIGF1dG8qIHN0eWxlID0gY29tcHV0ZWRTdHlsZUZvckVsZW1lbnQoZWxlbWVudCk7
Ci0gICAgICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6
Tm9uZSkKKyAgICAgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+ZGlzcGxheSgpID09IERpc3BsYXlU
eXBlOjpOb25lIHx8IGVsZW1lbnRIYXNJbmVydEF0dHJpYnV0ZShlbGVtZW50KSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDlmMjdiNjU0
Y2ZiNTVlOGNlYmM0NzEzOTBmMmUyNTRhN2FkMWE2YWEuLjYyNjBjNDY3NGI2ZjA3M2E1OTdiNDlh
NjhkYTlkNjM4NDhlZTU5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzUyLDcgKzM1Miw3IEBA
IHB1YmxpYzoKICAgICBib29sIG5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSBjb25zdDsKIAogICAg
IGJvb2wgaGFzVmFsaWRTdHlsZSgpIGNvbnN0OwotICAgIGJvb2wgaXNWaXNpYmxlV2l0aG91dFJl
c29sdmluZ0Z1bGxTdHlsZSgpIGNvbnN0OworICAgIGJvb2wgaXNGb2N1c2FibGVXaXRob3V0UmVz
b2x2aW5nRnVsbFN0eWxlKCkgY29uc3Q7CiAKICAgICAvLyBNZXRob2RzIGZvciBpbmRpY2F0aW5n
IHRoZSBzdHlsZSBpcyBhZmZlY3RlZCBieSBkeW5hbWljIHVwZGF0ZXMgKGUuZy4sIGNoaWxkcmVu
IGNoYW5naW5nLCBvdXIgcG9zaXRpb24gY2hhbmdpbmcgaW4gb3VyIHNpYmxpbmcgbGlzdCwgZXRj
LikKICAgICBib29sIHN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkgY29uc3QgeyByZXR1cm4gaGFzU3R5
bGVGbGFnKE5vZGVTdHlsZUZsYWc6OlN0eWxlQWZmZWN0ZWRCeUVtcHR5KTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCmluZGV4IGQyNDViNDQ1NTBlMzhiNjAzMTU1NTA2YmYwMzEzMDAwZDNhNzgzZGIuLmQwODAz
MmFhZWVkZjY0ZDhjODhmZjgzOWMxOTIxZmQ2N2U5YTk2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAg
LTExMjcsMTEgKzExMjcsMTEgQEAgYm9vbCBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0
CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoaXNJbmVydCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAocmVuZGVy
ZXIoKSkgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJlcigpLT5z
dHlsZSgpOworICAgICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlSW5lcnQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgICAgICAvLyBXZSBhbGxvdyBzZWxlY3Rpb25zIHRvIGJlZ2lu
IHdpdGhpbiBhbiBlbGVtZW50IHRoYXQgaGFzIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgc2V0
LAogICAgICAgICAvLyBidXQgaWYgdGhlIGVsZW1lbnQgaXMgZHJhZ2dhYmxlIHRoZW4gZHJhZ2dp
bmcgc2hvdWxkIHRha2UgcHJpb3JpdHkgb3ZlciBzZWxlY3Rpb24uCiAgICAgICAgIGlmIChzdHls
ZS51c2VyRHJhZygpID09IFVzZXJEcmFnOjpFbGVtZW50ICYmIHN0eWxlLnVzZXJTZWxlY3QoKSA9
PSBVc2VyU2VsZWN0OjpOb25lKQpAQCAtMjYyMywzMCArMjYyMyw2IEBAIHZvaWQqIE5vZGU6Om9w
YXF1ZVJvb3RTbG93KCkgY29uc3QKICAgICByZXR1cm4gY29uc3RfY2FzdDx2b2lkKj4oc3RhdGlj
X2Nhc3Q8Y29uc3Qgdm9pZCo+KG5vZGUpKTsKIH0KIAotYm9vbCBOb2RlOjppc0luZXJ0KCkgY29u
c3QKLXsKLSAgICBpZiAoIWlzQ29ubmVjdGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgaWYgKHRoaXMgIT0gJmRvY3VtZW50KCkgJiYgdGhpcyAhPSBkb2N1bWVudCgpLmRvY3VtZW50
RWxlbWVudCgpKSB7Ci0gICAgICAgIE5vZGUqIGFjdGl2ZU1vZGFsRGlhbG9nID0gZG9jdW1lbnQo
KS5hY3RpdmVNb2RhbERpYWxvZygpOwotICAgICAgICBpZiAoYWN0aXZlTW9kYWxEaWFsb2cgJiYg
IWFjdGl2ZU1vZGFsRGlhbG9nLT5jb250YWluc0luY2x1ZGluZ1NoYWRvd0RPTSh0aGlzKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChkb2N1bWVudCgpLnNldHRp
bmdzKCkuaW5lcnRBdHRyaWJ1dGVFbmFibGVkKCkpIHsKLSAgICAgICAgZm9yIChSZWZQdHIgZWxl
bWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKSkgewotICAgICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50PigqZWxlbWVu
dCkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50KS5oYXNBdHRyaWJ1dGUoSFRNTE5h
bWVzOjppbmVydEF0dHIpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCkgfHwgIWRvY3VtZW50KCkuZnJh
bWUoKS0+b3duZXJFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpLT5pc0luZXJ0KCk7Ci19Ci0KIHRl
bXBsYXRlPD4gQ29udGFpbmVyTm9kZSogcGFyZW50PFRyZWU+KGNvbnN0IE5vZGUmIG5vZGUpCiB7
CiAgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNDg4OWY3Njk3
ZWJmYmU0ZmRlMjNiNzA3ZTBjMjJiMjg3OGUyOWJiNC4uMTVlMjE5MzM5M2ViYmQyZmEzODA1NzI5
YzRjODgxNzY0NDFhODI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01MjQsMTMgKzUyNCw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZCgpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KE5vZGVGbGFnOjpJc1BhcnNpbmdDaGlsZHJlbkZp
bmlzaGVkKTsgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKLSAgICAvLyBXaGV0aGVyIHRoZSBu
b2RlIGlzIGluZXJ0OgotICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2ludGVyYWN0aW9uLmh0bWwjaW5lcnQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vV0lD
Ry9pbmVydC9ibG9iL21hc3Rlci9SRUFETUUubWQKLSAgICAvLyBUaGlzIGNhbid0IGJlIGluIEVs
ZW1lbnQgYmVjYXVzZSB0ZXh0IG5vZGVzIG11c3QgYmUgcmVjb2duaXplZCBhcwotICAgIC8vIGlu
ZXJ0IHRvIHByZXZlbnQgdGV4dCBzZWxlY3Rpb24uCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c0luZXJ0KCkgY29uc3Q7Ci0KIHByb3RlY3RlZDoKICAgICBlbnVtIGNsYXNzIE5vZGVGbGFnIDog
dWludDMyX3QgewogICAgICAgICBJc0NoYXJhY3RlckRhdGEgPSAxIDw8IDAsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmNwcAppbmRleCBiYmFlMTFhMmU0ZjE3MTM5MjQwOGViYzQxMGJiMTcxZDUwOGFiOWU5
Li4xYzZlMDZiNzdkNGEyMWU2OWJlZTBjZjU2ZTUxNjBhYTRkMTU1ZjU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAKQEAgLTkzOSwxNiArOTM5LDE0IEBAIGJvb2wgUG9zaXRpb246Om5vZGVJc0lu
ZXJ0T3JVc2VyU2VsZWN0Tm9uZShOb2RlKiBub2RlKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChub2RlLT5pc0luZXJ0KCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpICYmIG5vZGUtPnJlbmRlcmVyKCkt
PnN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmU7CisgICAgcmV0dXJuIG5v
ZGUtPnJlbmRlcmVyKCkgJiYgKG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNlbGVjdCgp
ID09IFVzZXJTZWxlY3Q6Ok5vbmUgfHwgbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3Rp
dmVJbmVydCgpKTsKIH0KIAogYm9vbCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFsbChjb25z
dCBOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSB8fCBub2RlLT5pc0luZXJ0KCkpCisgICAg
aWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG5vZGUtPnJlbmRl
cmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNl
bGVjdDo6QWxsOworICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpICYmIChub2RlLT5yZW5kZXJl
cigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpBbGwgJiYgIW5vZGUtPnJl
bmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSk7CiB9CiAKIE5vZGUqIFBvc2l0aW9u
Ojpyb290VXNlclNlbGVjdEFsbEZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcAppbmRleCBhZDNlMTE4MDk1MmMzNWUzN2EyYjFkZGYxYjc4Y2E5
ODgyOTBhNDdhLi42Y2Y4YzVkYWI1OTYyMjc1M2ZkNDViMThjMTc3Y2FjMDQwYTVjMzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAg
Ym9vbCBIVE1MQXJlYUVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogYm9vbCBIVE1M
QXJlYUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKICAgICBSZWZQdHI8SFRNTEltYWdl
RWxlbWVudD4gaW1hZ2UgPSBpbWFnZUVsZW1lbnQoKTsKLSAgICBpZiAoIWltYWdlIHx8ICFpbWFn
ZS0+aXNWaXNpYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpKQorICAgIGlmICghaW1hZ2Ug
fHwgIWltYWdlLT5pc0ZvY3VzYWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHN1cHBvcnRzRm9jdXMoKSAmJiB0YWJJbmRl
eFNldEV4cGxpY2l0bHkoKS52YWx1ZV9vcigwKSA+PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA4MWU0OTIwMjA3N2IyYmQ1ZWMxNzAzMTQ5ZTNmNTA2
OTE1ZDVhZjQzLi5mNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4YWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjE3OCw3ICsyMTc4
LDcgQEAgYXV0byBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzSW50ZXJu
YWwoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQogICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVy
c2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayhyYW5nZSkpIHsK
ICAgICAgICAgYXV0byByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICAgICAgLy8gT25s
eSBhc2sgbGVhZiByZW5kZXIgb2JqZWN0cyBmb3IgdGhlaXIgbGluZSBib3ggcmVjdHMuCi0gICAg
ICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYgcmVuZGVy
ZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmUgJiYgIW5vZGUuaXNJ
bmVydCgpKSB7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0Q2hpbGRT
bG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5v
bmUgJiYgIXJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCkpIHsKICAgICAgICAgICAg
IGJvb2wgaXNTdGFydE5vZGUgPSByZW5kZXJlci0+bm9kZSgpID09IHJhbmdlLnN0YXJ0LmNvbnRh
aW5lci5wdHIoKTsKICAgICAgICAgICAgIGJvb2wgaXNFbmROb2RlID0gcmVuZGVyZXItPm5vZGUo
KSA9PSByYW5nZS5lbmQuY29udGFpbmVyLnB0cigpOwogICAgICAgICAgICAgaWYgKGhhc0ZsaXBw
ZWRXcml0aW5nTW9kZSAhPSByZW5kZXJlci0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCA1YmNhMDk1MTMwOWE2ZWE4Yzc2ODg0YTRkNTdhMmM4NDAxOGNjMzQx
Li5mYTljOWYwMzMzZjRmNWUxZmY3ZThkYmJmNjVkNTE5ZDExYTNlMmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjg4
NSw3ICsyODg1LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbihX
ZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKICAgICAgICAgaWYgKGF0dGFj
aG1lbnQuZmlsZSgpKQogICAgICAgICAgICAgaW5mby51cmwgPSBVUkw6OmZpbGVVUkxXaXRoRmls
ZVN5c3RlbVBhdGgoZG93bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PigqaGl0Tm9kZSkuZmls
ZSgpLT5wYXRoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGluZm8uaXNTZWxlY3RhYmxlID0g
cmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmUgJiYgIWhp
dE5vZGUtPmlzSW5lcnQoKTsKKyAgICAgICAgaW5mby5pc1NlbGVjdGFibGUgPSByZW5kZXJlci0+
c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSAmJiAhcmVuZGVyZXItPnN0
eWxlKCkuZWZmZWN0aXZlSW5lcnQoKTsKICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzZWxl
Y3QgYmxvY2tzIHRoYXQgYXJlIGxhcmdlciB0aGFuIDk3JSBvZiB0aGUgdmlzaWJsZSBhcmVhIG9m
IHRoZSBkb2N1bWVudC4KICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgaGV1cmlzdGljIHN0aWxs
IG5lZWRlZCwgbm93IHRoYXQgYmxvY2sgc2VsZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQ/CiAgICAg
ICAgIGlmIChpbmZvLmlzU2VsZWN0YWJsZSAmJiAhaGl0Tm9kZS0+aXNUZXh0Tm9kZSgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439263</attachid>
            <date>2021-09-25 06:56:44 -0700</date>
            <delta_ts>2021-09-27 02:27:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230686-20210925155642.patch</filename>
            <type>text/plain</type>
            <size>13568</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk3ZDNhYWI3MzAxOWNm
ODhkMmZlOTQ3ZDE1MGU3MDI1ZTA3NGM4ZC4uYTYxNjdkM2E4NzNkNDQ0MTA4ZmUwMDk2NmEyNDEx
ZThmYmI0OGU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA5LTIzICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBOb2RlOjppc0luZXJ0
KCkgd2l0aCBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIE5vZGU6OmlzSW5lcnQo
KSBpbiBmYXZvciBvZiBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKS4gV2UgY2FuJ3QgdXNl
IGl0IGluCisgICAgICAgIEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCksIHNpbmNlIHRoZXJlJ3MgYSBi
dWcgd2l0aCBpbnZhbGlkYXRpb24gd2hlbiBhY2Nlc3NpbmcgdGhlIGNhY2hlZCBjb21wdXRlZFN0
eWxlLCBoZW5jZQorICAgICAgICB0aGUgZXh0cmEgbG9naWMgYW5kIHRoZSBGSVhNRSBjb21tZW50
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlZmF1bHRPYmplY3RJbmNsdXNp
b24gY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSBjb25zdCk6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjYW5TdGFydFNlbGVjdGlvbiBjb25zdCk6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246
Om5vZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6bm9kZUlzVXNlclNlbGVjdEFsbCk6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFFbGVtZW50Ojppc0ZvY3VzYWJsZSBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzSW50ZXJuYWwpOgor
CiAyMDIxLTA5LTIzICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBpbmVydCBub2RlcyBpbnZpc2libGUgdG8gaGl0IHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjA5OWI2
ZGMxYWRhODEwYWZkMjEzMzg0MTczNGYxMmY3OGZmNmNjOS4uM2U2OTg1ZWU5NzQzZmFlZmVlMDcw
N2NkODA3MmMwN2FjMmFkZDI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0y
MyAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgTm9kZTo6
aXNJbmVydCgpIHdpdGggUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZUluZXJ0KCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDY4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcmVtb3ZlcyBOb2RlOjpp
c0luZXJ0KCkgaW4gZmF2b3Igb2YgUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZUluZXJ0KCkuIFdlIGNh
bid0IHVzZSBpdCBpbgorICAgICAgICBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpLCBzaW5jZSB0aGVy
ZSdzIGEgYnVnIHdpdGggaW52YWxpZGF0aW9uIHdoZW4gYWNjZXNzaW5nIHRoZSBjYWNoZWQgY29t
cHV0ZWRTdHlsZSwgaGVuY2UKKyAgICAgICAgdGhlIGV4dHJhIGxvZ2ljIGFuZCB0aGUgRklYTUUg
Y29tbWVudC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIw
MjEtMDktMjQgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgTm9u
LXVuaWZpZWQgcGFydGlhbCBidWlsZCBmaXhlcyBsYXRlIFNlcHRlbWJlciBlZGl0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cAppbmRleCBkYjk4ZTk1MjI0NmI4MjJhMmJlN2M5MTc4MTM1YTVkOWE5MGJjN2NmLi5hYzBhYTBj
YzZkODkyMmEwNTZmYTRiZTNkZmViNTIyZDE5ZTQwZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTMyODEsOCAr
MzI4MSw4IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVj
dDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiAgICAgCiAgICAgaWYgKHVzZVBhcmVu
dERhdGEgPyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gOiBpc0FYSGlkZGVu
KCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVP
YmplY3Q7Ci0gICAgCi0gICAgaWYgKChub2RlKCkgJiYgbm9kZSgpLT5pc0luZXJ0KCkpIHx8IGln
bm9yZWRGcm9tTW9kYWxQcmVzZW5jZSgpKQorCisgICAgaWYgKChyZW5kZXJlcigpICYmIHJlbmRl
cmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgfHwgaWdub3JlZEZyb21Nb2RhbFByZXNl
bmNlKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25v
cmVPYmplY3Q7CiAgICAgCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lzSWdub3JlZEZyb21Q
YXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgOiBpc1ByZXNlbnRhdGlv
bmFsQ2hpbGRPZkFyaWFSb2xlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTBlNjNjM2E1
NjAyYTA1ZWRhZDVjZWY2YmU1YTJlM2RmZDhkNWM5Yi4uNWMwODJkMGEzMTUwODZiODBhNjMzMjU0
ZTBkNTBlNzNlMWNhZGM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjQxLDE3ICs2NDEs
MTcgQEAgVmVjdG9yPFN0cmluZz4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTmFtZXMoKSBjb25zdAog
CiBib29sIEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzQ29ubmVj
dGVkKCkgfHwgIXN1cHBvcnRzRm9jdXMoKSB8fCBpc0luZXJ0KCkpCisgICAgaWYgKCFpc0Nvbm5l
Y3RlZCgpIHx8ICFzdXBwb3J0c0ZvY3VzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGlmICghcmVuZGVyZXIoKSkgewogICAgICAgICAvLyBFbGVtZW50cyBpbiBjYW52YXMgZmFsbGJh
Y2sgY29udGVudCBhcmUgbm90IHJlbmRlcmVkLCBidXQgdGhleSBhcmUgYWxsb3dlZCB0byBiZQog
ICAgICAgICAvLyBmb2N1c2FibGUgYXMgbG9uZyBhcyB0aGVpciBjYW52YXMgaXMgZGlzcGxheWVk
IGFuZCB2aXNpYmxlLgogICAgICAgICBpZiAoYXV0byogY2FudmFzID0gYW5jZXN0b3JzT2ZUeXBl
PEhUTUxDYW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKLSAgICAgICAgICAgIHJldHVybiBj
YW52YXMtPmlzVmlzaWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKTsKKyAgICAgICAgICAg
IHJldHVybiBjYW52YXMtPmlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpOwog
ICAgIH0KIAotICAgIHJldHVybiBpc1Zpc2libGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCk7
CisgICAgcmV0dXJuIGlzRm9jdXNhYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpOwogfQog
CiBib29sIEVsZW1lbnQ6OmlzVXNlckFjdGlvbkVsZW1lbnRJbkFjdGl2ZUNoYWluKCkgY29uc3QK
QEAgLTM1MDMsMTEgKzM1MDMsMTAgQEAgYm9vbCBFbGVtZW50OjpoYXNWYWxpZFN0eWxlKCkgY29u
c3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFbGVtZW50Ojppc1Zpc2libGVXaXRob3V0
UmVzb2x2aW5nRnVsbFN0eWxlKCkgY29uc3QKK2Jvb2wgRWxlbWVudDo6aXNGb2N1c2FibGVXaXRo
b3V0UmVzb2x2aW5nRnVsbFN0eWxlKCkgY29uc3QKIHsKLQogICAgIGlmIChyZW5kZXJTdHlsZSgp
IHx8IGhhc1ZhbGlkU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIHJlbmRlclN0eWxlKCkgJiYgcmVu
ZGVyU3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGU7CisgICAgICAg
IHJldHVybiByZW5kZXJTdHlsZSgpICYmICFyZW5kZXJTdHlsZSgpLT5lZmZlY3RpdmVJbmVydCgp
ICYmIHJlbmRlclN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlOwog
CiAgICAgYXV0byBjb21wdXRlZFN0eWxlRm9yRWxlbWVudCA9IFtdKEVsZW1lbnQmIGVsZW1lbnQp
IC0+IGNvbnN0IFJlbmRlclN0eWxlKiB7CiAgICAgICAgIGF1dG8qIHN0eWxlID0gZWxlbWVudC5o
YXNOb2RlRmxhZyhOb2RlRmxhZzo6SXNDb21wdXRlZFN0eWxlSW52YWxpZEZsYWcpID8gbnVsbHB0
ciA6IGVsZW1lbnQuZXhpc3RpbmdDb21wdXRlZFN0eWxlKCk7CkBAIC0zNTI1LDkgKzM1MjQsMjEg
QEAgYm9vbCBFbGVtZW50Ojppc1Zpc2libGVXaXRob3V0UmVzb2x2aW5nRnVsbFN0eWxlKCkgY29u
c3QKICAgICBpZiAoc3R5bGUtPnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBGSVhNRTogUmVwbGFjZSBpbmVydC9tb2Rh
bCBkaWFsb2cgbG9naWMgd2l0aCBzdHlsZS0+ZWZmZWN0aXZlSW5lcnQoKSBhZnRlciBmaXhpbmcg
aW52YWxpZGF0aW9uCisgICAgYXV0byBlbGVtZW50SGFzSW5lcnRBdHRyaWJ1dGUgPSBbXShFbGVt
ZW50JiBlbGVtZW50KSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQuZG9jdW1lbnQo
KS5zZXR0aW5ncygpLmluZXJ0QXR0cmlidXRlRW5hYmxlZCgpICYmIGlzPEhUTUxFbGVtZW50Pihl
bGVtZW50KSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6OmluZXJ0QXR0cik7Cisg
ICAgfTsKKworICAgIGlmIChlbGVtZW50SGFzSW5lcnRBdHRyaWJ1dGUoY29uc3RfY2FzdDxFbGVt
ZW50Jj4oKnRoaXMpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSogYWN0aXZl
TW9kYWxEaWFsb2cgPSBkb2N1bWVudCgpLmFjdGl2ZU1vZGFsRGlhbG9nKCk7CisgICAgaWYgKGFj
dGl2ZU1vZGFsRGlhbG9nICYmICFhY3RpdmVNb2RhbERpYWxvZy0+Y29udGFpbnNJbmNsdWRpbmdT
aGFkb3dET00odGhpcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGZvciAoYXV0byYg
ZWxlbWVudCA6IGNvbXBvc2VkVHJlZUFuY2VzdG9ycyhjb25zdF9jYXN0PEVsZW1lbnQmPigqdGhp
cykpKSB7CiAgICAgICAgIGF1dG8qIHN0eWxlID0gY29tcHV0ZWRTdHlsZUZvckVsZW1lbnQoZWxl
bWVudCk7Ci0gICAgICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmRpc3BsYXkoKSA9PSBEaXNwbGF5
VHlwZTo6Tm9uZSkKKyAgICAgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+ZGlzcGxheSgpID09IERp
c3BsYXlUeXBlOjpOb25lIHx8IGVsZW1lbnRIYXNJbmVydEF0dHJpYnV0ZShlbGVtZW50KSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDlm
MjdiNjU0Y2ZiNTVlOGNlYmM0NzEzOTBmMmUyNTRhN2FkMWE2YWEuLjYyNjBjNDY3NGI2ZjA3M2E1
OTdiNDlhNjhkYTlkNjM4NDhlZTU5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzUyLDcgKzM1
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzU3R5bGVJbnZhbGlkYXRpb24oKSBjb25zdDsK
IAogICAgIGJvb2wgaGFzVmFsaWRTdHlsZSgpIGNvbnN0OwotICAgIGJvb2wgaXNWaXNpYmxlV2l0
aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpIGNvbnN0OworICAgIGJvb2wgaXNGb2N1c2FibGVXaXRo
b3V0UmVzb2x2aW5nRnVsbFN0eWxlKCkgY29uc3Q7CiAKICAgICAvLyBNZXRob2RzIGZvciBpbmRp
Y2F0aW5nIHRoZSBzdHlsZSBpcyBhZmZlY3RlZCBieSBkeW5hbWljIHVwZGF0ZXMgKGUuZy4sIGNo
aWxkcmVuIGNoYW5naW5nLCBvdXIgcG9zaXRpb24gY2hhbmdpbmcgaW4gb3VyIHNpYmxpbmcgbGlz
dCwgZXRjLikKICAgICBib29sIHN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkgY29uc3QgeyByZXR1cm4g
aGFzU3R5bGVGbGFnKE5vZGVTdHlsZUZsYWc6OlN0eWxlQWZmZWN0ZWRCeUVtcHR5KTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IGQyNDViNDQ1NTBlMzhiNjAzMTU1NTA2YmYwMzEzMDAwZDNhNzgzZGIu
LmQwODAzMmFhZWVkZjY0ZDhjODhmZjgzOWMxOTIxZmQ2N2U5YTk2NGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTExMjcsMTEgKzExMjcsMTEgQEAgYm9vbCBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigp
IGNvbnN0CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBpZiAoaXNJbmVydCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAo
cmVuZGVyZXIoKSkgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJl
cigpLT5zdHlsZSgpOworICAgICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlSW5lcnQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICAvLyBXZSBhbGxvdyBzZWxlY3Rpb25zIHRv
IGJlZ2luIHdpdGhpbiBhbiBlbGVtZW50IHRoYXQgaGFzIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmUgc2V0LAogICAgICAgICAvLyBidXQgaWYgdGhlIGVsZW1lbnQgaXMgZHJhZ2dhYmxlIHRoZW4g
ZHJhZ2dpbmcgc2hvdWxkIHRha2UgcHJpb3JpdHkgb3ZlciBzZWxlY3Rpb24uCiAgICAgICAgIGlm
IChzdHlsZS51c2VyRHJhZygpID09IFVzZXJEcmFnOjpFbGVtZW50ICYmIHN0eWxlLnVzZXJTZWxl
Y3QoKSA9PSBVc2VyU2VsZWN0OjpOb25lKQpAQCAtMjYyMywzMCArMjYyMyw2IEBAIHZvaWQqIE5v
ZGU6Om9wYXF1ZVJvb3RTbG93KCkgY29uc3QKICAgICByZXR1cm4gY29uc3RfY2FzdDx2b2lkKj4o
c3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KG5vZGUpKTsKIH0KIAotYm9vbCBOb2RlOjppc0luZXJ0
KCkgY29uc3QKLXsKLSAgICBpZiAoIWlzQ29ubmVjdGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgaWYgKHRoaXMgIT0gJmRvY3VtZW50KCkgJiYgdGhpcyAhPSBkb2N1bWVudCgpLmRv
Y3VtZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIE5vZGUqIGFjdGl2ZU1vZGFsRGlhbG9nID0gZG9j
dW1lbnQoKS5hY3RpdmVNb2RhbERpYWxvZygpOwotICAgICAgICBpZiAoYWN0aXZlTW9kYWxEaWFs
b2cgJiYgIWFjdGl2ZU1vZGFsRGlhbG9nLT5jb250YWluc0luY2x1ZGluZ1NoYWRvd0RPTSh0aGlz
KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChkb2N1bWVudCgp
LnNldHRpbmdzKCkuaW5lcnRBdHRyaWJ1dGVFbmFibGVkKCkpIHsKLSAgICAgICAgZm9yIChSZWZQ
dHIgZWxlbWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVt
ZW50SW5Db21wb3NlZFRyZWUoKSkgewotICAgICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50Pigq
ZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCplbGVtZW50KS5oYXNBdHRyaWJ1dGUo
SFRNTE5hbWVzOjppbmVydEF0dHIpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCkgfHwgIWRvY3VtZW50
KCkuZnJhbWUoKS0+b3duZXJFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpLT5pc0luZXJ0KCk7Ci19
Ci0KIHRlbXBsYXRlPD4gQ29udGFpbmVyTm9kZSogcGFyZW50PFRyZWU+KGNvbnN0IE5vZGUmIG5v
ZGUpCiB7CiAgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNDg4
OWY3Njk3ZWJmYmU0ZmRlMjNiNzA3ZTBjMjJiMjg3OGUyOWJiNC4uMTVlMjE5MzM5M2ViYmQyZmEz
ODA1NzI5YzRjODgxNzY0NDFhODI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01MjQsMTMgKzUyNCw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hl
ZCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KE5vZGVGbGFnOjpJc1BhcnNpbmdDaGls
ZHJlbkZpbmlzaGVkKTsgfQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKLSAgICAvLyBXaGV0aGVy
IHRoZSBub2RlIGlzIGluZXJ0OgotICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL2ludGVyYWN0aW9uLmh0bWwjaW5lcnQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5j
b20vV0lDRy9pbmVydC9ibG9iL21hc3Rlci9SRUFETUUubWQKLSAgICAvLyBUaGlzIGNhbid0IGJl
IGluIEVsZW1lbnQgYmVjYXVzZSB0ZXh0IG5vZGVzIG11c3QgYmUgcmVjb2duaXplZCBhcwotICAg
IC8vIGluZXJ0IHRvIHByZXZlbnQgdGV4dCBzZWxlY3Rpb24uCi0gICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBpc0luZXJ0KCkgY29uc3Q7Ci0KIHByb3RlY3RlZDoKICAgICBlbnVtIGNsYXNzIE5vZGVG
bGFnIDogdWludDMyX3QgewogICAgICAgICBJc0NoYXJhY3RlckRhdGEgPSAxIDw8IDAsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcAppbmRleCBiYmFlMTFhMmU0ZjE3MTM5MjQwOGViYzQxMGJiMTcxZDUw
OGFiOWU5Li4xYzZlMDZiNzdkNGEyMWU2OWJlZTBjZjU2ZTUxNjBhYTRkMTU1ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTkzOSwxNiArOTM5LDE0IEBAIGJvb2wgUG9zaXRpb246Om5v
ZGVJc0luZXJ0T3JVc2VyU2VsZWN0Tm9uZShOb2RlKiBub2RlKQogewogICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChub2RlLT5pc0luZXJ0KCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpICYmIG5vZGUtPnJlbmRl
cmVyKCktPnN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmU7CisgICAgcmV0
dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgKG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNl
bGVjdCgpID09IFVzZXJTZWxlY3Q6Ok5vbmUgfHwgbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5l
ZmZlY3RpdmVJbmVydCgpKTsKIH0KIAogYm9vbCBQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVjdEFs
bChjb25zdCBOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSB8fCBub2RlLT5pc0luZXJ0KCkp
CisgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG5vZGUt
PnJlbmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0g
VXNlclNlbGVjdDo6QWxsOworICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpICYmIChub2RlLT5y
ZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxlY3QoKSA9PSBVc2VyU2VsZWN0OjpBbGwgJiYgIW5v
ZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSk7CiB9CiAKIE5vZGUqIFBv
c2l0aW9uOjpyb290VXNlclNlbGVjdEFsbEZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAppbmRleCBhZDNlMTE4MDk1MmMzNWUzN2EyYjFkZGYx
Yjc4Y2E5ODgyOTBhNDdhLi42Y2Y4YzVkYWI1OTYyMjc1M2ZkNDViMThjMTc3Y2FjMDQwYTVjMzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCkBAIC0yMTAsNyArMjEw
LDcgQEAgYm9vbCBIVE1MQXJlYUVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogYm9v
bCBIVE1MQXJlYUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKICAgICBSZWZQdHI8SFRN
TEltYWdlRWxlbWVudD4gaW1hZ2UgPSBpbWFnZUVsZW1lbnQoKTsKLSAgICBpZiAoIWltYWdlIHx8
ICFpbWFnZS0+aXNWaXNpYmxlV2l0aG91dFJlc29sdmluZ0Z1bGxTdHlsZSgpKQorICAgIGlmICgh
aW1hZ2UgfHwgIWltYWdlLT5pc0ZvY3VzYWJsZVdpdGhvdXRSZXNvbHZpbmdGdWxsU3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHN1cHBvcnRzRm9jdXMoKSAmJiB0
YWJJbmRleFNldEV4cGxpY2l0bHkoKS52YWx1ZV9vcigwKSA+PSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA4MWU0OTIwMjA3N2IyYmQ1ZWMxNzAzMTQ5
ZTNmNTA2OTE1ZDVhZjQzLi5mNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMzNjljNmQ0YWU4YWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjE3OCw3
ICsyMTc4LDcgQEAgYXV0byBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVz
SW50ZXJuYWwoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQogICAgIGZvciAoYXV0byYgbm9kZSA6
IGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayhyYW5n
ZSkpIHsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICAgICAg
Ly8gT25seSBhc2sgbGVhZiByZW5kZXIgb2JqZWN0cyBmb3IgdGhlaXIgbGluZSBib3ggcmVjdHMu
Ci0gICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYg
cmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmUgJiYgIW5v
ZGUuaXNJbmVydCgpKSB7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0
Q2hpbGRTbG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxl
Y3Q6Ok5vbmUgJiYgIXJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCkpIHsKICAgICAg
ICAgICAgIGJvb2wgaXNTdGFydE5vZGUgPSByZW5kZXJlci0+bm9kZSgpID09IHJhbmdlLnN0YXJ0
LmNvbnRhaW5lci5wdHIoKTsKICAgICAgICAgICAgIGJvb2wgaXNFbmROb2RlID0gcmVuZGVyZXIt
Pm5vZGUoKSA9PSByYW5nZS5lbmQuY29udGFpbmVyLnB0cigpOwogICAgICAgICAgICAgaWYgKGhh
c0ZsaXBwZWRXcml0aW5nTW9kZSAhPSByZW5kZXJlci0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NX
cml0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQppbmRleCBkMTg2MjViOTU1ZjBmNjA3MjgyN2FhNzRmMzdhYmRiM2Vh
MTM1M2NiLi4wYzVhZjRjMGEwODUwYWZjZDUyMWZlNTI1ZTBjZjYxOGFjYjQ5YmY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMjg4NSw3ICsyODg1LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRpb25JbmZvcm1h
dGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKICAgICAgICAgaWYg
KGF0dGFjaG1lbnQuZmlsZSgpKQogICAgICAgICAgICAgaW5mby51cmwgPSBVUkw6OmZpbGVVUkxX
aXRoRmlsZVN5c3RlbVBhdGgoZG93bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PigqaGl0Tm9k
ZSkuZmlsZSgpLT5wYXRoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGluZm8uaXNTZWxlY3Rh
YmxlID0gcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmUg
JiYgIWhpdE5vZGUtPmlzSW5lcnQoKTsKKyAgICAgICAgaW5mby5pc1NlbGVjdGFibGUgPSByZW5k
ZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSAmJiAhcmVuZGVy
ZXItPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKTsKICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBzZWxlY3QgYmxvY2tzIHRoYXQgYXJlIGxhcmdlciB0aGFuIDk3JSBvZiB0aGUgdmlzaWJsZSBh
cmVhIG9mIHRoZSBkb2N1bWVudC4KICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgaGV1cmlzdGlj
IHN0aWxsIG5lZWRlZCwgbm93IHRoYXQgYmxvY2sgc2VsZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQ/
CiAgICAgICAgIGlmIChpbmZvLmlzU2VsZWN0YWJsZSAmJiAhaGl0Tm9kZS0+aXNUZXh0Tm9kZSgp
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439336</attachid>
            <date>2021-09-27 02:27:21 -0700</date>
            <delta_ts>2021-09-27 04:25:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230686-20210927112720.patch</filename>
            <type>text/plain</type>
            <size>9533</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI0MzNkZmViNWIzMDQ0
ZGE0MDcxYmM3Nzc4NDI3NmViYWU1YTU3OS4uYWJmOTE0ZmNlMTdmMmVmOTEyOWYwNTkxN2JhYmMw
YjYzZjVkNDljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA5LTI3ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBOb2RlOjppc0luZXJ0
KCkgd2l0aCBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZXBsYWNlcyBOb2RlOjppc0luZXJ0
KCkgaW4gZmF2b3Igb2YgUmVuZGVyU3R5bGU6OmVmZmVjdGl2ZUluZXJ0KCkgd2hpY2ggaXMgbW9y
ZSBhY2N1cmF0ZS4gV2UgY2FuJ3QgdXNlIGl0IGluCisgICAgICAgIEVsZW1lbnQ6OmlzRm9jdXNh
YmxlKCksIHNpbmNlIHRoZXJlJ3MgYSBidWcgd2l0aCBpbnZhbGlkYXRpb24gd2hlbiBhY2Nlc3Np
bmcgdGhlIGNhY2hlZCBjb21wdXRlZFN0eWxlLCBoZW5jZQorICAgICAgICB0aGUgTm9kZTo6ZGVw
cmVjYXRlZElzSW5lcnQoKSBtZXRob2QuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbiBjb25zdCk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNGb2N1c2FibGUgY29uc3QpOgorICAg
ICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNhblN0YXJ0U2Vs
ZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRlcHJlY2F0ZWRJc0luZXJ0
IGNvbnN0KTogQWRkZWQuCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vUG9z
aXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246Om5vZGVJc0luZXJ0T3JVc2Vy
U2VsZWN0Tm9uZSk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVj
dEFsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzSW50ZXJuYWwp
OgorCiAyMDIxLTA5LTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBNYW5kYXRvcnkgc2Nyb2xsIHNuYXBwaW5nIGRvZXNuJ3Qgd29yayBjb3JyZWN0
bHkgaW4gdGFibGVzIHdpdGggcG9zaXRpb246c3RpY2t5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFjOTM5YzVjMzZi
OGY1NWMyZDhkZDRiZjNmZjdkNGFhZDU4ZDFlNGEuLjhjYWM0MGQzMWZiMjcxZjIxZTA4OTQyMjFk
MDlhY2EwZTVhYjE4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjcgIFRp
bSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIE5vZGU6OmlzSW5l
cnQoKSB3aXRoIFJlbmRlclN0eWxlOjplZmZlY3RpdmVJbmVydCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHJlcGxhY2VzIE5vZGU6OmlzSW5l
cnQoKSBpbiBmYXZvciBvZiBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQoKSB3aGljaCBpcyBt
b3JlIGFjY3VyYXRlLiBXZSBjYW4ndCB1c2UgaXQgaW4KKyAgICAgICAgRWxlbWVudDo6aXNGb2N1
c2FibGUoKSwgc2luY2UgdGhlcmUncyBhIGJ1ZyB3aXRoIGludmFsaWRhdGlvbiB3aGVuIGFjY2Vz
c2luZyB0aGUgY2FjaGVkIGNvbXB1dGVkU3R5bGUsIGhlbmNlCisgICAgICAgIHRoZSBOb2RlOjpk
ZXByZWNhdGVkSXNJbmVydCgpIG1ldGhvZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25J
bmZvcm1hdGlvbik6CisKIDIwMjEtMDktMjUgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGVuZGluZyBwcmVjb25uZWN0IGtleSBzaG91bGQgaW5jbHVkZSBVc2VyLUFnZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAppbmRleCBkYjk4ZTk1MjI0NmI4MjJhMmJlN2M5MTc4MTM1YTVkOWE5MGJjN2NmLi5h
YzBhYTBjYzZkODkyMmEwNTZmYTRiZTNkZmViNTIyZDE5ZTQwZjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTMy
ODEsOCArMzI4MSw4IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0
eU9iamVjdDo6ZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0CiAgICAgCiAgICAgaWYgKHVz
ZVBhcmVudERhdGEgPyBtX2lzSWdub3JlZEZyb21QYXJlbnREYXRhLmlzQVhIaWRkZW4gOiBpc0FY
SGlkZGVuKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJ
Z25vcmVPYmplY3Q7Ci0gICAgCi0gICAgaWYgKChub2RlKCkgJiYgbm9kZSgpLT5pc0luZXJ0KCkp
IHx8IGlnbm9yZWRGcm9tTW9kYWxQcmVzZW5jZSgpKQorCisgICAgaWYgKChyZW5kZXJlcigpICYm
IHJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKSkgfHwgaWdub3JlZEZyb21Nb2Rh
bFByZXNlbmNlKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
OjpJZ25vcmVPYmplY3Q7CiAgICAgCiAgICAgaWYgKHVzZVBhcmVudERhdGEgPyBtX2lzSWdub3Jl
ZEZyb21QYXJlbnREYXRhLmlzUHJlc2VudGF0aW9uYWxDaGlsZE9mQXJpYVJvbGUgOiBpc1ByZXNl
bnRhdGlvbmFsQ2hpbGRPZkFyaWFSb2xlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYTBl
NjNjM2E1NjAyYTA1ZWRhZDVjZWY2YmU1YTJlM2RmZDhkNWM5Yi4uY2YwM2I4ZDU0NzlmMGY5ODY1
Y2JlZGYyZTM5OTcxY2ZhZmY3N2ZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjQxLDcg
KzY0MSw3IEBAIFZlY3RvcjxTdHJpbmc+IEVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5hbWVzKCkgY29u
c3QKIAogYm9vbCBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc0Nv
bm5lY3RlZCgpIHx8ICFzdXBwb3J0c0ZvY3VzKCkgfHwgaXNJbmVydCgpKQorICAgIGlmICghaXND
b25uZWN0ZWQoKSB8fCAhc3VwcG9ydHNGb2N1cygpIHx8IGRlcHJlY2F0ZWRJc0luZXJ0KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghcmVuZGVyZXIoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCmluZGV4IGQyNDViNDQ1NTBlMzhiNjAzMTU1NTA2YmYwMzEzMDAwZDNhNzgzZGIuLmE2ZjE5
ODM2YTliZGQ1MTY2Zjg4MGNlNjA2NDMyZGMwNjFlYzQzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAg
LTExMjcsMTEgKzExMjcsMTEgQEAgYm9vbCBOb2RlOjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0
CiAgICAgaWYgKGhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoaXNJbmVydCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAocmVuZGVy
ZXIoKSkgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJlcigpLT5z
dHlsZSgpOworICAgICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlSW5lcnQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgICAgICAvLyBXZSBhbGxvdyBzZWxlY3Rpb25zIHRvIGJlZ2lu
IHdpdGhpbiBhbiBlbGVtZW50IHRoYXQgaGFzIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgc2V0
LAogICAgICAgICAvLyBidXQgaWYgdGhlIGVsZW1lbnQgaXMgZHJhZ2dhYmxlIHRoZW4gZHJhZ2dp
bmcgc2hvdWxkIHRha2UgcHJpb3JpdHkgb3ZlciBzZWxlY3Rpb24uCiAgICAgICAgIGlmIChzdHls
ZS51c2VyRHJhZygpID09IFVzZXJEcmFnOjpFbGVtZW50ICYmIHN0eWxlLnVzZXJTZWxlY3QoKSA9
PSBVc2VyU2VsZWN0OjpOb25lKQpAQCAtMjYyMyw3ICsyNjIzLDggQEAgdm9pZCogTm9kZTo6b3Bh
cXVlUm9vdFNsb3coKSBjb25zdAogICAgIHJldHVybiBjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNf
Y2FzdDxjb25zdCB2b2lkKj4obm9kZSkpOwogfQogCi1ib29sIE5vZGU6OmlzSW5lcnQoKSBjb25z
dAorLy8gUGxlYXNlIHVzZSBSZW5kZXJTdHlsZTo6ZWZmZWN0aXZlSW5lcnQgaW5zdGVhZCEKK2Jv
b2wgTm9kZTo6ZGVwcmVjYXRlZElzSW5lcnQoKSBjb25zdAogewogICAgIGlmICghaXNDb25uZWN0
ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNjQ0LDcgKzI2NDUsNyBAQCBib29sIE5v
ZGU6OmlzSW5lcnQoKSBjb25zdAogICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgpIHx8ICFkb2N1
bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5vd25lckVsZW1lbnQoKS0+aXNJbmVydCgp
OworICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPm93bmVyRWxlbWVudCgpLT5kZXByZWNh
dGVkSXNJbmVydCgpOwogfQogCiB0ZW1wbGF0ZTw+IENvbnRhaW5lck5vZGUqIHBhcmVudDxUcmVl
Pihjb25zdCBOb2RlJiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNDg4OWY3Njk3ZWJmYmU0ZmRlMjNi
NzA3ZTBjMjJiMjg3OGUyOWJiNC4uYmU5NjNmZDBmMmU3NDNjZDlhYWQzOThjYTAwNjhlNzY4MmZi
YWI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC01MjQsMTIgKzUyNCw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgaW50MzJfdCBmbGFnSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZCgpIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PGludDMyX3Q+KE5vZGVGbGFnOjpJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkKTsgfQog
I2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKLSAgICAvLyBXaGV0aGVyIHRoZSBub2RlIGlzIGluZXJ0
OgotICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2ludGVyYWN0
aW9uLmh0bWwjaW5lcnQKLSAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9pbmVydC9ibG9i
L21hc3Rlci9SRUFETUUubWQKLSAgICAvLyBUaGlzIGNhbid0IGJlIGluIEVsZW1lbnQgYmVjYXVz
ZSB0ZXh0IG5vZGVzIG11c3QgYmUgcmVjb2duaXplZCBhcwotICAgIC8vIGluZXJ0IHRvIHByZXZl
bnQgdGV4dCBzZWxlY3Rpb24uCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0luZXJ0KCkgY29u
c3Q7CisgICAgLy8gV2hldGhlciBhIG5vZGUgaXMgaW5lcnQsIHBsZWFzZSB1c2UgUmVuZGVyU3R5
bGU6OmVmZmVjdGl2ZUluZXJ0IGluc3RlYWQhCisgICAgYm9vbCBkZXByZWNhdGVkSXNJbmVydCgp
IGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBjbGFzcyBOb2RlRmxhZyA6IHVpbnQzMl90
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGJiYWUxMWEyZTRmMTcxMzkyNDA4ZWJjNDEw
YmIxNzFkNTA4YWI5ZTkuLjFjNmUwNmI3N2Q0YTIxZTY5YmVlMGNmNTZlNTE2MGFhNGQxNTVmNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtOTM5LDE2ICs5MzksMTQgQEAgYm9vbCBQb3Np
dGlvbjo6bm9kZUlzSW5lcnRPclVzZXJTZWxlY3ROb25lKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG5vZGUtPmlzSW5lcnQoKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYgbm9k
ZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZTsK
KyAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIoKSAmJiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUo
KS51c2VyU2VsZWN0KCkgPT0gVXNlclNlbGVjdDo6Tm9uZSB8fCBub2RlLT5yZW5kZXJlcigpLT5z
dHlsZSgpLmVmZmVjdGl2ZUluZXJ0KCkpOwogfQogCiBib29sIFBvc2l0aW9uOjpub2RlSXNVc2Vy
U2VsZWN0QWxsKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8IG5vZGUtPmlz
SW5lcnQoKSkKKyAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gbm9kZS0+cmVuZGVyZXIoKSAmJiBub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLnVzZXJTZWxl
Y3QoKSA9PSBVc2VyU2VsZWN0OjpBbGw7CisgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCkgJiYg
KG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkudXNlclNlbGVjdCgpID09IFVzZXJTZWxlY3Q6OkFs
bCAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVJbmVydCgpKTsKIH0KIAog
Tm9kZSogUG9zaXRpb246OnJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZShOb2RlKiBub2RlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA4MWU0OTIwMjA3N2Iy
YmQ1ZWMxNzAzMTQ5ZTNmNTA2OTE1ZDVhZjQzLi5mNTI3ODNhZThhZjdkNWQ2M2M1YmM4ZWFiNmMz
NjljNmQ0YWU4YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtMjE3OCw3ICsyMTc4LDcgQEAgYXV0byBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rp
b25HZW9tZXRyaWVzSW50ZXJuYWwoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQogICAgIGZvciAo
YXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3Rh
cnRRdWlyayhyYW5nZSkpIHsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIo
KTsKICAgICAgICAgLy8gT25seSBhc2sgbGVhZiByZW5kZXIgb2JqZWN0cyBmb3IgdGhlaXIgbGlu
ZSBib3ggcmVjdHMuCi0gICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0Q2hp
bGRTbG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6
Ok5vbmUgJiYgIW5vZGUuaXNJbmVydCgpKSB7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVu
ZGVyZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgp
ICE9IFVzZXJTZWxlY3Q6Ok5vbmUgJiYgIXJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZUluZXJ0
KCkpIHsKICAgICAgICAgICAgIGJvb2wgaXNTdGFydE5vZGUgPSByZW5kZXJlci0+bm9kZSgpID09
IHJhbmdlLnN0YXJ0LmNvbnRhaW5lci5wdHIoKTsKICAgICAgICAgICAgIGJvb2wgaXNFbmROb2Rl
ID0gcmVuZGVyZXItPm5vZGUoKSA9PSByYW5nZS5lbmQuY29udGFpbmVyLnB0cigpOwogICAgICAg
ICAgICAgaWYgKGhhc0ZsaXBwZWRXcml0aW5nTW9kZSAhPSByZW5kZXJlci0+c3R5bGUoKS5pc0Zs
aXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkMTg2MjViOTU1ZjBmNjA3MjgyN2Fh
NzRmMzdhYmRiM2VhMTM1M2NiLi4wYzVhZjRjMGEwODUwYWZjZDUyMWZlNTI1ZTBjZjYxOGFjYjQ5
YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQpAQCAtMjg4NSw3ICsyODg1LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9z
aXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEK
ICAgICAgICAgaWYgKGF0dGFjaG1lbnQuZmlsZSgpKQogICAgICAgICAgICAgaW5mby51cmwgPSBV
Ukw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoZG93bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVt
ZW50PigqaGl0Tm9kZSkuZmlsZSgpLT5wYXRoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlu
Zm8uaXNTZWxlY3RhYmxlID0gcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJT
ZWxlY3Q6Ok5vbmUgJiYgIWhpdE5vZGUtPmlzSW5lcnQoKTsKKyAgICAgICAgaW5mby5pc1NlbGVj
dGFibGUgPSByZW5kZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9u
ZSAmJiAhcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlSW5lcnQoKTsKICAgICAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBzZWxlY3QgYmxvY2tzIHRoYXQgYXJlIGxhcmdlciB0aGFuIDk3JSBvZiB0
aGUgdmlzaWJsZSBhcmVhIG9mIHRoZSBkb2N1bWVudC4KICAgICAgICAgLy8gRklYTUU6IElzIHRo
aXMgaGV1cmlzdGljIHN0aWxsIG5lZWRlZCwgbm93IHRoYXQgYmxvY2sgc2VsZWN0aW9uIGhhcyBi
ZWVuIHJlbW92ZWQ/CiAgICAgICAgIGlmIChpbmZvLmlzU2VsZWN0YWJsZSAmJiAhaGl0Tm9kZS0+
aXNUZXh0Tm9kZSgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>