<?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>191452</bug_id>
          
          <creation_ts>2018-11-08 20:35:05 -0800</creation_ts>
          <short_desc>[Windows][DirectX] Be more rigorous about BeginFigure/EndFigure and Close operations</short_desc>
          <delta_ts>2018-11-09 10:45:02 -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>WebCore Misc.</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>
          
          <blocked>191411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>sabouhallawa</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>1476783</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-08 20:35:05 -0800</bug_when>
    <thetext>The ID2D1GeometrySink used to represent segments of an open Path require that all cases of BeginFigure be matched with a corresponding EndFigure. If the BeginFigure/EndFigure counts do not match when the sink is closed, the sink will enter an error state and will not draw content.

This patch keeps track of the BeginFigure/EndFigure operations, and ensures the calls are in balance before closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476784</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-08 20:37:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/45933964&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476801</commentid>
    <comment_count>2</comment_count>
      <attachid>354314</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-08 21:45:42 -0800</bug_when>
    <thetext>Created attachment 354314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476805</commentid>
    <comment_count>3</comment_count>
      <attachid>354315</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-08 22:13:59 -0800</bug_when>
    <thetext>Created attachment 354315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476806</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-08 22:19:24 -0800</bug_when>
    <thetext>This moves us up to 580/767.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476944</commentid>
    <comment_count>5</comment_count>
      <attachid>354315</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-09 09:32:39 -0800</bug_when>
    <thetext>Comment on attachment 354315
Patch

Clearing flags on attachment: 354315

Committed r238037: &lt;https://trac.webkit.org/changeset/238037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476945</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-09 09:32:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476963</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-11-09 10:03:35 -0800</bug_when>
    <thetext>Checked in as &quot;rigors&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476987</commentid>
    <comment_count>8</comment_count>
      <attachid>354315</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-11-09 10:45:02 -0800</bug_when>
    <thetext>Comment on attachment 354315
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +      
&gt; +

An extra line here.

&gt; Source/WebCore/platform/graphics/Path.h:216
&gt; +        size_t m_openFigureCount { 0 };

Why it is size_t? Should not it be just unsigned?

&gt; Source/WebCore/platform/graphics/win/PathDirect2D.cpp:227
&gt;      m_activePath-&gt;BeginFigure(currentPoint, D2D1_FIGURE_BEGIN_FILLED);
&gt; -    m_doesHaveOpenFigure = true;
&gt; +    ++m_openFigureCount;

This makes the code a little hard to read. closeAnyOpenGeometries() hides the cumbersomeness of m_openFigureCount. But here and every call to BeginFigure, you have to increment m_openFigureCount. Why do not we add a function for opening the figure similar to Path::closeAnyOpenGeometries().

void Path::openFigure(const FloatPoint&amp; point)
{
    m_activePath-&gt;BeginFigure(point, D2D1_FIGURE_BEGIN_FILLED);
   ++m_openFigureCount;
}

&gt; Source/WebCore/platform/graphics/win/PathDirect2D.cpp:277
&gt; +void Path::closeAnyOpenGeometries()
&gt; +{
&gt; +    ASSERT(m_activePath);
&gt; +
&gt; +    if (!m_openFigureCount)
&gt; +        return;
&gt; +
&gt; +    while (m_openFigureCount) {
&gt; +        m_activePath-&gt;EndFigure(D2D1_FIGURE_END_OPEN);
&gt; +        --m_openFigureCount;
&gt; +    }
&gt; +
&gt; +    HRESULT hr = m_activePath-&gt;Close();
&gt; +    ASSERT(SUCCEEDED(hr));
&gt; +}

I think this function does more than its name says. It closes all the opened figures and closes m_activePath. I would suggest naming it Path::closePath(). I noticed there is a function named Path::closeSubpath() which ends one figure and closes m_activePath.

&gt; Source/WebCore/platform/graphics/win/PathDirect2D.cpp:297
&gt;          m_activePath = nullptr;
&gt;          m_activePathGeometry = nullptr;

Why do not we move these assignments to closeAnyOpenGeometries()?

&gt; Source/WebCore/platform/graphics/win/PathDirect2D.cpp:508
&gt; +    if (!m_activePath) {
&gt; +        ASSERT(!m_openFigureCount);
&gt; +        ASSERT(!m_activePathGeometry);
&gt; +        return;
&gt; +    }

These kind of assertions/dependencies make me feel these data members should be encapsulated in one struct or class.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354314</attachid>
            <date>2018-11-08 21:45:42 -0800</date>
            <delta_ts>2018-11-08 22:13:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191452-20181108214539.patch</filename>
            <type>text/plain</type>
            <size>5687</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTA4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXVtEaXJlY3RY
XSBCZSBtb3JlIHJpZ29ycyBhYm91dCBCZWdpbkZpZ3VyZS9FbmRGaWd1cmUgYW5kIENsb3NlIG9w
ZXJhdGlvbnMuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxNDUyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTkzMzk2ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEbyBhIGJldHRlciBqb2Igb2Yg
YmFsYW5jaW5nIHRoZSBCZWdpbkZpZ3VyZS9FbmRGaWd1cmUgY2FsbHMgaW4KKyAgICAgICAgdGhl
IFBhdGhEaXJlY3QyRCBpbXBsZW1lbnRhdGlvbi4gRmFpbHVyZSB0byBkbyBzbyBwdXRzIHRoZSBH
ZW9tZXRyeSBzaW5rCisgICAgICAgIGludG8gYW4gZXJyb3Igc3RhdGUgdGhhdCBwcmV2ZW50cyBp
dCBmcm9tIHByb2R1Y2luZyBkcmF3aW5nIG91dHB1dC4KKyAgICAgIAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Q
YXRoRGlyZWN0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6ZHJhd0RpZENvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmNsb3NlQW55T3Blbkdlb21ldHJpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6UGF0aDo6dHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6
Om9wZW5GaWd1cmVBdEN1cnJlbnRQb2ludElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlBhdGg6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjbG9zZVN1YnBhdGgpOgor
CiAyMDE4LTExLTA4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGFuIFNQSSB0byBhbGxvdyBXZWJWaWV3IGNsaWVudHMgdG8gYWRkIGFk
ZGl0aW9uYWwgc3VwcG9ydGVkIGltYWdlIGZvcm1hdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHJldmlzaW9uIDIzNzk4OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDYgKzIwMSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBIUkVTVUxUIGluaXRpYWxpemVQYXRo
U3RhdGUoKTsKICAgICAgICAgdm9pZCBvcGVuRmlndXJlQXRDdXJyZW50UG9pbnRJZk5lY2Vzc2Fy
eSgpOworICAgICAgICB2b2lkIGNsb3NlQW55T3Blbkdlb21ldHJpZXMoKTsKICNlbmRpZgogCiAj
aWZuZGVmIE5ERUJVRwpAQCAtMjEyLDcgKzIxMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgQ09NUHRyPElEMkQxR2VvbWV0cnlHcm91cD4gbV9wYXRoOwogICAgICAgICBDT01QdHI8
SUQyRDFQYXRoR2VvbWV0cnk+IG1fYWN0aXZlUGF0aEdlb21ldHJ5OwogICAgICAgICBDT01QdHI8
SUQyRDFHZW9tZXRyeVNpbms+IG1fYWN0aXZlUGF0aDsKLSAgICAgICAgYm9vbCBtX2RvZXNIYXZl
T3BlbkZpZ3VyZSB7IGZhbHNlIH07CisgICAgICAgIHNpemVfdCBtX29wZW5GaWd1cmVDb3VudCB7
IDAgfTsKICNlbHNlCiAgICAgICAgIFBsYXRmb3JtUGF0aFB0ciBtX3BhdGggeyBudWxscHRyIH07
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9QYXRo
RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9QYXRoRGlyZWN0MkQuY3BwCShyZXZpc2lvbiAyMzc5ODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0aERpcmVjdDJELmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgUGF0aDo6ZHJhd0RpZENvbXBsZXRlKCkKICAgICBt
X2FjdGl2ZVBhdGgtPlNldEZpbGxNb2RlKEQyRDFfRklMTF9NT0RFX1dJTkRJTkcpOwogCiAgICAg
bV9hY3RpdmVQYXRoLT5CZWdpbkZpZ3VyZShjdXJyZW50UG9pbnQsIEQyRDFfRklHVVJFX0JFR0lO
X0ZJTExFRCk7Ci0gICAgbV9kb2VzSGF2ZU9wZW5GaWd1cmUgPSB0cnVlOworICAgICsrbV9vcGVu
RmlndXJlQ291bnQ7CiB9CiAKIGJvb2wgUGF0aDo6Y29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQsIFdpbmRSdWxlIHJ1bGUpIGNvbnN0CkBAIC0yNjAsNiArMjYwLDIyIEBAIGJvb2wgUGF0
aDo6c3Ryb2tlQ29udGFpbnMoU3Ryb2tlU3R5bGVBcHAKICAgICByZXR1cm4gY29udGFpbnNQb2lu
dDsKIH0KIAordm9pZCBQYXRoOjpjbG9zZUFueU9wZW5HZW9tZXRyaWVzKCkKK3sKKyAgICBBU1NF
UlQobV9hY3RpdmVQYXRoKTsKKworICAgIGlmICghbV9vcGVuRmlndXJlQ291bnQpCisgICAgICAg
IHJldHVybjsKKworICAgIHdoaWxlIChtX29wZW5GaWd1cmVDb3VudCkgeworICAgICAgICBtX2Fj
dGl2ZVBhdGgtPkVuZEZpZ3VyZShEMkQxX0ZJR1VSRV9FTkRfT1BFTik7CisgICAgICAgIC0tbV9v
cGVuRmlndXJlQ291bnQ7CisgICAgfQorCisgICAgSFJFU1VMVCBociA9IG1fYWN0aXZlUGF0aC0+
Q2xvc2UoKTsKKyAgICBBU1NFUlQoU1VDQ0VFREVEKGhyKSk7Cit9CisKIHZvaWQgUGF0aDo6dHJh
bnNsYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIHsKICAgICB0cmFuc2Zvcm0oQWZmaW5lVHJh
bnNmb3JtKDEsIDAsIDAsIDEsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwpAQCAtMjc2
LDkgKzI5Miw3IEBAIHZvaWQgUGF0aDo6dHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm8KIAog
ICAgIGJvb2wgcGF0aElzQWN0aXZlID0gZmFsc2U7CiAgICAgaWYgKG1fYWN0aXZlUGF0aCkgewot
ICAgICAgICBtX2FjdGl2ZVBhdGgtPkVuZEZpZ3VyZShEMkQxX0ZJR1VSRV9FTkRfT1BFTik7Ci0g
ICAgICAgIG1fZG9lc0hhdmVPcGVuRmlndXJlID0gZmFsc2U7Ci0gICAgICAgIG1fYWN0aXZlUGF0
aC0+Q2xvc2UoKTsKKyAgICAgICAgY2xvc2VBbnlPcGVuR2VvbWV0cmllcygpOwogICAgICAgICBt
X2FjdGl2ZVBhdGggPSBudWxscHRyOwogICAgICAgICBtX2FjdGl2ZVBhdGhHZW9tZXRyeSA9IG51
bGxwdHI7CiAgICAgICAgIHBhdGhJc0FjdGl2ZSA9IHRydWU7CkBAIC0zMTEsNyArMzI1LDcgQEAg
dm9pZCBQYXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmbwogCiAgICAgYXV0byB0cmFu
c2Zvcm1lZFBvaW50ID0gdHJhbnNmb3JtLm1hcFBvaW50KGN1cnJlbnRQb2ludC52YWx1ZSgpKTsK
ICAgICBtX2FjdGl2ZVBhdGgtPkJlZ2luRmlndXJlKHRyYW5zZm9ybWVkUG9pbnQsIEQyRDFfRklH
VVJFX0JFR0lOX0ZJTExFRCk7Ci0gICAgbV9kb2VzSGF2ZU9wZW5GaWd1cmUgPSB0cnVlOworICAg
IG1fb3BlbkZpZ3VyZUNvdW50ID0gMTsKIH0KIAogRmxvYXRSZWN0IFBhdGg6OmJvdW5kaW5nUmVj
dCgpIGNvbnN0CkBAIC0zNTUsMjEgKzM2OSwyMCBAQCBGbG9hdFJlY3QgUGF0aDo6c3Ryb2tlQm91
bmRpbmdSZWN0KFN0cm9rCiAKIHZvaWQgUGF0aDo6b3BlbkZpZ3VyZUF0Q3VycmVudFBvaW50SWZO
ZWNlc3NhcnkoKQogewotICAgIGlmIChtX2RvZXNIYXZlT3BlbkZpZ3VyZSkKKyAgICBpZiAobV9v
cGVuRmlndXJlQ291bnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlUGF0aC0+U2V0
RmlsbE1vZGUoRDJEMV9GSUxMX01PREVfV0lORElORyk7CiAgICAgbV9hY3RpdmVQYXRoLT5CZWdp
bkZpZ3VyZShjdXJyZW50UG9pbnQoKSwgRDJEMV9GSUdVUkVfQkVHSU5fRklMTEVEKTsKLSAgICBt
X2RvZXNIYXZlT3BlbkZpZ3VyZSA9IHRydWU7CisgICAgKyttX29wZW5GaWd1cmVDb3VudDsKIH0K
IAogdm9pZCBQYXRoOjptb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCiB7CiAgICAgaWYg
KG1fYWN0aXZlUGF0aCkgewotICAgICAgICBtX2FjdGl2ZVBhdGgtPkNsb3NlKCk7CisgICAgICAg
IGNsb3NlQW55T3Blbkdlb21ldHJpZXMoKTsKICAgICAgICAgbV9hY3RpdmVQYXRoID0gbnVsbHB0
cjsKICAgICAgICAgbV9hY3RpdmVQYXRoR2VvbWV0cnkgPSBudWxscHRyOwotICAgICAgICBtX2Rv
ZXNIYXZlT3BlbkZpZ3VyZSA9IGZhbHNlOwogICAgIH0KIAogICAgIEdyYXBoaWNzQ29udGV4dDo6
c3lzdGVtRmFjdG9yeSgpLT5DcmVhdGVQYXRoR2VvbWV0cnkoJm1fYWN0aXZlUGF0aEdlb21ldHJ5
KTsKQEAgLTM4MSw3ICszOTQsNyBAQCB2b2lkIFBhdGg6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50
JiBwb2luCiAKICAgICBtX2FjdGl2ZVBhdGgtPlNldEZpbGxNb2RlKEQyRDFfRklMTF9NT0RFX1dJ
TkRJTkcpOwogICAgIG1fYWN0aXZlUGF0aC0+QmVnaW5GaWd1cmUocG9pbnQsIEQyRDFfRklHVVJF
X0JFR0lOX0ZJTExFRCk7Ci0gICAgbV9kb2VzSGF2ZU9wZW5GaWd1cmUgPSB0cnVlOworICAgIG1f
b3BlbkZpZ3VyZUNvdW50ID0gMTsKIH0KIAogdm9pZCBQYXRoOjphZGRMaW5lVG8oY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQpCkBAIC00ODgsMTQgKzUwMSwyNCBAQCB2b2lkIFBhdGg6OmNsb3NlU3Vi
cGF0aCgpCiAgICAgaWYgKGlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9h
Y3RpdmVQYXRoKSB7Ci0gICAgICAgIG1fYWN0aXZlUGF0aC0+RW5kRmlndXJlKEQyRDFfRklHVVJF
X0VORF9DTE9TRUQpOwotICAgICAgICBtX2FjdGl2ZVBhdGgtPkNsb3NlKCk7Ci0gICAgICAgIG1f
YWN0aXZlUGF0aCA9IG51bGxwdHI7Ci0gICAgICAgIG1fYWN0aXZlUGF0aEdlb21ldHJ5ID0gbnVs
bHB0cjsKKyAgICBpZiAoIW1fYWN0aXZlUGF0aCkgeworICAgICAgICBBU1NFUlQoIW1fb3BlbkZp
Z3VyZUNvdW50KTsKKyAgICAgICAgQVNTRVJUKCFtX2FjdGl2ZVBhdGhHZW9tZXRyeSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fb3BlbkZpZ3VyZUNvdW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2FjdGl2ZVBhdGgtPkVuZEZpZ3VyZShEMkQxX0ZJR1VSRV9FTkRf
Q0xPU0VEKTsKKyAgICAtLW1fb3BlbkZpZ3VyZUNvdW50OworICAgIGlmIChtX29wZW5GaWd1cmVD
b3VudCA+IDApIHsKKyAgICAgICAgQVNTRVJUKG1fYWN0aXZlUGF0aEdlb21ldHJ5KTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZG9lc0hhdmVPcGVuRmlndXJlID0gZmFsc2U7Cisg
ICAgSFJFU1VMVCBociA9IG1fYWN0aXZlUGF0aC0+Q2xvc2UoKTsKKyAgICBBU1NFUlQoU1VDQ0VF
REVEKGhyKSk7CiB9CiAKIHN0YXRpYyBGbG9hdFBvaW50IGFyY1N0YXJ0KGNvbnN0IEZsb2F0UG9p
bnQmIGNlbnRlciwgZmxvYXQgcmFkaXVzLCBmbG9hdCBzdGFydEFuZ2xlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354315</attachid>
            <date>2018-11-08 22:13:59 -0800</date>
            <delta_ts>2018-11-09 09:32:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191452-20181108221357.patch</filename>
            <type>text/plain</type>
            <size>7720</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODAxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE4LTExLTA4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXVtEaXJlY3RY
XSBCZSBtb3JlIHJpZ29ycyBhYm91dCBCZWdpbkZpZ3VyZS9FbmRGaWd1cmUgYW5kIENsb3NlIG9w
ZXJhdGlvbnMuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxNDUyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTkzMzk2ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEbyBhIGJldHRlciBqb2Igb2Yg
YmFsYW5jaW5nIHRoZSBCZWdpbkZpZ3VyZS9FbmRGaWd1cmUgY2FsbHMgaW4KKyAgICAgICAgdGhl
IFBhdGhEaXJlY3QyRCBpbXBsZW1lbnRhdGlvbi4gRmFpbHVyZSB0byBkbyBzbyBwdXRzIHRoZSBH
ZW9tZXRyeSBzaW5rCisgICAgICAgIGludG8gYW4gZXJyb3Igc3RhdGUgdGhhdCBwcmV2ZW50cyBp
dCBmcm9tIHByb2R1Y2luZyBkcmF3aW5nIG91dHB1dC4KKyAgICAgIAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmRyYXdQYXRoKTogRmx1c2ggaXMgbmVlZGVkIGhlcmUuCisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vUGF0aERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmRy
YXdEaWRDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXRoOjpjbG9zZUFueU9wZW5HZW9t
ZXRyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhdGg6OnRyYW5zZm9ybSk6CisgICAgICAgIChX
ZWJDb3JlOjpQYXRoOjpvcGVuRmlndXJlQXRDdXJyZW50UG9pbnRJZk5lY2Vzc2FyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXRoOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6UGF0aDo6Y2xv
c2VTdWJwYXRoKToKKwogMjAxOC0xMS0wOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxh
d2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBTUEkgdG8gYWxsb3cgV2ViVmlldyBjbGll
bnRzIHRvIGFkZCBhZGRpdGlvbmFsIHN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCShyZXZpc2lvbiAyMzc5ODkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwMSw2ICsyMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSFJFU1VMVCBp
bml0aWFsaXplUGF0aFN0YXRlKCk7CiAgICAgICAgIHZvaWQgb3BlbkZpZ3VyZUF0Q3VycmVudFBv
aW50SWZOZWNlc3NhcnkoKTsKKyAgICAgICAgdm9pZCBjbG9zZUFueU9wZW5HZW9tZXRyaWVzKCk7
CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKQEAgLTIxMiw3ICsyMTMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIENPTVB0cjxJRDJEMUdlb21ldHJ5R3JvdXA+IG1fcGF0aDsKICAg
ICAgICAgQ09NUHRyPElEMkQxUGF0aEdlb21ldHJ5PiBtX2FjdGl2ZVBhdGhHZW9tZXRyeTsKICAg
ICAgICAgQ09NUHRyPElEMkQxR2VvbWV0cnlTaW5rPiBtX2FjdGl2ZVBhdGg7Ci0gICAgICAgIGJv
b2wgbV9kb2VzSGF2ZU9wZW5GaWd1cmUgeyBmYWxzZSB9OworICAgICAgICBzaXplX3QgbV9vcGVu
RmlndXJlQ291bnQgeyAwIH07CiAjZWxzZQogICAgICAgICBQbGF0Zm9ybVBhdGhQdHIgbV9wYXRo
IHsgbnVsbHB0ciB9OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5j
cHAJKHJldmlzaW9uIDIzNzk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0MCw2
ICs5NDAsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdGgoY29uc3QgUGF0CiAgICAg
ICAgIGF1dG8gYnJ1c2ggPSBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPyBwYXR0ZXJuU3Ryb2tlQnJ1
c2goKSA6IHNvbGlkU3Ryb2tlQnJ1c2goKTsKICAgICAgICAgcmVuZGVyVGFyZ2V0LT5EcmF3R2Vv
bWV0cnkocGF0aC5wbGF0Zm9ybVBhdGgoKSwgYnJ1c2gsIHN0cm9rZVRoaWNrbmVzcygpLCBtX2Rh
dGEtPnN0cm9rZVN0eWxlKCkpOwogICAgIH0pOworCisgICAgZmx1c2goKTsKIH0KIAogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdXaXRob3V0U2hhZG93KGNvbnN0IEZsb2F0UmVjdCYgLypib3Vu
ZGluZ1JlY3QqLywgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKElEMkQxUmVuZGVyVGFyZ2V0Kik+
JiBkcmF3Q29tbWFuZHMpCkBAIC0xMDQzLDYgKzEwNDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZmlsbFBhdGgoY29uc3QgUGF0CiAgICAgICAgICAgICBkcmF3V2l0aFNoYWRvdyhib3VuZGlu
Z1JlY3QsIGRyYXdGdW5jdGlvbik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRyYXdXaXRo
b3V0U2hhZG93KGJvdW5kaW5nUmVjdCwgZHJhd0Z1bmN0aW9uKTsKKworICAgICAgICBmbHVzaCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDU5LDYgKzEwNjMsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0CiAgICAgICAgIGF1dG8gYnJ1c2ggPSBt
X3N0YXRlLmZpbGxQYXR0ZXJuID8gcGF0dGVybkZpbGxCcnVzaCgpIDogc29saWRGaWxsQnJ1c2go
KTsKICAgICAgICAgcmVuZGVyVGFyZ2V0LT5GaWxsR2VvbWV0cnkocGF0aFRvRmlsbC5nZXQoKSwg
YnJ1c2gpOwogICAgIH0pOworCisgICAgZmx1c2goKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKQEAgLTEwODksNiArMTA5NSw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFAKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgZHJhd1dpdGhvdXRTaGFkb3coYm91bmRpbmdSZWN0LCBkcmF3RnVuY3Rpb24pOwog
CisgICAgICAgIGZsdXNoKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExMDIsNiAr
MTEwOSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFAKICAgICAg
ICAgYXV0byBicnVzaCA9IG1fc3RhdGUuc3Ryb2tlUGF0dGVybiA/IHBhdHRlcm5TdHJva2VCcnVz
aCgpIDogc29saWRTdHJva2VCcnVzaCgpOwogICAgICAgICByZW5kZXJUYXJnZXQtPkRyYXdHZW9t
ZXRyeShwYXRoLnBsYXRmb3JtUGF0aCgpLCBicnVzaCwgc3Ryb2tlVGhpY2tuZXNzKCksIG1fZGF0
YS0+c3Ryb2tlU3R5bGUoKSk7CiAgICAgfSk7CisKKyAgICBmbHVzaCgpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1BhdGhEaXJlY3QyRC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1BhdGhEaXJlY3Qy
RC5jcHAJKHJldmlzaW9uIDIzNzk4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9QYXRoRGlyZWN0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsNyArMjI0LDcg
QEAgdm9pZCBQYXRoOjpkcmF3RGlkQ29tcGxldGUoKQogICAgIG1fYWN0aXZlUGF0aC0+U2V0Rmls
bE1vZGUoRDJEMV9GSUxMX01PREVfV0lORElORyk7CiAKICAgICBtX2FjdGl2ZVBhdGgtPkJlZ2lu
RmlndXJlKGN1cnJlbnRQb2ludCwgRDJEMV9GSUdVUkVfQkVHSU5fRklMTEVEKTsKLSAgICBtX2Rv
ZXNIYXZlT3BlbkZpZ3VyZSA9IHRydWU7CisgICAgKyttX29wZW5GaWd1cmVDb3VudDsKIH0KIAog
Ym9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgV2luZFJ1bGUgcnVs
ZSkgY29uc3QKQEAgLTI2MCw2ICsyNjAsMjIgQEAgYm9vbCBQYXRoOjpzdHJva2VDb250YWlucyhT
dHJva2VTdHlsZUFwcAogICAgIHJldHVybiBjb250YWluc1BvaW50OwogfQogCit2b2lkIFBhdGg6
OmNsb3NlQW55T3Blbkdlb21ldHJpZXMoKQoreworICAgIEFTU0VSVChtX2FjdGl2ZVBhdGgpOwor
CisgICAgaWYgKCFtX29wZW5GaWd1cmVDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hp
bGUgKG1fb3BlbkZpZ3VyZUNvdW50KSB7CisgICAgICAgIG1fYWN0aXZlUGF0aC0+RW5kRmlndXJl
KEQyRDFfRklHVVJFX0VORF9PUEVOKTsKKyAgICAgICAgLS1tX29wZW5GaWd1cmVDb3VudDsKKyAg
ICB9CisKKyAgICBIUkVTVUxUIGhyID0gbV9hY3RpdmVQYXRoLT5DbG9zZSgpOworICAgIEFTU0VS
VChTVUNDRUVERUQoaHIpKTsKK30KKwogdm9pZCBQYXRoOjp0cmFuc2xhdGUoY29uc3QgRmxvYXRT
aXplJiBzaXplKQogewogICAgIHRyYW5zZm9ybShBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgMCwgMSwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CkBAIC0yNzYsOSArMjkyLDcgQEAgdm9pZCBQ
YXRoOjp0cmFuc2Zvcm0oY29uc3QgQWZmaW5lVHJhbnNmbwogCiAgICAgYm9vbCBwYXRoSXNBY3Rp
dmUgPSBmYWxzZTsKICAgICBpZiAobV9hY3RpdmVQYXRoKSB7Ci0gICAgICAgIG1fYWN0aXZlUGF0
aC0+RW5kRmlndXJlKEQyRDFfRklHVVJFX0VORF9PUEVOKTsKLSAgICAgICAgbV9kb2VzSGF2ZU9w
ZW5GaWd1cmUgPSBmYWxzZTsKLSAgICAgICAgbV9hY3RpdmVQYXRoLT5DbG9zZSgpOworICAgICAg
ICBjbG9zZUFueU9wZW5HZW9tZXRyaWVzKCk7CiAgICAgICAgIG1fYWN0aXZlUGF0aCA9IG51bGxw
dHI7CiAgICAgICAgIG1fYWN0aXZlUGF0aEdlb21ldHJ5ID0gbnVsbHB0cjsKICAgICAgICAgcGF0
aElzQWN0aXZlID0gdHJ1ZTsKQEAgLTMxMSw3ICszMjUsNyBAQCB2b2lkIFBhdGg6OnRyYW5zZm9y
bShjb25zdCBBZmZpbmVUcmFuc2ZvCiAKICAgICBhdXRvIHRyYW5zZm9ybWVkUG9pbnQgPSB0cmFu
c2Zvcm0ubWFwUG9pbnQoY3VycmVudFBvaW50LnZhbHVlKCkpOwogICAgIG1fYWN0aXZlUGF0aC0+
QmVnaW5GaWd1cmUodHJhbnNmb3JtZWRQb2ludCwgRDJEMV9GSUdVUkVfQkVHSU5fRklMTEVEKTsK
LSAgICBtX2RvZXNIYXZlT3BlbkZpZ3VyZSA9IHRydWU7CisgICAgbV9vcGVuRmlndXJlQ291bnQg
PSAxOwogfQogCiBGbG9hdFJlY3QgUGF0aDo6Ym91bmRpbmdSZWN0KCkgY29uc3QKQEAgLTM1NSwy
MSArMzY5LDIwIEBAIEZsb2F0UmVjdCBQYXRoOjpzdHJva2VCb3VuZGluZ1JlY3QoU3Ryb2sKIAog
dm9pZCBQYXRoOjpvcGVuRmlndXJlQXRDdXJyZW50UG9pbnRJZk5lY2Vzc2FyeSgpCiB7Ci0gICAg
aWYgKG1fZG9lc0hhdmVPcGVuRmlndXJlKQorICAgIGlmIChtX29wZW5GaWd1cmVDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9hY3RpdmVQYXRoLT5TZXRGaWxsTW9kZShEMkQxX0ZJTExf
TU9ERV9XSU5ESU5HKTsKICAgICBtX2FjdGl2ZVBhdGgtPkJlZ2luRmlndXJlKGN1cnJlbnRQb2lu
dCgpLCBEMkQxX0ZJR1VSRV9CRUdJTl9GSUxMRUQpOwotICAgIG1fZG9lc0hhdmVPcGVuRmlndXJl
ID0gdHJ1ZTsKKyAgICArK21fb3BlbkZpZ3VyZUNvdW50OwogfQogCiB2b2lkIFBhdGg6Om1vdmVU
byhjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAobV9hY3RpdmVQYXRoKSB7Ci0g
ICAgICAgIG1fYWN0aXZlUGF0aC0+Q2xvc2UoKTsKKyAgICAgICAgY2xvc2VBbnlPcGVuR2VvbWV0
cmllcygpOwogICAgICAgICBtX2FjdGl2ZVBhdGggPSBudWxscHRyOwogICAgICAgICBtX2FjdGl2
ZVBhdGhHZW9tZXRyeSA9IG51bGxwdHI7Ci0gICAgICAgIG1fZG9lc0hhdmVPcGVuRmlndXJlID0g
ZmFsc2U7CiAgICAgfQogCiAgICAgR3JhcGhpY3NDb250ZXh0OjpzeXN0ZW1GYWN0b3J5KCktPkNy
ZWF0ZVBhdGhHZW9tZXRyeSgmbV9hY3RpdmVQYXRoR2VvbWV0cnkpOwpAQCAtMzgxLDcgKzM5NCw3
IEBAIHZvaWQgUGF0aDo6bW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW4KIAogICAgIG1fYWN0
aXZlUGF0aC0+U2V0RmlsbE1vZGUoRDJEMV9GSUxMX01PREVfV0lORElORyk7CiAgICAgbV9hY3Rp
dmVQYXRoLT5CZWdpbkZpZ3VyZShwb2ludCwgRDJEMV9GSUdVUkVfQkVHSU5fRklMTEVEKTsKLSAg
ICBtX2RvZXNIYXZlT3BlbkZpZ3VyZSA9IHRydWU7CisgICAgbV9vcGVuRmlndXJlQ291bnQgPSAx
OwogfQogCiB2b2lkIFBhdGg6OmFkZExpbmVUbyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKQEAg
LTQ4OCwxNCArNTAxLDI0IEBAIHZvaWQgUGF0aDo6Y2xvc2VTdWJwYXRoKCkKICAgICBpZiAoaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2FjdGl2ZVBhdGgpIHsKLSAgICAg
ICAgbV9hY3RpdmVQYXRoLT5FbmRGaWd1cmUoRDJEMV9GSUdVUkVfRU5EX0NMT1NFRCk7Ci0gICAg
ICAgIG1fYWN0aXZlUGF0aC0+Q2xvc2UoKTsKLSAgICAgICAgbV9hY3RpdmVQYXRoID0gbnVsbHB0
cjsKLSAgICAgICAgbV9hY3RpdmVQYXRoR2VvbWV0cnkgPSBudWxscHRyOworICAgIGlmICghbV9h
Y3RpdmVQYXRoKSB7CisgICAgICAgIEFTU0VSVCghbV9vcGVuRmlndXJlQ291bnQpOworICAgICAg
ICBBU1NFUlQoIW1fYWN0aXZlUGF0aEdlb21ldHJ5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghbV9vcGVuRmlndXJlQ291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
YWN0aXZlUGF0aC0+RW5kRmlndXJlKEQyRDFfRklHVVJFX0VORF9DTE9TRUQpOworICAgIC0tbV9v
cGVuRmlndXJlQ291bnQ7CisgICAgaWYgKG1fb3BlbkZpZ3VyZUNvdW50ID4gMCkgeworICAgICAg
ICBBU1NFUlQobV9hY3RpdmVQYXRoR2VvbWV0cnkpOworICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9kb2VzSGF2ZU9wZW5GaWd1cmUgPSBmYWxzZTsKKyAgICBIUkVTVUxUIGhyID0gbV9h
Y3RpdmVQYXRoLT5DbG9zZSgpOworICAgIEFTU0VSVChTVUNDRUVERUQoaHIpKTsKIH0KIAogc3Rh
dGljIEZsb2F0UG9pbnQgYXJjU3RhcnQoY29uc3QgRmxvYXRQb2ludCYgY2VudGVyLCBmbG9hdCBy
YWRpdXMsIGZsb2F0IHN0YXJ0QW5nbGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>