<?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>98326</bug_id>
          
          <creation_ts>2012-10-03 16:42:52 -0700</creation_ts>
          <short_desc>[WK2] Have plugins render initially offscreen to capture snapshot</short_desc>
          <delta_ts>2012-10-09 14:23:33 -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>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>
          
          <blocked>98318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>cpu</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</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>734192</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-03 16:42:52 -0700</bug_when>
    <thetext>Once a timer fires after the plugin initializes, make a snapshot of the plugin offscreen to display as a placeholder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734195</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-10-03 16:43:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/12426658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737067</commentid>
    <comment_count>2</comment_count>
      <attachid>167616</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 14:42:33 -0700</bug_when>
    <thetext>Created attachment 167616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737848</commentid>
    <comment_count>3</comment_count>
      <attachid>167616</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2012-10-09 09:14:23 -0700</bug_when>
    <thetext>Comment on attachment 167616
Patch

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

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:271
&gt; +    , m_pluginSnapshotTimer(this, &amp;PluginView::pluginSnapshotTimerFired, 3)

Should this be a named constant?

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1381
&gt; +{

Do you want to do something like: ASSERT_UNUSED(timer, timer == m_pluginSnapshotTimer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737878</commentid>
    <comment_count>4</comment_count>
      <attachid>167616</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-09 09:43:10 -0700</bug_when>
    <thetext>Comment on attachment 167616
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:271
&gt;&gt; +    , m_pluginSnapshotTimer(this, &amp;PluginView::pluginSnapshotTimerFired, 3)
&gt; 
&gt; Should this be a named constant?

Done.

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1381
&gt;&gt; +{
&gt; 
&gt; Do you want to do something like: ASSERT_UNUSED(timer, timer == m_pluginSnapshotTimer?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737935</commentid>
    <comment_count>5</comment_count>
      <attachid>167782</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-09 10:51:35 -0700</bug_when>
    <thetext>Created attachment 167782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737955</commentid>
    <comment_count>6</comment_count>
      <attachid>167782</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-09 11:09:17 -0700</bug_when>
    <thetext>Comment on attachment 167782
Patch

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

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:292
&gt; +    // Null out the plug-in element explicitly so we&apos;ll crash earlier if we try to use
&gt; +    // the plug-in view after it&apos;s been destroyed.
&gt; +    m_pluginElement = nullptr;

There doesn&apos;t seem to be much point in doing this in the destructor.

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.h:235
&gt; +    // The snapshot is used in two scenarios:
&gt; +    // 1) If plugin snapshotting is enabled, this snapshot represents the poster image.
&gt; +    // 2) Otherwise, it represents the first image displayed when the plugin is run, to avoid
&gt; +    // side effects should the plugin perform DOM manipulation on initialization.
&gt;      RefPtr&lt;ShareableBitmap&gt; m_snapshot;
&gt; +    RefPtr&lt;WebCore::Image&gt; m_snapshotImage;

This comment is ambiguous now; is it referring to m_snapshot, or m_snapshotImage. Do we still need both of these? Can they be renamed to make their purposes more obvious?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738016</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-09 11:51:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 167782 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167782&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:292
&gt; &gt; +    // Null out the plug-in element explicitly so we&apos;ll crash earlier if we try to use
&gt; &gt; +    // the plug-in view after it&apos;s been destroyed.
&gt; &gt; +    m_pluginElement = nullptr;
&gt; 
&gt; There doesn&apos;t seem to be much point in doing this in the destructor.

This already existed, and seems to have been added as a sanity check, so I will leave this in.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/PluginView.h:235
&gt; &gt; +    // The snapshot is used in two scenarios:
&gt; &gt; +    // 1) If plugin snapshotting is enabled, this snapshot represents the poster image.
&gt; &gt; +    // 2) Otherwise, it represents the first image displayed when the plugin is run, to avoid
&gt; &gt; +    // side effects should the plugin perform DOM manipulation on initialization.
&gt; &gt;      RefPtr&lt;ShareableBitmap&gt; m_snapshot;
&gt; &gt; +    RefPtr&lt;WebCore::Image&gt; m_snapshotImage;
&gt; 
&gt; This comment is ambiguous now; is it referring to m_snapshot, or m_snapshotImage. Do we still need both of these? Can they be renamed to make their purposes more obvious?

Yes, I believe I can get rid of the image variable and make this all happen locally. For readability, this means that instead of giving an Image* to WebCore, I will be using PassRefPtr&lt;Image&gt; instead.

Unfortunately, there is still a naming issue, because there is m_snapshot, and m_pluginSnapshotTimer, which at first glance would appear related. I am appending comments to explain that they are unrelated, and will rename m_snapshot to m_transientPaintingSnapshot.

New patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738042</commentid>
    <comment_count>8</comment_count>
      <attachid>167813</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-09 12:12:24 -0700</bug_when>
    <thetext>Created attachment 167813
Patch

Rename m_snapshot to m_transientPaintingSnapshot, refactor pluginSnapshotTimerFired to use local variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738182</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-09 14:23:33 -0700</bug_when>
    <thetext>Committed r130810: &lt;http://trac.webkit.org/changeset/130810&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167616</attachid>
            <date>2012-10-08 14:42:33 -0700</date>
            <delta_ts>2012-10-09 10:51:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98326-20121008144136.patch</filename>
            <type>text/plain</type>
            <size>7801</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWYyOWZjOTAxOTQ4ODQ0
MjlkMTM0ODljOGJjYmVmNGU3YjUwYzMyZC4uZjgwOTk1ZWMxYWIxY2Q0YTNiMjkxZjFjNzk3OTg4
NDQ1ZTkwMjUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTA4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBIYXZlIHBsdWdpbnMgcmVu
ZGVyIG9mZnNjcmVlbiB0byBjYXB0dXJlIHNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTI0MjY2NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgS2VlcCB0aGUgcGx1Z2luIHJlbmRlcmluZyB3aXRob3V0IGNvbXBvc2l0aW5nIHRvIGVhc2ls
eSBncmFiIHRoZSBzbmFwc2hvdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6IElu
aXRpYWxpemUgYSAzLXNlY29uZCB0aW1lciB0byBnZXQgdGhlIHNuYXBzaG90LgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6IFJlZmFjdG9yIHBhcnQgb2YgdGhlIGRl
c3RydWN0b3IgY29kZSBvdXQgaW50bworICAgICAgICBkZXN0cm95UGx1Z2luQW5kUmVzZXQoKSBm
b3IgcmV1c2UuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRlc3Ryb3lQbHVnaW5BbmRS
ZXNldCk6IENvbnRhaW5zIHBhcnQgb2YgdGhlIGRlc3RydWN0b3IgY29kZS4KKyAgICAgICAgSW4g
YWRkaXRpb24gdG8gZGVzdHJveWluZyB0aGUgcGx1Z2luLCB0aGUgZGVzdHJ1Y3RvciBjYW5jZWxz
IHBlbmRpbmcgbG9hZHMgYW5kIHN0cmVhbXMuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
OmRpZEluaXRpYWxpemVQbHVnaW4pOiBJZiB0aGUgcGx1Z2luIGlzIGluIGEgc3RhdGUgd2hlcmUg
aXQgbmVlZHMKKyAgICAgICAgdG8gZ2VuZXJhdGUgb3IgZGlzcGxheSBhIHBvc3RlciwgZG9uJ3Qg
c2V0dXAgdGhlIGNvbXBvc2l0aW5nIGxheWVyIGFuZCBzdGFydCB0aGUgdGltZXIuCisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OnBhaW50KTogQXZvaWQgcGFpbnRpbmcgaWYgdGhlIHBsdWdp
biBpcyBub3QgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aW52YWxpZGF0
ZVJlY3QpOiBBdm9pZCBwYWludGluZyBpZiB0aGUgcGx1Z2luIGlzIG5vdCBydW5uaW5nLgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KTogRG9uJ3QgZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIHVudGlsIHRo
ZSBwbHVnaW4gaXMgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2lu
U25hcHNob3RUaW1lckZpcmVkKTogV2hlbiB0aGUgdGltZXIgZmlyZXMsIGdldCBhIHNuYXBzaG90
LCBnZW5lcmF0ZQorICAgICAgICBhbiBJbWFnZSB0aGF0IFdlYkNvcmUgY2FuIHJlbmRlciwgYW5k
IGRlc3Ryb3kgdGhlIHBsdWdpbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oOgorICAgICAgICAoUGx1Z2luVmlldyk6CisKIDIwMTItMTAtMDggIFJpayBDYWJhbmll
ciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBjb21waWxlIGZs
YWcgZm9yIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggY2FkMzcyNjBlNGJiMTIwODU0OGVhZTI5NDYwNWY4NDEw
YjE5MDViMC4uZDkwNWJiNTc1ZDUxZWE4ZjNlZjcwNWM1NzM1NTM5MDE3ZWIxNTU2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjY4
LDYgKzI2OCw3IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoUGFzc1JlZlB0cjxIVE1MUGx1Z0lu
RWxlbWVudD4gcGx1Z2luRWxlbWVudCwgUGFzc1JlZlB0cjxQCiAgICAgLCBtX25wUnVudGltZU9i
amVjdE1hcCh0aGlzKQogI2VuZGlmCiAgICAgLCBtX21hbnVhbFN0cmVhbVN0YXRlKFN0cmVhbVN0
YXRlSW5pdGlhbCkKKyAgICAsIG1fcGx1Z2luU25hcHNob3RUaW1lcih0aGlzLCAmUGx1Z2luVmll
dzo6cGx1Z2luU25hcHNob3RUaW1lckZpcmVkLCAzKQogewogICAgIG1fd2ViUGFnZS0+YWRkUGx1
Z2luVmlldyh0aGlzKTsKIH0KQEAgLTI4Miw2ICsyODMsMTUgQEAgUGx1Z2luVmlldzo6flBsdWdp
blZpZXcoKQogICAgIGlmIChtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCkKICAgICAgICAg
bV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLT5yZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIo
dGhpcyk7CiAKKyAgICBkZXN0cm95UGx1Z2luQW5kUmVzZXQoKTsKKworICAgIC8vIE51bGwgb3V0
IHRoZSBwbHVnLWluIGVsZW1lbnQgZXhwbGljaXRseSBzbyB3ZSdsbCBjcmFzaCBlYXJsaWVyIGlm
IHdlIHRyeSB0byB1c2UKKyAgICAvLyB0aGUgcGx1Zy1pbiB2aWV3IGFmdGVyIGl0J3MgYmVlbiBk
ZXN0cm95ZWQuCisgICAgbV9wbHVnaW5FbGVtZW50ID0gbnVsbHB0cjsKK30KKwordm9pZCBQbHVn
aW5WaWV3OjpkZXN0cm95UGx1Z2luQW5kUmVzZXQoKQorewogICAgIC8vIENhbmNlbCBhbGwgcGVu
ZGluZyBmcmFtZSBsb2Fkcy4KICAgICBmb3IgKEZyYW1lTG9hZE1hcDo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdGcmFtZUxvYWRzLmJlZ2luKCksIGVuZCA9IG1fcGVuZGluZ0ZyYW1lTG9hZHMuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgaXQtPmtleS0+c2V0TG9hZExpc3RlbmVyKDAp
OwpAQCAtMzAyLDEwICszMTIsNiBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAjZW5kaWYK
IAogICAgIGNhbmNlbEFsbFN0cmVhbXMoKTsKLQotICAgIC8vIE51bGwgb3V0IHRoZSBwbHVnLWlu
IGVsZW1lbnQgZXhwbGljaXRseSBzbyB3ZSdsbCBjcmFzaCBlYXJsaWVyIGlmIHdlIHRyeSB0byB1
c2UKLSAgICAvLyB0aGUgcGx1Zy1pbiB2aWV3IGFmdGVyIGl0J3MgYmVlbiBkZXN0cm95ZWQuCi0g
ICAgbV9wbHVnaW5FbGVtZW50ID0gbnVsbHB0cjsKIH0KIAogRnJhbWUqIFBsdWdpblZpZXc6OmZy
YW1lKCkgY29uc3QKQEAgLTUxMyw3ICs1MTksOSBAQCB2b2lkIFBsdWdpblZpZXc6OmRpZEluaXRp
YWxpemVQbHVnaW4oKQogICAgIHJlZGVsaXZlck1hbnVhbFN0cmVhbSgpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luTGF5ZXIoKSkgeworICAgIGlmIChtX3Bs
dWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcp
CisgICAgICAgIG1fcGx1Z2luU25hcHNob3RUaW1lci5yZXN0YXJ0KCk7CisgICAgZWxzZSBpZiAo
bV9wbHVnaW4tPnBsdWdpbkxheWVyKCkpIHsKICAgICAgICAgaWYgKGZyYW1lKCkpIHsKICAgICAg
ICAgICAgIGZyYW1lKCktPnZpZXcoKS0+ZW50ZXJDb21wb3NpdGluZ01vZGUoKTsKICAgICAgICAg
ICAgIG1fcGx1Z2luRWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNo
YW5nZSk7CkBAIC02NDMsNyArNjUxLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRGcmFtZVJlY3Qo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIAogdm9pZCBQbHVnaW5WaWV3OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIC8qZGlydHlSZWN0Ki8pCiB7
Ci0gICAgaWYgKCFtX3BsdWdpbiB8fCAhbV9pc0luaXRpYWxpemVkKQorICAgIGlmICghbV9wbHVn
aW4gfHwgIW1faXNJbml0aWFsaXplZCB8fCBtX3BsdWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgp
IDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpIHsKQEAgLTEwMjEsNiArMTAyOSw5IEBAIHZv
aWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQog
ICAgICAgICByZXR1cm47CiAjZW5kaWYKIAorICAgIGlmIChtX3BsdWdpbkVsZW1lbnQtPmRpc3Bs
YXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpCisgICAgICAgIHJldHVybjsK
KwogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHRvUmVuZGVyQm94TW9kZWxP
YmplY3QobV9wbHVnaW5FbGVtZW50LT5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRlcmVyKQog
ICAgICAgICByZXR1cm47CkBAIC0xMTc2LDYgKzExODcsOCBAQCBib29sIFBsdWdpblZpZXc6Omlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQogICAgIGlmICghc2V0dGluZ3MpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX3BsdWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0
ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gc2V0dGluZ3MtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiB9
CiAKQEAgLTEzNjQsNCArMTM3NywxNyBAQCB2b2lkIFBsdWdpblZpZXc6OndpbmRvd2VkUGx1Z2lu
R2VvbWV0cnlEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZQogfQogI2Vu
ZGlmCiAKK3ZvaWQgUGx1Z2luVmlldzo6cGx1Z2luU25hcHNob3RUaW1lckZpcmVkKERlZmVycmFi
bGVPbmVTaG90VGltZXI8UGx1Z2luVmlldz4qIHRpbWVyKQoreworICAgIEFTU0VSVChtX3BsdWdp
bik7CisKKyAgICBtX3NuYXBzaG90ID0gbV9wbHVnaW4tPnNuYXBzaG90KCk7CisgICAgLy8gU25h
cHNob3QgbWlnaHQgYmUgMCBpZiBwbHVnaW4gc2l6ZSBpcyAweDAuCisgICAgaWYgKG1fc25hcHNo
b3QpCisgICAgICAgIG1fc25hcHNob3RJbWFnZSA9IG1fc25hcHNob3QtPmNyZWF0ZUltYWdlKCk7
CisgICAgbV9wbHVnaW5FbGVtZW50LT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2UuZ2V0
KCkpOworICAgIGRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpOworICAgIG1fcGx1Z2luID0gMDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCA5Y2MyNTdhOTgwNjQ0NTk5MjcyY2JmMjYwMDY1ZGNj
MmUzN2EyZTgzLi4xNjhmNjNjY2ZmZjMyNTg1YzI4MWM0NDNlNzA0MGE5N2U2ZTRjNjcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEx
ICszMCwxMyBAQAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxkIG1vdmUgdG8gV2Vi
Q29yZS4KQEAgLTEwNCw2ICsxMDYsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWRlbGl2ZXJN
YW51YWxTdHJlYW0oKTsKIAorICAgIHZvaWQgcGx1Z2luU25hcHNob3RUaW1lckZpcmVkKFdlYkNv
cmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI8UGx1Z2luVmlldz4qKTsKKwogICAgIC8vIFdlYkNv
cmU6OlBsdWdpblZpZXdCYXNlCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwpAQCAtMTc3LDYgKzE4MSw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5pdGlhbGl6ZVBsdWdpbigpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKCk7CisgICAgdm9pZCBkZXN0cm95UGx1
Z2luQW5kUmVzZXQoKTsKIAogICAgIC8vIFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZChXZWJGcmFtZSopOwpAQCAtMjIyLDcgKzIyNywxMyBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgbV9tYW51YWxTdHJlYW1FcnJvcjsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBtX21hbnVhbFN0cmVhbURhdGE7CiAg
ICAgCisgICAgLy8gVGhlIHNuYXBzaG90IGlzIHVzZWQgaW4gdHdvIHNjZW5hcmlvczoKKyAgICAv
LyAxKSBJZiBwbHVnaW4gc25hcHNob3R0aW5nIGlzIGVuYWJsZWQsIHRoaXMgc25hcHNob3QgcmVw
cmVzZW50cyB0aGUgcG9zdGVyIGltYWdlLgorICAgIC8vIDIpIE90aGVyd2lzZSwgaXQgcmVwcmVz
ZW50cyB0aGUgZmlyc3QgaW1hZ2UgZGlzcGxheWVkIHdoZW4gdGhlIHBsdWdpbiBpcyBydW4sIHRv
IGF2b2lkCisgICAgLy8gc2lkZSBlZmZlY3RzIHNob3VsZCB0aGUgcGx1Z2luIHBlcmZvcm0gRE9N
IG1hbmlwdWxhdGlvbiBvbiBpbml0aWFsaXphdGlvbi4KICAgICBSZWZQdHI8U2hhcmVhYmxlQml0
bWFwPiBtX3NuYXBzaG90OworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gbV9zbmFwc2hvdElt
YWdlOworICAgIFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI8UGx1Z2luVmlldz4gbV9w
bHVnaW5TbmFwc2hvdFRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167782</attachid>
            <date>2012-10-09 10:51:35 -0700</date>
            <delta_ts>2012-10-09 12:12:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98326-20121009105038.patch</filename>
            <type>text/plain</type>
            <size>8202</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWYyOWZjOTAxOTQ4ODQ0
MjlkMTM0ODljOGJjYmVmNGU3YjUwYzMyZC4uMGQyOWQ4YzgwZjIxMzlmNWFlYjQ0NDBlY2RmNWJj
MTU2MzkxYzYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTA5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBIYXZlIHBsdWdpbnMgcmVu
ZGVyIG9mZnNjcmVlbiB0byBjYXB0dXJlIHNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTI0MjY2NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgS2VlcCB0aGUgcGx1Z2luIHJlbmRlcmluZyB3aXRob3V0IGNvbXBvc2l0aW5nIHRvIGVhc2ls
eSBncmFiIHRoZSBzbmFwc2hvdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6IElu
aXRpYWxpemUgYSAzLXNlY29uZCB0aW1lciB0byBnZXQgdGhlIHNuYXBzaG90LgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6IFJlZmFjdG9yIHBhcnQgb2YgdGhlIGRl
c3RydWN0b3IgY29kZSBvdXQgaW50bworICAgICAgICBkZXN0cm95UGx1Z2luQW5kUmVzZXQoKSBm
b3IgcmV1c2UuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRlc3Ryb3lQbHVnaW5BbmRS
ZXNldCk6IENvbnRhaW5zIHBhcnQgb2YgdGhlIGRlc3RydWN0b3IgY29kZS4KKyAgICAgICAgSW4g
YWRkaXRpb24gdG8gZGVzdHJveWluZyB0aGUgcGx1Z2luLCB0aGUgZGVzdHJ1Y3RvciBjYW5jZWxz
IHBlbmRpbmcgbG9hZHMgYW5kIHN0cmVhbXMuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6
OmRpZEluaXRpYWxpemVQbHVnaW4pOiBJZiB0aGUgcGx1Z2luIGlzIGluIGEgc3RhdGUgd2hlcmUg
aXQgbmVlZHMKKyAgICAgICAgdG8gZ2VuZXJhdGUgb3IgZGlzcGxheSBhIHBvc3RlciwgZG9uJ3Qg
c2V0dXAgdGhlIGNvbXBvc2l0aW5nIGxheWVyIGFuZCBzdGFydCB0aGUgdGltZXIuCisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OnBhaW50KTogQXZvaWQgcGFpbnRpbmcgaWYgdGhlIHBsdWdp
biBpcyBub3QgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aW52YWxpZGF0
ZVJlY3QpOiBBdm9pZCBwYWludGluZyBpZiB0aGUgcGx1Z2luIGlzIG5vdCBydW5uaW5nLgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KTogRG9uJ3QgZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIHVudGlsIHRo
ZSBwbHVnaW4gaXMgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2lu
U25hcHNob3RUaW1lckZpcmVkKTogV2hlbiB0aGUgdGltZXIgZmlyZXMsIGdldCBhIHNuYXBzaG90
LCBnZW5lcmF0ZQorICAgICAgICBhbiBJbWFnZSB0aGF0IFdlYkNvcmUgY2FuIHJlbmRlciwgYW5k
IGRlc3Ryb3kgdGhlIHBsdWdpbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oOgorICAgICAgICAoUGx1Z2luVmlldyk6CisKIDIwMTItMTAtMDggIFJpayBDYWJhbmll
ciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBjb21waWxlIGZs
YWcgZm9yIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggY2FkMzcyNjBlNGJiMTIwODU0OGVhZTI5NDYwNWY4NDEw
YjE5MDViMC4uZTRiOGI5ZTZkMjBiNmI5N2JlYjAxYjI0YWY0NTllODQ0YzJkMGNmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjcs
NiArNjcsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK3N0YXRpYyBjb25zdCBkb3VibGUgcGx1Z2luU25hcHNob3RUaW1lckRlbGF5ID0gMzsKKwog
Y2xhc3MgUGx1Z2luVmlldzo6VVJMUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVSTFJlcXVl
c3Q+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5WaWV3OjpVUkxSZXF1
ZXN0PiBjcmVhdGUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIGFsbG93UG9wdXBzKQpAQCAtMjY4LDYgKzI3MCw3IEBAIFBsdWdpblZpZXc6
OlBsdWdpblZpZXcoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gcGx1Z2luRWxlbWVudCwg
UGFzc1JlZlB0cjxQCiAgICAgLCBtX25wUnVudGltZU9iamVjdE1hcCh0aGlzKQogI2VuZGlmCiAg
ICAgLCBtX21hbnVhbFN0cmVhbVN0YXRlKFN0cmVhbVN0YXRlSW5pdGlhbCkKKyAgICAsIG1fcGx1
Z2luU25hcHNob3RUaW1lcih0aGlzLCAmUGx1Z2luVmlldzo6cGx1Z2luU25hcHNob3RUaW1lckZp
cmVkLCBwbHVnaW5TbmFwc2hvdFRpbWVyRGVsYXkpCiB7CiAgICAgbV93ZWJQYWdlLT5hZGRQbHVn
aW5WaWV3KHRoaXMpOwogfQpAQCAtMjgyLDYgKzI4NSwxNSBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2lu
VmlldygpCiAgICAgaWYgKG1faXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0KQogICAgICAgICBt
X3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCktPnJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcih0
aGlzKTsKIAorICAgIGRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpOworCisgICAgLy8gTnVsbCBvdXQg
dGhlIHBsdWctaW4gZWxlbWVudCBleHBsaWNpdGx5IHNvIHdlJ2xsIGNyYXNoIGVhcmxpZXIgaWYg
d2UgdHJ5IHRvIHVzZQorICAgIC8vIHRoZSBwbHVnLWluIHZpZXcgYWZ0ZXIgaXQncyBiZWVuIGRl
c3Ryb3llZC4KKyAgICBtX3BsdWdpbkVsZW1lbnQgPSBudWxscHRyOworfQorCit2b2lkIFBsdWdp
blZpZXc6OmRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpCit7CiAgICAgLy8gQ2FuY2VsIGFsbCBwZW5k
aW5nIGZyYW1lIGxvYWRzLgogICAgIGZvciAoRnJhbWVMb2FkTWFwOjppdGVyYXRvciBpdCA9IG1f
cGVuZGluZ0ZyYW1lTG9hZHMuYmVnaW4oKSwgZW5kID0gbV9wZW5kaW5nRnJhbWVMb2Fkcy5lbmQo
KTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBpdC0+a2V5LT5zZXRMb2FkTGlzdGVuZXIoMCk7
CkBAIC0zMDIsMTAgKzMxNCw2IEBAIFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICNlbmRpZgog
CiAgICAgY2FuY2VsQWxsU3RyZWFtcygpOwotCi0gICAgLy8gTnVsbCBvdXQgdGhlIHBsdWctaW4g
ZWxlbWVudCBleHBsaWNpdGx5IHNvIHdlJ2xsIGNyYXNoIGVhcmxpZXIgaWYgd2UgdHJ5IHRvIHVz
ZQotICAgIC8vIHRoZSBwbHVnLWluIHZpZXcgYWZ0ZXIgaXQncyBiZWVuIGRlc3Ryb3llZC4KLSAg
ICBtX3BsdWdpbkVsZW1lbnQgPSBudWxscHRyOwogfQogCiBGcmFtZSogUGx1Z2luVmlldzo6ZnJh
bWUoKSBjb25zdApAQCAtNTEzLDcgKzUyMSw5IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkSW5pdGlh
bGl6ZVBsdWdpbigpCiAgICAgcmVkZWxpdmVyTWFudWFsU3RyZWFtKCk7CiAKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5MYXllcigpKSB7CisgICAgaWYgKG1fcGx1
Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykK
KyAgICAgICAgbV9wbHVnaW5TbmFwc2hvdFRpbWVyLnJlc3RhcnQoKTsKKyAgICBlbHNlIGlmICht
X3BsdWdpbi0+cGx1Z2luTGF5ZXIoKSkgewogICAgICAgICBpZiAoZnJhbWUoKSkgewogICAgICAg
ICAgICAgZnJhbWUoKS0+dmlldygpLT5lbnRlckNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICAg
ICAgbV9wbHVnaW5FbGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hh
bmdlKTsKQEAgLTY0Myw3ICs2NTMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEZyYW1lUmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogCiB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsK
LSAgICBpZiAoIW1fcGx1Z2luIHx8ICFtX2lzSW5pdGlhbGl6ZWQpCisgICAgaWYgKCFtX3BsdWdp
biB8fCAhbV9pc0luaXRpYWxpemVkIHx8IG1fcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkg
PCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkgewpAQCAtMTAyMSw2ICsxMDMxLDkgQEAgdm9p
ZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiAg
ICAgICAgIHJldHVybjsKICNlbmRpZgogCisgICAgaWYgKG1fcGx1Z2luRWxlbWVudC0+ZGlzcGxh
eVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlcmVyID0gdG9SZW5kZXJCb3hNb2RlbE9i
amVjdChtX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIpCiAg
ICAgICAgIHJldHVybjsKQEAgLTExNzYsNiArMTE4OSw4IEBAIGJvb2wgUGx1Z2luVmlldzo6aXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiAgICAgaWYgKCFzZXR0aW5ncykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRl
KCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIHJldHVybiBzZXR0aW5ncy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKIH0K
IApAQCAtMTM2NCw0ICsxMzc5LDE4IEBAIHZvaWQgUGx1Z2luVmlldzo6d2luZG93ZWRQbHVnaW5H
ZW9tZXRyeURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlCiB9CiAjZW5k
aWYKIAordm9pZCBQbHVnaW5WaWV3OjpwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZWQoRGVmZXJyYWJs
ZU9uZVNob3RUaW1lcjxQbHVnaW5WaWV3PiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0
aW1lciwgdGltZXIgPT0gJm1fcGx1Z2luU25hcHNob3RUaW1lcik7CisgICAgQVNTRVJUKG1fcGx1
Z2luKTsKKworICAgIG1fc25hcHNob3QgPSBtX3BsdWdpbi0+c25hcHNob3QoKTsKKyAgICAvLyBT
bmFwc2hvdCBtaWdodCBiZSAwIGlmIHBsdWdpbiBzaXplIGlzIDB4MC4KKyAgICBpZiAobV9zbmFw
c2hvdCkKKyAgICAgICAgbV9zbmFwc2hvdEltYWdlID0gbV9zbmFwc2hvdC0+Y3JlYXRlSW1hZ2Uo
KTsKKyAgICBtX3BsdWdpbkVsZW1lbnQtPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZS5n
ZXQoKSk7CisgICAgZGVzdHJveVBsdWdpbkFuZFJlc2V0KCk7CisgICAgbV9wbHVnaW4gPSAwOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDljYzI1N2E5ODA2NDQ1OTkyNzJjYmYyNjAwNjVk
Y2MyZTM3YTJlODMuLjE2OGY2M2NjZmZmMzI1ODVjMjgxYzQ0M2U3MDQwYTk3ZTZlNGM2NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAs
MTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiUGx1Z2luQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDYW5TdGFydExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBX
ZWJDb3JlLgpAQCAtMTA0LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZGVsaXZl
ck1hbnVhbFN0cmVhbSgpOwogCisgICAgdm9pZCBwbHVnaW5TbmFwc2hvdFRpbWVyRmlyZWQoV2Vi
Q29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcjxQbHVnaW5WaWV3PiopOworCiAgICAgLy8gV2Vi
Q29yZTo6UGx1Z2luVmlld0Jhc2UKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCBQbGF0
Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CkBAIC0xNzcsNiArMTgxLDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRJbml0aWFsaXplUGx1Z2luKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKTsKKyAgICB2b2lkIGRlc3Ryb3lQ
bHVnaW5BbmRSZXNldCgpOwogCiAgICAgLy8gV2ViRnJhbWU6OkxvYWRMaXN0ZW5lcgogICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKFdlYkZyYW1lKik7CkBAIC0yMjIsNyArMjI3LDEzIEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBtX21hbnVhbFN0cmVhbUVycm9y
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fbWFudWFsU3RyZWFtRGF0YTsK
ICAgICAKKyAgICAvLyBUaGUgc25hcHNob3QgaXMgdXNlZCBpbiB0d28gc2NlbmFyaW9zOgorICAg
IC8vIDEpIElmIHBsdWdpbiBzbmFwc2hvdHRpbmcgaXMgZW5hYmxlZCwgdGhpcyBzbmFwc2hvdCBy
ZXByZXNlbnRzIHRoZSBwb3N0ZXIgaW1hZ2UuCisgICAgLy8gMikgT3RoZXJ3aXNlLCBpdCByZXBy
ZXNlbnRzIHRoZSBmaXJzdCBpbWFnZSBkaXNwbGF5ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHJ1biwg
dG8gYXZvaWQKKyAgICAvLyBzaWRlIGVmZmVjdHMgc2hvdWxkIHRoZSBwbHVnaW4gcGVyZm9ybSBE
T00gbWFuaXB1bGF0aW9uIG9uIGluaXRpYWxpemF0aW9uLgogICAgIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IG1fc25hcHNob3Q7CisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBtX3NuYXBzaG90
SW1hZ2U7CisgICAgV2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcjxQbHVnaW5WaWV3PiBt
X3BsdWdpblNuYXBzaG90VGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167813</attachid>
            <date>2012-10-09 12:12:24 -0700</date>
            <delta_ts>2012-10-09 13:18:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98326-20121009121127.patch</filename>
            <type>text/plain</type>
            <size>14491</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAyMTQzMDBmZGJiYTIz
MWE3NjQyN2I1MjE1ODk2NWE0NTZiNzY4Yy4uYzVlMzE2NGM5ZWQ5NTBhZjc1YTc1NWI3YWQ0OWEx
NTljNzcwOTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEwLTA5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBIYXZlIHBsdWdpbnMgcmVu
ZGVyIG9mZnNjcmVlbiB0byBjYXB0dXJlIHNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTI0MjY2NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlIHVwZGF0ZVNuYXBzaG90KCkgdG8gdXNlIGEgUGFzc1JlZlB0cjxJbWFnZT4gaW5z
dGVhZCBvZiBJbWFnZSouIFdlYktpdDIgdWx0aW1hdGVseQorICAgICAgICBoYW5kcyB0aGUgaW1h
Z2Ugb2ZmIHRvIFJlbmRlclNuYXBzaG90dGVkUGx1Z2luLiBBIENhY2hlZEltYWdlIGluc3RhbmNl
IHRoZW4gbWFuYWdlcyB0aGUKKyAgICAgICAgbGlmZXRpbWUgb2YgdGhlIEltYWdlLgorCisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6dXBkYXRlU25hcHNob3QpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5oOgorICAgICAgICAoSFRNTFBsdWdJbkltYWdlRWxlbWVudCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6IFVwZGF0ZWQgdG8gdXNlIHRoZSBQ
YXNzUmVmUHRyPEltYWdlPgorICAgICAgICBwb2ludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOgorICAgICAgICAoUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4pOgorCiAyMDEyLTEwLTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgcmVuZGVyIG9iamVjdCB0aGF0IHBhaW50cyBwbHVnaW4gc25hcHNob3RzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggYWYyOWZjOTAxOTQ4ODQ0MjlkMTM0ODljOGJjYmVmNGU3YjUwYzMyZC4uN2VlMzg0MmQ3
YzI5YTFmNDJmMjk5NDEzY2U0ZTFmNGUwNDUxN2NhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDEyLTEwLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBb
V0syXSBIYXZlIHBsdWdpbnMgcmVuZGVyIG9mZnNjcmVlbiB0byBjYXB0dXJlIHNuYXBzaG90Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyNgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTI0MjY2NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgS2VlcCB0aGUgcGx1Z2luIHJlbmRlcmluZyB3aXRob3V0
IGNvbXBvc2l0aW5nIHRvIGVhc2lseSBncmFiIHRoZSBzbmFwc2hvdC4KKworICAgICAgICBQbHVn
aW5WaWV3IG5vdyBoYXMgdHdvIHZhcmlhYmxlcyByZWZlcnJpbmcgdG8gc25hcHNob3RzLCBidXQg
YXJlIHVucmVsYXRlZC4gVGhlIHRpbWVyCisgICAgICAgIGlzIHVzZWQgdG8gY2FwdHVyZSBhIHNu
YXBzaG90IHRoYXQgYWN0cyBhcyBhIHBvc3RlciBmb3IgYSBwbHVnaW4uIFRoZSBTaGFyZWFibGVC
aXRtYXAKKyAgICAgICAgdmFyaWFibGUgbV9zbmFwc2hvdCBpcyB1c2VkIHdoZW5ldmVyIHRoZSBw
bHVnaW4gcGFpbnRzIGluIHNvZnR3YXJlLCB0byBhdm9pZCBzaWRlIGVmZmVjdHMKKyAgICAgICAg
c2hvdWxkIHRoZSBwbHVnaW4gcnVuIEpTIGR1cmluZyBwYWludGluZy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdCk6IEFkZCBh
IG5hbWVkIGNvbnN0YW50IGZvciB0aGUgdGltZSBkZWxheSBiZWZvcmUgYSBzbmFwc2hvdCBpcyB0
YWtlbi4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6IEluaXRpYWxp
emUgYSAzLXNlY29uZCB0aW1lciB0byBnZXQgdGhlIHNuYXBzaG90LgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6IFJlZmFjdG9yIHBhcnQgb2YgdGhlIGRlc3RydWN0
b3IgY29kZSBvdXQgaW50bworICAgICAgICBkZXN0cm95UGx1Z2luQW5kUmVzZXQoKSBmb3IgcmV1
c2UuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRlc3Ryb3lQbHVnaW5BbmRSZXNldCk6
IENvbnRhaW5zIHBhcnQgb2YgdGhlIGRlc3RydWN0b3IgY29kZS4KKyAgICAgICAgSW4gYWRkaXRp
b24gdG8gZGVzdHJveWluZyB0aGUgcGx1Z2luLCB0aGUgZGVzdHJ1Y3RvciBjYW5jZWxzIHBlbmRp
bmcgbG9hZHMgYW5kIHN0cmVhbXMuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRpZElu
aXRpYWxpemVQbHVnaW4pOiBJZiB0aGUgcGx1Z2luIGlzIGluIGEgc3RhdGUgd2hlcmUgaXQgbmVl
ZHMKKyAgICAgICAgdG8gZ2VuZXJhdGUgb3IgZGlzcGxheSBhIHBvc3RlciwgZG9uJ3Qgc2V0dXAg
dGhlIGNvbXBvc2l0aW5nIGxheWVyIGFuZCBzdGFydCB0aGUgdGltZXIuCisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblZpZXc6OnBhaW50KTogQXZvaWQgcGFpbnRpbmcgaWYgdGhlIHBsdWdpbiBpcyBu
b3QgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3Qp
OiBBdm9pZCBwYWludGluZyBpZiB0aGUgcGx1Z2luIGlzIG5vdCBydW5uaW5nLgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTogRG9u
J3QgZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIHVudGlsIHRoZSBwbHVn
aW4gaXMgcnVubmluZy4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2luU25hcHNo
b3RUaW1lckZpcmVkKTogV2hlbiB0aGUgdGltZXIgZmlyZXMsIGdldCBhIHNuYXBzaG90LCBnZW5l
cmF0ZQorICAgICAgICBhbiBJbWFnZSB0aGF0IFdlYkNvcmUgY2FuIHJlbmRlciwgYW5kIGRlc3Ry
b3kgdGhlIHBsdWdpbi4KKworICAgICAgICBSZW5hbWUgbV9zbmFwc2hvdCB0byBtX3RyYW5zaWVu
dFBhaW50aW5nU25hcHNob3QuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Vmlldzo6bm90aWZ5V2lkZ2V0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2lu
U25hcHNob3RUaW1lckZpcmVkKToKKwogMjAxMi0xMC0wOCAgUmlrIENhYmFuaWVyICA8Y2FiYW5p
ZXJAYWRvYmUuY29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIGNvbXBpbGUgZmxhZyBmb3IgY29t
cG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCBjZmEx
NDdmYzQ3MzcxNGM1ZTRmNGE0NTM3YTAyOGU5YWFlOGNjZDFiLi41ZWE3M2JhOGU4ZmRiNzAwNTI4
ZTU5NjdlNWU0Mjc1ZDkzZWQ0NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlTdGF0
ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZv
aWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgeyBtX2Rpc3BsYXlTdGF0ZSA9
IHN0YXRlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KSB7IH0KIAog
I2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIE5QT2JqZWN0KiBnZXROUE9iamVj
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
aW5kZXggOTliYjg1MWVkNjc0NzBhNjMwNmM3YjZmZWIyYTAxMTQwN2E3ZGI1NS4uN2U3YzI3NTEz
ODAyNmU2OGNkMmFhMjllMjcyZmUxY2IxMzc4ZmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRDYWxsYmFjayhOb2RlKiBuLCB1bnNp
Z25lZCkKICAgICBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4obiktPnVwZGF0
ZVdpZGdldElmTmVjZXNzYXJ5KCk7CiB9CiAKLXZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIHsKICAgICBpZiAoZGlz
cGxheVN0YXRlKCkgPiBXYWl0aW5nRm9yU25hcHNob3QgfHwgIXJlbmRlcmVyKCktPmlzU25hcHNo
b3R0ZWRQbHVnSW4oKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhMDA5ODE5MzMyNjlkMDQyY2MxNTIxMDg0NmJj
OWM4YzdiMTk2ZTA1Li45NWZiZDhhNzkwNDBmNjZiYTllMDE4YmY4MjQ3YjBkMjljM2RmOGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtOTAs
NyArOTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgdXNlRmFsbGJhY2tDb250ZW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4p
IE9WRVJSSURFOwogCiAgICAgYm9vbCBtX25lZWRzV2lkZ2V0VXBkYXRlOwogICAgIGJvb2wgbV9z
aG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggMmE4NTkyYzgwZjYxZWY1
ZDc3OTYxYThkZmVlOTQwMzVhYTA3MmVhZS4uNTZiYmQ3NDQxMDMyN2YyMWViMDY3MWE1ZGI4YjU3
NWU2Y2FhZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC01MywxMyArNTMsMTMgQEAgSFRNTFBsdWdJbkltYWdl
RWxlbWVudCogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBsdWdJbkltYWdlRWxlbWVudCgpIGNv
bnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihub2Rl
KCkpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChJ
bWFnZSogaW1hZ2UpCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hv
dChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUgcGx1Z2lucyB3
aWxsIGhhdmUgbm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1h
Z2UpKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJ
bWFnZShpbWFnZS5nZXQoKSkpOwogICAgIHJlcGFpbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCBhMGM2MjU3
N2Y2MDBjMGJjMWNlMGNiMTZlMzllNjI0ZGQ2YTQ4OTliLi44MGMyYTE0YjMzZTA5ZjQzOWQ1NTAx
MDQ2ODRmNzY4ODY1MDNiYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCopOwogICAgIHZp
cnR1YWwgflJlbmRlclNuYXBzaG90dGVkUGx1Z0luKCk7CiAKLSAgICB2b2lkIHVwZGF0ZVNuYXBz
aG90KEltYWdlKik7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPik7
CiAKIHByaXZhdGU6CiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVt
ZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKaW5kZXggY2FkMzcyNjBlNGJiMTIwODU0OGVhZTI5NDYwNWY4NDEwYjE5MDVi
MC4uYmE4NWU3MmRjYmY4ZjQ2MTU0MzEyODQ0MjYwOWY1ZTYwMjJjMmZjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjcsNiArNjcs
OCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0
YXRpYyBjb25zdCBkb3VibGUgcGx1Z2luU25hcHNob3RUaW1lckRlbGF5ID0gMzsKKwogY2xhc3Mg
UGx1Z2luVmlldzo6VVJMUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVSTFJlcXVlc3Q+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5WaWV3OjpVUkxSZXF1ZXN0PiBj
cmVhdGUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGFsbG93UG9wdXBzKQpAQCAtMjY4LDYgKzI3MCw3IEBAIFBsdWdpblZpZXc6OlBsdWdp
blZpZXcoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gcGx1Z2luRWxlbWVudCwgUGFzc1Jl
ZlB0cjxQCiAgICAgLCBtX25wUnVudGltZU9iamVjdE1hcCh0aGlzKQogI2VuZGlmCiAgICAgLCBt
X21hbnVhbFN0cmVhbVN0YXRlKFN0cmVhbVN0YXRlSW5pdGlhbCkKKyAgICAsIG1fcGx1Z2luU25h
cHNob3RUaW1lcih0aGlzLCAmUGx1Z2luVmlldzo6cGx1Z2luU25hcHNob3RUaW1lckZpcmVkLCBw
bHVnaW5TbmFwc2hvdFRpbWVyRGVsYXkpCiB7CiAgICAgbV93ZWJQYWdlLT5hZGRQbHVnaW5WaWV3
KHRoaXMpOwogfQpAQCAtMjgyLDYgKzI4NSwxNSBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygp
CiAgICAgaWYgKG1faXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0KQogICAgICAgICBtX3BsdWdp
bkVsZW1lbnQtPmRvY3VtZW50KCktPnJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcih0aGlzKTsK
IAorICAgIGRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpOworCisgICAgLy8gTnVsbCBvdXQgdGhlIHBs
dWctaW4gZWxlbWVudCBleHBsaWNpdGx5IHNvIHdlJ2xsIGNyYXNoIGVhcmxpZXIgaWYgd2UgdHJ5
IHRvIHVzZQorICAgIC8vIHRoZSBwbHVnLWluIHZpZXcgYWZ0ZXIgaXQncyBiZWVuIGRlc3Ryb3ll
ZC4KKyAgICBtX3BsdWdpbkVsZW1lbnQgPSBudWxscHRyOworfQorCit2b2lkIFBsdWdpblZpZXc6
OmRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpCit7CiAgICAgLy8gQ2FuY2VsIGFsbCBwZW5kaW5nIGZy
YW1lIGxvYWRzLgogICAgIGZvciAoRnJhbWVMb2FkTWFwOjppdGVyYXRvciBpdCA9IG1fcGVuZGlu
Z0ZyYW1lTG9hZHMuYmVnaW4oKSwgZW5kID0gbV9wZW5kaW5nRnJhbWVMb2Fkcy5lbmQoKTsgaXQg
IT0gZW5kOyArK2l0KQogICAgICAgICBpdC0+a2V5LT5zZXRMb2FkTGlzdGVuZXIoMCk7CkBAIC0z
MDIsMTAgKzMxNCw2IEBAIFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICNlbmRpZgogCiAgICAg
Y2FuY2VsQWxsU3RyZWFtcygpOwotCi0gICAgLy8gTnVsbCBvdXQgdGhlIHBsdWctaW4gZWxlbWVu
dCBleHBsaWNpdGx5IHNvIHdlJ2xsIGNyYXNoIGVhcmxpZXIgaWYgd2UgdHJ5IHRvIHVzZQotICAg
IC8vIHRoZSBwbHVnLWluIHZpZXcgYWZ0ZXIgaXQncyBiZWVuIGRlc3Ryb3llZC4KLSAgICBtX3Bs
dWdpbkVsZW1lbnQgPSBudWxscHRyOwogfQogCiBGcmFtZSogUGx1Z2luVmlldzo6ZnJhbWUoKSBj
b25zdApAQCAtNTEzLDcgKzUyMSw5IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkSW5pdGlhbGl6ZVBs
dWdpbigpCiAgICAgcmVkZWxpdmVyTWFudWFsU3RyZWFtKCk7CiAKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5MYXllcigpKSB7CisgICAgaWYgKG1fcGx1Z2luRWxl
bWVudC0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAg
ICAgbV9wbHVnaW5TbmFwc2hvdFRpbWVyLnJlc3RhcnQoKTsKKyAgICBlbHNlIGlmIChtX3BsdWdp
bi0+cGx1Z2luTGF5ZXIoKSkgewogICAgICAgICBpZiAoZnJhbWUoKSkgewogICAgICAgICAgICAg
ZnJhbWUoKS0+dmlldygpLT5lbnRlckNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICAgICAgbV9w
bHVnaW5FbGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsK
QEAgLTY0Myw3ICs2NTMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogCiB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgLypkaXJ0eVJlY3QqLykKIHsKLSAgICBp
ZiAoIW1fcGx1Z2luIHx8ICFtX2lzSW5pdGlhbGl6ZWQpCisgICAgaWYgKCFtX3BsdWdpbiB8fCAh
bV9pc0luaXRpYWxpemVkIHx8IG1fcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPCBIVE1M
UGx1Z0luRWxlbWVudDo6UGxheWluZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNvbnRl
eHQtPnBhaW50aW5nRGlzYWJsZWQoKSkgewpAQCAtNjU4LDggKzY2OCw4IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiAvKmRp
cnR5UmVjdCovKQogICAgIGlmIChwYWludFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAobV9zbmFwc2hvdCkgewotICAgICAgICBtX3NuYXBzaG90LT5wYWludCgqY29u
dGV4dCwgY29udGVudHNTY2FsZUZhY3RvcigpLCBmcmFtZVJlY3QoKS5sb2NhdGlvbigpLCBtX3Nu
YXBzaG90LT5ib3VuZHMoKSk7CisgICAgaWYgKG1fdHJhbnNpZW50UGFpbnRpbmdTbmFwc2hvdCkg
eworICAgICAgICBtX3RyYW5zaWVudFBhaW50aW5nU25hcHNob3QtPnBhaW50KCpjb250ZXh0LCBj
b250ZW50c1NjYWxlRmFjdG9yKCksIGZyYW1lUmVjdCgpLmxvY2F0aW9uKCksIG1fdHJhbnNpZW50
UGFpbnRpbmdTbmFwc2hvdC0+Ym91bmRzKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IApAQCAtNzM2LDEwICs3NDYsMTAgQEAgdm9pZCBQbHVnaW5WaWV3Ojpub3RpZnlXaWRnZXQoV2lk
Z2V0Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbikg
ewogICAgIGNhc2UgV2lsbFBhaW50RmxhdHRlbmVkOgogICAgICAgICBpZiAobV9wbHVnaW4gJiYg
bV9pc0luaXRpYWxpemVkKQotICAgICAgICAgICAgbV9zbmFwc2hvdCA9IG1fcGx1Z2luLT5zbmFw
c2hvdCgpOworICAgICAgICAgICAgbV90cmFuc2llbnRQYWludGluZ1NuYXBzaG90ID0gbV9wbHVn
aW4tPnNuYXBzaG90KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlkUGFpbnRGbGF0dGVu
ZWQ6Ci0gICAgICAgIG1fc25hcHNob3QgPSBudWxscHRyOworICAgICAgICBtX3RyYW5zaWVudFBh
aW50aW5nU25hcHNob3QgPSBudWxscHRyOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0x
MDIxLDYgKzEwMzEsOSBAQCB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIGRpcnR5UmVjdCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAgICBpZiAobV9w
bHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5n
KQorICAgICAgICByZXR1cm47CisKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIg
PSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKSk7CiAg
ICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTE3Niw2ICsxMTg5LDggQEAg
Ym9vbCBQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKICAgICBp
ZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9wbHVnaW5F
bGVtZW50LT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHNldHRpbmdzLT5hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCgpOwogfQogCkBAIC0xMzY0LDQgKzEzNzksMTkgQEAgdm9pZCBQbHVnaW5W
aWV3Ojp3aW5kb3dlZFBsdWdpbkdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGZyYW1lUmUKIH0KICNlbmRpZgogCit2b2lkIFBsdWdpblZpZXc6OnBsdWdpblNuYXBzaG90
VGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPFBsdWdpblZpZXc+KiB0aW1lcikKK3sK
KyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV9wbHVnaW5TbmFwc2hvdFRpbWVy
KTsKKyAgICBBU1NFUlQobV9wbHVnaW4pOworCisgICAgLy8gU25hcHNob3QgbWlnaHQgYmUgMCBp
ZiBwbHVnaW4gc2l6ZSBpcyAweDAuCisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gc25hcHNo
b3QgPSBtX3BsdWdpbi0+c25hcHNob3QoKTsKKyAgICBSZWZQdHI8SW1hZ2U+IHNuYXBzaG90SW1h
Z2U7CisgICAgaWYgKHNuYXBzaG90KQorICAgICAgICBzbmFwc2hvdEltYWdlID0gc25hcHNob3Qt
PmNyZWF0ZUltYWdlKCk7CisgICAgbV9wbHVnaW5FbGVtZW50LT51cGRhdGVTbmFwc2hvdChzbmFw
c2hvdEltYWdlLnJlbGVhc2UoKSk7CisgICAgZGVzdHJveVBsdWdpbkFuZFJlc2V0KCk7CisgICAg
bV9wbHVnaW4gPSAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDljYzI1N2E5ODA2NDQ1
OTkyNzJjYmYyNjAwNjVkY2MyZTM3YTJlODMuLmZkNDFhM2ZiZjczNzE1ZTRiZjkyZDNkMmM4YzA5
ZTMyZDUxNWJlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDYW5TdGFydExpc3RlbmVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIu
aD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBz
aG91bGQgbW92ZSB0byBXZWJDb3JlLgpAQCAtMTA0LDYgKzEwNiw4IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHJlZGVsaXZlck1hbnVhbFN0cmVhbSgpOwogCisgICAgdm9pZCBwbHVnaW5TbmFwc2hv
dFRpbWVyRmlyZWQoV2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcjxQbHVnaW5WaWV3Piop
OworCiAgICAgLy8gV2ViQ29yZTo6UGx1Z2luVmlld0Jhc2UKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CkBAIC0xNzcs
NiArMTgxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRJbml0aWFsaXplUGx1
Z2luKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKTsKKyAg
ICB2b2lkIGRlc3Ryb3lQbHVnaW5BbmRSZXNldCgpOwogCiAgICAgLy8gV2ViRnJhbWU6OkxvYWRM
aXN0ZW5lcgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKFdlYkZyYW1lKik7CkBAIC0y
MjIsNyArMjI3LDEwIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBtX21h
bnVhbFN0cmVhbUVycm9yOwogICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fbWFu
dWFsU3RyZWFtRGF0YTsKICAgICAKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX3NuYXBz
aG90OworICAgIC8vIFRoaXMgc25hcHNob3QgaXMgdXNlZCB0byBhdm9pZCBzaWRlIGVmZmVjdHMg
c2hvdWxkIHRoZSBwbHVnaW4gcnVuIEpTIGR1cmluZyBwYWludGluZy4KKyAgICBSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiBtX3RyYW5zaWVudFBhaW50aW5nU25hcHNob3Q7CisgICAgLy8gVGhpcyB0
aW1lciBpcyB1c2VkIHdoZW4gcGx1Z2luIHNuYXBzaG90dGluZyBpcyBlbmFibGVkLCB0byBjYXB0
dXJlIGEgcGx1Z2luIHBsYWNlaG9sZGVyLgorICAgIFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90
VGltZXI8UGx1Z2luVmlldz4gbV9wbHVnaW5TbmFwc2hvdFRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="180587"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>