<?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>37878</bug_id>
          
          <creation_ts>2010-04-20 11:50:32 -0700</creation_ts>
          <short_desc>Hook compositing layers together across iframes</short_desc>
          <delta_ts>2010-07-08 22:39:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>cmarrin</cc>
    
    <cc>eric</cc>
    
    <cc>noam</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214812</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 11:50:32 -0700</bug_when>
    <thetext>When an iframe gains composited content, we should toggle the enclosing frame into compositing mode, both to preserve layering (since main frame content can overlay iframes), and so that 3d-transformed iframes work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214876</commentid>
    <comment_count>1</comment_count>
      <attachid>53867</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 12:43:23 -0700</bug_when>
    <thetext>Created attachment 53867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214883</commentid>
    <comment_count>2</comment_count>
      <attachid>53867</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-04-20 12:49:35 -0700</bug_when>
    <thetext>Comment on attachment 53867
Patch

&gt; diff --git a/WebCore/rendering/RenderIFrame.h b/WebCore/rendering/RenderIFrame.h
&gt; index 60e6fdc..0fe22f5 100644
&gt; --- a/WebCore/rendering/RenderIFrame.h
&gt; +++ b/WebCore/rendering/RenderIFrame.h
&gt; @@ -34,18 +34,43 @@ class RenderIFrame : public RenderFrameBase {
&gt;  public:
&gt;      RenderIFrame(Element*);
&gt;  
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    bool requiresAcceleratedCompositing() const;
&gt; +#endif
&gt; +
&gt;  private:
&gt;      virtual void calcHeight();
&gt;      virtual void calcWidth();
&gt;  
&gt;      virtual void layout();
&gt;  
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    virtual bool requiresLayer() const;
&gt; +#endif
&gt; +    virtual bool isRenderIFrame() const { return true; }
&gt; +
&gt;      virtual const char* renderName() const { return &quot;RenderPartObject&quot;; } // Lying for now to avoid breaking tests
&gt;  
&gt;      bool flattenFrame();
&gt;  
&gt;  };
&gt;  
&gt; +inline RenderIFrame* toRenderIFrame(RenderObject* object)
&gt; +{
&gt; +    ASSERT(!object || !strcmp(object-&gt;renderName(), &quot;RenderPartObject&quot;)); // FIXME: fix the string when we fix renderName().
&gt; +    return static_cast&lt;RenderIFrame*&gt;(object);
&gt; +}

I don&apos;t get why you have to do a string compare here. Why can&apos;t you use isRenderIFrame()? I understand that&apos;s just in the ASSERT, but why isn&apos;t the isRenderIFrame() test sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214940</commentid>
    <comment_count>3</comment_count>
      <attachid>53867</attachid>
    <who name="">mitz</who>
    <bug_when>2010-04-20 14:19:16 -0700</bug_when>
    <thetext>Comment on attachment 53867
Patch

&gt; +        (WebCore::RenderLayerCompositor::enableCompositingMode): Call out to the RenderView when
&gt; +        the compositing mode changes, so that the parent document can updates its compositing status.

Typo: “updates”

Like Chris said, the assertions in the to* methods should just use is*, not awkward string compare.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214948</commentid>
    <comment_count>4</comment_count>
      <attachid>53867</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 14:24:46 -0700</bug_when>
    <thetext>Comment on attachment 53867
Patch

http://trac.webkit.org/changeset/57919

Keeping bug open for more work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215138</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 22:38:05 -0700</bug_when>
    <thetext>This has been failing on SL since it landed:

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r57919%20(8634)/results.html

Looks like tabs vs. spaces, possibly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215139</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 22:38:28 -0700</bug_when>
    <thetext>I&apos;m not sure why SheriffBot never complained here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215141</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 22:42:31 -0700</bug_when>
    <thetext>Ah, I should have fixed this result via bug 37885.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215142</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 22:44:52 -0700</bug_when>
    <thetext>I think http://trac.webkit.org/changeset/57913 is actually causing the failure, but the question is why did it not show up until 57919?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215143</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 22:49:14 -0700</bug_when>
    <thetext>Fixed that test result in http://trac.webkit.org/changeset/57953 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215145</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 22:55:02 -0700</bug_when>
    <thetext>I think this may also have caused a test to start failing in debug:
http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r57921%20(6175)/transitions/transition-end-event-destroy-iframe-stderr.txt

ASSERTION FAILED: !needsLayout()
(/Volumes/Data/WebKit-BuildSlave/snowleopard-intel-leaks/build/WebCore/page/FrameView.cpp:1801 virtual void WebCore::FrameView::paintContents(WebCore::GraphicsContext*, const WebCore::IntRect&amp;))

At least it&apos;s the only painting related change in the range (r57916-r57921)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215155</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 23:05:24 -0700</bug_when>
    <thetext>The !needsLayout() assertion should have been fixed by this commit (rolling out an earlier change of mine):
http://trac.webkit.org/changeset/57895

Maybe the bots are just very behind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215157</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 23:06:33 -0700</bug_when>
    <thetext>http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r57952%20(6190)/results.html

Shows the crash and that&apos;s a build of r57952.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215158</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 23:06:56 -0700</bug_when>
    <thetext>Thank you for fixing the test results, btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215161</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-20 23:13:29 -0700</bug_when>
    <thetext>Please file a new bug on the transitions/transition-end-event-destroy-iframe.html assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215163</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 23:17:55 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Please file a new bug on the
&gt; transitions/transition-end-event-destroy-iframe.html assertion.

I&apos;m confused.  Do we believe this change is the cause?  If so, why would we leave the bot failing the ASSERT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215602</commentid>
    <comment_count>16</comment_count>
      <attachid>53867</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-21 18:13:16 -0700</bug_when>
    <thetext>Comment on attachment 53867
Patch

Cleared Dan Bernstein&apos;s review+ from obsolete attachment 53867 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216647</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-23 18:01:41 -0700</bug_when>
    <thetext>This caused regressions. See bug 38072.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248743</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-08 22:39:09 -0700</bug_when>
    <thetext>This is done now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53867</attachid>
            <date>2010-04-20 12:43:23 -0700</date>
            <delta_ts>2010-04-21 18:13:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37878-20100420124322.patch</filename>
            <type>text/plain</type>
            <size>13170</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNzBmOTIxLi41NDhmOThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQt
MjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayBjb21wb3NpdGluZyBsYXll
cnMgdG9nZXRoZXIgYWNyb3NzIGlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3ODc4CisgICAgICAgIAorICAgICAgICBUZXN0Y2FzZSB0aGF0
IGhhcyBhIGNvbXBvc2l0ZWQgaWZyYW1lLCBhbmQgZHVtcHMgdGhlIGxheWVyIHRyZWUgb2YgdGhl
IHBhcmVudCBkb2N1bWVudAorICAgICAgICB0byBlbnN1cmUgdGhhdCBpdCBhbHNvIGJlY2FtZSBj
b21wb3NpdGVkLgorCisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlm
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2lmcmFtZXMv
Y29tcG9zaXRlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9yZXNvdXJjZXMvY29tcG9zaXRlZC1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxMC0w
NC0yMCAgU2VyZ2V5IFVsYW5vdiA8c2VyZ2V5dUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgY2hlY2tpbmcgaW4gYmFzZWxpbmVzIGR1ZSB0byBjaGFuZ2VzIHRvIENocm9taXVt
J3MgdmlkZW8gc2NhbGluZyBhbGdvcml0aG0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvY29tcG9zaXRlZC1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZmVhZmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ1IEBACisKKyhHcmFwaGljc0xheWVyCisgIChwb3NpdGlv
biAwLjAwIDAuMDApCisgIChhbmNob3IgMC41MCAwLjUwKQorICAoYm91bmRzIDgwMC4wMCA2MDAu
MDApCisgIChvcGFjaXR5IDEuMDApCisgICh1c2luZ1RpbGVkTGF5ZXIgMCkKKyAgKHByZXNlcnZl
czNEIDApCisgIChkcmF3c0NvbnRlbnQgMCkKKyAgKGJhY2tmYWNlVmlzaWJpbGl0eSB2aXNpYmxl
KQorICAgIChiYWNrZ3JvdW5kQ29sb3Igbm9uZSkKKyAgKHRyYW5zZm9ybSBpZGVudGl0eSkKKyAg
KGNoaWxkcmVuVHJhbnNmb3JtIGlkZW50aXR5KQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAocG9zaXRpb24gMC4wMCAwLjAwKQorICAgICAgKGFuY2hvciAwLjUwIDAu
NTApCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAob3BhY2l0eSAxLjAwKQor
ICAgICAgKHVzaW5nVGlsZWRMYXllciAwKQorICAgICAgKHByZXNlcnZlczNEIDApCisgICAgICAo
ZHJhd3NDb250ZW50IDApCisgICAgICAoYmFja2ZhY2VWaXNpYmlsaXR5IHZpc2libGUpCisgICAg
ICAgICAgICAoYmFja2dyb3VuZENvbG9yIG5vbmUpCisgICAgICAodHJhbnNmb3JtIGlkZW50aXR5
KQorICAgICAgKGNoaWxkcmVuVHJhbnNmb3JtIGlkZW50aXR5KQorICAgICAgKGNoaWxkcmVuIDEK
KyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQor
ICAgICAgICAgIChhbmNob3IgMC41MCAwLjUwKQorICAgICAgICAgIChib3VuZHMgMzA0LjAwIDE1
NC4wMCkKKyAgICAgICAgICAob3BhY2l0eSAxLjAwKQorICAgICAgICAgICh1c2luZ1RpbGVkTGF5
ZXIgMCkKKyAgICAgICAgICAocHJlc2VydmVzM0QgMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgKGJhY2tmYWNlVmlzaWJpbGl0eSB2aXNpYmxlKQorICAgICAgICAgICAg
ICAgICAgICAoYmFja2dyb3VuZENvbG9yIG5vbmUpCisgICAgICAgICAgKHRyYW5zZm9ybSBpZGVu
dGl0eSkKKyAgICAgICAgICAoY2hpbGRyZW5UcmFuc2Zvcm0gaWRlbnRpdHkpCisgICAgICAgICkK
KyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9jb21wb3NpdGVkLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjczZWZmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9pZnJhbWVzL2NvbXBvc2l0ZWQtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOSBA
QAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgaWZyYW1lIHsKKyAgICAgICAgYm9yZGVyOiAycHgg
c29saWQgYmxhY2s7CisgICAgICAgIGhlaWdodDogMTUwcHg7CisgICAgICAgIHdpZHRoOiAzMDBw
eDsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBk
b1Rlc3QoKQorICAgIHsKKyAgICAgICAgLy8gTmVlZCB0byB3YWl0IGZvciBjb21wb3NpdGluZyBs
YXllcnMgdG8gYmUgdXBkYXRlZC4KKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVySFRNTCA9
IGxheW91dFRlc3RDb250cm9sbGVyLmxheWVyVHJlZUFzVGV4dCgpOworICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwgMCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBk
b1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDwhLS0g
VGhlIHBhcmVudCBkb2N1bWVudCBzaG91bGQgYmUgdGhyb3duIGludG8gY29tcG9zaXRpbmcgbW9k
ZSBieSB0aGUgaWZyYW1lLiAtLT4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2NvbXBvc2l0
ZWQtc3ViZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisKKyAgICA8cHJlIGlkPSJsYXllcnMiPkxheWVy
IHRyZWUgYXBwZWFycyBoZXJlIGluIERSVC48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL2NvbXBvc2l0
ZWQtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3Vy
Y2VzL2NvbXBvc2l0ZWQtc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45NzMwOTIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9yZXNvdXJjZXMvY29tcG9zaXRlZC1zdWJmcmFtZS5odG1sCkBAIC0wLDAgKzEs
MjEgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZVooMCk7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKyAgICA8
ZGl2IGNsYXNzPSJib3giPgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGViOTY5Nzku
LjVkOTQ5Y2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNDUgQEAKIDIwMTAtMDQtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSG9vayBjb21wb3NpdGluZyBsYXllcnMgdG9nZXRoZXIgYWNyb3NzIGlmcmFt
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3ODc4
CisgICAgICAgIAorICAgICAgICBGaXJzdCBzdGVwOiBpZiBhbiBpZnJhbWUncyBkb2N1bWVudCBn
b2VzIGludG8gY29tcG9zaXRpbmcgbW9kZSwgYWxzbyB0aHJvdyB0aGUgcGFyZW50CisgICAgICAg
IGRvY3VtZW50IGludG8gY29tcG9zaXRpbmcgbW9kZSAoYWxsIHRoZSB3YXkgdXAgdG8gdGhlIHJv
b3QpLiBUaGlzIGlzIHJlcXVpcmVkIGJvdGgKKyAgICAgICAgdG8gcHJlc2VydmUgbGF5ZXJpbmcg
KHNpbmNlIHBhcmVudCBkb2N1bWVudCBjb250ZW50IGNhbiBvYnNjdXJlIGlmcmFtZSBjb250ZW50
KSwKKyAgICAgICAgYW5kIHNvIHRoYXQgd2UgY2FuIGV2ZW50dWFsbHkgaG9vayB0aGUgbGF5ZXIg
dHJlZXMgdG9nZXRoZXIuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvaWZyYW1lcy9jb21w
b3NpdGVkLWlmcmFtZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJRnJhbWU6OnJlcXVpcmVzTGF5ZXIpOiBJbiBvcmRlciB0byBtYWtlIGFuIGlmcmFt
ZSBjb21wb3NpdGVkLCBpdCBhbHNvIGhhcyB0byBoYXZlCisgICAgICAgIGEgUmVuZGVyTGF5ZXIs
IHNvIG11c3QgcmV0dXJuIHx0cnVlfCBmcm9tIHJlcXVpcmVzTGF5ZXIoKS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcklGcmFtZTo6cmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKTogUmV0
dXJucyB0cnVlIGlmIHRoZSBjb250ZW50IGRvY3VtZW50CisgICAgICAgIGlzIGluIGNvbXBvc2l0
aW5nIG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmlzUmVuZGVySUZyYW1l
KTogUmVxdWlyZWQgc28gdGhhdCBSZW5kZXJMYXllckNvbXBvc2l0b3IgY2FuIGNoZWNrCisgICAg
ICAgIGlmIGEgcmVuZGVyZXIgaXMgYW4gaWZyYW1lLgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5k
ZXJJRnJhbWUpOiBSZXF1aXJlZCBzbyB0aGF0IFJlbmRlckxheWVyQ29tcG9zaXRvciBjYW4gY2Fz
dCB0byBhIFJlbmRlcklGcmFtZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5hYmxlQ29tcG9z
aXRpbmdNb2RlKTogQ2FsbCBvdXQgdG8gdGhlIFJlbmRlclZpZXcgd2hlbgorICAgICAgICB0aGUg
Y29tcG9zaXRpbmcgbW9kZSBjaGFuZ2VzLCBzbyB0aGF0IHRoZSBwYXJlbnQgZG9jdW1lbnQgY2Fu
IHVwZGF0ZXMgaXRzIGNvbXBvc2l0aW5nIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0xheWVyKTogQ2FsbCByZXF1aXJl
c0NvbXBvc2l0aW5nRm9ySUZyYW1lKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJRnJhbWUpOiBDaGVjayB0byBzZWUgaWYg
dGhlIGlmcmFtZQorICAgICAgICB3YW50cyB0byBiZSBjb21wb3NpdGVkLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
Ojppc1JlbmRlcklGcmFtZSk6IEJhc2UgY2xhc3MgcmV0dXJucyBmYWxzZS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y29tcG9zaXRpbmdTdGF0ZUNoYW5n
ZWQpOiBOZXcgbWV0aG9kIHRoYXQgYWxsb3dzIGFuIGlmcmFtZSB0byBub3RpZnkKKyAgICAgICAg
aXRzIHBhcmVudCBkb2N1bWVudCB0aGF0IGEgcmVjYWxjU3R5bGUgaXMgcmVxdWlyZWQsIHRvIHVw
ZGF0ZSBjb21wb3NpdGluZyBzdGF0ZS4KKworMjAxMC0wNC0yMCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXpr
b3YuCiAKICAgICAgICAgQ2xlYW4gdXAgUmVuZGVyUGFydC9SZW5kZXJQYXJ0T2JqZWN0L1JlbmRl
ckZyYW1lL1JlbmRlckVtYmVkZGVkT2JqZWN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJRnJhbWUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcApp
bmRleCA0N2Q1OWIyLi5iZmVhN2JkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKQEAg
LTExOCw0ICsxMTgsMjkgQEAgdm9pZCBSZW5kZXJJRnJhbWU6OmxheW91dCgpCiAgICAgc2V0TmVl
ZHNMYXlvdXQoZmFsc2UpOwogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
Ym9vbCBSZW5kZXJJRnJhbWU6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAoreworICAgIGlmIChSZW5k
ZXJQYXJ0OjpyZXF1aXJlc0xheWVyKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAg
IHJldHVybiByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsKK30KKworYm9vbCBSZW5k
ZXJJRnJhbWU6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0Cit7CisgICAg
aWYgKCFub2RlKCkgfHwgIW5vZGUoKS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiB0aGUgY29udGVudHMgb2YgdGhlIGlmcmFtZSBhcmUg
Y29tcG9zaXRlZCwgdGhlbiB3ZSBoYXZlIHRvIGJlIGFzIHdlbGwuCisgICAgSFRNTElGcmFtZUVs
ZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KG5vZGUoKSk7
CisgICAgaWYgKERvY3VtZW50KiBjb250ZW50RG9jdW1lbnQgPSBlbGVtZW50LT5jb250ZW50RG9j
dW1lbnQoKSkgeworICAgICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IGNvbnRlbnREb2N1bWVu
dC0+cmVuZGVyVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIHZpZXctPnVzZXNDb21wb3NpdGlu
ZygpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklGcmFtZS5oCmluZGV4IDYwZTZmZGMuLjBmZTIyZjUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklGcmFtZS5oCkBAIC0zNCwxOCArMzQsNDMgQEAgY2xhc3MgUmVuZGVySUZyYW1lIDogcHVibGlj
IFJlbmRlckZyYW1lQmFzZSB7CiBwdWJsaWM6CiAgICAgUmVuZGVySUZyYW1lKEVsZW1lbnQqKTsK
IAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBib29sIHJlcXVpcmVzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGNhbGNIZWlnaHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FsY1dpZHRoKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdDsKKyNlbmRpZgor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcklGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
KwogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJS
ZW5kZXJQYXJ0T2JqZWN0IjsgfSAvLyBMeWluZyBmb3Igbm93IHRvIGF2b2lkIGJyZWFraW5nIHRl
c3RzCiAKICAgICBib29sIGZsYXR0ZW5GcmFtZSgpOwogCiB9OwogCitpbmxpbmUgUmVuZGVySUZy
YW1lKiB0b1JlbmRlcklGcmFtZShSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlQo
IW9iamVjdCB8fCAhc3RyY21wKG9iamVjdC0+cmVuZGVyTmFtZSgpLCAiUmVuZGVyUGFydE9iamVj
dCIpKTsgLy8gRklYTUU6IGZpeCB0aGUgc3RyaW5nIHdoZW4gd2UgZml4IHJlbmRlck5hbWUoKS4K
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVySUZyYW1lKj4ob2JqZWN0KTsKK30KKworaW5s
aW5lIGNvbnN0IFJlbmRlcklGcmFtZSogdG9SZW5kZXJJRnJhbWUoY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgIXN0cmNtcChvYmplY3QtPnJlbmRl
ck5hbWUoKSwgIlJlbmRlclBhcnRPYmplY3QiKSk7IC8vIEZJWE1FOiBmaXggdGhlIHN0cmluZyB3
aGVuIHdlIGZpeCByZW5kZXJOYW1lKCkuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJl
bmRlcklGcmFtZSo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9p
bmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJJRnJhbWUoY29uc3QgUmVuZGVy
SUZyYW1lKik7CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVy
SUZyYW1lX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDk0MzA2MTMuLjI4MDY2ZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVySUZy
YW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVy
UmVwbGljYS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgiCkBAIC0xMTYsNiArMTE3LDggQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuYWJsZUNvbXBvc2l0aW5nTW9kZShib29sIGVu
YWJsZSAvKiA9IHRydWUgKi8pCiAgICAgICAgICAgICBlbnN1cmVSb290UGxhdGZvcm1MYXllcigp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBkZXN0cm95Um9vdFBsYXRmb3JtTGF5ZXIoKTsK
KworICAgICAgICBtX3JlbmRlclZpZXctPmNvbXBvc2l0aW5nU3RhdGVDaGFuZ2VkKG1fY29tcG9z
aXRpbmcpOwogICAgIH0KIH0KIApAQCAtOTc2LDYgKzk3OSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIqIGxh
eWVyKSBjCiAgICAgICAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKHJlbmRl
cmVyKQogICAgICAgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52YXMocmVuZGVy
ZXIpCiAgICAgICAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclBsdWdpbihyZW5kZXJl
cikKKyAgICAgICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9ySUZyYW1lKHJlbmRlcmVy
KQogICAgICAgICAgICAgIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT5iYWNrZmFjZVZpc2liaWxpdHko
KSA9PSBCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4KICAgICAgICAgICAgICB8fCBjbGlwc0NvbXBv
c2l0aW5nRGVzY2VuZGFudHMobGF5ZXIpCiAgICAgICAgICAgICAgfHwgcmVxdWlyZXNDb21wb3Np
dGluZ0ZvckFuaW1hdGlvbihyZW5kZXJlcik7CkBAIC0xMDgzLDYgKzEwODcsMTEgQEAgYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4oUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gcmVuZGVyZXItPmlzRW1iZWRkZWRPYmplY3Qo
KSAmJiB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KHJlbmRlcmVyKS0+YWxsb3dzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZygpOwogfQogCitib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXND
b21wb3NpdGluZ0ZvcklGcmFtZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAoreworICAg
IHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJJRnJhbWUoKSAmJiB0b1JlbmRlcklGcmFtZShyZW5k
ZXJlciktPnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOworfQorCiBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKSBjb25zdAogewogICAgIGlmIChBbmltYXRpb25Db250cm9sbGVyKiBh
bmltQ29udHJvbGxlciA9IHJlbmRlcmVyLT5hbmltYXRpb24oKSkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0ZGQ4NzEyLi4yZDE5OTQ1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMTgxLDYgKzE4MSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8oUmVuZGVyT2Jq
ZWN0KikgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKFJlbmRl
ck9iamVjdCopIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclBsdWdpbihS
ZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJRnJh
bWUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nV2hl
bkRlc2NlbmRhbnRzQXJlQ29tcG9zaXRpbmcoUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGY3NWFlNWYuLmFlMTI3NTggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yODIsNiArMjgyLDcgQEAgcHVibGljOgogI2VuZGlm
CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyQmxvY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggYjUwNWIzMC4uZTk3MWQxNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTcwOCw2ICs3MDgsMTYgQEAgYm9vbCBSZW5k
ZXJWaWV3Ojp1c2VzQ29tcG9zaXRpbmcoKSBjb25zdAogICAgIHJldHVybiBtX2NvbXBvc2l0b3Ig
JiYgbV9jb21wb3NpdG9yLT5pbkNvbXBvc2l0aW5nTW9kZSgpOwogfQogCit2b2lkIFJlbmRlclZp
ZXc6OmNvbXBvc2l0aW5nU3RhdGVDaGFuZ2VkKGJvb2wpCit7CisgICAgRWxlbWVudCogZWx0ID0g
ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCk7CisgICAgaWYgKCFlbHQpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFRyaWdnZXIgYSByZWNhbGNTdHlsZSBpbiB0aGUgcGFyZW50IGRvY3VtZW50
LCB0byB1cGRhdGUgY29tcG9zaXRpbmcgaW4gdGhhdCBkb2N1bWVudC4KKyAgICBlbHQtPnNldE5l
ZWRzU3R5bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOworfQorCiBSZW5kZXJMYXllckNv
bXBvc2l0b3IqIFJlbmRlclZpZXc6OmNvbXBvc2l0b3IoKQogewogICAgIGlmICghbV9jb21wb3Np
dG9yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDFlMDA3ZTguLmZiMjJhYmIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRv
cigpOwogICAgIGJvb2wgdXNlc0NvbXBvc2l0aW5nKCkgY29uc3Q7CisgICAgdm9pZCBjb21wb3Np
dGluZ1N0YXRlQ2hhbmdlZChib29sIG5vd0NvbXBvc2l0ZWQpOwogI2VuZGlmCiAKIHByb3RlY3Rl
ZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>