<?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>234985</bug_id>
          
          <creation_ts>2022-01-07 14:20:39 -0800</creation_ts>
          <short_desc>Make [WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]handle calls on and off the main thread properly.</short_desc>
          <delta_ts>2022-02-10 16:26:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>235046</dup_id>
          
          <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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829069</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-07 14:20:39 -0800</bug_when>
    <thetext>Make [WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]handle calls on and off the main thread properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829070</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-07 14:20:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/87272381&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829082</commentid>
    <comment_count>2</comment_count>
      <attachid>448632</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-07 14:40:08 -0800</bug_when>
    <thetext>Created attachment 448632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829094</commentid>
    <comment_count>3</comment_count>
      <attachid>448632</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-01-07 14:51:52 -0800</bug_when>
    <thetext>Comment on attachment 448632
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:84
&gt; +    if (!WebCore::AXObjectCache::accessibilityEnabled())

this code looks pretty identical to whats inside the lambda from accessibilityRootObjectWrapper

1) accessibilityRootObjectWrapper already retrieves this value from the main thread. do we need to have a separate condition to do it here?
2) can we consolidate the between these two methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829442</commentid>
    <comment_count>4</comment_count>
      <attachid>448742</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-10 06:26:44 -0800</bug_when>
    <thetext>Created attachment 448742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829512</commentid>
    <comment_count>5</comment_count>
      <attachid>448742</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-01-10 09:54:28 -0800</bug_when>
    <thetext>Comment on attachment 448742
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:92
&gt; +            WebCore::AXCoreObject* root;

should we make this a ternary?

auto* root = mainThread ? cache-&gt;rootAXObject() : cache-&gt;rootObject();

&gt; Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:93
&gt; +            if (mainThread)

do we need this mainThread check at all because the mainThread cases will be handled with the if (isMainRunLoop())
case at line 105?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829579</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-10 12:00:52 -0800</bug_when>
    <thetext>Stack trace that shows the scenario in which this condition occurs:

(lldb) bt
* thread #1, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
  * frame #0: 0x00000007275b732e JavaScriptCore`::WTFCrash() at Assertions.cpp:322:35
    frame #1: 0x000000073ab7c34b WebCore`WTFCrashWithInfo((null)=447, (null)=&quot;./accessibility/isolatedtree/AXIsolatedTree.cpp&quot;, (null)=&quot;void WebCore::AXIsolatedTree::applyPendingChanges()&quot;, (null)=1006) at Assertions.h:732:5
    frame #2: 0x000000073d4b45f6 WebCore`WebCore::AXIsolatedTree::applyPendingChanges(this=0x00000007051ad960) at AXIsolatedTree.cpp:447:5
    frame #3: 0x000000073d4b211d WebCore`WebCore::AXIsolatedObject::updateBackingStore(this=0x00000007050a6f80) at AXIsolatedObject.cpp:1001:15
    frame #4: 0x000000073fd2558c WebCore`-[WebAccessibilityObjectWrapperBase updateObjectBackingStore](self=0x00007f84b6c128f0, _cmd=&quot;updateObjectBackingStore&quot;) at WebAccessibilityObjectWrapperBase.mm:335:20
    frame #5: 0x000000073fd44c31 WebCore`-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement](self=0x00007f84b6c128f0, _cmd=&quot;accessibilityFocusedUIElement&quot;) at WebAccessibilityObjectWrapperMac.mm:2938:32
    frame #6: 0x000000070d3c9471 WebKit`-[WKAccessibilityWebPageObjectBase accessibilityFocusedUIElement](self=0x00007f84b6c1c110, _cmd=&quot;accessibilityFocusedUIElement&quot;) at WKAccessibilityWebPageObjectBase.mm:138:12
    frame #7: 0x000000070d3e0205 WebKit`WebKit::NSApplicationAccessibilityFocusedUIElement((null)=0x00007f84b5f0ff80, (null)=&quot;accessibilityFocusedUIElement&quot;) at WebProcessCocoa.mm:202:12
...

I.e., [WKAccessibilityWebPageObjectBase accessibilityFocusedUIElement] calls the same method on the returned value of accessibilityRootObjectWrapper that would be an IsolatedObject if Isolated tree mode has already been enabled, resulting in doing an AXIsolatedObject::updateBackingStore which should only happen off the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829846</commentid>
    <comment_count>7</comment_count>
      <attachid>448742</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-11 10:37:32 -0800</bug_when>
    <thetext>Comment on attachment 448742
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.h:154
&gt; +    WEBCORE_EXPORT AccessibilityObject* rootAXObject();

I think we need easier to understand terminology.

Nothing in the name AXObjectCache::rootAXObject makes me understand that &quot;AXObject&quot; here means a non-isolated object that is only suitable for the main thread and that is distinct from AXObjectCache::rootObject; the comments are explicit but the functions names themselves aren’t clear enough to make the code using them understandable.

Even the facts &quot;AXIsolatedObejct is not an AXObject&quot; and &quot;AccessibilityObject can be either AXObject or AXIsolatedObject&quot; are hard to understand given our names. And shows some flaws in our terminology. It’s worth a little thinking if we want this code to be maintainable and understandable in the future. A little renaming might solve this problem. Even the idea that this class is called AXObjectCache, but is not for AXObjects.

&gt; Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:110
&gt; +    return ax::retrieveAutoreleasedValueFromMainThread&lt;id&gt;([&amp;rootObjectWrapper, protectedSelf = retainPtr(self)] () -&gt; RetainPtr&lt;id&gt; {
&gt; +        return rootObjectWrapper(protectedSelf.get(), false);
&gt;      });

I don’t understand the reason for the retainPtr(self). Given this is synchronous and we won’t return until the thread hopping is done. I don’t think it’s needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830220</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-01-12 10:59:52 -0800</bug_when>
    <thetext>This change is no longer necessary since bug 235046 solves the underlying issue.

*** This bug has been marked as a duplicate of bug 235046 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448632</attachid>
            <date>2022-01-07 14:40:08 -0800</date>
            <delta_ts>2022-01-10 06:26:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234985-20220107174007.patch</filename>
            <type>text/plain</type>
            <size>6567</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3YTU2YWVhMmJhNDVk
YjQ4NTUzMmMxYmE2Y2ZkMjJhNTdiNGQ0MS4uYmRjNDQwMjYzYWVmODFkNWFlYTg2MmM5OWYxYTgz
ZTczMjgwZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTA3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFtXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBw
ZXJdaGFuZGxlIGNhbGxzIG9uIGFuZCBvZmYgdGhlIG1haW4gdGhyZWFkIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0OTg1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NzI3MjM4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbiBpc29sYXRlZCB0cmVlIG1vZGUsIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlIGlzIGNhbGxlZCBvbiBhbmQKKyAgICAgICAgb2ZmIHRoZSBt
YWluIHRocmVhZC4gSWYgYSBjYWxsIG9uIHRoZSBtYWluIHRocmVhZCBjb21lcyBhZnRlciBpc29s
YXRlZAorICAgICAgICB0cmVlIG1vZGUgaXMgZW5hYmxlZCwgaXQgd2lsbCByZXR1cm4gYW4gaXNv
bGF0ZWQgb2JqZWN0IGZvciB0aGUgcm9vdCBvbgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQsIHdo
aWNoIGxlYWRzIHRvIHVuZGVmaW5lZCBiZWhhdmlvci4gVGhpcyBwYXRjaCBwcm9wZXJseQorICAg
ICAgICBjaGVjayBmb3IgdGhlIHRocmVhZCB1c2luZyBpc01haW5SdW5Mb29wLCBhbmQgcmV0dXJu
cyBlaXRoZXIgYW4KKyAgICAgICAgQVhPYmplY3Qgb3IgYW4gQVhJc29sYXRlZE9iamVjdCBhcyBh
cHByb3ByaWF0ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290QVhPYmplY3QpOiBBZGRlZCB0
byByZXR1cm4gYW4gQVhPYmplY3QgZm9yCisgICAgICAgIHRoZSByb290LgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cm9vdEFYT2JqZWN0KToKKwogMjAyMi0wMS0wNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgSW5saW5lIGJsb2NrcyB0aGF0IGNvbnRhaW4gdGV4dCB3aXRo
IG1pbi13aWR0aCwgYm94LXNpemluZzogYm9yZGVyLWJveCBpbmNvcnJlY3RseSBpbmNsdWRlIHRo
ZSBib3JkZXIgaW4gd2lkdGggY2FsY3VsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDdlOGE2MDU0ZDViNmYz
NzA1ODIxNmFlNmRhNjE4NjM3MmMzMzM4ZC4uYmZjN2JlYTAzNjYyNDQ5ODNlZTg2YWRjYTI4MWY0
YWIyM2U2OWMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMS0wNyAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBbV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVy
XWhhbmRsZSBjYWxscyBvbiBhbmQgb2ZmIHRoZSBtYWluIHRocmVhZCBwcm9wZXJseS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDk4NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODcyMTc0MjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gaXNvbGF0ZWQgdHJlZSBtb2RlLCBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZSBpcyBjYWxsZWQgb24gYW5kCisgICAgICAgIG9mZiB0aGUgbWFp
biB0aHJlYWQuIElmIGEgY2FsbCBvbiB0aGUgbWFpbiB0aHJlYWQgY29tZXMgYWZ0ZXIgaXNvbGF0
ZWQKKyAgICAgICAgdHJlZSBtb2RlIGlzIGVuYWJsZWQsIGl0IHdpbGwgcmV0dXJuIGFuIGlzb2xh
dGVkIG9iamVjdCBmb3IgdGhlIHJvb3Qgb24KKyAgICAgICAgdGhlIG1haW4gdGhyZWFkLCB3aGlj
aCBsZWFkcyB0byB1bmRlZmluZWQgYmVoYXZpb3IuIFRoaXMgcGF0Y2ggcHJvcGVybHkKKyAgICAg
ICAgY2hlY2sgZm9yIHRoZSB0aHJlYWQgdXNpbmcgaXNNYWluUnVuTG9vcCwgYW5kIHJldHVybnMg
ZWl0aGVyIGFuCisgICAgICAgIEFYT2JqZWN0IG9yIGFuIEFYSXNvbGF0ZWRPYmplY3QgYXMgYXBw
cm9wcmlhdGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tOgorICAgICAgICAocm9vdEFYT2JqZWN0V3JhcHBlcik6
IEhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSk6CisgICAgICAgIFByb3Blcmx5
IGhhbmRsZXMgY2FsbHMgb24gYW5kIG9mZiB0aGUgbWFpbiB0aHJlYWQuCisKIDIwMjEtMTAtMzAg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
cHJvY2VzcyBzaG91bGRuJ3QgY3Jhc2ggaWYgSW1hZ2VCdWZmZXI6OmVuc3VyZUJhY2tlbmRDcmVh
dGVkKCkgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IDdmYTk3NTgwNzBiOGQ4YTdjZTJmMDMzMmNiYjQyYzFlNTc4YWE4ZmMuLjc1
N2IyNGQyZWUxMTU5MTU0NzJiODk1OGVhMzA0YWZiNzlmMDUyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzQ5LDYgKzc0OSwxMSBA
QCBBWENvcmVPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RPYmplY3QoKQogICAgIHJldHVybiBn
ZXRPckNyZWF0ZShtX2RvY3VtZW50LnZpZXcoKSk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OnJvb3RBWE9iamVjdCgpCit7CisgICAgcmV0dXJuIGdBY2Nlc3NpYmls
aXR5RW5hYmxlZCA/IGdldE9yQ3JlYXRlKG1fZG9jdW1lbnQudmlldygpKSA6IG51bGxwdHI7Cit9
CisKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogUmVmUHRyPEFYSXNv
bGF0ZWRUcmVlPiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZUlzb2xhdGVkVHJlZSgpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4
IDBmNDNkOTQzZjZjNWUwYWM1OWZlNjQ1YjRkYzAzN2QzNjk2ZDgwM2EuLjk2ODMwMTQ2ZTFjNDU1
ZWJmYTUzYmQxNjVmNmU5MzFiNTE4NDk0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNDgsMTEgKzE0OCwxMyBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgQVhPYmplY3RDYWNoZShEb2N1bWVudCYpOwogICAgIH5BWE9iamVjdENhY2hlKCk7
CiAKLSAgICAvLyBSZXR1cm5zIHRoZSByb290IG9iamVjdCBmb3IgdGhlIGVudGlyZSBkb2N1bWVu
dC4KKyAgICAvLyBSZXR1cm5zIHRoZSByb290IG9iamVjdCBmb3IgdGhlIGVudGlyZSBkb2N1bWVu
dC4gVGhlIG9iamVjdCBjYW4gYmUgZWl0aGVyIGFuIEFYT2JqZWN0IG9yIGFuIEFYSXNvbGF0ZWRP
YmplY3QuCiAgICAgV0VCQ09SRV9FWFBPUlQgQVhDb3JlT2JqZWN0KiByb290T2JqZWN0KCk7Ci0g
ICAgLy8gUmV0dXJucyB0aGUgcm9vdCBvYmplY3QgZm9yIGEgc3BlY2lmaWMgZnJhbWUuCisgICAg
Ly8gUmV0dXJucyB0aGUgcm9vdCBBWE9iamVjdC4KKyAgICBXRUJDT1JFX0VYUE9SVCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290QVhPYmplY3QoKTsKKyAgICAvLyBSZXR1cm5zIHRoZSByb290IEFY
T2JqZWN0IGZvciBhIHNwZWNpZmljIGZyYW1lLgogICAgIFdFQkNPUkVfRVhQT1JUIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHJvb3RPYmplY3RGb3JGcmFtZShGcmFtZSopOwotICAgIAorCiAgICAgLy8g
Rm9yIEFYIG9iamVjdHMgd2l0aCBlbGVtZW50cyB0aGF0IGJhY2sgdGhlbS4KICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBnZXRPckNyZWF0ZShXaWRnZXQqKTsKQEAgLTU2NCw2ICs1NjYsNyBAQCBpbmxp
bmUgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxp
dHlSb2xlKSB7IHJldHVybiBudQogaW5saW5lIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0
Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxpbmUgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoV2lkZ2V0KikgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogaW5saW5lIEFYQ29yZU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9v
dE9iamVjdCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KK2lubGluZSBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBWE9iamVjdENhY2hlOjpyb290QVhPYmplY3QoKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxp
bmUgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdE9iamVjdEZvckZyYW1l
KEZyYW1lKikgeyByZXR1cm4gbnVsbHB0cjsgfQogaW5saW5lIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OmZvY3VzZWRPYmplY3RGb3JQYWdlKGNvbnN0IFBhZ2UqKSB7IHJldHVy
biBudWxscHRyOyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmls
aXR5KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0K
aW5kZXggNzFkYjE0ODIzNmQ4MDJhMmZkYjIzNTE5YmE3MjQ1NGExY2Q5N2VjYi4uYTQzNTlkMmE0
NjM3ZTU4OGZiMjJjY2YyNzU4MmEyNmVkOGZkZjU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQpAQCAtNzksOCArNzksMjcgQEAgbmFtZXNwYWNlIGF4
ID0gV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTsKICAgICByZXR1cm4gcmV0cmlldmVCbG9jaygpOwog
fQogCitzdGF0aWMgaWQgcm9vdEFYT2JqZWN0V3JhcHBlcihXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0QmFzZSAqYXhXZWJQYWdlKQoreworICAgIGlmICghV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOworCisgICAgaWYgKGF4V2ViUGFnZS0+bV9oYXNNYWlu
RnJhbWVQbHVnaW4pCisgICAgICAgIHJldHVybiBheFdlYlBhZ2UuYWNjZXNzaWJpbGl0eVBsdWdp
bk9iamVjdDsKKworICAgIGlmIChhdXRvIGNhY2hlID0gYXhXZWJQYWdlLmF4T2JqZWN0Q2FjaGUp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHJvb3QgPSBjYWNoZS0+cm9vdE9iamVjdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIHJvb3QtPndyYXBwZXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbmlsOwor
fQorCiAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIKIHsKKyAgICBpZiAoaXNN
YWluUnVuTG9vcCgpKQorICAgICAgICByZXR1cm4gcm9vdEFYT2JqZWN0V3JhcHBlcihzZWxmKTsK
KwogICAgIHJldHVybiBheDo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFk
PGlkPihbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPGlk
PiB7CiAgICAgICAgIGlmICghV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKICAgICAgICAgICAgIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vz
c2liaWxpdHkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448742</attachid>
            <date>2022-01-10 06:26:44 -0800</date>
            <delta_ts>2022-02-10 16:26:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234985-20220110092643.patch</filename>
            <type>text/plain</type>
            <size>7089</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3YTU2YWVhMmJhNDVk
YjQ4NTUzMmMxYmE2Y2ZkMjJhNTdiNGQ0MS4uYmRjNDQwMjYzYWVmODFkNWFlYTg2MmM5OWYxYTgz
ZTczMjgwZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTA3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFtXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBw
ZXJdaGFuZGxlIGNhbGxzIG9uIGFuZCBvZmYgdGhlIG1haW4gdGhyZWFkIHByb3Blcmx5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0OTg1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NzI3MjM4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbiBpc29sYXRlZCB0cmVlIG1vZGUsIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlIGlzIGNhbGxlZCBvbiBhbmQKKyAgICAgICAgb2ZmIHRoZSBt
YWluIHRocmVhZC4gSWYgYSBjYWxsIG9uIHRoZSBtYWluIHRocmVhZCBjb21lcyBhZnRlciBpc29s
YXRlZAorICAgICAgICB0cmVlIG1vZGUgaXMgZW5hYmxlZCwgaXQgd2lsbCByZXR1cm4gYW4gaXNv
bGF0ZWQgb2JqZWN0IGZvciB0aGUgcm9vdCBvbgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQsIHdo
aWNoIGxlYWRzIHRvIHVuZGVmaW5lZCBiZWhhdmlvci4gVGhpcyBwYXRjaCBwcm9wZXJseQorICAg
ICAgICBjaGVjayBmb3IgdGhlIHRocmVhZCB1c2luZyBpc01haW5SdW5Mb29wLCBhbmQgcmV0dXJu
cyBlaXRoZXIgYW4KKyAgICAgICAgQVhPYmplY3Qgb3IgYW4gQVhJc29sYXRlZE9iamVjdCBhcyBh
cHByb3ByaWF0ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290QVhPYmplY3QpOiBBZGRlZCB0
byByZXR1cm4gYW4gQVhPYmplY3QgZm9yCisgICAgICAgIHRoZSByb290LgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cm9vdEFYT2JqZWN0KToKKwogMjAyMi0wMS0wNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgSW5saW5lIGJsb2NrcyB0aGF0IGNvbnRhaW4gdGV4dCB3aXRo
IG1pbi13aWR0aCwgYm94LXNpemluZzogYm9yZGVyLWJveCBpbmNvcnJlY3RseSBpbmNsdWRlIHRo
ZSBib3JkZXIgaW4gd2lkdGggY2FsY3VsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDdlOGE2MDU0ZDViNmYz
NzA1ODIxNmFlNmRhNjE4NjM3MmMzMzM4ZC4uYmZjN2JlYTAzNjYyNDQ5ODNlZTg2YWRjYTI4MWY0
YWIyM2U2OWMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMi0wMS0wNyAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBbV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVy
XWhhbmRsZSBjYWxscyBvbiBhbmQgb2ZmIHRoZSBtYWluIHRocmVhZCBwcm9wZXJseS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDk4NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODcyMTc0MjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW4gaXNvbGF0ZWQgdHJlZSBtb2RlLCBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZSBpcyBjYWxsZWQgb24gYW5kCisgICAgICAgIG9mZiB0aGUgbWFp
biB0aHJlYWQuIElmIGEgY2FsbCBvbiB0aGUgbWFpbiB0aHJlYWQgY29tZXMgYWZ0ZXIgaXNvbGF0
ZWQKKyAgICAgICAgdHJlZSBtb2RlIGlzIGVuYWJsZWQsIGl0IHdpbGwgcmV0dXJuIGFuIGlzb2xh
dGVkIG9iamVjdCBmb3IgdGhlIHJvb3Qgb24KKyAgICAgICAgdGhlIG1haW4gdGhyZWFkLCB3aGlj
aCBsZWFkcyB0byB1bmRlZmluZWQgYmVoYXZpb3IuIFRoaXMgcGF0Y2ggcHJvcGVybHkKKyAgICAg
ICAgY2hlY2sgZm9yIHRoZSB0aHJlYWQgdXNpbmcgaXNNYWluUnVuTG9vcCwgYW5kIHJldHVybnMg
ZWl0aGVyIGFuCisgICAgICAgIEFYT2JqZWN0IG9yIGFuIEFYSXNvbGF0ZWRPYmplY3QgYXMgYXBw
cm9wcmlhdGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tOgorICAgICAgICAocm9vdEFYT2JqZWN0V3JhcHBlcik6
IEhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSk6CisgICAgICAgIFByb3Blcmx5
IGhhbmRsZXMgY2FsbHMgb24gYW5kIG9mZiB0aGUgbWFpbiB0aHJlYWQuCisKIDIwMjEtMTAtMzAg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
cHJvY2VzcyBzaG91bGRuJ3QgY3Jhc2ggaWYgSW1hZ2VCdWZmZXI6OmVuc3VyZUJhY2tlbmRDcmVh
dGVkKCkgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCmluZGV4IDdmYTk3NTgwNzBiOGQ4YTdjZTJmMDMzMmNiYjQyYzFlNTc4YWE4ZmMuLjc1
N2IyNGQyZWUxMTU5MTU0NzJiODk1OGVhMzA0YWZiNzlmMDUyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNzQ5LDYgKzc0OSwxMSBA
QCBBWENvcmVPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RPYmplY3QoKQogICAgIHJldHVybiBn
ZXRPckNyZWF0ZShtX2RvY3VtZW50LnZpZXcoKSk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OnJvb3RBWE9iamVjdCgpCit7CisgICAgcmV0dXJuIGdBY2Nlc3NpYmls
aXR5RW5hYmxlZCA/IGdldE9yQ3JlYXRlKG1fZG9jdW1lbnQudmlldygpKSA6IG51bGxwdHI7Cit9
CisKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogUmVmUHRyPEFYSXNv
bGF0ZWRUcmVlPiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZUlzb2xhdGVkVHJlZSgpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4
IDBmNDNkOTQzZjZjNWUwYWM1OWZlNjQ1YjRkYzAzN2QzNjk2ZDgwM2EuLjk2ODMwMTQ2ZTFjNDU1
ZWJmYTUzYmQxNjVmNmU5MzFiNTE4NDk0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNDgsMTEgKzE0OCwxMyBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgQVhPYmplY3RDYWNoZShEb2N1bWVudCYpOwogICAgIH5BWE9iamVjdENhY2hlKCk7
CiAKLSAgICAvLyBSZXR1cm5zIHRoZSByb290IG9iamVjdCBmb3IgdGhlIGVudGlyZSBkb2N1bWVu
dC4KKyAgICAvLyBSZXR1cm5zIHRoZSByb290IG9iamVjdCBmb3IgdGhlIGVudGlyZSBkb2N1bWVu
dC4gVGhlIG9iamVjdCBjYW4gYmUgZWl0aGVyIGFuIEFYT2JqZWN0IG9yIGFuIEFYSXNvbGF0ZWRP
YmplY3QuCiAgICAgV0VCQ09SRV9FWFBPUlQgQVhDb3JlT2JqZWN0KiByb290T2JqZWN0KCk7Ci0g
ICAgLy8gUmV0dXJucyB0aGUgcm9vdCBvYmplY3QgZm9yIGEgc3BlY2lmaWMgZnJhbWUuCisgICAg
Ly8gUmV0dXJucyB0aGUgcm9vdCBBWE9iamVjdC4KKyAgICBXRUJDT1JFX0VYUE9SVCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290QVhPYmplY3QoKTsKKyAgICAvLyBSZXR1cm5zIHRoZSByb290IEFY
T2JqZWN0IGZvciBhIHNwZWNpZmljIGZyYW1lLgogICAgIFdFQkNPUkVfRVhQT1JUIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHJvb3RPYmplY3RGb3JGcmFtZShGcmFtZSopOwotICAgIAorCiAgICAgLy8g
Rm9yIEFYIG9iamVjdHMgd2l0aCBlbGVtZW50cyB0aGF0IGJhY2sgdGhlbS4KICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBnZXRPckNyZWF0ZShXaWRnZXQqKTsKQEAgLTU2NCw2ICs1NjYsNyBAQCBpbmxp
bmUgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxp
dHlSb2xlKSB7IHJldHVybiBudQogaW5saW5lIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0
Q2FjaGU6OmdldE9yQ3JlYXRlKE5vZGUqKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxpbmUgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoV2lkZ2V0KikgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogaW5saW5lIEFYQ29yZU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9v
dE9iamVjdCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KK2lubGluZSBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBWE9iamVjdENhY2hlOjpyb290QVhPYmplY3QoKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxp
bmUgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdE9iamVjdEZvckZyYW1l
KEZyYW1lKikgeyByZXR1cm4gbnVsbHB0cjsgfQogaW5saW5lIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OmZvY3VzZWRPYmplY3RGb3JQYWdlKGNvbnN0IFBhZ2UqKSB7IHJldHVy
biBudWxscHRyOyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmls
aXR5KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0K
aW5kZXggNzFkYjE0ODIzNmQ4MDJhMmZkYjIzNTE5YmE3MjQ1NGExY2Q5N2VjYi4uYTc4MWIxNWRm
NjQxYmJlNDQwZDcwZDllZTNhOWZmMzljNmNmYjEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQpAQCAtODEsMTkgKzgxLDMyIEBAIG5hbWVzcGFjZSBh
eCA9IFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk7CiAKIC0gKGlkKWFjY2Vzc2liaWxpdHlSb290T2Jq
ZWN0V3JhcHBlcgogewotICAgIHJldHVybiBheDo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZy
b21NYWluVGhyZWFkPGlkPihbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
UmV0YWluUHRyPGlkPiB7CisgICAgYXV0byByb290T2JqZWN0V3JhcHBlciA9IFtdIChXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSAqYXhXZWJQYWdlLCBib29sIG1haW5UaHJlYWQpIC0+
IGlkIHsKICAgICAgICAgaWYgKCFXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQogICAgICAgICAgICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOwogCi0gICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLmdldCgpLT5tX2hhc01h
aW5GcmFtZVBsdWdpbikKLSAgICAgICAgICAgIHJldHVybiBwcm90ZWN0ZWRTZWxmLmdldCgpLmFj
Y2Vzc2liaWxpdHlQbHVnaW5PYmplY3Q7CisgICAgICAgIGlmIChheFdlYlBhZ2UtPm1faGFzTWFp
bkZyYW1lUGx1Z2luKQorICAgICAgICAgICAgcmV0dXJuIGF4V2ViUGFnZS5hY2Nlc3NpYmlsaXR5
UGx1Z2luT2JqZWN0OwogCi0gICAgICAgIGlmIChhdXRvIGNhY2hlID0gcHJvdGVjdGVkU2VsZi5n
ZXQoKS5heE9iamVjdENhY2hlKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogcm9vdCA9IGNhY2hl
LT5yb290T2JqZWN0KCkpCisgICAgICAgIGlmIChhdXRvIGNhY2hlID0gYXhXZWJQYWdlLmF4T2Jq
ZWN0Q2FjaGUpIHsKKyAgICAgICAgICAgIFdlYkNvcmU6OkFYQ29yZU9iamVjdCogcm9vdDsKKyAg
ICAgICAgICAgIGlmIChtYWluVGhyZWFkKQorICAgICAgICAgICAgICAgIHJvb3QgPSBjYWNoZS0+
cm9vdEFYT2JqZWN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcm9vdCA9
IGNhY2hlLT5yb290T2JqZWN0KCk7CisKKyAgICAgICAgICAgIGlmIChyb290KQogICAgICAgICAg
ICAgICAgIHJldHVybiByb290LT53cmFwcGVyKCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1
cm4gbmlsOworICAgIH07CisKKyAgICBpZiAoaXNNYWluUnVuTG9vcCgpKQorICAgICAgICByZXR1
cm4gcm9vdE9iamVjdFdyYXBwZXIoc2VsZiwgdHJ1ZSk7CisKKyAgICByZXR1cm4gYXg6OnJldHJp
ZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxpZD4oWyZyb290T2JqZWN0V3JhcHBl
ciwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPGlkPiB7
CisgICAgICAgIHJldHVybiByb290T2JqZWN0V3JhcHBlcihwcm90ZWN0ZWRTZWxmLmdldCgpLCBm
YWxzZSk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>