<?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>194184</bug_id>
          
          <creation_ts>2019-02-01 19:23:13 -0800</creation_ts>
          <short_desc>Async overflow scroll is jumpy on macOS if the main thread is busy</short_desc>
          <delta_ts>2019-02-02 11:18:42 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1501415</commentid>
    <comment_count>0</comment_count>
      <attachid>360950</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-01 19:23:13 -0800</bug_when>
    <thetext>Created attachment 360950
Testcase

Main thread and scrolling thread seem to be fighting over scroll positions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501421</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-01 20:05:31 -0800</bug_when>
    <thetext>While we&apos;re scrolling on the scrolling thread, we post back to the main thread via AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(), which triggers RendderLayer::scrollTo() and then does a compositing update, and that update slams a stale scroll position onto the graphics layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501423</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-01 20:06:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/47758655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501426</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-01 20:07:23 -0800</bug_when>
    <thetext>iOS avoids this with:

        if (m_owningLayer.isInUserScroll()) {
            // If scrolling is happening externally, we don&apos;t want to touch the layer bounds origin here because that will cause jitter.
            m_scrollingLayer-&gt;syncBoundsOrigin(scrollOffset);
            m_owningLayer.setRequiresScrollBoundsOriginUpdate(true);
        } else {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501452</commentid>
    <comment_count>4</comment_count>
      <attachid>360963</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-01 22:10:20 -0800</bug_when>
    <thetext>Created attachment 360963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501458</commentid>
    <comment_count>5</comment_count>
      <attachid>360963</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-02-01 23:03:33 -0800</bug_when>
    <thetext>Comment on attachment 360963
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Async overflow scroll is jumpy if the main thread is busy

&quot;on Mac&quot;

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1759
&gt; -        m_scrollingContentsLayer-&gt;setPaintingPhase(paintPhase);
&gt; -        m_scrollingLayer-&gt;addChild(*m_scrollingContentsLayer);
&gt; +        m_scrolledContentsLayer-&gt;setPaintingPhase(paintPhase);
&gt; +        m_scrollingLayer-&gt;addChild(*m_scrolledContentsLayer);

Could have also renamed m_scrollingLayer -&gt; m_scrollContainerLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501464</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-01 23:30:38 -0800</bug_when>
    <thetext>I can do that in a followup if rs=you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501465</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-02-01 23:35:39 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; I can do that in a followup if rs=you.

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501507</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-02 11:18:42 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/240897/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>360950</attachid>
            <date>2019-02-01 19:23:13 -0800</date>
            <delta_ts>2019-02-01 19:23:13 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>interleaved-overflow-scroll.html</filename>
            <type>text/html</type>
            <size>5855</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgICAgLnNjcm9s
bGVyIHsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgICAgICB3aWR0aDogNDAwcHg7
CiAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwog
ICAgICAgICAgICBib3JkZXI6IDIwcHggc29saWQgcmdiYSgwLCAwLCAxMjgsIDAuNSk7CiAgICAg
ICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5wb3NpdGlvbmVkIHsKICAg
ICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBsZWZ0OiAzMDBweDsKICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICAgICAgd2lkdGg6IDIwMHB4OwogICAgICAg
ICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5zaWRlIHsK
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOwogICAgICAgICAgICB6LWluZGV4
OiAyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0c2lkZSB7CiAgICAgICAgICAgIHRv
cDogLTMwMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICAgICAgICB9
CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdD4KCiAgICAgICAgZnVuY3Rpb24gc2xlZXAobWlsbGlz
KQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwogICAgICAgICAg
ICB2YXIgY3VyRGF0ZSA9IG51bGw7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgIGN1
ckRhdGUgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICB9IHdoaWxlKGN1ckRhdGUtZGF0ZSA8IG1p
bGxpcyk7CiAgICAgICAgfSAgICAgICAgCiAgICAgICAgCiAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CiAgICAgICAgICAgIHNldEludGVydmFsKCgpID0+IHsK
ICAgICAgICAgICAgICAgIHNsZWVwKDIwMCk7CiAgICAgICAgICAgIH0sIDUwKTsKICAgICAgICB9
LCBmYWxzZSk7CiAgICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KCjxwPlRoZSBvcmFuZ2UgYm94
IHNob3VsZCBiZSBjbGlwcGVkLCBidXQgc2Nyb2xsIGluIGZyb250IG9mIHRoZSBncmVlbiBib3gu
PC9wPgoKPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0
IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBv
ciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFk
IG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMg
bmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUg
ZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9s
b3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3Vw
aWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBt
b2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+CiAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0g
YWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3Jp
cyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVy
ZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBk
b2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBj
dXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50
IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD4KICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9y
IHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0
ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5p
bSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJv
cmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGly
dXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVt
IGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0
IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1
bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBl
bmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxh
Ym9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUg
aXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxs
dW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVj
YXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNl
cnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+CiAgICA8ZGl2IGNsYXNzPSJwb3Np
dGlvbmVkIGluc2lkZSI+PC9kaXY+CiAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0g
dmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0
IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBp
biByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUg
ZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQg
bm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBh
bmltIGlkIGVzdCBsYWJvcnVtLjwvcD4KICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5j
aWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5p
bSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kg
dXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9y
IGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBl
dSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRh
dCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0
IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFt
ZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBp
bmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9s
b3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3Jl
IGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRh
dGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xs
aXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+CiAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQg
bWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBu
aXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBk
b2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xv
cmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBp
ZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1v
bGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD4KICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1w
b3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBh
ZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlz
IG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJl
IGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRv
bG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1
cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQg
bW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmlt
IGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9y
aXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1
cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0g
ZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQg
Y3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVu
dCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icG9z
aXRpb25lZCBvdXRzaWRlIj48L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360963</attachid>
            <date>2019-02-01 22:10:20 -0800</date>
            <delta_ts>2019-02-01 23:03:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194184-20190201221019.patch</filename>
            <type>text/plain</type>
            <size>25883</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM0NDI0ODJkYjMwYjRl
NTIxNGE2ZDk2ZTVlOTYyY2E4NmM3NjEwMy4uZjEyMzllZGVhMjU2MGQ5NTQ0OGMwYTQyY2RkOTE4
ZTAwNzU4Mzg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE5LTAyLTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFzeW5jIG92ZXJm
bG93IHNjcm9sbCBpcyBqdW1weSBpZiB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTg0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80Nzc1ODY1NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBleHRlbmRzIHRvIG1hY09TIHNvbWUgZXhpc3Rp
bmcgb3ZlcmZsb3ctc2Nyb2xsIGZ1bmN0aW9uYWxpdHkgZm9yIGlPUy4KKyAgICAgICAgV2hlbiBh
biBhc3luYyBzY3JvbGwgaXMgaW4gcHJvY2VzcyBpbiB0aGUgc2Nyb2xsIHRocmVhZCAob3IgVUkg
cHJvY2VzcyksIHdlIHBlcmlvZGljYWxseQorICAgICAgICBtZXNzYWdlIGJhY2sgdG8gdGhlIHdl
YiBwcm9jZXNzIG1haW4gdGhyZWFkIHdpdGggc2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZXMuIFRoZXNl
CisgICAgICAgIGNhbiB0cmlnZ2VyIHBvc3Qtc2Nyb2xsIGNvbXBvc2l0aW5nIHVwZGF0ZXMsIGJ1
dCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoaXMgdXBkYXRlCisgICAgICAgIGRvZXNuJ3QgY2xv
YmJlciB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBuYXRpdmUgbGF5ZXJzLCB3aGljaCB3b3Vs
ZCB0cmlnZ2VyCisgICAgICAgIHN0dXR0ZXJzLgorCisgICAgICAgIFRvIGRvIHRoaXMgd2UgaGF2
ZSB0aGUgbm90aW9uIG9mIGEgc2Nyb2xsIHBvc2l0aW9uICJzeW5jIiAoU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYykgd2hpY2gKKyAgICAgICAgcG9rZXMgdGhlIG5ldyB2YWx1ZSBp
bnRvIHRoZSBHcmFwaGljc0xheWVyIChoZW5jZSBtYWtpbmcgdmlzaWJsZSByZWN0IGNvbXB1dGF0
aW9ucyB3b3JrKSwgYnV0IGRvZXNuJ3QKKyAgICAgICAgcHJvcGFnYXRlIGl0IHRvIHRoZSBwbGF0
Zm9ybSBsYXllci4gVGhpcyBwYXRjaCB3aXJlcyB1cCBzeW5jcyBmb3IgbWFjT1MgZHVyaW5nIGFz
eW5jIG92ZXJmbG93IHNjcm9sbGluZywKKyAgICAgICAgY29taW5nIG91dCBvZiBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKS4K
KworICAgICAgICBJbiBSZW5kZXJMYXllckJhY2tpbmcsIG1fc2Nyb2xsaW5nQ29udGVudHNMYXll
ciBpcyByZW5hbWVkIHRvIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLCBhbmQgSSBhZGRlZAorICAg
ICAgICB1cGRhdGVTY3JvbGxPZmZzZXQoKSBhbmQgc2V0TG9jYXRpb25PZlNjcm9sbGVkQ29udGVu
dHMoKSB0byBoYW5kbGUgdGhlIHNldCB2cy4gc3luYywgYW5kIHRvIGtlZXAKKyAgICAgICAgdGhl
IGlPUyB2cyBtYWNPUyBkaWZmZXJlbmNlcyBpbiBvbmUgZnVuY3Rpb24uIFRoaXMgYWxsb3dzIGZv
ciBtb3JlIGNvZGUgc2hhcmluZyBpbiBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5
KCkuCisKKyAgICAgICAgVGhlcmUncyBhIGNvbmZ1c2luZyBiaXQgaW4gdGhlIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllciBjb2RlICh0cmFjLndlYmtpdC5vcmcvMTc4MDI5KSB3aGVyZSB0aGUgc2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKCkKKyAgICAgICAganVzdCBsb29rcyB3cm9uZzsgaXQgc2hvdWxk
IG1hdGNoIG1fc2Nyb2xsaW5nTGF5ZXIuIFRoaXMgY29kZSBpcyBuZXZlciBoaXQgZm9yIENvY29h
LCB3aGljaCBuZXZlciBoYXMgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLgorCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjOjpzZXRTY3JvbGxQb3NpdGlvbik6IExvZ2dpbmcKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24p
OiBMb2dnaW5nCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5o
OiBSZW5hbWUgbV9yZXF1aXJlc1Njcm9sbEJvdW5kc09yaWdpblVwZGF0ZSB0byBtX3JlcXVpcmVz
U2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbgorICAgICAgICBhbmQgbWFrZSBpdCBhdmFpbGFi
bGUgb24gYWxsIHBsYXRmb3Jtcy4gSnVzdCByZW9yZGVyIG1fYWRqdXN0Rm9ySU9TQ2FyZXRXaGVu
U2Nyb2xsaW5nIHRvIHJlZHVjZSAjaWZkZWYgbmVzdGluZyBjb25mdXNpb24uCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OmRlc3Ryb3lHcmFwaGljc0xheWVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0TG9jYXRpb25PZlNjcm9sbGVkQ29udGVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVTY3JvbGxPZmZz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEcmF3c0Nv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVTY3Jv
bGxpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWlu
dGluZ1BoYXNlRm9yUHJpbWFyeUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6cGFyZW50Rm9yU3VibGF5ZXJzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6YmFja2luZ1N0b3JlTWVt
b3J5RXN0aW1hdGUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaDoKKwogMjAxOS0wMi0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdGhlIHVudXNlZCBsYXllckZvclNjcm9sbGluZygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDhiMGQ3
ZWM3ZDFhMjYyOTZhODg0NjdiZDg5ZGE3OTEyZjNmOTI5YWUuLmI5OWFmZDdhOTM1ODY5YTY5ODRm
YjRlYzRlNTE0ZWRlNDM1N2FjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0xMDcsNyArMTA3LDcgQEAgRmxvYXRQb2ludCBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAK
IHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTWFjOjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgc2Ny
b2xsUG9zaXRpb24oKTogIiA8PCB0aGlzLT5zY3JvbGxQb3NpdGlvbigpIDw8ICIgbWluOiAiIDw8
IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgbWF4OiAiIDw8IG1heGltdW1TY3JvbGxQb3Np
dGlvbigpKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwg
c2Nyb2xsUG9zaXRpb24gPDwgIiBmcm9tICIgPDwgdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSA8PCAi
IChtaW46ICIgPDwgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgPDwgIiBtYXg6ICIgPDwgbWF4aW11
bVNjcm9sbFBvc2l0aW9uKCkgPDwgIikiKTsKIAogICAgIC8vIFNjcm9sbCBkZWx0YXMgY2FuIGJl
IG5vbi1pbnRlZ3JhbCB3aXRoIHNvbWUgaW5wdXQgZGV2aWNlcywgc28gc2Nyb2xsUG9zaXRpb24g
bWF5IG5vdCBiZSBpbnRlZ3JhbC4KICAgICAvLyBGSVhNRTogd2hlbiB3ZSBzdXBwb3J0IGhhbGYt
cGl4ZWwgc2Nyb2xsIHBvc2l0aW9ucyBvbiBSZXRpbmEgZGlzcGxheXMsIHRoaXMgd2lsbCBuZWVk
IHRvIHJvdW5kIHRvIGhhbGYgcGl4ZWxzLgpAQCAtMTI0LDYgKzEyNCw4IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yzo6c2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCkKIHsKKyAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24gIiA8PCBzY3JvbGxQb3NpdGlvbik7CisK
ICAgICBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKS5wb3NpdGlvbiA9IC1zY3JvbGxQb3NpdGlvbjsK
ICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDBhNzA4MGEzN2QxZWI5YWNiMmEzNmVkNGMyMDFl
NDlkYWQ0MjFkYzguLmNjMWNlNWQzZmE3OGE2YjgyMzA2MTFlYjg1Y2M1NjVkOTllMTMyZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjk1LDE2ICsyOTUs
MTQgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJl
bmRlcmVyTGF5ZXJNb2RlbE9iamVjdCkKICAgICAsIG1faGFzM0RUcmFuc2Zvcm1lZEFuY2VzdG9y
KGZhbHNlKQogICAgICwgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lKSkKICAgICAsIG1fdmlld3Bv
cnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oTm9Ob3RDb21wb3NpdGVkUmVhc29uKQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLCBtX2FkanVzdEZvcklPU0NhcmV0V2hlblNj
cm9sbGluZyhmYWxzZSkKLSNlbmRpZgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgLCBtX3JlZ2lzdGVyZWRBc1RvdWNoRXZlbnRMaXN0
ZW5lckZvclNjcm9sbGluZyhmYWxzZSkKICNlbmRpZgotICAgICwgbV9pblVzZXJTY3JvbGwoZmFs
c2UpCi0gICAgLCBtX3JlcXVpcmVzU2Nyb2xsQm91bmRzT3JpZ2luVXBkYXRlKGZhbHNlKQorICAg
ICwgbV9hZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpCiAjZW5kaWYKKyAgICAs
IG1faW5Vc2VyU2Nyb2xsKGZhbHNlKQorICAgICwgbV9yZXF1aXJlc1Njcm9sbFBvc2l0aW9uUmVj
b25jaWxpYXRpb24oZmFsc2UpCiAgICAgLCBtX2NvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFy
cyhmYWxzZSkKICAgICAsIG1fdXBkYXRpbmdNYXJxdWVlUG9zaXRpb24oZmFsc2UpCiAjaWYgIUFT
U0VSVF9ESVNBQkxFRApAQCAtMjM0Nyw3ICsyMzQ1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Ny
b2xsVG8oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQogICAgIGlmICghYm94KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwg
IlJlbmRlckxheWVyOjpzY3JvbGxUbyAiIDw8IHBvc2l0aW9uKTsKKyAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyOjpzY3JvbGxUbyAiIDw8IHBvc2l0
aW9uIDw8ICIgZnJvbSAiIDw8IG1fc2Nyb2xsUG9zaXRpb24gPDwgIiAoaW4gdXNlciBzY3JvbGwg
IiA8PCBpc0luVXNlclNjcm9sbCgpIDw8ICIpIik7CiAKICAgICBTY3JvbGxQb3NpdGlvbiBuZXdQ
b3NpdGlvbiA9IHBvc2l0aW9uOwogICAgIGlmICghYm94LT5pc0hUTUxNYXJxdWVlKCkpIHsKQEAg
LTIzNzQsMTIgKzIzNzIsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Ny
b2xsUG9zaXRpb24mIHBvc2l0aW9uKQogICAgIH0KICAgICAKICAgICBpZiAobV9zY3JvbGxQb3Np
dGlvbiA9PSBuZXdQb3NpdGlvbikgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IGlmIChtX3JlcXVpcmVzU2Nyb2xsQm91bmRzT3JpZ2luVXBkYXRlKSB7CisgICAgICAgIC8vIEZJ
WE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgd2UgZ2V0IGEgc2Nyb2xsVG8oKSB3aXRoIGFuIHVuY2hh
bmdlZCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIGEgdXNlciBnZXN0dXJlLgorICAgICAgICAvLyBU
aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgcHJvYmFibHkgbmVlZHMgdG8gbWVzc2FnZSB0aGUgbWFp
biB0aHJlYWQgd2hlbiBhIGdlc3R1cmUgZW5kcy4KKyAgICAgICAgaWYgKHJlcXVpcmVzU2Nyb2xs
UG9zaXRpb25SZWNvbmNpbGlhdGlvbigpKSB7CiAgICAgICAgICAgICBzZXROZWVkc0NvbXBvc2l0
aW5nR2VvbWV0cnlVcGRhdGUoKTsKICAgICAgICAgICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
QWZ0ZXJTY3JvbGwoKTsKICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZmY5MTFiNWMyNjU0
MDYzZTdiYWQ4ZmJlNmQ4MTdkMmQ3ZWVlN2VjYi4uY2JhZjc5ZDk4M2E0ODEzNWZmYmYzZDNmYmEy
Y2M3MjdiMzFhMGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAg
LTQ0OSw2ICs0NDksMTIgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU25hcE9mZnNldHMoKSBv
dmVycmlkZTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRJc1VzZXJTY3JvbGwoYm9vbCBpc1VzZXJT
Y3JvbGwpIG92ZXJyaWRlIHsgbV9pblVzZXJTY3JvbGwgPSBpc1VzZXJTY3JvbGw7IH0KKyAgICBi
b29sIGlzSW5Vc2VyU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9pblVzZXJTY3JvbGw7IH0KKwor
ICAgIGJvb2wgcmVxdWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2lsaWF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXF1aXJlc1Njcm9sbFBvc2l0aW9uUmVjb25jaWxpYXRpb247IH0KKyAgICB2b2lk
IHNldFJlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbihib29sIHJlcXVpcmVzUmVj
b25jaWxpYXRpb24gPSB0cnVlKSB7IG1fcmVxdWlyZXNTY3JvbGxQb3NpdGlvblJlY29uY2lsaWF0
aW9uID0gcmVxdWlyZXNSZWNvbmNpbGlhdGlvbjsgfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBib29sIGhhbmRsZVRvdWNoRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50Jikgb3ZlcnJpZGU7CkBAIC00NTcsMTIgKzQ2Myw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0U2Nyb2xsKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRFbmRTY3JvbGwoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFVwZGF0ZVNjcm9sbCgpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0SXNVc2VyU2Nyb2xsKGJvb2wgaXNVc2VyU2Nyb2xsKSBvdmVy
cmlkZSB7IG1faW5Vc2VyU2Nyb2xsID0gaXNVc2VyU2Nyb2xsOyB9Ci0KLSAgICBib29sIGlzSW5V
c2VyU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9pblVzZXJTY3JvbGw7IH0KLQotICAgIGJvb2wg
cmVxdWlyZXNTY3JvbGxCb3VuZHNPcmlnaW5VcGRhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVp
cmVzU2Nyb2xsQm91bmRzT3JpZ2luVXBkYXRlOyB9Ci0gICAgdm9pZCBzZXRSZXF1aXJlc1Njcm9s
bEJvdW5kc09yaWdpblVwZGF0ZShib29sIHJlcXVpcmVzVXBkYXRlID0gdHJ1ZSkgeyBtX3JlcXVp
cmVzU2Nyb2xsQm91bmRzT3JpZ2luVXBkYXRlID0gcmVxdWlyZXNVcGRhdGU7IH0KICNlbmRpZgog
CiAgICAgLy8gUmV0dXJucyB0cnVlIHdoZW4gdGhlIGxheWVyIGNvdWxkIGRvIHRvdWNoIHNjcm9s
bGluZywgYnV0IGRvZXNuJ3QgbG9vayBhdCB3aGV0aGVyIHRoZXJlIGlzIGFjdHVhbGx5IHNjcm9s
bGFibGUgb3ZlcmZsb3cuCkBAIC0xMTkyLDE0ICsxMTkyLDE0IEBAIHByaXZhdGU6CiAgICAgdW5z
aWduZWQgbV92aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiA6IDI7CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbV9hZGp1c3RGb3JJT1NDYXJldFdoZW5T
Y3JvbGxpbmcgOiAxOwogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgbV9y
ZWdpc3RlcmVkQXNUb3VjaEV2ZW50TGlzdGVuZXJGb3JTY3JvbGxpbmcgOiAxOwogI2VuZGlmCi0g
ICAgYm9vbCBtX2luVXNlclNjcm9sbCA6IDE7Ci0gICAgYm9vbCBtX3JlcXVpcmVzU2Nyb2xsQm91
bmRzT3JpZ2luVXBkYXRlIDogMTsKKyAgICBib29sIG1fYWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Ny
b2xsaW5nIDogMTsKICNlbmRpZgogCisgICAgYm9vbCBtX2luVXNlclNjcm9sbCA6IDE7CisgICAg
Ym9vbCBtX3JlcXVpcmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbiA6IDE7CiAgICAgYm9v
bCBtX2NvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycyA6IDE7CiAgICAgYm9vbCBtX3VwZGF0
aW5nTWFycXVlZVBvc2l0aW9uIDogMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA2YjkwNmFiZTY2MjAyYTBhNTM5ODliZDU0NmUw
YjYyMzA0NjZlNjRhLi4zNTQyNDllNjcwY2NiZDlkZmY3ZmYzMzc0MzJlNGNiNDI4ZjU1NDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMzk0LDkgKzM5NCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEZWJ1Z0lu
ZGljYXRvcnMoYm9vbCBzaG93Qm9yZGVyLCBib29sIHNob3dSZXBhaW50CiAgICAgaWYgKG1fc2Ny
b2xsaW5nTGF5ZXIpCiAgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93Qm9yZGVyKTsKIAotICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpIHsKLSAg
ICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0Jv
cmRlcik7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0U2hvd1JlcGFpbnRD
b3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7CisgICAgaWYgKG1fc2Nyb2xsZWRDb250ZW50c0xh
eWVyKSB7CisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRTaG93RGVidWdCb3Jk
ZXIoc2hvd0JvcmRlcik7CisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRTaG93
UmVwYWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKICAgICB9CiB9CiAKQEAgLTQ4Myw3
ICs0ODMsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJz
KCkKICAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFyKG1fY2hpbGRDb250YWlubWVu
dExheWVyKTsKICAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFyKG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllcik7CiAgICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX3Nj
cm9sbGluZ0xheWVyKTsKLSAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFyKG1fc2Ny
b2xsaW5nQ29udGVudHNMYXllcik7CisgICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVh
cihtX3Njcm9sbGVkQ29udGVudHNMYXllcik7CiAgICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRB
bmRDbGVhcihtX2dyYXBoaWNzTGF5ZXIpOwogfQogCkBAIC0xMTgyLDQzICsxMTgyLDE5IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAgICAgfQogCiAgICAgaWYg
KG1fc2Nyb2xsaW5nTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKG1fc2Nyb2xsaW5nQ29udGVudHNM
YXllcik7CisgICAgICAgIEFTU0VSVChtX3Njcm9sbGVkQ29udGVudHNMYXllcik7CiAgICAgICAg
IGF1dG8mIHJlbmRlckJveCA9IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSk7CiAgICAg
ICAgIExheW91dFJlY3QgcGFkZGluZ0JveEluY2x1ZGluZ1Njcm9sbGJhciA9IHJlbmRlckJveC5w
YWRkaW5nQm94UmVjdEluY2x1ZGluZ1Njcm9sbGJhcigpOwogICAgICAgICBTY3JvbGxPZmZzZXQg
c2Nyb2xsT2Zmc2V0ID0gbV9vd25pbmdMYXllci5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAgICAv
LyBGSVhNRTogbmVlZCB0byBkbyBzb21lIHBpeGVsIHNuYXBwaW5nIGhlcmUuCiAgICAgICAgIG1f
c2Nyb2xsaW5nTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQocGFkZGluZ0JveEluY2x1ZGlu
Z1Njcm9sbGJhci5sb2NhdGlvbigpIC0gY29tcG9zaXRlZEJvdW5kcygpLmxvY2F0aW9uKCkpKTsK
LQogICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zZXRTaXplKHJvdW5kZWRJbnRTaXplKExheW91
dFNpemUocmVuZGVyQm94LmNsaWVudFdpZHRoKCksIHJlbmRlckJveC5jbGllbnRIZWlnaHQoKSkp
KTsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBGbG9hdFNpemUgb2xkU2Nyb2xs
aW5nTGF5ZXJPZmZzZXQgPSBtX3Njcm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsK
LSAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKEZsb2F0UG9p
bnQoKSAtIHBhZGRpbmdCb3hJbmNsdWRpbmdTY3JvbGxiYXIubG9jYXRpb24oKSk7Ci0gICAgICAg
IGJvb2wgcGFkZGluZ0JveE9mZnNldENoYW5nZWQgPSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCAh
PSBtX3Njcm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKLQotICAgICAgICBpZiAo
bV9vd25pbmdMYXllci5pc0luVXNlclNjcm9sbCgpKSB7Ci0gICAgICAgICAgICAvLyBJZiBzY3Jv
bGxpbmcgaXMgaGFwcGVuaW5nIGV4dGVybmFsbHksIHdlIGRvbid0IHdhbnQgdG8gdG91Y2ggdGhl
IGxheWVyIGJvdW5kcyBvcmlnaW4gaGVyZSBiZWNhdXNlIHRoYXQgd2lsbCBjYXVzZSBqaXR0ZXIu
Ci0gICAgICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zeW5jQm91bmRzT3JpZ2luKHNjcm9sbE9m
ZnNldCk7Ci0gICAgICAgICAgICBtX293bmluZ0xheWVyLnNldFJlcXVpcmVzU2Nyb2xsQm91bmRz
T3JpZ2luVXBkYXRlKHRydWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gTm90
ZSB0aGF0IHdlIGltcGxlbWVudCB0aGUgY29udGVudHMgb2Zmc2V0IHZpYSB0aGUgYm91bmRzIG9y
aWdpbiBvbiB0aGlzIGxheWVyLCByYXRoZXIgdGhhbiBhIHBvc2l0aW9uIG9uIHRoZSBzdWJsYXll
ci4KLSAgICAgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldEJvdW5kc09yaWdpbihzY3JvbGxP
ZmZzZXQpOwotICAgICAgICAgICAgbV9vd25pbmdMYXllci5zZXRSZXF1aXJlc1Njcm9sbEJvdW5k
c09yaWdpblVwZGF0ZShmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIEludFNp
emUgc2Nyb2xsU2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdpZHRoKCksIG1fb3duaW5nTGF5ZXIu
c2Nyb2xsSGVpZ2h0KCkpOwotCi0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0
UG9zaXRpb24oRmxvYXRQb2ludCgpKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChzY3JvbGxTaXpl
ICE9IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2l6ZSgpIHx8IHBhZGRpbmdCb3hPZmZzZXRD
aGFuZ2VkKQotICAgICAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKIAotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Ny
b2xsU2l6ZSk7Ci0gICAgICAgIC8vIFNjcm9sbGluZyB0aGUgY29udGVudCBsYXllciBkb2VzIG5v
dCBuZWVkIHRvIHRyaWdnZXIgYSByZXBhaW50LiBUaGUgb2Zmc2V0IHdpbGwgYmUgY29tcGVuc2F0
ZWQgYXdheSBkdXJpbmcgcGFpbnRpbmcuCi0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXll
ci0+c2V0U2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCwgR3JhcGhpY3NMYXllcjo6RG9udFNldE5l
ZWRzRGlzcGxheSk7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0T2Zmc2V0
RnJvbVJlbmRlcmVyKHRvTGF5b3V0U2l6ZShwYWRkaW5nQm94SW5jbHVkaW5nU2Nyb2xsYmFyLmxv
Y2F0aW9uKCkpLCBHcmFwaGljc0xheWVyOjpEb250U2V0TmVlZHNEaXNwbGF5KTsKLSNlbHNlCi0g
ICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0UG9zaXRpb24oLXNjcm9sbE9mZnNl
dCk7CisgICAgICAgIHVwZGF0ZVNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRQb3Np
dGlvbih7IH0pOyAvLyBGSVhNRTogbmVjZXNzYXJ5PworI2VuZGlmCiAKICAgICAgICAgRmxvYXRT
aXplIG9sZFNjcm9sbGluZ0xheWVyT2Zmc2V0ID0gbV9zY3JvbGxpbmdMYXllci0+b2Zmc2V0RnJv
bVJlbmRlcmVyKCk7CiAgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldE9mZnNldEZyb21SZW5k
ZXJlcigtdG9GbG9hdFNpemUocGFkZGluZ0JveEluY2x1ZGluZ1Njcm9sbGJhci5sb2NhdGlvbigp
KSk7CkBAIC0xMjI2LDIzICsxMjAyLDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVHZW9tZXRyeSgpCiAgICAgICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKICAg
ICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0UG9zaXRpb24obV9zY3JvbGxp
bmdMYXllci0+cG9zaXRpb24oKSk7CiAgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXItPnNldFNpemUobV9zY3JvbGxpbmdMYXllci0+c2l6ZSgpKTsKLSAgICAgICAgICAgIG1fY2hp
bGRDbGlwcGluZ01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXplKHBh
ZGRpbmdCb3hJbmNsdWRpbmdTY3JvbGxiYXIubG9jYXRpb24oKSkpOworICAgICAgICAgICAgbV9j
aGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoLXRvRmxvYXRTaXpl
KHBhZGRpbmdCb3hJbmNsdWRpbmdTY3JvbGxiYXIubG9jYXRpb24oKSkpOwogICAgICAgICB9CiAK
ICAgICAgICAgYm9vbCBwYWRkaW5nQm94T2Zmc2V0Q2hhbmdlZCA9IG9sZFNjcm9sbGluZ0xheWVy
T2Zmc2V0ICE9IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogCiAgICAg
ICAgIEludFNpemUgc2Nyb2xsU2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdpZHRoKCksIG1fb3du
aW5nTGF5ZXIuc2Nyb2xsSGVpZ2h0KCkpOwotICAgICAgICBpZiAoc2Nyb2xsU2l6ZSAhPSBtX3Nj
cm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNpemUoKSB8fCBwYWRkaW5nQm94T2Zmc2V0Q2hhbmdlZCkK
LSAgICAgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CisgICAgICAgIGlmIChzY3JvbGxTaXplICE9IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zaXpl
KCkgfHwgcGFkZGluZ0JveE9mZnNldENoYW5nZWQpCisgICAgICAgICAgICBtX3Njcm9sbGVkQ29u
dGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAKLSAgICAgICAgbV9zY3JvbGxpbmdDb250
ZW50c0xheWVyLT5zZXRTaXplKHNjcm9sbFNpemUpOwotICAgICAgICBtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXItPnNldFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQsIEdyYXBoaWNzTGF5ZXI6OkRv
bnRTZXROZWVkc0Rpc3BsYXkpOwotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNl
dE9mZnNldEZyb21SZW5kZXJlcih0b0xheW91dFNpemUocGFkZGluZ0JveEluY2x1ZGluZ1Njcm9s
bGJhci5sb2NhdGlvbigpKSwgR3JhcGhpY3NMYXllcjo6RG9udFNldE5lZWRzRGlzcGxheSk7Ci0j
ZW5kaWYKKyAgICAgICAgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXItPnNldFNpemUoc2Nyb2xsU2l6
ZSk7CisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRTY3JvbGxPZmZzZXQoc2Ny
b2xsT2Zmc2V0LCBHcmFwaGljc0xheWVyOjpEb250U2V0TmVlZHNEaXNwbGF5KTsKKyAgICAgICAg
bV9zY3JvbGxlZENvbnRlbnRzTGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcih0b0xheW91dFNp
emUocGFkZGluZ0JveEluY2x1ZGluZ1Njcm9sbGJhci5sb2NhdGlvbigpKSwgR3JhcGhpY3NMYXll
cjo6RG9udFNldE5lZWRzRGlzcGxheSk7CiAKICAgICAgICAgaWYgKG1fZm9yZWdyb3VuZExheWVy
KSB7Ci0gICAgICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+c2V0U2l6ZShtX3Njcm9sbGluZ0Nv
bnRlbnRzTGF5ZXItPnNpemUoKSk7Ci0gICAgICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+c2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+b2Zmc2V0RnJvbVJl
bmRlcmVyKCkgLSB0b0xheW91dFNpemUobV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zY3JvbGxP
ZmZzZXQoKSkpOworICAgICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldFNpemUobV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXItPnNpemUoKSk7CisgICAgICAgICAgICBtX2ZvcmVncm91bmRMYXll
ci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5vZmZzZXRG
cm9tUmVuZGVyZXIoKSAtIHRvTGF5b3V0U2l6ZShtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2Ny
b2xsT2Zmc2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTI1OSw2ICsxMjM0LDM0IEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAgICAgICAgIHNldENv
bnRlbnRzTmVlZERpc3BsYXkoKTsKIH0KIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldExv
Y2F0aW9uT2ZTY3JvbGxlZENvbnRlbnRzKFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQsIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24gc2V0T3JTeW5jKQoreworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgaWYgKHNldE9yU3luYyA9PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
OjpTeW5jKQorICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zeW5jQm91bmRzT3JpZ2luKHNjcm9s
bE9mZnNldCk7CisgICAgZWxzZQorICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zZXRCb3VuZHNP
cmlnaW4oc2Nyb2xsT2Zmc2V0KTsKKyNlbHNlCisgICAgaWYgKHNldE9yU3luYyA9PSBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKQorICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNM
YXllci0+c3luY1Bvc2l0aW9uKC1zY3JvbGxPZmZzZXQpOworICAgIGVsc2UKKyAgICAgICAgbV9z
Y3JvbGxlZENvbnRlbnRzTGF5ZXItPnNldFBvc2l0aW9uKC1zY3JvbGxPZmZzZXQpOworI2VuZGlm
Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVTY3JvbGxPZmZzZXQoU2Nyb2xs
T2Zmc2V0IHNjcm9sbE9mZnNldCkKK3sKKyAgICBpZiAobV9vd25pbmdMYXllci5pc0luVXNlclNj
cm9sbCgpKSB7CisgICAgICAgIC8vIElmIHNjcm9sbGluZyBpcyBoYXBwZW5pbmcgZXh0ZXJuYWxs
eSwgd2UgZG9uJ3Qgd2FudCB0byB0b3VjaCB0aGUgbGF5ZXIgYm91bmRzIG9yaWdpbiBoZXJlIGJl
Y2F1c2UgdGhhdCB3aWxsIGNhdXNlIGppdHRlci4KKyAgICAgICAgc2V0TG9jYXRpb25PZlNjcm9s
bGVkQ29udGVudHMoc2Nyb2xsT2Zmc2V0LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpT
eW5jKTsKKyAgICAgICAgbV9vd25pbmdMYXllci5zZXRSZXF1aXJlc1Njcm9sbFBvc2l0aW9uUmVj
b25jaWxpYXRpb24odHJ1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IHdl
IGltcGxlbWVudCB0aGUgY29udGVudHMgb2Zmc2V0IHZpYSB0aGUgYm91bmRzIG9yaWdpbiBvbiB0
aGlzIGxheWVyLCByYXRoZXIgdGhhbiBhIHBvc2l0aW9uIG9uIHRoZSBzdWJsYXllci4KKyAgICAg
ICAgc2V0TG9jYXRpb25PZlNjcm9sbGVkQ29udGVudHMoc2Nyb2xsT2Zmc2V0LCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOworICAgICAgICBtX293bmluZ0xheWVyLnNldFJlcXVp
cmVzU2Nyb2xsUG9zaXRpb25SZWNvbmNpbGlhdGlvbihmYWxzZSk7CisgICAgfQorfQorCiB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQWZ0ZXJEZXNjZW5kYW50cygpCiB7CiAgICAgLy8g
RklYTUU6IHRoaXMgcG90ZW50aWFsbHkgZHVwbGljYXRlcyB3b3JrIHdlIGRpZCBpbiB1cGRhdGVD
b25maWd1cmF0aW9uKCkuCkBAIC0xMzkxLDEyICsxMzk0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVEcmF3c0NvbnRlbnQoUGFpbnRlZENvbnRlbnRzSW5mbyYgY29udGVudHNJ
bmZvKQogICAgICAgICAvLyBXZSBkb24ndCBoYXZlIHRvIGNvbnNpZGVyIG92ZXJmbG93IGNvbnRy
b2xzLCBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgc2Nyb2xsYmFycyBhcmUgZHJhd24gZWxzZXdo
ZXJlLgogICAgICAgICAvLyBtX2dyYXBoaWNzTGF5ZXIgb25seSBuZWVkcyBiYWNraW5nIHN0b3Jl
IGlmIHRoZSBub24tc2Nyb2xsaW5nIHBhcnRzIChiYWNrZ3JvdW5kLCBvdXRsaW5lcywgYm9yZGVy
cywgc2hhZG93cyBldGMpIG5lZWQgdG8gcGFpbnQuCiAgICAgICAgIC8vIG1fc2Nyb2xsaW5nTGF5
ZXIgbmV2ZXIgaGFzIGJhY2tpbmcgc3RvcmUuCi0gICAgICAgIC8vIG1fc2Nyb2xsaW5nQ29udGVu
dHNMYXllciBvbmx5IG5lZWRzIGJhY2tpbmcgc3RvcmUgaWYgdGhlIHNjcm9sbGVkIGNvbnRlbnRz
IG5lZWQgdG8gcGFpbnQuCisgICAgICAgIC8vIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyIG9ubHkg
bmVlZHMgYmFja2luZyBzdG9yZSBpZiB0aGUgc2Nyb2xsZWQgY29udGVudHMgbmVlZCB0byBwYWlu
dC4KICAgICAgICAgYm9vbCBoYXNOb25TY3JvbGxpbmdQYWludGVkQ29udGVudCA9IG1fb3duaW5n
TGF5ZXIuaGFzVmlzaWJsZUNvbnRlbnQoKSAmJiBtX293bmluZ0xheWVyLmhhc1Zpc2libGVCb3hE
ZWNvcmF0aW9uc09yQmFja2dyb3VuZCgpOwogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldERy
YXdzQ29udGVudChoYXNOb25TY3JvbGxpbmdQYWludGVkQ29udGVudCk7CiAKICAgICAgICAgYm9v
bCBoYXNTY3JvbGxpbmdQYWludGVkQ29udGVudCA9IG1fb3duaW5nTGF5ZXIuaGFzVmlzaWJsZUNv
bnRlbnQoKSAmJiAocmVuZGVyZXIoKS5oYXNCYWNrZ3JvdW5kKCkgfHwgY29udGVudHNJbmZvLnBh
aW50c0NvbnRlbnQoKSk7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0RHJh
d3NDb250ZW50KGhhc1Njcm9sbGluZ1BhaW50ZWRDb250ZW50KTsKKyAgICAgICAgbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXItPnNldERyYXdzQ29udGVudChoYXNTY3JvbGxpbmdQYWludGVkQ29udGVu
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE3NDUsMjMgKzE3NDgsMjMgQEAgYm9v
bCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRzU2Ny
b2xsaW5nTGF5ZXJzKQogICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zZXRNYXNrc1RvQm91bmRz
KHRydWUpOwogCiAgICAgICAgIC8vIElubmVyIGxheWVyIHdoaWNoIHJlbmRlcnMgdGhlIGNvbnRl
bnQgdGhhdCBzY3JvbGxzLgotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIgPSBjcmVh
dGVHcmFwaGljc0xheWVyKCJzY3JvbGxlZCBjb250ZW50cyIpOwotICAgICAgICBtX3Njcm9sbGlu
Z0NvbnRlbnRzTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKLSAgICAgICAgbV9zY3JvbGxp
bmdDb250ZW50c0xheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOworICAgICAgICBtX3Njcm9sbGVk
Q29udGVudHNMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoInNjcm9sbGVkIGNvbnRlbnRzIik7
CisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7
CisgICAgICAgIG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOwog
CiAgICAgICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50UGhhc2UgPSBHcmFwaGlj
c0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzIHwgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRl
ZFNjcm9sbDsKICAgICAgICAgaWYgKCFtX2ZvcmVncm91bmRMYXllcikKICAgICAgICAgICAgIHBh
aW50UGhhc2UgfD0gR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZDsKLSAgICAgICAgbV9zY3Jv
bGxpbmdDb250ZW50c0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50UGhhc2UpOwotICAgICAg
ICBtX3Njcm9sbGluZ0xheWVyLT5hZGRDaGlsZCgqbV9zY3JvbGxpbmdDb250ZW50c0xheWVyKTsK
KyAgICAgICAgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXItPnNldFBhaW50aW5nUGhhc2UocGFpbnRQ
aGFzZSk7CisgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPmFkZENoaWxkKCptX3Njcm9sbGVkQ29u
dGVudHNMYXllcik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgY29tcG9zaXRvcigpLndpbGxSZW1v
dmVTY3JvbGxpbmdMYXllcldpdGhCYWNraW5nKG1fb3duaW5nTGF5ZXIsICp0aGlzKTsKIAogICAg
ICAgICB3aWxsRGVzdHJveUxheWVyKG1fc2Nyb2xsaW5nTGF5ZXIuZ2V0KCkpOwotICAgICAgICB3
aWxsRGVzdHJveUxheWVyKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKSk7CisgICAgICAg
IHdpbGxEZXN0cm95TGF5ZXIobV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIuZ2V0KCkpOwogICAgICAg
ICAKICAgICAgICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX3Njcm9sbGluZ0xh
eWVyKTsKLSAgICAgICAgR3JhcGhpY3NMYXllcjo6dW5wYXJlbnRBbmRDbGVhcihtX3Njcm9sbGlu
Z0NvbnRlbnRzTGF5ZXIpOworICAgICAgICBHcmFwaGljc0xheWVyOjp1bnBhcmVudEFuZENsZWFy
KG1fc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKICAgICB9CiAKICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldFBhaW50aW5nUGhhc2UocGFpbnRpbmdQaGFzZUZvclByaW1hcnlMYXllcigpKTsKQEAgLTE4
MzEsNyArMTgzNCw3IEBAIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIFJlbmRlckxheWVyQmFj
a2luZzo6cGFpbnRpbmdQaGFzZUZvclByaW1hcnlMYXllcigpIGNvCiAgICAgaWYgKCFtX2ZvcmVn
cm91bmRMYXllcikKICAgICAgICAgcGhhc2UgfD0gR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3Vu
ZDsKIAotICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpIHsKKyAgICBpZiAobV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIpIHsKICAgICAgICAgcGhhc2UgJj0gfkdyYXBoaWNzTGF5ZXJQYWlu
dEZvcmVncm91bmQ7CiAgICAgICAgIHBoYXNlIHw9IEdyYXBoaWNzTGF5ZXJQYWludENvbXBvc2l0
ZWRTY3JvbGw7CiAgICAgfQpAQCAtMjM5NCw4ICsyMzk3LDggQEAgRmxvYXRSZWN0IFJlbmRlckxh
eWVyQmFja2luZzo6YmFja2dyb3VuZEJveEZvclNpbXBsZUNvbnRhaW5lclBhaW50aW5nKCkgY29u
c3QKIAogR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJCYWNraW5nOjpwYXJlbnRGb3JTdWJsYXll
cnMoKSBjb25zdAogewotICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpCi0gICAgICAg
IHJldHVybiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCk7CisgICAgaWYgKG1fc2Nyb2xs
ZWRDb250ZW50c0xheWVyKQorICAgICAgICByZXR1cm4gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIu
Z2V0KCk7CiAKICAgICByZXR1cm4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIgPyBtX2NoaWxkQ29u
dGFpbm1lbnRMYXllci5nZXQoKSA6IG1fZ3JhcGhpY3NMYXllci5nZXQoKTsKIH0KQEAgLTI0ODAs
OCArMjQ4Myw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNw
bGF5KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xheWVyCiAgICAgaWYgKG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgp
KQogICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwog
Ci0gICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRz
TGF5ZXItPmRyYXdzQ29udGVudCgpKQotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgpOworICAgIGlmIChtX3Njcm9sbGVkQ29udGVudHNMYXllciAmJiBt
X3Njcm9sbGVkQ29udGVudHNMYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgIG1fc2Nyb2xs
ZWRDb250ZW50c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogLy8gciBpcyBpbiB0aGUg
Y29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgbGF5ZXIncyByZW5kZXIgb2JqZWN0CkBAIC0yNTI5LDE1
ICsyNTMyLDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoCiAgICAgICAgIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxheWVyRGlydHlSZWN0KTsKICAg
ICB9CiAKLSAgICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVyICYmIG1fc2Nyb2xsaW5nQ29u
dGVudHNMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICBpZiAobV9zY3JvbGxlZENvbnRlbnRz
TGF5ZXIgJiYgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAg
ICAgIEZsb2F0UmVjdCBsYXllckRpcnR5UmVjdCA9IHBpeGVsU25hcHBlZFJlY3RGb3JQYWludGlu
ZzsKLSAgICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
LT5vZmZzZXRGcm9tUmVuZGVyZXIoKSArIHRvTGF5b3V0U2l6ZShtX3Njcm9sbGluZ0NvbnRlbnRz
TGF5ZXItPnNjcm9sbE9mZnNldCgpKSAtIG1fc3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVyZXIpOwor
ICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX3Njcm9sbGVkQ29udGVudHNMYXllci0+b2Zm
c2V0RnJvbVJlbmRlcmVyKCkgKyB0b0xheW91dFNpemUobV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIt
PnNjcm9sbE9mZnNldCgpKSAtIG1fc3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVyZXIpOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIC8vIEFjY291bnQgZm9yIHRoZSBmYWN0IHRoYXQg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpIGJha2VzIHNjcm9sbE9mZnNldCBp
bnRvIG9mZnNldEZyb21SZW5kZXJlciBvbiBpT1MsCiAgICAgICAgIC8vIGJ1dCB0aGUgcmVwYWlu
dCByZWN0IGlzIGNvbXB1dGVkIHdpdGhvdXQgdGFraW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaW50
byBhY2NvdW50IChzZWUgc2hvdWxkQXBwbHlDbGlwQW5kU2Nyb2xsUG9zaXRpb25Gb3JSZXBhaW50
KCkpLgogICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlQnkoLW1fb3duaW5nTGF5ZXIuc2Nyb2xs
UG9zaXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QsIHNob3VsZENsaXApOworICAgICAg
ICBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxheWVyRGly
dHlSZWN0LCBzaG91bGRDbGlwKTsKICAgICB9CiB9CiAKQEAgLTI2MjMsNyArMjYyNiw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNr
Z3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21hc2tMYXll
ci5nZXQoKQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tM
YXllci5nZXQoKQotICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVu
dHNMYXllci5nZXQoKSkgeworICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsZWRD
b250ZW50c0xheWVyLmdldCgpKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFBhaW50KHJlbmRlcmVyKCkpOwogCiAgICAgICAgIGlmICghKHBhaW50aW5nUGhhc2UgJiBH
cmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKSkKQEAgLTMwNzksOCArMzA4Miw4IEBA
IGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkg
Y29uc3QKICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKQogICAgICAgICBiYWNraW5n
TWVtb3J5ICs9IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0
aW1hdGUoKTsKIAotICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpCi0gICAgICAgIGJh
Y2tpbmdNZW1vcnkgKz0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5iYWNraW5nU3RvcmVNZW1v
cnlFc3RpbWF0ZSgpOworICAgIGlmIChtX3Njcm9sbGVkQ29udGVudHNMYXllcikKKyAgICAgICAg
YmFja2luZ01lbW9yeSArPSBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+YmFja2luZ1N0b3JlTWVt
b3J5RXN0aW1hdGUoKTsKIAogICAgIGlmIChtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcikK
ICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+
YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCA2MzVhNzg4OTNjNWVhODcwNGRkMzZhOGY0ZDcw
NzhmMTRkNjczOTU2Li43YmIxM2Y5Zjc0M2VjNWIwZjM1ODM5MzhiMWNiZmM5MmRhZGI4ZDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTY3JvbGxpbmdMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nTGF5ZXIgIT0gbnVsbHB0cjsgfQogICAgIEdyYXBoaWNz
TGF5ZXIqIHNjcm9sbGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdMYXllci5n
ZXQoKTsgfQotICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGluZ0NvbnRlbnRzTGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KKyAgICBHcmFwaGlj
c0xheWVyKiBzY3JvbGxpbmdDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxl
ZENvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KIAogICAgIE9wdGlvblNldDxTY3JvbGxDb29yZGluYXRp
b25Sb2xlPiBjb29yZGluYXRlZFNjcm9sbGluZ1JvbGVzKCkgY29uc3Q7CiAKQEAgLTI5OCw2ICsy
OTgsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJhckxheWVy
KCkgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkgY29uc3Q7CiAg
ICAgYm9vbCB1cGRhdGVTY3JvbGxpbmdMYXllcnMoYm9vbCBzY3JvbGxpbmdMYXllcnMpOworICAg
IAorICAgIHZvaWQgdXBkYXRlU2Nyb2xsT2Zmc2V0KFNjcm9sbE9mZnNldCk7CisgICAgdm9pZCBz
ZXRMb2NhdGlvbk9mU2Nyb2xsZWRDb250ZW50cyhTY3JvbGxPZmZzZXQsIFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb24pOwogCiAgICAgdm9pZCB1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRlZ3ko
Ym9vbCBuZWVkc0Rlc2NlbmRhbnRzQ2xpcHBpbmdMYXllcik7CiAKQEAgLTM4Myw3ICszODYsNyBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yU2Nyb2xsQ29y
bmVyOwogCiAgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nTGF5ZXI7IC8vIE9u
bHkgdXNlZCBpZiB0aGUgbGF5ZXIgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCi0gICAg
UmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcjsgLy8gT25seSB1
c2VkIGlmIHRoZSBsYXllciBpcyB1c2luZyBjb21wb3NpdGVkIHNjcm9sbGluZy4KKyAgICBSZWZQ
dHI8R3JhcGhpY3NMYXllcj4gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXI7IC8vIE9ubHkgdXNlZCBp
ZiB0aGUgbGF5ZXIgaXMgdXNpbmcgY29tcG9zaXRlZCBzY3JvbGxpbmcuCiAKICAgICBMYXlvdXRS
ZWN0IG1fY29tcG9zaXRlZEJvdW5kczsKICAgICBMYXlvdXRTaXplIG1fc3VicGl4ZWxPZmZzZXRG
cm9tUmVuZGVyZXI7IC8vIFRoaXMgaXMgdGhlIHN1YnBpeGVsIGRpc3RhbmNlIGJldHdlZW4gdGhl
IHByaW1hcnkgZ3JhcGhpY3MgbGF5ZXIgYW5kIHRoZSBhc3NvY2lhdGVkIHJlbmRlcmVyJ3MgYm91
bmRzLgo=
</data>
<flag name="review"
          id="377651"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>