<?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>137689</bug_id>
          
          <creation_ts>2014-10-14 04:50:14 -0700</creation_ts>
          <short_desc>gl.detachShader breaks shader program</short_desc>
          <delta_ts>2017-09-11 22:55:12 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>OS X 10.9</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=98204</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>huscar</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>rleider</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041540</commentid>
    <comment_count>0</comment_count>
    <who name="">huscar</who>
    <bug_when>2014-10-14 04:50:14 -0700</bug_when>
    <thetext>Calling gl.detachShader after linking results in a program that doesn&apos;t draw anything (without error messages to the console). AFAIK this should not happen and using detachShader and deleteShader is encouraged to reduce memory usage.
Here&apos;s a good test from when firefox had similar problems https://bugzilla.mozilla.org/show_bug.cgi?id=867253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341359</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-22 16:57:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/34025056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341918</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-23 18:15:28 -0700</bug_when>
    <thetext>I am unable to reproduce this. See the attached test case which both detaches and deletes the shaders after linking the program, but before they are used in a draw call (and before they are used to get attribute and uniform locations).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341919</commentid>
    <comment_count>3</comment_count>
      <attachid>318952</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-23 18:15:51 -0700</bug_when>
    <thetext>Created attachment 318952
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341920</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-08-23 18:17:38 -0700</bug_when>
    <thetext>Also, the original demo on flohofwoe doesn&apos;t seem to work any more, in any browser. It also downloads rather than running directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346576</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-09-07 15:20:07 -0700</bug_when>
    <thetext>Oops. My test case is bad. This is really broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346670</commentid>
    <comment_count>6</comment_count>
      <attachid>320217</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-09-07 17:57:14 -0700</bug_when>
    <thetext>Created attachment 320217
Testcase

Better testcase. The triangle should be red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347036</commentid>
    <comment_count>7</comment_count>
      <attachid>320329</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-09-08 19:05:03 -0700</bug_when>
    <thetext>Created attachment 320329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347044</commentid>
    <comment_count>8</comment_count>
      <attachid>320329</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-09-08 20:20:05 -0700</bug_when>
    <thetext>Comment on attachment 320329
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        This fixes the bug, but the whole area is still a bit messy. For one,
&gt; +        we&apos;re keeping around all the shader information even after it is
&gt; +        no longer used.

Seems like we should have a bug tracking this issue.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:996
&gt; +    LinkedShaderMap::iterator result = m_linkedShaderMap.find(program);

Use auto here?

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1053
&gt; +    LinkedShaderMap::iterator result = m_linkedShaderMap.find(program);

auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347176</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-09-09 15:52:52 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #8)
&gt; 
&gt; Seems like we should have a bug tracking this issue.
&gt; 

https://bugs.webkit.org/show_bug.cgi?id=98204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347177</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-09-09 15:55:00 -0700</bug_when>
    <thetext>Committed r221831: &lt;http://trac.webkit.org/changeset/221831&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>318952</attachid>
            <date>2017-08-23 18:15:51 -0700</date>
            <delta_ts>2017-09-07 17:57:14 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>detachShader-before-using.html</filename>
            <type>text/html</type>
            <size>2859</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">PHN0eWxlPgpjYW52YXMgewogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAyMDBweDsKfQo8
L3N0eWxlPgo8L2hlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlclNvdXJjZSIgdHlwZT0idGV4
dC9nbHNsIj4KYXR0cmlidXRlIHZlYzQgcG9zaXRpb247CnZvaWQgbWFpbigpIHsKICBnbF9Qb3Np
dGlvbiA9IHBvc2l0aW9uOwp9Cjwvc2NyaXB0Pgo8c2NyaXB0IGlkPSJmcmFnbWVudFNoYWRlclNv
dXJjZSIgdHlwZT0idGV4dC9nbHNsIj4KcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CnVuaWZvcm0g
dmVjNCBjb2xvcjsKdm9pZCBtYWluKCkgewogIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAs
IDAuMCwgMS4wKTsKfQo8L3NjcmlwdD4KPHNjcmlwdD4KCmZ1bmN0aW9uIGRyYXdUcmlhbmdsZSgp
IHsKCiAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CiAg
ICBjYW52YXMud2lkdGggPSAyMDA7CiAgICBjYW52YXMuaGVpZ2h0ID0gMjAwOwogICAgdmFyIGds
ID0gY2FudmFzLmdldENvbnRleHQoIndlYmdsIik7CgogICAgdmFyIHZlcnRleFNoYWRlciA9IGds
LmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKTsKICAgIGdsLnNoYWRlclNvdXJjZSh2ZXJ0
ZXhTaGFkZXIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0ZXhTaGFkZXJTb3VyY2UiKS50
ZXh0Q29udGVudCk7CiAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRleFNoYWRlcik7CiAgICBpZiAo
IWdsLmdldFNoYWRlclBhcmFtZXRlcih2ZXJ0ZXhTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSkg
ewogICAgICAgIGNvbnNvbGUuZXJyb3IoIlZlcnRleCBTaGFkZXIgZmFpbGVkIHRvIGNvbXBpbGUu
Iik7CiAgICAgICAgY29uc29sZS5sb2coZ2wuZ2V0U2hhZGVySW5mb0xvZyh2ZXJ0ZXhTaGFkZXIp
KTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIGZyYWdtZW50U2hhZGVyID0gZ2wuY3Jl
YXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CiAgICBnbC5zaGFkZXJTb3VyY2UoZnJhZ21l
bnRTaGFkZXIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFnbWVudFNoYWRlclNvdXJjZSIp
LnRleHRDb250ZW50KTsKICAgIGdsLmNvbXBpbGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpOwogICAg
aWYgKCFnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoZnJhZ21lbnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RB
VFVTKSkgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIkZyYWdtZW50IFNoYWRlciBmYWlsZWQgdG8g
Y29tcGlsZS4iKTsKICAgICAgICBjb25zb2xlLmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKGZyYWdt
ZW50U2hhZGVyKSk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciBwcm9ncmFtID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOwogICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHZlcnRleFNoYWRl
cik7CiAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpOwogICAgZ2wu
bGlua1Byb2dyYW0ocHJvZ3JhbSk7CgogICAgaWYgKCFnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKSkgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIlVuYWJsZSB0
byBsaW5rIHNoYWRlcnMgaW50byBwcm9ncmFtLiIpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAg
ICBnbC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKICAgIGdsLmRldGFjaFNo
YWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CiAgICBnbC5kZWxldGVTaGFkZXIodmVydGV4
U2hhZGVyKTsKICAgIGdsLmRlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRlcik7CgogICAgZ2wudXNl
UHJvZ3JhbShwcm9ncmFtKTsKCiAgICB2YXIgY29sb3JVbmlmb3JtID0gZ2wuZ2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW0sICJjb2xvciIpOwogICAgdmFyIHBvc2l0aW9uQXR0cmlidXRlID0gZ2wu
Z2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgInBvc2l0aW9uIik7CiAgICBnbC5lbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheShwb3NpdGlvbkF0dHJpYnV0ZSk7CgogICAgdmFyIHZlcnRpY2VzID0gbmV3
IEZsb2F0MzJBcnJheShbCiAgICAgICAtMC44LCAtMC4zLAogICAgICAgMC43LCAtMC44LAogICAg
ICAgMC41NSwgMC43NQogICAgXSk7CgogICAgdmFyIHRyaWFuZ2xlQnVmZmVyID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CgogICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRyaWFuZ2xlQnVm
ZmVyKTsKICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0aWNlcywgZ2wuU1RB
VElDX0RSQVcpOwoKICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMSk7CiAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUKTsKCiAgICB2YXIgbm93ID0gRGF0ZS5ub3coKTsKICAgIHZhciBj
b2xvciA9IFsKICAgICAgICAoTWF0aC5zaW4obm93IC8gMTAwMCkgKyAxKSAvIDIsCiAgICAgICAg
KE1hdGguY29zKDMgKiBub3cgLyAxMDAwKSArIDEpIC8gMiwKICAgICAgICAoTWF0aC5zaW4oMi4z
ICogbm93IC8gMTAwMCkgKyAxKSAvIDIsCiAgICAgICAgMQogICAgXTsKICAgIGdsLnVuaWZvcm00
ZnYoY29sb3JVbmlmb3JtLCBjb2xvcik7CgogICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZG
RVIsIHRyaWFuZ2xlQnVmZmVyKTsKICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIocG9zaXRpb25B
dHRyaWJ1dGUsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CgogICAgZ2wuZHJhd0FycmF5cyhn
bC5UUklBTkdMRVMsIDAsIDMpOwp9Cgp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRy
YXdUcmlhbmdsZSwgZmFsc2UpOwo8L3NjcmlwdD4KPGJvZHk+CiAgICA8Y2FudmFzPjwvY2FudmFz
Pgo8L2JvZHk+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>320217</attachid>
            <date>2017-09-07 17:57:14 -0700</date>
            <delta_ts>2017-09-07 17:57:14 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>detachShader-before-accessing-uniform.html</filename>
            <type>text/html</type>
            <size>2721</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">PHN0eWxlPgpjYW52YXMgewogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAyMDBweDsKfQo8
L3N0eWxlPgo8L2hlYWQ+CjxzY3JpcHQgaWQ9InZlcnRleFNoYWRlclNvdXJjZSIgdHlwZT0idGV4
dC9nbHNsIj4KYXR0cmlidXRlIHZlYzQgcG9zaXRpb247CnZvaWQgbWFpbigpIHsKICBnbF9Qb3Np
dGlvbiA9IHBvc2l0aW9uOwp9Cjwvc2NyaXB0Pgo8c2NyaXB0IGlkPSJmcmFnbWVudFNoYWRlclNv
dXJjZSIgdHlwZT0idGV4dC9nbHNsIj4KcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CnVuaWZvcm0g
dmVjNCBjb2xvcjsKdm9pZCBtYWluKCkgewogIGdsX0ZyYWdDb2xvciA9IGNvbG9yOwp9Cjwvc2Ny
aXB0Pgo8c2NyaXB0PgoKZnVuY3Rpb24gZHJhd1RyaWFuZ2xlKCkgewoKICAgIHZhciBjYW52YXMg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKICAgIGNhbnZhcy53aWR0aCA9IDIw
MDsKICAgIGNhbnZhcy5oZWlnaHQgPSAyMDA7CiAgICB2YXIgZ2wgPSBjYW52YXMuZ2V0Q29udGV4
dCgid2ViZ2wiKTsKCiAgICB2YXIgdmVydGV4U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZF
UlRFWF9TSEFERVIpOwogICAgZ2wuc2hhZGVyU291cmNlKHZlcnRleFNoYWRlciwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInZlcnRleFNoYWRlclNvdXJjZSIpLnRleHRDb250ZW50KTsKICAgIGds
LmNvbXBpbGVTaGFkZXIodmVydGV4U2hhZGVyKTsKICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1l
dGVyKHZlcnRleFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7CiAgICAgICAgY29uc29sZS5l
cnJvcigiVmVydGV4IFNoYWRlciBmYWlsZWQgdG8gY29tcGlsZS4iKTsKICAgICAgICBjb25zb2xl
LmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKHZlcnRleFNoYWRlcikpOwogICAgICAgIHJldHVybjsK
ICAgIH0KCiAgICB2YXIgZnJhZ21lbnRTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01F
TlRfU0hBREVSKTsKICAgIGdsLnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZyYWdtZW50U2hhZGVyU291cmNlIikudGV4dENvbnRlbnQpOwogICAg
Z2wuY29tcGlsZVNoYWRlcihmcmFnbWVudFNoYWRlcik7CiAgICBpZiAoIWdsLmdldFNoYWRlclBh
cmFtZXRlcihmcmFnbWVudFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7CiAgICAgICAgY29u
c29sZS5lcnJvcigiRnJhZ21lbnQgU2hhZGVyIGZhaWxlZCB0byBjb21waWxlLiIpOwogICAgICAg
IGNvbnNvbGUubG9nKGdsLmdldFNoYWRlckluZm9Mb2coZnJhZ21lbnRTaGFkZXIpKTsKICAgICAg
ICByZXR1cm47CiAgICB9CgogICAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CiAg
ICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKICAgIGdsLmF0dGFjaFNo
YWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CiAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFt
KTsKCiAgICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFU
VVMpKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigiVW5hYmxlIHRvIGxpbmsgc2hhZGVycyBpbnRv
IHByb2dyYW0uIik7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGdsLmRldGFjaFNoYWRlcihw
cm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOwogICAgZ2wuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdt
ZW50U2hhZGVyKTsKICAgIGdsLmRlbGV0ZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpOwogICAgZ2wuZGVs
ZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVyKTsKCiAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOwoK
ICAgIHZhciBjb2xvclVuaWZvcm0gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImNv
bG9yIik7CiAgICBjb25zb2xlLmxvZyhjb2xvclVuaWZvcm0pOwogICAgdmFyIHBvc2l0aW9uQXR0
cmlidXRlID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgInBvc2l0aW9uIik7CiAgICBn
bC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NpdGlvbkF0dHJpYnV0ZSk7CgogICAgdmFyIHZl
cnRpY2VzID0gbmV3IEZsb2F0MzJBcnJheShbCiAgICAgICAtMC44LCAtMC4zLAogICAgICAgMC43
LCAtMC44LAogICAgICAgMC41NSwgMC43NQogICAgXSk7CgogICAgdmFyIHRyaWFuZ2xlQnVmZmVy
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CgogICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIs
IHRyaWFuZ2xlQnVmZmVyKTsKICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0
aWNlcywgZ2wuU1RBVElDX0RSQVcpOwoKICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMSk7CiAg
ICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKCiAgICB2YXIgbm93ID0gRGF0ZS5ub3co
KTsKICAgIGdsLnVuaWZvcm00ZnYoY29sb3JVbmlmb3JtLCBbMS4wLCAwLjAsIDAuMCwgMS4wXSk7
CgogICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRyaWFuZ2xlQnVmZmVyKTsKICAg
IGdsLnZlcnRleEF0dHJpYlBvaW50ZXIocG9zaXRpb25BdHRyaWJ1dGUsIDIsIGdsLkZMT0FULCBm
YWxzZSwgMCwgMCk7CgogICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpOwp9Cgp3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRyYXdUcmlhbmdsZSwgZmFsc2UpOwo8L3Nj
cmlwdD4KPGJvZHk+CiAgICA8Y2FudmFzPjwvY2FudmFzPgo8L2JvZHk+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320329</attachid>
            <date>2017-09-08 19:05:03 -0700</date>
            <delta_ts>2017-09-09 13:36:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137689-20170909120459.patch</filename>
            <type>text/plain</type>
            <size>15322</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhmODM0NGVkZDQ5MjBh
YzMxZTBmMzI4ZWYyNmFiMTNhOWI0ZjkwMS4uYWQzOWNkZTQ5MmNjM2VkYmE0NWM1YjNlNDc1MjU3
MWIxYjczYmFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA5LTA4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBnbC5kZXRhY2hTaGFkZXIgYnJl
YWtzIHNoYWRlciBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzc2ODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MDI1MDU2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHNob3VsZCBi
ZSBwb3NzaWJsZSB0byBjb21waWxlIHNoYWRlcnMsIGF0dGFjaCB0aGVtIHRvIGEgcHJvZ3JhbSwK
KyAgICAgICAgbGluayB0aGUgcHJvZ3JhbSwgZGV0YWNoIHRoZSBzaGFkZXJzLCBkZWxldGUgdGhl
IHNoYWRlcnMsIGFuZCB0aGVuCisgICAgICAgIGFzayBmb3IgdGhlIHVuaWZvcm0gYW5kIGF0dHJp
YnV0ZSBsb2NhdGlvbnMuIFRoYXQgaXMsIG9uY2UgeW91J3ZlCisgICAgICAgIGxpbmtlZCwgdGhl
IHNoYWRlcnMgY2FuIGJlIHRocm93biBhd2F5LgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgdGhl
IGF0dGFjaGVkIHNoYWRlcnMgdG8gbG9vayB1cCB1bmlmb3JtIGxvY2F0aW9ucywgc28KKyAgICAg
ICAgd2Ugbm93IGtlZXAgYXJvdW5kIGEgc2VwYXJhdGUgbWFwIHRoYXQgcmVtZW1iZXJzIHdoYXQg
c2hhZGVycyB3ZXJlCisgICAgICAgIGF0dGFjaGVkIHdoZW4gdGhlIHByb2dyYW0gbGlua3MuCisK
KyAgICAgICAgVGhpcyBmaXhlcyB0aGUgYnVnLCBidXQgdGhlIHdob2xlIGFyZWEgaXMgc3RpbGwg
YSBiaXQgbWVzc3kuIEZvciBvbmUsCisgICAgICAgIHdlJ3JlIGtlZXBpbmcgYXJvdW5kIGFsbCB0
aGUgc2hhZGVyIGluZm9ybWF0aW9uIGV2ZW4gYWZ0ZXIgaXQgaXMKKyAgICAgICAgbm8gbG9uZ2Vy
IHVzZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvZGV0YWNoU2hhZGVyLWJl
Zm9yZS1hY2Nlc3NpbmctdW5pZm9ybS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5oOiBBZGQgYW5vdGhlciBtYXAgdG8gcmVtZW1iZXIKKyAgICAg
ICAgd2hhdCBzaGFkZXJzIHdlcmUgdXNlZCB3aGVuIGEgcHJvZ3JhbSB3YXMgbGlua2VkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6bWFwcGVkU3lt
Ym9sSW5TaGFkZXJTb3VyY2VNYXApOiBOZXcgaGVscGVyCisgICAgICAgIHRvIGxvb2sgdXAgYSBu
YW1lIGluIG91ciBzb3VyY2UgbWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjptYXBwZWRTeW1ib2xOYW1lKTogVXNlIHRoZSBoZWxwZXIsIGFuZCBsb29rCisgICAgICAg
IGF0IGxpbmtlZCBzaGFkZXJzIGlmIHRoZXJlIGFyZSBubyBhdHRhY2hlZCBzaGFkZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om9yaWdpbmFsU3ltYm9sSW5TaGFkZXJT
b3VyY2VNYXApOiBEb2VzIHRoZQorICAgICAgICByZXZlcnNlIG9mIHRoZSBhYm92ZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpvcmlnaW5hbFN5bWJvbE5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKTogQWRkIHRvIHRo
ZSBuZXcgbWFwLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVBy
b2dyYW0pOiBEZWxldGUgdGhlIHByb2dyYW0gZnJvbQorICAgICAgICBvdXIgc2hhZGVyIGVudHJp
ZXMuCisKIDIwMTctMDktMDYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJHTF0gYWNjZWxlcmF0ZWQgdGV4SW1hZ2UyRCBmb3IgdmlkZW8gZG9lc24ndCByZXNw
ZWN0IGZsaXBZCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaAppbmRleCAwODAyYjQxYjM5YjA0Yjk0NWY3ZDkxODZjNGI4YjE4ZGZh
MDM0Y2M4Li5lM2ZjOTFiZDFmNTc4MGM3NGY4MmMyZGRkOTBlN2Q4ZmQ0YWE2NjQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgKQEAgLTEzNDgsOSArMTM0OCwxNCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfTsKIAor
ICAgIC8vIEZJWE1FOiBTaGFkZXJzIGFyZSBuZXZlciByZW1vdmVkIGZyb20gdGhpcyBtYXAsIGV2
ZW4gaWYgdGhleSBhbmQgdGhlaXIgcHJvZ3JhbSBhcmUgZGVsZXRlZC4KKyAgICAvLyBUaGlzIGlz
IGJhZCwgYW5kIGl0IGFsc28gcmVsaWVzIG9uIHRoZSBmYWN0IHdlIG5ldmVyIHJldXNlIFBsYXRm
b3JtM0RPYmplY3QgbnVtYmVycy4KICAgICB0eXBlZGVmIEhhc2hNYXA8UGxhdGZvcm0zRE9iamVj
dCwgU2hhZGVyU291cmNlRW50cnk+IFNoYWRlclNvdXJjZU1hcDsKICAgICBTaGFkZXJTb3VyY2VN
YXAgbV9zaGFkZXJTb3VyY2VNYXA7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8UGxhdGZvcm0zRE9i
amVjdCwgc3RkOjpwYWlyPFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3Q+PiBMaW5r
ZWRTaGFkZXJNYXA7CisgICAgTGlua2VkU2hhZGVyTWFwIG1fbGlua2VkU2hhZGVyTWFwOworCiAg
ICAgc3RydWN0IEFjdGl2ZVNoYWRlclN5bWJvbENvdW50cyB7CiAgICAgICAgIFZlY3RvcjxHQzNE
aW50PiBmaWx0ZXJlZFRvQWN0dWFsQXR0cmlidXRlSW5kZXhNYXA7CiAgICAgICAgIFZlY3RvcjxH
QzNEaW50PiBmaWx0ZXJlZFRvQWN0dWFsVW5pZm9ybUluZGV4TWFwOwpAQCAtMTM3Nyw2ICsxMzgy
LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbWFwcGVkU3ltYm9sTmFtZShQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsK
ICAgICBTdHJpbmcgbWFwcGVkU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcnNbMl0s
IHNpemVfdCBjb3VudCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBTdHJpbmcgb3JpZ2luYWxT
eW1ib2xOYW1lKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgQU5HTEVTaGFkZXJTeW1ib2xUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBwZWRT
eW1ib2xJblNoYWRlclNvdXJjZU1hcChQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgQU5HTEVTaGFk
ZXJTeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBvcmlnaW5hbFN5bWJvbEluU2hhZGVyU291cmNlTWFwKFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyLCBBTkdMRVNoYWRlclN5bWJvbFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVyczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggYjhk
YTRmOTA2YWQ3NzQ5MGJkNjZiZTA0MzNlNmQ2OWY2M2E0Y2I4Mi4uNzhmMDcyNzkxY2JlOTZiZGQ2
MzdhOWQ4YmNhYjUyZjRjMWJlNDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCkBAIC05NjUsNiArOTY1LDIxIEBAIHN0YXRpYyBTdHJpbmcgZ2Vu
ZXJhdGVIYXNoZWROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOwogfQogCitzdGQ6Om9wdGlvbmFsPFN0cmluZz4gR3JhcGhpY3NDb250ZXh0M0Q6
Om1hcHBlZFN5bWJvbEluU2hhZGVyU291cmNlTWFwKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBB
TkdMRVNoYWRlclN5bWJvbFR5cGUgc3ltYm9sVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorewor
ICAgIGF1dG8gcmVzdWx0ID0gbV9zaGFkZXJTb3VyY2VNYXAuZmluZChzaGFkZXIpOworICAgIGlm
IChyZXN1bHQgPT0gbV9zaGFkZXJTb3VyY2VNYXAuZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBjb25zdCBhdXRvJiBzeW1ib2xNYXAgPSByZXN1bHQtPnZhbHVlLnN5
bWJvbE1hcChzeW1ib2xUeXBlKTsKKyAgICBhdXRvIHN5bWJvbEVudHJ5ID0gc3ltYm9sTWFwLmZp
bmQobmFtZSk7CisgICAgaWYgKHN5bWJvbEVudHJ5ID09IHN5bWJvbE1hcC5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8mIG1hcHBlZE5hbWUgPSBzeW1ib2xF
bnRyeS0+dmFsdWUubWFwcGVkTmFtZTsKKyAgICByZXR1cm4gU3RyaW5nKG1hcHBlZE5hbWUuY19z
dHIoKSwgbWFwcGVkTmFtZS5sZW5ndGgoKSk7Cit9CisKIFN0cmluZyBHcmFwaGljc0NvbnRleHQz
RDo6bWFwcGVkU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEFOR0xFU2hhZGVy
U3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgR0MzRHNp
emVpIGNvdW50ID0gMDsKQEAgLTk3MiwxNiArOTg3LDIxIEBAIFN0cmluZyBHcmFwaGljc0NvbnRl
eHQzRDo6bWFwcGVkU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEFOR0xFU2hh
ZGVyCiAgICAgZ2V0QXR0YWNoZWRTaGFkZXJzKHByb2dyYW0sIDIsICZjb3VudCwgc2hhZGVycyk7
CiAKICAgICBmb3IgKEdDM0RzaXplaSBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAg
U2hhZGVyU291cmNlTWFwOjppdGVyYXRvciByZXN1bHQgPSBtX3NoYWRlclNvdXJjZU1hcC5maW5k
KHNoYWRlcnNbaV0pOwotICAgICAgICBpZiAocmVzdWx0ID09IG1fc2hhZGVyU291cmNlTWFwLmVu
ZCgpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8gbWFwcGVkTmFtZSA9IG1h
cHBlZFN5bWJvbEluU2hhZGVyU291cmNlTWFwKHNoYWRlcnNbaV0sIHN5bWJvbFR5cGUsIG5hbWUp
OworICAgICAgICBpZiAobWFwcGVkTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBtYXBwZWROYW1l
LnZhbHVlKCk7CisgICAgfQogCi0gICAgICAgIGNvbnN0IFNoYWRlclN5bWJvbE1hcCYgc3ltYm9s
TWFwID0gcmVzdWx0LT52YWx1ZS5zeW1ib2xNYXAoc3ltYm9sVHlwZSk7Ci0gICAgICAgIFNoYWRl
clN5bWJvbE1hcDo6Y29uc3RfaXRlcmF0b3Igc3ltYm9sRW50cnkgPSBzeW1ib2xNYXAuZmluZChu
YW1lKTsKLSAgICAgICAgaWYgKHN5bWJvbEVudHJ5ICE9IHN5bWJvbE1hcC5lbmQoKSkgewotICAg
ICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG1hcHBlZE5hbWUgPSBzeW1ib2xFbnRyeS0+dmFs
dWUubWFwcGVkTmFtZTsKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcobWFwcGVkTmFtZS5jX3N0
cigpLCBtYXBwZWROYW1lLmxlbmd0aCgpKTsKLSAgICAgICAgfQorICAgIC8vIFdlIG1pZ2h0IGhh
dmUgZGV0YWNoZWQgb3IgZGVsZXRlZCB0aGUgc2hhZGVycyBhZnRlciBsaW5raW5nLgorICAgIExp
bmtlZFNoYWRlck1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gbV9saW5rZWRTaGFkZXJNYXAuZmluZChw
cm9ncmFtKTsKKyAgICBpZiAocmVzdWx0ICE9IG1fbGlua2VkU2hhZGVyTWFwLmVuZCgpKSB7Cisg
ICAgICAgIGF1dG8gbGlua2VkU2hhZGVycyA9IHJlc3VsdC0+dmFsdWU7CisgICAgICAgIGF1dG8g
bWFwcGVkTmFtZSA9IG1hcHBlZFN5bWJvbEluU2hhZGVyU291cmNlTWFwKGxpbmtlZFNoYWRlcnMu
Zmlyc3QsIHN5bWJvbFR5cGUsIG5hbWUpOworICAgICAgICBpZiAobWFwcGVkTmFtZSkKKyAgICAg
ICAgICAgIHJldHVybiBtYXBwZWROYW1lLnZhbHVlKCk7CisgICAgICAgIG1hcHBlZE5hbWUgPSBt
YXBwZWRTeW1ib2xJblNoYWRlclNvdXJjZU1hcChsaW5rZWRTaGFkZXJzLnNlY29uZCwgc3ltYm9s
VHlwZSwgbmFtZSk7CisgICAgICAgIGlmIChtYXBwZWROYW1lKQorICAgICAgICAgICAgcmV0dXJu
IG1hcHBlZE5hbWUudmFsdWUoKTsKICAgICB9CiAKICAgICBpZiAoc3ltYm9sVHlwZSA9PSBTSEFE
RVJfU1lNQk9MX1RZUEVfQVRUUklCVVRFICYmICFuYW1lLmlzRW1wdHkoKSkgewpAQCAtOTkxLDcg
KzEwMTEsNyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6Om1hcHBlZFN5bWJvbE5hbWUoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBBTkdMRVNoYWRlcgogICAgICAgICAgICAgbmFtZUhhc2hN
YXBGb3JTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxTaGFkZXJOYW1lSGFzaD4oKTsKICAgICAg
ICAgc2V0Q3VycmVudE5hbWVIYXNoTWFwRm9yU2hhZGVyKG5hbWVIYXNoTWFwRm9yU2hhZGVycy5n
ZXQoKSk7CiAKLSAgICAgICAgU3RyaW5nIGdlbmVyYXRlZE5hbWUgPSBnZW5lcmF0ZUhhc2hlZE5h
bWUobmFtZSk7CisgICAgICAgIGF1dG8gZ2VuZXJhdGVkTmFtZSA9IGdlbmVyYXRlSGFzaGVkTmFt
ZShuYW1lKTsKIAogICAgICAgICBzZXRDdXJyZW50TmFtZUhhc2hNYXBGb3JTaGFkZXIobnVsbHB0
cik7CiAKQEAgLTEwMDIsNyArMTAyMiwyMSBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6Om1h
cHBlZFN5bWJvbE5hbWUoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBBTkdMRVNoYWRlcgogCiAg
ICAgcmV0dXJuIG5hbWU7CiB9Ci0gICAgCisKK3N0ZDo6b3B0aW9uYWw8U3RyaW5nPiBHcmFwaGlj
c0NvbnRleHQzRDo6b3JpZ2luYWxTeW1ib2xJblNoYWRlclNvdXJjZU1hcChQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlciwgQU5HTEVTaGFkZXJTeW1ib2xUeXBlIHN5bWJvbFR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1fc2hhZGVyU291cmNlTWFwLmZpbmQoc2hh
ZGVyKTsKKyAgICBpZiAocmVzdWx0ID09IG1fc2hhZGVyU291cmNlTWFwLmVuZCgpKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgY29uc3QgYXV0byYgc3ltYm9sTWFwID0gcmVz
dWx0LT52YWx1ZS5zeW1ib2xNYXAoc3ltYm9sVHlwZSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBz
eW1ib2xFbnRyeSA6IHN5bWJvbE1hcCkgeworICAgICAgICBpZiAobmFtZSA9PSBzeW1ib2xFbnRy
eS52YWx1ZS5tYXBwZWROYW1lLmNfc3RyKCkpCisgICAgICAgICAgICByZXR1cm4gc3ltYm9sRW50
cnkua2V5OworICAgIH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiBTdHJpbmcgR3Jh
cGhpY3NDb250ZXh0M0Q6Om9yaWdpbmFsU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHByb2dy
YW0sIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSBzeW1ib2xUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUp
CiB7CiAgICAgR0MzRHNpemVpIGNvdW50OwpAQCAtMTAxMCwxNSArMTA0NCwyMSBAQCBTdHJpbmcg
R3JhcGhpY3NDb250ZXh0M0Q6Om9yaWdpbmFsU3ltYm9sTmFtZShQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0sIEFOR0xFU2hhZAogICAgIGdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCAyLCAmY291
bnQsIHNoYWRlcnMpOwogICAgIAogICAgIGZvciAoR0MzRHNpemVpIGkgPSAwOyBpIDwgY291bnQ7
ICsraSkgewotICAgICAgICBTaGFkZXJTb3VyY2VNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fc2hh
ZGVyU291cmNlTWFwLmZpbmQoc2hhZGVyc1tpXSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gbV9z
aGFkZXJTb3VyY2VNYXAuZW5kKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCi0g
ICAgICAgIGNvbnN0IFNoYWRlclN5bWJvbE1hcCYgc3ltYm9sTWFwID0gcmVzdWx0LT52YWx1ZS5z
eW1ib2xNYXAoc3ltYm9sVHlwZSk7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgc3ltYm9sRW50
cnkgOiBzeW1ib2xNYXApIHsKLSAgICAgICAgICAgIGlmIChuYW1lID09IHN5bWJvbEVudHJ5LnZh
bHVlLm1hcHBlZE5hbWUuY19zdHIoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sRW50
cnkua2V5OwotICAgICAgICB9CisgICAgICAgIGF1dG8gb3JpZ2luYWxOYW1lID0gb3JpZ2luYWxT
eW1ib2xJblNoYWRlclNvdXJjZU1hcChzaGFkZXJzW2ldLCBzeW1ib2xUeXBlLCBuYW1lKTsKKyAg
ICAgICAgaWYgKG9yaWdpbmFsTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbE5hbWUu
dmFsdWUoKTsKKyAgICB9CisKKyAgICAvLyBXZSBtaWdodCBoYXZlIGRldGFjaGVkIG9yIGRlbGV0
ZWQgdGhlIHNoYWRlcnMgYWZ0ZXIgbGlua2luZy4KKyAgICBMaW5rZWRTaGFkZXJNYXA6Oml0ZXJh
dG9yIHJlc3VsdCA9IG1fbGlua2VkU2hhZGVyTWFwLmZpbmQocHJvZ3JhbSk7CisgICAgaWYgKHJl
c3VsdCAhPSBtX2xpbmtlZFNoYWRlck1hcC5lbmQoKSkgeworICAgICAgICBhdXRvIGxpbmtlZFNo
YWRlcnMgPSByZXN1bHQtPnZhbHVlOworICAgICAgICBhdXRvIG9yaWdpbmFsTmFtZSA9IG9yaWdp
bmFsU3ltYm9sSW5TaGFkZXJTb3VyY2VNYXAobGlua2VkU2hhZGVycy5maXJzdCwgc3ltYm9sVHlw
ZSwgbmFtZSk7CisgICAgICAgIGlmIChvcmlnaW5hbE5hbWUpCisgICAgICAgICAgICByZXR1cm4g
b3JpZ2luYWxOYW1lLnZhbHVlKCk7CisgICAgICAgIG9yaWdpbmFsTmFtZSA9IG9yaWdpbmFsU3lt
Ym9sSW5TaGFkZXJTb3VyY2VNYXAobGlua2VkU2hhZGVycy5zZWNvbmQsIHN5bWJvbFR5cGUsIG5h
bWUpOworICAgICAgICBpZiAob3JpZ2luYWxOYW1lKQorICAgICAgICAgICAgcmV0dXJuIG9yaWdp
bmFsTmFtZS52YWx1ZSgpOwogICAgIH0KIAogICAgIGlmIChzeW1ib2xUeXBlID09IFNIQURFUl9T
WU1CT0xfVFlQRV9BVFRSSUJVVEUgJiYgIW5hbWUuaXNFbXB0eSgpKSB7CkBAIC0xMTkzLDYgKzEy
MzMsMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9i
amVjdCBwcm9ncmFtKQogewogICAgIEFTU0VSVChwcm9ncmFtKTsKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKKworICAgIEdDM0RzaXplaSBjb3VudCA9IDA7CisgICAgUGxhdGZvcm0zRE9iamVj
dCBzaGFkZXJzWzJdID0geyB9OworICAgIGdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCAyLCAm
Y291bnQsIHNoYWRlcnMpOworCisgICAgaWYgKGNvdW50ID09IDIpCisgICAgICAgIG1fbGlua2Vk
U2hhZGVyTWFwLnNldChwcm9ncmFtLCBzdGQ6Om1ha2VfcGFpcihzaGFkZXJzWzBdLCBzaGFkZXJz
WzFdKSk7CisKICAgICA6OmdsTGlua1Byb2dyYW0ocHJvZ3JhbSk7CiB9CiAKQEAgLTE5MDQsNiAr
MTk1Miw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZUZyYW1lYnVmZmVyKFBsYXRm
b3JtM0RPYmplY3QgZnJhbWVidWZmZXIpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZWxldGVQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKKyAgICBtX3NoYWRlclByb2dyYW1TeW1ib2xDb3VudE1hcC5yZW1vdmUocHJvZ3JhbSk7
CiAgICAgZ2xEZWxldGVQcm9ncmFtKHByb2dyYW0pOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAzMWZjZGQ0NzQy
YmJmNmZlOGQyNjJhMjcxYzlkZDFjM2EzNGExZi4uNGU2ODYzMGZkN2VjNzllYTQwYjY5MzVhZDMy
MTE1YmVmMzY0NWM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA5LTA4ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBnbC5kZXRhY2hTaGFkZXIgYnJlYWtz
IHNoYWRlciBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzc2ODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MDI1MDU2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBkZXRh
Y2hlcyBhbmQgZGVsZXRlcyBzaGFkZXJzIGFmdGVyIGxpbmtpbmcsIGJ1dCBiZWZvcmUKKyAgICAg
ICAgYXNraW5nIGZvciB1bmlmb3JtIGxvY2F0aW9ucy4KKworICAgICAgICAqIGZhc3QvY2FudmFz
L3dlYmdsL2RldGFjaFNoYWRlci1iZWZvcmUtYWNjZXNzaW5nLXVuaWZvcm0tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9kZXRhY2hTaGFkZXItYmVmb3Jl
LWFjY2Vzc2luZy11bmlmb3JtLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA5LTA2ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIGFjY2VsZXJhdGVkIHRleElt
YWdlMkQgZm9yIHZpZGVvIGRvZXNuJ3QgcmVzcGVjdCBmbGlwWQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGV0YWNoU2hhZGVyLWJlZm9yZS1hY2Nlc3NpbmctdW5p
Zm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kZXRhY2hT
aGFkZXItYmVmb3JlLWFjY2Vzc2luZy11bmlmb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
OTliYWMwMjQzOTQxNDc2N2RkZWUyYmY5MDY4N2U1ZDQ5NjlhNjA1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGV0YWNoU2hhZGVyLWJlZm9yZS1hY2Nl
c3NpbmctdW5pZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitWZXJ0ZXggU2hhZGVy
IGNvbXBpbGVkLgorRnJhZ21lbnQgU2hhZGVyIGNvbXBpbGVkLgorUHJvZ3JhbSBsaW5rZWQuIERl
dGFjaGluZyBhbmQgZGVsZXRpbmcgc2hhZGVycy4KK0NvbG9yIHVuaWZvcm0gbG9jYXRpb24gd2Fz
IGlkZW50aWZpZWQuCitQb3NpdGlvbiBhdHRyaWJ1dGUgbG9jYXRpb24gd2FzIGlkZW50aWZpZWQu
CitEcmF3bi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGV0
YWNoU2hhZGVyLWJlZm9yZS1hY2Nlc3NpbmctdW5pZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvZGV0YWNoU2hhZGVyLWJlZm9yZS1hY2Nlc3NpbmctdW5pZm9ybS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUwYzkxNzVhOGY5NDhkNmJjYjgwNDM4MWJhYWFmOGMyOTY0ZTBiNDYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kZXRhY2hTaGFk
ZXItYmVmb3JlLWFjY2Vzc2luZy11bmlmb3JtLmh0bWwKQEAgLTAsMCArMSwxMjIgQEAKKzxzdHls
ZT4KK2NhbnZhcyB7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAwcHg7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPHNjcmlwdCBpZD0idmVydGV4U2hhZGVyU291cmNlIiB0eXBlPSJ0
ZXh0L2dsc2wiPgorYXR0cmlidXRlIHZlYzQgcG9zaXRpb247Cit2b2lkIG1haW4oKSB7CisgIGds
X1Bvc2l0aW9uID0gcG9zaXRpb247Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9ImZyYWdtZW50
U2hhZGVyU291cmNlIiB0eXBlPSJ0ZXh0L2dsc2wiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
Cit1bmlmb3JtIHZlYzQgY29sb3I7Cit2b2lkIG1haW4oKSB7CisgIGdsX0ZyYWdDb2xvciA9IGNv
bG9yOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBvdXRwdXQobXNnKSB7CisgICAg
bGV0IGQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKTsKKyAgICBkLmlubmVySFRNTCAr
PSBgJHttc2d9PGJyPmA7Cit9CisKK2Z1bmN0aW9uIGRyYXdUcmlhbmdsZSgpIHsKKworICAgIGxl
dCBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTsKKyAgICBjYW52YXMu
d2lkdGggPSAyMDA7CisgICAgY2FudmFzLmhlaWdodCA9IDIwMDsKKyAgICBsZXQgZ2wgPSBjYW52
YXMuZ2V0Q29udGV4dCgid2ViZ2wiKTsKKworICAgIGxldCB2ZXJ0ZXhTaGFkZXIgPSBnbC5jcmVh
dGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CisgICAgZ2wuc2hhZGVyU291cmNlKHZlcnRleFNo
YWRlciwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcnRleFNoYWRlclNvdXJjZSIpLnRleHRD
b250ZW50KTsKKyAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRleFNoYWRlcik7CisgICAgaWYgKCFn
bC5nZXRTaGFkZXJQYXJhbWV0ZXIodmVydGV4U2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykpIHsK
KyAgICAgICAgb3V0cHV0KCJWZXJ0ZXggU2hhZGVyIGZhaWxlZCB0byBjb21waWxlLiIpOworICAg
ICAgICBjb25zb2xlLmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKHZlcnRleFNoYWRlcikpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG91dHB1dCgiVmVydGV4IFNoYWRlciBjb21waWxlZC4i
KTsKKworICAgIGxldCBmcmFnbWVudFNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVO
VF9TSEFERVIpOworICAgIGdsLnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZyYWdtZW50U2hhZGVyU291cmNlIikudGV4dENvbnRlbnQpOworICAg
IGdsLmNvbXBpbGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpOworICAgIGlmICghZ2wuZ2V0U2hhZGVy
UGFyYW1ldGVyKGZyYWdtZW50U2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykpIHsKKyAgICAgICAg
b3V0cHV0KCJGcmFnbWVudCBTaGFkZXIgZmFpbGVkIHRvIGNvbXBpbGUuIik7CisgICAgICAgIGNv
bnNvbGUubG9nKGdsLmdldFNoYWRlckluZm9Mb2coZnJhZ21lbnRTaGFkZXIpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBvdXRwdXQoIkZyYWdtZW50IFNoYWRlciBjb21waWxlZC4iKTsK
KworICAgIGxldCBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICAgIGdsLmF0dGFjaFNo
YWRlcihwcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpOworICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFt
LCBmcmFnbWVudFNoYWRlcik7CisgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisKKyAgICBp
ZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpKSB7Cisg
ICAgICAgIG91dHB1dCgiVW5hYmxlIHRvIGxpbmsgc2hhZGVycyBpbnRvIHByb2dyYW0uIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgb3V0cHV0KCJQcm9ncmFtIGxpbmtlZC4gRGV0YWNo
aW5nIGFuZCBkZWxldGluZyBzaGFkZXJzLiIpOworCisgICAgZ2wuZGV0YWNoU2hhZGVyKHByb2dy
YW0sIHZlcnRleFNoYWRlcik7CisgICAgZ2wuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50
U2hhZGVyKTsKKyAgICBnbC5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKTsKKyAgICBnbC5kZWxl
dGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpOworCisgICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsK
KworICAgIGxldCBjb2xvclVuaWZvcm0gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwg
ImNvbG9yIik7CisgICAgaWYgKGNvbG9yVW5pZm9ybSkKKyAgICAgICAgb3V0cHV0KCJDb2xvciB1
bmlmb3JtIGxvY2F0aW9uIHdhcyBpZGVudGlmaWVkLiIpOworICAgIGVsc2UgeworICAgICAgICBv
dXRwdXQoIkZBSUw6IENvbG9yIHVuaWZvcm0gbG9jYXRpb24gd2FzIG5vdCBmb3VuZC4iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxldCBwb3NpdGlvbkF0dHJpYnV0ZSA9IGdsLmdl
dEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJwb3NpdGlvbiIpOworICAgIGlmIChwb3NpdGlvbkF0
dHJpYnV0ZSA+PSAwKQorICAgICAgICBvdXRwdXQoIlBvc2l0aW9uIGF0dHJpYnV0ZSBsb2NhdGlv
biB3YXMgaWRlbnRpZmllZC4iKTsKKyAgICBlbHNlIHsKKyAgICAgICAgb3V0cHV0KCJGQUlMOiBQ
b3NpdGlvbiBhdHRyaWJ1dGUgbG9jYXRpb24gd2FzIG5vdCBmb3VuZC4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHBvc2l0aW9uQXR0
cmlidXRlKTsKKworICAgIGxldCB2ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAg
IC0wLjgsIC0wLjMsCisgICAgICAgMC43LCAtMC44LAorICAgICAgIDAuNTUsIDAuNzUKKyAgICBd
KTsKKworICAgIGxldCB0cmlhbmdsZUJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworCisgICAg
Z2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRyaWFuZ2xlQnVmZmVyKTsKKyAgICBnbC5i
dWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdmVydGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKwor
ICAgIGdsLmNsZWFyQ29sb3IoMCwgMCwgMCwgMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCk7CisKKyAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTsKKyAgICBnbC51bmlmb3JtNGZ2
KGNvbG9yVW5pZm9ybSwgWzEuMCwgMC4wLCAwLjAsIDEuMF0pOworCisgICAgZ2wuYmluZEJ1ZmZl
cihnbC5BUlJBWV9CVUZGRVIsIHRyaWFuZ2xlQnVmZmVyKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKHBvc2l0aW9uQXR0cmlidXRlLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworCisg
ICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpOworICAgIG91dHB1dCgiRHJhd24u
Iik7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZHJhd1RyaWFuZ2xlLCBm
YWxzZSk7Cis8L3NjcmlwdD4KKzxib2R5PgorICAgIDxjYW52YXM+PC9jYW52YXM+CisgICAgPGRp
dj48L2Rpdj4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="340449"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>