<?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>106146</bug_id>
          
          <creation_ts>2013-01-04 16:21:50 -0800</creation_ts>
          <short_desc>Show label automatically for plugins of significant size</short_desc>
          <delta_ts>2013-01-06 23:30:12 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</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="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>beidson</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>800719</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-04 16:21:50 -0800</bug_when>
    <thetext>Snapshotted plugins that dominate a page should automatically show the label.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800721</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-04 16:22:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/12783010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800817</commentid>
    <comment_count>2</comment_count>
      <attachid>181421</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-04 19:10:47 -0800</bug_when>
    <thetext>Created attachment 181421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800829</commentid>
    <comment_count>3</comment_count>
      <attachid>181421</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-04 19:40:50 -0800</bug_when>
    <thetext>Comment on attachment 181421
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:293
&gt; +    LayoutRect plugInClipRect = node-&gt;renderer()-&gt;absoluteClippedOverflowRect();

Is node-&gt;renderer() always non-null?

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:352
&gt; +    if (shouldPlugInShowLabelAutomatically(document()-&gt;page()-&gt;mainFrame()-&gt;view()-&gt;contentsSize(), this))

Is everything in this chain always non-null?

&gt; Source/WebCore/platform/Timer.h:143
&gt; +    void setDelay(double delay) { m_delay = delay; }

Not sure you need this (see later comment).

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:276
&gt; +    m_showLabelDelayTimer.setDelay(reason == UserMousedOver ? showLabelAfterMouseOverDelay : showLabelAutomaticallyDelay);
&gt; +    m_showLabelDelayTimer.restart();

Can&apos;t you just call startOneShot() and avoid touching Timer.h? I don&apos;t think you even need to call stop() beforehand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801170</commentid>
    <comment_count>4</comment_count>
      <attachid>181421</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-06 23:12:03 -0800</bug_when>
    <thetext>Comment on attachment 181421
Patch

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

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:293
&gt;&gt; +    LayoutRect plugInClipRect = node-&gt;renderer()-&gt;absoluteClippedOverflowRect();
&gt; 
&gt; Is node-&gt;renderer() always non-null?

I believe so. The renderer is already accessed earlier in subframeLoaderWillCreatePlugIn(), which is the caller of this function.

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:352
&gt;&gt; +    if (shouldPlugInShowLabelAutomatically(document()-&gt;page()-&gt;mainFrame()-&gt;view()-&gt;contentsSize(), this))
&gt; 
&gt; Is everything in this chain always non-null?

I cannot guarantee it is. I will add checks for mainFrame() and view(). page() is already checked earlier in this function.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:276
&gt;&gt; +    m_showLabelDelayTimer.restart();
&gt; 
&gt; Can&apos;t you just call startOneShot() and avoid touching Timer.h? I don&apos;t think you even need to call stop() beforehand.

Yes, you&apos;re right. Amended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801175</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-06 23:30:12 -0800</bug_when>
    <thetext>Committed r138927: &lt;http://trac.webkit.org/changeset/138927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181421</attachid>
            <date>2013-01-04 19:10:47 -0800</date>
            <delta_ts>2013-01-06 23:12:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106146-20130104190753.patch</filename>
            <type>text/plain</type>
            <size>15411</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU5YTQ3YjNlNjI2YzA0
MzMxZmNhMWE1MDhlODMxMzliOTdiMjYxMi4uNzI4ZDg5OTcwNmVmY2VjMTBhM2FmMGNiYTNhY2Zh
Zjg0MzhkMTNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAxLTA0ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBTaG93IGxhYmVsIGF1dG9tYXRpY2Fs
bHkgZm9yIHBsdWctaW5zIG9mIHNpZ25pZmljYW50IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjE0NgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTI3ODMwMTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9yIHNpZ25pZmljYW50bHkgc2l6ZWQgcGx1Zy1pbnMsIHRyaWdnZXIgYSB0aW1lciB0
aGF0IGRpc3BsYXlzIHRoZSBsYWJlbCBhdXRvbWF0aWNhbGx5CisgICAgICAgIHdpdGhvdXQgcmVx
dWlyaW5nIHRoZSB1c2VyIHRvIG1vdXNlIG92ZXIgdGhlIGVsZW1lbnQgZmlyc3QuIFRoZSB0cmlj
a2luZXNzIG9mIHRoZSBsb2dpYworICAgICAgICBoZXJlIGlzIHRoYXQgdGhlcmUgYXJlIHR3byBk
ZWxheXMgaW52b2x2ZWQtLSBvbmUgZm9yIHdoZXRoZXIgdGhlIHVzZXIgbW91c2VzIG92ZXIgKHNo
b3J0ZXIpLAorICAgICAgICBhbmQgb25lIGZvciB3aGVuIHRoZSBsYWJlbCBpcyBzaG93biBhdXRv
bWF0aWNhbGx5IChsb25nZXIpLiBNb3VzaW5nIG92ZXIgYSBwbHVnLWluIHRoYXQgaXMKKyAgICAg
ICAgbWFya2VkIHRvIHNob3cgaXQgYXV0b21hdGljYWxseSBzaG91bGQgaGF2ZSB0aGUgdGltZXIg
ZGVsYXkgc3dpdGNoZWQuIEFuZCBpZiB0aGUgbGFiZWwKKyAgICAgICAgc2hvd2VkIGF1dG9tYXRp
Y2FsbHksIG1vdXNpbmcgaW4gYW5kIG91dCBvZiB0aGUgZWxlbWVudCBzaG91bGQgbm90IGNoYW5n
ZSB0aGF0IGxhYmVsJ3MKKyAgICAgICAgc3RhdGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6IEFkZCBjb25zdGFudHMgdGhh
dCBkZXRlcm1pbmUgd2hldGhlciB0aGUgcGx1Zy1pbiBpcyBvZiBhIHNpZ25pZmljYW50IHNpemUu
CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRQbHVnSW5TaG93TGFiZWxBdXRvbWF0aWNhbGx5KTog
QmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGZyYW1lIHZpZXcgYW5kIHRoZQorICAgICAgICBjbGlw
cGVkIHBsdWctaW4gc2l6ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZCBzaG93
IGF1dG9tYXRpY2FsbHkuIElmIHRoZSBwbHVnLWluIGlzCisgICAgICAgIG5vdCBjb250YWluZWQg
d2l0aGluIHRoZSBib3VuZHMgb2YgdGhlIGZyYW1lIHZpZXcsIG9yIGlzIG5vdCBhdCBsZWFzdCBh
cyBsYXJnZSBhcyB0aGUgdGhyZXNob2xkCisgICAgICAgIHNpemUsIHRoZW4gZG8gbm90IHNob3cg
dGhlIGxhYmVsIGF1dG9tYXRpY2FsbHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50OjpzdWJmcmFtZUxvYWRlcldpbGxDcmVhdGVQbHVnSW4pOiBBZnRlciB3ZSd2ZSBk
ZXRlcm1pbmVkIHRoYXQKKyAgICAgICAgdGhlIHBsdWctaW4gc2hvdWxkIG5vdCBhdXRvLXN0YXJ0
LCBtYWtlIGEgY2hlY2sgdG8gc2VlIGlmIHRoZSBsYWJlbCBzaG91bGQgc2hvdyBhdXRvbWF0aWNh
bGx5LgorICAgICAgICBBbHNvLCB1cGRhdGUgc29tZSBvZiB0aGUgbG9nZ2luZy4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnN1YmZyYW1lTG9hZGVyRGlkQ3JlYXRl
UGx1Z0luKTogVXBkYXRlIHRoZSBsb2dnaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vVGltZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI6OnNldERlbGF5KTog
QWRkZWQgdG8gYWxsb3cgY2hhbmdpbmcgdGhlIGRlbGF5IG9mIHRoZSB0aW1lci4gSXQKKyAgICAg
ICAgZG9lcyBub3QgY2hhbmdlIGFueSBjdXJyZW50bHkgc2V0IHRpbWVyLCBidXQgc2hvdWxkIGNo
YW5nZSB0aGUgZGVsYXkgZm9yIHRoZSBuZXh0IG9uZS4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBSZW5hbWUgdGhlIHRpbWVyIHRvIG1fc2hvd0xhYmVs
RGVsYXlUaW1lciBzaW5jZQorICAgICAgICBpdCBjYW4gZmlyZSBmb3IgdHdvIGRpZmZlcmVudCBy
ZWFzb25zLiBBZGQgc29tZSBhZGRpdGlvbmFsIHN0YXRlIHZhcmlhYmxlcywgYW5kIGFuIGVudW0K
KyAgICAgICAgdG8gZXhwbGFpbiB3aHkgdGhlIGxhYmVsIGFwcGVhcmVkLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlKTog
Q2hhbmdlIGhvdmVyRGVsYXkgdG8gc2hvd0xhYmVsQWZ0ZXJNb3VzZU92ZXJEZWxheS4gQWRkIGEg
bmV3LCBsb25nZXIgZGVsYXkgZm9yCisgICAgICAgIHdoZW4gdGhlIHBsdWctaW4gaXMgc3VwcG9z
ZWQgdG8gYXV0by1zaG93IHRoZSBsYWJlbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik6IEluaXRpYWxpemUgdGhlIG1l
bWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6dXBkYXRlU25hcHNob3QpOiBXaGVuIHRoZSBzbmFwc2hvdCBpbWFnZSBpcyB1cGRhdGVkLAor
ICAgICAgICBzdGFydCB0aGUgdGltZXIgdG8gYXV0by1zaG93IHRoZSBsYWJlbC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludExhYmVsKTogQXZvaWQgcGFp
bnRpbmcgdGhlIGxhYmVsIG9ubHkgaWYgdGhlIGVsZW1lbnQKKyAgICAgICAgaXMgbm90IGhvdmVy
ZWQgYW5kIHRoZSB1c2VyIHdhcyBtb3VzaW5nIG92ZXIgdGhlIHBsdWctaW4uIE90aGVyd2lzZSwg
dGhlIHBsdWctaW4gaXMgc3VwcG9zZWQKKyAgICAgICAgdG8gc2hvdyBhdXRvbWF0aWNhbGx5LCBh
bmQgd2Ugc2hvdWxkIHBhaW50LiBNYXJrIHRoZSByZW5kZXJlciBhcyBoYXZpbmcgc2hvd2VkIHRo
ZSBsYWJlbCBhdAorICAgICAgICBsZWFzdCBvbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OnNob3dMYWJlbERlbGF5VGltZXJGaXJlZCk6IFJlbmFtZWQgdG8g
cmVmbGVjdCB0aGUKKyAgICAgICAgcHVycG9zZSBvZiB0aGUgdGltZXIuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6c2V0U2hvdWxkU2hvd0xhYmVsQXV0b21hdGlj
YWxseSk6IFNldCB0aGUgdmFyaWFibGUgdGhhdAorICAgICAgICBkZXRlcm1pbmVzIHdoZXRoZXIs
IGluIGdlbmVyYWwsIHRoaXMgcGx1Zy1pbiBzaG91bGQgc2hvdyB0aGUgbGFiZWwgYXV0b21hdGlj
YWxseSBldmVuCisgICAgICAgIHdpdGhvdXQgdXNlciBpbnB1dC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudCk6IElmIHRoZSB1c2VyIG1vdXNl
cyBvdmVyIHRoZSBwbHVnLWluLAorICAgICAgICBvbmx5IHJlc2V0IHRoZSBzaG93IHRpbWVyIGlz
IHRoZSBsYWJlbCBoYXMgbmV2ZXIgYXBwZWFyZWQgYmVmb3JlLCBvciBpZiBpdCBoYXMsIHRoYXQK
KyAgICAgICAgaXQncyBub3QgYmVjYXVzZSB0aGUgbGFiZWwgd2FzIHN1cHBvc2VkIHRvIHNob3cg
YXV0b21hdGljYWxseS4gVGhhdCBpcywgaWYgdGhlIGxhYmVsIGlzCisgICAgICAgIHN1cHBvc2Vk
IHRvIHNob3cgYXV0b21hdGljYWxseSwgdGhlIGxhYmVsIHNob3VsZCByZW1haW4gdmlzaWJsZS4g
VGhpcyBpcyBhbHNvIHRydWUgd2hlbgorICAgICAgICB0aGUgdXNlciBtb3VzZXMgb3V0IG9mIHRo
ZSBwbHVnLWluLiBJZiB0aGUgdXNlciBtb3VzZWQgb3V0IGJlZm9yZSB0aGUgdGltZSBoYWQgYSBj
aGFuY2UKKyAgICAgICAgdG8gZmlyZSBhbmQgc2hvdyB0aGUgbGFiZWwgZm9yIHRoZSBmaXJzdCB0
aW1lLCB0aGVuIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgcGx1Zy1pbiBzaG91bGQKKyAgICAgICAg
YmUgZGlzcGxheWluZyB0aGUgbGFiZWwgYXV0b21hdGljYWxseSwgYW5kIGlmIHNvLCByZXN0YXJ0
IHRoZSB0aW1lciB1c2luZyB0aGUgbG9uZ2VyIGRlbGF5LgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OnN0b3BBbmRSZXN0YXJ0RGVsYXlUaW1lcik6IENvbnZlbmll
bmNlIGZ1bmN0aW9uIHRvCisgICAgICAgIHVwZGF0ZSB0aGUgbV9zaG93UmVhc29uIHZhcmlhYmxl
LCBhbmQgcmVzZXQgdGhlIHRpbWVyIHdpdGggdGhlIGFwcHJvcHJpYXRlIGRlbGF5LgorCiAyMDEz
LTAxLTA0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENocm9t
aXVtIHdpbmRvd3MgY29tcGlsZSBmYWlscyBiZWNhdXNlIG9mIHRoZSBhc3NlcnRpb24gaW4gTm9k
ZVJhcmVEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcAppbmRleCAxNjY5NzZlN2EyZTBkOWVjMzNmN2EyZWY3MDhmOTVhNDU0NmNlNjMxLi5kMGI1
Mzk4ZGRiMjkyYWJlOWY1YzhhODhhZWY2ZmRjYWMzZDY0NDBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1M
SW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbWFnZS5o
IgpAQCAtNDUsNiArNDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBp
bnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZFdpZHRoID0gMTsKIHN0YXRpYyBjb25zdCBp
bnQgYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhlaWdodCA9IDE7CitzdGF0aWMgY29uc3Qg
aW50IGF1dG9TaG93TGFiZWxTaXplVGhyZXNob2xkV2lkdGggPSA0MDA7CitzdGF0aWMgY29uc3Qg
aW50IGF1dG9TaG93TGFiZWxTaXplVGhyZXNob2xkSGVpZ2h0ID0gMzAwOwogLy8gVGhpcyBkZWxh
eSBzaG91bGQgbm90IGV4Y2VlZCB0aGUgc25hcHNob3QgZGVsYXkgaW4gUGx1Z2luVmlldy5jcHAK
IHN0YXRpYyBjb25zdCBkb3VibGUgc2ltdWxhdGVkTW91c2VDbGlja1RpbWVyRGVsYXkgPSAuNzU7
CiAKQEAgLTI4NSw2ICsyODgsMjUgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzaW11
bGF0ZWRNb3VzZUNsaWNrVGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWUKICAgICBtX3Bl
bmRpbmdDbGlja0V2ZW50RnJvbVNuYXBzaG90ID0gbnVsbHB0cjsKIH0KIAorc3RhdGljIGJvb2wg
c2hvdWxkUGx1Z0luU2hvd0xhYmVsQXV0b21hdGljYWxseShjb25zdCBJbnRTaXplJiB2aWV3Q29u
dGVudHNTaXplLCBjb25zdCBOb2RlKiBub2RlKQoreworICAgIExheW91dFJlY3QgcGx1Z0luQ2xp
cFJlY3QgPSBub2RlLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKTsK
KyAgICBMYXlvdXRSZWN0IHZpZXdDb250ZW50c1JlY3QoTGF5b3V0UG9pbnQ6Onplcm8oKSwgTGF5
b3V0U2l6ZSh2aWV3Q29udGVudHNTaXplKSk7CisgICAgaWYgKCF2aWV3Q29udGVudHNSZWN0LmNv
bnRhaW5zKHBsdWdJbkNsaXBSZWN0KSkgeworICAgICAgICBMT0coUGx1Z2lucywgIiVwIFBsdWct
aW4gcmVjdDogKCVkICVkLCAlZCAlZCkgbm90IGNvbnRhaW5lZCBpbiBkb2N1bWVudCBvZiBzaXpl
ICVkICVkIiwgbm9kZSwgcGx1Z0luQ2xpcFJlY3QucGl4ZWxTbmFwcGVkWCgpLCBwbHVnSW5DbGlw
UmVjdC5waXhlbFNuYXBwZWRZKCksIHBsdWdJbkNsaXBSZWN0LnBpeGVsU25hcHBlZFdpZHRoKCks
IHBsdWdJbkNsaXBSZWN0LnBpeGVsU25hcHBlZEhlaWdodCgpLCB2aWV3Q29udGVudHNTaXplLndp
ZHRoKCksIHZpZXdDb250ZW50c1NpemUuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKHBsdWdJbkNsaXBSZWN0LnBpeGVsU25hcHBlZFdpZHRoKCkgPCBh
dXRvU2hvd0xhYmVsU2l6ZVRocmVzaG9sZFdpZHRoCisgICAgICAgIHx8IHBsdWdJbkNsaXBSZWN0
LnBpeGVsU25hcHBlZEhlaWdodCgpIDwgYXV0b1Nob3dMYWJlbFNpemVUaHJlc2hvbGRIZWlnaHQp
IHsKKyAgICAgICAgTE9HKFBsdWdpbnMsICIlcCBTaXplOiAlZCAlZCIsIG5vZGUsIHBsdWdJbkNs
aXBSZWN0LnBpeGVsU25hcHBlZFdpZHRoKCksIHBsdWdJbkNsaXBSZWN0LnBpeGVsU25hcHBlZEhl
aWdodCgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIExPRyhQbHVnaW5z
LCAiJXAgQXV0by1zaG93IGxhYmVsIiwgbm9kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c3ViZnJhbWVMb2FkZXJXaWxsQ3JlYXRlUGx1Z0lu
KGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBpZiAoIWRvY3VtZW50KCktPnBhZ2UoKQpAQCAtMzA5
LDcgKzMzMSw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c3ViZnJhbWVMb2FkZXJX
aWxsQ3JlYXRlUGx1Z0luKGNvbnN0IEtVUkwmIHVybCkKICAgICBpbnQgd2lkdGggPSByZWN0Lndp
ZHRoKCk7CiAgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAgaWYgKCF3aWR0aCB8
fCAhaGVpZ2h0IHx8ICh3aWR0aCA8PSBhdXRvU3RhcnRQbHVnSW5TaXplVGhyZXNob2xkV2lkdGgg
JiYgaGVpZ2h0IDw9IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRIZWlnaHQpKSB7Ci0gICAg
ICAgIExPRyhQbHVnaW5zLCAiJXAgUGx1Z2luIGlzICVkeCVkLCBzZXQgdG8gcGxheSIsIHRoaXMs
IHdpZHRoLCBoZWlnaHQpOworICAgICAgICBMT0coUGx1Z2lucywgIiVwIFBsdWctaW4gaXMgJWR4
JWQsIHNldCB0byBwbGF5IiwgdGhpcywgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTMxOCwxNiArMzQwLDE5IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6c3ViZnJhbWVMb2FkZXJXaWxsQ3JlYXRlUGx1Z0luKGNvbnN0IEtVUkwmIHVybCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIExPRyhQbHVnaW5zLCAiJXAgUGx1Z2luIFVSTDogJXMi
LCB0aGlzLCBtX3VybC51dGY4KCkuZGF0YSgpKTsKLSAgICBMT0coUGx1Z2lucywgIiAgIGxvYWRl
ZCBVUkw6ICVzIiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhQbHVnaW5z
LCAiJXAgUGx1Zy1pbiBVUkw6ICVzIiwgdGhpcywgbV91cmwudXRmOCgpLmRhdGEoKSk7CisgICAg
TE9HKFBsdWdpbnMsICIgICAgICAgICAgICBsb2FkZWQgVVJMOiAlcyIsIHVybC5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIAogICAgIG1fcGx1Z0luT3JpZ2luSGFzaCA9IFBsdWdJbk9yaWdpbkhh
c2g6Omhhc2godGhpcywgdXJsKTsKICAgICBpZiAobV9wbHVnSW5PcmlnaW5IYXNoICYmIGRvY3Vt
ZW50KCktPnBhZ2UoKS0+cGx1Z0luQ2xpZW50KCktPmlzQXV0b1N0YXJ0T3JpZ2luKG1fcGx1Z0lu
T3JpZ2luSGFzaCkpIHsKLSAgICAgICAgTE9HKFBsdWdpbnMsICIlcCBQbHVnaW4gaGFzaCAleCBp
cyBhdXRvLXN0YXJ0LCBzZXQgdG8gcGxheSIsIHRoaXMsIG1fcGx1Z0luT3JpZ2luSGFzaCk7Cisg
ICAgICAgIExPRyhQbHVnaW5zLCAiJXAgUGx1Zy1pbiBoYXNoICV4IGlzIGF1dG8tc3RhcnQsIHNl
dCB0byBwbGF5IiwgdGhpcywgbV9wbHVnSW5PcmlnaW5IYXNoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIExPRyhQbHVnaW5zLCAiJXAgUGx1Z2luIGhhc2ggJXggaXMgJWR4JWQsIG9y
aWdpbiBpcyBub3QgYXV0by1zdGFydCwgc2V0IHRvIHdhaXQgZm9yIHNuYXBzaG90IiwgdGhpcywg
bV9wbHVnSW5PcmlnaW5IYXNoLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBpZiAoc2hvdWxkUGx1Z0lu
U2hvd0xhYmVsQXV0b21hdGljYWxseShkb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT52
aWV3KCktPmNvbnRlbnRzU2l6ZSgpLCB0aGlzKSkKKyAgICAgICAgdG9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihyZW5kZXJlcigpKS0+c2V0U2hvdWxkU2hvd0xhYmVsQXV0b21hdGljYWxseSgpOwor
CisgICAgTE9HKFBsdWdpbnMsICIlcCBQbHVnLWluIGhhc2ggJXggaXMgJWR4JWQsIG9yaWdpbiBp
cyBub3QgYXV0by1zdGFydCwgc2V0IHRvIHdhaXQgZm9yIHNuYXBzaG90IiwgdGhpcywgbV9wbHVn
SW5PcmlnaW5IYXNoLCB3aWR0aCwgaGVpZ2h0KTsKICAgICBzZXREaXNwbGF5U3RhdGUoV2FpdGlu
Z0ZvclNuYXBzaG90KTsKIH0KIApAQCAtMzM3LDcgKzM2Miw3IEBAIHZvaWQgSFRNTFBsdWdJbklt
YWdlRWxlbWVudDo6c3ViZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVnSW4oY29uc3QgV2lkZ2V0KiB3
aWRnZXQpCiAgICAgICAgIHx8ICFzdGF0aWNfY2FzdDxjb25zdCBQbHVnaW5WaWV3QmFzZSo+KHdp
ZGdldCktPnNob3VsZEFsd2F5c0F1dG9TdGFydCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBM
T0coUGx1Z2lucywgIiVwIFBsdWdpbiBzaG91bGQgYXV0by1zdGFydCwgc2V0IHRvIHBsYXkiLCB0
aGlzKTsKKyAgICBMT0coUGx1Z2lucywgIiVwIFBsdWctaW4gc2hvdWxkIGF1dG8tc3RhcnQsIHNl
dCB0byBwbGF5IiwgdGhpcyk7CiAgICAgc2V0RGlzcGxheVN0YXRlKFBsYXlpbmcpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGltZXIuaAppbmRleCBjNTU3ODk5NDA2YmFlMzYwZmNhNDVlN2E2NjM2ZDU5
NTA2MzZkNjI4Li5hZDNkNmRmY2M4NjViYzQ3MzRlNGY5OWE0ZDhjNjk4ZjMwNWU1NzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAgLTE0MCw2ICsxNDAsOCBAQCBwdWJsaWM6CiAgICAgICAg
IHN0YXJ0T25lU2hvdChtX2RlbGF5KTsKICAgICB9CiAKKyAgICB2b2lkIHNldERlbGF5KGRvdWJs
ZSBkZWxheSkgeyBtX2RlbGF5ID0gZGVsYXk7IH0KKwogICAgIHVzaW5nIFRpbWVyQmFzZTo6c3Rv
cDsKICAgICB1c2luZyBUaW1lckJhc2U6OmlzQWN0aXZlOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4
IDNlNGVhNGE4OGNhZDYxNTZhZjEwN2FmZjYwZTY0NmUzYTk1NWU1MDMuLjE4YTlhMzZhZDU0MmJm
ODc4Zjc1ZTU3NTBjNWM1NjEyYzBiYzUxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtNDMsMTMgKzQzLDE3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6
ZVRocmVzaG9sZFdpZHRoID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgYXV0b1N0YXJ0UGx1Z0luU2l6
ZVRocmVzaG9sZEhlaWdodCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IHN0YXJ0TGFiZWxQYWRkaW5n
ID0gMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgaG92ZXJEZWxheSA9IDE7CitzdGF0aWMgY29uc3Qg
ZG91YmxlIHNob3dMYWJlbEFmdGVyTW91c2VPdmVyRGVsYXkgPSAxOworc3RhdGljIGNvbnN0IGRv
dWJsZSBzaG93TGFiZWxBdXRvbWF0aWNhbGx5RGVsYXkgPSAzOwogCiBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCog
ZWxlbWVudCkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQpCiAgICAgLCBtX3Nu
YXBzaG90UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpCiAgICAgLCBtX3No
b3VsZFNob3dMYWJlbChmYWxzZSkKLSAgICAsIG1faG92ZXJEZWxheVRpbWVyKHRoaXMsICZSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6aG92ZXJEZWxheVRpbWVyRmlyZWQsIGhvdmVyRGVsYXkpCisg
ICAgLCBtX3Nob3VsZFNob3dMYWJlbEF1dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBtX3Nob3dl
ZExhYmVsT25jZShmYWxzZSkKKyAgICAsIG1fc2hvd1JlYXNvbihVc2VyTW91c2VkT3ZlcikKKyAg
ICAsIG1fc2hvd0xhYmVsRGVsYXlUaW1lcih0aGlzLCAmUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OnNob3dMYWJlbERlbGF5VGltZXJGaXJlZCwgc2hvd0xhYmVsQWZ0ZXJNb3VzZU92ZXJEZWxheSkK
IHsKICAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxpemUodGhpcyk7CiB9CkBAIC03Myw2
ICs3Nyw4IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBh
c3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogCiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNo
ZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKICAgICByZXBhaW50KCk7Cisg
ICAgaWYgKG1fc2hvdWxkU2hvd0xhYmVsQXV0b21hdGljYWxseSkKKyAgICAgICAgc3RvcEFuZFJl
c3RhcnREZWxheVRpbWVyKFNob3VsZFNob3dBdXRvbWF0aWNhbGx5KTsKIH0KIAogdm9pZCBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKQEAgLTE1MSw5ICsxNTcsMTAgQEAgdm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRMYWJlbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQKICAgICBpZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKKyAg
ICBpZiAoIXBsdWdJbkltYWdlRWxlbWVudCgpLT5ob3ZlcmVkKCkgJiYgbV9zaG93UmVhc29uID09
IFVzZXJNb3VzZWRPdmVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3Nob3dlZExhYmVsT25j
ZSA9IHRydWU7CiAgICAgTGF5b3V0UmVjdCByZWN0ID0gY29udGVudEJveFJlY3QoKTsKICAgICBM
YXlvdXRSZWN0IGxhYmVsUmVjdCA9IHRyeVRvRml0U3RhcnRMYWJlbChMYWJlbFNpemVMYXJnZSwg
cmVjdCk7CiAgICAgTGFiZWxTaXplIHNpemUgPSBOb0xhYmVsOwpAQCAtMTgwLDEyICsxODcsMTcg
QEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludExhYmVsKCkKICAgICByZXBh
aW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlUaW1l
ckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+KikK
K3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnNob3dMYWJlbERlbGF5VGltZXJGaXJlZChE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPiopCiB7CiAgICAg
bV9zaG91bGRTaG93TGFiZWwgPSB0cnVlOwogICAgIHJlcGFpbnRMYWJlbCgpOwogfQogCit2b2lk
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzZXRTaG91bGRTaG93TGFiZWxBdXRvbWF0aWNhbGx5
KGJvb2wgc2hvdykKK3sKKyAgICBtX3Nob3VsZFNob3dMYWJlbEF1dG9tYXRpY2FsbHkgPSBzaG93
OworfQorCiBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmdldEN1cnNv
cihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cnNvciYgb3ZlcnJpZGVDdXJzb3IpIGNvbnN0
CiB7CiAgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQ
bHVnSW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7CkBAIC0yMTksMTgg
KzIzMSwyNCBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVu
dCogZXZlbnQpCiAgICAgICAgIGlmIChtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9u
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChtX2hvdmVyRGVsYXlUaW1lci5p
c0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9ob3ZlckRlbGF5VGltZXIuc3RvcCgpOworICAgICAg
ICBpZiAobV9zaG93TGFiZWxEZWxheVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3No
b3dMYWJlbERlbGF5VGltZXIuc3RvcCgpOwogCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwogICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2VvdmVyRXZlbnQpIHsKLSAgICAgICAgbV9ob3ZlckRlbGF5VGltZXIucmVzdGFydCgpOworICAg
ICAgICBpZiAoIW1fc2hvd2VkTGFiZWxPbmNlIHx8IG1fc2hvd1JlYXNvbiAhPSBTaG91bGRTaG93
QXV0b21hdGljYWxseSkKKyAgICAgICAgICAgIHN0b3BBbmRSZXN0YXJ0RGVsYXlUaW1lcihVc2Vy
TW91c2VkT3Zlcik7CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgIH0g
ZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgewot
ICAgICAgICBpZiAobV9ob3ZlckRlbGF5VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1f
aG92ZXJEZWxheVRpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9zaG91bGRTaG93TGFiZWwgPSBmYWxz
ZTsKLSAgICAgICAgcmVwYWludExhYmVsKCk7CisgICAgICAgIGlmIChtX3Nob3dMYWJlbERlbGF5
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fc2hvd0xhYmVsRGVsYXlUaW1lci5zdG9w
KCk7CisgICAgICAgIGlmIChtX3Nob3VsZFNob3dMYWJlbCkgeworICAgICAgICAgICAgaWYgKG1f
c2hvd1JlYXNvbiA9PSBVc2VyTW91c2VkT3ZlcikgeworICAgICAgICAgICAgICAgIG1fc2hvdWxk
U2hvd0xhYmVsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVwYWludExhYmVsKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobV9zaG91bGRTaG93TGFiZWxBdXRvbWF0aWNh
bGx5KQorICAgICAgICAgICAgc3RvcEFuZFJlc3RhcnREZWxheVRpbWVyKFNob3VsZFNob3dBdXRv
bWF0aWNhbGx5KTsKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQog
fQpAQCAtMjQ5LDQgKzI2NywxMyBAQCBMYXlvdXRSZWN0IFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Ojp0cnlUb0ZpdFN0YXJ0TGFiZWwoTGFiZWxTaXplIHNpemUsIGNvbnN0IExheQogICAgIHJldHVy
biBjYW5kaWRhdGVSZWN0OwogfQogCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdG9w
QW5kUmVzdGFydERlbGF5VGltZXIoU2hvd1JlYXNvbiByZWFzb24pCit7CisgICAgbV9zaG93UmVh
c29uID0gcmVhc29uOworICAgIGlmIChtX3Nob3dMYWJlbERlbGF5VGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgbV9zaG93TGFiZWxEZWxheVRpbWVyLnN0b3AoKTsKKyAgICBtX3Nob3dMYWJlbERl
bGF5VGltZXIuc2V0RGVsYXkocmVhc29uID09IFVzZXJNb3VzZWRPdmVyID8gc2hvd0xhYmVsQWZ0
ZXJNb3VzZU92ZXJEZWxheSA6IHNob3dMYWJlbEF1dG9tYXRpY2FsbHlEZWxheSk7CisgICAgbV9z
aG93TGFiZWxEZWxheVRpbWVyLnJlc3RhcnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaAppbmRleCBlMGY4ZDFmNGMwOGJiZDVlYjgzZjZjZWU3N2Q2NWViMmQ4Y2YwZGY4Li5hOTIz
MzQ0YTc5YzE2OGU1NGQwODYwMjY1NmYwOTc0NzU1NTY2N2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtNDksNyArNDks
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPik7
CiAKICAgICB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50Kik7Ci0gICAgdm9pZCBob3ZlckRlbGF5VGlt
ZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPiop
OworICAgIHZvaWQgc2hvd0xhYmVsRGVsYXlUaW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGlt
ZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+Kik7CisKKyAgICB2b2lkIHNldFNob3VsZFNob3dM
YWJlbEF1dG9tYXRpY2FsbHkoYm9vbCA9IHRydWUpOwogCiBwcml2YXRlOgogICAgIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQqIHBsdWdJbkltYWdlRWxlbWVudCgpIGNvbnN0OwpAQCAtNjcsOSArNjks
MTkgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IHRyeVRvRml0U3RhcnRMYWJlbChMYWJlbFNp
emUsIGNvbnN0IExheW91dFJlY3QmIGNvbnRlbnRCb3gpIGNvbnN0OwogICAgIEltYWdlKiBzdGFy
dExhYmVsSW1hZ2UoTGFiZWxTaXplKSBjb25zdDsKIAorICAgIGVudW0gU2hvd1JlYXNvbiB7Cisg
ICAgICAgIFVzZXJNb3VzZWRPdmVyLAorICAgICAgICBTaG91bGRTaG93QXV0b21hdGljYWxseQor
ICAgIH07CisKKyAgICB2b2lkIHN0b3BBbmRSZXN0YXJ0RGVsYXlUaW1lcihTaG93UmVhc29uKTsK
KwogICAgIE93blB0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7CiAg
ICAgYm9vbCBtX3Nob3VsZFNob3dMYWJlbDsKLSAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyPFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luPiBtX2hvdmVyRGVsYXlUaW1lcjsKKyAgICBib29sIG1fc2hv
dWxkU2hvd0xhYmVsQXV0b21hdGljYWxseTsKKyAgICBib29sIG1fc2hvd2VkTGFiZWxPbmNlOwor
ICAgIFNob3dSZWFzb24gbV9zaG93UmVhc29uOworICAgIERlZmVycmFibGVPbmVTaG90VGltZXI8
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+IG1fc2hvd0xhYmVsRGVsYXlUaW1lcjsKIH07CiAKIGlu
bGluZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiogdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihS
ZW5kZXJPYmplY3QqIG9iamVjdCkK
</data>
<flag name="review"
          id="199038"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>