<?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>198497</bug_id>
          
          <creation_ts>2019-06-03 14:16:11 -0700</creation_ts>
          <short_desc>[Cocoa] REGRESSION(r244182): Inspector thinks CA commits can be nested</short_desc>
          <delta_ts>2019-06-06 19:04:40 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177484</see_also>
          <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>
          
          <blocked>198639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1541336</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-03 14:16:11 -0700</bug_when>
    <thetext>With r244182, flushLayers can be scheduled immediately via RenderingUpdateScheduler::scheduleCompositingLayerFlush() or timed by the display monitor. This can lead nested CA commits. This means a CA commit begins before others commits finish.

WebInspector does not expect nested commits. When a commits begin it records a &quot;willComposite&quot;. And when the composite finishes, it records a &quot;didComposite&quot;. This can be fixed by coalescing nested composite as one recorded composite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541347</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-03 14:37:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/51079158&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541348</commentid>
    <comment_count>2</comment_count>
      <attachid>371214</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-03 14:42:19 -0700</bug_when>
    <thetext>Created attachment 371214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541416</commentid>
    <comment_count>3</comment_count>
      <attachid>371235</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-03 18:18:24 -0700</bug_when>
    <thetext>Created attachment 371235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541569</commentid>
    <comment_count>4</comment_count>
      <attachid>371235</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-04 08:18:00 -0700</bug_when>
    <thetext>Comment on attachment 371235
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:-1153
&gt; -#if PLATFORM(COCOA)
&gt; -    InspectorInstrumentation::willComposite(frame());
&gt; -#endif

Doesn&apos;t iOS need this one?

&gt; Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:464
&gt; +        [CATransaction addCommitHandler:[retainedPage = makeRefPtr(&amp;m_webPage)] {
&gt; +            if (Page* corePage = retainedPage-&gt;corePage()) {
&gt; +                if (Frame* coreFrame = retainedPage-&gt;mainFrame())
&gt; +                    corePage-&gt;inspectorController().willComposite(*coreFrame);
&gt; +            }
&gt; +        } forPhase:kCATransactionPhasePreCommit];

Another way to fix this bug would be ensure that we only call addCommitHandler:forPhase:kCATransactionPhasePreCommit once per commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541606</commentid>
    <comment_count>5</comment_count>
      <attachid>371235</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-04 09:30:57 -0700</bug_when>
    <thetext>Comment on attachment 371235
Patch

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

&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:191
&gt; +        if (m_startedComposites)

Should we be iterating `m_startedComposites` times instead?
```
    for (unsigned i = 0; i &lt; m_startedComposites; ++i)
        didComposite();
```

This was first added in &lt;https://trac.webkit.org/r186133&gt; and has a pretty good explanation there.

&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:360
&gt; +    if (!m_startedComposites++)

Style: I&apos;m not sure what WebKit style &quot;mandates&quot; for a situation like this, but I&apos;d prefer it be separate.
```
    if (++m_startedComposites == 1)
```

&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:366
&gt; +    ASSERT(m_startedComposites);

I still think we should remove this `ASSERT`.  If Web Inspector connects in the middle of a composite, this would be triggered, which isn&apos;t what we want.  It&apos;s already the case that `didCompleteCurrentRecord` will early-return if there was no previous record to match.

&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:367
&gt; +    if (!--m_startedComposites)

Ditto (&gt;360).
```
    if (--m_startedComposites == 0)
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541901</commentid>
    <comment_count>6</comment_count>
      <attachid>371378</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-04 22:51:23 -0700</bug_when>
    <thetext>Created attachment 371378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541985</commentid>
    <comment_count>7</comment_count>
      <attachid>371235</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-05 08:31:11 -0700</bug_when>
    <thetext>Comment on attachment 371235
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:191
&gt;&gt; +        if (m_startedComposites)
&gt; 
&gt; Should we be iterating `m_startedComposites` times instead?
&gt; ```
&gt;     for (unsigned i = 0; i &lt; m_startedComposites; ++i)
&gt;         didComposite();
&gt; ```
&gt; 
&gt; This was first added in &lt;https://trac.webkit.org/r186133&gt; and has a pretty good explanation there.

I made the change that Simon suggested. flushLayers() will process one preCommit/postCommit handler for nested CA commits. So m_startedComposite will not be changed from being a bool.

&gt;&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:360
&gt;&gt; +    if (!m_startedComposites++)
&gt; 
&gt; Style: I&apos;m not sure what WebKit style &quot;mandates&quot; for a situation like this, but I&apos;d prefer it be separate.
&gt; ```
&gt;     if (++m_startedComposites == 1)
&gt; ```

This function will not be changed.

&gt;&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:366
&gt;&gt; +    ASSERT(m_startedComposites);
&gt; 
&gt; I still think we should remove this `ASSERT`.  If Web Inspector connects in the middle of a composite, this would be triggered, which isn&apos;t what we want.  It&apos;s already the case that `didCompleteCurrentRecord` will early-return if there was no previous record to match.

Assertion was removed.

&gt;&gt; Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp:367
&gt;&gt; +    if (!--m_startedComposites)
&gt; 
&gt; Ditto (&gt;360).
&gt; ```
&gt;     if (--m_startedComposites == 0)
&gt; ```

No need for this change anymore.

&gt;&gt; Source/WebCore/page/FrameView.cpp:-1153
&gt;&gt; -#endif
&gt; 
&gt; Doesn&apos;t iOS need this one?

Yes, you are right. Add a preCommit handler to RemoteLayerTreeDrawingArea::flushLayers() and TiledCoreAnimationDrawingArea::flushLayers(()

&gt;&gt; Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:464
&gt;&gt; +        } forPhase:kCATransactionPhasePreCommit];
&gt; 
&gt; Another way to fix this bug would be ensure that we only call addCommitHandler:forPhase:kCATransactionPhasePreCommit once per commit.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542059</commentid>
    <comment_count>8</comment_count>
      <attachid>371378</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-06-05 10:15:04 -0700</bug_when>
    <thetext>Comment on attachment 371378
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1941
&gt; +    unsigned m_pendingComposites { 0 };

This means that every page is doing unnecessary work when Web Inspector isn&apos;t open.  Unless this is (or will be) used outside of Web Inspector, I&apos;d rather this data be held by the `InspectorTimelineAgent`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542060</commentid>
    <comment_count>9</comment_count>
      <attachid>371378</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-05 10:23:29 -0700</bug_when>
    <thetext>Comment on attachment 371378
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1941
&gt;&gt; +    unsigned m_pendingComposites { 0 };
&gt; 
&gt; This means that every page is doing unnecessary work when Web Inspector isn&apos;t open.  Unless this is (or will be) used outside of Web Inspector, I&apos;d rather this data be held by the `InspectorTimelineAgent`.

The CA postCommit in TiledCoreAnimationDrawingArea::flushLayers() does more than calling didComposite(). It sends a message from the WebProcess to the UIProcess notifying it, a new painting milestone is reached. And I think we should be sending one message for nested commit as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542151</commentid>
    <comment_count>10</comment_count>
      <attachid>371378</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-05 13:43:10 -0700</bug_when>
    <thetext>Comment on attachment 371378
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:374
&gt; +    [CATransaction addCommitHandler:[retainedPage = makeRefPtr(&amp;m_webPage)] {
&gt; +        if (retainedPage-&gt;incrementPendingComposites() != 1)
&gt; +            return;
&gt; +        if (Page* corePage = retainedPage-&gt;corePage()) {
&gt; +            if (Frame* coreFrame = retainedPage-&gt;mainFrame())
&gt; +                corePage-&gt;inspectorController().willComposite(*coreFrame);
&gt; +        }
&gt; +    } forPhase:kCATransactionPhasePreCommit];
&gt; +
&gt; +    [CATransaction addCommitHandler:[retainedPage = makeRefPtr(&amp;m_webPage)] {
&gt; +        if (retainedPage-&gt;decrementPendingComposites())
&gt; +            return;
&gt; +        if (Page* corePage = retainedPage-&gt;corePage()) {
&gt; +            if (Frame* coreFrame = retainedPage-&gt;mainFrame())
&gt;                  corePage-&gt;inspectorController().didComposite(*coreFrame);
&gt;          }

Why not just have a bit for &quot;firstFlushAfterCommit&quot;, only call the addCommitHandlers when the bit is not set, and clear the bit in the post-commit handler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542185</commentid>
    <comment_count>11</comment_count>
      <attachid>371441</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-05 15:02:37 -0700</bug_when>
    <thetext>Created attachment 371441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542190</commentid>
    <comment_count>12</comment_count>
      <attachid>371441</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-05 15:12:05 -0700</bug_when>
    <thetext>Comment on attachment 371441
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:331
&gt; +    if (m_webPage.firstFlushAfterCommit())

Why not store the bit on RemoteLayerTreeDrawingArea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542198</commentid>
    <comment_count>13</comment_count>
      <attachid>371441</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-05 15:49:40 -0700</bug_when>
    <thetext>Comment on attachment 371441
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:331
&gt;&gt; +    if (m_webPage.firstFlushAfterCommit())
&gt; 
&gt; Why not store the bit on RemoteLayerTreeDrawingArea?

Because this will require it to be stored on TiledCoreAnimationDrawingArea as well. If it is stored on the DrawingArea, the DrawingArea has to be retained and passed along with the WebPage to the postCommit handler.

   [CATransaction addCommitHandler:[retainedPage = makeRefPtr(&amp;m_webPage), retainedDrawingArea = makeRefPtr(this)] {
        if (Page* corePage = retainedPage-&gt;corePage()) {
            if (Frame* coreFrame = retainedPage-&gt;mainFrame())
                corePage-&gt;inspectorController().didComposite(*coreFrame);
        }
        retainedDrawingArea-&gt;setFirstFlushAfterCommit(false);
    } forPhase:kCATransactionPhasePostCommit];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542293</commentid>
    <comment_count>14</comment_count>
      <attachid>371441</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-05 20:39:14 -0700</bug_when>
    <thetext>Comment on attachment 371441
Patch

Clearing flags on attachment: 371441

Committed r246142: &lt;https://trac.webkit.org/changeset/246142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542294</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-05 20:39:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371214</attachid>
            <date>2019-06-03 14:42:19 -0700</date>
            <delta_ts>2019-06-03 18:18:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198497-20190603144218.patch</filename>
            <type>text/plain</type>
            <size>8194</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg5NTVjZjU3ZDllMjI0
MDM1YzU2NThjMDIwYjEzNTZlNGI2YTBjNi4uY2Y1ZTJhODBmODMzNzRhMmI2MmE0NjM1MzEzOTRi
YmNiMDk1MWJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA2LTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBSRUdSRVNTSU9OKHIyNDQxODIpOiBJbnNwZWN0b3IgdGhpbmtzIENBIGNvbW1pdHMgY2FuIGJl
IG5lc3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViSW5zcGVjdGVyIHNob3VsZCBjb2FsZXNjZSBuZXN0ZWQgY29tcG9zaXRlcyBhcyBvbmUgcmVj
b3JkZWQgY29tcG9zaXRlLgorICAgICAgICBUaGlzIGNhbiBiZSBkb25lIGJ5IG1ha2luZyBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjptX3N0YXJ0ZWRDb21wb3NpdGUKKyAgICAgICAgdW5zaWduZWQg
aW5zdGVhZCBvZiBib29sLiBXaGVuIGl0cyB2YWx1ZSBpcyB6ZXJvLCBwdXNoQ3VycmVudFJlY29y
ZCguLi4sCisgICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlLCAuLi4pIGlzIGNh
bGxlZC4gQW5kIHdoZW4gaXQgYmVjb21lcyB6ZXJvLAorICAgICAgICBjYWxsIGRpZENvbXBsZXRl
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZSkuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjp3aWxsQ29tcG9zaXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjppbnRlcm5hbFN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbENvbXBvc2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRDb21wb3NpdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKToKKyAgICAgICAgTW92ZSB0aGUgY2FsbCB0byAid2lsbENvbXBvc2l0ZSgpIiB0
byB0aGUgcHJlQ29tbWl0IGhhbmRsZXIgaW4gCisgICAgICAgIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpmbHVzaExheWVycygpLgorCiAyMDE5LTA1LTIyICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTdWJzZWxlY3RvcnMgbm90IHNlYXJjaGVkIHdo
ZW4gZGV0ZXJtaW5pbmcgcHJvcGVydHkgd2hpdGVsaXN0IGZvciBzZWxlY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBhYWY1OTI1OTk2MDRlNDU3MWM5MzYzNDBkYTFmM2UyNWZjMjAwYTVhLi41MDc0NmU3YjZjYTIz
ZTZiM2YyODM2Mjc3NzdhNjE4OWU3MzAwMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE5LTA2LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBSRUdSRVNTSU9OKHIyNDQxODIpOiBJbnNwZWN0b3IgdGhpbmtzIENB
IGNvbW1pdHMgY2FuIGJlIG5lc3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2FsbCAnd2lsbENvbXBvc2l0ZSgpJyBmcm9tIHRoZSBDQSBwcmVDb21t
aXQgaGFuZGxlciBzaW1pbGFyIHRvIHRoZSBjYWxsCisgICAgICAgIHRvICdkaWRDb21wb3NpdGUo
KScgaW4gdGhlIENBIHBvc3RDb21taXQgaGFuZGxlci4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6CisKIDIw
MTktMDUtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjQ1MTQ4KTogUmVtb3ZpbmcgaW5wdXRtb2RlPSJub25lIiBkb2VzIG5vdCBicmlu
ZyB1cCBzb2Z0d2FyZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDcxYTA3NjEyZTc1ODFhY2ZjNWM0NjMyNGIwM2M2
ZmQzOTIzM2E1NjcuLmUwNjkzYTg1MGE3ZDhlMDY2NThhYjEwMmIxNmEyZmQwODFhNzBlNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTUwNyw2ICs1MDcsMTEgQEAgSlNDOjpWTSYgSW5zcGVjdG9yQ29udHJvbGxlcjo6dm0oKQog
ICAgIHJldHVybiBjb21tb25WTSgpOwogfQogCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxDb21wb3NpdGUoRnJhbWUmIGZyYW1lKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbENvbXBvc2l0ZShmcmFtZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkQ29tcG9zaXRlKEZyYW1lJiBmcmFtZSkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENvbXBvc2l0ZShmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBhNTExZWM1YmIxYzY3YzBhMWJiMzE0NTczZWU3ZGFm
YjJhZDc0ZDc0Li40YmVhNDMyNjNkYTcwMzdmMTg4NjU5NjYyZGE4ZGJmNmQ4MzE1OTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTk3
LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbmRpY2F0
aW5nKGJvb2wpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsQ29tcG9zaXRlKEZyYW1l
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDb21wb3NpdGUoRnJhbWUmKTsKIAogICAg
IGJvb2wgaXNVbmRlclRlc3QoKSBjb25zdCB7IHJldHVybiBtX2lzVW5kZXJUZXN0OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcAppbmRleCBhMWQzZDkxNDRhNTIxMmNkOTRlNzkzNDUxMDljMmRlN2RmZmI4
NDM2Li5lMjA4OGE3ZWM4ZWZkZjY1OGI4NjU0M2RmODBlYjFkYTZiYzNiZTgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmludGVybmFsU3RhcnQoY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAgICAgICAg
aWYgKG1fcnVuTG9vcE5lc3RpbmdMZXZlbCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBpZiAobV9zdGFydGVkQ29tcG9zaXRlKQorICAgICAgICBpZiAobV9zdGFydGVkQ29tcG9zaXRl
cykKICAgICAgICAgICAgIGRpZENvbXBvc2l0ZSgpOwogCiAgICAgICAgIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OlJlbmRlcmluZ0ZyYW1lKTsKQEAgLTIyOSw3
ICsyMjksNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmludGVybmFsU3RvcCgpCiAg
ICAgY2xlYXJSZWNvcmRTdGFjaygpOwogCiAgICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9z
dGFydGVkQ29tcG9zaXRlID0gZmFsc2U7CisgICAgbV9zdGFydGVkQ29tcG9zaXRlcyA9IDA7CiAg
ICAgbV9hdXRvQ2FwdHVyZVBoYXNlID0gQXV0b0NhcHR1cmVQaGFzZTo6Tm9uZTsKIAogICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyLT5yZWNvcmRpbmdTdG9wcGVkKHRpbWVzdGFtcCgpKTsKQEAgLTM1
NywxNiArMzU3LDE1IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjYWxjdWxh
dGVTdHlsZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENvbXBvc2l0ZShG
cmFtZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKCFtX3N0YXJ0ZWRDb21wb3NpdGUpOwotICAgIHB1
c2hDdXJyZW50UmVjb3JkKEpTT046Ok9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlw
ZTo6Q29tcG9zaXRlLCB0cnVlLCAmZnJhbWUpOwotICAgIG1fc3RhcnRlZENvbXBvc2l0ZSA9IHRy
dWU7CisgICAgaWYgKCFtX3N0YXJ0ZWRDb21wb3NpdGVzKyspCisgICAgICAgIHB1c2hDdXJyZW50
UmVjb3JkKEpTT046Ok9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9z
aXRlLCB0cnVlLCAmZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENvbXBvc2l0ZSgpCiB7Ci0gICAgQVNTRVJUKG1fc3RhcnRlZENvbXBvc2l0ZSk7Ci0gICAgZGlk
Q29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlKTsKLSAg
ICBtX3N0YXJ0ZWRDb21wb3NpdGUgPSBmYWxzZTsKKyAgICBBU1NFUlQobV9zdGFydGVkQ29tcG9z
aXRlcyk7CisgICAgaWYgKCEtLW1fc3RhcnRlZENvbXBvc2l0ZXMpCisgICAgICAgIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFBhaW50KEZyYW1lJiBmcmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKaW5kZXggYWFjMzhmZjkyMjRmNzVjZmQ3ODZlODg2MzQ5MGEwYWY4OGVjOGZmZS4u
NDZhODdjNDI3ZWY5MDhmMGNkNmY2YTBkNDc3N2IzNzYyNWY5ZDcxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmgKQEAgLTIyNyw3ICsyMjcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fZnJhbWVTdG9wT2JzZXJ2ZXI7CiAjZW5kaWYKICAgICBp
bnQgbV9ydW5Mb29wTmVzdGluZ0xldmVsIHsgMCB9OwotICAgIGJvb2wgbV9zdGFydGVkQ29tcG9z
aXRlIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX3N0YXJ0ZWRDb21wb3NpdGVzIHsgMCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IGZjZGVmMGNjZTJmZmVmNzVhYmRmZDM5Zjk3NmYzZjY0YTNmMjk0MmUuLmU0YTQ0MDE3ZWNi
YTNmYmNjYmQ5OWMzNmUwZTE4ZDdkNWRlMTk4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTExNDcsMTAgKzExNDcsNiBAQCBib29sIEZyYW1lVmlldzo6aXNFbmNsb3NlZEluQ29t
cG9zaXRpbmdMYXllcigpIGNvbnN0CiAKIGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKQogewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZShmcmFtZSgpKTsKLSNlbmRpZgot
CiAgICAgYm9vbCBhbGxGcmFtZXNGbHVzaGVkID0gZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0ZyYW1lKGZyYW1lKCkpOwogCiAgICAgZm9yIChGcmFtZSogY2hpbGQgPSBmcmFtZSgpLnRyZWUo
KS5maXJzdFJlbmRlcmVkQ2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS50cmF2
ZXJzZU5leHRSZW5kZXJlZChtX2ZyYW1lLnB0cigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDgwOTVlNjdkOGY2ZGZmMjFiYWM2YTFlMDQ3MDZiYjFh
YWNmYWYwN2UuLjhhZTZkMzYwNjMyNTdjMTk2NjIzOTE5NzE5YjEzNzYyNTdmMDMxOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTQ1NSw4ICs0NTUsMTUg
QEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoRmx1c2hU
eXBlIGZsdXNoVHlwZSkKICAgICAgICAgaWYgKG1fdmlld092ZXJsYXlSb290TGF5ZXIpCiAgICAg
ICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodmlz
aWJsZVJlY3QpOwogCi0gICAgICAgIFJlZlB0cjxXZWJQYWdlPiByZXRhaW5lZFBhZ2UgPSAmbV93
ZWJQYWdlOwotICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOltyZXRhaW5l
ZFBhZ2VdIHsKKyAgICAgICAgCisgICAgICAgIFtDQVRyYW5zYWN0aW9uIGFkZENvbW1pdEhhbmRs
ZXI6W3JldGFpbmVkUGFnZSA9IG1ha2VSZWZQdHIoJm1fd2ViUGFnZSldIHsKKyAgICAgICAgICAg
IGlmIChQYWdlKiBjb3JlUGFnZSA9IHJldGFpbmVkUGFnZS0+Y29yZVBhZ2UoKSkgeworICAgICAg
ICAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gcmV0YWluZWRQYWdlLT5tYWluRnJhbWUo
KSkKKyAgICAgICAgICAgICAgICAgICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS53
aWxsQ29tcG9zaXRlKCpjb3JlRnJhbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZvclBo
YXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQcmVDb21taXRdOworCisgICAgICAgIFtDQVRyYW5zYWN0
aW9uIGFkZENvbW1pdEhhbmRsZXI6W3JldGFpbmVkUGFnZSA9IG1ha2VSZWZQdHIoJm1fd2ViUGFn
ZSldIHsKICAgICAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9IHJldGFpbmVkUGFnZS0+Y29y
ZVBhZ2UoKSkgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gcmV0YWlu
ZWRQYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgICAgICAgICAgICAgY29yZVBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5kaWRDb21wb3NpdGUoKmNvcmVGcmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371235</attachid>
            <date>2019-06-03 18:18:24 -0700</date>
            <delta_ts>2019-06-04 22:51:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198497-20190603181823.patch</filename>
            <type>text/plain</type>
            <size>7655</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NjA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA2LTAzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
RUdSRVNTSU9OKHIyNDQxODIpOiBJbnNwZWN0b3IgdGhpbmtzIENBIGNvbW1pdHMgY2FuIGJlIG5l
c3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
SW5zcGVjdGVyIHNob3VsZCBjb2FsZXNjZSBuZXN0ZWQgY29tcG9zaXRlcyBhcyBvbmUgcmVjb3Jk
ZWQgY29tcG9zaXRlLgorICAgICAgICBUaGlzIGNhbiBiZSBkb25lIGJ5IG1ha2luZyBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjptX3N0YXJ0ZWRDb21wb3NpdGUKKyAgICAgICAgdW5zaWduZWQgaW5z
dGVhZCBvZiBib29sLiBXaGVuIGl0cyB2YWx1ZSBpcyB6ZXJvLCBwdXNoQ3VycmVudFJlY29yZCgu
Li4sCisgICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZTo6Q29tcG9zaXRlLCAuLi4pIGlzIGNhbGxl
ZC4gQW5kIHdoZW4gaXQgYmVjb21lcyB6ZXJvLAorICAgICAgICBjYWxsIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZSkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjp3aWxsQ29tcG9zaXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjppbnRlcm5hbFN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbENvbXBvc2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRDb21wb3NpdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3Vi
ZnJhbWVzKToKKyAgICAgICAgTW92ZSB0aGUgY2FsbCB0byAid2lsbENvbXBvc2l0ZSgpIiB0byB0
aGUgcHJlQ29tbWl0IGhhbmRsZXIgaW4gCisgICAgICAgIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpmbHVzaExheWVycygpLgorCiAyMDE5LTA2LTAzICBSb2JpbiBNb3Jpc3NldCAgPHJt
b3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBQYXJzaW5nIGFuZCBsZXhpbmcg
dGhlIHN0YW5kYXJkIGxpYnJhcnkgaXMgc2xvdwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjQ2MDUyKQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MDcsNiArNTA3LDExIEBAIEpTQzo6Vk0mIEluc3BlY3RvckNvbnRyb2xsZXI6
OnZtKCkKICAgICByZXR1cm4gY29tbW9uVk0oKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjp3aWxsQ29tcG9zaXRlKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxDb21wb3NpdGUoZnJhbWUpOworfQorCiB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENvbXBvc2l0ZShGcmFtZSYgZnJhbWUpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDb21wb3NpdGUoZnJhbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCShyZXZpc2lvbiAyNDYwNTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0SW5kaWNhdGluZyhib29sKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbENvbXBv
c2l0ZShGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ29tcG9zaXRlKEZyYW1l
Jik7CiAKICAgICBib29sIGlzVW5kZXJUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1VuZGVyVGVz
dDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCShyZXZpc2lvbiAyNDYwNTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjppbnRlcm5hbFN0YQogICAgICAgICBpZiAobV9ydW5Mb29wTmVzdGluZ0xldmVsKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChtX3N0YXJ0ZWRDb21wb3NpdGUpCisgICAg
ICAgIGlmIChtX3N0YXJ0ZWRDb21wb3NpdGVzKQogICAgICAgICAgICAgZGlkQ29tcG9zaXRlKCk7
CiAKICAgICAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZTo6
UmVuZGVyaW5nRnJhbWUpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6aW50ZXJuYWxTdG8KICAgICBjbGVhclJlY29yZFN0YWNrKCk7CiAKICAgICBtX2Vu
YWJsZWQgPSBmYWxzZTsKLSAgICBtX3N0YXJ0ZWRDb21wb3NpdGUgPSBmYWxzZTsKKyAgICBtX3N0
YXJ0ZWRDb21wb3NpdGVzID0gMDsKICAgICBtX2F1dG9DYXB0dXJlUGhhc2UgPSBBdXRvQ2FwdHVy
ZVBoYXNlOjpOb25lOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnJlY29yZGluZ1N0b3Bw
ZWQodGltZXN0YW1wKCkpOwpAQCAtMzU3LDE2ICszNTcsMTUgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRSZWNhbGN1bAogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxDb21wb3NpdGUoRnJhbWUmIGZyYW1lKQogewotICAgIEFTU0VSVCghbV9zdGFydGVkQ29tcG9z
aXRlKTsKLSAgICBwdXNoQ3VycmVudFJlY29yZChKU09OOjpPYmplY3Q6OmNyZWF0ZSgpLCBUaW1l
bGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZSwgdHJ1ZSwgJmZyYW1lKTsKLSAgICBtX3N0YXJ0ZWRD
b21wb3NpdGUgPSB0cnVlOworICAgIGlmICghbV9zdGFydGVkQ29tcG9zaXRlcysrKQorICAgICAg
ICBwdXNoQ3VycmVudFJlY29yZChKU09OOjpPYmplY3Q6OmNyZWF0ZSgpLCBUaW1lbGluZVJlY29y
ZFR5cGU6OkNvbXBvc2l0ZSwgdHJ1ZSwgJmZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRDb21wb3NpdGUoKQogewotICAgIEFTU0VSVChtX3N0YXJ0ZWRDb21wb3Np
dGUpOwotICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkNv
bXBvc2l0ZSk7Ci0gICAgbV9zdGFydGVkQ29tcG9zaXRlID0gZmFsc2U7CisgICAgQVNTRVJUKG1f
c3RhcnRlZENvbXBvc2l0ZXMpOworICAgIGlmICghLS1tX3N0YXJ0ZWRDb21wb3NpdGVzKQorICAg
ICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpDb21wb3Np
dGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludChGcmFtZSYg
ZnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAkocmV2aXNpb24gMjQ2MDUyKQorKysgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyNyw3ICsyMjcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fZnJhbWVTdG9wT2JzZXJ2ZXI7CiAjZW5kaWYK
ICAgICBpbnQgbV9ydW5Mb29wTmVzdGluZ0xldmVsIHsgMCB9OwotICAgIGJvb2wgbV9zdGFydGVk
Q29tcG9zaXRlIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX3N0YXJ0ZWRDb21wb3NpdGVzIHsg
MCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAkocmV2aXNpb24gMjQ2MDUyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQ4LDEwICsxMTQ4LDYgQEAgYm9vbCBGcmFt
ZVZpZXc6OmlzRW5jbG9zZWRJbkNvbXBvc2l0aW5nTAogCiBib29sIEZyYW1lVmlldzo6Zmx1c2hD
b21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkKIHsKLSNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDb21wb3NpdGUoZnJhbWUoKSk7
Ci0jZW5kaWYKLQogICAgIGJvb2wgYWxsRnJhbWVzRmx1c2hlZCA9IGZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNGcmFtZShmcmFtZSgpKTsKIAogICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJh
bWUoKS50cmVlKCkuZmlyc3RSZW5kZXJlZENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50
cmVlKCkudHJhdmVyc2VOZXh0UmVuZGVyZWQobV9mcmFtZS5wdHIoKSkpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDYwNTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA2LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
Ym91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBSRUdSRVNTSU9OKHIyNDQx
ODIpOiBJbnNwZWN0b3IgdGhpbmtzIENBIGNvbW1pdHMgY2FuIGJlIG5lc3RlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NDk3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCAnd2lsbENvbXBvc2l0
ZSgpJyBmcm9tIHRoZSBDQSBwcmVDb21taXQgaGFuZGxlciBzaW1pbGFyIHRvIHRoZSBjYWxsCisg
ICAgICAgIHRvICdkaWRDb21wb3NpdGUoKScgaW4gdGhlIENBIHBvc3RDb21taXQgaGFuZGxlci4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpmbHVzaExheWVycyk6CisKIDIwMTktMDYtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFuIGludGVybmFsIHN3aXRjaCB0
byB0dXJuIGlkZW1wb3RlbnQgdGV4dCBhdXRvc2l6aW5nIGFuZCB2aWV3cG9ydCBydWxlcyBvZmYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0JKHJldmlzaW9u
IDI0NjA1MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDU1LDggKzQ1NSwx
NSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzCiAgICAgICAgIGlm
IChtX3ZpZXdPdmVybGF5Um9vdExheWVyKQogICAgICAgICAgICAgbV92aWV3T3ZlcmxheVJvb3RM
YXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHZpc2libGVSZWN0KTsKIAotICAgICAgICBSZWZQ
dHI8V2ViUGFnZT4gcmV0YWluZWRQYWdlID0gJm1fd2ViUGFnZTsKLSAgICAgICAgW0NBVHJhbnNh
Y3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbcmV0YWluZWRQYWdlXSB7CisgICAgICAgIAorICAgICAg
ICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOltyZXRhaW5lZFBhZ2UgPSBtYWtlUmVm
UHRyKCZtX3dlYlBhZ2UpXSB7CisgICAgICAgICAgICBpZiAoUGFnZSogY29yZVBhZ2UgPSByZXRh
aW5lZFBhZ2UtPmNvcmVQYWdlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVG
cmFtZSA9IHJldGFpbmVkUGFnZS0+bWFpbkZyYW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
cmVQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkud2lsbENvbXBvc2l0ZSgqY29yZUZyYW1lKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmb3JQaGFzZTprQ0FUcmFuc2FjdGlvblBoYXNlUHJl
Q29tbWl0XTsKKworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOltyZXRh
aW5lZFBhZ2UgPSBtYWtlUmVmUHRyKCZtX3dlYlBhZ2UpXSB7CiAgICAgICAgICAgICBpZiAoUGFn
ZSogY29yZVBhZ2UgPSByZXRhaW5lZFBhZ2UtPmNvcmVQYWdlKCkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IHJldGFpbmVkUGFnZS0+bWFpbkZyYW1lKCkpCiAgICAg
ICAgICAgICAgICAgICAgIGNvcmVQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlkQ29tcG9z
aXRlKCpjb3JlRnJhbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371378</attachid>
            <date>2019-06-04 22:51:23 -0700</date>
            <delta_ts>2019-06-05 15:02:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198497-20190604225123.patch</filename>
            <type>text/plain</type>
            <size>9637</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U5N2QxZDhkZmI5ZDNk
OWMwY2RiOWUwMzFmMmIwNzM5MDVjNjU5NC4uZTlkMmVhMjVkMDllNTQ5MjJiMGY4MGI3NTY2NDU4
ZjRjYzVhN2RhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA2LTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBSRUdSRVNTSU9OKHIyNDQxODIpOiBJbnNwZWN0b3IgdGhpbmtzIENBIGNvbW1pdHMgY2FuIGJl
IG5lc3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViSW5zcGVjdGVyIHNob3VsZCBjb2FsZXNjZSBuZXN0ZWQgY29tcG9zaXRlcyBhcyBvbmUgcmVj
b3JkZWQgY29tcG9zaXRlLgorICAgICAgICBUaGlzIGNhbiBiZSBkb25lIGJ5IGVuc3VyaW5nIHRo
YXQgd2Ugb25seSBwcm9jZXNzIENBIHByZUNvbW1pdCBhbmQgcG9zdENvbW1pdAorICAgICAgICBv
bmNlIHBlciBjb21taXQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsQ29tcG9z
aXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAg
ICBFeHBvcnQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbENvbXBvc2l0ZSgpIGZyb20gV2ViQ29y
ZS4gVGhlIGdvYWwgaXMgdG8KKyAgICAgICAgY2FsbCB3aWxsQ29tcG9zaXRlKCkvZGlkQ29tcG9z
aXRlKCkgZnJvbSBDQSBwcmVDb21taXQgYW5kIHBvc3RDb21taXQKKyAgICAgICAgaGFuZGxlcnMg
aW4gZmx1c2hMYXllcnMoKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRDb21wb3NpdGUpOgorICAgICAgICBVbnJlbGF0ZWQgY2hhbmdlOiB3ZSBzaG91bGQg
bm90IGFzc2VydCB0aGF0IHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEKKyAgICAgICAgY29tcG9z
aXRlLiBXZWIgSW5zcGVjdG9yIG1heSBjb25uZWN0IGluIHRoZSBtaWRkbGUgb2YgYSBjb21wb3Np
dGUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcyk6CisgICAg
ICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxDb21wb3NpdGUoKSB3aWxsIGJlIGNhbGxlZCBm
b3JtIENBIHByZUNvbW1pdAorICAgICAgICBoYW5kbGVyIG9mIGZsdXNoTGF5ZXJzKCkuCisKIDIw
MTktMDYtMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJRkNdIERlY291cGxlIGZsb2F0IHBsYWNlbWVudCBhbmQgbGluZSBzaHJpbmtpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNGMxZWVmNDEzMmRkZWEyNmFjNjcyNWQ5MjYzODdmODIxNDQ2YmFlZS4uZDZmZjE0ODhh
ODQwM2IzZGNlODc4MmNhZDE0Yjc5YjgzYjI0NGIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxOS0wNi0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gUkVHUkVTU0lPTihyMjQ0MTgyKTogSW5zcGVjdG9yIHRoaW5r
cyBDQSBjb21taXRzIGNhbiBiZSBuZXN0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5ODQ5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENhbGwgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbENvbXBvc2l0
ZSgpIGZyb20gdGhlIENBIHByZUNvbW1pdCBoYW5kbGVyCisgICAgICAgIHNpbWlsYXIgdG8gdGhl
IGNhbGwgdG8gSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tcG9zaXRlKCkgaW4gdGhlIENBCisg
ICAgICAgIHBvc3RDb21taXQgaGFuZGxlci4gRW5zdXJlIHRoZXNlIGNhbGxzIHdpbGwgYmUgb25j
ZSBmb3IgbmVzdGVkIGNvbW1pdHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmluY3JlbWVudFBlbmRpbmdDb21wb3NpdGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZGVjcmVtZW50UGVuZGluZ0NvbXBvc2l0ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6CisKIDIwMTktMDYt
MDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBMYXppbHkgY29u
c3RydWN0IHRoZSBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDcxYTA3NjEyZTc1ODFh
Y2ZjNWM0NjMyNGIwM2M2ZmQzOTIzM2E1NjcuLmUwNjkzYTg1MGE3ZDhlMDY2NThhYjEwMmIxNmEy
ZmQwODFhNzBlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKQEAgLTUwNyw2ICs1MDcsMTEgQEAgSlNDOjpWTSYgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6dm0oKQogICAgIHJldHVybiBjb21tb25WTSgpOwogfQogCit2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OndpbGxDb21wb3NpdGUoRnJhbWUmIGZyYW1lKQoreworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZShmcmFtZSk7Cit9CisKIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkQ29tcG9zaXRlKEZyYW1lJiBmcmFtZSkKIHsKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENvbXBvc2l0ZShmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBhNTExZWM1YmIxYzY3YzBh
MWJiMzE0NTczZWU3ZGFmYjJhZDc0ZDc0Li40YmVhNDMyNjNkYTcwMzdmMTg4NjU5NjYyZGE4ZGJm
NmQ4MzE1OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmgKQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxs
Q29tcG9zaXRlKEZyYW1lJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDb21wb3NpdGUo
RnJhbWUmKTsKIAogICAgIGJvb2wgaXNVbmRlclRlc3QoKSBjb25zdCB7IHJldHVybiBtX2lzVW5k
ZXJUZXN0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhMWQzZDkxNDRhNTIxMmNkOTRlNzkz
NDUxMDljMmRlN2RmZmI4NDM2Li5mNjM2ODNmYTM5MjZiM2M3NWVmMTk2MmVhYmYxNjkxZjU1ZTEw
YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTM2NCw3ICszNjQsNiBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDb21wb3NpdGUoRnJhbWUmIGZyYW1lKQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBvc2l0ZSgpCiB7Ci0gICAgQVNTRVJUKG1fc3Rh
cnRlZENvbXBvc2l0ZSk7CiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkVHlwZTo6Q29tcG9zaXRlKTsKICAgICBtX3N0YXJ0ZWRDb21wb3NpdGUgPSBmYWxzZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxMjBmMTJkZjA3NDFhNTMzZDMwOTBmOTVh
NjIxYTZlNWQ0NzMzYzBkLi5hMWJiNDk0ZTJlYmUzOTRjM2RjMzU1MjRiMGQ2NjNmMWYxODgyNzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMTQ4LDEwICsxMTQ4LDYgQEAgYm9v
bCBGcmFtZVZpZXc6OmlzRW5jbG9zZWRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogCiBib29s
IEZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkKIHsK
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxD
b21wb3NpdGUoZnJhbWUoKSk7Ci0jZW5kaWYKLQogICAgIGJvb2wgYWxsRnJhbWVzRmx1c2hlZCA9
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNGcmFtZShmcmFtZSgpKTsKIAogICAgIGZvciAo
RnJhbWUqIGNoaWxkID0gZnJhbWUoKS50cmVlKCkuZmlyc3RSZW5kZXJlZENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT50cmVlKCkudHJhdmVyc2VOZXh0UmVuZGVyZWQobV9mcmFtZS5wdHIo
KSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5tbQppbmRleCBiMjkxZGYwYjdkZmRmNzkzOWU3ZGFhZTcyMzQyMDI2NWRiMTljMzYzLi5k
OWFlMjcyZjE4YzNjODEyM2JhNzg5ZDBmODg0YTFhMDU5ZWRhY2E4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0zNTYsMTAg
KzM1NiwyMCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygp
CiAgICAgaWYgKG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHZpc2libGVSZWN0
LmludGVyc2VjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOwogCi0gICAgUmVm
UHRyPFdlYlBhZ2U+IHByb3RlY3RlZFdlYlBhZ2UgPSAmbV93ZWJQYWdlOwotICAgIFtDQVRyYW5z
YWN0aW9uIGFkZENvbW1pdEhhbmRsZXI6W3Byb3RlY3RlZFdlYlBhZ2VdIHsKLSAgICAgICAgaWYg
KFBhZ2UqIGNvcmVQYWdlID0gcHJvdGVjdGVkV2ViUGFnZS0+Y29yZVBhZ2UoKSkgewotICAgICAg
ICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBwcm90ZWN0ZWRXZWJQYWdlLT5tYWluRnJhbWUo
KSkKKyAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOltyZXRhaW5lZFBhZ2UgPSBt
YWtlUmVmUHRyKCZtX3dlYlBhZ2UpXSB7CisgICAgICAgIGlmIChyZXRhaW5lZFBhZ2UtPmluY3Jl
bWVudFBlbmRpbmdDb21wb3NpdGVzKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgaWYgKFBhZ2UqIGNvcmVQYWdlID0gcmV0YWluZWRQYWdlLT5jb3JlUGFnZSgpKSB7CisgICAg
ICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IHJldGFpbmVkUGFnZS0+bWFpbkZyYW1lKCkp
CisgICAgICAgICAgICAgICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS53aWxsQ29t
cG9zaXRlKCpjb3JlRnJhbWUpOworICAgICAgICB9CisgICAgfSBmb3JQaGFzZTprQ0FUcmFuc2Fj
dGlvblBoYXNlUHJlQ29tbWl0XTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGFkZENvbW1pdEhhbmRs
ZXI6W3JldGFpbmVkUGFnZSA9IG1ha2VSZWZQdHIoJm1fd2ViUGFnZSldIHsKKyAgICAgICAgaWYg
KHJldGFpbmVkUGFnZS0+ZGVjcmVtZW50UGVuZGluZ0NvbXBvc2l0ZXMoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgaWYgKFBhZ2UqIGNvcmVQYWdlID0gcmV0YWluZWRQYWdlLT5jb3Jl
UGFnZSgpKSB7CisgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IHJldGFpbmVkUGFn
ZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS5kaWRDb21wb3NpdGUoKmNvcmVGcmFtZSk7CiAgICAgICAgIH0KICAgICB9IGZvclBo
YXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMmIyNGMyODMzNDM3ZDg5NzBkYjhjMmI0MmQ4
NDNhYjI5NmViNzVmLi45OWY2NmRiYTk2N2E4Mzk3NzQwZDVjMWU5ODQzYzk1MDllMjlkMzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjA2LDYg
KzEyMDYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VySXNJbnRlcmFjdGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlcklzSW50ZXJhY3Rpbmc7IH0KICAgICB2b2lkIHNldFVzZXJJc0ludGVyYWN0
aW5nKGJvb2wgdXNlcklzSW50ZXJhY3RpbmcpIHsgbV91c2VySXNJbnRlcmFjdGluZyA9IHVzZXJJ
c0ludGVyYWN0aW5nOyB9CiAKKyAgICB1bnNpZ25lZCBpbmNyZW1lbnRQZW5kaW5nQ29tcG9zaXRl
cygpIHsgcmV0dXJuICsrbV9wZW5kaW5nQ29tcG9zaXRlczsgfQorICAgIHVuc2lnbmVkIGRlY3Jl
bWVudFBlbmRpbmdDb21wb3NpdGVzKCkgeyByZXR1cm4gLS1tX3BlbmRpbmdDb21wb3NpdGVzOyB9
CisgICAgCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAgLTE5MzUsNiArMTkzOCw3IEBAIHByaXZh
dGU6CiAgICAgT3B0aW9uU2V0PExheWVyVHJlZUZyZWV6ZVJlYXNvbj4gbV9sYXllclRyZWVGcmVl
emVSZWFzb25zOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X25lZWRzRm9udEF0dHJpYnV0ZXMgeyBmYWxzZSB9OworICAgIHVuc2lnbmVkIG1fcGVuZGluZ0Nv
bXBvc2l0ZXMgeyAwIH07CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2Vha1B0cjxSZW1vdGVP
YmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDgwOTVlNjdkOGY2ZGZmMjFiYWM2
YTFlMDQ3MDZiYjFhYWNmYWYwN2UuLjJkMjNkM2NlMjhiNjUxMjAzY2JlYmNlNzc4MzRhYTExODU3
MGM4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTQ1
NSw4ICs0NTUsMTkgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMoRmx1c2hUeXBlIGZsdXNoVHlwZSkKICAgICAgICAgaWYgKG1fdmlld092ZXJsYXlSb290
TGF5ZXIpCiAgICAgICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGUodmlzaWJsZVJlY3QpOwogCi0gICAgICAgIFJlZlB0cjxXZWJQYWdlPiByZXRhaW5l
ZFBhZ2UgPSAmbV93ZWJQYWdlOwotICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5k
bGVyOltyZXRhaW5lZFBhZ2VdIHsKKyAgICAgICAgCisgICAgICAgIFtDQVRyYW5zYWN0aW9uIGFk
ZENvbW1pdEhhbmRsZXI6W3JldGFpbmVkUGFnZSA9IG1ha2VSZWZQdHIoJm1fd2ViUGFnZSldIHsK
KyAgICAgICAgICAgIGlmIChyZXRhaW5lZFBhZ2UtPmluY3JlbWVudFBlbmRpbmdDb21wb3NpdGVz
KCkgIT0gMSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAoUGFnZSog
Y29yZVBhZ2UgPSByZXRhaW5lZFBhZ2UtPmNvcmVQYWdlKCkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoRnJhbWUqIGNvcmVGcmFtZSA9IHJldGFpbmVkUGFnZS0+bWFpbkZyYW1lKCkpCisgICAgICAg
ICAgICAgICAgICAgIGNvcmVQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkud2lsbENvbXBvc2l0
ZSgqY29yZUZyYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmb3JQaGFzZTprQ0FUcmFu
c2FjdGlvblBoYXNlUHJlQ29tbWl0XTsKKworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21t
aXRIYW5kbGVyOltyZXRhaW5lZFBhZ2UgPSBtYWtlUmVmUHRyKCZtX3dlYlBhZ2UpXSB7CisgICAg
ICAgICAgICBpZiAocmV0YWluZWRQYWdlLT5kZWNyZW1lbnRQZW5kaW5nQ29tcG9zaXRlcygpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9
IHJldGFpbmVkUGFnZS0+Y29yZVBhZ2UoKSkgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSog
Y29yZUZyYW1lID0gcmV0YWluZWRQYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgICAgICAgICAg
ICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaWRDb21wb3NpdGUoKmNvcmVGcmFt
ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371441</attachid>
            <date>2019-06-05 15:02:37 -0700</date>
            <delta_ts>2019-06-05 20:39:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198497-20190605150237.patch</filename>
            <type>text/plain</type>
            <size>12921</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U5N2QxZDhkZmI5ZDNk
OWMwY2RiOWUwMzFmMmIwNzM5MDVjNjU5NC4uOGQ0Njc5MzEyMDVkMGFjNWQyOWE4ZmNmNWI0Mjgy
ZjMwM2VhZWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA2LTA1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBSRUdSRVNTSU9OKHIyNDQxODIpOiBJbnNwZWN0b3IgdGhpbmtzIENBIGNvbW1pdHMgY2FuIGJl
IG5lc3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViSW5zcGVjdGVyIHNob3VsZCBjb2FsZXNjZSBuZXN0ZWQgY29tcG9zaXRlcyBhcyBvbmUgcmVj
b3JkZWQgY29tcG9zaXRlLgorICAgICAgICBUaGlzIGNhbiBiZSBkb25lIGJ5IGVuc3VyaW5nIHRo
YXQgd2Ugb25seSBwcm9jZXNzIENBIHByZUNvbW1pdCBhbmQgcG9zdENvbW1pdAorICAgICAgICBv
bmNlIHBlciBuZXN0ZWQgY29tbWl0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxDb21wb3NpdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgIEV4cG9ydCB3aWxsQ29tcG9zaXRlKCkuIFdlIHdhbnQgdG8gY2FsbCB3aWxsQ29t
cG9zaXRlKCkvIGRpZENvbXBvc2l0ZSgpCisgICAgICAgIGZyb20gQ0EgcHJlQ29tbWl0IGFuZCBw
b3N0Q29tbWl0IGhhbmRsZXJzIGluIGZsdXNoTGF5ZXJzKCkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcG9zaXRlKToKKyAgICAgICAgVW5yZWxhdGVk
IGNoYW5nZTogZGlkQ29tcG9zaXRlKCkgc2hvdWxkIG5vdCBhc3NlcnQgdGhhdCB3ZSdyZSBpbiB0
aGUgbWlkZGxlCisgICAgICAgIG9mIGEgY29tcG9zaXRlLiBXZWIgSW5zcGVjdG9yIG1heSBjb25u
ZWN0IGluIHRoZSBtaWRkbGUgb2YgYSBjb21wb3NpdGUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUluY2x1ZGluZ1N1YmZyYW1lcyk6CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxDb21wb3NpdGUoKSB3aWxsIGJlIGNhbGxlZCBmb3JtIENBIHByZUNvbW1pdAorICAgICAgICBo
YW5kbGVyIG9mIGZsdXNoTGF5ZXJzKCkuCisKIDIwMTktMDYtMDQgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERlY291cGxlIGZsb2F0IHBsYWNl
bWVudCBhbmQgbGluZSBzaHJpbmtpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGMxZWVmNDEzMmRkZWEyNmFjNjcy
NWQ5MjYzODdmODIxNDQ2YmFlZS4uN2JiMGZhMGYzNTEzMDBmNjkxMTJjN2ZlYWZlMDVhNjZjNTY1
NTgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wNi0wNSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUkVHUkVT
U0lPTihyMjQ0MTgyKTogSW5zcGVjdG9yIHRoaW5rcyBDQSBjb21taXRzIGNhbiBiZSBuZXN0ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQ5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgSW5z
cGVjdG9yQ29udHJvbGxlcjo6d2lsbENvbXBvc2l0ZSgpIGZyb20gdGhlIENBIHByZUNvbW1pdCBo
YW5kbGVyCisgICAgICAgIHNpbWlsYXIgdG8gdGhlIGNhbGwgdG8gSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkQ29tcG9zaXRlKCkgaW4gdGhlIENBCisgICAgICAgIHBvc3RDb21taXQgaGFuZGxlci4g
RW5zdXJlIHRoZXNlIGNhbGxzIHdpbGwgYmUgb25jZSBmb3IgbmVzdGVkIGNvbW1pdHMuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFkZENvbW1pdEhhbmRsZXJzKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpmaXJzdEZsdXNoQWZ0ZXJDb21taXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpzZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxl
cnMpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1
c2hMYXllcnMpOgorCiAyMDE5LTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTGF6aWx5IGNvbnN0cnVjdCB0aGUgTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAppbmRleCA3MWEwNzYxMmU3NTgxYWNmYzVjNDYzMjRiMDNjNmZkMzkyMzNhNTY3Li5lMDY5M2E4
NTBhN2Q4ZTA2NjU4YWIxMDJiMTZhMmZkMDgxYTcwZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC01MDcsNiArNTA3LDExIEBA
IEpTQzo6Vk0mIEluc3BlY3RvckNvbnRyb2xsZXI6OnZtKCkKICAgICByZXR1cm4gY29tbW9uVk0o
KTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsQ29tcG9zaXRlKEZyYW1lJiBm
cmFtZSkKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDb21wb3NpdGUoZnJh
bWUpOworfQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbXBvc2l0ZShGcmFtZSYg
ZnJhbWUpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21wb3NpdGUoZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgK
aW5kZXggYTUxMWVjNWJiMWM2N2MwYTFiYjMxNDU3M2VlN2RhZmIyYWQ3NGQ3NC4uNGJlYTQzMjYz
ZGE3MDM3ZjE4ODY1OTY2MmRhOGRiZjZkODMxNTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5kaWNhdGluZyhib29sKTsKIAorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgd2lsbENvbXBvc2l0ZShGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkQ29tcG9zaXRlKEZyYW1lJik7CiAKICAgICBib29sIGlzVW5kZXJUZXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1VuZGVyVGVzdDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXgg
YTFkM2Q5MTQ0YTUyMTJjZDk0ZTc5MzQ1MTA5YzJkZTdkZmZiODQzNi4uZjYzNjgzZmEzOTI2YjNj
NzVlZjE5NjJlYWJmMTY5MWY1NWUxMGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0zNjQs
NyArMzY0LDYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ29tcG9zaXRlKEZy
YW1lJiBmcmFtZSkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wb3NpdGUo
KQogewotICAgIEFTU0VSVChtX3N0YXJ0ZWRDb21wb3NpdGUpOwogICAgIGRpZENvbXBsZXRlQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGU6OkNvbXBvc2l0ZSk7CiAgICAgbV9zdGFydGVk
Q29tcG9zaXRlID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMTIw
ZjEyZGYwNzQxYTUzM2QzMDkwZjk1YTYyMWE2ZTVkNDczM2MwZC4uYTFiYjQ5NGUyZWJlMzk0YzNk
YzM1NTI0YjBkNjYzZjFmMTg4Mjc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
MTE0OCwxMCArMTE0OCw2IEBAIGJvb2wgRnJhbWVWaWV3Ojppc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyKCkgY29uc3QKIAogYm9vbCBGcmFtZVZpZXc6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUlu
Y2x1ZGluZ1N1YmZyYW1lcygpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsQ29tcG9zaXRlKGZyYW1lKCkpOwotI2VuZGlmCi0KICAgICBi
b29sIGFsbEZyYW1lc0ZsdXNoZWQgPSBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUo
ZnJhbWUoKSk7CiAKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IGZyYW1lKCkudHJlZSgpLmZpcnN0
UmVuZGVyZWRDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLnRyYXZlcnNlTmV4
dFJlbmRlcmVkKG1fZnJhbWUucHRyKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDQzMzE1OWY4NTk0ZmZlYTBkZThjZWY3
OWEyNjYwZGU2MTQ3NzcwZGEuLmE2ZDdiODA2NWY3Nzg3YzU0MTA2Y2FiNDYxNTY0ZjY1YTdiM2Jk
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVNjcm9s
bGVkRXhwb3NlZFJlY3QoKTsKICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllcnMoKTsKIAotICAgIHZv
aWQgZmx1c2hJbml0aWFsRGVmZXJyZWRQYWludCgpOworICAgIHZvaWQgYWRkQ29tbWl0SGFuZGxl
cnMoKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJzKCk7CiAKICAgICBXZWJDb3JlOjpUaWxlZEJhY2tp
bmcqIG1haW5GcmFtZVRpbGVkQmFja2luZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGIyOTFkZjBiN2RmZGY3
OTM5ZTdkYWFlNzIzNDIwMjY1ZGIxOWMzNjMuLjRlNDc2MmM5ZDFiOTc3ZTNmMTUxZDVkOTcxYjc1
YmIxOThjODhhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEubW0KQEAgLTMyNSw2ICszMjUsMjkgQEAgYm9vbCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJG
bHVzaFQKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CisgICAgCit2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjphZGRDb21taXRIYW5kbGVycygpCit7CisgICAgaWYgKG1fd2ViUGFn
ZS5maXJzdEZsdXNoQWZ0ZXJDb21taXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJh
bnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbcmV0YWluZWRQYWdlID0gbWFrZVJlZlB0cigmbV93
ZWJQYWdlKV0geworICAgICAgICBpZiAoUGFnZSogY29yZVBhZ2UgPSByZXRhaW5lZFBhZ2UtPmNv
cmVQYWdlKCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gcmV0YWluZWRQ
YWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgICAgICAgICBjb3JlUGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLndpbGxDb21wb3NpdGUoKmNvcmVGcmFtZSk7CisgICAgICAgIH0KKyAgICB9IGZv
clBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQcmVDb21taXRdOworICAgIAorICAgIFtDQVRyYW5z
YWN0aW9uIGFkZENvbW1pdEhhbmRsZXI6W3JldGFpbmVkUGFnZSA9IG1ha2VSZWZQdHIoJm1fd2Vi
UGFnZSldIHsKKyAgICAgICAgaWYgKFBhZ2UqIGNvcmVQYWdlID0gcmV0YWluZWRQYWdlLT5jb3Jl
UGFnZSgpKSB7CisgICAgICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IHJldGFpbmVkUGFn
ZS0+bWFpbkZyYW1lKCkpCisgICAgICAgICAgICAgICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS5kaWRDb21wb3NpdGUoKmNvcmVGcmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
YWluZWRQYWdlLT5zZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQoZmFsc2UpOworICAgIH0gZm9yUGhh
c2U6a0NBVHJhbnNhY3Rpb25QaGFzZVBvc3RDb21taXRdOworICAgIAorICAgIG1fd2ViUGFnZS5z
ZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQodHJ1ZSk7Cit9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKIHsKQEAgLTM1NiwxMyArMzc5LDcgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogICAgIGlmIChtX3Njcm9s
bGVkVmlld0V4cG9zZWRSZWN0KQogICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3Jv
bGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpKTsKIAotICAgIFJlZlB0cjxXZWJQYWdlPiBwcm90
ZWN0ZWRXZWJQYWdlID0gJm1fd2ViUGFnZTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRI
YW5kbGVyOltwcm90ZWN0ZWRXZWJQYWdlXSB7Ci0gICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9
IHByb3RlY3RlZFdlYlBhZ2UtPmNvcmVQYWdlKCkpIHsKLSAgICAgICAgICAgIGlmIChGcmFtZSog
Y29yZUZyYW1lID0gcHJvdGVjdGVkV2ViUGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgICAgICAg
ICAgY29yZVBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaWRDb21wb3NpdGUoKmNvcmVGcmFt
ZSk7Ci0gICAgICAgIH0KLSAgICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29t
bWl0XTsKKyAgICBhZGRDb21taXRIYW5kbGVycygpOwogCiAgICAgaWYgKG1fbmV4dEZsdXNoSXNG
b3JJbW1lZGlhdGVQYWludCkKICAgICAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+aW52
YWxpZGF0ZUltYWdlc1dpdGhBc3luY0RlY29kZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMmIyNGMyODMzNDM3ZDg5NzBkYjhjMmI0MmQ4NDNh
YjI5NmViNzVmLi5lY2ZjOTU4YWMyNjQwMDY1MmFhZjAyMDhlNjBhYmUyZmRkMmU1N2RhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjA2LDYgKzEy
MDYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VySXNJbnRlcmFjdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlcklzSW50ZXJhY3Rpbmc7IH0KICAgICB2b2lkIHNldFVzZXJJc0ludGVyYWN0aW5n
KGJvb2wgdXNlcklzSW50ZXJhY3RpbmcpIHsgbV91c2VySXNJbnRlcmFjdGluZyA9IHVzZXJJc0lu
dGVyYWN0aW5nOyB9CiAKKyAgICBib29sIGZpcnN0Rmx1c2hBZnRlckNvbW1pdCgpIGNvbnN0IHsg
cmV0dXJuIG1fZmlyc3RGbHVzaEFmdGVyQ29tbWl0OyB9CisgICAgdm9pZCBzZXRGaXJzdEZsdXNo
QWZ0ZXJDb21taXQoYm9vbCBmKSB7IG1fZmlyc3RGbHVzaEFmdGVyQ29tbWl0ID0gZjsgfQorICAg
IAogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCkBAIC0xOTM1LDYgKzE5MzgsNyBAQCBwcml2YXRlOgog
ICAgIE9wdGlvblNldDxMYXllclRyZWVGcmVlemVSZWFzb24+IG1fbGF5ZXJUcmVlRnJlZXplUmVh
c29uczsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9uZWVk
c0ZvbnRBdHRyaWJ1dGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZmlyc3RGbHVzaEFmdGVyQ29t
bWl0IHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXZWFrUHRyPFJlbW90ZU9i
amVjdFJlZ2lzdHJ5PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IDFkOGFlZWViNTVmNTk0NmI5OTg4N2E0
MzZjZTFmMjIwOGNmZGE5ZGMuLjVhMWQ3YjliMGRmNTQ1MDdiNjc0YmVjMWM3MDhkYTQ3MTRiOWYx
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC04OCw2ICs4
OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFkZE1pbGVzdG9uZXNUb0Rpc3BhdGNoKE9wdGlv
blNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IHBhaW50TWlsZXN0b25lcykgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAgICAgZW51bSBjbGFzcyBGbHVzaFR5
cGUgeyBOb3JtYWwsIFRyYW5zaWVudFpvb20gfTsKICAgICB2b2lkIGZsdXNoTGF5ZXJzKEZsdXNo
VHlwZSA9IEZsdXNoVHlwZTo6Tm9ybWFsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tCmluZGV4IDgwOTVlNjdkOGY2ZGZmMjFiYWM2YTFlMDQ3MDZiYjFhYWNmYWYw
N2UuLmVjZmQ5MjI1MDY4Nzg5Y2E4YzQzNjU5MjA5NmZmZjA2NmFlMzAxMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTQzMSw2ICs0MzEsMzEgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRkVHJhbnNhY3Rpb25DYWxsYmFja0lE
KENhbGxiYWNrSUQgY2FsbGJhY2sKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
OwogfQogCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRDb21taXRIYW5k
bGVycygpCit7CisgICAgaWYgKG1fd2ViUGFnZS5maXJzdEZsdXNoQWZ0ZXJDb21taXQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbcmV0
YWluZWRQYWdlID0gbWFrZVJlZlB0cigmbV93ZWJQYWdlKV0geworICAgICAgICBpZiAoUGFnZSog
Y29yZVBhZ2UgPSByZXRhaW5lZFBhZ2UtPmNvcmVQYWdlKCkpIHsKKyAgICAgICAgICAgIGlmIChG
cmFtZSogY29yZUZyYW1lID0gcmV0YWluZWRQYWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgICAg
ICAgICBjb3JlUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLndpbGxDb21wb3NpdGUoKmNvcmVG
cmFtZSk7CisgICAgICAgIH0KKyAgICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQcmVD
b21taXRdOworCisgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbcmV0YWluZWRQ
YWdlID0gbWFrZVJlZlB0cigmbV93ZWJQYWdlKV0geworICAgICAgICBpZiAoUGFnZSogY29yZVBh
Z2UgPSByZXRhaW5lZFBhZ2UtPmNvcmVQYWdlKCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZSog
Y29yZUZyYW1lID0gcmV0YWluZWRQYWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgICAgICAgICBj
b3JlUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpZENvbXBvc2l0ZSgqY29yZUZyYW1lKTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IHN0YXRpY19jYXN0PFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKj4ocmV0YWluZWRQYWdlLT5kcmF3aW5nQXJlYSgp
KSkKKyAgICAgICAgICAgIGRyYXdpbmdBcmVhLT5zZW5kUGVuZGluZ05ld2x5UmVhY2hlZFBhaW50
aW5nTWlsZXN0b25lcygpOworICAgICAgICByZXRhaW5lZFBhZ2UtPnNldEZpcnN0Rmx1c2hBZnRl
ckNvbW1pdChmYWxzZSk7CisgICAgfSBmb3JQaGFzZTprQ0FUcmFuc2FjdGlvblBoYXNlUG9zdENv
bW1pdF07CisgICAgCisgICAgbV93ZWJQYWdlLnNldEZpcnN0Rmx1c2hBZnRlckNvbW1pdCh0cnVl
KTsKK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMo
Rmx1c2hUeXBlIGZsdXNoVHlwZSkKIHsKICAgICBpZiAobGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
KQpAQCAtNDU1LDE2ICs0ODAsOCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1c2hUeXBlKQogICAgICAgICBpZiAobV92aWV3T3Zl
cmxheVJvb3RMYXllcikKICAgICAgICAgICAgIG1fdmlld092ZXJsYXlSb290TGF5ZXItPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZSh2aXNpYmxlUmVjdCk7CiAKLSAgICAgICAgUmVmUHRyPFdlYlBhZ2U+
IHJldGFpbmVkUGFnZSA9ICZtX3dlYlBhZ2U7Ci0gICAgICAgIFtDQVRyYW5zYWN0aW9uIGFkZENv
bW1pdEhhbmRsZXI6W3JldGFpbmVkUGFnZV0gewotICAgICAgICAgICAgaWYgKFBhZ2UqIGNvcmVQ
YWdlID0gcmV0YWluZWRQYWdlLT5jb3JlUGFnZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEZy
YW1lKiBjb3JlRnJhbWUgPSByZXRhaW5lZFBhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICAgICAg
ICAgICAgICBjb3JlUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpZENvbXBvc2l0ZSgqY29y
ZUZyYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhdXRvIGRyYXdpbmdBcmVh
ID0gc3RhdGljX2Nhc3Q8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEqPihyZXRhaW5lZFBh
Z2UtPmRyYXdpbmdBcmVhKCkpKQotICAgICAgICAgICAgICAgIGRyYXdpbmdBcmVhLT5zZW5kUGVu
ZGluZ05ld2x5UmVhY2hlZFBhaW50aW5nTWlsZXN0b25lcygpOwotICAgICAgICB9IGZvclBoYXNl
OmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsKLQorICAgICAgICBhZGRDb21taXRIYW5k
bGVycygpOworICAgICAgICAKICAgICAgICAgYm9vbCBkaWRGbHVzaEFsbEZyYW1lcyA9IG1fd2Vi
UGFnZS5tYWluRnJhbWVWaWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZy
YW1lcygpOwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>